public static Matrix3 operator *(Matrix3 m1, Matrix3 m2)
{
var result = new Matrix3 ();
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
float element = 0;
for (int k = 0; k < 4; k++) {
element += m1.M[i, k] * m2.M[k, j];
}
result.M[i, j] = element;
}
}
return result;
}