|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4Polyhedra represents a composed closed polyhedra (PGON) made of planar sizes along the Z axis, with or without cut in Phi. More...
#include <G4Polyhedra.hh>
Additional Inherited Members | |
| Protected Member Functions inherited from G4VCSGfaceted | |
| virtual G4double | DistanceTo (const G4ThreeVector &p, const G4bool outgoing) const |
| G4ThreeVector | GetPointOnSurfaceGeneric () const |
| void | CopyStuff (const G4VCSGfaceted &source) |
| void | DeleteStuff () |
| Protected Member Functions inherited from G4VSolid | |
| void | CalculateClippedPolygonExtent (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const |
| void | ClipCrossSection (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const |
| void | ClipBetweenSections (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const |
| void | ClipPolygon (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis) const |
| Protected Attributes inherited from G4VCSGfaceted | |
| G4int | numFace = 0 |
| G4VCSGface ** | faces = nullptr |
| G4double | fCubicVolume = 0.0 |
| G4double | fSurfaceArea = 0.0 |
| G4bool | fRebuildPolyhedron = false |
| G4Polyhedron * | fpPolyhedron = nullptr |
| Protected Attributes inherited from G4VSolid | |
| G4double | kCarTolerance |
G4Polyhedra represents a composed closed polyhedra (PGON) made of planar sizes along the Z axis, with or without cut in Phi.
Definition at line 79 of file G4Polyhedra.hh.
| G4Polyhedra::G4Polyhedra | ( | const G4String & | name, |
| G4double | phiStart, | ||
| G4double | phiTotal, | ||
| G4int | numSide, | ||
| G4int | numZPlanes, | ||
| const G4double | zPlane[], | ||
| const G4double | rInner[], | ||
| const G4double | rOuter[] ) |
Constructs a polyhedra, given its parameters.
| [in] | name | The solid name. |
| [in] | phiStart | Initial Phi starting angle. |
| [in] | phiTotal | Total Phi angle. |
| [in] | numSide | Number of sides. |
| [in] | numZPlanes | Number of Z planes. |
| [in] | zPlane | Position of Z planes. |
| [in] | rInner | Tangent distance to inner surface. |
| [in] | rOuter | Tangent distance to outer surface. |
Definition at line 72 of file G4Polyhedra.cc.
Referenced by Clone(), G4Polyhedra(), operator=(), and SetOriginalParameters().
| G4Polyhedra::G4Polyhedra | ( | const G4String & | name, |
| G4double | phiStart, | ||
| G4double | phiTotal, | ||
| G4int | numSide, | ||
| G4int | numRZ, | ||
| const G4double | r[], | ||
| const G4double | z[] ) |
Alternative constructor of a polyhedra, given corners coordinates.
| [in] | name | The solid name. |
| [in] | phiStart | Initial Phi starting angle. |
| [in] | phiTotal | Total Phi angle. |
| [in] | numSide | Number of sides. |
| [in] | numRZ | Number of corners in r,Z space. |
| [in] | r | r coordinates of corners. |
| [in] | z | Z coordinates of corners. |
Definition at line 154 of file G4Polyhedra.cc.
|
override |
Destructor.
Definition at line 347 of file G4Polyhedra.cc.
| G4Polyhedra::G4Polyhedra | ( | __void__ & | a | ) |
Fake default constructor for usage restricted to direct object persistency for clients requiring preallocation of memory for persistifiable objects.
Definition at line 340 of file G4Polyhedra.cc.
| G4Polyhedra::G4Polyhedra | ( | const G4Polyhedra & | source | ) |
Copy constructor and assignment operator.
Definition at line 363 of file G4Polyhedra.cc.
|
overridevirtual |
Computes the bounding limits of the solid.
| [out] | pMin | The minimum bounding limit point. |
| [out] | pMax | The maximum bounding limit point. |
Reimplemented from G4VSolid.
Definition at line 529 of file G4Polyhedra.cc.
Referenced by CalculateExtent().
|
overridevirtual |
Calculates the minimum and maximum extent of the solid, when under the specified transform, and within the specified limits.
| [in] | pAxis | The axis along which compute the extent. |
| [in] | pVoxelLimit | The limiting space dictated by voxels. |
| [in] | pTransform | The internal transformation applied to the solid. |
| [out] | pMin | The minimum extent value. |
| [out] | pMax | The maximum extent value. |
Implements G4VSolid.
Definition at line 597 of file G4Polyhedra.cc.
|
overridevirtual |
Makes a clone of the object for use in multi-treading.
Reimplemented from G4VSolid.
Definition at line 743 of file G4Polyhedra.cc.
|
overridevirtual |
Dispatch method for parameterisation replication mechanism and dimension computation.
Reimplemented from G4VSolid.
Definition at line 720 of file G4Polyhedra.cc.
|
overridevirtual |
Returns a pointer to a generated polyhedron used for visualisation.
Implements G4VCSGfaceted.
Definition at line 1029 of file G4Polyhedra.cc.
|
overridevirtual |
Calculates the distance to the nearest surface of a shape from an outside point. The distance can be an underestimate.
| [in] | p | The point at offset p. |
Implements G4VSolid.
Definition at line 522 of file G4Polyhedra.cc.
|
overridevirtual |
Returns the distance along the normalised vector 'v' to the shape, from the point at offset 'p'. If there is no intersection, returns kInfinity. The first intersection resulting from 'leaving' a surface/volume is discarded. Hence, it is tolerant of points on the surface of the shape.
| [in] | p | The point at offset p. |
| [in] | v | The normalised direction vector. |
Implements G4VSolid.
Definition at line 506 of file G4Polyhedra.cc.
|
inline |
|
inline |
|
inline |
Referenced by BoundingLimits(), and CalculateExtent().
|
overridevirtual |
Returning an estimation of the solid volume (capacity) and surface area, in internal units.
Reimplemented from G4VSolid.
Definition at line 802 of file G4Polyhedra.cc.
|
inline |
|
overridevirtual |
Returns the type ID, "G4Polyhedra" of the solid.
Implements G4VSolid.
Definition at line 729 of file G4Polyhedra.cc.
|
inline |
|
inline |
Accessors.
Referenced by BoundingLimits(), G4tgbVolume::BuildSolidForDivision(), CalculateExtent(), GetCubicVolume(), GetPointOnSurface(), G4tgbGeometryDumper::GetSolidParams(), and GetSurfaceArea().
|
inline |
Returns internal scaled parameters.
Referenced by G4tgbVolume::BuildSolidForDivision(), G4tgbGeometryDumper::GetSolidParams(), G4GDMLWriteParamvol::Polyhedra_dimensionsWrite(), and G4GDMLWriteSolids::PolyhedraWrite().
|
overridevirtual |
Returns a random point located and uniformly distributed on the surface of the solid.
Reimplemented from G4VSolid.
Definition at line 948 of file G4Polyhedra.cc.
|
inline |
|
inline |
Referenced by BoundingLimits(), and CalculateExtent().
|
inline |
|
overridevirtual |
Returns an estimation of the solid surface area in internal units. This method may be overloaded by derived classes to compute the exact geometrical quantity for solids where this is possible, or anyway to cache the computed value. Note: the computed value is NOT cached.
Reimplemented from G4VSolid.
Definition at line 827 of file G4Polyhedra.cc.
|
overridevirtual |
Concrete implementations of the expected query interfaces for solids, as defined in G4VSolid. Remaining functions are concretely defined in the base class G4VCSGfaceted.
Implements G4VSolid.
Definition at line 488 of file G4Polyhedra.cc.
|
overridevirtual |
Returns true as the solid has only planar faces.
Reimplemented from G4VSolid.
Definition at line 736 of file G4Polyhedra.cc.
|
inline |
Referenced by G4GDMLWriteSolids::PolyhedraWrite().
|
inline |
Referenced by BoundingLimits(), CalculateExtent(), and GetSurfaceArea().
| G4Polyhedra & G4Polyhedra::operator= | ( | const G4Polyhedra & | source | ) |
Definition at line 371 of file G4Polyhedra.cc.
| G4bool G4Polyhedra::Reset | ( | ) |
Clears all parameters and rebuild the shape, for use in divisions.
Definition at line 445 of file G4Polyhedra.cc.
Referenced by G4ParameterisationPolyhedraPhi::ComputeDimensions(), G4ParameterisationPolyhedraRho::ComputeDimensions(), and G4ParameterisationPolyhedraZ::ComputeDimensions().
|
inline |
Sets internal parameters. Parameters 'Rmin' and 'Rmax' in input must be scaled first by a factor computed as 'cos(0.5*phiTotal/theNumSide)', if not already scaled.
Referenced by G4ParameterisationPolyhedraPhi::ComputeDimensions(), G4ParameterisationPolyhedraRho::ComputeDimensions(), G4ParameterisationPolyhedraZ::ComputeDimensions(), and G4Polyhedra().
|
overridevirtual |
Streams the object contents to an output stream.
Implements G4VSolid.
Definition at line 750 of file G4Polyhedra.cc.