#include #include #include #include #include #include bool MultiSegmentPlacer_readLocalData(osg::Object &obj, osgDB::Input &fr); bool MultiSegmentPlacer_writeLocalData(const osg::Object &obj, osgDB::Output &fw); osgDB::RegisterDotOsgWrapperProxy MultiSegmentPlacer_Proxy ( new osgParticle::MultiSegmentPlacer, "MultiSegmentPlacer", "Object Placer MultiSegmentPlacer", MultiSegmentPlacer_readLocalData, MultiSegmentPlacer_writeLocalData ); bool MultiSegmentPlacer_readLocalData(osg::Object &obj, osgDB::Input &fr) { osgParticle::MultiSegmentPlacer &myobj = static_cast(obj); bool itAdvanced = false; osg::Vec3 v; if (fr[0].matchWord("vertex")) { if (fr[1].getFloat(v.x()) && fr[2].getFloat(v.y()) && fr[3].getFloat(v.z())) { myobj.addVertex(v); fr += 4; itAdvanced = true; } } return itAdvanced; } bool MultiSegmentPlacer_writeLocalData(const osg::Object &obj, osgDB::Output &fw) { const osgParticle::MultiSegmentPlacer &myobj = static_cast(obj); int n = myobj.numVertices(); for (int i=0; i