Commit Graph

6 Commits

Author SHA1 Message Date
Brett Lawson ff5c42371d Difftest IsNurbSurfaceCylinder and IsNurbSurfaceTorus against C++; record WR-493
New shim ops (surface.cone_p2 OP_RECOGNIZE_CYLINDER, surface.torus
OP_IS_NURB) and fixture-only runner ops: 77 cylinder cases (the issue's
r 5 about +Z, partial/full turns, both UV orders, scaled, tiny, cones,
tapers, twists) and 126 torus cases (the issue's R 10 r 3, partial
domains below the equator and past 180, scaled, tiny, horn/spindle,
perturbed and anisotropically scaled NURBS), flags off. WR-493 records the
fork's 7ea6a96; a WR-408 addendum covers IsNurbSurfaceTorus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SdcgEtgaA54W2nr8dK1EYp
2026-10-29 01:23:05 +01:00
Federico Dal Maso 9dd5b4d5ae Merge current main and SMLib 1.0.1 reference into PR 724
Retain the existing opt-in stale-angle correction alongside main's 1.0.1 port. The official upstream rebuild function is unchanged between c9c5979 and 3fd5b95; issue 713 was closed by the mean-radius fix in PR 1077, while PR 724 completes its stale-angle case.

Co-Authored-By: Codex (GPT-6) <noreply@openai.com>
2026-10-27 22:51:18 +01:00
bherbruck b50a704c90 WIP: port usd-brep v1.0.1 (3fd5b95) SMLib/SM_API changes
Snapshot of the swarm's in-progress v1.0.1 port before merging main:
per-slice ports (curve_class, face, brep/NLib, heal, primitives/cone,
SM_API and small files, offset/merge/topology_intersector, proto_topology,
vertex/vertexuse/track changes), shim/FFI updates, the pin file and
callgraph remap, fixtures and "fixed in v1.0.1" addenda. Not yet gated.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PJzQKZ9sjU1DhgS253e8J5
2026-10-26 20:27:47 -04:00
Federico Dal Maso 056e8e06b8 fix: preserve cylinder type during NURBS rebuild (#713)
Keep cylinder semi-angles zero after reconstructing their end circles,
using the mean radius within the reconstruction tolerance and rejecting
larger tapers. Add native differential fixtures and regression tests.
Record the pinned C++ disagreement and leave the unit blocked.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-24 09:45:21 +02:00
Karl Von Richter 73f48a311f fix: compare cone_p2 cones without a polar curve and failed trim-domain conversions
The surface.cone_p2 shim and runner refused two input classes whose upstream
behaviour is defined (AGENTS.md 5.6, "no more"):

- height_defined: offset and trim on a cone with NURB but no polar curve, and
  the height in the state. GetHeight ignores the evaluation statuses, but the
  SmPoint3d outputs keep their SM_UNDEF_DOUBLE initialisers (PR #226), and
  Cone::height mirrors that.
- trim_defined: a failed ConvertDomainFromNURBSToSTEP. sm_GetEllipseTrimIntervals
  ignores the status and keeps the default-constructed domain (PR #275). The
  shim now makes the same call with the status ignored; the runner mirrors it.

Only the UB-154 line/plane refusal remains. The state always carries the height.
New fixture no_polar_curve.json (Y axis (0, -1e-300, 0)) covers offset, trim,
rebuild and recognize; five trim cases compare real intervals through the
default domain. UB-87 and findings updated.

Fixes #277.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 15:49:19 +10:00
bherbruck f300449cf7 surface.cone_p2: port offsets, cone recognition, STEP rebuild, ellipse trim intervals
Ports SmCone::CreateOffsetSurface, SmCone::IsNurbSurfaceCone,
SmCone::RebuildSTEPFromNURBParameters and sm_GetEllipseTrimIntervals into
surface::cone::p2, with the C++ shim (verbatim copy of the file-static trim
helper), FFI binding, difftest runner and fixtures. Wires the
UNPORTED(surface.cone_p2) stubs in surface::cone::p3 and
BSplineSurface::copy_and_add_analytics (which now takes the kernel).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
2026-10-16 08:53:46 -04:00