您的位置:首页 > 其它

应用MFC框架显示OSG

2012-11-08 21:25 429 查看
应用MFC框架显示OSG

Osg/Example/osgviewerMFC里的MFC_OSG框架:

class cOSG

{

public:

cOSG(HWND hWnd);

~cOSG();

void InitOSG(std::string filename); //初始化OSG,filename为要加入的模型文件

void InitManipulators(void); //初始化操作器

void InitSceneGraph(void); //初始化场景

void InitCameraConfig(void); //相机配置

void SetupWindow(void); //建立窗口

void SetupCamera(void); //建立相机

void PreFrameUpdate(void); //绘制前处理

void PostFrameUpdate(void); //绘制后处理

void Done(bool value) { mDone = value; } //setDone

bool Done(void) { return mDone; } //getDone

static void Render(void* ptr); //渲染,可启用为全局线程

osgViewer::Viewer* getViewer() { return mViewer; } //getViewer

private:

bool mDone; //Done

std::string m_ModelName; //模型名

HWND m_hWnd; //窗口句柄

osgViewer::Viewer* mViewer; //viewer

osg::ref_ptr<osg::Group> mRoot; //场景根节点

osg::ref_ptr<osg::Node> mModel; //场景模型文件

osg::ref_ptr<osgGA::TrackballManipulator> trackball; //trackball操作器

osg::ref_ptr<osgGA::KeySwitchMatrixManipulator> keyswitchManipulator; //加入KeySwitch选择操作器

};

将osgviewer显示于MFC的View

1,创建MFC应用程序工程

2,在OSG源代码的example里选出osgviewerMFC工程里的MFC_OSG.h和MFC_OSG.cpp导入到我们的工程里。



3,在stdafx.h里添加 #include <process.h>

在View类里添加



并在View类里添加消息响应:OnCreate()消息,

并overrides里重写OnInitialUpdate(),如下:



4,添加OSG库和动态链接

5,编译,运行后如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: