59 :
G4VSolid(pName), fRebuildPolyhedron(false), fpPolyhedron(0)
83 :
G4VSolid(pName), fRebuildPolyhedron(false), fpPolyhedron(0)
110 :
G4VSolid(pName), fRebuildPolyhedron(false), fpPolyhedron(0)
133 :
G4VSolid(a), fPtrSolid(0), fPtrTransform(0),
134 fDirectTransform(0), fRebuildPolyhedron(false), fpPolyhedron(0)
153 :
G4VSolid (rhs), fPtrSolid(rhs.fPtrSolid),
154 fRebuildPolyhedron(false), fpPolyhedron(0)
168 if (
this == &rhs) {
return *
this; }
317 pMin.
set(xmin,ymin,zmin);
318 pMax.
set(xmax,ymax,zmax);
323 if (pMin.
x() >= pMax.
x() || pMin.
y() >= pMax.
y() || pMin.
z() >= pMax.
z())
326 message <<
"Bad bounding box (min >= max) for solid: "
328 <<
"\npMin = " << pMin
329 <<
"\npMax = " << pMax;
330 G4Exception(
"G4DisplacedSolid::BoundingLimits()",
"GeomMgt0001",
414 calcNorm,validNorm,&solNorm) ;
443 G4Exception(
"G4DisplacedSolid::ComputeDimensions()",
445 "Method not applicable in this context!");
466 return G4String(
"G4DisplacedSolid");
484 os <<
"-----------------------------------------------------------\n"
485 <<
" *** Dump for Displaced solid - " <<
GetName() <<
" ***\n"
486 <<
" ===================================================\n"
488 <<
" Parameters of constituent solid: \n"
489 <<
"===========================================================\n";
491 os <<
"===========================================================\n"
492 <<
" Transformations: \n"
493 <<
" Direct transformation - translation : \n"
495 <<
" - rotation : \n"
499 <<
"===========================================================\n";
530 G4Exception(
"G4DisplacedSolid::CreatePolyhedron()",
532 "No G4Polyhedron for displaced solid");
G4AffineTransform GetTransform() const
void set(double x, double y, double z)
G4Polyhedron * GetPolyhedron() const
std::vector< ExP01TrackerHit * > a
virtual void AddSolid(const G4Box &)=0
G4ThreeVector GetFrameTranslation() const
void SetTransform(G4AffineTransform &)
virtual G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const =0
std::ostream & print(std::ostream &os) const
void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const
G4RotationMatrix GetFrameRotation() const
virtual void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const
G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const
G4VSolid * GetConstituentMovedSolid() const
void message(RunManager *runmanager)
G4DisplacedSolid(const G4String &pName, G4VSolid *pSolid, G4RotationMatrix *rotMatrix, const G4ThreeVector &transVector)
virtual G4ThreeVector GetPointOnSurface() const
G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
static double normal(HepRandomEngine *eptr)
const G4DisplacedSolid * GetDisplacedSolidPtr() const
virtual G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const =0
EInside Inside(const G4ThreeVector &p) const
virtual G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const =0
virtual EInside Inside(const G4ThreeVector &p) const =0
G4VSolid & operator=(const G4VSolid &rhs)
G4Polyhedron * CreatePolyhedron() const
void DescribeYourselfTo(G4VGraphicsScene &scene) const
void SetObjectTranslation(const G4ThreeVector &)
void SetDirectTransform(G4AffineTransform &)
G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const
void SetObjectRotation(const G4RotationMatrix &)
G4RotationMatrix GetObjectRotation() const
HepPolyhedron & Transform(const G4Transform3D &t)
G4AffineTransform GetDirectTransform() const
std::ostream & StreamInfo(std::ostream &os) const
virtual std::ostream & StreamInfo(std::ostream &os) const =0
void ComputeDimensions(G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
G4bool fRebuildPolyhedron
G4ThreeVector GetObjectTranslation() const
G4Polyhedron * fpPolyhedron
static G4int GetNumberOfRotationSteps()
G4AffineTransform * fPtrTransform
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4int GetNumberOfRotationStepsAtTimeOfCreation() const
void CleanTransformations()
G4DisplacedSolid & operator=(const G4DisplacedSolid &rhs)
void SetFrameTranslation(const G4ThreeVector &)
void SetFrameRotation(const G4RotationMatrix &)
virtual G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const =0
virtual ~G4DisplacedSolid()
virtual G4Polyhedron * CreatePolyhedron() const
G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const
G4AffineTransform * fDirectTransform
virtual G4GeometryType GetEntityType() const =0
G4GeometryType GetEntityType() const
HepRotation inverse() const
G4ThreeVector GetPointOnSurface() const