osg::BoxVolume Class Reference
[Volume]

#include <OSGBoxVolume.h>

Inheritance diagram for osg::BoxVolume:

osg::Volume

List of all members.

Operators



const BoxVolumeoperator= (const BoxVolume &b1)
 Assignment operator.
bool operator== (const BoxVolume &b1, const BoxVolume &b2)
 Equality comparisons.

Public Member Functions

bool operator== (const Volume &other) const
bool operator!= (const Volume &other) const
Constructors


 BoxVolume (void)
 BoxVolume (Real32 xmin, Real32 ymin, Real32 zmin, Real32 xmax, Real32 ymax, Real32 zmax)
 BoxVolume (const Pnt3f &min, const Pnt3f &max)
 BoxVolume (const BoxVolume &obj)
Destructors


 ~BoxVolume ()
Get


const Pnt3fgetMin (void) const
const Pnt3fgetMax (void) const
virtual void getCenter (Pnt3f &center) const
 Returns the center of a box.
virtual Real32 getScalarVolume (void) const
 Gives the volume of the box (0 for an empty box).
virtual void getBounds (Pnt3f &min, Pnt3f &max) const
void getBounds (Real32 &xmin, Real32 &ymin, Real32 &zmin, Real32 &xmax, Real32 &ymax, Real32 &zmax) const
void getOrigin (Real32 &originX, Real32 &originY, Real32 &originZ) const
void getSize (Real32 &sizeX, Real32 &sizeY, Real32 &sizeZ) const
void getSize (Vec3f &vec) const
Set


void setBounds (Real32 w, Real32 h, Real32 d)
void setBounds (Real32 xmin, Real32 ymin, Real32 zmin, Real32 xmax, Real32 ymax, Real32 zmax)
void setBounds (const Pnt3f &min, const Pnt3f &max)
void setBoundsByCenterAndSize (const Pnt3f &center, const Vec3f &size)
 set method
Extend


virtual void extendBy (const Pnt3f &pt)
 Extends Box3f (if necessary) to contain given 3D point.
virtual void extendBy (const Volume &volume)
 Extends Box3f (if necessary) to contain given 3D point.
void extendBy (const BoxVolume &bb)
 Extends Box3f (if necessary) to contain given 3D point.
Intersect


virtual bool intersect (const Pnt3f &point) const
 Returns true if intersection of given point and Box3f is not empty.
virtual bool intersect (const Line &line) const
virtual bool intersect (const Line &line, Real32 &min, Real32 &max) const
virtual bool intersect (const Volume &volume) const
 Returns true if intersection of given point and Box3f is not empty.
bool intersect (const BoxVolume &bb) const
 Returns true if intersection of given point and Box3f is not empty.
virtual bool isOnSurface (const Pnt3f &point) const
 Returns true if intersection of given point and Box3f is not empty.
Transform


virtual void transform (const Matrix &m)
 Transforms Box3f by matrix, enlarging Box3f to contain result.
Output


virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
 print the volume
State


void setValid (const bool value=true)
bool isValid (void) const
void setEmpty (const bool value=true)
bool isEmpty (void) const
void setStatic (const bool value=true)
bool isStatic (void) const
void setInfinite (const bool value=true)
bool isInfinite (void) const
bool isUntouchable (void) const
UInt16 getState (void) const
void setState (UInt16 state)

Protected Attributes

UInt16 _state

Private Attributes

Pnt3f _min
Pnt3f _max


Detailed Description

3D box defined by min and max point.

A volume encompassing an axis-aligned box. The box is defined by the point with the smallest coordinates (osg::BoxVolume::_min) and the point with the largest coordinates (osg::BoxVolume::_max).

Definition at line 62 of file OSGBoxVolume.h.


Constructor & Destructor Documentation

osg::BoxVolume::BoxVolume ( void   )  [inline]

Default constructor - leaves box totally empty

Definition at line 40 of file OSGBoxVolume.inl.

00040                          : 
00041     Volume()
00042 {
00043 }

osg::BoxVolume::BoxVolume ( Real32  xmin,
Real32  ymin,
Real32  zmin,
Real32  xmax,
Real32  ymax,
Real32  zmax 
) [inline]

Default constructor - leaves box totally empty

Definition at line 47 of file OSGBoxVolume.inl.

References osg::Volume::setEmpty().

