## class SG_EXPORT osg::Group

> General group node which maintains a list of children.

## Inheritance:

### Public Methods

Group()
Group(const Group&, const CopyOp& copyop=CopyOp::SHALLOW_COPY)
  Copy constructor using CopyOp to manage deep vs shallow copy
META_Node(osg, Group)
virtual Group* asGroup()
virtual const Group* asGroup() const
virtual void traverse(NodeVisitor& nv)
virtual bool addChild( Node* child )
  Add Node to Group.
virtual bool insertChild( unsigned int index, Node* child )
  Insert Node to Group at specific location.
virtual bool removeChild( Node* child )
  Remove Node from Group.
virtual bool removeChild(unsigned int pos, unsigned int numChildrenToRemove=1)
virtual bool replaceChild( Node* origChild, Node* newChild )
  Replace specified Node with another Node.
inline unsigned int getNumChildren() const
  return the number of chilren nodes
virtual bool setChild( unsigned int i, Node* node )
  set child node at position i.
inline Node* getChild( unsigned int i )
  return child node at position i
inline const Node* getChild( unsigned int i ) const
  return child node at position i
inline bool containsNode( const Node* node ) const
  return true if node is contained within Group
inline unsigned int getChildIndex( const Node* node ) const
  Get the index number of child, return a value between 0 and _childrensize()-1 if found, if not found then return _childrensize()

### Protected Fields

NodeList _children

### Protected Methods

virtual ~Group()
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 Transform* asTransform()
virtual const Transform* asTransform() const
virtual void accept(NodeVisitor& nv)
virtual void ascend(NodeVisitor& nv)
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

> General group node which maintains a list of children. Children are reference counted. This allows children to be shared with memory management handled automatically via osg::Referenced.

`Group()`

`Group(const Group&, const CopyOp& copyop=CopyOp::SHALLOW_COPY)`
  Copy constructor using CopyOp to manage deep vs shallow copy

`META_Node(osg, Group)`

`virtual Group* asGroup()`

`virtual const Group* asGroup() const`

`virtual void traverse(NodeVisitor& nv)`

`virtual bool addChild( Node* child )`
  Add Node to Group. If node is not NULL and is not contained in Group then increment its reference count, add it to the child list and dirty the bounding sphere to force it to recompute on next getBound() and return true for success. Otherwise return false. Scene nodes can't be added as child nodes.

`virtual bool insertChild( unsigned int index, Node* child )`
  Insert Node to Group at specific location. The new child node is inserted into the child list before the node at the specified index. No nodes are removed from the group with this operation.

`virtual bool removeChild( Node* child )`
  Remove Node from Group. If Node is contained in Group then remove it from the child list, decrement its reference count, and dirty the bounding sphere to force it to recompute on next getBound() and return true for success. If Node is not found then return false and do not change the reference count of the Node.

`virtual bool removeChild(unsigned int pos, unsigned int numChildrenToRemove=1)`

`virtual bool replaceChild( Node* origChild, Node* newChild )`
  Replace specified Node with another Node. Equivalent to setChild(getChildIndex(orignChild),node), see docs for setChild for futher details on implementation.

`inline unsigned int getNumChildren() const`
  return the number of chilren nodes

`virtual bool setChild( unsigned int i, Node* node )`
  set child node at position i. return true if set correctly, false on failure (if node==NULL || i is out of range). When set can be successful applied, the algorithm is : decrement the reference count origNode and increments the reference count of newNode, and dirty the bounding sphere to force it to recompute on next getBound() and returns true. If origNode is not found then return false and do not add newNode. If newNode is NULL then return false and do not remove origNode. Also returns false if newChild is a Scene node.

`inline Node* getChild( unsigned int i )`
  return child node at position i

`inline const Node* getChild( unsigned int i ) const`
  return child node at position i

`inline bool containsNode( const Node* node ) const`
  return true if node is contained within Group

`inline unsigned int getChildIndex( const Node* node ) const`
  Get the index number of child, return a value between 0 and _childrensize()-1 if found, if not found then return _childrensize()

`virtual ~Group()`

`virtual bool computeBound() const`

`NodeList _children`

Direct child classes:
  Transform
  Switch
  Sequence
  Projection
  OccluderNode
  LightSource
  LOD
  ClipNode
  ClearNode

Alphabetic index HTML hierarchy of classes or Java

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