|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4PolyhedraSide is a utility class implementing a face that represents one segmented side of a polyhedra. More...
#include <G4PolyhedraSide.hh>
Public Member Functions | |
| G4PolyhedraSide (const G4PolyhedraSideRZ *prevRZ, const G4PolyhedraSideRZ *tail, const G4PolyhedraSideRZ *head, const G4PolyhedraSideRZ *nextRZ, G4int numSide, G4double phiStart, G4double phiTotal, G4bool phiIsOpen, G4bool isAllBehind=false) | |
| ~G4PolyhedraSide () override | |
| G4PolyhedraSide (const G4PolyhedraSide &source) | |
| G4PolyhedraSide & | operator= (const G4PolyhedraSide &source) |
| G4bool | Intersect (const G4ThreeVector &p, const G4ThreeVector &v, G4bool outgoing, G4double surfTolerance, G4double &distance, G4double &distFromSurface, G4ThreeVector &normal, G4bool &allBehind) override |
| G4double | Distance (const G4ThreeVector &p, G4bool outgoing) override |
| EInside | Inside (const G4ThreeVector &p, G4double tolerance, G4double *bestDistance) override |
| G4ThreeVector | Normal (const G4ThreeVector &p, G4double *bestDistance) override |
| G4double | Extent (const G4ThreeVector axis) override |
| void | CalculateExtent (const EAxis axis, const G4VoxelLimits &voxelLimit, const G4AffineTransform &tranform, G4SolidExtentList &extentList) override |
| G4VCSGface * | Clone () override |
| G4double | SurfaceArea () override |
| G4PolyhedraSide (__void__ &) | |
| G4int | GetInstanceID () const |
| Public Member Functions inherited from G4VCSGface | |
| G4VCSGface ()=default | |
| virtual | ~G4VCSGface ()=default |
Static Public Member Functions | |
| static const G4PhSideManager & | GetSubInstanceManager () |
Friends | |
| struct | sG4PolyhedraSideVec |
G4PolyhedraSide is a utility class implementing a face that represents one segmented side of a polyhedra.
Definition at line 90 of file G4PolyhedraSide.hh.
| G4PolyhedraSide::G4PolyhedraSide | ( | const G4PolyhedraSideRZ * | prevRZ, |
| const G4PolyhedraSideRZ * | tail, | ||
| const G4PolyhedraSideRZ * | head, | ||
| const G4PolyhedraSideRZ * | nextRZ, | ||
| G4int | numSide, | ||
| G4double | phiStart, | ||
| G4double | phiTotal, | ||
| G4bool | phiIsOpen, | ||
| G4bool | isAllBehind = false ) |
Constructor for the segmented side of a polyhedra.
| [in] | prevRZ | Pointer to previous r,Z section. |
| [in] | tail | Pointer to r,Z tail of section. |
| [in] | head | Pointer to r,Z head of section. |
| [in] | nextRZ | Pointer to next r,Z section. |
| [in] | numSide | The number od sides. |
| [in] | phiStart | Initial Phi starting angle. |
| [in] | phiTotal | Total Phi angle. |
| [in] | phiIsOpen | Flag indicating if it is a Phi section. |
| [in] | isAllBehind | Indicating if entire surface is behind normal. |
Definition at line 66 of file G4PolyhedraSide.cc.
Referenced by Clone(), G4PolyhedraSide(), and operator=().
|
override |
Destructor.
Definition at line 320 of file G4PolyhedraSide.cc.
| G4PolyhedraSide::G4PolyhedraSide | ( | const G4PolyhedraSide & | source | ) |
Copy constructor and assignment operator.
Definition at line 329 of file G4PolyhedraSide.cc.
| G4PolyhedraSide::G4PolyhedraSide | ( | __void__ & | ) |
Fake default constructor for usage restricted to direct object persistency for clients requiring preallocation of memory for persistifiable objects.
Definition at line 308 of file G4PolyhedraSide.cc.
|
overridevirtual |
Calculates the extent of the face for the voxel navigator.
| [in] | axis | The axis in which to check the shapes 3D extent against. |
| [in] | voxelLimit | Limits along x, y, and/or z axes. |
| [in] | tranform | A coordinate transformation on which to apply to the shape before testing. |
| [out] | extentList | The list of (voxel) extents along the axis. |
Implements G4VCSGface.
Definition at line 706 of file G4PolyhedraSide.cc.
|
inlineoverridevirtual |
Method invoked by the copy constructor or the assignment operator. Its purpose is to return a pointer to a duplicate copy of the face.
Implements G4VCSGface.
Definition at line 203 of file G4PolyhedraSide.hh.
|
overridevirtual |
Determines the distance of a point from either the inside or outside surfaces of the face.
| [in] | p | Position. |
| [in] | outgoing | Flag, true, to consider only inside surfaces or false, to consider only outside surfaces. |
Implements G4VCSGface.
Definition at line 570 of file G4PolyhedraSide.cc.
|
overridevirtual |
Returns the face extent along the axis.
| [in] | axis | Unit vector defining the direction. |
Implements G4VCSGface.
Definition at line 648 of file G4PolyhedraSide.cc.
|
inline |
Returns the instance ID.
Definition at line 220 of file G4PolyhedraSide.hh.
|
static |
Returns the private data instance manager.
Definition at line 56 of file G4PolyhedraSide.cc.
Referenced by G4SolidsWorkspace::G4SolidsWorkspace().
|
overridevirtual |
Determines whether a point is inside, outside, or on the surface of the face.
| [in] | p | Position. |
| [in] | tolerance | Tolerance defining the bounds of the "kSurface", nominally equal to kCarTolerance/2. |
| [out] | bestDistance | Distance to the closest surface (in or out). |
Implements G4VCSGface.
Definition at line 601 of file G4PolyhedraSide.cc.
|
overridevirtual |
Determines the distance along a line to the face.
| [in] | p | Position. |
| [in] | v | Direction (assumed to be a unit vector). |
| [in] | outgoing | Flag true, to consider only inside surfaces; false, to consider only outside surfaces. |
| [in] | surfTolerance | Minimum distance from the surface. |
| [out] | distance | Distance to intersection. |
| [out] | distFromSurface | Distance from surface (along surface normal), < 0 if the point is in front of the surface. |
| [out] | normal | Normal of surface at intersection point. |
| [out] | allBehind | Flag, true, if entire surface is behind normal. |
Implements G4VCSGface.
Definition at line 450 of file G4PolyhedraSide.cc.
|
overridevirtual |
Returns the normal of surface closest to the point.
| [in] | p | Position. |
| [out] | bestDistance | Distance to the closest surface (in or out). |
Implements G4VCSGface.
Definition at line 629 of file G4PolyhedraSide.cc.
| G4PolyhedraSide & G4PolyhedraSide::operator= | ( | const G4PolyhedraSide & | source | ) |
Definition at line 340 of file G4PolyhedraSide.cc.
|
overridevirtual |
Returning an estimation of the face surface area, in internal units.
Implements G4VCSGface.
Definition at line 1217 of file G4PolyhedraSide.cc.
|
friend |
Definition at line 233 of file G4PolyhedraSide.hh.
Referenced by sG4PolyhedraSideVec.