32 #ifndef UPolyconeSide_hh
33 #define UPolyconeSide_hh
47 std::pair<UVector3, double>
fPhi;
65 bool phiIsOpen,
bool isAllBehind =
false);
72 bool outgoing,
double surfTolerance,
73 double& distance,
double& distFromSurface,
79 double* bestDistance);
110 double& distOutside2,
double* rzNorm = 0);
119 double tx1,
double ty1,
120 double x2,
double y2,
121 double tx2,
double ty2,
122 double& x,
double& y);
UVector3 GetPointOnFace()
void CopyStuff(const UPolyconeSide &source)
double DistanceAway(const UVector3 &p, bool opposite, double &distOutside2, double *rzNorm=0)
double Extent(const UVector3 axis)
UPolyconeSide & operator=(const UPolyconeSide &source)
VUSolid::EnumInside Inside(const UVector3 &p, double tolerance, double *bestDistance)
double GetPhi(const UVector3 &p)
std::pair< UVector3, double > fPhi
static double normal(HepRandomEngine *eptr)
UVector3 Normal(const UVector3 &p, double *bestDistance)
double Safety(const UVector3 &p, bool outgoing)
UPolyconeSide(const UPolyconeSideRZ *prevRZ, const UPolyconeSideRZ *tail, const UPolyconeSideRZ *head, const UPolyconeSideRZ *nextRZ, double phiStart, double deltaPhi, bool phiIsOpen, bool isAllBehind=false)
bool Distance(const UVector3 &p, const UVector3 &v, bool outgoing, double surfTolerance, double &distance, double &distFromSurface, UVector3 &normal, bool &isAllBehind)
static void FindLineIntersect(double x1, double y1, double tx1, double ty1, double x2, double y2, double tx2, double ty2, double &x, double &y)
bool PointOnCone(const UVector3 &hit, double normSign, const UVector3 &p, const UVector3 &v, UVector3 &normal)