[ODE] Preventing contacts between connected bodies

Remi Ricard remi.ricard at simlog.com
Wed Nov 14 12:33:12 MST 2007


Hi Brett,
> Looking through the sample code I have noticed the following code in 
> the nearCallbacks:
>
> dBodyID b1 = dGeomGetBody(o1);
> dBodyID b2 = dGeomGetBody(o2);
> if (b1 && b2 && dAreConnected(b1, b2)) 
> return;
>
> and
>
> dBodyID b1 = dGeomGetBody(o1);
> dBodyID b2 = dGeomGetBody(o2);
> if (b1 && b2 && dAreConnectedExcluding (b1,b2,dJointTypeContact))
> return;
>  
> The benefit of the second is not completely clear to me.
This is useful if you want more than  one contact point between two 
bodies usually this may help stability.
If the joint are connected with something other than a contact joint you 
return.

>
> Also would it help to have a line:
>
> if(b1 == b2) return;
>
> for composite objects?
This is already done at a higher level.

Remi


More information about the ODE mailing list