1 /*
2     SPDX-FileCopyrightText: 2010 Henry de Valence <hdevalence@gmail.com>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #ifndef EQUIRECTANGULARPROJECTOR_H
8 #define EQUIRECTANGULARPROJECTOR_H
9 
10 #include "projector.h"
11 
12 /**
13  * @class EquirectangularProjector
14  *
15  * Implememntation of <a href="https://en.wikipedia.org/wiki/Equirectangular_projection">Equirectangular projection</a>
16  *
17  */
18 class EquirectangularProjector : public Projector
19 {
20     public:
21         explicit EquirectangularProjector(const ViewParams &p);
22         Projection type() const override;
23         double radius() const override;
24         bool unusablePoint(const QPointF &p) const override;
25         Eigen::Vector2f toScreenVec(const SkyPoint *o, bool oRefract = true, bool *onVisibleHemisphere = nullptr) const override;
26         SkyPoint fromScreen(const QPointF &p, dms *LST, const dms *lat, bool onlyAltAz = false) const override;
27         QVector<Eigen::Vector2f> groundPoly(SkyPoint *labelpoint = nullptr, bool *drawLabel = nullptr) const override;
28         void updateClipPoly() override;
29 };
30 
31 #endif // EQUIRECTANGULARPROJECTOR_H
32