QuaternionKeyFrameAnimation Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before itβs released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
A time-based animation that targets the Orientation property with one or more key frames.
The QuaternionKeyFrameAnimation class is one of the supported types of KeyFrameAnimations that is used to animate the Orientation property on a Visual. Quaternions are a useful and sometimes simpler way to think about rotations β Quaternions take the shortest path between angles and avoid issues like Gimbal Lock that rotation angle/axis and rotation matrices run into. A Quaternion is made up of two components: a scalar and vector part.
public ref class QuaternionKeyFrameAnimation sealed : KeyFrameAnimation
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.LiftedContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class QuaternionKeyFrameAnimation final : KeyFrameAnimation
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
class QuaternionKeyFrameAnimation final : KeyFrameAnimation
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.LiftedContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class QuaternionKeyFrameAnimation : KeyFrameAnimation
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
public sealed class QuaternionKeyFrameAnimation : KeyFrameAnimation
Public NotInheritable Class QuaternionKeyFrameAnimation
Inherits KeyFrameAnimation
- Inheritance
-
Object Platform::Object IInspectable CompositionObject CompositionAnimation KeyFrameAnimation QuaternionKeyFrameAnimation
- Attributes
Examples
void QuaternionAnimation(SpriteVisual visual)
{
// Create the QuaternionKeyFrameAnimation
var quaternionKFA = _compositor.CreateQuaternionKeyFrameAnimation();
// Create a Quaternion that represents a 45 degree rotation around X Axis
Quaternion quaternion = new Quaternion(0.380f, 0f, 0.0f, 0.92f);
// Insert the Quaternion into the KeyFrame
quaternionKFA.InsertKeyFrame(1.0f, quaternion);
quaternionKFA.Duration = TimeSpan.FromSeconds(1);
// Attach to the Orientation property of Visual
visual.StartAnimation("Orientation", quaternionKFA);
}
Remarks
An animation is associated with an object's property by calling CompositionObject.StartAnimation and specifying the property name and the animation. See the remarks section of CompositionObject.StartAnimation for a list of animatable properties.
A Quaternion is made up of two distinguishable parts: A vector and scalar component. When using with KeyFrame Animations, the Quaternion can be defined by the notation of System.Numerics of 4 floats or a Vector3 and a scalar. System.Numerics provides constructors for either of these notations.
When translating a rotation into a Quaternion, you can utilize System.Numerics Quaternion helper functions that allow you to create Quaternions out of an Axis/Angle combo, Rotation Matrix or Yaw/Pitch/Roll. In the example above, the same Quaternion could be constructed from the below helper:
Quaternion quaternion = Quaternion.CreateFromAxisAngle(new Vector3(1.0f, 0.0f, 0.0f), 0.78f);
Properties
Comment |
A string to associate with the CompositionObject. (Inherited from CompositionObject) |
Compositor |
The Compositor used to create this CompositionObject. (Inherited from CompositionObject) |
DelayBehavior |
The delay behavior of the key frame animation. (Inherited from KeyFrameAnimation) |
DelayTime |
Delay before the animation starts after CompositionObject.StartAnimation is called. (Inherited from KeyFrameAnimation) |
Direction |
The direction the animation is playing. The Direction property allows you to drive your animation from start to end or end to start or alternate between start and end or end to start if animation has an IterationCount greater than one. This gives an easy way for customizing animation definitions. (Inherited from KeyFrameAnimation) |
DispatcherQueue |
Gets the DispatcherQueue for the CompositionObject. (Inherited from CompositionObject) |
Duration |
The duration of the animation. (Inherited from KeyFrameAnimation) |
ImplicitAnimations |
The collection of implicit animations attached to this object. (Inherited from CompositionObject) |
InitialValueExpressions |
Gets the initial values for the animation. (Inherited from CompositionAnimation) |
IterationBehavior |
The iteration behavior for the key frame animation. (Inherited from KeyFrameAnimation) |
IterationCount |
The number of times to repeat the key frame animation. (Inherited from KeyFrameAnimation) |
KeyFrameCount |
The number of key frames in the KeyFrameAnimation. (Inherited from KeyFrameAnimation) |
Properties |
The collection of properties associated with the CompositionObject. (Inherited from CompositionObject) |
StopBehavior |
Specifies how to set the property value when StopAnimation is called. (Inherited from KeyFrameAnimation) |
Target |
The target of the animation. (Inherited from CompositionAnimation) |
Methods
ClearAllParameters() |
Clears all of the parameters of the animation. (Inherited from CompositionAnimation) |
ClearParameter(String) |
Clears a parameter from the animation. (Inherited from CompositionAnimation) |
Close() |
Closes the CompositionObject and releases system resources. (Inherited from CompositionObject) |
Dispose() |
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. (Inherited from CompositionObject) |
InsertExpressionKeyFrame(Single, String, CompositionEasingFunction) |
Inserts an expression keyframe. (Inherited from KeyFrameAnimation) |
InsertExpressionKeyFrame(Single, String) |
Inserts an expression key frame. (Inherited from KeyFrameAnimation) |
InsertKeyFrame(Single, Quaternion, CompositionEasingFunction) |
Inserts a key frame with the specified easing function. |
InsertKeyFrame(Single, Quaternion) |
Inserts a key frame. |
PopulatePropertyInfo(String, AnimationPropertyInfo) |
Defines a property that can be animated. (Inherited from CompositionObject) |
SetBooleanParameter(String, Boolean) |
Sets a boolean value parameter for use with an ExpressionAnimation or an expression keyframe. (Inherited from CompositionAnimation) |
SetColorParameter(String, Color) |
Sets a Color value parameter for use with an ExpressionAnimation or an expression keyframe. (Inherited from CompositionAnimation) |
SetExpressionReferenceParameter(String, IAnimationObject) |
Sets an object that implements IAnimationObject as a reference parameter in an ExpressionAnimation. (Inherited from CompositionAnimation) |
SetMatrix3x2Parameter(String, Matrix3x2) |
Sets a Matrix3x2 value parameter for use with an ExpressionAnimation or an expression keyframe. (Inherited from CompositionAnimation) |
SetMatrix4x4Parameter(String, Matrix4x4) |
Sets a Matrix4x4 value parameter for use with an ExpressionAnimation or an expression keyframe. (Inherited from CompositionAnimation) |
SetQuaternionParameter(String, Quaternion) |
Sets a Quaternion value for use with an ExpressionAnimation or an expression keyframe. (Inherited from CompositionAnimation) |
SetReferenceParameter(String, CompositionObject) |
Sets a reference to a Composition object for use with an ExpressionAnimation or an expression keyframe. (Inherited from CompositionAnimation) |
SetScalarParameter(String, Single) |
Sets a Scalar value parameter for use with an ExpressionAnimation or an expression keyframe. (Inherited from CompositionAnimation) |
SetVector2Parameter(String, Vector2) |
Sets a Vector2 value parameter for use with an ExpressionAnimation or an expression keyframe. (Inherited from CompositionAnimation) |
SetVector3Parameter(String, Vector3) |
Sets a Vector3 value parameter for use with an ExpressionAnimation or an expression keyframe. (Inherited from CompositionAnimation) |
SetVector4Parameter(String, Vector4) |
Sets a Vector4 value parameter for use with an ExpressionAnimation or an expression keyframe. (Inherited from CompositionAnimation) |
StartAnimation(String, CompositionAnimation, AnimationController) |
Connects an animation with the specified property of the object and starts the animation. (Inherited from CompositionObject) |
StartAnimation(String, CompositionAnimation) |
Connects an animation with the specified property of the object and starts the animation. (Inherited from CompositionObject) |
StartAnimationGroup(ICompositionAnimationBase) |
Starts an animation group. The StartAnimationGroup method on CompositionObject lets you start CompositionAnimationGroup. All the animations in the group will be started at the same time on the object. (Inherited from CompositionObject) |
StopAnimation(String) |
Disconnects an animation from the specified property and stops the animation. (Inherited from CompositionObject) |
StopAnimationGroup(ICompositionAnimationBase) |
Stops an animation group. (Inherited from CompositionObject) |
TryGetAnimationController(String) |
Returns an AnimationController for the animation running on the specified property. (Inherited from CompositionObject) |