diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 58344f30c8..45b5a105fd 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -70,6 +70,39 @@ namespace OpenSim.Framework
public static readonly Regex UUIDPattern
= new Regex("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$");
+ ///
+ /// Linear interpolates B<->C using percent A
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static double lerp(double a, double b, double c)
+ {
+ return (b*a) + (c*(1 - a));
+ }
+
+ ///
+ /// Bilinear Interpolate, see Lerp but for 2D using 'percents' X & Y.
+ /// Layout:
+ /// A B
+ /// C D
+ /// A<->C = Y
+ /// C<->D = X
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static double lerp2D(double x, double y, double a, double b, double c, double d)
+ {
+ return lerp(y, lerp(x, a, b), lerp(x, c, d));
+ }
+
+
///
/// Well known UUID for the blank texture used in the Linden SL viewer version 1.20 (and hopefully onwards)
///