Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4DisplacedSolid Class Reference

#include <G4DisplacedSolid.hh>

+ Inheritance 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
 
void BoundingLimits (G4ThreeVector &pMin, G4ThreeVector &pMax) 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
 
G4VSolidClone () const
 
const G4DisplacedSolidGetDisplacedSolidPtr () const
 
G4DisplacedSolidGetDisplacedSolidPtr ()
 
G4VSolidGetConstituentMovedSolid () 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)
 
G4DisplacedSolidoperator= (const G4DisplacedSolid &rhs)
 
void DescribeYourselfTo (G4VGraphicsScene &scene) const
 
G4PolyhedronCreatePolyhedron () const
 
G4PolyhedronGetPolyhedron () 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 void BoundingLimits (G4ThreeVector &pMin, G4ThreeVector &pMax) const
 
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 G4ThreeVector SurfaceNormal (const G4ThreeVector &p) const =0
 
virtual G4double DistanceToIn (const G4ThreeVector &p, const G4ThreeVector &v) const =0
 
virtual G4double DistanceToIn (const G4ThreeVector &p) const =0
 
virtual G4double DistanceToOut (const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) const =0
 
virtual G4double DistanceToOut (const G4ThreeVector &p) const =0
 
virtual void ComputeDimensions (G4VPVParameterisation *p, const G4int n, const G4VPhysicalVolume *pRep)
 
virtual G4double GetCubicVolume ()
 
virtual G4double GetSurfaceArea ()
 
virtual G4GeometryType GetEntityType () const =0
 
virtual G4ThreeVector GetPointOnSurface () const
 
virtual G4VSolidClone () const
 
virtual std::ostream & StreamInfo (std::ostream &os) const =0
 
void DumpInfo () const
 
virtual void DescribeYourselfTo (G4VGraphicsScene &scene) const =0
 
virtual G4VisExtent GetExtent () const
 
virtual G4PolyhedronCreatePolyhedron () const
 
virtual G4PolyhedronGetPolyhedron () const
 
virtual const G4VSolidGetConstituentSolid (G4int no) const
 
virtual G4VSolidGetConstituentSolid (G4int no)
 
virtual const G4DisplacedSolidGetDisplacedSolidPtr () const
 
virtual G4DisplacedSolidGetDisplacedSolidPtr ()
 
 G4VSolid (__void__ &)
 
 G4VSolid (const G4VSolid &rhs)
 
G4VSolidoperator= (const G4VSolid &rhs)
 
G4double EstimateCubicVolume (G4int nStat, G4double epsilon) const
 
G4double EstimateSurfaceArea (G4int nStat, G4double ell) const
 

Protected Attributes

G4VSolidfPtrSolid = nullptr
 
G4AffineTransformfPtrTransform = nullptr
 
G4AffineTransformfDirectTransform = nullptr
 
G4bool fRebuildPolyhedron = false
 
G4PolyhedronfpPolyhedron = nullptr
 
- 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 45 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 47 of file G4DisplacedSolid.cc.

51 : G4VSolid(pName)
52{
53 if (pSolid->GetEntityType() == "G4DisplacedSolid")
54 {
55 fPtrSolid = ((G4DisplacedSolid*)pSolid)->GetConstituentMovedSolid();
56 G4AffineTransform t1 = ((G4DisplacedSolid*)pSolid)->GetDirectTransform();
57 G4AffineTransform t2 = G4AffineTransform(rotMatrix,transVector);
59 }
60 else
61 {
62 fPtrSolid = pSolid;
63 fDirectTransform = new G4AffineTransform(rotMatrix,transVector);
64 }
66}
G4AffineTransform Inverse() const
G4AffineTransform * fPtrTransform
G4AffineTransform * fDirectTransform
virtual G4GeometryType GetEntityType() const =0

◆ G4DisplacedSolid() [2/5]

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

Definition at line 72 of file G4DisplacedSolid.cc.

