/// <summary> /// 乗算を行う。 /// </summary> /// <param name="o">出力先</param> /// <param name="in1">行列1</param> /// <param name="in2">行列2</param> public static void Mul(ref Matrix44 o, ref Matrix44 in1, ref Matrix44 in2) { Matrix44 _in1 = in1; Matrix44 _in2 = in2; fixed (float* vo = o.Values) { fixed (float* v1 = in1.Values) { fixed (float* v2 = in2.Values) { for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { float v = 0.0f; for (int k = 0; k < 4; k++) { v += v1[i * 4 + k] * v2[k * 4 + j]; } vo[i * 4 + j] = v; } } } } } }