From 3880d8e2f248002ee97f8e68afc8779ff993a757 Mon Sep 17 00:00:00 2001 From: frohlich Date: Sat, 6 Jun 2009 10:38:53 +0000 Subject: [PATCH] Slight cleanup. Remive last reference to plibs file utility library. Modified Files: simgear/scene/model/SGReaderWriterXML.cxx --- simgear/scene/model/SGReaderWriterXML.cxx | 31 +++++++++++------------ 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/simgear/scene/model/SGReaderWriterXML.cxx b/simgear/scene/model/SGReaderWriterXML.cxx index 20dc337d..68147571 100644 --- a/simgear/scene/model/SGReaderWriterXML.cxx +++ b/simgear/scene/model/SGReaderWriterXML.cxx @@ -78,11 +78,9 @@ SGReaderWriterXML::readNode(const std::string& fileName, const SGReaderWriterXMLOptions* xmlOptions = dynamic_cast(options); - string fg_root; SGSharedPtr prop_root; osg::Node *(*load_panel)(SGPropertyNode *)=0; SGModelData *model_data=0; - SGPath externalTexturePath; if (xmlOptions) { prop_root = xmlOptions->getPropRoot(); @@ -93,8 +91,6 @@ SGReaderWriterXML::readNode(const std::string& fileName, prop_root = new SGPropertyNode; } - fg_root=osgDB::Registry::instance()->getDataFilePathList().front(); - osg::Node *result=0; try { @@ -143,25 +139,28 @@ sgLoad3DModel_internal(const string &path, SG_LOG(SG_GENERAL, SG_ALERT, "prop_root NULL: " << path); } - string fg_root=osgDB::Registry::instance()->getDataFilePathList().front(); + osgDB::FilePathList filePathList; + filePathList = osgDB::Registry::instance()->getDataFilePathList(); + filePathList.push_front(osgDB::convertFileNameToNativeStyle("/")); + + SGPath modelpath = osgDB::findFileInPath(path, filePathList); + if (modelpath.str().empty()) { + SG_LOG(SG_INPUT, SG_ALERT, "Failed to load file: \"" << path << "\""); + return 0; + } + SGPath texturepath = modelpath; + osg::ref_ptr model; osg::ref_ptr group; SGPropertyNode_ptr props = new SGPropertyNode; - // Load the 3D object itself - SGPath modelpath = path, texturepath = path; - if ( !ulIsAbsolutePathName( path.c_str() ) ) { - SGPath tmp = fg_root; - tmp.append(modelpath.str()); - modelpath = texturepath = tmp; - } - // Check for an XML wrapper - if (modelpath.str().substr(modelpath.str().size() - 4, 4) == ".xml") { - try { + if (modelpath.extension() == "xml") { + try { readProperties(modelpath.str(), props); } catch (const sg_throwable &t) { - SG_LOG(SG_INPUT, SG_ALERT, "Failed to load xml: " << t.getFormattedMessage()); + SG_LOG(SG_INPUT, SG_ALERT, "Failed to load xml: " + << t.getFormattedMessage()); throw; } if (overlay) -- 2.39.5