From 7eed1155e01ce817f94fb2b904940f8b5ef7df67 Mon Sep 17 00:00:00 2001
From: lichenyuneec
Date: Wed, 17 Apr 2019 17:06:12 +0800
Subject: [PATCH] the battery and distance of structure scan always show 0
Change-Id: I80acc497ef8fc574f64b181a8d276c5b00d4e057
---
.../StructureScanComplexItem.cc | 36 ++++++++++++++-----
src/MissionManager/StructureScanComplexItem.h | 4 +--
2 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/src/MissionManager/StructureScanComplexItem.cc b/src/MissionManager/StructureScanComplexItem.cc
index 8eae2d8ff..9fd71a0e1 100644
--- a/src/MissionManager/StructureScanComplexItem.cc
+++ b/src/MissionManager/StructureScanComplexItem.cc
@@ -83,6 +83,8 @@ StructureScanComplexItem::StructureScanComplexItem(Vehicle* vehicle, bool flyVie
connect(&_cameraCalc, &CameraCalc::isManualCameraChanged, this, &StructureScanComplexItem::_updateGimbalPitch);
+ connect(&_layersFact, &Fact::valueChanged, this, &StructureScanComplexItem::_recalcScanDistance);
+
_recalcLayerInfo();
if (!kmlOrShpFile.isEmpty()) {
@@ -93,14 +95,6 @@ StructureScanComplexItem::StructureScanComplexItem(Vehicle* vehicle, bool flyVie
setDirty(false);
}
-void StructureScanComplexItem::_setScanDistance(double scanDistance)
-{
- if (!qFuzzyCompare(_scanDistance, scanDistance)) {
- _scanDistance = scanDistance;
- emit complexDistanceChanged();
- }
-}
-
void StructureScanComplexItem::_setCameraShots(int cameraShots)
{
if (_cameraShots != cameraShots) {
@@ -519,6 +513,9 @@ void StructureScanComplexItem::_rebuildFlightPolygon(void)
} else {
_entryVertex = savedEntryVertex;
}
+
+ _recalcScanDistance();
+
emit coordinateChanged(coordinate());
emit exitCoordinateChanged(exitCoordinate());
}
@@ -598,3 +595,26 @@ void StructureScanComplexItem::_signalTopBottomAltChanged(void)
emit topFlightAltChanged();
emit bottomFlightAltChanged();
}
+
+void StructureScanComplexItem::_recalcScanDistance()
+{
+ double scanDistance = 0;
+ QList vertices = _flightPolygon.coordinateList();
+ for (int i=0; i