Changeset 252 for experimental/TerrainTest/ReaderWriterTerrainMod.cpp
- Timestamp:
- Feb 21, 2011, 6:35:43 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
experimental/TerrainTest/ReaderWriterTerrainMod.cpp
r251 r252 4 4 { 5 5 supportsExtension( "terrainmod", "Terrain modification pseudo loader"); 6 7 std::string extensionToAdd = ".terrainmod"; 6 8 } 7 8 //ReaderWriterTerrainMod::~ReaderWriterTerrainMod()9 //{10 //}11 9 12 10 ReaderWriterTerrainMod::ReadResult ReaderWriterTerrainMod::readNode( const std::string& file, const osgDB::ReaderWriter::Options* options) const 13 11 { 12 // Check if its a valid file for this pseudo loader 14 13 std::string ext = osgDB::getLowerCaseFileExtension( file ); 15 14 if( !acceptsExtension(ext) ) 16 15 return ReadResult::FILE_NOT_HANDLED; 17 16 18 std::string fileName = osgDB::findDataFile( file, options ); 17 // Strip the pseudo-loader extension 18 std::string realName = osgDB::getNameLessExtension( file ); 19 20 // check if stripped file exists 21 std::string fileName = osgDB::findDataFile( realName, options ); 19 22 if( fileName.empty() ) 20 23 return ReadResult::FILE_NOT_FOUND; 21 24 22 // Strip the pseudo-loader extension23 std::string realName = osgDB::getNameLessExtension( fileName );24 25 25 // Load real file 26 osg::Node *node = osgDB::readNodeFile( realName, options );26 osg::Node *node = osgDB::readNodeFile( fileName, options ); 27 27 if( !node ) 28 28 { 29 29 // propagate the read failure upwards 30 OSG_WARN << "Subfile \"" << realName << "\" could not be loaded" << std::endl;30 OSG_WARN << "Subfile \"" << fileName << "\" could not be loaded" << std::endl; 31 31 return ReadResult::FILE_NOT_HANDLED; 32 32 } 33 33 34 // Modify Node35 OSG_NOTIFY( osg::ALWAYS ) << "Doing modification in pseudoloader!" << std::endl;36 37 34 // Traverse through loaded graph, check for PagedLOD and modify all filenames of external references 38 ModificationVisitor modVisitor ;35 ModificationVisitor modVisitor(extensionToAdd); 39 36 node->accept( modVisitor ); 40 41 std::string extensionToAdd = ".terrainmod";42 43 37 44 38 return node; 45 39 } 46 40 47 48 41 // Add ourself to the Registry to instantiate the reader/writer. 49 42 REGISTER_OSGPLUGIN(terrainmod, ReaderWriterTerrainMod)
Note: See TracChangeset
for help on using the changeset viewer.