[ODE] Collision problem with geom gropus

Góral mcgoral2 at wp.pl
Wed Jan 8 07:30:02 2003


Hi everybody,
This is what i'm trynig to do:

- I create a body called "body1" and I insert it into world
- I create a geom group called "geomGr1" and I insert it to space

- I create geom called "geom1" (box) not inserted into space
- I create geom transform "geomTr1" not inserted into space
- I set "geom1" for "geomTr1" (dGeomTransformSetGeom function)
- I set "body1" for "geomTr1" (dGeomSetBody function)

- I create geom called "geom2" (box) not inserted into space
- I create geom transform "geomTr2" not inserted into space
- I set "geom2" for "geomTr2" (dGeomTransformSetGeom function)
- I set "body1" for "geomTr2" (dGeomSetBody function)

- I add "geomTr1" and "geomTr2" to "geomGr1" (dGeomGroupAdd function)
- I create ground plane called "ground" inserted int space

For clarity - the hierarchy:
GeomTr1 (in space)
 |
+--geomTr1 (body1 connected)
 |   +--geom1
 |
+--geomTr2 (body1 connected)
     +--geom2

so I have a body with 2 geoms (eg. car with lower and upper car chasiss
geoms), and geoms are in a group.
Am I connecting "body1" to geoms correctly? Should be body added to geom
group as well?

In my simulation "body1" is falling to the "ground". While in the air,
collision test is made between "geomGr1" and the "ground", with no contact
joints created - and that's correct. When "geomGr1" is touching the "ground"
contact joints are created between "geomGr1" and "ground", but these are
limbo joints, because "geomGr1" and "ground" has no bodies.
Manual says:
"If there is an intersection, the contents of the GeomGroup will be
individually tested against each other" - and it is not happening (I log
every call to collision callback function). Why? Should I do it by myself or
am I wrong at some point?

TIA,
Goral