00048                                                             :
00049      Volume(                ), 
00050     _min   (xmin, ymin, zmin), 
00051     _max   (xmax, ymax, zmax)
00052 { 
00053     setEmpty(false);
00054 }

osg::BoxVolume::BoxVolume ( const Pnt3f min,
const Pnt3f max 
) [inline]

Default constructor - leaves box totally empty

Definition at line 58 of file OSGBoxVolume.inl.

References osg::Volume::setEmpty().

00058                                                        :
00059      Volume(   ), 
00060     _min   (min), 
00061     _max   (max)
00062 { 
00063     setEmpty(false); 
00064 }

osg::BoxVolume::BoxVolume ( const BoxVolume obj  )  [inline]

Default constructor - leaves box totally empty

Definition at line 68 of file OSGBoxVolume.inl.

00068                                          :
00069      Volume(obj     ), 
00070     _min   (obj._min), 
00071     _max   (obj._max) 
00072 {
00073 }

osg::BoxVolume::~BoxVolume ( void   )  [inline]

Definition at line 77 of file OSGBoxVolume.inl.

00078 {
00079 }


Member Function Documentation

const Pnt3f & osg::BoxVolume::getMin ( void   )  const [inline]

Reimplemented from osg::Volume.

Definition at line 83 of file OSGBoxVolume.inl.

References _min.

Referenced by osg::extend(), and osg::intersect().

00084 {
00085     return _min;
00086 }

const Pnt3f & osg::BoxVolume::getMax ( void   )  const [inline]

Reimplemented from osg::Volume.

Definition at line 90 of file OSGBoxVolume.inl.

References _max.

Referenced by osg::extend(), and osg::intersect().

00091 {
00092     return _max;
00093 }

void BoxVolume::getCenter ( Pnt3f center  )  const [virtual]

Implements osg::Volume.

Definition at line 69 of file OSGBoxVolume.cpp.

References _max, _min, and osg::Volume::isEmpty().

00070 {
00071     if(isEmpty() == true)
00072     {
00073         center.setValues(0.0f, 0.0f, 0.0f);
00074     }
00075     else
00076     {
00077         center = _min + (_max - _min) * .5f;
00078     }
00079 }

Real32 BoxVolume::getScalarVolume ( void   )  const [virtual]

Implements osg::Volume.

Definition at line 83 of file OSGBoxVolume.cpp.

References _max, _min, and osg::Volume::isEmpty().

00084 {
00085     return (isEmpty() == true) ? 0.0f : (_max[0] - _min[0]) *
00086                                         (_max[1] - _min[1]) *
00087                                         (_max[2] - _min[2]);
00088 }

void BoxVolume::getBounds ( Pnt3f min,
Pnt3f max 
) const [virtual]

Implements osg::Volume.

Definition at line 91 of file OSGBoxVolume.cpp.

References _max, and _min.

Referenced by osg::drawVolume(), osg::extend(), osg::intersect(), and osg::Line::intersect().

00092 {
00093     min = _min;
00094     max = _max;
00095 }

void osg::BoxVolume::getBounds ( Real32 xmin,
Real32 ymin,
Real32 zmin,
Real32 xmax,
Real32 ymax,
Real32 zmax 
) const [inline]

Definition at line 97 of file OSGBoxVolume.inl.

References _max, and _min.

00099 {
00100     _min.getSeparateValues(xmin, ymin, zmin);
00101     _max.getSeparateValues(xmax, ymax, zmax);
00102 }

void osg::BoxVolume::getOrigin ( Real32 originX,
Real32 originY,
Real32 originZ 
) const [inline]

Definition at line 106 of file OSGBoxVolume.inl.

References _min.

00109 {
00110     originX = _min[0];
00111     originY = _min[1];
00112     originZ = _min[2];
00113 }

void osg::BoxVolume::getSize ( Real32 sizeX,
Real32 sizeY,
Real32 sizeZ 
) const [inline]

Definition at line 117 of file OSGBoxVolume.inl.

References _max, and _min.

00118 {
00119     sizeX = _max[0] - _min[0];
00120     sizeY = _max[1] - _min[1];
00121     sizeZ = _max[2] - _min[2];
00122 }

void osg::BoxVolume::getSize ( Vec3f vec  )  const [inline]

Definition at line 126 of file OSGBoxVolume.inl.

References _max, and _min.

00127 {
00128     vec.setValues(_max[0] - _min[0], _max[1] - _min[1], _max[2] - _min[2]);
00129 }

void osg::BoxVolume::setBounds ( Real32  w,
Real32  h,
Real32  d 
) [inline]

Definition at line 133 of file OSGBoxVolume.inl.

References _max, _min, osg::Volume::setEmpty(), osg::Volume::setInfinite(), and osg::Volume::setValid().

Referenced by osg::extend(), and osg::DynamicVolume::morphToType().

00134 {
00135     _min.setValues(-w / 2.0f, -h / 2.0f, -d / 2.0f);
00136     _max.setValues( w / 2.0f,  h / 2.0f,  d / 2.0f);
00137 
00138     Volume::setValid   (true );
00139     Volume::setEmpty   (false);
00140     Volume::setInfinite(false);
00141 }

void osg::BoxVolume::setBounds ( Real32  xmin,
Real32  ymin,
Real32  zmin,
Real32  xmax,
Real32  ymax,
Real32  zmax 
) [inline]

Definition at line 145 of file OSGBoxVolume.inl.

References _max, _min, osg::Volume::setEmpty(), osg::Volume::setInfinite(), and osg::Volume::setValid().

00147 {
00148     _min.setValues(xmin, ymin, zmin);
00149     _max.setValues(xmax, ymax, zmax);
00150 
00151     Volume::setValid   (true );
00152     Volume::setEmpty   (false);
00153     Volume::setInfinite(false);
00154 }

void osg::BoxVolume::setBounds ( const Pnt3f min,
const Pnt3f max 
) [inline]

Definition at line 158 of file OSGBoxVolume.inl.

References _max, _min, osg::Volume::setEmpty(), osg::Volume::setInfinite(), and osg::Volume::setValid().

00159 {
00160     _min = min; 
00161     _max = max;
00162 
00163     Volume::setValid   (true );
00164     Volume::setEmpty   (false);
00165     Volume::setInfinite(false);
00166 }

void BoxVolume::setBoundsByCenterAndSize ( const Pnt3f center,
const Vec3f size 
)

Definition at line 99 of file OSGBoxVolume.cpp.

References _max, _min, osg::PointInterface< ValueTypeT, StorageInterfaceT >::isZero(), osg::Volume::setEmpty(), osg::Volume::setInfinite(), and osg::Volume::setValid().

00101 {
00102     _min.setValues(center.x() - size.x() / 2.0f,
00103                    center.y() - size.y() / 2.0f,
00104                    center.z() - size.z() / 2.0f);
00105     _max.setValues(center.x() + size.x() / 2.0f,
00106                    center.y() + size.y() / 2.0f,
00107                    center.z() + size.z() / 2.0f);
00108 
00109     Volume::setValid   (true);
00110     Volume::setEmpty   (size.isZero());
00111     Volume::setInfinite(false);
00112 }

void BoxVolume::extendBy ( const Pnt3f pt  )  [virtual]

Implements osg::Volume.

Definition at line 119 of file OSGBoxVolume.cpp.

References _max, _min, osg::Volume::isEmpty(), osg::Volume::isUntouchable(), and osg::Volume::setEmpty().

00120 {
00121     if(isUntouchable() == true)
00122         return;
00123 
00124     if(isEmpty() == true)
00125     {
00126         _min[0] = _max[0] = pt[0];
00127         _min[1] = _max[1] = pt[1];
00128         _min[2] = _max[2] = pt[2];
00129 
00130         setEmpty(false);
00131 
00132         return;
00133     }
00134 
00135     if(pt[0] < _min[0])
00136     {
00137         _min[0] = pt[0];
00138     }
00139     else
00140     {
00141         if(pt[0] > _max[0])
00142             _max[0] = pt[0];
00143     }
00144 
00145     if(pt[1] < _min[1])
00146     {
00147         _min[1] = pt[1];
00148     }
00149     else
00150     {
00151         if(pt[1] > _max[1])
00152             _max[1] = pt[1];
00153     }
00154 
00155     if(pt[2] < _min[2])
00156     {
00157         _min[2] = pt[2];
00158     }
00159     else
00160     {
00161         if(pt[2] > _max[2])
00162             _max[2] = pt[2];
00163     }
00164 }

