43#ifndef G4ELLIPTICALTUBE_HH
44#define G4ELLIPTICALTUBE_HH
48#if defined(G4GEOM_USE_USOLIDS)
49#define G4GEOM_USE_UELLIPTICALTUBE 1
52#if (defined(G4GEOM_USE_UELLIPTICALTUBE) && defined(G4GEOM_USE_SYS_USOLIDS))
53 #define G4UEllipticalTube G4EllipticalTube
91 const G4bool calcNorm =
false,
92 G4bool* validNorm =
nullptr,
101 std::ostream&
StreamInfo(std::ostream& os)
const;
138 void CheckParameters();
145 G4double GetCachedSurfaceArea()
const;
170 mutable G4bool fRebuildPolyhedron =
false;
174#include "G4EllipticalTube.icc"
G4EllipticalTube & operator=(const G4EllipticalTube &rhs)
std::ostream & StreamInfo(std::ostream &os) const
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) const
virtual ~G4EllipticalTube()
G4VisExtent GetExtent() const
G4double GetSurfaceArea()
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const
void DescribeYourselfTo(G4VGraphicsScene &scene) const
G4double GetCubicVolume()
G4ThreeVector GetPointOnSurface() const
void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const
EInside Inside(const G4ThreeVector &p) const
G4GeometryType GetEntityType() const
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pmin, G4double &pmax) const
G4Polyhedron * GetPolyhedron() const
G4Polyhedron * CreatePolyhedron() const