查看: 732|回复: 1

请教removeChild操作的出错问题

[复制链接]

该用户从未签到

发表于 2014-6-24 20:01:25 | 显示全部楼层 |阅读模式
本人最近使用OSG在做一个项目,大致要实现以下功能:假定天空中有4架飞机,他们的运动是随机的,在两架飞机之间需要通信时,
在他们之间画一条绿色线段作为示意。程序代码是在MFC中实现的。
从上面论述中可以看到,整个运动过程涉及节点的移动、添加、删除等操作。现在的问题是:在场景运行过程中,偶尔会出现以下的错误:
vector iterators incompatible;
vector iterators not dereferencable
(这些出错信息也不是很理解)
在做一定修改时,我发现如果只是实现节点的运动,而不添加画线的话,程序运行无误。我想问题可能出在添加和删除节点的操作上,
在查看有关书籍时,在“OSG程序设计教程(杨石兴 编著)”中,我看到了这样一句话:删除操作不能说不是个危险的操作,有些时候,
尤其在有移动结点等等混在一起时,删除操作有时候会发生一些比较奇怪的现象。

我的程序出错是不是就是这样的奇怪现象,有没有谁可以帮我解答一下。

该用户从未签到

发表于 2014-6-24 21:23:56 | 显示全部楼层
节点运动一般用节点回调实现,而在更新回调阶段不宜进行场景树的更改。
你需要调整下removeChild的时机。比如事件处理阶段,帧前帧后。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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