我要发帖 回复

正式会员

6

主题

47

积分

0

专家分

:

私信
发表时间 : 2007-11-5 16:36:19 | 浏览 : 2059    评论 : 5
小弟在读代码是遇到一个函数:viewer.getEventHandlerList().push_front(keh);
其中keh的类型为KeyboardEventHandler,但现在这个函数在osgViewer中不存在了,
不知道不知道现在如何实现这个功能?
                                                                   谢谢啦!!!

最近VR访客

FreeSouth 评论于2007-11-5 17:52:38
[quote]viewer.getEventHandlerList()


这个应该还是有的吧:

EventHandlers &  getEventHandlers ()

其中EventHandlers是定义是这样的:
typedef std::list< osg::ref_ptr<osgGA::GUIEventHandler> > osgViewer::View::EventHandlers

很明显是个List,
得到后可以直接push,其实调用:  addEventHandler (osgGA::GUIEventHandler *eventHandler) 也是不错的选择,其实直接使用setCameraManipulator (osgGA::MatrixManipulator *manipulator)中的handle处理也不错哦,这样可以省去事件向下传递的时间~~~~~~~~~~~~[/quote]

[ 本帖最后由 FreeSouth 于 2007-11-5 05:53 PM 编辑 ]
thb8177 评论于2007-11-5 19:57:49
FreeSouth,非常感谢你的回帖,您的最后一种方法是不是要自己写一个继承自MatrixManipulator的类,然后复写他的handle方法?
FlySky 评论于2007-11-5 21:05:44
FreeSouth就是那意思吧,就相当写一场景漫游处理一样~~~~~~~~~

OSG中国官方网站:http://www.osgChina.org
OSG中国官方讨论区:http://bbs.osgChina.org

OSG专业群-OSG地形研究者 49668412
      OSG地形专业研究 45763709
FreeSouth 评论于2007-11-6 01:15:21
moumoumou 评论于2008-4-4 15:44:43
getEventHandlerList()
这个函数在2.0版本中已经没有了,第二个办法是可行的。我的已经按照第二个办法解决了。

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-9-18 01:02 AM

返回顶部