summaryrefslogtreecommitdiff
path: root/sphinxdoc/animation.rst
diff options
context:
space:
mode:
Diffstat (limited to 'sphinxdoc/animation.rst')
-rw-r--r--sphinxdoc/animation.rst252
1 files changed, 252 insertions, 0 deletions
diff --git a/sphinxdoc/animation.rst b/sphinxdoc/animation.rst
new file mode 100644
index 0000000..84538b1
--- /dev/null
+++ b/sphinxdoc/animation.rst
@@ -0,0 +1,252 @@
+Animation
+=========
+
+.. automodule:: libavg.avg
+ :no-members:
+
+ .. inheritance-diagram:: AnimState ContinuousAnim EaseInOutAnim LinearAnim ParallelAnim StateAnim WaitAnim
+ :parts: 1
+
+ .. autoclass:: Anim
+
+ Base class for all animations.
+
+ .. py:method:: setStartCallback(pyfunc)
+
+ Sets a python callable to be invoked when the animation starts.
+ Corresponds to the constructor parameter startCallback.
+
+ .. py:method:: setStopCallback(pyfunc)
+
+ Sets a python callable to invoke when the animation has
+ finished running. Corresponds to the constructor parameter stopCallback.
+
+ .. py:method:: abort
+
+ Stops the animation.
+
+ .. py:method:: start(keepAttr)
+
+ Starts the animation.
+
+ :param keepAttr:
+
+ If this parameter is set to :py:const:`True`, the animation doesn't
+ set the attribute value when starting. Instead, it calculates a virtual
+ start time from the current attribute value and proceeds from there.
+
+ .. py:method:: isRunning
+
+ Returns :py:const:`True` if the animation is currently executing.
+
+ .. autoclass:: AnimState(name, anim, nextName="")
+
+ One state of a :py:class:`StateAnim`.
+
+ :param name:
+
+ The name of the state. Used in :py:meth:`StateAnim.setState` and
+ :py:meth:`StateAnim.getState()`.
+
+ :param anim: The child animation to run when this state is active.
+
+ :param nextName: The name of the state to enter when this state is done.
+
+ .. autoclass:: AttrAnim
+
+ .. autoclass:: ContinuousAnim(node, attrName, startValue, speed, [useInt=False, startCallback=None, stopCallback=None])
+
+ Class that animates an attribute of a libavg node continuously and
+ linearly. The animation will not stop until the :py:meth:`abort()` method is
+ called.
+
+ A possible use case is the continuous rotation of an object.
+
+ :param node: The libavg node object to animate.
+
+ :param attrName:
+
+ The name of the attribute to change.
+
+ :param startValue: Initial value of the attribute.
+
+ :param speed: Attribute change per second.
+
+ :param useInt:
+
+ If :py:const:`True`, the attribute is always set to an integer value.
+
+ :param startCallback: Python callable to invoke when the animation starts.
+
+ :param stopCallback:
+
+ Python callable to invoke when the animation has
+ finished running, either because abort was called or because
+ another animation for the same attribute was started.
+
+ .. autoclass:: EaseInOutAnim(node, attrName, duration, startValue, endValue, easeInDuration, easeOutDuration, [useInt=False, startCallback=None, stopCallback=None])
+
+ Class that animates an attribute of a libavg node. The animation proceeds
+ in three phases: ease-in, linear and ease-out. Start and end speed are
+ zero. Ease-in and ease-out phases have the shape of one quadrant of the
+ sine curve.
+
+ :param node: The libavg node object to animate.
+
+ :param attrName:
+
+ The name of the attribute to change.
+
+ :param duration: The length of the animation in milliseconds.
+
+ :param startValue: Initial value of the attribute.
+
+ :param endValue: Value of the attribute after duration has elapsed.
+
+ :param easeInDuration: The duration of the ease-in phase in milliseconds.
+
+ :param easeOutDuration:
+
+ The duration of the ease-out phase in milliseconds.
+
+ :param useInt:
+
+ If :py:const:`True`, the attribute is always set to an integer value.
+
+ :param startCallback: Python callable to invoke when the animation starts.
+
+ :param stopCallback:
+
+ Python callable to invoke when the animation has
+ finished running, either because it has run the allotted time, because
+ abort was called or because another animation for the same
+ attribute was started.
+
+ .. autoclass:: LinearAnim(node, attrName, duration, startValue, endValue, [useInt=False, startCallback=None, stopCallback=None])
+
+ Class that animates an attribute of a libavg node by interpolating
+ linearly between start and end values.
+
+ :param node: The libavg node object to animate.
+
+ :param attrName:
+
+ The name of the attribute to change.
+
+ :param duration: The length of the animation in milliseconds.
+
+ :param startValue: Initial value of the attribute.
+
+ :param endValue: Value of the attribute after duration has elapsed.
+
+ :param useInt:
+
+ If :py:const:`True`, the attribute is always set to an integer value.
+
+ :param startCallback: Python callable to invoke when the animation starts.
+
+ :param stopCallback:
+
+ Python callable to invoke when the animation has
+ finished running, either because it has run the allotted time, because
+ abort was called or because another animation for the same
+ attribute was started.
+
+ .. autoclass:: ParallelAnim(anims, [startCallback, stopCallback, maxAge])
+
+ Animation that executes several child animations at the same time. The
+ duration of the ParallelAnim is the maximum of the child's durations or
+ maxAge, whatever is shorter.
+
+ :param anims: A list of child animations.
+
+ :param startCallback: Python callable to invoke when the animation starts.
+
+ :param stopCallback:
+
+ Python callable to invoke when the animation has
+ finished running, either because it has run the allotted time or because
+ abort was called.
+
+ :param maxAge: The maximum duration of the animation in milliseconds.
+
+ .. py:method:: start(keepAttr)
+
+ Starts the animation by calling :py:meth:`start` for each of the child
+ animations.
+
+ :param keepAttr:
+
+ This parameter is passed to the child animations.
+
+ .. autoclass:: SimpleAnim
+
+ Base class for animations that change libavg node attributes by
+ interpolating over a set amount of time. If :py:meth:`Anim.abort()` isn't needed,
+ there is no need to hold on to the animation object after calling
+ :py:meth:`Anim.start` - it will exist exactly as long as the animation lasts and
+ then disappear.
+
+ The animation framework makes sure that only one animation per attribute
+ of a node runs at any given time. If a second one is started, the first
+ one is aborted.
+
+ .. autoclass:: StateAnim(states)
+
+ Animation that executes one of several child animations depending on its
+ current state. The state can be None, in which case no animation is
+ executed. None is the initial state. Note that changing the state of an
+ animation during a start or stop callback of a child animation is not
+ possible. An attempt to do so is silently ignored.
+
+ :param states: A list of AnimState objects.
+
+ .. py:method:: getState
+
+ .. py:method:: setDebug(debug)
+
+ Setting this to :py:const:`True` causes all state changes to be printed on
+ the console.
+
+ .. py:method:: setState
+
+ .. autoclass:: WaitAnim([duration=-1, startCallback, stopCallback])
+
+
+ Animation that simply does nothing for a specified duration. Useful
+ in the context of StateAnims.
+
+ :param duration: The length of the animation in milliseconds.
+
+ :param startCallback: Python callable to invoke when the animation starts.
+
+ :param stopCallback:
+
+ Python callable to invoke when the animation has
+ finished running, either because it has run the allotted time or because
+ abort was called.
+
+ .. py:method:: start
+
+ .. autofunction:: fadeIn(node, duration, [max=1.0, stopCallback])
+
+ Fades the opacity of a node.
+
+ :param node: The node to fade.
+ :param duration: Length of the fade in milliseconds.
+ :param max: The opacity of the node at the end of the fade.
+ :param stopCallback: Function to call when the fade is over.
+
+ .. autofunction:: fadeOut(node, duration, [stopCallback])
+
+ Fades the opacity of a node to zero.
+
+ :param node: The node to fade.
+ :param duration: Length of the fade in milliseconds.
+ :param stopCallback: Function to call when the fade is over.
+
+ .. autofunction:: getNumRunningAnims() -> int
+
+ Returns the total number of running attribute-based animations (this
+ includes LinearAnim, EaseInOutAnim and ContinuousAnim). Useful for
+ debugging memory leaks.