42#ifndef G4BOUNDINGENVELOPE_HH
43#define G4BOUNDINGENVELOPE_HH
73 const std::vector<const G4ThreeVectorList*>& polygons);
107 std::vector<G4Polygon3D*>& pBases)
const;
117 std::vector<G4Segment3D>& pEdges)
const;
122 std::vector<G4Plane3D>& pPlanes)
const;
132 const std::vector<G4Plane3D>& pPlanes,
142 const std::vector<const G4ThreeVectorList*>*
fPolygons =
nullptr;
std::pair< G4Point3D, G4Point3D > G4Segment3D
std::vector< G4Point3D > G4Polygon3D
std::vector< G4ThreeVector > G4ThreeVectorList
static const G4double pMax
static const G4double pMin
void CheckBoundingPolygons()
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
void ClipVoxelByPlanes(G4int pBits, const G4VoxelLimits &pLimits, const std::vector< G4Plane3D > &pPlanes, const G4Segment3D &pAABB, G4Segment3D &pExtent) const
void TransformVertices(const G4Transform3D &pTransform3D, std::vector< G4Polygon3D * > &pBases) const
~G4BoundingEnvelope()=default
void CreateListOfEdges(const G4Polygon3D &baseA, const G4Polygon3D &baseB, std::vector< G4Segment3D > &pEdges) const
G4double FindScaleFactor(const G4Transform3D &pTransform3D) const
void GetPrismAABB(const G4Polygon3D &pBaseA, const G4Polygon3D &pBaseB, G4Segment3D &pAABB) const
G4bool ClipEdgesByVoxel(const std::vector< G4Segment3D > &pEdges, const G4VoxelLimits &pLimits, G4Segment3D &pExtent) const
const std::vector< const G4ThreeVectorList * > * fPolygons
G4BoundingEnvelope(const G4ThreeVector &pMin, const G4ThreeVector &pMax)
void CreateListOfPlanes(const G4Polygon3D &baseA, const G4Polygon3D &baseB, std::vector< G4Plane3D > &pPlanes) const