52#if defined(G4GEOM_USE_USOLIDS)
53#define G4GEOM_USE_UHYPE 1
56#if (defined(G4GEOM_USE_UHYPE) && defined(G4GEOM_USE_SYS_USOLIDS))
57 #define G4UHype G4Hype
112 const G4bool calcNorm =
false,
113 G4bool* validNorm =
nullptr,
121 std::ostream&
StreamInfo(std::ostream& os)
const override;
197 mutable G4bool fRebuildPolyhedron =
false;
void ComputeDimensions(G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep) override
G4Hype(const G4String &pName, G4double newInnerRadius, G4double newOuterRadius, G4double newInnerStereo, G4double newOuterStereo, G4double newHalfLenZ)
EInside Inside(const G4ThreeVector &p) const override
void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const override
void DescribeYourselfTo(G4VGraphicsScene &scene) const override
G4GeometryType GetEntityType() const override
static G4int IntersectHype(const G4ThreeVector &p, const G4ThreeVector &v, G4double r2, G4double tan2Phi, G4double s[2])
G4Hype & operator=(const G4Hype &rhs)
G4VisExtent GetExtent() const override
static G4double ApproxDistOutside(G4double pr, G4double pz, G4double r0, G4double tanPhi)
G4VSolid * Clone() const override
void SetOuterStereo(G4double newOSte)
G4Polyhedron * CreatePolyhedron() const override
G4ThreeVector GetPointOnSurface() const override
G4Polyhedron * GetPolyhedron() const override
G4bool InnerSurfaceExists() const
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const override
void SetOuterRadius(G4double newORad)
G4double GetInnerStereo() const
G4double GetSurfaceArea() override
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) const override
G4double HypeOuterRadius2(G4double zVal) const
std::ostream & StreamInfo(std::ostream &os) const override
void SetZHalfLength(G4double newHLZ)
G4double GetZHalfLength() const
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const override
static G4double ApproxDistInside(G4double pr, G4double pz, G4double r0, G4double tan2Phi)
G4double HypeInnerRadius2(G4double zVal) const
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const override
G4double GetOuterStereo() const
G4double GetOuterRadius() const
void SetInnerStereo(G4double newISte)
void SetInnerRadius(G4double newIRad)
G4double GetInnerRadius() const
G4double GetCubicVolume() override