Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

osg::BoundingSphere Class Reference

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

List of all members.

Public Member Functions

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

 BoundingSphere (const Vec3 &center, float radius)
 Creates a bounding sphere initialized to the given extents.

 BoundingSphere (const BoundingSphere &bs)
 Creates a bounding sphere initialized to the given extents.

 BoundingSphere (const BoundingBox &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 Vec3 &center, float radius)
 Set the bounding sphere to the given center/radius.

Vec3center ()
 Returns the center of the bounding sphere.

const Vec3center () const
 Returns the const center of the bounding sphere.

float & radius ()
 Returns the radius of the bounding sphere.

float radius () const
 Returns the const radius of the bounding sphere.

float radius2 () const
 Returns the squared length of the radius.

void expandBy (const Vec3 &v)
 Expands the sphere to encompass the given point.

void expandRadiusBy (const Vec3 &v)
 Expands the sphere to encompass the given point.

void expandBy (const BoundingSphere &sh)
 Expands the sphere to encompass the given sphere.

void expandRadiusBy (const BoundingSphere &sh)
 Expands the sphere to encompass the given sphere.

void expandBy (const BoundingBox &bb)
 Expands the sphere to encompass the given box.

void expandRadiusBy (const BoundingBox &bb)
 Expands the sphere to encompass the given box.

bool contains (const Vec3 &v) const
 Returns true if v is within the sphere.

bool intersects (const BoundingSphere &bs) const
 Returns true if there is a non-empty intersection with the given bounding sphere.


Public Attributes

Vec3 _center
float _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.


Constructor & Destructor Documentation

osg::BoundingSphere::BoundingSphere  )  [inline]
 

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

osg::BoundingSphere::BoundingSphere const Vec3 center,
float  radius
[inline]
 

Creates a bounding sphere initialized to the given extents.

osg::BoundingSphere::BoundingSphere const BoundingSphere bs  )  [inline]
 

Creates a bounding sphere initialized to the given extents.

osg::BoundingSphere::BoundingSphere const BoundingBox bb  )  [inline]
 

Creates a bounding sphere initialized to the given extents.


Member Function Documentation

const Vec3& osg::BoundingSphere::center  )  const [inline]
 

Returns the const center of the bounding sphere.

Vec3& osg::BoundingSphere::center  )  [inline]
 

Returns the center of the bounding sphere.

bool osg::BoundingSphere::contains const Vec3 v  )  const [inline]
 

Returns true if v is within the sphere.

void osg::BoundingSphere::expandBy const BoundingBox bb  ) 
 

Expands the sphere to encompass the given box.

Repositions the sphere center to minimize the radius increase.

void osg::BoundingSphere::expandBy const BoundingSphere 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::BoundingSphere::expandBy const Vec3 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.

void osg::BoundingSphere::expandRadiusBy const BoundingBox bb  ) 
 

Expands the sphere to encompass the given box.

Does not repositions the sphere center.

void osg::BoundingSphere::expandRadiusBy const BoundingSphere 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::BoundingSphere::expandRadiusBy const Vec3 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::BoundingSphere::init  )  [inline]
 

Clear the bounding sphere.

Reset to default values.

bool osg::BoundingSphere::intersects const BoundingSphere bs  )  const [inline]
 

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

float osg::BoundingSphere::radius  )  const [inline]
 

Returns the const radius of the bounding sphere.

float& osg::BoundingSphere::radius  )  [inline]
 

Returns the radius of the bounding sphere.

float osg::BoundingSphere::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.

void osg::BoundingSphere::set const Vec3 center,
float  radius
[inline]
 

Set the bounding sphere to the given center/radius.

bool osg::BoundingSphere::valid  )  const [inline]
 

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


Member Data Documentation

Vec3 osg::BoundingSphere::_center
 

float osg::BoundingSphere::_radius
 


The documentation for this class was generated from the following file:
Generated at Thu Nov 24 16:22:47 2005 for the OpenSceneGraph by doxygen 1.3.6.