Geant4  10.01.p03
G4PolyPhiFace Class Reference

#include <G4PolyPhiFace.hh>

+ Inheritance diagram for G4PolyPhiFace:
+ Collaboration diagram for G4PolyPhiFace:

Public Member Functions

 G4PolyPhiFace (const G4ReduciblePolygon *rz, G4double phi, G4double deltaPhi, G4double phiOther)
 
virtual ~G4PolyPhiFace ()
 
 G4PolyPhiFace (const G4PolyPhiFace &source)
 
G4PolyPhiFaceoperator= (const G4PolyPhiFace &source)
 
G4bool Intersect (const G4ThreeVector &p, const G4ThreeVector &v, G4bool outgoing, G4double surfTolerance, G4double &distance, G4double &distFromSurface, G4ThreeVector &normal, G4bool &allBehind)
 
G4double Distance (const G4ThreeVector &p, G4bool outgoing)
 
EInside Inside (const G4ThreeVector &p, G4double tolerance, G4double *bestDistance)
 
G4ThreeVector Normal (const G4ThreeVector &p, G4double *bestDistance)
 
G4double Extent (const G4ThreeVector axis)
 
void CalculateExtent (const EAxis axis, const G4VoxelLimits &voxelLimit, const G4AffineTransform &tranform, G4SolidExtentList &extentList)
 
G4VCSGfaceClone ()
 
G4double SurfaceArea ()
 
G4double SurfaceTriangle (G4ThreeVector p1, G4ThreeVector p2, G4ThreeVector p3, G4ThreeVector *p4)
 
G4ThreeVector GetPointOnFace ()
 
 G4PolyPhiFace (__void__ &)
 
void Diagnose (G4VSolid *solid)
 
- Public Member Functions inherited from G4VCSGface
 G4VCSGface ()
 
virtual ~G4VCSGface ()
 

Protected Member Functions

G4bool InsideEdgesExact (G4double r, G4double z, G4double normSign, const G4ThreeVector &p, const G4ThreeVector &v)
 
G4bool InsideEdges (G4double r, G4double z)
 
G4bool InsideEdges (G4double r, G4double z, G4double *distRZ2, G4PolyPhiFaceVertex **base3Dnorm=0, G4ThreeVector **head3Dnorm=0)
 
G4double ExactZOrder (G4double z, G4double qx, G4double qy, G4double qz, const G4ThreeVector &v, G4double normSign, const G4PolyPhiFaceVertex *vert) const
 
void CopyStuff (const G4PolyPhiFace &source)
 
G4double Area2 (G4TwoVector a, G4TwoVector b, G4TwoVector c)
 
G4bool Left (G4TwoVector a, G4TwoVector b, G4TwoVector c)
 
G4bool LeftOn (G4TwoVector a, G4TwoVector b, G4TwoVector c)
 
G4bool Collinear (G4TwoVector a, G4TwoVector b, G4TwoVector c)
 
G4bool IntersectProp (G4TwoVector a, G4TwoVector b, G4TwoVector c, G4TwoVector d)
 
G4bool Between (G4TwoVector a, G4TwoVector b, G4TwoVector c)
 
G4bool Intersect (G4TwoVector a, G4TwoVector b, G4TwoVector c, G4TwoVector d)
 
G4bool Diagonalie (G4PolyPhiFaceVertex *a, G4PolyPhiFaceVertex *b)
 
G4bool InCone (G4PolyPhiFaceVertex *a, G4PolyPhiFaceVertex *b)
 
G4bool Diagonal (G4PolyPhiFaceVertex *a, G4PolyPhiFaceVertex *b)
 
void EarInit ()
 
void Triangulate ()
 

Protected Attributes

G4int numEdges
 
G4PolyPhiFaceEdgeedges
 
G4PolyPhiFaceVertexcorners
 
G4ThreeVector normal
 
G4ThreeVector radial
 
G4ThreeVector surface
 
