internal void start(PointF point, FlowChart fc) { cycleRoots.Clear(); affectedArrows.Clear(); startPoint = currentPoint = point; if (action == Action.Split) { invalidRect = currentObject.getRepaintRect(true); return; } if (action == Action.Create) { fc.raiseInitEvent(currentObject); currentObject.startCreate(point); } if (action == Action.Modify) { fc.fireBeginModifyEvent(currentObject, point, selectionHandle); currentObject.startModify(point, selectionHandle, this); } invalidRect = currentObject.getRepaintRect(action == Action.Modify); }