Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Geometry_Engine: Split(Polyline, List<Line>, double) does not work against chained splitting lines #3282

Closed
pawelbaran opened this issue Feb 14, 2024 · 0 comments · Fixed by #3283
Assignees
Labels
type:bug Error or unexpected behaviour

Comments

@pawelbaran
Copy link
Member

pawelbaran commented Feb 14, 2024

Description:

Due to the way in which Split(Polyline, List<Line>, double) method is written, it yields wrong results in cases where splitting curves consist of multiple segments, as in the picture below:
image

In the above case, the splitting curve consists of 3 segments, while the alternative path along the outline is only 2 segments, therefore it is considered 'shorter' by the algorithm, resulting in the splitting curve being simply ignored:
image

After investigation I believe this issue cannot be solved by simply fixing the current implementation, we will need something more complex, based on angles between edges (luckily in my work on #3260 I may have came up with a faster solution).

Happy to attempt to fix it as I have lots of code ready. Adding @FraserGreenroyd as 2nd assignee because he overviewed the original implementation.

Test file(s):

On SharePoint.

@pawelbaran pawelbaran added the type:bug Error or unexpected behaviour label Feb 14, 2024
@pawelbaran pawelbaran changed the title Geometry_Engine: Split(Polyline, List<Line>, double) does not work against chained Geometry_Engine: Split(Polyline, List<Line>, double) does not work against chained splitting lines Feb 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:bug Error or unexpected behaviour
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants