class interface DRAWABLE_BEZIER creation make -- Create. feature(s) from DRAWABLE_POLYLINE -- Position empty: BOOLEAN -- Is the polyline empty (no points)? reset -- Reset the point list representing the polyline. ensure done: empty add_point (pt: POINT) -- Add a new point at the end of the polyline. require valid_point: pt /= Void ensure ok: not empty feature(s) from DRAWABLE_BEZIER -- Position set_start_point (pt: POINT) -- Set the starting point require valid_point: pt /= Void; empty: empty add_curve (cp1, cp2, final: POINT) -- Add a new bezier curve component. It will start from the -- end of the previous curve or the starting point, and will -- finish at the 'final' point. 'cp1' and 'cp2' are the control -- points. require valid_points: cp1 /= Void and cp2 /= Void and final /= Void; not_empty: not empty invariant valid_position: line /= Void; bezier_curve: line.count /= 0 implies line.count \\ 3 = 1; end of DRAWABLE_BEZIER