public static void Mul(Matrix3 result, Matrix3 m1, Matrix3 m2) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { result.Set(i, j, m1.Get(i, 0) * m2.Get(0, j) + m1.Get(i, 1) * m2.Get(1, j) + m1.Get(i, 2) * m2.Get(2, j)); } } }
public Vector3f MultiplySelf(Matrix3 m) { float rx = x * m.Get(0, 0) + y * m.Get(0, 1) + z * m.Get(0, 2); float ry = x * m.Get(1, 0) + y * m.Get(1, 1) + z * m.Get(1, 2); float rz = x * m.Get(2, 0) + y * m.Get(2, 1) + z * m.Get(2, 2); return(Set(rx, ry, rz)); }
public static void Mul(float[] result, Matrix3 m, float[] v) { float a, b, c; a = m.Get(0, 0) * v[0] + m.Get(1, 0) * v[1] + m.Get(2, 0) * v[2]; b = m.Get(0, 1) * v[0] + m.Get(1, 1) * v[1] + m.Get(2, 1) * v[2]; c = m.Get(0, 2) * v[0] + m.Get(1, 2) * v[1] + m.Get(2, 2) * v[2]; result[0] = a; result[1] = b; result[2] = c; }
public static void Sub(Matrix3 result, Matrix3 m1, Matrix3 m2) { for (int i = 0; i < 9; i++) { result.Set(i, m1.Get(i) - m2.Get(i)); } }