|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4ReflectedSolid is a solid that has been shifted from its original frame of reference to a new reflected one. More...
#include <G4ReflectedSolid.hh>
Protected Attributes | |
| G4VSolid * | fPtrSolid = nullptr |
| G4Transform3D * | fDirectTransform3D = nullptr |
| G4bool | fRebuildPolyhedron = false |
| G4Polyhedron * | fpPolyhedron = nullptr |
| Protected Attributes inherited from G4VSolid | |
| G4double | kCarTolerance |
Additional Inherited Members | |
| Protected Member Functions inherited from G4VSolid | |
| void | CalculateClippedPolygonExtent (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const |
| void | ClipCrossSection (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const |
| void | ClipBetweenSections (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const |
| void | ClipPolygon (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis) const |
G4ReflectedSolid is a solid that has been shifted from its original frame of reference to a new reflected one.
Definition at line 47 of file G4ReflectedSolid.hh.
| G4ReflectedSolid::G4ReflectedSolid | ( | const G4String & | pName, |
| G4VSolid * | pSolid, | ||
| const G4Transform3D & | transform ) |
Constructor for G4ReflectedSolid. For use in instantiating a transient instance.
| [in] | pName | The solid's name. |
| [in] | pSolid | The original primitive being reflected. |
| [in] | transform | The associated transformation. |
Definition at line 51 of file G4ReflectedSolid.cc.
Referenced by Clone(), G4ReflectedSolid(), GetReflectedSolidPtr(), GetReflectedSolidPtr(), and operator=().
|
override |
| G4ReflectedSolid::G4ReflectedSolid | ( | const G4ReflectedSolid & | rhs | ) |
Copy constructor and assignment operator.
Definition at line 72 of file G4ReflectedSolid.cc.
|
overridevirtual |
Computes the bounding limits of the solid.
| [out] | pMin | The minimum bounding limit point. |
| [out] | pMax | The maximum bounding limit point. |
Reimplemented from G4VSolid.
Definition at line 149 of file G4ReflectedSolid.cc.
|
overridevirtual |
Calculates the minimum and maximum extent of the solid, when under the specified transform, and within the specified limits.
| [in] | pAxis | The axis along which compute the extent. |
| [in] | pVoxelLimit | The limiting space dictated by voxels. |
| [in] | pTransform | The internal transformation applied to the solid. |
| [out] | pMin | The minimum extent value. |
| [out] | pMax | The maximum extent value. |
Implements G4VSolid.
Definition at line 212 of file G4ReflectedSolid.cc.
|
overridevirtual |
Makes a clone of the object for use in multi-treading.
Reimplemented from G4VSolid.
Definition at line 403 of file G4ReflectedSolid.cc.
|
overridevirtual |
Dispatch method for parameterisation replication mechanism and dimension computation.
Reimplemented from G4VSolid.
Definition at line 341 of file G4ReflectedSolid.cc.
|
overridevirtual |
Creates a Polyhedron used for Visualisation. It is the caller's responsibility to delete it. A null pointer means "not created".
Reimplemented from G4VSolid.
Definition at line 449 of file G4ReflectedSolid.cc.
Referenced by GetPolyhedron().
|
overridevirtual |
Methods for creating graphical representations (i.e. for visualisation).
Implements G4VSolid.
Definition at line 439 of file G4ReflectedSolid.cc.
|
overridevirtual |
Calculates the distance to the nearest surface of a shape from an outside point. The distance can be an underestimate.
| [in] | p | The point at offset p. |
Implements G4VSolid.
Definition at line 294 of file G4ReflectedSolid.cc.
|
overridevirtual |
Returns the distance along the normalised vector 'v' to the shape, from the point at offset 'p'. If there is no intersection, returns kInfinity. The first intersection resulting from 'leaving' a surface/volume is discarded. Hence, it is tolerant of points on the surface of the shape.
| [in] | p | The point at offset p. |
| [in] | v | The normalised direction vector. |
Implements G4VSolid.
Definition at line 280 of file G4ReflectedSolid.cc.
|
overridevirtual |
Calculates the distance to the nearest surface of a shape from an inside point 'p'. The distance can be an underestimate.
| [in] | p | The point at offset p. |
Implements G4VSolid.
Definition at line 330 of file G4ReflectedSolid.cc.
|
overridevirtual |
Returns the distance along the normalised vector 'v' to the shape, from a point at an offset 'p' inside or on the surface of the shape. Intersections with surfaces, when the point is less than Tolerance/2 from a surface must be ignored.
| [in] | p | The point at offset p. |
| [in] | v | The normalised direction vector. |
| [in] | calcNorm | Flag to indicate if to calculate the normal or not. |
| [out] | validNorm | Flag set to true if the solid lies entirely behind or on the exiting surface. It is set false if the solid does not lie entirely behind or on the exiting surface. 'calcNorm' must be true, otherwise it is unused. |
| [out] | n | The exiting outwards normal vector (undefined Magnitude). 'calcNorm' must be true, otherwise it is unused. |
Implements G4VSolid.
Definition at line 305 of file G4ReflectedSolid.cc.
| G4VSolid * G4ReflectedSolid::GetConstituentMovedSolid | ( | ) | const |
Returns a pointer to the original solid primitive.
Definition at line 120 of file G4ReflectedSolid.cc.
Referenced by G4tgbGeometryDumper::DumpSolid().
|
overridevirtual |
Returning an estimation of the solid volume (capacity) and surface area, in internal units.
Reimplemented from G4VSolid.
Definition at line 355 of file G4ReflectedSolid.cc.
| G4Transform3D G4ReflectedSolid::GetDirectTransform3D | ( | ) | const |
Definition at line 133 of file G4ReflectedSolid.cc.
|
overridevirtual |
Returns a random point located and uniformly distributed on the surface of the solid.
Implements G4VSolid.
Definition at line 105 of file G4ReflectedSolid.cc.
Referenced by StreamInfo().
|
overridevirtual |
Returns the number of constituent solids (in case Boolean).
Reimplemented from G4VSolid.
Definition at line 385 of file G4ReflectedSolid.cc.
|
overridevirtual |
Returns a random point located and uniformly distributed on the surface of the solid.
Reimplemented from G4VSolid.
Definition at line 374 of file G4ReflectedSolid.cc.
|
overridevirtual |
Smart access function - creates on request and stores for future access. A null pointer means "not available".
Reimplemented from G4VSolid.
Definition at line 471 of file G4ReflectedSolid.cc.
|
virtual |
Definition at line 115 of file G4ReflectedSolid.cc.
|
virtual |
If the Solid is a G4ReflectedSolid, return a self pointer else return nullptr.
Definition at line 110 of file G4ReflectedSolid.cc.
|
overridevirtual |
Returns an estimation of the solid surface area in internal units. This method may be overloaded by derived classes to compute the exact geometrical quantity for solids where this is possible, or anyway to cache the computed value. Note: the computed value is NOT cached.
Reimplemented from G4VSolid.
Definition at line 364 of file G4ReflectedSolid.cc.
| G4Transform3D G4ReflectedSolid::GetTransform3D | ( | ) | const |
Accessors and modifier for the transformation.
Definition at line 128 of file G4ReflectedSolid.cc.
|
overridevirtual |
Concrete implementations of the expected query interfaces for solids, as defined in the base class G4VSolid.
Implements G4VSolid.
Definition at line 257 of file G4ReflectedSolid.cc.
|
overridevirtual |
Returns true as the solid has only planar faces.
Reimplemented from G4VSolid.
Definition at line 394 of file G4ReflectedSolid.cc.
| G4ReflectedSolid & G4ReflectedSolid::operator= | ( | const G4ReflectedSolid & | rhs | ) |
Definition at line 81 of file G4ReflectedSolid.cc.
| void G4ReflectedSolid::SetDirectTransform3D | ( | G4Transform3D & | transform | ) |
Definition at line 139 of file G4ReflectedSolid.cc.
|
overridevirtual |
Streams the object contents to an output stream.
Implements G4VSolid.
Definition at line 412 of file G4ReflectedSolid.cc.
|
overridevirtual |
Returns the outwards pointing unit normal of the shape for the surface closest to the point at offset 'p'.
| [in] | p | The point at offset p. |
Implements G4VSolid.
Definition at line 268 of file G4ReflectedSolid.cc.
|
protected |
Definition at line 190 of file G4ReflectedSolid.hh.
Referenced by BoundingLimits(), CreatePolyhedron(), G4ReflectedSolid(), G4ReflectedSolid(), GetDirectTransform3D(), GetPointOnSurface(), GetTransform3D(), operator=(), SetDirectTransform3D(), StreamInfo(), SurfaceNormal(), and ~G4ReflectedSolid().
|
mutableprotected |
Definition at line 194 of file G4ReflectedSolid.hh.
Referenced by GetPolyhedron(), operator=(), and ~G4ReflectedSolid().
|
protected |
Definition at line 189 of file G4ReflectedSolid.hh.
Referenced by BoundingLimits(), CalculateExtent(), CreatePolyhedron(), DistanceToIn(), DistanceToIn(), DistanceToOut(), DistanceToOut(), G4ReflectedSolid(), G4ReflectedSolid(), GetConstituentMovedSolid(), GetCubicVolume(), GetNumOfConstituents(), GetPointOnSurface(), GetSurfaceArea(), Inside(), IsFaceted(), operator=(), StreamInfo(), and SurfaceNormal().
|
mutableprotected |
Caches for the reflected G4Polyhedron.
Definition at line 193 of file G4ReflectedSolid.hh.
Referenced by GetPolyhedron(), operator=(), and SetDirectTransform3D().