Commit Graph

6 Commits

Author SHA1 Message Date
bherbruck 82b9348408 difftest: intersect.surface_intersector_p2 - DoBoundaryPlaneTest on analytic surfaces (cylinder, cone, sphere, torus)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-30 00:13:09 -04:00
Alex Lytvynenko 2e0e38baa4 Serialize native shim calls around the shared API context
Guard common and handwritten entrypoints through native cleanup and callback restoration. Add exclusion, recursive forwarding and exception-unwind probes; p2 adds its concurrent cross-wrapper regression with the port.

Co-Authored-By: GPT-6.1-Sol <noreply@openai.com>
2026-10-17 20:33:34 +02:00
jijinbei 875291c4d9 shim: share identical C++ helpers through sc_sm.h, sc_nlib.h, sc_gw.h
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
2026-10-17 06:43:03 +09:00
bherbruck 305c332ad7 intersect.surface_intersector_p2: review fixes (unguard FlushCurve)
Drop the shim's is_rejected_flush and the runner's flush_rejected: the C++
does not misbehave on non-increasing knots (N_IgesValidate inside
CreateCanonical returns SM_ERR for decreasing knots, accepts equal ones), so
every Flush now runs and the sm_FlushCrv error path is compared. Add 105
review adversarial fixtures, drop the stale EvaluateNormal deferral note, and
record the classify-guard width, the unreachable Tangent/Coincident
classifications and the step-7 deferrals in plan/findings.md.

difftest: 1660 cases, 1508 pass, 0 fail, 152 deferred, max_rel_err 0.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-14 09:18:36 -04:00
bherbruck ee75a1edd0 port: intersect.surface_intersector_p2 (partial)
Finish the SmSurfaceIntersector part 2 port: the shim, ffi and runner now
also build SmCurveBoundedSurface (over a plane or B-spline basis), the
generator wraps surfaces in it, and planar-section fixtures come from
prog_test my_test_planar_section on shovel.srf. Difftest: 1517 cases,
1314 pass, 203 deferred (surface.surface_p3/p5/p7, blend.fillet_executive_p1).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MNGVDsEXPdxtFSUKma3wKs
2026-10-13 22:31:45 -04:00
bherbruck d808fa6f8d WIP intersect.surface_intersector_p2: interrupted by usage limit (unverified)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-13 22:00:03 -04:00