void BoxVolume::extendBy ( const Volume volume  )  [virtual]

Implements osg::Volume.

Definition at line 167 of file OSGBoxVolume.cpp.

References osg::extend().

00168 {
00169     OSG::extend(*this,volume);
00170 }

void osg::BoxVolume::extendBy ( const BoxVolume bb  )  [inline]

Definition at line 170 of file OSGBoxVolume.inl.

References osg::extend().

00171 {
00172     OSG::extend(*this, volume);
00173 }

bool BoxVolume::intersect ( const Pnt3f point  )  const [virtual]

Implements osg::Volume.

Definition at line 176 of file OSGBoxVolume.cpp.

References _max, _min, and osg::Volume::isEmpty().

00177 {
00178     return 
00179         (!isEmpty()      &&
00180         (_min[0] < pt[0] && _max[0] > pt[0]) &&
00181         (_min[1] < pt[1] && _max[1] > pt[1]) &&
00182         (_min[2] < pt[2] && _max[2] > pt[2]));
00183 }

bool BoxVolume::intersect ( const Line line  )  const [virtual]

intersect the box with the given Line

Implements osg::Volume.

Definition at line 187 of file OSGBoxVolume.cpp.

References osg::Line::intersect().

00188 {
00189     Real32 enter;
00190     Real32 exit;
00191 
00192     return line.intersect(*this, enter, exit);
00193 }

bool BoxVolume::intersect ( const Line line,
Real32 min,
Real32 max 
) const [virtual]

intersect the box with the given Line

Implements osg::Volume.

Definition at line 199 of file OSGBoxVolume.cpp.

References osg::Line::intersect().

00200 {
00201     return line.intersect(*this, min, max);
00202 }

bool BoxVolume::intersect ( const Volume volume  )  const [virtual]

Implements osg::Volume.

Definition at line 205 of file OSGBoxVolume.cpp.

References osg::intersect().

00206 {
00207     return OSG::intersect(*this, volume);
00208 }

bool BoxVolume::intersect ( const BoxVolume bb  )  const

Definition at line 211 of file OSGBoxVolume.cpp.

References osg::intersect().

00212 {
00213     return OSG::intersect(*this, volume);
00214 }

bool BoxVolume::isOnSurface ( const Pnt3f point  )  const [virtual]

Implements osg::Volume.

Definition at line 217 of file OSGBoxVolume.cpp.

References _max, _min, osg::Eps, and osg::osgabs().

00218 {
00219     if(((osgabs(point[0] - _min[0]) < Eps           ||
00220          osgabs(point[0] - _max[0]) < Eps             ) &&
00221         (point[1] >= _min[1] && point[1] <= _max[1] &&
00222          point[2] >= _min[2] && point[2] <= _max[2]   )   ) ||
00223 
00224        ((osgabs(point[1] - _min[1]) < Eps           ||
00225          osgabs(point[1] - _max[1]) < Eps             ) &&
00226         (point[0] >= _min[0] && point[0] <= _max[1] &&
00227          point[2] >= _min[2] && point[2] <= _max[2]   )   ) ||
00228 
00229        ((osgabs(point[2] - _min[2]) < Eps           ||
00230          osgabs(point[2] - _max[2]) < Eps             ) &&
00231         (point[1] >= _min[1] && point[1] <= _max[1] &&
00232          point[0] >= _min[0] && point[0] <= _max[0]   )   )   )
00233     {
00234         return true;
00235     }
00236     else
00237     {
00238         return false;
00239     }
00240 }

void BoxVolume::transform ( const Matrix m  )  [virtual]

Implements osg::Volume.

Definition at line 245 of file OSGBoxVolume.cpp.

References _max, _min, and osg::Volume::isEmpty().

