#ifndef ENGINE_API_ROUTE_PARAMETERS_HPP #define ENGINE_API_ROUTE_PARAMETERS_HPP #include "engine/api/base_parameters.hpp" #include namespace osrm { namespace engine { namespace api { struct RouteParameters : public BaseParameters { enum class GeometriesType { Polyline, GeoJSON }; enum class OverviewType { Simplified, Full, False }; RouteParameters() = default; template RouteParameters(const bool steps_, const bool alternative_, const GeometriesType geometries_, const OverviewType overview_, std::vector> uturns_, Args... args_) : BaseParameters{std::forward(args_)...}, steps{steps_}, alternative{alternative_}, geometries{geometries_}, overview{overview_}, uturns{std::move(uturns_)} { } bool steps = true; bool alternative = true; GeometriesType geometries = GeometriesType::Polyline; OverviewType overview = OverviewType::Simplified; std::vector> uturns; bool IsValid() const { return coordinates.size() >= 2 && BaseParameters::IsValid() && (uturns.empty() || uturns.size() == coordinates.size()); } }; } } } #endif