Murl Engine Lua Addon API  Version 1.0 beta
Murl.Math.Easing

The easing class implements the functions of the predefined IEnums::Interpolation curves.

Smoothstep functions description can be found at http://wikipedia.org/wiki/Smoothstep
Easing functions description can be found at http://easings.net


Table members

Functions


Murl.Math.Easing.Constant(x)

Constant interpolation. Function: f(x)=0

Number Constant(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.Linear(x)

Linear interpolation. Function: f(x)=x

Number Linear(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.SmoothstepInOut(x)

Smoothstep "in-out" interpolation. Function: f(x)=(x^2)*(3-2*x)

Number SmoothstepInOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.SmoothstepIn(x)

Smoothstep "in" interpolation. Function: f(x)=SmoothstepInOut(x/2)*2

Number SmoothstepIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.SmoothstepOut(x)

Smoothstep "out" interpolation. Function: f(x)=SmoothstepInOut((x+1)/2)*2-1

Number SmoothstepOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.SmoothstepOutIn(x)

Smoothstep "out-in" interpolation. Function: f(x)=(x < 0.5) ? SmoothstepInOut(x+0.5)-0.5 : SmoothstepInOut(x-0.5)+0.5

Number SmoothstepOutIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.SmootherstepInOut(x)

Smootherstep "in-out" interpolation. Function: f(x)=(x^3)*(x*(6*x-15)+10)

Number SmootherstepInOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.SmootherstepIn(x)

Smootherstep "in" interpolation. Function: f(x)=SmootherstepInOut(x/2)*2

Number SmootherstepIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.SmootherstepOut(x)

Smootherstep "out" interpolation. Function: f(x)=SmootherstepInOut((x+1)/2)*2-1

Number SmootherstepOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.SmootherstepOutIn(x)

Smootherstep "out-in" interpolation. Function: f(x)=(x < 0.5) ? SmootherstepInOut(x+0.5)-0.5 : SmootherstepInOut(x-0.5)+0.5

Number SmootherstepOutIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseIn(x)

Ease (cubic) "in" interpolation. Function: f(x)=x^3

Number EaseIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseOut(x)

Ease (cubic) "out" interpolation. Function: f(x)=1-EaseIn(1-x)

Number EaseOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseInOut(x)

Ease (cubic) "in-out" interpolation. Function: f(x)=(x < 0.5) ? EaseIn(2*x)/2 : 1-EaseIn(2-2*x)/2

Number EaseInOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseOutIn(x)

Ease (cubic) "out-in" interpolation. Function: f(x)=4*EaseIn(x-0.5)+0.5

Number EaseOutIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseQuartIn(x)

Ease Quart "in" interpolation. Function: f(x)=x^4

Number EaseQuartIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseQuartOut(x)

Ease Quart "out" interpolation. Function: f(x)=1-EaseQuartIn(1-x)

Number EaseQuartOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseQuartInOut(x)

Ease Quart "in-out" interpolation. Function: f(x)=(x < 0.5) ? EaseQuartIn(2*x)/2 : 1-EaseQuartIn(2-2*x)/2

Number EaseQuartInOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseQuartOutIn(x)

Ease Quart "out-in" interpolation. Function: f(x)=(x < 0.5) ? 0.5-EaseQuartIn(1-2*x)/2 : 0.5+EaseQuartIn(2*x-1)/2

Number EaseQuartOutIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseExponentialIn(x)

Ease Exponential "in" interpolation. Function: f(x)=(2^8x)*x/256

Number EaseExponentialIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseExponentialOut(x)

Ease Exponential "out" interpolation. Function: f(x)=1-EaseExponentialIn(1-x)

Number EaseExponentialOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseExponentialInOut(x)

Ease Exponential "in-out" interpolation. Function: f(x)=(x < 0.5) ? EaseExponentialIn(2*x)/2 : 1-EaseExponentialIn(2-2*x)/2

Number EaseExponentialInOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseExponentialOutIn(x)

Ease Exponential "out-in" interpolation. Function: f(x)=(x < 0.5) ? 0.5-EaseExponentialIn(1-2*x)/2 : 0.5+EaseExponentialIn(2*x-1)/2

Number EaseExponentialOutIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseCircularIn(x)

Ease Circular "in" interpolation. Function: f(x)=1-sqrt(1-x^2)

Number EaseCircularIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseCircularOut(x)

Ease Circular "out" interpolation. Function: f(x)=sqrt((2-x)*x)

Number EaseCircularOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseCircularHelper(x)

Ease Circular helper interpolation. Function: f(x)=sqrt(x-x^2)

Number EaseCircularHelper(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseCircularInOut(x)

Ease Circular "in-out" interpolation. Function: f(x)=(x < 0.5) ? 0.5-EaseCircularHelper(x+0.5) : 0.5+EaseCircularHelper(x-0.5)

Number EaseCircularInOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseCircularOutIn(x)

Ease Circular "out-in" interpolation. Function: f(x)=(x < 0.5) ? EaseCircularHelper(x) : 1-EaseCircularHelper(x)

Number EaseCircularOutIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseBackIn(x)

Ease Back "in" interpolation. Function: f(x)=(x^3)-x*sin(x*PI)

Number EaseBackIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseBackOut(x)

Ease Back "out" interpolation. Function: f(x)=1-EaseBackIn(1-x)

Number EaseBackOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseBackInOut(x)

Ease Back "in-out" interpolation. Function: f(x)=(x < 0.5) ? EaseBackIn(2*x)/2 : 1-EaseBackIn(2-2*x)/2

Number EaseBackInOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseBackOutIn(x)

Ease Back "out-in" interpolation. Function: f(x)=(x < 0.5) ? 0.5-EaseBackIn(1-2*x)/2 : 0.5+EaseBackIn(2*x-1)/2

Number EaseBackOutIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseElasticIn(x)

Ease Elastic "in" interpolation. Function: f(x)=sin(13*PI/2*x)*2^(10*(x-1))

Number EaseElasticIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseElasticOut(x)

Ease Elastic "out" interpolation. Function: f(x)=1-EaseElasticIn(1-x)

Number EaseElasticOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseElasticInOut(x)

Ease Elastic "in-out" interpolation. Function: f(x)=(x < 0.5) ? EaseElasticIn(2*x)/2 : 1-EaseElasticIn(2-2*x)/2

Number EaseElasticInOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseElasticOutIn(x)

Ease Elastic "out-in" interpolation. Function: f(x)=(x < 0.5) ? 0.5-EaseElasticIn(1-2*x)/2 : 0.5+EaseElasticIn(2*x-1)/2

Number EaseElasticOutIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseBounceOut(x)

Ease Bounce "out" interpolation. Function: f(x)= ... = a halve and three shrinking bounces

Number EaseBounceOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseBounceIn(x)

Ease Bounce "in" interpolation. Function: f(x)=1-EaseBounceOut(1-x) = three and a halve growing bounces

Number EaseBounceIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseBounceInOut(x)

Ease Bounce "in-out" interpolation. Function: f(x)=(x < 0.5) ? EaseBounceIn(2*x)/2 : 0.5+EaseBounceOut(2*x-1)/2

Number EaseBounceInOut(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).

Murl.Math.Easing.EaseBounceOutIn(x)

Ease Bounce "in-out" interpolation. Function: f(x)=(x < 0.5) ? EaseBounceOut(2*x)/2 : 0.5+EaseBounceIn(2*x-1)/2

Number EaseBounceOutIn(Number x)

Parameters
xThe value to interpolate in range [0 .. 1].
Returns
Number The result for f(x).