private void AddSection(Event Ev) { var destination = Vector2.zero; if (Vector2.Distance(Ev.mousePosition, area.center) >= radius) { var goal = (Ev.mousePosition - area.center).normalized * radius / radius; destination = new Vector2(goal.x, -goal.y); } else { destination = Translate(Ev.mousePosition); } Undo.RecordObject(shape, $"{shape.GetInstanceID()} Adding Section"); shape.AddNewSection(destination); EditorUtility.SetDirty(shape); Repaint(); }