Commit Graph

5 Commits

Author SHA1 Message Date
Matteo Cypriani 5b1286c6ba GuiNuMo : plein de modifs (gestion topologie)
server.{hh,cc} :
* Changé le comportement des fonctions pointIndex() et pointExists() :
  pointIndex() renvoie -1 si le point n'est pas trouvé, et pointExists()
  effectue un appel à pointIndex(). Passage de toutes ces fonctions en
  inline.
* Déplacement des fonctions point_tab_idx() et point_vector_idx() dans
  la classe Server, en tant que variantes de pointIndex().
* Utilisation, pour les bibliothèques C, des en-têtes C++ (e.g <cmath>)
  plutôt que les en-têtes C (e.g <math.h>).
* Correction des fonctions areaConnection() qui utilisaient la mauvaise
  liste de points.
* Diverses corrections mineures.
* Modification de la fonction makeWaypointListFromFile() afin de prendre
  en compte la topologie dans le calcul des distances.
* Ajout de la fonction inTheSameArea(), qui permet de savoir si deux
  points appartiennent à la même zone.
* Ajout de la fonction checkTopology() qui effectues quelques
  vérifications sur la topologie du bâtiment déclarée dans les fichiers
  de configuration.

area.cc :
* Modification du constructeur de manière à ce qu'il accepte tous les
  formats possibles de définitions des zones (4 ordres possibles pour
  les coordonnées).

point.{hh,cc} :
* Modification de l'operator< pour que la comparaison ne soit pas
  ambigüe (posait problème dans les set).
* Modification des autres opérateurs, ajout des opérateurs <= et >=.

cfg/ :
* waypoints.csv : ajout des points de passage du rez-de-chaussée et des
  escaliers.
* topo.csv : ajout des zones du rez-de-chaussée et des escaliers.

Makefile :
* Suppression d'options inutiles.
* Suppression de l'option d'optimisation, qui causait une boucle infinie
  bizarre : cf. Server::makeWaypointListFromFile().

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@48 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:49:00 +01:00
Matteo Cypriani 4844c58cd0 Beaucoup d'ajouts dans GuiNuMo
point.{hh,cc} :
* Ajout d'un constructeur à partir d'un tableau de 3 float.
* Ajout de operator<(), obligatoire pour le bon fonctionnement des map
  avec un Point comme clef. Ajout de operator>(), tant qu'on y est.

server.{hh,cc} :
* Ajout de point_tab_idx(), qui renvoie l'indice d'un Point au sein d'un
  tableau.
* Ajout de makeTopologyFromFile(), qui lit le fichier contenant la
  description des pièces.
* Ajout de makeWaypointDistancesFromFile(), qui lit le fichier contenant
  la description des liens entre les points de référence. TODO :
  possibilité d'optimiser en construisant la matrice d'un seul coup (?).

area.{hh,cc} :
* Correction pour intégration (classe non utilisée jusqu'à présent).
* Utilisation de références constantes pour les passages de paramètres.
* Ajout de &operator<<() pour l'affichage.

Fichiers de config :
* cfg/distances.csv : complément et complément d'explication.
* cfg/topo.csv : syntaxe + ajout des coordonnées Z2.

Makefile :
* Légère amélioration au niveau de la généricité.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@40 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:45:00 +01:00
Matteo Cypriani ae11d3a2c3 GuiNuMo: beginning of Viterbi & many other things
Partout où cela était possible :
* Utilisation du passage de paramètre aux fonctions par référence
  constante plutôt que par valeur.

server.cc/hh :
* Suppression de l'ancienne ébauche de Fred viterbiLike().
* Création de la fonction fastViterbiLike() (Viterbi-like optimisé).
* Fonctions getkWeightedInSs() et getkClosestInSs() : simplification du
  traitement des points ignorés (suppression du booléen et passage du
  point à ignorer en pointeur, de manière à permettre une valeur NULL).
  Création de surcharges pour un appel sans point à ignorer.
* Lecture de trois coordonnées (X;Y;Z) au lieu de deux (X;Y) depuis le
  fichier des points de référence (fonctions
  makeReferencePointListFromFile() et
  extractReferencePointInfoFromBuffer()).
* Lecture des fichiers au format « Matteo » (une ligne par agrégation).
  Le format « Fred » (une ligne par AP par agrégation) est toujours
  supporté (via #define FRED_CSV_FORMAT).
* Ajout d'affichages supplémentaires pour le déboguage.

clientinfo.cc/hh :
* Modifications des attributs pour l'algorithme Viterbi-like.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@29 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-03-16 13:40:22 +01:00
Matteo Cypriani f5292a5dd6 Beaucoup modifs cosmétiques et ajouts dans GuiNuMo
Partout où cela était possible :
* Indentation "Emacs" du code, aération.
* Utilisation de #define pour les valeurs par défaut.
* Utilisation des valeurs par défaut dans les constructeurs.

server.cc/hh :
* Gestion d'erreur basique pour les ouvertures de fichiers.

Ajout du TODO, d'après celui fait par Fred sous format papier.

Création des répertoires :
* cfg : fichiers de configuration.
* csv : fichiers d'entrée.
* log : fichiers de sortie.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@28 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:50 +01:00
Frédéric Lassabe f273cba513 Import initial (GuiNuMo-server)
Projet d'origine, plein de bugs et pas fini.
Avant import du serveur GuiNuMo.
Plein de choses à faire.

git-svn-id: https://pif.pu-pm.univ-fcomte.fr/svn/loc@26 785a6c6c-259e-4ff1-8b91-dc31627914f0
2011-02-17 16:47:50 +01:00