- A+
所属分类:GIS应用
- #include<osgViewer/Viewer>
- #include<osgDB/ReadFile>
- #include "../../ConsoleApplication1/ConsoleApplication1/Common.h"
- #include <osgGA/GUIEventAdapter>
- #include<osgViewer/ViewerEventHandlers>
- //#ifdef _DEBUG
- //#pragma comment(lib,"../Debug/Commond.lib")
- //#else
- //#pragma comment(lib,"../Release/Common.lib")
- //#endif // _DEBUG
- //模拟一个事件类
- class PrintName :public osgGA::GUIEventHandler
- {
- public:
- //点击h之后弹出的字幕,告知用户使用快捷键k,触发某个功能
- virtual void getUsage(osg::ApplicationUsage& usage) const
- {
- usage.addKeyboardMouseBinding("k", "call handler func");
- }
- //处理方法,返回true不向下传递;返回false向下传递
- virtual bool handle(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &aa)
- {
- //TODO 编写具体功能
- return false;
- }
- //另外还有个设置快捷键的方法,表明按下此快捷键,则出发handler方法
- };
- int main(int argc, char *argv[])
- {
- osg::ref_ptr<osgViewer::Viewer> viewer= new osgViewer::Viewer;
- osg::ref_ptr<osg::Node> node = new osg::Node;
- //读取模型
- node = osgDB::readNodeFile("glider.osg");
- //添加帮助事件
- viewer->addEventHandler(new osgViewer::HelpHandler);//添加h快捷键,弹出快捷键功能说明字幕
- viewer->addEventHandler(new osgViewer::ScreenCaptureHandler);//添加截屏快捷键 c
- viewer->addEventHandler(new osgViewer::StatsHandler);//添加帧率显示快捷键 s
- viewer->addEventHandler(new osgViewer::WindowSizeHandler);//添加窗口缩放快捷键 f
- viewer->addEventHandler(new PrintName);//添加自定义快捷键 k
- viewer->setSceneData(node.get());
- return viewer->run();
- }
依赖库
- #pragma comment(lib,"osgd.lib")
- #pragma comment(lib,"osgDBd.lib")
- #pragma comment(lib,"osgViewerd.lib")
- #pragma comment(lib,"OpenThreadsd.lib")
- #pragma comment(lib,"osgGAd.lib")