You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
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:
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.
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
Description:
Due to the way in which
![image](https://private-user-images.githubusercontent.com/26874773/304795611-b1f2f627-75cf-4af1-a344-4415456e17f2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjcwOTYsIm5iZiI6MTczOTE2Njc5NiwicGF0aCI6Ii8yNjg3NDc3My8zMDQ3OTU2MTEtYjFmMmY2MjctNzVjZi00YWYxLWEzNDQtNDQxNTQ1NmUxN2YyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA1NTMxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYxZTYyMmRlZDE0ZTdlMzI1MThkYTM4NWQ5ZTJmMTVjOTUzNGFmNWExMGE5OTM3MmZiMWI3MzllYWMxZmExMDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.8lV-P3X17-aOZumC0_GTPFTIjR0nBrCoCUliatReUlc)
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: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](https://private-user-images.githubusercontent.com/26874773/304797349-0c522dd9-9923-48ec-9ba6-c2c11c8281c6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNjcwOTYsIm5iZiI6MTczOTE2Njc5NiwicGF0aCI6Ii8yNjg3NDc3My8zMDQ3OTczNDktMGM1MjJkZDktOTkyMy00OGVjLTliYTYtYzJjMTFjODI4MWM2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA1NTMxNlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU2YWI1OTE2NmFjMTViMmIzYTg4Yzk3YTUzYzgwMWU3NTIzMzFhN2RmYWU4M2JlMmMzOTE5YmRiNDg3ZmYyMzcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.L9y_UHVDHOiRoUrZn-xcUKCHCumexZbwWWzg44hT0NM)
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.
The text was updated successfully, but these errors were encountered: