125 shims carried private copies of the same small helpers (put_vec, st,
nl_status, Rd, dump_crv, read_nurb, ...). Move the most common, byte-identical
form of each into three headers grouped by the upstream API they need, and have
those shims pull them in with `using sc::<name>;`. Shims with a different
variant keep their own copy; files touched by open PRs are left alone.
`the_context()` stays per shim (its function-local SmContext must not be shared).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FBLgPenT24P1dunqnZR1Dj
Plane fallback line interval, InvertPointNearSingularity tolerance and
DropPoint result, sm_ExtractIsoCurve tolerance, ignored statuses
(GlobalCurveIntersect combine, SpLocal add, CreateBlendSurface,
coincidence evaluations with only_upper_half), non-zero tangents in
sm_IntersectSrfBndryCrv, GlobalPointSolve_0 wired with the kernel and the
surface handle, UB-116 -> UB-119 and HANG-14 -> HANG-15, volume_p1 and the
units whose surface_p8 deferrals are gone promoted to green.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>