48 lines
1.9 KiB
C++
48 lines
1.9 KiB
C++
#ifndef EXTRACTOR_HPP
|
|
#define EXTRACTOR_HPP
|
|
|
|
#include "extractor/extractor_options.hpp"
|
|
#include "extractor/edge_based_graph_factory.hpp"
|
|
#include "extractor/graph_compressor.hpp"
|
|
|
|
namespace osrm
|
|
{
|
|
namespace extractor
|
|
{
|
|
|
|
class extractor
|
|
{
|
|
public:
|
|
extractor(ExtractorConfig extractor_config) : config(std::move(extractor_config)) {}
|
|
int run();
|
|
|
|
private:
|
|
ExtractorConfig config;
|
|
void SetupScriptingEnvironment(lua_State *myLuaState, SpeedProfileProperties &speed_profile);
|
|
std::pair<std::size_t, std::size_t>
|
|
BuildEdgeExpandedGraph(std::vector<QueryNode> &internal_to_external_node_map,
|
|
std::vector<EdgeBasedNode> &node_based_edge_list,
|
|
std::vector<bool> &node_is_startpoint,
|
|
util::DeallocatingVector<EdgeBasedEdge> &edge_based_edge_list);
|
|
void WriteNodeMapping(const std::vector<QueryNode> &internal_to_external_node_map);
|
|
void FindComponents(unsigned max_edge_id,
|
|
const util::DeallocatingVector<EdgeBasedEdge> &edges,
|
|
std::vector<EdgeBasedNode> &nodes) const;
|
|
void BuildRTree(std::vector<EdgeBasedNode> node_based_edge_list,
|
|
std::vector<bool> node_is_startpoint,
|
|
const std::vector<QueryNode> &internal_to_external_node_map);
|
|
std::shared_ptr<RestrictionMap> LoadRestrictionMap();
|
|
std::shared_ptr<util::NodeBasedDynamicGraph>
|
|
LoadNodeBasedGraph(std::unordered_set<NodeID> &barrier_nodes,
|
|
std::unordered_set<NodeID> &traffic_lights,
|
|
std::vector<QueryNode> &internal_to_external_node_map);
|
|
|
|
void WriteEdgeBasedGraph(std::string const &output_file_filename,
|
|
size_t const max_edge_id,
|
|
util::DeallocatingVector<EdgeBasedEdge> const &edge_based_edge_list);
|
|
};
|
|
}
|
|
}
|
|
|
|
#endif /* EXTRACTOR_HPP */
|