/*!\file functionSdl.h * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Fichier regroupant les entêtes des fonctions traitant de la gestion des événements, ou de la SDL en général * */ #include "point.h" #include #include "mandelbrot.h" #include "ifs.h" #include "flame.h" #include "lSystem.h" #include "julia.h" /*!\fn void waitEventLSystem(Lsystem* lsyst_lSystem) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Attente d'un événement après le dessin des fractales de type L-System, et traitement de celui-ci * * \param lsyst_lSystem : Un pointeur vers une structure L-System * */ void waitEventLSystem(Lsystem *lsyst_lSystem); /*!\fn void waitEventMandelbrot(SDL_Surface* surf_screen, double *pd_zoom, Point* ppoint_pInit, int* pi_nbIter, int* pi_numGradient) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Attente d'un événement après le dessin de la fractale Mandelbrot, et traitement de celui-ci * * \param surf_screen : Un pointeur vers l'écran * \param pd_zoom : Un pointeur vers le zooom * \param ppoint_pInit : Un pointeur vers le point initial de dessin de la fractale Mandelbrot * \param pi_nbIter : Un pointeur vers un entier correspondant au nombre d'itérations * \param pi_numGradient : Un pointeur vers un entier correspondant au numéro de dégradé * */ void waitEventMandelbrot(SDL_Surface *surf_creen, double *pd_zoom, Point *ppoint_pInit, int* pi_nbIter, int* pi_numGradient); /*!\fn void waitEventJulia(SDL_Surface* surf_screen, double *pd_zoom, Point* ppoint_pInit, Point* ppoint_coeffC, int* pi_nbIter, int* pi_numGradient, int* pi_reverse) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Attente d'un événement après le dessin de la fractale Mandelbrot, et traitement de celui-ci * * \param surf_screen : Un pointeur vers l'écran * \param pd_zoom : Un pointeur vers le zooom * \param ppoint_pInit : Un pointeur vers le point initial de dessin de la fractale Julia * \param ppoint_coeffC : Un pointeur vers un point représentant les coefficients complexes de Julia * \param pi_nbIter : Un pointeur vers un entier correspondant au nombre d'itérations * \param pi_numGradient : Un pointeur vers un entier correspondant au numéro de dégradé * \param pi_reverse : Un pointeur vers un entier indiquant si la fractale de Julia doit être calculée par itération inverse ou non * */ void waitEventJulia(SDL_Surface *surf_screen, double *pd_zoom, Point* ppoint_pInit, Point* ppoint_coeffC, int* pi_nbIter, int* pi_numGradient, int* pi_reverse); /*!\fn void waitEventJulia2(SDL_Surface* surf_screen, double *pd_zoom, Point* ppoint_pInit, Point* ppoint_coeffC, int* pi_nbIter, int* pi_numGradient, int* pi_reverse) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Attente d'un événement après le dessin de la fractale Mandelbrot, et traitement de celui-ci * * \param surf_screen : Un pointeur vers l'écran * \param pd_zoom : Un pointeur vers le zooom * \param ppoint_pInit : Un pointeur vers le point initial de dessin de la fractale Julia * \param ppoint_coeffC : Un pointeur vers un point représentant les coefficients complexes de Julia * \param pi_nbIter : Un pointeur vers un entier correspondant au nombre d'itérations * \param pi_numGradient : Un pointeur vers un entier correspondant au numéro de dégradé * \param pi_reverse : Un pointeur vers un entier indiquant si la fractale de Julia doit être calculée par itération inverse ou non * */ void waitEventJulia2(SDL_Surface *surf_screen, double* pd_zoom, Point *ppoint_pInit, Point *ppoint_coeffC, int* pi_nbIter, int* pi_numGradient, int* pi_reverse); /*!\fn void waitEventIFS(Ifs* ifs_ifs) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Attente d'un événement après le dessin des fractales de type Ifs, et traitement de celui-ci * * \param ifs_ifs : Un pointeur vers une structure Ifs * */ void waitEventIFS(Ifs *ifs_ifs); /*!\fn void waitEventFlame(Flame* flame_flame) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Attente d'un événement après le dessin des fractales de type Flame, et traitement de celui-ci * * \param flame_flame : Un pointeur vers une structure Flame * */ void waitEventFlame(Flame *flame_flame); /*!\fn int switchKeyDown(SDL_Surface *surf_screen, SDL_Event ev_event, Point* ppoint_pInit, double* pd_zoom, double d_pitch, int* pi_quitPrg, int* pi_nbIter, int* pi_numGradient, int* pi_reverse) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief * * \param surf_screen : Un pointeur vers l'écran * \param ev_event : Un événement SDL * \param ppoint_pInit : Un pointeur vers le point inital de dessin de la fractale Mandelbrot ou Julia * \param pd_zoom : Un pointeur vers un réel correspondant au zoom * \param d_pitch : Un réel permettant au déplacement de la fractale * \param pi_quitPrg : Un pointeur vers un entier permettant de quitter le programme * \param pi_nbIter : Un pointeur vers un entier représentant le nombre d'itérations * \param pi_numGradient : Un pointeur vers un entier représentant le numéro de dégradé * \param pi_reverse : Un pointeur vers un entier indiquant si la fractale de Julia doit être calculée par itération inverse ou non * */ int switchKeyDown(SDL_Surface *surf_screen, SDL_Event ev_event, Point* ppoint_pInit, double* pd_zoom, double d_pitch, int* pi_quitPrg, int* pi_nbIter, int* pi_numGradient, int* pi_reverse); /*!\fn int switchKeyDown2(SDL_Surface *surf_screen, SDL_Event ev_event, Point* ppoint_pInit, double* pd_zoom, double d_pitch, int* pi_quitPrg, int* pi_nbIter, int* pi_numGradient) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Gère les événements liés aux fractales Mandelbrot et Julia, on association avec la fonction switchKeyDown * * \param surf_screen : Un pointeur vers l'écran * \param ev_event : Un événement SDL * \param ppoint_pInit : Un pointeur vers le point inital de dessin de la fractale Mandelbrot ou Julia * \param pd_zoom : Un pointeur vers un réel correspondant au zoom * \param d_pitch : Un réel permettant au déplacement de la fractale * \param pi_quitPrg : Un pointeur vers un entier permettant de quitter le programme * \param pi_nbIter : Un pointeur vers un entier représentant le nombre d'itérations * \param pi_numGradient : Un pointeur vers un entier représentant le numéro de dégradé * */ int switchKeyDown2(SDL_Surface *surf_screen, SDL_Event ev_event, Point* ppoint_pInit, double* pd_zoom, double d_pitch, int* pi_quitPrg, int* pi_nbIter, int* pi_numGradient); /*!\fn int switchKeyDownLSystem(Lsystem* lsyst_lSystem, SDL_Event ev_event, double d_pitch, int* pi_quitPrg) * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Gère les événements liés aux fractales de type L-System, on association avec la fonction switchKeyDownLSystem2 * * \param lsyst_lSystem : Un pointeur une structure L-System * \param ev_event : Un événement SDL * \param d_pitch : Un réel permettant au déplacement de la fractale * \param pi_quitPrg : Un pointeur vers un entier permettant de quitter le programme * */ int switchKeyDownLSystem(Lsystem* lsyst_lSystem, SDL_Event ev_event, double d_pitch, int* pi_quitPrg); /*!\fn int switchKeyDownLSystem2(Lsystem* lsyst_lSystem, SDL_Event ev_event, double d_pitch, int* pi_quitPrg); * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Gère les événements liés aux fractales de type L-System, on association avec la fonction switchKeyDownLSystem * * \param lsyst_lSystem : Un pointeur une structure L-System * \param ev_event : Un événement SDL * \param d_pitch : Un réel permettant au déplacement de la fractale * \param pi_quitPrg : Un pointeur vers un entier permettant de quitter le programme * */ int switchKeyDownLSystem2(Lsystem* lsyst_lSystem, SDL_Event ev_event, double d_pitch, int* pi_quitPrg); /*!\fn int switchKeyDownIfs(Ifs* ifs_ifs, SDL_Event ev_event, double d_pitch, int* pi_quitPrg); * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Gère les événements liés aux fractales de type Ifs, en association avec la fonction switchKeyDownIfs2 * * \param ifs_ifs : Un pointeur une structure Ifs * \param ev_event : Un événement SDL * \param d_pitch : Un réel permettant au déplacement de la fractale * \param pi_quitPrg : Un pointeur vers un entier permettant de quitter le programme * */ int switchKeyDownIfs(Ifs* ifs_ifs,SDL_Event ev_event, double d_pitch, int* pi_quitPrg); /*!\fn int switchKeyDownIfs2(Ifs* ifs_ifs, SDL_Event ev_event, int* pi_quitPrg, double d_pitch) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Gère les événements liés aux fractales de type Ifs, en association avec la fonction switchKeyDownIfs * * \param ifs_ifs : Un pointeur une structure Ifs * \param ev_event : Un événement SDL * \param d_pitch : Un réel permettant au déplacement de la fractale * \param pi_quitPrg : Un pointeur vers un entier permettant de quitter le programme * */ int switchKeyDownIfs2(Ifs* ifs_ifs, SDL_Event ev_event, int* pi_quitPrg, double d_pitch); /*!\fn int switchKeyDownFlame(Flame* flame_flame, SDL_Event ev_event, double d_pitch, int* pi_quitPrg); * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Gère les événements liés aux fractales de type Flame, en association avec la fonction switchKeyDownFlame2 * * \param flame_flame : Un pointeur une structure Flame * \param ev_event : Un événement SDL * \param d_pitch : Un réel permettant au déplacement de la fractale * \param pi_quitPrg : Un pointeur vers un entier permettant de quitter le programme * */ int switchKeyDownFlame(Flame *flame_flame, SDL_Event ev_event, double d_pitch, int* pi_quitPrg); /*!\fn int switchKeyDownFlame2(Flame* flame_flame, SDL_Event ev_event, int* pi_quitPrg, double d_pitch); * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Gère les événements liés aux fractales de type Flame, en association avec la fonction switchKeyDownFlame * * \param flame_flame : Un pointeur une structure Flame * \param ev_event : Un événement SDL * \param d_pitch : Un réel permettant au déplacement de la fractale * \param pi_quitPrg : Un pointeur vers un entier permettant de quitter le programme * */ int switchKeyDownFlame2(Flame* flame_flame, SDL_Event ev_event, int* pi_quitPrg, double d_pitch); /*!\fn int switchKeyDownIfsFlame(SDL_Surface* surf_screen, SDL_Event ev_event, Point* ppoint_pitch, double* pd_zoom, double d_pitch, int* pi_quitPrg) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Gère les événements liés aux fractales de type Flame et Ifs * * \param surf_screen : Un pointeur vers l'écran * \param ev_event : Un événement SDL * \param ppoint_pitch : Un pointeur vers le point de déplacement * \param pd_zoom : Un pointeur vers un réel correspondant au zoom * \param d_pitch : Un réel permettant au déplacement de la fractale * \param pi_quitPrg : Un pointeur vers un entier permettant de quitter le programme * */ int switchKeyDownIfsFlame(SDL_Surface* surf_screen, SDL_Event ev_event, Point* ppoint_pitch, double* pd_zoom, double d_pitch, int* pi_quitPrg); /*!\fn void multiplyZoom(double* pd_zoom, double d_coeff) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Modifie la valeur du pointeur vers le zoom associé à la fractale * * \param pd_zoom : Un pointeur vers un réel correspondant au zoom * \param d_coeff : Un pointeur vers un réel représentant le coefficient à multiplié par le zoom * */ void multiplyZoom(double* pd_zoom, double d_coeff); /*!\fn void moveRight(Point* ppoint_pInit, double d_pitch) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Modifie le point initial de la fractale de telle sorte que l'on se déplace vers la droite * * \param ppoint_pInit : Un pointeur vers un point représentant le point initiale de dessin de la fractale * \param d_pitch : Un réel représentant le décalage * */ void moveRight(Point* ppoint_pInit, double d_pitch); /*!\fn void moveDown(Point* ppoint_pInit, double d_pitch) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Modifie le point initial de la fractale de telle sorte que l'on se déplace vers la bas * * \param ppoint_pInit : Un pointeur vers un point représentant le point initiale de dessin de la fractale * \param d_pitch : Un réel représentant le décalage * */ void moveDown(Point* ppoint_pInit, double d_pitch); /*!\fn void moveUp(Point* ppoint_pInit, double d_pitch) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Modifie le point initial de la fractale de telle sorte que l'on se déplace vers la haut * * \param ppoint_pInit : Un pointeur vers un point représentant le point initiale de dessin de la fractale * \param d_pitch : Un réel représentant le décalage * */ void moveUp(Point* ppoint_pInit, double d_pitch); /*!\fn void moveLeft(Point* ppoint_pInit, double d_pitch) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Modifie le point initial de la fractale de telle sorte que l'on se déplace vers la gauche * * \param ppoint_pInit : Un pointeur vers un point représentant le point initiale de dessin de la fractale * \param d_pitch : Un réel représentant le décalage * */ void moveLeft(Point* ppoint_pInit, double d_pitch); /*!\fn void infoWindow(char* pc_fractalName, SDL_Surface* surf_screen, double* pd_zoom, int* pi_nbIter, char* pc_status); * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Modifie le titre de la fenêtre * * \param pc_fractalName : Chaine de caractère représentant le nom de la fractale * \param surf_screen : Un pointeur vers l'écran * \param pd_zoom : Un pointeur vers le zoom * \param pi_nbIter : Un pointeur vers un entier représentant le nombre d'itération * \param pc_status : Une chaine de caractère correspondant à l'état de dessin de la fractale * */ void infoWindow(char* pc_fractalName, SDL_Surface* surf_screen, double* pd_zoom, int* pi_nbIter, char* pc_status); /*!\fn void infoWindowLsystem(Lsystem* lsyst_lSystem, char* pc_status); * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Modifie le titre de la fenêtre * * \param lsyst_lSystem : Un pointeur vers une structure lSystem * \param pc_status : Une chaine de caractère correspondant à l'état de dessin de la fractale * */ void infoWindowLsystem(Lsystem *lsyst_lSystem, char* pc_status); /*!\fn void infoWindowIfs(Ifs* ifs_ifs, int i_nbIter); * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Modifie le titre de la fenêtre * * \param ifs_ifs : Pointeur vers une structure Ifs * \param i_nbIter : Un entier représentant le nombre d'itérations * */ void infoWindowIfs(Ifs *ifs_ifs, int i_nbPointCalc); /*!\fn void infoWindowFlame(Flame* flame_flame, int i_nbIter); * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Modifie le titre de la fenêtre * * \param flame_flame : Pointeur vers une structure Flame * \param i_nbIter : Un entier représentant le nombre d'itérations * */ void infoWindowFlame(Flame *flame_flame, int i_nbIter); /*!\fn void infoWindowFlameChoice(Flame* flame_flame, int i_nbIter); * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Modifie le titre de la fenêtre * * \param flame_flame : Pointeur vers une structure Flame * \param i_nbIter : Un entier représentant le nombre d'itérations * */ void infoWindowFlameChoice(Flame *flame_flame, int i_nbIter); /*!\fn void takeScreenShot(SDL_Surface* surf_screen) * * \author SOUPLET Antoine * \version 1.0 * \date 13-01-2012 * * \brief Prends un screenshot et enregistre l'image dans le dossier /screenshots/ * * \param surf_screen : Un pointeur vers une écran * */ void takeScreenShot(SDL_Surface* surf_screen);