void Node::addChild( NodeRef node ) { if( node && !hasChild( node ) ) { // remove child from current parent NodeRef parent = node->getParent(); if( parent ) parent->removeChild( node ); // add to children mChildren.push_back( node ); // set parent node->setParent( shared_from_this() ); // store nodes in lookup table if not done yet uuidLookup[mUuid] = NodeWeakRef( shared_from_this() ); uuidLookup[node->mUuid] = NodeWeakRef( node ); } }
void Node::removeFromParent() { NodeRef node = mParent.lock(); if(node) node->removeChild( shared_from_this() ); }