[ODE] passing scaled matrix to dBodySetRotation
gcarlton at iinet.net.au
Sat Jan 8 11:39:52 MST 2005
You can't scale the rotation matrix, since it represents a pure
rotation. As ode uses generic "units" you should just be able to pass
whatever you want in as positions, sizes, etc, so there shouldn't be a
need to scale everything on top of that. If you wish to scale objects
around you'll have to do so in a object specific manner (setting new box
lengths, sphere radius, etc).
Osborn, Chris USA wrote:
>Hi, I am working on an open-source game engine called Delta3D (http://delta3d.org) that uses ODE.
>I was trying to throw in a simple scale function for our transform matrices by multiplying the scale factors down the diagonal as usual, but I found that the scaled effect is clobbered when we pass the rotation matrix to ODE, calculate physics, retrieve the matrix and reset ours. This is happening because ODE must internally normalize matrices inside of dBodySetRotation. Unfortunately normalizing ditches all scaling, and furthermore reapplying the scale gives the matrix an incorrect rotation!
>Simple problem, but we're having a hell of a time coming up with a good solution. Any thoughts? Thanks!
>ODE mailing list
>ODE at q12.org
More information about the ODE