You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
258 lines
4.8 KiB
JavaScript
258 lines
4.8 KiB
JavaScript
import Tween from "../ThirdParty/Tween.js";
|
|
|
|
/**
|
|
* Easing functions for use with TweenCollection. These function are from
|
|
* {@link https://github.com/sole/tween.js/|Tween.js} and Robert Penner. See the
|
|
* {@link http://sole.github.io/tween.js/examples/03_graphs.html|Tween.js graphs for each function}.
|
|
*
|
|
* @namespace
|
|
*/
|
|
var EasingFunction = {
|
|
/**
|
|
* Linear easing.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
LINEAR_NONE: Tween.Easing.Linear.None,
|
|
|
|
/**
|
|
* Quadratic in.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
QUADRATIC_IN: Tween.Easing.Quadratic.In,
|
|
/**
|
|
* Quadratic out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
QUADRATIC_OUT: Tween.Easing.Quadratic.Out,
|
|
/**
|
|
* Quadratic in then out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
QUADRATIC_IN_OUT: Tween.Easing.Quadratic.InOut,
|
|
|
|
/**
|
|
* Cubic in.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
CUBIC_IN: Tween.Easing.Cubic.In,
|
|
/**
|
|
* Cubic out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
CUBIC_OUT: Tween.Easing.Cubic.Out,
|
|
/**
|
|
* Cubic in then out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
CUBIC_IN_OUT: Tween.Easing.Cubic.InOut,
|
|
|
|
/**
|
|
* Quartic in.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
QUARTIC_IN: Tween.Easing.Quartic.In,
|
|
/**
|
|
* Quartic out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
QUARTIC_OUT: Tween.Easing.Quartic.Out,
|
|
/**
|
|
* Quartic in then out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
QUARTIC_IN_OUT: Tween.Easing.Quartic.InOut,
|
|
|
|
/**
|
|
* Quintic in.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
QUINTIC_IN: Tween.Easing.Quintic.In,
|
|
/**
|
|
* Quintic out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
QUINTIC_OUT: Tween.Easing.Quintic.Out,
|
|
/**
|
|
* Quintic in then out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
QUINTIC_IN_OUT: Tween.Easing.Quintic.InOut,
|
|
|
|
/**
|
|
* Sinusoidal in.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
SINUSOIDAL_IN: Tween.Easing.Sinusoidal.In,
|
|
/**
|
|
* Sinusoidal out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
SINUSOIDAL_OUT: Tween.Easing.Sinusoidal.Out,
|
|
/**
|
|
* Sinusoidal in then out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
SINUSOIDAL_IN_OUT: Tween.Easing.Sinusoidal.InOut,
|
|
|
|
/**
|
|
* Exponential in.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
EXPONENTIAL_IN: Tween.Easing.Exponential.In,
|
|
/**
|
|
* Exponential out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
EXPONENTIAL_OUT: Tween.Easing.Exponential.Out,
|
|
/**
|
|
* Exponential in then out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
EXPONENTIAL_IN_OUT: Tween.Easing.Exponential.InOut,
|
|
|
|
/**
|
|
* Circular in.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
CIRCULAR_IN: Tween.Easing.Circular.In,
|
|
/**
|
|
* Circular out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
CIRCULAR_OUT: Tween.Easing.Circular.Out,
|
|
/**
|
|
* Circular in then out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
CIRCULAR_IN_OUT: Tween.Easing.Circular.InOut,
|
|
|
|
/**
|
|
* Elastic in.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
ELASTIC_IN: Tween.Easing.Elastic.In,
|
|
/**
|
|
* Elastic out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
ELASTIC_OUT: Tween.Easing.Elastic.Out,
|
|
/**
|
|
* Elastic in then out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
ELASTIC_IN_OUT: Tween.Easing.Elastic.InOut,
|
|
|
|
/**
|
|
* Back in.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
BACK_IN: Tween.Easing.Back.In,
|
|
/**
|
|
* Back out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
BACK_OUT: Tween.Easing.Back.Out,
|
|
/**
|
|
* Back in then out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
BACK_IN_OUT: Tween.Easing.Back.InOut,
|
|
|
|
/**
|
|
* Bounce in.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
BOUNCE_IN: Tween.Easing.Bounce.In,
|
|
/**
|
|
* Bounce out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
BOUNCE_OUT: Tween.Easing.Bounce.Out,
|
|
/**
|
|
* Bounce in then out.
|
|
*
|
|
* @type {EasingFunction.Callback}
|
|
* @constant
|
|
*/
|
|
BOUNCE_IN_OUT: Tween.Easing.Bounce.InOut,
|
|
};
|
|
|
|
/**
|
|
* Function interface for implementing a custom easing function.
|
|
* @callback EasingFunction.Callback
|
|
* @param {Number} time The time in the range <code>[0, 1]</code>.
|
|
* @returns {Number} The value of the function at the given time.
|
|
*
|
|
* @example
|
|
* function quadraticIn(time) {
|
|
* return time * time;
|
|
* }
|
|
*
|
|
* @example
|
|
* function quadraticOut(time) {
|
|
* return time * (2.0 - time);
|
|
* }
|
|
*/
|
|
|
|
export default Object.freeze(EasingFunction);
|