39#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
41#include <VecGeom/volumes/UnplacedTrapezoid.h>
45class G4UTrap :
public G4UAdapter<vecgeom::UnplacedTrapezoid>
47 using Shape_t = vecgeom::UnplacedTrapezoid;
48 using Base_t = G4UAdapter<vecgeom::UnplacedTrapezoid>;
52 G4UTrap(
const G4String& pName,
63 G4UTrap(
const G4String& pName,
68 G4UTrap(
const G4String& pName,
75 G4UTrap(
const G4String& pName,
82 G4UTrap(
const G4String& pName,
88 G4UTrap(
const G4String& pName );
95 void ComputeDimensions( G4VPVParameterisation* p,
97 const G4VPhysicalVolume* pRep)
override;
99 G4VSolid* Clone()
const override;
101 using Base_t::GetTanAlpha1;
102 using Base_t::GetTanAlpha2;
116 TrapSidePlane GetSidePlane(
G4int n)
const;
135 inline G4bool IsFaceted()
const override;
140 const G4VoxelLimits& pVoxelLimit,
141 const G4AffineTransform& pTransform,
144 G4Polyhedron* CreatePolyhedron()
const override;
153 G4UTrap(
const G4UTrap& rhs);
154 G4UTrap& operator=(
const G4UTrap& rhs);
162 void CheckParameters()
const;
181inline G4bool G4UTrap::IsFaceted()
const
CLHEP::Hep3Vector G4ThreeVector