Commit Graph

5 Commits

Author SHA1 Message Date
茂之钳 324066a27c fix: properly restore and fix surface_intersection.h
CI / Build & Test (push) Failing after 38s
CI / Release Build (push) Failing after 40s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
2026-07-24 13:15:15 +00:00
茂之钳 d6039bc686 fix: /* */ inside doxygen block prematurely closes comment
CI / Build & Test (push) Failing after 35s
CI / Release Build (push) Failing after 35s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
2026-07-24 13:14:34 +00:00
茂之钳 314543f7a5 tmp: comment out plane intersect to test build
CI / Build & Test (push) Failing after 35s
CI / Release Build (push) Failing after 16m58s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
2026-07-24 13:13:55 +00:00
茂之钳 135b977865 fix: remove optional<NurbsCurve> field (no default ctor)
CI / Build & Test (push) Failing after 39s
CI / Release Build (push) Failing after 39s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
2026-07-24 13:11:32 +00:00
茂之钳 4a32633482 feat(v3.3): NURBS surface-surface intersection
CI / Build & Test (push) Failing after 31s
CI / Release Build (push) Failing after 34s
Build & Test / build-and-test (push) Has been cancelled
Build & Test / python-bindings (push) Has been cancelled
Implement industrial-grade NURBS surface-surface intersection algorithm:

Phase 1 — Recursive AABB subdivision with overlap culling
Phase 2 — Grid-based seed point discovery in leaf patches
Phase 3 — Newton refinement + tangent tracing along intersection curves
Phase 4 — Chord-length NURBS curve fitting through traced points

Also implement plane-surface intersection using contour tracing
on the parameter domain with Newton refinement.

New files:
- include/vde/curves/surface_intersection.h  (IntersectionCurve struct, APIs)
- src/curves/surface_intersection.cpp        (full algorithm implementation)
- tests/curves/test_surface_intersection.cpp (16 test cases)

Tests cover: plane-cylinder (horizontal/vertical/oblique cuts),
plane-planar, two intersecting planes, self-intersection,
non-intersecting surfaces, sphere-cylinder, fitted curve
verification, and robustness edge cases.
2026-07-24 13:07:45 +00:00