throw errors from distance2curve and constrain s #1
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.
Two small tweaks:
Original try/catch around distance2curve blocked error handling except in one expected case, but other errors (usually as a result of unexpected or badly-formatted user input) could block successful calculation in xy2sn and lead to uninformative errors because P, n, and s weren't assigned. I added a rethrow to catch these.
In cases of x/y points very close to the centerline end points, s values returned by distance2curve can be just barely (machine precision-ish) outside the 0-1 range, which leads to an interparc error. I added an explicit constraint to keep these values in range.