Browse Source

simplify parsing

pull/4180/head
Jumar Macato 6 years ago
parent
commit
4310585d7e
No known key found for this signature in database GPG Key ID: B19884DAC3A5BF3F
  1. 34
      src/Avalonia.Animation/Easing/Easing.cs
  2. 5
      src/Avalonia.Animation/Easing/SplineEasing.cs
  3. 5
      src/Avalonia.Animation/KeySpline.cs

34
src/Avalonia.Animation/Easing/Easing.cs

@ -28,39 +28,7 @@ namespace Avalonia.Animation.Easings
{
if (e.Contains(','))
{
var k = e.Split(',');
if (k.Count() != 4)
{
throw new FormatException($"SplineEasing only accepts exactly 4 arguments.");
}
var splineEase = new SplineEasing();
var setterArray = new Action<double>[4]
{
(x) => splineEase.X1 = x,
(x) => splineEase.Y1 = x,
(x) => splineEase.X2 = x,
(x) => splineEase.Y2 = x
};
for (int i = 0; i < 4; i++)
{
if (double.TryParse(k[i], NumberStyles.Any, CultureInfo.InvariantCulture, out var x))
{
setterArray[i](x);
}
else
{
throw new FormatException($"Parameter string \"{k[i]}\" is not a double.");
}
}
return splineEase;
return new SplineEasing(KeySpline.Parse(e, CultureInfo.InvariantCulture));
}
if (_easingTypes == null)

5
src/Avalonia.Animation/Easing/SplineEasing.cs

@ -68,6 +68,11 @@ namespace Avalonia.Animation.Easings
this.Y1 = y2;
}
public SplineEasing(KeySpline keySpline)
{
_internalKeySpline = keySpline;
}
public SplineEasing()
{
_internalKeySpline = new KeySpline();

5
src/Avalonia.Animation/KeySpline.cs

@ -81,7 +81,10 @@ namespace Avalonia.Animation
/// <returns>A <see cref="KeySpline"/> with the appropriate values set</returns>
public static KeySpline Parse(string value, CultureInfo culture)
{
using (var tokenizer = new StringTokenizer((string)value, CultureInfo.InvariantCulture, exceptionMessage: "Invalid KeySpline."))
if (culture is null)
culture = CultureInfo.InvariantCulture;
using (var tokenizer = new StringTokenizer((string)value, culture, exceptionMessage: $"Invalid KeySpline string: \"{value}\"."))
{
return new KeySpline(tokenizer.ReadDouble(), tokenizer.ReadDouble(), tokenizer.ReadDouble(), tokenizer.ReadDouble());
}

Loading…
Cancel
Save