Geant4  10.00.p02
UPolyPhiFace Class Reference

#include <UPolyPhiFace.hh>

+ Inheritance diagram for UPolyPhiFace:
+ Collaboration diagram for UPolyPhiFace:

Public Member Functions

 UPolyPhiFace (const UReduciblePolygon *rz, double phi, double deltaPhi, double phiOther)
 
virtual ~UPolyPhiFace ()
 
 UPolyPhiFace (const UPolyPhiFace &source)
 
UPolyPhiFaceoperator= (const UPolyPhiFace &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)
 
UVCSGfaceClone ()
 
double SurfaceArea ()
 
double SurfaceTriangle (UVector3 p1, UVector3 p2, UVector3 p3, UVector3 *p4)
 
UVector3 GetPointOnFace ()
 
 UPolyPhiFace (__void__ &)
 
void Diagnose (VUSolid *solid)
 
- Public Member Functions inherited from UVCSGface
 UVCSGface ()
 
virtual ~UVCSGface ()
 

Protected Member Functions

bool InsideEdgesExact (double r, double z, double normSign, const UVector3 &p, const UVector3 &v)
 
bool InsideEdges (double r, double z)
 
bool InsideEdges (double r, double z, double *distRZ2, UPolyPhiFaceVertex **base3Dnorm=0, UVector3 **head3Dnorm=0)
 
double ExactZOrder (double z, double qx, double qy, double qz, const UVector3 &v, double normSign, const UPolyPhiFaceVertex *vert) const
 
void CopyStuff (const UPolyPhiFace &source)
 
double Area2 (UVector2 a, UVector2 b, UVector2 c)
 
bool Left (UVector2 a, UVector2 b, UVector2 c)
 
bool LeftOn (UVector2 a, UVector2 b, UVector2 c)
 
bool Collinear (UVector2 a, UVector2 b, UVector2 c)
 
bool IntersectProp (UVector2 a, UVector2 b, UVector2 c, UVector2 d)
 
bool Between (UVector2 a, UVector2 b, UVector2 c)
 
bool Intersect (UVector2 a, UVector2 b, UVector2 c, UVector2 d)
 
bool Diagonalie (UPolyPhiFaceVertex *a, UPolyPhiFaceVertex *b)
 
bool InCone (UPolyPhiFaceVertex *a, UPolyPhiFaceVertex *b)
 
bool Diagonal (UPolyPhiFaceVertex *a, UPolyPhiFaceVertex *b)
 
void EarInit ()
 
void Triangulate ()
 

Protected Attributes

int numEdges
 
UPolyPhiFaceEdgeedges
 
UPolyPhiFaceVertexcorners
 
UVector3 normal
 
UVector3 radial
 
UVector3 surface
 
UVector3 surface_point
 
double rMin
 
double rMax
 
double zMin
 
double zMax
 
bool allBehind
 
double fTolerance
 
double fSurfaceArea
 
UPolyPhiFaceVertextriangles
 

Detailed Description

Definition at line 62 of file UPolyPhiFace.hh.

Constructor & Destructor Documentation

UPolyPhiFace::~UPolyPhiFace ( )
virtual

Definition at line 289 of file UPolyPhiFace.cc.

References corners, and edges.

UPolyPhiFace::UPolyPhiFace ( const UPolyPhiFace source)

Definition at line 299 of file UPolyPhiFace.cc.

References CopyStuff().

+ Here is the call graph for this function:

UPolyPhiFace::UPolyPhiFace ( __void__ &  )

Definition at line 279 of file UPolyPhiFace.cc.

Member Function Documentation

double UPolyPhiFace::Area2 ( UVector2  a,
UVector2  b,
UVector2  c 
)
protected

Definition at line 967 of file UPolyPhiFace.cc.

References UVector2::x, and UVector2::y.

Referenced by Collinear(), Left(), and LeftOn().

+ Here is the caller graph for this function:

bool UPolyPhiFace::Between ( UVector2  a,
UVector2  b,
UVector2  c 
)
protected

Definition at line 1028 of file UPolyPhiFace.cc.

References Collinear(), UVector2::x, and UVector2::y.

Referenced by Intersect().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

UVCSGface* UPolyPhiFace::Clone ( )
inlinevirtual

Implements UVCSGface.

bool UPolyPhiFace::Collinear ( UVector2  a,
UVector2  b,
UVector2  c 
)
protected

Definition at line 998 of file UPolyPhiFace.cc.

References Area2().

Referenced by Between(), and IntersectProp().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void UPolyPhiFace::CopyStuff ( const UPolyPhiFace source)
protected

Definition at line 328 of file UPolyPhiFace.cc.

References allBehind, corners, edges, fSurfaceArea, fTolerance, normal, numEdges, radial, rMax, rMin, surface, triangles, UPolyPhiFaceEdge::v0, UPolyPhiFaceEdge::v1, zMax, and zMin.

Referenced by operator=(), and UPolyPhiFace().

+ Here is the caller graph for this function:

