using System; using System.Collections.Generic; using System.Text; namespace StgSharp.Math { public static unsafe partial class Vector { public static float Det(Matrix2x2 array) { return Cross(array.row1,array.row2); } public static unsafe float Det(Matrix3x3 array) { float* p = &array.row1.X; Matrix2x2 array1 = new Matrix2x2( *(p + 4), *(p + 5), *(p + 7), *(p + 8) ); Matrix2x2 array2 = new Matrix2x2( *(p + 3), *(p + 5), *(p + 6), *(p + 8) ); Matrix2x2 array3 = new Matrix2x2( *(p + 3), *(p + 4), *(p + 6), *(p + 7) ); return *p * Det(array1) - *(p + 1) * Det(array2) + *(p + 2) * Det(array3) ; } } }