Commit Graph

4 Commits

Author SHA1 Message Date
Alex Lytvynenko bc51a3f2dd difftest: cover native blend-primitive API (#294 row 18)
Add op 26 to primitive.api_primitives: build a box with SmApiCreateBox in
the shim, resolve the caller's edge/face list indices, and call the native
SmApiCreateBlendPrimitive. The FFI validates the program shape and bounds the
box for the blend's crash domain; the shim bounds-checks the indices against
the B-rep's lists. The record is the API status, the out face, the mutated
B-rep record and the blend face's own surface record (kind, tolerance, UV
domain, loop count, NURB, 5x5 evaluation grid).

Runner: the Rust side builds the same box with create_box and calls
create_blend_primitive; generated and fixed cases cover both same_direction
choices, corner/cross-face associations, an invalid association (both sides
SM_ERR_INVALID_INPUT 1007), and 1e-3/1e3 scales.

Co-Authored-By: DeepSeek V4.1 Flash (OpenCode Go) <noreply@opencode.ai>
2026-10-25 00:02:34 +02:00
Henrik Lampe 3b617cac85 fix: keep production ray preparation in one solve
Use live topology reads and cache-first face classification while retaining exact evaluation geometry. Forward constructor identities into stitching region queries and compare primitive geometry, tolerances, trims and rays against SMLib.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-23 17:26:15 +02:00
bherbruck b8ba30df44 topology.brep_p8: UB-119 deferrals, FindEdge wiring, api_primitives shim fix, plan
- Plane-fit refusals of FindOuterLoops' zero-area loop (UB-119) pass through
  the face builders and defer as cpp-guard:ub-119 in the runners.
- geom.tools: FindEdge's DropPoint wired to curve.curve_p6.
- primitive.api_primitives shim: put_brep takes the out-parameter by reference
  (it was read before the call wrote it); the runner counts the B-rep's lists.
- plan: brep_p8 partial, findings rewritten, brep_p6 blocker noted.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pfe7dodPG5rpuN9B8QcnuX
2026-10-20 23:09:17 -04:00
bherbruck f694723535 primitive.api_primitives: port SmApiPrimitives.cpp with shim, ffi, runner and fixtures
Surface overloads (plane, cylinder, cone, torus) are ported in full; the
B-rep entry points validate as upstream and defer to the unported
SmPrimitiveCreation / SmBrep units. Upstream crashes and hangs found by
the C++ reference run are recorded as UB-158..161 and HANG-16 and fenced
off by the ffi guard.

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