Refine font-edit tool with O(n) curve fitting #131
Merged
+266
−165
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This replaces O(n^4) brute-force spline fitting with O(n) least-squares algorithm using chord-length parameterization. This eliminates the exhaustive search through control point combinations, reducing iterations from ~6M to a single linear pass for typical glyphs.
Summary by cubic
Replaced O(n^4) brute-force spline fitting with an O(n) least-squares approach using chord-length parameterization, cutting typical glyph fitting from ~6M iterations to a single linear pass. Also hardened memory handling and cleanup to make the font editor more stable.
Refactors
Bug Fixes