Add fast path for constant curvature discretization#250
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Member
Author
|
This is actually slower than before on large turns. Should get to the bottom of that. (Edit: |
gpeairs
force-pushed
the
gp/constant-curvature
branch
from
July 9, 2026 15:05
a93147c to
32c07f8
Compare
gpeairs
force-pushed
the
gp/constant-curvature
branch
from
July 10, 2026 11:04
32c07f8 to
220b34c
Compare
laylagi
reviewed
Jul 15, 2026
laylagi
left a comment
Contributor
There was a problem hiding this comment.
Overall this looks good to me. I left one correctness question inline around the new Turn fast path, but the constant-curvature approach and the offset-turn handling make sense to me. Thanks!
…tOffset exact endpoints
gpeairs
force-pushed
the
gp/constant-curvature
branch
from
July 15, 2026 10:17
dca474c to
0748f03
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Address part of the over-refinement problem mentioned in #247 -- now we get the same number of points as through
circular_arcwhen we are discretizing circular arcs. This seems to be about 3x faster than marching. DemoQPU17 gets a fingerprint update, but all changes are <1nm slivers.Also fix some duplication in BSpline discretization (another item in the same issue), including removing a redundant calculation of the curvature which saves about 30% of render time. I looked at using
Paths._curvature!with pre-allocated G, H for B-spline curvature calls but benchmarks were ambiguous.