Marble

StereographicProjection.h
1// SPDX-License-Identifier: LGPL-2.1-or-later
2//
3// SPDX-FileCopyrightText: 2013 Bernhard Beschow <bbeschow@cs.tu-berlin.de>
4//
5
6
7#ifndef MARBLE_STEREOGRAPHICPROJECTION_H
8#define MARBLE_STEREOGRAPHICPROJECTION_H
9
10
11#include "AbstractProjection.h"
12#include "AzimuthalProjection.h"
13
14namespace Marble
15{
16
17class StereographicProjectionPrivate;
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 StereographicProjection.
30 */
32
33 ~StereographicProjection() 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 the viewport parameters
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 StereographicProjection(StereographicProjectionPrivate *dd );
93
94 private:
95 Q_DECLARE_PRIVATE(StereographicProjection)
96 Q_DISABLE_COPY( StereographicProjection )
97};
98
99}
100
101#endif
This file contains the headers for AbstractProjection.
This file contains the headers for AzimuthalProjection.
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.
A base class for the Gnomonic and Orthographic (Globe) projections in Marble.
A 3d point representation.
Unit
enum used constructor to specify the units used
A class to implement the spherical projection used by the "Globe" view.
QString name() const override
Returns the user-visible name of the projection.
StereographicProjection()
Construct a new StereographicProjection.
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.
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.
QIcon icon() const override
Returns an icon for the projection.
QString description() const override
Returns a short user description of the projection that can be used in tooltips or dialogs.
A public class that controls what is visible in the viewport of a Marble map.
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Jun 7 2024 12:03:13 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.