Maze Builder Docs 6.3.5
Loading...
Searching...
No Matches
distances.h
1#ifndef DISTANCES_H
2#define DISTANCES_H
3
4#include <unordered_map>
5#include <vector>
6#include <memory>
7#include <cstdint>
8
9namespace mazes {
10
11class grid;
12
13class distances {
14public:
17 explicit distances(int32_t root_index);
18
22 int& operator[](int32_t index) noexcept;
23
27 const int& operator[](int32_t index) const noexcept;
28
31 void set(int32_t index, int distance) noexcept;
32
35 bool contains(int32_t index) const noexcept;
36
41 std::shared_ptr<distances> path_to(int32_t goal_index, const grid& grid) const noexcept;
42
45 std::pair<int32_t, int> max() const noexcept;
46
49 void collect_keys(std::vector<int32_t>& indices) const noexcept;
50
51private:
52 int32_t m_root_index;
53 std::unordered_map<int32_t, int> m_cells;
54}; // class distances
55
56} // namespace mazes
57
58#endif // DISTANCES_H
Definition distances.h:13
void set(int32_t index, int distance) noexcept
Sets the distance of a cell by index.
std::pair< int32_t, int > max() const noexcept
Computes the maximum distance and cell index in a distances object.
distances(int32_t root_index)
Constructor that initializes the distances object with a given root index.
int & operator[](int32_t index) noexcept
Overloaded operator to access the distance of a cell by index.
bool contains(int32_t index) const noexcept
Checks if a given cell index is contained in the distances object.
const int & operator[](int32_t index) const noexcept
Accesses the value associated with a given cell index.
std::shared_ptr< distances > path_to(int32_t goal_index, const grid &grid) const noexcept
Computes the shortest path to a goal cell index within a distances object.
void collect_keys(std::vector< int32_t > &indices) const noexcept
Collects all cell indices stored in the distances object.
General purpose grid class for 2D maze generation.
Definition grid.h:23
Namespace for the maze builder.
Definition algo_interface.h:9