Geant4_10
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Attributes | List of all members
VUSolid Class Referenceabstract

#include <VUSolid.hh>

Inheritance diagram for VUSolid:
Inheritance graph
[legend]

Public Types

enum  EnumInside { eInside =0, eSurface =1, eOutside =2 }
 
enum  EAxisType { eXaxis =0, eYaxis =1, eZaxis =2 }
 

Public Member Functions

 VUSolid ()
 
 VUSolid (const std::string &name)
 
virtual ~VUSolid ()
 
double GetCarTolerance () const
 
double GetRadTolerance () const
 
double GetAngTolerance () const
 
void SetCarTolerance (double eps)
 
void SetRadTolerance (double eps)
 
void SetAngTolerance (double eps)
 
virtual EnumInside Inside (const UVector3 &aPoint) const =0
 
virtual double SafetyFromInside (const UVector3 &aPoint, bool aAccurate=false) const =0
 
virtual double SafetyFromOutside (const UVector3 &aPoint, bool aAccurate=false) const =0
 
virtual double DistanceToIn (const UVector3 &aPoint, const UVector3 &aDirection, double aPstep=UUtils::kInfinity) const =0
 
virtual double DistanceToOut (const UVector3 &aPoint, const UVector3 &aDirection, UVector3 &aNormalVector, bool &aConvex, double aPstep=UUtils::kInfinity) const =0
 
virtual bool Normal (const UVector3 &aPoint, UVector3 &aNormal) const =0
 
virtual void ExtentAxis (EAxisType aAxis, double &aMin, double &aMax) const
 
virtual void Extent (UVector3 &aMin, UVector3 &aMax) const =0
 
virtual UGeometryType GetEntityType () const =0
 
const std::string & GetName () const
 
void SetName (const std::string &aName)
 
virtual double Capacity ()=0
 
virtual double SurfaceArea ()=0
 
virtual void SamplePointsInside (int, UVector3 *) const
 
virtual void SamplePointsOnSurface (int, UVector3 *) const
 
virtual void SamplePointsOnEdge (int, UVector3 *) const
 
virtual void GetParametersList (int aNumber, double *aArray) const =0
 
virtual VUSolidClone () const =0
 
virtual std::ostream & StreamInfo (std::ostream &os) const =0
 
virtual UVector3 GetPointOnSurface () const =0
 
double EstimateCubicVolume (int nStat, double epsilon) const
 
double EstimateSurfaceArea (int nStat, double ell) const
 

Static Public Member Functions

static double Tolerance ()
 

Protected Member Functions

virtual void ComputeBBox (UBBox *aBox, bool aStore=false)=0
 

Static Protected Attributes

static double fgTolerance = 1.0E-9
 
static double frTolerance = 1.0E-9
 
static double faTolerance = 1.0E-9
 

Detailed Description

Definition at line 19 of file VUSolid.hh.

Member Enumeration Documentation

Enumerator
eXaxis 
eYaxis 
eZaxis 

Definition at line 27 of file VUSolid.hh.

Enumerator
eInside 
eSurface 
eOutside 

Definition at line 23 of file VUSolid.hh.

Constructor & Destructor Documentation

VUSolid::VUSolid ( )

Definition at line 18 of file VUSolid.cc.

VUSolid::VUSolid ( const std::string &  name)

Definition at line 24 of file VUSolid.cc.

Here is the call graph for this function:

VUSolid::~VUSolid ( )
virtual

Definition at line 32 of file VUSolid.cc.

Member Function Documentation

double VUSolid::Capacity ( )
pure virtual

Implemented in UPolycone, USphere, UTrd, UVCSGfaceted, UBox, UTubs, UTet, and UOrb.

Definition at line 199 of file VUSolid.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual VUSolid* VUSolid::Clone ( ) const
pure virtual

Implemented in UPolycone, UPolyhedra, UCons, USphere, UTubs, UTrd, UBox, UGenericPolycone, UTet, and UOrb.

Here is the caller graph for this function:

virtual void VUSolid::ComputeBBox ( UBBox aBox,
bool  aStore = false 
)
protectedpure virtual
virtual double VUSolid::DistanceToIn ( const UVector3 aPoint,
const UVector3 aDirection,
double  aPstep = UUtils::kInfinity 
) const
pure virtual

Implemented in UPolyhedra, UPolycone, USphere, UCons, UTubs, UBox, UTrd, UGenericPolycone, UVCSGfaceted, UTet, and UOrb.

Here is the caller graph for this function:

virtual double VUSolid::DistanceToOut ( const UVector3 aPoint,
const UVector3 aDirection,
UVector3 aNormalVector,
bool &  aConvex,
double  aPstep = UUtils::kInfinity 
) const
pure virtual

Implemented in UPolycone, USphere, UCons, UTubs, UBox, UTrd, UVCSGfaceted, UTet, and UOrb.

Here is the caller graph for this function:

double VUSolid::EstimateCubicVolume ( int  nStat,
double  epsilon 
) const

Definition at line 214 of file VUSolid.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

