32 #ifndef UPolyPhiFace_hh
33 #define UPolyPhiFace_hh
68 double phi,
double deltaPhi,
double phiOther);
85 bool outgoing,
double surfTolerance,
86 double& distance,
double& distFromSurface,
92 double* bestDistance);
133 bool InsideEdges(
double r,
double z,
double* distRZ2,
139 double qx,
double qy,
double qz,
double SurfaceTriangle(UVector3 p1, UVector3 p2, UVector3 p3, UVector3 *p4)
bool InsideEdges(double r, double z)
VUSolid::EnumInside Inside(const UVector3 &p, double tolerance, double *bestDistance)
bool InCone(UPolyPhiFaceVertex *a, UPolyPhiFaceVertex *b)
static const G4double tolerance
double Area2(UVector2 a, UVector2 b, UVector2 c)
bool LeftOn(UVector2 a, UVector2 b, UVector2 c)
double ExactZOrder(double z, double qx, double qy, double qz, const UVector3 &v, double normSign, const UPolyPhiFaceVertex *vert) const
UPolyPhiFaceVertex * prev
double Safety(const UVector3 &p, bool outgoing)
UPolyPhiFaceVertex * corners
UPolyPhiFace & operator=(const UPolyPhiFace &source)
bool Left(UVector2 a, UVector2 b, UVector2 c)
UPolyPhiFaceVertex * next
bool Distance(const UVector3 &p, const UVector3 &v, bool outgoing, double surfTolerance, double &distance, double &distFromSurface, UVector3 &normal, bool &allBehind)
UPolyPhiFaceVertex * triangles
bool Diagonal(UPolyPhiFaceVertex *a, UPolyPhiFaceVertex *b)
bool IntersectProp(UVector2 a, UVector2 b, UVector2 c, UVector2 d)
double Extent(const UVector3 axis)
void CopyStuff(const UPolyPhiFace &source)
UVector3 GetPointOnFace()
bool Collinear(UVector2 a, UVector2 b, UVector2 c)
bool Between(UVector2 a, UVector2 b, UVector2 c)
UVector3 Normal(const UVector3 &p, double *bestDistance)
bool InsideEdgesExact(double r, double z, double normSign, const UVector3 &p, const UVector3 &v)
bool Diagonalie(UPolyPhiFaceVertex *a, UPolyPhiFaceVertex *b)
UPolyPhiFace(const UReduciblePolygon *rz, double phi, double deltaPhi, double phiOther)
bool Intersect(UVector2 a, UVector2 b, UVector2 c, UVector2 d)
void Diagnose(VUSolid *solid)