kmVec3* const kmMat3RotationToAxisAngle(kmVec3* pAxis, kmScalar* radians, const kmMat3* pIn) { /*Surely not this easy?*/ kmQuaternion temp; kmQuaternionRotationMatrix(&temp, pIn); kmQuaternionToAxisAngle(&temp, pAxis, radians); return pAxis; }
/** * Take the rotation from a 4x4 transformation matrix, and return it as an axis and an angle (in radians) * returns the output axis. */ kmVec3* kmMat4RotationToAxisAngle(kmVec3* pAxis, kmScalar* radians, const kmMat4* pIn) { /*Surely not this easy?*/ kmQuaternion temp; kmMat3 rotation; kmMat4ExtractRotation(&rotation, pIn); kmQuaternionRotationMatrix(&temp, &rotation); kmQuaternionToAxisAngle(&temp, pAxis, radians); return pAxis; }