Geant4  10.01
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)
 
G4TessellatedSolid & operator= (const G4TessellatedSolid &right)
 
G4TessellatedSolid & operator+= (const G4TessellatedSolid &right)
 
G4bool AddFacet (G4VFacet *aFacet)
 
G4VFacet * GetFacet (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 G4VSolid * Clone () const
 
virtual G4ThreeVector GetPointOnSurface () const
 
virtual G4double GetSurfaceArea ()
 
virtual G4double GetCubicVolume ()
 
void SetSolidClosed (const G4bool t)
 
G4bool GetSolidClosed () const
 
void SetMaxVoxels (G4int max)
 
G4SurfaceVoxelizer & GetVoxels ()
 
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
 
G4ThreeVectorList * CreateRotatedVertices (const G4AffineTransform &pT) const
 
virtual G4Polyhedron * CreatePolyhedron () const
 
virtual G4Polyhedron * GetPolyhedron () 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 G4VSolid * GetConstituentSolid (G4int no) const
 
virtual G4VSolid * GetConstituentSolid (G4int no)
 
virtual const G4DisplacedSolid * GetDisplacedSolidPtr () const
 
virtual G4DisplacedSolid * GetDisplacedSolidPtr ()
 
 G4VSolid (__void__ &)
 
 G4VSolid (const G4VSolid &rhs)
 
G4VSolid & operator= (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

G4bool fRebuildPolyhedron
 
G4Polyhedron * fpPolyhedron
 
std::vector< G4VFacet * > fFacets
 
std::set< G4VFacet * > fExtremeFacets
 
G4GeometryType fGeometryType
 
G4double fCubicVolume
 
G4double fSurfaceArea
 
std::vector< G4ThreeVector > fVertexList
 
std::set< G4VertexInfo,
G4VertexComparator > 
fFacetList
 
G4ThreeVector fMinExtent
 
G4ThreeVector fMaxExtent
 
G4bool fSolidClosed
 
std::vector< G4ThreeVector > fRandir
 
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 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 2044 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 2018 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 1795 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 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 1736 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 1729 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(), 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 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 1686 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 1709 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 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 1928 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 1591 of file G4TessellatedSolid.cc.

References fGeometryType.

G4VisExtent G4TessellatedSolid::GetExtent ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 1921 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 1886 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 1900 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 1914 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 1879 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 1893 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 1907 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 1952 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 1772 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 1937 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 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 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 1969 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: