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

📄 colormask.cpp

📁 最新osg包
💻 CPP
字号:
#include "osg/ColorMask"#include "osgDB/Registry"#include "osgDB/Input"#include "osgDB/Output"using namespace osg;using namespace osgDB;// forward declare functions to use later.bool ColorMask_readLocalData(Object& obj, Input& fr);bool ColorMask_writeLocalData(const Object& obj, Output& fw);bool ColorMask_matchModeStr(const char* str,bool& mode);const char* ColorMask_getModeStr(bool mode);// register the read and write functions with the osgDB::Registry.RegisterDotOsgWrapperProxy g_ColorMaskProxy(    new osg::ColorMask,    "ColorMask",    "Object StateAttribute ColorMask",    &ColorMask_readLocalData,    &ColorMask_writeLocalData);bool ColorMask_readLocalData(Object& obj, Input& fr){    bool iteratorAdvanced = false;    ColorMask& colormask = static_cast<ColorMask&>(obj);    bool redMask=colormask.getRedMask();    if (fr[0].matchWord("redMask") && ColorMask_matchModeStr(fr[1].getStr(),redMask))    {        fr+=2;        iteratorAdvanced = true;    }    bool greenMask=colormask.getGreenMask();    if (fr[0].matchWord("greenMask") && ColorMask_matchModeStr(fr[1].getStr(),greenMask))    {        fr+=2;        iteratorAdvanced = true;    }    bool blueMask=colormask.getBlueMask();    if (fr[0].matchWord("blueMask") && ColorMask_matchModeStr(fr[1].getStr(),blueMask))    {        fr+=2;        iteratorAdvanced = true;    }    bool alphaMask=colormask.getAlphaMask();    if (fr[0].matchWord("alphaMask") && ColorMask_matchModeStr(fr[1].getStr(),alphaMask))    {        fr+=2;        iteratorAdvanced = true;    }    if (iteratorAdvanced)    {        colormask.setMask(redMask,greenMask,blueMask,alphaMask);    }    return iteratorAdvanced;}bool ColorMask_writeLocalData(const Object& obj,Output& fw){    const ColorMask& colormask = static_cast<const ColorMask&>(obj);    fw.indent() << "redMask " << ColorMask_getModeStr(colormask.getRedMask()) <<std::endl;    fw.indent() << "greenMask " << ColorMask_getModeStr(colormask.getGreenMask()) <<std::endl;    fw.indent() << "blueMask " << ColorMask_getModeStr(colormask.getBlueMask()) <<std::endl;    fw.indent() << "alphaMask " << ColorMask_getModeStr(colormask.getAlphaMask()) <<std::endl;    return true;}bool ColorMask_matchModeStr(const char* str,bool& mode){    if (strcmp(str,"TRUE")==0) mode = true;    else if (strcmp(str,"FALSE")==0) mode = false;    else if (strcmp(str,"ON")==0) mode = true;    else if (strcmp(str,"OFF")==0) mode = false;    else return false;    return true;}const char* ColorMask_getModeStr(bool mode){    if (mode) return "ON";    else return "OFF";}

⌨️ 快捷键说明

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