Commit Graph

4 Commits

Author SHA1 Message Date
Thijs Damsma 39675be165 difftest: surf_of_revolution_p3 runs IntersectWithCone
- runner: build the SmCone operand with Cone::create_canonical (bSwapUV,
  bInsideOut FALSE) and call intersect_with_cone; drop the stale hard-coded
  Unported(SmCone::CreateCanonical, surface.cone_p1) deferral (cone_p1 green)
- generator: cone operand 4/15 intersections (was 1/12), 70% coaxial with
  the surface; cone cases 18 -> 72 (17 with intersection curves)
- shims: stale comments claiming now-ported units unported (volume_p1,
  crv_in_volume, topology_intersector_p1, face_p1); no behaviour change

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H9QwJFBTKLZ9FFK3nVd1X4
2026-10-20 16:43:50 +02:00
jijinbei 4418ba3204 shim: share flg(SmBoolean), put_ivl and put_mat through sc_sm.h
Adds the three helpers to sc_sm.h, copied from the per-shim copies they
replace, and switches 19 shims to the shared flg/put_mat/put_vec/put_ivl/st/
put_dom. Shims touched by open PRs are left alone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 11:00:12 +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
bherbruck 47758968de surface.volume_p1: port SmVolume base class, lifts and ConcatEvals
Volume (kind enum: plain SmVolume, SmTransform, stand-ins for the unported
B-spline/bend/unbend/twist volumes) with orient and next maps: compound
Evaluate/Map/Orient through the chain rule, domain predicates, Transform,
copies, equality, discontinuities, SmFindPVIntersectENFO and the
smvol_Lift*Derivative / smvol_ConcatEvals helpers. Shim, ffi, runner and
886 fixture cases; difftest partial (2886 cases, 99 deferred on
surface.twist_volume / surface.unbend_volume), max_rel_err 0.

Wired UNPORTED(surface.volume_p1) stubs: curve.crv_in_volume now uses the
real Volume (deferred 604 -> 208), geom.transform IsKindOf and
SmDiscontinuities3d::Init (deferred 256 -> 3), geom.tol
GetScaledZero(const SmVolume&).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V8ohWGLCzFPoZriCeSSero
2026-10-12 22:56:19 -04:00