直接上代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
void main()
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("glider.osg"));
//添加状态事件
viewer.addEventHandler(new osgGA::StateSetManipulator(viewer.getCamera()->getOrCreateStateSet()));
//窗口大小变化事件
viewer.addEventHandler(new osgViewer::WindowSizeHandler);
//添加一些常用状态设置
viewer.addEventHandler(new osgViewer::StatsHandler);
//添加一些操作器
osg::ref\_ptr<osgGA::KeySwitchMatrixManipulator> keyswitchManipulator = new osgGA::KeySwitchMatrixManipulator;
keyswitchManipulator->addMatrixManipulator('', "Trackball", new osgGA::TrackballManipulator());
keyswitchManipulator->addMatrixManipulator('', "Flight", new osgGA::FlightManipulator());
keyswitchManipulator->addMatrixManipulator('', "Drive", new osgGA::DriveManipulator());
keyswitchManipulator->addMatrixManipulator('', "Terrain", new osgGA::TerrainManipulator());
viewer.setCameraManipulator(keyswitchManipulator.get());
//添加路径记录
viewer.addEventHandler(new osgViewer::RecordCameraPathHandler);
viewer.realize();
viewer.run();
}
3.0版本主要是添加了一些操作器。
关于什么是操作器,菜鸟表示完全不懂。现在的理解就是:不同的操作器对应不同的交互模式。
从Hello World1.0可知,用户通过鼠标可以操作模型。添加操作器之后,用户通过1 、2、3、4按键选择不同的操作器,就会对应不同的交互模式。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章