void move_inv_for_light(t_data *data, t_obj *obj, t_spot *spot) { rotate_inv(&(data->scene.eyes.pos), &(obj->rotation)); rotate_inv(spot->pos, &(obj->rotation)); rotate_inv(&(data->scene.vec), &(obj->rotation)); translation_inv(spot->pos, &(obj->pos)); translation_inv(&(data->scene.eyes.pos), &(obj->pos)); }
static int test_rotate(void) { int i, j, k; vector_3_t v = {1, 2, 3}; vector_3_t w; for (i = 0; i < ARRAY_SIZE(test_matrices); i++) { for (j = 0; j < 100; j += 10) { for (k = X; k <= Z; k++) { v[k] += j; v[k] %= 7; } rotate(v, test_matrices[i], w); rotate_inv(w, test_matrices[i], w); for (k = X; k <= Z; k++) TEST_ASSERT(v[k] == w[k]); } } return EC_SUCCESS; }
int main(int argc, char **argv) { // Lecture de l'image à redimensionner char fileName[250]; // LOUP strcpy(fileName, "./images/loup.pgm"); int sizeY = 425; int sizeX = 290; unsigned char * iml = new unsigned char [sizeX*sizeY]; printf("\n Ouverture de %s de taille [%d,%d]", fileName, sizeY, sizeX); readPGM_Picture(fileName, iml, sizeX, sizeY); reduceS(iml,90,sizeX,sizeY); strcpy(fileName, "loup_reduced.pgm"); writePGM_Picture(fileName, iml, sizeX, sizeY); // FIN LOUP // MER sizeY = 353; sizeX = 500; int sizeY_m = sizeY; int sizeX_m = sizeX; unsigned char * imm = new unsigned char [sizeX*sizeY]; unsigned char * imt = new unsigned char [sizeX*sizeY]; unsigned char * imm_masque = new unsigned char [sizeX*sizeY]; unsigned char * imt_masque = new unsigned char [sizeX*sizeY]; strcpy(fileName, "./images/mer.pgm"); printf("\n Ouverture de %s de taille [%d,%d]", fileName, sizeY, sizeX); readPGM_Picture(fileName, imm, sizeX, sizeY); strcpy(fileName, "./images/mer_mask.pgm"); printf("\n Ouverture de %s de taille [%d,%d]", fileName, sizeY, sizeX); readPGM_Picture(fileName, imm_masque, sizeX, sizeY); rotate(imm, imt, sizeX, sizeY); rotate(imm_masque, imt_masque, sizeX_m, sizeY_m); //reduceS(imt,imt_masque,90,sizeX,sizeY); reduceS(imt,90,sizeX,sizeY); rotate_inv(imt, imm, sizeX, sizeY); strcpy(fileName, "mer_reduced.pgm"); writePGM_Picture(fileName, imm, sizeX, sizeY); // FIN MER // Lecture d'un masque si besoin /* Supression d'une seule couture unsigned char * ime = new unsigned char [sizeX*sizeY]; unsigned char * im2 = new unsigned char [sizeX*(sizeY-1)]; // 1) Calculer la matrice d'énergie de l'image IMgradient(im1,ime,sizeX,sizeY); strcpy(fileName, "energie.pgm"); writePGM_Picture(fileName, ime, sizeX, sizeY); // 2) Déterminer le chemin d'énergie minimale int seam[sizeX]; min_path(ime, seam, sizeX, sizeY); // 3) L'enlever de l'image del_seam(im1,im2,seam,sizeX,sizeY); //*/ return 0; }