39#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
41#include <VecGeom/volumes/UnplacedPolycone.h>
48class G4UPolycone :
public G4UAdapter<vecgeom::GenericUnplacedPolycone>
50 using Shape_t = vecgeom::GenericUnplacedPolycone;
51 using Base_t = G4UAdapter<vecgeom::GenericUnplacedPolycone>;
55 G4UPolycone(
const G4String& name,
63 G4UPolycone(
const G4String& name,
70 ~G4UPolycone()
override;
72 void ComputeDimensions( G4VPVParameterisation* p,
74 const G4VPhysicalVolume* pRep)
override;
76 G4VSolid* Clone()
const override;
86 G4int GetNumRZCorner()
const;
87 G4PolyconeSideRZ GetCorner(
G4int index)
const;
88 G4PolyconeHistorical* GetOriginalParameters()
const;
89 void SetOriginalParameters(G4PolyconeHistorical* pars);
95 G4UPolycone(__void__&);
100 G4UPolycone(
const G4UPolycone& source );
101 G4UPolycone& operator=(
const G4UPolycone& source );
107 const G4VoxelLimits& pVoxelLimit,
108 const G4AffineTransform& pTransform,
111 G4Polyhedron* CreatePolyhedron()
const override;
115 void SetOriginalParameters();
118 G4PolyconeHistorical fOriginalParameters;
124 std::vector<G4TwoVector> rzcorners;
CLHEP::Hep3Vector G4ThreeVector