69 lines
2.1 KiB
C
69 lines
2.1 KiB
C
#pragma once
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <errno.h>
|
|
#include <math.h>
|
|
#include "../Headers/structures.h"
|
|
#include "calcul.h"
|
|
#define VMIN 0.7 /* La vitesse (en m.s^-1) considérée minimum d'une
|
|
personne se déplaçant à un endroit */
|
|
#define MARGE 0.8 /*Marge d'erreur par rapport à la vitesse ci-dessus. Permet
|
|
d'écarter les cas où la personne ralentit pour une raison quelconque*/
|
|
#define PERIODEMAX 120 /*Temps MAX entre les logs où l'on considère que les
|
|
données sont encore exploitables*/
|
|
#define DUREEMINI 180 /*Durée minimum d'un agglomérat*/
|
|
#define DIFTMINI 120 /*Différence de temps minimum entre deux agglomérats*/
|
|
#define DISTMINI 100 /*Distance minimum entre deux agglomérats*/
|
|
|
|
/**
|
|
* @brief Initialise un Agglomerat
|
|
*
|
|
* Initialise le champ agglo de l'agglomérat avec les adresses des Point contenus
|
|
* dans pts
|
|
*
|
|
* @param a L'agglomerat initialisé
|
|
* @param pts Tableau contenant les points qui seront stockés dans l'agglomérat
|
|
* @param taille Taille du tableau pts
|
|
*
|
|
* @return Retourne une valeur d'erreur définie dans 'strucutres.h'
|
|
*/
|
|
ErrEnum initAgglo(Agglomerat*,Point* ,uint32_t);
|
|
|
|
/**
|
|
* @brief Libère la mémoire prise par le tableau de pointeurs sur points de
|
|
* l'agglomérat
|
|
*
|
|
* @param a L'agglomérat où on libère la mémoire
|
|
*
|
|
* @return Procédure
|
|
*/
|
|
void libereAgglo(Agglomerat *const);
|
|
|
|
/**
|
|
* @brief Fusionne deux agglomérats
|
|
*
|
|
* Mets les points des deux agglomérats dans un même en gardant l'ordre
|
|
* chronologique
|
|
*
|
|
* @param a1 Premier agglomérat
|
|
* @param a2 Deuxième agglomérat
|
|
*
|
|
* @return Résultat de la fusion des deux agglomérat. La structure est remplie de 0
|
|
* en cas d'échec.
|
|
*/
|
|
Agglomerat fusionAgglo(Agglomerat const* const, Agglomerat const* const);
|
|
|
|
/**
|
|
* @brief Retourne l'écart de temps entre les deux agglomérats
|
|
*
|
|
* Il n'est pas nécessaire que les agglomérats soient donnés dans l'ordre
|
|
* chronologique
|
|
*
|
|
* @param a1 Premier agglomérat
|
|
* @param a2 Deuxième agglomérat
|
|
*
|
|
* @return L'écart de temps entre les deux agglomérats
|
|
*/
|
|
uint32_t ecartTemps(Agglomerat const* const, Agglomerat const* const);
|
|
ErrEnum repereAgglo(Point*, uint32_t, Agglomerat**, uint32_t*); |