Geant4
10.00.p03
|
#include <VUSolid.hh>
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 VUSolid * | Clone () 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 |
Private Attributes | |
std::string | fName |
Definition at line 19 of file VUSolid.hh.
enum VUSolid::EAxisType |
Enumerator | |
---|---|
eXaxis | |
eYaxis | |
eZaxis |
Definition at line 27 of file VUSolid.hh.
enum VUSolid::EnumInside |
Enumerator | |
---|---|
eInside | |
eSurface | |
eOutside |
Definition at line 23 of file VUSolid.hh.
VUSolid::VUSolid | ( | ) |
Definition at line 18 of file VUSolid.cc.
VUSolid::VUSolid | ( | const std::string & | name | ) |
Definition at line 24 of file VUSolid.cc.
References SetName().
|
virtual |
Definition at line 32 of file VUSolid.cc.
|
pure virtual |
Implemented in UCons, UPolycone, USphere, UTrd, UVCSGfaceted, UBox, UTubs, UTet, and UOrb.
Definition at line 199 of file VUSolid.cc.
References EstimateCubicVolume().
Referenced by UPolycone::Capacity(), and G4USolid::GetCubicVolume().
|
pure virtual |
Implemented in UPolycone, UPolyhedra, UCons, USphere, UTubs, UTrd, UBox, UGenericPolycone, UTet, and UOrb.
Referenced by G4USolid::G4USolid(), and G4USolid::operator=().
|
protectedpure virtual |
Implemented in UPolycone, USphere, UCons, UGenericPolycone, UTubs, UPolyhedra, UTrd, UBox, UTet, and UOrb.
|
pure virtual |
Implemented in UPolyhedra, UPolycone, USphere, UCons, UTubs, UBox, UTrd, UGenericPolycone, UVCSGfaceted, UTet, and UOrb.
Referenced by G4USolid::DistanceToIn(), and UPolycone::DistanceToIn().
|
pure virtual |
Implemented in UPolycone, USphere, UCons, UTubs, UBox, UTrd, UVCSGfaceted, UTet, and UOrb.
Referenced by G4USolid::DistanceToOut(), and UPolycone::DistanceToOut().
double VUSolid::EstimateCubicVolume | ( | int | nStat, |
double | epsilon | ||
) | const |
Definition at line 214 of file VUSolid.cc.
References eOutside, Extent(), Inside(), G4INCL::Math::max(), G4INCL::Math::min(), UUtils::Random(), UVector3::x, UVector3::y, and UVector3::z.
Referenced by UVCSGfaceted::Capacity(), and Capacity().
double VUSolid::EstimateSurfaceArea | ( | int | nStat, |
double | ell | ||
) | const |
Definition at line 268 of file VUSolid.cc.
References eOutside, Extent(), Inside(), G4INCL::Math::max(), G4INCL::Math::min(), UUtils::Random(), SafetyFromInside(), SafetyFromOutside(), UVector3::x, UVector3::y, and UVector3::z.
Referenced by UVCSGfaceted::SurfaceArea(), and SurfaceArea().
Implemented in UPolyhedra, UPolycone, UGenericPolycone, USphere, UCons, UTubs, UTrd, UBox, UTet, and UOrb.
Referenced by EstimateCubicVolume(), and EstimateSurfaceArea().
|
virtual |
Definition at line 318 of file VUSolid.cc.
References G4INCL::Math::max(), and G4INCL::Math::min().
Referenced by G4USolid::CalculateExtent(), and G4USolid::CreateRotatedVertices().
|
inline |
Definition at line 153 of file VUSolid.hh.
References faTolerance.
|
inline |
Definition at line 151 of file VUSolid.hh.
References fgTolerance.
|
pure virtual |
Implemented in UPolycone, UPolyhedra, UCons, USphere, UTubs, UTrd, UBox, UVCSGfaceted, UGenericPolycone, UTet, and UOrb.
Referenced by G4USolid::CreatePolyhedron(), and G4USolid::GetEntityType().
|
inline |
Definition at line 103 of file VUSolid.hh.
References fName.
Referenced by UTrd::CheckAndSetAllParameters(), USphere::CheckDPhiAngle(), USphere::CheckThetaAngles(), UGenericPolycone::Create(), UPolyhedra::Create(), UPolyhedra::Init(), UPolycone::Init(), UGenericPolycone::Reset(), UPolyhedra::Reset(), UPolycone::SetOriginalParameters(), UBox::SetXHalfLength(), UBox::SetYHalfLength(), UBox::SetZHalfLength(), UTet::StreamInfo(), UGenericPolycone::StreamInfo(), UVCSGfaceted::StreamInfo(), UOrb::StreamInfo(), UTrd::StreamInfo(), UBox::StreamInfo(), UTubs::StreamInfo(), UPolycone::StreamInfo(), USphere::StreamInfo(), UCons::StreamInfo(), UPolyhedra::StreamInfo(), G4USolid::StreamInfo(), UBox::UBox(), UCons::UCons(), UPolycone::UPolycone(), USphere::USphere(), and UTubs::UTubs().
|
pure virtual |
Implemented in UPolycone, USphere, UCons, UGenericPolycone, UTubs, UPolyhedra, UTrd, UBox, UTet, and UOrb.
Referenced by G4USolid::CreatePolyhedron().
|
pure virtual |
Implemented in UPolycone, UPolyhedra, UCons, USphere, UTrd, UTubs, UBox, UOrb, UTet, and UGenericPolycone.
Referenced by G4USolid::GetPointOnSurface().
|
inline |
Definition at line 152 of file VUSolid.hh.
References frTolerance.
|
pure virtual |
Implemented in UCons, UPolycone, UPolyhedra, USphere, UTubs, UBox, UGenericPolycone, UTrd, UVCSGfaceted, UOrb, and UTet.
Referenced by UPolyPhiFace::Diagnose(), UPolycone::DistanceToOut(), EstimateCubicVolume(), EstimateSurfaceArea(), G4USolid::Inside(), and UPolycone::Normal().
Implemented in UPolycone, USphere, UCons, UTubs, UBox, UTrd, UOrb, UVCSGfaceted, and UTet.
Referenced by UPolycone::Normal(), UPolycone::NormalSection(), and G4USolid::SurfaceNormal().
|
pure virtual |
Implemented in UPolycone, UCons, USphere, UTubs, UVCSGfaceted, UBox, UTrd, UTet, and UOrb.
Referenced by G4USolid::DistanceToOut(), and EstimateSurfaceArea().
|
pure virtual |
Implemented in UPolycone, UPolyhedra, USphere, UCons, UTubs, UBox, UTrd, UVCSGfaceted, UTet, and UOrb.
Referenced by G4USolid::DistanceToIn(), EstimateSurfaceArea(), and UPolycone::SafetyFromOutsideSection().
|
inlinevirtual |
Definition at line 112 of file VUSolid.hh.
|
inlinevirtual |
Definition at line 114 of file VUSolid.hh.
|
inlinevirtual |
Definition at line 113 of file VUSolid.hh.
void VUSolid::SetAngTolerance | ( | double | eps | ) |
Definition at line 342 of file VUSolid.cc.
References eps, and faTolerance.
void VUSolid::SetCarTolerance | ( | double | eps | ) |
Definition at line 334 of file VUSolid.cc.
References eps, and fgTolerance.
|
inline |
Definition at line 104 of file VUSolid.hh.
References fName.
Referenced by VUSolid().
void VUSolid::SetRadTolerance | ( | double | eps | ) |
Definition at line 338 of file VUSolid.cc.
References eps, and frTolerance.
|
inlinepure virtual |
Implemented in UPolyhedra, UCons, USphere, UPolycone, UTubs, UBox, UTrd, UOrb, UVCSGfaceted, UGenericPolycone, and UTet.
|
pure virtual |
Implemented in UCons, UPolycone, UVCSGfaceted, USphere, UTrd, UBox, UTubs, UTet, and UOrb.
Definition at line 255 of file VUSolid.cc.
References EstimateSurfaceArea().
Referenced by G4USolid::GetSurfaceArea().
|
inlinestatic |
Definition at line 127 of file VUSolid.hh.
References fgTolerance.
Referenced by UGenericPolycone::Create(), UPolyhedra::Create(), UTubs::DistanceToIn(), UCons::DistanceToIn(), USphere::DistanceToIn(), UTubs::DistanceToOut(), UCons::DistanceToOut(), USphere::DistanceToOut(), UTubs::Inside(), UPolyPhiFace::InsideEdgesExact(), UTubs::Normal(), UCons::Normal(), USphere::Normal(), UPolyconeSide::PointOnCone(), UPolyhedraSide::Safety(), UPolyconeSide::Safety(), UPolyPhiFace::Safety(), UEnclosingCylinder::UEnclosingCylinder(), UIntersectingCone::UIntersectingCone(), UPolyconeSide::UPolyconeSide(), UPolyhedraSide::UPolyhedraSide(), UPolyPhiFace::UPolyPhiFace(), and UVoxelizer::UVoxelizer().
|
staticprotected |
Definition at line 32 of file VUSolid.hh.
Referenced by GetAngTolerance(), SetAngTolerance(), UCons::UCons(), USphere::USphere(), and UTubs::UTubs().
|
staticprotected |
Definition at line 30 of file VUSolid.hh.
Referenced by UTrd::CheckAndSetAllParameters(), UVCSGfaceted::DistanceTo(), UVCSGfaceted::DistanceToIn(), UTrd::DistanceToIn(), UBox::DistanceToIn(), UPolycone::DistanceToIn(), UVCSGfaceted::DistanceToInNoVoxels(), UVCSGfaceted::DistanceToOut(), UTrd::DistanceToOut(), UBox::DistanceToOut(), UPolycone::DistanceToOut(), UVCSGfaceted::DistanceToOutNoVoxels(), UVCSGfaceted::FindCandidates(), GetCarTolerance(), UPolycone::Init(), UVCSGfaceted::Inside(), UTrd::Inside(), UBox::Inside(), UPolycone::Inside(), UVCSGfaceted::InsideNoVoxels(), UPolycone::InsideSection(), UVCSGfaceted::Normal(), UTrd::Normal(), UBox::Normal(), UPolycone::Normal(), UVCSGfaceted::SafetyFromInside(), SetCarTolerance(), UBox::SetXHalfLength(), UBox::SetYHalfLength(), UBox::SetZHalfLength(), Tolerance(), UBox::UBox(), and UOrb::UOrb().
|
private |
Definition at line 148 of file VUSolid.hh.
|
staticprotected |
Definition at line 31 of file VUSolid.hh.
Referenced by GetRadTolerance(), UPolycone::Inside(), UPolycone::InsideSection(), UPolycone::Normal(), UPolycone::SetOriginalParameters(), SetRadTolerance(), UCons::UCons(), UOrb::UOrb(), USphere::USphere(), and UTubs::UTubs().