diff --git a/src/MissionManager/StructureScanComplexItem.cc b/src/MissionManager/StructureScanComplexItem.cc index 8eae2d8ff6b988b0a9e198c0188f24b99a43049f..9fd71a0e15d9358f2ebf50d8e2e85515bcbf5488 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