QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
Viewer3DManager.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtCore/QObject>
4#include <QtPositioning/QGeoCoordinate>
5#include <QtQmlIntegration/QtQmlIntegration>
6
7class QVariant;
8class Vehicle;
10
11class Viewer3DManager : public QObject
12{
13 Q_OBJECT
14 QML_NAMED_ELEMENT(QGCViewer3DManager)
15 QML_SINGLETON
16 Q_MOC_INCLUDE("Viewer3DMapProvider.h")
17
18 Q_PROPERTY(Viewer3DMapProvider *mapProvider READ mapProvider CONSTANT)
19 Q_PROPERTY(QGeoCoordinate gpsRef READ gpsRef NOTIFY gpsRefChanged)
21
22public:
27 Q_ENUM(DisplayMode)
28
29 explicit Viewer3DManager(QObject *parent = nullptr);
30
31 Viewer3DMapProvider *mapProvider() const { return _mapProvider; }
32 QGeoCoordinate gpsRef() const { return _gpsRef; }
33 DisplayMode displayMode() const { return _displayMode; }
34
35 Q_INVOKABLE void setDisplayMode(DisplayMode mode);
36
37signals:
40
41private:
42 enum class GpsRefSource {
43 None,
44 Map,
45 Vehicle,
46 };
47
48 void _onGpsRefChanged(const QGeoCoordinate &newGpsRef, bool isRefSet);
49 void _onActiveVehicleChanged(Vehicle *vehicle);
50 void _onActiveVehicleCoordinateChanged(const QGeoCoordinate &newCoordinate);
51 void _onEnabledChanged(const QVariant &value);
52
53 Viewer3DMapProvider *_mapProvider = nullptr;
54 Vehicle *_activeVehicle = nullptr;
55
56 QGeoCoordinate _gpsRef;
57 GpsRefSource _gpsRefSource = GpsRefSource::None;
58 DisplayMode _displayMode = DisplayMode::Map;
59};
DisplayMode displayMode() const
void gpsRefChanged()
void displayModeChanged()
Viewer3DMapProvider * mapProvider() const
Q_INVOKABLE void setDisplayMode(DisplayMode mode)
QGeoCoordinate gpsRef() const