fixed documentation

This commit is contained in:
Phuntsok Drak-pa 2018-11-24 22:41:29 +01:00
parent ea6e190ecd
commit ae74134064
No known key found for this signature in database
GPG Key ID: 9CB34B6827C66D22
10 changed files with 106 additions and 99 deletions

View File

@ -1997,7 +1997,7 @@ PERLMOD_MAKEVAR_PREFIX =
# C-preprocessor directives found in the sources and include files. # C-preprocessor directives found in the sources and include files.
# The default value is: YES. # The default value is: YES.
ENABLE_PREPROCESSING = NO ENABLE_PREPROCESSING = YES
# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names # If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
# in the source code. If set to NO, only conditional compilation will be # in the source code. If set to NO, only conditional compilation will be

View File

@ -1,5 +1,5 @@
/** /**
* \file common.c * \file compress.c
* \brief Implémentation de la ()compression dimages * \brief Implémentation de la ()compression dimages
*/ */
@ -80,7 +80,7 @@ void addPixelToSelectedZone(Image *t_img, int64_t t_idx, Zone *t_zone) {
* \param[in] t_idx Index du pixel à tester * \param[in] t_idx Index du pixel à tester
* \param[out] t_zones Liste des zones de limage * \param[out] t_zones Liste des zones de limage
*/ */
void chooseZoneForPixel(Image *t_img, int64_t t_idx, darray *zones) { void chooseZoneForPixel(Image *t_img, int64_t t_idx, darray *t_zones) {
Zone *current_zone; Zone *current_zone;
Pixel *pixel; Pixel *pixel;
size_t i; size_t i;
@ -91,8 +91,8 @@ void chooseZoneForPixel(Image *t_img, int64_t t_idx, darray *zones) {
return; return;
} }
/* for each known zone, see if it matches the current pixel's color */ /* for each known zone, see if it matches the current pixel's color */
for (i = 0; i < darraySize(zones); ++i) { for (i = 0; i < darraySize(t_zones); ++i) {
current_zone = darrayGet(zones, i); current_zone = darrayGet(t_zones, i);
/* if it does, add selected pixel and its neighbouring pixels of the same /* if it does, add selected pixel and its neighbouring pixels of the same
* color */ * color */
if (sameColor(pixel, current_zone)) { if (sameColor(pixel, current_zone)) {
@ -104,7 +104,7 @@ void chooseZoneForPixel(Image *t_img, int64_t t_idx, darray *zones) {
* and add the selected pixel and its neighbours of the same color to the zone * and add the selected pixel and its neighbours of the same color to the zone
*/ */
current_zone = newZone(pixel->r, pixel->g, pixel->b); current_zone = newZone(pixel->r, pixel->g, pixel->b);
darrayPushBack(zones, current_zone); darrayPushBack(t_zones, current_zone);
addPixelToSelectedZone(t_img, t_idx, current_zone); addPixelToSelectedZone(t_img, t_idx, current_zone);
} }

View File

@ -1,5 +1,5 @@
/** /**
* \file common.h * \file compress.h
* \brief Déclaration pour la ()compression dimages * \brief Déclaration pour la ()compression dimages
*/ */

View File

@ -14,7 +14,7 @@
* tableau. Cela implique quun objet \ref darray ne peut contenir que des * tableau. Cela implique quun objet \ref darray ne peut contenir que des
* éléments du même type. * éléments du même type.
* *
* \param[in] element_size Taille des objets stockés * \param[in] t_element_size Taille des objets stockés
* \return Pointeur sur le nouvel objet \ref darray * \return Pointeur sur le nouvel objet \ref darray
*/ */
darray *darrayNew(size_t t_element_size) { darray *darrayNew(size_t t_element_size) {
@ -34,10 +34,10 @@ darray *darrayNew(size_t t_element_size) {
* élément. Cette fonction modifie les membres `begin` et `end` et * élément. Cette fonction modifie les membres `begin` et `end` et
* potentiellement `capacity` de `self`. * potentiellement `capacity` de `self`.
* *
* \param[in] self Objet \ref darray dans lequel on souhaite insérer un nouvel * \param[in] t_self Objet \ref darray dans lequel on souhaite insérer un nouvel
* élément * élément
* \param[in] pos Position à laquelle on souhaite insérer un nouvel élément * \param[in] t_pos Position à laquelle on souhaite insérer un nouvel élément
* \param[in] elem Élément que lon souhaite insérer * \param[in] t_elem Élément que lon souhaite insérer
*/ */
void darrayInsert(darray *t_self, void *t_pos, void *t_elem) { void darrayInsert(darray *t_self, void *t_pos, void *t_elem) {
char *itr; char *itr;
@ -57,7 +57,7 @@ void darrayInsert(darray *t_self, void *t_pos, void *t_elem) {
* sa capacité par deux. Si la réallocation mémoire ne réussit pas, le * sa capacité par deux. Si la réallocation mémoire ne réussit pas, le
* programme sarrête immédiatement, renvoyant la valeur de \ref PTR_ERROR * programme sarrête immédiatement, renvoyant la valeur de \ref PTR_ERROR
* *
* \param[in] self L'objet darray à étendre * \param[in] t_self L'objet darray à étendre
*/ */
void darrayExtend(darray *t_self) { void darrayExtend(darray *t_self) {
void *new_array; void *new_array;
@ -82,8 +82,8 @@ void darrayExtend(darray *t_self) {
* entre les membres `begin` et `end` de `self`. Par ailleurs, le membre `end` * entre les membres `begin` et `end` de `self`. Par ailleurs, le membre `end`
* de `self` se retrouve modifié par la fonction. * de `self` se retrouve modifié par la fonction.
* *
* \param[out] self Objet \ref `darray` dont on souhaite supprimer un élément * \param[out] t_self Objet \ref darray dont on souhaite supprimer un élément
* \param[in] pos Élément de `self` que lon souhaite supprimer * \param[in] t_pos Élément de `self` que lon souhaite supprimer
*/ */
void darrayErase(darray *t_self, void *t_pos) { void darrayErase(darray *t_self, void *t_pos) {
memmove(t_pos, (char *)t_pos + t_self->element_size, memmove(t_pos, (char *)t_pos + t_self->element_size,
@ -95,9 +95,9 @@ void darrayErase(darray *t_self, void *t_pos) {
* `darrayPushBack` ajoute un nouvel élément `elem` à lobjet `self` à la fin du * `darrayPushBack` ajoute un nouvel élément `elem` à lobjet `self` à la fin du
* tableau de ce dernier. Cette fonction modifie le membre `end` de `self`. * tableau de ce dernier. Cette fonction modifie le membre `end` de `self`.
* *
* \param[out] self Objet \ref darray à la fin duquel on souhaite ajouter un * \param[out] t_self Objet \ref darray à la fin duquel on souhaite ajouter un
* nouvel élément * nouvel élément
* \param[in] elem Élément que lon souhaite ajouter à la fin de `self` * \param[in] t_elem Élément que lon souhaite ajouter à la fin de `self`
*/ */
void darrayPushBack(darray *t_self, void *t_elem) { void darrayPushBack(darray *t_self, void *t_elem) {
darrayInsert(t_self, t_self->end, t_elem); darrayInsert(t_self, t_self->end, t_elem);
@ -108,7 +108,7 @@ void darrayPushBack(darray *t_self, void *t_elem) {
* darray passé en argument. Cette fonction modifie le membre `end` de ce * darray passé en argument. Cette fonction modifie le membre `end` de ce
* dernier objet. * dernier objet.
* *
* \param[out] self Objet dont on souhaite supprimer le dernier élément * \param[out] t_self Objet dont on souhaite supprimer le dernier élément
*/ */
void darrayPopBack(darray *t_self) { void darrayPopBack(darray *t_self) {
darrayErase(t_self, (char *)t_self->end - t_self->element_size); darrayErase(t_self, (char *)t_self->end - t_self->element_size);
@ -120,7 +120,7 @@ void darrayPopBack(darray *t_self) {
* Lobjet passé en argument ne sera plus utilisable après utilisation de cette * Lobjet passé en argument ne sera plus utilisable après utilisation de cette
* fonction. * fonction.
* *
* \param[out] self Objet \ref darray à supprimer * \param[out] t_self Objet \ref darray à supprimer
*/ */
void darrayDelete(darray *t_self) { void darrayDelete(darray *t_self) {
free(t_self->begin); free(t_self->begin);
@ -132,7 +132,7 @@ void darrayDelete(darray *t_self) {
* `self` passé en arguments. Cette fonction ne modifie pas lélément passé en * `self` passé en arguments. Cette fonction ne modifie pas lélément passé en
* argument. * argument.
* *
* \param[out] self Objet \ref darray dont on souhaite connaître le nombre * \param[out] t_self Objet \ref darray dont on souhaite connaître le nombre
* déléments * déléments
* \return Nombre déléments contenus dans `self` * \return Nombre déléments contenus dans `self`
*/ */
@ -147,9 +147,9 @@ size_t darraySize(darray *t_self) {
* le pointeur `NULL` sera renvoyé, sinon un pointeur de type `void*` pointant * le pointeur `NULL` sera renvoyé, sinon un pointeur de type `void*` pointant
* sur lélément correspondant sera renvoyé. Cette fonction ne modifie pas * sur lélément correspondant sera renvoyé. Cette fonction ne modifie pas
* lobjet `self`. * lobjet `self`.
* \param[out] self Objet \ref darray duquel on souhaite obtenir un pointeur sur * \param[out] t_self Objet \ref darray duquel on souhaite obtenir un pointeur
* lélément à lindex `idx` * sur lélément à lindex `idx`
* \param[in] idx Index de lélément que lon souhaite récupérer * \param[in] t_idx Index de lélément que lon souhaite récupérer
* \return Pointeur de type `void*` pointant sur lélément si lindex est * \return Pointeur de type `void*` pointant sur lélément si lindex est
* valide, sur NULL sinon. * valide, sur NULL sinon.
*/ */

View File

@ -11,13 +11,13 @@
#include <stdlib.h> #include <stdlib.h>
/** /**
* \struct darray_s * \struct darray
* \brief Tableau dynamique * \brief Tableau dynamique
* *
* Les objets `darray_s` offrent la possibilité davoir des tableaux à taille * Les objets `darray` offrent la possibilité davoir des tableaux à taille
* variable en C, similairement aux objets `vector` en C++. * variable en C, similairement aux objets `vector` en C++.
*/ */
typedef struct darray_s { typedef struct {
void *begin; /*!< Pointeur sur le premier élément du tableau */ void *begin; /*!< Pointeur sur le premier élément du tableau */
void *end; /*!< Pointeur sur lélément situé immédiatement après le dernier void *end; /*!< Pointeur sur lélément situé immédiatement après le dernier
élément du tableau */ élément du tableau */

View File

@ -1,9 +1,9 @@
/** /**
* \file errorcodes.h * \file errorcodes.h
* \brief Definition of error codes * \brief Definition of error codes
* *
* Dans ce fichier sont définis les codes derreur pouvant interrompre le * Dans ce fichier sont définis les codes derreur pouvant interrompre le
* programme. * programme.
*/ */
#ifndef SRC_ERRORCODES_H_ #ifndef SRC_ERRORCODES_H_

View File

@ -19,8 +19,8 @@
* `1`. En cas de succès, la fonction renverra un pointeur de fichier vers le * `1`. En cas de succès, la fonction renverra un pointeur de fichier vers le
* fichier ouvert. * fichier ouvert.
* *
* \param[in] filename Nom du fichier à ouvrir * \param[in] t_filename Nom du fichier à ouvrir
* \param[in] mode Mode du fichier à ouvrir * \param[in] t_mode Mode du fichier à ouvrir
* \return Pointeur de fichier * \return Pointeur de fichier
*/ */
FILE *get_file(const char *t_filename, const char *t_mode) { FILE *get_file(const char *t_filename, const char *t_mode) {
@ -36,8 +36,8 @@ FILE *get_file(const char *t_filename, const char *t_mode) {
* Lit et vérifie le format du fichier passé en argument. Si le format nest * Lit et vérifie le format du fichier passé en argument. Si le format nest
* pas correct, la fonction arrête le processus qui renverra la valeur `1`. * pas correct, la fonction arrête le processus qui renverra la valeur `1`.
* *
* \param[in] fb Fichier ppm lire les données * \param[in] t_fp Fichier ppm lire les données
* \param[in] filename Nom du fichier ouvert * \param[in] t_filename Nom du fichier ouvert
*/ */
void read_file_format(FILE *t_fp, const char *t_filename) { void read_file_format(FILE *t_fp, const char *t_filename) {
char buff[16]; char buff[16];
@ -55,7 +55,7 @@ void read_file_format(FILE *t_fp, const char *t_filename) {
/** /**
* Vérifie si le header contient des commentaires et les ignore le cas échéant. * Vérifie si le header contient des commentaires et les ignore le cas échéant.
* *
* \param[in] fp Fichier ppm lire les données * \param[in] t_fp Fichier ppm lire les données
*/ */
void check_for_comments(FILE *t_fp) { void check_for_comments(FILE *t_fp) {
char c; char c;
@ -72,9 +72,9 @@ void check_for_comments(FILE *t_fp) {
* Lit la taille des données image et les écrit dans le conteneur dimages * Lit la taille des données image et les écrit dans le conteneur dimages
* passé en argument. * passé en argument.
* *
* \param[in] fp Fichier ppm lire les données * \param[in] t_fp Fichier ppm lire les données
* \param[out] img Conteneur dimage écrire les résultats * \param[out] t_img Conteneur dimage écrire les résultats
* \param[in] filename Nom du fichier ouvert * \param[in] t_filename Nom du fichier ouvert
*/ */
void read_file_size(FILE *t_fp, Image *t_img, const char *t_filename) { void read_file_size(FILE *t_fp, Image *t_img, const char *t_filename) {
if (fscanf(t_fp, "%lu %lu", &t_img->x, &t_img->y) != 2) { if (fscanf(t_fp, "%lu %lu", &t_img->x, &t_img->y) != 2) {
@ -87,8 +87,8 @@ void read_file_size(FILE *t_fp, Image *t_img, const char *t_filename) {
* Vérifie le format RGB de limage ppm. Si le format nest pas correct, la * Vérifie le format RGB de limage ppm. Si le format nest pas correct, la
* fonction arrête le processus qui renverra la valeur `1`. * fonction arrête le processus qui renverra la valeur `1`.
* *
* \param[in] fp Fichier ppm lire les données * \param[in] t_fp Fichier ppm lire les données
* \param[in] filename Nom du fichier ouvert * \param[in] t_filename Nom du fichier ouvert
*/ */
void read_rgb(FILE *t_fp, const char *t_filename) { void read_rgb(FILE *t_fp, const char *t_filename) {
char d; char d;
@ -106,24 +106,28 @@ void read_rgb(FILE *t_fp, const char *t_filename) {
} }
} }
unsigned long read_data(FILE *t_fp, Image *t_img, unsigned char **t_data, /**
const char *t_filename) { * \brief function description
unsigned long size; *
/* allocation memoire */ * Lit les données images brutes du fichier ppm ouvert et les stocke dans \p
size = t_img->x * t_img->y * 3; * t_data.
DEBUG { *
printf("Size image %lu %lu => %lu\n", t_img->x, t_img->y, * \param[in] t_fp Fichier ppm ouvert source
t_img->x * t_img->y); * \param[in] t_size Taille des données brutes
} * \param[out] t_data Pointeur vers le tableau de sortie des données brutes
*t_data = (unsigned char *)malloc((size_t)size * sizeof(unsigned char)); * \param[in] t_filename Nom du fichier dentrée
* \return Taille du tableau de données obtenu
*/
void read_data(FILE *t_fp, uint64_t t_size, unsigned char **t_data,
const char *t_filename) {
*t_data = (unsigned char *)malloc(t_size * sizeof(unsigned char));
assert(*t_data); assert(*t_data);
/* read pixel data from file */ /* read pixel data from file */
if (!fread(*t_data, (size_t)1, (size_t)size, t_fp)) { if (!fread(*t_data, (size_t)1, t_size, t_fp)) {
fprintf(stderr, "Error loading image '%s'\n", t_filename); fprintf(stderr, "Error loading image '%s'\n", t_filename);
free(*t_data); free(*t_data);
exit(FILE_IO_ERROR); exit(FILE_IO_ERROR);
} }
return size;
} }
/** /**
@ -132,12 +136,11 @@ unsigned long read_data(FILE *t_fp, Image *t_img, unsigned char **t_data,
* tableau de pixels multipliée par trois du fait des trois emplacements séparés * tableau de pixels multipliée par trois du fait des trois emplacements séparés
* par couleur. * par couleur.
* *
* \param[out] img Image dont les pixels doivent être convertis * \param[out] t_img Image dont les pixels doivent être convertis
* \param[in] data Données à convertir en structures \ref Pixel * \param[in] t_data Données à convertir en structures \ref Pixel
* \param[in] size Taille du tableau de `unsigned char` * \param[in] t_size Taille du tableau de `unsigned char`
* \return return type
*/ */
void dataToImage(Image *t_img, unsigned char *t_data, unsigned long t_size) { void dataToImage(Image *t_img, uint8_t *t_data, uint64_t t_size) {
unsigned long i; unsigned long i;
t_img->pixels = darrayNew(sizeof(Pixel)); t_img->pixels = darrayNew(sizeof(Pixel));
printf("Size of data: %lu\n", t_size); printf("Size of data: %lu\n", t_size);
@ -149,18 +152,18 @@ void dataToImage(Image *t_img, unsigned char *t_data, unsigned long t_size) {
/** /**
* Convertit le vecteur de pixels dun conteneur dimage en un tableau de * Convertit le vecteur de pixels dun conteneur dimage en un tableau de
* valeurs de type `GLuint` afin de permettre lécriture dune image dans un * valeurs de type `uint8_t` afin de permettre lécriture dune image dans un
* fichier. * fichier.
* *
* \param[in] img Conteneur dimage contenant les pixels à convertir * \param[in] t_img Conteneur dimage contenant les pixels à convertir
* \return Tableau de pointeurs de `GLuint` * \return Tableau de pointeurs de `uint8_t`
*/ */
unsigned char *imageToData(Image *t_img) { uint8_t *imageToData(Image *t_img) {
Pixel *pixel; Pixel *pixel;
unsigned char *data, size; uint8_t *data, size;
unsigned long i; unsigned long i;
size = (unsigned char)darraySize(t_img->pixels); size = (uint8_t)darraySize(t_img->pixels);
data = (unsigned char *)malloc(3 * sizeof(unsigned char) * size); data = (uint8_t *)malloc(3 * sizeof(uint8_t) * size);
for (i = 0; i < size; i += 3) { for (i = 0; i < size; i += 3) {
pixel = darrayGet(t_img->pixels, i / 3); pixel = darrayGet(t_img->pixels, i / 3);
data[i] = pixel->r; data[i] = pixel->r;
@ -176,20 +179,25 @@ unsigned char *imageToData(Image *t_img) {
* lequel les données et l'image seront manipulables. Retourne la valeur 1 en * lequel les données et l'image seront manipulables. Retourne la valeur 1 en
* cas de succès. * cas de succès.
* *
* \param[in] filename Nom du fichier image à ouvrir * \param[in] t_filename Nom du fichier image à ouvrir
* \param[out] img Objet \ref Image manipulable * \param[out] t_img Objet \ref Image manipulable
* \return Retourne 1 en cas de succès * \return Retourne 1 en cas de succès
*/ */
int imageLoadPPM(const char *t_filename, Image *t_img) { int imageLoadPPM(const char *t_filename, Image *t_img) {
FILE *fp; FILE *fp;
unsigned long size; uint64_t size;
unsigned char *data = NULL; unsigned char *data = NULL;
fp = get_file(t_filename, "rb"); /* open PPM file for reading */ fp = get_file(t_filename, "rb"); /* open PPM file for reading */
read_file_format(fp, t_filename); /* read image format */ read_file_format(fp, t_filename); /* read image format */
check_for_comments(fp); /* check for comments */ check_for_comments(fp); /* check for comments */
read_file_size(fp, t_img, t_filename); /* read image size information */ read_file_size(fp, t_img, t_filename); /* read image size information */
read_rgb(fp, t_filename); /* read rgb component */ read_rgb(fp, t_filename); /* read rgb component */
size = read_data(fp, t_img, &data, t_filename); /* read data from file */ DEBUG {
printf("Size image %lu %lu => %lu\n", t_img->x, t_img->y,
t_img->x * t_img->y);
}
size = t_img->x * t_img->y * 3;
read_data(fp, size, &data, t_filename); /* read data from file */
dataToImage(t_img, data, size); dataToImage(t_img, data, size);
free(data); free(data);
fclose(fp); fclose(fp);
@ -200,12 +208,12 @@ int imageLoadPPM(const char *t_filename, Image *t_img) {
() * Ouvre le fichier image avec son nom de fichier passé par le paramètre () * Ouvre le fichier image avec son nom de fichier passé par le paramètre
* `filename` et y écrit les informations trouvées dans lobjet `img`. * `filename` et y écrit les informations trouvées dans lobjet `img`.
* *
* \param[in] filename Nom du fichier image à ouvrir * \param[in] t_filename Nom du fichier image à ouvrir
* \param[in] img Objet \ref Image à écrire * \param[in] t_img Objet \ref Image à écrire
*/ */
void imageSavePPM(char *t_filename, Image *t_img) { void imageSavePPM(char *t_filename, Image *t_img) {
FILE *fp; FILE *fp;
unsigned char *data; uint8_t *data;
fp = get_file(t_filename, "wb"); /* open file for output */ fp = get_file(t_filename, "wb"); /* open file for output */
/* write the header file */ /* write the header file */
fprintf(fp, "P6\n"); /* image format */ fprintf(fp, "P6\n"); /* image format */

View File

@ -13,25 +13,25 @@
#include "utilities.h" #include "utilities.h"
/// \brief Ouvre un fichier avec les autorisations demandées /// \brief Ouvre un fichier avec les autorisations demandées
FILE *get_file(const char *filename, const char *mode); FILE *get_file(const char *t_filename, const char *t_mode);
/// \brief Lit le format dun fichier ppm ouvert /// \brief Lit le format dun fichier ppm ouvert
void read_file_format(FILE *fp, const char *filename); void read_file_format(FILE *t_fp, const char *t_filename);
/// \brief Vérifie et ignore déventuels commentaires du header dun fichier /// \brief Vérifie et ignore déventuels commentaires du header dun fichier
void check_for_comments(FILE *fp); void check_for_comments(FILE *t_fp);
/// \brief Lit les dimensions du fichier ppm ouvert /// \brief Lit les dimensions du fichier ppm ouvert
void read_file_size(FILE *fp, Image *img, const char *filename); void read_file_size(FILE *t_fp, Image *t_img, const char *t_filename);
/// \brief Lit et vérifie le format RGB du fichier ppm /// \brief Lit et vérifie le format RGB du fichier ppm
void read_rgb(FILE *fp, const char *filename); void read_rgb(FILE *t_fp, const char *t_filename);
/// \brief Lit dans le conteneur les données images du fichier ppm /// \brief Lit dans le conteneur les données images du fichier ppm
unsigned long read_data(FILE *fp, Image *img, unsigned char **data, void read_data(FILE *t_fp, uint64_t t_size, uint8_t **t_data,
const char *filename); const char *t_filename);
/// \brief Convertit les données brutes de fichier vers des conteneurs de pixels /// \brief Convertit les données brutes de fichier vers des conteneurs de pixels
void dataToImage(Image *img, unsigned char *data, unsigned long size); void dataToImage(Image *t_img, uint8_t *t_data, uint64_t t_size);
/// \brief Convertit les pixels dune image en tableau natif OpenGL /// \brief Convertit les pixels dune image en tableau natif OpenGL
unsigned char *imageToData(Image *img); unsigned char *imageToData(Image *t_img);
/// \brief Ouverture et lecture de limage dentrée /// \brief Ouverture et lecture de limage dentrée
int imageLoadPPM(const char *filename, Image *img); int imageLoadPPM(const char *t_filename, Image *t_img);
/// \brief Ouverture et écriture de l'image de sortie /// \brief Ouverture et écriture de l'image de sortie
void imageSavePPM(char *filename, Image *img); void imageSavePPM(char *t_filename, Image *t_img);
#endif /* SRC_PPM_H_ */ #endif /* SRC_PPM_H_ */

View File

@ -13,9 +13,9 @@
* Créé un nouveau pixel initialisé avec les arguments `r`, `g` et `b` et * Créé un nouveau pixel initialisé avec les arguments `r`, `g` et `b` et
* renvoie un pointeur vers ce pixel créé. * renvoie un pointeur vers ce pixel créé.
* *
* \param[in] r Valeur rouge du pixel * \param[in] t_r Valeur rouge du pixel
* \param[in] g Valeur verte du pixel * \param[in] t_g Valeur verte du pixel
* \param[in] b Valeur bleue du pixel * \param[in] t_b Valeur bleue du pixel
* \return Pointeur sur une structure de type \ref Pixel * \return Pointeur sur une structure de type \ref Pixel
*/ */
Pixel *newPixel(uint8_t t_r, uint8_t t_g, uint8_t t_b) { Pixel *newPixel(uint8_t t_r, uint8_t t_g, uint8_t t_b) {
@ -50,7 +50,7 @@ Image *newImage() {
* destructeur libérera la structure \ref Image pointée par le pointeur passé * destructeur libérera la structure \ref Image pointée par le pointeur passé
* en argument. * en argument.
* *
* \param[in] self Conteneur dimage à détruire * \param[in] t_self Conteneur dimage à détruire
*/ */
void deleteImage(Image *t_self) { void deleteImage(Image *t_self) {
DEBUG { printf("deleted all pixels\n"); } DEBUG { printf("deleted all pixels\n"); }
@ -63,15 +63,14 @@ void deleteImage(Image *t_self) {
* valeurs quil contiendra avec les arguments qui lui seront passés lors de * valeurs quil contiendra avec les arguments qui lui seront passés lors de
* lappel de la fonction. * lappel de la fonction.
* *
* \param[in] y Ordonnée à laquelle le segment réside * \param[in] t_right_limit Abscisse extrême droite du segment
* \param[in] xd Abscisse extrême droite du segment * \param[in] t_left_limit Abscisse extrême gauche du segment
* \param[in] xg Abscisse extrême gauche du segment
* \return Pointeur sur un conteneur de segment * \return Pointeur sur un conteneur de segment
*/ */
Segment *newSegment(uint32_t t_xd, uint32_t t_xg) { Segment *newSegment(uint32_t t_right_limit, uint32_t t_left_limit) {
Segment *res = (Segment *)malloc(sizeof(Segment)); Segment *res = (Segment *)malloc(sizeof(Segment));
res->xd = t_xd; res->right_limit = t_right_limit;
res->xg = t_xg; res->left_limit = t_left_limit;
return res; return res;
} }
@ -82,9 +81,9 @@ Segment *newSegment(uint32_t t_xd, uint32_t t_xg) {
* de la zone et initialise un tableau dynamique vide de \ref Segment. Renvoie * de la zone et initialise un tableau dynamique vide de \ref Segment. Renvoie
* un pointeur vers la structure nouvellement créée. * un pointeur vers la structure nouvellement créée.
* *
* \param[in] r Valeur rouge de la couleur de la zone * \param[in] t_r Valeur rouge de la couleur de la zone
* \param[in] g Valeur verte de la couleur de la zone * \param[in] t_g Valeur verte de la couleur de la zone
* \param[in] b Valeur bleue de la couleur de la zone * \param[in] t_b Valeur bleue de la couleur de la zone
* \return Pointeur vers la structure créée * \return Pointeur vers la structure créée
*/ */
Zone *newZone(uint8_t t_r, uint8_t t_g, uint8_t t_b) { Zone *newZone(uint8_t t_r, uint8_t t_g, uint8_t t_b) {
@ -100,6 +99,6 @@ Zone *newZone(uint8_t t_r, uint8_t t_g, uint8_t t_b) {
* Destructeur de zone, libère la zone mémoire utilisée pour stocker les * Destructeur de zone, libère la zone mémoire utilisée pour stocker les
* segments. Ne libère pas \p t_self lui-même mais son membre `segments`. * segments. Ne libère pas \p t_self lui-même mais son membre `segments`.
* *
* \param[in] self Conteneur de zone à détruire * \param[in] t_self Conteneur de zone à détruire
*/ */
void deleteZoneContent(Zone *t_self) { darrayDelete(t_self->segments); } void deleteZoneContent(Zone *t_self) { darrayDelete(t_self->segments); }

View File

@ -67,7 +67,7 @@ struct Pixel {
uint8_t r; /*!< Couleur rouge du pixel */ uint8_t r; /*!< Couleur rouge du pixel */
uint8_t g; /*!< Couleur verte du pixel */ uint8_t g; /*!< Couleur verte du pixel */
uint8_t b; /*!< Couleur bleue du pixel */ uint8_t b; /*!< Couleur bleue du pixel */
unsigned char visited; /*!< Le pixel a-t-il été visité avant */ uint8_t visited; /*!< Le pixel a-t-il été visité avant */
}; };
/** /**
@ -91,8 +91,8 @@ struct Zone {
* à son extrême droite et à son extrême gauche. * à son extrême droite et à son extrême gauche.
*/ */
struct Segment { struct Segment {
uint32_t xd; /*!< extrême droit du segment */ uint32_t right_limit; /*!< extrême droit du segment */
uint32_t xg; /*!< extrême gauche du segment */ uint32_t left_limit; /*!< extrême gauche du segment */
}; };
/*****************************************************************************/ /*****************************************************************************/
@ -106,7 +106,7 @@ Image *newImage();
/// \brief Destructeur dune image /// \brief Destructeur dune image
void deleteImage(Image *t_self); void deleteImage(Image *t_self);
/// \brief Constructeur dun segment de couleur unie /// \brief Constructeur dun segment de couleur unie
Segment *newSegment(uint32_t t_xd, uint32_t t_xg); Segment *newSegment(uint32_t t_right_limit, uint32_t t_left_limit);
/// \brief Constructeur de conteneur de zone /// \brief Constructeur de conteneur de zone
Zone *newZone(uint8_t t_r, uint8_t t_g, uint8_t t_b); Zone *newZone(uint8_t t_r, uint8_t t_g, uint8_t t_b);
/// \brief Destructeur de conteneur de zone /// \brief Destructeur de conteneur de zone