#include <G4VSolid.hh>
Inheritance diagram for G4VSolid:
Public Member Functions | |
G4VSolid (const G4String &name) | |
virtual | ~G4VSolid () |
G4bool | operator== (const G4VSolid &s) const |
G4String | GetName () const |
void | SetName (const G4String &name) |
G4double | GetTolerance () 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=0, G4ThreeVector *n=0) 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 G4VSolid * | Clone () 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 G4Polyhedron * | CreatePolyhedron () const |
virtual G4NURBS * | CreateNURBS () const |
virtual G4Polyhedron * | GetPolyhedron () const |
virtual const G4VSolid * | GetConstituentSolid (G4int no) const |
virtual G4VSolid * | GetConstituentSolid (G4int no) |
virtual const G4DisplacedSolid * | GetDisplacedSolidPtr () const |
virtual G4DisplacedSolid * | GetDisplacedSolidPtr () |
G4VSolid (__void__ &) | |
G4VSolid (const G4VSolid &rhs) | |
G4VSolid & | operator= (const G4VSolid &rhs) |
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 |
G4double | EstimateCubicVolume (G4int nStat, G4double epsilon) const |
G4double | EstimateSurfaceArea (G4int nStat, G4double ell) const |
Protected Attributes | |
G4double | kCarTolerance |
Friends | |
std::ostream & | operator<< (std::ostream &os, const G4VSolid &e) |
Definition at line 88 of file G4VSolid.hh.
G4VSolid::G4VSolid | ( | const G4String & | name | ) |
Definition at line 60 of file G4VSolid.cc.
References G4SolidStore::GetInstance(), G4GeometryTolerance::GetInstance(), G4GeometryTolerance::GetSurfaceTolerance(), kCarTolerance, and G4SolidStore::Register().
00061 : fshapeName(name) 00062 { 00063 kCarTolerance = G4GeometryTolerance::GetInstance()->GetSurfaceTolerance(); 00064 00065 // Register to store 00066 // 00067 G4SolidStore::GetInstance()->Register(this); 00068 }
G4VSolid::~G4VSolid | ( | ) | [virtual] |
Definition at line 101 of file G4VSolid.cc.
References G4SolidStore::DeRegister(), and G4SolidStore::GetInstance().
00102 { 00103 G4SolidStore::GetInstance()->DeRegister(this); 00104 }
G4VSolid::G4VSolid | ( | __void__ & | ) |
Definition at line 88 of file G4VSolid.cc.
References G4SolidStore::GetInstance(), and G4SolidStore::Register().
00089 : fshapeName("") 00090 { 00091 // Register to store 00092 // 00093 G4SolidStore::GetInstance()->Register(this); 00094 }
G4VSolid::G4VSolid | ( | const G4VSolid & | rhs | ) |
Definition at line 75 of file G4VSolid.cc.
References G4SolidStore::GetInstance(), and G4SolidStore::Register().
00076 : kCarTolerance(rhs.kCarTolerance), fshapeName(rhs.fshapeName) 00077 { 00078 // Register to store 00079 // 00080 G4SolidStore::GetInstance()->Register(this); 00081 }
void G4VSolid::CalculateClippedPolygonExtent | ( | G4ThreeVectorList & | pPolygon, | |
const G4VoxelLimits & | pVoxelLimit, | |||
const EAxis | pAxis, | |||
G4double & | pMin, | |||
G4double & | pMax | |||
) | const [protected] |
Definition at line 425 of file G4VSolid.cc.
References ClipPolygon().
Referenced by G4Sphere::CalculateExtent(), G4Ellipsoid::CalculateExtent(), ClipBetweenSections(), and ClipCrossSection().
00430 { 00431 G4int noLeft,i; 00432 G4double component; 00433 /* 00434 G4cout<<G4endl; 00435 for(i = 0 ; i < pPolygon.size() ; i++ ) 00436 { 00437 G4cout << i << "\t" 00438 << "p.x = " << pPolygon[i].operator()(pAxis) << "\t" 00439 // << "p.y = " << pPolygon[i].y() << "\t" 00440 // << "p.z = " << pPolygon[i].z() << "\t" 00441 << G4endl; 00442 } 00443 G4cout<<G4endl; 00444 */ 00445 ClipPolygon(pPolygon,pVoxelLimit,pAxis); 00446 noLeft = pPolygon.size(); 00447 00448 if ( noLeft ) 00449 { 00450 // G4cout<<G4endl; 00451 for (i=0;i<noLeft;i++) 00452 { 00453 component = pPolygon[i].operator()(pAxis); 00454 // G4cout <<i<<"\t"<<component<<G4endl; 00455 00456 if (component < pMin) 00457 { 00458 // G4cout <<i<<"\t"<<"Pmin = "<<component<<G4endl; 00459 pMin = component; 00460 } 00461 if (component > pMax) 00462 { 00463 // G4cout <<i<<"\t"<<"PMax = "<<component<<G4endl; 00464 pMax = component; 00465 } 00466 } 00467 // G4cout<<G4endl; 00468 } 00469 // G4cout<<"pMin = "<<pMin<<"\t"<<"pMax = "<<pMax<<G4endl; 00470 }
virtual G4bool G4VSolid::CalculateExtent | ( | const EAxis | pAxis, | |
const G4VoxelLimits & | pVoxelLimit, | |||
const G4AffineTransform & | pTransform, | |||
G4double & | pMin, | |||
G4double & | pMax | |||
) | const [pure virtual] |
Implemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4BREPSolid, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4Paraboloid, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4SmartVoxelHeader::BuildNodes(), G4SmartVoxelHeader::BuildReplicaVoxels(), G4SmartVoxelHeader::BuildVoxelsWithinLimits(), G4UnionSolid::CalculateExtent(), G4SubtractionSolid::CalculateExtent(), G4ReflectedSolid::CalculateExtent(), G4IntersectionSolid::CalculateExtent(), G4DisplacedSolid::CalculateExtent(), EstimateCubicVolume(), EstimateSurfaceArea(), and GetExtent().
void G4VSolid::ClipBetweenSections | ( | G4ThreeVectorList * | pVertices, | |
const G4int | pSectionIndex, | |||
const G4VoxelLimits & | pVoxelLimit, | |||
const EAxis | pAxis, | |||
G4double & | pMin, | |||
G4double & | pMax | |||
) | const [protected] |
Definition at line 376 of file G4VSolid.cc.
References CalculateClippedPolygonExtent().
Referenced by G4VTwistedFaceted::CalculateExtent(), G4Tubs::CalculateExtent(), G4Trd::CalculateExtent(), G4Torus::CalculateExtent(), G4ReflectedSolid::CalculateExtent(), G4Para::CalculateExtent(), G4GenericTrap::CalculateExtent(), G4CutTubs::CalculateExtent(), G4Cons::CalculateExtent(), G4BREPSolid::CalculateExtent(), and G4Box::CalculateExtent().
00381 { 00382 G4ThreeVectorList polygon; 00383 polygon.reserve(4); 00384 polygon.push_back((*pVertices)[pSectionIndex]); 00385 polygon.push_back((*pVertices)[pSectionIndex+4]); 00386 polygon.push_back((*pVertices)[pSectionIndex+5]); 00387 polygon.push_back((*pVertices)[pSectionIndex+1]); 00388 // G4cout<<"ClipBetweenSections: 0-4-5-1"<<G4endl; 00389 CalculateClippedPolygonExtent(polygon,pVoxelLimit,pAxis,pMin,pMax); 00390 polygon.clear(); 00391 00392 polygon.push_back((*pVertices)[pSectionIndex+1]); 00393 polygon.push_back((*pVertices)[pSectionIndex+5]); 00394 polygon.push_back((*pVertices)[pSectionIndex+6]); 00395 polygon.push_back((*pVertices)[pSectionIndex+2]); 00396 // G4cout<<"ClipBetweenSections: 1-5-6-2"<<G4endl; 00397 CalculateClippedPolygonExtent(polygon,pVoxelLimit,pAxis,pMin,pMax); 00398 polygon.clear(); 00399 00400 polygon.push_back((*pVertices)[pSectionIndex+2]); 00401 polygon.push_back((*pVertices)[pSectionIndex+6]); 00402 polygon.push_back((*pVertices)[pSectionIndex+7]); 00403 polygon.push_back((*pVertices)[pSectionIndex+3]); 00404 // G4cout<<"ClipBetweenSections: 2-6-7-3"<<G4endl; 00405 CalculateClippedPolygonExtent(polygon,pVoxelLimit,pAxis,pMin,pMax); 00406 polygon.clear(); 00407 00408 polygon.push_back((*pVertices)[pSectionIndex+3]); 00409 polygon.push_back((*pVertices)[pSectionIndex+7]); 00410 polygon.push_back((*pVertices)[pSectionIndex+4]); 00411 polygon.push_back((*pVertices)[pSectionIndex]); 00412 // G4cout<<"ClipBetweenSections: 3-7-4-0"<<G4endl; 00413 CalculateClippedPolygonExtent(polygon,pVoxelLimit,pAxis,pMin,pMax); 00414 return; 00415 }
void G4VSolid::ClipCrossSection | ( | G4ThreeVectorList * | pVertices, | |
const G4int | pSectionIndex, | |||
const G4VoxelLimits & | pVoxelLimit, | |||
const EAxis | pAxis, | |||
G4double & | pMin, | |||
G4double & | pMax | |||
) | const [protected] |
Definition at line 345 of file G4VSolid.cc.
References CalculateClippedPolygonExtent().
Referenced by G4VTwistedFaceted::CalculateExtent(), G4Tubs::CalculateExtent(), G4Trd::CalculateExtent(), G4Torus::CalculateExtent(), G4ReflectedSolid::CalculateExtent(), G4Para::CalculateExtent(), G4GenericTrap::CalculateExtent(), G4CutTubs::CalculateExtent(), G4Cons::CalculateExtent(), G4BREPSolid::CalculateExtent(), and G4Box::CalculateExtent().
00350 { 00351 00352 G4ThreeVectorList polygon; 00353 polygon.reserve(4); 00354 polygon.push_back((*pVertices)[pSectionIndex]); 00355 polygon.push_back((*pVertices)[pSectionIndex+1]); 00356 polygon.push_back((*pVertices)[pSectionIndex+2]); 00357 polygon.push_back((*pVertices)[pSectionIndex+3]); 00358 // G4cout<<"ClipCrossSection: 0-1-2-3"<<G4endl; 00359 CalculateClippedPolygonExtent(polygon,pVoxelLimit,pAxis,pMin,pMax); 00360 return; 00361 }
void G4VSolid::ClipPolygon | ( | G4ThreeVectorList & | pPolygon, | |
const G4VoxelLimits & | pVoxelLimit, | |||
const EAxis | pAxis | |||
) | const [protected] |
Definition at line 492 of file G4VSolid.cc.
References G4VoxelLimits::AddLimit(), G4VoxelLimits::GetMaxXExtent(), G4VoxelLimits::GetMaxYExtent(), G4VoxelLimits::GetMaxZExtent(), G4VoxelLimits::GetMinXExtent(), G4VoxelLimits::GetMinYExtent(), G4VoxelLimits::GetMinZExtent(), G4VoxelLimits::IsLimited(), G4VoxelLimits::IsXLimited(), G4VoxelLimits::IsYLimited(), G4VoxelLimits::IsZLimited(), kXAxis, kYAxis, and kZAxis.
Referenced by CalculateClippedPolygonExtent().
00495 { 00496 G4ThreeVectorList outputPolygon; 00497 00498 if ( pVoxelLimit.IsLimited() ) 00499 { 00500 if (pVoxelLimit.IsXLimited() ) // && pAxis != kXAxis) 00501 { 00502 G4VoxelLimits simpleLimit1; 00503 simpleLimit1.AddLimit(kXAxis,pVoxelLimit.GetMinXExtent(),kInfinity); 00504 // G4cout<<"MinXExtent()"<<G4endl; 00505 ClipPolygonToSimpleLimits(pPolygon,outputPolygon,simpleLimit1); 00506 00507 pPolygon.clear(); 00508 00509 if ( !outputPolygon.size() ) return; 00510 00511 G4VoxelLimits simpleLimit2; 00512 // G4cout<<"MaxXExtent()"<<G4endl; 00513 simpleLimit2.AddLimit(kXAxis,-kInfinity,pVoxelLimit.GetMaxXExtent()); 00514 ClipPolygonToSimpleLimits(outputPolygon,pPolygon,simpleLimit2); 00515 00516 if ( !pPolygon.size() ) return; 00517 else outputPolygon.clear(); 00518 } 00519 if ( pVoxelLimit.IsYLimited() ) // && pAxis != kYAxis) 00520 { 00521 G4VoxelLimits simpleLimit1; 00522 simpleLimit1.AddLimit(kYAxis,pVoxelLimit.GetMinYExtent(),kInfinity); 00523 ClipPolygonToSimpleLimits(pPolygon,outputPolygon,simpleLimit1); 00524 00525 // Must always clear pPolygon - for clip to simpleLimit2 and in case of 00526 // early exit 00527 00528 pPolygon.clear(); 00529 00530 if ( !outputPolygon.size() ) return; 00531 00532 G4VoxelLimits simpleLimit2; 00533 simpleLimit2.AddLimit(kYAxis,-kInfinity,pVoxelLimit.GetMaxYExtent()); 00534 ClipPolygonToSimpleLimits(outputPolygon,pPolygon,simpleLimit2); 00535 00536 if ( !pPolygon.size() ) return; 00537 else outputPolygon.clear(); 00538 } 00539 if ( pVoxelLimit.IsZLimited() ) // && pAxis != kZAxis) 00540 { 00541 G4VoxelLimits simpleLimit1; 00542 simpleLimit1.AddLimit(kZAxis,pVoxelLimit.GetMinZExtent(),kInfinity); 00543 ClipPolygonToSimpleLimits(pPolygon,outputPolygon,simpleLimit1); 00544 00545 // Must always clear pPolygon - for clip to simpleLimit2 and in case of 00546 // early exit 00547 00548 pPolygon.clear(); 00549 00550 if ( !outputPolygon.size() ) return; 00551 00552 G4VoxelLimits simpleLimit2; 00553 simpleLimit2.AddLimit(kZAxis,-kInfinity,pVoxelLimit.GetMaxZExtent()); 00554 ClipPolygonToSimpleLimits(outputPolygon,pPolygon,simpleLimit2); 00555 00556 // Return after final clip - no cleanup 00557 } 00558 } 00559 }
G4VSolid * G4VSolid::Clone | ( | ) | const [virtual] |
Reimplemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4BREPSolid, G4BREPSolidBox, G4BREPSolidCone, G4BREPSolidCylinder, G4BREPSolidOpenPCone, G4BREPSolidPCone, G4BREPSolidPolyhedra, G4BREPSolidSphere, G4BREPSolidTorus, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericTrap, G4Hype, G4Paraboloid, G4Polycone, G4Polyhedra, G4TessellatedSolid, G4Tet, G4TwistedBox, G4TwistedTrap, G4TwistedTrd, and G4TwistedTubs.
Definition at line 322 of file G4VSolid.cc.
References G4endl, G4Exception(), GetEntityType(), and JustWarning.
00323 { 00324 std::ostringstream message; 00325 message << "Clone() method not implemented for type: " 00326 << GetEntityType() << "!" << G4endl 00327 << "Returning NULL pointer!"; 00328 G4Exception("G4VSolid::Clone()", "GeomMgt1001", JustWarning, message); 00329 return 0; 00330 }
void G4VSolid::ComputeDimensions | ( | G4VPVParameterisation * | p, | |
const G4int | n, | |||
const G4VPhysicalVolume * | pRep | |||
) | [virtual] |
Reimplemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4Box, G4Cons, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Hype, G4Polycone, G4Polyhedra, G4Tet, G4TwistedTubs, and G4VTwistedFaceted.
Definition at line 137 of file G4VSolid.cc.
References FatalException, G4endl, and G4Exception().
Referenced by G4SmartVoxelHeader::BuildNodes(), G4PVParameterised::CheckOverlaps(), G4PSPassageCellFlux::ComputeVolume(), G4PSDoseDeposit::ComputeVolume(), G4PSCellFlux::ComputeVolume(), G4LogicalVolume::GetMass(), G4Navigator::GetMotherToDaughterTransform(), G4ITNavigator::GetMotherToDaughterTransform(), G4Navigator::LocateGlobalPointAndSetup(), G4ITNavigator::LocateGlobalPointAndSetup(), G4PSSphereSurfaceFlux::ProcessHits(), G4PSSphereSurfaceCurrent::ProcessHits(), G4PSFlatSurfaceFlux::ProcessHits(), G4PSFlatSurfaceCurrent::ProcessHits(), G4PSCylinderSurfaceFlux::ProcessHits(), G4PSCylinderSurfaceCurrent::ProcessHits(), G4Navigator::SetupHierarchy(), and G4ITNavigator::SetupHierarchy().
00140 { 00141 std::ostringstream message; 00142 message << "Illegal call to G4VSolid::ComputeDimensions()" << G4endl 00143 << "Method not overloaded by derived class !"; 00144 G4Exception("G4VSolid::ComputeDimensions()", "GeomMgt0003", 00145 FatalException, message); 00146 }
G4NURBS * G4VSolid::CreateNURBS | ( | ) | const [virtual] |
Reimplemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4BREPSolid, G4Box, G4Cons, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4GenericTrap, G4Hype, G4Paraboloid, G4Polycone, G4Polyhedra, G4TessellatedSolid, G4Tet, G4TwistedTubs, and G4VTwistedFaceted.
Definition at line 642 of file G4VSolid.cc.
Referenced by G4VSceneHandler::RequestPrimitives().
G4Polyhedron * G4VSolid::CreatePolyhedron | ( | ) | const [virtual] |
Reimplemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4BREPSolid, G4BREPSolidPCone, G4BREPSolidPolyhedra, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4Paraboloid, G4Polycone, G4Polyhedra, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Definition at line 637 of file G4VSolid.cc.
Referenced by G4ReflectedSolid::CreatePolyhedron(), G4DisplacedSolid::CreatePolyhedron(), G4CSGSolid::GetPolyhedron(), and G4BooleanSolid::GetPolyhedron().
virtual void G4VSolid::DescribeYourselfTo | ( | G4VGraphicsScene & | scene | ) | const [pure virtual] |
Implemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4BREPSolid, G4BREPSolidOpenPCone, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4Paraboloid, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4VisManager::Draw().
virtual G4double G4VSolid::DistanceToIn | ( | const G4ThreeVector & | p | ) | const [pure virtual] |
Implemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4BREPSolid, G4BREPSolidCone, G4BREPSolidPCone, G4BREPSolidPolyhedra, G4BREPSolidSphere, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4Paraboloid, G4Polycone, G4Polyhedra, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
virtual G4double G4VSolid::DistanceToIn | ( | const G4ThreeVector & | p, | |
const G4ThreeVector & | v | |||
) | const [pure virtual] |
Implemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4Paraboloid, G4Polycone, G4Polyhedra, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4NavigationLogger::AlongComputeStepLog(), G4PVPlacement::CheckOverlaps(), G4PVParameterised::CheckOverlaps(), G4AuxiliaryNavServices::CheckPointExiting(), G4AuxiliaryNavServices::CheckPointOnSurface(), G4VoxelSafety::ComputeSafety(), G4VoxelNavigation::ComputeSafety(), G4ReplicaNavigation::ComputeSafety(), G4ParameterisedNavigation::ComputeSafety(), G4NormalNavigation::ComputeSafety(), G4VoxelNavigation::ComputeStep(), G4ReplicaNavigation::ComputeStep(), G4ParameterisedNavigation::ComputeStep(), G4NormalNavigation::ComputeStep(), G4UnionSolid::DistanceToIn(), G4SubtractionSolid::DistanceToIn(), G4ReflectedSolid::DistanceToIn(), G4IntersectionSolid::DistanceToIn(), G4DisplacedSolid::DistanceToIn(), G4SubtractionSolid::DistanceToOut(), EstimateSurfaceArea(), G4Navigator::GetLocalExitNormal(), G4ITNavigator::GetLocalExitNormal(), G4NavigationLogger::PreComputeStepLog(), G4VoxelSafety::SafetyForVoxelNode(), and G4SubtractionSolid::SurfaceNormal().
virtual G4double G4VSolid::DistanceToOut | ( | const G4ThreeVector & | p | ) | const [pure virtual] |
Implemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4BREPSolid, G4BREPSolidCone, G4BREPSolidPCone, G4BREPSolidPolyhedra, G4BREPSolidSphere, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericTrap, G4Hype, G4Paraboloid, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
virtual G4double G4VSolid::DistanceToOut | ( | const G4ThreeVector & | p, | |
const G4ThreeVector & | v, | |||
const G4bool | calcNorm = false , |
|||
G4bool * | validNorm = 0 , |
|||
G4ThreeVector * | n = 0 | |||
) | const [pure virtual] |
Implemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericTrap, G4Hype, G4Paraboloid, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4NavigationLogger::AlongComputeStepLog(), G4PVPlacement::CheckOverlaps(), G4VoxelSafety::ComputeSafety(), G4VoxelNavigation::ComputeSafety(), G4ReplicaNavigation::ComputeSafety(), G4ParameterisedNavigation::ComputeSafety(), G4NormalNavigation::ComputeSafety(), G4VoxelNavigation::ComputeStep(), G4ReplicaNavigation::ComputeStep(), G4ParameterisedNavigation::ComputeStep(), G4NormalNavigation::ComputeStep(), G4RegularNavigation::ComputeStepSkippingEqualMaterials(), G4SubtractionSolid::DistanceToIn(), G4IntersectionSolid::DistanceToIn(), G4UnionSolid::DistanceToOut(), G4SubtractionSolid::DistanceToOut(), G4ReflectedSolid::DistanceToOut(), G4IntersectionSolid::DistanceToOut(), G4DisplacedSolid::DistanceToOut(), EstimateSurfaceArea(), G4Navigator::GetLocalExitNormal(), G4ITNavigator::GetLocalExitNormal(), G4VXTRenergyLoss::PostStepDoIt(), G4SubtractionSolid::SurfaceNormal(), and G4IntersectionSolid::SurfaceNormal().
void G4VSolid::DumpInfo | ( | ) | const [inline] |
Definition at line 41 of file G4VSolid.icc.
References G4cout, and StreamInfo().
Referenced by G4Tubs::ApproxSurfaceNormal(), G4CutTubs::ApproxSurfaceNormal(), G4ReflectedSolid::CalculateExtent(), G4ReflectedSolid::ComputeDimensions(), G4ParameterisationTubsZ::ComputeDimensions(), G4ParameterisationTubsPhi::ComputeDimensions(), G4ParameterisationTubsRho::ComputeDimensions(), G4ParameterisationTrdZ::ComputeDimensions(), G4ParameterisationTrdY::ComputeDimensions(), G4ParameterisationTrdX::ComputeDimensions(), G4ParameterisationPolyhedraZ::ComputeDimensions(), G4ParameterisationPolyhedraPhi::ComputeDimensions(), G4ParameterisationPolyhedraRho::ComputeDimensions(), G4ParameterisationPolyconeZ::ComputeDimensions(), G4ParameterisationPolyconePhi::ComputeDimensions(), G4ParameterisationPolyconeRho::ComputeDimensions(), G4ParameterisationParaZ::ComputeDimensions(), G4ParameterisationParaY::ComputeDimensions(), G4ParameterisationParaX::ComputeDimensions(), G4ParameterisationConsZ::ComputeDimensions(), G4ParameterisationConsPhi::ComputeDimensions(), G4ParameterisationConsRho::ComputeDimensions(), G4ParameterisationBoxZ::ComputeDimensions(), G4ParameterisationBoxY::ComputeDimensions(), G4ParameterisationBoxX::ComputeDimensions(), G4DisplacedSolid::ComputeDimensions(), G4ReplicaNavigation::ComputeStep(), G4ParameterisedNavigation::ComputeStep(), G4VTwistedFaceted::CreateRotatedVertices(), G4Tubs::CreateRotatedVertices(), G4Trd::CreateRotatedVertices(), G4Trap::CreateRotatedVertices(), G4Tet::CreateRotatedVertices(), G4Para::CreateRotatedVertices(), G4Ellipsoid::CreateRotatedVertices(), G4CutTubs::CreateRotatedVertices(), G4Box::CreateRotatedVertices(), G4SubtractionSolid::DistanceToIn(), G4VTwistedFaceted::DistanceToOut(), G4Tubs::DistanceToOut(), G4Trd::DistanceToOut(), G4Trap::DistanceToOut(), G4Torus::DistanceToOut(), G4Tet::DistanceToOut(), G4Sphere::DistanceToOut(), G4Paraboloid::DistanceToOut(), G4Para::DistanceToOut(), G4Orb::DistanceToOut(), G4GenericTrap::DistanceToOut(), G4EllipticalTube::DistanceToOut(), G4EllipticalCone::DistanceToOut(), G4Ellipsoid::DistanceToOut(), G4CutTubs::DistanceToOut(), G4Cons::DistanceToOut(), G4Box::DistanceToOut(), G4Polycone::G4Polycone(), G4Polyhedra::G4Polyhedra(), G4Trap::G4Trap(), G4BooleanSolid::GetConstituentSolid(), G4NavigationLogger::PostComputeStepLog(), G4NavigationLogger::PreComputeStepLog(), and G4Orb::SurfaceNormal().
00042 { 00043 StreamInfo(G4cout); 00044 }
Definition at line 203 of file G4VSolid.cc.
References CalculateExtent(), G4UniformRand, Inside(), kOutside, kXAxis, kYAxis, and kZAxis.
Referenced by GetCubicVolume(), G4VCSGfaceted::GetCubicVolume(), G4BREPSolid::GetCubicVolume(), and G4BooleanSolid::GetCubicVolume().
00204 { 00205 G4int iInside=0; 00206 G4double px,py,pz,minX,maxX,minY,maxY,minZ,maxZ,volume; 00207 G4ThreeVector p; 00208 EInside in; 00209 00210 // values needed for CalculateExtent signature 00211 00212 G4VoxelLimits limit; // Unlimited 00213 G4AffineTransform origin; 00214 00215 // min max extents of pSolid along X,Y,Z 00216 00217 this->CalculateExtent(kXAxis,limit,origin,minX,maxX); 00218 this->CalculateExtent(kYAxis,limit,origin,minY,maxY); 00219 this->CalculateExtent(kZAxis,limit,origin,minZ,maxZ); 00220 00221 // limits 00222 00223 if(nStat < 100) nStat = 100; 00224 if(epsilon > 0.01) epsilon = 0.01; 00225 00226 for(G4int i = 0; i < nStat; i++ ) 00227 { 00228 px = minX+(maxX-minX)*G4UniformRand(); 00229 py = minY+(maxY-minY)*G4UniformRand(); 00230 pz = minZ+(maxZ-minZ)*G4UniformRand(); 00231 p = G4ThreeVector(px,py,pz); 00232 in = this->Inside(p); 00233 if(in != kOutside) iInside++; 00234 } 00235 volume = (maxX-minX)*(maxY-minY)*(maxZ-minZ)*iInside/nStat; 00236 return volume; 00237 }
Definition at line 261 of file G4VSolid.cc.
References CalculateExtent(), DistanceToIn(), DistanceToOut(), G4UniformRand, Inside(), kOutside, kXAxis, kYAxis, and kZAxis.
Referenced by GetSurfaceArea(), G4VCSGfaceted::GetSurfaceArea(), G4BREPSolid::GetSurfaceArea(), and G4BooleanSolid::GetSurfaceArea().
00262 { 00263 G4int inside=0; 00264 G4double px,py,pz,minX,maxX,minY,maxY,minZ,maxZ,surf; 00265 G4ThreeVector p; 00266 EInside in; 00267 00268 // values needed for CalculateExtent signature 00269 00270 G4VoxelLimits limit; // Unlimited 00271 G4AffineTransform origin; 00272 00273 // min max extents of pSolid along X,Y,Z 00274 00275 this->CalculateExtent(kXAxis,limit,origin,minX,maxX); 00276 this->CalculateExtent(kYAxis,limit,origin,minY,maxY); 00277 this->CalculateExtent(kZAxis,limit,origin,minZ,maxZ); 00278 00279 // limits 00280 00281 if(nStat < 100) { nStat = 100; } 00282 00283 G4double dX=maxX-minX; 00284 G4double dY=maxY-minY; 00285 G4double dZ=maxZ-minZ; 00286 if(ell<=0.) // Automatic definition of skin thickness 00287 { 00288 G4double minval=dX; 00289 if(dY<dX) { minval=dY; } 00290 if(dZ<minval) { minval=dZ; } 00291 ell=.01*minval; 00292 } 00293 00294 G4double dd=2*ell; 00295 minX-=ell; minY-=ell; minZ-=ell; dX+=dd; dY+=dd; dZ+=dd; 00296 00297 for(G4int i = 0; i < nStat; i++ ) 00298 { 00299 px = minX+dX*G4UniformRand(); 00300 py = minY+dY*G4UniformRand(); 00301 pz = minZ+dZ*G4UniformRand(); 00302 p = G4ThreeVector(px,py,pz); 00303 in = this->Inside(p); 00304 if(in != kOutside) 00305 { 00306 if (DistanceToOut(p)<ell) { inside++; } 00307 } 00308 else if(DistanceToIn(p)<ell) { inside++; } 00309 } 00310 // @@ The conformal correction can be upgraded 00311 surf = dX*dY*dZ*inside/dd/nStat; 00312 return surf; 00313 }
Reimplemented in G4BooleanSolid.
Definition at line 167 of file G4VSolid.cc.
Referenced by G4BooleanSolid::StackPolyhedron().
G4double G4VSolid::GetCubicVolume | ( | ) | [virtual] |
Reimplemented in G4BooleanSolid, G4BREPSolid, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4Paraboloid, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Definition at line 188 of file G4VSolid.cc.
References EstimateCubicVolume().
Referenced by G4PSPassageCellFlux::ComputeVolume(), G4PSDoseDeposit::ComputeVolume(), G4PSCellFlux::ComputeVolume(), G4TessellatedSolid::GetCubicVolume(), G4Hype::GetCubicVolume(), G4GenericTrap::GetCubicVolume(), G4EllipticalTube::GetCubicVolume(), G4CutTubs::GetCubicVolume(), and G4LogicalVolume::GetMass().
00189 { 00190 G4int cubVolStatistics = 1000000; 00191 G4double cubVolEpsilon = 0.001; 00192 return EstimateCubicVolume(cubVolStatistics, cubVolEpsilon); 00193 }
G4DisplacedSolid * G4VSolid::GetDisplacedSolidPtr | ( | ) | [virtual] |
const G4DisplacedSolid * G4VSolid::GetDisplacedSolidPtr | ( | ) | const [virtual] |
virtual G4GeometryType G4VSolid::GetEntityType | ( | ) | const [pure virtual] |
Implemented in G4ReflectedSolid, G4BooleanSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4BREPSolid, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericTrap, G4Hype, G4Paraboloid, G4Polycone, G4Polyhedra, G4TessellatedSolid, G4Tet, G4TwistedBox, G4TwistedTrap, G4TwistedTrd, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4GMocrenFileSceneHandler::AddPrimitive(), G4tgbVolume::BuildSolidForDivision(), Clone(), G4VoxelNavigation::ComputeSafety(), G4NavigationLogger::ComputeSafetyLog(), G4VDivisionParameterisation::ComputeSolid(), G4PhysicalVolumeModel::CreateCurrentAttValues(), G4SubtractionSolid::DistanceToIn(), G4tgbGeometryDumper::DumpPVParameterised(), G4tgbGeometryDumper::DumpSolid(), G4tgbVolume::FindOrConstructG4Solid(), G4VParameterisationBox::G4VParameterisationBox(), G4VParameterisationCons::G4VParameterisationCons(), G4VParameterisationPara::G4VParameterisationPara(), G4VParameterisationPolycone::G4VParameterisationPolycone(), G4VParameterisationPolyhedra::G4VParameterisationPolyhedra(), G4VParameterisationTrd::G4VParameterisationTrd(), G4VParameterisationTubs::G4VParameterisationTubs(), G4Navigator::GetLocalExitNormal(), G4ITNavigator::GetLocalExitNormal(), GetPointOnSurface(), G4tgbGeometryDumper::GetSolidParams(), G4NavigationLogger::PostComputeStepLog(), G4NavigationLogger::PreComputeStepLog(), G4NavigationLogger::PrintDaughterLog(), G4ASCIITreeSceneHandler::RequestPrimitives(), G4VoxelSafety::SafetyForVoxelHeader(), G4BooleanSolid::StackPolyhedron(), G4CSGSolid::StreamInfo(), and G4PhysicalVolumeModel::VisitGeometryAndGetVisReps().
G4VisExtent G4VSolid::GetExtent | ( | ) | const [virtual] |
Reimplemented in G4Box, G4Sphere, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Definition at line 619 of file G4VSolid.cc.
References CalculateExtent(), kXAxis, kYAxis, kZAxis, G4VisExtent::SetXmax(), G4VisExtent::SetXmin(), G4VisExtent::SetYmax(), G4VisExtent::SetYmin(), G4VisExtent::SetZmax(), and G4VisExtent::SetZmin().
Referenced by G4tgbVolume::BuildSolidForDivision().
00620 { 00621 G4VisExtent extent; 00622 G4VoxelLimits voxelLimits; // Defaults to "infinite" limits. 00623 G4AffineTransform affineTransform; 00624 G4double vmin, vmax; 00625 CalculateExtent(kXAxis,voxelLimits,affineTransform,vmin,vmax); 00626 extent.SetXmin (vmin); 00627 extent.SetXmax (vmax); 00628 CalculateExtent(kYAxis,voxelLimits,affineTransform,vmin,vmax); 00629 extent.SetYmin (vmin); 00630 extent.SetYmax (vmax); 00631 CalculateExtent(kZAxis,voxelLimits,affineTransform,vmin,vmax); 00632 extent.SetZmin (vmin); 00633 extent.SetZmax (vmax); 00634 return extent; 00635 }
G4String G4VSolid::GetName | ( | ) | const [inline] |
Reimplemented in G4BREPSolid.
Definition at line 47 of file G4VSolid.icc.
Referenced by G4GMocrenFileSceneHandler::AddPrimitive(), G4XXXStoredSceneHandler::AddSolid(), G4XXXSGSceneHandler::AddSolid(), G4XXXFileSceneHandler::AddSolid(), G4HepRepFileSceneHandler::AddSolid(), G4GMocrenFileSceneHandler::AddSolid(), G4NavigationLogger::AlongComputeStepLog(), G4GDMLWriteSolids::BooleanWrite(), G4GDMLWriteSolids::BoxWrite(), G4Trd::CheckAndSetAllParameters(), G4Tubs::CheckDPhiAngle(), G4VDivisionParameterisation::CheckNDivAndWidth(), G4VDivisionParameterisation::CheckOffset(), G4ParameterisationPolyhedraZ::CheckParametersValidity(), G4ParameterisationPolyhedraPhi::CheckParametersValidity(), G4ParameterisationPolyhedraRho::CheckParametersValidity(), G4ParameterisationPolyconeZ::CheckParametersValidity(), G4ParameterisationPolyconeRho::CheckParametersValidity(), G4PhantomParameterisation::CheckVoxelsFillContainer(), G4VoxelSafety::ComputeSafety(), G4VoxelNavigation::ComputeSafety(), G4NavigationLogger::ComputeSafetyLog(), G4ReplicaNavigation::ComputeStep(), G4ParameterisedNavigation::ComputeStep(), G4GDMLWriteSolids::ConeWrite(), G4Polyhedra::Create(), G4Polycone::Create(), G4PhysicalVolumeModel::CreateCurrentAttValues(), G4ReflectedSolid::CreatePolyhedron(), G4Polyhedra::CreatePolyhedron(), G4Polycone::CreatePolyhedron(), G4GDMLWriteSolids::CutTubeWrite(), G4PhysicalVolumeModel::DescribeSolid(), G4SubtractionSolid::DistanceToIn(), G4Paraboloid::DistanceToIn(), G4tgbGeometryDumper::DumpSolid(), G4GDMLWriteSolids::ElconeWrite(), G4GDMLWriteSolids::EllipsoidWrite(), G4GDMLWriteSolids::EltubeWrite(), G4Box::G4Box(), G4BREPSolidOpenPCone::G4BREPSolidOpenPCone(), G4Cons::G4Cons(), G4CutTubs::G4CutTubs(), G4Ellipsoid::G4Ellipsoid(), G4EllipticalCone::G4EllipticalCone(), G4Hype::G4Hype(), G4Para::G4Para(), G4Paraboloid::G4Paraboloid(), G4Polyhedra::G4Polyhedra(), G4Sphere::G4Sphere(), G4Trap::G4Trap(), G4Tubs::G4Tubs(), G4VParameterisationCons::G4VParameterisationCons(), G4VParameterisationPara::G4VParameterisationPara(), G4VParameterisationPolycone::G4VParameterisationPolycone(), G4VParameterisationPolyhedra::G4VParameterisationPolyhedra(), G4VParameterisationTrd::G4VParameterisationTrd(), G4VTwistedFaceted::G4VTwistedFaceted(), G4GDMLWriteSolids::GenTrapWrite(), G4Navigator::GetLocalExitNormal(), G4ITNavigator::GetLocalExitNormal(), G4PhantomParameterisation::GetReplicaNo(), G4GDMLWriteSolids::HypeWrite(), G4Navigator::LocateGlobalPointAndSetup(), G4ITNavigator::LocateGlobalPointAndSetup(), G4Trap::MakePlane(), G4Trap::MakePlanes(), G4BREPSolidOpenPCone::operator=(), G4GDMLWriteSolids::OrbWrite(), G4GDMLWriteSolids::ParaboloidWrite(), G4GDMLWriteSolids::ParaWrite(), G4GDMLWriteSolids::PolyconeWrite(), G4GDMLWriteSolids::PolyhedraWrite(), G4NavigationLogger::PostComputeStepLog(), G4NavigationLogger::PreComputeStepLog(), G4NavigationLogger::PrintDaughterLog(), G4tgbVolumeMgr::RegisterMe(), G4VSceneHandler::RequestPrimitives(), G4ASCIITreeSceneHandler::RequestPrimitives(), G4Polyhedra::Reset(), G4Polycone::Reset(), G4VoxelSafety::SafetyForVoxelNode(), G4Trap::SetAllParameters(), G4Torus::SetAllParameters(), G4Para::SetAllParameters(), G4Tubs::SetInnerRadius(), G4Tubs::SetOuterRadius(), G4Box::SetXHalfLength(), G4Box::SetYHalfLength(), G4Tubs::SetZHalfLength(), G4Box::SetZHalfLength(), G4GeomTestStreamLogger::SolidProblem(), G4GDMLWriteSolids::SphereWrite(), G4BooleanSolid::StackPolyhedron(), G4VTwistedFaceted::StreamInfo(), G4VCSGfaceted::StreamInfo(), G4TwistedTubs::StreamInfo(), G4TwistedTrd::StreamInfo(), G4TwistedTrap::StreamInfo(), G4TwistedBox::StreamInfo(), G4Tubs::StreamInfo(), G4Trd::StreamInfo(), G4Trap::StreamInfo(), G4Torus::StreamInfo(), G4Tet::StreamInfo(), G4Sphere::StreamInfo(), G4ReflectedSolid::StreamInfo(), G4Polyhedra::StreamInfo(), G4Polycone::StreamInfo(), G4Paraboloid::StreamInfo(), G4Para::StreamInfo(), G4Orb::StreamInfo(), G4Hype::StreamInfo(), G4GenericTrap::StreamInfo(), G4ExtrudedSolid::StreamInfo(), G4EllipticalTube::StreamInfo(), G4EllipticalCone::StreamInfo(), G4Ellipsoid::StreamInfo(), G4DisplacedSolid::StreamInfo(), G4CutTubs::StreamInfo(), G4CSGSolid::StreamInfo(), G4Cons::StreamInfo(), G4Box::StreamInfo(), G4BooleanSolid::StreamInfo(), SubstractSolids(), 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().
G4ThreeVector G4VSolid::GetPointOnSurface | ( | ) | const [virtual] |
Reimplemented in G4ReflectedSolid, G4BooleanSolid, G4DisplacedSolid, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4Paraboloid, G4Polycone, G4Polyhedra, G4TessellatedSolid, G4Tet, G4TwistedTubs, and G4VTwistedFaceted.
Definition at line 152 of file G4VSolid.cc.
References G4endl, G4Exception(), GetEntityType(), and JustWarning.
Referenced by G4PVPlacement::CheckOverlaps(), G4PVParameterised::CheckOverlaps(), G4ReflectedSolid::GetPointOnSurface(), G4DisplacedSolid::GetPointOnSurface(), and G4BooleanSolid::GetPointOnSurface().
00153 { 00154 std::ostringstream message; 00155 message << "Not implemented for solid: " 00156 << this->GetEntityType() << " !" << G4endl 00157 << "Returning origin."; 00158 G4Exception("G4VSolid::GetPointOnSurface()", "GeomMgt1001", 00159 JustWarning, message); 00160 return G4ThreeVector(0,0,0); 00161 }
G4Polyhedron * G4VSolid::GetPolyhedron | ( | ) | const [virtual] |
Reimplemented in G4ReflectedSolid, G4BooleanSolid, G4DisplacedSolid, G4BREPSolid, G4CSGSolid, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4Paraboloid, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Definition at line 647 of file G4VSolid.cc.
Referenced by G4PhysicalVolumeModel::DescribeSolid(), G4VSceneHandler::RequestPrimitives(), and G4BooleanSolid::StackPolyhedron().
G4double G4VSolid::GetSurfaceArea | ( | ) | [virtual] |
Reimplemented in G4BooleanSolid, G4BREPSolid, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4Paraboloid, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Definition at line 248 of file G4VSolid.cc.
References EstimateSurfaceArea().
Referenced by G4AdjointCrossSurfChecker::AddanExtSurfaceOfAvolume(), G4BooleanSolid::GetAreaRatio(), G4VTwistedFaceted::GetSurfaceArea(), G4TwistedTubs::GetSurfaceArea(), G4Hype::GetSurfaceArea(), G4GenericTrap::GetSurfaceArea(), G4EllipticalTube::GetSurfaceArea(), G4EllipticalCone::GetSurfaceArea(), G4Ellipsoid::GetSurfaceArea(), and G4CutTubs::GetSurfaceArea().
00249 { 00250 G4int stat = 1000000; 00251 G4double ell = -1.; 00252 return EstimateSurfaceArea(stat,ell); 00253 }
G4double G4VSolid::GetTolerance | ( | ) | const [inline] |
Definition at line 59 of file G4VSolid.icc.
References kCarTolerance.
Referenced by G4ParameterisedNavigation::ComputeStep(), and G4NavigationLogger::PreComputeStepLog().
00060 { 00061 return kCarTolerance; 00062 }
virtual EInside G4VSolid::Inside | ( | const G4ThreeVector & | p | ) | const [pure virtual] |
Implemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericTrap, G4Hype, G4Paraboloid, G4Polycone, G4Polyhedra, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4NavigationLogger::AlongComputeStepLog(), G4ReplicaNavigation::BackLocate(), G4PVPlacement::CheckOverlaps(), G4PVParameterised::CheckOverlaps(), G4AuxiliaryNavServices::CheckPointExiting(), G4AuxiliaryNavServices::CheckPointOnSurface(), G4VoxelSafety::ComputeSafety(), G4VoxelNavigation::ComputeSafety(), G4ReplicaNavigation::ComputeStep(), G4ParameterisedNavigation::ComputeStep(), G4RegularNavigation::ComputeStepSkippingEqualMaterials(), G4TheRayTracer::CreateBitMap(), G4PolyPhiFace::Diagnose(), G4SubtractionSolid::DistanceToIn(), G4IntersectionSolid::DistanceToIn(), G4UnionSolid::DistanceToOut(), EstimateCubicVolume(), EstimateSurfaceArea(), G4Navigator::GetLocalExitNormal(), G4ITNavigator::GetLocalExitNormal(), G4BooleanSolid::GetPointOnSurface(), G4PhantomParameterisation::GetReplicaNo(), G4UnionSolid::Inside(), G4SubtractionSolid::Inside(), G4ReflectedSolid::Inside(), G4IntersectionSolid::Inside(), G4DisplacedSolid::Inside(), G4Navigator::LocateGlobalPointAndSetup(), G4ITNavigator::LocateGlobalPointAndSetup(), G4NavigationLogger::PreComputeStepLog(), G4UnionSolid::SurfaceNormal(), G4SubtractionSolid::SurfaceNormal(), and G4IntersectionSolid::SurfaceNormal().
Definition at line 110 of file G4VSolid.cc.
References fshapeName, and kCarTolerance.
Referenced by G4VTwistedFaceted::operator=(), G4VCSGfaceted::operator=(), G4TwistedTubs::operator=(), G4Tet::operator=(), G4TessellatedSolid::operator=(), G4ReflectedSolid::operator=(), G4Paraboloid::operator=(), G4Hype::operator=(), G4GenericTrap::operator=(), G4EllipticalTube::operator=(), G4EllipticalCone::operator=(), G4Ellipsoid::operator=(), G4DisplacedSolid::operator=(), G4CSGSolid::operator=(), G4BREPSolid::operator=(), and G4BooleanSolid::operator=().
00111 { 00112 // Check assignment to self 00113 // 00114 if (this == &rhs) { return *this; } 00115 00116 // Copy data 00117 // 00118 kCarTolerance = rhs.kCarTolerance; 00119 fshapeName = rhs.fshapeName; 00120 00121 return *this; 00122 }
void G4VSolid::SetName | ( | const G4String & | name | ) | [inline] |
Reimplemented in G4BREPSolid.
Definition at line 53 of file G4VSolid.icc.
Referenced by G4BREPSolidOpenPCone::G4BREPSolidOpenPCone(), and G4BREPSolidOpenPCone::operator=().
virtual std::ostream& G4VSolid::StreamInfo | ( | std::ostream & | os | ) | const [pure virtual] |
Implemented in G4ReflectedSolid, G4BooleanSolid, G4DisplacedSolid, G4BREPSolid, G4BREPSolidBox, G4BREPSolidCone, G4BREPSolidCylinder, G4BREPSolidOpenPCone, G4BREPSolidPCone, G4BREPSolidPolyhedra, G4BREPSolidSphere, G4BREPSolidTorus, G4Box, G4Cons, G4CSGSolid, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4ExtrudedSolid, G4GenericTrap, G4Hype, G4Paraboloid, G4Polycone, G4Polyhedra, G4TessellatedSolid, G4Tet, G4TwistedBox, G4TwistedTrap, G4TwistedTrd, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by DumpInfo(), operator<<(), G4ReflectedSolid::StreamInfo(), G4DisplacedSolid::StreamInfo(), and G4BooleanSolid::StreamInfo().
virtual G4ThreeVector G4VSolid::SurfaceNormal | ( | const G4ThreeVector & | p | ) | const [pure virtual] |
Implemented in G4ReflectedSolid, G4DisplacedSolid, G4IntersectionSolid, G4SubtractionSolid, G4UnionSolid, G4BREPSolid, G4BREPSolidCone, G4BREPSolidPCone, G4BREPSolidPolyhedra, G4BREPSolidSphere, G4Box, G4Cons, G4CutTubs, G4Orb, G4Para, G4Sphere, G4Torus, G4Trap, G4Trd, G4Tubs, G4Ellipsoid, G4EllipticalCone, G4EllipticalTube, G4GenericTrap, G4Hype, G4Paraboloid, G4TessellatedSolid, G4Tet, G4TwistedTubs, G4VCSGfaceted, and G4VTwistedFaceted.
Referenced by G4AuxiliaryNavServices::CheckPointExiting(), G4AuxiliaryNavServices::CheckPointOnSurface(), G4ReplicaNavigation::ComputeStep(), G4Navigator::ComputeStep(), G4ITNavigator::ComputeStep(), G4SubtractionSolid::DistanceToOut(), G4Navigator::GetLocalExitNormal(), G4ITNavigator::GetLocalExitNormal(), G4UnionSolid::Inside(), G4SubtractionSolid::Inside(), G4Navigator::LocateGlobalPointAndSetup(), G4ITNavigator::LocateGlobalPointAndSetup(), G4UnionSolid::SurfaceNormal(), G4SubtractionSolid::SurfaceNormal(), G4ReflectedSolid::SurfaceNormal(), G4IntersectionSolid::SurfaceNormal(), and G4DisplacedSolid::SurfaceNormal().
std::ostream& operator<< | ( | std::ostream & | os, | |
const G4VSolid & | e | |||
) | [friend] |
G4double G4VSolid::kCarTolerance [protected] |
Definition at line 307 of file G4VSolid.hh.
Referenced by G4TessellatedSolid::AddFacet(), G4VTwistedFaceted::CalculateExtent(), G4Tubs::CalculateExtent(), G4Trd::CalculateExtent(), G4Trap::CalculateExtent(), G4Torus::CalculateExtent(), G4TessellatedSolid::CalculateExtent(), G4Sphere::CalculateExtent(), G4ReflectedSolid::CalculateExtent(), G4Paraboloid::CalculateExtent(), G4Para::CalculateExtent(), G4Orb::CalculateExtent(), G4GenericTrap::CalculateExtent(), G4Ellipsoid::CalculateExtent(), G4CutTubs::CalculateExtent(), G4Cons::CalculateExtent(), G4BREPSolid::CalculateExtent(), G4Box::CalculateExtent(), G4Trd::CheckAndSetAllParameters(), G4Polyhedra::Create(), G4Polycone::Create(), G4Polyhedra::CreatePolyhedron(), G4Polycone::CreatePolyhedron(), G4CutTubs::CreatePolyhedron(), G4Tubs::CreateRotatedVertices(), G4CutTubs::CreateRotatedVertices(), G4VCSGfaceted::DistanceTo(), G4VCSGfaceted::DistanceToIn(), G4Tubs::DistanceToIn(), G4Trd::DistanceToIn(), G4Trap::DistanceToIn(), G4Torus::DistanceToIn(), G4Sphere::DistanceToIn(), G4Paraboloid::DistanceToIn(), G4Para::DistanceToIn(), G4Hype::DistanceToIn(), G4GenericTrap::DistanceToIn(), G4EllipticalTube::DistanceToIn(), G4EllipticalCone::DistanceToIn(), G4Ellipsoid::DistanceToIn(), G4CutTubs::DistanceToIn(), G4Cons::DistanceToIn(), G4BREPSolidPolyhedra::DistanceToIn(), G4BREPSolidPCone::DistanceToIn(), G4BREPSolid::DistanceToIn(), G4Box::DistanceToIn(), G4VCSGfaceted::DistanceToOut(), G4UnionSolid::DistanceToOut(), G4Tubs::DistanceToOut(), G4Trd::DistanceToOut(), G4Trap::DistanceToOut(), G4Torus::DistanceToOut(), G4Sphere::DistanceToOut(), G4Paraboloid::DistanceToOut(), G4Para::DistanceToOut(), G4Hype::DistanceToOut(), G4GenericTrap::DistanceToOut(), G4EllipticalTube::DistanceToOut(), G4EllipticalCone::DistanceToOut(), G4CutTubs::DistanceToOut(), G4Cons::DistanceToOut(), G4BREPSolidPolyhedra::DistanceToOut(), G4BREPSolidPCone::DistanceToOut(), G4BREPSolid::DistanceToOut(), G4Box::DistanceToOut(), G4Box::G4Box(), G4ExtrudedSolid::G4ExtrudedSolid(), G4GenericTrap::G4GenericTrap(), G4Orb::G4Orb(), G4Trap::G4Trap(), G4VSolid(), G4VTwistedFaceted::G4VTwistedFaceted(), GetTolerance(), G4VTwistedFaceted::Inside(), G4VCSGfaceted::Inside(), G4Tubs::Inside(), G4Trd::Inside(), G4Trap::Inside(), G4Paraboloid::Inside(), G4Para::Inside(), G4Hype::Inside(), G4GenericTrap::Inside(), G4ExtrudedSolid::Inside(), G4EllipticalTube::Inside(), G4EllipticalCone::Inside(), G4CutTubs::Inside(), G4Cons::Inside(), G4BREPSolidSphere::Inside(), G4BREPSolidPolyhedra::Inside(), G4BREPSolidPCone::Inside(), G4BREPSolidBox::Inside(), G4BREPSolid::Inside(), G4Box::Inside(), G4BREPSolid::Intersect(), operator=(), G4TessellatedSolid::SafetyFromInside(), G4TessellatedSolid::SafetyFromOutside(), G4Torus::SetAllParameters(), G4Box::SetXHalfLength(), G4Box::SetYHalfLength(), G4Box::SetZHalfLength(), G4Tubs::SurfaceNormal(), G4Trd::SurfaceNormal(), G4Trap::SurfaceNormal(), G4Torus::SurfaceNormal(), G4Tet::SurfaceNormal(), G4Sphere::SurfaceNormal(), G4Paraboloid::SurfaceNormal(), G4Para::SurfaceNormal(), G4GenericTrap::SurfaceNormal(), G4EllipticalTube::SurfaceNormal(), G4CutTubs::SurfaceNormal(), G4Cons::SurfaceNormal(), G4BREPSolidPolyhedra::SurfaceNormal(), G4BREPSolidPCone::SurfaceNormal(), G4BREPSolid::SurfaceNormal(), and G4Box::SurfaceNormal().