45#ifndef G4POLYPHIFACE_HH
46#define G4POLYPHIFACE_HH 1
227#include "G4PolyPhiFace.icc"
G4double Distance(const G4ThreeVector &p, G4bool outgoing) override
G4double Area2(const G4TwoVector &a, const G4TwoVector &b, const G4TwoVector &c)
G4bool LeftOn(const G4TwoVector &a, const G4TwoVector &b, const G4TwoVector &c)
G4ThreeVector GetPointOnFace() override
EInside Inside(const G4ThreeVector &p, G4double tolerance, G4double *bestDistance) override
G4bool Collinear(const G4TwoVector &a, const G4TwoVector &b, const G4TwoVector &c)
void Diagnose(G4VSolid *solid)
void CalculateExtent(const EAxis axis, const G4VoxelLimits &voxelLimit, const G4AffineTransform &tranform, G4SolidExtentList &extentList) override
G4PolyPhiFace & operator=(const G4PolyPhiFace &source)
G4bool Diagonal(G4PolyPhiFaceVertex *a, G4PolyPhiFaceVertex *b)
G4ThreeVector surface_point
G4bool InsideEdges(G4double r, G4double z)
G4bool Left(const G4TwoVector &a, const G4TwoVector &b, const G4TwoVector &c)
G4bool Diagonalie(G4PolyPhiFaceVertex *a, G4PolyPhiFaceVertex *b)
G4double SurfaceTriangle(const G4ThreeVector &p1, const G4ThreeVector &p2, const G4ThreeVector &p3, G4ThreeVector *p4)
G4VCSGface * Clone() override
G4bool IntersectProp(const G4TwoVector &a, const G4TwoVector &b, const G4TwoVector &c, const G4TwoVector &d)
void CopyStuff(const G4PolyPhiFace &source)
G4double ExactZOrder(G4double z, G4double qx, G4double qy, G4double qz, const G4ThreeVector &v, G4double normSign, const G4PolyPhiFaceVertex *vert) const
G4double Extent(const G4ThreeVector axis) override
G4PolyPhiFaceEdge * edges
G4ThreeVector Normal(const G4ThreeVector &p, G4double *bestDistance) override
G4bool InCone(G4PolyPhiFaceVertex *a, G4PolyPhiFaceVertex *b)
G4bool Intersect(const G4ThreeVector &p, const G4ThreeVector &v, G4bool outgoing, G4double surfTolerance, G4double &distance, G4double &distFromSurface, G4ThreeVector &normal, G4bool &allBehind) override
G4PolyPhiFaceVertex * corners
G4PolyPhiFaceVertex * triangles
~G4PolyPhiFace() override
G4double SurfaceArea() override
G4bool Between(const G4TwoVector &a, const G4TwoVector &b, const G4TwoVector &c)
G4bool InsideEdgesExact(G4double r, G4double z, G4double normSign, const G4ThreeVector &p, const G4ThreeVector &v)
G4PolyPhiFace(const G4ReduciblePolygon *rz, G4double phi, G4double deltaPhi, G4double phiOther)
G4PolyPhiFaceEdge()=default
G4PolyPhiFaceVertex * next
G4PolyPhiFaceVertex * prev