osgGA.FlightManipulator是一个飞行操纵器,它允许用户在场景中自由飞行。
osgGA::CameraManipulator --> osgGA::FlightManipulator
#include <osgGA/FlightManipulator>
FlightManipulator(
osg::CoordinateFrame coordinateFrame=osg::CoordinateFrame::ABSOLUTE_RF);
参数:
osg::CoordinateFrame::ABSOLUTE_RF
,表示使用绝对坐标系。FlightManipulator继承了CameraManipulator的所有操作。
FlightManipulator还可以响应鼠标和键盘输入,并执行相应的动作。
使用FlightManipulator时,鼠标可以执行以下操作:
使用FlightManipulator时,键盘可以执行以下操作:
osgViewer::Viewer viewer;
osg::ref_ptr<osg::Group> root = new osg::Group;
osg::ref_ptr<osg::Node> model = osgDB::readNodeFile("cessna.osg");
root->addChild(model);
osg::ref_ptr<osgGA::FlightManipulator> manipulator =
new osgGA::FlightManipulator(osg::CoordinateFrame::ABSOLUTE_RF);
manipulator->setAutoRoll(true);
manipulator->setVerticalAxisFixed(false);
viewer.setCameraManipulator(manipulator);
viewer.setSceneData(root);
viewer.run();