Geant4  10.00.p03
UTet Class Reference

#include <UTet.hh>

+ Inheritance diagram for UTet:
+ Collaboration diagram for UTet:

Public Member Functions

 UTet (const std::string &name, UVector3 anchor, UVector3 p2, UVector3 p3, UVector3 p4, bool *degeneracyFlag=0)
 
virtual ~UTet ()
 
EnumInside Inside (const UVector3 &p) const
 
bool Normal (const UVector3 &aPoint, UVector3 &aNormal) const
 
double SafetyFromInside (const UVector3 &aPoint, bool aAccurate=false) const
 
double SafetyFromOutside (const UVector3 &aPoint, bool aAccurate=false) const
 
double DistanceToIn (const UVector3 &aPoint, const UVector3 &aDirection, double aPstep=UUtils::kInfinity) const
 
double DistanceToOut (const UVector3 &aPoint, const UVector3 &aDirection, UVector3 &aNormalVector, bool &aConvex, double aPstep=UUtils::kInfinity) const
 
void Extent (UVector3 &aMin, UVector3 &aMax) const
 
double Capacity ()
 
double SurfaceArea ()
 
UGeometryType GetEntityType () const
 
void ComputeBBox (UBBox *, bool)
 
void GetParametersList (int aNumber, double *aArray) const
 
VUSolidClone () const
 
UVector3 GetPointOnSurface () const
 
std::ostream & StreamInfo (std::ostream &os) const
 
 UTet (__void__ &)
 
 UTet (const UTet &rhs)
 
UTetoperator= (const UTet &rhs)
 
void PrintWarnings (bool flag)
 
std::vector< UVector3GetVertices () const
 
- Public Member Functions inherited from VUSolid
 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 void ExtentAxis (EAxisType aAxis, double &aMin, double &aMax) const
 
const std::string & GetName () const
 
void SetName (const std::string &aName)
 
virtual void SamplePointsInside (int, UVector3 *) const
 
virtual void SamplePointsOnSurface (int, UVector3 *) const
 
virtual void SamplePointsOnEdge (int, UVector3 *) const
 
double EstimateCubicVolume (int nStat, double epsilon) const
 
double EstimateSurfaceArea (int nStat, double ell) const
 

Static Public Member Functions

static bool CheckDegeneracy (UVector3 &anchor, UVector3 &p2, UVector3 &p3, UVector3 &p4)
 
- Static Public Member Functions inherited from VUSolid
static double Tolerance ()
 

Private Member Functions

UVector3 GetPointOnFace (UVector3 p1, UVector3 p2, UVector3 p3, double &area) const
 

Private Attributes

double fCubicVolume
 
double fSurfaceArea
 
UVector3 fAnchor
 
UVector3 fP2
 
UVector3 fP3
 
UVector3 fP4
 
UVector3 fMiddle
 
UVector3 fNormal123
 
UVector3 fNormal142
 
UVector3 fNormal134
 
UVector3 fNormal234
 
bool warningFlag
 
double fCdotN123
 
double fCdotN142
 
double fCdotN134
 
double fCdotN234
 
double fXMin
 
double fXMax
 
double fYMin
 
double fYMax
 
double fZMin
 
double fZMax
 
double fDx
 
double fDy
 
double fDz
 
double fTol
 
double fMaxSize
 

Static Private Attributes

static const char CVSVers []
 

Additional Inherited Members

- Public Types inherited from VUSolid
enum  EnumInside { eInside =0, eSurface =1, eOutside =2 }
 
enum  EAxisType { eXaxis =0, eYaxis =1, eZaxis =2 }
 
- Static Protected Attributes inherited from VUSolid
static double fgTolerance = 1.0E-9
 
static double frTolerance = 1.0E-9
 
static double faTolerance = 1.0E-9
 

Detailed Description

Definition at line 27 of file UTet.hh.

Constructor & Destructor Documentation

UTet::UTet ( const std::string &  name,
UVector3  anchor,
UVector3  p2,
UVector3  p3,
UVector3  p4,
bool *  degeneracyFlag = 0 
)

Definition at line 35 of file UTet.cc.

References UVector3::Cross(), UVector3::Dot(), UUtils::Exception(), fAnchor, FatalErrorInArguments, fCdotN123, fCdotN134, fCdotN142, fCdotN234, fCubicVolume, fDx, fDy, fDz, fMaxSize, fMiddle, fNormal123, fNormal134, fNormal142, fNormal234, fP2, fP3, fP4, fSurfaceArea, fTol, fXMax, fXMin, fYMax, fYMin, fZMax, fZMin, UVector3::Mag(), G4INCL::Math::max(), G4INCL::Math::min(), UVector3::Unit(), UVector3::x, UVector3::y, and UVector3::z.

