/// <summary> /// Creates a JMatrix representing an orientation from a quaternion. /// </summary> /// <param name="quaternion">The quaternion the matrix should be created from.</param> /// <param name="result">JMatrix representing an orientation.</param> public static void CreateFromQuaternion(ref Fixed64Quaternion quaternion, out Fixed64Matrix result) { Fixed64 num9 = quaternion.x * quaternion.x; Fixed64 num8 = quaternion.y * quaternion.y; Fixed64 num7 = quaternion.z * quaternion.z; Fixed64 num6 = quaternion.x * quaternion.y; Fixed64 num5 = quaternion.z * quaternion.w; Fixed64 num4 = quaternion.z * quaternion.x; Fixed64 num3 = quaternion.y * quaternion.w; Fixed64 num2 = quaternion.y * quaternion.z; Fixed64 num = quaternion.x * quaternion.w; result.M11 = Fixed64.One - (2 * (num8 + num7)); result.M12 = 2 * (num6 + num5); result.M13 = 2 * (num4 - num3); result.M21 = 2 * (num6 - num5); result.M22 = Fixed64.One - (2 * (num7 + num9)); result.M23 = 2 * (num2 + num); result.M31 = 2 * (num4 + num3); result.M32 = 2 * (num2 - num); result.M33 = Fixed64.One - (2 * (num8 + num9)); }
public static Fixed64Matrix CreateFromQuaternion(Fixed64Quaternion quaternion) { CreateFromQuaternion(ref quaternion, out Fixed64Matrix result); return(result); }
public static Fixed64Matrix CreateFromYawPitchRoll(Fixed64 yaw, Fixed64 pitch, Fixed64 roll) { Fixed64Quaternion.CreateFromYawPitchRoll(yaw, pitch, roll, out Fixed64Quaternion quaternion); CreateFromQuaternion(ref quaternion, out Fixed64Matrix matrix); return(matrix); }