|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4IntersectionSolid is a solid describing the Boolean intersection of two solids. More...
#include <G4IntersectionSolid.hh>
Additional Inherited Members | |
| Static Public Member Functions inherited from G4BooleanSolid | |
| static G4VBooleanProcessor * | GetExternalBooleanProcessor () |
| static void | SetExternalBooleanProcessor (G4VBooleanProcessor *extProcessor) |
| Protected Member Functions inherited from G4BooleanSolid | |
| void | GetListOfPrimitives (std::vector< std::pair< G4VSolid *, G4Transform3D > > &, const G4Transform3D &) const |
| G4Polyhedron * | StackPolyhedron (HepPolyhedronProcessor &, const G4VSolid *) const |
| 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 |
| Protected Attributes inherited from G4BooleanSolid | |
| G4VSolid * | fPtrSolidA = nullptr |
| G4VSolid * | fPtrSolidB = nullptr |
| G4double | fCubicVolume = -1.0 |
| G4double | fSurfaceArea = -1.0 |
| Protected Attributes inherited from G4VSolid | |
| G4double | kCarTolerance |
| Static Protected Attributes inherited from G4BooleanSolid | |
| static G4VBooleanProcessor * | fExternalBoolProcessor = nullptr |
G4IntersectionSolid is a solid describing the Boolean intersection of two solids.
Definition at line 50 of file G4IntersectionSolid.hh.
| G4IntersectionSolid::G4IntersectionSolid | ( | const G4String & | pName, |
| G4VSolid * | pSolidA, | ||
| G4VSolid * | pSolidB ) |
Constructor of a Boolean intersection between two solids with no displacement.
| [in] | pName | The name of the Boolean composition. |
| [in] | pSolidA | Pointer to the first reference solid. |
| [in] | pSolidB | Pointer to the second solid to form the composition. |
Definition at line 50 of file G4IntersectionSolid.cc.
Referenced by Clone(), G4IntersectionSolid(), and operator=().
| G4IntersectionSolid::G4IntersectionSolid | ( | const G4String & | pName, |
| G4VSolid * | pSolidA, | ||
| G4VSolid * | pSolidB, | ||
| G4RotationMatrix * | rotMatrix, | ||
| const G4ThreeVector & | transVector ) |
Constructor of a Boolean intersection between two solids with rotation and translation, used to transform the coordinate system of the second solid to the coordinate system of the first solid.
| [in] | pName | The name of the Boolean composition. |
| [in] | pSolidA | Pointer to the first reference solid. |
| [in] | pSolidB | Pointer to the second solid to form the composition. |
| [in] | rotMatrix | Pointer to the rotation vector. |
| [in] | transVector | The translation vector. |
Definition at line 60 of file G4IntersectionSolid.cc.
| G4IntersectionSolid::G4IntersectionSolid | ( | const G4String & | pName, |
| G4VSolid * | pSolidA, | ||
| G4VSolid * | pSolidB, | ||
| const G4Transform3D & | transform ) |
Constructor of a Boolean intersection between two solids with a transformation that moves the second solid from its desired position to its standard position.
| [in] | pName | The name of the Boolean composition. |
| [in] | pSolidA | Pointer to the first reference solid. |
| [in] | pSolidB | Pointer to the second solid to form the composition. |
| [in] | transform | The composed 3D transformation. |
Definition at line 73 of file G4IntersectionSolid.cc.
|
overridedefault |
Default destructor.
| G4IntersectionSolid::G4IntersectionSolid | ( | __void__ & | a | ) |
Fake default constructor for usage restricted to direct object persistency for clients requiring preallocation of memory for persistifiable objects.
Definition at line 86 of file G4IntersectionSolid.cc.
|
default |
Copy constructor and assignment operator.
|
overridevirtual |
Computes the bounding limits of the solid.
| [out] | pMin | The minimum bounding limit point. |
| [out] | pMax | The maximum bounding limit point. |
Reimplemented from G4VSolid.
Definition at line 120 of file G4IntersectionSolid.cc.
|
overridevirtual |
Calculates the minimum and maximum extent of the solid, when under the specified transform, and within the specified limits.
| [in] | pAxis | The axis along which compute the extent. |
| [in] | pVoxelLimit | The limiting space dictated by voxels. |
| [in] | pTransform | The internal transformation applied to the solid. |
| [out] | pMin | The minimum extent value. |
| [out] | pMax | The maximum extent value. |
Implements G4VSolid.
Definition at line 155 of file G4IntersectionSolid.cc.
|
overridevirtual |
Makes a clone of the object for use in multi-treading.
Reimplemented from G4VSolid.
Definition at line 524 of file G4IntersectionSolid.cc.
|
overridevirtual |
Throws an exception as paramterisations are not allowed for these solids.
Reimplemented from G4VSolid.
Definition at line 501 of file G4IntersectionSolid.cc.
|
overridevirtual |
Creates a Polyhedron used for Visualisation. It is the caller's responsibility to delete it. A null pointer means "not created".
Reimplemented from G4VSolid.
Definition at line 544 of file G4IntersectionSolid.cc.
|
overridevirtual |
Methods for creating graphical representations (i.e. for visualisation).
Implements G4VSolid.
Definition at line 534 of file G4IntersectionSolid.cc.
|
overridevirtual |
Calculates the safety distance to the nearest surface of a shape from an outside point. The distance can be an underestimate.
Implements G4VSolid.
Definition at line 373 of file G4IntersectionSolid.cc.
|
overridevirtual |
Returns the distance along the normalised vector "v" to the shape, from the point at offset "p". If there is no intersection, return kInfinity. The first intersection resulting from leaving a surface/volume is discarded. Hence, it is tolerant of points on the surface of the shape.
Implements G4VSolid.
Definition at line 266 of file G4IntersectionSolid.cc.
|
overridevirtual |
Calculates the safety distance to the nearest surface of a shape from an inside point "p". The distance can be an underestimate.
Implements G4VSolid.
Definition at line 475 of file G4IntersectionSolid.cc.
|
overridevirtual |
Returns the distance along the normalised vector "v" to the shape, from a point at an offset "p" inside or on the surface of the shape. Intersections with surfaces, when the point is < Tolerance/2 from a surface must be ignored. Must be called as solid.DistanceToOut(p,v) or by specifying all the parameters.
| [in] | p | The reference point in space. |
| [in] | v | The normalised direction. |
| [in] | calcNorm | Flag to enable the normal computation or not. |
| [out] | validNorm | Set to true if the solid lies entirely behind or on the exiting surface (calcNorm must be true, otherwise it is unused). |
| [out] | n | The exiting outwards normal vector (undefined Magnitude). (calcNorm must be true, otherwise it is unused). |
Implements G4VSolid.
Definition at line 416 of file G4IntersectionSolid.cc.
|
overridevirtual |
Returns the type ID, "G4IntersectionSolid" of the solid.
Reimplemented from G4BooleanSolid.
Definition at line 515 of file G4IntersectionSolid.cc.
|
overridevirtual |
Returns if the given point "p" is inside or not the solid.
Implements G4VSolid.
Definition at line 187 of file G4IntersectionSolid.cc.
Referenced by DistanceToIn(), DistanceToIn(), DistanceToOut(), and DistanceToOut().
| G4IntersectionSolid & G4IntersectionSolid::operator= | ( | const G4IntersectionSolid & | rhs | ) |
Definition at line 102 of file G4IntersectionSolid.cc.
|
overridevirtual |
Returns the outwards pointing unit normal of the shape for the surface closest to the point at offset "p".
Implements G4VSolid.
Definition at line 204 of file G4IntersectionSolid.cc.