private static bool IsGoodSide(P3D A, P3D B, P3D C, P3D D, P3D M) { var n = P3D.CrossProduct(B - A, C - A); // n = AB x AC, normale au plan (A,B,C) var d = P3D.ScalarProduct(n, D - A); // n.AD var m = P3D.ScalarProduct(n, M - A); // n.AM return(d * m > 0); // si d et m sont de meme signes M et D sont du meme coté }