aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Util.cs
diff options
context:
space:
mode:
authorRobert Adams2013-01-17 14:44:54 -0800
committerJustin Clark-Casey (justincc)2013-01-25 23:51:50 +0000
commit8ecf6ed08e95445e80735859647764da7c242fa2 (patch)
treea758d1be8b12bf8d36cad29e3fad8bd341c4c462 /OpenSim/Framework/Util.cs
parentChanged a couple of debug messages at the request of osgrid. (diff)
downloadopensim-SC-8ecf6ed08e95445e80735859647764da7c242fa2.zip
opensim-SC-8ecf6ed08e95445e80735859647764da7c242fa2.tar.gz
opensim-SC-8ecf6ed08e95445e80735859647764da7c242fa2.tar.bz2
opensim-SC-8ecf6ed08e95445e80735859647764da7c242fa2.tar.xz
Add utility function to clamp a vector to a maximum magnitude.
Diffstat (limited to 'OpenSim/Framework/Util.cs')
-rw-r--r--OpenSim/Framework/Util.cs12
1 files changed, 12 insertions, 0 deletions
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 4fd8a2d..7204279 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -299,6 +299,18 @@ namespace OpenSim.Framework
299 x; 299 x;
300 } 300 }
301 301
302 // Clamp the maximum magnitude of a vector
303 public static Vector3 ClampV(Vector3 x, float max)
304 {
305 Vector3 ret = x;
306 float lenSq = x.LengthSquared();
307 if (lenSq > (max * max))
308 {
309 x = x / x.Length() * max;
310 }
311 return x;
312 }
313
302 // Inclusive, within range test (true if equal to the endpoints) 314 // Inclusive, within range test (true if equal to the endpoints)
303 public static bool InRange<T>(T x, T min, T max) 315 public static bool InRange<T>(T x, T min, T max)
304 where T : IComparable<T> 316 where T : IComparable<T>