#pragma once #include "routing/edge_estimator.hpp" #include "routing/geometry.hpp" #include "routing/index_graph.hpp" #include "routing/joint.hpp" #include #include #include #include #include namespace generator { /// \brief Generates a binary file by |mappingContent| with mapping from osm ids to feature ids. /// \param mappingContent a string with lines with mapping from osm id to feature id (one to one). /// For example /// 10, 1, /// 20, 2 /// 30, 3, /// 40, 4 /// \param outputFilePath full path to an output file where the mapping is saved. void ReEncodeOsmIdsToFeatureIdsMapping(std::string const & mappingContent, std::string const & outputFilePath); } // namespace generator namespace traffic { class TrafficCache; } namespace routing { class TestGeometryLoader : public GeometryLoader { public: // GeometryLoader overrides: void Load(uint32_t featureId, routing::RoadGeometry & road) override; void AddRoad(uint32_t featureId, bool oneWay, float speed, routing::RoadGeometry::Points const & points); void SetPassThroughAllowed(uint32_t featureId, bool passThroughAllowed); private: std::unordered_map m_roads; }; std::shared_ptr CreateEstimatorForCar(traffic::TrafficCache const & trafficCache); std::shared_ptr CreateEstimatorForCar(std::shared_ptr trafficStash); Joint MakeJoint(std::vector const & points); std::unique_ptr BuildIndexGraph(std::unique_ptr geometryLoader, std::shared_ptr estimator, std::vector const & joints); } // namespace routing