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