39#if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
41#include <VecGeom/volumes/UnplacedParallelepiped.h>
50class G4UPara :
public G4UAdapter<vecgeom::UnplacedParallelepiped>
52 using Shape_t = vecgeom::UnplacedParallelepiped;
53 using Base_t = G4UAdapter<vecgeom::UnplacedParallelepiped>;
71 G4UPara(
const G4String& pName,
80 G4UPara(
const G4String& pName,
86 ~G4UPara()
override =
default;
113 void SetThetaAndPhi(
double pTheta,
double pPhi);
125 void ComputeDimensions(G4VPVParameterisation* p,
127 const G4VPhysicalVolume* pRep)
override;
137 inline G4bool IsFaceted()
const override;
157 const G4VoxelLimits& pVoxelLimit,
158 const G4AffineTransform& pTransform,
165 G4VSolid* Clone()
const override;
170 G4Polyhedron* CreatePolyhedron()
const override;
175 G4UPara(
const G4UPara& rhs);
183 void CheckParameters();
192 G4double fTalpha,fTthetaCphi,fTthetaSphi;
193 struct {
G4double a,b,c,d; } fPlanes[4];
205inline G4bool G4UPara::IsFaceted()
const
G4PVDivision & operator=(const G4PVDivision &)=delete
CLHEP::Hep3Vector G4ThreeVector