From eecef884819f2656098ab00708d1720f289ac73d Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Thu, 25 Oct 2018 16:23:17 -0700 Subject: [PATCH] Fixed camera shot count when trigger distance == 0 --- src/MissionManager/CorridorScanComplexItem.cc | 13 ++++++--- .../StructureScanComplexItem.cc | 8 +++++- src/MissionManager/SurveyComplexItem.cc | 28 +++++++++++-------- 3 files changed, 32 insertions(+), 17 deletions(-) diff --git a/src/MissionManager/CorridorScanComplexItem.cc b/src/MissionManager/CorridorScanComplexItem.cc index dafe3ed90..a0efe3878 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 8119c157d..b84a1d232 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 420fab39a..4758bafc0 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()); } } -- 2.22.0