Marble

MergedLayerDecorator.h
1// SPDX-FileCopyrightText: 2008 David Roberts <dvdr18@gmail.com>
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4
5#ifndef MARBLE_MERGEDLAYERDECORATOR_H
6#define MARBLE_MERGEDLAYERDECORATOR_H
7
8#include <QList>
9
10#include "MarbleGlobal.h"
11
12class QImage;
13class QString;
14class QSize;
15
16namespace Marble
17{
18
19class GeoDataGroundOverlay;
20class GeoSceneAbstractTileProjection;
21class GeoSceneTextureTileDataset;
22class SunLocator;
23class StackedTile;
24class Tile;
25class TileId;
26class TileLoader;
27class RenderState;
28
29class MergedLayerDecorator
30{
31public:
32 MergedLayerDecorator(TileLoader *const tileLoader, const SunLocator *sunLocator);
33 virtual ~MergedLayerDecorator();
34
35 void setTextureLayers(const QList<const GeoSceneTextureTileDataset *> &textureLayers);
36 void updateGroundOverlays(const QList<const GeoDataGroundOverlay *> &groundOverlays);
37
38 int textureLayersSize() const;
39
40 /**
41 * Returns the highest level in which some tiles are theoretically
42 * available for the current texture layers.
43 */
44 int maximumTileLevel() const;
45
46 int tileColumnCount(int level) const;
47
48 int tileRowCount(int level) const;
49
50 const GeoSceneAbstractTileProjection *tileProjection() const;
51
52 QSize tileSize() const;
53
54 StackedTile *loadTile(const TileId &id);
55
56 StackedTile *updateTile(const StackedTile &stackedTile, const TileId &tileId, const QImage &tileImage);
57
58 void downloadStackedTile(const TileId &id, DownloadUsage usage);
59
60 void setShowSunShading(bool show);
61 bool showSunShading() const;
62
63 void setShowCityLights(bool show);
64 bool showCityLights() const;
65
66 void setShowTileId(bool show);
67
68 RenderState renderState(const TileId &stackedTileId) const;
69
70 bool hasTextureLayer() const;
71
72protected:
73 Q_DISABLE_COPY(MergedLayerDecorator)
74
75 class Private;
76 Private *const d;
77};
78
79}
80
81#endif
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 Dec 27 2024 11:51:00 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.