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 (); }