public Matrix44(Matrix34 Matrix, Vector4 Row3)
 {
     row0 = new Vector4();
     row1 = new Vector4();
     row2 = new Vector4();
     row3 = Row3;
     for (int i = 0; i < 12; i++)
     {
         this[i / 4, i % 4] = Matrix[i];
     }
 }
 public Matrix44(Matrix34 Matrix, Vector4 Row3)
 {
     row0 = new Vector4();
     row1 = new Vector4();
     row2 = new Vector4();
     row3 = Row3;
     for (int i = 0; i < 12; i++)
     {
         this[i / 4, i % 4] = Matrix[i];
     }
 }
        public static Matrix34 operator *(Matrix34 Left, Matrix34 Right)
        {
            Matrix44 l       = new Matrix44(Left, new Vector4(0, 0, 0, 1));
            Matrix44 r       = new Matrix44(Right, new Vector4(0, 0, 0, 1));
            Matrix44 Result  = l * r;
            Matrix34 result2 = new Matrix34();

            for (int i = 0; i < 12; i++)
            {
                result2[i] = Result[i];
            }
            return(result2);
        }
 public Matrix44(Matrix34 Matrix)
     : this(Matrix, new Vector4())
 {
 }
 public static Matrix34 operator *(Matrix34 Left, Matrix34 Right)
 {
     Matrix44 l = new Matrix44(Left, new Vector4(0, 0, 0, 1));
     Matrix44 r = new Matrix44(Right, new Vector4(0, 0, 0, 1));
     Matrix44 Result = l * r;
     Matrix34 result2 = new Matrix34();
     for (int i = 0; i < 12; i++)
     {
         result2[i] = Result[i];
     }
     return result2;
 }
 public Matrix44(Matrix34 Matrix)
     : this(Matrix, new Vector4())
 {
 }