File indexing completed on 2024-04-14 03:43:01

0001 /*
0002     SPDX-FileCopyrightText: 2010 Henry de Valence <hdevalence@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef EQUIRECTANGULARPROJECTOR_H
0008 #define EQUIRECTANGULARPROJECTOR_H
0009 
0010 #include "projector.h"
0011 
0012 /**
0013  * @class EquirectangularProjector
0014  *
0015  * Implememntation of <a href="https://en.wikipedia.org/wiki/Equirectangular_projection">Equirectangular projection</a>
0016  *
0017  */
0018 class EquirectangularProjector : public Projector
0019 {
0020     public:
0021         explicit EquirectangularProjector(const ViewParams &p);
0022         Projection type() const override;
0023         double radius() const override;
0024         bool unusablePoint(const QPointF &p) const override;
0025         Eigen::Vector2f toScreenVec(const SkyPoint *o, bool oRefract = true, bool *onVisibleHemisphere = nullptr) const override;
0026         SkyPoint fromScreen(const QPointF &p, dms *LST, const dms *lat, bool onlyAltAz = false) const override;
0027         QVector<Eigen::Vector2f> groundPoly(SkyPoint *labelpoint = nullptr, bool *drawLabel = nullptr) const override;
0028         void updateClipPoly() override;
0029 };
0030 
0031 #endif // EQUIRECTANGULARPROJECTOR_H