diff --git a/src/MissionManager/CorridorScanComplexItem.cc b/src/MissionManager/CorridorScanComplexItem.cc index dafe3ed90e273f390020bc2d2a15ced8fb07be8f..a0efe3878ee4fcd6aff1827c3307bf702110c998 100644 --- a/src/MissionManager/CorridorScanComplexItem.cc +++ b/src/MissionManager/CorridorScanComplexItem.cc @@ -466,11 +466,16 @@ void CorridorScanComplexItem::_rebuildTransectsPhase2(void) _complexDistance += _visualTransectPoints[i].value().distanceTo(_visualTransectPoints[i+1].value()); } - if (_cameraTriggerInTurnAroundFact.rawValue().toBool()) { - _cameraShots = qCeil(_complexDistance / _cameraCalc.adjustedFootprintFrontal()->rawValue().toDouble()); + double triggerDistance = _cameraCalc.adjustedFootprintFrontal()->rawValue().toDouble(); + if (triggerDistance == 0) { + _cameraShots = 0; } else { - int singleTransectImageCount = qCeil(_corridorPolyline.length() / _cameraCalc.adjustedFootprintFrontal()->rawValue().toDouble()); - _cameraShots = singleTransectImageCount * _transectCount(); + if (_cameraTriggerInTurnAroundFact.rawValue().toBool()) { + _cameraShots = qCeil(_complexDistance / triggerDistance); + } else { + int singleTransectImageCount = qCeil(_corridorPolyline.length() / triggerDistance); + _cameraShots = singleTransectImageCount * _transectCount(); + } } _coordinate = _visualTransectPoints.count() ? _visualTransectPoints.first().value() : QGeoCoordinate(); diff --git a/src/MissionManager/StructureScanComplexItem.cc b/src/MissionManager/StructureScanComplexItem.cc index 8119c157d86340afa8dbe365be3c61a805b3b3c6..b84a1d23215e07dde15a9e1cd34dd7f88d231484 100644 --- a/src/MissionManager/StructureScanComplexItem.cc +++ b/src/MissionManager/StructureScanComplexItem.cc @@ -433,6 +433,12 @@ void StructureScanComplexItem::_rebuildFlightPolygon(void) void StructureScanComplexItem::_recalcCameraShots(void) { + double triggerDistance = _cameraCalc.adjustedFootprintSide()->rawValue().toDouble(); + if (triggerDistance == 0) { + _setCameraShots(0); + return; + } + if (_flightPolygon.count() < 3) { _setCameraShots(0); return; @@ -450,7 +456,7 @@ void StructureScanComplexItem::_recalcCameraShots(void) return; } - int cameraShots = distance / _cameraCalc.adjustedFootprintSide()->rawValue().toDouble(); + int cameraShots = distance / triggerDistance; _setCameraShots(cameraShots * _layersFact.rawValue().toInt()); } diff --git a/src/MissionManager/SurveyComplexItem.cc b/src/MissionManager/SurveyComplexItem.cc index 420fab39a2b1bae40da68004f0e033fa1c3c7afe..4758bafc033b8c3d82a6f953f9ee1f612612d16c 100644 --- a/src/MissionManager/SurveyComplexItem.cc +++ b/src/MissionManager/SurveyComplexItem.cc @@ -1289,20 +1289,24 @@ void SurveyComplexItem::_rebuildTransectsPhase2(void) _complexDistance += _visualTransectPoints[i].value().distanceTo(_visualTransectPoints[i+1].value()); } - if (_cameraTriggerInTurnAroundFact.rawValue().toBool()) { - _cameraShots = qCeil(_complexDistance / triggerDistance()); - } else { + if (triggerDistance() == 0) { _cameraShots = 0; - for (const QList& transect: _transects) { - QGeoCoordinate firstCameraCoord, lastCameraCoord; - if (_hasTurnaround()) { - firstCameraCoord = transect[1].coord; - lastCameraCoord = transect[transect.count() - 2].coord; - } else { - firstCameraCoord = transect.first().coord; - lastCameraCoord = transect.last().coord; + } else { + if (_cameraTriggerInTurnAroundFact.rawValue().toBool()) { + _cameraShots = qCeil(_complexDistance / triggerDistance()); + } else { + _cameraShots = 0; + for (const QList& transect: _transects) { + QGeoCoordinate firstCameraCoord, lastCameraCoord; + if (_hasTurnaround()) { + firstCameraCoord = transect[1].coord; + lastCameraCoord = transect[transect.count() - 2].coord; + } else { + firstCameraCoord = transect.first().coord; + lastCameraCoord = transect.last().coord; + } + _cameraShots += qCeil(firstCameraCoord.distanceTo(lastCameraCoord) / triggerDistance()); } - _cameraShots += qCeil(firstCameraCoord.distanceTo(lastCameraCoord) / triggerDistance()); } }