34#ifndef G4UEXTRUDEDSOLID_HH
35#define G4UEXTRUDEDSOLID_HH
39#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
41#include <VecGeom/volumes/UnplacedExtruded.h>
46class G4UExtrudedSolid :
public G4UAdapter<vecgeom::UnplacedExtruded>
48 using Shape_t = vecgeom::UnplacedExtruded;
49 using Base_t = G4UAdapter<vecgeom::UnplacedExtruded>;
55 ZSection() : fZ(0.), fOffset(0.,0.), fScale(1.) {}
57 : fZ(z), fOffset(offset), fScale(scale) {}
64 G4UExtrudedSolid(
const G4String& pName,
65 const std::vector<G4TwoVector>& polygon,
66 const std::vector<ZSection>& zsections);
69 G4UExtrudedSolid(
const G4String& pName,
70 const std::vector<G4TwoVector>& polygon,
78 ~G4UExtrudedSolid()
override;
80 G4int GetNofVertices()
const;
82 std::vector<G4TwoVector> GetPolygon()
const;
83 G4int GetNofZSections()
const;
84 ZSection GetZSection(
G4int index)
const;
85 std::vector<ZSection> GetZSections()
const;
89 G4UExtrudedSolid(__void__&);
94 G4UExtrudedSolid(
const G4UExtrudedSolid& source );
95 G4UExtrudedSolid &operator=(
const G4UExtrudedSolid& source);
113 return "G4ExtrudedSolid";
CLHEP::Hep2Vector G4TwoVector