PDA

View Full Version : Collision Detection for Hierarchies of Objects


vjosh
04-15-2005, 05:29 PM
Hey,

I'm having some trouble getting collision detection to work consistently with hierarchies of objects. I'll create a person and a ball with code like the following:
person = viz.add("male.cfg")
ball = person.add("ball.wrl")
ball.collidesphere(0.25)
After translating the ball to some location (using viz.ABSOLUTE_WORLD), I'll try to translate the person (also using viz.ABSOLUTE_WORLD), and the ball moves with the person as expected. But the problem is that the "collidingwith()" method thinks that the ball is still where I positioned it originally. As far as the collidingwith() method is concerned, the ball did not move with the person... Is there any way to fix this problem?

-Josh

farshizzo
04-15-2005, 05:46 PM
Hi,

The collidingwith function does not take object hierarchies into account. You can use a temporary work around for this though. Add an empty object to the world. To check for collisions update the empty objects position with the balls position and then call collidingwith on the empty object. Here's some sample code to explain it better:#Add a fake ball to the world (This will be an empty object)
fakeBall = viz.add(viz.GROUP)
#Enable collisions on the fake ball
fakeBall .collidesphere(0.25)

#Before you call collidingwith do the following
fakeBall.translate(ball.get(viz.POSITION,viz.ABSOL UTE_WORLD))
fakeBall.rotatequat(ball.get(viz.QUAT,viz.ABSOLUTE _WORLD))