owlps/owlps-positioning/point.cc

44 lines
541 B
C++
Raw Normal View History

#include "point.hh"
Point Point::operator=(const Point &p)
{
if (this == &p)
return *this;
x = p.x;
y = p.y;
z = p.z;
return *this;
}
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
2008-07-03 15:04:30 +02:00
bool Point::operator<(const Point &p) const
{
if (x < p.x)
return true ;
if (x > p.x)
return false ;
if (y < p.y)
return true ;
if (y > p.y)
return false ;
if (z < p.z)
return true ;
return false ;
}
ostream &operator<<(ostream &os, const Point &p)
{
os << "(" << p.x << ";" << p.y << ";" << p.z << ")";
return os;
}