void Node::removeInstanceNodes() { SceneGraph *sg = getSceneGraph(); if (sg && isInstanceNode() == false) { Node *node = sg->getNodes(); while (node) { Node *nextNode = node->nextTraversal(); if (node->isInstanceNode() == true) { Node *refNode = node->getReferenceNode(); while (refNode->isInstanceNode() == true) refNode = refNode->getReferenceNode(); if (refNode == this) { node->deleteChildNodes(); nextNode = node->nextTraversal(); delete node; } } node = nextNode; } } }