#ifndef COMPRESSION_QUADTREE_HPP #define COMPRESSION_QUADTREE_HPP 1 #include #include class QuadTree { // Niveau de profondeur du morceau de l'image // 0 -> image de base // 10 -> image coupé en 4 short niveau; // La couleur qui est représentée SDL_Color couleur; // Dimensions du morceau de l'image std::pair dimensions; // Est vrai si l'on ne doit pas diviser l'image bool final = true; // Morceaux de l'image QuadTree * nord_ouest; QuadTree * nord_est; QuadTree * sud_ouest; QuadTree * sud_est; // Calcule la couleur qui apparaît majoritairement dans l'image SDL_Color calculeCouleur(SDL_Surface *); // Vérifie si l'ont doit encore diviser l'image bool verificationEgalitee(SDL_Surface *); // Coupe l'image en 4 std::array coupeEnQuatre(SDL_Surface *); // Colle 4 images en une seule SDL_Surface * colleQuatreImages(std::array); public: QuadTree(SDL_Surface *, short = 0); ~QuadTree(void); // Renvoie l'image compressée SDL_Surface * image(short); }; #endif