refactor FirstAndLastSegmentOfWay
This commit is contained in:
		
							parent
							
								
									ea1a89290a
								
							
						
					
					
						commit
						0d9b70552e
					
				| @ -119,39 +119,39 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name, | |||||||
|         while (way_start_and_end_iterator != way_start_end_id_list.end() && |         while (way_start_and_end_iterator != way_start_end_id_list.end() && | ||||||
|                restrictions_iterator != restrictions_list.end()) |                restrictions_iterator != restrictions_list.end()) | ||||||
|         { |         { | ||||||
|             if (way_start_and_end_iterator->wayID < restrictions_iterator->restriction.from.way) |             if (way_start_and_end_iterator->way_id < restrictions_iterator->restriction.from.way) | ||||||
|             { |             { | ||||||
|                 ++way_start_and_end_iterator; |                 ++way_start_and_end_iterator; | ||||||
|                 continue; |                 continue; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             if (way_start_and_end_iterator->wayID > restrictions_iterator->restriction.from.way) |             if (way_start_and_end_iterator->way_id > restrictions_iterator->restriction.from.way) | ||||||
|             { |             { | ||||||
|                 ++restrictions_iterator; |                 ++restrictions_iterator; | ||||||
|                 continue; |                 continue; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             BOOST_ASSERT(way_start_and_end_iterator->wayID == restrictions_iterator->restriction.from.way); |             BOOST_ASSERT(way_start_and_end_iterator->way_id == restrictions_iterator->restriction.from.way); | ||||||
|             const NodeID via_node_id = restrictions_iterator->restriction.via.node; |             const NodeID via_node_id = restrictions_iterator->restriction.via.node; | ||||||
| 
 | 
 | ||||||
|             if (way_start_and_end_iterator->firstStart == via_node_id) |             if (way_start_and_end_iterator->first_segment_source_id == via_node_id) | ||||||
|             { |             { | ||||||
|                 restrictions_iterator->restriction.from.node = |                 restrictions_iterator->restriction.from.node = | ||||||
|                     way_start_and_end_iterator->firstTarget; |                     way_start_and_end_iterator->first_segment_source_id; | ||||||
|             } |             } | ||||||
|             else if (way_start_and_end_iterator->firstTarget == via_node_id) |             else if (way_start_and_end_iterator->first_segment_source_id == via_node_id) | ||||||
|             { |             { | ||||||
|                 restrictions_iterator->restriction.from.node = |                 restrictions_iterator->restriction.from.node = | ||||||
|                     way_start_and_end_iterator->firstStart; |                     way_start_and_end_iterator->first_segment_source_id; | ||||||
|             } |             } | ||||||
|             else if (way_start_and_end_iterator->lastStart == via_node_id) |             else if (way_start_and_end_iterator->last_segment_source_id == via_node_id) | ||||||
|             { |             { | ||||||
|                 restrictions_iterator->restriction.from.node = |                 restrictions_iterator->restriction.from.node = | ||||||
|                     way_start_and_end_iterator->lastTarget; |                     way_start_and_end_iterator->last_segment_target_id; | ||||||
|             } |             } | ||||||
|             else if (way_start_and_end_iterator->lastTarget == via_node_id) |             else if (way_start_and_end_iterator->last_segment_target_id == via_node_id) | ||||||
|             { |             { | ||||||
|                 restrictions_iterator->restriction.from.node = way_start_and_end_iterator->lastStart; |                 restrictions_iterator->restriction.from.node = way_start_and_end_iterator->last_segment_source_id; | ||||||
|             } |             } | ||||||
|             ++restrictions_iterator; |             ++restrictions_iterator; | ||||||
|         } |         } | ||||||
| @ -176,32 +176,32 @@ void ExtractionContainers::PrepareData(const std::string &output_file_name, | |||||||
|         while (way_start_and_end_iterator != way_start_end_id_list.end() && |         while (way_start_and_end_iterator != way_start_end_id_list.end() && | ||||||
|                restrictions_iterator != restrictions_list.end()) |                restrictions_iterator != restrictions_list.end()) | ||||||
|         { |         { | ||||||
|             if (way_start_and_end_iterator->wayID < restrictions_iterator->restriction.to.way) |             if (way_start_and_end_iterator->way_id < restrictions_iterator->restriction.to.way) | ||||||
|             { |             { | ||||||
|                 ++way_start_and_end_iterator; |                 ++way_start_and_end_iterator; | ||||||
|                 continue; |                 continue; | ||||||
|             } |             } | ||||||
|             if (way_start_and_end_iterator->wayID > restrictions_iterator->restriction.to.way) |             if (way_start_and_end_iterator->way_id > restrictions_iterator->restriction.to.way) | ||||||
|             { |             { | ||||||
|                 ++restrictions_iterator; |                 ++restrictions_iterator; | ||||||
|                 continue; |                 continue; | ||||||
|             } |             } | ||||||
|             NodeID via_node_id = restrictions_iterator->restriction.via.node; |             NodeID via_node_id = restrictions_iterator->restriction.via.node; | ||||||
|             if (way_start_and_end_iterator->lastStart == via_node_id) |             if (way_start_and_end_iterator->last_segment_source_id == via_node_id) | ||||||
|             { |             { | ||||||
|                 restrictions_iterator->restriction.to.node = way_start_and_end_iterator->lastTarget; |                 restrictions_iterator->restriction.to.node = way_start_and_end_iterator->last_segment_target_id; | ||||||
|             } |             } | ||||||
|             else if (way_start_and_end_iterator->lastTarget == via_node_id) |             else if (way_start_and_end_iterator->last_segment_target_id == via_node_id) | ||||||
|             { |             { | ||||||
|                 restrictions_iterator->restriction.to.node = way_start_and_end_iterator->lastStart; |                 restrictions_iterator->restriction.to.node = way_start_and_end_iterator->last_segment_source_id; | ||||||
|             } |             } | ||||||
|             else if (way_start_and_end_iterator->firstStart == via_node_id) |             else if (way_start_and_end_iterator->first_segment_source_id == via_node_id) | ||||||
|             { |             { | ||||||
|                 restrictions_iterator->restriction.to.node = way_start_and_end_iterator->firstTarget; |                 restrictions_iterator->restriction.to.node = way_start_and_end_iterator->first_segment_source_id; | ||||||
|             } |             } | ||||||
|             else if (way_start_and_end_iterator->firstTarget == via_node_id) |             else if (way_start_and_end_iterator->first_segment_source_id == via_node_id) | ||||||
|             { |             { | ||||||
|                 restrictions_iterator->restriction.to.node = way_start_and_end_iterator->firstStart; |                 restrictions_iterator->restriction.to.node = way_start_and_end_iterator->first_segment_source_id; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             if (std::numeric_limits<unsigned>::max() != restrictions_iterator->restriction.from.node && |             if (std::numeric_limits<unsigned>::max() != restrictions_iterator->restriction.from.node && | ||||||
|  | |||||||
| @ -36,37 +36,41 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||||
| 
 | 
 | ||||||
| struct FirstAndLastSegmentOfWay | struct FirstAndLastSegmentOfWay | ||||||
| { | { | ||||||
|     EdgeID wayID; |     EdgeID way_id; | ||||||
|     NodeID firstStart; |     NodeID first_segment_source_id; | ||||||
|     NodeID firstTarget; |     NodeID first_segment_target_id; | ||||||
|     NodeID lastStart; |     NodeID last_segment_source_id; | ||||||
|     NodeID lastTarget; |     NodeID last_segment_target_id; | ||||||
|     FirstAndLastSegmentOfWay() |     FirstAndLastSegmentOfWay() | ||||||
|         : wayID(std::numeric_limits<unsigned>::max()), firstStart(std::numeric_limits<unsigned>::max()), firstTarget(std::numeric_limits<unsigned>::max()), lastStart(std::numeric_limits<unsigned>::max()), |         : way_id(std::numeric_limits<EdgeID>::max()), | ||||||
|           lastTarget(std::numeric_limits<unsigned>::max()) |           first_segment_source_id(std::numeric_limits<NodeID>::max()), | ||||||
|  |           first_segment_target_id(std::numeric_limits<NodeID>::max()), | ||||||
|  |           last_segment_source_id(std::numeric_limits<NodeID>::max()), | ||||||
|  |           last_segment_target_id(std::numeric_limits<NodeID>::max()) | ||||||
|     { |     { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     FirstAndLastSegmentOfWay(unsigned w, NodeID fs, NodeID ft, NodeID ls, NodeID lt) |     FirstAndLastSegmentOfWay(EdgeID w, NodeID fs, NodeID ft, NodeID ls, NodeID lt) | ||||||
|         : wayID(w), firstStart(fs), firstTarget(ft), lastStart(ls), lastTarget(lt) |         : way_id(w), first_segment_source_id(fs), first_segment_target_id(ft), | ||||||
|  |           last_segment_source_id(ls), last_segment_target_id(lt) | ||||||
|     { |     { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     static FirstAndLastSegmentOfWay min_value() |     static FirstAndLastSegmentOfWay min_value() | ||||||
|     { |     { | ||||||
|         return FirstAndLastSegmentOfWay((std::numeric_limits<unsigned>::min)(), |         return {std::numeric_limits<EdgeID>::min(), | ||||||
|                                     (std::numeric_limits<unsigned>::min)(), |                 std::numeric_limits<NodeID>::min(), | ||||||
|                                     (std::numeric_limits<unsigned>::min)(), |                 std::numeric_limits<NodeID>::min(), | ||||||
|                                     (std::numeric_limits<unsigned>::min)(), |                 std::numeric_limits<NodeID>::min(), | ||||||
|                                     (std::numeric_limits<unsigned>::min)()); |                 std::numeric_limits<NodeID>::min()}; | ||||||
|     } |     } | ||||||
|     static FirstAndLastSegmentOfWay max_value() |     static FirstAndLastSegmentOfWay max_value() | ||||||
|     { |     { | ||||||
|         return FirstAndLastSegmentOfWay((std::numeric_limits<unsigned>::max)(), |         return {std::numeric_limits<EdgeID>::max(), | ||||||
|                                     (std::numeric_limits<unsigned>::max)(), |                 std::numeric_limits<NodeID>::max(), | ||||||
|                                     (std::numeric_limits<unsigned>::max)(), |                 std::numeric_limits<NodeID>::max(), | ||||||
|                                     (std::numeric_limits<unsigned>::max)(), |                 std::numeric_limits<NodeID>::max(), | ||||||
|                                     (std::numeric_limits<unsigned>::max)()); |                 std::numeric_limits<NodeID>::max()}; | ||||||
|     } |     } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| @ -75,7 +79,7 @@ struct FirstAndLastSegmentOfWayStxxlCompare | |||||||
|     using value_type = FirstAndLastSegmentOfWay; |     using value_type = FirstAndLastSegmentOfWay; | ||||||
|     bool operator()(const FirstAndLastSegmentOfWay &a, const FirstAndLastSegmentOfWay &b) const |     bool operator()(const FirstAndLastSegmentOfWay &a, const FirstAndLastSegmentOfWay &b) const | ||||||
|     { |     { | ||||||
|         return a.wayID < b.wayID; |         return a.way_id < b.way_id; | ||||||
|     } |     } | ||||||
|     value_type max_value() { return FirstAndLastSegmentOfWay::max_value(); } |     value_type max_value() { return FirstAndLastSegmentOfWay::max_value(); } | ||||||
|     value_type min_value() { return FirstAndLastSegmentOfWay::min_value(); } |     value_type min_value() { return FirstAndLastSegmentOfWay::min_value(); } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user