Geant4  10.01.p02
G4USolid Class Reference

#include <G4USolid.hh>

+ Inheritance diagram for G4USolid:
+ Collaboration diagram for G4USolid:

Public Member Functions

 G4USolid (const G4String &pName, VUSolid *shape)
 
virtual ~G4USolid ()
 
G4bool operator== (const G4USolid &s) const
 
virtual G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
 
virtual EInside Inside (const G4ThreeVector &p) const
 
virtual G4ThreeVector SurfaceNormal (const G4ThreeVector &p) const
 
virtual G4double DistanceToIn (const G4ThreeVector &p, const G4ThreeVector &v) const
 
virtual G4double DistanceToIn (const G4ThreeVector &p) const
 
virtual G4double DistanceToOut (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const
 
virtual G4double DistanceToOut (const G4ThreeVector &p) const
 
virtual void ComputeDimensions (G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
 
virtual G4double GetCubicVolume ()
 
virtual G4double GetSurfaceArea ()
 
virtual G4GeometryType GetEntityType () const
 
virtual G4ThreeVector GetPointOnSurface () const
 
virtual G4VSolidClone () const
 
virtual std::ostream & StreamInfo (std::ostream &os) const
 
virtual void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
virtual G4VisExtent GetExtent () const
 
G4PolyhedronCreatePolyhedron () const
 
virtual G4PolyhedronGetPolyhedron () const
 
 G4USolid (__void__ &)
 
 G4USolid (const G4USolid &rhs)
 
G4USolidoperator= (const G4USolid &rhs)
 
VUSolidGetSolid () const
 
- 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
 
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)
 

Protected Member Functions

G4ThreeVectorListCreateRotatedVertices (const G4AffineTransform &pT) const
 
- 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

VUSolidfShape
 
G4bool fRebuildPolyhedron
 
G4PolyhedronfPolyhedron
 
- Protected Attributes inherited from G4VSolid
G4double kCarTolerance
 

Detailed Description

Definition at line 46 of file G4USolid.hh.

Constructor & Destructor Documentation

G4USolid::G4USolid ( const G4String pName,
VUSolid shape 
)

Definition at line 51 of file G4USolid.cc.

Referenced by G4UMultiUnion::GetSolid().

+ Here is the caller graph for this function:

G4USolid::~G4USolid ( )
virtual

Definition at line 61 of file G4USolid.cc.

References fPolyhedron.

G4USolid::G4USolid ( __void__ &  a)

Definition at line 56 of file G4USolid.cc.

G4USolid::G4USolid ( const G4USolid rhs)

Definition at line 371 of file G4USolid.cc.

References VUSolid::Clone(), and fShape.

+ Here is the call graph for this function:

Member Function Documentation

G4bool G4USolid::CalculateExtent ( const EAxis  pAxis,
const G4VoxelLimits pVoxelLimit,
const G4AffineTransform pTransform,
G4double pMin,
G4double pMax 
) const
virtual
G4VSolid * G4USolid::Clone ( ) const
virtual

Reimplemented from G4VSolid.

Reimplemented in G4UTrap, G4UPolyhedra, G4UPolycone, G4UTubs, G4UCons, G4USphere, G4UTrd, G4UBox, and G4UOrb.

Definition at line 399 of file G4USolid.cc.

References G4endl, G4Exception(), GetEntityType(), and JustWarning.

+ Here is the call graph for this function:

void G4USolid::ComputeDimensions ( G4VPVParameterisation p,
const G4int  n,
const G4VPhysicalVolume pRep 
)
virtual

Reimplemented from G4VSolid.

Reimplemented in G4UTrap, G4UPolyhedra, G4UPolycone, G4UTubs, G4UCons, G4USphere, G4UTrd, G4UBox, and G4UOrb.

Definition at line 343 of file G4USolid.cc.

References FatalException, G4endl, and G4Exception().

+ Here is the call graph for this function:

G4Polyhedron * G4USolid::CreatePolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Reimplemented in G4UTrap, G4UPolyhedra, G4UPolycone, G4UGenericTrap, G4UGenericPolycone, and G4UMultiUnion.

Definition at line 450 of file G4USolid.cc.

References fShape, VUSolid::GetEntityType(), VUSolid::GetParametersList(), and G4INCL::Math::pi.

Referenced by GetPolyhedron().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVectorList * G4USolid::CreateRotatedVertices ( const G4AffineTransform pT) const
protected

Definition at line 410 of file G4USolid.cc.

References VUSolid::eXaxis, VUSolid::ExtentAxis(), VUSolid::eYaxis, VUSolid::eZaxis, FatalException, fShape, G4Exception(), and G4AffineTransform::TransformPoint().

Referenced by CalculateExtent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4USolid::DescribeYourselfTo ( G4VGraphicsScene scene) const
virtual

Implements G4VSolid.

Definition at line 354 of file G4USolid.cc.

References G4VGraphicsScene::AddSolid().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 104 of file G4USolid.cc.

References VUSolid::DistanceToIn(), fShape, kInfinity, UVector3::x(), UVector3::y(), and UVector3::z().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 120 of file G4USolid.cc.

References fShape, kInfinity, VUSolid::SafetyFromOutside(), UVector3::x(), UVector3::y(), and UVector3::z().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 131 of file G4USolid.cc.

References VUSolid::DistanceToOut(), fShape, kInfinity, n, UVector3::x(), UVector3::y(), and UVector3::z().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 162 of file G4USolid.cc.

References fShape, VUSolid::SafetyFromInside(), UVector3::x(), UVector3::y(), and UVector3::z().

+ Here is the call graph for this function:

G4double G4USolid::GetCubicVolume ( )
virtual

Reimplemented from G4VSolid.

Definition at line 171 of file G4USolid.cc.

References VUSolid::Capacity(), and fShape.

+ Here is the call graph for this function:

G4GeometryType G4USolid::GetEntityType ( ) const
virtual

Implements G4VSolid.

Definition at line 359 of file G4USolid.cc.

References fShape, and VUSolid::GetEntityType().

Referenced by Clone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4VisExtent G4USolid::GetExtent ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 573 of file G4USolid.cc.

References CalculateExtent(), kXAxis, kYAxis, kZAxis, G4VisExtent::SetXmax(), G4VisExtent::SetXmin(), G4VisExtent::SetYmax(), G4VisExtent::SetYmin(), G4VisExtent::SetZmax(), and G4VisExtent::SetZmin().

+ Here is the call graph for this function:

G4ThreeVector G4USolid::GetPointOnSurface ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 181 of file G4USolid.cc.

References fShape, VUSolid::GetPointOnSurface(), UVector3::x(), UVector3::y(), and UVector3::z().

+ Here is the call graph for this function:

G4Polyhedron * G4USolid::GetPolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 557 of file G4USolid.cc.

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

+ Here is the call graph for this function:

VUSolid* G4USolid::GetSolid ( ) const
inline

Definition at line 171 of file G4USolid.hh.

References fShape.

Referenced by G4UMultiUnion::AddNode(), and G4UMultiUnion::CreatePolyhedron().

+ Here is the caller graph for this function:

G4double G4USolid::GetSurfaceArea ( )
virtual

Reimplemented from G4VSolid.

Definition at line 176 of file G4USolid.cc.

References fShape, and VUSolid::SurfaceArea().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 71 of file G4USolid.cc.

References VUSolid::eInside, VUSolid::eSurface, fShape, VUSolid::Inside(), kInside, kOutside, kSurface, UVector3::x(), UVector3::y(), and UVector3::z().

Referenced by CalculateExtent().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4USolid & G4USolid::operator= ( const G4USolid rhs)

Definition at line 377 of file G4USolid.cc.

References VUSolid::Clone(), fPolyhedron, fRebuildPolyhedron, fShape, and G4VSolid::operator=().

Referenced by G4UOrb::operator=(), G4UTet::operator=(), G4UMultiUnion::operator=(), G4UGenericPolycone::operator=(), G4UGenericTrap::operator=(), G4UBox::operator=(), G4UTubs::operator=(), G4USphere::operator=(), G4UTrd::operator=(), G4UCons::operator=(), G4UExtrudedSolid::operator=(), G4UPolycone::operator=(), G4UPolyhedra::operator=(), and G4UTrap::operator=().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4USolid::operator== ( const G4USolid s) const

Definition at line 66 of file G4USolid.cc.

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

Implements G4VSolid.

Definition at line 366 of file G4USolid.cc.

References fShape, and VUSolid::StreamInfo().

+ Here is the call graph for this function:

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

Implements G4VSolid.

Definition at line 93 of file G4USolid.cc.

References fShape, n, VUSolid::Normal(), UVector3::x(), UVector3::y(), and UVector3::z().

+ Here is the call graph for this function:

Member Data Documentation

G4Polyhedron* G4USolid::fPolyhedron
mutableprotected

Definition at line 184 of file G4USolid.hh.

Referenced by GetPolyhedron(), operator=(), and ~G4USolid().


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