using System.Numerics; using GTweens.Easings; namespace GTweens.Interpolators { public sealed class SystemVector3Interpolator : IInterpolator { public static readonly SystemVector3Interpolator Instance = new(); SystemVector3Interpolator() { } public Vector3 Evaluate( Vector3 initialValue, Vector3 finalValue, float time, EasingDelegate easingDelegate ) { return new Vector3( easingDelegate(initialValue.X, finalValue.X, time), easingDelegate(initialValue.Y, finalValue.Y, time), easingDelegate(initialValue.Z, finalValue.Z, time) ); } public Vector3 Subtract(Vector3 initialValue, Vector3 finalValue) { return finalValue - initialValue; } public Vector3 Add(Vector3 initialValue, Vector3 finalValue) { return finalValue + initialValue; } } }