import QtQuick 2.2 import QtQuick.Controls 1.2 import QGroundControl 1.0 import QGroundControl.ScreenTools 1.0 import QGroundControl.Vehicle 1.0 import QGroundControl.Controls 1.0 import QGroundControl.FactControls 1.0 import QGroundControl.Palette 1.0 // Editor for Survery mission items Rectangle { id: _root height: visible ? (editorColumn.height + (_margin * 2)) : 0 width: availableWidth color: qgcPal.windowShadeDark radius: _radius // The following properties must be available up the hierarchy chain //property real availableWidth ///< Width for control //property var missionItem ///< Mission Item for editor property real _margin: ScreenTools.defaultFontPixelWidth / 2 property var _cameraInfoCanonSX260: { "focalLength": 4.5, "sensorHeight": 4.55, "sensorWidth": 6.17 } function recalcFromCameraValues() { var focalLength = Number(focalLengthField.text) var sensorWidth = Number(sensorWidthField.text) var sensorHeight = Number(sensorHeightField.text) var overlap = Number(imageOverlapField.text) if (focalLength <= 0.0 || sensorWidth <= 0.0 || sensorHeight <= 0.0) { return } var scaledFocalLengthMM = (1000.0 * missionItem.gridAltitude.rawValue) / focalLength var imageWidthM = (sensorWidth * scaledFocalLengthMM) / 1000.0; var imageHeightM = (sensorHeight * scaledFocalLengthMM) / 1000.0; var gridSpacing var cameraTriggerDistance if (cameraOrientationLandscape.checked) { gridSpacing = imageWidthM cameraTriggerDistance = imageHeightM } else { gridSpacing = imageHeightM cameraTriggerDistance = imageWidthM } gridSpacing = (1.0 - (overlap / 100.0)) * gridSpacing cameraTriggerDistance = (1.0 - (overlap / 100.0)) * cameraTriggerDistance missionItem.gridSpacing.rawValue = gridSpacing missionItem.cameraTriggerDistance.rawValue = cameraTriggerDistance } Connections { target: editorMap.polygonDraw onPolygonCaptureStarted: { missionItem.clearPolygon() } onPolygonCaptureFinished: { for (var i=0; i 0 && !editorMap.polygonDraw.drawingPolygon onClicked: { if (editorMap.polygonDraw.adjustingPolygon) { editorMap.polygonDraw.finishAdjustPolygon() } else { editorMap.polygonDraw.startAdjustPolygon(missionItem.polygonPath) } } } } QGCLabel { text: qsTr("Statistics:") } Rectangle { anchors.left: parent.left anchors.right: parent.right height: 1 color: qgcPal.text } Grid { columns: 2 spacing: ScreenTools.defaultFontPixelWidth QGCLabel { text: qsTr("Survey area:") } QGCLabel { text: QGroundControl.squareMetersToAppSettingsAreaUnits(missionItem.coveredArea).toFixed(2) + " " + QGroundControl.appSettingsAreaUnitsString } QGCLabel { text: qsTr("# shots:") } QGCLabel { text: missionItem.cameraShots } } } }