Skip to content

Commit

Permalink
Simplify offeset calculation logic a little bit
Browse files Browse the repository at this point in the history
  • Loading branch information
TheMarex committed Jun 17, 2015
1 parent bdbc60b commit 8ade26b
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions contractor/edge_based_graph_factory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -128,21 +128,34 @@ 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;
temp_sum += forward_geometry[i].second;

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;

Expand All @@ -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;

Expand Down

0 comments on commit 8ade26b

Please sign in to comment.