75 : G4VSolid(pName)
76{
77 if (pSolid->GetEntityType() == "G4DisplacedSolid")
78 {
79 fPtrSolid = ((G4DisplacedSolid*)pSolid)->GetConstituentMovedSolid();
80 G4AffineTransform t1 = ((G4DisplacedSolid*)pSolid)->GetDirectTransform();
82 transform.getTranslation());
84 }
85 else
86 {
87 fPtrSolid = pSolid;
89 transform.getTranslation()) ;
90 }
92}
HepRotation inverse() const
CLHEP::HepRotation getRotation() const
CLHEP::Hep3Vector getTranslation() const

◆ G4DisplacedSolid() [3/5]

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

Definition at line 99 of file G4DisplacedSolid.cc.

102 : G4VSolid(pName)
103{
104 if (pSolid->GetEntityType() == "G4DisplacedSolid")
105 {
106 fPtrSolid = ((G4DisplacedSolid*)pSolid)->GetConstituentMovedSolid();
107 G4AffineTransform t1 = ((G4DisplacedSolid*)pSolid)->GetDirectTransform();
108 G4AffineTransform t2 = G4AffineTransform(directTransform);
110 }
111 else
112 {
113 fPtrSolid = pSolid;
114 fDirectTransform = new G4AffineTransform(directTransform);
115 }
117}

◆ ~G4DisplacedSolid()

G4DisplacedSolid::~G4DisplacedSolid ( )
virtual

Definition at line 133 of file G4DisplacedSolid.cc.

134{
136 delete fpPolyhedron; fpPolyhedron = nullptr;
137}
G4Polyhedron * fpPolyhedron

◆ G4DisplacedSolid() [4/5]

G4DisplacedSolid::G4DisplacedSolid ( __void__ &  a)

Definition at line 124 of file G4DisplacedSolid.cc.

125 : G4VSolid(a)
126{
127}

◆ G4DisplacedSolid() [5/5]

G4DisplacedSolid::G4DisplacedSolid ( const G4DisplacedSolid rhs)

Definition at line 143 of file G4DisplacedSolid.cc.

Member Function Documentation

◆ BoundingLimits()

void G4DisplacedSolid::BoundingLimits ( G4ThreeVector pMin,
G4ThreeVector pMax 
) const
virtual

Reimplemented from G4VSolid.

Definition at line 286 of file G4DisplacedSolid.cc.

288{
290 {
291 // Special case of pure translation
292 //
293 fPtrSolid->BoundingLimits(pMin,pMax);
295 pMin += offset;
296 pMax += offset;
297 }
298 else
299 {
300 // General case, use CalculateExtent() to find bounding box
301 //
302 G4VoxelLimits unLimit;
303 G4double xmin,xmax,ymin,ymax,zmin,zmax;
307 pMin.set(xmin,ymin,zmin);
308 pMax.set(xmax,ymax,zmax);
309 }
310
311 // Check correctness of the bounding box
312 //
313 if (pMin.x() >= pMax.x() || pMin.y() >= pMax.y() || pMin.z() >= pMax.z())
314 {
315 std::ostringstream message;
316 message << "Bad bounding box (min >= max) for solid: "
317 << GetName() << " !"
318 << "\npMin = " << pMin
319 << "\npMax = " << pMax;
320 G4Exception("G4DisplacedSolid::BoundingLimits()", "GeomMgt0001",
321 JustWarning, message);
322 DumpInfo();
323 }
324}
@ JustWarning
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
double G4double
Definition: G4Types.hh:83
double z() const
double x() const
double y() const
void set(double x, double y, double z)
G4bool IsRotated() const
G4ThreeVector NetTranslation() const
G4String GetName() const
virtual G4bool CalculateExtent(const EAxis pAxis, const G4VoxelLimits &pVoxelLimit, const G4AffineTransform &pTransform, G4double &pMin, G4double &pMax) const =0
void DumpInfo() const
virtual void BoundingLimits(G4ThreeVector &pMin, G4ThreeVector &pMax) const
Definition: G4VSolid.cc:653
@ kYAxis
Definition: geomdefs.hh:56
@ kXAxis
Definition: geomdefs.hh:55
@ kZAxis
Definition: geomdefs.hh:57

◆ CalculateExtent()

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

Implements G4VSolid.

Definition at line 331 of file G4DisplacedSolid.cc.

