JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
PixelCanvasGeometry.h File Reference

Conversions pures vue ↔ image du canevas pixel art (LOT-54 TACHE-03, EX-EDIT-045). More...

#include <optional>
#include <utility>
#include "HMI/Editor/ThumbnailGeometry.h"

Go to the source code of this file.

Classes

struct  hmi::PixelCanvasView
 État de la vue du canevas : zoom entier et décalage de défilement, en pixels image. More...
struct  hmi::PixelScreenRect
 Rectangle écran (pixels logiques, relatifs au coin haut-gauche du widget) d'un pixel image. More...
struct  hmi::PixelCanvasRealSize
 Taille en pixels réels de l'image entière affichée (largeur/hauteur image × zoom, à l'échelle d'affichage réelle). More...

Namespaces

namespace  hmi

Functions

PixelScreenRect hmi::imagePixelScreenRect (const PixelCanvasView &view, int x, int y) noexcept
 Rectangle écran du pixel image (x, y), au zoom et décalage de vue donnés.
std::optional< std::pair< int, int > > hmi::screenToImagePixel (const PixelCanvasView &view, int imageWidth, int imageHeight, double screenX, double screenY) noexcept
 Pixel image sous une position écran donnée.
constexpr int hmi::clampPixelCanvasZoom (int zoom) noexcept
 Zoom borné à [PIXEL_CANVAS_MIN_ZOOM, PIXEL_CANVAS_MAX_ZOOM].
constexpr int hmi::pixelCanvasZoomIn (int zoom) noexcept
 Zoom suivant (plus grand), borné — toujours entier.
constexpr int hmi::pixelCanvasZoomOut (int zoom) noexcept
 Zoom précédent (plus petit), borné — toujours entier.
constexpr bool hmi::pixelCanvasGridVisible (int zoom) noexcept
 true si la grille de pixels doit être dessinée à ce zoom (PIXEL_CANVAS_GRID_VISIBLE_MIN_ZOOM).
constexpr bool hmi::isValidPixelCanvasDenominator (int denominator) noexcept
constexpr double hmi::pixelCanvasScale (const PixelCanvasView &view) noexcept
 Échelle effective d'une vue : numérateur / dénominateur.
constexpr PixelCanvasView hmi::pixelCanvasZoomIn (const PixelCanvasView &view) noexcept
 Vue agrandie d'un cran, en remontant l'échelle rationnelle.
constexpr PixelCanvasView hmi::pixelCanvasZoomOut (const PixelCanvasView &view) noexcept
 Vue réduite d'un cran, en descendant l'échelle rationnelle — sous le 1:1 si besoin.
constexpr bool hmi::pixelCanvasGridVisible (const PixelCanvasView &view) noexcept
 true si la grille de pixels doit être dessinée pour cette vue : jamais sous le 1:1, où elle couvrirait plus de surface que les pixels qu'elle sépare.
PixelCanvasRealSize hmi::pixelCanvasRealSize (int imageWidth, int imageHeight, int zoom, double scaleFactor) noexcept
 Taille en pixels réels du canevas entier à un facteur d'échelle d'affichage donné.
PixelCanvasRealSize hmi::pixelCanvasRealSize (int imageWidth, int imageHeight, const PixelCanvasView &view, double scaleFactor) noexcept
 Taille en pixels réels du canevas entier, à l'échelle rationnelle d'une vue.

Variables

constexpr int hmi::PIXEL_CANVAS_MIN_ZOOM = 1
 Zoom minimal (1 pixel image = 1 pixel écran) et maximal admis par les commandes de zoom du canevas — toujours entier, pour que les pixels restent carrés (EX-ARCH-022).
constexpr int hmi::PIXEL_CANVAS_MAX_ZOOM = 32
constexpr int hmi::PIXEL_CANVAS_GRID_VISIBLE_MIN_ZOOM = 4
 Facteur de zoom à partir duquel la grille de pixels est dessinée : en-deçà, elle ne ferait que du bruit visuel sur des pixels trop petits pour la distinguer du contenu.
constexpr int hmi::PIXEL_CANVAS_MAX_DENOMINATOR = 8
 Dénominateur de zoom maximal : au-delà, un pixel image occuperait moins d'un huitième de pixel écran, et le repère cesserait d'être lisible.

Detailed Description

Conversions pures vue ↔ image du canevas pixel art (LOT-54 TACHE-03, EX-EDIT-045).

Aucune dépendance Qt/GPU (EX-NFR-010) : hmi::PixelCanvas (widget) se contente d'appeler ces fonctions, qui restent seules responsables de la justesse à tout zoom, décalage de vue et échelle d'affichage — c'est elle qui détermine le pixel survolé affiché dans la barre d'état (TACHE-04) et doit donc rester juste dans tous les cas.