G4ThreeVector surface_point
 
G4double rMin
 
G4double rMax
 
G4double zMin
 
G4double zMax
 
G4bool allBehind
 
G4double kCarTolerance
 
G4double fSurfaceArea
 
G4PolyPhiFaceVertextriangles
 

Detailed Description

Definition at line 85 of file G4PolyPhiFace.hh.

Constructor & Destructor Documentation

G4PolyPhiFace::~G4PolyPhiFace ( )
virtual

Definition at line 301 of file G4PolyPhiFace.cc.

References corners, and edges.

G4PolyPhiFace::G4PolyPhiFace ( const G4PolyPhiFace source)

Definition at line 311 of file G4PolyPhiFace.cc.

References CopyStuff().

+ Here is the call graph for this function:

G4PolyPhiFace::G4PolyPhiFace ( __void__ &  )

Definition at line 291 of file G4PolyPhiFace.cc.

Member Function Documentation

G4double G4PolyPhiFace::Area2 ( G4TwoVector  a,
G4TwoVector  b,
G4TwoVector  c 
)
protected

Definition at line 960 of file G4PolyPhiFace.cc.

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

+ Here is the caller graph for this function:

G4bool G4PolyPhiFace::Between ( G4TwoVector  a,
G4TwoVector  b,
G4TwoVector  c 
)
protected

Definition at line 1018 of file G4PolyPhiFace.cc.

References Collinear().

Referenced by Intersect().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PolyPhiFace::CalculateExtent ( const EAxis  axis,
const G4VoxelLimits voxelLimit,
const G4AffineTransform tranform,
G4SolidExtentList extentList 
)
virtual

Implements G4VCSGface.

Definition at line 628 of file G4PolyPhiFace.cc.

References G4SolidExtentList::AddSurface(), G4ClippablePolygon::AddVertexInOrder(), corners, normal, numEdges, G4ClippablePolygon::PartialClip(), G4PolyPhiFaceVertex::r, radial, G4ClippablePolygon::SetNormal(), G4AffineTransform::TransformAxis(), G4AffineTransform::TransformPoint(), and G4PolyPhiFaceVertex::z.

+ Here is the call graph for this function:

G4VCSGface* G4PolyPhiFace::Clone ( )
inlinevirtual

Implements G4VCSGface.

G4bool G4PolyPhiFace::Collinear ( G4TwoVector  a,
G4TwoVector  b,
G4TwoVector  c 
)
protected

Definition at line 991 of file G4PolyPhiFace.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 G4PolyPhiFace::CopyStuff ( const G4PolyPhiFace source)
protected

Definition at line 337 of file G4PolyPhiFace.cc.

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

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

+ Here is the caller graph for this function:

void G4PolyPhiFace::Diagnose ( G4VSolid solid)

Definition at line 272 of file G4PolyPhiFace.cc.

References corners, FatalException, G4Exception(), G4VSolid::Inside(), kInside, G4PolyPhiFaceVertex::norm3D, numEdges, G4PolyPhiFaceVertex::x, G4PolyPhiFaceVertex::y, and G4PolyPhiFaceVertex::z.

+ Here is the call graph for this function:

G4bool G4PolyPhiFace::Diagonal ( G4PolyPhiFaceVertex a,
G4PolyPhiFaceVertex b 
)
protected

Definition at line 1118 of file G4PolyPhiFace.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:

G4bool G4PolyPhiFace::Diagonalie ( G4PolyPhiFaceVertex a,
G4PolyPhiFaceVertex b 
)
protected

Definition at line 1057 of file G4PolyPhiFace.cc.

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

Referenced by Diagonal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4PolyPhiFace::Distance ( const G4ThreeVector p,
G4bool  outgoing 
)
virtual

Implements G4VCSGface.

Definition at line 445 of file G4PolyPhiFace.cc.

References InsideEdges(), kCarTolerance, kInfinity, normal, radial, and surface.

