swift
earthangle.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2013 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_MISC_GEO_EARTHANGLE_H
7 #define SWIFT_MISC_GEO_EARTHANGLE_H
8 
9 #include "misc/pq/angle.h"
10 
11 namespace swift::misc::geo
12 {
13  class CLatitude;
14  class CLongitude;
15 
19  template <class LATorLON>
21  {
22  public:
24  CEarthAngle &operator+=(const CEarthAngle &latOrLon);
25 
27  CEarthAngle &operator-=(const CEarthAngle &latOrLon);
28 
30  CEarthAngle &operator*=(double multiply);
31 
33  LATorLON operator+(const CEarthAngle &latOrLon) const;
34 
36  LATorLON operator-(const CEarthAngle &latOrLon) const;
37 
39  LATorLON operator*(double multiply) const;
40 
42  CIcons::IconIndex toIcon() const;
43 
49  static LATorLON fromWgs84(const QString &wgsCoordinate);
50 
51  protected:
53  CEarthAngle();
54 
57 
60 
62  QString toWgs84(const QChar pos, const QChar neg, int fractionalDigits = 3) const;
63 
64  public:
66  QString convertToQString(bool i18n = false) const;
67 
68  private:
70  LATorLON const *derived() const;
71 
73  LATorLON *derived();
74  };
75 
80 } // namespace swift::misc::geo
81 
82 #endif // SWIFT_MISC_GEO_EARTHANGLE_H
IconIndex
Index for each icon, allows to send them via DBus, efficiently store them, etc.
Definition: icons.h:32
Base class for latitude / longitude.
Definition: earthangle.h:21
CIcons::IconIndex toIcon() const
As icon, not implemented by all classes.
Definition: earthangle.cpp:156
QString toWgs84(const QChar pos, const QChar neg, int fractionalDigits=3) const
To WGS84 string.
Definition: earthangle.cpp:162
CEarthAngle & operator*=(double multiply)
Multiply operator *=.
Definition: earthangle.cpp:33
CEarthAngle & operator+=(const CEarthAngle &latOrLon)
Plus operator +=.
Definition: earthangle.cpp:19
static LATorLON fromWgs84(const QString &wgsCoordinate)
Latitude / Longitude from a WGS string such as.
Definition: earthangle.cpp:64
LATorLON operator+(const CEarthAngle &latOrLon) const
Plus operator +.
Definition: earthangle.cpp:40
CEarthAngle()
Default constructor.
Definition: earthangle.cpp:123
QString convertToQString(bool i18n=false) const
Cast as QString.
Definition: earthangle.cpp:138
LATorLON operator*(double multiply) const
Multiply operator *.
Definition: earthangle.cpp:56
CEarthAngle & operator-=(const CEarthAngle &latOrLon)
Minus operator-=.
Definition: earthangle.cpp:26
Physical unit angle (radians, degrees)
Definition: angle.h:23
Specialized class for angles (degrees, radian).
Definition: units.h:233
#define SWIFT_MISC_EXPORT_DECLARE_TEMPLATE
Export explicit template declaration.