Geant4
10.00.p01
|
#include <UTrd.hh>
Public Member Functions | |
UTrd () | |
UTrd (const std::string &pName, double pdx1, double pdx2, double pdy1, double pdy2, double pdz) | |
virtual | ~UTrd () |
UTrd (const UTrd &rhs) | |
UTrd & | operator= (const UTrd &rhs) |
double | GetXHalfLength1 () const |
double | GetXHalfLength2 () const |
double | GetYHalfLength1 () const |
double | GetYHalfLength2 () const |
double | GetZHalfLength () const |
void | SetXHalfLength1 (double val) |
void | SetXHalfLength2 (double val) |
void | SetYHalfLength1 (double val) |
void | SetYHalfLength2 (double val) |
void | SetZHalfLength (double val) |
EnumInside | Inside (const UVector3 &aPoint) const |
Return whether point inside/outside/on surface Split into radius checks. More... | |
virtual double | SafetyFromInside (const UVector3 &aPoint, bool aAccurate=false) const |
double | SafetyFromInsideAccurate (const UVector3 &aPoint) const |
virtual double | SafetyFromOutside (const UVector3 &aPoint, bool aAccurate=false) const |
double | SafetyFromOutsideAccurate (const UVector3 &aPoint) const |
virtual double | DistanceToIn (const UVector3 &aPoint, const UVector3 &aDirection, double aPstep=UUtils::kInfinity) const |
virtual double | DistanceToOut (const UVector3 &aPoint, const UVector3 &aDirection, UVector3 &aNormalVector, bool &aConvex, double aPstep=UUtils::kInfinity) const |
virtual bool | Normal (const UVector3 &aPoint, UVector3 &aNormal) const |
void | CheckAndSetAllParameters (double pdx1, double pdx2, double pdy1, double pdy2, double pdz) |
void | SetAllParameters (double pdx1, double pdx2, double pdy1, double pdy2, double pdz) |
void | Extent (UVector3 &aMin, UVector3 &aMax) const |
Returns the full 3D cartesian extent of the solid. More... | |
double | Capacity () |
double | SurfaceArea () |
VUSolid * | Clone () const |
UGeometryType | GetEntityType () const |
virtual void | ComputeBBox (UBBox *, bool) |
virtual void | GetParametersList (int, double *) const |
std::ostream & | StreamInfo (std::ostream &os) const |
UVector3 | GetPointOnSurface () 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 |
Private Types | |
enum | ESide { kUndefined, kPX, kMX, kPY, kMY, kPZ, kMZ } |
Private Member Functions | |
UVector3 | ApproxSurfaceNormal (const UVector3 &p) const |
double | amin (int n, const double *a) const |
double | amax (int n, const double *a) const |
Private Attributes | |
double | fDx1 |
double | fDx2 |
double | fDy1 |
double | fDy2 |
double | fDz |
double | fCubicVolume |
double | fSurfaceArea |
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 Public Member Functions inherited from VUSolid | |
static double | Tolerance () |
Static Protected Attributes inherited from VUSolid | |
static double | fgTolerance = 1.0E-9 |
static double | frTolerance = 1.0E-9 |
static double | faTolerance = 1.0E-9 |
|
private |
|
inline |
UTrd::UTrd | ( | const std::string & | pName, |
double | pdx1, | ||
double | pdx2, | ||
double | pdy1, | ||
double | pdy2, | ||
double | pdz | ||
) |
Definition at line 29 of file UTrd.cc.
References CheckAndSetAllParameters().
|
inlineprivate |
|
inlineprivate |
Definition at line 1047 of file UTrd.cc.
References fcos(), fDx1, fDx2, fDy1, fDy2, fDz, UVector3::x, UVector3::y, z, and UVector3::z.
|
inlinevirtual |
Implements VUSolid.
void UTrd::CheckAndSetAllParameters | ( | double | pdx1, |
double | pdx2, | ||
double | pdy1, | ||
double | pdy2, | ||
double | pdz | ||
) |
Definition at line 38 of file UTrd.cc.
References UUtils::Exception(), FatalErrorInArguments, fDx1, fDx2, fDy1, fDy2, fDz, VUSolid::fgTolerance, VUSolid::GetName(), and G4INCL::Math::max().
Referenced by SetAllParameters(), and UTrd().
|
virtual |
|
inlinevirtual |
|
virtual |
Implements VUSolid.
Definition at line 321 of file UTrd.cc.
References fDx1, fDx2, fDy1, fDy2, fDz, VUSolid::fgTolerance, UUtils::kInfinity, smax, UVector3::x, UVector3::y, and UVector3::z.
|
inlinevirtual |
Implements VUSolid.
Definition at line 555 of file UTrd.cc.
References UUtils::Exception(), fDx1, fDx2, fDy1, fDy2, fDz, VUSolid::fgTolerance, UUtils::kInfinity, kMX, kMY, kMZ, kPX, kPY, kPZ, kUndefined, UVector3::Set(), Warning, UVector3::x, UVector3::y, and UVector3::z.
Returns the full 3D cartesian extent of the solid.
OK
Implements VUSolid.
Definition at line 1126 of file UTrd.cc.
References fDx1, fDx2, fDy1, fDy2, fDz, G4INCL::Math::max(), and UVector3::Set().
|
virtual |
|
virtual |
Implements VUSolid.
Definition at line 1276 of file UTrd.cc.
References GetXHalfLength1(), GetXHalfLength2(), GetYHalfLength1(), GetYHalfLength2(), and GetZHalfLength().
|
virtual |
|
inline |
Referenced by GetParametersList(), and G4UTrd::GetXHalfLength1().
|
inline |
Referenced by GetParametersList(), and G4UTrd::GetXHalfLength2().
|
inline |
Referenced by GetParametersList(), and G4UTrd::GetYHalfLength1().
|
inline |
Referenced by GetParametersList(), and G4UTrd::GetYHalfLength2().
|
inline |
Referenced by GetParametersList(), and G4UTrd::GetZHalfLength().
|
virtual |
Return whether point inside/outside/on surface Split into radius checks.
Classify point location with respect to solid: o eInside - inside the solid o eSurface - close to surface within tolerance o eOutside - outside the solid
Implements VUSolid.
Definition at line 255 of file UTrd.cc.
References VUSolid::eInside, VUSolid::eOutside, VUSolid::eSurface, fDx1, fDx2, fDy1, fDy2, fDz, VUSolid::fgTolerance, UVector3::x, UVector3::y, and UVector3::z.
Referenced by SafetyFromInside().
Implements VUSolid.
Definition at line 932 of file UTrd.cc.
References UUtils::Exception(), fcos(), fDx1, fDx2, fDy1, fDy2, fDz, VUSolid::fgTolerance, UVector3::Normalize(), Warning, UVector3::x, UVector3::y, z, and UVector3::z.
Definition at line 1249 of file UTrd.cc.
References fCubicVolume, fDx1, fDx2, fDy1, fDy2, fDz, and fSurfaceArea.
|
virtual |
Implements VUSolid.
Definition at line 83 of file UTrd.cc.
References UUtils::Exception(), fDx1, fDx2, fDy1, fDy2, fDz, Inside(), kOutside, mm, SafetyFromInsideAccurate(), Warning, UVector3::x, UVector3::y, and UVector3::z.
|
inline |
Definition at line 132 of file UTrd.cc.
References amin(), fDx1, fDx2, fDy1, fDy2, fDz, UUtils::kInfinity, UVector3::x, UVector3::y, and UVector3::z.
Referenced by SafetyFromInside().
|
virtual |
Implements VUSolid.
Definition at line 170 of file UTrd.cc.
References fDx1, fDx2, fDy1, fDy2, fDz, SafetyFromOutsideAccurate(), UVector3::x, UVector3::y, and UVector3::z.
|
inline |
Definition at line 209 of file UTrd.cc.
References amax(), fDx1, fDx2, fDy1, fDy2, fDz, UUtils::kInfinity, UVector3::x, UVector3::y, and UVector3::z.
Referenced by SafetyFromOutside().
void UTrd::SetAllParameters | ( | double | pdx1, |
double | pdx2, | ||
double | pdy1, | ||
double | pdy2, | ||
double | pdz | ||
) |
Definition at line 77 of file UTrd.cc.
References CheckAndSetAllParameters().
Referenced by G4UTrd::SetAllParameters().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
|
inlinevirtual |
Implements VUSolid.
|
private |
Definition at line 109 of file UTrd.hh.
Referenced by operator=().
|
private |
Definition at line 108 of file UTrd.hh.
Referenced by ApproxSurfaceNormal(), CheckAndSetAllParameters(), DistanceToIn(), DistanceToOut(), Extent(), GetPointOnSurface(), Inside(), Normal(), operator=(), SafetyFromInside(), SafetyFromInsideAccurate(), SafetyFromOutside(), SafetyFromOutsideAccurate(), and StreamInfo().
|
private |
Definition at line 108 of file UTrd.hh.
Referenced by ApproxSurfaceNormal(), CheckAndSetAllParameters(), DistanceToIn(), DistanceToOut(), Extent(), GetPointOnSurface(), Inside(), Normal(), operator=(), SafetyFromInside(), SafetyFromInsideAccurate(), SafetyFromOutside(), SafetyFromOutsideAccurate(), and StreamInfo().
|
private |
Definition at line 108 of file UTrd.hh.
Referenced by ApproxSurfaceNormal(), CheckAndSetAllParameters(), DistanceToIn(), DistanceToOut(), Extent(), GetPointOnSurface(), Inside(), Normal(), operator=(), SafetyFromInside(), SafetyFromInsideAccurate(), SafetyFromOutside(), SafetyFromOutsideAccurate(), and StreamInfo().
|
private |
Definition at line 108 of file UTrd.hh.
Referenced by ApproxSurfaceNormal(), CheckAndSetAllParameters(), DistanceToIn(), DistanceToOut(), Extent(), GetPointOnSurface(), Inside(), Normal(), operator=(), SafetyFromInside(), SafetyFromInsideAccurate(), SafetyFromOutside(), SafetyFromOutsideAccurate(), and StreamInfo().
|
private |
Definition at line 108 of file UTrd.hh.
Referenced by ApproxSurfaceNormal(), CheckAndSetAllParameters(), DistanceToIn(), DistanceToOut(), Extent(), GetPointOnSurface(), Inside(), Normal(), operator=(), SafetyFromInside(), SafetyFromInsideAccurate(), SafetyFromOutside(), SafetyFromOutsideAccurate(), and StreamInfo().
|
private |
Definition at line 110 of file UTrd.hh.
Referenced by operator=().