Class LayerProperty<T>
Represents a property on a layer. Properties are saved in storage and can optionally be modified from the UI.
Note: You cannot initialize layer properties yourself. If properly placed and annotated, the Artemis core will
initialize these for you.
Inheritance
LayerProperty<T>
Assembly: Artemis.Core.dll
Syntax
public class LayerProperty<T> : CorePropertyChanged, ILayerProperty, IStorageModel, IDisposable
Type Parameters
Name |
Description |
T |
The type of property encapsulated in this layer property
|
Constructors
LayerProperty()
Declaration
protected LayerProperty()
Properties
BaseDataBinding
Declaration
public IDataBinding BaseDataBinding { get; }
Property Value
BaseValue
Gets or sets the base value of this layer property without any keyframes or data bindings applied
Declaration
public T BaseValue { get; set; }
Property Value
CurrentKeyframe
Gets the current keyframe in the timeline according to the current progress
Declaration
public LayerPropertyKeyframe<T>? CurrentKeyframe { get; protected set; }
Property Value
CurrentValue
Gets the current value of this property as it is affected by it's keyframes, updated once every frame
Declaration
public T CurrentValue { get; set; }
Property Value
DataBinding
Gets the data binding of this property
Declaration
public DataBinding<T> DataBinding { get; }
Property Value
DataBindingsSupported
Declaration
public bool DataBindingsSupported { get; }
Property Value
DefaultValue
Gets or sets the default value of this layer property. If set, this value is automatically applied if the property
has no value in storage
Declaration
public T DefaultValue { get; set; }
Property Value
HasDataBinding
Declaration
public bool HasDataBinding { get; }
Property Value
IsHidden
Declaration
public bool IsHidden { get; set; }
Property Value
IsLoadedFromStorage
Indicates whether the BaseValue was loaded from storage, useful to check whether a default value must be applied
Declaration
public bool IsLoadedFromStorage { get; }
Property Value
Keyframes
Gets a read-only list of all the keyframes on this layer property
Declaration
public ReadOnlyCollection<LayerPropertyKeyframe<T>> Keyframes { get; }
Property Value
KeyframesEnabled
Gets or sets whether keyframes are enabled on this property, has no effect if KeyframesSupported is
False
Declaration
public bool KeyframesEnabled { get; set; }
Property Value
KeyframesSupported
Gets whether keyframes are supported on this type of property
Declaration
public bool KeyframesSupported { get; protected set; }
Property Value
LayerPropertyGroup
Declaration
public LayerPropertyGroup LayerPropertyGroup { get; }
Property Value
NextKeyframe
Gets the next keyframe in the timeline according to the current progress
Declaration
public LayerPropertyKeyframe<T>? NextKeyframe { get; protected set; }
Property Value
Path
Declaration
public string Path { get; }
Property Value
ProfileElement
Declaration
public RenderProfileElement ProfileElement { get; }
Property Value
PropertyDescription
Declaration
public PropertyDescriptionAttribute PropertyDescription { get; }
Property Value
PropertyType
Declaration
public Type PropertyType { get; }
Property Value
UntypedKeyframes
Declaration
public ReadOnlyCollection<ILayerPropertyKeyframe> UntypedKeyframes { get; }
Property Value
Methods
AddKeyframe(LayerPropertyKeyframe<T>)
Adds a keyframe to the layer property
Declaration
public void AddKeyframe(LayerPropertyKeyframe<T> keyframe)
Parameters
AddUntypedKeyframe(ILayerPropertyKeyframe)
Declaration
public void AddUntypedKeyframe(ILayerPropertyKeyframe keyframe)
Parameters
ApplyDefaultValue()
Declaration
public void ApplyDefaultValue()
CreateKeyframeFromEntity(KeyframeEntity)
Declaration
public ILayerPropertyKeyframe? CreateKeyframeFromEntity(KeyframeEntity keyframeEntity)
Parameters
Type |
Name |
Description |
KeyframeEntity |
keyframeEntity |
|
Returns
Dispose()
Declaration
Dispose(bool)
Releases the unmanaged resources used by the object and optionally releases the managed resources.
Declaration
protected virtual void Dispose(bool disposing)
Parameters
Type |
Name |
Description |
bool |
disposing |
true to release both managed and unmanaged resources;
false to release only unmanaged resources.
|
Initialize(RenderProfileElement, LayerPropertyGroup, PropertyEntity, bool, PropertyDescriptionAttribute)
Declaration
public void Initialize(RenderProfileElement profileElement, LayerPropertyGroup group, PropertyEntity entity, bool fromStorage, PropertyDescriptionAttribute description)
Parameters
IsHiddenWhen<TP>(TP, Func<TP, bool>)
Set up a condition to hide the provided layer property when the condition evaluates to true
Note: overrides previous calls to IsHiddenWhen
and IsVisibleWhen
Declaration
public void IsHiddenWhen<TP>(TP layerProperty, Func<TP, bool> condition) where TP : ILayerProperty
Parameters
Type |
Name |
Description |
TP |
layerProperty |
The target layer property
|
Func<TP, bool> |
condition |
The condition to evaluate to determine whether to hide the current layer property
|
Type Parameters
Name |
Description |
TP |
The type of the target layer property
|
IsVisibleWhen<TP>(TP, Func<TP, bool>)
Set up a condition to show the provided layer property when the condition evaluates to true
Note: overrides previous calls to IsHiddenWhen
and IsVisibleWhen
Declaration
public void IsVisibleWhen<TP>(TP layerProperty, Func<TP, bool> condition) where TP : ILayerProperty
Parameters
Type |
Name |
Description |
TP |
layerProperty |
The target layer property
|
Func<TP, bool> |
condition |
The condition to evaluate to determine whether to hide the current layer property
|
Type Parameters
Name |
Description |
TP |
The type of the target layer property
|
Load()
Declaration
OnCurrentValueSet()
Declaration
protected virtual void OnCurrentValueSet()
OnInitialize()
Called when the layer property has been initialized
Declaration
protected virtual void OnInitialize()
OnKeyframeAdded(ILayerPropertyKeyframe)
Declaration
protected virtual void OnKeyframeAdded(ILayerPropertyKeyframe keyframe)
Parameters
OnKeyframeRemoved(ILayerPropertyKeyframe)
Declaration
protected virtual void OnKeyframeRemoved(ILayerPropertyKeyframe keyframe)
Parameters
OnKeyframesToggled()
Declaration
protected virtual void OnKeyframesToggled()
OnUpdated()
Declaration
protected virtual void OnUpdated()
OnVisibilityChanged()
Declaration
protected virtual void OnVisibilityChanged()
RemoveKeyframe(LayerPropertyKeyframe<T>)
Removes a keyframe from the layer property
Declaration
public void RemoveKeyframe(LayerPropertyKeyframe<T> keyframe)
Parameters
RemoveUntypedKeyframe(ILayerPropertyKeyframe)
Declaration
public void RemoveUntypedKeyframe(ILayerPropertyKeyframe keyframe)
Parameters
Save()
Saves the property to the underlying property entity
Declaration
SetCurrentValue(T, TimeSpan?)
Sets the current value, using either keyframes if enabled or the base value.
Declaration
public LayerPropertyKeyframe<T>? SetCurrentValue(T value, TimeSpan? time = null)
Parameters
Type |
Name |
Description |
T |
value |
The value to set.
|
TimeSpan? |
time |
An optional time to set the value add, if provided and property is using keyframes the value will be set to an new
or existing keyframe.
|
Returns
ToString()
Declaration
public override string ToString()
Returns
Overrides
Update(Timeline)
Declaration
public void Update(Timeline timeline)
Parameters
UpdateCurrentValue(float, float)
Called every update (if keyframes are both supported and enabled) to determine the new CurrentValue
based on the provided progress
Declaration
protected virtual void UpdateCurrentValue(float keyframeProgress, float keyframeProgressEased)
Parameters
Type |
Name |
Description |
float |
keyframeProgress |
The linear current keyframe progress
|
float |
keyframeProgressEased |
The current keyframe progress, eased with the current easing function
|
UpdateDataBinding()
Declaration
public void UpdateDataBinding()
Events
CurrentValueSet
Declaration
public event EventHandler<LayerPropertyEventArgs>? CurrentValueSet
Event Type
Disposed
Declaration
public event EventHandler? Disposed
Event Type
KeyframeAdded
Declaration
public event EventHandler<LayerPropertyKeyframeEventArgs>? KeyframeAdded
Event Type
KeyframeRemoved
Declaration
public event EventHandler<LayerPropertyKeyframeEventArgs>? KeyframeRemoved
Event Type
KeyframesToggled
Declaration
public event EventHandler<LayerPropertyEventArgs>? KeyframesToggled
Event Type
Updated
Declaration
public event EventHandler<LayerPropertyEventArgs>? Updated
Event Type
VisibilityChanged
Declaration
public event EventHandler<LayerPropertyEventArgs>? VisibilityChanged
Event Type
Implements