void osgManipulator::computeNodePathToRoot(osg::Node& node, osg::NodePath& np) { np.clear(); osg::ref_ptr<FindNodePathToRootVisitor> visitor = new FindNodePathToRootVisitor(np); node.accept(*visitor); np.pop_back(); std::reverse(np.begin(), np.end()); }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // computeNodePathToRoot // void osgManipulator::computeNodePathToRoot(osg::Node& node, osg::NodePath& np) { np.clear(); osg::NodePathList nodePaths = node.getParentalNodePaths(); if (!nodePaths.empty()) { np = nodePaths.front(); if (nodePaths.size()>1) { OSG_NOTICE<<"osgManipulator::computeNodePathToRoot(,) taking first parent path, ignoring others."<<std::endl; } } }