From 3d42c495aaf16dd920685b9aa94aac6e47109226 Mon Sep 17 00:00:00 2001
From: Matthias Grob <maetugr@gmail.com>
Date: Mon, 17 Dec 2018 15:37:13 +0100
Subject: [PATCH] FlightTaskOrbit: clip radius to range

---
 .../FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp b/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp
index 0862bfcbd3..428ab84b2f 100644
--- a/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp
+++ b/src/lib/FlightTasks/tasks/Orbit/FlightTaskOrbit.cpp
@@ -117,19 +117,18 @@ bool FlightTaskOrbit::sendTelemetry()
 	return true;
 }
 
-bool FlightTaskOrbit::setRadius(const float r)
+bool FlightTaskOrbit::setRadius(float r)
 {
-	if (math::isInRange(r, _radius_min, _radius_max)) {
-		// small radius is more important than high velocity for safety
-		if (!checkAcceleration(r, _v, _acceleration_max)) {
-			_v = math::sign(_v) * sqrtf(_acceleration_max * r);
-		}
+	// clip the radius to be within range
+	r = math::constrain(r, _radius_min, _radius_max);
 
-		_r = r;
-		return true;
+	// small radius is more important than high velocity for safety
+	if (!checkAcceleration(r, _v, _acceleration_max)) {
+		_v = math::sign(_v) * sqrtf(_acceleration_max * r);
 	}
 
-	return false;
+	_r = r;
+	return true;
 }
 
 bool FlightTaskOrbit::setVelocity(const float v)
-- 
GitLab