private void FixEnterVertex(EnterFillerVertex enter, ref int i) { var prevI = i.PrevIndex(SupportPoints.Count); var nextI = i.NextIndex(SupportPoints.Count); if ((SupportPoints[prevI] is LineEndFillerVertex prevEnd && enter.Some(prevEnd)) || (SupportPoints[nextI] is LineEndFillerVertex nextEnd && enter.Some(nextEnd))) { SupportPoints.RemoveAt(i); i -= 1; }
public void Remove() { if (SupportPoints.Any()) { SupportPoints.RemoveAt(SupportPoints.Count - 1); } if (LineParts.Any()) { LineParts.RemoveAt(LineParts.Count - 1); } }
private void FixLineEndVertex(LineEndFillerVertex end, ref int i) { if (SupportPoints[i.NextIndex(SupportPoints.Count)] is LineEndFillerVertex nextEnd) { if (end.Point.Enter != nextEnd.Point.Enter && end.Line != nextEnd.Line && end.GetCommonLine(nextEnd) is MarkupRegularLine line) { SupportPoints.Insert(i + 1, new LineEndFillerVertex(end.Point, line)); SupportPoints.Insert(i + 2, new LineEndFillerVertex(nextEnd.Point, line)); i += 2; } } }
private void AddImpl(IFillerVertex newPoint) { if (newPoint.Equals(First)) { if (First is EnterFillerVertexBase firstEnter && Last is EnterFillerVertexBase lastEnter && firstEnter.Enter == lastEnter.Enter) { if (Prev is EnterFillerVertexBase prevEnter && prevEnter.Enter == lastEnter.Enter) { SupportPoints.Remove(lastEnter); } else if (Second is EnterFillerVertexBase secondEnter && firstEnter.Enter == secondEnter.Enter) { SupportPoints.Remove(firstEnter); } }
public bool Add(IFillerVertex supportPoint) { if (supportPoint.Equals(First)) { LineParts.Add(GetFillerLine(Last, First)); return(true); } else { SupportPoints.Add(supportPoint); if (VertexCount >= 2) { LineParts.Add(GetFillerLine(Prev, Last)); } return(false); } }
private void GetRuleEdges() { SupportPoints.Clear(); SupportPoints.AddRange(EditObject.RulesEdges); }
private void GetRuleEdges(MarkupLine editObject) { SupportPoints.Clear(); SupportPoints.AddRange(editObject.RulesEdges); }