Geant4  10.00.p02
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)
 

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

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
 
G4double EstimateCubicVolume (G4int nStat, G4double epsilon) const
 
G4double EstimateSurfaceArea (G4int nStat, G4double ell) 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 101 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 131 of file G4TessellatedSolid.cc.

References DeleteObjects().

+ Here is the call graph for this function:

G4TessellatedSolid::G4TessellatedSolid ( const G4String name)

Definition at line 111 of file G4TessellatedSolid.cc.

References Initialize().

+ Here is the call graph for this function:

G4TessellatedSolid::G4TessellatedSolid ( __void__ &  a)

Definition at line 122 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 140 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 222 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 2033 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 2007 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 1784 of file G4TessellatedSolid.cc.

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

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 1613 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 1416 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 198 of file G4TessellatedSolid.cc.

References AddFacet(), fpPolyhedron, fVoxels, GetFacet(), G4SurfaceVoxelizer::GetMaxVoxels(), GetNumberOfFacets(), GetPolyhedron(), 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 1729 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 434 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 188 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 1722 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 569 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 1666 of file G4TessellatedSolid.cc.

References DistanceToInCore(), and kInfinity.

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 1659 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 1314 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 1362 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 1064 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 1679 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 1702 of file G4TessellatedSolid.cc.

References DistanceToOutCore(), 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 1201 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 1241 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 1130 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 1917 of file G4TessellatedSolid.cc.

References fCubicVolume, and G4VSolid::GetCubicVolume().

+ Here is the call graph for this function:

G4GeometryType G4TessellatedSolid::GetEntityType ( ) const
virtual

Implements G4VSolid.

Reimplemented in G4ExtrudedSolid.

Definition at line 1584 of file G4TessellatedSolid.cc.

References fGeometryType.

G4VisExtent G4TessellatedSolid::GetExtent ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1910 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 302 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 1875 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 1889 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 1903 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 1868 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 1882 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 1896 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 641 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 1941 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 1765 of file G4TessellatedSolid.cc.

References CreatePolyhedron(), fpPolyhedron, and G4Polyhedron::GetNumberOfRotationStepsAtTimeOfCreation().

Referenced by CopyObjects(), and 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 613 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 1926 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 312 of file G4TessellatedSolid.hh.

References fVoxels.

void G4TessellatedSolid::Initialize ( )
private

Definition at line 171 of file G4TessellatedSolid.cc.

References fCubicVolume, fGeometryType, fMaxExtent, fMinExtent, fpPolyhedron, 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 1628 of file G4TessellatedSolid.cc.

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

Referenced by DistanceToInNoVoxels(), 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 839 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 648 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 1425 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 985 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 628 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 153 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 317 of file G4TessellatedSolid.hh.

References fMaxExtent, and fMinExtent.

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

+ Here is the caller graph for this function:

void G4TessellatedSolid::PrecalculateInsides ( )
private

Definition at line 351 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 1535 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 1476 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 295 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 411 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 307 of file G4TessellatedSolid.hh.

References fVoxels, and G4SurfaceVoxelizer::SetMaxVoxels().

+ Here is the call graph for this function:

void G4TessellatedSolid::SetRandomVectors ( )
private

Definition at line 1958 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 580 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 1591 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 1645 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 383 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 276 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 281 of file G4TessellatedSolid.hh.

Referenced by AddFacet().

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

Definition at line 291 of file G4TessellatedSolid.hh.

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

G4Polyhedron* G4TessellatedSolid::fpPolyhedron
mutableprivate

Definition at line 269 of file G4TessellatedSolid.hh.

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

std::vector<G4ThreeVector> G4TessellatedSolid::fRandir
private
G4bool G4TessellatedSolid::fSolidClosed
private

Definition at line 285 of file G4TessellatedSolid.hh.

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

G4double G4TessellatedSolid::fSurfaceArea
private

Definition at line 277 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: