|
发表于 2013-7-16 17:10:45
|
显示全部楼层
bigboy 发表于 2013-7-16 13:33
我理解错了,你把你该的发上来看一下吧
#include<osgosgUtil/IntersectVisitor>
class MyIntersectionVisitor:public IntersectionVisitor
{
MyIntersectionVisitor();
~MyIntersectionVisitor();
virtual void apply(osg:OD& lod);
}
void MyIntersectionVisitor::apply(osg::LOD& lod)
{
if (!enter(lod)) return;
traverse(lod);
leave();
}
我的场景树中是 lod下面挂了一个placeNode 节点,当placeNode 的显示范围只有设置大于0
例如 lod.addchild(placeNode.get(),1,50000);
只要第一个数字设置的不为0,点选的时候就没有placeNode这个节点返回去。
我只是简单继承了他的IntersectionVisitor,然后用camera accept 这个MyIntersectionVisitor
我在apply函数中打了一个断点,我发现,在地球场景中只要有palceNode这个图标显示。无论鼠标是否点击到这个图标,都能跳动断点处。
这样就形成了一个问题,就是我只想在鼠标点中图标是,才调到断点处,这样我才能用这个visitor截取我所需要的信息,但是如果无论我点击地球的那个地方
这个函数都有反应的话,那这个函数获取的信息对我就没啥用了,我没法判断我是否选中物体 |
|