Logo Search packages:      
Sourcecode: blender version File versions  Download package

MT_ExpMap Class Reference

#include <MT_ExpMap.h>

List of all members.

Detailed Description

MT_ExpMap an exponential map parameterization of rotations in 3D. This implementation is derived from the paper "F. Sebastian Grassia. Practical parameterization of rotations using the exponential map. Journal of Graphics Tools, 3(3):29-48, 1998" Please go to http://www.acm.org/jgt/papers/Grassia98/ for a thorough description of the theory and sample code used to derive this class.

Basic overview of why this class is used. In an IK system we need to paramterize the joint angles in some way. Typically 2 parameterizations are used.

So exponential map is similar to a quaternion axis/angle representation but we store the angle as the length of the axis. So require only 3 parameters. Means that all exponential maps are valid rotations. Suffers from gimbal lock. But it's possible to detect when gimbal lock is near and reparameterize away from it. Also nice for interpolating. Exponential maps are share some of the useful properties of euler and quaternion parameterizations. And are very useful for differential IK solvers.

Definition at line 76 of file MT_ExpMap.h.

Public Member Functions

MT_Matrix3x3 getMatrix () const
const MT_QuaterniongetRotation () const
 MT_ExpMap (const MT_Quaternion &q)
 MT_ExpMap (MT_Scalar x, MT_Scalar y, MT_Scalar z)
 MT_ExpMap (const double v[3])
 MT_ExpMap (const float v[3])
 MT_ExpMap (const MT_Vector3 &v)
 MT_ExpMap ()
void partialDerivatives (MT_Matrix3x3 &dRdx, MT_Matrix3x3 &dRdy, MT_Matrix3x3 &dRdz) const
void setRotation (const MT_Quaternion &q)
void update (const MT_Vector3 &dv)
const MT_Vector3vector () const

Private Member Functions

void angleUpdated ()
void compute_dQdVi (MT_Quaternion *dQdX) const
void compute_dRdVi (const MT_Quaternion &dQdV, MT_Matrix3x3 &dRdVi) const
void reParametrize ()

Private Attributes

MT_Quaternion m_q
MT_Scalar m_sinp
MT_Scalar m_theta
MT_Vector3 m_v

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index