SmSurfaceCache object and simple queries, SmBezierAux2d/SmBezierPatch node data
with lazily built polar boxes, SmPatchBoundaryBoundingPlanes, SmAltSrfCache,
sm_ComputeBezierApproximation, ComputeSizeTolerances, GetCorners, BuildTreeTop,
FindUnmarkedLeafNode, GetConnectedRegion, MarkFaceContainment,
GetSurfaceContinuity, GetIsoBoundaryCurves, sm_CullArray; shim, ffi, difftest
runner and fixtures (872 cases, 709 pass bit-identical, 163 deferred).
Wired UNPORTED(surface.surface_cache_p1): SmTree::GetOwnerObject of surface
trees (Tree::set_owner_surface), sm_GetOriginalSurface; retagged the stubs that
need the cache's patch data from a bare tree to surface.surface_cache_p3 and
smsurf_GetSurfaceCache paths to surface.surface_p1 (CacheMakeOrValidate).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V8ohWGLCzFPoZriCeSSero