[animation] Implement new easing functions
authorEmmanuele Bassi <ebassi@linux.intel.com>
Tue, 20 Jan 2009 17:57:30 +0000 (17:57 +0000)
committerEmmanuele Bassi <ebassi@linux.intel.com>
Tue, 20 Jan 2009 17:57:30 +0000 (17:57 +0000)
commitec3b1a7b90314a13a9a4bed944e10f82183edcd5
tree9be0145776fec979b2f1bb41aa450234b03c8507
parent7d7372af43ec23d5c89c55ba57600a47bcd07471
[animation] Implement new easing functions

Instead of using our own homegrown alpha functions, we should
use the easing functions also shared by other animation frameworks,
like jQuery and Tween, in the interests of code portability.

The easing functions have been defined by Robert Penner and
are divided into three categories:

        In    Out     InOut

Each category has a particular curve:

        Quadratic
        Cubic
        Quartic
        Quintic
        Sinusoidal
        Exponential
        Circular

In addition, there are "physical" curves:

        Elastic
        Back (overshooting cubic)
        Bounce (exponentially decaying parabolic)

Finally, the Linear curve is also provided as a reference.

The functions are private, and are meant to be used only
through their logical id as provided by the AnimationMode
enumeration.

The tests should be updated as well to match the new
easing functions.
clutter/clutter-alpha.c
clutter/clutter-types.h
tests/interactive/test-animation.c
tests/interactive/test-easing.c