#ifndef GEOMETRY_COMPRESSOR_HPP #define GEOMETRY_COMPRESSOR_HPP #include "extractor/scripting_environment.hpp" #include "util/typedefs.hpp" #include "extractor/maneuver_override.hpp" #include "util/node_based_graph.hpp" #include #include #include namespace osrm { namespace extractor { class CompressedEdgeContainer; struct TurnRestriction; class GraphCompressor { using EdgeData = util::NodeBasedDynamicGraph::EdgeData; public: void Compress(const std::unordered_set &barrier_nodes, const std::unordered_set &traffic_lights, ScriptingEnvironment &scripting_environment, std::vector &turn_restrictions, std::vector &conditional_turn_restrictions, std::vector &maneuver_overrides, util::NodeBasedDynamicGraph &graph, const std::vector &node_data_container, CompressedEdgeContainer &geometry_compressor); private: void PrintStatistics(unsigned original_number_of_nodes, unsigned original_number_of_edges, const util::NodeBasedDynamicGraph &graph) const; }; } } #endif