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

#include <geant4/tree/geant4-10.6-release/source/geometry/solids/specific/include/G4VCSGfaceted.hh>

+ Inheritance diagram for G4VCSGfaceted:
+ Collaboration diagram for G4VCSGfaceted:

Public Member Functions

 G4VCSGfaceted (const G4String &name)
 
virtual ~G4VCSGfaceted ()
 
 G4VCSGfaceted (const G4VCSGfaceted &source)
 
G4VCSGfacetedoperator= (const G4VCSGfaceted &source)
 
virtual G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pmin, G4double &pmax) const
 
virtual EInside Inside (const G4ThreeVector &p) const
 
virtual G4ThreeVector SurfaceNormal (const G4ThreeVector &p) const
 
virtual G4double DistanceToIn (const G4ThreeVector &p, const G4ThreeVector &v) const
 
virtual G4double DistanceToIn (const G4ThreeVector &p) const
 
virtual G4double DistanceToOut (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) const
 
virtual G4double DistanceToOut (const G4ThreeVector &p) const
 
virtual G4GeometryType GetEntityType () const
 
virtual std::ostream & StreamInfo (std::ostream &os) const
 
virtual G4PolyhedronCreatePolyhedron () const =0
 
virtual void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
virtual G4VisExtent GetExtent () const
 
virtual G4PolyhedronGetPolyhedron () const
 
G4int GetCubVolStatistics () const
 
G4double GetCubVolEpsilon () const
 
void SetCubVolStatistics (G4int st)
 
void SetCubVolEpsilon (G4double ep)
 
G4int GetAreaStatistics () const
 
G4double GetAreaAccuracy () const
 
void SetAreaStatistics (G4int st)
 
void SetAreaAccuracy (G4double ep)
 
virtual G4double GetCubicVolume ()
 
virtual G4double GetSurfaceArea ()
 
 G4VCSGfaceted (__void__ &)
 
- Public Member Functions inherited from G4VSolid
 G4VSolid (const G4String &name)
 
virtual ~G4VSolid ()
 
G4bool operator== (const G4VSolid &s) const
 
G4String GetName () const
 
void SetName (const G4String &name)
 
G4double GetTolerance () const
 
virtual void BoundingLimits (G4ThreeVector &pMin, G4ThreeVector &pMax) const
 
