Browse Source

Reorganize namespaces

pull/2163/head
Jumar Macato 7 years ago
parent
commit
00167d61e2
No known key found for this signature in database GPG Key ID: B19884DAC3A5BF3F
  1. 1
      src/Avalonia.Animation/Animatable.cs
  2. 20
      src/Avalonia.Animation/Animation.cs
  3. 1
      src/Avalonia.Animation/AnimationInstance`1.cs
  4. 6
      src/Avalonia.Animation/Animators/Animator`1.cs
  5. 6
      src/Avalonia.Animation/Animators/DoubleAnimator.cs
  6. 3
      src/Avalonia.Animation/DisposeAnimationInstanceSubject.cs
  7. 0
      src/Avalonia.Animation/Easing/IEasing.cs
  8. 3
      src/Avalonia.Animation/Properties/AssemblyInfo.cs
  9. 0
      src/Avalonia.Animation/Transitions/DoubleTransition.cs
  10. 0
      src/Avalonia.Animation/Transitions/FloatTransition.cs
  11. 0
      src/Avalonia.Animation/Transitions/IntegerTransition.cs
  12. 40
      src/Avalonia.Visuals/Animation/Animators/ColorAnimator.cs
  13. 27
      src/Avalonia.Visuals/Animation/Animators/ThicknessAnimator.cs
  14. 8
      src/Avalonia.Visuals/Animation/Animators/TransformAnimator.cs
  15. 27
      src/Avalonia.Visuals/Animation/ThicknessAnimator.cs
  16. 0
      src/Avalonia.Visuals/Animation/Transitions/PointTransition.cs
  17. 0
      src/Avalonia.Visuals/Animation/Transitions/ThicknessTransition.cs
  18. 1
      src/Avalonia.Visuals/Media/Color.cs
  19. 1
      src/Avalonia.Visuals/Media/Transform.cs
  20. 1
      src/Avalonia.Visuals/Thickness.cs

1
src/Avalonia.Animation/Animatable.cs

