summaryrefslogtreecommitdiff
path: root/Plugins/MonoGame.Extended/source/MonoGame.Extended.Tweening/LinearTween.cs
blob: 8469a135e9610c7388dfb9d9448e8aee89e68bbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
namespace MonoGame.Extended.Tweening;

public class LinearTween<T>: Tween<T>
    where T: struct
{
    private T _range;

    internal LinearTween(object target, float duration, float delay, TweenMember<T> member, T endValue) : base(target, duration, delay, member, endValue)
    {
    }

    protected override void Initialize()
    {
        base.Initialize();
        _range = LinearOperations<T>.Subtract(_endValue, _startValue);
    }

    protected override void Interpolate(float n)
    {
        var value = LinearOperations<T>.Add(_startValue, LinearOperations<T>.Multiply(_range, n));
        Member.Value = value;
    }
}