After solving, Spline.Render() converts each logical segment into a sequence
of path commands stored in BezierPath.
For each segment, the renderer:
th0 and th1 valuesMyCurveRenderSvg() is a convenience wrapper that serializes the final path to SVG
path data.
BezierPath.Mark(int) stores the logical segment index before subsequent path
commands. This is used by the sample application to map a hit-tested path point
back to the originating spline span.
BezierPath.HitTest() performs approximate nearest-distance queries against the
path.
This is sufficient for editing behaviors such as inserting knots, measuring fit
error, and refining traced input in DemoSpline.