void SceneGraphTreeModel::addNode(NodeUnrecPtr parent,NodeUnrecPtr nodeToBeAdded) { UInt32 ChildIndex(parent->getNChildren()); NodeRefPtr(parent)->addChild(nodeToBeAdded); produceTreeNodesInserted(createPath(parent),std::vector<UInt32>(1, ChildIndex),std::vector<boost::any>(1, nodeToBeAdded)); if(parent->getNChildren() == 1) { if(parent->getParent() != NULL) { std::vector<UInt32> childIndices; childIndices.push_back(parent->getParent()->findChild(parent)); std::vector<boost::any> ChildUserObjects; for(UInt32 i(0) ; i< childIndices.size() ; ++i) { ChildUserObjects.push_back(boost::any(NodeUnrecPtr(parent->getParent()->getChild(childIndices[i])))); } produceTreeNodesChanged(createPath(NodeUnrecPtr(parent->getParent())), childIndices, ChildUserObjects); } } }
NodeRefPtr GetTail() { return _child ? _child->GetTail() : NodeRefPtr(this); }