private static bool InConeLoose(int i, int j, PolyVertex[] verts, int[] indices)
{
int pi = RemoveDiagonalFlag(indices[i]);
int pj = RemoveDiagonalFlag(indices[j]);
int pi1 = RemoveDiagonalFlag(indices[Next(i, verts.Length)]);
int pin1 = RemoveDiagonalFlag(indices[Prev(i, verts.Length)]);
if (PolyVertex.IsLeftOn(ref verts[pin1], ref verts[pi], ref verts[pi1]))
return PolyVertex.IsLeftOn(ref verts[pi], ref verts[pj], ref verts[pin1])
&& PolyVertex.IsLeftOn(ref verts[pj], ref verts[pi], ref verts[pi1]);
return !(PolyVertex.IsLeftOn(ref verts[pi], ref verts[pj], ref verts[pi1])
&& PolyVertex.IsLeftOn(ref verts[pj], ref verts[pi], ref verts[pin1]));
}