OpenSceneGraph 2.8.4
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
osg::Geode Class Reference

A Geode is a "geometry node", that is, a leaf node on the scene graph that can have "renderable things" attached to it. More...

Inheritance diagram for osg::Geode:
Inheritance graph
[legend]

List of all members.

Public Types

typedef std::vector< ref_ptr
< Drawable > > 
DrawableList

Public Member Functions

 Geode ()
 Geode (const Geode &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 Copy constructor using CopyOp to manage deep vs shallow copy.
 META_Node (osg, Geode)
virtual GeodeasGeode ()
 Convert 'this' into a Geode pointer if Node is a Geode, otherwise return 0.
virtual const GeodeasGeode () const
 convert 'const this' into a const Geode pointer if Node is a Geode, otherwise return 0.
virtual bool addDrawable (Drawable *drawable)
 Add a Drawable to the Geode.
virtual bool removeDrawable (Drawable *drawable)
 Remove a Drawable from the Geode.
virtual bool removeDrawables (unsigned int i, unsigned int numDrawablesToRemove=1)
 Remove Drawable(s) from the specified position in Geode's drawable list.
virtual bool replaceDrawable (Drawable *origDraw, Drawable *newDraw)
 Replace specified Drawable with another Drawable.
virtual bool setDrawable (unsigned int i, Drawable *drawable)
 Set Drawable at position i.
unsigned int getNumDrawables () const
 Return the number of Drawables currently attached to the Geode.
DrawablegetDrawable (unsigned int i)
 Return the Drawable at position i.
const DrawablegetDrawable (unsigned int i) const
 Return the Drawable at position i.
bool containsDrawable (const Drawable *gset) const
 Return true if a given Drawable is contained within Geode.
unsigned int getDrawableIndex (const Drawable *drawable) const
 Get the index number of drawable.
const DrawableListgetDrawableList () const
 Get the list of drawables.
void compileDrawables (RenderInfo &renderInfo)
 Compile OpenGL Display List for each drawable.
const BoundingBoxgetBoundingBox () const
 Return the Geode's bounding box, which is the union of all the bounding boxes of the geode's drawables.
virtual BoundingSphere computeBound () const
 Compute the bounding sphere around Node's geometry or children.
virtual void setThreadSafeRefUnref (bool threadSafe)
 Set whether to use a mutex to ensure ref() and unref() are thread safe.
virtual void resizeGLObjectBuffers (unsigned int maxSize)
 Resize any per context GLObject buffers to specified size.
virtual void releaseGLObjects (osg::State *=0) const
 If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context.

Protected Member Functions

virtual ~Geode ()

Protected Attributes

osg::BoundingBox _bbox
DrawableList _drawables

Detailed Description

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 Drawables.


Member Typedef Documentation

typedef std::vector< ref_ptr<Drawable> > osg::Geode::DrawableList

Constructor & Destructor Documentation

osg::Geode::Geode ( )
osg::Geode::Geode ( const Geode ,
const CopyOp copyop = CopyOp::SHALLOW_COPY 
)

Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osg::Geode::~Geode ( ) [protected, virtual]

Member Function Documentation

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().

Parameters:
drawableThe Drawable to be added to the Geode.
Returns:
true for success; false otherwise.

Reimplemented in osg::Billboard.

virtual Geode* osg::Geode::asGeode ( ) [inline, virtual]

Convert 'this' into a Geode pointer if Node is a Geode, otherwise return 0.

Equivalent to dynamic_cast<Geode*>(this).

Reimplemented from osg::Node.

virtual const Geode* osg::Geode::asGeode ( ) const [inline, virtual]

convert 'const this' into a const Geode pointer if Node is a Geode, otherwise return 0.

Equivalent to dynamic_cast<const Geode*>(this).

Reimplemented from osg::Node.

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]

Return true if a given Drawable is contained within Geode.

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.

Returns:
A value between 0 and 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 Drawables 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]

If State is non-zero, this function releases any associated OpenGL objects for the specified graphics context.

Otherwise, releases OpenGL objects for all graphics contexts.

Reimplemented from osg::Node.

virtual bool osg::Geode::removeDrawable ( Drawable drawable) [virtual]

Remove a Drawable from the Geode.

Equivalent to removeDrawable(getDrawableIndex(drawable).

Parameters:
drawableThe drawable to be removed.
Returns:
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]

Remove Drawable(s) from the specified position in Geode's drawable list.

Parameters:
iThe index of the first Drawable to remove.
numDrawablesToRemoveThe number of Drawable to remove.
Returns:
true if at least one Drawable was removed. false otherwise.
virtual bool osg::Geode::replaceDrawable ( Drawable origDraw,
Drawable newDraw 
) [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.

Returns:
true if set correctly, false on failure (if node==NULL || i is out of range).
virtual void osg::Geode::setThreadSafeRefUnref ( bool  threadSafe) [virtual]

Set whether to use a mutex to ensure ref() and unref() are thread safe.

Reimplemented from osg::Node.


Member Data Documentation

osg::BoundingBox osg::Geode::_bbox [mutable, protected]

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

osg logo
Generated at Sun Jan 8 2012 13:16:10 for the OpenSceneGraph by doxygen 1.7.4.