33 #ifndef UPolyhedraSide_hh
34 #define UPolyhedraSide_hh
55 double phiStart,
double phiTotal,
56 bool phiIsOpen,
bool isAllBehind =
false);
63 bool outgoing,
double surfTolerance,
64 double& distance,
double& distFromSurface,
70 double* bestDistance);
131 double surfTolerance,
133 double& distFromSurface);
175 std::pair<UVector3, double>
fPhi;
bool IntersectSidePlane(const UVector3 &p, const UVector3 &v, const UPolyhedraSideVec &vec, double normSign, double surfTolerance, double &distance, double &distFromSurface)
virtual ~UPolyhedraSide()
double Safety(const UVector3 &p, bool outgoing)
double GetPhi(const UVector3 &p)
UVector3 GetPointOnPlane(UVector3 p0, UVector3 p1, UVector3 p2, UVector3 p3, double *Area)
UPolyhedraSide(const UPolyhedraSideRZ *prevRZ, const UPolyhedraSideRZ *tail, const UPolyhedraSideRZ *head, const UPolyhedraSideRZ *nextRZ, int numSide, double phiStart, double phiTotal, bool phiIsOpen, bool isAllBehind=false)
static double normal(HepRandomEngine *eptr)
double SurfaceTriangle(UVector3 p1, UVector3 p2, UVector3 p3, UVector3 *p4)
UVector3 Normal(const UVector3 &p, double *bestDistance)
VUSolid::EnumInside Inside(const UVector3 &p, double tolerance, double *bestDistance)
bool Distance(const UVector3 &p, const UVector3 &v, bool outgoing, double surfTolerance, double &distance, double &distFromSurface, UVector3 &normal, bool &allBehind)
UPolyhedraSideEdge * edges[2]
int ClosestPhiSegment(double phi)
UPolyhedraSideEdge * edges
double DistanceToOneSide(const UVector3 &p, const UPolyhedraSideVec &vec, double *normDist)
double Extent(const UVector3 axis)
UVector3 GetPointOnFace()
struct UPolyhedraSide::sUPolyhedraSideEdge UPolyhedraSideEdge
int LineHitsSegments(const UVector3 &p, const UVector3 &v, int *i1, int *i2)
double DistanceAway(const UVector3 &p, const UPolyhedraSideVec &vec, double *normDist)
struct UPolyhedraSide::sUPolyhedraSideVec UPolyhedraSideVec
void CopyStuff(const UPolyhedraSide &source)
UPolyhedraSide & operator=(const UPolyhedraSide &source)
std::pair< UVector3, double > fPhi
int PhiSegment(double phi)