#include #include #include #include #include bool Cartoon_readLocalData(osg::Object &obj, osgDB::Input &fr); bool Cartoon_writeLocalData(const osg::Object &obj, osgDB::Output &fw); osgDB::RegisterDotOsgWrapperProxy Cartoon_Proxy ( new osgFX::Cartoon, "osgFX::Cartoon", "Object Node Group osgFX::Effect osgFX::Cartoon", Cartoon_readLocalData, Cartoon_writeLocalData ); bool Cartoon_readLocalData(osg::Object &obj, osgDB::Input &fr) { osgFX::Cartoon &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("outlineColor")) { osg::Vec4 w; if (fr[1].getFloat(w.x()) && fr[2].getFloat(w.y()) && fr[3].getFloat(w.z()) && fr[4].getFloat(w.w())) { myobj.setOutlineColor(w); fr += 5; itAdvanced = true; } } if (fr[0].matchWord("outlineLineWidth")) { float f; if (fr[1].getFloat(f)) { myobj.setOutlineLineWidth(f); fr += 2; itAdvanced = true; } } return itAdvanced; } bool Cartoon_writeLocalData(const osg::Object &obj, osgDB::Output &fw) { const osgFX::Cartoon &myobj = static_cast(obj); fw.indent() << "lightNumber " << myobj.getLightNumber() << "\n"; fw.indent() << "outlineColor " << myobj.getOutlineColor() << "\n"; fw.indent() << "outlineLineWidth " << myobj.getOutlineLineWidth() << "\n"; return true; }