#include #include #include #include #include #include #include #include #include #include #include bool ImageLayer_readLocalData(osg::Object &obj, osgDB::Input &fr); bool ImageLayer_writeLocalData(const osg::Object &obj, osgDB::Output &fw); osgDB::RegisterDotOsgWrapperProxy ImageLayer_Proxy ( new osgTerrain::ImageLayer, "ImageLayer", "Object Layer ImageLayer", ImageLayer_readLocalData, ImageLayer_writeLocalData ); bool ImageLayer_readLocalData(osg::Object& obj, osgDB::Input &fr) { osgTerrain::ImageLayer& layer = static_cast(obj); bool itrAdvanced = false; if (fr.matchSequence("file %w") || fr.matchSequence("file %s")) { std::string filename = fr[1].getStr(); if (!filename.empty()) { osg::ref_ptr image = fr.readImage(filename.c_str()); if (image.valid()) { layer.setFileName(filename); layer.setImage(image.get()); } } fr += 2; itrAdvanced = true; } return itrAdvanced; } bool ImageLayer_writeLocalData(const osg::Object& obj, osgDB::Output& fw) { const osgTerrain::ImageLayer& layer = static_cast(obj); if (!layer.getFileName().empty()) { fw.indent()<<"file "<< layer.getFileName() << std::endl; } return true; }