FTXUI 6.1.9
C++ functional terminal UI.
Chargement...
Recherche...
Aucune correspondance
image.cpp
Aller à la documentation de ce fichier.
1// Copyright 2020 Arthur Sonzogni. Tous droits réservés.
2// L'utilisation de ce code source est régie par la licence MIT qui peut être trouvée dans
3// le fichier LICENSE.
4#include <sstream> // IWYU pragma: keep
5#include <string>
6#include <vector>
7
10
11namespace ftxui {
12
13namespace {
14Pixel& dev_null_pixel() {
15 static Pixel pixel;
16 return pixel;
17}
18} // namespace
19
20Image::Image(int dimx, int dimy)
21 : stencil{0, dimx - 1, 0, dimy - 1},
22 dimx_(dimx),
23 dimy_(dimy),
24 pixels_(dimy, std::vector<Pixel>(dimx)) {}
25
26/// @brief Accède à un caractère dans une cellule à une position donnée.
27/// @param x La position de la cellule le long de l'axe des x.
28/// @param y La position de la cellule le long de l'axe des y.
29std::string& Image::at(int x, int y) {
30 return PixelAt(x, y).character;
31}
32
33/// @brief Accède à un caractère dans une cellule à une position donnée.
34/// @param x La position de la cellule le long de l'axe des x.
35/// @param y La position de la cellule le long de l'axe des y.
36const std::string& Image::at(int x, int y) const {
37 return PixelAt(x, y).character;
38}
39
40/// @brief Accède à une cellule (Pixel) à une position donnée.
41/// @param x La position de la cellule le long de l'axe des x.
42/// @param y La position de la cellule le long de l'axe des y.
43Pixel& Image::PixelAt(int x, int y) {
44 return stencil.Contain(x, y) ? pixels_[y][x] : dev_null_pixel();
45}
46
47/// @brief Accède à une cellule (Pixel) à une position donnée.
48/// @param x La position de la cellule le long de l'axe des x.
49/// @param y La position de la cellule le long de l'axe des y.
50const Pixel& Image::PixelAt(int x, int y) const {
51 return stencil.Contain(x, y) ? pixels_[y][x] : dev_null_pixel();
52}
53
54/// @brief Efface tous les pixels de l'écran.
56 for (auto& line : pixels_) {
57 for (auto& cell : line) {
58 cell = Pixel();
59 }
60 }
61}
62
63} // namespace ftxui
bool Contain(int x, int y) const
Definition box.cpp:42
std::string character
Definition pixel.hpp:45
Pixel & PixelAt(int x, int y)
Accède à une cellule (Pixel) à une position donnée.
Definition image.cpp:43
std::string & at(int x, int y)
Accède à un caractère dans une cellule à une position donnée.
Definition image.cpp:29
Image()=delete
Box stencil
Definition image.hpp:41
void Clear()
Efface tous les pixels de l'écran.
Definition image.cpp:55
std::vector< std::vector< Pixel > > pixels_
Definition image.hpp:46
Un caractère Unicode et son style associé.
Definition pixel.hpp:15
L'espace de noms FTXUI ftxui::
Definition animation.hpp:10