File indexing completed on 2024-04-14 14:11:17
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