public static Matrix3x3 CreateFromMatrix(Matrix matrix4X4) { Matrix3x3 matrix3X3; matrix3X3.M11 = matrix4X4.M11; matrix3X3.M12 = matrix4X4.M12; matrix3X3.M13 = matrix4X4.M13; matrix3X3.M21 = matrix4X4.M21; matrix3X3.M22 = matrix4X4.M22; matrix3X3.M23 = matrix4X4.M23; matrix3X3.M31 = matrix4X4.M31; matrix3X3.M32 = matrix4X4.M32; matrix3X3.M33 = matrix4X4.M33; return matrix3X3; }
/// <summary> /// Constructs a quaternion from a rotation matrix. /// </summary> /// <param name="r">Rotation matrix to create the quaternion from.</param> /// <param name="q">Quaternion based on the rotation matrix.</param> public static void CreateFromRotationMatrix(ref Matrix r, out Quaternion q) { Matrix3x3 downsizedMatrix; Matrix3x3.CreateFromMatrix(ref r, out downsizedMatrix); CreateFromRotationMatrix(ref downsizedMatrix, out q); }