JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
GridDistanceField.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <vector>
7
10
16
17namespace core {
18
44public:
52 GridDistanceField(const core::TileMap& tileMap, const core::GridPosition& target);
53
67 GridDistanceField(const core::TileMap& tileMap, const std::vector<core::GridPosition>& targets);
68
77 [[nodiscard]] int distance(const core::GridPosition& position) const noexcept;
78
88 [[nodiscard]] bool isReachable(const core::GridPosition& position) const noexcept;
89
93 [[nodiscard]] int unreachableDistance() const noexcept {
94 return _width * _height;
95 }
96
97private:
98 int _width;
100 std::vector<int> _distances;
101};
102
103} // namespace core
Position entière dans la grille d'un niveau (colonne, ligne).
Grille de tuiles typées d'un niveau.
bool isReachable(const core::GridPosition &position) const noexcept
La cible est-elle atteignable depuis position par un chemin de cases non solides ?
Definition GridDistanceField.cpp:83
int _height
Definition GridDistanceField.h:99
std::vector< int > _distances
Definition GridDistanceField.h:100
int _width
Definition GridDistanceField.h:98
int distance(const core::GridPosition &position) const noexcept
Distance de plus court chemin, en nombre de cases, depuis position jusqu'à la case cible passée au co...
Definition GridDistanceField.cpp:70
GridDistanceField(const core::TileMap &tileMap, const core::GridPosition &target)
Calcule le champ par BFS à partir de l'unique case target.
Definition GridDistanceField.cpp:15
int unreachableDistance() const noexcept
Definition GridDistanceField.h:93
Grille dense de tuiles typées (EX-GP-001), origine haut-gauche.
Definition TileMap.h:25
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
Position d'une case dans la grille d'un niveau, en coordonnées entières.
Definition GridPosition.h:20