# Infinite Value Public API

## InterpolateInfVal

**namespace: InfiniteValue**

A static class containing methods allowing you to interpolate between two InfVal.

### static Methods

**Linear** Linearly interpolates.

public static InfVal Linear(in InfVal min, in InfVal max, float t, bool clamped = true)

Linearly interpolates between min and max by t.

Optionally allow the return value to go outside of the [min, max] range if t is outside of the [0, 1] range.

**SmoothStep** Interpolates with smoothing at the limits.

public static InfVal SmoothStep(in InfVal min, in InfVal max, float t, bool clamped = true)

Interpolates between min and max by t with smoothing at the limits.

Optionally allow the return value to go outside of the [min, max] range if t is outside of the [0, 1] range.

**EaseIn** Interpolates with a modifiable smoothing at the beggining.

public static InfVal EaseIn(in InfVal min, in InfVal max, float t, float easePower, bool clamped = true)

Interpolates between min and max by t with smoothing at the beggining.

The higher easePower is, the more smoothing will be applied. A value of 1 will not produce any smoothing.

Optionally allow the return value to go outside of the [min, max] range if t is outside of the [0, 1] range.

**EaseOut** Interpolates with a modifiable smoothing at the end.

public static InfVal EaseOut(in InfVal min, in InfVal max, float t, float easePower, bool clamped = true)

Interpolates between min and max by t with smoothing at the end.

The higher easePower is, the more smoothing will be applied. A value of 1 will not produce any smoothing.

Optionally allow the return value to go outside of the [min, max] range if t is outside of the [0, 1] range.

**EaseInAndOut** Interpolates with a modifiable smoothing at the limits.

public static InfVal EaseInAndOut(in InfVal min, in InfVal max, float t, float easePower, bool clamped = true)

Interpolates between min and max by t with smoothing at the limits.

The higher easePower is, the more smoothing will be applied. A value of 1 will not produce any smoothing.

Optionally allow the return value to go outside of the [min, max] range if t is outside of the [0, 1] range.

**LinearAngle** Angle version of Linear.

public static InfVal LinearAngle(in InfVal minAngle, in InfVal maxAngle, float t, bool clamped = true)

Same as Linear but makes sure the values interpolate correctly when they wrap around 360 degrees.br>

**SmoothStepAngle** Angle version of SmoothStep.

public static InfVal SmoothStepAngle(in InfVal minAngle, in InfVal maxAngle, float t, bool clamped = true)

Same as SmoothStep but makes sure the values interpolate correctly when they wrap around 360 degrees.br>

**EaseInAngle** Angle version of EaseIn.

public static InfVal EaseInAngle(in InfVal minAngle, in InfVal maxAngle, float t, float easePower, bool clamped = true)

Same as EaseIn but makes sure the values interpolate correctly when they wrap around 360 degrees.

**EaseOutAngle** Angle version of EaseOut.

public static InfVal EaseOutAngle(in InfVal minAngle, in InfVal maxAngle, float t, float easePower, bool clamped = true)

Same as EaseOut but makes sure the values interpolate correctly when they wrap around 360 degrees.

**EaseInAndOutAngle** Angle version of EaseInAndOut.

public static InfVal EaseInAndOutAngle(in InfVal minAngle, in InfVal maxAngle, float t, float easePower, bool clamped = true)

Same as EaseInAndOut but makes sure the values interpolate correctly when they wrap around 360 degrees.

**InverseLinear** Calculates the linear parameter that produces the given interpolant value.

public static float InverseLinear(in InfVal min, in InfVal max, in InfVal value)

Calculates the linear parameter t that produces the interpolant value within the range [min, max].