59 fPMin = pmin - pdelta;
60 fPMax = pmax + pdelta;
78 fPMin = pmin - pdelta;
79 fPMax = pmax + pdelta;
95 fPMin = pmin - pdelta;
96 fPMax = pmax + pdelta;
136 if (
this == &rhs) {
return *
this; }
168 if (pMin.
x() >= pMax.
x() || pMin.
y() >= pMax.
y() || pMin.
z() >= pMax.
z())
171 message <<
"Bad bounding box (min >= max) for solid: "
173 <<
"\npMin = " << pMin
174 <<
"\npMax = " <<
pMax;
175 G4Exception(
"G4UnionSolid::BoundingLimits()",
"GeomMgt0001",
192 G4bool touchesA, touchesB, out ;
197 pTransform, minA, maxA);
199 pTransform, minB, maxB);
200 if( touchesA || touchesB )
225 if (positionA ==
kInside) {
return positionA; }
227 if (positionA ==
kOutside) {
return positionB; }
229 if (positionB ==
kInside) {
return positionB; }
230 if (positionB ==
kOutside) {
return positionA; }
264 return (normalA + normalB).
unit();
268 G4String surf[3] = {
"OUTSIDE",
"SURFACE",
"INSIDE" };
270 G4int oldprc = message.precision(16);
271 message <<
"Invalid call of SurfaceNormal(p) for union solid: "
273 <<
"\nPoint p" << p <<
" is " << surf[
Inside(p)] <<
" !!!";
274 message.precision(oldprc);
275 G4Exception(
"G4UnionSolid::SurfaceNormal()",
"GeomMgt0001",
292 G4cout <<
"WARNING - Invalid call in "
293 <<
"G4UnionSolid::DistanceToIn(p,v)" <<
G4endl
294 <<
" Point p is inside !" <<
G4endl;
297 G4cerr <<
"WARNING - Invalid call in "
298 <<
"G4UnionSolid::DistanceToIn(p,v)" << G4endl
299 <<
" Point p is inside !" <<
G4endl;
320 G4cout <<
"WARNING - Invalid call in "
321 <<
"G4UnionSolid::DistanceToIn(p)" <<
G4endl
322 <<
" Point p is inside !" <<
G4endl;
324 G4cerr <<
"WARNING - Invalid call in "
325 <<
"G4UnionSolid::DistanceToIn(p)" << G4endl
326 <<
" Point p is inside !" <<
G4endl;
333 if(safety < 0.0) safety = 0.0 ;
363 G4cout <<
"WARNING - Invalid call in "
364 <<
"G4UnionSolid::DistanceToOut(p,v)" << G4endl
365 <<
" Point p is outside !" <<
G4endl;
368 G4cerr <<
"WARNING - Invalid call in "
369 <<
"G4UnionSolid::DistanceToOut(p,v)" << G4endl
370 <<
" Point p is outside !" <<
G4endl;
435 G4cout <<
"WARNING - Invalid call in "
436 <<
"G4UnionSolid::DistanceToOut(p)" <<
G4endl
437 <<
" Point p is outside !" <<
G4endl;
439 G4cerr <<
"WARNING - Invalid call in "
440 <<
"G4UnionSolid::DistanceToOut(p)" << G4endl
441 <<
" Point p is outside !" <<
G4endl;
526 if (processor.
execute(*result)) {
return result; }
527 else {
return nullptr; }