Hello everyboy,

currently, I am trying to get some transformations working to display a 
cylinder as a line of sight.
As you can see in the code below, I want to get the rotation represented by the 
Quaternion q into the Matrix mat, but neither preMultRotate using the quat nor 
multiplying as a Matrix won't give the expected results.
Any ideas/clues?

I am using OpenSceneGraph 3.5.5, commit from 7.10.2016 
(6142ea1d4671c18ff1cb51bc49ba74c11df0d15b)


Code:

osg::Vec3 dir(1,1,1);
osg::Vec3 z(0,0,1);
dir.normalize();
osg::Quat q = getQuaternionFromTwoVectors(z, dir);

//q*z == dir.normalize() => TRUE (0.57735, 0.57735, 0.57735)

osg::Matrixd MV = getModelViewmatrix();
osg::Matrixd invMV = osg::Matrix::inverse(MV);

//invMV * MV * z == z => TRUE

//q * (invMV * MV * z) == dir.normalize() => true

osg::Matrixd mat = invMat;
mat.preMultRotate(q);

//mat * MV * u == dir.normalize() => false (-0.57735, -0.57735, 0.57735) 
instead of (0.57735, 0.57735, 0.57735)

mat = osg::Matrixd(q) * mat;
//mat * MV * u == dir.normalize() => false (-0.57735, -0.57735, 0.57735) 
instead of (0.57735, 0.57735, 0.57735)




Thank you!

Cheers,
Michael

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





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to