Patch T22084: Robert Penner Easing Equations for FCurves
authorJoshua Leung <aligorith@gmail.com>
Fri, 21 Mar 2014 13:50:24 +0000 (02:50 +1300)
committerJoshua Leung <aligorith@gmail.com>
Fri, 21 Mar 2014 14:00:27 +0000 (03:00 +1300)
commitdaccaa713b6e66af4b958fa373b31d557a4caa33
tree9e257e0b6d9e641ab3c9843304c9644ff9ca76ab
parent6e99fb04b6cccef4d5685184dfd0d1406fc6e624
Patch T22084: Robert Penner Easing Equations for FCurves

This commit introduces support for a number of new interpolation types
which are useful for motion-graphics work. These define a number of
"easing equations" (basically, equations which define some preset
ways that one keyframe transitions to another) which reduce the amount
of manual work (inserting and tweaking keyframes) to achieve certain
common effects. For example, snappy movements, and fake-physics such
as bouncing/springing effects.

The additional interpolation types introduced in this commit can be found
in many packages and toolkits (notably Qt and all modern web browsers).
For more info and a few live demos, see [1] and [2].

Credits:
* Dan Eicher (dna)              - Original patch
* Thomas Beck (plasmasolutions) - Porting/updating patch to 2.70 codebase
* Joshua Leung (aligorith)      - Code review and a few polishing tweaks

Additional Resources:
[1] http://easings.net
[2] http://www.robertpenner.com/easing/
16 files changed:
release/scripts/startup/bl_ui/space_graph.py
source/blender/blenkernel/intern/fcurve.c
source/blender/blenlib/BLI_math_easing.h [new file with mode: 0644]
source/blender/blenlib/CMakeLists.txt
source/blender/blenlib/intern/math_easing.c [new file with mode: 0644]
source/blender/editors/animation/keyframes_edit.c
source/blender/editors/include/ED_keyframes_edit.h
source/blender/editors/space_graph/graph_buttons.c
source/blender/editors/space_graph/graph_draw.c
source/blender/editors/space_graph/graph_edit.c
source/blender/editors/space_graph/graph_intern.h
source/blender/editors/space_graph/graph_ops.c
source/blender/makesdna/DNA_curve_types.h
source/blender/makesrna/RNA_enum_types.h
source/blender/makesrna/intern/rna_curve.c
source/blender/makesrna/intern/rna_fcurve.c