Geant4
10.01.p01
|
#include <UExtrudedSolid.hh>
Classes | |
struct | ZSection |
Public Member Functions | |
UExtrudedSolid (const std::string &pName, std::vector< UVector2 > polygon, std::vector< ZSection > zsections) | |
UExtrudedSolid (const std::string &pName, std::vector< UVector2 > polygon, double halfZ, UVector2 off1, double scale1, UVector2 off2, double scale2) | |
virtual | ~UExtrudedSolid () |
int | GetNofVertices () const |
UVector2 | GetVertex (int index) const |
std::vector< UVector2 > | GetPolygon () const |
int | GetNofZSections () const |
ZSection | GetZSection (int index) const |
std::vector< ZSection > | GetZSections () const |
EnumInside | Inside (const UVector3 &aPoint) const |
double | DistanceToOut (const UVector3 &aPoint, const UVector3 &aDirection, UVector3 &aNormalVector, bool &aConvex, double aPstep=UUtils::kInfinity) const |
double | SafetyFromInside (const UVector3 &aPoint, bool aAccurate=false) const |
UGeometryType | GetEntityType () const |
VUSolid * | Clone () const |
std::ostream & | StreamInfo (std::ostream &os) const |
UExtrudedSolid () | |
UExtrudedSolid (const UExtrudedSolid &rhs) | |
UExtrudedSolid & | operator= (const UExtrudedSolid &rhs) |
void | Initialise (std::vector< UVector2 > &polygon, std::vector< ZSection > &zsections) |
void | Initialise (std::vector< UVector2 > &polygon, double dz, UVector2 off1, double scale1, UVector2 off2, double scale2) |
Public Member Functions inherited from UTessellatedSolid | |
UTessellatedSolid () | |
virtual | ~UTessellatedSolid () |
UTessellatedSolid (const std::string &name) | |
UTessellatedSolid (__void__ &) | |
UTessellatedSolid (const UTessellatedSolid &s) | |
UTessellatedSolid & | operator= (const UTessellatedSolid &s) |
UTessellatedSolid & | operator+= (const UTessellatedSolid &right) |
bool | AddFacet (VUFacet *aFacet) |
VUFacet * | GetFacet (int i) const |
int | GetNumberOfFacets () const |
virtual double | GetSurfaceArea () |
virtual bool | Normal (const UVector3 &p, UVector3 &aNormal) const |
virtual double | SafetyFromOutside (const UVector3 &p, bool aAccurate=false) const |
void | SetSolidClosed (const bool t) |
bool | GetSolidClosed () const |
virtual UVector3 | GetPointOnSurface () const |
virtual double | Capacity () |
virtual double | SurfaceArea () |
virtual void | GetParametersList (int, double *) const |
virtual void | ComputeBBox (UBBox *, bool) |
void | SetMaxVoxels (int max) |
UVoxelizer & | GetVoxels () |
double | GetMinXExtent () const |
double | GetMaxXExtent () const |
double | GetMinYExtent () const |
double | GetMaxYExtent () const |
double | GetMinZExtent () const |
double | GetMaxZExtent () const |
virtual double | DistanceToIn (const UVector3 &p, const UVector3 &v, double aPstep=UUtils::kInfinity) const |
void | Extent (UVector3 &aMin, UVector3 &aMax) const |
int | AllocatedMemoryWithoutVoxels () |
int | AllocatedMemory () |
void | DisplayAllocatedMemory () |
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 Member Functions | |
void | ComputeProjectionParameters () |
UVector3 | GetVertex (int iz, int ind) const |
UVector2 | ProjectPoint (const UVector3 &point) const |
bool | IsSameLine (UVector2 p, UVector2 l1, UVector2 l2) const |
bool | IsSameLineSegment (UVector2 p, UVector2 l1, UVector2 l2) const |
bool | IsSameSide (UVector2 p1, UVector2 p2, UVector2 l1, UVector2 l2) const |
bool | IsPointInside (UVector2 a, UVector2 b, UVector2 c, UVector2 p) const |
double | GetAngle (UVector2 p0, UVector2 pa, UVector2 pb) const |
VUFacet * | MakeDownFacet (int ind1, int ind2, int ind3) const |
VUFacet * | MakeUpFacet (int ind1, int ind2, int ind3) const |
bool | AddGeneralPolygonFacets () |
bool | MakeFacets () |
bool | IsConvex () const |
Private Attributes | |
int | fNv |
int | fNz |
std::vector< UVector2 > | fPolygon |
std::vector< ZSection > | fZSections |
std::vector< std::vector< int > > | fTriangles |
bool | fIsConvex |
UGeometryType | fGeometryType |
std::vector< double > | fKScales |
std::vector< double > | fScale0s |
std::vector< UVector2 > | fKOffsets |
std::vector< UVector2 > | fOffset0s |
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 |
Definition at line 52 of file UExtrudedSolid.hh.
UExtrudedSolid::UExtrudedSolid | ( | const std::string & | pName, |
std::vector< UVector2 > | polygon, | ||
std::vector< ZSection > | zsections | ||
) |
Definition at line 28 of file UExtrudedSolid.cc.
References Initialise().
UExtrudedSolid::UExtrudedSolid | ( | const std::string & | pName, |
std::vector< UVector2 > | polygon, | ||
double | halfZ, | ||
UVector2 | off1, | ||
double | scale1, | ||
UVector2 | off2, | ||
double | scale2 | ||
) |
Definition at line 46 of file UExtrudedSolid.cc.
References Initialise().
|
virtual |
Definition at line 120 of file UExtrudedSolid.cc.
UExtrudedSolid::UExtrudedSolid | ( | ) |
Definition at line 66 of file UExtrudedSolid.cc.
Referenced by Clone().
UExtrudedSolid::UExtrudedSolid | ( | const UExtrudedSolid & | rhs | ) |
Definition at line 76 of file UExtrudedSolid.cc.
|
private |
Definition at line 545 of file UExtrudedSolid.cc.
References UTessellatedSolid::AddFacet(), c1, c2, c3, UUtils::Exception(), FatalError, fNv, fPolygon, fTriangles, GetAngle(), IsPointInside(), UUtils::kPi, MakeDownFacet(), and MakeUpFacet().
Referenced by MakeFacets().
|
virtual |
Reimplemented from UTessellatedSolid.
Definition at line 788 of file UExtrudedSolid.cc.
References UExtrudedSolid().
|
private |
Definition at line 301 of file UExtrudedSolid.cc.
References fKOffsets, fKScales, fNz, fOffset0s, fScale0s, fZSections, and iz.
Referenced by Initialise().
|
virtual |
Reimplemented from UTessellatedSolid.
Definition at line 858 of file UExtrudedSolid.cc.
References UTessellatedSolid::DistanceToOut(), and fIsConvex.
Definition at line 467 of file UExtrudedSolid.cc.
References UUtils::kPi, UVector2::x, and UVector2::y.
Referenced by AddGeneralPolygonFacets().
|
inlinevirtual |
Reimplemented from UTessellatedSolid.
Definition at line 104 of file UExtrudedSolid.hh.
|
inline |
|
inline |
|
inline |
|
inline |
Referenced by G4UExtrudedSolid::GetVertex(), MakeDownFacet(), MakeFacets(), and MakeUpFacet().
|
private |
Definition at line 335 of file UExtrudedSolid.cc.
References fPolygon, and fZSections.
|
inline |
|
inline |
void UExtrudedSolid::Initialise | ( | std::vector< UVector2 > & | polygon, |
std::vector< ZSection > & | zsections | ||
) |
Definition at line 127 of file UExtrudedSolid.cc.
References ComputeProjectionParameters(), UUtils::Exception(), FatalError, FatalErrorInArguments, VUSolid::fgTolerance, fIsConvex, fNv, fNz, fPolygon, fZSections, VUSolid::GetName(), IsConvex(), MakeFacets(), and Warning.
Referenced by G4UExtrudedSolid::G4UExtrudedSolid(), and UExtrudedSolid().
void UExtrudedSolid::Initialise | ( | std::vector< UVector2 > & | polygon, |
double | dz, | ||
UVector2 | off1, | ||
double | scale1, | ||
UVector2 | off2, | ||
double | scale2 | ||
) |
Definition at line 227 of file UExtrudedSolid.cc.
References ComputeProjectionParameters(), UUtils::Exception(), FatalError, FatalErrorInArguments, fIsConvex, fNv, fPolygon, fZSections, VUSolid::GetName(), IsConvex(), MakeFacets(), and Warning.
|
virtual |
Reimplemented from UTessellatedSolid.
Definition at line 795 of file UExtrudedSolid.cc.
References VUSolid::eInside, VUSolid::eOutside, VUSolid::eSurface, VUSolid::fgTolerance, fNv, fNz, fPolygon, fTriangles, fZSections, UTessellatedSolid::GetMaxXExtent(), UTessellatedSolid::GetMaxYExtent(), UTessellatedSolid::GetMaxZExtent(), UTessellatedSolid::GetMinXExtent(), UTessellatedSolid::GetMinYExtent(), UTessellatedSolid::GetMinZExtent(), IsPointInside(), IsSameLineSegment(), ProjectPoint(), UVector3::x, UVector3::y, and UVector3::z.
|
private |
Definition at line 752 of file UExtrudedSolid.cc.
References fNv, fPolygon, UUtils::kPi, and UVector2::phi().
Referenced by Initialise().
Definition at line 438 of file UExtrudedSolid.cc.
References IsSameLineSegment(), IsSameSide(), UVector2::x, and UVector2::y.
Referenced by AddGeneralPolygonFacets(), and Inside().
Definition at line 377 of file UExtrudedSolid.cc.
References VUSolid::fgTolerance, UVector2::x, and UVector2::y.
Referenced by IsSameLineSegment().
Definition at line 406 of file UExtrudedSolid.cc.
References VUSolid::fgTolerance, IsSameLine(), G4INCL::Math::max(), G4INCL::Math::min(), UVector2::x, and UVector2::y.
Referenced by Inside(), and IsPointInside().
|
private |
Definition at line 425 of file UExtrudedSolid.cc.
References UVector2::x, and UVector2::y.
Referenced by IsPointInside().
|
private |
Definition at line 484 of file UExtrudedSolid.cc.
References GetVertex(), UABSOLUTE, and UVector3::z.
Referenced by AddGeneralPolygonFacets().
|
private |
Definition at line 658 of file UExtrudedSolid.cc.
References UTessellatedSolid::AddFacet(), AddGeneralPolygonFacets(), fNv, fNz, fTriangles, GetVertex(), iz, UTessellatedSolid::SetSolidClosed(), and UABSOLUTE.
Referenced by Initialise().
|
private |
Definition at line 515 of file UExtrudedSolid.cc.
References fNz, GetVertex(), UABSOLUTE, and UVector3::z.
Referenced by AddGeneralPolygonFacets().
UExtrudedSolid & UExtrudedSolid::operator= | ( | const UExtrudedSolid & | rhs | ) |
Definition at line 88 of file UExtrudedSolid.cc.
References fGeometryType, fIsConvex, fKOffsets, fKScales, fNv, fNz, fOffset0s, fPolygon, fScale0s, fTriangles, fZSections, and UTessellatedSolid::operator=().
Definition at line 348 of file UExtrudedSolid.cc.
References fKOffsets, fKScales, fNz, fOffset0s, fScale0s, fZSections, iz, UVector3::x, UVector3::y, UVector3::z, and G4InuclParticleNames::z0.
Referenced by Inside().
|
virtual |
Reimplemented from UTessellatedSolid.
Definition at line 878 of file UExtrudedSolid.cc.
References UTessellatedSolid::SafetyFromInside().
|
virtual |
Reimplemented from UTessellatedSolid.
Definition at line 887 of file UExtrudedSolid.cc.
References fGeometryType, fIsConvex, fNv, fNz, fPolygon, fZSections, VUSolid::GetName(), and iz.
|
private |
Definition at line 163 of file UExtrudedSolid.hh.
Referenced by operator=(), and StreamInfo().
|
private |
Definition at line 162 of file UExtrudedSolid.hh.
Referenced by DistanceToOut(), Initialise(), operator=(), and StreamInfo().
|
private |
Definition at line 167 of file UExtrudedSolid.hh.
Referenced by ComputeProjectionParameters(), operator=(), and ProjectPoint().
|
private |
Definition at line 165 of file UExtrudedSolid.hh.
Referenced by ComputeProjectionParameters(), operator=(), and ProjectPoint().
|
private |
Definition at line 157 of file UExtrudedSolid.hh.
Referenced by AddGeneralPolygonFacets(), Initialise(), Inside(), IsConvex(), MakeFacets(), operator=(), and StreamInfo().
|
private |
Definition at line 158 of file UExtrudedSolid.hh.
Referenced by ComputeProjectionParameters(), Initialise(), Inside(), MakeFacets(), MakeUpFacet(), operator=(), ProjectPoint(), and StreamInfo().
|
private |
Definition at line 168 of file UExtrudedSolid.hh.
Referenced by ComputeProjectionParameters(), operator=(), and ProjectPoint().
|
private |
Definition at line 159 of file UExtrudedSolid.hh.
Referenced by AddGeneralPolygonFacets(), GetVertex(), Initialise(), Inside(), IsConvex(), operator=(), and StreamInfo().
|
private |
Definition at line 166 of file UExtrudedSolid.hh.
Referenced by ComputeProjectionParameters(), operator=(), and ProjectPoint().
|
private |
Definition at line 161 of file UExtrudedSolid.hh.
Referenced by AddGeneralPolygonFacets(), Inside(), MakeFacets(), and operator=().
|
private |
Definition at line 160 of file UExtrudedSolid.hh.
Referenced by ComputeProjectionParameters(), GetVertex(), Initialise(), Inside(), operator=(), ProjectPoint(), and StreamInfo().