Referenced by Clone().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

UTet::~UTet ( )
virtual

Definition at line 146 of file UTet.cc.

UTet::UTet ( __void__ &  )

Definition at line 137 of file UTet.cc.

UTet::UTet ( const UTet rhs)

Definition at line 154 of file UTet.cc.

Member Function Documentation

double UTet::Capacity ( )
virtual

Implements VUSolid.

Definition at line 661 of file UTet.cc.

References fCubicVolume.

static bool UTet::CheckDegeneracy ( UVector3 anchor,
UVector3 p2,
UVector3 p3,
UVector3 p4 
)
static
VUSolid * UTet::Clone ( ) const
virtual

Implements VUSolid.

Definition at line 651 of file UTet.cc.

References UTet().

+ Here is the call graph for this function:

void UTet::ComputeBBox ( UBBox ,
bool   
)
inlinevirtual

Implements VUSolid.

Definition at line 70 of file UTet.hh.

double UTet::DistanceToIn ( const UVector3 aPoint,
const UVector3 aDirection,
double  aPstep = UUtils::kInfinity 
) const
virtual

Implements VUSolid.

Definition at line 331 of file UTet.cc.

References UVector3::Dot(), fCdotN123, fCdotN134, fCdotN142, fCdotN234, fNormal123, fNormal134, fNormal142, fNormal234, fTol, UUtils::kInfinity, G4INCL::Math::max(), and UVector3::Unit().

+ Here is the call graph for this function:

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

Implements VUSolid.

Definition at line 431 of file UTet.cc.

References UVector3::Dot(), UUtils::Exception(), fCdotN123, fCdotN134, fCdotN142, fCdotN234, fNormal123, fNormal134, fNormal142, fNormal234, fTol, UUtils::kInfinity, G4INCL::Math::max(), G4INCL::Math::min(), CLHEP::normal(), UVector3::Unit(), Warning, and warningFlag.

+ Here is the call graph for this function:

void UTet::Extent ( UVector3 aMin,
UVector3 aMax 
) const
virtual

Implements VUSolid.

Definition at line 624 of file UTet.cc.

References fDx, fDy, fDz, UVector3::x, UVector3::y, and UVector3::z.

UGeometryType UTet::GetEntityType ( ) const
virtual

Implements VUSolid.

Definition at line 656 of file UTet.cc.

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

Implements VUSolid.

Definition at line 635 of file UTet.cc.

References fAnchor, fP2, fP3, fP4, UVector3::x, UVector3::y, and UVector3::z.

UVector3 UTet::GetPointOnFace ( UVector3  p1,
UVector3  p2,
UVector3  p3,
double &  area 
) const
private

Definition at line 563 of file UTet.cc.

References UVector3::Cross(), and UUtils::Random().

Referenced by GetPointOnSurface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

UVector3 UTet::GetPointOnSurface ( ) const
virtual

Implements VUSolid.

Definition at line 583 of file UTet.cc.

References fAnchor, fP2, fP3, fP4, GetPointOnFace(), and UUtils::Random().

+ Here is the call graph for this function:

std::vector< UVector3 > UTet::GetVertices ( ) const

Definition at line 613 of file UTet.cc.

References fAnchor, fP2, fP3, and fP4.

Referenced by G4UTet::GetVertices().

+ Here is the caller graph for this function:

VUSolid::EnumInside UTet::Inside ( const UVector3 p) const
virtual

Implements VUSolid.

Definition at line 225 of file UTet.cc.

References UVector3::Dot(), VUSolid::eInside, VUSolid::eOutside, VUSolid::eSurface, fCdotN123, fCdotN134, fCdotN142, fCdotN234, fNormal123, fNormal134, fNormal142, fNormal234, and fTol.

+ Here is the call graph for this function:

bool UTet::Normal ( const UVector3 aPoint,
UVector3 aNormal 
) const
virtual

Implements VUSolid.

Definition at line 256 of file UTet.cc.

References UVector3::Dot(), fCdotN123, fCdotN134, fCdotN142, fCdotN234, fNormal123, fNormal134, fNormal142, fNormal234, fTol, and UVector3::Unit().

+ Here is the call graph for this function:

UTet & UTet::operator= ( const UTet rhs)
void UTet::PrintWarnings ( bool  flag)
inline

Definition at line 91 of file UTet.hh.

References warningFlag.

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

Implements VUSolid.

Definition at line 514 of file UTet.cc.

