Пример #1
0
        /// <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));
        }
Пример #2
0
 public static Fixed64Matrix CreateFromQuaternion(Fixed64Quaternion quaternion)
 {
     CreateFromQuaternion(ref quaternion, out Fixed64Matrix result);
     return(result);
 }
Пример #3
0
 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);
 }