parent
							
								
									13bf4fab32
								
							
						
					
					
						commit
						361e3ca356
					
				| @ -178,7 +178,7 @@ NodeID readBinaryOSRMGraphFromStream(std::istream &input_stream, | |||||||
|             continue; |             continue; | ||||||
|         } |         } | ||||||
|         target = internal_id_iter->second; |         target = internal_id_iter->second; | ||||||
|         BOOST_ASSERT_MSG(source != UINT_MAX && target != UINT_MAX, "nonexisting source or target"); |         BOOST_ASSERT_MSG(source != SPECIAL_NODEID && target != SPECIAL_NODEID, "nonexisting source or target"); | ||||||
| 
 | 
 | ||||||
|         if (source > target) |         if (source > target) | ||||||
|         { |         { | ||||||
| @ -210,22 +210,22 @@ NodeID readBinaryOSRMGraphFromStream(std::istream &input_stream, | |||||||
|                 (edge_list[i - 1].backward == edge_list[i].backward); |                 (edge_list[i - 1].backward == edge_list[i].backward); | ||||||
|             const bool edge_flags_are_superset1 = |             const bool edge_flags_are_superset1 = | ||||||
|                 (edge_list[i - 1].forward && edge_list[i - 1].backward) && |                 (edge_list[i - 1].forward && edge_list[i - 1].backward) && | ||||||
|                 (edge_list[i].backward != edge_list[i].backward); |                 (edge_list[i].forward != edge_list[i].backward); | ||||||
|             const bool edge_flags_are_superset_2 = |             const bool edge_flags_are_superset_2 = | ||||||
|                 (edge_list[i].forward && edge_list[i].backward) && |                 (edge_list[i].forward && edge_list[i].backward) && | ||||||
|                 (edge_list[i - 1].backward != edge_list[i - 1].backward); |                 (edge_list[i - 1].forward != edge_list[i - 1].backward); | ||||||
| 
 | 
 | ||||||
|             if (edge_flags_equivalent) |             if (edge_flags_equivalent) | ||||||
|             { |             { | ||||||
|                 edge_list[i].weight = std::min(edge_list[i - 1].weight, edge_list[i].weight); |                 edge_list[i].weight = std::min(edge_list[i - 1].weight, edge_list[i].weight); | ||||||
|                 edge_list[i - 1].source = UINT_MAX; |                 edge_list[i - 1].source = SPECIAL_NODEID; | ||||||
|             } |             } | ||||||
|             else if (edge_flags_are_superset1) |             else if (edge_flags_are_superset1) | ||||||
|             { |             { | ||||||
|                 if (edge_list[i - 1].weight <= edge_list[i].weight) |                 if (edge_list[i - 1].weight <= edge_list[i].weight) | ||||||
|                 { |                 { | ||||||
|                     // edge i-1 is smaller and goes in both directions. Throw away the other edge
 |                     // edge i-1 is smaller and goes in both directions. Throw away the other edge
 | ||||||
|                     edge_list[i].source = UINT_MAX; |                     edge_list[i].source = SPECIAL_NODEID; | ||||||
|                 } |                 } | ||||||
|                 else |                 else | ||||||
|                 { |                 { | ||||||
| @ -247,7 +247,7 @@ NodeID readBinaryOSRMGraphFromStream(std::istream &input_stream, | |||||||
|                 else |                 else | ||||||
|                 { |                 { | ||||||
|                     // edge i is smaller and goes in both direction. Throw away edge i-1
 |                     // edge i is smaller and goes in both direction. Throw away edge i-1
 | ||||||
|                     edge_list[i - 1].source = UINT_MAX; |                     edge_list[i - 1].source = SPECIAL_NODEID; | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| @ -340,7 +340,7 @@ NodeID readBinaryOSRMGraphFromStream(std::istream &input_stream, | |||||||
|             continue; |             continue; | ||||||
|         } |         } | ||||||
|         target = internal_id_iter->second; |         target = internal_id_iter->second; | ||||||
|         BOOST_ASSERT_MSG(source != UINT_MAX && target != UINT_MAX, "nonexisting source or target"); |         BOOST_ASSERT_MSG(source != SPECIAL_NODEID && target != SPECIAL_NODEID, "nonexisting source or target"); | ||||||
| 
 | 
 | ||||||
|         if (source > target) |         if (source > target) | ||||||
|         { |         { | ||||||
| @ -358,7 +358,7 @@ NodeID readBinaryOSRMGraphFromStream(std::istream &input_stream, | |||||||
|             (edge_list[i - 1].source == edge_list[i].source)) |             (edge_list[i - 1].source == edge_list[i].source)) | ||||||
|         { |         { | ||||||
|                 edge_list[i].distance = std::min(edge_list[i - 1].distance, edge_list[i].distance); |                 edge_list[i].distance = std::min(edge_list[i - 1].distance, edge_list[i].distance); | ||||||
|                 edge_list[i - 1].source = UINT_MAX; |                 edge_list[i - 1].source = SPECIAL_NODEID; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     const auto new_end_iter = std::remove_if(edge_list.begin(), |     const auto new_end_iter = std::remove_if(edge_list.begin(), | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user