clearnode.cpp

来自「最新osg包」· C++ 代码 · 共 105 行

CPP
105
字号
#include <osg/ClearNode>#include <osg/io_utils>#include <osgDB/Registry>#include <osgDB/Input>#include <osgDB/Output>using namespace osg;using namespace osgDB;// forward declare functions to use later.bool ClearNode_readLocalData(Object& obj, Input& fr);bool ClearNode_writeLocalData(const Object& obj, Output& fw);// register the read and write functions with the osgDB::Registry.RegisterDotOsgWrapperProxy g_EarthSkyProxy(    new osg::ClearNode,    "EarthSky",    "Object Node EarthSky Group",    &ClearNode_readLocalData,    &ClearNode_writeLocalData);RegisterDotOsgWrapperProxy g_ClearNodeProxy(    new osg::ClearNode,    "ClearNode",    "Object Node ClearNode Group",    &ClearNode_readLocalData,    &ClearNode_writeLocalData);bool ClearNode_readLocalData(Object& obj, Input& fr){    bool iteratorAdvanced = false;    ClearNode& es = static_cast<ClearNode&>(obj);    if (fr.matchSequence("requiresClear"))    {        if (fr[1].matchWord("TRUE"))        {            es.setRequiresClear(true);            iteratorAdvanced = true;            fr+=2;        }        else if (fr[1].matchWord("FALSE"))        {            es.setRequiresClear(false);            iteratorAdvanced = true;            fr+=2;        }    }    osg::Vec4 vec4(0.0f,0.0f,0.0f,1.0f);        if (fr[0].matchWord("clearColor") &&         fr[1].getFloat(vec4[0]) &&        fr[2].getFloat(vec4[1]) &&        fr[3].getFloat(vec4[2]) &&        fr[4].getFloat(vec4[3]))    {        es.setClearColor(vec4);        fr+=5;        iteratorAdvanced = true;    }    if (fr[0].matchWord("clearMask"))    {        if (fr[1].isUInt())        {            unsigned int value=0;            fr[1].getUInt(value);            es.setClearMask(static_cast<GLbitfield>(value));            iteratorAdvanced = true;            fr+=2;        }    }    return iteratorAdvanced;}bool ClearNode_writeLocalData(const Object& obj, Output& fw){    const ClearNode& es = static_cast<const ClearNode&>(obj);    fw.indent() << "requiresClear ";    if (es.getRequiresClear())    {        fw<<"TRUE"<< std::endl;    }    else    {        fw<<"FALSE"<< std::endl;    }        fw.indent() << "clearColor "<<es.getClearColor()<< std::endl;    fw.indent() << "clearMask "<<static_cast<unsigned int>(es.getClearMask())<< std::endl;    return true;}

⌨️ 快捷键说明

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