public void InsertPoint(Edge2 edge, Point2 point) { int edgeAndPointIndex = _edges.IndexOf (edge); if (edgeAndPointIndex < 0) return; Point2 nextPoint = edge.GetNextPoint2 (); Edge2 newEdge = new Edge2 (point, nextPoint); edge.SetNextPoint2 (point); point.SetEdges (edge, newEdge); nextPoint.SetPrevEdge (newEdge); _edges.Insert (edgeAndPointIndex + 1, newEdge); _points.Insert (edgeAndPointIndex + 1, point); Point2 prevPoint = edge.GetPrevPoint2 (); prevPoint.Update (false); point.Update (false); nextPoint.Update (false); UpdateBounds (); }
public void AddPoint(Point2 point) { if (_points.Count > 0) { Point2 lastPoint = _points[_points.Count - 1]; Edge2 edge = new Edge2 (lastPoint, point); _edges.Add (edge); lastPoint.SetNextEdge (edge); point.SetPrevEdge (edge); } _points.Add (point); point.Update (); UpdateBounds (); }