virtual void ComputeDimensions (G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
 
virtual G4ThreeVector GetPointOnSurface () const
 
virtual G4VSolidClone () const
 
void DumpInfo () const
 
virtual const G4VSolidGetConstituentSolid (G4int no) const
 
virtual G4VSolidGetConstituentSolid (G4int no)
 
virtual const G4DisplacedSolidGetDisplacedSolidPtr () const
 
virtual G4DisplacedSolidGetDisplacedSolidPtr ()
 
 G4VSolid (__void__ &)
 
 G4VSolid (const G4VSolid &rhs)
 
G4VSolidoperator= (const G4VSolid &rhs)
 
G4double EstimateCubicVolume (G4int nStat, G4double epsilon) const
 
G4double EstimateSurfaceArea (G4int nStat, G4double ell) const
 

Protected Member Functions

virtual G4double DistanceTo (const G4ThreeVector &p, const G4bool outgoing) const
 
G4ThreeVector GetPointOnSurfaceGeneric () const
 
void CopyStuff (const G4VCSGfaceted &source)
 
void DeleteStuff ()
 
- Protected Member Functions inherited from G4VSolid
void CalculateClippedPolygonExtent (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const
 
void ClipCrossSection (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const
 
void ClipBetweenSections (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const
 
void ClipPolygon (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis) const
 

Protected Attributes

G4int numFace = 0
 
G4VCSGface ** faces = nullptr
 
G4double fCubicVolume = 0.0
 
G4double fSurfaceArea = 0.0
 
G4bool fRebuildPolyhedron = false
 
G4PolyhedronfpPolyhedron = nullptr
 
- Protected Attributes inherited from G4VSolid
G4double kCarTolerance
 

Private Attributes

G4int fStatistics
 
G4double fCubVolEpsilon
 
G4double fAreaAccuracy
 

Detailed Description

Definition at line 43 of file G4VCSGfaceted.hh.

View newest version in sPHENIX GitHub at line 43 of file G4VCSGfaceted.hh

Constructor & Destructor Documentation

G4VCSGfaceted::G4VCSGfaceted ( const G4String name)

Definition at line 55 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 55 of file G4VCSGfaceted.cc

G4VCSGfaceted::~G4VCSGfaceted ( )
virtual

Definition at line 75 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 75 of file G4VCSGfaceted.cc

References DeleteStuff(), and fpPolyhedron.

+ Here is the call graph for this function:

G4VCSGfaceted::G4VCSGfaceted ( const G4VCSGfaceted source)

Definition at line 85 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 85 of file G4VCSGfaceted.cc

References CopyStuff(), fAreaAccuracy, fCubVolEpsilon, and fStatistics.

+ Here is the call graph for this function:

G4VCSGfaceted::G4VCSGfaceted ( __void__ &  a)

Definition at line 66 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 66 of file G4VCSGfaceted.cc

Member Function Documentation

G4bool G4VCSGfaceted::CalculateExtent ( const EAxis  pAxis,
const G4VoxelLimits pVoxelLimit,
const G4AffineTransform pTransform,
G4double pmin,
G4double pmax 
) const
virtual

Implements G4VSolid.

Reimplemented in G4Polyhedra, G4Polycone, and G4GenericPolycone.

Definition at line 169 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 169 of file G4VCSGfaceted.cc

References G4VCSGface::CalculateExtent(), faces, G4SolidExtentList::GetExtent(), and numFace.

+ Here is the call graph for this function:

void G4VCSGfaceted::CopyStuff ( const G4VCSGfaceted source)
protected

Definition at line 125 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 125 of file G4VCSGfaceted.cc

References G4VCSGface::Clone(), faces, fCubicVolume, fpPolyhedron, fRebuildPolyhedron, fSurfaceArea, and numFace.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual G4Polyhedron* G4VCSGfaceted::CreatePolyhedron ( ) const
pure virtual

Reimplemented from G4VSolid.

Implemented in G4Polyhedra, G4Polycone, and G4GenericPolycone.

Referenced by GetPolyhedron().

+ Here is the caller graph for this function:

void G4VCSGfaceted::DeleteStuff ( )
protected

Definition at line 150 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 150 of file G4VCSGfaceted.cc

References faces, fpPolyhedron, and numFace.

Referenced by operator=(), G4Polycone::Reset(), G4Polyhedra::Reset(), and ~G4VCSGfaceted().

+ Here is the caller graph for this function:

void G4VCSGfaceted::DescribeYourselfTo ( G4VGraphicsScene scene) const
virtual

Implements G4VSolid.

Definition at line 396 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 396 of file G4VCSGfaceted.cc

References G4VGraphicsScene::AddSolid().

+ Here is the call graph for this function:

G4double G4VCSGfaceted::DistanceTo ( const G4ThreeVector p,
const G4bool  outgoing 
) const
protectedvirtual

Definition at line 378 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 378 of file G4VCSGfaceted.cc

References faces, G4VSolid::kCarTolerance, kInfinity, and numFace.

Referenced by DistanceToIn(), and DistanceToOut().

+ Here is the caller graph for this function:

G4double G4VCSGfaceted::DistanceToIn ( const G4ThreeVector p,
const G4ThreeVector v 
) const
virtual

Implements G4VSolid.

Reimplemented in G4Polyhedra, G4Polycone, and G4GenericPolycone.

Definition at line 248 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 248 of file G4VCSGfaceted.cc

References G4VCSGface::Distance(), faces, G4VSolid::kCarTolerance, kInfinity, and numFace.

Referenced by G4GenericPolycone::DistanceToIn(), G4Polycone::DistanceToIn(), and G4Polyhedra::DistanceToIn().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4VCSGfaceted::DistanceToIn ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Reimplemented in G4Polyhedra, G4Polycone, and G4GenericPolycone.

Definition at line 290 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 290 of file G4VCSGfaceted.cc

References DistanceTo().

+ Here is the call graph for this function:

G4double G4VCSGfaceted::DistanceToOut ( const G4ThreeVector p,
const G4ThreeVector v,
const G4bool  calcNorm = false,
G4bool validNorm = nullptr,
G4ThreeVector n = nullptr 
) const
virtual

Implements G4VSolid.

Definition at line 299 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 299 of file G4VCSGfaceted.cc

References G4VCSGface::Distance(), faces, Inside(), G4VSolid::kCarTolerance, kInfinity, kSurface, CLHEP::normal(), and numFace.

+ Here is the call graph for this function:

G4double G4VCSGfaceted::DistanceToOut ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Definition at line 367 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 367 of file G4VCSGfaceted.cc

References DistanceTo().

+ Here is the call graph for this function:

G4double G4VCSGfaceted::GetAreaAccuracy ( ) const

Definition at line 514 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 514 of file G4VCSGfaceted.cc

References fAreaAccuracy.

G4int G4VCSGfaceted::GetAreaStatistics ( ) const

Definition at line 505 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 505 of file G4VCSGfaceted.cc

References fStatistics.

G4double G4VCSGfaceted::GetCubicVolume ( )
virtual

Reimplemented from G4VSolid.

Definition at line 543 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 543 of file G4VCSGfaceted.cc

References G4VSolid::EstimateCubicVolume(), fCubicVolume, fCubVolEpsilon, and fStatistics.

+ Here is the call graph for this function:

G4double G4VCSGfaceted::GetCubVolEpsilon ( ) const

Definition at line 476 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 476 of file G4VCSGfaceted.cc

References fCubVolEpsilon.

G4int G4VCSGfaceted::GetCubVolStatistics ( ) const

Definition at line 467 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 467 of file G4VCSGfaceted.cc

References fStatistics.

G4GeometryType G4VCSGfaceted::GetEntityType ( ) const
virtual

Implements G4VSolid.

Reimplemented in G4Polycone, G4Polyhedra, and G4GenericPolycone.

Definition at line 441 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 441 of file G4VCSGfaceted.cc

G4VisExtent G4VCSGfaceted::GetExtent ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 407 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 407 of file G4VCSGfaceted.cc

References faces, kInfinity, and numFace.

G4ThreeVector G4VCSGfaceted::GetPointOnSurfaceGeneric ( ) const
protected

Definition at line 586 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 586 of file G4VCSGfaceted.cc

References faces, G4UniformRand, numFace, and G4VCSGface::SurfaceArea().

Referenced by G4GenericPolycone::GetPointOnSurface(), and G4Polyhedra::GetPointOnSurface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4Polyhedron * G4VCSGfaceted::GetPolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 565 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 565 of file G4VCSGfaceted.cc

References CreatePolyhedron(), fpPolyhedron, fRebuildPolyhedron, HepPolyhedron::GetNumberOfRotationSteps(), G4Polyhedron::GetNumberOfRotationStepsAtTimeOfCreation(), and G4TemplateAutoLock< _Mutex_t >::unlock().

+ Here is the call graph for this function:

G4double G4VCSGfaceted::GetSurfaceArea ( )
virtual

Reimplemented from G4VSolid.

Definition at line 554 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 554 of file G4VCSGfaceted.cc

References G4VSolid::EstimateSurfaceArea(), fAreaAccuracy, fStatistics, and fSurfaceArea.

+ Here is the call graph for this function:

EInside G4VCSGfaceted::Inside ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Reimplemented in G4Polycone, G4Polyhedra, and G4GenericPolycone.

Definition at line 201 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 201 of file G4VCSGfaceted.cc

References faces, G4VSolid::kCarTolerance, kInfinity, kOutside, kSurface, and numFace.

Referenced by DistanceToOut(), G4GenericPolycone::Inside(), G4Polyhedra::Inside(), and G4Polycone::Inside().

+ Here is the caller graph for this function:

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

Definition at line 99 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 99 of file G4VCSGfaceted.cc

References CopyStuff(), DeleteStuff(), fAreaAccuracy, fCubVolEpsilon, fStatistics, and G4VSolid::operator=().

Referenced by G4GenericPolycone::operator=(), G4Polycone::operator=(), and G4Polyhedra::operator=().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4VCSGfaceted::SetAreaAccuracy ( G4double  ep)

Definition at line 533 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 533 of file G4VCSGfaceted.cc

References fAreaAccuracy, and fSurfaceArea.

void G4VCSGfaceted::SetAreaStatistics ( G4int  st)

Definition at line 523 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 523 of file G4VCSGfaceted.cc

References fStatistics, and fSurfaceArea.

void G4VCSGfaceted::SetCubVolEpsilon ( G4double  ep)

Definition at line 495 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 495 of file G4VCSGfaceted.cc

References fCubicVolume, and fCubVolEpsilon.

void G4VCSGfaceted::SetCubVolStatistics ( G4int  st)

Definition at line 485 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 485 of file G4VCSGfaceted.cc

References fCubicVolume, and fStatistics.

std::ostream & G4VCSGfaceted::StreamInfo ( std::ostream &  os) const
virtual

Implements G4VSolid.

Reimplemented in G4Polyhedra, G4Polycone, and G4GenericPolycone.

Definition at line 450 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 450 of file G4VCSGfaceted.cc

References G4VSolid::GetName(), and numFace.

+ Here is the call graph for this function:

G4ThreeVector G4VCSGfaceted::SurfaceNormal ( const G4ThreeVector p) const
virtual

Implements G4VSolid.

Definition at line 225 of file G4VCSGfaceted.cc.

View newest version in sPHENIX GitHub at line 225 of file G4VCSGfaceted.cc

References faces, kInfinity, CLHEP::normal(), and numFace.

+ Here is the call graph for this function:

Member Data Documentation

G4VCSGface** G4VCSGfaceted::faces = nullptr
protected
G4double G4VCSGfaceted::fAreaAccuracy
private

Definition at line 130 of file G4VCSGfaceted.hh.

View newest version in sPHENIX GitHub at line 130 of file G4VCSGfaceted.hh

Referenced by G4VCSGfaceted(), GetAreaAccuracy(), GetSurfaceArea(), operator=(), and SetAreaAccuracy().

G4double G4VCSGfaceted::fCubicVolume = 0.0
protected

Definition at line 111 of file G4VCSGfaceted.hh.

View newest version in sPHENIX GitHub at line 111 of file G4VCSGfaceted.hh

Referenced by CopyStuff(), GetCubicVolume(), SetCubVolEpsilon(), and SetCubVolStatistics().

G4double G4VCSGfaceted::fCubVolEpsilon
private

Definition at line 129 of file G4VCSGfaceted.hh.

View newest version in sPHENIX GitHub at line 129 of file G4VCSGfaceted.hh

Referenced by G4VCSGfaceted(), GetCubicVolume(), GetCubVolEpsilon(), operator=(), and SetCubVolEpsilon().

G4Polyhedron* G4VCSGfaceted::fpPolyhedron = nullptr
mutableprotected

Definition at line 114 of file G4VCSGfaceted.hh.

View newest version in sPHENIX GitHub at line 114 of file G4VCSGfaceted.hh

Referenced by CopyStuff(), G4GenericPolycone::CopyStuff(), G4Polycone::CopyStuff(), G4Polyhedra::CopyStuff(), DeleteStuff(), GetPolyhedron(), and ~G4VCSGfaceted().

G4bool G4VCSGfaceted::fRebuildPolyhedron = false
mutableprotected

Definition at line 113 of file G4VCSGfaceted.hh.

View newest version in sPHENIX GitHub at line 113 of file G4VCSGfaceted.hh

Referenced by CopyStuff(), G4GenericPolycone::CopyStuff(), G4Polycone::CopyStuff(), G4Polyhedra::CopyStuff(), and GetPolyhedron().

G4int G4VCSGfaceted::fStatistics
private

Definition at line 128 of file G4VCSGfaceted.hh.

View newest version in sPHENIX GitHub at line 128 of file G4VCSGfaceted.hh

Referenced by G4VCSGfaceted(), GetAreaStatistics(), GetCubicVolume(), GetCubVolStatistics(), GetSurfaceArea(), operator=(), SetAreaStatistics(), and SetCubVolStatistics().

G4double G4VCSGfaceted::fSurfaceArea = 0.0
protected

Definition at line 112 of file G4VCSGfaceted.hh.

View newest version in sPHENIX GitHub at line 112 of file G4VCSGfaceted.hh

Referenced by CopyStuff(), GetSurfaceArea(), SetAreaAccuracy(), and SetAreaStatistics().


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