private IEnumerable<IFillerVertex> GetOtherEnterPoint(MarkupFiller filler) { var otherEnterPoint = Point.IsFirst ? Enter.Next.LastPoint : Enter.Prev.FirstPoint; var vertex = new EnterFillerVertex(otherEnterPoint); if (vertex.Equals(filler.First) || !filler.Vertices.Any(v => vertex.Equals(v))) yield return vertex; }
private IEnumerable <IFillerVertex> GetOtherEnterPoint(FillerContour contour) { var otherEnterPoint = Point.IsFirst ? Enter.Prev.LastPoint : Enter.Next.FirstPoint; var vertex = new EnterFillerVertex(otherEnterPoint); var isCanEnd = vertex.Equals(contour.First) && contour.VertexCount >= 3; var isUsed = contour.Vertices.Any(v => vertex.Equals(v)); var isEdgeLine = Point.Lines.Any(l => l.ContainsPoint(otherEnterPoint)); if ((isCanEnd || !isUsed) && !isEdgeLine) { yield return(vertex); } }