Skip to content

Backport algorithmic changes from occ-gordon - #86

Open
rainman110 wants to merge 6 commits into
mainfrom
85-backport-algorithmic-changes-from-occ-gordon
Open

Backport algorithmic changes from occ-gordon#86
rainman110 wants to merge 6 commits into
mainfrom
85-backport-algorithmic-changes-from-occ-gordon

Conversation

@rainman110

Copy link
Copy Markdown
Collaborator

Summary

Backport the occ_gordon curve-network improvements into geoml:

  • Handle closed profile/guide networks correctly in Gordon surface interpolation.
  • Add a std::vector<Handle(Geom_BSplineCurve)> overload for geoml::interpolate_curve_network.
  • Fix the B-spline intersection solver gradient computation and scale normalization.
  • Reduce the runtime of curve-network reparametrization by using a faster fitting path.

Changes

  • src/geometry/curve-networks/InterpolateCurveNetwork.*
    • Added explicit handling for closed profile/guide networks.
    • Added C2 cleanup for the final Gordon surface.
  • src/geoml/surfaces/surfaces.*
    • Added the BSpline-only overload for interpolate_curve_network.
  • src/math/IntersectBSplines.cpp
    • Fixed the objective gradient calculation.
    • Normalized the objective by curve scale to improve robustness across differently sized curves.
  • src/geometry/BSplineAlgorithms.cpp
    • Reduced the runtime of reparametrizeBSplineContinuouslyApprox by using a cheaper optimization pass.

Notes

This backport is split into separate commits to keep the individual changes reviewable:

Closes #85

@rainman110 rainman110 linked an issue Jun 9, 2026 that may be closed by this pull request
@rainman110
rainman110 marked this pull request as ready for review June 9, 2026 16:11
@rainman110
rainman110 requested a review from AntonReiswich June 9, 2026 16:14
@rainman110

Copy link
Copy Markdown
Collaborator Author

@AntonReiswich I backported my changes in the occ-gordon library to geoml to keep both codes in line. Please check this out

@codecov-commenter

codecov-commenter commented Jun 9, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 76.53061% with 23 lines in your changes missing coverage. Please review.
✅ Project coverage is 64.60%. Comparing base (b5c31ee) to head (3f267b6).

Files with missing lines Patch % Lines
...eometry/curve-networks/InterpolateCurveNetwork.cpp 75.00% 20 Missing ⚠️
src/geoml/surfaces/surfaces.cpp 0.00% 3 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main      #86      +/-   ##
==========================================
+ Coverage   64.46%   64.60%   +0.13%     
==========================================
  Files          93       93              
  Lines        6880     6952      +72     
==========================================
+ Hits         4435     4491      +56     
- Misses       2445     2461      +16     
Flag Coverage Δ
api-tests 63.70% <76.53%> (+0.15%) ⬆️
unittests 62.92% <78.94%> (+0.19%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/geometry/BSplineAlgorithms.cpp 92.74% <100.00%> (+0.06%) ⬆️
src/math/IntersectBSplines.cpp 96.79% <100.00%> (+0.16%) ⬆️
src/geoml/surfaces/surfaces.cpp 90.32% <0.00%> (-9.68%) ⬇️
...eometry/curve-networks/InterpolateCurveNetwork.cpp 79.91% <75.00%> (-1.10%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@AntonReiswich

Copy link
Copy Markdown
Contributor

Thank you @rainman110!
I will go through it after the 24th of June.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Backport algorithmic changes from occ-gordon

3 participants