Skip to main content

sm.util

The util library offers various math-related functions.

Functions

axesToQuat

sm.util.axesToQuat( xAxis, zAxis )

Constructs a quaternion from an X and Z axis.

Arguments:
Returns:
  • [ Quat ]: The created quaternion.

bezier2

sm.util.bezier2( c0, c1, c2, t )

Quadratic Bezier interpolation. One dimensional bezier curve.

Arguments:
  • c0 [ number ]: The start value.
  • c1 [ number ]: The control point.
  • c2 [ number ]: The the end value.
  • t [ number ]: The interpolation step.
Returns:
  • [ number ]: The interpolated value.

bezier2

sm.util.bezier2( c0, c1, c2, c3, t )

Cubic Bezier interpolation. One dimensional bezier curve.

Arguments:
  • c0 [ number ]: The start value.
  • c1 [ number ]: The first control point.
  • c2 [ number ]: The second control point.
  • c3 [ number ]: The the end value.
  • t [ number ]: The interpolation step.
Returns:
  • [ number ]: The interpolated value.

clamp

sm.util.clamp( value, min, max )

Restricts a value to a given range.

Arguments:
  • value [ number ]: The value.
  • min [ number ]: The lower limit.
  • max [ number ]: The upper limit.
Returns:
  • [ number ]: The clamped value.

easing

sm.util.easing( easing, p )

Applies an easing function to a given input.

Easing function names
linear
easeInQuad
easeOutQuad
easeInOutQuad
easeInCubic
easeOutCubic
easeInOutCubic
easeInQuart
easeOutQuart
easeInOutQuart
easeInQuint
easeOutQuint
easeInOutQuint
easeInSine
easeOutSine
easeInOutSine
easeInCirc
easeOutCirc
easeInOutCirc
easeInExpo
easeOutExpo
easeInOutExpo
easeInElastic
easeOutElastic
easeInOutElastic
easeInBack
easeOutBack
easeInOutBack
easeInBounce
easeOutBounce
easeInOutBounce
Arguments:
  • easing [ string ]: The easing function name.
  • p [ number ]: The easing function input.
Returns:
  • [ number ]: The output.

lerp

sm.util.lerp( a, b, t )

Linear interpolation between two values. This is known as a lerp.

Arguments:
  • a [ number ]: The first value.
  • b [ number ]: The second value.
  • t [ number ]: The interpolation step.
Returns:
  • [ number ]: The interpolated value.

positiveModulo

sm.util.positiveModulo( x, n )

Returns the positive remainder after division of x by n.

Arguments:
  • x [ integer ]: The number.
  • n [ integer ]: The modulo value.
Returns:
  • [ number ]: The value.

smootherstep

sm.util.smootherstep( edge0, edge1, x )

An improved version of the smoothstep function which has zero 1st and 2nd order derivatives at x = edge0 and x = edge1.

Arguments:
  • edge0 [ number ]: The value of the lower edge of the Hermite function.
  • edge1 [ number ]: The value of the upper edge of the Hermite function.
  • x [ number ]: The source value for interpolation.
Returns:
  • [ number ]: The value.

smoothstep

sm.util.smoothstep( edge0, edge1, x )

Performs smooth Hermite interpolation between 0 and 1 when edge0 < x < edge1.
This is useful in cases where a threshold function with a smooth transition is desired.

Arguments:
  • edge0 [ number ]: The value of the lower edge of the Hermite function.
  • edge1 [ number ]: The value of the upper edge of the Hermite function.
  • x [ number ]: The source value for interpolation.
Returns:
  • [ number ]: The value.