查看: 1365|回复: 8

这个是神马意思

[复制链接]

该用户从未签到

发表于 2011-12-6 18:09:06 | 显示全部楼层 |阅读模式
osg::NodePath& nodePath = intersection.nodePath;
node = (nodePath.size()>=1)?nodePath[nodePath.size()-1]:0;
parent = (nodePath.size()>=2)?dynamic_cast<osg::Group*>(nodePath[nodePath.size()-2]):0;

就是osg例子osgkeyboardmouse中的  详细点 谢谢了

该用户从未签到

发表于 2011-12-6 19:11:54 | 显示全部楼层
这不就是访问被选择节点的父节点么

该用户从未签到

发表于 2011-12-6 21:42:27 | 显示全部楼层
这段代码非常容易理解啊,
如果数组的长度大于等于1,那么将数组中最后一个节点赋值给node,否则赋值0。
你想问什么呢?

该用户从未签到

 楼主| 发表于 2011-12-6 22:15:33 | 显示全部楼层
额 上面的两位大哥  我才学习osg  所以有的问题理解不了 有时候感觉自己学的很吃力  在这上面我也表达不清  很郁闷啊

该用户从未签到

发表于 2011-12-6 22:51:40 | 显示全部楼层
这个好像 跟OSG没有关系!是C++基础吧!条件表达式!

该用户从未签到

 楼主| 发表于 2011-12-7 09:07:12 | 显示全部楼层
wangjunchao 发表于 2011-12-6 21:42
这段代码非常容易理解啊,
如果数组的长度大于等于1,那么将数组中最后一个节点赋值给node,否则赋值0。
...

假如 nodePath.size() = 3  它是拾取操作 为什么要把(nodePath.size()>=1)?nodePath[nodePath.size()-1]:0 赋给node      
           (nodePath.size()>=2)?dynamic_cast<osg::Group*>(nodePath[nodePath.size()-2]):0 赋给parent   怎么实现  不明白为什么这么做

该用户从未签到

发表于 2011-12-7 09:18:51 | 显示全部楼层
当然parent要在node的上一级了
如果nodePath.size()==0,就是根节点了吧,那就没有意义了

你可以调试一下nodePath的结构就知道了

该用户从未签到

发表于 2011-12-7 10:06:37 | 显示全部楼层
如果nodePath.size() = 3 ,那么node      =nodePath[2];即数组最后一个节点。
你到底想问什么

该用户从未签到

 楼主| 发表于 2011-12-7 10:40:20 | 显示全部楼层
wangjunchao 发表于 2011-12-7 10:06
如果nodePath.size() = 3 ,那么node      =nodePath[2];即数组最后一个节点。
你到底想问什么

我再自己理解理解  有问题再问你
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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