using System; namespace Artemis.Core { public class LayerPropertyKeyframe : BaseLayerPropertyKeyframe { private LayerProperty _layerProperty; private TimeSpan _position; private T _value; public LayerPropertyKeyframe(T value, TimeSpan position, Easings.Functions easingFunction, LayerProperty layerProperty) : base(layerProperty) { _position = position; Value = value; LayerProperty = layerProperty; EasingFunction = easingFunction; } /// /// The layer property this keyframe is applied to /// public LayerProperty LayerProperty { get => _layerProperty; internal set => SetAndNotify(ref _layerProperty, value); } /// /// The value of this keyframe /// public T Value { get => _value; set => SetAndNotify(ref _value, value); } /// public override TimeSpan Position { get => _position; set { SetAndNotify(ref _position, value); LayerProperty.SortKeyframes(); } } /// public override void Remove() { LayerProperty.RemoveKeyframe(this); } } }