Geant4  10.02.p02
G4PolyhedraSide Class Reference

#include <G4PolyhedraSide.hh>

+ Inheritance diagram for G4PolyhedraSide:
+ Collaboration diagram for G4PolyhedraSide:

Classes

struct  sG4PolyhedraSideEdge
 
struct  sG4PolyhedraSideVec
 

Public Types

typedef struct
G4PolyhedraSide::sG4PolyhedraSideEdge 
G4PolyhedraSideEdge
 
typedef struct
G4PolyhedraSide::sG4PolyhedraSideVec 
G4PolyhedraSideVec
 

Public Member Functions

 G4PolyhedraSide (const G4PolyhedraSideRZ *prevRZ, const G4PolyhedraSideRZ *tail, const G4PolyhedraSideRZ *head, const G4PolyhedraSideRZ *nextRZ, G4int numSide, G4double phiStart, G4double phiTotal, G4bool phiIsOpen, G4bool isAllBehind=false)
 
virtual ~G4PolyhedraSide ()
 
 G4PolyhedraSide (const G4PolyhedraSide &source)
 
G4PolyhedraSideoperator= (const G4PolyhedraSide &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 SurfaceTriangle (G4ThreeVector p1, G4ThreeVector p2, G4ThreeVector p3, G4ThreeVector *p4)
 
G4ThreeVector GetPointOnPlane (G4ThreeVector p0, G4ThreeVector p1, G4ThreeVector p2, G4ThreeVector p3, G4double *Area)
 
G4double SurfaceArea ()
 
G4ThreeVector GetPointOnFace ()
 
 G4PolyhedraSide (__void__ &)
 
G4int GetInstanceID () const
 
- Public Member Functions inherited from G4VCSGface
 G4VCSGface ()
 
virtual ~G4VCSGface ()
 

Static Public Member Functions

static const G4PhSideManagerGetSubInstanceManager ()
 

Protected Member Functions

G4bool IntersectSidePlane (const G4ThreeVector &p, const G4ThreeVector &v, const G4PolyhedraSideVec &vec, G4double normSign, G4double surfTolerance, G4double &distance, G4double &distFromSurface)
 
G4int LineHitsSegments (const G4ThreeVector &p, const G4ThreeVector &v, G4int *i1, G4int *i2)
 
G4int ClosestPhiSegment (G4double phi)
 
G4int PhiSegment (G4double phi)
 
G4double GetPhi (const G4ThreeVector &p)
 
G4double DistanceToOneSide (const G4ThreeVector &p, const G4PolyhedraSideVec &vec, G4double *normDist)
 
G4double DistanceAway (const G4ThreeVector &p, const G4PolyhedraSideVec &vec, G4double *normDist)
 
void CopyStuff (const G4PolyhedraSide &source)
 

Protected Attributes

G4int numSide
 
G4double r [2]
 
G4double z [2]
 
G4double startPhi
 
G4double deltaPhi
 
G4double endPhi
 
G4bool phiIsOpen
 
G4bool allBehind
 
G4IntersectingConecone
 
G4PolyhedraSideVecvecs
 
G4PolyhedraSideEdgeedges
 
G4double lenRZ
 
G4double lenPhi [2]
 
G4double edgeNorm
 

Private Attributes

G4double kCarTolerance
 
G4double fSurfaceArea
 
G4int instanceID
 

Static Private Attributes

static G4GEOM_DLL G4PhSideManager subInstanceManager
 

Friends

struct sG4PolyhedraSideVec
 

Detailed Description

Definition at line 102 of file G4PolyhedraSide.hh.

Member Typedef Documentation

Constructor & Destructor Documentation

G4PolyhedraSide::G4PolyhedraSide ( const G4PolyhedraSideRZ prevRZ,
const G4PolyhedraSideRZ tail,
const G4PolyhedraSideRZ head,
const G4PolyhedraSideRZ nextRZ,
G4int  numSide,
G4double  phiStart,
G4double  phiTotal,
G4bool  phiIsOpen,
G4bool  isAllBehind = false 
)
G4PolyhedraSide::~G4PolyhedraSide ( )
virtual

Definition at line 332 of file G4PolyhedraSide.cc.

References cone, edges, and vecs.

G4PolyhedraSide::G4PolyhedraSide ( const G4PolyhedraSide source)

Definition at line 343 of file G4PolyhedraSide.cc.

References CopyStuff(), G4GeomSplitter< T >::CreateSubInstance(), instanceID, and subInstanceManager.

+ Here is the call graph for this function:

G4PolyhedraSide::G4PolyhedraSide ( __void__ &  )

Definition at line 318 of file G4PolyhedraSide.cc.

References lenPhi, r, and z.

Member Function Documentation

void G4PolyhedraSide::CalculateExtent ( const EAxis  axis,
const G4VoxelLimits voxelLimit,
const G4AffineTransform tranform,
G4SolidExtentList extentList 
)
virtual
G4VCSGface* G4PolyhedraSide::Clone ( )
inlinevirtual

Implements G4VCSGface.

Definition at line 138 of file G4PolyhedraSide.hh.

References G4PolyhedraSide().

+ Here is the call graph for this function:

G4int G4PolyhedraSide::ClosestPhiSegment ( G4double  phi)
protected

Definition at line 944 of file G4PolyhedraSide.cc.

References d1, d2, endPhi, numSide, PhiSegment(), startPhi, and twopi.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4PolyhedraSide::CopyStuff ( const G4PolyhedraSide source)
protected

Definition at line 372 of file G4PolyhedraSide.cc.

References allBehind, cone, deltaPhi, edgeNorm, G4PolyhedraSide::sG4PolyhedraSideVec::edges, edges, endPhi, fSurfaceArea, kCarTolerance, lenPhi, lenRZ, numSide, phiIsOpen, r, startPhi, vecs, and z.

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

+ Here is the caller graph for this function:

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

Implements G4VCSGface.

Definition at line 587 of file G4PolyhedraSide.cc.

References G4PolyhedraSide::sG4PolyhedraSideVec::center, ClosestPhiSegment(), DistanceAway(), GetPhi(), kCarTolerance, kInfinity, CLHEP::normal(), and vecs.

+ Here is the call graph for this function:

G4double G4PolyhedraSide::DistanceAway ( const G4ThreeVector p,
const G4PolyhedraSideVec vec,
G4double normDist 
)
protected
G4double G4PolyhedraSide::DistanceToOneSide ( const G4ThreeVector p,
const G4PolyhedraSideVec vec,
G4double normDist 
)
protected

Definition at line 1041 of file G4PolyhedraSide.cc.

References G4PolyhedraSide::sG4PolyhedraSideVec::center, DistanceAway(), and G4PolyhedraSide::sG4PolyhedraSideVec::normal.

Referenced by Inside(), and Normal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4PolyhedraSide::Extent ( const G4ThreeVector  axis)
virtual

Implements G4VCSGface.

Definition at line 672 of file G4PolyhedraSide.cc.

References cone, G4PolyhedraSide::sG4PolyhedraSideEdge::corner, DBL_MIN, G4PolyhedraSide::sG4PolyhedraSideVec::edges, GetPhi(), kInfinity, numSide, PhiSegment(), vecs, G4IntersectingCone::ZHi(), and G4IntersectingCone::ZLo().

+ Here is the call graph for this function:

G4int G4PolyhedraSide::GetInstanceID ( ) const
inline

Definition at line 161 of file G4PolyhedraSide.hh.

References instanceID.

G4double G4PolyhedraSide::GetPhi ( const G4ThreeVector p)
protected

Definition at line 1014 of file G4PolyhedraSide.cc.

References G4MT_phphi.

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

+ Here is the caller graph for this function:

G4ThreeVector G4PolyhedraSide::GetPointOnFace ( )
virtual

Implements G4VCSGface.

Definition at line 1291 of file G4PolyhedraSide.cc.

References G4PolyhedraSide::sG4PolyhedraSideEdge::corner, G4PolyhedraSide::sG4PolyhedraSideVec::edges, G4UniformRand, GetPointOnPlane(), numSide, and vecs.

+ Here is the call graph for this function:

G4ThreeVector G4PolyhedraSide::GetPointOnPlane ( G4ThreeVector  p0,
G4ThreeVector  p1,
G4ThreeVector  p2,
G4ThreeVector  p3,
G4double Area 
)

Definition at line 1234 of file G4PolyhedraSide.cc.

References G4UniformRand, and SurfaceTriangle().

Referenced by GetPointOnFace(), and SurfaceArea().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const G4PhSideManager & G4PolyhedraSide::GetSubInstanceManager ( )
static

Definition at line 63 of file G4PolyhedraSide.cc.

References subInstanceManager.

Referenced by G4SolidsWorkspace::G4SolidsWorkspace().

+ Here is the caller graph for this function:

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

Implements G4VCSGface.

Definition at line 620 of file G4PolyhedraSide.cc.

References ClosestPhiSegment(), DistanceToOneSide(), GetPhi(), kInside, kOutside, kSurface, and vecs.

+ Here is the call graph for this function:

G4bool G4PolyhedraSide::IntersectSidePlane ( const G4ThreeVector p,
const G4ThreeVector v,
const G4PolyhedraSideVec vec,
G4double  normSign,
G4double  surfTolerance,
G4double distance,
G4double distFromSurface 
)
protected
G4int G4PolyhedraSide::LineHitsSegments ( const G4ThreeVector p,
const G4ThreeVector v,
G4int i1,
G4int i2 
)
protected

Definition at line 898 of file G4PolyhedraSide.cc.

References cone, G4IntersectingCone::LineHitsCone(), n, and PhiSegment().

+ Here is the call graph for this function:

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

Implements G4VCSGface.

Definition at line 651 of file G4PolyhedraSide.cc.

References ClosestPhiSegment(), DistanceToOneSide(), GetPhi(), G4PolyhedraSide::sG4PolyhedraSideVec::normal, and vecs.

+ Here is the call graph for this function:

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

Definition at line 355 of file G4PolyhedraSide.cc.

References cone, CopyStuff(), edges, and vecs.

+ Here is the call graph for this function:

G4int G4PolyhedraSide::PhiSegment ( G4double  phi)
protected

Definition at line 974 of file G4PolyhedraSide.cc.

References deltaPhi, numSide, phiIsOpen, startPhi, and twopi.

Referenced by ClosestPhiSegment(), Extent(), and LineHitsSegments().

+ Here is the caller graph for this function:

G4double G4PolyhedraSide::SurfaceArea ( )
virtual

Implements G4VCSGface.

Definition at line 1256 of file G4PolyhedraSide.cc.

References G4PolyhedraSide::sG4PolyhedraSideEdge::corner, G4PolyhedraSide::sG4PolyhedraSideVec::edges, fSurfaceArea, GetPointOnPlane(), numSide, and vecs.

+ Here is the call graph for this function:

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

Definition at line 1211 of file G4PolyhedraSide.cc.

References G4UniformRand, and w.

Referenced by GetPointOnPlane().

+ Here is the caller graph for this function:

Friends And Related Function Documentation

friend struct sG4PolyhedraSideVec
friend

Definition at line 170 of file G4PolyhedraSide.hh.

Member Data Documentation

G4bool G4PolyhedraSide::allBehind
protected

Definition at line 228 of file G4PolyhedraSide.hh.

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

G4IntersectingCone* G4PolyhedraSide::cone
protected
G4double G4PolyhedraSide::deltaPhi
protected

Definition at line 224 of file G4PolyhedraSide.hh.

Referenced by CopyStuff(), G4PolyhedraSide(), and PhiSegment().

G4double G4PolyhedraSide::edgeNorm
protected

Definition at line 236 of file G4PolyhedraSide.hh.

Referenced by CopyStuff(), DistanceAway(), and G4PolyhedraSide().

G4PolyhedraSideEdge* G4PolyhedraSide::edges
protected

Definition at line 233 of file G4PolyhedraSide.hh.

Referenced by CopyStuff(), G4PolyhedraSide(), operator=(), and ~G4PolyhedraSide().

G4double G4PolyhedraSide::endPhi
protected

Definition at line 224 of file G4PolyhedraSide.hh.

Referenced by ClosestPhiSegment(), CopyStuff(), and G4PolyhedraSide().

G4double G4PolyhedraSide::fSurfaceArea
private

Definition at line 241 of file G4PolyhedraSide.hh.

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

G4int G4PolyhedraSide::instanceID
private

Definition at line 243 of file G4PolyhedraSide.hh.

Referenced by G4PolyhedraSide(), and GetInstanceID().

G4double G4PolyhedraSide::kCarTolerance
private

Definition at line 240 of file G4PolyhedraSide.hh.

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

G4double G4PolyhedraSide::lenPhi[2]
protected

Definition at line 234 of file G4PolyhedraSide.hh.

Referenced by CopyStuff(), DistanceAway(), G4PolyhedraSide(), and Intersect().

G4double G4PolyhedraSide::lenRZ
protected
G4int G4PolyhedraSide::numSide
protected
G4bool G4PolyhedraSide::phiIsOpen
protected

Definition at line 227 of file G4PolyhedraSide.hh.

Referenced by CopyStuff(), G4PolyhedraSide(), and PhiSegment().

G4double G4PolyhedraSide::r[2]
protected

Definition at line 223 of file G4PolyhedraSide.hh.

Referenced by CopyStuff(), G4PolyhedraSide(), Intersect(), and IntersectSidePlane().

G4double G4PolyhedraSide::startPhi
protected

Definition at line 224 of file G4PolyhedraSide.hh.

Referenced by ClosestPhiSegment(), CopyStuff(), G4PolyhedraSide(), and PhiSegment().

G4PhSideManager G4PolyhedraSide::subInstanceManager
staticprivate

Definition at line 245 of file G4PolyhedraSide.hh.

Referenced by G4PolyhedraSide(), and GetSubInstanceManager().

G4double G4PolyhedraSide::z[2]
protected

Definition at line 223 of file G4PolyhedraSide.hh.

Referenced by CopyStuff(), and G4PolyhedraSide().


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