From 72f338a729e248f3f152f9c999530504e62ad14e Mon Sep 17 00:00:00 2001 From: Yoshi Askharoun Date: Thu, 30 Jan 2025 14:32:06 -0600 Subject: [PATCH] Implement Interpolation encoding --- UIX/Microsoft/Iris/Animations/Interpolation.cs | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/UIX/Microsoft/Iris/Animations/Interpolation.cs b/UIX/Microsoft/Iris/Animations/Interpolation.cs index 1d41763..3157202 100644 --- a/UIX/Microsoft/Iris/Animations/Interpolation.cs +++ b/UIX/Microsoft/Iris/Animations/Interpolation.cs @@ -4,9 +4,11 @@ // MVID: A56C6C9D-B7F6-46A9-8BDE-B3D9B8D60B11 // Assembly location: C:\Program Files\Zune\UIX.dll +using System.Text; + namespace Microsoft.Iris.Animations { - public class Interpolation + public class Interpolation : IStringEncodable { public static readonly Interpolation Default = new Interpolation(InterpolationType.Linear); private InterpolationType _type; @@ -102,5 +104,19 @@ namespace Microsoft.Iris.Animations } public override int GetHashCode() => _type.GetHashCode() ^ _weight.GetHashCode() ^ _bezierHandle1.GetHashCode() ^ _bezierHandle2.GetHashCode() ^ _easePercent.GetHashCode(); + + public string EncodeString() + { + StringBuilder sb = new(Type.ToString()); + + if (Type is InterpolationType.Bezier) + sb.Append($", {BezierHandle1}, {BezierHandle2}"); + else if (Type is InterpolationType.EaseOut or InterpolationType.EaseIn) + sb.Append($", {Weight}, {EasePercent}"); + else if (Weight != 1.0) + sb.Append($", {Weight}"); + + return sb.ToString(); + } } }