#ifndef DISTANCE_HPP_ #define DISTANCE_HPP_ #include "cpu_spring_system.hpp" #include class graph_distances { public: std::vector distances; // distances[n] = distance from node n to target std::vector parents; // parents[n] = next node on the path from node n to target std::vector nearest_targets; // nearest_target[n] = closest target node to node n public: auto clear() -> void; [[nodiscard]] auto empty() const -> bool; auto calculate_distances(size_t node_count, const std::vector& edges, const std::vector& targets) -> void; [[nodiscard]] auto get_shortest_path(size_t source) const -> std::vector; }; #endif