/*!\file julia.h * * \author SOUPLET Antoine * \version 1.0 * \date 09-01-2012 * * \brief Fichier contenant les entêtes de fonctions associées à la structure de Julia * */ #include "point.h" #include <SDL/SDL.h> #ifndef _julia_h_ #define _julia_h_ /*!\typedef Julia * * \author SOUPLET Antoine * \version 1.0 * \date 12-01-2012 * * \brief Définition du type Julia correspondant à la structure Julia * */ typedef struct Julia Julia; /*!\struct Julia * * \author SOUPLET Antoine * \version 1.0 * \date 09-01-2012 * * \brief Structure désignant la fractale de Julia * */ struct Julia { SDL_Surface *surf_screen;/*!< écran sur lequel on dessine la fractale de Julia*/ double* pd_zoom;/*!< pointeur vers le zoom*/ Point* ppoint_pInit;/*!< Point initial de la fractale de Julia*/ Point* ppoint_coeffC;/*!< Coefficients de Julia*/ int i_minX;/*!< abscisse à partir duquel on dessine Julia*/ int i_maxX;/*!< abscisse à partir duquel on arrête de dessiner Julia*/ int i_minY;/*!< ordonnée à partir duquel on dessine Julia*/ int i_maxY;/*!< ordonnée à partir duquel on arrête de dessiner Julia*/ int* pi_nbIter;/*!< pointeur vers le nombre d'itérations*/ int* pi_numGradient;/*!< pointeur vers un entier représentant la coloration de la fractale de Julia*/ int* pi_reverse;/*!< pointeur vers un entier indiquant si la fractale de Julia doit être calculé en itération inverse ou non*/ }; /*!\fn Julia* initJulia(SDL_Surface* surf_screen, double* pd_zoom, Point* ppoint_pInit, Point* ppoint_coeffC, int i_minX, int i_maxX, int i_minY, int i_maxY, int* pi_nbIter, int* pi_numGradient, int* pi_reverse) * * \author SOUPLET Antoine * \version 1.0 * \date 08-01-2012 * * \brief Crée et initialise une structure Julia * * \param surf_screen : Un pointeur vers un écran * \param pd_zoom : Un pointeur vers un double correspondant au zoom * \param ppoint_pInit : Un pointeur vers un point correspondant au point initial de la fractale de Julia * \param ppoint_coeffC : Un pointeur vers un point correspondant aux coefficients de Julia * \param i_minX : Un entier définissant l'abscisse du point à partir duquel on dessine la fractale de Julia * \param i_maxX : Un entier définissant l'abscisse du point jusqu'auquel on dessine la fractale de Julia * \param i_minY : Un entier définissant l'ordonnée du point à partir duquel on dessine la fractale de Julia * \param i_maxY : Un entier définissant l'ordonnée du point jusqu'auquel on dessine la fractale de Julia * \param pi_nbIter : Un pointeur vers un entier correspondant au nombre d'iterations de la fractale de Julia * \param pi_numGradient : Un pointeur vers un entier correspondant à la coloration de la fractale de Julia * \param pi_reverse : Un pointeur vers un entier indiquant si la fractale de Julia doit être calculée par itération inverse ou non * * \return Un pointeur vers une structure Julia * */ Julia* initJulia(SDL_Surface* surf_screen, double* pd_zoom, Point* ppoint_pInit, Point* ppoint_coeffC, int i_minX, int i_maxX, int i_minY, int i_maxY, int* pi_nbIter, int* pi_numGradient, int* pi_reverse); /*!\fn void freeJulia(Julia* jul_julia) * * \author SOUPLET Antoine * \version 1.0 * \date 08-01-2012 * * \brief Libère l'espace mémoire alloué à une structure Julia et à ses attributs * * \param jul_julia : Un pointeur vers une structure Julia * */ void freeJulia(Julia* jul_julia); /*!\fn void freeThreadJulia(Julia* jul_julia, int* pi_oldIter, int* pi_nIter) * * \author SOUPLET Antoine * \version 1.0 * \date 08-01-2012 * * \brief Libère l'espace mémoire associé au traitement d'un thread de calcul de la fractale de Julia * * \pre * \post * * \param jul_julia : Un pointeur vers une structure Julia * \param pi_oldIter : Un pointeur vers un entier correspondant au nombre d'itérations parcourues lors du calcul de la couleur du précédent pixel * \param pi_nIter : Un pointeur vers un entier correspondant au nombre d'itération parcourues lors du calcul du pixel en cours * */ void freeThreadJulia(Julia* jul_julia, int *pi_oldIter, int* pi_nIter); #endif