openscenegraph
|
Public Types | |
typedef std::vector< ref_ptr < Drawable > > | DrawableList |
Public Member Functions | |
Geode () | |
Geode (const Geode &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | |
META_Node (osg, Geode) | |
virtual Geode * | asGeode () |
virtual const Geode * | asGeode () const |
virtual bool | addDrawable (Drawable *drawable) |
virtual bool | removeDrawable (Drawable *drawable) |
virtual bool | removeDrawables (unsigned int i, unsigned int numDrawablesToRemove=1) |
virtual bool | replaceDrawable (Drawable *origDraw, Drawable *newDraw) |
virtual bool | setDrawable (unsigned int i, Drawable *drawable) |
unsigned int | getNumDrawables () const |
Drawable * | getDrawable (unsigned int i) |
const Drawable * | getDrawable (unsigned int i) const |
bool | containsDrawable (const Drawable *gset) const |
unsigned int | getDrawableIndex (const Drawable *drawable) const |
const DrawableList & | getDrawableList () const |
void | compileDrawables (RenderInfo &renderInfo) |
const BoundingBox & | getBoundingBox () const |
virtual BoundingSphere | computeBound () const |
virtual void | setThreadSafeRefUnref (bool threadSafe) |
virtual void | resizeGLObjectBuffers (unsigned int maxSize) |
virtual void | releaseGLObjects (osg::State *=0) const |
Protected Member Functions | |
virtual | ~Geode () |
Protected Attributes | |
osg::BoundingBox | _bbox |
DrawableList | _drawables |
A Geode
is a "geometry node", that is, a leaf node on the scene graph that can have "renderable things" attached to it. In OSG, renderable things are represented by objects from the Drawable
class, so a Geode
is a Node
whose purpose is grouping Drawable
s.
typedef std::vector< ref_ptr<Drawable> > osg::Geode::DrawableList |
osg::Geode::Geode | ( | ) |
Copy constructor using CopyOp to manage deep vs shallow copy.
virtual osg::Geode::~Geode | ( | ) | [protected, virtual] |
virtual bool osg::Geode::addDrawable | ( | Drawable * | drawable | ) | [virtual] |
Add a Drawable
to the Geode
. If drawable
is not NULL
and is not contained in the Geode
then increment its reference count, add it to the drawables list and dirty the bounding sphere to force it to be recomputed on the next call to getBound()
.
true
for success; false
otherwise. Reimplemented in osg::Billboard.
virtual Geode* osg::Geode::asGeode | ( | ) | [inline, virtual] |
virtual const Geode* osg::Geode::asGeode | ( | ) | const [inline, virtual] |
void osg::Geode::compileDrawables | ( | RenderInfo & | renderInfo | ) |
Compile OpenGL Display List for each drawable.
virtual BoundingSphere osg::Geode::computeBound | ( | ) | const [virtual] |
Compute the bounding sphere around Node's geometry or children. This method is automatically called by getBound() when the bounding sphere has been marked dirty via dirtyBound().
Reimplemented from osg::Node.
Reimplemented in osg::Billboard.
bool osg::Geode::containsDrawable | ( | const Drawable * | gset | ) | const [inline] |
const BoundingBox& osg::Geode::getBoundingBox | ( | ) | const [inline] |
Return the Geode's bounding box, which is the union of all the bounding boxes of the geode's drawables.
Drawable* osg::Geode::getDrawable | ( | unsigned int | i | ) | [inline] |
Return the Drawable
at position i
.
Referenced by osgUtil::Simplifier::apply().
const Drawable* osg::Geode::getDrawable | ( | unsigned int | i | ) | const [inline] |
Return the Drawable
at position i
.
unsigned int osg::Geode::getDrawableIndex | ( | const Drawable * | drawable | ) | const [inline] |
Get the index number of drawable
.
getNumDrawables()-1
if drawable
is found; if not found, then getNumDrawables()
is returned. const DrawableList& osg::Geode::getDrawableList | ( | ) | const [inline] |
Get the list of drawables.
unsigned int osg::Geode::getNumDrawables | ( | ) | const [inline] |
Return the number of Drawable
s currently attached to the Geode
.
Referenced by osgUtil::Simplifier::apply().
osg::Geode::META_Node | ( | osg | , |
Geode | |||
) |
virtual void osg::Geode::releaseGLObjects | ( | osg::State * | = 0 | ) | const [virtual] |
virtual bool osg::Geode::removeDrawable | ( | Drawable * | drawable | ) | [virtual] |
Remove a Drawable
from the Geode
. Equivalent to removeDrawable(getDrawableIndex(drawable)
.
drawable | The drawable to be removed. |
true
if at least one Drawable
was removed. false
otherwise. Reimplemented in osg::Billboard.
virtual bool osg::Geode::removeDrawables | ( | unsigned int | i, |
unsigned int | numDrawablesToRemove = 1 |
||
) | [virtual] |
Replace specified Drawable with another Drawable. Equivalent to setDrawable(getDrawableIndex(origDraw),newDraw)
, see docs for setDrawable()
for further details on implementation.
virtual void osg::Geode::resizeGLObjectBuffers | ( | unsigned int | maxSize | ) | [virtual] |
Resize any per context GLObject buffers to specified size.
Reimplemented from osg::Node.
virtual bool osg::Geode::setDrawable | ( | unsigned int | i, |
Drawable * | drawable | ||
) | [virtual] |
Set Drawable
at position i
. Decrement the reference count origGSet and increments the reference count of newGset, and dirty the bounding sphere to force it to recompute on next getBound() and returns true. If origDrawable is not found then return false and do not add newGset. If newGset is NULL then return false and do not remove origGset.
true
if set correctly, false
on failure (if node==NULL || i is out of range). virtual void osg::Geode::setThreadSafeRefUnref | ( | bool | threadSafe | ) | [virtual] |
osg::BoundingBox osg::Geode::_bbox [mutable, protected] |
DrawableList osg::Geode::_drawables [protected] |