Currently OSRM only supports turn restrictions with a single via-node or one
via-way. OSM allows for multiple via-ways to represent longer and more
complex restrictions.
This PR extends the use of duplicate nodes for representng via-way turn
restrictions to also support multi via-way restrictions. Effectively, this
increases the edge-based graph size by the number of edges in multi via-way
restrictions. However, given the low number of these restrictions it
has little effect on total graph size.
In addition, we add a new step in the extraction phase that constructs
a restriction graph to support more complex relationships between restrictions,
such as nested restrictions and overlapping restrictions.
* Initial internal intersection updates
paired with @oxidase and @kdiluca
TODO fix tests and add in new ones
* Added Internal Intersection Model
* removed debug info
* updates per PR 4845
* fixing build errors
* fixing all compile errors
* fixed EdgeID param
* Added is_internal_straight lambda
Added/Updated constexpr names and values
* added rejection case turn degree logic
* debug logging
* added turn angle logic to reject if there are incoming edges that have opposite turn degrees than outgoing edges or if the outgoing edges have opposing turn degrees; also merged with master v5.16
* fixed formatting
* fix to decrease tile size based on latest turn angle internal intersection updates
* Removed breaks
Breaks in code were a mistake and caused a change in the internal intersection identification.
* Update segregated_intersection_classification.cpp
* Update CHANGELOG.md
Added CHANGED #4845: Updated segregated intersection identification to Unreleased