SharpNav.PolyMesh.InConeLoose C# (CSharp) Method

InConeLoose() private static method

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