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

📄 polygonmode.cpp

📁 最新osg包
💻 CPP
字号:
#include "osg/PolygonMode"#include "osgDB/Registry"#include "osgDB/Input"#include "osgDB/Output"using namespace osg;using namespace osgDB;// forward declare functions to use later.bool PolygonMode_readLocalData(Object& obj, Input& fr);bool PolygonMode_writeLocalData(const Object& obj, Output& fw);// register the read and write functions with the osgDB::Registry.RegisterDotOsgWrapperProxy g_PolygonModeProxy(    new osg::PolygonMode,    "PolygonMode",    "Object StateAttribute PolygonMode",    &PolygonMode_readLocalData,    &PolygonMode_writeLocalData);bool PolygonMode_readLocalData(Object& obj, Input& fr){    bool iteratorAdvanced = false;    PolygonMode& polygonmode = static_cast<PolygonMode&>(obj);    if (fr[0].matchWord("mode"))    {        PolygonMode::Face face = PolygonMode::FRONT_AND_BACK;        bool readFace = true;        if (fr[1].matchWord("FRONT")) face = PolygonMode::FRONT;        else if (fr[1].matchWord("BACK")) face = PolygonMode::BACK;        else if (fr[1].matchWord("FRONT_AND_BACK")) face = PolygonMode::FRONT_AND_BACK;        else readFace = false;        if (readFace)        {            PolygonMode::Mode mode = PolygonMode::FILL;            bool readMode = true;            if (fr[2].matchWord("POINT")) mode = PolygonMode::POINT;            else if (fr[2].matchWord("LINE")) mode = PolygonMode::LINE;            else if (fr[2].matchWord("FILL")) mode = PolygonMode::FILL;            else readMode = false;            if (readMode)            {                polygonmode.setMode(face,mode);                fr+=3;                iteratorAdvanced = true;            }        }    }    return iteratorAdvanced;}bool PolygonMode_writeLocalData(const Object& obj, Output& fw){    const PolygonMode& polygonmode = static_cast<const PolygonMode&>(obj);    if (polygonmode.getFrontAndBack())    {        switch(polygonmode.getMode(PolygonMode::FRONT))        {            case(PolygonMode::POINT): fw.indent() << "mode FRONT_AND_BACK POINT" << std::endl; break;            case(PolygonMode::LINE):  fw.indent() << "mode FRONT_AND_BACK LINE" << std::endl; break;            case(PolygonMode::FILL):  fw.indent() << "mode FRONT_AND_BACK FILL" << std::endl; break;        }    }    else    {        switch(polygonmode.getMode(PolygonMode::FRONT))        {            case(PolygonMode::POINT): fw.indent() << "mode FRONT POINT" << std::endl; break;            case(PolygonMode::LINE):  fw.indent() << "mode FRONT LINE" << std::endl; break;            case(PolygonMode::FILL):  fw.indent() << "mode FRONT FILL" << std::endl; break;        }        switch(polygonmode.getMode(PolygonMode::BACK))        {            case(PolygonMode::POINT): fw.indent() << "mode BACK POINT" << std::endl; break;            case(PolygonMode::LINE):  fw.indent() << "mode BACK LINE" << std::endl; break;            case(PolygonMode::FILL):  fw.indent() << "mode BACK FILL" << std::endl; break;       }    }    return true;}

⌨️ 快捷键说明

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