How to detect collision without reaction (Panda3d + ODE)?


#1

Hello,

i’m creating a driver’s simulation in Panda3D and i’m using ODE to deal with the physics part.

I need to be able to detect some kinds of infractions, like don’t stopping in a red sign or driving on the sidewalk.

The first solution i tought was to create collision’s surfaces around my street so if i receive an collision event i would know that one infraction occured.

But i don’t want the car to really collide with this “invisible” surface, i don’t want the reaction part of the physics.

Is there a way to do it with Panda3d + ODE, to detect the collision without the reaction?

Or there is other clever way to do that?

Thank you!

Gabriel


#2

The functionality you’re looking for is generally referred to as “Area Trigger”. I’ve implemented that in my ODE middleware.

[ODE Middleware) <= you can check it out here.

On a side note, it’s done by not using Panda’s auto collide. I handle the collisions in my own code there because I found not satisfying way of making area triggers with auto collide. So the API is somewhat different than the standard Panda-ODE.


#3

You can use mathematical functions to check your collision and don’t use ODE)))