Geoffrey Frogeye
22bcfb2b2f
Import du code de Geoffrey lors de la séance du 14/02/14, la plupart étant du travail à la maison * Ajout d'un Makefile * Seul l'objet image a été découpé * Instruction test * Modification de l'objet Image * Initialisation du tableau dans le constructeur * Changement de certains int en unsigned int (puisque ne pouvant pas avoir de valeurs négative) * typeComposantes est maintenant un ensemble de constantes * Correction de diverses fautes * Ajout de g_pixelVide pour créer un objet Pixel déjà compatible avec une image * Modification de test_affichageFenetre.cpp en test.cpp * Vérifie désormais si l'objet Image est fonctionnel * Changement de la façon dont la surface est bloquée dans affichageFenetreSDL.cpp * Passage de tous les fichiers C++ au formatteur (d'où le nombre exageré de lignes modifiées) * Correction de README.md * Syntaxe * Message de mise en garde sur la non-disponibilité d'un fichier binaire * Mise à jour de TODO.md * Correction de LICENCE.md * Respect de l'ordre alphabétique, et de la cohérence vis-à-vis des autres fichiers * Ajout des dossiers bin/ et obj/ pour éviter de les créer après un clone
40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
#include <vector>
|
|
|
|
typedef enum {PILG_BIN, PILG_NIV, PILG_RVB} PILG_Comp;
|
|
|
|
typedef struct Pixel {
|
|
PILG_Comp typeComposantes;
|
|
unsigned int maxComposante;
|
|
unsigned int r;
|
|
unsigned int v;
|
|
unsigned int b;
|
|
unsigned int g;
|
|
bool n;
|
|
} Pixel;
|
|
|
|
class Image {
|
|
public:
|
|
Image(unsigned int dimensionX, unsigned int dimensionY, unsigned int maxComposante, PILG_Comp typeComposantes);
|
|
// Getters
|
|
unsigned int g_dimensionX() const;
|
|
unsigned int g_dimensionY() const;
|
|
PILG_Comp g_typeComposantes() const;
|
|
unsigned int g_maxComposante() const;
|
|
int g_point(unsigned int x, unsigned int y, Pixel &pixel) const;
|
|
// Setters
|
|
int s_point(unsigned int x, unsigned int y, Pixel pixel);
|
|
// Utilitaires
|
|
Pixel g_pixelVide() const;
|
|
|
|
private:
|
|
// Utilitaires
|
|
static bool enLimitesComposantes(Pixel pixel);
|
|
bool enLimites(unsigned int x, unsigned int y) const;
|
|
// Variables
|
|
unsigned int m_dimensionX;
|
|
unsigned int m_dimensionY;
|
|
PILG_Comp m_typeComposantes; // 0 : N&B, 1 : Niveaux de gris, 2 : RVB
|
|
unsigned int m_maxComposante; // Maximum de composante (sauf binaire)
|
|
std::vector< std::vector< Pixel > > m_tab;
|
|
};
|