63#if defined(G4GEOM_USE_USOLIDS)
64#define G4GEOM_USE_UCONS 1
67#if defined(G4GEOM_USE_UCONS)
68 #define G4UCons G4Cons
142 const G4bool calcNorm =
false,
143 G4bool* validNorm =
nullptr,
153 std::ostream&
StreamInfo(std::ostream& os)
const override;
172 inline void Initialize();
176 inline void CheckSPhiAngle(
G4double sPhi);
177 inline void CheckDPhiAngle(
G4double dPhi);
182 inline void InitializeTrigonometry();
195 enum ESide {kNull,kRMin,kRMax,kSPhi,kEPhi,kPZ,kMZ};
199 enum ENorm {kNRMin,kNRMax,kNSPhi,kNEPhi,kNZ};
201 G4double kRadTolerance, kAngTolerance;
205 G4double fRmin1, fRmin2, fRmax1, fRmax2, fDz, fSPhi, fDPhi;
209 G4double sinCPhi, cosCPhi, cosHDPhi, cosHDPhiOT, cosHDPhiIT,
210 sinSPhi, cosSPhi, sinEPhi, cosEPhi;
214 G4bool fPhiFullCone =
false;
218 G4double halfCarTolerance, halfRadTolerance, halfAngTolerance;
G4double GetOuterRadiusPlusZ() const
void ComputeDimensions(G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep) override
G4double GetCosStartPhi() const
G4ThreeVector GetPointOnSurface() const override
void SetInnerRadiusPlusZ(G4double Rmin2)
void SetZHalfLength(G4double newDz)
G4double GetStartPhiAngle() const
EInside Inside(const G4ThreeVector &p) const override
G4double GetDeltaPhiAngle() const
void SetStartPhiAngle(G4double newSPhi, G4bool trig=true)
void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const override
void SetOuterRadiusMinusZ(G4double Rmax1)
G4double GetInnerRadiusMinusZ() const
void SetOuterRadiusPlusZ(G4double Rmax2)
G4double GetCubicVolume() override
G4Polyhedron * CreatePolyhedron() const override
G4double GetInnerRadiusPlusZ() const
G4Cons(const G4Cons &rhs)
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) const override
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const override
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const override
void SetDeltaPhiAngle(G4double newDPhi)
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const override
void SetInnerRadiusMinusZ(G4double Rmin1)
G4double GetCosEndPhi() const
G4VSolid * Clone() const override
G4Cons(const G4String &pName, G4double pRmin1, G4double pRmax1, G4double pRmin2, G4double pRmax2, G4double pDz, G4double pSPhi, G4double pDPhi)
G4double GetOuterRadiusMinusZ() const
G4double GetSinEndPhi() const
std::ostream & StreamInfo(std::ostream &os) const override
G4Cons & operator=(const G4Cons &rhs)
G4double GetSinStartPhi() const
void DescribeYourselfTo(G4VGraphicsScene &scene) const override
G4double GetZHalfLength() const
G4double GetSurfaceArea() override
G4GeometryType GetEntityType() const override