34#ifndef G4UPOLYHEDRA_HH
35#define G4UPOLYHEDRA_HH
39#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
41#include <VecGeom/volumes/UnplacedPolyhedron.h>
51class G4UPolyhedra :
public G4UAdapter<vecgeom::UnplacedPolyhedron>
53 using Shape_t = vecgeom::UnplacedPolyhedron;
54 using Base_t = G4UAdapter<vecgeom::UnplacedPolyhedron>;
58 G4UPolyhedra(
const G4String& name,
67 G4UPolyhedra(
const G4String& name,
75 ~G4UPolyhedra()
override;
77 void ComputeDimensions( G4VPVParameterisation* p,
79 const G4VPhysicalVolume* pRep)
override;
81 G4VSolid* Clone()
const override;
83 G4int GetNumSide()
const;
92 G4int GetNumRZCorner()
const;
93 G4PolyhedraSideRZ GetCorner(
const G4int index )
const;
94 G4PolyhedraHistorical* GetOriginalParameters()
const;
95 void SetOriginalParameters(G4PolyhedraHistorical* pars);
101 inline G4bool IsFaceted()
const override;
103 G4UPolyhedra(__void__&);
108 G4UPolyhedra(
const G4UPolyhedra& source );
109 G4UPolyhedra& operator=(
const G4UPolyhedra& source );
115 const G4VoxelLimits& pVoxelLimit,
116 const G4AffineTransform& pTransform,
119 G4Polyhedron* CreatePolyhedron()
const override;
123 void SetOriginalParameters();
126 G4PolyhedraHistorical fOriginalParameters;
133 std::vector<G4TwoVector> rzcorners;
142 return "G4Polyhedra";
145inline G4bool G4UPolyhedra::IsFaceted()
const
CLHEP::Hep3Vector G4ThreeVector