If I imagine your situation correctly, you should store the handles to all geometries you use. Can you then not check their individual collisions with dGeom1CountCollision(geom) and dGeom2CountCollision(geom) ?!
I'm experimenting with a system loosely based on that "Sphere Demo Using Angular Velocities" by PhsyicParrot (see thread 7). In that I use a sphere for rolling the player. And only use it's position to place my player mesh and keep it upright.
I also force a box geom ABOVE the sphere (position is forced using bodySetPosition) which enables me to PUSH other objects out of the way - which is very cool.
BUT since that box's position is forced, it will simply 'pass through' any static collision geometry - which is pretty crap, really. Making the sphere the only object that prevents my player walking through static-walls. Which is good enough, but the sphere is of a small radius and no way coveres the full height of the player's body. Meaning if it would walk under a low bridge, it's torso would simply move THROUGH it :(
If that makes any sense...
What we really NEED is a function/routine that can PLACE any body ACCURATELY at a given XYZ position but internally uses forces (not velocity or dBodySetPosition), so that IT can collide with other bodies, and other bodies can collide into IT...
With that you might conclude that if a body did not arrive at the given XYZ coordinates then it must have been 'obstructed' in some way ie. collided with something else...
But I'm guessing such a function has to take into account things like mass, gravity, friction, AND the advance speed of the simulator (as a delta time). AND this probably only work on isolated bodies ie. not connected to any joints...
Pff... should have finished school.
Need more coffee...
D.
I'm experimenting with a system loosely based on that "Sphere Demo Using Angular Velocities" by PhsyicParrot (see thread 7). In that I use a sphere for rolling the player. And only use it's position to place my player mesh and keep it upright.
I also force a box geom ABOVE the sphere (position is forced using bodySetPosition) which enables me to PUSH other objects out of the way - which is very cool.
BUT since that box's position is forced, it will simply 'pass through' any static collision geometry - which is pretty crap, really. Making the sphere the only object that prevents my player walking through static-walls. Which is good enough, but the sphere is of a small radius and no way coveres the full height of the player's body. Meaning if it would walk under a low bridge, it's torso would simply move THROUGH it :(
If that makes any sense...
What we really NEED is a function/routine that can PLACE any body ACCURATELY at a given XYZ position but internally uses forces (not velocity or dBodySetPosition), so that IT can collide with other bodies, and other bodies can collide into IT...
With that you might conclude that if a body did not arrive at the given XYZ coordinates then it must have been 'obstructed' in some way ie. collided with something else...
But I'm guessing such a function has to take into account things like mass, gravity, friction, AND the advance speed of the simulator (as a delta time). AND this probably only work on isolated bodies ie. not connected to any joints...
Pff... should have finished school.
Need more coffee...
D.