Example #1
0
    /// <summary>
    /// Simply interface for getting interpolated value.
    /// </summary>
    /// <returns>Interpolated value.</returns>
    /// <param name="t">Input value (0 to 1).</param>
    /// <param name="easeFunction">Ease function.</param>
    /// <param name="easeType">Ease type.</param>
    public static float GetInterpolated(float t, EASE_FUNCTION easeFunction, EASE_TYPE easeType)
    {
        switch (easeFunction)
        {
        case EASE_FUNCTION.Back:
            switch (easeType)
            {
            case EASE_TYPE.EaseIn: return(Easing.Back.easeIn(t));

            case EASE_TYPE.EaseOut: return(Easing.Back.easeOut(t));

            case EASE_TYPE.EaseInOut: return(Easing.Back.easeInOut(t));
            }
            break;

        case EASE_FUNCTION.Bounce:
            switch (easeType)
            {
            case EASE_TYPE.EaseIn: return(Easing.Bounce.easeIn(t));

            case EASE_TYPE.EaseOut: return(Easing.Bounce.easeOut(t));

            case EASE_TYPE.EaseInOut: return(Easing.Bounce.easeInOut(t));
            }
            break;

        case EASE_FUNCTION.Circ:
            switch (easeType)
            {
            case EASE_TYPE.EaseIn: return(Easing.Circ.easeIn(t));

            case EASE_TYPE.EaseOut: return(Easing.Circ.easeOut(t));

            case EASE_TYPE.EaseInOut: return(Easing.Circ.easeInOut(t));
            }
            break;

        case EASE_FUNCTION.Cubic:
            switch (easeType)
            {
            case EASE_TYPE.EaseIn: return(Easing.Cubic.easeIn(t));

            case EASE_TYPE.EaseOut: return(Easing.Cubic.easeOut(t));

            case EASE_TYPE.EaseInOut: return(Easing.Cubic.easeInOut(t));
            }
            break;

        case EASE_FUNCTION.Elastic:
            switch (easeType)
            {
            case EASE_TYPE.EaseIn: return(Easing.Elastic.easeIn(t));

            case EASE_TYPE.EaseOut: return(Easing.Elastic.easeOut(t));

            case EASE_TYPE.EaseInOut: return(Easing.Elastic.easeInOut(t));
            }
            break;

        case EASE_FUNCTION.Expo:
            switch (easeType)
            {
            case EASE_TYPE.EaseIn: return(Easing.Expo.easeIn(t));

            case EASE_TYPE.EaseOut: return(Easing.Expo.easeOut(t));

            case EASE_TYPE.EaseInOut: return(Easing.Expo.easeInOut(t));
            }
            break;

        case EASE_FUNCTION.Linear:
            switch (easeType)
            {
            case EASE_TYPE.EaseIn: return(Easing.Linear.easeIn(t));

            case EASE_TYPE.EaseOut: return(Easing.Linear.easeOut(t));

            case EASE_TYPE.EaseInOut: return(Easing.Linear.easeInOut(t));
            }
            break;

        case EASE_FUNCTION.Quad:
            switch (easeType)
            {
            case EASE_TYPE.EaseIn: return(Easing.Quad.easeIn(t));

            case EASE_TYPE.EaseOut: return(Easing.Quad.easeOut(t));

            case EASE_TYPE.EaseInOut: return(Easing.Quad.easeInOut(t));
            }
            break;

        case EASE_FUNCTION.Quart:
            switch (easeType)
            {
            case EASE_TYPE.EaseIn: return(Easing.Quart.easeIn(t));

            case EASE_TYPE.EaseOut: return(Easing.Quart.easeOut(t));

            case EASE_TYPE.EaseInOut: return(Easing.Quart.easeInOut(t));
            }
            break;

        case EASE_FUNCTION.Quint:
            switch (easeType)
            {
            case EASE_TYPE.EaseIn: return(Easing.Quint.easeIn(t));

            case EASE_TYPE.EaseOut: return(Easing.Quint.easeOut(t));

            case EASE_TYPE.EaseInOut: return(Easing.Quint.easeInOut(t));
            }
            break;

        case EASE_FUNCTION.Sine:
            switch (easeType)
            {
            case EASE_TYPE.EaseIn: return(Easing.Sine.easeIn(t));

            case EASE_TYPE.EaseOut: return(Easing.Sine.easeOut(t));

            case EASE_TYPE.EaseInOut: return(Easing.Sine.easeInOut(t));
            }
            break;
        }
        return(t);
    }
        public static float Evaluate(EASE_TYPE ease, float v)
        {
            switch (ease)
            {
            case EASE_TYPE.QUAD_IN:
                return(quadIn(v));

            case EASE_TYPE.QUAD_OUT:
                return(quadOut(v));

            case EASE_TYPE.QUAD_INOUT:
                return(quadInOut(v));

            case EASE_TYPE.CUBE_IN:
                return(cubeIn(v));

            case EASE_TYPE.CUBE_OUT:
                return(cubeOut(v));

            case EASE_TYPE.CUBE_INOUT:
                return(cubeInOut(v));

            case EASE_TYPE.QUART_IN:
                return(quartIn(v));

            case EASE_TYPE.QUART_OUT:
                return(quartOut(v));

            case EASE_TYPE.QUART_INOUT:
                return(quartInOut(v));

            case EASE_TYPE.QUINT_IN:
                return(quintIn(v));

            case EASE_TYPE.QUINT_OUT:
                return(quintOut(v));

            case EASE_TYPE.QUINT_INOUT:
                return(quintInOut(v));

            case EASE_TYPE.SINE_IN:
                return(sineIn(v));

            case EASE_TYPE.SINE_OUT:
                return(sineOut(v));

            case EASE_TYPE.SINE_INOUT:
                return(sineInOut(v));

            case EASE_TYPE.BOUNCE_IN:
                return(bounceIn(v));

            case EASE_TYPE.BOUNCE_OUT:
                return(bounceOut(v));

            case EASE_TYPE.BOUNCE_INOUT:
                return(bounceInOut(v));

            case EASE_TYPE.CIRC_IN:
                return(circIn(v));

            case EASE_TYPE.CIRC_OUT:
                return(circOut(v));

            case EASE_TYPE.CIRC_INOUT:
                return(circInOut(v));

            case EASE_TYPE.EXPO_IN:
                return(expoIn(v));

            case EASE_TYPE.EXPO_OUT:
                return(expoOut(v));

            case EASE_TYPE.EXPO_INOUT:
                return(expoInOut(v));

            case EASE_TYPE.BACK_IN:
                return(backIn(v));

            case EASE_TYPE.BACK_OUT:
                return(backOut(v));

            case EASE_TYPE.BACK_INOUT:
                return(backInOut(v));

            default:
                return(linear(v));
            }
        }