336{
337 G4AffineTransform sumTransform ;
338 sumTransform.Product(*fDirectTransform,pTransform) ;
339 return fPtrSolid->CalculateExtent(pAxis,pVoxelLimit,sumTransform,pMin,pMax) ;
340}
G4AffineTransform & Product(const G4AffineTransform &tf1, const G4AffineTransform &tf2)

◆ CleanTransformations()

void G4DisplacedSolid::CleanTransformations ( )

Definition at line 176 of file G4DisplacedSolid.cc.

177{
178 if(fPtrTransform != nullptr)
179 {
180 delete fPtrTransform; fPtrTransform = nullptr;
181 delete fDirectTransform; fDirectTransform = nullptr;
182 }
183}

Referenced by ~G4DisplacedSolid().

◆ Clone()

G4VSolid * G4DisplacedSolid::Clone ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 463 of file G4DisplacedSolid.cc.

464{
465 return new G4DisplacedSolid(*this);
466}

◆ ComputeDimensions()

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

Reimplemented from G4VSolid.

Definition at line 428 of file G4DisplacedSolid.cc.

431{
432 DumpInfo();
433 G4Exception("G4DisplacedSolid::ComputeDimensions()",
434 "GeomSolids0001", FatalException,
435 "Method not applicable in this context!");
436}
@ FatalException

◆ CreatePolyhedron()

G4Polyhedron * G4DisplacedSolid::CreatePolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 509 of file G4DisplacedSolid.cc.

510{
511 G4Polyhedron* polyhedron = fPtrSolid->CreatePolyhedron();
512 if (polyhedron != nullptr)
513 {
514 polyhedron
516 }
517 else
518 {
519 DumpInfo();
520 G4Exception("G4DisplacedSolid::CreatePolyhedron()",
521 "GeomSolids2002", JustWarning,
522 "No G4Polyhedron for displaced solid");
523 }
524 return polyhedron;
525}
HepGeom::Transform3D G4Transform3D
G4RotationMatrix GetObjectRotation() const
G4ThreeVector GetObjectTranslation() const
virtual G4Polyhedron * CreatePolyhedron() const
Definition: G4VSolid.cc:688
HepPolyhedron & Transform(const G4Transform3D &t)

Referenced by GetPolyhedron().

◆ DescribeYourselfTo()

void G4DisplacedSolid::DescribeYourselfTo ( G4VGraphicsScene scene) const
virtual

Implements G4VSolid.

Definition at line 499 of file G4DisplacedSolid.cc.

500{
501 scene.AddSolid (*this);
502}
virtual void AddSolid(const G4Box &)=0

◆ DistanceToIn() [1/2]

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

Implements G4VSolid.

Definition at line 383 of file G4DisplacedSolid.cc.

384{
386 return fPtrSolid->DistanceToIn(newPoint) ;
387}
G4ThreeVector TransformPoint(const G4ThreeVector &vec) const
virtual G4double DistanceToIn(const G4ThreeVector &p, const G4ThreeVector &v) const =0

◆ DistanceToIn() [2/2]

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

Implements G4VSolid.

Definition at line 369 of file G4DisplacedSolid.cc.

371{
373 G4ThreeVector newDirection = fPtrTransform->TransformAxis(v) ;
374 return fPtrSolid->DistanceToIn(newPoint,newDirection) ;
375}
G4ThreeVector TransformAxis(const G4ThreeVector &axis) const

◆ DistanceToOut() [1/2]

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

Implements G4VSolid.

Definition at line 417 of file G4DisplacedSolid.cc.

418{
420 return fPtrSolid->DistanceToOut(newPoint) ;
421}
virtual G4double DistanceToOut(const G4ThreeVector &p, const G4ThreeVector &v, const G4bool calcNorm=false, G4bool *validNorm=nullptr, G4ThreeVector *n=nullptr) const =0

