128 if (
this == &rhs) {
return *
this; }
148 G4bool touchesA, touchesB, out ;
149 G4double minA = kInfinity, minB = kInfinity,
150 maxA = -kInfinity, maxB = -kInfinity;
153 pTransform, minA, maxA);
155 pTransform, minB, maxB);
156 if( touchesA || touchesB )
158 pMin = std::min( minA, minB );
159 pMax = std::max( maxA, maxB );
209 G4cout <<
"WARNING - Invalid call in "
210 <<
"G4UnionSolid::SurfaceNormal(p)" <<
G4endl
211 <<
" Point p is outside !" <<
G4endl;
213 G4cerr <<
"WARNING - Invalid call in "
214 <<
"G4UnionSolid::SurfaceNormal(p)" <<
G4endl
215 <<
" Point p is outside !" <<
G4endl;
235 G4cout <<
"WARNING - Invalid call in "
236 <<
"G4UnionSolid::SurfaceNormal(p)" <<
G4endl
237 <<
" Point p is inside !" <<
G4endl;
239 G4cerr <<
"WARNING - Invalid call in "
240 <<
"G4UnionSolid::SurfaceNormal(p)" <<
G4endl
241 <<
" Point p is inside !" <<
G4endl;
260 G4cout <<
"WARNING - Invalid call in "
261 <<
"G4UnionSolid::DistanceToIn(p,v)" <<
G4endl
262 <<
" Point p is inside !" <<
G4endl;
265 G4cerr <<
"WARNING - Invalid call in "
266 <<
"G4UnionSolid::DistanceToIn(p,v)" <<
G4endl
267 <<
" Point p is inside !" <<
G4endl;
288 G4cout <<
"WARNING - Invalid call in "
289 <<
"G4UnionSolid::DistanceToIn(p)" <<
G4endl
290 <<
" Point p is inside !" <<
G4endl;
292 G4cerr <<
"WARNING - Invalid call in "
293 <<
"G4UnionSolid::DistanceToIn(p)" <<
G4endl
294 <<
" Point p is inside !" <<
G4endl;
300 G4double safety = std::min(distA,distB) ;
301 if(safety < 0.0) safety = 0.0 ;
331 G4cout <<
"WARNING - Invalid call in "
332 <<
"G4UnionSolid::DistanceToOut(p,v)" <<
G4endl
333 <<
" Point p is outside !" <<
G4endl;
336 G4cerr <<
"WARNING - Invalid call in "
337 <<
"G4UnionSolid::DistanceToOut(p,v)" <<
G4endl
338 <<
" Point p is outside !" <<
G4endl;
406 G4cout <<
"WARNING - Invalid call in "
407 <<
"G4UnionSolid::DistanceToOut(p)" <<
G4endl
408 <<
" Point p is outside !" <<
G4endl;
410 G4cerr <<
"WARNING - Invalid call in "
411 <<
"G4UnionSolid::DistanceToOut(p)" <<
G4endl
412 <<
" Point p is outside !" <<
G4endl;
497 if (
processor.execute(*result)) {
return result; }
G4DLLIMPORT std::ostream G4cerr
G4DLLIMPORT std::ostream G4cout
G4BooleanSolid & operator=(const G4BooleanSolid &rhs)
G4Polyhedron * StackPolyhedron(HepPolyhedronProcessor &, const G4VSolid *) const
G4double GetRadialTolerance() const
static G4GeometryTolerance * GetInstance()
G4UnionSolid(const G4String &pName, G4VSolid *pSolidA, G4VSolid *pSolidB)
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const
G4NURBS * CreateNURBS() const
EInside Inside(const G4ThreeVector &p) const
G4UnionSolid & operator=(const G4UnionSolid &rhs)
G4GeometryType GetEntityType() const
G4Polyhedron * CreatePolyhedron() const
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
void DescribeYourselfTo(G4VGraphicsScene &scene) const
void ComputeDimensions(G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
virtual void AddSolid(const G4Box &)=0
virtual G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const =0
virtual EInside Inside(const G4ThreeVector &p) const =0
virtual G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const =0
virtual G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const =0
virtual G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const =0