-
Notifications
You must be signed in to change notification settings - Fork 217
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
traverse first through non clustered turns, remove cluster exits, make priority consistent #1300
traverse first through non clustered turns, remove cluster exits, make priority consistent #1300
Conversation
…, make priority consistent fixes boostorg#1293 boostorg#1294 and boostorg#1295
return OverlayType == overlay_buffer || is_self_turn<OverlayType>(turn) | ||
? select_source_generic<&segment_identifier::multi_index>( | ||
turn, candidate_seg_id, previous_seg_id) | ||
: select_source_generic<&segment_identifier::source_index>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not part of the fix but makes code more concise and readable
{ | ||
// Check counts: in some cases interior rings might be generated with | ||
// polygons on both sides. For dissolve it can be anything. | ||
|
||
// If this forms a spike, going to/from the cluster point in the same | ||
// (opposite) direction, it can still be used. | ||
return cinfo.spike_count > 0 ? 1 : 0; | ||
return 1; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Returning 0
was a bug, it should only have returned 1.
So that is fixed and is necessary to avoid regressions with this PR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
Fixes issue #1293 #1294 and #1295
This PR fixes several issues. There are no regressions.
More detailed:
issue_630_b
(a relatively simple case)cluster_exits
(a welcome removal, see below)Removing cluster_exits is welcome because it was designed as a simple approach, not needing many conditions. But in the end there are conditions there as well, and (apparently) bugs. So it is welcome to remove it again and keep the code having one approach, used for both union and intersection in the same way.