remove unused instruction types
This commit is contained in:
parent
d770c35245
commit
7b32d3184c
@ -67,13 +67,6 @@ class IntersectionHandler
|
|||||||
const std::size_t begin,
|
const std::size_t begin,
|
||||||
const std::size_t end) const;
|
const std::size_t end) const;
|
||||||
|
|
||||||
// Counting Turns are Essentially unseparable turns. Begin > end is a valid input
|
|
||||||
void assignCountingTurns(const EdgeID via_eid,
|
|
||||||
Intersection &intersection,
|
|
||||||
const std::size_t begin,
|
|
||||||
const std::size_t end,
|
|
||||||
const DirectionModifier modifier) const;
|
|
||||||
|
|
||||||
bool isThroughStreet(const std::size_t index, const Intersection &intersection) const;
|
bool isThroughStreet(const std::size_t index, const Intersection &intersection) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -42,16 +42,8 @@ enum TurnType // at the moment we can support 32 turn types, without increasing
|
|||||||
NewName, // no turn, but name changes
|
NewName, // no turn, but name changes
|
||||||
Continue, // remain on a street
|
Continue, // remain on a street
|
||||||
Turn, // basic turn
|
Turn, // basic turn
|
||||||
FirstTurn, // First of x turns
|
|
||||||
SecondTurn, // Second of x turns
|
|
||||||
ThirdTurn, // Third of x turns
|
|
||||||
FourthTurn, // Fourth of x turns
|
|
||||||
Merge, // merge onto a street
|
Merge, // merge onto a street
|
||||||
Ramp, // special turn (highway ramp exits)
|
Ramp, // special turn (highway ramp exits)
|
||||||
FirstRamp, // first turn onto a ramp
|
|
||||||
SecondRamp, // second turn onto a ramp
|
|
||||||
ThirdRamp, // third turn onto a ramp
|
|
||||||
FourthRamp, // fourth turn onto a ramp
|
|
||||||
Fork, // fork road splitting up
|
Fork, // fork road splitting up
|
||||||
EndOfRoad, // T intersection
|
EndOfRoad, // T intersection
|
||||||
EnterRoundabout, // Entering a small Roundabout
|
EnterRoundabout, // Entering a small Roundabout
|
||||||
@ -63,7 +55,6 @@ enum TurnType // at the moment we can support 32 turn types, without increasing
|
|||||||
EnterAndExitRotary, // Touching a rotary
|
EnterAndExitRotary, // Touching a rotary
|
||||||
ExitRotary, // Exit a rotary
|
ExitRotary, // Exit a rotary
|
||||||
StayOnRoundabout, // Continue on Either a small or a large Roundabout
|
StayOnRoundabout, // Continue on Either a small or a large Roundabout
|
||||||
Restriction, // Cross a Barrier, requires barrier penalties instead of full block
|
|
||||||
Notification // Travel Mode Changes`
|
Notification // Travel Mode Changes`
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -34,11 +34,9 @@ const constexpr char *modifier_names[] = {"uturn", "sharp right", "right", "s
|
|||||||
// translations of TurnTypes. Not all types are exposed to the outside world.
|
// translations of TurnTypes. Not all types are exposed to the outside world.
|
||||||
// invalid types should never be returned as part of the API
|
// invalid types should never be returned as part of the API
|
||||||
const constexpr char *turn_type_names[] = {
|
const constexpr char *turn_type_names[] = {
|
||||||
"invalid", "no turn", "invalid", "new name", "continue", "turn",
|
"invalid", "no turn", "invalid", "new name", "continue", "turn", "merge",
|
||||||
"turn", "turn", "turn", "turn", "merge", "ramp",
|
"ramp", "fork", "end of road", "roundabout", "invalid", "roundabout", "invalid",
|
||||||
"ramp", "ramp", "ramp", "ramp", "fork", "end of road",
|
"rotary", "invalid", "rotary", "invalid", "invalid", "notification"};
|
||||||
"roundabout", "invalid", "roundabout", "invalid", "rotary", "invalid",
|
|
||||||
"rotary", "invalid", "invalid", "restriction", "notification"};
|
|
||||||
const constexpr char *waypoint_type_names[] = {"invalid", "arrive", "depart"};
|
const constexpr char *waypoint_type_names[] = {"invalid", "arrive", "depart"};
|
||||||
|
|
||||||
// Check whether to include a modifier in the result of the API
|
// Check whether to include a modifier in the result of the API
|
||||||
|
@ -297,35 +297,6 @@ void IntersectionHandler::assignTrivialTurns(const EdgeID via_eid,
|
|||||||
getTurnDirection(intersection[index].turn.angle)};
|
getTurnDirection(intersection[index].turn.angle)};
|
||||||
}
|
}
|
||||||
|
|
||||||
void IntersectionHandler::assignCountingTurns(const EdgeID via_eid,
|
|
||||||
Intersection &intersection,
|
|
||||||
const std::size_t begin,
|
|
||||||
const std::size_t end,
|
|
||||||
const DirectionModifier modifier) const
|
|
||||||
{
|
|
||||||
const constexpr TurnType turns[] = {TurnType::FirstTurn, TurnType::SecondTurn,
|
|
||||||
TurnType::ThirdTurn, TurnType::FourthTurn};
|
|
||||||
const constexpr TurnType ramps[] = {TurnType::FirstRamp, TurnType::SecondRamp,
|
|
||||||
TurnType::ThirdRamp, TurnType::FourthRamp};
|
|
||||||
|
|
||||||
const std::size_t length = end > begin ? end - begin : begin - end;
|
|
||||||
if (length > 4)
|
|
||||||
{
|
|
||||||
util::SimpleLogger().Write(logDEBUG) << "Counting Turn assignment called for " << length
|
|
||||||
<< " turns. Supports at most four turns.";
|
|
||||||
}
|
|
||||||
|
|
||||||
// counting turns varies whether we consider left/right turns
|
|
||||||
for (std::size_t index = begin, count = 0; index != end;
|
|
||||||
count++, begin < end ? ++index : --index)
|
|
||||||
{
|
|
||||||
if (TurnType::Ramp == findBasicTurnType(via_eid, intersection[index]))
|
|
||||||
intersection[index].turn.instruction = {ramps[count], modifier};
|
|
||||||
else
|
|
||||||
intersection[index].turn.instruction = {turns[count], modifier};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool IntersectionHandler::isThroughStreet(const std::size_t index,
|
bool IntersectionHandler::isThroughStreet(const std::size_t index,
|
||||||
const Intersection &intersection) const
|
const Intersection &intersection) const
|
||||||
{
|
{
|
||||||
|
@ -538,7 +538,7 @@ Intersection TurnHandler::assignRightTurns(const EdgeID via_edge,
|
|||||||
BOOST_ASSERT(intersection[1].entry_allowed && intersection[2].entry_allowed &&
|
BOOST_ASSERT(intersection[1].entry_allowed && intersection[2].entry_allowed &&
|
||||||
intersection[3].entry_allowed);
|
intersection[3].entry_allowed);
|
||||||
// count backwards from the slightest turn
|
// count backwards from the slightest turn
|
||||||
assignCountingTurns(via_edge, intersection, 3, 0, second_direction);
|
assignTrivialTurns(via_edge, intersection, 1, up_to);
|
||||||
}
|
}
|
||||||
else if (((first_direction == second_direction &&
|
else if (((first_direction == second_direction &&
|
||||||
angularDeviation(intersection[2].turn.angle, intersection[3].turn.angle) >=
|
angularDeviation(intersection[2].turn.angle, intersection[3].turn.angle) >=
|
||||||
@ -581,12 +581,6 @@ Intersection TurnHandler::assignRightTurns(const EdgeID via_edge,
|
|||||||
assignTrivialTurns(via_edge, intersection, 1, up_to);
|
assignTrivialTurns(via_edge, intersection, 1, up_to);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (up_to == 5)
|
|
||||||
{
|
|
||||||
|
|
||||||
// count backwards from the slightest turn
|
|
||||||
assignCountingTurns(via_edge, intersection, 4, 0, DirectionModifier::Right);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
assignTrivialTurns(via_edge, intersection, 1, up_to);
|
assignTrivialTurns(via_edge, intersection, 1, up_to);
|
||||||
@ -728,21 +722,6 @@ void TurnHandler::handleDistinctConflict(const EdgeID via_edge,
|
|||||||
right.turn.instruction = {right_type, DirectionModifier::Left};
|
right.turn.instruction = {right_type, DirectionModifier::Left};
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Both turns?
|
|
||||||
if (TurnType::Ramp != left_type && TurnType::Ramp != right_type)
|
|
||||||
{
|
|
||||||
if (left.turn.angle < STRAIGHT_ANGLE)
|
|
||||||
{
|
|
||||||
left.turn.instruction = {TurnType::FirstTurn, getTurnDirection(left.turn.angle)};
|
|
||||||
right.turn.instruction = {TurnType::SecondTurn, getTurnDirection(right.turn.angle)};
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
left.turn.instruction = {TurnType::SecondTurn, getTurnDirection(left.turn.angle)};
|
|
||||||
right.turn.instruction = {TurnType::FirstTurn, getTurnDirection(right.turn.angle)};
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Shift the lesser penalty
|
// Shift the lesser penalty
|
||||||
if (getTurnDirection(left.turn.angle) == DirectionModifier::SharpLeft)
|
if (getTurnDirection(left.turn.angle) == DirectionModifier::SharpLeft)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user