public static Matrix43f operator +(Matrix43f M1, Matrix43f M2) { Matrix43f Result = new Matrix43f(false); Result.data[0] = M1.data[0] + M2.data[0]; Result.data[1] = M1.data[1] + M2.data[1]; Result.data[2] = M1.data[2] + M2.data[2]; Result.data[3] = M1.data[3] + M2.data[3]; Result.data[4] = M1.data[4] + M2.data[4]; Result.data[5] = M1.data[5] + M2.data[5]; return(Result); }
public static Matrix43f operator *(Matrix43f M, float s) { Matrix43f Result = new Matrix43f(false); Result.data[0] = M.data[0] * s; Result.data[1] = M.data[1] * s; Result.data[2] = M.data[2] * s; Result.data[3] = M.data[3] * s; Result.data[4] = M.data[4] * s; Result.data[5] = M.data[5] * s; return(Result); }
//обращение матрицы - не доделано public static Matrix43f operator !(Matrix43f M) { Matrix43f Result = new Matrix43f(false); float a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11; float OneDivDet = 1 / M.Determinant(); a0 = M.data[0]; a1 = M.data[1]; a2 = M.data[2]; a3 = M.data[3]; a4 = M.data[4]; a5 = M.data[5]; a6 = M.data[6]; a7 = M.data[7]; a8 = M.data[8]; a9 = M.data[9]; a10 = M.data[10]; a11 = M.data[11]; Result *= OneDivDet; return(Result); }
public static Matrix43f operator *(Matrix43f M1, Matrix43f M2) { Matrix43f Result = new Matrix43f(false); Result.data[0] = M1.data[0] * M2.data[0] + M1.data[1] * M2.data[4] + M1.data[2] * M2.data[8]; Result.data[1] = M1.data[0] * M2.data[1] + M1.data[1] * M2.data[5] + M1.data[2] * M2.data[9]; Result.data[2] = M1.data[0] * M2.data[2] + M1.data[1] * M2.data[6] + M1.data[2] * M2.data[10]; Result.data[3] = M1.data[0] * M2.data[3] + M1.data[1] * M2.data[7] + M1.data[2] * M2.data[11] + M1.data[3]; Result.data[4] = M1.data[4] * M2.data[0] + M1.data[5] * M2.data[4] + M1.data[6] * M2.data[8]; Result.data[5] = M1.data[4] * M2.data[1] + M1.data[5] * M2.data[5] + M1.data[6] * M2.data[9]; Result.data[6] = M1.data[4] * M2.data[2] + M1.data[5] * M2.data[6] + M1.data[6] * M2.data[10]; Result.data[7] = M1.data[4] * M2.data[3] + M1.data[5] * M2.data[7] + M1.data[6] * M2.data[11] + M1.data[7]; Result.data[8] = M1.data[8] * M2.data[0] + M1.data[9] * M2.data[4] + M1.data[10] * M2.data[8]; Result.data[9] = M1.data[8] * M2.data[1] + M1.data[9] * M2.data[5] + M1.data[10] * M2.data[9]; Result.data[10] = M1.data[8] * M2.data[2] + M1.data[9] * M2.data[6] + M1.data[10] * M2.data[10]; Result.data[11] = M1.data[8] * M2.data[3] + M1.data[9] * M2.data[7] + M1.data[10] * M2.data[11] + M1.data[11]; return(Result); }