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

📄 cameraview.cpp

📁 最新osg包
💻 CPP
字号:
#include <osg/CameraView>#include <osg/io_utils>#include <osg/Notify>#include "osgDB/Registry"#include "osgDB/Input"#include "osgDB/Output"using namespace osg;using namespace osgDB;// forward declare functions to use later.bool CameraView_readLocalData(Object& obj, Input& fr);bool CameraView_writeLocalData(const Object& obj, Output& fw);// register the read and write functions with the osgDB::Registry.RegisterDotOsgWrapperProxy g_CameraViewProxy(    new osg::CameraView,    "CameraView",    "Object Node Transform CameraView Group",    &CameraView_readLocalData,    &CameraView_writeLocalData,    DotOsgWrapper::READ_AND_WRITE);bool CameraView_readLocalData(Object& obj, Input& fr){    bool iteratorAdvanced = false;    CameraView& cameraview = static_cast<CameraView&>(obj);    if (fr.matchSequence("position %f %f %f"))    {        osg::Vec3d pos;        fr[1].getFloat(pos[0]);        fr[2].getFloat(pos[1]);        fr[3].getFloat(pos[2]);                cameraview.setPosition(pos);        fr += 4;        iteratorAdvanced = true;    }    if (fr.matchSequence("attitude %f %f %f %f"))    {        osg::Quat att;        fr[1].getFloat(att[0]);        fr[2].getFloat(att[1]);        fr[3].getFloat(att[2]);        fr[4].getFloat(att[3]);                cameraview.setAttitude(att);                fr += 5;        iteratorAdvanced = true;    }    if (fr.matchSequence("fieldOfView %f"))    {        double fov;        fr[1].getFloat(fov);        cameraview.setFieldOfView(fov);        fr += 2;        iteratorAdvanced = true;    }    if (fr.matchSequence("fieldOfViewMode %w"))    {        if      (fr[1].matchWord("UNCONSTRAINED")) cameraview.setFieldOfViewMode(osg::CameraView::UNCONSTRAINED);        else if (fr[1].matchWord("HORIZONTAL")) cameraview.setFieldOfViewMode(osg::CameraView::HORIZONTAL);        else if (fr[1].matchWord("VERTICAL")) cameraview.setFieldOfViewMode(osg::CameraView::VERTICAL);        fr += 2;        iteratorAdvanced = true;    }    if (fr.matchSequence("focalLength %f"))    {        double fl;        fr[1].getFloat(fl);        cameraview.setFocalLength(fl);        fr += 2;        iteratorAdvanced = true;    }    return iteratorAdvanced;}bool CameraView_writeLocalData(const Object& obj, Output& fw){    const CameraView& cameraview = static_cast<const CameraView&>(obj);        fw.indent()<<"position "<<cameraview.getPosition()<<std::endl;    fw.indent()<<"attitude "<<cameraview.getAttitude()<<std::endl;        fw.indent()<<"fieldOfView "<<cameraview.getFieldOfView()<<std::endl;    fw.indent()<<"fieldOfViewMode ";    switch(cameraview.getFieldOfViewMode())    {        case(osg::CameraView::UNCONSTRAINED): fw <<"UNCONSTRAINED"<<std::endl; break;        case(osg::CameraView::HORIZONTAL): fw <<"HORIZONTAL"<<std::endl; break;        case(osg::CameraView::VERTICAL): fw <<"VERTICAL"<<std::endl; break;    }        fw.indent()<<"focalLength "<<cameraview.getFocalLength()<<std::endl;    return true;}

⌨️ 快捷键说明

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