LP-311 Remove basic/advanced stabilization tab auto-switch (autotune/txpid lock issues)
[librepilot.git] / ground / gcs / src / share / qml / pfd / Compass.qml
blob81dec7daf9d9f34834bf0f39c9664679da401db4
1 /*
2  * Copyright (C) 2016 The LibrePilot Project
3  * Contact: http://www.librepilot.org
4  *
5  * This file is part of LibrePilot GCS.
6  *
7  * LibrePilot GCS is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * LibrePilot GCS is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with LibrePilot GCS.  If not, see <http://www.gnu.org/licenses/>.
19  */
20 import QtQuick 2.4
22 import "../js/uav.js" as UAV
24 Item {
25     id: sceneItem
26     property variant sceneSize
28     SvgElementImage {
29         id: compass_fixed
30         elementName: "compass-fixed"
31         sceneSize: sceneItem.sceneSize
33         x: Math.floor(scaledBounds.x * sceneItem.width)
34         y: Math.floor(scaledBounds.y * sceneItem.height)
35     }
37     SvgElementImage {
38         id: compass_plane
39         elementName: "compass-plane"
40         sceneSize: sceneItem.sceneSize
42         x: Math.floor(scaledBounds.x * sceneItem.width)
43         y: Math.floor(scaledBounds.y * sceneItem.height)
44     }
46     SvgElementImage {
47         id: compass_wheel
48         elementName: "compass-wheel"
49         sceneSize: sceneItem.sceneSize
50         smooth: true
52         x: Math.floor(scaledBounds.x * sceneItem.width)
53         y: Math.floor(scaledBounds.y * sceneItem.height)
55         rotation: -UAV.attitudeYaw()
56         transformOrigin: Item.Center
57     }
59     SvgElementImage {
60         id: compass_home
61         elementName: "compass-home" // Cyan point
62         sceneSize: sceneItem.sceneSize
63         smooth: true
65         x: Math.floor(scaledBounds.x * sceneItem.width)
66         y: Math.floor(scaledBounds.y * sceneItem.height)
68         rotation: -UAV.attitudeYaw() + UAV.homeHeading()
69         transformOrigin: Item.Bottom
71         visible: UAV.isTakeOffLocationValid()
72     }
74     SvgElementImage {
75         id: compass_waypoint // Double Purple arrow
76         elementName: "compass-waypoint"
77         sceneSize: sceneItem.sceneSize
78         smooth: true
80         x: Math.floor(scaledBounds.x * sceneItem.width)
81         y: Math.floor(scaledBounds.y * sceneItem.height)
83         rotation: -UAV.attitudeYaw() + UAV.waypointHeading()
84         transformOrigin: Item.Center
86         visible: (UAV.isFlightModeAssisted() && UAV.isPathDesiredActive())
87     }
89     Item {
90         id: compass_text_box
92         property variant scaledBounds: svgRenderer.scaledElementBounds("pfd/pfd.svg", "compass-text")
94         x: scaledBounds.x * sceneItem.width
95         y: scaledBounds.y * sceneItem.height
96         width: scaledBounds.width * sceneItem.width
97         height: scaledBounds.height * sceneItem.height
99         Text {
100             id: compass_text
101             text: Math.floor(UAV.attitudeYaw()).toFixed()
102             color: "white"
103             font {
104                 family: pt_bold.name
105                 pixelSize: parent.height * 1.2
106             }
107             anchors.centerIn: parent
108         }
109     }