+ Here is the call graph for this function:

void G4PolyPhiFace::EarInit ( )
protected

Definition at line 1127 of file G4PolyPhiFace.cc.

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

Referenced by Triangulate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4PolyPhiFace::ExactZOrder ( G4double  z,
G4double  qx,
G4double  qy,
G4double  qz,
const G4ThreeVector v,
G4double  normSign,
const G4PolyPhiFaceVertex vert 
) const
inlineprotected

Referenced by InsideEdgesExact().

+ Here is the caller graph for this function:

G4double G4PolyPhiFace::Extent ( const G4ThreeVector  axis)
virtual

Implements G4VCSGface.

Definition at line 606 of file G4PolyPhiFace.cc.

References corners, kInfinity, G4INCL::Math::max(), numEdges, G4PolyPhiFaceVertex::r, radial, G4PolyPhiFaceVertex::x, and G4PolyPhiFaceVertex::z.

+ Here is the call graph for this function:

G4ThreeVector G4PolyPhiFace::GetPointOnFace ( )
virtual

Implements G4VCSGface.

Definition at line 947 of file G4PolyPhiFace.cc.

References surface_point, and Triangulate().

+ Here is the call graph for this function:

G4bool G4PolyPhiFace::InCone ( G4PolyPhiFaceVertex a,
G4PolyPhiFaceVertex b 
)
protected

Definition at line 1091 of file G4PolyPhiFace.cc.

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

Referenced by Diagonal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

EInside G4PolyPhiFace::Inside ( const G4ThreeVector p,
G4double  tolerance,
G4double bestDistance 
)
virtual

Implements G4VCSGface.

Definition at line 489 of file G4PolyPhiFace.cc.

References InsideEdges(), kInside, kOutside, kSurface, normal, radial, and surface.

+ Here is the call graph for this function:

G4bool G4PolyPhiFace::InsideEdges ( G4double  r,
G4double  z 
)
protected

Definition at line 816 of file G4PolyPhiFace.cc.

References rMax, and zMax.

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

+ Here is the caller graph for this function:

G4bool G4PolyPhiFace::InsideEdgesExact ( G4double  r,
G4double  z,
G4double  normSign,
const G4ThreeVector p,
const G4ThreeVector v 
)
protected

Definition at line 683 of file G4PolyPhiFace.cc.

References corners, ExactZOrder(), kCarTolerance, numEdges, rMax, rMin, G4PolyPhiFaceVertex::x, G4PolyPhiFaceVertex::y, G4PolyPhiFaceVertex::z, zMax, and zMin.

Referenced by Intersect().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4PolyPhiFace::Intersect ( const G4ThreeVector p,
const G4ThreeVector v,
G4bool  outgoing,
G4double  surfTolerance,
G4double distance,
G4double distFromSurface,
G4ThreeVector normal,
G4bool allBehind 
)
virtual

Implements G4VCSGface.

Definition at line 388 of file G4PolyPhiFace.cc.

References allBehind, InsideEdgesExact(), normal, radial, and surface.

Referenced by Diagonalie().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4PolyPhiFace::Intersect ( G4TwoVector  a,
G4TwoVector  b,
G4TwoVector  c,
G4TwoVector  d 
)
protected

Definition at line 1038 of file G4PolyPhiFace.cc.

References Between(), and IntersectProp().

+ Here is the call graph for this function:

G4bool G4PolyPhiFace::IntersectProp ( G4TwoVector  a,
G4TwoVector  b,
G4TwoVector  c,
G4TwoVector  d 
)
protected

Definition at line 1002 of file G4PolyPhiFace.cc.

References Collinear(), and Left().

Referenced by Intersect().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4PolyPhiFace::Left ( G4TwoVector  a,
G4TwoVector  b,
G4TwoVector  c 
)
protected

Definition at line 971 of file G4PolyPhiFace.cc.

References Area2().

