|
大家好
我的程序是这样的:读入一个模型,然后截屏,我利用的是ScreenCaptureHandler,但是当我在viewer中添加这个eventhandler之后,原本可以通过鼠标旋转、缩放模型的所有操作都不能进行了,不知道这是怎么回事,有没有什么办法可以保留这些功能,因为我觉得预设的已经非常好了。
下面是我的主要代码
- osgViewer::ScreenCaptureHandler::WriteToFile* screenShotCapture=new osgViewer::ScreenCaptureHandler::WriteToFile("picture","jpg");
- viewer.addEventHandler(new ScreenShot() );
复制代码
以及派生类的定义
- class ScreenShot :public osgViewer::ScreenCaptureHandler
- {
- public:
- ScreenShot(){}
- ~ScreenShot(){}
- public:
- virtual bool handle(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &aa);
- };
- bool ScreenShot::handle(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &aa)
- {
- osgViewer::ViewerBase* viewer = dynamic_cast<osgViewer::View*>(&aa)->getViewerBase();
- if (!viewer) return false;
- switch(ea.getEventType())
- {
- case osgGA::GUIEventAdapter::RELEASE:
- addCallbackToViewer(*viewer);
- break;
- }
- return true;
- }
复制代码 |
|