[ODE] Body and object origin

Frederic Ferland fref at videotron.ca
Thu Jul 3 20:53:02 2003


I have a fancy lamp hanging from the ceiling in a room in my engine.  It is 
shaped more or less like a capital T that's been rotated 180 degrees.  The 
origin of the object is at the extremity of the rope that attaches the 
object to the ceiling.

I create two box geoms to represent the object.  One is long and tall (for 
the rope) and the other is large and thin (for the bottom part of the 
lamp).  I also create a box body and attach the lamp to the ceiling using a 
ball joint.


               -----------  <--- Box body
               I         I
               I    * <--I--- Object origin
               I    *    I
               -----*-----
                    *
                    *
                    *
                    *
           =========*===========



When I run my program, everything is fine and the lamp hangs and swings 
from the ceiling like I intended.  However, if I break the joint so that 
the lamp falls on the floor, it tries to 'stand' on it's rope instead of 
staying flat on it's bottom part like it would in real life, because the 
box body is centered on the object's origin rather than on what should 
normally be the heavy part of the object.

My question is, do I have to change my object's origin so that it's in the 
bottom part of the lamp instead of the rope, or is there a way to have ODE 
distribute the weight of the body towards the bottom part instead of at the 
extremity of the rope?  In other words, can I somehow offset the ODE body 
like I offset the geoms?

Hope all this lengthy explanation is clear to everyone... :)  Thanks for 
your help!