Propagate is_left_hand_driving from profile to data facade

This commit is contained in:
Michael Krasnyk
2017-08-16 12:07:46 +02:00
parent fca00fa09e
commit 3c399e5c28
13 changed files with 61 additions and 18 deletions
+6 -3
View File
@@ -168,14 +168,16 @@ NBGToEBG EdgeBasedGraphFactory::InsertEdgeBasedNode(const NodeID node_u, const N
GeometryID{packed_geometry_id, true},
forward_data.name_id,
forward_data.travel_mode,
forward_data.classes);
forward_data.classes,
forward_data.is_left_hand_driving);
if (reverse_data.edge_id != SPECIAL_EDGEID)
{
m_edge_based_node_container.SetData(reverse_data.edge_id,
GeometryID{packed_geometry_id, false},
reverse_data.name_id,
reverse_data.travel_mode,
reverse_data.classes);
reverse_data.classes,
reverse_data.is_left_hand_driving);
}
// Add segments of edge-based nodes
@@ -378,7 +380,8 @@ EdgeBasedGraphFactory::GenerateEdgeExpandedNodes(const WayRestrictionMap &way_re
m_edge_based_node_container.GetGeometryID(static_cast<NodeID>(edge_data.edge_id)),
edge_data.name_id,
edge_data.travel_mode,
edge_data.classes);
edge_data.classes,
edge_data.is_left_hand_driving);
m_edge_based_node_weights.push_back(m_edge_based_node_weights[eid]);
+9 -1
View File
@@ -259,6 +259,7 @@ void Storage::PopulateLayout(DataLayout &layout)
layout.SetBlockSize<ComponentID>(DataLayout::COMPONENT_ID_LIST, nodes_number);
layout.SetBlockSize<extractor::TravelMode>(DataLayout::TRAVEL_MODE_LIST, nodes_number);
layout.SetBlockSize<extractor::ClassData>(DataLayout::CLASSES_LIST, nodes_number);
layout.SetBlockSize<unsigned>(DataLayout::IS_LEFT_HAND_DRIVING_LIST, nodes_number);
}
if (boost::filesystem::exists(config.GetPath(".osrm.hsgr")))
@@ -733,11 +734,18 @@ void Storage::PopulateData(const DataLayout &layout, char *memory_ptr)
util::vector_view<extractor::ClassData> classes(
classes_list_ptr, layout.num_entries[storage::DataLayout::CLASSES_LIST]);
auto is_left_hand_driving_ptr = layout.GetBlockPtr<unsigned, true>(
memory_ptr, storage::DataLayout::IS_LEFT_HAND_DRIVING_LIST);
util::vector_view<bool> is_left_hand_driving(
is_left_hand_driving_ptr,
layout.num_entries[storage::DataLayout::IS_LEFT_HAND_DRIVING_LIST]);
extractor::EdgeBasedNodeDataView node_data(std::move(geometry_ids),
std::move(name_ids),
std::move(component_ids),
std::move(travel_modes),
std::move(classes));
std::move(classes),
std::move(is_left_hand_driving));
extractor::files::readNodeData(config.GetPath(".osrm.ebg_nodes"), node_data);
}