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

📄 lightsource.cpp

📁 最新osg包
💻 CPP
字号:
#include "osg/LightSource"#include "osgDB/Registry"#include "osgDB/Input"#include "osgDB/Output"using namespace osg;using namespace osgDB;// forward declare functions to use later.bool LightSource_readLocalData(Object& obj, Input& fr);bool LightSource_writeLocalData(const Object& obj, Output& fw);// register the read and write functions with the osgDB::Registry.RegisterDotOsgWrapperProxy g_LightSourceProxy(    new osg::LightSource,    "LightSource",    "Object Node LightSource Group",    &LightSource_readLocalData,    &LightSource_writeLocalData);bool LightSource_readLocalData(Object& obj, Input& fr){    bool iteratorAdvanced = false;    LightSource& lightsource = static_cast<LightSource&>(obj);    if (fr[0].matchWord("referenceFrame"))    {        bool cullingActiveBefore = lightsource.getCullingActive();            if (fr[1].matchWord("RELATIVE_TO_ABSOLUTE") || fr[1].matchWord("ABSOLUTE"))        {            lightsource.setReferenceFrame(LightSource::ABSOLUTE_RF);            fr += 2;            iteratorAdvanced = true;        }        if (fr[1].matchWord("RELATIVE_TO_PARENTS") || fr[1].matchWord("RELATIVE"))        {            lightsource.setReferenceFrame(LightSource::RELATIVE_RF);            fr += 2;            iteratorAdvanced = true;        }                // if culling wasn't before reset it to off.        if (!cullingActiveBefore && lightsource.getCullingActive())        {            lightsource.setCullingActive(cullingActiveBefore);        }    }    osg::ref_ptr<StateAttribute> sa=fr.readStateAttribute();    osg::Light* light = dynamic_cast<Light*>(sa.get());    if (light)    {        lightsource.setLight(light);        iteratorAdvanced = true;    }    return iteratorAdvanced;}bool LightSource_writeLocalData(const Object& obj, Output& fw){    const LightSource& lightsource = static_cast<const LightSource&>(obj);    fw.indent() << "referenceFrame ";    switch (lightsource.getReferenceFrame())    {        case LightSource::ABSOLUTE_RF:            fw << "ABSOLUTE\n";            break;        case LightSource::RELATIVE_RF:        default:            fw << "RELATIVE\n";    };    if (lightsource.getLight()) fw.writeObject(*lightsource.getLight());    return true;}

⌨️ 快捷键说明

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