mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-08 13:01:52 +00:00
5265c8b428
Conflicts: - surface::surface::p2 read_from_db: keep main's PLANE_TYPE reader and this PR's SURF_OF_EXTRUSION_TYPE dispatch-gap arm. - plan/STATUS.md, plan/upstream-issues.md: keep both sides. This PR's issues renumbered past main's: UB-85..UB-89 -> UB-91..UB-95, WR-63 -> WR-66 (references in modules.toml and findings.md updated). Wiring: surface.plane_p2 is partial on main, so the UNPORTED(surface.plane_p2) SmPlane::TrimCurveToPlaneDomain stub in SurfOfExtrusion::intersect_with_plane is now the real call. difftest surface.surf_of_extrusion_p2: 1359 cases, 1048 pass (was 971), 0 failed, 311 deferred (plane_p2 133, adv_surface_intersector 97, curve_p9 81). Main build fix: main did not compile (CI red since the surface_intersector_p3 / surface_point_solve_p1 merges): four matches lacked the SurfaceKind::SurfOfRevolution arm. Dispatched as upstream: IsSingularity and IsOnSeam have no SmSurfOfRevolution/SmBSplineSurface override (base SmSurface, unported arm); SmSurfacePointSolve's SM_CAST_PTR(SmBSplineSurface) succeeds for a surface of revolution (its base); DropToIsoCurve calls the SmSurfOfRevolution override of CreateIsoParametricCurve. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm