# sm.util.easing

Applies an easing function to a given input.

**Kind:** Function

**Environments:** Game, Terrain

## Game

### Game overload 1

``` { .lua .api-signature }
sm.util.easing( easingFunctionId, p )
```

[Open the full Game reference](../Game-Script-Environment/Static-Functions/sm.util.md#easing-integer-number)

**Parameters:**

| Name | Type | Description |
| --- | --- | --- |
| `easingFunctionId` | integer | The easing function to use. (See [sm.util.easingFunctionIds](../Game-Script-Environment/Static-Functions/sm.util.md#easingfunctionids)) |
| `p` | number | The easing function input. |

**Returns:**

| Type | Description |
| --- | --- |
| number | The output. |

### Game overload 2

``` { .lua .api-signature }
sm.util.easing( easing, p )
```

[Open the full Game reference](../Game-Script-Environment/Static-Functions/sm.util.md#easing-string-number)

Easing function names:

| Value |
| --- |
| <em>linear</em> |
| <em>easeInQuad</em> |
| <em>easeOutQuad</em> |
| <em>easeInOutQuad</em> |
| <em>easeInCubic</em> |
| <em>easeOutCubic</em> |
| <em>easeInOutCubic</em> |
| <em>easeInQuart</em> |
| <em>easeOutQuart</em> |
| <em>easeInOutQuart</em> |
| <em>easeInQuint</em> |
| <em>easeOutQuint</em> |
| <em>easeInOutQuint</em> |
| <em>easeInSine</em> |
| <em>easeOutSine</em> |
| <em>easeInOutSine</em> |
| <em>easeInCirc</em> |
| <em>easeOutCirc</em> |
| <em>easeInOutCirc</em> |
| <em>easeInExpo</em> |
| <em>easeOutExpo</em> |
| <em>easeInOutExpo</em> |
| <em>easeInElastic</em> |
| <em>easeOutElastic</em> |
| <em>easeInOutElastic</em> |
| <em>easeInBack</em> |
| <em>easeOutBack</em> |
| <em>easeInOutBack</em> |
| <em>easeInBounce</em> |
| <em>easeOutBounce</em> |
| <em>easeInOutBounce</em> |

**Parameters:**

| Name | Type | Description |
| --- | --- | --- |
| `easing` | string | The easing function name. |
| `p` | number | The easing function input. |

**Returns:**

| Type | Description |
| --- | --- |
| number | The output. |

## Terrain

### Terrain overload 1

``` { .lua .api-signature }
sm.util.easing( easingFunctionId, p )
```

[Open the full Terrain reference](../Terrain-Script-Environment/Static-Functions/sm.util.md#easing-integer-number)

**Parameters:**

| Name | Type | Description |
| --- | --- | --- |
| `easingFunctionId` | integer | The easing function to use. (See [sm.util.easingFunctionIds](../Terrain-Script-Environment/Static-Functions/sm.util.md#easingfunctionids)) |
| `p` | number | The easing function input. |

**Returns:**

| Type | Description |
| --- | --- |
| number | The output. |

### Terrain overload 2

``` { .lua .api-signature }
sm.util.easing( easing, p )
```

[Open the full Terrain reference](../Terrain-Script-Environment/Static-Functions/sm.util.md#easing-string-number)

Easing function names:

| Value |
| --- |
| <em>linear</em> |
| <em>easeInQuad</em> |
| <em>easeOutQuad</em> |
| <em>easeInOutQuad</em> |
| <em>easeInCubic</em> |
| <em>easeOutCubic</em> |
| <em>easeInOutCubic</em> |
| <em>easeInQuart</em> |
| <em>easeOutQuart</em> |
| <em>easeInOutQuart</em> |
| <em>easeInQuint</em> |
| <em>easeOutQuint</em> |
| <em>easeInOutQuint</em> |
| <em>easeInSine</em> |
| <em>easeOutSine</em> |
| <em>easeInOutSine</em> |
| <em>easeInCirc</em> |
| <em>easeOutCirc</em> |
| <em>easeInOutCirc</em> |
| <em>easeInExpo</em> |
| <em>easeOutExpo</em> |
| <em>easeInOutExpo</em> |
| <em>easeInElastic</em> |
| <em>easeOutElastic</em> |
| <em>easeInOutElastic</em> |
| <em>easeInBack</em> |
| <em>easeOutBack</em> |
| <em>easeInOutBack</em> |
| <em>easeInBounce</em> |
| <em>easeOutBounce</em> |
| <em>easeInOutBounce</em> |

**Parameters:**

| Name | Type | Description |
| --- | --- | --- |
| `easing` | string | The easing function name. |
| `p` | number | The easing function input. |

**Returns:**

| Type | Description |
| --- | --- |
| number | The output. |
