#ifndef __DISTANCE_HPP_ #define __DISTANCE_HPP_ #include "config.hpp" #include #include struct DistanceResult { // distances[n] = distance from n to target std::vector distances; // parents[n] = next node on the path from n to target std::vector parents; // nearest_target[n] = closest target node to n std::vector nearest_targets; auto Clear() -> void; auto Empty() -> bool; }; auto CalculateDistances( std::size_t node_count, const std::vector> &edges, const std::vector &targets) -> DistanceResult; auto GetPath(const DistanceResult &result, std::size_t source) -> std::vector; #endif