owlps/owlps-positioning/src/result.hh

74 lines
1.4 KiB
C++

#ifndef _OWLPS_POSITIONING_RESULT_HH_
#define _OWLPS_POSITIONING_RESULT_HH_
#include "point3d.hh"
#include <string>
/// Represents a result computed by a positioning algorithm
class Result
{
protected:
Point3D position ;
std::string algorithm ;
public:
Result(const std::string &_algorithm = "UnknownAlgorithm"):
algorithm(_algorithm) {}
Result(const Point3D &_position, const std::string &_algorithm):
position(_position), algorithm(_algorithm) {}
~Result(void) {}
/** @name Read accessors */
//@{
const std::string& get_algorithm(void) const ;
const Point3D& get_position(void) const ;
//@}
/** @name Operators */
//@{
const Result& operator=(const Result &source) ;
bool operator==(const Result &source) const ;
bool operator!=(const Result &source) const ;
//@}
/** @name Conversion accessors */
//@{
/// Convert to a CSV string
const std::string to_csv(void) const ;
//@}
/// Displays a Result
friend std::ostream& operator<<(std::ostream &os, const Result &r) ;
} ;
/* *** Read accessors *** */
inline const std::string& Result::get_algorithm() const
{
return algorithm ;
}
inline const Point3D& Result::get_position() const
{
return position ;
}
/* *** Operators *** */
inline bool Result::operator!=(const Result &source) const
{
return !(*this == source) ;
}
#endif // _OWLPS_POSITIONING_RESULT_HH_