From 70647b8801df8c17c9056a8bdabd1aaf1eeda775 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 15 Jul 2005 09:56:36 +0000 Subject: [PATCH] Fixed bug in ProxyNode write out where non existant children were written out. --- src/osgPlugins/ive/ProxyNode.cpp | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/osgPlugins/ive/ProxyNode.cpp b/src/osgPlugins/ive/ProxyNode.cpp index 579f01036..088433e63 100644 --- a/src/osgPlugins/ive/ProxyNode.cpp +++ b/src/osgPlugins/ive/ProxyNode.cpp @@ -70,7 +70,8 @@ void ProxyNode::write(DataOutputStream* out) if (getFileName(i).empty()) { out->writeString(""); - ++numChildrenToWriteOut; + + if (iwriteNode(getChild(i)); - } - else if(out->getWriteExternalReferenceFiles()) - { - if(out->getUseOriginalExternalReferences()) + if (getFileName(i).empty()) { - osgDB::writeNodeFile(*getChild(i), getFileName(i)); + out->writeNode(getChild(i)); } - else + else if(out->getWriteExternalReferenceFiles()) { - std::string ivename = osgDB::getFilePath(getFileName(i)) +"/"+ osgDB::getStrippedName(getFileName(i)) +".ive"; - osgDB::writeNodeFile(*getChild(i), ivename); + if(out->getUseOriginalExternalReferences()) + { + osgDB::writeNodeFile(*getChild(i), getFileName(i)); + } + else + { + std::string ivename = osgDB::getFilePath(getFileName(i)) +"/"+ osgDB::getStrippedName(getFileName(i)) +".ive"; + osgDB::writeNodeFile(*getChild(i), ivename); + } } } }