Commit Graph

7 Commits

Author SHA1 Message Date
Brett Lawson 21c40fc459 fix: surface.surface_p3 — LocalSurfaceSurfaceIntersect evaluates the surfaces themselves out of bounds
Upstream toggles OutOfBoundsEnabled on the surfaces (SmTemporaryChangeValue);
the port's out-of-bounds copy went through the copy constructor, whose knot
fix-up moves near-coincident knots. Use an evaluation copy (exact knots,
owner kept). The runner gains raw_knots inputs (shim surface kind 4, as in
surface_intersector_p5): 6 local_sss fixture cases failed before, pass after.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SdcgEtgaA54W2nr8dK1EYp
2026-10-27 08:02:46 +01:00
jijinbei 31aae90d9b shim: restore blank lines squeezed by #170
The migration in #170 collapsed every run of blank lines in the 48 files it
touched, including inside verbatim copies of upstream code (e.g.
curve_curve_p3.cpp), so they no longer diffed cleanly against upstream.
Restore exactly those 91 blank lines; nothing else changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 14:58:27 +09: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
Andreas 44eb5a2bcc surface_p3 FFI: kind 3 opt-in (p3 only); shim errors when CreateCanonical fails
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 10:31:29 +02:00
Andreas 8c8a757e87 surface_p3: set only the SmBSplineSurface flag member in the temporary out-of-bounds change; compare surfaces of revolution
The SurfOfRevolution arm of set_out_of_bounds_enabled also flipped the generator's
flag; upstream SmTemporaryChangeValue only changes m_bOutOfBoundsEnabled. Adds a unit
test and a surface-of-revolution kind (pole-on-axis included) to the p3 fixtures and
shim; moves the SssIntersectEnfo doc block onto its impl.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 07:58:04 +02:00
Andreas aa77afcb90 Merge upstream/main; address PR 52 review: is_degenerate(0.0), ignore EvaluateSTEPPoint status, all F/J in enfo records, allow zero plane normal, wire GetSingularities/EvaluateGeometric/EvaluateNormalSection back-edges
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 17:28:37 +02:00
froglemonade2 8a8faa1361 surface_p3: shim, ffi binding and difftest runner (WIP)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-14 13:23:41 +02:00