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