|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
G4VSolid is an abstract base class for solids, physical shapes that can be tracked through. Each solid has a name, and the constructors and destructors automatically add and subtract them from the G4SolidStore, a singleton 'master' list of available solids. More...
#include <G4VSolid.hh>
Protected Member Functions | |
| 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 | |
| G4double | kCarTolerance |
G4VSolid is an abstract base class for solids, physical shapes that can be tracked through. Each solid has a name, and the constructors and destructors automatically add and subtract them from the G4SolidStore, a singleton 'master' list of available solids.
Definition at line 79 of file G4VSolid.hh.
| G4VSolid::G4VSolid | ( | const G4String & | name | ) |
Constructor for G4VSolid. Creates a new shape, with the supplied name. No provision is made for sharing a common name amongst multiple classes.
| [in] | name | The solid's name. |
Definition at line 59 of file G4VSolid.cc.
Referenced by G4MultiUnion::AddNode(), G4MultiUnion::AddNode(), G4Box::Clone(), G4Cons::Clone(), G4CutTubs::Clone(), G4DisplacedSolid::Clone(), G4Ellipsoid::Clone(), G4EllipticalCone::Clone(), G4EllipticalTube::Clone(), G4ExtrudedSolid::Clone(), G4GenericPolycone::Clone(), G4GenericTrap::Clone(), G4Hype::Clone(), G4IntersectionSolid::Clone(), G4MultiUnion::Clone(), G4Orb::Clone(), G4Para::Clone(), G4Paraboloid::Clone(), G4Polycone::Clone(), G4Polyhedra::Clone(), G4ReflectedSolid::Clone(), G4ScaledSolid::Clone(), G4Sphere::Clone(), G4SubtractionSolid::Clone(), G4TessellatedSolid::Clone(), G4Tet::Clone(), G4Torus::Clone(), G4Trap::Clone(), G4Trd::Clone(), G4Tubs::Clone(), G4TwistedBox::Clone(), G4TwistedTrap::Clone(), G4TwistedTrd::Clone(), G4TwistedTubs::Clone(), G4UnionSolid::Clone(), Clone(), G4MultiUnion::CreatePolyhedron(), DescribeYourselfTo(), G4MultiUnion::DistanceToIn(), G4MultiUnion::DistanceToInNoVoxels(), G4MultiUnion::DistanceToOut(), G4MultiUnion::DistanceToOutNoVoxels(), G4MultiUnion::DistanceToOutVoxels(), G4MultiUnion::Extent(), G4BooleanSolid::G4BooleanSolid(), G4BooleanSolid::G4BooleanSolid(), G4BooleanSolid::G4BooleanSolid(), G4BooleanSolid::G4BooleanSolid(), G4BooleanSolid::G4BooleanSolid(), G4CSGSolid::G4CSGSolid(), G4CSGSolid::G4CSGSolid(), G4CSGSolid::G4CSGSolid(), G4DisplacedSolid::G4DisplacedSolid(), G4DisplacedSolid::G4DisplacedSolid(), G4DisplacedSolid::G4DisplacedSolid(), G4DisplacedSolid::G4DisplacedSolid(), G4DisplacedSolid::G4DisplacedSolid(), G4Ellipsoid::G4Ellipsoid(), G4Ellipsoid::G4Ellipsoid(), G4Ellipsoid::G4Ellipsoid(), G4EllipticalCone::G4EllipticalCone(), G4EllipticalCone::G4EllipticalCone(), G4EllipticalCone::G4EllipticalCone(), G4EllipticalTube::G4EllipticalTube(), G4EllipticalTube::G4EllipticalTube(), G4EllipticalTube::G4EllipticalTube(), G4GenericTrap::G4GenericTrap(), G4GenericTrap::G4GenericTrap(), G4GenericTrap::G4GenericTrap(), G4Hype::G4Hype(), G4Hype::G4Hype(), G4Hype::G4Hype(), G4IntersectionSolid::G4IntersectionSolid(), G4IntersectionSolid::G4IntersectionSolid(), G4IntersectionSolid::G4IntersectionSolid(), G4IntersectionSolid::G4IntersectionSolid(), G4MultiUnion::G4MultiUnion(), G4MultiUnion::G4MultiUnion(), G4MultiUnion::G4MultiUnion(), G4MultiUnion::G4MultiUnion(), G4Paraboloid::G4Paraboloid(), G4Paraboloid::G4Paraboloid(), G4Paraboloid::G4Paraboloid(), G4ReflectedSolid::G4ReflectedSolid(), G4ReflectedSolid::G4ReflectedSolid(), G4ScaledSolid::G4ScaledSolid(), G4ScaledSolid::G4ScaledSolid(), G4ScaledSolid::G4ScaledSolid(), G4SubtractionSolid::G4SubtractionSolid(), G4SubtractionSolid::G4SubtractionSolid(), G4SubtractionSolid::G4SubtractionSolid(), G4SubtractionSolid::G4SubtractionSolid(), G4TessellatedSolid::G4TessellatedSolid(), G4TessellatedSolid::G4TessellatedSolid(), G4TessellatedSolid::G4TessellatedSolid(), G4TessellatedSolid::G4TessellatedSolid(), G4Tet::G4Tet(), G4Tet::G4Tet(), G4Tet::G4Tet(), G4TwistedTubs::G4TwistedTubs(), G4TwistedTubs::G4TwistedTubs(), G4TwistedTubs::G4TwistedTubs(), G4TwistedTubs::G4TwistedTubs(), G4TwistedTubs::G4TwistedTubs(), G4TwistedTubs::G4TwistedTubs(), G4UnionSolid::G4UnionSolid(), G4UnionSolid::G4UnionSolid(), G4UnionSolid::G4UnionSolid(), G4VCSGfaceted::G4VCSGfaceted(), G4VCSGfaceted::G4VCSGfaceted(), G4VCSGfaceted::G4VCSGfaceted(), G4VSolid(), G4VTwistedFaceted::G4VTwistedFaceted(), G4VTwistedFaceted::G4VTwistedFaceted(), G4VTwistedFaceted::G4VTwistedFaceted(), G4Trap::GetAlpha2(), G4DisplacedSolid::GetConstituentMovedSolid(), G4ReflectedSolid::GetConstituentMovedSolid(), G4BooleanSolid::GetConstituentSolid(), G4BooleanSolid::GetConstituentSolid(), GetConstituentSolid(), GetConstituentSolid(), G4GenericPolycone::GetCorner(), G4Torus::GetCosEndPhi(), GetEntityType(), G4BooleanSolid::GetListOfPrimitives(), G4Hype::GetOuterStereo(), G4MultiUnion::GetPointOnSurface(), G4Paraboloid::GetRadiusPlusZ(), G4MultiUnion::GetSolid(), G4ScaledSolid::GetUnscaledSolid(), G4MultiUnion::GetVoxels(), G4Box::GetZHalfLength(), G4ExtrudedSolid::GetZSections(), G4EllipticalCone::GetZTopCut(), operator=(), operator==(), G4MultiUnion::SetAccurateSafety(), G4BooleanSolid::SetAreaAccuracy(), G4BooleanSolid::SetCubVolEpsilon(), G4BooleanSolid::SetCubVolStatistics(), G4Cons::SetDeltaPhiAngle(), G4CutTubs::SetDeltaPhiAngle(), G4Tubs::SetDeltaPhiAngle(), G4Sphere::SetDeltaThetaAngle(), G4EllipticalTube::SetDz(), G4Polycone::SetOriginalParameters(), G4Polyhedra::SetOriginalParameters(), G4Orb::SetRadius(), G4Para::SetThetaAndPhi(), G4GenericTrap::SetVisSubdivisions(), G4Ellipsoid::SetZCuts(), G4Trd::SetZHalfLength(), G4BooleanSolid::StackPolyhedron(), G4MultiUnion::StreamInfo(), G4MultiUnion::SurfaceNormal(), G4MultiUnion::~G4MultiUnion(), and G4UnionSolid::~G4UnionSolid().
|
virtual |
| G4VSolid::G4VSolid | ( | const G4VSolid & | rhs | ) |
Copy constructor and assignment operator.
Definition at line 73 of file G4VSolid.cc.
| G4VSolid::G4VSolid | ( | __void__ & | ) |
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 G4VSolid.cc.
|
virtual |
Computes the bounding limits of the solid.
| [out] | pMin | The minimum bounding limit point. |
| [out] | pMax | The maximum bounding limit point. |
Reimplemented in G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericPolycone, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, G4UnionSolid, and G4VTwistedFaceted.
Definition at line 691 of file G4VSolid.cc.
Referenced by G4PVPlacement::CheckOverlaps(), EstimateSurfaceArea(), G4MultiUnion::Extent(), and G4VChannelingFastSimCrystalData::SetBendingAngle().
|
protected |
Calculates the maximum and minimum extents of the convex polygon 'pPolygon' along the axis 'pAxis', within the limits 'pVoxelLimit'. If the minimum is less than 'pMin', 'pMin' is set to the new minimum. If the maximum is greater than 'pMax', 'pMax' is set to the new maximum. Modifications to 'pPolygon' are made - it is left in an undefined state.
| [in,out] | pPolygon | The points defining the convex polygon. |
| [in] | pVoxelLimit | The limiting space dictated by voxels. |
| [in] | pAxis | The axis along which compute the extent. |
| [out] | pMin | The minimum extent value. |
| [out] | pMax | The maximum extent value. |
Definition at line 515 of file G4VSolid.cc.
Referenced by ClipBetweenSections(), and ClipCrossSection().
|
pure virtual |
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. |
Implemented in G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericPolycone, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, G4UnionSolid, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by EstimateCubicVolume(), GetExtent(), and G4ITNavigator2::GetRandomInCurrentVolume().
|
protected |
Calculates the maximum and minimum extents of the polygons joining the CrossSections at pSectionIndex->pSectionIndex+3 and pSectionIndex+4->pSectionIndex7 in the list 'pVertices', within the boundaries of the voxel limits 'pVoxelLimit'. If the minimum is less than 'pMin', 'pMin' is set to the new minimum. If the maximum is greater than 'pMax', 'pMax' is set to the new maximum. No modifications are made to 'pVertices'.
| [in] | pVertices | The vertices list defining the convex polygon. |
| [in] | pSectionIndex | The starting index for vertices. |
| [in] | pVoxelLimit | The limiting space dictated by voxels. |
| [in] | pAxis | The axis along which compute the extent. |
| [out] | pMin | The minimum extent value. |
| [out] | pMax | The maximum extent value. |
Definition at line 470 of file G4VSolid.cc.
|
protected |
Calculates the maximum and minimum extents of the polygon described by the vertices: pSectionIndex->pSectionIndex+1-> pSectionIndex+2->pSectionIndex+3->pSectionIndex in the list 'pVertices'. If the minimum is less than 'pMin', 'pMin' is set to the new minimum. If the maximum is greater than 'pMax', 'pMax' is set to the new maximum. No modifications are made to 'pVertices'.
| [in] | pVertices | The vertices list defining the convex polygon. |
| [in] | pSectionIndex | The starting index for vertices. |
| [in] | pVoxelLimit | The limiting space dictated by voxels. |
| [in] | pAxis | The axis along which compute the extent. |
| [out] | pMin | The minimum extent value. |
| [out] | pMax | The maximum extent value. |
Definition at line 440 of file G4VSolid.cc.
|
protected |
Clips the specified convex polygon to the given limits, where the polygon is described by the vertices at (0),(1),...,(n),(0) in 'pPolygon'. If the polygon is completely clipped away, the polygon is cleared.
| [in,out] | pPolygon | pPolygon The points defining the convex polygon. |
| [in] | pVoxelLimit | The limiting space dictated by voxels. |
| [in] | pAxis | The axis along which apply the clipping. |
Definition at line 565 of file G4VSolid.cc.
Referenced by CalculateClippedPolygonExtent().
|
virtual |
Returns a pointer of a dynamically allocated copy of the solid. Returns a null pointer with warning in case the concrete solid does not implement this method. The caller has responsibility for ownership.
Reimplemented in G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericPolycone, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedBox, G4TwistedTrap, G4TwistedTrd, G4TwistedTubs, and G4UnionSolid.
Definition at line 417 of file G4VSolid.cc.
Referenced by G4GeometryWorkspace::CloneReplicaSolid().
|
virtual |
Dispatch method for parameterisation replication mechanism and dimension computation. Throws exception if ComputeDimensions() is called from an illegal derived class.
Reimplemented in G4Box, G4Cons, G4DisplacedSolid, G4Ellipsoid, G4Hype, G4IntersectionSolid, G4Orb, G4Para, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, G4UnionSolid, and G4VTwistedFaceted.
Definition at line 136 of file G4VSolid.cc.
Referenced by G4PVParameterised::CheckOverlaps(), G4VPrimitiveScorer::ComputeSolid(), G4LogicalVolumeModel::DescribeYourselfTo(), G4VFieldModel::DescribeYourselfTo(), G4LogicalVolume::GetMass(), G4ITNavigator1::GetMotherToDaughterTransform(), G4ITNavigator2::GetMotherToDaughterTransform(), G4Navigator::GetMotherToDaughterTransform(), G4ITNavigator1::LocateGlobalPointAndSetup(), G4ITNavigator2::LocateGlobalPointAndSetup(), G4Navigator::LocateGlobalPointAndSetup(), G4PSFlatSurfaceCurrent::ProcessHits(), G4PSFlatSurfaceFlux::ProcessHits(), G4PSSphereSurfaceFlux::ProcessHits(), G4PSVolumeFlux::ProcessHits(), G4ITNavigator1::SetupHierarchy(), G4ITNavigator2::SetupHierarchy(), and G4Navigator::SetupHierarchy().
|
virtual |
Creates a Polyhedron used for Visualisation. It is the caller's responsibility to delete it. A null pointer means "not created".
Reimplemented in G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericPolycone, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, G4UnionSolid, G4VCSGfaceted, and G4VTwistedFaceted.
Definition at line 726 of file G4VSolid.cc.
Referenced by G4BooleanSolid::GetPolyhedron(), and G4CSGSolid::GetPolyhedron().
|
pure virtual |
A "double dispatch" function which identifies the solid to the graphics scene for visualization.
Implemented in G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, G4UnionSolid, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4VisManager::Draw().
|
pure virtual |
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. |
Implemented in G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericPolycone, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, G4UnionSolid, G4VCSGfaceted, and G4VTwistedFaceted.
|
pure virtual |
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. |
Implemented in G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericPolycone, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, G4UnionSolid, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4NavigationLogger::AlongComputeStepLog(), G4NavigationLogger::CheckDaughterEntryPoint(), G4PVParameterised::CheckOverlaps(), G4PVPlacement::CheckOverlaps(), G4NormalNavigation::ComputeSafety(), G4ParameterisedNavigation::ComputeSafety(), G4ReplicaNavigation::ComputeSafety(), G4VoxelNavigation::ComputeSafety(), G4VoxelSafety::ComputeSafety(), G4NormalNavigation::ComputeStep(), G4ParameterisedNavigation::ComputeStep(), G4ReplicaNavigation::ComputeStep(), G4VoxelNavigation::ComputeStep(), G4MultiUnion::DistanceToIn(), G4MultiUnion::DistanceToInNoVoxels(), EstimateSurfaceArea(), G4ITNavigator1::GetLocalExitNormal(), G4ITNavigator2::GetLocalExitNormal(), G4Navigator::GetLocalExitNormal(), G4VIntersectionLocator::LocateGlobalPointWithinVolumeAndCheck(), G4NavigationLogger::PreComputeStepLog(), G4ITNavigator2::RecheckDistanceToCurrentBoundary(), G4NavigationLogger::ReportOutsideMother(), G4NavigationLogger::ReportVolumeAndIntersection(), G4VoxelSafety::SafetyForVoxelNode(), and G4MultiUnion::SurfaceNormal().
|
pure virtual |
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. |
Implemented in G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, G4UnionSolid, G4VCSGfaceted, and G4VTwistedFaceted.
|
pure virtual |
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. |
Implemented in G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, G4UnionSolid, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4NavigationLogger::AlongComputeStepLog(), G4NavigationLogger::CheckDaughterEntryPoint(), G4PVParameterised::CheckOverlaps(), G4PVPlacement::CheckOverlaps(), G4NormalNavigation::ComputeSafety(), G4ParameterisedNavigation::ComputeSafety(), G4ReplicaNavigation::ComputeSafety(), G4VoxelNavigation::ComputeSafety(), G4VoxelSafety::ComputeSafety(), G4NormalNavigation::ComputeStep(), G4ParameterisedNavigation::ComputeStep(), G4ReplicaNavigation::ComputeStep(), G4VoxelNavigation::ComputeStep(), G4RegularNavigation::ComputeStepSkippingEqualMaterials(), G4MultiUnion::DistanceToOut(), G4MultiUnion::DistanceToOutNoVoxels(), G4MultiUnion::DistanceToOutVoxels(), EstimateSurfaceArea(), G4ITNavigator1::GetLocalExitNormal(), G4ITNavigator2::GetLocalExitNormal(), G4Navigator::GetLocalExitNormal(), G4BOptnForceCommonTruncatedExp::Initialize(), G4FastTrack::OnTheBoundaryButExiting(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4NeutrinoElectronProcess::PostStepDoIt(), G4TauNeutrinoNucleusProcess::PostStepDoIt(), G4ITNavigator2::RecheckDistanceToCurrentBoundary(), G4NavigationLogger::ReportOutsideMother(), G4NavigationLogger::ReportVolumeAndIntersection(), and G4MultiUnion::SurfaceNormal().
|
inline |
Dumps contents of the solid to the standard output.
Referenced by G4CutTubs::ApproxSurfaceNormal(), G4Tubs::ApproxSurfaceNormal(), G4Box::BoundingLimits(), G4Cons::BoundingLimits(), G4CutTubs::BoundingLimits(), G4DisplacedSolid::BoundingLimits(), G4EllipticalCone::BoundingLimits(), G4ExtrudedSolid::BoundingLimits(), G4GenericPolycone::BoundingLimits(), G4Hype::BoundingLimits(), G4IntersectionSolid::BoundingLimits(), G4Orb::BoundingLimits(), G4Para::BoundingLimits(), G4Paraboloid::BoundingLimits(), G4Polycone::BoundingLimits(), G4Polyhedra::BoundingLimits(), G4ReflectedSolid::BoundingLimits(), G4ScaledSolid::BoundingLimits(), G4Sphere::BoundingLimits(), G4SubtractionSolid::BoundingLimits(), G4TessellatedSolid::BoundingLimits(), G4Torus::BoundingLimits(), G4Trap::BoundingLimits(), G4Trd::BoundingLimits(), G4Tubs::BoundingLimits(), G4TwistedTubs::BoundingLimits(), G4UnionSolid::BoundingLimits(), G4DisplacedSolid::ComputeDimensions(), G4IntersectionSolid::ComputeDimensions(), G4ParameterisationBoxX::ComputeDimensions(), G4ParameterisationBoxY::ComputeDimensions(), G4ParameterisationBoxZ::ComputeDimensions(), G4ParameterisationConsPhi::ComputeDimensions(), G4ParameterisationConsRho::ComputeDimensions(), G4ParameterisationConsZ::ComputeDimensions(), G4ParameterisationParaX::ComputeDimensions(), G4ParameterisationParaY::ComputeDimensions(), G4ParameterisationParaZ::ComputeDimensions(), G4ParameterisationPolyconePhi::ComputeDimensions(), G4ParameterisationPolyconeRho::ComputeDimensions(), G4ParameterisationPolyconeZ::ComputeDimensions(), G4ParameterisationPolyhedraPhi::ComputeDimensions(), G4ParameterisationPolyhedraRho::ComputeDimensions(), G4ParameterisationPolyhedraZ::ComputeDimensions(), G4ParameterisationTrdX::ComputeDimensions(), G4ParameterisationTrdX::ComputeDimensions(), G4ParameterisationTrdY::ComputeDimensions(), G4ParameterisationTrdY::ComputeDimensions(), G4ParameterisationTrdZ::ComputeDimensions(), G4ParameterisationTubsPhi::ComputeDimensions(), G4ParameterisationTubsRho::ComputeDimensions(), G4ParameterisationTubsZ::ComputeDimensions(), G4ReflectedSolid::ComputeDimensions(), G4ScaledSolid::ComputeDimensions(), G4SubtractionSolid::ComputeDimensions(), G4UnionSolid::ComputeDimensions(), G4ParameterisedNavigation::ComputeStep(), G4ReplicaNavigation::ComputeStep(), G4DisplacedSolid::CreatePolyhedron(), G4ScaledSolid::CreatePolyhedron(), G4SubtractionSolid::DistanceToIn(), G4Box::DistanceToOut(), G4Cons::DistanceToOut(), G4Cons::DistanceToOut(), G4CutTubs::DistanceToOut(), G4Ellipsoid::DistanceToOut(), G4EllipticalCone::DistanceToOut(), G4EllipticalCone::DistanceToOut(), G4EllipticalTube::DistanceToOut(), G4EllipticalTube::DistanceToOut(), G4Orb::DistanceToOut(), G4Para::DistanceToOut(), G4Paraboloid::DistanceToOut(), G4Sphere::DistanceToOut(), G4Sphere::DistanceToOut(), G4Torus::DistanceToOut(), G4Torus::DistanceToOut(), G4Trap::DistanceToOut(), G4Trd::DistanceToOut(), G4Tubs::DistanceToOut(), G4Tubs::DistanceToOut(), G4VTwistedFaceted::DistanceToOut(), G4Polycone::G4Polycone(), G4Polyhedra::G4Polyhedra(), G4BooleanSolid::GetConstituentSolid(), G4BooleanSolid::GetConstituentSolid(), G4NavigationLogger::PostComputeStepLog(), G4Box::SurfaceNormal(), G4Ellipsoid::SurfaceNormal(), G4EllipticalCone::SurfaceNormal(), G4EllipticalTube::SurfaceNormal(), G4ExtrudedSolid::SurfaceNormal(), G4Para::SurfaceNormal(), G4Tet::SurfaceNormal(), G4Trap::SurfaceNormal(), and G4Trd::SurfaceNormal().
Calculates the cubic volume only based on the Inside() method. The accuracy is limited by the second argument 'epsilon' or the statistics expressed by 'nStat'.
| [in] | nStat | The number of points to generate for the calculation. |
| [in] | epsilon | The accuracy value. |
Definition at line 229 of file G4VSolid.cc.
Referenced by G4BooleanSolid::GetCubicVolume(), G4MultiUnion::GetCubicVolume(), G4VCSGfaceted::GetCubicVolume(), and GetCubicVolume().
Calculates the surface area only based on the Inside() method. The accuracy is limited by the second argument 'epsilon' or the statistics expressed by 'nStat'.
| [in] | nStat | The number of points to generate for the calculation. |
| [in] | epsilon | The accuracy value. |
Definition at line 290 of file G4VSolid.cc.
Referenced by G4BooleanSolid::GetSurfaceArea(), G4MultiUnion::GetSurfaceArea(), G4VCSGfaceted::GetSurfaceArea(), and GetSurfaceArea().
Reimplemented in G4BooleanSolid.
Definition at line 190 of file G4VSolid.cc.
If the solid is made up from a Boolean operation of two solids, it returns the number 'no' solid. If the solid is not a "Boolean", it returns a null pointer.
Reimplemented in G4BooleanSolid.
Definition at line 185 of file G4VSolid.cc.
Referenced by G4BooleanSolid::StackPolyhedron().
|
virtual |
Returns an estimation of the solid volume 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 in G4BooleanSolid, G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericPolycone, G4GenericTrap, G4Hype, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedBox, G4TwistedTrd, G4TwistedTubs, G4UnionSolid, G4VCSGfaceted, and G4VTwistedFaceted.
Definition at line 214 of file G4VSolid.cc.
Referenced by G4PSCellFlux::ComputeVolume(), G4PSDoseDeposit::ComputeVolume(), G4PSPassageCellFlux::ComputeVolume(), and G4LogicalVolume::GetMass().
|
virtual |
Reimplemented in G4DisplacedSolid.
Definition at line 200 of file G4VSolid.cc.
|
virtual |
If the solid is a "G4DisplacedSolid", it returns a self pointer else it returns a null pointer.
Reimplemented in G4DisplacedSolid.
Definition at line 195 of file G4VSolid.cc.
|
pure virtual |
Provides identification of the class of an object (required for persistency).
Implemented in G4BooleanSolid, G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericPolycone, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedBox, G4TwistedTrap, G4TwistedTrd, G4TwistedTubs, G4UnionSolid, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4GMocrenFileSceneHandler::AddPrimitive(), G4GDMLWriteSolids::AddSolid(), BoundingLimits(), G4tgbVolume::BuildSolidForDivision(), G4PVPlacement::CheckOverlaps(), Clone(), G4GeometryWorkspace::CloneReplicaSolid(), G4VoxelNavigation::ComputeSafety(), G4NavigationLogger::ComputeSafetyLog(), G4VDivisionParameterisation::ComputeSolid(), G4PhysicalVolumeModel::CreateCurrentAttValues(), G4tgbGeometryDumper::DumpPVParameterised(), G4tgbGeometryDumper::DumpSolid(), G4tgbVolume::FindOrConstructG4Solid(), G4DisplacedSolid::G4DisplacedSolid(), G4DisplacedSolid::G4DisplacedSolid(), G4DisplacedSolid::G4DisplacedSolid(), G4VParameterisationBox::G4VParameterisationBox(), G4VParameterisationCons::G4VParameterisationCons(), G4VParameterisationPara::G4VParameterisationPara(), G4VParameterisationPolycone::G4VParameterisationPolycone(), G4VParameterisationPolyhedra::G4VParameterisationPolyhedra(), G4VParameterisationTrd::G4VParameterisationTrd(), G4VParameterisationTubs::G4VParameterisationTubs(), G4Navigator::GetGlobalExitNormal(), G4BooleanSolid::GetListOfPrimitives(), G4ITNavigator1::GetLocalExitNormal(), G4ITNavigator2::GetLocalExitNormal(), G4Navigator::GetLocalExitNormal(), GetPointOnSurface(), G4tgbGeometryDumper::GetSolidParams(), G4NavigationLogger::PostComputeStepLog(), G4NavigationLogger::PreComputeStepLog(), G4NavigationLogger::PrintDaughterLog(), G4NavigationLogger::ReportOutsideMother(), G4ASCIITreeSceneHandler::RequestPrimitives(), G4VoxelSafety::SafetyForVoxelHeader(), G4BooleanSolid::SetCubVolEpsilon(), G4BooleanSolid::SetCubVolStatistics(), G4BooleanSolid::StackPolyhedron(), G4CSGSolid::StreamInfo(), G4GeomTestVolume::TestOverlapInTree(), and G4PhysicalVolumeModel::VisitGeometryAndGetVisReps().
|
virtual |
Provides extent (bounding box) as possible hint to the graphics view.
Reimplemented in G4Box, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4Orb, G4Sphere, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Definition at line 708 of file G4VSolid.cc.
Referenced by G4tgbVolume::BuildSolidForDivision(), G4PhysicalVolumeModel::CreateCurrentAttValues(), and G4VisCommandsTouchable::SetNewValue().
|
inline |
Getter/setter for the shape's name.
Referenced by G4GMocrenFileSceneHandler::AddPrimitive(), G4GDMLWriteSolids::AddSolid(), G4GMocrenFileSceneHandler::AddSolid(), G4GMocrenFileSceneHandler::AddSolid(), G4VtkSceneHandler::AddSolid(), G4NavigationLogger::AlongComputeStepLog(), G4GDMLWriteSolids::BooleanWrite(), G4Box::BoundingLimits(), G4Cons::BoundingLimits(), G4CutTubs::BoundingLimits(), G4DisplacedSolid::BoundingLimits(), G4EllipticalCone::BoundingLimits(), G4ExtrudedSolid::BoundingLimits(), G4GenericPolycone::BoundingLimits(), G4Hype::BoundingLimits(), G4IntersectionSolid::BoundingLimits(), G4Orb::BoundingLimits(), G4Para::BoundingLimits(), G4Paraboloid::BoundingLimits(), G4Polycone::BoundingLimits(), G4Polyhedra::BoundingLimits(), G4ReflectedSolid::BoundingLimits(), G4ScaledSolid::BoundingLimits(), G4Sphere::BoundingLimits(), G4SubtractionSolid::BoundingLimits(), G4TessellatedSolid::BoundingLimits(), G4Torus::BoundingLimits(), G4Trap::BoundingLimits(), G4Trd::BoundingLimits(), G4Tubs::BoundingLimits(), G4TwistedTubs::BoundingLimits(), G4UnionSolid::BoundingLimits(), G4GDMLWriteSolids::BoxWrite(), G4ExtrudedSolid::CalculateExtent(), G4GenericPolycone::CalculateExtent(), G4Polycone::CalculateExtent(), G4Polyhedra::CalculateExtent(), G4NavigationLogger::CheckDaughterEntryPoint(), G4VoxelNavigation::ComputeSafety(), G4VoxelSafety::ComputeSafety(), G4NavigationLogger::ComputeSafetyLog(), G4ParameterisedNavigation::ComputeStep(), G4ReplicaNavigation::ComputeStep(), G4GDMLWriteSolids::ConeWrite(), G4PhysicalVolumeModel::CreateCurrentAttValues(), G4ReflectedSolid::CreatePolyhedron(), G4GDMLWriteSolids::CutTubeWrite(), G4SolidStore::DeRegister(), G4Paraboloid::DistanceToIn(), G4TessellatedSolid::DistanceToIn(), G4Box::DistanceToOut(), G4Ellipsoid::DistanceToOut(), G4EllipticalCone::DistanceToOut(), G4EllipticalTube::DistanceToOut(), G4EllipticalTube::DistanceToOut(), G4Orb::DistanceToOut(), G4Para::DistanceToOut(), G4TessellatedSolid::DistanceToOut(), G4Trap::DistanceToOut(), G4Trd::DistanceToOut(), G4tgbGeometryDumper::DumpMultiUnionVolume(), G4tgbGeometryDumper::DumpScaledVolume(), G4tgbGeometryDumper::DumpSolid(), G4GDMLWriteSolids::ElconeWrite(), G4GDMLWriteSolids::EllipsoidWrite(), G4GDMLWriteSolids::EltubeWrite(), G4Box::G4Box(), G4Cons::G4Cons(), G4CutTubs::G4CutTubs(), G4EllipticalCone::G4EllipticalCone(), G4Hype::G4Hype(), G4Para::G4Para(), G4Paraboloid::G4Paraboloid(), G4Polycone::G4Polycone(), G4Polyhedra::G4Polyhedra(), G4Polyhedra::G4Polyhedra(), G4Sphere::G4Sphere(), G4Tet::G4Tet(), G4Trap::G4Trap(), G4Tubs::G4Tubs(), G4VTwistedFaceted::G4VTwistedFaceted(), G4GDMLWriteSolids::GenericPolyconeWrite(), G4GDMLWriteSolids::GenTrapWrite(), G4Navigator::GetGlobalExitNormal(), G4ITNavigator1::GetLocalExitNormal(), G4ITNavigator2::GetLocalExitNormal(), G4Navigator::GetLocalExitNormal(), G4BooleanSolid::GetPointOnSurface(), G4GDMLWriteSolids::HypeWrite(), G4ITNavigator1::LocateGlobalPointAndSetup(), G4ITNavigator2::LocateGlobalPointAndSetup(), G4Navigator::LocateGlobalPointAndSetup(), G4Trap::MakePlanes(), G4GDMLWriteSolids::MultiUnionWrite(), G4GDMLWriteSolids::OrbWrite(), G4GDMLWriteSolids::ParaboloidWrite(), G4GDMLWriteParamvol::ParametersWrite(), G4GDMLWriteSolids::ParaWrite(), G4GDMLWriteSolids::PolyconeWrite(), G4GDMLWriteSolids::PolyhedraWrite(), G4NavigationLogger::PostComputeStepLog(), G4NavigationLogger::PreComputeStepLog(), G4NavigationLogger::PrintDaughterLog(), G4PseudoScene::ProcessVolume(), G4SolidStore::Register(), G4tgbVolumeMgr::RegisterMe(), G4NavigationLogger::ReportOutsideMother(), G4ASCIITreeSceneHandler::RequestPrimitives(), G4VSceneHandler::RequestPrimitives(), G4GenericPolycone::Reset(), G4Polyhedra::Reset(), G4VoxelSafety::SafetyForVoxelNode(), G4GDMLWriteSolids::ScaledWrite(), G4Torus::SetAllParameters(), G4Tet::SetBoundingLimits(), G4TessellatedSolid::SetSolidClosed(), G4Tet::SetVertices(), G4Box::SetXHalfLength(), G4Box::SetYHalfLength(), G4Box::SetZHalfLength(), G4GDMLWriteSolids::SphereWrite(), G4BooleanSolid::StackPolyhedron(), G4BooleanSolid::StreamInfo(), G4Box::StreamInfo(), G4Cons::StreamInfo(), G4CSGSolid::StreamInfo(), G4CutTubs::StreamInfo(), G4DisplacedSolid::StreamInfo(), G4Ellipsoid::StreamInfo(), G4EllipticalCone::StreamInfo(), G4EllipticalTube::StreamInfo(), G4ExtrudedSolid::StreamInfo(), G4GenericPolycone::StreamInfo(), G4GenericTrap::StreamInfo(), G4Hype::StreamInfo(), G4MultiUnion::StreamInfo(), G4Orb::StreamInfo(), G4Para::StreamInfo(), G4Paraboloid::StreamInfo(), G4Polycone::StreamInfo(), G4Polyhedra::StreamInfo(), G4ReflectedSolid::StreamInfo(), G4ScaledSolid::StreamInfo(), G4Sphere::StreamInfo(), G4TessellatedSolid::StreamInfo(), G4Tet::StreamInfo(), G4Torus::StreamInfo(), G4Trap::StreamInfo(), G4Trd::StreamInfo(), G4Tubs::StreamInfo(), G4TwistedBox::StreamInfo(), G4TwistedTrap::StreamInfo(), G4TwistedTrd::StreamInfo(), G4TwistedTubs::StreamInfo(), G4VCSGfaceted::StreamInfo(), G4VTwistedFaceted::StreamInfo(), G4GDMLRead::StripNames(), SubstractSolids(), G4Box::SurfaceNormal(), G4Ellipsoid::SurfaceNormal(), G4EllipticalCone::SurfaceNormal(), G4EllipticalTube::SurfaceNormal(), G4ExtrudedSolid::SurfaceNormal(), G4Para::SurfaceNormal(), G4Tet::SurfaceNormal(), G4Trap::SurfaceNormal(), G4Trd::SurfaceNormal(), G4UnionSolid::SurfaceNormal(), G4GDMLWriteSolids::TessellatedWrite(), G4GDMLWriteSolids::TetWrite(), G4GDMLWriteSolids::TorusWrite(), G4GDMLWriteSolids::TrapWrite(), G4GDMLWriteStructure::TraverseVolumeTree(), G4GDMLWriteSolids::TrdWrite(), G4GDMLWriteSolids::TubeWrite(), G4GDMLWriteSolids::TwistedboxWrite(), G4GDMLWriteSolids::TwistedtrapWrite(), G4GDMLWriteSolids::TwistedtrdWrite(), G4GDMLWriteSolids::TwistedtubsWrite(), G4PhysicalVolumeModel::VisitGeometryAndGetVisReps(), and G4GDMLWriteSolids::XtruWrite().
|
virtual |
Returns the number of constituents used for construction of the solid. For non-Boolean solids the return value is one.
Reimplemented in G4BooleanSolid, G4DisplacedSolid, G4MultiUnion, G4ReflectedSolid, and G4ScaledSolid.
Definition at line 167 of file G4VSolid.cc.
Referenced by G4MultiUnion::GetNumOfConstituents().
|
virtual |
Returns a random point located on the surface of the solid. Points returned are not necessarily uniformly distributed.
Reimplemented in G4BooleanSolid, G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericPolycone, G4GenericTrap, G4Hype, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, and G4VTwistedFaceted.
Definition at line 151 of file G4VSolid.cc.
Referenced by G4PVParameterised::CheckOverlaps(), G4PVPlacement::CheckOverlaps(), G4LogicalVolumeModel::DescribeYourselfTo(), G4MultiUnion::GetPointOnSurface(), and G4VSceneHandler::RequestPrimitives().
|
virtual |
Smart access function - creates on request and stores for future access. A null pointer means "not available".
Reimplemented in G4BooleanSolid, G4CSGSolid, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4MultiUnion, G4Paraboloid, G4ReflectedSolid, G4ScaledSolid, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Definition at line 731 of file G4VSolid.cc.
Referenced by G4ASCIITreeSceneHandler::RequestPrimitives(), G4VSceneHandler::RequestPrimitives(), G4VisCommandsTouchable::SetNewValue(), G4BooleanSolid::StackPolyhedron(), and G4VSceneHandler::StandardSpecialMeshRendering().
|
virtual |
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 in G4BooleanSolid, G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericPolycone, G4GenericTrap, G4Hype, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedBox, G4TwistedTrd, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Definition at line 275 of file G4VSolid.cc.
Referenced by G4AdjointCrossSurfChecker::AddanExtSurfaceOfAvolume(), G4ScaledSolid::GetSurfaceArea(), and G4PSVolumeFlux::ProcessHits().
|
inline |
Returns the cached geometrical tolerance.
Referenced by G4NavigationLogger::CheckDaughterEntryPoint(), G4ParameterisedNavigation::ComputeStep(), G4NavigationLogger::PreComputeStepLog(), G4NavigationLogger::ReportOutsideMother(), and G4NavigationLogger::ReportVolumeAndIntersection().
|
pure virtual |
Returns the characterisation of a point at offset 'p' respect to the shape.
| [in] | p | The point at offset p. |
Implemented in G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericPolycone, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, G4UnionSolid, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4NavigationLogger::AlongComputeStepLog(), G4ReplicaNavigation::BackLocate(), G4NavigationLogger::CheckDaughterEntryPoint(), G4PVParameterised::CheckOverlaps(), G4PVPlacement::CheckOverlaps(), G4VoxelNavigation::ComputeSafety(), G4VoxelSafety::ComputeSafety(), G4ParameterisedNavigation::ComputeStep(), G4ReplicaNavigation::ComputeStep(), G4RegularNavigation::ComputeStepSkippingEqualMaterials(), G4TheRayTracer::CreateBitMap(), G4DNAMolecularDissociation::DecayIt(), G4LogicalVolumeModel::DescribeYourselfTo(), G4VFieldModel::DescribeYourselfTo(), G4PolyPhiFace::Diagnose(), G4MultiUnion::DistanceToOut(), G4MultiUnion::DistanceToOutNoVoxels(), G4MultiUnion::DistanceToOutVoxels(), EstimateCubicVolume(), EstimateSurfaceArea(), G4ITNavigator1::GetLocalExitNormal(), G4ITNavigator2::GetLocalExitNormal(), G4Navigator::GetLocalExitNormal(), G4XrayReflection::GetMeanFreePath(), G4BooleanSolid::GetPointOnSurface(), G4ITNavigator2::GetRandomInCurrentVolume(), G4VExternalNavigation::Inside(), G4ITNavigator2::InsideCurrentVolume(), G4ITNavigator1::LocateGlobalPointAndSetup(), G4ITNavigator2::LocateGlobalPointAndSetup(), G4Navigator::LocateGlobalPointAndSetup(), G4VIntersectionLocator::LocateGlobalPointWithinVolumeAndCheck(), G4NavigationLogger::PreComputeStepLog(), G4ITNavigator2::RecheckDistanceToCurrentBoundary(), G4NavigationLogger::ReportOutsideMother(), G4NavigationLogger::ReportVolumeAndIntersection(), and G4MultiUnion::SurfaceNormal().
|
virtual |
Returns true if the solid has only planar faces, false otherwise.
Reimplemented in G4BooleanSolid, G4Box, G4DisplacedSolid, G4ExtrudedSolid, G4GenericTrap, G4MultiUnion, G4Para, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4TessellatedSolid, G4Tet, G4Trap, and G4Trd.
Definition at line 176 of file G4VSolid.cc.
Referenced by G4MultiUnion::IsFaceted().
Definition at line 108 of file G4VSolid.cc.
Referenced by G4BooleanSolid::operator=(), G4CSGSolid::operator=(), G4DisplacedSolid::operator=(), G4Ellipsoid::operator=(), G4EllipticalCone::operator=(), G4EllipticalTube::operator=(), G4GenericTrap::operator=(), G4Hype::operator=(), G4MultiUnion::operator=(), G4Paraboloid::operator=(), G4ReflectedSolid::operator=(), G4ScaledSolid::operator=(), G4TessellatedSolid::operator=(), G4Tet::operator=(), G4TwistedTubs::operator=(), G4VCSGfaceted::operator=(), and G4VTwistedFaceted::operator=().
Equality operator. Returns true only if addresses are the same.
| void G4VSolid::SetName | ( | const G4String & | name | ) |
Definition at line 126 of file G4VSolid.cc.
Referenced by G4MultiUnion::G4MultiUnion(), and G4GDMLRead::StripNames().
|
pure virtual |
Dumps contents of the solid to a stream.
Implemented in G4BooleanSolid, G4Box, G4Cons, G4CSGSolid, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericPolycone, G4GenericTrap, G4Hype, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4Polycone, G4Polyhedra, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedBox, G4TwistedTrap, G4TwistedTrd, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by operator<<(), and G4MultiUnion::StreamInfo().
|
pure virtual |
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. |
Implemented in G4Box, G4Cons, G4CutTubs, G4DisplacedSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericTrap, G4Hype, G4IntersectionSolid, G4MultiUnion, G4Orb, G4Para, G4Paraboloid, G4ReflectedSolid, G4ScaledSolid, G4Sphere, G4SubtractionSolid, G4TessellatedSolid, G4Tet, G4Torus, G4Trap, G4Trd, G4Tubs, G4TwistedTubs, G4UnionSolid, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4PVPlacement::CheckOverlaps(), G4ITNavigator1::ComputeStep(), G4ITNavigator2::ComputeStep(), G4Navigator::ComputeStep(), G4ReplicaNavigation::ComputeStep(), EstimateSurfaceArea(), G4ITNavigator1::GetLocalExitNormal(), G4ITNavigator2::GetLocalExitNormal(), G4Navigator::GetLocalExitNormal(), G4ITNavigator1::LocateGlobalPointAndSetup(), G4ITNavigator2::LocateGlobalPointAndSetup(), G4Navigator::LocateGlobalPointAndSetup(), G4PSVolumeFlux::ProcessHits(), G4NavigationLogger::ReportVolumeAndIntersection(), and G4MultiUnion::SurfaceNormal().
|
protected |
Cached geometrical tolerance.
Definition at line 418 of file G4VSolid.hh.
Referenced by G4TessellatedSolid::AddFacet(), G4Polycone::CalculateExtent(), G4Polyhedra::CalculateExtent(), G4Tet::CheckDegeneracy(), G4CutTubs::CreatePolyhedron(), G4VCSGfaceted::DistanceTo(), G4Ellipsoid::DistanceToIn(), G4Hype::DistanceToIn(), G4Hype::DistanceToIn(), G4Paraboloid::DistanceToIn(), G4Sphere::DistanceToIn(), G4VCSGfaceted::DistanceToIn(), G4Cons::DistanceToOut(), G4CutTubs::DistanceToOut(), G4Hype::DistanceToOut(), G4Hype::DistanceToOut(), G4Paraboloid::DistanceToOut(), G4Paraboloid::DistanceToOut(), G4Sphere::DistanceToOut(), G4Torus::DistanceToOut(), G4Tubs::DistanceToOut(), G4VCSGfaceted::DistanceToOut(), G4Box::G4Box(), G4Cons::G4Cons(), G4CutTubs::G4CutTubs(), G4EllipticalCone::G4EllipticalCone(), G4ExtrudedSolid::G4ExtrudedSolid(), G4ExtrudedSolid::G4ExtrudedSolid(), G4GenericTrap::G4GenericTrap(), G4Hype::G4Hype(), G4Para::G4Para(), G4Para::G4Para(), G4Para::G4Para(), G4Sphere::G4Sphere(), G4Tet::G4Tet(), G4Trap::G4Trap(), G4Trap::G4Trap(), G4Trap::G4Trap(), G4Trap::G4Trap(), G4Trap::G4Trap(), G4Trap::G4Trap(), G4Trap::G4Trap(), G4Trd::G4Trd(), G4Trd::G4Trd(), G4Tubs::G4Tubs(), G4UnionSolid::G4UnionSolid(), G4VSolid(), G4VSolid(), G4VTwistedFaceted::G4VTwistedFaceted(), G4GenericPolycone::GetPointOnSurface(), G4Polycone::GetPointOnSurface(), G4TwistedTrd::GetSurfaceArea(), G4Orb::Initialize(), G4Hype::Inside(), G4Paraboloid::Inside(), G4SubtractionSolid::Inside(), G4VCSGfaceted::Inside(), G4VTwistedFaceted::Inside(), G4CutTubs::IsCrossingCutPlanes(), G4Trap::MakePlane(), operator=(), G4TessellatedSolid::SafetyFromInside(), G4TessellatedSolid::SafetyFromOutside(), G4Torus::SetAllParameters(), G4Box::SetXHalfLength(), G4Box::SetYHalfLength(), G4Box::SetZHalfLength(), G4Paraboloid::SurfaceNormal(), and G4Torus::SurfaceNormal().