48#ifndef G4PARABOLOID_HH
49#define G4PARABOLOID_HH
53#if defined(G4GEOM_USE_USOLIDS)
54#define G4GEOM_USE_UPARABOLOID 1
57#if (defined(G4GEOM_USE_UPARABOLOID) && defined(G4GEOM_USE_SYS_USOLIDS))
58 #define G4UParaboloid G4Paraboloid
108 const G4bool calcNorm =
false,
109 G4bool* validNorm =
nullptr,
117 std::ostream&
StreamInfo(std::ostream& os)
const override;
145 mutable G4double fSurfaceArea = 0.0;
153#include "G4Paraboloid.icc"
G4bool fRebuildPolyhedron
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const override
G4double GetRadiusPlusZ() const
G4double CalculateSurfaceArea() 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)
G4Polyhedron * fpPolyhedron
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