source: experimental/TerrainTest/ReaderWriterTerrainMod.cpp @ 250

Last change on this file since 250 was 250, checked in by Torben Dannhauer, 13 years ago
File size: 1.3 KB
Line 
1#include "ReaderWriterTerrainMod.h"
2
3ReaderWriterTerrainMod::ReaderWriterTerrainMod()
4{
5        supportsExtension( "terrainmod", "Terrain modification pseudo loader");
6}
7
8//ReaderWriterTerrainMod::~ReaderWriterTerrainMod()
9//{
10//}
11
12ReaderWriterTerrainMod::ReadResult ReaderWriterTerrainMod::readNode( const std::string& file, const osgDB::ReaderWriter::Options* options) const
13{
14        std::string ext = osgDB::getLowerCaseFileExtension( file );
15        if( !acceptsExtension(ext) )
16                return ReadResult::FILE_NOT_HANDLED;
17
18        std::string fileName = osgDB::findDataFile( file, options );
19        if( fileName.empty() )
20                return ReadResult::FILE_NOT_FOUND;
21
22        /*std::ifstream( fileName.c_str(), std::ios::in );
23        if( !stream )
24                return ReadResult::ERROR_IN_READING_FILE;
25        return readNode( stream, options );*/
26
27        // Strip the pseudo-loader extension
28    std::string realName = osgDB::getNameLessExtension( fileName );
29
30        // Load real file
31        osg::Node *node = osgDB::readNodeFile( realName, options );
32    if( !node )
33    {
34        // propagate the read failure upwards
35        OSG_WARN << "Subfile \"" << realName << "\" could not be loaded" << std::endl;
36        return ReadResult::FILE_NOT_HANDLED;
37    }
38
39        // Modify Node
40
41        return node;
42}
43
44
45// Add ourself to the Registry to instantiate the reader/writer.
46REGISTER_OSGPLUGIN(terrainmod, ReaderWriterTerrainMod)
Note: See TracBrowser for help on using the repository browser.