ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4PolyPhiFace Class Reference

#include <geant4/tree/geant4-10.6-release/source/geometry/solids/specific/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=nullptr, G4ThreeVector **head3Dnorm=nullptr)
 
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 = nullptr
 
G4PolyPhiFaceVertexcorners = nullptr
 
G4ThreeVector normal
 
G4ThreeVector radial
 
G4ThreeVector surface
 
G4ThreeVector surface_point
 
G4double rMin
 
G4double rMax
 
G4double zMin
 
G4double zMax
 
G4bool allBehind = false
 
G4double kCarTolerance
 
G4double fSurfaceArea = 0.0
 
G4PolyPhiFaceVertextriangles = nullptr
 

Detailed Description

Definition at line 75 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 75 of file G4PolyPhiFace.hh

Constructor & Destructor Documentation

G4PolyPhiFace::~G4PolyPhiFace ( )
virtual

Definition at line 284 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 284 of file G4PolyPhiFace.cc

References corners, and edges.

G4PolyPhiFace::G4PolyPhiFace ( const G4PolyPhiFace source)

Definition at line 294 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 294 of file G4PolyPhiFace.cc

References CopyStuff().

+ Here is the call graph for this function:

G4PolyPhiFace::G4PolyPhiFace ( __void__ &  )

Definition at line 275 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 275 of file G4PolyPhiFace.cc

Member Function Documentation

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

Definition at line 916 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 916 of file G4PolyPhiFace.cc

References CLHEP::Hep2Vector::x(), and CLHEP::Hep2Vector::y().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 969 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 969 of file G4PolyPhiFace.cc

References Collinear(), CLHEP::Hep2Vector::x(), and CLHEP::Hep2Vector::y().

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 599 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 599 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 944 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 944 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 320 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 320 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 258 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 258 of file G4PolyPhiFace.cc

References corners, E, FatalException, G4Exception(), G4VSolid::Inside(), kInside, G4PolyPhiFaceVertex::norm3D, numEdges, test(), 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 1065 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 1065 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 1006 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 1006 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 424 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 424 of file G4PolyPhiFace.cc

References CLHEP::Hep3Vector::dot(), InsideEdges(), kCarTolerance, kInfinity, normal, ps, r, radial, surface, and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

void G4PolyPhiFace::EarInit ( )
protected

Definition at line 1073 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 1073 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 579 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 579 of file G4PolyPhiFace.cc

References corners, kInfinity, max, numEdges, G4PolyPhiFaceVertex::r, radial, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), G4PolyPhiFaceVertex::z, and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

G4ThreeVector G4PolyPhiFace::GetPointOnFace ( )
virtual

Implements G4VCSGface.

Definition at line 904 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 904 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 1039 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 1039 of file G4PolyPhiFace.cc

References a0, 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 466 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 466 of file G4PolyPhiFace.cc

References CLHEP::Hep3Vector::dot(), InsideEdges(), kInside, kOutside, kSurface, normal, ps, r, radial, surface, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

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

Definition at line 778 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 778 of file G4PolyPhiFace.cc

References rMax, and zMax.

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

+ Here is the caller graph for this function:

G4bool G4PolyPhiFace::InsideEdges ( G4double  r,
G4double  z,
G4double distRZ2,
G4PolyPhiFaceVertex **  base3Dnorm = nullptr,
G4ThreeVector **  head3Dnorm = nullptr 
)
protected
G4bool G4PolyPhiFace::InsideEdgesExact ( G4double  r,
G4double  z,
G4double  normSign,
const G4ThreeVector p,
const G4ThreeVector v 
)
protected

Definition at line 648 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 648 of file G4PolyPhiFace.cc

References corners, ExactZOrder(), kCarTolerance, numEdges, rMax, rMin, G4PolyPhiFaceVertex::x, CLHEP::Hep3Vector::x(), G4PolyPhiFaceVertex::y, CLHEP::Hep3Vector::y(), G4PolyPhiFaceVertex::z, CLHEP::Hep3Vector::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 369 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 369 of file G4PolyPhiFace.cc

