Geant4
10.01.p02
|
#include <UPolyhedraSide.hh>
Classes | |
struct | sUPolyhedraSideEdge |
struct | sUPolyhedraSideVec |
Public Member Functions | |
UPolyhedraSide (const UPolyhedraSideRZ *prevRZ, const UPolyhedraSideRZ *tail, const UPolyhedraSideRZ *head, const UPolyhedraSideRZ *nextRZ, int numSide, double phiStart, double phiTotal, bool phiIsOpen, bool isAllBehind=false) | |
virtual | ~UPolyhedraSide () |
UPolyhedraSide (const UPolyhedraSide &source) | |
UPolyhedraSide & | operator= (const UPolyhedraSide &source) |
bool | Distance (const UVector3 &p, const UVector3 &v, bool outgoing, double surfTolerance, double &distance, double &distFromSurface, UVector3 &normal, bool &allBehind) |
double | Safety (const UVector3 &p, bool outgoing) |
VUSolid::EnumInside | Inside (const UVector3 &p, double tolerance, double *bestDistance) |
UVector3 | Normal (const UVector3 &p, double *bestDistance) |
double | Extent (const UVector3 axis) |
UVCSGface * | Clone () |
double | SurfaceTriangle (UVector3 p1, UVector3 p2, UVector3 p3, UVector3 *p4) |
UVector3 | GetPointOnPlane (UVector3 p0, UVector3 p1, UVector3 p2, UVector3 p3, double *Area) |
double | SurfaceArea () |
UVector3 | GetPointOnFace () |
UPolyhedraSide (__void__ &) | |
Public Member Functions inherited from UVCSGface | |
UVCSGface () | |
virtual | ~UVCSGface () |
Protected Types | |
typedef struct UPolyhedraSide::sUPolyhedraSideEdge | UPolyhedraSideEdge |
typedef struct UPolyhedraSide::sUPolyhedraSideVec | UPolyhedraSideVec |
Protected Member Functions | |
bool | IntersectSidePlane (const UVector3 &p, const UVector3 &v, const UPolyhedraSideVec &vec, double normSign, double surfTolerance, double &distance, double &distFromSurface) |
int | LineHitsSegments (const UVector3 &p, const UVector3 &v, int *i1, int *i2) |
int | ClosestPhiSegment (double phi) |
int | PhiSegment (double phi) |
double | GetPhi (const UVector3 &p) |
double | DistanceToOneSide (const UVector3 &p, const UPolyhedraSideVec &vec, double *normDist) |
double | DistanceAway (const UVector3 &p, const UPolyhedraSideVec &vec, double *normDist) |
void | CopyStuff (const UPolyhedraSide &source) |
Protected Attributes | |
int | numSide |
double | r [2] |
double | z [2] |
double | startPhi |
double | deltaPhi |
double | endPhi |
bool | phiIsOpen |
bool | allBehind |
UIntersectingCone * | cone |
UPolyhedraSideVec * | vecs |
UPolyhedraSideEdge * | edges |
double | lenRZ |
double | lenPhi [2] |
double | edgeNorm |
Private Attributes | |
std::pair< UVector3, double > | fPhi |
double | kCarTolerance |
double | fSurfaceArea |
Friends | |
struct | sUPolyhedraSideVec |
Definition at line 45 of file UPolyhedraSide.hh.
|
protected |
|
protected |
UPolyhedraSide::UPolyhedraSide | ( | const UPolyhedraSideRZ * | prevRZ, |
const UPolyhedraSideRZ * | tail, | ||
const UPolyhedraSideRZ * | head, | ||
const UPolyhedraSideRZ * | nextRZ, | ||
int | numSide, | ||
double | phiStart, | ||
double | phiTotal, | ||
bool | phiIsOpen, | ||
bool | isAllBehind = false |
||
) |
Definition at line 31 of file UPolyhedraSide.cc.
References a1, a2, allBehind, b1, b2, c1, c2, UPolyhedraSide::sUPolyhedraSideVec::center, cone, UPolyhedraSide::sUPolyhedraSideEdge::corner, UPolyhedraSide::sUPolyhedraSideEdge::cornNorm, UVector3::Cross(), d1, d2, deltaPhi, UVector3::Dot(), UPolyhedraSide::sUPolyhedraSideVec::edgeNorm, edgeNorm, UPolyhedraSide::sUPolyhedraSideVec::edges, edges, endPhi, fPhi, fSurfaceArea, kCarTolerance, UUtils::kPi, lenPhi, lenRZ, UVector3::Mag(), UPolyhedraSide::sUPolyhedraSideEdge::normal, UPolyhedraSide::sUPolyhedraSideVec::normal, numSide, phiIsOpen, UPolyhedraSideRZ::r, r, startPhi, UPolyhedraSide::sUPolyhedraSideVec::surfPhi, UPolyhedraSide::sUPolyhedraSideVec::surfRZ, VUSolid::Tolerance(), UVector3::Unit(), vecs, UPolyhedraSideRZ::z, and z.
Referenced by Clone().
|
virtual |
Definition at line 289 of file UPolyhedraSide.cc.
UPolyhedraSide::UPolyhedraSide | ( | const UPolyhedraSide & | source | ) |
Definition at line 300 of file UPolyhedraSide.cc.
References CopyStuff().
UPolyhedraSide::UPolyhedraSide | ( | __void__ & | ) |
Definition at line 275 of file UPolyhedraSide.cc.
|
inlinevirtual |
Implements UVCSGface.
Definition at line 76 of file UPolyhedraSide.hh.
References UPolyhedraSide().
|
protected |
Definition at line 867 of file UPolyhedraSide.cc.
References d1, d2, endPhi, UUtils::kPi, numSide, PhiSegment(), and startPhi.
Referenced by Inside(), Normal(), and Safety().
|
protected |
Definition at line 327 of file UPolyhedraSide.cc.
References allBehind, cone, deltaPhi, edgeNorm, UPolyhedraSide::sUPolyhedraSideVec::edges, edges, endPhi, fSurfaceArea, kCarTolerance, lenPhi, lenRZ, numSide, phiIsOpen, r, startPhi, vecs, and z.
Referenced by operator=(), and UPolyhedraSide().
|
virtual |
Implements UVCSGface.
Definition at line 425 of file UPolyhedraSide.cc.
References allBehind, UPolyhedraSide::sUPolyhedraSideVec::center, cone, UPolyhedraSide::sUPolyhedraSideEdge::corner, UVector3::Cross(), UVector3::Dot(), UPolyhedraSide::sUPolyhedraSideVec::edges, UUtils::kInfinity, lenPhi, lenRZ, UIntersectingCone::LineHitsCone(), UPolyhedraSide::sUPolyhedraSideVec::normal, numSide, PhiSegment(), G4InuclParticleNames::pp, r, UPolyhedraSide::sUPolyhedraSideVec::surfPhi, UPolyhedraSide::sUPolyhedraSideVec::surfRZ, vecs, UVector3::x(), and UVector3::y().
|
protected |
Definition at line 980 of file UPolyhedraSide.cc.
References UPolyhedraSide::sUPolyhedraSideVec::center, UPolyhedraSide::sUPolyhedraSideEdge::corner, UPolyhedraSide::sUPolyhedraSideEdge::cornNorm, UVector3::Dot(), UPolyhedraSide::sUPolyhedraSideVec::edgeNorm, edgeNorm, UPolyhedraSide::sUPolyhedraSideVec::edges, lenPhi, lenRZ, UPolyhedraSide::sUPolyhedraSideEdge::normal, UPolyhedraSide::sUPolyhedraSideVec::surfPhi, and UPolyhedraSide::sUPolyhedraSideVec::surfRZ.
Referenced by DistanceToOneSide(), and Safety().
|
protected |
Definition at line 956 of file UPolyhedraSide.cc.
References UPolyhedraSide::sUPolyhedraSideVec::center, DistanceAway(), UVector3::Dot(), and UPolyhedraSide::sUPolyhedraSideVec::normal.
Referenced by Inside(), and Normal().
|
virtual |
Implements UVCSGface.
Definition at line 640 of file UPolyhedraSide.cc.
References cone, UPolyhedraSide::sUPolyhedraSideEdge::corner, DBL_MIN, UVector3::Dot(), UPolyhedraSide::sUPolyhedraSideVec::edges, GetPhi(), UUtils::kInfinity, numSide, UVector3::Perp2(), PhiSegment(), vecs, UVector3::z(), UIntersectingCone::ZHi(), and UIntersectingCone::ZLo().
|
protected |
Definition at line 929 of file UPolyhedraSide.cc.
References fPhi, and UVector3::Phi().
Referenced by Extent(), Inside(), Normal(), and Safety().
|
virtual |
Implements UVCSGface.
Definition at line 1207 of file UPolyhedraSide.cc.
References UPolyhedraSide::sUPolyhedraSideEdge::corner, UPolyhedraSide::sUPolyhedraSideVec::edges, GetPointOnPlane(), numSide, UUtils::Random(), and vecs.
UVector3 UPolyhedraSide::GetPointOnPlane | ( | UVector3 | p0, |
UVector3 | p1, | ||
UVector3 | p2, | ||
UVector3 | p3, | ||
double * | Area | ||
) |
Definition at line 1148 of file UPolyhedraSide.cc.
References UUtils::Random(), and SurfaceTriangle().
Referenced by GetPointOnFace(), and SurfaceArea().
|
virtual |
Implements UVCSGface.
Definition at line 589 of file UPolyhedraSide.cc.
References ClosestPhiSegment(), DistanceToOneSide(), VUSolid::eInside, VUSolid::eOutside, VUSolid::eSurface, GetPhi(), and vecs.
|
protected |
Definition at line 726 of file UPolyhedraSide.cc.
References UPolyhedraSide::sUPolyhedraSideVec::center, UPolyhedraSide::sUPolyhedraSideEdge::corner, UVector3::Cross(), UVector3::Dot(), UPolyhedraSide::sUPolyhedraSideVec::edges, lenRZ, UPolyhedraSide::sUPolyhedraSideVec::normal, r, and UPolyhedraSide::sUPolyhedraSideVec::surfRZ.
|
protected |
Definition at line 821 of file UPolyhedraSide.cc.
References cone, UIntersectingCone::LineHitsCone(), n, PhiSegment(), UVector3::x(), and UVector3::y().
Implements UVCSGface.
Definition at line 619 of file UPolyhedraSide.cc.
References ClosestPhiSegment(), DistanceToOneSide(), GetPhi(), UPolyhedraSide::sUPolyhedraSideVec::normal, and vecs.
UPolyhedraSide & UPolyhedraSide::operator= | ( | const UPolyhedraSide & | source | ) |
Definition at line 310 of file UPolyhedraSide.cc.
References cone, CopyStuff(), edges, and vecs.
|
protected |
Definition at line 895 of file UPolyhedraSide.cc.
References deltaPhi, UUtils::kPi, numSide, phiIsOpen, and startPhi.
Referenced by ClosestPhiSegment(), Distance(), Extent(), and LineHitsSegments().
|
virtual |
Implements UVCSGface.
Definition at line 556 of file UPolyhedraSide.cc.
References UPolyhedraSide::sUPolyhedraSideVec::center, ClosestPhiSegment(), DistanceAway(), UVector3::Dot(), GetPhi(), UUtils::kInfinity, CLHEP::normal(), VUSolid::Tolerance(), and vecs.
|
virtual |
Implements UVCSGface.
Definition at line 1171 of file UPolyhedraSide.cc.
References UPolyhedraSide::sUPolyhedraSideEdge::corner, UPolyhedraSide::sUPolyhedraSideVec::edges, fSurfaceArea, GetPointOnPlane(), numSide, and vecs.
Definition at line 1125 of file UPolyhedraSide.cc.
References p1, p2, and UUtils::Random().
Referenced by GetPointOnPlane().
|
friend |
Definition at line 107 of file UPolyhedraSide.hh.
|
protected |
Definition at line 163 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), Distance(), and UPolyhedraSide().
|
protected |
Definition at line 165 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), Distance(), Extent(), LineHitsSegments(), operator=(), UPolyhedraSide(), and ~UPolyhedraSide().
|
protected |
Definition at line 159 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), PhiSegment(), and UPolyhedraSide().
|
protected |
Definition at line 171 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), DistanceAway(), and UPolyhedraSide().
|
protected |
Definition at line 168 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), operator=(), UPolyhedraSide(), and ~UPolyhedraSide().
|
protected |
Definition at line 159 of file UPolyhedraSide.hh.
Referenced by ClosestPhiSegment(), CopyStuff(), and UPolyhedraSide().
|
private |
Definition at line 175 of file UPolyhedraSide.hh.
Referenced by GetPhi(), and UPolyhedraSide().
|
private |
Definition at line 177 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), SurfaceArea(), and UPolyhedraSide().
|
private |
Definition at line 176 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), and UPolyhedraSide().
|
protected |
Definition at line 169 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), Distance(), DistanceAway(), and UPolyhedraSide().
|
protected |
Definition at line 169 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), Distance(), DistanceAway(), IntersectSidePlane(), and UPolyhedraSide().
|
protected |
Definition at line 157 of file UPolyhedraSide.hh.
Referenced by ClosestPhiSegment(), CopyStuff(), Distance(), Extent(), GetPointOnFace(), PhiSegment(), SurfaceArea(), and UPolyhedraSide().
|
protected |
Definition at line 162 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), PhiSegment(), and UPolyhedraSide().
|
protected |
Definition at line 158 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), Distance(), IntersectSidePlane(), and UPolyhedraSide().
|
protected |
Definition at line 159 of file UPolyhedraSide.hh.
Referenced by ClosestPhiSegment(), CopyStuff(), PhiSegment(), and UPolyhedraSide().
|
protected |
Definition at line 167 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), Distance(), Extent(), GetPointOnFace(), Inside(), Normal(), operator=(), Safety(), SurfaceArea(), UPolyhedraSide(), and ~UPolyhedraSide().
|
protected |
Definition at line 158 of file UPolyhedraSide.hh.
Referenced by CopyStuff(), and UPolyhedraSide().