References UVector3::Dot(), fCdotN123, fCdotN134, fCdotN142, fCdotN234, fNormal123, fNormal134, fNormal142, fNormal234, fTol, and G4INCL::Math::min().

+ Here is the call graph for this function:

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

Implements VUSolid.

Definition at line 419 of file UTet.cc.

References fMaxSize, fMiddle, fTol, and G4INCL::Math::max().

+ Here is the call graph for this function:

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

Implements VUSolid.

Definition at line 534 of file UTet.cc.

References fAnchor, fNormal123, fNormal134, fNormal142, fNormal234, fP2, fP3, fP4, and VUSolid::GetName().

+ Here is the call graph for this function:

double UTet::SurfaceArea ( )
virtual

Implements VUSolid.

Definition at line 666 of file UTet.cc.

References fSurfaceArea.

Member Data Documentation

const char UTet::CVSVers[]
staticprivate

Definition at line 108 of file UTet.hh.

UVector3 UTet::fAnchor
private

Definition at line 112 of file UTet.hh.

Referenced by GetParametersList(), GetPointOnSurface(), GetVertices(), operator=(), StreamInfo(), and UTet().

double UTet::fCdotN123
private

Definition at line 117 of file UTet.hh.

Referenced by DistanceToIn(), DistanceToOut(), Inside(), Normal(), operator=(), SafetyFromInside(), and UTet().

double UTet::fCdotN134
private

Definition at line 117 of file UTet.hh.

Referenced by DistanceToIn(), DistanceToOut(), Inside(), Normal(), operator=(), SafetyFromInside(), and UTet().

double UTet::fCdotN142
private

Definition at line 117 of file UTet.hh.

Referenced by DistanceToIn(), DistanceToOut(), Inside(), Normal(), operator=(), SafetyFromInside(), and UTet().

double UTet::fCdotN234
private

Definition at line 117 of file UTet.hh.

Referenced by DistanceToIn(), DistanceToOut(), Inside(), Normal(), operator=(), SafetyFromInside(), and UTet().

double UTet::fCubicVolume
private

Definition at line 104 of file UTet.hh.

Referenced by Capacity(), operator=(), and UTet().

double UTet::fDx
private

Definition at line 119 of file UTet.hh.

Referenced by Extent(), operator=(), and UTet().

double UTet::fDy
private

Definition at line 119 of file UTet.hh.

Referenced by Extent(), operator=(), and UTet().

double UTet::fDz
private

Definition at line 119 of file UTet.hh.

Referenced by Extent(), operator=(), and UTet().

double UTet::fMaxSize
private

Definition at line 119 of file UTet.hh.

Referenced by operator=(), SafetyFromOutside(), and UTet().

UVector3 UTet::fMiddle
private

Definition at line 112 of file UTet.hh.

Referenced by operator=(), SafetyFromOutside(), and UTet().

UVector3 UTet::fNormal123
private
UVector3 UTet::fNormal134
private
UVector3 UTet::fNormal142
private
UVector3 UTet::fNormal234
private
UVector3 UTet::fP2
private

Definition at line 112 of file UTet.hh.

Referenced by GetParametersList(), GetPointOnSurface(), GetVertices(), operator=(), StreamInfo(), and UTet().

UVector3 UTet::fP3
private

Definition at line 112 of file UTet.hh.

Referenced by GetParametersList(), GetPointOnSurface(), GetVertices(), operator=(), StreamInfo(), and UTet().

UVector3 UTet::fP4
private

Definition at line 112 of file UTet.hh.

Referenced by GetParametersList(), GetPointOnSurface(), GetVertices(), operator=(), StreamInfo(), and UTet().

double UTet::fSurfaceArea
private

Definition at line 104 of file UTet.hh.

Referenced by operator=(), SurfaceArea(), and UTet().

double UTet::fTol
private
double UTet::fXMax
private

Definition at line 118 of file UTet.hh.

Referenced by operator=(), and UTet().

double UTet::fXMin
private

Definition at line 118 of file UTet.hh.

Referenced by operator=(), and UTet().

double UTet::fYMax
private

Definition at line 118 of file UTet.hh.

Referenced by operator=(), and UTet().

double UTet::fYMin
private

Definition at line 118 of file UTet.hh.

Referenced by operator=(), and UTet().

double UTet::fZMax
private

Definition at line 118 of file UTet.hh.

Referenced by operator=(), and UTet().

double UTet::fZMin
private

Definition at line 118 of file UTet.hh.

Referenced by operator=(), and UTet().

bool UTet::warningFlag
private

Definition at line 115 of file UTet.hh.

Referenced by DistanceToOut(), operator=(), and PrintWarnings().


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