51 #include "HepPolyhedronProcessor.h"
126 if (
this == &rhs) {
return *
this; }
146 G4bool touchesA, touchesB, out ;
151 pTransform, minA, maxA);
153 pTransform, minB, maxB);
154 if( touchesA || touchesB )
207 G4cout <<
"WARNING - Invalid call in "
208 <<
"G4UnionSolid::SurfaceNormal(p)" <<
G4endl
209 <<
" Point p is outside !" <<
G4endl;
211 G4cerr <<
"WARNING - Invalid call in "
212 <<
"G4UnionSolid::SurfaceNormal(p)" << G4endl
213 <<
" Point p is outside !" <<
G4endl;
233 G4cout <<
"WARNING - Invalid call in "
234 <<
"G4UnionSolid::SurfaceNormal(p)" <<
G4endl
235 <<
" Point p is inside !" <<
G4endl;
237 G4cerr <<
"WARNING - Invalid call in "
238 <<
"G4UnionSolid::SurfaceNormal(p)" << G4endl
239 <<
" Point p is inside !" <<
G4endl;
258 G4cout <<
"WARNING - Invalid call in "
259 <<
"G4UnionSolid::DistanceToIn(p,v)" <<
G4endl
260 <<
" Point p is inside !" <<
G4endl;
263 G4cerr <<
"WARNING - Invalid call in "
264 <<
"G4UnionSolid::DistanceToIn(p,v)" << G4endl
265 <<
" Point p is inside !" <<
G4endl;
286 G4cout <<
"WARNING - Invalid call in "
287 <<
"G4UnionSolid::DistanceToIn(p)" <<
G4endl
288 <<
" Point p is inside !" <<
G4endl;
290 G4cerr <<
"WARNING - Invalid call in "
291 <<
"G4UnionSolid::DistanceToIn(p)" << G4endl
292 <<
" Point p is inside !" <<
G4endl;
299 if(safety < 0.0) safety = 0.0 ;
329 G4cout <<
"WARNING - Invalid call in "
330 <<
"G4UnionSolid::DistanceToOut(p,v)" << G4endl
331 <<
" Point p is outside !" <<
G4endl;
334 G4cerr <<
"WARNING - Invalid call in "
335 <<
"G4UnionSolid::DistanceToOut(p,v)" << G4endl
336 <<
" Point p is outside !" <<
G4endl;
402 G4cout <<
"WARNING - Invalid call in "
403 <<
"G4UnionSolid::DistanceToOut(p)" <<
G4endl
404 <<
" Point p is outside !" <<
G4endl;
406 G4cerr <<
"WARNING - Invalid call in "
407 <<
"G4UnionSolid::DistanceToOut(p)" << G4endl
408 <<
" Point p is outside !" <<
G4endl;
493 if (processor.execute(*result)) {
return result; }
virtual G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const =0
static const G4double kInfinity
CLHEP::Hep3Vector G4ThreeVector
EInside Inside(const G4ThreeVector &p) const
CLHEP::HepRotation G4RotationMatrix
virtual void AddSolid(const G4Box &)=0
void DescribeYourselfTo(G4VGraphicsScene &scene) const
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const
static double normal(HepRandomEngine *eptr)
G4GLOB_DLL std::ostream G4cout
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const
virtual EInside Inside(const G4ThreeVector &p) const =0
G4double GetRadialTolerance() const
G4Polyhedron * CreatePolyhedron() const
virtual G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const =0
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const
virtual G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const =0
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
void ComputeDimensions(G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
T min(const T t1, const T t2)
brief Return the smallest of the two arguments
G4BooleanSolid & operator=(const G4BooleanSolid &rhs)
virtual G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const =0
G4GeometryType GetEntityType() const
G4Polyhedron * StackPolyhedron(HepPolyhedronProcessor &, const G4VSolid *) const
static G4GeometryTolerance * GetInstance()
G4GLOB_DLL std::ostream G4cerr
G4UnionSolid & operator=(const G4UnionSolid &rhs)
G4UnionSolid(const G4String &pName, G4VSolid *pSolidA, G4VSolid *pSolidB)