示例#1
0
        /// <summary>
        ///     Multiplies two instances.
        /// </summary>
        /// <param name="left">The left operand of the multiplication.</param>
        /// <param name="right">The right operand of the multiplication.</param>
        /// <returns>A new instance that is the result of the multiplication.</returns>
        public static Matrix2d Mult(Matrix2x4d left, Matrix4x2 right)
        {
            Matrix2d result;

            Mult(ref left, ref right, out result);
            return(result);
        }
示例#2
0
 /// <summary>
 ///     Calculate the transpose of the given matrix.
 /// </summary>
 /// <param name="mat">The matrix to transpose.</param>
 /// <param name="result">The transpose of the given matrix.</param>
 public static void Transpose(ref Matrix2x4 mat, out Matrix4x2 result)
 {
     result.Row0.X = mat.Row0.X;
     result.Row0.Y = mat.Row1.X;
     result.Row1.X = mat.Row0.Y;
     result.Row1.Y = mat.Row1.Y;
     result.Row2.X = mat.Row0.Z;
     result.Row2.Y = mat.Row1.Z;
     result.Row3.X = mat.Row0.W;
     result.Row3.Y = mat.Row1.W;
 }
示例#3
0
        /// <summary>
        ///     Multiplies two instances.
        /// </summary>
        /// <param name="left">The left operand of the multiplication.</param>
        /// <param name="right">The right operand of the multiplication.</param>
        /// <param name="result">A new instance that is the result of the multiplication.</param>
        public static void Mult(ref Matrix2x4d left, ref Matrix4x2 right, out Matrix2d result)
        {
            double lM11 = left.Row0.X,
                   lM12 = left.Row0.Y,
                   lM13 = left.Row0.Z,
                   lM14 = left.Row0.W,
                   lM21 = left.Row1.X,
                   lM22 = left.Row1.Y,
                   lM23 = left.Row1.Z,
                   lM24 = left.Row1.W,
                   rM11 = right.Row0.X,
                   rM12 = right.Row0.Y,
                   rM21 = right.Row1.X,
                   rM22 = right.Row1.Y,
                   rM31 = right.Row2.X,
                   rM32 = right.Row2.Y,
                   rM41 = right.Row3.X,
                   rM42 = right.Row3.Y;

            result.Row0.X = lM11 * rM11 + lM12 * rM21 + lM13 * rM31 + lM14 * rM41;
            result.Row0.Y = lM11 * rM12 + lM12 * rM22 + lM13 * rM32 + lM14 * rM42;
            result.Row1.X = lM21 * rM11 + lM22 * rM21 + lM23 * rM31 + lM24 * rM41;
            result.Row1.Y = lM21 * rM12 + lM22 * rM22 + lM23 * rM32 + lM24 * rM42;
        }