/** MATRICI DI TRASFORMAZIONE */ /** @return Matrice d'identità */ public static Mat4 Identity() { Mat4 n = new Mat4(); for (int i = 0; i < 16; i++) n.m[i] = 0; n.m[0] = n.m[5] = n.m[10] = n.m[15] = 1; return n; }
public IMatrix(Mat4 direct, Mat4 inverse) { Direct = direct; Inverse = inverse; }
/** * Inizializza la matrice a partire da un'altra * @param m */ public Mat4(Mat4 m) { this.m = m.ToFloatArray(); }
/** * Prodotto tra matrici * @param m2 seconda matrice * @return matrice risultante this*m2 */ public Mat4 Dot(Mat4 m2) { Mat4 n = new Mat4(); for (int i = 0; i < 4; i++) for (int j = 0; j < 4; j++) n.SetElement(i, j, this.Row(i).Dot(m2.Column(j)) ); return n; }