1
0
mirror of https://github.com/tumic0/GPXSee.git synced 2024-10-07 07:13:21 +02:00
GPXSee/src/waypoint.h

56 lines
1.4 KiB
C
Raw Normal View History

#ifndef WAYPOINT_H
#define WAYPOINT_H
#include <QString>
#include <QDateTime>
#include <QHash>
#include <QDebug>
#include <cmath>
#include "coordinates.h"
2016-02-19 21:42:54 +01:00
class Waypoint
{
public:
Waypoint() {_elevation = NAN;}
Waypoint(const Coordinates &coordinates) : _coordinates(coordinates)
{_elevation = NAN;}
const Coordinates &coordinates() const {return _coordinates;}
2016-07-25 19:32:36 +02:00
const QString &name() const {return _name;}
const QString &description() const {return _description;}
const QDateTime &timestamp() const {return _timestamp;}
qreal elevation() const {return _elevation;}
void setCoordinates(const Coordinates &coordinates)
{_coordinates = coordinates;}
void setName(const QString &name) {_name = name;}
void setDescription(const QString &description)
{_description = description;}
void setTimestamp(const QDateTime &timestamp) {_timestamp = timestamp;}
void setElevation(qreal elevation) {_elevation = elevation;}
2016-08-09 01:16:19 +02:00
bool hasElevation() const {return !std::isnan(_elevation);}
2016-02-19 21:42:54 +01:00
bool operator==(const Waypoint &other) const
2016-07-25 19:32:36 +02:00
{return this->_name == other._name
&& this->_coordinates == other._coordinates;}
private:
Coordinates _coordinates;
2016-07-25 19:32:36 +02:00
QString _name;
QString _description;
QDateTime _timestamp;
qreal _elevation;
};
2016-02-19 21:42:54 +01:00
inline uint qHash(const Waypoint &key)
{
2016-07-25 19:32:36 +02:00
return ::qHash(key.name());
}
QDebug operator<<(QDebug dbg, const Waypoint &Waypoint);
2016-10-28 00:48:49 +02:00
Q_DECLARE_TYPEINFO(Waypoint, Q_MOVABLE_TYPE);
#endif // WAYPOINT_H