#pragma once #include "openlr/graph.hpp" #include "openlr/openlr_model.hpp" #include "openlr/stats.hpp" #include #include #include namespace openlr { class PathsConnector { public: PathsConnector(double const pathLengthTolerance, Graph & graph, v2::Stats & stat); bool ConnectCandidates(std::vector const & points, std::vector> const & lineCandidates, std::vector & resultPath); private: bool FindShortestPath(Graph::Edge const & from, Graph::Edge const & to, FunctionalRoadClass const frc, uint32_t const maxPathLength, Graph::EdgeVector & path); bool ConnectAdjacentCandidateLines(Graph::EdgeVector const & from, Graph::EdgeVector const & to, FunctionalRoadClass const frc, double const distanceToNextPoint, Graph::EdgeVector & resultPath); double m_pathLengthTolerance; Graph & m_graph; v2::Stats & m_stat; }; } // namespace openlr