From Eric Sokolosky, insertChild().
This commit is contained in:
parent
c5c7a1b2ba
commit
9c5f84e99e
@ -50,6 +50,13 @@ class SG_EXPORT Group : public Node
|
|||||||
*/
|
*/
|
||||||
virtual bool addChild( Node *child );
|
virtual bool addChild( 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 insertChild( unsigned int index, Node *child );
|
||||||
|
|
||||||
/** Remove Node from Group.
|
/** Remove Node from Group.
|
||||||
* If Node is contained in Group then remove it from the child
|
* If Node is contained in Group then remove it from the child
|
||||||
* list, decrement its reference count, and dirty the
|
* list, decrement its reference count, and dirty the
|
||||||
|
@ -65,6 +65,11 @@ void Group::traverse(NodeVisitor& nv)
|
|||||||
|
|
||||||
|
|
||||||
bool Group::addChild( Node *child )
|
bool Group::addChild( Node *child )
|
||||||
|
{
|
||||||
|
return Group::insertChild( _children.size(), child );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Group::insertChild( unsigned int index, Node *child )
|
||||||
{
|
{
|
||||||
if (!child) return false;
|
if (!child) return false;
|
||||||
|
|
||||||
@ -79,7 +84,14 @@ bool Group::addChild( Node *child )
|
|||||||
if (child)
|
if (child)
|
||||||
{
|
{
|
||||||
// note ref_ptr<> automatically handles incrementing child's reference count.
|
// note ref_ptr<> automatically handles incrementing child's reference count.
|
||||||
_children.push_back(child);
|
if (index >= _children.size())
|
||||||
|
{
|
||||||
|
_children.push_back(child);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_children.insert(_children.begin()+index, child);
|
||||||
|
}
|
||||||
|
|
||||||
// register as parent of child.
|
// register as parent of child.
|
||||||
child->addParent(this);
|
child->addParent(this);
|
||||||
|
Loading…
Reference in New Issue
Block a user