extractRotationFromMatrix method
Extracts the rotation of the given 4x4 matrix and stores it in this quaternion.
Implementation
Quaternion extractRotationFromMatrix(Matrix4 m ) {
final e = matrix.elements;
final me = m.elements;
// remove scaling from the 3x3 portion
final sx = 1 / vector.fromMatrix4Column( m, 0 ).length;
final sy = 1 / vector.fromMatrix4Column( m, 1 ).length;
final sz = 1 / vector.fromMatrix4Column( m, 2 ).length;
e[ 0 ] = me[ 0 ] * sx;
e[ 1 ] = me[ 1 ] * sx;
e[ 2 ] = me[ 2 ] * sx;
e[ 3 ] = me[ 4 ] * sy;
e[ 4 ] = me[ 5 ] * sy;
e[ 5 ] = me[ 6 ] * sy;
e[ 6 ] = me[ 8 ] * sz;
e[ 7 ] = me[ 9 ] * sz;
e[ 8 ] = me[ 10 ] * sz;
fromMatrix3( matrix );
return this;
}