#include <G4BoundingSphereScene.hh>
Inheritance diagram for G4BoundingSphereScene:
Public Member Functions | |
G4BoundingSphereScene (G4VModel *pModel=0) | |
virtual | ~G4BoundingSphereScene () |
void | PreAddSolid (const G4Transform3D &objectTransformation, const G4VisAttributes &) |
void | PostAddSolid () |
void | AddSolid (const G4Box &solid) |
void | AddSolid (const G4Cons &solid) |
void | AddSolid (const G4Tubs &solid) |
void | AddSolid (const G4Trd &solid) |
void | AddSolid (const G4Trap &solid) |
void | AddSolid (const G4Sphere &solid) |
void | AddSolid (const G4Para &solid) |
void | AddSolid (const G4Torus &solid) |
void | AddSolid (const G4Polycone &solid) |
void | AddSolid (const G4Polyhedra &solid) |
void | AddSolid (const G4VSolid &solid) |
void | AddCompound (const G4VTrajectory &) |
void | AddCompound (const G4VHit &) |
void | AddCompound (const G4VDigi &) |
void | AddCompound (const G4THitsMap< G4double > &) |
G4VisExtent | GetBoundingSphereExtent () |
const G4Point3D & | GetCentre () const |
G4double | GetRadius () const |
void | SetCentre (const G4Point3D ¢re) |
void | ResetBoundingSphere () |
void | AccrueBoundingSphere (const G4Point3D ¢re, G4double radius) |
virtual void | BeginPrimitives (const G4Transform3D &) |
virtual void | EndPrimitives () |
virtual void | BeginPrimitives2D (const G4Transform3D &) |
virtual void | EndPrimitives2D () |
virtual void | AddPrimitive (const G4Polyline &) |
virtual void | AddPrimitive (const G4Scale &) |
virtual void | AddPrimitive (const G4Text &) |
virtual void | AddPrimitive (const G4Circle &) |
virtual void | AddPrimitive (const G4Square &) |
virtual void | AddPrimitive (const G4Polymarker &) |
virtual void | AddPrimitive (const G4Polyhedron &) |
virtual void | AddPrimitive (const G4NURBS &) |
Definition at line 51 of file G4BoundingSphereScene.hh.
G4BoundingSphereScene::G4BoundingSphereScene | ( | G4VModel * | pModel = 0 |
) |
G4BoundingSphereScene::~G4BoundingSphereScene | ( | ) | [virtual] |
Definition at line 79 of file G4BoundingSphereScene.cc.
Referenced by G4Scene::CalculateExtent().
00080 { 00081 00082 if (fRadius < 0 ) { // First time. 00083 fCentre = newCentre; 00084 fRadius = newRadius; 00085 } 00086 else { 00087 G4Vector3D join = newCentre - fCentre; 00088 if (join == G4Vector3D (0., 0., 0.)) { // Centres coincide. 00089 if (fRadius < newRadius) fRadius = newRadius; 00090 } 00091 else if (join.mag () + newRadius <= fRadius) { // Inside accrued sphere. 00092 // Do nothing. 00093 } 00094 else { 00095 G4Vector3D unitJoin = join.unit (); 00096 G4Point3D oldExtremity1 = fCentre - fRadius * unitJoin; 00097 G4Point3D newExtremity1 = newCentre - newRadius * unitJoin; 00098 G4Point3D oldExtremity2 = fCentre + fRadius * unitJoin; 00099 G4Point3D newExtremity2 = newCentre + newRadius * unitJoin; 00100 G4Point3D extremity1; 00101 if (oldExtremity1 * unitJoin < newExtremity1 * unitJoin) { 00102 extremity1 = oldExtremity1; 00103 } 00104 else { 00105 extremity1 = newExtremity1; 00106 } 00107 G4Point3D extremity2; 00108 if (oldExtremity2 * unitJoin > newExtremity2 * unitJoin) { 00109 extremity2 = oldExtremity2; 00110 } 00111 else { 00112 extremity2 = newExtremity2; 00113 } 00114 fCentre = 0.5 * (extremity2 + extremity1); 00115 fRadius = 0.5 * (extremity2 - extremity1).mag (); 00116 } 00117 } 00118 }
void G4BoundingSphereScene::AddCompound | ( | const G4THitsMap< G4double > & | ) | [inline, virtual] |
void G4BoundingSphereScene::AddCompound | ( | const G4VDigi & | ) | [inline, virtual] |
void G4BoundingSphereScene::AddCompound | ( | const G4VHit & | ) | [inline, virtual] |
void G4BoundingSphereScene::AddCompound | ( | const G4VTrajectory & | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::AddPrimitive | ( | const G4NURBS & | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::AddPrimitive | ( | const G4Polyhedron & | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::AddPrimitive | ( | const G4Polymarker & | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::AddPrimitive | ( | const G4Square & | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::AddPrimitive | ( | const G4Circle & | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::AddPrimitive | ( | const G4Text & | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::AddPrimitive | ( | const G4Scale & | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::AddPrimitive | ( | const G4Polyline & | ) | [inline, virtual] |
void G4BoundingSphereScene::AddSolid | ( | const G4VSolid & | solid | ) | [inline, virtual] |
void G4BoundingSphereScene::AddSolid | ( | const G4Polyhedra & | solid | ) | [inline, virtual] |
void G4BoundingSphereScene::AddSolid | ( | const G4Polycone & | solid | ) | [inline, virtual] |
void G4BoundingSphereScene::AddSolid | ( | const G4Torus & | solid | ) | [inline, virtual] |
void G4BoundingSphereScene::AddSolid | ( | const G4Para & | solid | ) | [inline, virtual] |
void G4BoundingSphereScene::AddSolid | ( | const G4Sphere & | solid | ) | [inline, virtual] |
void G4BoundingSphereScene::AddSolid | ( | const G4Trap & | solid | ) | [inline, virtual] |
void G4BoundingSphereScene::AddSolid | ( | const G4Trd & | solid | ) | [inline, virtual] |
void G4BoundingSphereScene::AddSolid | ( | const G4Tubs & | solid | ) | [inline, virtual] |
void G4BoundingSphereScene::AddSolid | ( | const G4Cons & | solid | ) | [inline, virtual] |
void G4BoundingSphereScene::AddSolid | ( | const G4Box & | solid | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::BeginPrimitives | ( | const G4Transform3D & | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::BeginPrimitives2D | ( | const G4Transform3D & | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::EndPrimitives | ( | ) | [inline, virtual] |
virtual void G4BoundingSphereScene::EndPrimitives2D | ( | ) | [inline, virtual] |
G4VisExtent G4BoundingSphereScene::GetBoundingSphereExtent | ( | ) |
Definition at line 53 of file G4BoundingSphereScene.cc.
Referenced by G4Scene::CalculateExtent().
00053 { 00054 return G4VisExtent (fCentre, fRadius); 00055 }
const G4Point3D& G4BoundingSphereScene::GetCentre | ( | ) | const [inline] |
Definition at line 75 of file G4BoundingSphereScene.hh.
Referenced by G4PhysicalVolumeModel::CalculateExtent().
G4double G4BoundingSphereScene::GetRadius | ( | ) | const [inline] |
Definition at line 76 of file G4BoundingSphereScene.hh.
Referenced by G4PhysicalVolumeModel::CalculateExtent().
void G4BoundingSphereScene::PostAddSolid | ( | ) | [inline, virtual] |
void G4BoundingSphereScene::PreAddSolid | ( | const G4Transform3D & | objectTransformation, | |
const G4VisAttributes & | ||||
) | [virtual] |
void G4BoundingSphereScene::ResetBoundingSphere | ( | ) |
Definition at line 72 of file G4BoundingSphereScene.cc.
00072 { 00073 fCentre = G4Point3D (); 00074 fRadius = -1.; 00075 fpObjectTransformation = 0; 00076 }
void G4BoundingSphereScene::SetCentre | ( | const G4Point3D & | centre | ) | [inline] |