Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4CSGSolid Class Reference

#include <G4CSGSolid.hh>

Inheritance diagram for G4CSGSolid:
Collaboration diagram for G4CSGSolid:

Public Member Functions

 G4CSGSolid (const G4String &pName)
 
virtual ~G4CSGSolid ()
 
virtual std::ostream & StreamInfo (std::ostream &os) const
 
virtual G4PolyhedronGetPolyhedron () const
 
 G4CSGSolid (__void__ &)
 
 G4CSGSolid (const G4CSGSolid &rhs)
 
G4CSGSolidoperator= (const G4CSGSolid &rhs)
 
- 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 Extent (G4ThreeVector &pMin, G4ThreeVector &pMax) const
 
virtual G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const =0
 
virtual EInside Inside (const G4ThreeVector &p) const =0
 
virtual G4ThreeVector SurfaceNormal (const G4ThreeVector &p) const =0
 
virtual G4double DistanceToIn (const G4ThreeVector &p, const G4ThreeVector &v) const =0
 
virtual G4double DistanceToIn (const G4ThreeVector &p) const =0
 
virtual G4double DistanceToOut (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const =0
 
virtual G4double DistanceToOut (const G4ThreeVector &p) const =0
 
virtual void ComputeDimensions (G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
 
virtual G4double GetCubicVolume ()
 
virtual G4double GetSurfaceArea ()
 
virtual G4GeometryType GetEntityType () const =0
 
virtual G4ThreeVector GetPointOnSurface () const
 
virtual G4VSolidClone () const
 
void DumpInfo () const
 
virtual void DescribeYourselfTo (G4VGraphicsScene &scene) const =0
 
virtual G4VisExtent GetExtent () const
 
virtual G4PolyhedronCreatePolyhedron () const
 
virtual const G4VSolidGetConstituentSolid (G4int no) const
 
virtual G4VSolidGetConstituentSolid (G4int no)
 
virtual const G4DisplacedSolidGetDisplacedSolidPtr () const
 
virtual G4DisplacedSolidGetDisplacedSolidPtr ()
 
 G4VSolid (__void__ &)
 
 G4VSolid (const G4VSolid &rhs)
 
G4VSolidoperator= (const G4VSolid &rhs)
 
G4double EstimateCubicVolume (G4int nStat, G4double epsilon) const
 
G4double EstimateSurfaceArea (G4int nStat, G4double ell) const
 

Protected Member Functions

G4double GetRadiusInRing (G4double rmin, G4double rmax) 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
 

Protected Attributes

G4double fCubicVolume
 
G4double fSurfaceArea
 
G4bool fRebuildPolyhedron
 
G4PolyhedronfpPolyhedron
 
- Protected Attributes inherited from G4VSolid
G4double kCarTolerance
 

Detailed Description

Definition at line 49 of file G4CSGSolid.hh.

Constructor & Destructor Documentation

G4CSGSolid::G4CSGSolid ( const G4String pName)

Definition at line 49 of file G4CSGSolid.cc.

49  :
52 {
53 }
const XML_Char * name
Definition: expat.h:151
G4bool fRebuildPolyhedron
Definition: G4CSGSolid.hh:80
G4double fCubicVolume
Definition: G4CSGSolid.hh:78
G4double fSurfaceArea
Definition: G4CSGSolid.hh:79
G4Polyhedron * fpPolyhedron
Definition: G4CSGSolid.hh:81
G4VSolid(const G4String &name)
Definition: G4VSolid.cc:61
G4CSGSolid::~G4CSGSolid ( )
virtual

Definition at line 71 of file G4CSGSolid.cc.

72 {
73  delete fpPolyhedron; fpPolyhedron = 0;
74 }
G4Polyhedron * fpPolyhedron
Definition: G4CSGSolid.hh:81
G4CSGSolid::G4CSGSolid ( __void__ &  a)

Definition at line 60 of file G4CSGSolid.cc.

61  : G4VSolid(a), fCubicVolume(0.), fSurfaceArea(0.),
63 {
64 }
G4bool fRebuildPolyhedron
Definition: G4CSGSolid.hh:80
G4double fCubicVolume
Definition: G4CSGSolid.hh:78
G4double fSurfaceArea
Definition: G4CSGSolid.hh:79
G4Polyhedron * fpPolyhedron
Definition: G4CSGSolid.hh:81
G4VSolid(const G4String &name)
Definition: G4VSolid.cc:61
G4CSGSolid::G4CSGSolid ( const G4CSGSolid rhs)

Definition at line 81 of file G4CSGSolid.cc.

82  : G4VSolid(rhs), fCubicVolume(rhs.fCubicVolume),
84 {
85 }
G4bool fRebuildPolyhedron
Definition: G4CSGSolid.hh:80
G4double fCubicVolume
Definition: G4CSGSolid.hh:78
G4double fSurfaceArea
Definition: G4CSGSolid.hh:79
G4Polyhedron * fpPolyhedron
Definition: G4CSGSolid.hh:81
G4VSolid(const G4String &name)
Definition: G4VSolid.cc:61

Member Function Documentation

G4Polyhedron * G4CSGSolid::GetPolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 134 of file G4CSGSolid.cc.

135 {
136  if (!fpPolyhedron ||
140  {
141  G4AutoLock l(&polyhedronMutex);
142  delete fpPolyhedron;
144  fRebuildPolyhedron = false;
145  l.unlock();
146  }
147  return fpPolyhedron;
148 }
G4bool fRebuildPolyhedron
Definition: G4CSGSolid.hh:80
G4Polyhedron * fpPolyhedron
Definition: G4CSGSolid.hh:81
virtual G4Polyhedron * CreatePolyhedron() const
Definition: G4VSolid.cc:660
static G4int GetNumberOfRotationSteps()
G4int GetNumberOfRotationStepsAtTimeOfCreation() const

Here is the call graph for this function:

Here is the caller graph for this function:

G4double G4CSGSolid::GetRadiusInRing ( G4double  rmin,
G4double  rmax 
) const
protected

Definition at line 111 of file G4CSGSolid.cc.

112 {
113  // Generate radius in annular ring according to uniform area
114  //
115  if (rmin<=0.) { return rmax*std::sqrt(G4UniformRand()); }
116  if (rmin!=rmax) { return std::sqrt(G4UniformRand()
117  * (sqr(rmax)-sqr(rmin))+sqr(rmin)); }
118  return rmin;
119 }
#define G4UniformRand()
Definition: Randomize.hh:97
T sqr(const T &x)
Definition: templates.hh:145

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 91 of file G4CSGSolid.cc.

92 {
93  // Check assignment to self
94  //
95  if (this == &rhs) { return *this; }
96 
97  // Copy base class data
98  //
100 
101  // Copy data
102  //
105  fRebuildPolyhedron = false;
106  delete fpPolyhedron; fpPolyhedron = 0;
107 
108  return *this;
109 }
G4bool fRebuildPolyhedron
Definition: G4CSGSolid.hh:80
G4double fCubicVolume
Definition: G4CSGSolid.hh:78
G4double fSurfaceArea
Definition: G4CSGSolid.hh:79
G4Polyhedron * fpPolyhedron
Definition: G4CSGSolid.hh:81
G4VSolid & operator=(const G4VSolid &rhs)
Definition: G4VSolid.cc:111

Here is the call graph for this function:

Here is the caller graph for this function:

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

Implements G4VSolid.

Reimplemented in G4Trap, G4Sphere, G4Cons, G4Torus, G4Tubs, G4Trd, G4Para, G4Orb, G4OTubs, G4Box, and G4CutTubs.

Definition at line 121 of file G4CSGSolid.cc.

122 {
123  os << "-----------------------------------------------------------\n"
124  << " *** Dump for solid - " << GetName() << " ***\n"
125  << " ===================================================\n"
126  << " Solid type: " << GetEntityType() << "\n"
127  << " Parameters: \n"
128  << " NOT available !\n"
129  << "-----------------------------------------------------------\n";
130 
131  return os;
132 }
G4String GetName() const
virtual G4GeometryType GetEntityType() const =0

Here is the call graph for this function:

Member Data Documentation

G4double G4CSGSolid::fCubicVolume
protected

Definition at line 78 of file G4CSGSolid.hh.

G4Polyhedron* G4CSGSolid::fpPolyhedron
mutableprotected

Definition at line 81 of file G4CSGSolid.hh.

G4bool G4CSGSolid::fRebuildPolyhedron
mutableprotected

Definition at line 80 of file G4CSGSolid.hh.

G4double G4CSGSolid::fSurfaceArea
protected

Definition at line 79 of file G4CSGSolid.hh.


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