Public Types | Public Member Functions | Public Attributes

osg::BoundingBoxImpl< VT > Class Template Reference

List of all members.

Public Types

typedef VT vec_type
typedef VT::value_type value_type

Public Member Functions

 BoundingBoxImpl ()
 BoundingBoxImpl (value_type xmin, value_type ymin, value_type zmin, value_type xmax, value_type ymax, value_type zmax)
 BoundingBoxImpl (const vec_type &min, const vec_type &max)
void init ()
bool valid () const
void set (value_type xmin, value_type ymin, value_type zmin, value_type xmax, value_type ymax, value_type zmax)
void set (const vec_type &min, const vec_type &max)
value_typexMin ()
value_type xMin () const
value_typeyMin ()
value_type yMin () const
value_typezMin ()
value_type zMin () const
value_typexMax ()
value_type xMax () const
value_typeyMax ()
value_type yMax () const
value_typezMax ()
value_type zMax () const
const vec_type center () const
value_type radius () const
value_type radius2 () const
const vec_type corner (unsigned int pos) const
void expandBy (const vec_type &v)
void expandBy (value_type x, value_type y, value_type z)
void expandBy (const BoundingBoxImpl &bb)
void expandBy (const BoundingSphereImpl< VT > &sh)
BoundingBoxImpl intersect (const BoundingBoxImpl &bb) const
bool intersects (const BoundingBoxImpl &bb) const
bool contains (const vec_type &v) const

Public Attributes

vec_type _min
vec_type _max

Detailed Description

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

General purpose axis-aligned bounding box class for enclosing objects/vertices. Bounds leaf objects in a scene such as osg::Drawable objects. Used for frustum culling etc.


Member Typedef Documentation

template<typename VT>
typedef VT::value_type osg::BoundingBoxImpl< VT >::value_type
template<typename VT>
typedef VT osg::BoundingBoxImpl< VT >::vec_type

Constructor & Destructor Documentation

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

Creates an uninitialized bounding box.

Referenced by osg::BoundingBoxImpl< VT >::intersect().

template<typename VT>
osg::BoundingBoxImpl< VT >::BoundingBoxImpl ( value_type  xmin,
value_type  ymin,
value_type  zmin,
value_type  xmax,
value_type  ymax,
value_type  zmax 
) [inline]

Creates a bounding box initialized to the given extents.

template<typename VT>
osg::BoundingBoxImpl< VT >::BoundingBoxImpl ( const vec_type min,
const vec_type max 
) [inline]

Creates a bounding box initialized to the given extents.


Member Function Documentation

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

Returns true if this bounding box contains the specified coordinate.

References osg::BoundingBoxImpl< VT >::_max, osg::BoundingBoxImpl< VT >::_min, and osg::BoundingBoxImpl< VT >::valid().

template<typename VT>
const vec_type osg::BoundingBoxImpl< VT >::corner ( unsigned int  pos  )  const [inline]

Returns a specific corner of the bounding box. pos specifies the corner as a number between 0 and 7. Each bit selects an axis, X, Y, or Z from least- to most-significant. Unset bits select the minimum value for that axis, and set bits select the maximum.

References osg::BoundingBoxImpl< VT >::_max, and osg::BoundingBoxImpl< VT >::_min.

Referenced by osg::BoundingSphereImpl< VT >::expandBy(), osg::BoundingSphereImpl< VT >::expandRadiusBy(), and osg::Plane::intersect().

template<typename VT>
void osg::BoundingBoxImpl< VT >::expandBy ( const vec_type v  )  [inline]

Expands the bounding box to include the given coordinate. If the box is uninitialized, set its min and max extents to v.

References osg::BoundingBoxImpl< VT >::_max, and osg::BoundingBoxImpl< VT >::_min.

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

template<typename VT>
void osg::BoundingBoxImpl< VT >::expandBy ( value_type  x,
value_type  y,
value_type  z 
) [inline]

Expands the bounding box to include the given coordinate. If the box is uninitialized, set its min and max extents to Vec3(x,y,z).

References osg::BoundingBoxImpl< VT >::_max, and osg::BoundingBoxImpl< VT >::_min.

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

Expands this bounding box to include the given bounding box. If this box is uninitialized, set it equal to bb.

References osg::BoundingBoxImpl< VT >::_max, osg::BoundingBoxImpl< VT >::_min, and osg::BoundingBoxImpl< VT >::valid().

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

Expands this bounding box to include the given sphere. If this box is uninitialized, set it to include sh.

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

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

Clear the bounding box. Erases existing minimum and maximum extents.

References osg::BoundingBoxImpl< VT >::_max, and osg::BoundingBoxImpl< VT >::_min.

template<typename VT>
BoundingBoxImpl osg::BoundingBoxImpl< VT >::intersect ( const BoundingBoxImpl< VT > &  bb  )  const [inline]
template<typename VT>
bool osg::BoundingBoxImpl< VT >::intersects ( const BoundingBoxImpl< VT > &  bb  )  const [inline]
template<typename VT>
value_type osg::BoundingBoxImpl< VT >::radius (  )  const [inline]

Calculates and returns the bounding box radius.

References osg::BoundingBoxImpl< VT >::radius2().

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

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

Calculates and returns the squared length of the bounding box radius. Note, radius2() is faster to calculate than radius().

References osg::BoundingBoxImpl< VT >::_max, and osg::BoundingBoxImpl< VT >::_min.

Referenced by osg::BoundingBoxImpl< VT >::radius().

template<typename VT>
void osg::BoundingBoxImpl< VT >::set ( const vec_type min,
const vec_type max 
) [inline]

Sets the bounding box extents.

References osg::BoundingBoxImpl< VT >::_max, and osg::BoundingBoxImpl< VT >::_min.

template<typename VT>
void osg::BoundingBoxImpl< VT >::set ( value_type  xmin,
value_type  ymin,
value_type  zmin,
value_type  xmax,
value_type  ymax,
value_type  zmax 
) [inline]

Sets the bounding box extents.

References osg::BoundingBoxImpl< VT >::_max, and osg::BoundingBoxImpl< VT >::_min.

template<typename VT>
bool osg::BoundingBoxImpl< VT >::valid (  )  const [inline]
template<typename VT>
value_type& osg::BoundingBoxImpl< VT >::xMax (  )  [inline]
template<typename VT>
value_type osg::BoundingBoxImpl< VT >::xMax (  )  const [inline]
template<typename VT>
value_type osg::BoundingBoxImpl< VT >::xMin (  )  const [inline]
template<typename VT>
value_type& osg::BoundingBoxImpl< VT >::xMin (  )  [inline]
template<typename VT>
value_type& osg::BoundingBoxImpl< VT >::yMax (  )  [inline]
template<typename VT>
value_type osg::BoundingBoxImpl< VT >::yMax (  )  const [inline]
template<typename VT>
value_type osg::BoundingBoxImpl< VT >::yMin (  )  const [inline]
template<typename VT>
value_type& osg::BoundingBoxImpl< VT >::yMin (  )  [inline]
template<typename VT>
value_type osg::BoundingBoxImpl< VT >::zMax (  )  const [inline]
template<typename VT>
value_type& osg::BoundingBoxImpl< VT >::zMax (  )  [inline]
template<typename VT>
value_type osg::BoundingBoxImpl< VT >::zMin (  )  const [inline]
template<typename VT>
value_type& osg::BoundingBoxImpl< VT >::zMin (  )  [inline]

Member Data Documentation

template<typename VT>
vec_type osg::BoundingBoxImpl< VT >::_max
template<typename VT>
vec_type osg::BoundingBoxImpl< VT >::_min

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