查看: 1010|回复: 3

关于模型节点的父节点数量的疑问

[复制链接]

该用户从未签到

发表于 2013-5-27 16:13:54 | 显示全部楼层 |阅读模式
今天码代码时发现了一个问题 当我获取一个节点的的父节点数量时
  1. group->addchild(m_Node>
  2.        ......
  3.         int nSize = m_Node->getNumParents();
  4.         osg::notify( osg::ALWAYS )<< "num is "<< nSize << std::endl;
复制代码
发现当m_Node为模型节点时,他的父节点数量为2, 我只addChild(m_Node)一次,而当m_Node是matrixTransform或者是geode时,父节点是1, 想问一下osg加载模型节点的时候为啥会多了一个父节点,是处于什么考虑。谢谢

该用户从未签到

发表于 2013-5-28 20:33:40 | 显示全部楼层
估计cache或者其他又保存了一份了

该用户从未签到

 楼主| 发表于 2013-5-29 14:53:53 | 显示全部楼层
谢谢回答,经测试,我发现当m_Node是osg自带的模型时( cow.osg, cessna.osg),m_Node是保存在第二个父节点下(即getParent(1)下),当m_Node是3dmax导出来时, m_Node是保存在第一个付节点下(getParent(0)).

该用户从未签到

 楼主| 发表于 2013-5-29 15:12:11 | 显示全部楼层
CCCstudyer 发表于 2013-5-29 14:53
谢谢回答,经测试,我发现当m_Node是osg自带的模型时( cow.osg, cessna.osg),m_Node是保存在第二个父节点 ...

补充一下,上面的结论是我在m_Node插入父节点时,
  1. m_Node>getParent(i)>replaceChild(m_Node,group)
复制代码
验证得到,即我模型replaceChild成功与否和 i 相关。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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