47#if defined(G4GEOM_USE_USOLIDS)
48#define G4GEOM_USE_UCTUBS 1
51#if defined(G4GEOM_USE_UCTUBS)
52 #define G4UCutTubs G4CutTubs
120 const G4bool calcNorm =
false,
121 G4bool* validNorm =
nullptr,
131 std::ostream&
StreamInfo( std::ostream& os )
const override;
178 G4double kRadTolerance, kAngTolerance;
182 G4double fRMin, fRMax, fDz, fSPhi, fDPhi;
187 G4double sinCPhi, cosCPhi, cosHDPhi, cosHDPhiOT, cosHDPhiIT,
188 sinSPhi, cosSPhi, sinEPhi, cosEPhi;
192 G4bool fPhiFullCutTube =
false;
196 G4double halfCarTolerance, halfRadTolerance, halfAngTolerance;
205#include "G4CutTubs.icc"
void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const override
G4ThreeVector GetPointOnSurface() const override
G4ThreeVector GetHighNorm() const
G4double GetStartPhiAngle() const
G4double GetZHalfLength() const
G4double GetInnerRadius() const
void SetInnerRadius(G4double newRMin)
G4ThreeVector GetLowNorm() const
void CheckDPhiAngle(G4double dPhi)
G4VSolid * Clone() const override
void SetStartPhiAngle(G4double newSPhi, G4bool trig=true)
void SetDeltaPhiAngle(G4double newDPhi)
G4double GetSurfaceArea() override
G4GeometryType GetEntityType() const override
G4double GetCutZ(const G4ThreeVector &p) const
G4double GetDeltaPhiAngle() const
G4double GetOuterRadius() const
G4ThreeVector ApproxSurfaceNormal(const G4ThreeVector &p) const
G4bool IsCrossingCutPlanes() const
G4double GetSinStartPhi() const
void CheckPhiAngles(G4double sPhi, G4double dPhi)
void SetZHalfLength(G4double newDz)
G4CutTubs & operator=(const G4CutTubs &rhs)
void DescribeYourselfTo(G4VGraphicsScene &scene) const override
EInside Inside(const G4ThreeVector &p) const override
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const override
void InitializeTrigonometry()
G4double GetSinEndPhi() const
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const override
void CheckSPhiAngle(G4double sPhi)
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pmin, G4double &pmax) const override
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) const override
G4double GetCosStartPhi() const
G4double GetCosEndPhi() const
std::ostream & StreamInfo(std::ostream &os) const override
G4CutTubs(const G4String &pName, G4double pRMin, G4double pRMax, G4double pDz, G4double pSPhi, G4double pDPhi, G4ThreeVector pLowNorm, G4ThreeVector pHighNorm)
G4double GetCubicVolume() override
void SetOuterRadius(G4double newRMax)
G4CutTubs(const G4CutTubs &rhs)
G4Polyhedron * CreatePolyhedron() const override