SharpNav.PolyMesh.DiagonalieLoose C# (CSharp) Method

DiagonalieLoose() private static method

private static DiagonalieLoose ( int i, int j, PolyVertex verts, int indices ) : bool
i int
j int
verts PolyVertex
indices int
return bool
        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;
        }