[ODE] strange dGeomSetRotation problem

Krystian Ligenza kxxl at poczta.onet.pl
Mon Jul 23 00:22:31 MST 2007

>> when I set rotation using matrix:
>> [     0.0     0.0     1.0     ]
>> [     0.0   -1.0    -0.0     ]
>> [     1.0     0.0    -0.0     ]
>> then I get that matrix from geom and this is what i get:
>> [      1.0     0.0     0.0     ]
>> [     -0.0     1.0     0.0     ]
>> [      0.0    -0.0     1.0     ]
> Please post the code you are using to set and get the rotation matrix.
> And which ODE version you are using.

There is too much code to present, so I will show basic idea. I move
animation for skeleton to my ragdoll (but when driven ragdoll from animation
it do not have joints between bodies!). Update look something like that:

    //move info from skeleton to ODE
    for(each bone){
        //getting and counting pos, vX,vY,vZ,avX,avY,avZ
        //from skeleton for bone
        //setting part
        dGeomSetPosition(bone.symModel, pos[0], pos[1], pos[2] );

    //check part, I get all bone and show them as boxes to see if all data
are set ok
    for(each bone){
        const dReal* bonePos;
        const dReal* R;
        bonePos = dGeomGetPosition(bone.symModel);
        R = dGeomGetRotation(bone.symModel);

        //set this to corresponding box

    //process physics engine to move objects that are not driven by

I use ODE 0.8, and when I was writting this I see that there are 3 potential
places, where data can be corrupt:
1) when I set data to ODE geoms
2) when I get data from ODE geoms
3) when I set data to show boxes in engine

is it possible that ODE corrupt this?

I would like to assure, that everything works ok, except some cases, like
this presented in first post. As a result of this corruption few frames of
all animation have "bone jumps".


> -- 
> Daniel K. O. 

More information about the ODE mailing list