#include <Windows.h>
#include <osg\Node>
#include <osg\Group>
#include <osg\Geometry>
#include <osgViewer/Viewer>
#include <osgViewer/ViewerEventHandlers>
#include <osgDB/ReadFile>
#include <osgGA/StateSetManipulator>
int main()
{
osgViewer::Viewer viewer;
osg::ref_ptr<osg::Group> group = new osg::Group();
group->addChild(osgDB::readNodeFile("cow.osg"));
viewer.setSceneData(group);
//h 帮助
viewer.addEventHandler(new osgViewer::HelpHandler());
//s 切换状态
//S 输出状态至控制台
viewer.addEventHandler(new osgViewer::StatsHandler());
// f 开关全屏
// < 减少屏幕分辨率
// > 增加屏幕分辨率
viewer.addEventHandler(new osgViewer::WindowSizeHandler());
// w 切换面线点模式
// l 开关照明
// b 开关剔除模式
// t 开关纹理
viewer.addEventHandler(new osgGA::StateSetManipulator(viewer.getCamera()->getOrCreateStateSet()));
// c 截屏
// C 停止
viewer.addEventHandler(new osgViewer::ScreenCaptureHandler());
// z 录像
// Z 回放
viewer.addEventHandler(new osgViewer::RecordCameraPathHandler());
// * 增加LOD
// / 减少LOD
viewer.addEventHandler(new osgViewer::LODScaleHandler());
// m 切换线程模式
// e 切换帧屏障末端的位置
viewer.addEventHandler(new osgViewer::ThreadingHandler());
viewer.setUpViewInWindow(100, 100, 500, 400);
viewer.run();
}