47#ifndef G4PARABOLOID_HH
48#define G4PARABOLOID_HH
52#if defined(G4GEOM_USE_USOLIDS)
53#define G4GEOM_USE_UPARABOLOID 1
56#if (defined(G4GEOM_USE_UPARABOLOID) && defined(G4GEOM_USE_SYS_USOLIDS))
57 #define G4UParaboloid G4Paraboloid
139 const G4bool calcNorm =
false,
140 G4bool* validNorm =
nullptr,
158 std::ostream&
StreamInfo(std::ostream& os)
const override;
198 G4double CalculateSurfaceArea()
const;
212 mutable G4bool fRebuildPolyhedron =
false;
216#include "G4Paraboloid.icc"
CLHEP::Hep3Vector G4ThreeVector
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const override
G4double GetRadiusPlusZ() const
G4ThreeVector GetPointOnSurface() const override
G4VSolid * Clone() const override
G4double GetSurfaceArea() override
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const override
std::ostream & StreamInfo(std::ostream &os) const override
G4Polyhedron * GetPolyhedron() const override
void SetZHalfLength(G4double dz)
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pmin, G4double &pmax) const override
G4double GetCubicVolume() override
G4Paraboloid(const G4String &pName, G4double pDz, G4double pR1, G4double pR2)
void SetRadiusPlusZ(G4double R2)
G4double GetRadiusMinusZ() const
G4GeometryType GetEntityType() const override
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) const override
G4Polyhedron * CreatePolyhedron() const override
G4double GetZHalfLength() const
G4Paraboloid & operator=(const G4Paraboloid &rhs)
EInside Inside(const G4ThreeVector &p) const override
void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const override
void SetRadiusMinusZ(G4double R1)
void DescribeYourselfTo(G4VGraphicsScene &scene) const override
G4VSolid(const G4String &name)
G4VoxelLimits represents limitation/restrictions of space, where restrictions are only made perpendic...