From 77f9a4d0833cfd65f451bca08d65d478a7d60a16 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 21 Apr 2004 13:20:48 +0000 Subject: [PATCH] Added searching of the filepath. --- src/osgPlugins/txp/ReaderWriterTXP.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/osgPlugins/txp/ReaderWriterTXP.cpp b/src/osgPlugins/txp/ReaderWriterTXP.cpp index ebe3a65e4..362f7520a 100644 --- a/src/osgPlugins/txp/ReaderWriterTXP.cpp +++ b/src/osgPlugins/txp/ReaderWriterTXP.cpp @@ -19,16 +19,19 @@ using namespace txp; int ReaderWriterTXP::_archiveId = 0; -osgDB::ReaderWriter::ReadResult ReaderWriterTXP::readNode(const std::string& fileName, const osgDB::ReaderWriter::Options* options) +osgDB::ReaderWriter::ReadResult ReaderWriterTXP::readNode(const std::string& file, const osgDB::ReaderWriter::Options* options) { - if( !acceptsExtension(osgDB::getFileExtension(fileName) )) + if( !acceptsExtension(osgDB::getFileExtension(file) )) return ReadResult::FILE_NOT_HANDLED; - std::string name = osgDB::getSimpleFileName(fileName); + std::string name = osgDB::getSimpleFileName(file); // We load archive.txp if (strncmp(name.c_str(),"archive",7)==0) { + std::string fileName = osgDB::findDataFile( file ); + if (fileName.empty()) return ReadResult::FILE_NOT_FOUND; + osg::ref_ptr txpNode = new TXPNode; txpNode->setArchiveName(fileName); if (options) @@ -59,7 +62,7 @@ osgDB::ReaderWriter::ReadResult ReaderWriterTXP::readNode(const std::string& fil int x,y,lod; unsigned int id; sscanf(name.c_str(),"tile%d_%dx%d_%d",&lod,&x,&y,&id); - TXPArchive* archive = getArchive(id,osgDB::getFilePath(fileName)); + TXPArchive* archive = getArchive(id,osgDB::getFilePath(file)); TXPArchive::TileInfo info; if (!archive->getTileInfo(x,y,lod,info)) @@ -105,7 +108,7 @@ osgDB::ReaderWriter::ReadResult ReaderWriterTXP::readNode(const std::string& fil int x,y,lod; unsigned int id; sscanf(name.c_str(),"subtiles%d_%dx%d_%d",&lod,&x,&y,&id); - TXPArchive* archive = getArchive(id,osgDB::getFilePath(fileName)); + TXPArchive* archive = getArchive(id,osgDB::getFilePath(file)); osg::ref_ptr subtiles = new osg::Group;