查看: 1781|回复: 5

鼠标拾取高亮显示问题

[复制链接]

该用户从未签到

发表于 2009-12-12 13:01:52 | 显示全部楼层 |阅读模式
我刚学osg。从PositionAttitudeTransform(PAT)创建一个类画了一个图形,然后再创建三个PAT的类将画出的图形作为子节点并改变位置,这样在场景中就有了几个同样的但位置不一样的图形。

我参照FlySKy的OSG编程入门指南中的 对象拾取示例改写了一下程序,想要实现点一下各个图形的时候各个图形分别变亮,然后根据各个图形的变亮与否来实现接下来对图形的操作。 可是程序中鼠标一点的话三个图形就同时亮了,不知道该怎么让他们分别变亮?看程序示例中貌似是将整个场景作为检测对象的。

而且如果变亮之后如何写出判断语句判断哪个变亮了然后进行接下来能让它们自动转动之类的操作?

多谢了。

该用户从未签到

发表于 2009-12-12 14:10:51 | 显示全部楼层
你需要使用深拷贝,,,直接添加子节点的话,使用的是浅拷贝~~~~~

该用户从未签到

发表于 2009-12-12 15:29:52 | 显示全部楼层
对的,你变亮操作的是一个物体

该用户从未签到

 楼主| 发表于 2009-12-12 18:09:33 | 显示全部楼层
2# FlySky

哈,难得得到原作者的指点啊,变亮的终于解决了。  

我是想这么做的,三个图形如果第一个被选择到,那么场景中的那头奶牛就一直旋转一个方向,第二个被选到那就旋转另一个方向。。。

不过该怎么判断是哪个图形被选择中呢?使用什么函数来实现的? 看示例中判断的都是nodePath这类纯节点路径的东西。

多谢。

该用户从未签到

发表于 2009-12-13 03:42:56 | 显示全部楼层
通过NodePath得到节点名,,然后判断节点名称就可以了,,你可以看看对象拾取的例子~~~~~~~

该用户从未签到

 楼主| 发表于 2009-12-14 17:49:42 | 显示全部楼层
哈哈,多谢了。  折腾了好久终于折腾出来了~~    
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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