34 #if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
47 G4UEllipsoid::G4UEllipsoid(
const G4String& pName,
53 : Base_t(pName, dx, dy, dz, bcut, tcut)
61 G4UEllipsoid::G4UEllipsoid( __void__&
a )
69 G4UEllipsoid::~G4UEllipsoid() { }
75 G4UEllipsoid::G4UEllipsoid(
const G4UEllipsoid& rhs)
83 G4UEllipsoid& G4UEllipsoid::operator = (
const G4UEllipsoid& rhs)
87 if (
this == &rhs) {
return *
this; }
91 Base_t::operator=(rhs);
100 G4double G4UEllipsoid::GetDx()
const
102 return Base_t::GetDx();
105 G4double G4UEllipsoid::GetDy()
const
107 return Base_t::GetDy();
110 G4double G4UEllipsoid::GetDz()
const
112 return Base_t::GetDz();
117 return (i==0) ? GetDx()
122 G4double G4UEllipsoid::GetZBottomCut()
const
124 return Base_t::GetZBottomCut();
127 G4double G4UEllipsoid::GetZTopCut()
const
129 return Base_t::GetZTopCut();
138 Base_t::SetSemiAxes(x, y, z);
143 Base_t::SetZCuts(newzBottomCut, newzTopCut);
150 G4VSolid* G4UEllipsoid::Clone()
const
152 return new G4UEllipsoid(*
this);
167 pMin.
set(-dx,-dy,zmin);
168 pMax.
set( dx, dy,zmax);
172 if (pMin.
x() >= pMax.
x() || pMin.
y() >= pMax.
y() || pMin.
z() >= pMax.
z())
175 message <<
"Bad bounding box (min >= max) for solid: "
177 <<
"\npMin = " << pMin
178 <<
"\npMax = " <<
pMax;
179 G4Exception(
"G4UEllipsoid::BoundingLimits()",
"GeomMgt0001",
190 G4UEllipsoid::CalculateExtent(
const EAxis pAxis,
198 BoundingLimits(bmin,bmax);
202 return bbox.CalculateExtent(pAxis,pVoxelLimit,pTransform,pMin,pMax);
212 GetZBottomCut(), GetZTopCut());
215 #endif // G4GEOM_USE_USOLIDS