clamp(value, min, max) → numberengineMath.js:117Clamps the value between max and min
valuenumberminnumber optional, default 0maxnumber optional, default 1
LittleJS Math Classes and Functions
clamp(value, min, max) → numberengineMath.js:117Clamps the value between max and min
value numbermin number optional, default 0max number optional, default 1collideBoxBox(posA, sizeA, posB, sizeB) → Vector2|undefinedengineMath.js:323Returns the vector to move box A by so it no longer overlaps box B, the shortest way out, or undefined
collideCircleBox(pos, radius, boxPos, boxSize) → Vector2|undefinedengineMath.js:302Returns the vector to move a circle out of an axis aligned box, or undefined
collideCircleCircle(posA, radiusA, posB, radiusB) → Vector2|undefinedengineMath.js:285Returns the vector to move circle A by so it no longer overlaps circle B, or undefined
distanceAngle(angleA, angleB) → numberengineMath.js:177Returns signed wrapped distance between the two angles passed in
angleA numberangleB numberdistanceWrap(valueA, valueB, wrapSize) → numberengineMath.js:155Returns signed wrapped distance between the two values passed in
valueA numbervalueB numberwrapSize number optional, default 1hsl(h, s, l, a) → ColorengineMath.js:970Create a color object with HSLA values, white by default
h number optional, default 0hue
s number optional, default 0saturation
l number optional, default 1lightness
a number optional, default 1alpha
isIntersecting(start, end, pos, size) → booleanengineMath.js:238Returns true if a line segment is intersecting an axis aligned box
start Vector2Start of raycast
end Vector2End of raycast
pos Vector2Center of box
size Vector2Size of box
isNumber(n) → booleanengineMath.js:369Check if object is a valid number, not NaN or undefined, but it may be infinite
n anyisOverlapping(posA, sizeA, posB, sizeB) → booleanengineMath.js:221Returns true if two axis aligned bounding boxes are overlapping this can be used for simple collision detection between objects
posA Vector2Center of box A
sizeA Vector2Size of box A
posB Vector2Center of box B
sizeB Vector2 optional, default vec2()Size of box B, uses a point if undefined
isPowerOfTwo(value) → booleanengineMath.js:201Checks if the value passed in is a power of two
value numberisStringLike(s) → booleanengineMath.js:380Check if a value is stringifiable — i.e. it has a toString that returns
a string. Use this for ASSERTs and inputs that will be coerced to text;
use typeof x === 'string' inline if you need strict-string semantics.
s anylerp(valueA, valueB, percent) → numberengineMath.js:134Linearly interpolates between values passed in using percent, percent is clamped to 0-1
valueA numbervalueB numberpercent numberlerpAngle(angleA, angleB, percent) → numberengineMath.js:185Linearly interpolates between the angles passed in with wrapping, percent is clamped to 0-1
angleA numberangleB numberpercent numberlerpWrap(valueA, valueB, percent, wrapSize) → numberengineMath.js:169Linearly interpolates between values passed in with wrapping, percent is clamped to 0-1
valueA numbervalueB numberpercent numberwrapSize number optional, default 1lineTest(posStart, posEnd, testFunction, normal) → Vector2|undefinedengineMath.js:403Casts a ray and returns position of the first collision found, or undefined if none are found
posStart Vector2posEnd Vector2testFunction LineTestFunctionCheck if colliding
normal Vector2 optionalOptional vector to store the normal
mod(dividend, divisor) → numberengineMath.js:109Returns first param modulo the second param, but adjusted so negative numbers work as expected
dividend numberdivisor number optional, default 1nearestPowerOfTwo(value) → numberengineMath.js:207Returns the nearest whole power of two not less than the value, 1 for a value of 1 or less
value numberoscillate(frequency, amplitude, t, offset, type) → numberengineMath.js:348Returns an oscillating wave between 0 and amplitude with frequency of 1 Hz by default
frequency number optional, default 1Frequency of the wave in Hz
amplitude number optional, default 1Amplitude (max height) of the wave
t number optional, default timeValue to use for time of the wave
offset number optional, default 0Value to use for time offset of the wave
type number optional, default 0Wave type: 0=sine, 1=triangle, 2=square, 3=sawtooth
percent(value, valueA, valueB) → numberengineMath.js:125Returns what percentage the value is between valueA and valueB, clamped to 0-1
value numbervalueA numbervalueB numberpercentLerp(value, percentA, percentB, lerpA, lerpB) → numberengineMath.js:146Gets percent between percentA and percentB and linearly interpolates between lerpA and lerpB A shortcut for lerp(lerpA, lerpB, percent(value, percentA, percentB))
value numberpercentA numberpercentB numberlerpA numberlerpB numberrgb(r, g, b, a) → ColorengineMath.js:946Create a color object with RGBA values, white by default
r number optional, default 1red
g number optional, default 1green
b number optional, default 1blue
a number optional, default 1alpha
smoothStep(percent) → numberengineMath.js:191Applies smoothstep function to the percentage value, clamped between 0 and 1
percent numbervec2(x, y) → Vector2engineMath.js:680Create a 2d vector, can take 1 or 2 scalar values
x number optional, default 0y number optionalif y is undefined, x is used for both
let a = vec2(0, 1); // vector with coordinates (0, 1)
a = vec2(5); // set a to (5, 5)
b = vec2(); // set b to (0, 0)BLACK : ColorengineMath.js:1247Color - Black #000000
BLUE : ColorengineMath.js:1287Color - Blue #0000ff
CLEAR_BLACK : ColorengineMath.js:1252Color - Clear Black #00000000 with 0 alpha
CLEAR_WHITE : ColorengineMath.js:1242Color - Clear White #ffffff00 with 0 alpha
CYAN : ColorengineMath.js:1282Color - Cyan #00ffff
GRAY : ColorengineMath.js:1257Color - Gray #808080
GREEN : ColorengineMath.js:1277Color - Green #00ff00
MAGENTA : ColorengineMath.js:1297Color - Magenta #ff00ff
ORANGE : ColorengineMath.js:1267Color - Orange #ff8000
PI : number default Math.PIengineMath.js:23The value of PI
PURPLE : ColorengineMath.js:1292Color - Purple #8000ff
RED : ColorengineMath.js:1262Color - Red #ff0000
WHITE : ColorengineMath.js:1237Color - White #ffffff
YELLOW : ColorengineMath.js:1272Color - Yellow #ffff00
LineTestFunction(pos)engineMath.js:389pos Vector2