Geant4  10.02
G4TessellatedSolid Class Reference

#include <G4TessellatedSolid.hh>

+ Inheritance diagram for G4TessellatedSolid:
+ Collaboration diagram for G4TessellatedSolid:

Public Member Functions

 G4TessellatedSolid ()
 
virtual ~G4TessellatedSolid ()
 
 G4TessellatedSolid (const G4String &name)
 
 G4TessellatedSolid (__void__ &)
 
 G4TessellatedSolid (const G4TessellatedSolid &ts)
 
G4TessellatedSolidoperator= (const G4TessellatedSolid &right)
 
G4TessellatedSolidoperator+= (const G4TessellatedSolid &right)
 
G4bool AddFacet (G4VFacet *aFacet)
 
G4VFacetGetFacet (G4int i) const
 
G4int GetNumberOfFacets () 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
 
virtual G4double DistanceToOut (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm, G4bool *validNorm, G4ThreeVector *norm) const
 
virtual G4bool Normal (const G4ThreeVector &p, G4ThreeVector &n) const
 
virtual G4double SafetyFromOutside (const G4ThreeVector &p, G4bool aAccurate=false) const
 
virtual G4double SafetyFromInside (const G4ThreeVector &p, G4bool aAccurate=false) const
 
virtual G4GeometryType GetEntityType () const
 
virtual std::ostream & StreamInfo (std::ostream &os) const
 
virtual G4VSolidClone () const
 
virtual G4ThreeVector GetPointOnSurface () const
 
virtual G4double GetSurfaceArea ()
 
virtual G4double GetCubicVolume ()
 
void SetSolidClosed (const G4bool t)
 
G4bool GetSolidClosed () const
 
void SetMaxVoxels (G4int max)
 
G4SurfaceVoxelizerGetVoxels ()
 
virtual G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
 
G4double GetMinXExtent () const
 
G4double GetMaxXExtent () const
 
G4double GetMinYExtent () const
 
G4double GetMaxYExtent () const
 
G4double GetMinZExtent () const
 
G4double GetMaxZExtent () const
 
G4ThreeVectorListCreateRotatedVertices (const G4AffineTransform &pT) const
 
virtual G4PolyhedronCreatePolyhedron () const
 
virtual G4PolyhedronGetPolyhedron () const
 
virtual void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
virtual G4VisExtent GetExtent () const
 
G4int AllocatedMemoryWithoutVoxels ()
 
G4int AllocatedMemory ()
 
void DisplayAllocatedMemory ()
 
