geode.cpp

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

CPP
63
字号
#include "osg/Geode"#include "osgDB/Registry"#include "osgDB/Input"#include "osgDB/Output"using namespace osg;using namespace osgDB;// forward declare functions to use later.bool Geode_readLocalData(Object& obj, Input& fr);bool Geode_writeLocalData(const Object& obj, Output& fw);// register the read and write functions with the osgDB::Registry.RegisterDotOsgWrapperProxy g_GeodeProxy(    new osg::Geode,    "Geode",    "Object Node Geode",    &Geode_readLocalData,    &Geode_writeLocalData);bool Geode_readLocalData(Object& obj, Input& fr){    bool iteratorAdvanced = false;    Geode& geode = static_cast<Geode&>(obj);    int num_drawables;    if ((fr[0].matchWord("num_drawables") || fr[0].matchWord("num_geosets")) &&        fr[1].getInt(num_drawables))    {        // could allocate space for children here...        fr+=2;        iteratorAdvanced = true;    }        Drawable* drawable = NULL;    while((drawable=fr.readDrawable())!=NULL)    {        geode.addDrawable(drawable);        iteratorAdvanced = true;    }    return iteratorAdvanced;}bool Geode_writeLocalData(const osg::Object& obj, Output& fw){    const Geode& geode = static_cast<const Geode&>(obj);    fw.indent() << "num_drawables " << geode.getNumDrawables() << std::endl;        for(unsigned int i=0;i<geode.getNumDrawables();++i)    {        fw.writeObject(*geode.getDrawable(i));    }    return true;}

⌨️ 快捷键说明

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