73 lines
2.8 KiB
C
73 lines
2.8 KiB
C
#pragma once
|
|
|
|
#include "../Controleur/controleur.h"
|
|
|
|
|
|
/**
|
|
* @brief Désalloue un tableau de pointeurs (alloué dynamiquement également).
|
|
*
|
|
* @param tab Tableau de pointeurs à désallouer.
|
|
* @param nbElements Nombre d'éléments dans le tableau à désallouer.
|
|
* @return Procédure.
|
|
*/
|
|
void freeTabGeneric(void ***tab, uint32_t nbElements);
|
|
|
|
/**
|
|
* @brief Détruit un tableau d'objets de type 'sfCircleShape' grâce à leur adresse.
|
|
*
|
|
* @param nbElements Nombre d'éléments à détruire.
|
|
* @param tabPointeursCercle Tableau contenant les adresses des cercles à détruire.
|
|
* @return Procédure.
|
|
*/
|
|
void detruireCercles(const uint32_t nbElements, sfCircleShape *tabPointeursCercle[nbElements]);
|
|
|
|
/**
|
|
* @brief Détruit un tableau d'objets de type 'sfVertexArray' grâce à leur adresse.
|
|
*
|
|
* @param nbRoutes Nombre de Routes à détruire.
|
|
* @param tabPointeursVertex Tableau contenant les adresses des "lignes" à détruire.
|
|
* @return Procédure.
|
|
*/
|
|
void detruireVertexArray(const uint32_t nbRoutes, sfVertexArray *tabPointeursVertex[nbRoutes]);
|
|
|
|
/**
|
|
* @brief Une simple fonction qui sera appelée lors de la fin du programme grâce à 'atexit()'.
|
|
*
|
|
* @return Procédure.
|
|
*/
|
|
void cleaningFunction(void);
|
|
|
|
/**
|
|
* @brief Libère la mémoire des éléments affichés sur une carte, et la carte elle-même
|
|
*
|
|
* @param carte Un pointeur sur une carte dont la mémoire est à supprimer !
|
|
* @param nbPointsAffiches Nombre de points affichés sur la carte.
|
|
* @param tabPointeursCercle Tableau de pointeurs sur les cercles affichés.
|
|
* @param nbAgglosAffiches Nombre d'agglomérats affichés.
|
|
* @param tabPointeursCercleAgglos Tableau de pointeurs sur les cercles des agglomérats affichés.
|
|
* @param nbRoutes Nombre de routes affichées !
|
|
* @param tabPointeursVertex Tableau de pointeurs sur les tableaux de vertex affichés.
|
|
* @return Procédure.
|
|
*/
|
|
void libererMemoireElementsAffiches(Carte *const carte, uint32_t nbPointsAffiches, sfCircleShape *tabPointeursCercle[nbPointsAffiches], uint32_t nbAgglosAffiches, sfCircleShape *tabPointeursCercleAgglos[nbAgglosAffiches], uint32_t nbRoutes, sfVertexArray *tabPointeursVertex[nbRoutes]);
|
|
|
|
/**
|
|
* @brief Libère la mémoire des éléments affichés sur une carte, et la carte elle-même
|
|
*
|
|
* /!\ Attention: Surcharge partielle de la fonction ci-dessus.
|
|
*
|
|
* @param carte Un pointeur sur une carte dont la mémoire est à supprimer !
|
|
* @param nbAgglossAffiches Nombre de points affichés sur la carte.
|
|
* @param tabPointeursCercleAgglos Tableau de pointeurs sur les cercles des agglomérats affichés.
|
|
* @return Procédure.
|
|
*/
|
|
void libererMemoireElementsAffichesAgglos(Carte *const carte, const uint32_t nbAgglosAffiches, sfCircleShape *tabPointeursCercleAgglos[nbAgglosAffiches]);
|
|
|
|
/**
|
|
* @brief Libère un sprite et le met à NULL.
|
|
*
|
|
* @param Pointeur sur le sprite à libérer.
|
|
* @return Procédure
|
|
*/
|
|
void freeSprite(sfSprite **sprite);
|