From 9c9e2d14b31deeb8ea421be649e0b54a26a3312a Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Tue, 20 Mar 2018 13:17:32 -0700 Subject: [PATCH] Be careful of climb rates of 0 --- src/MissionManager/TransectStyleComplexItem.cc | 101 +++++++++++++------------ 1 file changed, 53 insertions(+), 48 deletions(-) diff --git a/src/MissionManager/TransectStyleComplexItem.cc b/src/MissionManager/TransectStyleComplexItem.cc index 842199e..966408c 100644 --- a/src/MissionManager/TransectStyleComplexItem.cc +++ b/src/MissionManager/TransectStyleComplexItem.cc @@ -500,7 +500,7 @@ int TransectStyleComplexItem::_maxPathHeight(const TerrainPathQuery::PathHeightI void TransectStyleComplexItem::_adjustForMaxRates(QList& transect) { double maxClimbRate = _terrainAdjustMaxClimbRateFact.rawValue().toDouble(); - double maxDescentRate = -_terrainAdjustMaxDescentRateFact.rawValue().toDouble(); + double maxDescentRate = _terrainAdjustMaxDescentRateFact.rawValue().toDouble(); double flightSpeed = _missionFlightStatus.vehicleSpeed; if (qIsNaN(flightSpeed) || (maxClimbRate == 0 && maxDescentRate == 0)) { @@ -510,55 +510,60 @@ void TransectStyleComplexItem::_adjustForMaxRates(QList& transect) return; } - // Adjust climb rates - bool climbRateAdjusted; - do { - //qDebug() << "climbrate pass"; - climbRateAdjusted = false; - for (int i=0; i 0 && climbRate - maxClimbRate > 0.1) { - double maxAltitudeDelta = maxClimbRate * seconds; - fromCoord.setAltitude(toCoord.altitude() - maxAltitudeDelta); - //qDebug() << "Adjusting"; - climbRateAdjusted = true; + if (maxClimbRate > 0) { + // Adjust climb rates + bool climbRateAdjusted; + do { + //qDebug() << "climbrate pass"; + climbRateAdjusted = false; + for (int i=0; i 0 && climbRate - maxClimbRate > 0.1) { + double maxAltitudeDelta = maxClimbRate * seconds; + fromCoord.setAltitude(toCoord.altitude() - maxAltitudeDelta); + //qDebug() << "Adjusting"; + climbRateAdjusted = true; + } } - } - } while (climbRateAdjusted); - - // Adjust descent rates - bool descentRateAdjusted; - do { - //qDebug() << "descent rate pass"; - descentRateAdjusted = false; - for (int i=1; i 0) { + // Adjust descent rates + bool descentRateAdjusted; + maxDescentRate = -maxDescentRate; + do { + //qDebug() << "descent rate pass"; + descentRateAdjusted = false; + for (int i=1; i& transect)