00246 {
00247     Real32 xmin;
00248     Real32 ymin;
00249     Real32 zmin;
00250     Real32 xmax;
00251     Real32 ymax;
00252     Real32 zmax;
00253     Real32 a;
00254     Real32 b;
00255 
00256     if(isEmpty() == true)
00257         return;
00258 
00259     xmin = xmax = m[3][0];
00260     ymin = ymax = m[3][1];
00261     zmin = zmax = m[3][2];
00262 
00263     //
00264     // calculate xmin and xmax of new tranformed BBox
00265     //
00266 
00267     a = _max[0] * m[0][0];
00268     b = _min[0] * m[0][0];
00269 
00270     if(a >= b)
00271     {
00272         xmax += a;
00273         xmin += b;
00274     }
00275     else
00276     {
00277         xmax += b;
00278         xmin += a;
00279     }
00280 
00281     a = _max[1] * m[1][0];
00282     b = _min[1] * m[1][0];
00283 
00284     if(a >= b) 
00285     {
00286         xmax += a;
00287         xmin += b;
00288     }
00289     else
00290     {
00291         xmax += b;
00292         xmin += a;
00293     }
00294     
00295     a = _max[2] * m[2][0];
00296     b = _min[2] * m[2][0];
00297 
00298     if(a >= b)
00299     {
00300         xmax += a;
00301         xmin += b;
00302     }
00303     else
00304     {
00305         xmax += b;
00306         xmin += a;
00307     }
00308 
00309     //
00310     // calculate ymin and ymax of new tranformed BBox
00311     //
00312 
00313     a = _max[0] * m[0][1];
00314     b = _min[0] * m[0][1];
00315 
00316     if(a >= b)
00317     {
00318         ymax += a;
00319         ymin += b;
00320     }
00321     else
00322     {
00323         ymax += b;
00324         ymin += a;
00325     }
00326 
00327     a = _max[1] * m[1][1];
00328     b = _min[1] * m[1][1];
00329 
00330     if(a >= b)
00331     {
00332         ymax += a;
00333         ymin += b;
00334     }
00335     else
00336     {
00337         ymax += b;
00338         ymin += a;
00339     }
00340 
00341     a = _max[2] * m[2][1];
00342     b = _min[2] * m[2][1];
00343 
00344     if(a >= b)
00345     {
00346         ymax += a;
00347         ymin += b;
00348     }
00349     else
00350     {
00351         ymax += b;
00352         ymin += a;
00353     }
00354 
00355     //
00356     // calculate zmin and zmax of new tranformed BBox
00357     //
00358 
00359     a = _max[0] * m[0][2];
00360     b = _min[0] * m[0][2];
00361 
00362     if(a >= b) 
00363     {
00364         zmax += a;
00365         zmin += b;
00366     }
00367     else
00368     {
00369         zmax += b;
00370         zmin += a;
00371     }
00372 
00373     a = _max[1] * m[1][2];
00374     b = _min[1] * m[1][2];
00375 
00376     if(a >= b)
00377     {
00378         zmax += a;
00379         zmin += b;
00380     }
00381     else
00382     {
00383         zmax += b;
00384         zmin += a;
00385     }
00386 
00387     a = _max[2] * m[2][2];
00388     b = _min[2] * m[2][2];
00389 
00390     if(a >= b)
00391     {
00392         zmax += a;
00393         zmin += b;
00394     }
00395     else
00396     {
00397         zmax += b;
00398         zmin += a;
00399     }
00400 
00401     _min.setValues(xmin, ymin, zmin);
00402     _max.setValues(xmax, ymax, zmax);
00403 }

const BoxVolume & BoxVolume::operator= ( const BoxVolume b1  ) 

Definition at line 407 of file OSGBoxVolume.cpp.

References _max, _min, and osg::Volume::_state.

00408 {
00409     if(&b1 == this)
00410         return *this;
00411 
00412     _min   = b1._min;
00413     _max   = b1._max;
00414     _state = b1._state;
00415 
00416     return *this;
00417 }

void BoxVolume::dump ( UInt32  uiIndent = 0,
const BitVector  bvFlags = 0 
) const [virtual]

Implements osg::Volume.

Definition at line 421 of file OSGBoxVolume.cpp.

References _max, _min, and PLOG.

00423 {
00424     PLOG << "Box(" << _min << "|" << _max << ")";
00425 }

void osg::Volume::setValid ( const bool  value = true  )  [inline, inherited]

bool osg::Volume::isValid ( void   )  const [inline, inherited]

Checks if the volume is valid

Definition at line 96 of file OSGVolume.inl.

References osg::Volume::_state, and osg::Volume::OSGVALID.

Referenced by osg::extend(), osg::Group::intersect(), osg::Geometry::intersect(), osg::DVRVolume::intersect(), and osg::Node::invalidateVolume().

