diff --git a/src/MissionManager/MavCmdInfoCommon.json b/src/MissionManager/MavCmdInfoCommon.json index 63a3459c3fcdbecfbe492f6dc50dde3a3e685290..49c116bab9d0b7a15b7399f9d4f4822b4ef2f881 100644 --- a/src/MissionManager/MavCmdInfoCommon.json +++ b/src/MissionManager/MavCmdInfoCommon.json @@ -640,6 +640,7 @@ "friendlyName": "ROI to next waypoint" , "description": "Sets the region of interest to point towards the next waypoint with optional offsets.", "specifiesCoordinate": false, + "standaloneCoordinate": true, "friendlyEdit": true, "category": "Camera", "param5": { diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index e518d4a64c3e418b9f2d6fb3c77dcf4f32c24ef2..b97ee137d037b7370a279c0a5e9a1c3541c96bea 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -1343,12 +1343,6 @@ void MissionController::_recalcMissionFlightStatus() _addCommandTimeDelay(simpleItem, vtolInHover); if (item->specifiesCoordinate()) { - // Update vehicle yaw assuming direction to next waypoint - if (item != lastCoordinateItem) { - _missionFlightStatus.vehicleYaw = lastCoordinateItem->exitCoordinate().azimuthTo(item->coordinate()); - lastCoordinateItem->setMissionVehicleYaw(_missionFlightStatus.vehicleYaw); - } - // Keep track of the min/max altitude for all waypoints so we can show altitudes as a percentage double absoluteAltitude = item->coordinate().altitude(); @@ -1366,6 +1360,13 @@ void MissionController::_recalcMissionFlightStatus() if (!item->isStandaloneCoordinate()) { firstCoordinateItem = false; + + // Update vehicle yaw assuming direction to next waypoint + if (item != lastCoordinateItem) { + _missionFlightStatus.vehicleYaw = lastCoordinateItem->exitCoordinate().azimuthTo(item->coordinate()); + lastCoordinateItem->setMissionVehicleYaw(_missionFlightStatus.vehicleYaw); + } + if (lastCoordinateItem != _settingsItem || linkStartToHome) { // This is a subsequent waypoint or we are forcing the first waypoint back to home double azimuth, distance, altDifference; @@ -1395,9 +1396,9 @@ void MissionController::_recalcMissionFlightStatus() } item->setMissionFlightStatus(_missionFlightStatus); - } - lastCoordinateItem = item; + lastCoordinateItem = item; + } } } lastCoordinateItem->setMissionVehicleYaw(_missionFlightStatus.vehicleYaw);