using System; using System.Collections.Generic; using System.Security.Cryptography.X509Certificates; using System.Text; namespace StgSharp.Math { public struct Array3x3 { public Vec3D row0; public Vec3D row1; public Vec3D row2; public Vec3D colum0; public Vec3D colum1; public Vec3D colum2; public Array3x3(Vec3D r0,Vec3D r1,Vec3D r2) { row0 = r0; row1 = r1; row2 = r2; colum0 = new Vec3D(r0.X, r1.X, r2.X); colum1 = new Vec3D(r0.Y, r1.Y, r2.Y); colum2 = new Vec3D(r0.Z, r1.Z, r2.Z); } public Array3x3( float a11,float a12,float a13, float a21,float a22,float a23, float a31,float a32,float a33 ) { row0 = new Vec3D(a11, a12, a13); row1 = new Vec3D(a21, a22, a23); row2 = new Vec3D(a31, a32, a33); colum0 = new Vec3D(a11,a21,a31); colum1 = new Vec3D(a12,a22,a32); colum2 = new Vec3D(a13,a23,a33); } public static Array3x3 operator +(Array3x3 array1, Array3x3 array2) { return new Array3x3( array1.row0.X + array2.row0.X, array1.row0.Y + array2.row0.Y, array1.row0.Z + array2.row0.Z, array1.row1.X + array2.row1.X, array1.row1.Y + array2.row1.Y, array1.row1.Z + array2.row1.Z, array1.row2.X + array2.row2.X, array1.row2.Y + array2.row2.Y, array1.row2.Z + array2.row2.Z ); } public static Array3x3 operator -(Array3x3 array1, Array3x3 array2) { return new Array3x3( array1.row0.X - array2.row0.X, array1.row0.Y - array2.row0.Y, array1.row0.Z - array2.row0.Z, array1.row1.X - array2.row1.X, array1.row1.Y - array2.row1.Y, array1.row1.Z - array2.row1.Z, array1.row2.X - array2.row2.X, array1.row2.Y - array2.row2.Y, array1.row2.Z - array2.row2.Z ); } } }