From 0c529361a39999375f182b9de947fbd6753bfc25 Mon Sep 17 00:00:00 2001 From: Dennis Luxen Date: Wed, 16 Jul 2014 12:47:10 +0200 Subject: [PATCH] add member variable/functions to store information if uturns are allowed --- DataStructures/RouteParameters.cpp | 22 +++++++++++++++++++++- Include/osrm/RouteParameters.h | 6 ++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/DataStructures/RouteParameters.cpp b/DataStructures/RouteParameters.cpp index edc731161..4357ebd39 100644 --- a/DataStructures/RouteParameters.cpp +++ b/DataStructures/RouteParameters.cpp @@ -33,7 +33,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. RouteParameters::RouteParameters() : zoom_level(18), print_instructions(false), alternate_route(true), geometry(true), - compression(true), deprecatedAPI(false), check_sum(-1) + compression(true), deprecatedAPI(false), uturn_default(false), check_sum(-1) { } @@ -47,6 +47,26 @@ void RouteParameters::setZoomLevel(const short level) void RouteParameters::setAlternateRouteFlag(const bool flag) { alternate_route = flag; } +void RouteParameters::setUTurn(const bool flag) +{ + uturns.resize(coordinates.size(), uturn_default); + if (!uturns.empty()) + { + uturns.back() = flag; + } +} + +void RouteParameters::setAllUTurns(const bool flag) +{ + // if the flag flips the default, then we erase everything. + if (flag) + { + uturn_default = flag; + uturns.clear(); + uturns.resize(coordinates.size(), uturn_default); + } +} + void RouteParameters::setDeprecatedAPIFlag(const std::string &) { deprecatedAPI = true; } void RouteParameters::setChecksum(const unsigned sum) { check_sum = sum; } diff --git a/Include/osrm/RouteParameters.h b/Include/osrm/RouteParameters.h index 89a177405..33a8296c3 100644 --- a/Include/osrm/RouteParameters.h +++ b/Include/osrm/RouteParameters.h @@ -43,6 +43,10 @@ struct RouteParameters void setAlternateRouteFlag(const bool flag); + void setUTurn(const bool flag); + + void setAllUTurns(const bool flag); + void setDeprecatedAPIFlag(const std::string &); void setChecksum(const unsigned check_sum); @@ -71,12 +75,14 @@ struct RouteParameters bool geometry; bool compression; bool deprecatedAPI; + bool uturn_default; unsigned check_sum; std::string service; std::string output_format; std::string jsonp_parameter; std::string language; std::vector hints; + std::vector uturns; std::vector coordinates; };