35#ifndef G4CLIPPABLEPOLYGON_HH
36#define G4CLIPPABLEPOLYGON_HH
49 using G4ThreeVectorList = std::vector<G4ThreeVector>;
66 const EAxis IgnoreMe );
105 G4ThreeVectorList& outputPolygon,
118#include "G4ClippablePolygon.icc"
virtual G4bool GetPlanerExtent(const G4ThreeVector &pointOnPlane, const G4ThreeVector &planeNormal, G4double &min, G4double &max) const
virtual G4bool Clip(const G4VoxelLimits &voxelLimit)
virtual G4bool PartialClip(const G4VoxelLimits &voxelLimit, const EAxis IgnoreMe)
G4ThreeVectorList vertices
void ClipToSimpleLimits(G4ThreeVectorList &pPolygon, G4ThreeVectorList &outputPolygon, const G4VoxelLimits &pVoxelLimit)
std::size_t GetNumVertices() const
virtual const G4ThreeVector * GetMinPoint(const EAxis axis) const
virtual ~G4ClippablePolygon()
virtual void AddVertexInOrder(const G4ThreeVector vertex)
virtual G4bool GetExtent(const EAxis axis, G4double &min, G4double &max) const
virtual void ClearAllVertices()
virtual void ClipAlongOneAxis(const G4VoxelLimits &voxelLimit, const EAxis axis)
virtual G4bool InFrontOf(const G4ClippablePolygon &other, EAxis axis) const
virtual G4bool BehindOf(const G4ClippablePolygon &other, EAxis axis) const
const G4ThreeVector GetNormal() const
void SetNormal(const G4ThreeVector &newNormal)
virtual const G4ThreeVector * GetMaxPoint(const EAxis axis) const