organicmaps/routing
Anton Makouski df7d1db01c
Directions refactoring + Show speed limit (#2796)
Now RouteSegments generation starts at DirectionsEngine::Generate().
But this is just preparation, when segments are not created,
but turns, street names, any new staff like speed limits are created
with indexes when it should be applied later.
Later in FillSegmentInfo all this info is unpacked to RouteSegments
and populated by segments and junctions.
This approach is overcomplicated and makes difficult adding new info,
like speed limits, by creating more and more data to pack and unpack.
Also extra memory allocations are done for intermediate steps.
Several todo were found mentioning desirability of changes.
For this reason it was decided to create RouteSegments
at DirectionsEngine::Generate() with all available info
with minimal post-processing at later stages.

Signed-off-by: Anton Makouski <anton.makouski@gmail.com>
2022-06-27 00:35:50 +03:00
..
base [routing] Fixed minor bug in LeapsMode. 2022-06-02 13:09:53 +03:00
routes_builder [base] Removed copy-paste in Timer. 2022-06-13 14:55:32 +03:00
routing_benchmarks [routing] Store one (not three!) MwmHandle for feature's geometry. 2022-05-12 19:55:01 +03:00
routing_consistency_tests Unity builds 2022-01-13 18:24:11 +03:00
routing_integration_tests [routing] Extended navigation info about next turn street/road (#2658) 2022-06-07 15:20:21 +03:00
routing_quality Unity builds 2022-01-13 18:24:11 +03:00
routing_tests Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
absent_regions_finder.cpp [routing] Minor changes to avoid heavy hpp includes. 2021-09-24 07:57:34 +03:00
absent_regions_finder.hpp [routing] Minor changes to avoid heavy hpp includes. 2021-09-24 07:57:34 +03:00
async_router.cpp [routing] Minor code fixes. 2022-01-15 18:24:12 +03:00
async_router.hpp [core] Removed routing statistics 2021-03-14 10:49:56 +03:00
car_directions.cpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
car_directions.hpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
checkpoint_predictor.cpp [geometry] Get rid of MercatorBounds, refactor to namespace mercator 2019-11-01 11:09:30 +03:00
checkpoint_predictor.hpp
checkpoints.cpp [routing] Better DebugPrint for checkpoints. 2022-02-07 10:21:38 +03:00
checkpoints.hpp
city_roads.cpp [generator][routing] Build average highway speeds for MWM. 2022-02-18 11:51:44 +03:00
city_roads.hpp [generator][routing] Build average highway speeds for MWM. 2022-02-18 11:51:44 +03:00
city_roads_serialization.hpp [generator] Improve city boundaries, rewrite serialization 2019-11-18 17:06:57 +03:00
CMakeLists.txt [routing] Store one (not three!) MwmHandle for feature's geometry. 2022-05-12 19:55:01 +03:00
coding.hpp
cross_border_graph.cpp [routing] Minor changes to avoid heavy hpp includes. 2021-09-24 07:57:34 +03:00
cross_border_graph.hpp [routing] Precise CrossBorderGraphSerializer. 2021-09-24 07:57:34 +03:00
cross_mwm_connector.cpp
cross_mwm_connector.hpp Warning fix 2022-06-13 09:40:52 +03:00
cross_mwm_connector_serialization.hpp [routing] Serialize cross-mww-weights as MapUint32ToValue<uint32_t>. 2022-05-12 19:55:01 +03:00
cross_mwm_graph.cpp [routing] Added IndexRouter::PointsOnEdgesSnapping before refactoring. 2022-05-17 10:33:33 +03:00
cross_mwm_graph.hpp [routing] Added IndexRouter::PointsOnEdgesSnapping before refactoring. 2022-05-17 10:33:33 +03:00
cross_mwm_ids.hpp
cross_mwm_index_graph.hpp [routing] Store one (not three!) MwmHandle for feature's geometry. 2022-05-12 19:55:01 +03:00
data_source.hpp [routing] Free MwmHandle set in routing::MwmDataSource. 2022-05-26 13:55:10 +03:00
directions_engine.cpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
directions_engine.hpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
directions_engine_helpers.cpp [routing] Fixed possible std::out_of_range for array. 2022-05-26 13:55:10 +03:00
directions_engine_helpers.hpp [routing] Fixed possible std::out_of_range for array. 2022-05-26 13:55:10 +03:00
dummy_world_graph.hpp [routing] Added type aliases for vector-of-edges. 2021-03-16 18:58:01 +01:00
edge_estimator.cpp [routing] Store one (not three!) MwmHandle for feature's geometry. 2022-05-12 19:55:01 +03:00
edge_estimator.hpp [routing] Store one (not three!) MwmHandle for feature's geometry. 2022-05-12 19:55:01 +03:00
fake_edges_container.hpp [routing] Removed Get{Start/Finish}Ending. 2022-02-07 10:21:38 +03:00
fake_ending.cpp [routing] Prettify IndexGraphLoader, put 'const' in IndexGraph. 2022-02-07 10:21:38 +03:00
fake_ending.hpp [routing] CalcProjectionToSegment declaration added to hpp. 2020-12-01 10:07:36 +03:00
fake_feature_ids.cpp [routing] Added static to cpp. 2020-04-20 11:27:56 +03:00
fake_feature_ids.hpp [routing] Extended fake feature interval for transit. 2020-04-20 11:27:56 +03:00
fake_graph.cpp [routing] FakeGraph with no templates. 2020-04-07 11:00:32 +03:00
fake_graph.hpp added include 2020-04-07 11:00:32 +03:00
fake_vertex.hpp [routing] rid of m2::PointD in routing 2019-12-25 14:22:48 +03:00
features_road_graph.cpp [routing] Removed dummy interface. 2022-05-26 13:55:10 +03:00
features_road_graph.hpp [routing] Removed dummy interface. 2022-05-26 13:55:10 +03:00
following_info.hpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
geometry.cpp [routing] Store one (not three!) MwmHandle for feature's geometry. 2022-05-12 19:55:01 +03:00
geometry.hpp [routing] Store one (not three!) MwmHandle for feature's geometry. 2022-05-12 19:55:01 +03:00
guides_connections.cpp [base] Added IsExist. 2022-03-22 22:17:00 +03:00
guides_connections.hpp [routing] Guides fix. 2020-04-01 15:16:40 +03:00
guides_graph.cpp [routing] Added type aliases for vector-of-edges. 2021-03-16 18:58:01 +01:00
guides_graph.hpp [routing] Added type aliases for vector-of-edges. 2021-03-16 18:58:01 +01:00
index_graph.cpp [base] Removed copy-paste in Timer. 2022-06-13 14:55:32 +03:00
index_graph.hpp [routing] Fixed regression from 8e7c719b08. Keep lazy graph loading. 2022-05-10 13:44:57 +03:00
index_graph_loader.cpp [routing] Added IndexRouter::PointsOnEdgesSnapping before refactoring. 2022-05-17 10:33:33 +03:00
index_graph_loader.hpp [routing] Store one (not three!) MwmHandle for feature's geometry. 2022-05-12 19:55:01 +03:00
index_graph_serialization.cpp
index_graph_serialization.hpp Fix code style 2020-11-23 11:02:58 +03:00
index_graph_starter.cpp [routing] Relax no-pass-through-allowed criteria. 2022-04-15 09:29:07 +03:00
index_graph_starter.hpp [routing] Prettify AreWavesConnectible interface. 2022-02-18 16:58:08 +03:00
index_graph_starter_joints.hpp [routing] Prettify AreWavesConnectible interface. 2022-02-18 16:58:08 +03:00
index_road_graph.cpp [routing] Removed dummy interface. 2022-05-26 13:55:10 +03:00
index_road_graph.hpp [routing] Removed dummy interface. 2022-05-26 13:55:10 +03:00
index_router.cpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
index_router.hpp [routing] Process up to 20 cross-mwm routes-candidates for the optimal route. 2022-05-17 10:33:33 +03:00
joint.cpp
joint.hpp
joint_index.cpp
joint_index.hpp
joint_segment.cpp [routing] Prettify AreWavesConnectible interface. 2022-02-18 16:58:08 +03:00
joint_segment.hpp [routing] Prettify AreWavesConnectible interface. 2022-02-18 16:58:08 +03:00
junction_visitor.cpp [routing] Better routing debug. 2022-01-09 09:01:35 +03:00
junction_visitor.hpp [routing] Better routing debug. 2022-01-09 09:01:35 +03:00
latlon_with_altitude.cpp [routing] rid of m2::PointD in routing 2019-12-25 14:22:48 +03:00
latlon_with_altitude.hpp [routing] rid of m2::PointD in routing 2019-12-25 14:22:48 +03:00
leaps_graph.cpp [routing] CrossMwmConnector refactoring. 2022-04-17 15:06:40 +03:00
leaps_graph.hpp Review fixes. 2022-02-07 10:21:38 +03:00
leaps_postprocessor.cpp [routing] Don't skip dead-end candidates if they (start and finish) belong to one graph's cluster (island). 2022-05-17 10:33:33 +03:00
leaps_postprocessor.hpp
loaded_path_segment.hpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
maxspeeds.cpp [generator][routing] Store default MWM's speeds for inside/outside a city separately. 2022-04-03 22:38:48 +03:00
maxspeeds.hpp [generator][routing] Store default MWM's speeds for inside/outside a city separately. 2022-04-03 22:38:48 +03:00
maxspeeds_serialization.cpp [generator][routing] Build average highway speeds for MWM. 2022-02-18 11:51:44 +03:00
maxspeeds_serialization.hpp [generator][routing] Store default MWM's speeds for inside/outside a city separately. 2022-04-03 22:38:48 +03:00
mwm_hierarchy_handler.cpp [storage] Comment old diff scheme logic until refactoring. 2022-04-19 16:18:55 +03:00
mwm_hierarchy_handler.hpp [routing] Added cross border penalty tests. 2021-11-23 09:15:24 +03:00
nearest_edge_finder.cpp [routing] Added IndexRouter::PointsOnEdgesSnapping before refactoring. 2022-05-17 10:33:33 +03:00
nearest_edge_finder.hpp [routing] Added IndexRouter::PointsOnEdgesSnapping before refactoring. 2022-05-17 10:33:33 +03:00
opening_hours_serdes.cpp [base] Added IsExist. 2022-03-22 22:17:00 +03:00
opening_hours_serdes.hpp [routing] add IsSerializable method 2020-02-17 19:37:05 +03:00
pedestrian_directions.cpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
pedestrian_directions.hpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
position_accumulator.cpp [geometry] Get rid of MercatorBounds, refactor to namespace mercator 2019-11-01 11:09:30 +03:00
position_accumulator.hpp
regions_decl.hpp [routing] Cleanup includes in hpp files. 2022-02-18 11:51:44 +03:00
regions_router.cpp [routing] Removed dummy 'prevRoute' param. 2022-05-17 10:33:33 +03:00
regions_router.hpp [routing] Minor changes to avoid heavy hpp includes. 2021-09-24 07:57:34 +03:00
regions_sparse_graph.cpp [routing] Fixed crash when point doesn't not belong to any MWM (in a gap between). 2021-06-27 09:02:30 +03:00
regions_sparse_graph.hpp [routing] Minor changes to avoid heavy hpp includes. 2021-09-24 07:57:34 +03:00
restriction_loader.cpp [routing] Prettify IndexGraphLoader, put 'const' in IndexGraph. 2022-02-07 10:21:38 +03:00
restriction_loader.hpp
restrictions_serialization.cpp
restrictions_serialization.hpp
road_access.cpp [strings] Use string_view in StringUtf8Multilang and Tokenize. 2022-04-15 07:18:44 +03:00
road_access.hpp [strings] Use string_view in StringUtf8Multilang and Tokenize. 2022-04-15 07:18:44 +03:00
road_access_serialization.cpp [routing] Crash fix for reading zero version of section roadaccess. 2020-04-23 14:18:29 +03:00
road_access_serialization.hpp [routing] Prettify IndexGraphLoader, put 'const' in IndexGraph. 2022-02-07 10:21:38 +03:00
road_graph.cpp [routing] Removed dummy interface. 2022-05-26 13:55:10 +03:00
road_graph.hpp [routing] Removed dummy interface. 2022-05-26 13:55:10 +03:00
road_index.cpp
road_index.hpp
road_point.hpp [3party] Cleaned up boost dependencies 2021-12-06 18:02:29 +01:00
route.cpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
route.hpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
route_point.hpp
route_weight.cpp [routing] New RouteWeight::operator< 2022-01-07 18:37:00 +03:00
route_weight.hpp [routing] New RouteWeight::operator< 2022-01-07 18:37:00 +03:00
router.cpp Removed obsolete RouterType::Taxi option. 2021-05-31 09:41:09 +03:00
router.hpp [routing] Cleanup includes in hpp files. 2022-02-18 11:51:44 +03:00
router_delegate.cpp [routing] rid of m2::PointD in routing 2019-12-25 14:22:48 +03:00
router_delegate.hpp [routing] rid of m2::PointD in routing 2019-12-25 14:22:48 +03:00
routing_callbacks.hpp [core] Removed routing statistics 2021-03-14 10:49:56 +03:00
routing_exceptions.hpp
routing_helpers.cpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
routing_helpers.hpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
routing_options.cpp [routing] Relax no-pass-through-allowed criteria. 2022-04-15 09:29:07 +03:00
routing_options.hpp [routing] Relax no-pass-through-allowed criteria. 2022-04-15 09:29:07 +03:00
routing_result_graph.hpp [routing] Cleanup includes in hpp files. 2022-02-18 11:51:44 +03:00
routing_session.cpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
routing_session.hpp [desktop][routing] Added UseDebugGuideTrack option. 2022-05-17 10:33:33 +03:00
routing_settings.cpp [routing] Handle corner-cases in pedestrian & bicycle turns. 2020-10-23 11:10:06 +03:00
routing_settings.hpp [Routing] TurnDirections refactoring (#2508) 2022-05-05 21:06:21 +03:00
segment.cpp Review fixes. 2022-02-07 10:21:38 +03:00
segment.hpp [routing] Prettify AreWavesConnectible interface. 2022-02-18 16:58:08 +03:00
segmented_route.cpp [geometry] Get rid of MercatorBounds, refactor to namespace mercator 2019-11-01 11:09:30 +03:00
segmented_route.hpp
single_vehicle_world_graph.cpp [routing] Fixed regression from 8e7c719b08. Keep lazy graph loading. 2022-05-10 13:44:57 +03:00
single_vehicle_world_graph.hpp [routing] CrossMwmConnector refactoring. 2022-04-17 15:06:40 +03:00
speed_camera.cpp
speed_camera.hpp
speed_camera_manager.cpp [core][ios] Removed statistics and Alohalytics submodule 2021-03-14 10:49:56 +03:00
speed_camera_manager.hpp [routing] Fix for speed camera crash. 2020-04-14 16:19:24 +03:00
speed_camera_prohibition.cpp Road shields for Cyprus + No prohibitions for speed cameras (#2692) 2022-06-09 16:40:37 +03:00
speed_camera_prohibition.hpp [routing] Added debug-cam mode option. 2021-11-23 09:15:24 +03:00
speed_camera_ser_des.cpp
speed_camera_ser_des.hpp
traffic_stash.cpp
traffic_stash.hpp
transit_graph.cpp [routing] Added type aliases for vector-of-edges. 2021-03-16 18:58:01 +01:00
transit_graph.hpp [routing] Cleanup includes in hpp files. 2022-02-18 11:51:44 +03:00
transit_graph_loader.cpp [routing] Store one (not three!) MwmHandle for feature's geometry. 2022-05-12 19:55:01 +03:00
transit_graph_loader.hpp [routing] Store one (not three!) MwmHandle for feature's geometry. 2022-05-12 19:55:01 +03:00
transit_info.hpp [iOS] Temporary stub for compiling convertType(TransitType type) with new version of transit. 2020-08-10 14:35:50 +03:00
transit_world_graph.cpp [routing] Prettify IndexGraphLoader, put 'const' in IndexGraph. 2022-02-07 10:21:38 +03:00
transit_world_graph.hpp [routing] Cleanup includes in hpp files. 2022-02-18 11:51:44 +03:00
turn_candidate.hpp
turns.cpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
turns.hpp Directions refactoring + Show speed limit (#2796) 2022-06-27 00:35:50 +03:00
turns_generator.cpp [routing] Extended navigation info about next turn street/road (#2658) 2022-06-07 15:20:21 +03:00
turns_generator.hpp [Navigation] Refactoring of CarDirectionsEngine and PedestrianDirectionsEngine (#2547) 2022-05-16 19:29:59 +03:00
turns_generator_utils.cpp [Routing] TurnDirections refactoring + bug fixes (#2542) 2022-05-11 20:07:23 +03:00
turns_generator_utils.hpp [Navigation] Refactoring of CarDirectionsEngine and PedestrianDirectionsEngine (#2547) 2022-05-16 19:29:59 +03:00
turns_notification_manager.cpp [routing] Custom TurnItem methods and improvements in pedestrian directions. 2020-10-12 15:30:30 +03:00
turns_notification_manager.hpp [routing] Pedestrian directions engine. 2020-10-12 15:30:30 +03:00
turns_sound_settings.cpp [routing] Custom parameters for pedestrian sound notification time. 2020-10-12 15:30:30 +03:00
turns_sound_settings.hpp Unity builds 2022-01-13 18:24:11 +03:00
turns_tts_text.cpp [routing] Custom TurnItem methods and improvements in pedestrian directions. 2020-10-12 15:30:30 +03:00
turns_tts_text.hpp
vehicle_mask.cpp [strings] Use string_view in StringUtf8Multilang and Tokenize. 2022-04-15 07:18:44 +03:00
vehicle_mask.hpp [strings] Use string_view in StringUtf8Multilang and Tokenize. 2022-04-15 07:18:44 +03:00
world_graph.cpp [routing] CrossMwmConnector refactoring. 2022-04-17 15:06:40 +03:00
world_graph.hpp [routing] CrossMwmConnector refactoring. 2022-04-17 15:06:40 +03:00