Simplify offeset calculation logic a little bit
This commit is contained in:
parent
bdbc60b4f7
commit
8ade26b4a4
@ -128,6 +128,11 @@ void EdgeBasedGraphFactory::InsertEdgeBasedNode(const NodeID node_u,
|
||||
// TODO: move to lambda function with C++11
|
||||
int temp_sum = 0;
|
||||
|
||||
// u-----------------------------------v
|
||||
// 0 1 i-1 i n-1
|
||||
// x --> x --> ... --> x --> x ... --> x
|
||||
// |-------------------|
|
||||
// forward_dist_prefix_sum[i]
|
||||
for (const auto i : osrm::irange(0u, geometry_size))
|
||||
{
|
||||
forward_dist_prefix_sum[i] = temp_sum;
|
||||
@ -135,14 +140,22 @@ void EdgeBasedGraphFactory::InsertEdgeBasedNode(const NodeID node_u,
|
||||
|
||||
BOOST_ASSERT(forward_data.distance >= temp_sum);
|
||||
}
|
||||
BOOST_ASSERT(forward_dist_prefix_sum.back() + forward_geometry.back().second == forward_data.distance);
|
||||
|
||||
// v-----------------------------------u
|
||||
// 0 1 i-1 i n-1
|
||||
// x --> x --> ... --> x --> x ... --> x
|
||||
// |-------------------|
|
||||
// reverse_dist_prefix_sum[i]
|
||||
temp_sum = 0;
|
||||
for (const auto i : osrm::irange(0u, geometry_size))
|
||||
{
|
||||
temp_sum += reverse_geometry[reverse_geometry.size() - 1 - i].second;
|
||||
reverse_dist_prefix_sum[i] = reverse_data.distance - temp_sum;
|
||||
// BOOST_ASSERT(reverse_data.distance >= temp_sum);
|
||||
reverse_dist_prefix_sum[i] = temp_sum;
|
||||
temp_sum += reverse_geometry[i].second;
|
||||
|
||||
BOOST_ASSERT(reverse_data.distance >= temp_sum);
|
||||
}
|
||||
BOOST_ASSERT(reverse_dist_prefix_sum.back() + reverse_geometry.back().second == reverse_data.distance);
|
||||
|
||||
NodeID current_edge_source_coordinate_id = node_u;
|
||||
|
||||
@ -168,8 +181,10 @@ void EdgeBasedGraphFactory::InsertEdgeBasedNode(const NodeID node_u,
|
||||
forward_data.edgeBasedNodeID, reverse_data.edgeBasedNodeID,
|
||||
current_edge_source_coordinate_id, current_edge_target_coordinate_id,
|
||||
forward_data.nameID, forward_geometry[i].second,
|
||||
reverse_geometry[geometry_size - 1 - i].second, forward_dist_prefix_sum[i],
|
||||
reverse_dist_prefix_sum[i], m_geometry_compressor.GetPositionForID(edge_id_1),
|
||||
reverse_geometry[geometry_size - 1 - i].second,
|
||||
forward_dist_prefix_sum[i],
|
||||
reverse_dist_prefix_sum[geometry_size - 1 - i],
|
||||
m_geometry_compressor.GetPositionForID(edge_id_1),
|
||||
component_id, i, forward_data.travel_mode, reverse_data.travel_mode);
|
||||
current_edge_source_coordinate_id = current_edge_target_coordinate_id;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user