|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4VCSGface is virtual base class, representing one side (or face) of a CSG-like solid. It should be possible to build a CSG entirely out of connecting CSG faces. Each face has an inside and outside surface, the former represents the inside of the volume, the latter, the outside. More...
#include <G4VCSGface.hh>
Public Member Functions | |
| G4VCSGface ()=default | |
| virtual | ~G4VCSGface ()=default |
| virtual G4bool | Intersect (const G4ThreeVector &p, const G4ThreeVector &v, G4bool outgoing, G4double surfTolerance, G4double &distance, G4double &distFromSurface, G4ThreeVector &normal, G4bool &allBehind)=0 |
| virtual G4double | Distance (const G4ThreeVector &p, G4bool outgoing)=0 |
| virtual EInside | Inside (const G4ThreeVector &p, G4double tolerance, G4double *bestDistance)=0 |
| virtual G4ThreeVector | Normal (const G4ThreeVector &p, G4double *bestDistance)=0 |
| virtual G4double | Extent (const G4ThreeVector axis)=0 |
| virtual void | CalculateExtent (const EAxis axis, const G4VoxelLimits &voxelLimit, const G4AffineTransform &tranform, G4SolidExtentList &extentList)=0 |
| virtual G4VCSGface * | Clone ()=0 |
| virtual G4double | SurfaceArea ()=0 |
| virtual G4ThreeVector | GetPointOnFace ()=0 |
G4VCSGface is virtual base class, representing one side (or face) of a CSG-like solid. It should be possible to build a CSG entirely out of connecting CSG faces. Each face has an inside and outside surface, the former represents the inside of the volume, the latter, the outside.
Definition at line 149 of file G4VCSGface.hh.
|
default |
Default Constructor and Destructor.
Referenced by G4PolyconeSide::Clone(), G4PolyhedraSide::Clone(), G4PolyPhiFace::Clone(), and Clone().
|
virtualdefault |
|
pure virtual |
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. |
Implemented in G4PolyconeSide, G4PolyhedraSide, and G4PolyPhiFace.
|
pure virtual |
Method invoked by the copy constructor or the assignment operator. Its purpose is to return a pointer to a duplicate copy of the face.
Implemented in G4PolyconeSide, G4PolyhedraSide, and G4PolyPhiFace.
Referenced by G4VCSGfaceted::CopyStuff().
|
pure virtual |
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. |
Implemented in G4PolyconeSide, G4PolyhedraSide, and G4PolyPhiFace.
Referenced by G4VCSGfaceted::DistanceToIn(), and G4VCSGfaceted::DistanceToOut().
|
pure virtual |
Returns the face extent along the axis.
| [in] | axis | Unit vector defining the direction. |
Implemented in G4PolyconeSide, G4PolyhedraSide, and G4PolyPhiFace.
|
pure virtual |
Auxiliary method for GetPointOnSurface().
Implemented in G4PolyconeSide.
|
pure virtual |
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). |
Implemented in G4PolyconeSide, G4PolyhedraSide, and G4PolyPhiFace.
|
pure virtual |
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. |
Implemented in G4PolyconeSide, G4PolyhedraSide, and G4PolyPhiFace.
|
pure virtual |
Returns the normal of surface closest to the point.
| [in] | p | Position. |
| [out] | bestDistance | Distance to the closest surface (in or out). |
Implemented in G4PolyconeSide, G4PolyhedraSide, and G4PolyPhiFace.
|
pure virtual |
Returning an estimation of the face surface area, in internal units.
Implemented in G4PolyconeSide, G4PolyhedraSide, and G4PolyPhiFace.