⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 io_blinksequence.cpp

📁 最新osg包
💻 CPP
字号:
#include <osgSim/BlinkSequence>#include <osg/io_utils>#include <iostream>#include <string>#include <osgDB/Registry>#include <osgDB/Input>#include <osgDB/Output>#include <osgDB/ParameterOutput>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<BlinkSequence &>(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<SequenceGroup *>        (fr.readObjectOfType(osgDB::type_wrapper<SequenceGroup>()));    if (sg) {        seq.setSequenceGroup(sg);        iteratorAdvanced = true;    }    return iteratorAdvanced;}bool BlinkSequence_writeLocalData(const osg::Object &obj, osgDB::Output &fw){    const BlinkSequence &seq = static_cast<const BlinkSequence &>(obj);    fw.indent()<<"phaseShift "<< seq.getPhaseShift() << std::endl;    if (seq.getSequenceGroup() != NULL) {        fw.writeObject(*seq.getSequenceGroup());    }    for (int i=0; i<seq.getNumPulses(); i++) {        double length;        osg::Vec4 color;        seq.getPulse(i, length, color);        fw.indent()<<"pulse " << length << " " << color << std::endl;    }    return true;}/******************************************************/bool BlinkSequence_SequenceGroup_readLocalData(osg::Object &obj, osgDB::Input &fr);bool BlinkSequence_SequenceGroup_writeLocalData(const osg::Object &obj, osgDB::Output &fw);osgDB::RegisterDotOsgWrapperProxy BlinkSequence_SequenceGroup_Proxy(    new SequenceGroup,    "SequenceGroup",    "Object SequenceGroup",    &BlinkSequence_SequenceGroup_readLocalData,    &BlinkSequence_SequenceGroup_writeLocalData,    osgDB::DotOsgWrapper::READ_AND_WRITE);bool BlinkSequence_SequenceGroup_readLocalData(osg::Object &obj, osgDB::Input &fr){    bool iteratorAdvanced = false;    SequenceGroup &sg = static_cast<SequenceGroup &>(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<const SequenceGroup &>(obj);    fw.indent()<<"baseTime "<< sg._baseTime << std::endl;    return true;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -