diff --git a/ground/gcs/src/share/qml/model/ModelTerrainView.qml b/ground/gcs/src/share/qml/model/ModelTerrainView.qml index e7ddb5a42..fdbfa70eb 100644 --- a/ground/gcs/src/share/qml/model/ModelTerrainView.qml +++ b/ground/gcs/src/share/qml/model/ModelTerrainView.qml @@ -6,6 +6,8 @@ import UAVTalk.AttitudeState 1.0 import UAVTalk.HomeLocation 1.0 import UAVTalk.GPSPositionSensor 1.0 +import "../uav.js" as UAV + OSGViewport { anchors.fill: parent focus: true @@ -46,43 +48,8 @@ OSGViewport { modelData: modelTransformNode sceneData: terrainNode - attitude: uavAttitude() - position: uavPosition() - - function uavAttitude() { - return Qt.vector3d(attitudeState.pitch, attitudeState.roll, -attitudeState.yaw); - } - - function uavPosition() { - switch(gpsPositionSensor.status) { - case Status.Fix2D: - case Status.Fix3D: - return uavGPSPosition(); - case Status.NoFix: - case Status.NoGPS: - default: - return (homeLocation.set == Set.True) ? uavHomePosition() : uavDefaultPosition(); - } - } - - function uavGPSPosition() { - return Qt.vector3d( - gpsPositionSensor.longitude / 10000000.0, - gpsPositionSensor.latitude / 10000000.0, - gpsPositionSensor.altitude); - } - - function uavHomePosition() { - return Qt.vector3d( - homeLocation.longitude / 10000000.0, - homeLocation.latitude / 10000000.0, - homeLocation.altitude); - } - - function uavDefaultPosition() { - return Qt.vector3d(qmlWidget.longitude, qmlWidget.latitude, qmlWidget.altitude); - } - + attitude: UAV.attitude() + position: UAV.position() } OSGTransformNode { diff --git a/ground/gcs/src/share/qml/pfd/PfdTerrainView.qml b/ground/gcs/src/share/qml/pfd/PfdTerrainView.qml index 2dc7bca46..6d34f7e04 100644 --- a/ground/gcs/src/share/qml/pfd/PfdTerrainView.qml +++ b/ground/gcs/src/share/qml/pfd/PfdTerrainView.qml @@ -6,6 +6,8 @@ import UAVTalk.AttitudeState 1.0 import UAVTalk.HomeLocation 1.0 import UAVTalk.GPSPositionSensor 1.0 +import "../uav.js" as UAV + OSGViewport { id: fullview //anchors.fill: parent @@ -28,6 +30,7 @@ OSGViewport { dateTime: getDateTime() minimumAmbientLight: qmlWidget.minimumAmbientLight + // MOVE... function getDateTime() { switch(qmlWidget.timeMode) { case TimeMode.Local: @@ -53,43 +56,8 @@ OSGViewport { clampToTerrain: true manipulatorMode: ManipulatorMode.User - attitude: uavAttitude() - position: uavPosition() - - function uavAttitude() { - return Qt.vector3d(attitudeState.pitch, attitudeState.roll, -attitudeState.yaw); - } - - function uavPosition() { - switch(gpsPositionSensor.status) { - case Status.Fix2D: - case Status.Fix3D: - return uavGPSPosition(); - case Status.NoFix: - case Status.NoGPS: - default: - return (homeLocation.set == Set.True) ? uavHomePosition() : uavDefaultPosition(); - } - } - - function uavGPSPosition() { - return Qt.vector3d( - gpsPositionSensor.longitude / 10000000.0, - gpsPositionSensor.latitude / 10000000.0, - gpsPositionSensor.altitude); - } - - function uavHomePosition() { - return Qt.vector3d( - homeLocation.longitude / 10000000.0, - homeLocation.latitude / 10000000.0, - homeLocation.altitude); - } - - function uavDefaultPosition() { - return Qt.vector3d(qmlWidget.longitude, qmlWidget.latitude, qmlWidget.altitude); - } - + attitude: UAV.attitude() + position: UAV.position() } Rectangle { diff --git a/ground/gcs/src/share/qml/uav.js b/ground/gcs/src/share/qml/uav.js new file mode 100644 index 000000000..ed3be43af --- /dev/null +++ b/ground/gcs/src/share/qml/uav.js @@ -0,0 +1,41 @@ +// *********************** +// common.js +// +// Common javascript uav utils +// +// Librepilot +// *********************** + +function attitude() { + return Qt.vector3d(attitudeState.pitch, attitudeState.roll, -attitudeState.yaw); +} + +function position() { + switch(gpsPositionSensor.status) { + case Status.Fix2D: + case Status.Fix3D: + return gpsPosition(); + case Status.NoFix: + case Status.NoGPS: + default: + return (homeLocation.set == Set.True) ? homePosition() : defaultPosition(); + } +} + +function gpsPosition() { + return Qt.vector3d( + gpsPositionSensor.longitude / 10000000.0, + gpsPositionSensor.latitude / 10000000.0, + gpsPositionSensor.altitude); +} + +function homePosition() { + return Qt.vector3d( + homeLocation.longitude / 10000000.0, + homeLocation.latitude / 10000000.0, + homeLocation.altitude); +} + +function defaultPosition() { + return Qt.vector3d(qmlWidget.longitude, qmlWidget.latitude, qmlWidget.altitude); +}