osrm-backend/include/extractor/graph_compressor.hpp
Siarhei Fedartsou 8a4af59838 wip
2022-10-27 21:13:57 +02:00

47 lines
1.3 KiB
C++

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