QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
StructureScanMapVisual.qml
Go to the documentation of this file.
1import QtQuick
2import QtQuick.Controls
3import QtLocation
4import QtPositioning
5
6import QGroundControl
7import QGroundControl.Controls
8import QGroundControl.FlightMap
9
10/// Structure Scan Complex Mission Item visuals
11Item {
12 id: _root
13
14 property var map ///< Map control to place item in
15 property var vehicle
16
17 property var _missionItem: object
18 property var _structurePolygon: object.structurePolygon
19 property var _flightPolygon: object.flightPolygon
20 property bool interactive: parent.interactive
21
22 signal clicked(int sequenceNumber)
23
24 function _addVisualElements() {
25 objMgr.createObjects([entryPointComponent, exitPointComponent], map, true /* parentObjectIsMap */)
26 }
27
28 Component.onCompleted: {
29 _addVisualElements()
30 }
31
32 QGCDynamicObjectManager { id: objMgr }
33
34 QGCMapPolygonVisuals {
35 mapControl: map
36 mapPolygon: _structurePolygon
37 interactive: _missionItem.isCurrentItem && _root.interactive
38 borderWidth: 1
39 borderColor: "black"
40 interiorColor: "green"
41 altColor: "red"
42 interiorOpacity: 0.5 * _root.opacity
43 }
44
45 QGCMapPolygonVisuals {
46 mapControl: map
47 mapPolygon: _flightPolygon
48 interactive: false
49 borderWidth: 2
50 borderColor: "white"
51 interiorOpacity: _root.opacity
52 }
53
54 // Entry point
55 Component {
56 id: entryPointComponent
57
58 MapQuickItem {
59 anchorPoint.x: sourceItem.anchorPointX
60 anchorPoint.y: sourceItem.anchorPointY
61 z: QGroundControl.zOrderMapItems
62 coordinate: _missionItem.coordinate
63 visible: _missionItem.exitCoordinate.isValid && _root.interactive
64
65 sourceItem: MissionItemIndexLabel {
66 index: _missionItem.sequenceNumber
67 label: "Entry"
68 checked: _missionItem.isCurrentItem
69 onClicked: _root.clicked(_missionItem.sequenceNumber)
70 }
71 }
72 }
73
74 // Exit point
75 Component {
76 id: exitPointComponent
77
78 MapQuickItem {
79 anchorPoint.x: sourceItem.anchorPointX
80 anchorPoint.y: sourceItem.anchorPointY
81 z: QGroundControl.zOrderMapItems
82 coordinate: _missionItem.exitCoordinate
83 visible: _missionItem.exitCoordinate.isValid && _root.interactive
84
85 sourceItem: MissionItemIndexLabel {
86 index: _missionItem.lastSequenceNumber
87 label: "Exit"
88 checked: _missionItem.isCurrentItem
89 onClicked: _root.clicked(_missionItem.sequenceNumber)
90 }
91 }
92 }
93}