试图在OpenSceneGraph中的两个节点之间进行冲突。我想要确保两个节点相交。怎么做。我显示如下我的功能来检测碰撞。
git br -D later-branch
答案 0 :(得分:0)
OpenSceneGraph有BoundingSphere
和BoundingBox
。后者仅用于Geometry
个节点(除非您自己实现一点),因此BoundingSphere
是最简单的方法。这不会给出模型的正确交集,但是在两个球体之间,每个球体都在模型中心居中并且具有半径,使得球体完全包含所有模型(/子图)。即如果模型的中心是(0,0,0)并且加速点是(1,1,1),那么半径将是sqrt(3)
。
您可以通过调用BoundingSphere
来查询节点的getBound()
,并且可以通过在其中一个球体上调用intersects
并使用另一个作为参数来查询两个球体的交集
在你的情况下,它就像这样
if(ob1->getBound().intersects(ob2->getBound()))
{
trPos[2] += 0.01;
}