34#ifndef G4UGENERICTRAP_HH
35#define G4UGENERICTRAP_HH
39#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
41#include <VecGeom/volumes/UnplacedGenTrap.h>
51class G4UGenericTrap :
public G4UAdapter<vecgeom::UnplacedGenTrap>
53 using Shape_t = vecgeom::UnplacedGenTrap;
54 using Base_t = G4UAdapter<vecgeom::UnplacedGenTrap>;
64 G4UGenericTrap(
const G4String& name,
G4double halfZ,
65 const std::vector<G4TwoVector>& vertices);
70 ~G4UGenericTrap()
override =
default;
76 G4int GetNofVertices()
const;
78 const std::vector<G4TwoVector>& GetVertices()
const;
81 G4int GetVisSubdivisions()
const;
86 void SetVisSubdivisions(
G4int subdiv);
97 inline G4bool IsFaceted()
const override;
117 const G4VoxelLimits& pVoxelLimit,
118 const G4AffineTransform& pTransform,
124 G4Polyhedron* CreatePolyhedron()
const override;
129 G4UGenericTrap(
const G4UGenericTrap& source );
130 G4UGenericTrap&
operator=(
const G4UGenericTrap& source);
137 void Initialise(
const std::vector<G4TwoVector>& v);
141 G4int fVisSubdivisions;
142 std::vector<G4TwoVector> fVertices;
152 return "G4GenericTrap";
155inline G4bool G4UGenericTrap::IsFaceted()
const
G4PVDivision & operator=(const G4PVDivision &)=delete
CLHEP::Hep3Vector G4ThreeVector
CLHEP::Hep2Vector G4TwoVector