29 #ifndef _ODE_COLLISION_SPACE_INTERNAL_H_
30 #define _ODE_COLLISION_SPACE_INTERNAL_H_
32 #define ALLOCA(x) dALLOCA16(x)
34 #define CHECK_NOT_LOCKED(space) \
35 dUASSERT ((space)==0 || (space)->lock_count==0, \
36 "invalid operation for locked space");
51 dIASSERT((g1->gflags & GEOM_AABB_BAD)==0);
52 dIASSERT((g2->gflags & GEOM_AABB_BAD)==0);
55 if (g1->body == g2->body && g1->body)
return;
58 if ( ((g1->category_bits & g2->collide_bits) ||
59 (g2->category_bits & g1->collide_bits)) == 0) {
64 dReal *bounds1 = g1->aabb;
65 dReal *bounds2 = g2->aabb;
66 if (bounds1[0] > bounds2[1] ||
67 bounds1[1] < bounds2[0] ||
68 bounds1[2] > bounds2[3] ||
69 bounds1[3] < bounds2[2] ||
70 bounds1[4] > bounds2[5] ||
71 bounds1[5] < bounds2[4]) {
77 if (g1->AABBTest (g2,bounds2) == 0)
return;
78 if (g2->AABBTest (g1,bounds1) == 0)
return;
81 callback (data,g1,g2);
void dNearCallback(void *data, dGeomID o1, dGeomID o2)
User callback for geom-geom collision testing.
Definition: collision_space.h:49
Definition: collision_kernel.h:96