OSG  3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Public Attributes | List of all members
osg::BoundingSphereImpl< VT > Class Template Reference

#include <BoundingBox.h>

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
 
bool operator== (const BoundingSphereImpl &rhs) const
 
bool operator!= (const BoundingSphereImpl &rhs) 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)
 
template<typename BBT >
void expandBy (const BoundingBoxImpl< BBT > &bb)
 
template<typename BBT >
void expandRadiusBy (const BoundingBoxImpl< BBT > &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.

Definition at line 26 of file BoundingBox.h.

Member Typedef Documentation

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

Definition at line 38 of file BoundingSphere.h.

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

Definition at line 37 of file BoundingSphere.h.

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.

Definition at line 44 of file BoundingSphere.h.

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

Creates a bounding sphere initialized to the given extents.

Definition at line 47 of file BoundingSphere.h.

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

Creates a bounding sphere initialized to the given extents.

Definition at line 50 of file BoundingSphere.h.

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

Creates a bounding sphere initialized to the given extents.

Definition at line 53 of file BoundingSphere.h.

Here is the call graph for this function:

Member Function Documentation

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

Returns the center of the bounding sphere.

Definition at line 77 of file BoundingSphere.h.

Here is the caller graph for this function:

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

Returns the const center of the bounding sphere.

Definition at line 80 of file BoundingSphere.h.

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

Returns true if v is within the sphere.

Definition at line 125 of file BoundingSphere.h.

Here is the call graph for this function:

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

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.

Definition at line 143 of file BoundingSphere.h.

Here is the caller graph for this function:

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

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.

Definition at line 181 of file BoundingSphere.h.

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

Expands the sphere to encompass the given box. Repositions the sphere center to minimize the radius increase.

Definition at line 252 of file BoundingSphere.h.

Here is the call graph for this function:

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

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.

Definition at line 165 of file BoundingSphere.h.

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

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.

Definition at line 232 of file BoundingSphere.h.

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

Expands the sphere to encompass the given box. Does not repositions the sphere center.

Definition at line 283 of file BoundingSphere.h.

Here is the call graph for this function:

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

Clear the bounding sphere. Reset to default values.

Definition at line 56 of file BoundingSphere.h.

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.

Definition at line 133 of file BoundingSphere.h.

Here is the call graph for this function:

template<typename VT>
bool osg::BoundingSphereImpl< VT >::operator!= ( const BoundingSphereImpl< VT > &  rhs) const
inline

Definition at line 67 of file BoundingSphere.h.

template<typename VT>
bool osg::BoundingSphereImpl< VT >::operator== ( const BoundingSphereImpl< VT > &  rhs) const
inline

Definition at line 66 of file BoundingSphere.h.

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

Returns the radius of the bounding sphere.

Definition at line 83 of file BoundingSphere.h.

Here is the caller graph for this function:

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

Returns the const radius of the bounding sphere.

Definition at line 85 of file BoundingSphere.h.

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.

Definition at line 90 of file BoundingSphere.h.

Here is the caller graph for this function:

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

Set the bounding sphere to the given center/radius using floats.

Definition at line 70 of file BoundingSphere.h.

Here is the call graph for this function:

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

Returns true of the bounding sphere extents are valid, false otherwise.

Definition at line 64 of file BoundingSphere.h.

Here is the caller graph for this function:

Member Data Documentation

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

Definition at line 40 of file BoundingSphere.h.

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

Definition at line 41 of file BoundingSphere.h.


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