JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
LinkGeometry.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#include "Core/Math/Vector2.h"
11
16
17namespace core {
18class LevelDraft;
19}
20
21namespace hmi {
22
25[[nodiscard]] constexpr bool isTriggerTile(core::TileType type) noexcept {
26 return type == core::TileType::Switch || type == core::TileType::PressurePlate ||
27 type == core::TileType::Key;
28}
29
31[[nodiscard]] constexpr bool isLinkTargetTile(core::TileType type) noexcept {
32 return type == core::TileType::Door || type == core::TileType::LockedDoor;
33}
34
40
59 int fanIndex = 0, int fanCount = 1) noexcept;
60
66
73[[nodiscard]] ArrowHead arrowHead(core::Vector2 from, core::Vector2 to) noexcept;
74
76enum class LinkKind { Mechanism };
77
84
93[[nodiscard]] std::vector<LinkRow> buildLinkRows(const core::LevelDraft& draft);
94
95} // namespace hmi
Position entière dans la grille d'un niveau (colonne, ligne).
Types de tuiles d'une carte et utilitaires associés.
Vecteur 2D à composantes flottantes, propre à Core (sans dépendance DirectX).
Niveau mutable en cours d'édition, distinct de Level (immuable, LOT-07).
Definition LevelDraft.h:43
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
TileType
Type d'une tuile de la grille d'une carte (EX-GP-001).
Definition TileType.h:32
@ PressurePlate
Definition TileType.h:40
@ LockedDoor
Definition TileType.h:43
@ Key
Definition TileType.h:42
@ Switch
Definition TileType.h:38
@ Door
Definition TileType.h:39
Definition AudioEngine.cpp:15
ArrowHead arrowHead(core::Vector2 from, core::Vector2 to) noexcept
Calcule les deux ailes de la pointe d'une flèche allant de from vers to.
Definition LinkGeometry.cpp:61
std::vector< LinkRow > buildLinkRows(const core::LevelDraft &draft)
Construit la liste des liaisons d'un brouillon, dans un ordre déterministe.
Definition LinkGeometry.cpp:72
LinkSegment linkSegment(core::GridPosition trigger, core::GridPosition target, int fanIndex, int fanCount) noexcept
Calcule le segment reliant le centre de la case trigger au centre de la case target,...
Definition LinkGeometry.cpp:38
constexpr bool isLinkTargetTile(core::TileType type) noexcept
Definition LinkGeometry.h:31
LinkKind
Nature d'une liaison affichée (couleur/libellé distincts dans le panneau et le rendu).
Definition LinkGeometry.h:76
@ Mechanism
Definition LinkGeometry.h:76
constexpr bool isTriggerTile(core::TileType type) noexcept
Definition LinkGeometry.h:25
Position d'une case dans la grille d'un niveau, en coordonnées entières.
Definition GridPosition.h:20
Vecteur bidimensionnel en coordonnées monde (composantes float).
Definition Vector2.h:21
Les deux ailes de la pointe d'une flèche, à son extrémité.
Definition LinkGeometry.h:62
core::Vector2 right
Definition LinkGeometry.h:64
core::Vector2 left
Definition LinkGeometry.h:63
Une ligne du panneau « Liens » (ou une entrée à dessiner dans le viewport).
Definition LinkGeometry.h:79
core::GridPosition trigger
Definition LinkGeometry.h:81
LinkKind kind
Definition LinkGeometry.h:80
core::GridPosition target
Definition LinkGeometry.h:82
Segment reliant le centre d'un déclencheur au centre de sa cible, en unités monde.
Definition LinkGeometry.h:36
core::Vector2 b
Definition LinkGeometry.h:38
core::Vector2 a
Definition LinkGeometry.h:37