Referenced by InCone(), and IntersectProp().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4PolyPhiFace::LeftOn ( G4TwoVector  a,
G4TwoVector  b,
G4TwoVector  c 
)
protected

Definition at line 981 of file G4PolyPhiFace.cc.

References Area2().

Referenced by InCone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4PolyPhiFace::Normal ( const G4ThreeVector p,
G4double bestDistance 
)
virtual

Implements G4VCSGface.

Definition at line 563 of file G4PolyPhiFace.cc.

References InsideEdges(), normal, and radial.

+ Here is the call graph for this function:

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

Definition at line 321 of file G4PolyPhiFace.cc.

References CopyStuff(), corners, and edges.

+ Here is the call graph for this function:

G4double G4PolyPhiFace::SurfaceArea ( )
virtual

Implements G4VCSGface.

Definition at line 938 of file G4PolyPhiFace.cc.

References fSurfaceArea, and Triangulate().

+ Here is the call graph for this function:

G4double G4PolyPhiFace::SurfaceTriangle ( G4ThreeVector  p1,
G4ThreeVector  p2,
G4ThreeVector  p3,
G4ThreeVector p4 
)

Definition at line 919 of file G4PolyPhiFace.cc.

References G4UniformRand, p1, and p2.

Referenced by Triangulate().

+ Here is the caller graph for this function:

void G4PolyPhiFace::Triangulate ( )
protected

Definition at line 1151 of file G4PolyPhiFace.cc.

References corners, Diagonal(), G4PolyPhiFaceVertex::ear, EarInit(), FatalException, fSurfaceArea, G4Exception(), G4UniformRand, n, G4PolyPhiFaceVertex::next, numEdges, p1, p2, G4PolyPhiFaceVertex::prev, G4PolyPhiFaceVertex::r, surface_point, SurfaceTriangle(), triangles, G4PolyPhiFaceVertex::x, G4PolyPhiFaceVertex::y, z, and G4PolyPhiFaceVertex::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

G4bool G4PolyPhiFace::allBehind
protected

Definition at line 231 of file G4PolyPhiFace.hh.

Referenced by CopyStuff(), G4PolyPhiFace(), and Intersect().

G4PolyPhiFaceEdge* G4PolyPhiFace::edges
protected

Definition at line 222 of file G4PolyPhiFace.hh.

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

G4double G4PolyPhiFace::fSurfaceArea
protected

Definition at line 234 of file G4PolyPhiFace.hh.

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

G4double G4PolyPhiFace::kCarTolerance
protected

Definition at line 233 of file G4PolyPhiFace.hh.

Referenced by CopyStuff(), Distance(), G4PolyPhiFace(), and InsideEdgesExact().

G4ThreeVector G4PolyPhiFace::normal
protected
G4int G4PolyPhiFace::numEdges
protected
G4ThreeVector G4PolyPhiFace::radial
protected
G4double G4PolyPhiFace::rMax
protected

Definition at line 229 of file G4PolyPhiFace.hh.

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

G4double G4PolyPhiFace::rMin
protected

Definition at line 229 of file G4PolyPhiFace.hh.

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

G4ThreeVector G4PolyPhiFace::surface
protected

Definition at line 226 of file G4PolyPhiFace.hh.

Referenced by CopyStuff(), Distance(), G4PolyPhiFace(), Inside(), and Intersect().

G4ThreeVector G4PolyPhiFace::surface_point
protected

Definition at line 227 of file G4PolyPhiFace.hh.

Referenced by GetPointOnFace(), and Triangulate().

G4PolyPhiFaceVertex* G4PolyPhiFace::triangles
protected

Definition at line 235 of file G4PolyPhiFace.hh.

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

G4double G4PolyPhiFace::zMax
protected

Definition at line 229 of file G4PolyPhiFace.hh.

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

G4double G4PolyPhiFace::zMin
protected

Definition at line 229 of file G4PolyPhiFace.hh.

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


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