查看: 3004|回复: 6

如何实时更改osgManipulator的dragger模式?

[复制链接]

该用户从未签到

发表于 2008-6-12 15:54:14 | 显示全部楼层 |阅读模式
在manipulator例子中,dragger的类别是需要在运行程序前就应该设置好的。
我想让dragger可以在程序运行的同时进行实时切换,我自己的想法是写一个继承osgGA::GUIEventHandler的类,在它的handle函数里面来切换不同的dragger。
运行程序之后,只要一进行dragger的切换,程序就出错并退出。
请教各位高手,这是什么原因?我应该如何做才能使得dragger能够正常切换?

该用户从未签到

发表于 2008-6-12 19:05:33 | 显示全部楼层

是否设置更新回调?????还有就是要setDataVariance(DYNAMIC)

该用户从未签到

 楼主| 发表于 2008-6-13 08:45:06 | 显示全部楼层
您觉得是用setUpdateCallBack对吗?我试试看。谢谢

[ 本帖最后由 soda 于 2008-6-13 08:50 编辑 ]

该用户从未签到

 楼主| 发表于 2008-6-13 08:55:47 | 显示全部楼层
谢谢FlySky的帮忙,问题解决了,一眼就被您看出问题所在了。
如您所说,最重要的是setDataVariance(DYNAMIC)这个函数,我添加了这个函数,并没有设置更新回调,程度就能正常运行了。

能稍微介绍一下什么情况下需要使用setDataVariance函数吗?从字面上理解是一些需要动态更改的对象吗?
原帖由 FlySky 于 2008-6-12 19:05 发表

是否设置更新回调?????还有就是要setDataVariance(DYNAMIC)


[ 本帖最后由 soda 于 2008-6-13 08:57 编辑 ]

该用户从未签到

发表于 2008-6-13 10:25:38 | 显示全部楼层
当你需要动态更新场景图形时,就应该调用这个函数,否则很有可能上一帧的更新绘制和下一帧的更新绘制叠加,这就可以导致线程冲突,从而程序崩溃或中断~~~~~

该用户从未签到

 楼主| 发表于 2008-6-13 20:49:47 | 显示全部楼层
原来是这样,呵呵,谢谢FlySky

该用户从未签到

发表于 2011-2-18 15:22:27 | 显示全部楼层
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表