From: Bill C. <we...@pr...> - 2012-05-20 00:23:28
|
Hi : I'm trying to build a rigid-body simulation using PyODE/PyOpenGL. Since I'm just doing rigid-body, it is my understanding that I have no need for joints; I just need to add masses to my body at the appropriate translations/rotations. I have a number of cylindrical masses in my body. These cylinders have fixed positions and rotations within the body, but are not necessarily aligned with the X, Y or Z axis. PyODE does not bind the rotateMass() function from ODE; it only allows me to specify an X, Y or Z orientation for cylindrical mass (at creation time). This means that I am unable to rotate my cylindrical masses to the correct orientation. My guess is that this would not be a problem if each of these masses had their own Body; I could just rotate the body after the mass was bound. Doing doing it that way might work, but it would mean connecting the cylinders to the main body via joints, and what little documentation there is seems to contraindicate the use of joints for rigid-body simulations. My questions are as follows: 1) Am I correct in my assumption that I must rotate/translate the mass tensor to reflect the true location/orientation of my cylindrical masses within the containing body? It seems (to me) to be intuitively obvious that I do, but I don't put much stock in my intuition regarding this subject. 2) If the answer to (1) is "yes", then can anybody point me a rotation implementation? If "no", then would someone be willing to explain why not? I have already spent a lot of time Googling about for this information, but I am not sufficiently grounded in the subject to really understand the answers I have been able to find on my own; not well enough to write a function to rotate inertial tensors, anyway. Thanks in Advance, Bill Call |