Hi Jason, I had to apply -90 (in degrees) to the pitch to get the correct results after getHPRFromQuat(). Also createMatrix is expecting the input in degrees. Maybe this will help
Nick On Fri, Dec 19, 2014 at 3:10 AM, Jason Anderssen <janders...@exactal.com> wrote: > > Hi NICK, > > Thank you for your reply. > > What do you think I maybe doing wrong with the following code : (NOTE: > getHPRfromQuat > is cut and paste from link, and the createMatrix is cut and paste from your > reply. > I was basically hoping that q2 == q after the conversion to and from???? > > osg::Quat q(-0.7071067811865475, 0.0, 0.0, 0.7071067811865476); > osg::Vec3d hpr = getHPRfromQuat(q); > > osg::Matrixd m = createMatrix(0.0, 0.0, 0.0, hpr.x(), hpr.y(), hpr.z()); > osg::Quat q2; > q2.set(m); > Any assistance is very much appreciated. > > Cheers > Jason Anderssen > > > *Jason Anderssen*, Senior Product Engineer > Exactal -- Precision Software > [image: Exactal Pty Ltd] <http://www.exactal.com/> Level 2, Toowong > Tower, 9 Sherwood Road, Toowong QLD 4066, Australia > P: +61 7 3870 2666 | F: +61 7 3870 5266 | janders...@exactal.com > | www.exactal.com [image: Download CostX Viewer] > <http://www.exactal.com/viewer/download.php>[image: Send a CostX > Invitation] <http://www.exactal.com/viewer/invite.php> > > ------------------------------ > *From:* osg-users [osg-users-boun...@lists.openscenegraph.org] on behalf > of Trajce Nikolov NICK [trajce.nikolov.n...@gmail.com] > *Sent:* Thursday, 18 December 2014 6:14 PM > *To:* OpenSceneGraph Users > > *Subject:* Re: [osg-users] Yaw pitch and roll or xyz conversion to and > from Quaternion > > Hi Jason, > > here you have YPR from osg::Quat (look at the snippets) > > http://forum.openscenegraph.org/viewtopic.php?t=548 > > As for the other way it is easy, you create the Matrix and get the rotate > Quat, (return matrix.getRotate()), something like: > > osg::Matrixd Utils::createMatrix(double x, double y, double z, double h, > double p, double r) > { > osg::Matrixd mxR; > mxR.makeRotate(osg::DegreesToRadians(r),osg::Vec3(0,1,0)); > osg::Matrixd mxP; > mxP.makeRotate(osg::DegreesToRadians(p),osg::Vec3(1,0,0)); > osg::Matrixd mxH; > mxH.makeRotate(osg::DegreesToRadians(h),osg::Vec3(0,0,1)); > osg::Matrixd mxT; > mxT.makeTranslate(osg::Vec3(x,y,z)); > > return (mxP*mxH*mxT*mxR); > } > > On Thu, Dec 18, 2014 at 12:03 AM, Jason Anderssen <janders...@exactal.com> > wrote: >> >> Hi Chris, >> >> Thank you for you reply. >> >> I had a look at those, maybe I can get it to work with them, but I >> really just want a simple 3 values for Yaw Pitch and Roll, from which I can >> re-create the exactly same Quat or Matrix. I will also clarify, I don't >> care about translation or scale etc, and the quaternion I am using is of >> course only a rotation anyway. >> >> So basically I want the following type of code : >> >> getYPR(float &yaw, float &pitch, float &roll); >> >> Quaternion::fromYPR(yaw, pitch, roll); >> >> Cheers >> Jason Anderssen >> >> From: Chris Hanson <xe...@alphapixel.com> >> Reply-To: OpenSceneGraph Users <osg-users@lists.openscenegraph.org> >> Date: Wed, 17 Dec 2014 15:47:57 -0700 >> To: OpenSceneGraph Users <osg-users@lists.openscenegraph.org> >> Subject: Re: [osg-users] Yaw pitch and roll or xyz conversion to and >> from Quaternion >> >> Just wondering if in OSG there is anywhere I can extract either Yaw >>> pitch and roll / or XYZ eular angles, too and from either a matrix or a >>> quaternion? >>> >> >> The >> void >> <http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a01593.html#a306a73ea16dfe10406725cefb3867dfa> >> get >> <http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00648.html#a341e0295def3df6e07a014a1ff8195b4> >> (Matrixd >> <http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00489.html> >> &matrix) >> const >> >> method lets you convert a Quat to a 4x4 Matrix. >> >> void >> <http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a01593.html#a306a73ea16dfe10406725cefb3867dfa> >> decompose >> <http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00489.html#a3aad163d793a9d5af248e42fd2e94dea> >> (osg::Vec3d >> <http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00972.html> >> &translation, osg::Quat >> <http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00648.html> >> &rotation, osg::Vec3d >> <http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00972.html> >> &scale >> <http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00489.html#a9a9ad7cd3f007df5f559e10d471f1981> >> , osg::Quat >> <http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00648.html> >> &so) >> const decompose the matrix into translation, rotation, scale and >> scale orientation. >> >> Will extract the trans, rot and scale components out of the matrix. >> >> Is that what you want? >> >> -- >> Chris 'Xenon' Hanson, omo sanza lettere. xe...@alphapixel.com >> http://www.alphapixel.com/ >> Training * Consulting * Contracting >> 3D * Scene Graphs (Open Scene Graph/OSG) * OpenGL 2 * OpenGL 3 * OpenGL 4 >> * GLSL * OpenGL ES 1 * OpenGL ES 2 * OpenCL >> Digital Imaging * GIS * GPS * osgEarth * Terrain * Telemetry * >> Cryptography * Digital Audio * LIDAR * Kinect * Embedded * Mobile * >> iPhone/iPad/iOS * Android >> @alphapixel <https://twitter.com/alphapixel> facebook.com/alphapixel (775) >> 623-PIXL [7495] >> _______________________________________________ osg-users mailing >> list osg-users@lists.openscenegraph.org >> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >> Internet >> Email Confidentiality Footer: This email and any files transmitted with it >> contain privileged/confidential information intended for the addressee. >> Neither the confidentiality of nor any privilege in the email is waived, >> lost or destroyed by reason that it has been transmitted other than to the >> addressee. If you are not the addressee indicated in this message (or >> responsible for delivery of the message to such person), you may not copy >> or deliver this message to anyone. In such case, you should destroy this >> message, and notify us immediately. >> >> _______________________________________________ >> osg-users mailing list >> osg-users@lists.openscenegraph.org >> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org >> >> > > -- > trajce nikolov nick > Internet Email Confidentiality Footer: This email and any files > transmitted with it contain privileged/confidential information intended > for the addressee. Neither the confidentiality of nor any privilege in the > email is waived, lost or destroyed by reason that it has been transmitted > other than to the addressee. If you are not the addressee indicated in this > message (or responsible for delivery of the message to such person), you > may not copy or deliver this message to anyone. In such case, you should > destroy this message, and notify us immediately. > > _______________________________________________ > osg-users mailing list > osg-users@lists.openscenegraph.org > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > -- trajce nikolov nick
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org