Pile d'annulation/rétablissement nommée d'un canevas pixel art.
More...
#include <PixelHistory.h>
Pile d'annulation/rétablissement nommée d'un canevas pixel art.
Même sémantique que l'historique de core::LevelDraft (deux piles, la nouvelle opération après une annulation vide la pile de rétablissement) — mais un tampon de pixels et un core::LevelDraft sont deux mondes disjoints, d'où une classe séparée plutôt qu'un partage de code qui les couplerait.
◆ PixelHistory()
| hmi::PixelHistory::PixelHistory |
( |
std::size_t | maxDepth = 100 | ) |
|
|
explicit |
- Parameters
-
| maxDepth | Nombre maximal d'entrées conservées dans la pile d'annulation ; au-delà, les plus anciennes sont oubliées (coût mémoire borné). |
◆ appliedEntries()
- Returns
- Les opérations actuellement appliquées, dans l'ordre chronologique — de quoi alimenter le panneau d'historique visuel (TACHE-04) et le libellé « Annuler … ».
◆ canRedo()
| bool hmi::PixelHistory::canRedo |
( |
| ) |
const |
|
inlinenodiscardnoexcept |
- Returns
- true si redo() aurait un effet.
◆ canUndo()
| bool hmi::PixelHistory::canUndo |
( |
| ) |
const |
|
inlinenodiscardnoexcept |
- Returns
- true si undo() aurait un effet.
◆ jumpTo()
| bool hmi::PixelHistory::jumpTo |
( |
DecodedImage & | image, |
|
|
std::size_t | index ) |
Revient à l'état immédiatement après l'entrée index de appliedEntries(), en un seul appel plutôt que par annulations successives.
- Parameters
-
- Returns
- false, sans effet, si
index est hors bornes.
◆ push()
| void hmi::PixelHistory::push |
( |
PixelOperationKind | kind, |
|
|
PixelRegion | region, |
|
|
std::vector< std::uint32_t > | before, |
|
|
std::vector< std::uint32_t > | after ) |
Enregistre une opération déjà appliquée au tampon.
Vide la pile de rétablissement (une branche de refaire abandonnée ne redevient jamais valide après une nouvelle opération — historique linéaire classique). Si la profondeur dépasse maxDepth, l'entrée la plus ancienne est oubliée : l'état courant du tampon n'est jamais affecté, seule la portée de l'annulation recule.
◆ redo()
Rétablit la dernière opération annulée sur image.
- Returns
- false, sans effet, si !canRedo().
◆ undo()
Annule la dernière opération sur image.
- Returns
- false, sans effet, si !canUndo().
◆ _applied
Pile d'annulation, plus ancienne en premier.
◆ _maxDepth
| std::size_t hmi::PixelHistory::_maxDepth |
|
private |
◆ _undone
Pile de rétablissement, plus récente en dernier.
The documentation for this class was generated from the following files:
- /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/HMI/Editor/PixelHistory.h
- /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/HMI/Editor/PixelHistory.cpp