Inspired by jQuery.animate() properties can be interpolated using different easing functions and specifying an animation duration. Additionally animations can be chained to get table-based animations like with the current SGInterpolator, or also create looped animations or other more complicated curves. Currently this system is not used yet, but it is intended to replace SGInterpolator and allow more advanced animations of eg. also colors, for example, for the canvas.
36 lines
1.2 KiB
C++
36 lines
1.2 KiB
C++
// Easing functions for property interpolation.
|
|
//
|
|
// Copyright (C) 2013 Thomas Geymayer <tomgey@gmail.com>
|
|
//
|
|
// This library is free software; you can redistribute it and/or
|
|
// modify it under the terms of the GNU Library General Public
|
|
// License as published by the Free Software Foundation; either
|
|
// version 2 of the License, or (at your option) any later version.
|
|
//
|
|
// This library is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
// Library General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Library General Public
|
|
// License along with this library; if not, write to the Free Software
|
|
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
#ifndef SG_EASING_HXX_
|
|
#define SG_EASING_HXX_
|
|
|
|
namespace simgear
|
|
{
|
|
|
|
typedef double (*easing_func_t)(double);
|
|
struct EasingMapEntry { const char* name; easing_func_t func; };
|
|
|
|
/**
|
|
* List of all available easing functions and their names.
|
|
*/
|
|
extern const EasingMapEntry easing_functions[];
|
|
|
|
} // namespace simgear
|
|
|
|
#endif /* SG_EASING_HXX_ */
|