private static bool DiagonalieLoose(int i, int j, PolyVertex[] verts, int[] indices)
{
int d0 = RemoveDiagonalFlag(indices[i]);
int d1 = RemoveDiagonalFlag(indices[j]);
for (int k = 0; k < verts.Length; k++)
{
int k1 = Next(k, verts.Length);
if (!((k == i) || (k1 == i) || (k == j) || (k1 == j)))
{
int p0 = RemoveDiagonalFlag(indices[k]);
int p1 = RemoveDiagonalFlag(indices[k1]);
if (PolyVertex.Equal2D(ref verts[d0], ref verts[p0]) ||
PolyVertex.Equal2D(ref verts[d1], ref verts[p0]) ||
PolyVertex.Equal2D(ref verts[d0], ref verts[p1]) ||
PolyVertex.Equal2D(ref verts[d1], ref verts[p1]))
continue;
if (PolyVertex.IntersectProp(ref verts[d0], ref verts[d1], ref verts[p0], ref verts[p1]))
return false;
}
}
return true;
}