uturns -> continue_straight

This commit is contained in:
Patrick Niklaus
2016-04-12 18:47:00 +02:00
parent d6407e5095
commit 589767fe6d
17 changed files with 50 additions and 139 deletions
+4 -4
View File
@@ -48,7 +48,7 @@ namespace api
* - geometries: route geometry encoded in Polyline or GeoJSON
* - overview: adds overview geometry either Full, Simplified (according to highest zoom level) or
* False (not at all)
* - uturns: enable or disable uturns (disabled by default)
* - continue_straight: enable or disable continue_straight (disabled by default)
*
* \see OSRM, Coordinate, Hint, Bearing, RouteParame, RouteParameters, TableParameters,
* NearestParameters, TripParameters, MatchParameters and TileParameters
@@ -74,10 +74,10 @@ struct RouteParameters : public BaseParameters
const bool alternatives_,
const GeometriesType geometries_,
const OverviewType overview_,
const boost::optional<bool> uturns_,
const boost::optional<bool> continue_straight_,
Args... args_)
: BaseParameters{std::forward<Args>(args_)...}, steps{steps_}, alternatives{alternatives_},
geometries{geometries_}, overview{overview_}, uturns{uturns_}
geometries{geometries_}, overview{overview_}, continue_straight{continue_straight_}
{
}
@@ -85,7 +85,7 @@ struct RouteParameters : public BaseParameters
bool alternatives = false;
GeometriesType geometries = GeometriesType::Polyline;
OverviewType overview = OverviewType::Simplified;
boost::optional<bool> uturns;
boost::optional<bool> continue_straight;
bool IsValid() const { return coordinates.size() >= 2 && BaseParameters::IsValid(); }
};
@@ -144,7 +144,7 @@ class BaseDataFacade
virtual std::string GetTimestamp() const = 0;
virtual bool GetUTurnsDefault() const = 0;
virtual bool GetContinueStraightDefault() const = 0;
};
}
}
@@ -649,7 +649,7 @@ class InternalDataFacade final : public BaseDataFacade
std::string GetTimestamp() const override final { return m_timestamp; }
bool GetUTurnsDefault() const override final { return m_profile_properties.allow_u_turn_at_via; }
bool GetContinueStraightDefault() const override final { return m_profile_properties.continue_straight_at_waypoint; }
};
}
}
@@ -709,7 +709,7 @@ class SharedDataFacade final : public BaseDataFacade
std::string GetTimestamp() const override final { return m_timestamp; }
bool GetUTurnsDefault() const override final { return m_profile_properties->allow_u_turn_at_via; }
bool GetContinueStraightDefault() const override final { return m_profile_properties->continue_straight_at_waypoint; }
};
}
}
@@ -245,10 +245,10 @@ class ShortestPathRouting final
}
void operator()(const std::vector<PhantomNodes> &phantom_nodes_vector,
const boost::optional<bool> uturns,
const boost::optional<bool> continue_straight_at_waypoint,
InternalRouteResult &raw_route_data) const
{
const bool allow_u_turn_at_via = uturns ? *uturns : super::facade->GetUTurnsDefault();
const bool allow_uturn_at_waypoint = !(continue_straight_at_waypoint ? *continue_straight_at_waypoint : super::facade->GetContinueStraightDefault());
engine_working_data.InitializeOrClearFirstThreadLocalStorage(
super::facade->GetNumberOfNodes());
@@ -299,7 +299,7 @@ class ShortestPathRouting final
if (search_to_reverse_node || search_to_forward_node)
{
if (allow_u_turn_at_via)
if (allow_uturn_at_waypoint)
{
SearchWithUTurn(forward_heap, reverse_heap, forward_core_heap,
reverse_core_heap, search_from_forward_node,
+2 -2
View File
@@ -11,7 +11,7 @@ namespace extractor
struct ProfileProperties
{
ProfileProperties()
: traffic_signal_penalty(0), u_turn_penalty(0), allow_u_turn_at_via(false), use_turn_restrictions(false)
: traffic_signal_penalty(0), u_turn_penalty(0), continue_straight_at_waypoint(true), use_turn_restrictions(false)
{
}
@@ -39,7 +39,7 @@ struct ProfileProperties
int traffic_signal_penalty;
//! penalty to do a uturn in deci-seconds
int u_turn_penalty;
bool allow_u_turn_at_via;
bool continue_straight_at_waypoint;
bool use_turn_restrictions;
};
}
@@ -47,7 +47,7 @@ struct RouteParametersGrammar : public BaseParametersGrammar
const auto set_alternatives = [this](const AlternativeT alternatives) {
parameters.alternatives = alternatives;
};
const auto set_uturns = [this](UturnsT uturns) { parameters.uturns = std::move(uturns); };
const auto set_continue_straight = [this](UturnsT continue_straight) { parameters.continue_straight = std::move(continue_straight); };
alternatives_rule = qi::lit("alternatives=") > qi::bool_;
steps_rule = qi::lit("steps=") > qi::bool_;
@@ -56,9 +56,9 @@ struct RouteParametersGrammar : public BaseParametersGrammar
overview_rule = qi::lit("overview=simplified")[set_simplified_type] |
qi::lit("overview=full")[set_full_type] |
qi::lit("overview=false")[set_false_type];
uturns_rule = qi::lit("uturns=default") | (qi::lit("uturns=") > qi::bool_)[set_uturns];
continue_straight_rule = qi::lit("continue_straight=default") | (qi::lit("continue_straight=") > qi::bool_)[set_continue_straight];
route_rule = steps_rule[set_steps] | alternatives_rule[set_alternatives] | geometries_rule |
overview_rule | uturns_rule;
overview_rule | continue_straight_rule;
root_rule =
query_rule > -qi::lit(".json") > -(qi::lit("?") > (route_rule | base_rule) % '&');
@@ -69,7 +69,7 @@ struct RouteParametersGrammar : public BaseParametersGrammar
private:
qi::rule<Iterator> root_rule;
qi::rule<Iterator> route_rule, geometries_rule, overview_rule;
qi::rule<Iterator, UturnsT()> uturns_rule;
qi::rule<Iterator, UturnsT()> continue_straight_rule;
qi::rule<Iterator, StepsT()> steps_rule;
qi::rule<Iterator, AlternativeT()> alternatives_rule;
};