#ifndef _POSITIONING_HH_ #define _POSITIONING_HH_ #include "point.hh" #include "referencepoint.hh" #include "accesspoint.hh" #include "area.hh" #include "measurement.hh" #include "libowlps-positioning.hh" class Positioning { private: vector reference_point_list; // Liste des points de référence (calibration). float** reference_point_matrix; // Matrice des distances entre les points de référence. vector access_point_list; // Liste des AP connus. vector waypoint_list; // Liste des points de passage entre les zones. float** waypoint_matrix; // Matrice des distances entre les points de passage. map area_list ; // Liste des zones homogènes (pièces). public : Positioning() {}; ~Positioning() {}; void makeReferencePointListFromFile(const string &filename, const bool); void makeApListFromFile(const string &filename); void makeTopologyFromFile(const string &filename); void makeWaypointListFromFile(const string &filename); void makeReferencePointListFromDb(PGconn*, const bool); void makeApListFromDb(PGconn*); void makeTopologyFromDb(PGconn*); void makeWaypointListFromDb(PGconn*); void makeWaypointMatrix(set); map inWhichAreas(const Point &p); bool inTheSameArea(const Point &p1, const Point &p2); float distanceTopology(const Point &p1, const Point &p2); vector areaConnection(const Area &z1, const Area &z2); vector areaConnection(const Area &z); void makeReferencePointDistances(); bool checkTopology(); bool pointExists(const float &x, const float &y, const float &z)const; bool pointExists(const Point &p)const; bool pointExists(const vector &point_list, const float &x, const float &y, const float &z) const ; bool pointExists(const vector &point_list, const Point &p) const ; int pointIndex(const float &x, const float &y, const float &z) const; int pointIndex(const Point &p) const; int pointIndex(const vector &point_list, const float &x, const float &y, const float &z) const ; int pointIndex(const vector &point_list, const Point &p) const ; int pointIndex(const Point *tab, unsigned int &size, const Point &p) const ; int pointIndex(const vector &point_list, const Point &p) const ; vector getAccessPointList() const { return access_point_list; }; vector getReferencePointList() const { return reference_point_list; }; void printReferencePointList(); void printPointList(vector &point_list); void printAccessPointList() const; void printAreatList(); }; #endif // _POSITIONING_HH_