Marble

LambertAzimuthalProjection.h
1 // SPDX-License-Identifier: LGPL-2.1-or-later
2 //
3 // SPDX-FileCopyrightText: 2013 Bernhard Beschow <[email protected]>
4 //
5 
6 
7 #ifndef MARBLE_LAMBERTAZIMUTHALPROJECTION_H
8 #define MARBLE_LAMBERTAZIMUTHALPROJECTION_H
9 
10 
11 #include "AbstractProjection.h"
12 #include "AzimuthalProjection.h"
13 
14 namespace Marble
15 {
16 
17 class LambertAzimuthalProjectionPrivate;
18 
19 /**
20  * @short A class to implement the spherical projection used by the "Globe" view.
21  */
22 
24 {
25  // Not a QObject so far because we don't need to send signals.
26  public:
27 
28  /**
29  * @brief Construct a new LambertAzimuthalProjection.
30  */
32 
33  ~LambertAzimuthalProjection() override;
34 
35  /**
36  * @brief Returns the user-visible name of the projection.
37  */
38  QString name() const override;
39 
40  /**
41  * @brief Returns a short user description of the projection
42  * that can be used in tooltips or dialogs.
43  */
44  QString description() const override;
45 
46  /**
47  * @brief Returns an icon for the projection.
48  */
49  QIcon icon() const override;
50 
51  qreal clippingRadius() const override;
52 
53  /**
54  * @brief Get the screen coordinates corresponding to geographical coordinates in the map.
55  * @param coordinates the coordinates of the requested pixel position
56  * @param params the viewport parameters
57  * @param x the x coordinate of the pixel is returned through this parameter
58  * @param y the y coordinate of the pixel is returned through this parameter
59  * @param globeHidesPoint whether the globe hides the point
60  * @return @c true if the geographical coordinates are visible on the screen
61  * @c false if the geographical coordinates are not visible on the screen
62  */
63  bool screenCoordinates( const GeoDataCoordinates &coordinates,
64  const ViewportParams *params,
65  qreal &x, qreal &y, bool &globeHidesPoint ) const override;
66 
67  bool screenCoordinates( const GeoDataCoordinates &coordinates,
68  const ViewportParams * viewport,
69  qreal *x, qreal &y, int &pointRepeatNum,
70  const QSizeF& size,
71  bool &globeHidesPoint ) const override;
72 
74 
75  /**
76  * @brief Get the earth coordinates corresponding to a pixel in the map.
77  * @param x the x coordinate of the pixel
78  * @param y the y coordinate of the pixel
79  * @param params parameters of the viewport
80  * @param lon the longitude angle is returned through this parameter
81  * @param lat the latitude angle is returned through this parameter
82  * @param unit the unit
83  * @return @c true if the pixel (x, y) is within the globe
84  * @c false if the pixel (x, y) is outside the globe, i.e. in space.
85  */
86  bool geoCoordinates( const int x, const int y,
87  const ViewportParams *params,
88  qreal& lon, qreal& lat,
89  GeoDataCoordinates::Unit unit = GeoDataCoordinates::Degree ) const override;
90 
91  protected:
92  explicit LambertAzimuthalProjection(LambertAzimuthalProjectionPrivate *dd );
93 
94  private:
95  Q_DECLARE_PRIVATE(LambertAzimuthalProjection)
96  Q_DISABLE_COPY( LambertAzimuthalProjection )
97 };
98 
99 }
100 
101 #endif
A 3d point representation.
QString description() const override
Returns a short user description of the projection that can be used in tooltips or dialogs.
A base class for the Gnomonic and Orthographic (Globe) projections in Marble.
QString name() const override
Returns the user-visible name of the projection.
LambertAzimuthalProjection()
Construct a new LambertAzimuthalProjection.
A public class that controls what is visible in the viewport of a Marble map.
bool screenCoordinates(const GeoDataCoordinates &coordinates, const ViewportParams *params, qreal &x, qreal &y, bool &globeHidesPoint) const override
Get the screen coordinates corresponding to geographical coordinates in the map.
A class to implement the spherical projection used by the "Globe" view.
QIcon icon() const override
Returns an icon for the projection.
Binds a QML item to a specific geodetic location in screen coordinates.
bool geoCoordinates(const int x, const int y, const ViewportParams *params, qreal &lon, qreal &lat, GeoDataCoordinates::Unit unit=GeoDataCoordinates::Degree) const override
Get the earth coordinates corresponding to a pixel in the map.
bool screenCoordinates(const qreal lon, const qreal lat, const ViewportParams *viewport, qreal &x, qreal &y) const
Get the screen coordinates corresponding to geographical coordinates in the map.
Unit
enum used constructor to specify the units used
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Sat Aug 13 2022 03:55:44 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.