|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4BoundingEnvelope is a helper class to facilitate calculation of the extent of a solid within the limits defined by a G4VoxelLimits object. Calculation of the extent takes into account scaling and reflection, if any. More...
#include <G4BoundingEnvelope.hh>
Public Member Functions | |
| G4BoundingEnvelope (const G4ThreeVector &pMin, const G4ThreeVector &pMax) | |
| G4BoundingEnvelope (const std::vector< const G4ThreeVectorList * > &polygons) | |
| G4BoundingEnvelope (const G4ThreeVector &pMin, const G4ThreeVector &pMax, const std::vector< const G4ThreeVectorList * > &polygons) | |
| ~G4BoundingEnvelope ()=default | |
| G4bool | BoundingBoxVsVoxelLimits (const EAxis pAxis, const G4VoxelLimits &pVoxelLimits, const G4Transform3D &pTransform3D, G4double &pMin, G4double &pMax) const |
| G4bool | CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimits, const G4Transform3D &pTransform3D, G4double &pMin, G4double &pMax) const |
G4BoundingEnvelope is a helper class to facilitate calculation of the extent of a solid within the limits defined by a G4VoxelLimits object. Calculation of the extent takes into account scaling and reflection, if any.
Definition at line 64 of file G4BoundingEnvelope.hh.
| G4BoundingEnvelope::G4BoundingEnvelope | ( | const G4ThreeVector & | pMin, |
| const G4ThreeVector & | pMax ) |
Constructor from an axis aligned bounding box (AABB).
| [in] | pMin | Lower boundary point. |
| [in] | pMax | Higher boundary point. |
Definition at line 45 of file G4BoundingEnvelope.cc.
| G4BoundingEnvelope::G4BoundingEnvelope | ( | const std::vector< const G4ThreeVectorList * > & | polygons | ) |
Constructor from a sequence of convex polygons, the polygons should have equal numbers of vertices except first and last polygons which may consist of a single vertex.
| [in] | polygons | The list of polygons. |
Definition at line 58 of file G4BoundingEnvelope.cc.
| G4BoundingEnvelope::G4BoundingEnvelope | ( | const G4ThreeVector & | pMin, |
| const G4ThreeVector & | pMax, | ||
| const std::vector< const G4ThreeVectorList * > & | polygons ) |
Constructor from AABB and a sequence of polygons.
| [in] | pMin | Lower boundary point. |
| [in] | pMax | Higher boundary point. |
| [in] | polygons | The list of polygons. |
Definition at line 97 of file G4BoundingEnvelope.cc.
|
default |
Default Destructor.
| G4bool G4BoundingEnvelope::BoundingBoxVsVoxelLimits | ( | const EAxis | pAxis, |
| const G4VoxelLimits & | pVoxelLimits, | ||
| const G4Transform3D & | pTransform3D, | ||
| G4double & | pMin, | ||
| G4double & | pMax ) const |
Analyses the position of the bounding box relative to the voxel. It returns "true" in the case where the value of the extent can be figured out directly from the dimensions of the bounding box, or it is clear that the bounding box and the voxel do not intersect. The reply "false" means that further calculations are needed.
| [in] | pAxis | The axis along which compute the extent. |
| [in] | pVoxelLimits | The limiting space dictated by voxels. |
| [in] | pTransform3D | Internal transformation applied to the envelope. |
| [out] | pMin | The minimum extent value. |
| [out] | pMax | The maximum extent value. |
Definition at line 181 of file G4BoundingEnvelope.cc.
Referenced by G4Cons::CalculateExtent(), G4CutTubs::CalculateExtent(), G4EllipticalCone::CalculateExtent(), G4EllipticalTube::CalculateExtent(), G4ExtrudedSolid::CalculateExtent(), G4GenericPolycone::CalculateExtent(), G4GenericTrap::CalculateExtent(), G4Orb::CalculateExtent(), G4Para::CalculateExtent(), G4Polycone::CalculateExtent(), G4Polyhedra::CalculateExtent(), G4TessellatedSolid::CalculateExtent(), G4Tet::CalculateExtent(), G4Torus::CalculateExtent(), G4Trap::CalculateExtent(), G4Trd::CalculateExtent(), and G4Tubs::CalculateExtent().
| G4bool G4BoundingEnvelope::CalculateExtent | ( | const EAxis | pAxis, |
| const G4VoxelLimits & | pVoxelLimits, | ||
| const G4Transform3D & | pTransform3D, | ||
| G4double & | pMin, | ||
| G4double & | pMax ) const |
Calculates the minimum and maximum extent of the bounding envelope, when under the specified transform, and within the specified limits.
| [in] | pAxis | The axis along which compute the extent. |
| [in] | pVoxelLimits | The limiting space dictated by voxels. |
| [in] | pTransform3D | Internal transformation applied to the envelope. |
| [out] | pMin | The minimum extent value. |
| [out] | pMax | The maximum extent value. |
Definition at line 267 of file G4BoundingEnvelope.cc.
Referenced by G4Box::CalculateExtent(), G4Cons::CalculateExtent(), G4CutTubs::CalculateExtent(), G4Ellipsoid::CalculateExtent(), G4EllipticalCone::CalculateExtent(), G4EllipticalTube::CalculateExtent(), G4ExtrudedSolid::CalculateExtent(), G4GenericPolycone::CalculateExtent(), G4GenericTrap::CalculateExtent(), G4Hype::CalculateExtent(), G4MultiUnion::CalculateExtent(), G4Orb::CalculateExtent(), G4Para::CalculateExtent(), G4Paraboloid::CalculateExtent(), G4Polycone::CalculateExtent(), G4Polyhedra::CalculateExtent(), G4ScaledSolid::CalculateExtent(), G4Sphere::CalculateExtent(), G4TessellatedSolid::CalculateExtent(), G4Tet::CalculateExtent(), G4Torus::CalculateExtent(), G4Trap::CalculateExtent(), G4Trd::CalculateExtent(), G4Tubs::CalculateExtent(), G4TwistedTubs::CalculateExtent(), and G4VTwistedFaceted::CalculateExtent().