| | 1 | | namespace Itinero.Network.Search.Islands; |
| | 2 | |
|
| | 3 | | internal static class IslandBuilderExtensions |
| | 4 | | { |
| | 5 | | internal static (EdgeId edge, bool forward) Invert(this (EdgeId edge, bool forward) edge) |
| 0 | 6 | | { |
| 0 | 7 | | return (edge.edge, !edge.forward); |
| 0 | 8 | | } |
| | 9 | |
|
| | 10 | | internal static bool CanBeTraversed(this (EdgeId edge, bool forward) edge, |
| | 11 | | (bool forward, bool backward) cost) |
| 0 | 12 | | { |
| 0 | 13 | | switch (edge.forward) |
| | 14 | | { |
| 0 | 15 | | case true when cost.forward: // edge is in the forward direction and can be traversed forward. |
| 0 | 16 | | case false when cost.backward: // edge is in the backward direction and can be traversed backward. |
| 0 | 17 | | return true; |
| | 18 | | default: |
| 0 | 19 | | return false; |
| | 20 | | } |
| 0 | 21 | | } |
| | 22 | | } |