private void SetConvex(LinkedListNode <Vertex> vertex) { if (!vertex.Value.IsConvex) { vertex.Value.SetConvex(vertex.GetPrevious().Value, vertex.GetNext().Value, Direction); } }
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); }