Geant4
10.01
|
#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 UTrap, UTessellatedSolid, UPolycone, UGenericTrap, UMultiUnion, USphere, UTrd, UVCSGfaceted, UCons, UBox, UTubs, UTet, and UOrb.
Definition at line 199 of file VUSolid.cc.
References EstimateCubicVolume().
Referenced by UGenericTrap::Capacity(), UPolycone::Capacity(), and G4USolid::GetCubicVolume().
|
pure virtual |
Implemented in UTrap, UTessellatedSolid, UPolycone, UPolyhedra, UCons, USphere, UExtrudedSolid, UGenericTrap, UMultiUnion, UTubs, UTrd, UBox, UGenericPolycone, UTet, and UOrb.
Referenced by G4USolid::G4USolid(), and G4USolid::operator=().
|
protectedpure virtual |
Implemented in UTrap, UTessellatedSolid, UPolycone, USphere, UCons, UGenericPolycone, UTubs, UGenericTrap, UMultiUnion, UPolyhedra, UTrd, UBox, UTet, and UOrb.
|
pure virtual |
Implemented in UTrap, UTessellatedSolid, UPolyhedra, UPolycone, USphere, UCons, UGenericTrap, UTubs, UBox, UMultiUnion, UTrd, UGenericPolycone, UVCSGfaceted, UTet, and UOrb.
Referenced by G4USolid::DistanceToIn(), UPolycone::DistanceToIn(), UMultiUnion::DistanceToInCandidates(), and UMultiUnion::DistanceToInNoVoxels().
|
pure virtual |
Implemented in UTrap, UTessellatedSolid, UPolycone, USphere, UCons, UExtrudedSolid, UGenericTrap, UTubs, UBox, UMultiUnion, UTrd, UVCSGfaceted, UTet, and UOrb.
Referenced by G4USolid::DistanceToOut(), UPolycone::DistanceToOut(), UMultiUnion::DistanceToOutNoVoxels(), and UMultiUnion::DistanceToOutVoxels().
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(), UMultiUnion::SurfaceArea(), and SurfaceArea().
Implemented in UTrap, UTessellatedSolid, UPolyhedra, UPolycone, UGenericPolycone, USphere, UCons, UTubs, UGenericTrap, UMultiUnion, UTrd, UBox, UTet, and UOrb.
Referenced by EstimateCubicVolume(), EstimateSurfaceArea(), and UMultiUnion::Extent().
|
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 UTrap, UPolycone, UTessellatedSolid, UPolyhedra, UCons, USphere, UGenericTrap, UMultiUnion, UExtrudedSolid, 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(), UGenericTrap::CheckOrder(), USphere::CheckThetaAngles(), UGenericTrap::ComputeIsTwisted(), UGenericPolycone::Create(), UPolyhedra::Create(), UGenericTrap::CreateTessellatedSolid(), G4UMultiUnion::GetSolid(), UPolyhedra::Init(), UPolycone::Init(), UExtrudedSolid::Initialise(), UGenericTrap::Initialise(), UTessellatedSolid::InsideNoVoxels(), UTessellatedSolid::InsideVoxels(), UGenericTrap::MakeDownFacet(), UTrap::MakePlane(), UTrap::MakePlanes(), UGenericTrap::MakeUpFacet(), UPolycone::Normal(), UGenericPolycone::Reset(), UPolyhedra::Reset(), UTrap::SetAllParameters(), UPolycone::SetOriginalParameters(), UTrap::SetPlanes(), UBox::SetXHalfLength(), UBox::SetYHalfLength(), UBox::SetZHalfLength(), UTet::StreamInfo(), UGenericPolycone::StreamInfo(), UVCSGfaceted::StreamInfo(), UOrb::StreamInfo(), UBox::StreamInfo(), UTrd::StreamInfo(), UTubs::StreamInfo(), UExtrudedSolid::StreamInfo(), UPolycone::StreamInfo(), UGenericTrap::StreamInfo(), UCons::StreamInfo(), USphere::StreamInfo(), UMultiUnion::StreamInfo(), UPolyhedra::StreamInfo(), UTrap::StreamInfo(), UBox::UBox(), UCons::UCons(), UPolycone::UPolycone(), USphere::USphere(), UTrap::UTrap(), and UTubs::UTubs().
|
pure virtual |
Implemented in UTrap, UTessellatedSolid, UPolycone, USphere, UCons, UGenericPolycone, UMultiUnion, UTubs, UGenericTrap, UPolyhedra, UTrd, UBox, UTet, and UOrb.
Referenced by G4USolid::CreatePolyhedron().
|
pure virtual |
Implemented in UTrap, UPolycone, UTessellatedSolid, UMultiUnion, UPolyhedra, UGenericTrap, UCons, USphere, UTrd, UTubs, UBox, UOrb, UTet, and UGenericPolycone.
Referenced by UMultiUnion::GetPointOnSurface(), and G4USolid::GetPointOnSurface().
|
inline |
Definition at line 152 of file VUSolid.hh.
References frTolerance.
|
pure virtual |
Implemented in UTrap, UCons, UTessellatedSolid, UPolycone, UPolyhedra, UExtrudedSolid, USphere, UGenericTrap, UTubs, UBox, UGenericPolycone, UTrd, UMultiUnion, UVCSGfaceted, UOrb, and UTet.
Referenced by UPolyPhiFace::Diagnose(), UPolycone::DistanceToOut(), UMultiUnion::DistanceToOutNoVoxels(), UMultiUnion::DistanceToOutVoxels(), EstimateCubicVolume(), EstimateSurfaceArea(), G4USolid::Inside(), UMultiUnion::InsideNoVoxels(), UMultiUnion::InsideWithExclusion(), UMultiUnion::Normal(), UPolycone::Normal(), and UMultiUnion::SafetyFromInside().
Implemented in UTrap, UPolycone, UTessellatedSolid, UMultiUnion, USphere, UCons, UGenericTrap, UTubs, UBox, UTrd, UOrb, UVCSGfaceted, and UTet.
Referenced by UMultiUnion::InsideWithExclusion(), UMultiUnion::Normal(), UPolycone::Normal(), UPolycone::NormalSection(), and G4USolid::SurfaceNormal().
|
pure virtual |
Implemented in UTrap, UTessellatedSolid, UPolycone, UCons, USphere, UExtrudedSolid, UTubs, UGenericTrap, UVCSGfaceted, UBox, UMultiUnion, UTrd, UTet, and UOrb.
Referenced by G4USolid::DistanceToOut(), EstimateSurfaceArea(), UMultiUnion::Normal(), and UMultiUnion::SafetyFromInside().
|
pure virtual |
Implemented in UTrap, UTessellatedSolid, UPolycone, UPolyhedra, USphere, UCons, UTubs, UGenericTrap, UBox, UTrd, UMultiUnion, UVCSGfaceted, UTet, and UOrb.
Referenced by G4USolid::DistanceToIn(), EstimateSurfaceArea(), UMultiUnion::Normal(), UMultiUnion::SafetyFromOutside(), UMultiUnion::SafetyFromOutsideNumberNode(), 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 G4UExtrudedSolid::G4UExtrudedSolid(), G4UGenericTrap::G4UGenericTrap(), and VUSolid().
void VUSolid::SetRadTolerance | ( | double | eps | ) |
Definition at line 338 of file VUSolid.cc.
References eps, and frTolerance.
|
pure virtual |
Implemented in UTrap, UTessellatedSolid, UPolyhedra, UMultiUnion, UCons, USphere, UGenericTrap, UPolycone, UExtrudedSolid, UTubs, UBox, UTrd, UOrb, UVCSGfaceted, UGenericPolycone, and UTet.
Referenced by UMultiUnion::StreamInfo(), and G4USolid::StreamInfo().
|
pure virtual |
Implemented in UTrap, UTessellatedSolid, UPolycone, UGenericTrap, UMultiUnion, UVCSGfaceted, USphere, UTrd, UCons, UBox, UTubs, UTet, and UOrb.
Definition at line 255 of file VUSolid.cc.
References EstimateSurfaceArea().
Referenced by G4USolid::GetSurfaceArea(), and UGenericTrap::SurfaceArea().
|
inlinestatic |
Definition at line 127 of file VUSolid.hh.
References fgTolerance.
Referenced by UGenericPolycone::Create(), UPolyhedra::Create(), UMultiUnion::DistanceToIn(), UTubs::DistanceToIn(), UCons::DistanceToIn(), USphere::DistanceToIn(), UTrap::DistanceToIn(), UTessellatedSolid::DistanceToInCore(), UMultiUnion::DistanceToOut(), UTubs::DistanceToOut(), UCons::DistanceToOut(), USphere::DistanceToOut(), UTrap::DistanceToOut(), UTubs::Inside(), UTrap::Inside(), UPolyPhiFace::InsideEdgesExact(), UTubs::Normal(), UCons::Normal(), USphere::Normal(), UTrap::Normal(), UPolyconeSide::PointOnCone(), UPolyhedraSide::Safety(), UPolyconeSide::Safety(), UPolyPhiFace::Safety(), UTrap::SetPlanes(), UEnclosingCylinder::UEnclosingCylinder(), UIntersectingCone::UIntersectingCone(), UPolyconeSide::UPolyconeSide(), UPolyhedraSide::UPolyhedraSide(), UPolyPhiFace::UPolyPhiFace(), UQuadrangularFacet::UQuadrangularFacet(), 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 UTessellatedSolid::AddFacet(), UTrd::CheckAndSetAllParameters(), UGenericTrap::ComputeIsTwisted(), UTessellatedSolid::CreateVertexList(), UVCSGfaceted::DistanceTo(), UVCSGfaceted::DistanceToIn(), UTrd::DistanceToIn(), UBox::DistanceToIn(), UGenericTrap::DistanceToIn(), UPolycone::DistanceToIn(), UVCSGfaceted::DistanceToInNoVoxels(), UVCSGfaceted::DistanceToOut(), UTrd::DistanceToOut(), UBox::DistanceToOut(), UGenericTrap::DistanceToOut(), UPolycone::DistanceToOut(), UTessellatedSolid::DistanceToOutCandidates(), UVCSGfaceted::DistanceToOutNoVoxels(), UTessellatedSolid::DistanceToOutNoVoxels(), UGenericTrap::DistToPlane(), UGenericTrap::DistToTriangle(), UVCSGfaceted::FindCandidates(), GetCarTolerance(), UPolycone::Init(), UExtrudedSolid::Initialise(), UGenericTrap::Initialise(), UVCSGfaceted::Inside(), UTrd::Inside(), UBox::Inside(), UGenericTrap::Inside(), UExtrudedSolid::Inside(), UPolycone::Inside(), UVCSGfaceted::InsideNoVoxels(), UTessellatedSolid::InsideNoVoxels(), UGenericTrap::InsidePolygone(), UPolycone::InsideSection(), UTessellatedSolid::InsideVoxels(), UExtrudedSolid::IsSameLine(), UGenericTrap::IsSameLine(), UExtrudedSolid::IsSameLineSegment(), UGenericTrap::IsSameLineSegment(), UGenericTrap::IsSegCrossingZ(), UVCSGfaceted::Normal(), UTrd::Normal(), UBox::Normal(), UGenericTrap::Normal(), UPolycone::Normal(), UGenericTrap::NormalToPlane(), UVCSGfaceted::SafetyFromInside(), UTessellatedSolid::SafetyFromInside(), UTessellatedSolid::SafetyFromOutside(), SetCarTolerance(), UBox::SetXHalfLength(), UBox::SetYHalfLength(), UBox::SetZHalfLength(), Tolerance(), UBox::UBox(), UOrb::UOrb(), and UTessellatedSolid::Voxelize().
|
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(), UMultiUnion::InsideWithExclusion(), UPolycone::Normal(), UPolycone::SetOriginalParameters(), SetRadTolerance(), UCons::UCons(), UOrb::UOrb(), USphere::USphere(), and UTubs::UTubs().