#include #include #include #include bool BumpMapping_readLocalData(osg::Object &obj, osgDB::Input &fr); bool BumpMapping_writeLocalData(const osg::Object &obj, osgDB::Output &fw); osgDB::RegisterDotOsgWrapperProxy BumpMapping_Proxy ( new osgFX::BumpMapping, "osgFX::BumpMapping", "Object Node Group osgFX::Effect osgFX::BumpMapping", BumpMapping_readLocalData, BumpMapping_writeLocalData ); bool BumpMapping_readLocalData(osg::Object &obj, osgDB::Input &fr) { osgFX::BumpMapping &myobj = static_cast(obj); bool itAdvanced = false; if (fr[0].matchWord("lightNumber")) { int n; if (fr[1].getInt(n)) { myobj.setLightNumber(n); fr += 2; itAdvanced = true; } } if (fr[0].matchWord("diffuseUnit")) { int n; if (fr[1].getInt(n)) { myobj.setDiffuseTextureUnit(n); fr += 2; itAdvanced = true; } } if (fr[0].matchWord("normalMapUnit")) { int n; if (fr[1].getInt(n)) { myobj.setNormalMapTextureUnit(n); fr += 2; itAdvanced = true; } } osg::ref_ptr diffuse_tex = static_cast(fr.readObjectOfType(osgDB::type_wrapper())); if (diffuse_tex.valid()) { myobj.setOverrideDiffuseTexture(diffuse_tex.get()); itAdvanced = true; } osg::ref_ptr normal_tex = static_cast(fr.readObjectOfType(osgDB::type_wrapper())); if (normal_tex.valid()) { myobj.setOverrideNormalMapTexture(normal_tex.get()); itAdvanced = true; } return itAdvanced; } bool BumpMapping_writeLocalData(const osg::Object &obj, osgDB::Output &fw) { const osgFX::BumpMapping &myobj = static_cast(obj); fw.indent() << "lightNumber " << myobj.getLightNumber() << "\n"; fw.indent() << "diffuseUnit " << myobj.getDiffuseTextureUnit() << "\n"; fw.indent() << "normalMapUnit " << myobj.getNormalMapTextureUnit() << "\n"; if (myobj.getOverrideDiffuseTexture()) { fw.writeObject(*myobj.getOverrideDiffuseTexture()); } if (myobj.getOverrideNormalMapTexture()) { fw.writeObject(*myobj.getOverrideNormalMapTexture()); } return true; }