diff options
Diffstat (limited to 'Plugins/MonoGame.Extended/source/MonoGame.Extended.Tweening/LinearOperations.cs')
-rw-r--r-- | Plugins/MonoGame.Extended/source/MonoGame.Extended.Tweening/LinearOperations.cs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/Plugins/MonoGame.Extended/source/MonoGame.Extended.Tweening/LinearOperations.cs b/Plugins/MonoGame.Extended/source/MonoGame.Extended.Tweening/LinearOperations.cs new file mode 100644 index 0000000..12a03a8 --- /dev/null +++ b/Plugins/MonoGame.Extended/source/MonoGame.Extended.Tweening/LinearOperations.cs @@ -0,0 +1,21 @@ +using System; +using System.Linq.Expressions; + +namespace MonoGame.Extended.Tweening; + +public class LinearOperations<T> +{ + static LinearOperations() + { + var a = Expression.Parameter(typeof(T)); + var b = Expression.Parameter(typeof(T)); + var c = Expression.Parameter(typeof(float)); + Add = Expression.Lambda<Func<T, T, T>>(Expression.Add(a, b), a, b).Compile(); + Subtract = Expression.Lambda<Func<T, T, T>>(Expression.Subtract(a, b), a, b).Compile(); + Multiply = Expression.Lambda<Func<T, float, T>>(Expression.Multiply(a, c), a, c).Compile(); + } + + public static Func<T, T, T> Add { get; } + public static Func<T, T, T> Subtract { get; } + public static Func<T, float, T> Multiply { get; } +} |