using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace BansheeEngine { /** @addtogroup Animation * @{ */ /// Contains information about a currently playing animation clip. [StructLayout(LayoutKind.Sequential), SerializeObject] public partial struct AnimationClipState { /// Initializes the struct with default values. public static AnimationClipState Default() { AnimationClipState value = new AnimationClipState(); value.layer = 0; value.time = 0f; value.speed = 1f; value.weight = 1f; value.wrapMode = AnimWrapMode.Loop; value.stopped = false; return value; } /// Layer the clip is playing on. Multiple clips can be played simulatenously on different layers. public uint layer; /// Current time the animation is playing from. public float time; /// Speed at which the animation is playing. public float speed; /// Determines how much of an influence does the clip have on the final pose. public float weight; /// Determines what happens to other animation clips when a new clip starts playing. public AnimWrapMode wrapMode; /// /// Determines should the time be advanced automatically. Certain type of animation clips don't involve playback (e.g. /// for blending where animation weight controls the animation). /// public bool stopped; } /** @} */ }