## class SG_EXPORT osg::Geode

> Leaf Node for grouping Drawables

## Inheritance:

### Public Methods

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 bool addDrawable( Drawable* drawable )
  Add Drawable to Geode.
virtual bool removeDrawable( Drawable* drawable )
  Remove Drawable from Geode.
virtual bool removeDrawable(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.
inline unsigned int getNumDrawables() const
  return the number of drawable's
inline Drawable* getDrawable( unsigned int i )
  return drawable at position i
inline const Drawable* getDrawable( unsigned int i ) const
  return drawable at position i
inline bool containsDrawable(const Drawable* gset) const
  return true if drawable is contained within Geode
inline unsigned int getDrawableIndex( const Drawable* node ) const
  Get the index number of drawable, return a value between 0 and _drawablessize()-1 if found, if not found then return _drawablessize()
void compileDrawables(State& state)
  compile OpenGL Display List for each drawable

### Public Members

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

### Protected Fields

DrawableList _drawables

### Protected Methods

virtual ~Geode()
virtual bool computeBound() const

### Inherited from Node:

### Public Methods

virtual Object* cloneType() const
virtual Object* clone(const CopyOp& copyop) const
virtual bool isSameKindAs(const Object* obj) const
virtual const char* libraryName() const
virtual const char* className() const
virtual Group* asGroup()
virtual const Group* asGroup() const
virtual Transform* asTransform()
virtual const Transform* asTransform() const
virtual void accept(NodeVisitor& nv)
virtual void ascend(NodeVisitor& nv)
virtual void traverse(NodeVisitor& )
inline void setName( const std::string& name )
inline void setName( const char* name )
inline const std::string& getName() const
inline const ParentList& getParents() const
inline ParentList getParents()
inline Group* getParent(unsigned int i)
inline const Group* getParent(unsigned int i) const
inline unsigned int getNumParents() const
void setUpdateCallback(NodeCallback* nc)
inline NodeCallback* getUpdateCallback()
inline const NodeCallback* getUpdateCallback() const
inline unsigned int getNumChildrenRequiringUpdateTraversal() const
void setCullCallback(NodeCallback* nc)
inline NodeCallback* getCullCallback()
inline const NodeCallback* getCullCallback() const
void setCullingActive(bool active)
inline bool getCullingActive() const
inline unsigned int getNumChildrenWithCullingDisabled() const
inline bool isCullingActive() const
inline unsigned int getNumChildrenWithOccluderNodes() const
bool containsOccluderNodes() const
inline void setNodeMask(NodeMask nm)
inline NodeMask getNodeMask() const
inline const DescriptionList& getDescriptions() const
inline DescriptionList& getDescriptions()
inline const std::string& getDescription(unsigned int i) const
inline std::string& getDescription(unsigned int i)
inline unsigned int getNumDescriptions() const
void addDescription(const std::string& desc)
inline void setStateSet(osg::StateSet* dstate)
osg::StateSet* getOrCreateStateSet()
inline osg::StateSet* getStateSet()
inline const osg::StateSet* getStateSet() const
inline const BoundingSphere& getBound() const
void dirtyBound()

### Public Members

typedef std::vector<Group*> ParentList
typedef unsigned int NodeMask
typedef std::vector<std::string> DescriptionList

### Protected Fields

mutable BoundingSphere _bsphere
mutable bool _bsphere_computed
std::string _name
ParentList _parents
ref_ptr<NodeCallback> _updateCallback
unsigned int _numChildrenRequiringUpdateTraversal
ref_ptr<NodeCallback> _cullCallback
bool _cullingActive
unsigned int _numChildrenWithCullingDisabled
unsigned int _numChildrenWithOccluderNodes
NodeMask _nodeMask
DescriptionList _descriptions
ref_ptr<StateSet> _stateset

### Protected Methods

void addParent(osg::Group* node)
void removeParent(osg::Group* node)
void setNumChildrenRequiringUpdateTraversal(unsigned int num)
void setNumChildrenWithCullingDisabled(unsigned int num)
void setNumChildrenWithOccluderNodes(unsigned int num)

### Inherited from Object:

### Public Methods

inline void setDataVariance(DataVariance dv)
inline DataVariance getDataVariance() const
inline void setUserData(Referenced* obj)
inline Referenced* getUserData()
inline const Referenced* getUserData() const

### Public Members

enum DataVariance

### Protected Fields

DataVariance _dataVariance
ref_ptr<Referenced> _userData

### Inherited from Referenced:

### Public Methods

inline Referenced& operator = (Referenced&)
static void setDeleteHandler(DeleteHandler* handler)
static DeleteHandler* getDeleteHandler()
inline void ref() const
inline void unref_nodelete() const
inline int referenceCount() const
inline void unref() const

### Protected Fields

mutable int _refCount

## Documentation

> Leaf Node for grouping Drawables

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

`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 bool addDrawable( Drawable* drawable )`
  Add Drawable to Geode. If gset is not NULL and is not contained in Geode then increment its reference count, add it to the drawables list and dirty the bounding sphere to force it to recompute on next getBound() and return true for success. Otherwise return false.

`virtual bool removeDrawable( Drawable* drawable )`
  Remove Drawable from Geode. Equivalent to setDrawabke(getDrawableIndex(orignChild),node), see docs for setNode for futher details on implementation.

`virtual bool removeDrawable(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. Equivalent to setDrawable(getDrawableIndex(orignChild),node), see docs for setDrawable for futher details on implementation.

`virtual bool setDrawable( unsigned int i, Drawable* drawable )`
  set drawable at position i. return true if set correctly, false on failure (if node==NULL || i is out of range). 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.

`inline unsigned int getNumDrawables() const`
  return the number of drawable's

`inline Drawable* getDrawable( unsigned int i )`
  return drawable at position i

`inline const Drawable* getDrawable( unsigned int i ) const`
  return drawable at position i

`inline bool containsDrawable(const Drawable* gset) const`
  return true if drawable is contained within Geode

`inline unsigned int getDrawableIndex( const Drawable* node ) const`
  Get the index number of drawable, return a value between 0 and _drawablessize()-1 if found, if not found then return _drawablessize()

`void compileDrawables(State& state)`
  compile OpenGL Display List for each drawable

`virtual ~Geode()`

`virtual bool computeBound() const`

`DrawableList _drawables`

Direct child classes:
  Billboard

Alphabetic index HTML hierarchy of classes or Java

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