QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
TerrainProfile.h
Go to the documentation of this file.
1#pragma once
2
3#include <QtQuick/QQuickItem>
4#include <QtQmlIntegration/QtQmlIntegration>
5#include <QtGraphs/QXYSeries>
6
10
11Q_MOC_INCLUDE("MissionController.h")
12
13class TerrainProfile : public QQuickItem
14{
15 Q_OBJECT
16 QML_ELEMENT
17
18public:
19 TerrainProfile(QQuickItem *parent = nullptr);
20
21 Q_PROPERTY(double visibleWidth READ visibleWidth WRITE setVisibleWidth NOTIFY visibleWidthChanged)
22 Q_PROPERTY(MissionController* missionController READ missionController WRITE setMissionController NOTIFY missionControllerChanged)
23 Q_PROPERTY(double pixelsPerMeter MEMBER _pixelsPerMeter NOTIFY pixelsPerMeterChanged)
24 Q_PROPERTY(double minAMSLAlt MEMBER _minAMSLAlt NOTIFY minAMSLAltChanged)
25 Q_PROPERTY(double maxAMSLAlt MEMBER _maxAMSLAlt NOTIFY maxAMSLAltChanged)
26 Q_PROPERTY(double horizontalScale MEMBER _horizontalScale)
27 Q_PROPERTY(double verticalScale MEMBER _verticalScale)
28
29 MissionController* missionController(void) { return _missionController; }
30 double visibleWidth(void) const { return _visibleWidth; }
31
32 void setMissionController(MissionController* missionController);
33 void setVisibleWidth(double visibleWidth);
34
37 Q_INVOKABLE void updateSeries(QXYSeries* terrainSeries, QXYSeries* flightSeries, QXYSeries* missingSeries, QXYSeries* collisionSeries);
38
39 // Override from QQmlParserStatus
40 void componentComplete(void) final;
41
42signals:
46 void minAMSLAltChanged (void);
47 void maxAMSLAltChanged (void);
48 void profileChanged (void);
49 void _updateSignal (void);
50
51private slots:
52 void _newVisualItems (void);
53 void _updateProfile (void);
54
55private:
56 void _updateSegmentCounts (FlightPathSegment* segment, int& cFlightProfileSegments, int& cTerrainPoints, int& cMissingTerrainSegments, int& cTerrainCollisionSegments, double& minTerrainHeight, double& maxTerrainHeight);
57 void _addTerrainPoints (FlightPathSegment* segment, double currentDistance, QList<QPointF>& points);
58 void _addFlightPoints (FlightPathSegment* segment, double currentDistance, QList<QPointF>& points);
59 void _addMissingPoints (FlightPathSegment* segment, double currentDistance, QList<QPointF>& points);
60 void _addCollisionPoints (FlightPathSegment* segment, double currentDistance, QList<QPointF>& points);
61 bool _shouldAddFlightProfileSegment (FlightPathSegment* segment);
62 bool _shouldAddMissingTerrainSegment (FlightPathSegment* segment);
63
64 MissionController* _missionController = nullptr;
65 QmlObjectListModel* _visualItems = nullptr;
66 double _visibleWidth = 0;
67 double _pixelsPerMeter = 0;
68 double _minAMSLAlt = 0;
69 double _maxAMSLAlt = 0;
70 double _horizontalScale = 1;
71 double _verticalScale = 1;
72
73 Q_DISABLE_COPY(TerrainProfile)
74};
void profileChanged(void)
double visibleWidth(void) const
void pixelsPerMeterChanged(void)
void _updateSignal(void)
void visibleWidthChanged(void)
void minAMSLAltChanged(void)
void maxAMSLAltChanged(void)
void missionControllerChanged(void)