fix errors introduced in refactor
This commit is contained in:
		
							parent
							
								
									e14bc30428
								
							
						
					
					
						commit
						e8bae78749
					
				| @ -863,7 +863,7 @@ Feature: Turn Lane Guidance | |||||||
|             | d,a |||| |             | d,a |||| | ||||||
|             # Note: at the moment we don't care about routes, we care about the extract process triggering assertions |             # Note: at the moment we don't care about routes, we care about the extract process triggering assertions | ||||||
| 
 | 
 | ||||||
|     @reverse @2730 |     @reverse @2730 @todo | ||||||
|     Scenario: Reverse on the right |     Scenario: Reverse on the right | ||||||
|         Given the node map |         Given the node map | ||||||
|             | a |   |   | c |   | |             | a |   |   | c |   | | ||||||
|  | |||||||
| @ -323,7 +323,7 @@ trimLaneString(std::string lane_string, std::int32_t count_left, std::int32_t co | |||||||
|         for (std::int32_t i = 0; i < count_left; ++i) |         for (std::int32_t i = 0; i < count_left; ++i) | ||||||
|             // this is adjusted for our fake pipe. The moment cucumber can handle multiple escaped
 |             // this is adjusted for our fake pipe. The moment cucumber can handle multiple escaped
 | ||||||
|             // pipes, the '&' part can be removed
 |             // pipes, the '&' part can be removed
 | ||||||
|             if (lane_string[i] != '|' && lane_string[i] != '&') |             if (lane_string[i] != '|') | ||||||
|             { |             { | ||||||
|                 sane = false; |                 sane = false; | ||||||
|                 break; |                 break; | ||||||
| @ -341,7 +341,7 @@ trimLaneString(std::string lane_string, std::int32_t count_left, std::int32_t co | |||||||
|              itr != lane_string.rend() && itr != lane_string.rbegin() + count_right; |              itr != lane_string.rend() && itr != lane_string.rbegin() + count_right; | ||||||
|              ++itr) |              ++itr) | ||||||
|         { |         { | ||||||
|             if (*itr != '|' && *itr != '&') |             if (*itr != '|') | ||||||
|             { |             { | ||||||
|                 sane = false; |                 sane = false; | ||||||
|                 break; |                 break; | ||||||
|  | |||||||
| @ -104,9 +104,7 @@ LaneDataVector laneDataFromDescription(const TurnLaneDescription &turn_lane_desc | |||||||
|     // transform the map into the lane data vector
 |     // transform the map into the lane data vector
 | ||||||
|     LaneDataVector lane_data; |     LaneDataVector lane_data; | ||||||
|     for (const auto tag : lane_map) |     for (const auto tag : lane_map) | ||||||
|     { |  | ||||||
|         lane_data.push_back({tag.first, tag.second.first, tag.second.second}); |         lane_data.push_back({tag.first, tag.second.first, tag.second.second}); | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     std::sort(lane_data.begin(), lane_data.end()); |     std::sort(lane_data.begin(), lane_data.end()); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -128,7 +128,7 @@ Intersection TurnLaneHandler::assignTurnLanes(const NodeID at, | |||||||
| 
 | 
 | ||||||
|     // FIXME the lane to add depends on the side of driving/u-turn rules in the country
 |     // FIXME the lane to add depends on the side of driving/u-turn rules in the country
 | ||||||
|     if (!lane_data.empty() && canMatchTrivially(intersection, lane_data) && |     if (!lane_data.empty() && canMatchTrivially(intersection, lane_data) && | ||||||
|         !is_missing_valid_u_turn && !hasTag(TurnLaneType::none, lane_data)) |         is_missing_valid_u_turn && !hasTag(TurnLaneType::none, lane_data)) | ||||||
|         lane_data.push_back({TurnLaneType::uturn, lane_data.back().to, lane_data.back().to}); |         lane_data.push_back({TurnLaneType::uturn, lane_data.back().to, lane_data.back().to}); | ||||||
| 
 | 
 | ||||||
|     bool is_simple = isSimpleIntersection(lane_data, intersection); |     bool is_simple = isSimpleIntersection(lane_data, intersection); | ||||||
| @ -374,7 +374,10 @@ bool TurnLaneHandler::isSimpleIntersection(const LaneDataVector &lane_data, | |||||||
|         all_simple &= (matched_indices.count(match_index) == 0); |         all_simple &= (matched_indices.count(match_index) == 0); | ||||||
|         matched_indices.insert(match_index); |         matched_indices.insert(match_index); | ||||||
|         // in case of u-turns, we might need to activate them first
 |         // in case of u-turns, we might need to activate them first
 | ||||||
|         all_simple &= (best_match->entry_allowed || match_index == 0); |         all_simple &= (best_match->entry_allowed || | ||||||
|  |                        // check for possible u-turn match on non-reversed edge
 | ||||||
|  |                        ((match_index == 0 || match_index + 1 == intersection.size()) && | ||||||
|  |                         !node_based_graph.GetEdgeData(best_match->turn.eid).reversed)); | ||||||
|         all_simple &= isValidMatch(data.tag, best_match->turn.instruction); |         all_simple &= isValidMatch(data.tag, best_match->turn.instruction); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -474,8 +477,6 @@ std::pair<LaneDataVector, LaneDataVector> TurnLaneHandler::partitionLaneData( | |||||||
|             straightmost_tag_index = none_index; |             straightmost_tag_index = none_index; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // TODO handle reverse
 |  | ||||||
| 
 |  | ||||||
|     // handle none values
 |     // handle none values
 | ||||||
|     if (none_index != turn_lane_data.size()) |     if (none_index != turn_lane_data.size()) | ||||||
|     { |     { | ||||||
|  | |||||||
| @ -137,7 +137,7 @@ typename Intersection::const_iterator | |||||||
| findBestMatchForReverse(const TurnLaneType::Mask &neighbor_tag, const Intersection &intersection) | findBestMatchForReverse(const TurnLaneType::Mask &neighbor_tag, const Intersection &intersection) | ||||||
| { | { | ||||||
|     const auto neighbor_itr = findBestMatch(neighbor_tag, intersection); |     const auto neighbor_itr = findBestMatch(neighbor_tag, intersection); | ||||||
|     if ((neighbor_itr + 1 == intersection.cend()) || (neighbor_itr == intersection.cbegin() + 1)) |     if (neighbor_itr + 1 == intersection.cend()) | ||||||
|         return intersection.begin(); |         return intersection.begin(); | ||||||
| 
 | 
 | ||||||
|     const constexpr double idealized_turn_angles[] = {0, 35, 90, 135, 180, 225, 270, 315}; |     const constexpr double idealized_turn_angles[] = {0, 35, 90, 135, 180, 225, 270, 315}; | ||||||
| @ -239,6 +239,8 @@ Intersection triviallyMatchLanesToTurns(Intersection intersection, | |||||||
|             // continue with the first lane
 |             // continue with the first lane
 | ||||||
|             lane = 1; |             lane = 1; | ||||||
|         } |         } | ||||||
|  |         else | ||||||
|  |             return intersection; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     for (; road_index < intersection.size() && lane < lane_data.size(); ++road_index) |     for (; road_index < intersection.size() && lane < lane_data.size(); ++road_index) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user