osg::BoundingSphereImpl< VT > Class Template Reference

List of all members.

Public Types

typedef VT vec_type
typedef VT::value_type value_type

Public Member Functions

 BoundingSphereImpl ()
 BoundingSphereImpl (const vec_type &center, value_type radius)
 BoundingSphereImpl (const BoundingSphereImpl &bs)
 BoundingSphereImpl (const BoundingBoxImpl< VT > &bb)
void init ()
bool valid () const
void set (const vec_type &center, value_type radius)
vec_typecenter ()
const vec_typecenter () const
value_typeradius ()
value_type radius () const
value_type radius2 () const
template<typename vector_type>
void expandBy (const vector_type &v)
template<typename vector_type>
void expandRadiusBy (const vector_type &v)
void expandBy (const BoundingSphereImpl &sh)
void expandRadiusBy (const BoundingSphereImpl &sh)
void expandBy (const BoundingBoxImpl< VT > &bb)
void expandRadiusBy (const BoundingBoxImpl< VT > &bb)
bool contains (const vec_type &v) const
bool intersects (const BoundingSphereImpl &bs) const

Public Attributes

vec_type _center
value_type _radius


Detailed Description

template<typename VT>
class osg::BoundingSphereImpl< VT >

General purpose bounding sphere class for enclosing nodes/objects/vertices. Bounds internal osg::Nodes in the scene, assists in view frustum culling, etc. Similar in function to BoundingBox, it's quicker for evaluating culling but generally will not cull as aggressively because it encloses a greater volume.

Member Typedef Documentation

template<typename VT>
typedef VT osg::BoundingSphereImpl< VT >::vec_type

template<typename VT>
typedef VT::value_type osg::BoundingSphereImpl< VT >::value_type


Constructor & Destructor Documentation

template<typename VT>
osg::BoundingSphereImpl< VT >::BoundingSphereImpl (  )  [inline]

Construct a default bounding sphere with radius to -1.0f, representing an invalid/unset bounding sphere.

template<typename VT>
osg::BoundingSphereImpl< VT >::BoundingSphereImpl ( const vec_type center,
value_type  radius 
) [inline]

Creates a bounding sphere initialized to the given extents.

template<typename VT>
osg::BoundingSphereImpl< VT >::BoundingSphereImpl ( const BoundingSphereImpl< VT > &  bs  )  [inline]

Creates a bounding sphere initialized to the given extents.

template<typename VT>
osg::BoundingSphereImpl< VT >::BoundingSphereImpl ( const BoundingBoxImpl< VT > &  bb  )  [inline]

Creates a bounding sphere initialized to the given extents.

References osg::BoundingSphereImpl< VT >::expandBy().


Member Function Documentation

template<typename VT>
void osg::BoundingSphereImpl< VT >::init (  )  [inline]

Clear the bounding sphere. Reset to default values.

References osg::BoundingSphereImpl< VT >::_center, and osg::BoundingSphereImpl< VT >::_radius.

template<typename VT>
bool osg::BoundingSphereImpl< VT >::valid (  )  const [inline]

template<typename VT>
void osg::BoundingSphereImpl< VT >::set ( const vec_type center,
value_type  radius 
) [inline]

template<typename VT>
vec_type& osg::BoundingSphereImpl< VT >::center (  )  [inline]

template<typename VT>
const vec_type& osg::BoundingSphereImpl< VT >::center (  )  const [inline]

Returns the const center of the bounding sphere.

References osg::BoundingSphereImpl< VT >::_center.

template<typename VT>
value_type& osg::BoundingSphereImpl< VT >::radius (  )  [inline]

template<typename VT>
value_type osg::BoundingSphereImpl< VT >::radius (  )  const [inline]

Returns the const radius of the bounding sphere.

References osg::BoundingSphereImpl< VT >::_radius.

template<typename VT>
value_type osg::BoundingSphereImpl< VT >::radius2 (  )  const [inline]

Returns the squared length of the radius. Note, For performance reasons, the calling method is responsible for checking to make sure the sphere is valid.

References osg::BoundingSphereImpl< VT >::_radius.

Referenced by osg::BoundingSphereImpl< VT >::contains().

template<typename VT>
template<typename vector_type>
void osg::BoundingSphereImpl< VT >::expandBy ( const vector_type &  v  )  [inline]

Expands the sphere to encompass the given point. Repositions the sphere center to minimize the radius increase. If the sphere is uninitialized, set its center to v and radius to zero.

References osg::BoundingSphereImpl< VT >::_center, osg::BoundingSphereImpl< VT >::_radius, and osg::BoundingSphereImpl< VT >::valid().

Referenced by osg::BoundingSphereImpl< VT >::BoundingSphereImpl().

template<typename VT>
template<typename vector_type>
void osg::BoundingSphereImpl< VT >::expandRadiusBy ( const vector_type &  v  )  [inline]

Expands the sphere to encompass the given point. Does not reposition the sphere center. If the sphere is uninitialized, set its center to v and radius to zero.

References osg::BoundingSphereImpl< VT >::_center, osg::BoundingSphereImpl< VT >::_radius, and osg::BoundingSphereImpl< VT >::valid().

Referenced by osg::BoundingSphereImpl< VT >::expandRadiusBy().

template<typename VT>
void osg::BoundingSphereImpl< VT >::expandBy ( const BoundingSphereImpl< VT > &  sh  )  [inline]

Expands the sphere to encompass the given sphere. Repositions the sphere center to minimize the radius increase. If the sphere is uninitialized, set its center and radius to match sh.

References osg::BoundingSphereImpl< VT >::_center, osg::BoundingSphereImpl< VT >::_radius, osg::BoundingSphereImpl< VT >::center(), osg::BoundingSphereImpl< VT >::radius(), and osg::BoundingSphereImpl< VT >::valid().

template<typename VT>
void osg::BoundingSphereImpl< VT >::expandRadiusBy ( const BoundingSphereImpl< VT > &  sh  )  [inline]

Expands the sphere to encompass the given sphere. Does not repositions the sphere center. If the sphere is uninitialized, set its center and radius to match sh.

References osg::BoundingSphereImpl< VT >::_center, osg::BoundingSphereImpl< VT >::_radius, and osg::BoundingSphereImpl< VT >::valid().

template<typename VT>
void osg::BoundingSphereImpl< VT >::expandBy ( const BoundingBoxImpl< VT > &  bb  )  [inline]

template<typename VT>
void osg::BoundingSphereImpl< VT >::expandRadiusBy ( const BoundingBoxImpl< VT > &  bb  )  [inline]

template<typename VT>
bool osg::BoundingSphereImpl< VT >::contains ( const vec_type v  )  const [inline]

template<typename VT>
bool osg::BoundingSphereImpl< VT >::intersects ( const BoundingSphereImpl< VT > &  bs  )  const [inline]

Returns true if there is a non-empty intersection with the given bounding sphere.

References osg::BoundingSphereImpl< VT >::_center, osg::BoundingSphereImpl< VT >::_radius, and osg::BoundingSphereImpl< VT >::valid().


Member Data Documentation

template<typename VT>
vec_type osg::BoundingSphereImpl< VT >::_center

template<typename VT>
value_type osg::BoundingSphereImpl< VT >::_radius


The documentation for this class was generated from the following file:

Generated on Sat Mar 20 12:33:57 2010 for openscenegraph by  doxygen 1.5.6