OpenSceneGraph  3.0.1
Public Types | Public Member Functions | Public Attributes
osg::BoundingSphereImpl Class Reference

General purpose bounding sphere class for enclosing nodes/objects/vertices. More...

List of all members.

Public Types

typedef VT vec_type
typedef VT::value_type value_type

Public Member Functions

 BoundingSphereImpl ()
 Construct a default bounding sphere with radius to -1.0f, representing an invalid/unset bounding sphere.
 BoundingSphereImpl (const vec_type &center, value_type radius)
 Creates a bounding sphere initialized to the given extents.
 BoundingSphereImpl (const BoundingSphereImpl &bs)
 Creates a bounding sphere initialized to the given extents.
 BoundingSphereImpl (const BoundingBoxImpl< VT > &bb)
 Creates a bounding sphere initialized to the given extents.
void init ()
 Clear the bounding sphere.
bool valid () const
 Returns true of the bounding sphere extents are valid, false otherwise.
void set (const vec_type &center, value_type radius)
 Set the bounding sphere to the given center/radius using floats.
vec_typecenter ()
 Returns the center of the bounding sphere.
const vec_typecenter () const
 Returns the const center of the bounding sphere.
value_typeradius ()
 Returns the radius of the bounding sphere.
value_type radius () const
 Returns the const radius of the bounding sphere.
value_type radius2 () const
 Returns the squared length of the radius.
template<typename vector_type >
void expandBy (const vector_type &v)
 Expands the sphere to encompass the given point.
template<typename vector_type >
void expandRadiusBy (const vector_type &v)
 Expands the sphere to encompass the given point.
void expandBy (const BoundingSphereImpl &sh)
 Expands the sphere to encompass the given sphere.
void expandRadiusBy (const BoundingSphereImpl &sh)
 Expands the sphere to encompass the given sphere.
void expandBy (const BoundingBoxImpl< VT > &bb)
 Expands the sphere to encompass the given box.
void expandRadiusBy (const BoundingBoxImpl< VT > &bb)
 Expands the sphere to encompass the given box.
bool contains (const vec_type &v) const
 Returns true if v is within the sphere.
bool intersects (const BoundingSphereImpl &bs) const
 Returns true if there is a non-empty intersection with the given bounding sphere.

Public Attributes

vec_type _center
value_type _radius

Detailed Description

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

typedef VT::value_type osg::BoundingSphereImpl::value_type

Constructor & Destructor Documentation

osg::BoundingSphereImpl::BoundingSphereImpl ( ) [inline]

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

osg::BoundingSphereImpl::BoundingSphereImpl ( const vec_type center,
value_type  radius 
) [inline]

Creates a bounding sphere initialized to the given extents.

osg::BoundingSphereImpl::BoundingSphereImpl ( const BoundingSphereImpl bs) [inline]

Creates a bounding sphere initialized to the given extents.

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

Creates a bounding sphere initialized to the given extents.

References expandBy().


Member Function Documentation

vec_type& osg::BoundingSphereImpl::center ( ) [inline]
const vec_type& osg::BoundingSphereImpl::center ( ) const [inline]

Returns the const center of the bounding sphere.

References _center.

bool osg::BoundingSphereImpl::contains ( const vec_type v) const [inline]

Returns true if v is within the sphere.

References valid(), _center, and radius2().

template<typename vector_type >
void osg::BoundingSphereImpl::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.

Referenced by BoundingSphereImpl(), and osg::Node::getBound().

void osg::BoundingSphereImpl::expandBy ( const BoundingSphereImpl 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.

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

Expands the sphere to encompass the given box.

Repositions the sphere center to minimize the radius increase.

References osg::BoundingBoxImpl::valid(), osg::BoundingBoxImpl::corner(), osg::BoundingBoxImpl::expandBy(), osg::BoundingBoxImpl::center(), and osg::BoundingBoxImpl::radius().

template<typename vector_type >
void osg::BoundingSphereImpl::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.

void osg::BoundingSphereImpl::expandRadiusBy ( const BoundingSphereImpl 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.

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

Expands the sphere to encompass the given box.

Does not repositions the sphere center.

References osg::BoundingBoxImpl::valid(), osg::BoundingBoxImpl::corner(), osg::BoundingBoxImpl::center(), and osg::BoundingBoxImpl::radius().

void osg::BoundingSphereImpl::init ( ) [inline]

Clear the bounding sphere.

Reset to default values.

References _center, and _radius.

bool osg::BoundingSphereImpl::intersects ( const BoundingSphereImpl bs) const [inline]

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

References valid(), _center, and _radius.

value_type& osg::BoundingSphereImpl::radius ( ) [inline]
value_type osg::BoundingSphereImpl::radius ( ) const [inline]

Returns the const radius of the bounding sphere.

References _radius.

value_type osg::BoundingSphereImpl::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 _radius.

Referenced by contains().

void osg::BoundingSphereImpl::set ( const vec_type center,
value_type  radius 
) [inline]

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

References _center, center(), _radius, and radius().

bool osg::BoundingSphereImpl::valid ( ) const [inline]

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

References _radius.

Referenced by osg::BoundingBoxImpl::expandBy(), contains(), and intersects().


Member Data Documentation


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

osg logo
Generated at Mon Oct 3 2011 12:39:41 for the OpenSceneGraph by doxygen 1.7.5.