49void G4BoundingSphereScene::ProcessVolume(
const G4VSolid& solid)
81 if (fRadius < newRadius) fRadius = newRadius;
83 else if (join.
mag () + newRadius <= fRadius) {
88 G4Point3D oldExtremity1 = fCentre - fRadius * unitJoin;
89 G4Point3D newExtremity1 = newCentre - newRadius * unitJoin;
90 G4Point3D oldExtremity2 = fCentre + fRadius * unitJoin;
91 G4Point3D newExtremity2 = newCentre + newRadius * unitJoin;
93 if (oldExtremity1 * unitJoin < newExtremity1 * unitJoin) {
94 extremity1 = oldExtremity1;
97 extremity1 = newExtremity1;
100 if (oldExtremity2 * unitJoin > newExtremity2 * unitJoin) {
101 extremity2 = oldExtremity2;
104 extremity2 = newExtremity2;
106 fCentre = 0.5 * (extremity2 + extremity1);
107 fRadius = 0.5 * (extremity2 - extremity1).mag ();
HepGeom::Point3D< G4double > G4Point3D
G4BoundingSphereScene(G4VModel *pModel=0)
void ResetBoundingSphere()
virtual ~G4BoundingSphereScene()
void AccrueBoundingSphere(const G4Point3D ¢re, G4double radius)
G4VisExtent GetBoundingSphereExtent()
void CurtailDescent() const
const G4Transform3D * fpCurrentObjectTransformation
virtual G4VisExtent GetExtent() const
G4double GetExtentRadius() const
const G4Point3D & GetExtentCentre() const
BasicVector3D< T > unit() const