INFO702 - TPs
Loading...
Searching...
No Matches
Image2D.hpp
1// file Image2D.hpp
2#ifndef _IMAGE2D_HPP_
3#define _IMAGE2D_HPP_
4#include <vector>
5
6/// Classe générique pour représenter des images 2D.
7template <typename TValue>
8class Image2D {
9public:
10 typedef Image2D<TValue> Self; // le type de *this
11 typedef TValue Value; // le type pour la valeur des pixels
12 typedef std::vector<Value> Container; // le type pour stocker les valeurs des pixels de l'image.
13
14 // Constructeur par défaut
15 Image2D();
16 // Constructeur avec taille w x h. Remplit tout avec la valeur g
17 // (par défaut celle donnée par le constructeur par défaut).
18 Image2D( int w, int h, Value g = Value() );
19
20 // Remplit l'image avec la valeur \a g.
21 void fill( Value g );
22
23 /// @return la largeur de l'image.
24 int w() const;
25 /// @return la hauteur de l'image.
26 int h() const;
27
28 /// Accesseur read-only à la valeur d'un pixel.
29 /// @return la valeur du pixel(i,j)
30 Value at( int i, int j ) const;
31
32 /// Accesseur read-write à la valeur d'un pixel.
33 /// @return une référence à la valeur du pixel(i,j)
34 Value& at( int i, int j );
35
36private:
37 Container m_data; // mes données; évitera de faire les allocations dynamiques
38 int m_width; // ma largeur
39 int m_height; // ma hauteur
40
41 /// @return l'index du pixel (x,y) dans le tableau \red m_data.
42 int index( int i, int j ) const;
43};
44#endif // _IMAGE2D_HPP_
Classe générique pour représenter des images 2D.
Definition Image2D.hpp:8
int h() const
Value & at(int i, int j)
Value at(int i, int j) const
int w() const