**** EDIT : I THINK THIS IS NOT WORKING CORRECTLY **
I'm looking at it further
Before i start with the shapes i would like to talk about the physics scale. This can be set when you create the physics environment.
Create3DPhysicsWorld( scaleFactor )
The default scale factor is 40. For things to work at this scale they have to be pretty big. Much larger than what 3D programs produce by default.
The scale factor in this example is 8. You can change that to a larger number, say 30, and you will see tunneling.
I have spent some time trying to get to grips with compound shapes and thought i would share my results here.
The attached example is a hoop or torus shape.
What the program has is the torus model and a model of a cylinder aligned to one of the 12 segments around the torus.
It first gets the size of the segment using the GetObjectMeshSizeMin/Max functions.
Then it fixes the segment to the torus and rotates the torus (in 30 degree increments) to extract the position and rotation of that segment within the torus.
It is here where the documentation is a little misleading as it states;
"positionVec3 - The vector Id of the vector with the
world position for the center of the shape."
This is only true when the torus is positioned at 0,0,0. So the position of the segment is really relative to the position of the Torus,
not world co-ordinates.
It is also important to remember that the length of the segment (cylinder) lies along the x-axis, so we set the axis (axis - 0 = X axis, 1 = Y axis, 2 = Z axis) value to 0
Anyway this and not understanding the scale factor has always scared me away from 3D physics so it's nice to get a handle on these things.
I sure there's a hell of a lot more i need to understand before i can make anything decent.
The demo will step through as it extracts the data for each segment. The you can then press the spacebar to drop the hoop.
Hope this helps
If you have any questions or input, critical or otherwise, feel free to ask