using System; using System.Collections.Generic; using System.Text; namespace StgSharp.Math { public struct Array2x2 { public Vec2D row0; public Vec2D row1; public Vec2D colum0; public Vec2D colum1; public Array2x2(Vec2D c0, Vec2D c1) { row0 = c0; row1 = c1; colum0 = new Vec2D(c0.X,c1.X); colum1 = new Vec2D(c0.Y,c1.Y); } public Array2x2( float a11, float a12, float a21, float a22 ) { row0 = new Vec2D(a11, a12); row1 = new Vec2D(a21, a22); colum0 = new Vec2D(a11, a21); colum1 = new Vec2D(a21, a22); } public static Array2x2 operator *(Array2x2 array1, Array2x2 array2) { return new Array2x2( array1.colum0 * array2.row0, array1.colum1 * array2.row0, array1.colum0 * array2.row1, array1.colum1 * array2.row1 ); } public static Array2x2 operator +(Array2x2 array1, Array2x2 array2) { return new Array2x2( array1.row0 + array2.row0, array1.row1 + array2.row1 ); } public static Array2x2 operator -(Array2x2 array1, Array2x2 array2) { return new Array2x2( array1.row0 - array2.row0, array1.row1 - array2.row1 ); } } }