Changing the order as you suggested didn't help; same problem. However, I have discovered that my model isn't simply falling through the terrain, but is getting totally dislocated from reality:
1 2
| location: (-1.0, 50.0, -1.0) location: (NaN, NaN, NaN) |
That's output from my app for each frame. Each line of output is before I call stepFast. The first line indicates my body's location as I set it before I run the sim. The second line shows the body's location after ODE gets done with it. And that's the last line of output. No additional frames are rendered and it seems the whole Java3D render loop is stuck (trying to render an object that is "nowhere"?).
When I revert to my previous code (i.e., no GeomTransform), I get normal output:
1 2 3 4 5 6 7 8 9 10 11
| location: (-1.0, 50.0, -1.0) location: (-1.0, 49.720078, -1.0) location: (-1.0, 49.613567, -1.0) location: (-1.0, 49.488773, -1.0) location: (-0.9878979, 49.206493, -1.0057374) location: (-0.9750137, 49.111187, -1.0105658) location: (-0.95794374, 49.023903, -1.0157655) location: (-0.94674605, 48.94492, -1.0238384) location: (-0.9331251, 48.95429, -1.0324804) location: (-0.92429227, 48.981445, -1.0410043) ... |
As you can see, the sim runs and the body can be seen to fall under gravity's influence until it collides with the terrain at about y=49.3, then it bounces a bit and life goes on.
I can't figure out what's wrong. I'm willing to try to build a test case, but that would be a horrendous task starting from my current code base. In the test you displayed in the other post, did you have gravity?
-Tab