From 09f63eebbb5458bd0a8e687a2099cfd1eab78e96 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 24 Aug 2007 19:16:02 +0000 Subject: [PATCH] Added support for reading a .osg style data from a file string when trailed by a .osgs extension i.e. osgviewer "osgTerrain::Terrain { ElevationLayer { CartesianLocator 0 0 1000000 1000000 Image ps_height_512.tif } ColorLayer { CartesianLocator 0 0 1000000 1000000 Image ps_texture_1k.tif } }".osgs --- src/osgDB/Registry.cpp | 1 + src/osgPlugins/osg/ReaderWriterOSG.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/osgDB/Registry.cpp b/src/osgDB/Registry.cpp index 409faa824..5a7cfba70 100644 --- a/src/osgDB/Registry.cpp +++ b/src/osgDB/Registry.cpp @@ -169,6 +169,7 @@ Registry::Registry() #endif } + addFileExtensionAlias("osgs", "osg"); addFileExtensionAlias("shadow", "osgShadow"); addFileExtensionAlias("terrain", "osgTerrain"); addFileExtensionAlias("view", "osgViewer"); diff --git a/src/osgPlugins/osg/ReaderWriterOSG.cpp b/src/osgPlugins/osg/ReaderWriterOSG.cpp index 2c35d0430..2813aade6 100644 --- a/src/osgPlugins/osg/ReaderWriterOSG.cpp +++ b/src/osgPlugins/osg/ReaderWriterOSG.cpp @@ -30,6 +30,14 @@ class OSGReaderWriter : public ReaderWriter virtual ReadResult readNode(const std::string& file, const Options* opt) const { std::string ext = osgDB::getLowerCaseFileExtension(file); + + if (equalCaseInsensitive(ext,"osgs")) + { + std::istringstream fin(osgDB::getNameLessExtension(file)); + if (fin) return readNode(fin,opt); + return ReadResult::ERROR_IN_READING_FILE; + } + if (!acceptsExtension(ext)) return ReadResult::FILE_NOT_HANDLED; std::string fileName = osgDB::findDataFile( file, opt );