34#ifndef G4UGENERICPOLYCONE_HH
35#define G4UGENERICPOLYCONE_HH
39#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
41#include <VecGeom/volumes/UnplacedGenericPolycone.h>
51class G4UGenericPolycone :
public G4UAdapter<vecgeom::UnplacedGenericPolycone>
53 using Shape_t = vecgeom::UnplacedGenericPolycone;
54 using Base_t = G4UAdapter<vecgeom::UnplacedGenericPolycone>;
67 G4UGenericPolycone(
const G4String& name,
77 ~G4UGenericPolycone()
override =
default;
89 G4int GetNumRZCorner()
const;
90 G4PolyconeSideRZ GetCorner(
G4int index)
const;
101 G4VSolid* Clone()
const override;
121 const G4VoxelLimits& pVoxelLimit,
122 const G4AffineTransform& pTransform,
128 G4Polyhedron* CreatePolyhedron()
const override;
133 G4UGenericPolycone(
const G4UGenericPolycone& source );
134 G4UGenericPolycone&
operator=(
const G4UGenericPolycone& source);
140 std::vector<G4TwoVector> rzcorners;
149 return "G4GenericPolycone";
G4PVDivision & operator=(const G4PVDivision &)=delete
CLHEP::Hep3Vector G4ThreeVector