- 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 ComputeDimensions (G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
 
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
 

Private Member Functions

void Initialize ()
 
G4double DistanceToOutNoVoxels (const G4ThreeVector &p, const G4ThreeVector &v, G4ThreeVector &aNormalVector, G4bool &aConvex, G4double aPstep=kInfinity) const
 
G4double DistanceToInCandidates (const std::vector< G4int > &candidates, const G4ThreeVector &aPoint, const G4ThreeVector &aDirection) const
 
void DistanceToOutCandidates (const std::vector< G4int > &candidates, const G4ThreeVector &aPoint, const G4ThreeVector &direction, G4double &minDist, G4ThreeVector &minNormal, G4int &minCandidate) const
 
G4double DistanceToInNoVoxels (const G4ThreeVector &p, const G4ThreeVector &v, G4double aPstep=kInfinity) const
 
void SetExtremeFacets ()
 
EInside InsideNoVoxels (const G4ThreeVector &p) const
 
EInside InsideVoxels (const G4ThreeVector &aPoint) const
 
void Voxelize ()
 
void CreateVertexList ()
 
void PrecalculateInsides ()
 
void SetRandomVectors ()
 
G4double DistanceToInCore (const G4ThreeVector &p, const G4ThreeVector &v, G4double aPstep=kInfinity) const
 
G4double DistanceToOutCore (const G4ThreeVector &p, const G4ThreeVector &v, G4ThreeVector &aNormalVector, G4bool &aConvex, G4double aPstep=kInfinity) const
 
G4int SetAllUsingStack (const std::vector< G4int > &voxel, const std::vector< G4int > &max, G4bool status, G4SurfBits &checked)
 
void DeleteObjects ()
 
void CopyObjects (const G4TessellatedSolid &s)
 
G4double MinDistanceFacet (const G4ThreeVector &p, G4bool simple, G4VFacet *&facet) const
 
G4bool OutsideOfExtent (const G4ThreeVector &p, G4double tolerance=0) const
 

Static Private Member Functions

static G4bool CompareSortedVoxel (const std::pair< G4int, G4double > &l, const std::pair< G4int, G4double > &r)
 

Private Attributes

G4bool fRebuildPolyhedron
 
G4PolyhedronfpPolyhedron
 
std::vector< G4VFacet * > fFacets
 
std::set< G4VFacet * > fExtremeFacets
 
G4GeometryType fGeometryType
 
G4double fCubicVolume
 
G4double fSurfaceArea
 
std::vector< G4ThreeVectorfVertexList
 
std::set< G4VertexInfo,
G4VertexComparator
fFacetList
 
G4ThreeVector fMinExtent
 
G4ThreeVector fMaxExtent
 
G4bool fSolidClosed
 
std::vector< G4ThreeVectorfRandir
 
G4double kCarToleranceHalf
 
G4int fMaxTries
 
G4SurfaceVoxelizer fVoxels
 
G4SurfBits fInsides
 

Additional Inherited Members

- 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 inherited from G4VSolid
G4double kCarTolerance
 

Detailed Description

Definition at line 128 of file G4TessellatedSolid.hh.

Constructor & Destructor Documentation

G4TessellatedSolid::G4TessellatedSolid ( )

Definition at line 108 of file G4TessellatedSolid.cc.

References Initialize().

Referenced by Clone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4TessellatedSolid::~G4TessellatedSolid ( )
virtual

Definition at line 138 of file G4TessellatedSolid.cc.

References DeleteObjects().

+ Here is the call graph for this function:

G4TessellatedSolid::G4TessellatedSolid ( const G4String name)

Definition at line 118 of file G4TessellatedSolid.cc.

References Initialize().

+ Here is the call graph for this function:

G4TessellatedSolid::G4TessellatedSolid ( __void__ &  a)

Definition at line 129 of file G4TessellatedSolid.cc.

References fMaxExtent, fMinExtent, and Initialize().

+ Here is the call graph for this function:

G4TessellatedSolid::G4TessellatedSolid ( const G4TessellatedSolid ts)

Definition at line 147 of file G4TessellatedSolid.cc.

References CopyObjects(), and Initialize().

+ Here is the call graph for this function:

Member Function Documentation

G4bool G4TessellatedSolid::AddFacet ( G4VFacet aFacet)

Definition at line 229 of file G4TessellatedSolid.cc.

References fFacetList, fFacets, fSolidClosed, G4cout, G4Exception(), G4VFacet::GetCircumcentre(), G4VertexInfo::id, G4VFacet::IsDefined(), JustWarning, G4VSolid::kCarTolerance, G4VertexInfo::mag2, OutsideOfExtent(), pos, and G4VFacet::StreamInfo().

Referenced by G4ExtrudedSolid::AddGeneralPolygonFacets(), CopyObjects(), G4GenericTrap::CreateTessellatedSolid(), G4tgbVolume::FindOrConstructG4Solid(), G4ExtrudedSolid::MakeFacets(), operator+=(), and G4GDMLReadSolids::TessellatedRead().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4TessellatedSolid::AllocatedMemory ( )

Definition at line 2086 of file G4TessellatedSolid.cc.

References G4SurfaceVoxelizer::AllocatedMemory(), AllocatedMemoryWithoutVoxels(), fInsides, fVoxels, and G4SurfBits::GetNbytes().

Referenced by DisplayAllocatedMemory().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4TessellatedSolid::AllocatedMemoryWithoutVoxels ( )

Definition at line 2060 of file G4TessellatedSolid.cc.

References G4VFacet::AllocatedMemory(), fExtremeFacets, fFacets, fRandir, and fVertexList.

Referenced by AllocatedMemory(), and DisplayAllocatedMemory().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4TessellatedSolid::CalculateExtent ( const EAxis  pAxis,
const G4VoxelLimits pVoxelLimit,
const G4AffineTransform pTransform,
G4double pMin,
G4double pMax 
) const
virtual

Implements G4VSolid.

Definition at line 1824 of file G4TessellatedSolid.cc.

References G4AffineTransform::ApplyPointTransform(), fVertexList, G4VoxelLimits::GetMaxExtent(), G4VoxelLimits::GetMinExtent(), G4VoxelLimits::IsLimited(), G4VSolid::kCarTolerance, kInfinity, kXAxis, kYAxis, kZAxis, and Y().

Referenced by G4GenericTrap::CalculateExtent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4VSolid * G4TessellatedSolid::Clone ( ) const
virtual

Reimplemented from G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1620 of file G4TessellatedSolid.cc.

References G4TessellatedSolid().

+ Here is the call graph for this function:

G4bool G4TessellatedSolid::CompareSortedVoxel ( const std::pair< G4int, G4double > &  l,
const std::pair< G4int, G4double > &  r 
)
staticprivate

Definition at line 1423 of file G4TessellatedSolid.cc.

Referenced by MinDistanceFacet().

+ Here is the caller graph for this function:

void G4TessellatedSolid::CopyObjects ( const G4TessellatedSolid s)
private

Definition at line 206 of file G4TessellatedSolid.cc.

References AddFacet(), fVoxels, GetFacet(), G4SurfaceVoxelizer::GetMaxVoxels(), GetNumberOfFacets(), GetSolidClosed(), n, G4SurfaceVoxelizer::SetMaxVoxels(), and SetSolidClosed().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4Polyhedron * G4TessellatedSolid::CreatePolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1765 of file G4TessellatedSolid.cc.

References G4PolyhedronArbitrary::AddFacet(), G4PolyhedronArbitrary::AddVertex(), fFacets, fVertexList, G4VFacet::GetNumberOfVertices(), G4VFacet::GetVertexIndex(), n, and G4PolyhedronArbitrary::SetReferences().

Referenced by G4GenericTrap::CreatePolyhedron(), and GetPolyhedron().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVectorList* G4TessellatedSolid::CreateRotatedVertices ( const G4AffineTransform pT) const
void G4TessellatedSolid::CreateVertexList ( )
private

Definition at line 441 of file G4TessellatedSolid.cc.

References fFacets, fMaxExtent, fMinExtent, fVertexList, G4cout, G4endl, G4VFacet::GetNumberOfVertices(), G4VFacet::GetVertex(), G4VertexInfo::id, G4VSolid::kCarTolerance, G4VertexInfo::mag2, G4INCL::Math::max(), OutsideOfExtent(), pos, G4VFacet::SetVertexIndex(), and G4VFacet::SetVertices().

Referenced by SetSolidClosed().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::DeleteObjects ( )
private

Definition at line 196 of file G4TessellatedSolid.cc.

References fFacets, and fpPolyhedron.

Referenced by operator=(), and ~G4TessellatedSolid().

+ Here is the caller graph for this function:

void G4TessellatedSolid::DescribeYourselfTo ( G4VGraphicsScene scene) const
virtual

Implements G4VSolid.

Definition at line 1758 of file G4TessellatedSolid.cc.

References G4VGraphicsScene::AddSolid().

Referenced by G4GenericTrap::DescribeYourselfTo().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::DisplayAllocatedMemory ( )

Definition at line 576 of file G4TessellatedSolid.cc.

References AllocatedMemory(), AllocatedMemoryWithoutVoxels(), G4cout, and G4endl.

Referenced by SetSolidClosed().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Definition at line 1673 of file G4TessellatedSolid.cc.

References DistanceToInCore(), G4endl, G4Exception(), G4VSolid::GetName(), Inside(), JustWarning, kInfinity, and kSurface.

Referenced by G4GenericTrap::DistanceToIn(), DistanceToOutNoVoxels(), and SafetyFromInside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Definition at line 1666 of file G4TessellatedSolid.cc.

References SafetyFromOutside().

+ Here is the call graph for this function:

G4double G4TessellatedSolid::DistanceToInCandidates ( const std::vector< G4int > &  candidates,
const G4ThreeVector aPoint,
const G4ThreeVector aDirection 
) const
private

Definition at line 1321 of file G4TessellatedSolid.cc.

References fFacets, G4VFacet::Intersect(), kCarToleranceHalf, kInfinity, and CLHEP::normal().

Referenced by DistanceToInCore().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::DistanceToInCore ( const G4ThreeVector p,
const G4ThreeVector v,
G4double  aPstep = kInfinity 
) const
private

Definition at line 1369 of file G4TessellatedSolid.cc.

References G4SurfaceVoxelizer::DistanceToFirst(), DistanceToInCandidates(), DistanceToInNoVoxels(), G4SurfaceVoxelizer::DistanceToNext(), fVoxels, G4SurfaceVoxelizer::GetCandidates(), G4SurfaceVoxelizer::GetCountOfVoxels(), G4SurfaceVoxelizer::GetVoxel(), G4VSolid::kCarTolerance, kInfinity, and G4SurfaceVoxelizer::UpdateCurrentVoxel().

Referenced by DistanceToIn().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::DistanceToInNoVoxels ( const G4ThreeVector p,
const G4ThreeVector v,
G4double  aPstep = kInfinity 
) const
private

Definition at line 1071 of file G4TessellatedSolid.cc.

References DistanceToOut(), fFacets, G4endl, G4Exception(), Inside(), G4VFacet::Intersect(), JustWarning, kCarToleranceHalf, kInfinity, kInside, mm, and CLHEP::normal().

Referenced by DistanceToInCore().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1701 of file G4TessellatedSolid.cc.

References SafetyFromInside().

Referenced by DistanceToInNoVoxels(), G4GenericTrap::DistanceToOut(), G4ExtrudedSolid::DistanceToOut(), and SafetyFromOutside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::DistanceToOut ( const G4ThreeVector p,
const G4ThreeVector v,
const G4bool  calcNorm,
G4bool validNorm,
G4ThreeVector norm 
) const
virtual

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1724 of file G4TessellatedSolid.cc.

References DistanceToOutCore(), G4endl, G4Exception(), G4VSolid::GetName(), Inside(), JustWarning, kInfinity, kSurface, and n.

+ Here is the call graph for this function:

void G4TessellatedSolid::DistanceToOutCandidates ( const std::vector< G4int > &  candidates,
const G4ThreeVector aPoint,
const G4ThreeVector direction,
G4double minDist,
G4ThreeVector minNormal,
G4int minCandidate 
) const
private

Definition at line 1208 of file G4TessellatedSolid.cc.

References G4VFacet::Distance(), fFacets, G4VFacet::Intersect(), G4VSolid::kCarTolerance, kCarToleranceHalf, and CLHEP::normal().

Referenced by DistanceToOutCore().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::DistanceToOutCore ( const G4ThreeVector p,
const G4ThreeVector v,
G4ThreeVector aNormalVector,
G4bool aConvex,
G4double  aPstep = kInfinity 
) const
private

Definition at line 1248 of file G4TessellatedSolid.cc.

References G4SurfaceVoxelizer::Contains(), G4SurfaceVoxelizer::DistanceToNext(), DistanceToOutCandidates(), DistanceToOutNoVoxels(), fExtremeFacets, fFacets, fVoxels, G4SurfaceVoxelizer::GetCandidates(), G4SurfaceVoxelizer::GetCountOfVoxels(), G4SurfaceVoxelizer::GetVoxel(), G4VSolid::kCarTolerance, kInfinity, Normal(), and G4SurfaceVoxelizer::UpdateCurrentVoxel().

Referenced by DistanceToOut().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::DistanceToOutNoVoxels ( const G4ThreeVector p,
const G4ThreeVector v,
G4ThreeVector aNormalVector,
G4bool aConvex,
G4double  aPstep = kInfinity 
) const
private

Definition at line 1137 of file G4TessellatedSolid.cc.

References G4VFacet::Distance(), DistanceToIn(), fExtremeFacets, fFacets, G4endl, G4Exception(), Inside(), G4VFacet::Intersect(), JustWarning, G4VSolid::kCarTolerance, kCarToleranceHalf, kInfinity, kOutside, mm, CLHEP::normal(), and Normal().

Referenced by DistanceToOutCore().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetCubicVolume ( )
virtual

Reimplemented from G4VSolid.

Definition at line 1957 of file G4TessellatedSolid.cc.

References fCubicVolume, fFacets, G4VFacet::GetArea(), G4VFacet::GetSurfaceNormal(), and G4VFacet::GetVertex().

+ Here is the call graph for this function:

G4GeometryType G4TessellatedSolid::GetEntityType ( ) const
virtual

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1591 of file G4TessellatedSolid.cc.

References fGeometryType.

G4VisExtent G4TessellatedSolid::GetExtent ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1950 of file G4TessellatedSolid.cc.

References fMaxExtent, and fMinExtent.

Referenced by G4GenericTrap::GetExtent().

+ Here is the caller graph for this function:

G4VFacet * G4TessellatedSolid::GetFacet ( G4int  i) const
inline

Definition at line 303 of file G4TessellatedSolid.hh.

References fFacets.

Referenced by CopyObjects(), operator+=(), and G4GDMLWriteSolids::TessellatedWrite().

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMaxXExtent ( ) const

Definition at line 1915 of file G4TessellatedSolid.cc.

References fMaxExtent.

Referenced by G4ExtrudedSolid::Inside().

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMaxYExtent ( ) const

Definition at line 1929 of file G4TessellatedSolid.cc.

References fMaxExtent.

Referenced by G4ExtrudedSolid::Inside().

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMaxZExtent ( ) const

Definition at line 1943 of file G4TessellatedSolid.cc.

References fMaxExtent.

Referenced by G4ExtrudedSolid::Inside().

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMinXExtent ( ) const

Definition at line 1908 of file G4TessellatedSolid.cc.

References fMinExtent.

Referenced by G4ExtrudedSolid::Inside().

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMinYExtent ( ) const

Definition at line 1922 of file G4TessellatedSolid.cc.

References fMinExtent.

Referenced by G4ExtrudedSolid::Inside().

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetMinZExtent ( ) const

Definition at line 1936 of file G4TessellatedSolid.cc.

References fMinExtent.

Referenced by G4ExtrudedSolid::Inside().

+ Here is the caller graph for this function:

G4int G4TessellatedSolid::GetNumberOfFacets ( ) const

Definition at line 648 of file G4TessellatedSolid.cc.

References fFacets.

Referenced by CopyObjects(), operator+=(), and G4GDMLWriteSolids::TessellatedWrite().

+ Here is the caller graph for this function:

G4ThreeVector G4TessellatedSolid::GetPointOnSurface ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1994 of file G4TessellatedSolid.cc.

References fFacets, and G4INCL::DeJongSpin::shoot().

Referenced by G4GenericTrap::GetPointOnSurface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4Polyhedron * G4TessellatedSolid::GetPolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1801 of file G4TessellatedSolid.cc.

References CreatePolyhedron(), fpPolyhedron, fRebuildPolyhedron, G4Polyhedron::GetNumberOfRotationStepsAtTimeOfCreation(), and G4TemplateAutoLock< M, L, U >::unlock().

Referenced by G4GenericTrap::GetPolyhedron().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4TessellatedSolid::GetSolidClosed ( ) const

Definition at line 620 of file G4TessellatedSolid.cc.

References fSolidClosed.

Referenced by CopyObjects().

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::GetSurfaceArea ( )
virtual

Reimplemented from G4VSolid.

Definition at line 1979 of file G4TessellatedSolid.cc.

References fFacets, fSurfaceArea, and G4VFacet::GetArea().

+ Here is the call graph for this function:

G4SurfaceVoxelizer & G4TessellatedSolid::GetVoxels ( )
inline

Definition at line 313 of file G4TessellatedSolid.hh.

References fVoxels.

void G4TessellatedSolid::Initialize ( )
private

Definition at line 178 of file G4TessellatedSolid.cc.

References fCubicVolume, fGeometryType, fMaxExtent, fMinExtent, fpPolyhedron, fRebuildPolyhedron, fSolidClosed, fSurfaceArea, G4VSolid::kCarTolerance, kCarToleranceHalf, kInfinity, and SetRandomVectors().

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1635 of file G4TessellatedSolid.cc.

References fVoxels, G4SurfaceVoxelizer::GetCountOfVoxels(), InsideNoVoxels(), and InsideVoxels().

Referenced by DistanceToIn(), DistanceToInNoVoxels(), DistanceToOut(), DistanceToOutNoVoxels(), G4GenericTrap::Inside(), SafetyFromInside(), and SafetyFromOutside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

EInside G4TessellatedSolid::InsideNoVoxels ( const G4ThreeVector p) const
private

Definition at line 846 of file G4TessellatedSolid.cc.

References G4VFacet::Distance(), fFacets, fGeometryType, fMaxTries, fRandir, G4endl, G4Exception(), G4VSolid::GetName(), JustWarning, G4VSolid::kCarTolerance, kCarToleranceHalf, kInfinity, kInside, kOutside, kSurface, mm, OutsideOfExtent(), and G4InuclParticleNames::sm.

Referenced by Inside(), and PrecalculateInsides().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

EInside G4TessellatedSolid::InsideVoxels ( const G4ThreeVector aPoint) const
private

Definition at line 655 of file G4TessellatedSolid.cc.

References G4VFacet::Distance(), G4SurfaceVoxelizer::DistanceToNext(), fFacets, fGeometryType, fInsides, fMaxTries, fRandir, fVoxels, G4endl, G4Exception(), G4SurfaceVoxelizer::GetCandidates(), G4VSolid::GetName(), G4SurfBits::GetNbits(), G4SurfaceVoxelizer::GetPointIndex(), G4SurfaceVoxelizer::GetVoxel(), G4SurfaceVoxelizer::GetVoxelsIndex(), G4VFacet::Intersect(), JustWarning, G4VSolid::kCarTolerance, kCarToleranceHalf, kInfinity, kInside, kOutside, kSurface, mm, OutsideOfExtent(), G4InuclParticleNames::sm, and G4SurfaceVoxelizer::UpdateCurrentVoxel().

Referenced by Inside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::MinDistanceFacet ( const G4ThreeVector p,
G4bool  simple,
G4VFacet *&  facet 
) const
private

Definition at line 1432 of file G4TessellatedSolid.cc.

References CompareSortedVoxel(), G4VFacet::Distance(), fFacets, fVoxels, G4SurfaceVoxelizer::GetVoxelBox(), G4SurfaceVoxelizer::GetVoxelBoxCandidates(), G4SurfaceVoxelizer::GetVoxelBoxesSize(), G4VoxelBox::hlen, kInfinity, G4SurfaceVoxelizer::MinDistanceToBox(), and G4VoxelBox::pos.

Referenced by Normal(), SafetyFromInside(), and SafetyFromOutside().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4TessellatedSolid::Normal ( const G4ThreeVector p,
G4ThreeVector n 
) const
virtual

Definition at line 992 of file G4TessellatedSolid.cc.

References G4VFacet::Distance(), fFacets, fVoxels, G4endl, G4Exception(), G4SurfaceVoxelizer::GetCandidates(), G4SurfaceVoxelizer::GetCountOfVoxels(), G4VFacet::GetSurfaceNormal(), G4SurfaceVoxelizer::GetVoxel(), JustWarning, kCarToleranceHalf, kInfinity, and MinDistanceFacet().

Referenced by DistanceToOutCore(), DistanceToOutNoVoxels(), and SurfaceNormal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4TessellatedSolid & G4TessellatedSolid::operator+= ( const G4TessellatedSolid right)

Definition at line 635 of file G4TessellatedSolid.cc.

References AddFacet(), G4VFacet::GetClone(), GetFacet(), and GetNumberOfFacets().

+ Here is the call graph for this function:

G4TessellatedSolid & G4TessellatedSolid::operator= ( const G4TessellatedSolid right)

Definition at line 160 of file G4TessellatedSolid.cc.

References CopyObjects(), DeleteObjects(), Initialize(), and G4VSolid::operator=().

Referenced by G4ExtrudedSolid::operator=().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4TessellatedSolid::OutsideOfExtent ( const G4ThreeVector p,
G4double  tolerance = 0 
) const
inlineprivate

Definition at line 318 of file G4TessellatedSolid.hh.

References fMaxExtent, fMinExtent, and tolerance.

Referenced by AddFacet(), CreateVertexList(), InsideNoVoxels(), InsideVoxels(), SafetyFromInside(), and SafetyFromOutside().

+ Here is the caller graph for this function:

void G4TessellatedSolid::PrecalculateInsides ( )
private

Definition at line 358 of file G4TessellatedSolid.cc.

References G4SurfBits::Clear(), fInsides, fVoxels, G4SurfaceVoxelizer::GetBoundary(), G4SurfaceVoxelizer::GetVoxelsIndex(), InsideNoVoxels(), G4SurfaceVoxelizer::IsEmpty(), kInside, G4SurfBits::ResetBitNumber(), SetAllUsingStack(), and G4SurfBits::SetBitNumber().

Referenced by Voxelize().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::SafetyFromInside ( const G4ThreeVector p,
G4bool  aAccurate = false 
) const
virtual

Definition at line 1542 of file G4TessellatedSolid.cc.

References G4VFacet::Distance(), DistanceToIn(), fFacets, fVoxels, G4endl, G4Exception(), G4SurfaceVoxelizer::GetCountOfVoxels(), Inside(), JustWarning, G4VSolid::kCarTolerance, kInfinity, kOutside, MinDistanceFacet(), mm, and OutsideOfExtent().

Referenced by DistanceToOut().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4TessellatedSolid::SafetyFromOutside ( const G4ThreeVector p,
G4bool  aAccurate = false 
) const
virtual

Definition at line 1483 of file G4TessellatedSolid.cc.

References G4VFacet::Distance(), G4SurfaceVoxelizer::DistanceToBoundingBox(), DistanceToOut(), fFacets, fInsides, fVoxels, G4endl, G4Exception(), G4SurfaceVoxelizer::GetCandidates(), G4SurfaceVoxelizer::GetCountOfVoxels(), G4SurfBits::GetNbits(), G4SurfaceVoxelizer::GetPointIndex(), G4SurfaceVoxelizer::GetVoxel(), Inside(), JustWarning, G4VSolid::kCarTolerance, kInfinity, kInside, MinDistanceFacet(), mm, and OutsideOfExtent().

Referenced by DistanceToIn().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4TessellatedSolid::SetAllUsingStack ( const std::vector< G4int > &  voxel,
const std::vector< G4int > &  max,
G4bool  status,
G4SurfBits checked 
)
private

Definition at line 302 of file G4TessellatedSolid.cc.

References fInsides, fVoxels, G4SurfaceVoxelizer::GetVoxelsIndex(), G4SurfaceVoxelizer::IsEmpty(), pos, and G4SurfBits::SetBitNumber().

Referenced by PrecalculateInsides().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::SetExtremeFacets ( )
private

Definition at line 418 of file G4TessellatedSolid.cc.

References fExtremeFacets, fFacets, fVertexList, and G4VFacet::IsInside().

Referenced by SetSolidClosed().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::SetMaxVoxels ( G4int  max)
inline

Definition at line 308 of file G4TessellatedSolid.hh.

References fVoxels, and G4SurfaceVoxelizer::SetMaxVoxels().

+ Here is the call graph for this function:

void G4TessellatedSolid::SetRandomVectors ( )
private

Definition at line 2011 of file G4TessellatedSolid.cc.

References fMaxTries, and fRandir.

Referenced by Initialize().

+ Here is the caller graph for this function:

void G4TessellatedSolid::SetSolidClosed ( const G4bool  t)

Definition at line 587 of file G4TessellatedSolid.cc.

References CreateVertexList(), DisplayAllocatedMemory(), fSolidClosed, G4cout, G4endl, SetExtremeFacets(), and Voxelize().

Referenced by CopyObjects(), G4GenericTrap::CreateTessellatedSolid(), G4ExtrudedSolid::MakeFacets(), and G4GDMLReadSolids::TessellatedRead().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1598 of file G4TessellatedSolid.cc.

References fFacets, fGeometryType, G4endl, and G4VFacet::StreamInfo().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 1652 of file G4TessellatedSolid.cc.

References n, and Normal().

Referenced by G4GenericTrap::NormalToPlane(), and G4GenericTrap::SurfaceNormal().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4TessellatedSolid::Voxelize ( )
private

Definition at line 390 of file G4TessellatedSolid.cc.

References G4SurfaceVoxelizer::Empty(), fFacets, fVoxels, G4cout, G4endl, G4SurfBits::GetNbits(), PrecalculateInsides(), and G4SurfaceVoxelizer::Voxelize().

Referenced by SetSolidClosed().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

G4double G4TessellatedSolid::fCubicVolume
private

Definition at line 277 of file G4TessellatedSolid.hh.

Referenced by GetCubicVolume(), and Initialize().

std::set<G4VFacet *> G4TessellatedSolid::fExtremeFacets
private
std::set<G4VertexInfo,G4VertexComparator> G4TessellatedSolid::fFacetList
private

Definition at line 282 of file G4TessellatedSolid.hh.

Referenced by AddFacet().

G4GeometryType G4TessellatedSolid::fGeometryType
private
G4SurfBits G4TessellatedSolid::fInsides
private
G4int G4TessellatedSolid::fMaxTries
private

Definition at line 292 of file G4TessellatedSolid.hh.

Referenced by InsideNoVoxels(), InsideVoxels(), and SetRandomVectors().

G4Polyhedron* G4TessellatedSolid::fpPolyhedron
mutableprivate

Definition at line 270 of file G4TessellatedSolid.hh.

Referenced by DeleteObjects(), GetPolyhedron(), and Initialize().

std::vector<G4ThreeVector> G4TessellatedSolid::fRandir
private
G4bool G4TessellatedSolid::fRebuildPolyhedron
mutableprivate

Definition at line 269 of file G4TessellatedSolid.hh.

Referenced by GetPolyhedron(), and Initialize().

G4bool G4TessellatedSolid::fSolidClosed
private

Definition at line 286 of file G4TessellatedSolid.hh.

Referenced by AddFacet(), GetSolidClosed(), Initialize(), and SetSolidClosed().

G4double G4TessellatedSolid::fSurfaceArea
private

Definition at line 278 of file G4TessellatedSolid.hh.

Referenced by GetSurfaceArea(), and Initialize().

std::vector<G4ThreeVector> G4TessellatedSolid::fVertexList
private

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