39#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
41#include <VecGeom/volumes/UnplacedPolycone.h>
53class G4UPolycone :
public G4UAdapter<vecgeom::GenericUnplacedPolycone>
55 using Shape_t = vecgeom::GenericUnplacedPolycone;
56 using Base_t = G4UAdapter<vecgeom::GenericUnplacedPolycone>;
70 G4UPolycone(
const G4String& name,
87 G4UPolycone(
const G4String& name,
97 ~G4UPolycone()
override =
default;
103 void ComputeDimensions(G4VPVParameterisation* p,
105 const G4VPhysicalVolume* pRep)
override;
111 G4VSolid* Clone()
const override;
124 G4int GetNumRZCorner()
const;
125 G4PolyconeSideRZ GetCorner(
G4int index)
const;
126 G4PolyconeHistorical* GetOriginalParameters()
const;
131 void SetOriginalParameters(G4PolyconeHistorical* pars);
161 const G4VoxelLimits& pVoxelLimit,
162 const G4AffineTransform& pTransform,
168 G4Polyhedron* CreatePolyhedron()
const override;
173 G4UPolycone(
const G4UPolycone& source );
174 G4UPolycone&
operator=(
const G4UPolycone& source );
181 void SetOriginalParameters();
186 G4PolyconeHistorical fOriginalParameters;
190 std::vector<G4TwoVector> rzcorners;
G4PVDivision & operator=(const G4PVDivision &)=delete
CLHEP::Hep3Vector G4ThreeVector