Geant4  10.02.p03
G4DisplacedSolid Class Reference

#include <G4DisplacedSolid.hh>

Inheritance diagram for G4DisplacedSolid:
Collaboration diagram for G4DisplacedSolid:

Public Member Functions

 G4DisplacedSolid (const G4String &pName, G4VSolid *pSolid, G4RotationMatrix *rotMatrix, const G4ThreeVector &transVector)
 
 G4DisplacedSolid (const G4String &pName, G4VSolid *pSolid, const G4Transform3D &transform)
 
 G4DisplacedSolid (const G4String &pName, G4VSolid *pSolid, const G4AffineTransform directTransform)
 
virtual ~G4DisplacedSolid ()
 
EInside Inside (const G4ThreeVector &p) const
 
G4bool CalculateExtent (const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const
 
G4ThreeVector SurfaceNormal (const G4ThreeVector &p) const
 
G4double DistanceToIn (const G4ThreeVector &p, const G4ThreeVector &v) const
 
G4double DistanceToIn (const G4ThreeVector &p) const
 
G4double DistanceToOut (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const
 
G4double DistanceToOut (const G4ThreeVector &p) const
 
void ComputeDimensions (G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
 
void CleanTransformations ()
 
G4ThreeVector GetPointOnSurface () const
 
G4GeometryType GetEntityType () const
 
G4VSolid * Clone () const
 
const G4DisplacedSolid * GetDisplacedSolidPtr () const
 
G4DisplacedSolid * GetDisplacedSolidPtr ()
 
G4VSolid * GetConstituentMovedSolid () const
 
G4AffineTransform GetTransform () const
 
void SetTransform (G4AffineTransform &)
 
G4AffineTransform GetDirectTransform () const
 
void SetDirectTransform (G4AffineTransform &)
 
G4RotationMatrix GetFrameRotation () const
 
void SetFrameRotation (const G4RotationMatrix &)
 
G4ThreeVector GetFrameTranslation () const
 
void SetFrameTranslation (const G4ThreeVector &)
 
G4RotationMatrix GetObjectRotation () const
 
void SetObjectRotation (const G4RotationMatrix &)
 
G4ThreeVector GetObjectTranslation () const
 
void SetObjectTranslation (const G4ThreeVector &)
 
std::ostream & StreamInfo (std::ostream &os) const
 
 G4DisplacedSolid (__void__ &)
 
 G4DisplacedSolid (const G4DisplacedSolid &rhs)
 
G4DisplacedSolid & operator= (const G4DisplacedSolid &rhs)
 
void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
G4Polyhedron * CreatePolyhedron () const
 
G4Polyhedron * GetPolyhedron () const
 
- Public Member Functions inherited from G4VSolid
 G4VSolid (const G4String &name)
 
virtual ~G4VSolid ()
 
G4bool operator== (const G4VSolid &s) const
 
G4String GetName () const
 
void SetName (const G4String &name)
 
G4double GetTolerance () const
 
virtual G4double GetCubicVolume ()
 
virtual G4double GetSurfaceArea ()
 
void DumpInfo () const
 
virtual G4VisExtent GetExtent () const
 
virtual const G4VSolid * GetConstituentSolid (G4int no) const
 
virtual G4VSolid * GetConstituentSolid (G4int no)
 
 G4VSolid (__void__ &)
 
 G4VSolid (const G4VSolid &rhs)
 
G4VSolid & operator= (const G4VSolid &rhs)
 
G4double EstimateCubicVolume (G4int nStat, G4double epsilon) const
 
G4double EstimateSurfaceArea (G4int nStat, G4double ell) const
 

Protected Attributes

G4VSolid * fPtrSolid
 
G4AffineTransform * fPtrTransform
 
G4AffineTransform * fDirectTransform
 
G4bool fRebuildPolyhedron
 
G4Polyhedron * fpPolyhedron
 
- Protected Attributes inherited from G4VSolid
G4double kCarTolerance
 

Additional Inherited Members

- Protected Member Functions inherited from G4VSolid
void CalculateClippedPolygonExtent (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const
 
void ClipCrossSection (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const
 
void ClipBetweenSections (G4ThreeVectorList *pVertices, const G4int pSectionIndex, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis, G4double &pMin, G4double &pMax) const
 
void ClipPolygon (G4ThreeVectorList &pPolygon, const G4VoxelLimits &pVoxelLimit, const EAxis pAxis) const
 

Detailed Description

Definition at line 53 of file G4DisplacedSolid.hh.

Constructor & Destructor Documentation

◆ G4DisplacedSolid() [1/5]

G4DisplacedSolid::G4DisplacedSolid ( const G4String &  pName,
G4VSolid *  pSolid,
G4RotationMatrix *  rotMatrix,
const G4ThreeVector &  transVector 
)

Definition at line 54 of file G4DisplacedSolid.cc.

58  : G4VSolid(pName), fRebuildPolyhedron(false), fpPolyhedron(0)
59 {
60  fPtrSolid = pSolid ;
61  fPtrTransform = new G4AffineTransform(rotMatrix,transVector) ;
63  fDirectTransform = new G4AffineTransform(rotMatrix,transVector) ;
64 }
G4AffineTransform & Invert()
G4AffineTransform * fPtrTransform
G4Polyhedron * fpPolyhedron
G4AffineTransform * fDirectTransform
G4VSolid(const G4String &name)
Definition: G4VSolid.cc:60
Here is the call graph for this function:
Here is the caller graph for this function:

◆ G4DisplacedSolid() [2/5]

G4DisplacedSolid::G4DisplacedSolid ( const G4String &  pName,
G4VSolid *  pSolid,
const G4Transform3D &  transform 
)

Definition at line 70 of file G4DisplacedSolid.cc.

73  : G4VSolid(pName), fRebuildPolyhedron(false), fpPolyhedron(0)
74 {
75  fPtrSolid = pSolid ;
77  transform.getTranslation()) ;
78 
80  transform.getTranslation()) ;
81  fPtrTransform->Invert() ;
82 }
CLHEP::Hep3Vector getTranslation() const
G4AffineTransform & Invert()
G4AffineTransform * fPtrTransform
G4Polyhedron * fpPolyhedron
G4AffineTransform * fDirectTransform
G4VSolid(const G4String &name)
Definition: G4VSolid.cc:60
HepRotation inverse() const
CLHEP::HepRotation getRotation() const
Here is the call graph for this function:

◆ G4DisplacedSolid() [3/5]

G4DisplacedSolid::G4DisplacedSolid ( const G4String &  pName,
G4VSolid *  pSolid,
const G4AffineTransform  directTransform 
)

Definition at line 89 of file G4DisplacedSolid.cc.

92  : G4VSolid(pName), fRebuildPolyhedron(false), fpPolyhedron(0)
93 {
94  fPtrSolid = pSolid ;
95  fDirectTransform = new G4AffineTransform( directTransform );
96  fPtrTransform = new G4AffineTransform( directTransform.Inverse() ) ;
97 }
G4AffineTransform Inverse() const
G4AffineTransform * fPtrTransform
G4Polyhedron * fpPolyhedron
G4AffineTransform * fDirectTransform
G4VSolid(const G4String &name)
Definition: G4VSolid.cc:60
Here is the call graph for this function:

◆ ~G4DisplacedSolid()

G4DisplacedSolid::~G4DisplacedSolid ( )
virtual

Definition at line 114 of file G4DisplacedSolid.cc.

115 {
117  delete fpPolyhedron; fpPolyhedron = 0;
118 }
G4Polyhedron * fpPolyhedron
Here is the call graph for this function:

◆ G4DisplacedSolid() [4/5]

G4DisplacedSolid::G4DisplacedSolid ( __void__ &  a)

Definition at line 104 of file G4DisplacedSolid.cc.

105  : G4VSolid(a), fPtrSolid(0), fPtrTransform(0),
107 {
108 }
G4AffineTransform * fPtrTransform
G4Polyhedron * fpPolyhedron
G4AffineTransform * fDirectTransform
G4VSolid(const G4String &name)
Definition: G4VSolid.cc:60

◆ G4DisplacedSolid() [5/5]

G4DisplacedSolid::G4DisplacedSolid ( const G4DisplacedSolid &  rhs)

Definition at line 124 of file G4DisplacedSolid.cc.

125  : G4VSolid (rhs), fPtrSolid(rhs.fPtrSolid),
127 {
130 }
G4AffineTransform * fPtrTransform
G4Polyhedron * fpPolyhedron
G4AffineTransform * fDirectTransform
G4VSolid(const G4String &name)
Definition: G4VSolid.cc:60

Member Function Documentation

◆ CalculateExtent()

G4bool G4DisplacedSolid::CalculateExtent ( const EAxis  pAxis,
const G4VoxelLimits &  pVoxelLimit,
const G4AffineTransform &  pTransform,
G4double &  pMin,
G4double &  pMax 
) const
virtual

Implements G4VSolid.

Definition at line 269 of file G4DisplacedSolid.cc.

274 {
275  G4AffineTransform sumTransform ;
276  sumTransform.Product(*fDirectTransform,pTransform) ;
277  return fPtrSolid->CalculateExtent(pAxis,pVoxelLimit,sumTransform,pMin,pMax) ;
278 }
virtual G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const =0
G4AffineTransform * fDirectTransform
G4AffineTransform & Product(const G4AffineTransform &tf1, const G4AffineTransform &tf2)
Here is the call graph for this function:

◆ CleanTransformations()

void G4DisplacedSolid::CleanTransformations ( )

Definition at line 158 of file G4DisplacedSolid.cc.

159 {
160  if(fPtrTransform)
161  {
162  delete fPtrTransform; fPtrTransform=0;
164  }
165 }
G4AffineTransform * fPtrTransform
G4AffineTransform * fDirectTransform
Here is the caller graph for this function:

◆ Clone()

G4VSolid * G4DisplacedSolid::Clone ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 401 of file G4DisplacedSolid.cc.

402 {
403  return new G4DisplacedSolid(*this);
404 }
G4DisplacedSolid(const G4String &pName, G4VSolid *pSolid, G4RotationMatrix *rotMatrix, const G4ThreeVector &transVector)
Here is the call graph for this function:

◆ ComputeDimensions()

void G4DisplacedSolid::ComputeDimensions ( G4VPVParameterisation *  p,
const G4int  n,
const G4VPhysicalVolume *  pRep 
)
virtual

Reimplemented from G4VSolid.

Definition at line 366 of file G4DisplacedSolid.cc.

369 {
370  DumpInfo();
371  G4Exception("G4DisplacedSolid::ComputeDimensions()",
372  "GeomSolids0001", FatalException,
373  "Method not applicable in this context!");
374 }
void DumpInfo() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
Here is the call graph for this function:

◆ CreatePolyhedron()

G4Polyhedron * G4DisplacedSolid::CreatePolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 447 of file G4DisplacedSolid.cc.

448 {
449  G4Polyhedron* polyhedron = fPtrSolid->CreatePolyhedron();
450  polyhedron
452  return polyhedron;
453 }
G4RotationMatrix GetObjectRotation() const
G4ThreeVector GetObjectTranslation() const
HepPolyhedron & Transform(const G4Transform3D &t)
HepGeom::Transform3D G4Transform3D
virtual G4Polyhedron * CreatePolyhedron() const
Definition: G4VSolid.cc:639
Here is the call graph for this function:
Here is the caller graph for this function:

◆ DescribeYourselfTo()

void G4DisplacedSolid::DescribeYourselfTo ( G4VGraphicsScene &  scene) const
virtual

Implements G4VSolid.

Definition at line 437 of file G4DisplacedSolid.cc.

438 {
439  scene.AddSolid (*this);
440 }
virtual void AddSolid(const G4Box &)=0
Here is the call graph for this function:

◆ DistanceToIn() [1/2]

G4double G4DisplacedSolid::DistanceToIn ( const G4ThreeVector &  p,
const G4ThreeVector &  v 
) const
virtual

Implements G4VSolid.

Definition at line 307 of file G4DisplacedSolid.cc.

309 {
311  G4ThreeVector newDirection = fPtrTransform->TransformAxis(v) ;
312  return fPtrSolid->DistanceToIn(newPoint,newDirection) ;
313 }
G4ThreeVector TransformAxis(const G4ThreeVector &axis) const
G4ThreeVector TransformPoint(const G4ThreeVector &vec) const
virtual G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const =0
G4AffineTransform * fPtrTransform
Here is the call graph for this function:

◆ DistanceToIn() [2/2]

G4double G4DisplacedSolid::DistanceToIn ( const G4ThreeVector &  p) const
virtual

Implements G4VSolid.

Definition at line 321 of file G4DisplacedSolid.cc.

322 {
324  return fPtrSolid->DistanceToIn(newPoint) ;
325 }
G4ThreeVector TransformPoint(const G4ThreeVector &vec) const
virtual G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const =0
G4AffineTransform * fPtrTransform
Here is the call graph for this function:

◆ DistanceToOut() [1/2]

G4double G4DisplacedSolid::DistanceToOut ( const G4ThreeVector &  p,
const G4ThreeVector &  v,
const G4bool  calcNorm = false,
G4bool *  validNorm = 0,
G4ThreeVector *  n = 0 
) const
virtual

Implements G4VSolid.

Definition at line 332 of file G4DisplacedSolid.cc.

337 {
338  G4ThreeVector solNorm ;
340  G4ThreeVector newDirection = fPtrTransform->TransformAxis(v) ;
341  G4double dist = fPtrSolid->DistanceToOut(newPoint,newDirection,
342  calcNorm,validNorm,&solNorm) ;
343  if(calcNorm)
344  {
345  *n = fDirectTransform->TransformAxis(solNorm) ;
346  }
347  return dist ;
348 }
G4ThreeVector TransformAxis(const G4ThreeVector &axis) const
G4ThreeVector TransformPoint(const G4ThreeVector &vec) const
G4AffineTransform * fPtrTransform
G4AffineTransform * fDirectTransform
double G4double
Definition: G4Types.hh:76
virtual G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const =0
Here is the call graph for this function:

◆ DistanceToOut() [2/2]

G4double G4DisplacedSolid::DistanceToOut ( const G4ThreeVector &  p) const
virtual

Implements G4VSolid.

Definition at line 355 of file G4DisplacedSolid.cc.

356 {
358  return fPtrSolid->DistanceToOut(newPoint) ;
359 }
G4ThreeVector TransformPoint(const G4ThreeVector &vec) const
G4AffineTransform * fPtrTransform
virtual G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=0, G4ThreeVector *n=0) const =0
Here is the call graph for this function:

◆ GetConstituentMovedSolid()

G4VSolid * G4DisplacedSolid::GetConstituentMovedSolid ( ) const

Definition at line 177 of file G4DisplacedSolid.cc.

178 {
179  return fPtrSolid;
180 }
Here is the caller graph for this function:

◆ GetDirectTransform()

G4AffineTransform G4DisplacedSolid::GetDirectTransform ( ) const

Definition at line 198 of file G4DisplacedSolid.cc.

199 {
200  G4AffineTransform aTransform= *fDirectTransform;
201  return aTransform;
202 }
G4AffineTransform * fDirectTransform

◆ GetDisplacedSolidPtr() [1/2]

const G4DisplacedSolid * G4DisplacedSolid::GetDisplacedSolidPtr ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 167 of file G4DisplacedSolid.cc.

168 {
169  return this;
170 }

◆ GetDisplacedSolidPtr() [2/2]

G4DisplacedSolid * G4DisplacedSolid::GetDisplacedSolidPtr ( )
virtual

Reimplemented from G4VSolid.

Definition at line 172 of file G4DisplacedSolid.cc.

173 {
174  return this;
175 }

◆ GetEntityType()

G4GeometryType G4DisplacedSolid::GetEntityType ( ) const
virtual

Implements G4VSolid.

Definition at line 392 of file G4DisplacedSolid.cc.

393 {
394  return G4String("G4DisplacedSolid");
395 }
Here is the caller graph for this function:

◆ GetFrameRotation()

G4RotationMatrix G4DisplacedSolid::GetFrameRotation ( ) const

Definition at line 212 of file G4DisplacedSolid.cc.

213 {
215  return InvRotation;
216 }
G4RotationMatrix NetRotation() const
G4AffineTransform * fDirectTransform
Here is the call graph for this function:

◆ GetFrameTranslation()

G4ThreeVector G4DisplacedSolid::GetFrameTranslation ( ) const

Definition at line 226 of file G4DisplacedSolid.cc.

227 {
228  return fPtrTransform->NetTranslation();
229 }
G4ThreeVector NetTranslation() const
G4AffineTransform * fPtrTransform
Here is the call graph for this function:

◆ GetObjectRotation()

G4RotationMatrix G4DisplacedSolid::GetObjectRotation ( ) const

Definition at line 239 of file G4DisplacedSolid.cc.

240 {
242  return Rotation;
243 }
G4RotationMatrix NetRotation() const
G4AffineTransform * fPtrTransform
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetObjectTranslation()

G4ThreeVector G4DisplacedSolid::GetObjectTranslation ( ) const

Definition at line 253 of file G4DisplacedSolid.cc.

254 {
256 }
G4ThreeVector NetTranslation() const
G4AffineTransform * fDirectTransform
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetPointOnSurface()

G4ThreeVector G4DisplacedSolid::GetPointOnSurface ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 382 of file G4DisplacedSolid.cc.

383 {
385  return fDirectTransform->TransformPoint(p);
386 }
G4ThreeVector TransformPoint(const G4ThreeVector &vec) const
virtual G4ThreeVector GetPointOnSurface() const
Definition: G4VSolid.cc:152
G4AffineTransform * fDirectTransform
Here is the call graph for this function:

◆ GetPolyhedron()

G4Polyhedron * G4DisplacedSolid::GetPolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 459 of file G4DisplacedSolid.cc.

460 {
461  if (!fpPolyhedron ||
465  {
467  fRebuildPolyhedron = false;
468  }
469  return fpPolyhedron;
470 }
G4int GetNumberOfRotationStepsAtTimeOfCreation() const
static G4int GetNumberOfRotationSteps()
G4Polyhedron * fpPolyhedron
G4Polyhedron * CreatePolyhedron() const
Here is the call graph for this function:

◆ GetTransform()

G4AffineTransform G4DisplacedSolid::GetTransform ( ) const

Definition at line 184 of file G4DisplacedSolid.cc.

185 {
186  G4AffineTransform aTransform = *fPtrTransform;
187  return aTransform;
188 }
G4AffineTransform * fPtrTransform

◆ Inside()

EInside G4DisplacedSolid::Inside ( const G4ThreeVector &  p) const
virtual

Implements G4VSolid.

Definition at line 284 of file G4DisplacedSolid.cc.

285 {
287  return fPtrSolid->Inside(newPoint) ;
288 }
G4ThreeVector TransformPoint(const G4ThreeVector &vec) const
virtual EInside Inside(const G4ThreeVector &p) const =0
G4AffineTransform * fPtrTransform
Here is the call graph for this function:

◆ operator=()

G4DisplacedSolid & G4DisplacedSolid::operator= ( const G4DisplacedSolid &  rhs)

Definition at line 136 of file G4DisplacedSolid.cc.

137 {
138  // Check assignment to self
139  //
140  if (this == &rhs) { return *this; }
141 
142  // Copy base class data
143  //
144  G4VSolid::operator=(rhs);
145 
146  // Copy data
147  //
148  fPtrSolid = rhs.fPtrSolid;
149  delete fPtrTransform; delete fDirectTransform;
152  fRebuildPolyhedron = false;
153  delete fpPolyhedron; fpPolyhedron= 0;
154 
155  return *this;
156 }
G4AffineTransform * fPtrTransform
G4Polyhedron * fpPolyhedron
G4AffineTransform * fDirectTransform
G4VSolid & operator=(const G4VSolid &rhs)
Definition: G4VSolid.cc:110
Here is the call graph for this function:

◆ SetDirectTransform()

void G4DisplacedSolid::SetDirectTransform ( G4AffineTransform &  transform)

Definition at line 204 of file G4DisplacedSolid.cc.

205 {
206  fDirectTransform = &transform ;
207  fRebuildPolyhedron = true;
208 }
G4AffineTransform * fDirectTransform

◆ SetFrameRotation()

void G4DisplacedSolid::SetFrameRotation ( const G4RotationMatrix &  matrix)

Definition at line 218 of file G4DisplacedSolid.cc.

219 {
221  fRebuildPolyhedron = true;
222 }
void SetNetRotation(const G4RotationMatrix &rot)
G4AffineTransform * fDirectTransform
Here is the call graph for this function:

◆ SetFrameTranslation()

void G4DisplacedSolid::SetFrameTranslation ( const G4ThreeVector &  vector)

Definition at line 231 of file G4DisplacedSolid.cc.

232 {
234  fRebuildPolyhedron = true;
235 }
void SetNetTranslation(const G4ThreeVector &tlate)
G4AffineTransform * fPtrTransform
Here is the call graph for this function:

◆ SetObjectRotation()

void G4DisplacedSolid::SetObjectRotation ( const G4RotationMatrix &  matrix)

Definition at line 245 of file G4DisplacedSolid.cc.

246 {
247  fPtrTransform->SetNetRotation(matrix);
248  fRebuildPolyhedron = true;
249 }
void SetNetRotation(const G4RotationMatrix &rot)
G4AffineTransform * fPtrTransform
Here is the call graph for this function:

◆ SetObjectTranslation()

void G4DisplacedSolid::SetObjectTranslation ( const G4ThreeVector &  vector)

Definition at line 258 of file G4DisplacedSolid.cc.

259 {
261  fRebuildPolyhedron = true;
262 }
void SetNetTranslation(const G4ThreeVector &tlate)
G4AffineTransform * fDirectTransform
Here is the call graph for this function:

◆ SetTransform()

void G4DisplacedSolid::SetTransform ( G4AffineTransform &  transform)

Definition at line 190 of file G4DisplacedSolid.cc.

191 {
192  fPtrTransform = &transform ;
193  fRebuildPolyhedron = true;
194 }
G4AffineTransform * fPtrTransform

◆ StreamInfo()

std::ostream & G4DisplacedSolid::StreamInfo ( std::ostream &  os) const
virtual

Implements G4VSolid.

Definition at line 410 of file G4DisplacedSolid.cc.

411 {
412  os << "-----------------------------------------------------------\n"
413  << " *** Dump for Displaced solid - " << GetName() << " ***\n"
414  << " ===================================================\n"
415  << " Solid type: " << GetEntityType() << "\n"
416  << " Parameters of constituent solid: \n"
417  << "===========================================================\n";
418  fPtrSolid->StreamInfo(os);
419  os << "===========================================================\n"
420  << " Transformations: \n"
421  << " Direct transformation - translation : \n"
422  << " " << fDirectTransform->NetTranslation() << "\n"
423  << " - rotation : \n"
424  << " ";
426  os << "\n"
427  << "===========================================================\n";
428 
429  return os;
430 }
G4GeometryType GetEntityType() const
G4String GetName() const
virtual std::ostream & StreamInfo(std::ostream &os) const =0
G4RotationMatrix NetRotation() const
G4ThreeVector NetTranslation() const
G4AffineTransform * fDirectTransform
std::ostream & print(std::ostream &os) const
Definition: RotationIO.cc:21
Here is the call graph for this function:

◆ SurfaceNormal()

G4ThreeVector G4DisplacedSolid::SurfaceNormal ( const G4ThreeVector &  p) const
virtual

Implements G4VSolid.

Definition at line 295 of file G4DisplacedSolid.cc.

296 {
299  return fDirectTransform->TransformAxis(normal) ;
300 }
G4ThreeVector TransformAxis(const G4ThreeVector &axis) const
G4ThreeVector TransformPoint(const G4ThreeVector &vec) const
static double normal(HepRandomEngine *eptr)
Definition: RandPoisson.cc:77
virtual G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const =0
G4AffineTransform * fPtrTransform
G4AffineTransform * fDirectTransform
Here is the call graph for this function:

Member Data Documentation

◆ fDirectTransform

G4AffineTransform* G4DisplacedSolid::fDirectTransform
protected

Definition at line 163 of file G4DisplacedSolid.hh.

◆ fpPolyhedron

G4Polyhedron* G4DisplacedSolid::fpPolyhedron
mutableprotected

Definition at line 165 of file G4DisplacedSolid.hh.

◆ fPtrSolid

G4VSolid* G4DisplacedSolid::fPtrSolid
protected

Definition at line 161 of file G4DisplacedSolid.hh.

◆ fPtrTransform

G4AffineTransform* G4DisplacedSolid::fPtrTransform
protected

Definition at line 162 of file G4DisplacedSolid.hh.

◆ fRebuildPolyhedron

G4bool G4DisplacedSolid::fRebuildPolyhedron
mutableprotected

Definition at line 164 of file G4DisplacedSolid.hh.


The documentation for this class was generated from the following files: