[ODE] passing scaled matrix to dBodySetRotation

Geoff Carlton 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 mailing list