owlps/owlps-positioner/src/trilaterationmethod.hh

40 lines
1.0 KiB
C++

/*
* This file is part of the Owl Positioning System (OwlPS).
* OwlPS is a project of the University of Franche-Comté
* (Université de Franche-Comté), France.
*/
#ifndef _OWLPS_POSITIONING_TRILATERATIONMETHOD_HH_
#define _OWLPS_POSITIONING_TRILATERATIONMETHOD_HH_
class AccessPoint ;
#include "point3d.hh"
#include <boost/tr1/unordered_map.hpp>
/// Super-class of all trilateration methods
/**
* The source data is a list of access points associated with the
* distances to the mobile. These distances are estimated using a
* TrilaterationAlgorithm.
*/
class TrilaterationMethod
{
public:
TrilaterationMethod(void) {}
virtual ~TrilaterationMethod(void) {}
/// Selects a point in 3D space
virtual Point3D trilaterate(
const std::tr1::unordered_map<AccessPoint*, float> &ap_distances) = 0 ;
/// Selects a point in 2D space, given its vertical coordinate (z)
virtual Point3D trilaterate_2d(
const std::tr1::unordered_map<AccessPoint*, float> &ap_distances,
float z) = 0 ;
} ;
#endif // _OWLPS_POSITIONING_TRILATERATIONMETHOD_HH_