49ba71bbfd
Gère les libérations de mémoire (quasiment toutes !) Termine (presque complètement) la feature des agglos en mode multi-files
84 lines
2.3 KiB
C
84 lines
2.3 KiB
C
#pragma once
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <errno.h>
|
|
|
|
#include "agglo.h"
|
|
#include "route.h"
|
|
|
|
#include "../Headers/structures.h"
|
|
|
|
|
|
/**
|
|
* @brief Affiche la structure Point donnée en paramètre.
|
|
*
|
|
* @param p Structure lue.
|
|
* @return Procédure.
|
|
*/
|
|
void printPoint(const Point);
|
|
|
|
|
|
/**
|
|
* @brief Affiche le tableau de structures Point donné en paramètre.
|
|
*
|
|
* @param p Tableau lu.
|
|
* @return Procédure.
|
|
*/
|
|
void printTabPoint(const Point*, const uint32_t);
|
|
|
|
|
|
/**
|
|
* @brief Affiche tous les points de l'agglomérat et les informations relatives à ce
|
|
* dernier.
|
|
*
|
|
* @param a L'agglomérat lu
|
|
* @return Procédure
|
|
*/
|
|
void printAgglo(Agglomerat const* const);
|
|
|
|
/**
|
|
* @brief Fonction qui renvoie le nombre minimal de points dans une agglo.
|
|
*
|
|
* @param agglos Tableau d'agglos ou on va verifier le nombre de point contenu
|
|
* @param nbAgglos Taille du tableau d'agglos
|
|
* @return nombre minimal de points dans une agglo
|
|
*/
|
|
uint32_t getMinAgglo(Agglomerat *agglos, uint32_t nbAgglos);
|
|
|
|
/**
|
|
* @brief Surcharge de la fonction ci-dessus pour les agglomérats globaux.
|
|
*
|
|
* @param agglos Tableau d'agglos ou on va verifier le nombre de point contenu
|
|
* @param nbAgglos Taille du tableau d'agglos
|
|
* @return nombre minimal de points dans une agglo
|
|
*/
|
|
uint32_t getMinAggloGlobal(AgglomeratGlobal *agglos, uint32_t nbAgglos);
|
|
|
|
/**
|
|
* @brief Renvoie la copie du tableau de pointeur sur Point passé en paramètre.
|
|
*
|
|
* @param tab Le tableau à copier.
|
|
* @param taille La taille du tableau à copier.
|
|
*
|
|
* @return NULL, s'il ya eu une erreur. Un pointeur sur la copie du tableau sinon.
|
|
*/
|
|
|
|
Point** copieTabPointeurPt(Point ** tab, uint32_t taille);
|
|
|
|
/**
|
|
* @brief Initialise toutes les structures à partir du tableau de points
|
|
*
|
|
* @param tabPoint Tableau de points
|
|
* @param tailleP Taille du tableau de points
|
|
* @param tabAgglo Tableau des agglos
|
|
* @param tailleA Taille du tableau d'agglos
|
|
* @param tabRoute Tableau des routes
|
|
* @param tailleR Taille du tableau de routes
|
|
* @param tabAggloGlobal Tableau des agglos globaux
|
|
* @param tailleAGlobal Taille du tableau d'agglos globaux
|
|
* @return Une valeur de 'ErrEnum'.
|
|
*/
|
|
ErrEnum initStructures(Point *tabPoint, uint32_t tailleP, Agglomerat **tabAgglo, uint32_t *tailleA, Route **tabRoute, uint32_t *tailleR, AgglomeratGlobal **tabAggloGlobal, uint32_t *tailleAGlobal);
|