Home
Categories
Dictionary
Glossary
Download
Project Details
Changes Log
What Links Here
FAQ
License

ARINC661 Animation Widgets



Animation widgets allows to perform animations on one of several properties of widgets.

List of animation widgets

Widget Type Widget ARINC ID Supplement Usage
AnimationTranslation A661_ANIMATION_TRANSLATION 6 A widget which allows to perform an animation on the position of a widget
AnimationRotation A661_ANIMATION_ROTATION 6 A widget which allows to perform an animation on the rotation angle of a widget
AnimationScale A661_ANIMATION_SCALE 6 A widget which allows to perform an animation on the scale on a widget
AnimationOnParam A661_ANIMATION_ONPARAM 6 A widget which allows to perform an animation on any widget parameter (including parameters which are not modifiable at runtime by the UA)
AnimationGroup A661_ANIMATION_GROUP 6 An animation widget which allows to group together sequentially or in parallel several animations

Generalities on animations

Animation widgets are not graphic widgets, but they animate other widgets defined in the widgets tree.
  • The widget ID on which on animation must apply is specified by the TargetWidgetID property
  • Starting, Aborting a running animation, or Ending the animation before it has been completed can be performed by setting the AnimationState parameter
  • The duration of the animation in ms is set with the Duration property
  • It is possible to delay the start of the animation after the Start with the Delay property (which indicates a delay in ms)
  • The animation can be repeated a number of time with the AnimationRepetition property. A value of 0 or 1 indicates no repetition (the animation will execute once), and the maximum value for ushort will indicate an indefinite repetition, meaning that the animation will continue until an Abort or End has been sent by the UA
  • The index of the animation law can be specified with the AnimationLawRef property
  • Usually the animation widgets specifies the initial value (the value of the parameter at the start of the animation, and the end value (the value that the parameter must have at the end of the animation)
  • The CDS sends back an A661_EVT_ANIMATION_STATUS_CHANGE event when the anmation has complete or has been aborted
For example, here we define a translation animation on a rectangle which will have a duration of 500 ms:
      <a661_widget name="gpRectangle" type="A661_GP_RECTANGLE">
         <model>
            <prop name="WidgetIdent" value="1" />
            <prop name="Anonymous" value="A661_FALSE" />
            <prop name="Visible" value="A661_TRUE" />
            <prop name="PosX" value="2000" />
            <prop name="PosY" value="2000" />
            <prop name="SizeX" value="2000" />
            <prop name="SizeY" value="2000" />
            <prop name="StyleSet" value="0" />
            <prop name="ColorIndex" value="blue" />
            <prop name="Filled" value="A661_TRUE" />
            <prop name="FillIndex" value="blue" />
            <prop name="Halo" value="A661_FALSE" />
         </model>
      </a661_widget>
      <a661_widget name="animationTranslation" type="A661_ANIMATION_TRANSLATION">
         <model>
            <prop name="WidgetIdent" value="2" />
            <prop name="Anonymous" value="A661_FALSE" />
            <prop name="TargetWidgetID" value="1" />
            <prop name="StyleSet" value="0" />
            <prop name="FromValueX" value="0" />
            <prop name="FromValueY" value="0" />
            <prop name="ToValueX" value="4000" />
            <prop name="ToValueY" value="4000" />
            <prop name="AnimationLawRef" value="0" />
            <prop name="Duration" value="500" />
            <prop name="Delay" value="0" />
            <prop name="AnimationRepetition" value="0" />
         </model>
      </a661_widget>

AnimationGroup

The A661_ANIMATION_GROUP widget allows to group several animations which must perform in parallel or sequentially. Starting the A661_ANIMATION_GROUP widget will start its animation sub-widgets.

For example here we start in parallel both a translation animation and a scale animation on a rectangle:
      <a661_widget name="gpRectangle" type="A661_GP_RECTANGLE">
         <model>
            <prop name="WidgetIdent" value="1" />
            <prop name="Anonymous" value="A661_FALSE" />
            <prop name="Visible" value="A661_TRUE" />
            <prop name="PosX" value="2000" />
            <prop name="PosY" value="2000" />
            <prop name="SizeX" value="2000" />
            <prop name="SizeY" value="2000" />
            <prop name="StyleSet" value="0" />
            <prop name="ColorIndex" value="blue" />
            <prop name="Filled" value="A661_TRUE" />
            <prop name="FillIndex" value="blue" />
            <prop name="Halo" value="A661_FALSE" />
         </model>
      </a661_widget>
      <a661_widget name="animationGroup" type="A661_ANIMATION_GROUP">
         <model>
            <prop name="WidgetIdent" value="2" />
            <prop name="Anonymous" value="A661_FALSE" />
            <prop name="Type" value="A661_PARALLEL" />
            <prop name="Delay" value="0" />
            <prop name="AnimationRepetition" value="0" />
         </model>
         <a661_widget name="animationTranslation" type="A661_ANIMATION_TRANSLATION">
            <model>
               <prop name="WidgetIdent" value="3" />
               <prop name="Anonymous" value="A661_FALSE" />
               <prop name="TargetWidgetID" value="1" />
               <prop name="StyleSet" value="0" />
               <prop name="FromValueX" value="0" />
               <prop name="FromValueY" value="0" />
               <prop name="ToValueX" value="4000" />
               <prop name="ToValueY" value="4000" />
               <prop name="AnimationLawRef" value="0" />
               <prop name="Duration" value="100" />
               <prop name="Delay" value="0" />
               <prop name="AnimationRepetition" value="0" />
            </model>
         </a661_widget>
         <a661_widget name="animationScale" type="A661_ANIMATION_SCALE">
            <model>
               <prop name="WidgetIdent" value="4" />
               <prop name="Anonymous" value="A661_FALSE" />
               <prop name="TargetWidgetID" value="1" />
               <prop name="StyleSet" value="0" />
               <prop name="FromScaleX" value="1.0" />
               <prop name="FromScaleY" value="1.0" />
               <prop name="ToScaleX" value="2.0" />
               <prop name="ToScaleY" value="2.0" />
               <prop name="AnimationLawRef" value="0" />
               <prop name="Duration" value="100" />
               <prop name="Delay" value="0" />
               <prop name="AnimationRepetition" value="0" />
            </model>
         </a661_widget>
      </a661_widget>

AnimationOnParam

A661_ANIMATION_ONPARAM widget allows to perform an animation on any widget parameter (including parameters which are not modifiable at runtime by the UA). For example it can be possible to animate the width of a A661_GP_LINE stroke. Applying this widget on non runtime parameters is implementation dependant. The parameter on which the animation will perform is specified by the TargetParamID property:
  • If the property value corresponds to the ushort ID of a parameter existing on this widget, then the animation will perform on on this parameter. For example, the 0xB1E0 value specifies the A661_FILL_INDEX parameter on the A661_GP_RECTANGLE widget, if we specify this value for the TargetParamID property of the rectangle, we will animate the fill Color of this rectangle from an initial value to a final value
  • If the property value does not corresponds to the ushort ID of a parameter existing on this widget, the actual property which will be animated on the widget is implementation dependant

See also


Categories: builtin-applis | uaappli

Copyright 2017-2020 Dassault Aviation. All Rights Reserved. Documentation and source under the LGPL v3 licence