void UPolyPhiFace::Diagnose ( VUSolid solid)

Definition at line 257 of file UPolyPhiFace.cc.

References corners, VUSolid::eInside, UUtils::Exception(), FatalError, VUSolid::Inside(), UPolyPhiFaceVertex::norm3D, numEdges, UPolyPhiFaceVertex::x, UPolyPhiFaceVertex::y, and UPolyPhiFaceVertex::z.

+ Here is the call graph for this function:

bool UPolyPhiFace::Diagonal ( UPolyPhiFaceVertex a,
UPolyPhiFaceVertex b 
)
protected

Definition at line 1143 of file UPolyPhiFace.cc.

References Diagonalie(), and InCone().

Referenced by EarInit(), and Triangulate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool UPolyPhiFace::Diagonalie ( UPolyPhiFaceVertex a,
UPolyPhiFaceVertex b 
)
protected

Definition at line 1076 of file UPolyPhiFace.cc.

References Intersect(), UPolyPhiFaceVertex::next, UPolyPhiFaceVertex::r, triangles, and UPolyPhiFaceVertex::z.

Referenced by Diagonal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool UPolyPhiFace::Distance ( const UVector3 p,
const UVector3 v,
bool  outgoing,
double  surfTolerance,
double &  distance,
double &  distFromSurface,
UVector3 normal,
bool &  allBehind 
)
virtual

Implements UVCSGface.

Definition at line 381 of file UPolyPhiFace.cc.

References allBehind, UVector3::Dot(), InsideEdgesExact(), normal, radial, surface, and UVector3::z.

+ Here is the call graph for this function:

void UPolyPhiFace::EarInit ( )
protected

Definition at line 1152 of file UPolyPhiFace.cc.

References Diagonal(), UPolyPhiFaceVertex::ear, UPolyPhiFaceVertex::next, UPolyPhiFaceVertex::prev, and triangles.

Referenced by Triangulate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double UPolyPhiFace::ExactZOrder ( double  z,
double  qx,
double  qy,
double  qz,
const UVector3 v,
double  normSign,
const UPolyPhiFaceVertex vert 
) const
inlineprotected

Referenced by InsideEdgesExact().

+ Here is the caller graph for this function:

double UPolyPhiFace::Extent ( const UVector3  axis)
virtual

Implements UVCSGface.

Definition at line 599 of file UPolyPhiFace.cc.

References corners, UUtils::kInfinity, G4INCL::Math::max(), numEdges, UPolyPhiFaceVertex::r, radial, UVector3::x, UVector3::y, UPolyPhiFaceVertex::z, and UVector3::z.

+ Here is the call graph for this function:

UVector3 UPolyPhiFace::GetPointOnFace ( )
virtual

Implements UVCSGface.

Definition at line 954 of file UPolyPhiFace.cc.

References surface_point, and Triangulate().

+ Here is the call graph for this function:

bool UPolyPhiFace::InCone ( UPolyPhiFaceVertex a,
UPolyPhiFaceVertex b 
)
protected

Definition at line 1114 of file UPolyPhiFace.cc.

References a0, a1, Left(), LeftOn(), UPolyPhiFaceVertex::next, UPolyPhiFaceVertex::prev, UPolyPhiFaceVertex::r, and UPolyPhiFaceVertex::z.

Referenced by Diagonal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

VUSolid::EnumInside UPolyPhiFace::Inside ( const UVector3 p,
double  tolerance,
double *  bestDistance 
)
virtual

Implements UVCSGface.

Definition at line 482 of file UPolyPhiFace.cc.

References UVector3::Dot(), VUSolid::eInside, VUSolid::eOutside, VUSolid::eSurface, InsideEdges(), normal, UPolyPhiFaceVertex::r, radial, surface, UVector3::x, UVector3::y, UPolyPhiFaceVertex::z, and UVector3::z.

+ Here is the call graph for this function:

bool UPolyPhiFace::InsideEdges ( double  r,
double  z 
)
protected

Definition at line 819 of file UPolyPhiFace.cc.

References rMax, and zMax.

Referenced by Inside(), Normal(), and Safety().

+ Here is the caller graph for this function:

bool UPolyPhiFace::InsideEdgesExact ( double  r,
double  z,
double  normSign,
const UVector3 p,
const UVector3 v 
)
protected

Definition at line 678 of file UPolyPhiFace.cc.

References corners, ExactZOrder(), numEdges, rMax, rMin, VUSolid::Tolerance(), UPolyPhiFaceVertex::x, UVector3::x, UPolyPhiFaceVertex::y, UVector3::y, UPolyPhiFaceVertex::z, UVector3::z, zMax, and zMin.

Referenced by Distance().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool UPolyPhiFace::Intersect ( UVector2  a,
UVector2  b,
UVector2  c,
UVector2  d 
)
protected

Definition at line 1051 of file UPolyPhiFace.cc.

References Between(), and IntersectProp().

