# all files / ol/ easing.js

76.92% Statements 10/13
0% Branches 0/2
80% Functions 4/5
76.92% Lines 10/13

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    631×

    1×
    57×

    1×
    57×

    1×
    147×

    1×
    46×

    1×

     goog.provide('ol.easing');

    /**
     * Start slow and speed up.
     * @param {number} t Input between 0 and 1.
     * @return {number} Output between 0 and 1.
     * @api
     */
    ol.easing.easeIn = function(t) {
      return Math.pow(t, 3);
    };

    /**
     * Start fast and slow down.
     * @param {number} t Input between 0 and 1.
     * @return {number} Output between 0 and 1.
     * @api
     */
    ol.easing.easeOut = function(t) {
      return 1 - ol.easing.easeIn(1 - t);
    };

    /**
     * Start slow, speed up, and then slow down again.
     * @param {number} t Input between 0 and 1.
     * @return {number} Output between 0 and 1.
     * @api
     */
    ol.easing.inAndOut = function(t) {
      return 3 * t * t - 2 * t * t * t;
    };

    /**
     * Maintain a constant speed over time.
     * @param {number} t Input between 0 and 1.
     * @return {number} Output between 0 and 1.
     * @api
     */
    ol.easing.linear = function(t) {
      return t;
    };

    /**
     * Start slow, speed up, and at the very end slow down again.  This has the
     * same general behavior as {@link ol.easing.inAndOut}, but the final slowdown
     * is delayed.
     * @param {number} t Input between 0 and 1.
     * @return {number} Output between 0 and 1.
     * @api
     */
    ol.easing.upAndDown = function(t) {
      if (t < 0.5) {
        return ol.easing.inAndOut(2 * t);
      } else {
        return 1 - ol.easing.inAndOut(2 * (t - 0.5));
      }
    };