@ -7,6 +7,7 @@ using System.Linq;
using System.Reactive.Linq;
using Avalonia.Collections;
using Avalonia.Data;
using Avalonia.Animation.Animators;
namespace Avalonia.Animation
{

20
src/Avalonia.Animation/Animation.cs

@ -7,6 +7,7 @@ using System.Linq;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Animation.Animators;
using Avalonia.Animation.Easings;
using Avalonia.Collections;
using Avalonia.Metadata;
@ -49,27 +50,22 @@ namespace Avalonia.Animation
/// </summary>
public Easing Easing { get; set; } = new LinearEasing();
/// <summary>
/// Gets or sets the delay time for this animation.
/// Gets or sets the initial delay time for this animation.
/// </summary>
/// <remarks>
/// Describes a delay to be added before the animation starts, and optionally between
/// repeats of the animation if <see cref="DelayBetweenIterations"/> is set.
/// </remarks>
public TimeSpan Delay { get; set; } = TimeSpan.Zero;
/// <summary>
/// Gets or sets the amount of delay time between iterations.
/// Gets or sets the delay time in between iterations.
/// </summary>
public TimeSpan DelayBetweenIterations { get; set; } = TimeSpan.Zero;
public static readonly DirectProperty<Animation, double> SpeedRatioProperty =
AvaloniaProperty.RegisterDirect<Animation, double>(
nameof(_speedRatio),
o => o._speedRatio,
(o, v) => o._speedRatio = v,
1d);
AvaloniaProperty.RegisterDirect<Animation, double>(
nameof(_speedRatio),
o => o._speedRatio,
(o, v) => o._speedRatio = v,
1d);
private double _speedRatio = 1d;

1
src/Avalonia.Animation/AnimationInstance`1.cs

@ -1,6 +1,7 @@
using System;
using System.Linq;
using System.Reactive.Linq;
using Avalonia.Animation.Animators;
using Avalonia.Animation.Utils;
using Avalonia.Data;
using Avalonia.Reactive;

6
src/Avalonia.Animation/Animator`1.cs → src/Avalonia.Animation/Animators/Animator`1.cs

@ -10,10 +10,10 @@ using Avalonia.Collections;
using Avalonia.Data;
using Avalonia.Reactive;
namespace Avalonia.Animation
namespace Avalonia.Animation.Animators
{
/// <summary>
/// Base class for KeyFrames objects
/// Base class for <see cref="Animator{T}"/> objects
/// </summary>
public abstract class Animator<T> : AvaloniaList<AnimatorKeyFrame>, IAnimator
{
@ -141,7 +141,7 @@ namespace Avalonia.Animation
/// <summary>
/// Interpolates a value given the desired time.
/// </summary>
protected abstract T Interpolate(double fraction, T start, T end);
public abstract T Interpolate(double progress, T oldValue, T newValue);
/// <summary>
/// Verifies, converts and sorts keyframe values according to this class's target type.

6
src/Avalonia.Animation/DoubleAnimator.cs → src/Avalonia.Animation/Animators/DoubleAnimator.cs

@ -1,7 +1,7 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
namespace Avalonia.Animation
namespace Avalonia.Animation.Animators
{
/// <summary>
/// Animator that handles <see cref="double"/> properties.
@ -9,9 +9,9 @@ namespace Avalonia.Animation
public class DoubleAnimator : Animator<double>
{
/// <inheritdocs/>
protected override double Interpolate(double fraction, double start, double end)
public override double Interpolate(double progress, double oldValue, double newValue)
{
return start + (fraction) * (end - start);
return oldValue + (progress) * (newValue - oldValue);
}
}
}

3
src/Avalonia.Animation/DisposeAnimationInstanceSubject.cs

@ -5,6 +5,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Reactive.Linq;
using Avalonia.Animation.Animators;
using Avalonia.Animation.Utils;
using Avalonia.Collections;
using Avalonia.Data;
@ -33,8 +34,6 @@ namespace Avalonia.Animation
this._onComplete = onComplete;
this._clock = clock;
}
public void Dispose()
{
_lastInstance?.Dispose();

0
src/Avalonia.Animation/IEasing.cs → src/Avalonia.Animation/Easing/IEasing.cs

3
src/Avalonia.Animation/Properties/AssemblyInfo.cs

@ -5,4 +5,5 @@ using Avalonia.Metadata;
using System.Reflection;
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Easings")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Easings")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Animators")]

0
src/Avalonia.Animation/DoubleTransition.cs → src/Avalonia.Animation/Transitions/DoubleTransition.cs

0
src/Avalonia.Animation/FloatTransition.cs → src/Avalonia.Animation/Transitions/FloatTransition.cs

0
src/Avalonia.Animation/IntegerTransition.cs → src/Avalonia.Animation/Transitions/IntegerTransition.cs

40
src/Avalonia.Visuals/Animation/ColorAnimator.cs → src/Avalonia.Visuals/Animation/Animators/ColorAnimator.cs

@ -5,7 +5,7 @@ using System;
using Avalonia.Logging;
using Avalonia.Media;
namespace Avalonia.Animation
namespace Avalonia.Animation.Animators
{
/// <summary>
/// Animator that interpolates <see cref="Color"/> through
@ -29,32 +29,32 @@ namespace Avalonia.Animation
return srgb <= 0.04045d ? srgb / 12.92d : (double)Math.Pow((srgb + 0.055d) / 1.055d, 2.4d);
}
protected override Color Interpolate(double fraction, Color start, Color end)
public override Color Interpolate(double progress, Color oldValue, Color newValue)
{
var startA = start.A / 255d;
var startR = start.R / 255d;
var startG = start.G / 255d;
var startB = start.B / 255d;
var oldA = oldValue.A / 255d;
var oldR = oldValue.R / 255d;
var oldG = oldValue.G / 255d;
var oldB = oldValue.B / 255d;
var endA = end.A / 255d;
var endR = end.R / 255d;
var endG = end.G / 255d;
var endB = end.B / 255d;
var newA = newValue.A / 255d;
var newR = newValue.R / 255d;
var newG = newValue.G / 255d;
var newB = newValue.B / 255d;
// convert from sRGB to linear
startR = EOCF_sRGB(startR);
startG = EOCF_sRGB(startG);
startB = EOCF_sRGB(startB);
oldR = EOCF_sRGB(oldR);
oldG = EOCF_sRGB(oldG);
oldB = EOCF_sRGB(oldB);
endR = EOCF_sRGB(endR);
endG = EOCF_sRGB(endG);
endB = EOCF_sRGB(endB);
newR = EOCF_sRGB(newR);
newG = EOCF_sRGB(newG);
newB = EOCF_sRGB(newB);
// compute the interpolated color in linear space
var a = startA + fraction * (endA - startA);
var r = startR + fraction * (endR - startR);
var g = startG + fraction * (endG - startG);
var b = startB + fraction * (endB - startB);
var a = oldA + progress * (newA - oldA);
var r = oldR + progress * (newR - oldR);
var g = oldG + progress * (newG - oldG);
var b = oldB + progress * (newB - oldB);
// convert back to sRGB in the [0..255] range
a = a * 255d;

27
src/Avalonia.Visuals/Animation/Animators/ThicknessAnimator.cs

@ -0,0 +1,27 @@
using System;
using Avalonia.Logging;
using Avalonia.Media;
namespace Avalonia.Animation.Animators
{
/// <summary>
/// Animator that handles <see cref="Thickness"/> properties.
/// </summary>
public class ThicknessAnimator : Animator<Thickness>
{
public override Thickness Interpolate(double progress, Thickness oldValue, Thickness newValue)
{
var deltaL = newValue.Left - oldValue.Left;
var deltaT = newValue.Top - oldValue.Top;
var deltaR = newValue.Right - oldValue.Right;
var deltaB = newValue.Bottom - oldValue.Bottom;
var nL = progress * deltaL + oldValue.Left;
var nT = progress * deltaT + oldValue.Right;
var nR = progress * deltaR + oldValue.Top;
var nB = progress * deltaB + oldValue.Bottom;
return new Thickness(nL, nT, nR, nB);
}
}
}

8
src/Avalonia.Visuals/Animation/TransformAnimator.cs → src/Avalonia.Visuals/Animation/Animators/TransformAnimator.cs

@ -2,7 +2,7 @@
using Avalonia.Logging;
using Avalonia.Media;
namespace Avalonia.Animation
namespace Avalonia.Animation.Animators
{
/// <summary>
/// Animator that handles <see cref="Transform"/> properties.
@ -73,9 +73,8 @@ namespace Avalonia.Animation
return null;
}
/// <inheritdocs/>
protected override double Interpolate(double fraction, double start, double end) => 0;
public override double Interpolate(double p, double o, double n) => 0;
void InitializeChildAnimator()
{
@ -88,6 +87,5 @@ namespace Avalonia.Animation
childAnimator.Property = Property;
}
}
}
}

27
src/Avalonia.Visuals/Animation/ThicknessAnimator.cs

@ -1,27 +0,0 @@
using System;
using Avalonia.Logging;
using Avalonia.Media;
namespace Avalonia.Animation
{
/// <summary>
/// Animator that handles <see cref="Thickness"/> properties.
/// </summary>
public class ThicknessAnimator : Animator<Thickness>
{
protected override Thickness Interpolate(double fraction, Thickness start, Thickness end)
{
var deltaL = end.Left - start.Left;
var deltaT = end.Top - start.Top;
var deltaR = end.Right - start.Right;
var deltaB = end.Bottom - start.Bottom;
var nL = fraction * deltaL + start.Left;
var nT = fraction * deltaT + start.Right;
var nR = fraction * deltaR + start.Top;
var nB = fraction * deltaB + start.Bottom;
return new Thickness(nL, nT, nR, nB);
}
}
}

0
src/Avalonia.Visuals/Animation/PointTransition.cs → src/Avalonia.Visuals/Animation/Transitions/PointTransition.cs

0
src/Avalonia.Visuals/Animation/ThicknessTransition.cs → src/Avalonia.Visuals/Animation/Transitions/ThicknessTransition.cs

1
src/Avalonia.Visuals/Media/Color.cs

@ -4,6 +4,7 @@
using System;
using System.Globalization;
using Avalonia.Animation;
using Avalonia.Animation.Animators;
namespace Avalonia.Media
{

1
src/Avalonia.Visuals/Media/Transform.cs

@ -3,6 +3,7 @@
using System;
using Avalonia.Animation;
using Avalonia.Animation.Animators;
using Avalonia.VisualTree;
namespace Avalonia.Media

1
src/Avalonia.Visuals/Thickness.cs

@ -4,6 +4,7 @@
using System;
using System.Globalization;
using Avalonia.Animation;
using Avalonia.Animation.Animators;
using Avalonia.Utilities;
namespace Avalonia

Loading…
Cancel
Save