QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
Viewer3DTerrainTexture.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QSize>
4#include <QtCore/QString>
5#include <QtPositioning/QGeoCoordinate>
6#include <QtQmlIntegration/QtQmlIntegration>
7#include <QtQuick3D/QQuick3DTextureData>
8
9#include <utility>
10
15
16class Viewer3DTerrainTexture : public QQuick3DTextureData
17{
18 Q_OBJECT
19 QML_ELEMENT
20 Q_MOC_INCLUDE("Viewer3DMapProvider.h")
21
23
25 Q_PROPERTY(QGeoCoordinate fallbackCenter READ fallbackCenter WRITE setFallbackCenter NOTIFY fallbackCenterChanged)
26 Q_PROPERTY(QGeoCoordinate roiMinCoordinate READ roiMinCoordinate WRITE setRoiMinCoordinate NOTIFY roiMinCoordinateChanged)
27 Q_PROPERTY(QGeoCoordinate roiMaxCoordinate READ roiMaxCoordinate WRITE setRoiMaxCoordinate NOTIFY roiMaxCoordinateChanged)
28 Q_PROPERTY(QSize tileCount READ tileCount NOTIFY tileCountChanged)
29 Q_PROPERTY(bool textureLoaded READ textureLoaded NOTIFY textureLoadedChanged)
31
32public:
33 explicit Viewer3DTerrainTexture();
34
35 Q_INVOKABLE void loadTexture();
36
37 Viewer3DMapProvider *mapProvider() const { return _mapProvider; }
38 void setMapProvider(Viewer3DMapProvider *newMapProvider);
39
40 QGeoCoordinate fallbackCenter() const { return _fallbackCenter; }
41 void setFallbackCenter(const QGeoCoordinate &newFallbackCenter);
42
43 QGeoCoordinate roiMinCoordinate() const { return _roiMinCoordinate; }
44 void setRoiMinCoordinate(const QGeoCoordinate &newRoiMinCoordinate);
45
46 QGeoCoordinate roiMaxCoordinate() const { return _roiMaxCoordinate; }
47 void setRoiMaxCoordinate(const QGeoCoordinate &newRoiMaxCoordinate);
48
49 QSize tileCount() const { return _tileCount; }
50 void setTileCount(const QSize &newTileCount);
51
52 bool textureLoaded() const { return _textureLoaded; }
53 bool textureGeometryDone() const { return _textureGeometryDone; }
54
55 void setTextureGeometryDone(bool newTextureGeometryDone);
56 void setTextureGeometry(const Viewer3DTileStatistics &tileInfo);
57
58signals:
66
67private:
68 void _updateTexture();
69 void _setTextureLoaded(bool loaded) { _textureLoaded = loaded; emit textureLoadedChanged(); }
70 void _onMapTypeChanged();
71 static std::pair<QGeoCoordinate, QGeoCoordinate> _fallbackBoundingBox(const QGeoCoordinate &center);
72
73 Viewer3DTileQuery *_terrainTileLoader = nullptr;
74 FlightMapSettings *_flightMapSettings = nullptr;
75 Viewer3DMapProvider *_mapProvider = nullptr;
76
77 QGeoCoordinate _fallbackCenter;
78 QGeoCoordinate _roiMinCoordinate;
79 QGeoCoordinate _roiMaxCoordinate;
80 QSize _tileCount;
81 QString _mapType;
82
83 int _mapId = 0;
84 bool _textureLoaded = false;
85 bool _textureGeometryDone = false;
86};
QGeoCoordinate roiMaxCoordinate() const
void setRoiMinCoordinate(const QGeoCoordinate &newRoiMinCoordinate)
void setTextureGeometryDone(bool newTextureGeometryDone)
Viewer3DMapProvider * mapProvider() const
QGeoCoordinate roiMinCoordinate() const
void setRoiMaxCoordinate(const QGeoCoordinate &newRoiMaxCoordinate)
void setTextureGeometry(const Viewer3DTileStatistics &tileInfo)
void setFallbackCenter(const QGeoCoordinate &newFallbackCenter)
void setTileCount(const QSize &newTileCount)
void setMapProvider(Viewer3DMapProvider *newMapProvider)
QGeoCoordinate fallbackCenter() const