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
 |         // TODO: move to lambda function with C++11
 | ||||||
|         int temp_sum = 0; |         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)) |         for (const auto i : osrm::irange(0u, geometry_size)) | ||||||
|         { |         { | ||||||
|             forward_dist_prefix_sum[i] = temp_sum; |             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_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; |         temp_sum = 0; | ||||||
|         for (const auto i : osrm::irange(0u, geometry_size)) |         for (const auto i : osrm::irange(0u, geometry_size)) | ||||||
|         { |         { | ||||||
|             temp_sum += reverse_geometry[reverse_geometry.size() - 1 - i].second; |             reverse_dist_prefix_sum[i] = temp_sum; | ||||||
|             reverse_dist_prefix_sum[i] = reverse_data.distance - temp_sum; |             temp_sum += reverse_geometry[i].second; | ||||||
|             // BOOST_ASSERT(reverse_data.distance >= temp_sum);
 | 
 | ||||||
|  |             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; |         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, |                 forward_data.edgeBasedNodeID, reverse_data.edgeBasedNodeID, | ||||||
|                 current_edge_source_coordinate_id, current_edge_target_coordinate_id, |                 current_edge_source_coordinate_id, current_edge_target_coordinate_id, | ||||||
|                 forward_data.nameID, forward_geometry[i].second, |                 forward_data.nameID, forward_geometry[i].second, | ||||||
|                 reverse_geometry[geometry_size - 1 - i].second, forward_dist_prefix_sum[i], |                 reverse_geometry[geometry_size - 1 - i].second, | ||||||
|                 reverse_dist_prefix_sum[i], m_geometry_compressor.GetPositionForID(edge_id_1), |                 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); |                 component_id, i, forward_data.travel_mode, reverse_data.travel_mode); | ||||||
|             current_edge_source_coordinate_id = current_edge_target_coordinate_id; |             current_edge_source_coordinate_id = current_edge_target_coordinate_id; | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user