Reverted change of Node::ParentList from being a vector<Node*> back to a vector<Group*>

This commit is contained in:
Robert Osfield
2014-06-03 09:52:55 +00:00
parent 3dde165f14
commit 333a16a88d
6 changed files with 13 additions and 29 deletions

View File

@@ -95,18 +95,18 @@ Node::~Node()
setStateSet(0);
}
void Node::addParent(osg::Node* node)
void Node::addParent(osg::Group* parent)
{
OpenThreads::ScopedPointerLock<OpenThreads::Mutex> lock(getRefMutex());
_parents.push_back(node);
_parents.push_back(parent);
}
void Node::removeParent(osg::Node* node)
void Node::removeParent(osg::Group* parent)
{
OpenThreads::ScopedPointerLock<OpenThreads::Mutex> lock(getRefMutex());
ParentList::iterator pitr = std::find(_parents.begin(),_parents.end(),node);
ParentList::iterator pitr = std::find(_parents.begin(), _parents.end(), parent);
if (pitr!=_parents.end()) _parents.erase(pitr);
}

View File

@@ -316,8 +316,7 @@ void TXPParser::removeEmptyGroups()
osg::Node::ParentList parents = node->getParents();
for (unsigned int j = 0; j < parents.size(); j++)
{
osg::Node* parent = parents[j];
if (parent) parent->removeChild(node);
parents[j]->removeChild(node);
}
}
}

View File

@@ -1387,7 +1387,7 @@ void Optimizer::RemoveEmptyNodesVisitor::removeEmptyNodes()
pitr!=parents.end();
++pitr)
{
osg::Node* parent = *pitr;
osg::Group* parent = *pitr;
if (!dynamic_cast<osg::Sequence*>(parent) &&
!dynamic_cast<osg::Switch*>(parent) &&
strcmp(parent->className(),"MultiSwitch")!=0)