double VUSolid::EstimateSurfaceArea ( int  nStat,
double  ell 
) const

Definition at line 268 of file VUSolid.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void VUSolid::Extent ( UVector3 aMin,
UVector3 aMax 
) const
pure virtual

Implemented in UPolyhedra, UPolycone, UGenericPolycone, USphere, UCons, UTubs, UTrd, UBox, UTet, and UOrb.

Here is the caller graph for this function:

void VUSolid::ExtentAxis ( EAxisType  aAxis,
double &  aMin,
double &  aMax 
) const
virtual

Definition at line 318 of file VUSolid.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

double VUSolid::GetAngTolerance ( ) const
inline

Definition at line 153 of file VUSolid.hh.

double VUSolid::GetCarTolerance ( ) const
inline

Definition at line 151 of file VUSolid.hh.

virtual UGeometryType VUSolid::GetEntityType ( ) const
pure virtual

Implemented in UPolycone, UPolyhedra, UCons, USphere, UTrd, UTubs, UBox, UVCSGfaceted, UGenericPolycone, UTet, and UOrb.

Here is the caller graph for this function:

const std::string& VUSolid::GetName ( void  ) const
inline

Definition at line 103 of file VUSolid.hh.

Here is the caller graph for this function:

virtual void VUSolid::GetParametersList ( int  aNumber,
double *  aArray 
) const
pure virtual

Implemented in UPolycone, USphere, UCons, UGenericPolycone, UTubs, UPolyhedra, UTrd, UBox, UTet, and UOrb.

Here is the caller graph for this function:

virtual UVector3 VUSolid::GetPointOnSurface ( ) const
pure virtual

Implemented in UPolycone, UPolyhedra, UCons, USphere, UTrd, UBox, UTubs, UTet, UOrb, and UGenericPolycone.

Here is the caller graph for this function:

double VUSolid::GetRadTolerance ( ) const
inline

Definition at line 152 of file VUSolid.hh.

virtual EnumInside VUSolid::Inside ( const UVector3 aPoint) const
pure virtual

Implemented in UCons, UPolycone, UPolyhedra, USphere, UTubs, UBox, UGenericPolycone, UTrd, UVCSGfaceted, UOrb, and UTet.

Here is the caller graph for this function:

virtual bool VUSolid::Normal ( const UVector3 aPoint,
UVector3 aNormal 
) const
pure virtual

Implemented in UPolycone, USphere, UCons, UTubs, UBox, UTrd, UOrb, UVCSGfaceted, and UTet.

Here is the caller graph for this function:

virtual double VUSolid::SafetyFromInside ( const UVector3 aPoint,
bool  aAccurate = false 
) const
pure virtual

Implemented in UPolycone, UCons, USphere, UTubs, UVCSGfaceted, UBox, UTrd, UTet, and UOrb.

Here is the caller graph for this function:

virtual double VUSolid::SafetyFromOutside ( const UVector3 aPoint,
bool  aAccurate = false 
) const
pure virtual

Implemented in UPolycone, UPolyhedra, USphere, UCons, UTubs, UBox, UTrd, UVCSGfaceted, UTet, and UOrb.

Here is the caller graph for this function:

virtual void VUSolid::SamplePointsInside ( int  ,
UVector3  
) const
inlinevirtual

Definition at line 112 of file VUSolid.hh.

virtual void VUSolid::SamplePointsOnEdge ( int  ,
UVector3  
) const
inlinevirtual

Definition at line 114 of file VUSolid.hh.

virtual void VUSolid::SamplePointsOnSurface ( int  ,
UVector3  
) const
inlinevirtual

Definition at line 113 of file VUSolid.hh.

void VUSolid::SetAngTolerance ( double  eps)

Definition at line 342 of file VUSolid.cc.

void VUSolid::SetCarTolerance ( double  eps)

Definition at line 334 of file VUSolid.cc.

void VUSolid::SetName ( const std::string &  aName)
inline

Definition at line 104 of file VUSolid.hh.

Here is the caller graph for this function:

void VUSolid::SetRadTolerance ( double  eps)

Definition at line 338 of file VUSolid.cc.

virtual std::ostream& VUSolid::StreamInfo ( std::ostream &  os) const
inlinepure virtual
double VUSolid::SurfaceArea ( )
pure virtual

Implemented in UPolycone, UVCSGfaceted, USphere, UTrd, UBox, UTubs, UTet, and UOrb.

Definition at line 255 of file VUSolid.cc.

Here is the call graph for this function:

Here is the caller graph for this function:

static double VUSolid::Tolerance ( )
inlinestatic

Definition at line 127 of file VUSolid.hh.

Here is the caller graph for this function:

Member Data Documentation

double VUSolid::faTolerance = 1.0E-9
staticprotected

Definition at line 32 of file VUSolid.hh.

double VUSolid::fgTolerance = 1.0E-9
staticprotected

Definition at line 30 of file VUSolid.hh.

double VUSolid::frTolerance = 1.0E-9
staticprotected

Definition at line 31 of file VUSolid.hh.


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