References allBehind, CLHEP::Hep3Vector::dot(), InsideEdgesExact(), normal, ps, r, radial, surface, v, and CLHEP::Hep3Vector::z().

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 988 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 988 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 954 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 954 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 926 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 926 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 935 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 935 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 538 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 538 of file G4PolyPhiFace.cc

References CLHEP::Hep3Vector::dot(), InsideEdges(), normal, r, radial, and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

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

Definition at line 304 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 304 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 896 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 896 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 878 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 878 of file G4PolyPhiFace.cc

References G4UniformRand, v, and w.

Referenced by Triangulate().

+ Here is the caller graph for this function:

void G4PolyPhiFace::Triangulate ( )
protected

Definition at line 1096 of file G4PolyPhiFace.cc.

View newest version in sPHENIX GitHub at line 1096 of file G4PolyPhiFace.cc

References corners, Diagonal(), G4PolyPhiFaceVertex::ear, EarInit(), FatalException, fSurfaceArea, G4Exception(), G4UniformRand, n, G4PolyPhiFaceVertex::next, numEdges, G4PolyPhiFaceVertex::prev, G4PolyPhiFaceVertex::r, surface_point, SurfaceTriangle(), triangles, v1, v2, v3, v4, G4PolyPhiFaceVertex::x, x, G4PolyPhiFaceVertex::y, y, G4PolyPhiFaceVertex::z, and 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 = false
protected

Definition at line 221 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 221 of file G4PolyPhiFace.hh

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

G4PolyPhiFaceVertex* G4PolyPhiFace::corners = nullptr
protected

Definition at line 213 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 213 of file G4PolyPhiFace.hh

Referenced by CalculateExtent(), CopyStuff(), Diagnose(), Extent(), G4PolyPhiFace(), InsideEdgesExact(), operator=(), Triangulate(), and ~G4PolyPhiFace().

G4PolyPhiFaceEdge* G4PolyPhiFace::edges = nullptr
protected

Definition at line 212 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 212 of file G4PolyPhiFace.hh

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

G4double G4PolyPhiFace::fSurfaceArea = 0.0
protected

Definition at line 224 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 224 of file G4PolyPhiFace.hh

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

G4double G4PolyPhiFace::kCarTolerance
protected

Definition at line 223 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 223 of file G4PolyPhiFace.hh

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

G4ThreeVector G4PolyPhiFace::normal
protected

Definition at line 214 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 214 of file G4PolyPhiFace.hh

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

G4int G4PolyPhiFace::numEdges
protected

Definition at line 211 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 211 of file G4PolyPhiFace.hh

Referenced by CalculateExtent(), CopyStuff(), Diagnose(), Extent(), G4PolyPhiFace(), InsideEdges(), InsideEdgesExact(), and Triangulate().

G4ThreeVector G4PolyPhiFace::radial
protected

Definition at line 215 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 215 of file G4PolyPhiFace.hh

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

G4double G4PolyPhiFace::rMax
protected

Definition at line 219 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 219 of file G4PolyPhiFace.hh

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

G4double G4PolyPhiFace::rMin
protected

Definition at line 219 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 219 of file G4PolyPhiFace.hh

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

G4ThreeVector G4PolyPhiFace::surface
protected

Definition at line 216 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 216 of file G4PolyPhiFace.hh

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

G4ThreeVector G4PolyPhiFace::surface_point
protected

Definition at line 217 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 217 of file G4PolyPhiFace.hh

Referenced by GetPointOnFace(), and Triangulate().

G4PolyPhiFaceVertex* G4PolyPhiFace::triangles = nullptr
protected

Definition at line 225 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 225 of file G4PolyPhiFace.hh

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

G4double G4PolyPhiFace::zMax
protected

Definition at line 219 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 219 of file G4PolyPhiFace.hh

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

G4double G4PolyPhiFace::zMin
protected

Definition at line 219 of file G4PolyPhiFace.hh.

View newest version in sPHENIX GitHub at line 219 of file G4PolyPhiFace.hh

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


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