查看: 1791|回复: 6

场景的更替

[复制链接]

该用户从未签到

发表于 2009-6-6 15:41:44 | 显示全部楼层 |阅读模式
我想根据不同的选择进入不同的场景中,就是利用viewer—>setscenedata(root)设置不同的场景,root表示不同的场景,假如在程序启动的时候我只加载了root[0]的场景数据,当鼠标选择了场景root[1]时,利用viewer—>setscenedata()将root[1]设置为当前场景,但是场景root[0]和场景root[1]的事件处理器不一样,我如何使root[0]中的事件处理器在root[1]中不起作用,如何将场景root[0]中的数据释放掉?


[ 本帖最后由 zhufu0208 于 2009-6-6 17:17 编辑 ]

该用户从未签到

发表于 2009-6-6 16:43:56 | 显示全部楼层
最好的方法是使用CompositeViewer,设置多个View视图并分别赋予不同的root和EventHandler。您目前的做法恐怕要走入死胡同

该用户从未签到

发表于 2009-6-6 16:49:35 | 显示全部楼层

回复 楼主 的帖子

这个是我自己的思路 做OPENGVS时是可行的   可以在MFC框架下 定义全局变量int sence;利用菜单机制添加响应函数 在响应函数中设置sence=0,1,2...... 来获取响应判断 然后在osg线程中进行不同场景显示 吧

该用户从未签到

 楼主| 发表于 2009-6-6 16:52:22 | 显示全部楼层
可是如果场景个数是不确定的话,该如何设置,而且如果不同的场景EventHandler也不同的话,则会更加的复杂。突然感觉您的方法还是有一定得道理的,试试看 呵呵  不行的话  再次请教您

[ 本帖最后由 zhufu0208 于 2009-6-6 16:55 编辑 ]

该用户从未签到

 楼主| 发表于 2009-6-6 16:54:22 | 显示全部楼层
原帖由 fanfan 于 2009-6-6 16:49 发表
这个是我自己的思路 做OPENGVS时是可行的   可以在MFC框架下 定义全局变量int sence;利用菜单机制添加响应函数 在响应函数中设置sence=0,1,2...... 来获取响应判断 然后在osg线程中进行不同场景显示 吧

我的思路和你的差不多   如果是Viewer的话只有一个视图  他们会共享EventHandler,这是不合理的,看来只好用复合窗口试试了。

该用户从未签到

 楼主| 发表于 2009-6-8 17:57:51 | 显示全部楼层
视图的切换是不是写在CompositeViewer的事件回调中,在它的回调函数里面不能像Viewer一样获取viewer变量,望告知,谢谢!!!

[ 本帖最后由 zhufu0208 于 2009-6-8 22:10 编辑 ]

该用户从未签到

发表于 2009-6-8 22:21:06 | 显示全部楼层
getView(),您应当在手头必备一份API参考文档,以免在这些小问题上耽误自己的时间
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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