[ODE] Disabled geom bug in dxSimpleSpace::collide2() ?

Marty Rabens list at rabens.com
Tue Feb 24 08:37:36 MST 2004

The problem is I'm not calling collide2() directly, so I can't check the geom myself first.  I'm calling dSpaceCollide2() with two spaces.  dSpaceCollide2() then iterates through each geom in one space and calls collide2() with that geom (even if it's disabled).  Are we sure this isn't a bug in ODE?  According to the ODE 0.039 docs, "Disabled geoms are completely ignored by dSpaceCollide() and dSpaceCollide2(), although they can still be members of a space."


---------- Original Message ----------------------------------
From: "Erwin de Vries" <erwin at vo.com>
Date:  Tue, 24 Feb 2004 00:33:36 +0100

>> I've disabled a geom with dGeomDisable(), but it's still getting passed to
>my collision callback.  So I traced into the code, and noticed the
>following.  From dxSimpleSpace::collide2() :
>>   // intersect bounding boxes
>>   for (dxGeom *g=first; g; g=g->next) {
>>     if (GEOM_ENABLED(g)){
>>       collideAABBs (g,geom,data,callback);
>>     }
>>   }
>> It's testing to see if g is enabled, but shouldn't it also test to see if
>geom is enabled?  This is how my disabled geom appears to be slipping
>through.  Or is there something I'm doing wrong?
>This is not a bug but a feature. :-) A common use of disabled geoms is to
>have the advantages of the spatial hierarchy (quadtree space), AND the
>advantages of being able to do a single shot collision. If geom would be
>checked as well one would have to enable it, call collide2() and disable it
>again. An easier solution is for you to check geom yourself before calling
>collide2(). I think this behavior is documented already?
>ODE mailing list
>ODE at q12.org

Free 20 MB Bannerless Domain Hosting, 1000 MB Data Transfer
10 Personalized POP and Web E-mail Accounts, and more.
Get It Now At www.doteasy.com

More information about the ODE mailing list