34 #if ( defined(G4GEOM_USE_USOLIDS) || defined(G4GEOM_USE_PARTIAL_USOLIDS) )
47 G4UParaboloid::G4UParaboloid(
const G4String& pName,
51 : Base_t(pName, rlo, rhi, dz)
59 G4UParaboloid::G4UParaboloid( __void__&
a )
67 G4UParaboloid::~G4UParaboloid() { }
73 G4UParaboloid::G4UParaboloid(
const G4UParaboloid& rhs)
81 G4UParaboloid& G4UParaboloid::operator = (
const G4UParaboloid& rhs)
85 if (
this == &rhs) {
return *
this; }
89 Base_t::operator=(rhs);
98 G4double G4UParaboloid::GetZHalfLength()
const
103 G4double G4UParaboloid::GetRadiusMinusZ()
const
108 G4double G4UParaboloid::GetRadiusPlusZ()
const
117 void G4UParaboloid::SetZHalfLength(
G4double dz)
122 void G4UParaboloid::SetRadiusMinusZ(
G4double r1)
127 void G4UParaboloid::SetRadiusPlusZ(
G4double r2)
136 G4VSolid* G4UParaboloid::Clone()
const
138 return new G4UParaboloid(*
this);
148 static G4bool checkBBox =
true;
152 pMin.
set(-r2,-r2,-dz);
153 pMax.
set( r2, r2, dz);
157 if (pMin.
x() >= pMax.
x() || pMin.
y() >= pMax.
y() || pMin.
z() >= pMax.
z())
160 message <<
"Bad bounding box (min >= max) for solid: "
162 <<
"\npMin = " << pMin
163 <<
"\npMax = " <<
pMax;
164 G4Exception(
"G4UParaboloid::BoundingLimits()",
"GeomMgt0001",
183 message <<
"Inconsistency in bounding boxes for solid: "
185 <<
"\nBBox min: wrapper = " << pMin <<
" solid = " << vmin
186 <<
"\nBBox max: wrapper = " << pMax <<
" solid = " << vmax;
187 G4Exception(
"G4UParaboloid::BoundingLimits()",
"GeomMgt0001",
199 G4UParaboloid::CalculateExtent(
const EAxis pAxis,
207 BoundingLimits(bmin,bmax);
211 return bbox.CalculateExtent(pAxis,pVoxelLimit,pTransform,pMin,pMax);
222 GetZHalfLength(), 0.,
twopi);
225 #endif // G4GEOM_USE_USOLIDS