This repository has been archived on 2023-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
GINPA/Modele/others.h

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);