I'm unsure of your method, but here is how I handle it: _position is a PositionAttitudeTransform
Quat h,r,p; h.makeRotate(osg::DegreesToRadians(heading), Vec3d(0,0,1)); p.makeRotate(osg::DegreesToRadians(pitch), Vec3d(0,1,0)); r.makeRotate(osg::DegreesToRadians(roll), Vec3d(1,0,0)); _position->setAttitude(r*p*h); Jason -----Original Message----- From: osg-users [mailto:osg-users-boun...@lists.openscenegraph.org] On Behalf Of Chris Hidden Sent: Friday, September 05, 2014 5:35 AM To: osg-users@lists.openscenegraph.org Subject: [osg-users] Positional Animation Hey everyone. I may be interpreting how this is done improperly, but all I want at the moment is to animate two hand models. I have two osg::MatrixTransform objects which I add my loaded hand models too. I then attach an instance of a class that extends from osg::NodeCallback Then in that class i have: Code: public: HandMovementX() :incrementer(-0.5), incrementer2(-0.5), pitch(-90.0), roll(12.0){} virtual void operator()(osg::Node* node, osg::NodeVisitor* nv) { OSG_FATAL << "Being called" << std::endl; roll += incrementer2; if (roll > 57) incrementer2 = -0.5; if (roll < -33) incrementer2 = 0.5; pitch += incrementer; if (pitch < -135) incrementer = 0.5; if (pitch > -90) incrementer = -0.5; osg::MatrixTransform *trans = dynamic_cast<osg::MatrixTransform *> (node); if (trans != NULL) { osg::Matrixd handRotation; handRotation.makeRotate( osg::inDegrees(90.0f), osg::X_AXIS, osg::inDegrees(pitch), osg::Y_AXIS, osg::inDegrees(roll), osg::Z_AXIS ); trans->setMatrix(handRotation * osg::Matrix::translate(15, 0, 8) ); worldCoordMatrix = osg::computeLocalToWorld(nv->getNodePath()); } traverse(node, nv); } private: osg::Matrix worldCoordMatrix; float pitch; float roll; float incrementer; float incrementer2; The hands are moving, but not at all how I want them too and it seems that it animates first the Y axis and then the Z axis and then the translate. I want all positions to be taken into account in a single movement on each frame. Am I approaching this totally wrong or what? ------------------ Read this topic online here: http://forum.openscenegraph.org/viewtopic.php?p=60958#60958 _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org This email and any files transmitted with it from The Charles Machine Works, Inc. are confidential and intended solely for the use of the individual or entity to which they are addressed. If you have received this email in error please notify the sender. Our company accepts no liability for the contents of this email, or for the consequences of any actions taken on the basis of the information provided, unless that information is subsequently confirmed in writing. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. Finally, the recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email. _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org