#include "Base.h"
#include <iostream>
#include <iomanip>


// Dans ce qui suit :
//
//         j
//         |
//   ......|.....
//   ......|.....
//   ......|.....
//   ......|.....
//   ......|.....
//   ......#------ i   img(i,j)
//   ............
//   ............
//   ............
//   ............
//   ............


int main(int argc, char* argv[]) {
  
  std::cout << "Les imagettes de la base sont de taille "
	    << uci::Database::imagette::width << 'x' 
	    << uci::Database::imagette::height << std::endl;


  // Initialise le generateur aleatoire.
  randomInit();
  // L'expression randomDouble()  est un nombre entre 0 et 1 (type double)
  // L'expression randomUChar()   est un caractere aleatoire (type unsigned char).

  uci::Database::imagette imagette;
  
  // On cree un fichier image.
  imagette.PPM("img",0);  // img-000000.ppm

  // Les pixels sont des unsigned char, 0=blanc, 255=noir.
  imagette(0,0) =   0;
  imagette(1,0) = 255;
  imagette(0,1) = 255;
  imagette(1,1) =   0;
  imagette.PPM("img",1); 

  // On se connecte a la base.
  uci::Database base;
  
  // On recupere, et affiche, 100 images.
  for(int i=0;i<100;++i) {
    base.Next(); // on demande une nouvelle image
    std::cout << "l'image " << std::setw(3) << i << " est un " << base.what << '.' << std::endl;
    // base.input est une uci::Database::imagette
    base.input.PPM("base",i);
  }

  return 0;
}