Rotate 90 degrees around the x axis (or -90, depends on right- versus left-handed coordinates; try one, then the other, to see which one works).

This is not a secret. :-) There is plenty of OSG code that does this. Most of the OSG plugins support an option to transform from a y-up to z-up convention.
   -Paul


On 3/31/2011 3:09 AM, Aitor Ardanza wrote:
Hi,

I need to do it for my proyect... but I can't get good results.
OpenNI (Kinect) gives me the matrix with "Y up":

Code:
XnSkeletonJointPosition jointPos;
g_UserGenerator.GetSkeletonCap().GetSkeletonJointPosition(player, eJoint, 
jointPos);
XnMatrix3X3 orient;
orient = jointOrient.orientation;
tracker->set(orient.elements[0], orient.elements[1], orient.elements[2], 0,
orient.elements[3], orient.elements[4], orient.elements[5], 0,
orient.elements[6], orient.elements[7], orient.elements[8], 0,
jointPos.position.X, jointPos.position.Y, jointPos.position.Z, 1);


What I have to do to swap the Z and Y axes? multiply that by the matrix C?
C = 1 0 0 0
        0 0 1 0
        0 1 0 0
        0 0 0 1

Code:
tracker->postMult(C);

????

Thank you!

Cheers,
Aitor

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=38104#38104





_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org




--
  -Paul Martz      Skew Matrix Software
                   http://www.skew-matrix.com/
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to