using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Toolbox.Library.Animations
{
public enum STInterpoaltionType
{
Constant,
Step,
Linear,
Hermite,
}
///
/// Represents how a track is played after it reaches end frame.
/// Repeat repeats back from the start.
/// Mirror goes from the end frame to the start
///
public enum STLoopMode
{
Repeat,
Mirror,
Clamp,
}
///
/// Represents a class for animating a skeleton
///
public class STAnimation
{
///
/// The name of the animation.
///
public string Name { get; set; }
///
/// The frame to start playing the animation.
///
public float StartFrame { get; set; }
///
/// The current frame of the animation.
///
public float Frame { get; set; }
///
/// The total amount of frames to play in the animation.
///
public float FrameCount { get; set; }
///
/// Whether the animation will loop or not after
/// the playback rearches the total frame count.
///
public bool Loop { get; set; }
///
/// The step value when a frame advances.
///
public float Step { get; set; }
///
/// A list of groups that store the animation data.
///
public List AnimGroups = new List();
public void SetFrame(float frame)
{
Frame = frame;
}
public virtual void NextFrame()
{
if (Frame < StartFrame || Frame > FrameCount) return;
}
///
/// Resets the animation group values
/// This should clear values from tracks, or reset them to base values.
///
public virtual void Reset()
{
}
}
}