using System.Collections.ObjectModel; using System.Linq; namespace Artemis.Core.Models.Profile.LayerProperties { public class LayerProperty : BaseLayerProperty { public LayerProperty(Layer layer, BaseLayerProperty parent, string id, string name, string description) : base(layer, parent, id, name, description, typeof(T)) { } public T Value { get => (T) BaseValue; set => BaseValue = value; } /// /// A list of keyframes defining different values of the property in time, this list contains the strongly typed /// public ReadOnlyCollection> Keyframes => BaseKeyframes.Cast>().ToList().AsReadOnly(); /// /// Adds a keyframe to the property. /// /// The keyframe to remove public void AddKeyframe(Keyframe keyframe) { BaseKeyframes.Add(keyframe); } /// /// Removes a keyframe from the property. /// /// The keyframe to remove public void RemoveKeyframe(Keyframe keyframe) { BaseKeyframes.Remove(keyframe); } /// /// Removes all keyframes from the property. /// public void ClearKeyframes() { BaseKeyframes.Clear(); } } }