## class SG_EXPORT osg::BoundingSphere

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

### Public Fields

Vec3 _center
float _radius

### Public Methods

BoundingSphere()
  construct to invalid values to represent an unset bounding sphere
BoundingSphere(const Vec3& center, float radius)
  construct to specified bounding sphere
inline void init()
  initialize to invalid values to represent an unset bounding sphere
inline bool valid() const
  return true if the bounding sphere contains valid values, false if the bounding sphere is effectively unset
inline void set(const Vec3& center, float radius)
  set bounding sphere
inline Vec3& center()
  return the center of the bounding sphere
inline const Vec3& center() const
  return the const center of the bounding sphere
inline float& radius()
  return the radius of the bounding sphere
inline float radius() const
  return the const radius of the bounding sphere
inline float radius2() const
  return the radius squared.
void expandBy(const Vec3& v)
  If the vertex is out-with the sphere expand to encompass vertex.
void expandRadiusBy(const Vec3& v)
  If the vertex is outwith the sphere expand radius to ecompass vertex.
void expandBy(const BoundingSphere& sh)
  If incomming sphere is outwith the sphere expand to ecompass incomming sphere.
void expandRadiusBy(const BoundingSphere& sh)
  If incomming sphere is outwith the sphere expand radius to ecompass incomming sphere.
void expandBy(const BoundingBox& bb)
  If incomming box is outwith the sphere expand to ecompass incomming box.
void expandRadiusBy(const BoundingBox& bb)
  If incomming box is outwith the sphere expand radius to ecompass incomming box.
inline bool contains(const Vec3& v) const
  return true is vertex v is within the sphere
inline bool intersects( const BoundingSphere& bs ) const
  return true if bounding sphere's intersect each other

## Documentation

> General purpose bounding sphere class for enclosing nodes/objects/vertices. Used to bound internal osg::Node's in the scene, to assist in view frustum culling etc. Similar in function to BoundingBox but is quicker for evaluating culling, but generally encloses a greater volume than a BoundingBox so will not cull so aggressively.

`Vec3 _center`

`float _radius`

`BoundingSphere()`
  construct to invalid values to represent an unset bounding sphere

`BoundingSphere(const Vec3& center, float radius)`
  construct to specified bounding sphere

`inline void init()`
  initialize to invalid values to represent an unset bounding sphere

`inline bool valid() const`
  return true if the bounding sphere contains valid values, false if the bounding sphere is effectively unset

`inline void set(const Vec3& center, float radius)`
  set bounding sphere

`inline Vec3& center()`
  return the center of the bounding sphere

`inline const Vec3& center() const`
  return the const center of the bounding sphere

`inline float& radius()`
  return the radius of the bounding sphere

`inline float radius() const`
  return the const radius of the bounding sphere

`inline float radius2() const`
  return the radius squared. Note, for performance reasons, assumes the calling method has ensured that the sphere is valid before calling radius2(), i.e. has _radius>=0.0, as it does not check th validity of sphere and will erroneously return a positive value.

`void expandBy(const Vec3& v)`
  If the vertex is out-with the sphere expand to encompass vertex. Calculates the combination of movement of center and radius which minimizes the radius increase. If this sphere is empty then move the center to v and set radius to 0.

`void expandRadiusBy(const Vec3& v)`
  If the vertex is outwith the sphere expand radius to ecompass vertex. Unlike update, does not move the center, just increasing the radius. If this sphere is empty then move the centrer to v and set radius to 0

`void expandBy(const BoundingSphere& sh)`
  If incomming sphere is outwith the sphere expand to ecompass incomming sphere. calculates the combination of movement of center and radius which minimizes the radius increase. If this sphere is empty then move the centrer to v and set radius to 0.

`void expandRadiusBy(const BoundingSphere& sh)`
  If incomming sphere is outwith the sphere expand radius to ecompass incomming sphere. Unlike update, does not move the center, just increasing the radius. If this sphere is empty then move the centrer to v and set radius to 0.

`void expandBy(const BoundingBox& bb)`
  If incomming box is outwith the sphere expand to ecompass incomming box. calculates the combination of movement of center and radius which minimizes the radius increase. If this boz is empty then move the centrer to v and set radius to 0.

`void expandRadiusBy(const BoundingBox& bb)`
  If incomming box is outwith the sphere expand radius to ecompass incomming box. Unlike update, does not move the center, just increasing the radius. If this sphere is empty then move the centrer to v and set radius to 0.

`inline bool contains(const Vec3& v) const`
  return true is vertex v is within the sphere

`inline bool intersects( const BoundingSphere& bs ) const`
  return true if bounding sphere's intersect each other

This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java

This page was generated with the help of DOC++.