|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4Tet is a tetrahedra solid, defined by 4 points in space. More...
#include <G4Tet.hh>
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 |
| Protected Attributes inherited from G4VSolid | |
| G4double | kCarTolerance |
| G4Tet::G4Tet | ( | const G4String & | pName, |
| const G4ThreeVector & | anchor, | ||
| const G4ThreeVector & | p2, | ||
| const G4ThreeVector & | p3, | ||
| const G4ThreeVector & | p4, | ||
| G4bool * | degeneracyFlag = nullptr ) |
Constructs a tetrahedra, given its parameters.
| [in] | pName | The solid name. |
| [in] | anchor | The anchor point. |
| [in] | p2 | Point 2. |
| [in] | p3 | Point 3. |
| [in] | p4 | Point 4. |
| [in] | degeneracyFlag | Flag indicating degeneracy of points. |
Definition at line 66 of file G4Tet.cc.
Referenced by Clone(), G4Tet(), and operator=().
|
override |
| G4Tet::G4Tet | ( | __void__ & | a | ) |
| G4Tet::G4Tet | ( | const G4Tet & | rhs | ) |
|
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 363 of file G4Tet.cc.
Referenced by CalculateExtent().
|
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 373 of file G4Tet.cc.
| G4bool G4Tet::CheckDegeneracy | ( | const G4ThreeVector & | p0, |
| const G4ThreeVector & | p1, | ||
| const G4ThreeVector & | p2, | ||
| const G4ThreeVector & | p3 ) const |
Checks if the tetrahedron is degenerate. A tetrahedron is considered as degenerate in case its minimal height is less than the degeneracy tolerance
Definition at line 173 of file G4Tet.cc.
Referenced by G4Tet(), and SetVertices().
|
overridevirtual |
Makes a clone of the object for use in multi-treading.
Reimplemented from G4VSolid.
Definition at line 611 of file G4Tet.cc.
|
overridevirtual |
|
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 706 of file G4Tet.cc.
Referenced by G4ArrowModel::G4ArrowModel(), and GetPolyhedron().
|
overridevirtual |
|
overridevirtual |
Calculates the distance to the nearest surface of a shape from an outside point. The distance can be an underestimate.
| [in] | p | The point at offset p. |
Implements G4VSolid.
|
overridevirtual |
Returns the distance along the normalised vector 'v' to the shape, from the point at offset 'p'. If there is no intersection, returns kInfinity. The first intersection resulting from 'leaving' a surface/volume is discarded. Hence, it is tolerant of points on the surface of the shape.
| [in] | p | The point at offset p. |
| [in] | v | The normalised direction vector. |
Implements G4VSolid.
Definition at line 496 of file G4Tet.cc.
|
overridevirtual |
Calculates the distance to the nearest surface of a shape from an inside point 'p'. The distance can be an underestimate.
| [in] | p | The point at offset p. |
Implements G4VSolid.
|
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 less than Tolerance/2 from a surface must be ignored.
| [in] | p | The point at offset p. |
| [in] | v | The normalised direction vector. |
| [in] | calcNorm | Flag to indicate if to calculate the normal or not. |
| [out] | validNorm | Flag set to true if the solid lies entirely behind or on the exiting surface. It is set false if the solid does not lie 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 536 of file G4Tet.cc.
|
overridevirtual |
|
overridevirtual |
Returns the type ID, "G4Tet" of the solid.
Implements G4VSolid.
Definition at line 593 of file G4Tet.cc.
Referenced by StreamInfo().
|
overridevirtual |
|
overridevirtual |
Returns a random point located and uniformly distributed on the surface of the solid.
Reimplemented from G4VSolid.
Definition at line 641 of file G4Tet.cc.
|
overridevirtual |
Smart access function - creates on request and stores for future access. A null pointer means "not available".
Reimplemented from G4VSolid.
Definition at line 738 of file G4Tet.cc.
|
overridevirtual |
Returns an estimation of the solid surface area in internal units. This method may be overloaded by derived classes to compute the exact geometrical quantity for solids where this is possible, or anyway to cache the computed value. Note: the computed value is NOT cached.
Reimplemented from G4VSolid.
Definition at line 677 of file G4Tet.cc.
| std::vector< G4ThreeVector > G4Tet::GetVertices | ( | ) | const |
Definition at line 304 of file G4Tet.cc.
Referenced by CalculateExtent().
| void G4Tet::GetVertices | ( | G4ThreeVector & | anchor, |
| G4ThreeVector & | p1, | ||
| G4ThreeVector & | p2, | ||
| G4ThreeVector & | p3 ) const |
Definition at line 289 of file G4Tet.cc.
Referenced by G4GDMLWriteSolids::TetWrite().
|
overridevirtual |
Concrete implementations of the expected query interfaces for solids, as defined in the base class G4VSolid.
Implements G4VSolid.
|
overridevirtual |
Definition at line 140 of file G4Tet.cc.
| void G4Tet::SetBoundingLimits | ( | const G4ThreeVector & | pMin, |
| const G4ThreeVector & | pMax ) |
Computes the bounding limits of the solid.
| [out] | pMin | The minimum bounding limit point. |
| [out] | pMax | The maximum bounding limit point. |
Definition at line 326 of file G4Tet.cc.
| void G4Tet::SetVertices | ( | const G4ThreeVector & | anchor, |
| const G4ThreeVector & | p1, | ||
| const G4ThreeVector & | p2, | ||
| const G4ThreeVector & | p3, | ||
| G4bool * | degeneracyFlag = nullptr ) |
Modifier and accessors, for the four vertices of the shape.
Definition at line 253 of file G4Tet.cc.
|
overridevirtual |
Streams the object contents to an output stream.
Implements G4VSolid.
Definition at line 620 of file G4Tet.cc.
|
overridevirtual |
Returns the outwards pointing unit normal of the shape for the surface closest to the point at offset 'p'.
| [in] | p | The point at offset p. |
Implements G4VSolid.
Definition at line 437 of file G4Tet.cc.