00097 {
00098     return (_state & OSGVALID) ? true : false;
00099 }

void osg::Volume::setEmpty ( const bool  value = true  )  [inline, inherited]

bool osg::Volume::isEmpty ( void   )  const [inline, inherited]

void osg::Volume::setStatic ( const bool  value = true  )  [inline, inherited]

set the volume to be static

Definition at line 63 of file OSGVolume.inl.

References osg::Volume::_state, and osg::Volume::OSGSTATIC.

00064 {
00065     if(value == true)
00066         _state |= OSGSTATIC;
00067     else
00068         _state &= ~OSGSTATIC;
00069 }

bool osg::Volume::isStatic ( void   )  const [inline, inherited]

Checks if the volume is static

Definition at line 74 of file OSGVolume.inl.

References osg::Volume::_state, and osg::Volume::OSGSTATIC.

Referenced by osg::extend(), osg::Node::invalidateVolume(), and osg::Volume::setValid().

00075 {
00076     return (_state & OSGSTATIC) ? true : false;
00077 }

void osg::Volume::setInfinite ( const bool  value = true  )  [inline, inherited]

set the volume to be infinite

Definition at line 129 of file OSGVolume.inl.

References osg::Volume::_state, osg::Volume::OSGEMPTY, osg::Volume::OSGINFINITE, and osg::Volume::OSGVALID.

Referenced by osg::extend(), setBounds(), and setBoundsByCenterAndSize().

00130 {
00131     if(value == true)
00132     {
00133         _state |=  OSGINFINITE;
00134         _state |=  OSGVALID;
00135         _state &= ~OSGEMPTY;
00136     }
00137     else
00138     {
00139         _state &= ~OSGINFINITE;
00140     }
00141 }

bool osg::Volume::isInfinite ( void   )  const [inline, inherited]

Checks if the volume is infinite

Definition at line 146 of file OSGVolume.inl.

References osg::Volume::_state, and osg::Volume::OSGINFINITE.

Referenced by osg::extend(), and osg::intersect().

00147 {
00148     return (_state & OSGINFINITE) ? true : false;
00149 }

bool osg::Volume::isUntouchable ( void   )  const [inline, inherited]

Checks if the volume is untouchable, i.e. it's values should not be changed. Mainly used internally to speed up early outs in extendBy().

Definition at line 157 of file OSGVolume.inl.

References osg::Volume::_state, osg::Volume::OSGINFINITE, osg::Volume::OSGSTATIC, and osg::Volume::OSGVALID.

Referenced by osg::SphereVolume::extendBy(), and extendBy().

00158 {
00159     return (_state & (OSGINFINITE | OSGVALID | OSGSTATIC)) != OSGVALID;
00160 }

UInt16 osg::Volume::getState ( void   )  const [inline, inherited]

get the volume's state

Definition at line 166 of file OSGVolume.inl.

References osg::Volume::_state.

Referenced by osg::DynamicVolume::instanceChanged().

00167 {
00168     return _state;
00169 }

void osg::Volume::setState ( UInt16  val  )  [inline, inherited]

set the volume's state

Definition at line 174 of file OSGVolume.inl.

References osg::Volume::_state.

00175 {
00176     _state = val;
00177 }

bool Volume::operator== ( const Volume other  )  const [inherited]

Definition at line 53 of file OSGVolume.cpp.

References osg::Volume::_state.

00054 {
00055     return _state == other._state;
00056 }

bool Volume::operator!= ( const Volume other  )  const [inherited]

Definition at line 58 of file OSGVolume.cpp.

00059 {
00060     return !(*this == other);
00061 }


Friends And Related Function Documentation

bool operator== ( const BoxVolume b1,
const BoxVolume b2 
) [friend]

Definition at line 432 of file OSGBoxVolume.cpp.

00433 {
00434     return ((b1._min[0] == b2._min[0]) &&
00435             (b1._min[1] == b2._min[1]) &&
00436             (b1._min[2] == b2._min[2]) &&
00437             (b1._max[0] == b2._max[0]) &&
00438             (b1._max[1] == b2._max[1]) &&
00439             (b2._max[2] == b2._max[2])   );
00440 }


Member Data Documentation

UInt16 osg::Volume::_state [protected, inherited]


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

Generated on Mon Mar 17 11:10:44 2008 for OpenSG by  doxygen 1.5.5