#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

#include "image.h"

/* calcule la distance au carré entre 2 pixels */
int dist2(pixel p1, pixel p2) {
    int dr = p1.r - p2.r;
    int dv = p1.v - p2.v;
    int db = p1.b - p2.b;
    return dr * dr + dv * dv + db * db;
}

/* renvoie l'indice du centroide le plus proche de p */
int classer(pixel p, pixel* centroides, int k){   
    // A FAIRE
    return 0;
}


/* applique l'algorithme de kmeans 
  - pix : les npix à clusteriser
  - classes : pour indiquer les classes finales des pixels
  - centroides : tableau des k centroides */
void kmeans(pixel* pix, int* classes, int npix, pixel* centroides, int k){
    // initialisation des classes

    // A FAIRE

    // initialisation des centroides 

    // A FAIRE

    // Algo Kmeans
    bool changed = true;
    while (changed) {
        printf("Etape kmeans\n");
        changed = false;
        // A FAIRE
        
    }
}

int main() {    
    
    int k = 4;

    printf("Lecture de l'image\n");
    Image* im0 = importerImage("johnR.ppm");

    printf("Modification de l'image\n");

    for (int i = 140; i < 180; i += 1) {
        for (int j = 262; j < 302; j += 1) {
            pixel p = {.r = 255, .v = 0, .b = 0};
            setPix(im0, i, j, p);
        }
    }

    printf("Ecriture de l'image\n");
    exporterImage(im0, "johnR_avec_un_nez_rouge.ppm");

    detruireImage(im0);
   
    return 0;
}