◆ DistanceToOut() [2/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 394 of file G4DisplacedSolid.cc.

399{
400 G4ThreeVector solNorm ;
402 G4ThreeVector newDirection = fPtrTransform->TransformAxis(v) ;
403 G4double dist = fPtrSolid->DistanceToOut(newPoint,newDirection,
404 calcNorm,validNorm,&solNorm) ;
405 if(calcNorm)
406 {
407 *n = fDirectTransform->TransformAxis(solNorm) ;
408 }
409 return dist ;
410}

◆ GetConstituentMovedSolid()

G4VSolid * G4DisplacedSolid::GetConstituentMovedSolid ( ) const

Definition at line 195 of file G4DisplacedSolid.cc.

196{
197 return fPtrSolid;
198}

Referenced by G4tgbGeometryDumper::DumpBooleanVolume(), and G4BooleanSolid::GetListOfPrimitives().

◆ GetDirectTransform()

G4AffineTransform G4DisplacedSolid::GetDirectTransform ( ) const

Definition at line 216 of file G4DisplacedSolid.cc.

217{
219 return aTransform;
220}

◆ GetDisplacedSolidPtr() [1/2]

G4DisplacedSolid * G4DisplacedSolid::GetDisplacedSolidPtr ( )
virtual

Reimplemented from G4VSolid.

Definition at line 190 of file G4DisplacedSolid.cc.

191{
192 return this;
193}

◆ GetDisplacedSolidPtr() [2/2]

const G4DisplacedSolid * G4DisplacedSolid::GetDisplacedSolidPtr ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 185 of file G4DisplacedSolid.cc.

186{
187 return this;
188}

◆ GetEntityType()

G4GeometryType G4DisplacedSolid::GetEntityType ( ) const
virtual

Implements G4VSolid.

Definition at line 454 of file G4DisplacedSolid.cc.

455{
456 return G4String("G4DisplacedSolid");
457}

Referenced by StreamInfo().

◆ GetFrameRotation()

G4RotationMatrix G4DisplacedSolid::GetFrameRotation ( ) const

Definition at line 230 of file G4DisplacedSolid.cc.

231{
233 return InvRotation;
234}
G4RotationMatrix NetRotation() const

◆ GetFrameTranslation()

G4ThreeVector G4DisplacedSolid::GetFrameTranslation ( ) const

Definition at line 244 of file G4DisplacedSolid.cc.

245{
247}

◆ GetObjectRotation()

G4RotationMatrix G4DisplacedSolid::GetObjectRotation ( ) const

Definition at line 257 of file G4DisplacedSolid.cc.

258{
260 return Rotation;
261}

Referenced by CreatePolyhedron().

◆ GetObjectTranslation()

G4ThreeVector G4DisplacedSolid::GetObjectTranslation ( ) const

Definition at line 271 of file G4DisplacedSolid.cc.

272{
274}

Referenced by CreatePolyhedron(), and G4tgbGeometryDumper::DumpBooleanVolume().

◆ GetPointOnSurface()

G4ThreeVector G4DisplacedSolid::GetPointOnSurface ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 444 of file G4DisplacedSolid.cc.

445{
448}
virtual G4ThreeVector GetPointOnSurface() const
Definition: G4VSolid.cc:140

◆ GetPolyhedron()

G4Polyhedron * G4DisplacedSolid::GetPolyhedron ( ) const
virtual

Reimplemented from G4VSolid.

Definition at line 531 of file G4DisplacedSolid.cc.

532{
533 if (fpPolyhedron == nullptr ||
537 {
539 fRebuildPolyhedron = false;
540 }
541 return fpPolyhedron;
542}
G4Polyhedron * CreatePolyhedron() const
G4int GetNumberOfRotationStepsAtTimeOfCreation() const
static G4int GetNumberOfRotationSteps()

Referenced by G4MultiUnion::CreatePolyhedron().

◆ GetTransform()

G4AffineTransform G4DisplacedSolid::GetTransform ( ) const

Definition at line 202 of file G4DisplacedSolid.cc.

203{
204 G4AffineTransform aTransform = *fPtrTransform;
205 return aTransform;
206}

Referenced by G4tgbGeometryDumper::DumpBooleanVolume().

◆ Inside()

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

Implements G4VSolid.

Definition at line 346 of file G4DisplacedSolid.cc.

347{
349 return fPtrSolid->Inside(newPoint) ;
350}
virtual EInside Inside(const G4ThreeVector &p) const =0

◆ operator=()

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

Definition at line 154 of file G4DisplacedSolid.cc.

155{
156 // Check assignment to self
157 //
158 if (this == &rhs) { return *this; }
159
160 // Copy base class data
161 //
163
164 // Copy data
165 //
166 fPtrSolid = rhs.fPtrSolid;
167 delete fPtrTransform; delete fDirectTransform;
170 fRebuildPolyhedron = false;
171 delete fpPolyhedron; fpPolyhedron = nullptr;
172
173 return *this;
174}
G4VSolid & operator=(const G4VSolid &rhs)
Definition: G4VSolid.cc:98

◆ SetDirectTransform()

void G4DisplacedSolid::SetDirectTransform ( G4AffineTransform transform)

Definition at line 222 of file G4DisplacedSolid.cc.

223{
224 fDirectTransform = &transform ;
225 fRebuildPolyhedron = true;
226}

◆ SetFrameRotation()

void G4DisplacedSolid::SetFrameRotation ( const G4RotationMatrix matrix)

Definition at line 236 of file G4DisplacedSolid.cc.

237{
239 fRebuildPolyhedron = true;
240}
void SetNetRotation(const G4RotationMatrix &rot)

◆ SetFrameTranslation()

void G4DisplacedSolid::SetFrameTranslation ( const G4ThreeVector vector)

Definition at line 249 of file G4DisplacedSolid.cc.

250{
252 fRebuildPolyhedron = true;
253}
void SetNetTranslation(const G4ThreeVector &tlate)

◆ SetObjectRotation()

void G4DisplacedSolid::SetObjectRotation ( const G4RotationMatrix matrix)

Definition at line 263 of file G4DisplacedSolid.cc.

264{
266 fRebuildPolyhedron = true;
267}

◆ SetObjectTranslation()

void G4DisplacedSolid::SetObjectTranslation ( const G4ThreeVector vector)

Definition at line 276 of file G4DisplacedSolid.cc.

277{
279 fRebuildPolyhedron = true;
280}

◆ SetTransform()

void G4DisplacedSolid::SetTransform ( G4AffineTransform transform)

Definition at line 208 of file G4DisplacedSolid.cc.

209{
210 fPtrTransform = &transform ;
211 fRebuildPolyhedron = true;
212}

◆ StreamInfo()

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

Implements G4VSolid.

Definition at line 472 of file G4DisplacedSolid.cc.

473{
474 os << "-----------------------------------------------------------\n"
475 << " *** Dump for Displaced solid - " << GetName() << " ***\n"
476 << " ===================================================\n"
477 << " Solid type: " << GetEntityType() << "\n"
478 << " Parameters of constituent solid: \n"
479 << "===========================================================\n";
481 os << "===========================================================\n"
482 << " Transformations: \n"
483 << " Direct transformation - translation : \n"
484 << " " << fDirectTransform->NetTranslation() << "\n"
485 << " - rotation : \n"
486 << " ";
488 os << "\n"
489 << "===========================================================\n";
490
491 return os;
492}
std::ostream & print(std::ostream &os) const
Definition: RotationIO.cc:17
G4GeometryType GetEntityType() const
virtual std::ostream & StreamInfo(std::ostream &os) const =0

◆ SurfaceNormal()

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

Implements G4VSolid.

Definition at line 357 of file G4DisplacedSolid.cc.

358{
360 G4ThreeVector normal = fPtrSolid->SurfaceNormal(newPoint) ;
361 return fDirectTransform->TransformAxis(normal) ;
362}
virtual G4ThreeVector SurfaceNormal(const G4ThreeVector &p) const =0

Member Data Documentation

◆ fDirectTransform

◆ fpPolyhedron

G4Polyhedron* G4DisplacedSolid::fpPolyhedron = nullptr
mutableprotected

Definition at line 159 of file G4DisplacedSolid.hh.

Referenced by GetPolyhedron(), operator=(), and ~G4DisplacedSolid().

◆ fPtrSolid

◆ fPtrTransform

◆ fRebuildPolyhedron

G4bool G4DisplacedSolid::fRebuildPolyhedron = false
mutableprotected

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