Referenced by Diagonalie().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool UPolyPhiFace::IntersectProp ( UVector2  a,
UVector2  b,
UVector2  c,
UVector2  d 
)
protected

Definition at line 1009 of file UPolyPhiFace.cc.

References Collinear(), and Left().

Referenced by Intersect().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool UPolyPhiFace::Left ( UVector2  a,
UVector2  b,
UVector2  c 
)
protected

Definition at line 978 of file UPolyPhiFace.cc.

References Area2().

Referenced by InCone(), and IntersectProp().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool UPolyPhiFace::LeftOn ( UVector2  a,
UVector2  b,
UVector2  c 
)
protected

Definition at line 988 of file UPolyPhiFace.cc.

References Area2().

Referenced by InCone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

UVector3 UPolyPhiFace::Normal ( const UVector3 p,
double *  bestDistance 
)
virtual

Implements UVCSGface.

Definition at line 556 of file UPolyPhiFace.cc.

References UVector3::Dot(), InsideEdges(), normal, radial, and UVector3::z.

+ Here is the call graph for this function:

UPolyPhiFace & UPolyPhiFace::operator= ( const UPolyPhiFace source)

Definition at line 309 of file UPolyPhiFace.cc.

References CopyStuff(), corners, and edges.

+ Here is the call graph for this function:

double UPolyPhiFace::Safety ( const UVector3 p,
bool  outgoing 
)
virtual

Implements UVCSGface.

Definition at line 438 of file UPolyPhiFace.cc.

References UVector3::Dot(), InsideEdges(), UUtils::kInfinity, normal, radial, surface, VUSolid::Tolerance(), and UVector3::z.

+ Here is the call graph for this function:

double UPolyPhiFace::SurfaceArea ( )
virtual

Implements UVCSGface.

Definition at line 942 of file UPolyPhiFace.cc.

References fSurfaceArea, and Triangulate().

+ Here is the call graph for this function:

double UPolyPhiFace::SurfaceTriangle ( UVector3  p1,
UVector3  p2,
UVector3  p3,
UVector3 p4 
)

Definition at line 923 of file UPolyPhiFace.cc.

References UUtils::Random().

Referenced by Triangulate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void UPolyPhiFace::Triangulate ( )
protected

Definition at line 1177 of file UPolyPhiFace.cc.

References corners, Diagonal(), UPolyPhiFaceVertex::ear, EarInit(), UUtils::Exception(), FatalError, fSurfaceArea, n, UPolyPhiFaceVertex::next, numEdges, UPolyPhiFaceVertex::prev, UPolyPhiFaceVertex::r, UUtils::Random(), surface_point, SurfaceTriangle(), triangles, UPolyPhiFaceVertex::x, UPolyPhiFaceVertex::y, z, and UPolyPhiFaceVertex::z.

Referenced by GetPointOnFace(), and SurfaceArea().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

bool UPolyPhiFace::allBehind
protected

Definition at line 210 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), Distance(), and UPolyPhiFace().

UPolyPhiFaceVertex* UPolyPhiFace::corners
protected
UPolyPhiFaceEdge* UPolyPhiFace::edges
protected

Definition at line 201 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), InsideEdges(), operator=(), UPolyPhiFace(), and ~UPolyPhiFace().

double UPolyPhiFace::fSurfaceArea
protected

Definition at line 213 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), SurfaceArea(), and Triangulate().

double UPolyPhiFace::fTolerance
protected

Definition at line 212 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), and UPolyPhiFace().

UVector3 UPolyPhiFace::normal
protected

Definition at line 203 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), Distance(), Inside(), Normal(), Safety(), and UPolyPhiFace().

int UPolyPhiFace::numEdges
protected
UVector3 UPolyPhiFace::radial
protected

Definition at line 204 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), Distance(), Extent(), Inside(), Normal(), Safety(), and UPolyPhiFace().

double UPolyPhiFace::rMax
protected

Definition at line 208 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), InsideEdges(), InsideEdgesExact(), and UPolyPhiFace().

double UPolyPhiFace::rMin
protected

Definition at line 208 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), InsideEdgesExact(), and UPolyPhiFace().

UVector3 UPolyPhiFace::surface
protected

Definition at line 205 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), Distance(), Inside(), Safety(), and UPolyPhiFace().

UVector3 UPolyPhiFace::surface_point
protected

Definition at line 206 of file UPolyPhiFace.hh.

Referenced by GetPointOnFace(), and Triangulate().

UPolyPhiFaceVertex* UPolyPhiFace::triangles
protected

Definition at line 214 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), Diagonalie(), EarInit(), and Triangulate().

double UPolyPhiFace::zMax
protected

Definition at line 208 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), InsideEdges(), InsideEdgesExact(), and UPolyPhiFace().

double UPolyPhiFace::zMin
protected

Definition at line 208 of file UPolyPhiFace.hh.

Referenced by CopyStuff(), InsideEdgesExact(), and UPolyPhiFace().


The documentation for this class was generated from the following files: