osrm-backend/include/util
Michael Bell 5266ac1635
Add support for multiple via-way restrictions (#5907)
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.
2020-12-20 13:59:57 -08:00
..
guidance Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
alias.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
assert.hpp Remove OSM link debug printing from public class 2018-02-06 11:51:33 +01:00
attributes.hpp adjust testscases for collapse of use lane 2016-09-07 12:17:36 +02:00
bearing.hpp Free functions for guidance intersections analysis 2018-01-05 17:35:11 +01:00
bit_range.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
cast.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
concurrent_id_map.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
conditional_restrictions.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
connectivity_checksum.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
container.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
coordinate_calculation.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
coordinate.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
deallocating_vector.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
debug.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
dist_table_wrapper.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
dynamic_graph.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
exception_utils.hpp Make most command-line tools return useful error codes on well-known exceptions. 2017-06-08 15:03:24 +00:00
exception.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
exclude_flag.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
filtered_graph.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
filtered_integer_range.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
fingerprint.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
for_each_indexed.hpp Add support for multiple via-way restrictions (#5907) 2020-12-20 13:59:57 -08:00
for_each_pair.hpp Takes fn by forwarding ref. in for_each_pair, resolves #4148 2017-06-14 15:17:26 +00:00
for_each_range.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
geojson_debug_logger.hpp normalise angles only if an improvement 2017-10-25 10:17:14 +02:00
geojson_debug_policies.hpp adjust geojson logger to changes in extractor 2017-08-11 12:03:40 +02:00
geojson_debug_policy_toolkit.hpp adjust geojson logger to changes in extractor 2017-08-11 12:03:40 +02:00
geojson_validation.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
graph_traits.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
graph_utils.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
group_by.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
hilbert_value.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
ieee754.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
indexed_data.hpp Merge pull request #5891 from mloskot/ml/check-indexed-data-for-empty-values 2020-12-01 15:26:58 +02:00
integer_range.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
isatty.hpp Conditionally checks std::is_trivially_copyable only if available. (#3327) 2016-11-16 12:07:45 -08:00
json_container.hpp Updating year on all 'Project OSRM' copyrights 2017-10-03 12:03:26 +02:00
json_deep_compare.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
json_renderer.hpp Render floating point numbers to string using Grisu2 algorithmt instead of stdlib to speed up JSON generation. 2018-09-05 14:20:47 -07:00
json_util.hpp Fix compile on OS X 2016-04-05 22:58:32 +02:00
log.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
lua_util.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
matrix_graph_wrapper.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
meminfo.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
mmap_file.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
mmap_tar.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
msb.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
node_based_graph.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
opening_hours.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
packed_vector.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
percent.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
permutation.hpp Add support for multiple via-way restrictions (#5907) 2020-12-20 13:59:57 -08:00
query_heap.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
range_table.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
rectangle.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
serialization.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
static_assert.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
static_graph.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
static_rtree.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
std_hash.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
string_util.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
string_view.hpp Implements Zero-Copy String Views onto Contiguous Memory, resolves #3265. 2017-01-23 15:22:39 +01:00
timed_histogram.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
timezones.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
timing_util.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
to_osm_link.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
trigonometry_table.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
typedefs.hpp Add support for multiple via-way restrictions (#5907) 2020-12-20 13:59:57 -08:00
vector_tile.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
vector_view.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
version.hpp.in Replace fingerprint with semver-based scheme. (#3467) 2017-01-06 13:45:08 -08:00
viewport.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
web_mercator.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
xor_fast_hash_storage.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00
xor_fast_hash.hpp Upgrade formatting to clang-format 10 (#5895) 2020-11-26 07:21:39 -08:00