2 * Copyright (C) 2016 The LibrePilot Project
3 * Contact: http://www.librepilot.org
5 * This file is part of LibrePilot GCS.
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.
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.
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/>.
22 import "../js/uav.js" as UAV
26 property variant sceneSize
30 elementName: "compass-fixed"
31 sceneSize: sceneItem.sceneSize
33 x: Math.floor(scaledBounds.x * sceneItem.width)
34 y: Math.floor(scaledBounds.y * sceneItem.height)
39 elementName: "compass-plane"
40 sceneSize: sceneItem.sceneSize
42 x: Math.floor(scaledBounds.x * sceneItem.width)
43 y: Math.floor(scaledBounds.y * sceneItem.height)
48 elementName: "compass-wheel"
49 sceneSize: sceneItem.sceneSize
52 x: Math.floor(scaledBounds.x * sceneItem.width)
53 y: Math.floor(scaledBounds.y * sceneItem.height)
55 rotation: -UAV.attitudeYaw()
56 transformOrigin: Item.Center
61 elementName: "compass-home" // Cyan point
62 sceneSize: sceneItem.sceneSize
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()
75 id: compass_waypoint // Double Purple arrow
76 elementName: "compass-waypoint"
77 sceneSize: sceneItem.sceneSize
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())
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
101 text: Math.floor(UAV.attitudeYaw()).toFixed()
105 pixelSize: parent.height * 1.2
107 anchors.centerIn: parent