This defines a bounding sphere, consisting of a center and a radius. More...
#include "boundingSphere.h"
List of all members.
This defines a bounding sphere, consisting of a center and a radius.
It is always a sphere, and never an ellipsoid or other quadric.
Definition at line 28 of file boundingSphere.h.
[inline]
Constructs an empty sphere.
Definition at line 22 of file boundingSphere.I.
Constructs a specific sphere.
Definition at line 31 of file boundingSphere.I.
References LVecBase3f::is_nan().
[protected, virtual]
Generic handler for a FiniteBoundingVolume.
Reimplemented from BoundingVolume.
Definition at line 393 of file boundingSphere.cxx.
References as_bounding_sphere(), FiniteBoundingVolume::as_finite_bounding_volume(), ReferenceCount::local_object(), and BoundingVolume::set_infinite().
Puts the volume around the indicated list of points, identified by an STL-style begin/end list.
Reimplemented from GeometricBoundingVolume.
Definition at line 300 of file boundingSphere.cxx.
[virtual]
Virtual downcast method.
Returns this object as a pointer of the indicated type, if it is in fact that type. Returns NULL if it is not that type.
Definition at line 152 of file boundingSphere.cxx.
Referenced by around_finite().
Double-dispatch support: called by contains_other() when the type we're testing for intersection is known to be a box.
Definition at line 605 of file boundingSphere.cxx.
References BoundingVolume::contains_sphere().
Double-dispatch support: called by contains_other() when the type we're testing for intersection is known to be a hexahedron.
Definition at line 617 of file boundingSphere.cxx.
References BoundingHexahedron::contains_sphere().
Double-dispatch support: called by contains_other() when the type we're testing for intersection is known to be a line.
Definition at line 629 of file boundingSphere.cxx.
References BoundingLine::contains_sphere().
Tests whether the volume contains the indicated line segment.
Definition at line 510 of file boundingSphere.cxx.
References contains_point(), BoundingVolume::is_empty(), BoundingVolume::is_infinite(), and LVecBase3f::is_nan().
Double-dispatch support: called by contains_other() when the type we're testing for intersection is known to be a plane.
Definition at line 641 of file boundingSphere.cxx.
References BoundingPlane::contains_sphere().
Tests whether the volume contains the indicated point.
Definition at line 487 of file boundingSphere.cxx.
References BoundingVolume::is_empty(), BoundingVolume::is_infinite(), and LVecBase3f::is_nan().
Referenced by contains_lineseg().
Double-dispatch support: called by contains_other() when the type we're testing for intersection is known to be a sphere.
Definition at line 575 of file boundingSphere.cxx.
References BoundingVolume::is_empty(), and BoundingVolume::is_infinite().
Double-dispatch support: called by extend_other() when the type we're extending by is known to be a box.
Definition at line 240 of file boundingSphere.cxx.
References BoundingBox::get_maxq(), BoundingBox::get_minq(), BoundingBox::get_point(), and BoundingVolume::is_empty().
Referenced by extend_by_finite(), and extend_by_hexahedron().
Definition at line 286 of file boundingSphere.cxx.
References extend_by_box(), BoundingVolume::is_empty(), and ReferenceCount::local_object().
Double-dispatch support: called by extend_other() when the type we're extending by is known to be a hexahedron.
Definition at line 272 of file boundingSphere.cxx.
Extends the volume to include the indicated point.
Returns true if possible, false if not.
Definition at line 195 of file boundingSphere.cxx.
Double-dispatch support: called by extend_other() when the type we're extending by is known to be a sphere.
Definition at line 218 of file boundingSphere.cxx.
[inline, static]
This function is declared non-inline to work around a compiler bug in g++ 2.96.
Making it inline seems to cause problems in the optimizer.
Reimplemented from FiniteBoundingVolume.
Definition at line 89 of file boundingSphere.h.
References FiniteBoundingVolume::init_type().