Commit Graph

5 Commits

Author SHA1 Message Date
Brett Lawson f7bd614cbb mass.integrator: multi-span NURBS face cases and WR-494 record
Add face kind 5 to the mass.integrator shim, FFI guard and runner: a
rational quadratic B-spline patch with a u knot at 0.4 and a double v knot
at 0.5, so the default precise-property path is compared against C++ on a
face whose trims cross surface knots. 62 cases (domains crossing, between
and at the knots, accuracies 1e-3 to 1e-8, huge/tiny scale, queries 0 and
2-6): mass.integrator 1590 cases, 1590 pass, 0 deferred.

Record the defect as WR-494, naming the opt-in flag
precise_properties_split_at_surface_knots.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SdcgEtgaA54W2nr8dK1EYp
2026-10-29 02:42:43 +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
Brett Lawson a2cbb32429 difftest: build runner geometry as the C++ does (3 units bit-identical)
Three runners passed at 1e-9 but were not bit-identical because the Rust
side was given different geometry than the C++ used; the kernel ports
were faithful in all three:

- mass.integrator: plane-face trims were rebuilt from their NURB as
  BSplineCurve, while C++ integrates them as SmLine (analytic Evaluate).
  The shim now exports the SmLine members and the runner builds a Line.
- offset.offset_executive_p1: input lines were built with
  Line::from_points + edit_parameterization; the shim uses
  SmLine::CreateLineSegment. Use Line::create_line_segment.
- topology.edgeuse_p2: StepOff on SmCone/SmCylinder/SmSphere faces ran on
  the imported B-spline part, while C++ uses the analytic evaluators.
  Defer those cases on surface.surface_p2 (no Cone/Sphere SurfaceKind yet),
  as CheckSet already does.

All three now report max_rel_err 0 (checked with REL_TOL temporarily 0).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 21:50:10 -07:00
Damian Grudzień 77d99c7466 fix: preserve face integration derivative buffers
Seed the face evaluator adapter from the current Cash–Karp derivative array, retaining upstream behavior when the U tangent is zero. Add curved face and rational edge regressions, compare nested surface area integration and share the actual bounding-box scale.

Retain unused initial values and infinite error controls where upstream permits them, move the properties module before tests, and renumber the integration issue to WR-94.

Co-Authored-By: Codex <noreply@openai.com>
2026-10-15 20:49:37 +02:00
Damian Grudzień 7d5ac62772 port: add mass integrator and precise property calculations
Co-Authored-By: Codex <noreply@openai.com>
2026-10-15 19:25:58 +02:00