|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4EllipticalCone is a full cone with elliptical base which can be cut in Z. The height in Z corresponds to where the elliptical cone hits the Z-axis if it had no Z cut. More...
#include <G4EllipticalCone.hh>
Protected Attributes | |
| G4bool | fRebuildPolyhedron = false |
| G4Polyhedron * | fpPolyhedron = nullptr |
| Protected Attributes inherited from G4VSolid | |
| G4double | kCarTolerance |
Additional Inherited Members | |
| 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 |
G4EllipticalCone is a full cone with elliptical base which can be cut in Z. The height in Z corresponds to where the elliptical cone hits the Z-axis if it had no Z cut.
Definition at line 92 of file G4EllipticalCone.hh.
| G4EllipticalCone::G4EllipticalCone | ( | const G4String & | pName, |
| G4double | pxSemiAxis, | ||
| G4double | pySemiAxis, | ||
| G4double | zMax, | ||
| G4double | pzTopCut ) |
Constructs an elliptical cone, with cut in Z.
| [in] | name | The solid name. |
| [in] | pxSemiAxis | Scalar value, defining the scaling along X-axis. |
| [in] | pySemiAxis | Scalar value, defining the scaling along Y-axis. |
| [in] | zMax | The Z-coordinate at the apex. |
| [in] | pzTopCut | Upper cut plane level. |
Definition at line 65 of file G4EllipticalCone.cc.
Referenced by Clone(), G4EllipticalCone(), GetZTopCut(), and operator=().
|
override |
| G4EllipticalCone::G4EllipticalCone | ( | __void__ & | a | ) |
Fake default constructor for usage restricted to direct object persistency for clients requiring preallocation of memory for persistifiable objects.
Definition at line 105 of file G4EllipticalCone.cc.
| G4EllipticalCone::G4EllipticalCone | ( | const G4EllipticalCone & | rhs | ) |
Copy constructor and assignment operator.
Definition at line 125 of file G4EllipticalCone.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 203 of file G4EllipticalCone.cc.
Referenced by CalculateExtent(), and GetExtent().
|
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 233 of file G4EllipticalCone.cc.
|
overridevirtual |
Makes a clone of the object for use in multi-treading.
Reimplemented from G4VSolid.
Definition at line 836 of file G4EllipticalCone.cc.
|
overridevirtual |
Creates a Polyhedron used for Visualisation. It is the caller's responsibility to delete it. A null pointer means "not created".
Reimplemented from G4VSolid.
Definition at line 963 of file G4EllipticalCone.cc.
Referenced by GetPolyhedron().
|
overridevirtual |
A "double dispatch" function which identifies the solid to the graphics scene for visualization.
Implements G4VSolid.
Definition at line 949 of file G4EllipticalCone.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 622 of file G4EllipticalCone.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 382 of file G4EllipticalCone.cc.
|
overridevirtual |
Calculates the distance to the nearest surface of a shape from an inside point 'p'. The distance can be an underestimate.
| [in] | p | The point at offset p. |
Implements G4VSolid.
Definition at line 798 of file G4EllipticalCone.cc.
|
overridevirtual |
Returns the distance along the normalised vector 'v' to the shape, from a point at an offset 'p' inside or on the surface of the shape. Intersections with surfaces, when the point is less than Tolerance/2 from a surface must be ignored.
| [in] | p | The point at offset p. |
| [in] | v | The normalised direction vector. |
| [in] | calcNorm | Flag to indicate if to calculate the normal or not. |
| [out] | validNorm | Flag set to true if the solid lies entirely behind or on the exiting surface. It is set false if the solid does not lie entirely behind or on the exiting surface. 'calcNorm' must be true, otherwise it is unused. |
| [out] | n | The exiting outwards normal vector (undefined Magnitude). 'calcNorm' must be true, otherwise it is unused. |
Implements G4VSolid.
Definition at line 636 of file G4EllipticalCone.cc.
|
overridevirtual |
Returning an estimation of the solid volume (capacity) and surface area, in internal units.
Reimplemented from G4VSolid.
Definition at line 907 of file G4EllipticalCone.cc.
|
overridevirtual |
Returns the type ID, "G4EllipticalCone" of the solid.
Implements G4VSolid.
Definition at line 827 of file G4EllipticalCone.cc.
|
overridevirtual |
Provides extent (bounding box) as possible hint to the graphics view.
Reimplemented from G4VSolid.
Definition at line 954 of file G4EllipticalCone.cc.
|
overridevirtual |
Returns a random point located and uniformly distributed on the surface of the solid.
Reimplemented from G4VSolid.
Definition at line 868 of file G4EllipticalCone.cc.
|
overridevirtual |
Methods for creating graphical representations (i.e. for visualisation).
Reimplemented from G4VSolid.
Definition at line 968 of file G4EllipticalCone.cc.
|
inline |
|
inline |
Accessors.
|
inline |
|
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 927 of file G4EllipticalCone.cc.
Referenced by G4EllipticalCone(), SetSemiAxis(), and SetZCut().
|
inline |
|
inline |
Referenced by BoundingLimits(), G4GDMLWriteSolids::ElconeWrite(), and G4tgbGeometryDumper::GetSolidParams().
|
overridevirtual |
Concrete implementations of the expected query interfaces for solids, as defined in the base class G4VSolid.
Implements G4VSolid.
Definition at line 293 of file G4EllipticalCone.cc.
Referenced by DistanceToOut().
| G4EllipticalCone & G4EllipticalCone::operator= | ( | const G4EllipticalCone & | rhs | ) |
Definition at line 139 of file G4EllipticalCone.cc.
Modifiers.
Definition at line 168 of file G4EllipticalCone.cc.
Referenced by G4EllipticalCone().
| void G4EllipticalCone::SetZCut | ( | G4double | newzTopCut | ) |
Definition at line 190 of file G4EllipticalCone.cc.
Referenced by G4EllipticalCone().
|
overridevirtual |
Streams the object contents to an output stream.
Implements G4VSolid.
Definition at line 845 of file G4EllipticalCone.cc.
|
overridevirtual |
Returns the outwards pointing unit normal of the shape for the surface closest to the point at offset 'p'.
| [in] | p | The point at offset p. |
Implements G4VSolid.
Definition at line 308 of file G4EllipticalCone.cc.
|
mutableprotected |
Definition at line 222 of file G4EllipticalCone.hh.
Referenced by GetPolyhedron(), operator=(), and ~G4EllipticalCone().
|
mutableprotected |
Definition at line 221 of file G4EllipticalCone.hh.
Referenced by GetPolyhedron(), operator=(), SetSemiAxis(), and SetZCut().