184 lines
15 KiB
C
184 lines
15 KiB
C
#pragma once
|
|
|
|
#include "../Headers/structures.h"
|
|
|
|
#include "../Modele/verification.h"
|
|
|
|
#include "tinyFileDialogsCalls.h"
|
|
|
|
|
|
/**
|
|
* @brief Appelle une fonction d'affichage de logs en fonction du mode.
|
|
*
|
|
* @param window Fenêtre dans laquelle on affiche le sprite.
|
|
* @param renderTexture Pointeur sur la renderTexture à mettre dans le sprite.
|
|
* @param tabPoint Tableau des points à afficher avec le champ posConv correctement rempli.
|
|
* @param nbElements Nombre d'éléments de tabPoint.
|
|
* @param nbPointsAffiches Pointeur sur la variable qui stockera le nombre de points effectivement affichés.
|
|
* @param nbPointAgglosMin Nombre de points formant l'agglomérat le plus petit.
|
|
* @param tabPointeursCercle Tableau de pointeurs sur objets de type 'sfCircleShape', pour conserver leur adresse une fois affichés.
|
|
* @param agglos Tableau contenant les agglomérats.
|
|
* @param nbAgglos Le nombre d'agglomérats présents sur les logs.
|
|
* @param route tableau de structure Routes pour pouvoir les relier.
|
|
* @param nbRoutes Nombre de routes dans le tableau ci dessus.
|
|
* @param tabPointeursArray Tableau de pointeurs sur objet de type 'sfVertexArray', pour stocker les cercles des routes qu'on affiche en mémoire.
|
|
* @param tabPointeursCercleAgglos Tableau de pointeurs sur objets de type 'sfCircleShape', pour stocker les cercles des agglomérats en mémoire.
|
|
* @param nbAgglosAffiches Le nombre d'agglomérats effectivement affichés sur la carte.
|
|
* @param allPoint Booléen pour savoir si on affiche les points de type agglo ou non.
|
|
* @param allRoads Booléen pour savoir si on affiche et dessine les routes ou non.
|
|
* @param carte Carte que l'on affiche pour récuperer l'échelle
|
|
* @param mode Mode dans lequel on effectue l'affichage !
|
|
* @param menu Notre menu chéri !
|
|
* @return NULL s'il y a eu une erreur, un tableau contenant les adresses des points affichés sinon.
|
|
*/
|
|
Point** affichageLogs(sfRenderWindow *const window, sfRenderTexture *renderTexture, Point *tabPoint, uint32_t nbElements, uint32_t *nbPointsAffiches, uint32_t nbPointAgglosMin, sfCircleShape *tabPointeursCercle[nbElements], Agglomerat *agglos, uint32_t nbAgglos, Route *route, uint32_t nbRoutes, sfVertexArray *tabPointeursArray[nbRoutes], sfCircleShape *tabPointeursCercleAgglos[nbAgglos], uint32_t *const nbAgglosAffiches, bool allPoint, bool allRoads, const Carte *const carte, const Mode mode, Menu *const menu);
|
|
|
|
/**
|
|
* @brief Gère l'affichage d'un fichier de Logs en mode global(notamment les appels aux fonctions concernées, dans le but de décharger le Contrôleur)
|
|
*
|
|
* @param window Fenêtre dans laquelle on affiche le sprite.
|
|
* @param renderTexture Pointeur sur la renderTexture à mettre dans le sprite.
|
|
* @param tabPoint Tableau des points à afficher avec le champ posConv correctement rempli.
|
|
* @param nbElements Nombre d'éléments de tabPoint.
|
|
* @param nbPointsAffiches Pointeur sur la variable qui stockera le nombre de points effectivement affichés.
|
|
* @param nbPointAgglosMin Nombre de points formant l'agglomérat le plus petit.
|
|
* @param tabPointeursCercle Tableau de pointeurs sur objets de type 'sfCircleShape', pour conserver leur adresse une fois affichés.
|
|
* @param agglos Tableau contenant les agglomérats.
|
|
* @param nbAgglos Le nombre d'agglomérats présents sur les logs.
|
|
* @param route tableau de structure Routes pour pouvoir les relier.
|
|
* @param nbRoutes Nombre de routes dans le tableau ci dessus.
|
|
* @param tabPointeursArray Tableau de pointeurs sur objet de type 'sfVertexArray', pour stocker les cercles des routes qu'on affiche en mémoire.
|
|
* @param tabPointeursCercleAgglos Tableau de pointeurs sur objets de type 'sfCircleShape', pour stocker les cercles des agglomérats en mémoire.
|
|
* @param allPoint Booléen pour savoir si on affiche les points de type agglo ou non.
|
|
* @param allRoads Booléen pour savoir si on affiche et dessine les routes ou non.
|
|
* @param carte Carte que l'on affiche pour récuperer l'échelle
|
|
* @return NULL s'il y a eu une erreur, un tableau contenant les adresses des points affichés sinon.
|
|
*/
|
|
Point** affichageLogsGlobal(sfRenderWindow *const window, sfRenderTexture *renderTexture, Point *tabPoint, uint32_t nbElements, uint32_t *nbPointsAffiches, uint32_t nbPointAgglosMin, sfCircleShape *tabPointeursCercle[nbElements], Agglomerat *agglos, uint32_t nbAgglos, Route *route, uint32_t nbRoutes, sfVertexArray *tabPointeursArray[nbRoutes], sfCircleShape *tabPointeursCercleAgglos[nbAgglos], bool allPoint, bool allRoads, const Carte *const carte);
|
|
|
|
/**
|
|
* @brief Gère l'affichage d'un fichier de Logs en mode preview(notamment les appels aux fonctions concernées, dans le but de décharger le Contrôleur)
|
|
*
|
|
* @param window Fenêtre dans laquelle on affiche le sprite.
|
|
* @param renderTexture Pointeur sur la renderTexture à mettre dans le sprite.
|
|
* @param tabPoint Tableau des points à afficher avec le champ posConv correctement rempli.
|
|
* @param nbElements Nombre d'éléments de tabPoint.
|
|
* @param nbPointsAffiches Pointeur sur la variable qui stockera le nombre de points effectivement affichés.
|
|
* @param nbPointAgglosMin Nombre de points formant l'agglomérat le plus petit.
|
|
* @param tabPointeursCercle Tableau de pointeurs sur objets de type 'sfCircleShape', pour conserver leur adresse une fois affichés.
|
|
* @param agglos Tableau contenant les agglomérats.
|
|
* @param nbAgglos Le nombre d'agglomérats présents sur les logs.
|
|
* @param route tableau de structure Routes pour pouvoir les relier.
|
|
* @param nbRoutes Nombre de routes dans le tableau ci dessus.
|
|
* @param tabPointeursArray Tableau de pointeurs sur objet de type 'sfVertexArray', pour stocker les cercles des routes qu'on affiche en mémoire.
|
|
* @param tabPointeursCercleAgglos Tableau de pointeurs sur objets de type 'sfCircleShape', pour stocker les cercles des agglomérats en mémoire.
|
|
* @param allPoint Booléen pour savoir si on affiche les points de type agglo ou non.
|
|
* @param allRoads Booléen pour savoir si on affiche et dessine les routes ou non.
|
|
* @param carte Carte que l'on affiche pour récuperer l'échelle
|
|
* @return NULL s'il y a eu une erreur, un tableau contenant les adresses des points affichés sinon.
|
|
*/
|
|
Point** affichageLogsPreview(sfRenderWindow *const window, sfRenderTexture *renderTexture, Point *tabPoint, uint32_t nbElements, uint32_t *nbPointsAffiches, uint32_t nbPointAgglosMin, sfCircleShape *tabPointeursCercle[nbElements], Agglomerat *agglos, uint32_t nbAgglos, Route *route, uint32_t nbRoutes, sfVertexArray *tabPointeursArray[nbRoutes], sfCircleShape *tabPointeursCercleAgglos[nbAgglos], bool allPoint, bool allRoads, const Carte *const carte);
|
|
|
|
/**
|
|
* @brief Gère l'affichage d'un fichier de Logs en mode preview(notamment les appels aux fonctions concernées, dans le but de décharger le Contrôleur)
|
|
*
|
|
* @param window Fenêtre dans laquelle on affiche le sprite.
|
|
* @param renderTexture Pointeur sur la renderTexture à mettre dans le sprite.
|
|
* @param tabPoint Tableau des points à afficher avec le champ posConv correctement rempli.
|
|
* @param nbElements Nombre d'éléments de tabPoint.
|
|
* @param nbPointsAffiches Pointeur sur la variable qui stockera le nombre de points effectivement affichés.
|
|
* @param nbPointAgglosMin Nombre de points formant l'agglomérat le plus petit.
|
|
* @param tabPointeursCercle Tableau de pointeurs sur objets de type 'sfCircleShape', pour conserver leur adresse une fois affichés.
|
|
* @param agglos Tableau contenant les agglomérats.
|
|
* @param nbAgglos Le nombre d'agglomérats présents sur les logs.
|
|
* @param route tableau de structure Routes pour pouvoir les relier.
|
|
* @param nbRoutes Nombre de routes dans le tableau ci dessus.
|
|
* @param tabPointeursArray Tableau de pointeurs sur objet de type 'sfVertexArray', pour stocker les cercles des routes qu'on affiche en mémoire.
|
|
* @param tabPointeursCercleAgglos Tableau de pointeurs sur objets de type 'sfCircleShape', pour stocker les cercles des agglomérats en mémoire.
|
|
* @param allPoint Booléen pour savoir si on affiche les points de type agglo ou non.
|
|
* @param allRoads Booléen pour savoir si on affiche et dessine les routes ou non.
|
|
* @param carte Carte que l'on affiche pour récuperer l'échelle
|
|
* @return NULL s'il y a eu une erreur, un tableau contenant les adresses des points affichés sinon.
|
|
*/
|
|
Point** affichageLogsPreviewSugg(sfRenderWindow *const window, sfRenderTexture *renderTexture, Point *tabPoint, uint32_t nbElements, uint32_t *nbPointsAffiches, uint32_t nbPointAgglosMin, sfCircleShape *tabPointeursCercle[nbElements], Agglomerat *agglos, uint32_t nbAgglos, Route *route, uint32_t nbRoutes, sfVertexArray *tabPointeursArray[nbRoutes], sfCircleShape *tabPointeursCercleAgglos[nbAgglos], bool allPoint, bool allRoads, const Carte *const carte);
|
|
|
|
/**
|
|
* @brief Gère l'affichage d'un fichier de Logs en mode PBP_AUTOMATIC(notamment les appels aux fonctions concernées, dans le but de décharger le Contrôleur)
|
|
*
|
|
* @param window Fenêtre dans laquelle on affiche le sprite.
|
|
* @param renderTexture Pointeur sur la renderTexture à mettre dans le sprite.
|
|
* @param tabPoint Tableau des points à afficher avec le champ posConv correctement rempli.
|
|
* @param nbElements Nombre d'éléments de tabPoint.
|
|
* @param nbPointsAffiches Pointeur sur la variable qui stockera le nombre de points effectivement affichés.
|
|
* @param nbPointAgglosMin Nombre de points formant l'agglomérat le plus petit.
|
|
* @param tabPointeursCercle Tableau de pointeurs sur objets de type 'sfCircleShape', pour conserver leur adresse une fois affichés.
|
|
* @param agglos Tableau contenant les agglomérats.
|
|
* @param nbAgglos Le nombre d'agglomérats présents sur les logs.
|
|
* @param tabPointeursCercleAgglos Tableau de pointeurs sur objets de type 'sfCircleShape', pour stocker les cercles des agglomérats en mémoire.
|
|
* @param nbAgglosAffiches Le nombre d'agglomérats effectivement affichés sur la carte.
|
|
* @param carte Carte que l'on affiche pour récuperer l'échelle
|
|
* @param menu Notre menu chéri !
|
|
* @return NULL s'il y a eu une erreur, un tableau contenant les adresses des points affichés sinon.
|
|
*/
|
|
Point** affichageLogsPBPAuto(sfRenderWindow *const window, sfRenderTexture *renderTexture, Point *tabPoint, uint32_t nbElements, uint32_t *nbPointsAffiches, uint32_t nbPointAgglosMin, sfCircleShape *tabPointeursCercle[nbElements], Agglomerat *agglos, uint32_t nbAgglos, sfCircleShape *tabPointeursCercleAgglos[nbAgglos], uint32_t *const nbAgglosAffiches, const Carte *const carte, Menu *const menu);
|
|
|
|
/**
|
|
* @brief Gère l'affichage d'un fichier de Logs en mode PBP_AUTOMATIC(notamment les appels aux fonctions concernées, dans le but de décharger le Contrôleur)
|
|
*
|
|
* @param window Fenêtre dans laquelle on affiche le sprite.
|
|
* @param renderTexture Pointeur sur la renderTexture à mettre dans le sprite.
|
|
* @param tabPoint Tableau des points à afficher avec le champ posConv correctement rempli.
|
|
* @param nbElements Nombre d'éléments de tabPoint.
|
|
* @param nbPointsAffiches Pointeur sur la variable qui stockera le nombre de points effectivement affichés.
|
|
* @param nbPointAgglosMin Nombre de points formant l'agglomérat le plus petit.
|
|
* @param tabPointeursCercle Tableau de pointeurs sur objets de type 'sfCircleShape', pour conserver leur adresse une fois affichés.
|
|
* @param agglos Tableau contenant les agglomérats.
|
|
* @param nbAgglos Le nombre d'agglomérats présents sur les logs.
|
|
* @param tabPointeursCercleAgglos Tableau de pointeurs sur objets de type 'sfCircleShape', pour stocker les cercles des agglomérats en mémoire.
|
|
* @param nbAgglosAffiches Le nombre d'agglomérats effectivement affichés sur la carte.
|
|
* @param carte Carte que l'on affiche pour récuperer l'échelle
|
|
* @param menu Notre menu chéri !
|
|
* @return NULL s'il y a eu une erreur, un tableau contenant les adresses des points affichés sinon.
|
|
*/
|
|
Point** affichageLogsPBPManual(sfRenderWindow *const window, sfRenderTexture *renderTexture, Point *tabPoint, uint32_t nbElements, uint32_t *nbPointsAffiches, uint32_t nbPointAgglosMin, sfCircleShape *tabPointeursCercle[nbElements], Agglomerat *agglos, uint32_t nbAgglos, sfCircleShape *tabPointeursCercleAgglos[nbAgglos], uint32_t *const nbAgglosAffiches, const Carte *const carte, const Menu *const menu);
|
|
|
|
/**
|
|
* @brief Gère l'affichage de la date suivi de la sélection d'un point affiché (si clique).
|
|
*
|
|
* @param event Pointeur sur la variable d'évènements de la fonction appelante.
|
|
* @param renderTexture Pointeur sur pointeur de la texture de rendue de la fenêtre.
|
|
* @param renderSprite Pointeur sur pointeur du sprite affiché à l'écran.
|
|
* @param nbPointsAffiches Nombre de points effectivement affichés à l'écran.
|
|
* @param ptsAffiches Tableau de pointeur sur les poitns affichés
|
|
* @param tabPointeursCercles Tableau de pointeurs sur objets de type 'sfCircleShape', qui conserve les adresses des points affichés.
|
|
* @param tabDatesConverties Tableau des tring qui contient les dates de chaque point.
|
|
* @param font Pointeur sur la fonte à utiliser pour afficher les dates.
|
|
* @return Le numéro du point sur lequel le curseur se trouve.nbPointsAffiches s'il ne se trouve sur aucun point.
|
|
*/
|
|
uint32_t afficherDateSelectionnerPoint(sfEvent *event, sfRenderTexture *const renderTexture, sfSprite **renderSprite, const uint32_t nbPointsAffiches,Point ** ptsAffiches, sfCircleShape *tabPointeursCercles[nbPointsAffiches], Point * tabPoint, char **tabDatesConverties, const sfFont *font);
|
|
|
|
/**
|
|
* @brief Gère la sélection d'un agglomérat au clique (en remplissant un tableau au bon endroit).
|
|
*
|
|
* @param event Pointeur sur la variable d'évènements de la fonction appelante.
|
|
* @param nbAgglos Nombre d'agglomérats présents sur la carte.
|
|
* @param tabPointeursCercleAgglos Tableau de pointeurs sur objets de type 'sfCircleShape', qui conserve les adresses des agglomérats affichés.
|
|
* @param agglos Tableau contenant les agglomérats.
|
|
* @return Procédure.
|
|
*/
|
|
uint32_t selectionnerAgglomerats(sfEvent *event, const uint32_t nbAgglos, sfCircleShape *tabPointeursCerclesAgglos[nbAgglos],Agglomerat *agglos);
|
|
|
|
/**
|
|
* @brief Gère l'affichage des adresse d'agglomérats en mode multi-fichiers.
|
|
*
|
|
* @param event Pointeur sur la variable d'évènements de la fonction appelante.
|
|
* @param renderTexture Pointeur sur pointeur de la texture de rendue de la fenêtre.
|
|
* @param renderSprite Pointeur sur pointeur du sprite affiché à l'écran.
|
|
* @param tailleGlobalMultiFile Nombre d'agglos total.
|
|
* @param globalMultiFile Tableau des agglomérats !
|
|
* @param tabPointeursCerclesAgglos Tableau de pointeurs sur objets de type 'sfCircleShape', qui conserve les adresses des points affichés.
|
|
* @param font Pointeur sur la fonte à utiliser pour afficher les dates.
|
|
* @return Booléen qui indique si oui ou non une adresse a été affichée.
|
|
*/
|
|
bool afficherAdresseAgglomerats(const sfEvent *const event, sfRenderTexture *const renderTexture, sfSprite **renderSprite, const uint32_t tailleGlobalMultiFile, const AgglomeratGlobal globalMultiFile[tailleGlobalMultiFile], sfCircleShape **tabPointeursCerclesAgglos, const sfFont *const font);
|