#include #include #include #include #include #include #include #include using namespace osgSim; bool BlinkSequence_readLocalData(osg::Object &obj, osgDB::Input &fr); bool BlinkSequence_writeLocalData(const osg::Object &obj, osgDB::Output &fw); osgDB::RegisterDotOsgWrapperProxy BlinkSequence_Proxy ( new BlinkSequence, "BlinkSequence", "Object BlinkSequence", &BlinkSequence_readLocalData, &BlinkSequence_writeLocalData, osgDB::DotOsgWrapper::READ_AND_WRITE ); bool BlinkSequence_readLocalData(osg::Object &obj, osgDB::Input &fr) { bool iteratorAdvanced = false; BlinkSequence &seq = static_cast(obj); if (fr.matchSequence("phaseShift %f")) { double ps; fr[1].getFloat(ps); fr += 2; seq.setPhaseShift(ps); iteratorAdvanced = true; } if (fr.matchSequence("pulse %f %f %f %f %f")) { double length; float r, g, b, a; fr[1].getFloat(length); fr[2].getFloat(r); fr[3].getFloat(g); fr[4].getFloat(b); fr[5].getFloat(a); fr += 6; seq.addPulse(length, osg::Vec4(r, g, b, a)); iteratorAdvanced = true; } SequenceGroup * sg = static_cast (fr.readObjectOfType(osgDB::type_wrapper())); if (sg) { seq.setSequenceGroup(sg); iteratorAdvanced = true; } return iteratorAdvanced; } bool BlinkSequence_writeLocalData(const osg::Object &obj, osgDB::Output &fw) { const BlinkSequence &seq = static_cast(obj); fw.indent()<<"phaseShift "<< seq.getPhaseShift() << std::endl; if (seq.getSequenceGroup() != NULL) { fw.writeObject(*seq.getSequenceGroup()); } for (int i=0; i(obj); if (fr.matchSequence("baseTime %f")) { fr[1].getFloat(sg._baseTime); fr += 2; iteratorAdvanced = true; } return iteratorAdvanced; } bool BlinkSequence_SequenceGroup_writeLocalData(const osg::Object &obj, osgDB::Output &fw) { const SequenceGroup &sg = static_cast(obj); fw.indent()<<"baseTime "<< sg._baseTime << std::endl; return true; }