diff --git a/include/extractor/edge_based_node.hpp b/include/extractor/edge_based_node.hpp index 073f4202e..d96a39731 100644 --- a/include/extractor/edge_based_node.hpp +++ b/include/extractor/edge_based_node.hpp @@ -12,12 +12,10 @@ struct EdgeBasedNode { GeometryID geometry_id; ComponentID component_id; - AnnotationID annotation_id : 31; - bool segregated : 1; + std::uint32_t annotation_id : 31; + std::uint32_t segregated : 1; }; -static_assert(sizeof(EdgeBasedNode) == 3 * 4, "Should be 3 * sizeof(uint32_t)"); - } // namespace extractor } // namespace osrm diff --git a/include/extractor/extractor.hpp b/include/extractor/extractor.hpp index 795f14e7f..ebb4ef633 100644 --- a/include/extractor/extractor.hpp +++ b/include/extractor/extractor.hpp @@ -103,6 +103,11 @@ class Extractor const std::string &path, std::vector &conditional_turn_restrictions); + // Find all "segregated" edges, e.g. edges that can be skipped in turn instructions. + // The main cases are: + // - middle edges between two osm ways in one logic road (U-turn) + // - staggered intersections (X-cross) + // - square/circle intersections std::unordered_set FindSegregatedNodes(NodeBasedGraphFactory &factory); }; }