示例#1
0
 private void SetConvex(LinkedListNode <Vertex> vertex)
 {
     if (!vertex.Value.IsConvex)
     {
         vertex.Value.SetConvex(vertex.GetPrevious().Value, vertex.GetNext().Value, Direction);
     }
 }
示例#2
0
        private void SetEar(LinkedListNode <Vertex> vertex)
        {
            if (vertex.Value.IsConvex)
            {
                var prev = vertex.GetPrevious();
                var next = vertex.GetNext();
                if (!EnumerateVertex(next, prev).Any(p => PointInTriangle(prev.Value.Position, vertex.Value.Position, next.Value.Position, p.Value.Position)))
                {
                    Ears.Add(vertex);
                    return;
                }
            }

            Ears.Remove(vertex);
        }