A collection of functions and classes for creative coding and interactive projects
npm install @pangenerator/utils

PID controller
ArrayCopy array
ArrayShuffle array
ArrayFilter array unique
ArrayFuzzy search element in list
booleanCheck if array contains
StringLinear color interpolation
ArrayGet quarter from date
ArrayGet quarter extent
ArrayGet all dates between two dates
PointLinear interpolation in 3D
Array.<Point>Linear interpolation in 3D array
NumberDistance between two points (2D and 3D)
Point | BooleanFind intersection point between two lines
Array | BooleanFind intersection points between two circles
PointConvert coordinates from polar to cartesian
ObjectConvert coordinates from cartesian to polar
NumberDistance between two points (2D and 3D) squared
NumberDistance between point and segment squared
NumberDistance between point and segment
NumberMap a number from one range to another
NumberClamp a number to range
NumberNormalize a number
NumberLinear interpolation
NumberSquare
NumberConvert angle in radians to degrees
NumberConvert angle in degrees to radians
NumberRound number to precision
ObjectCopy object excluding property
NumberGenerate random number from range
NumberGenerate random direction (-1 or 1)
NumberGenerate random index
StringGenerate random name
StringGenerate timestamp name
StringRemove polish diacritics
StringRemove all non alphanumeric characters
ArraySplit string to N sized chunks
stringConvert string to custom separator case
stringConvert string to snake case
stringConvert string to kebab case
stringConvert string to camel case
* PID
* .set(P, I, D)
* .update(current, target) ⇒ number
*
Kind: instance method of PID
Params
- P number = 0 - Proportional Gain
- I number = 0 - Integral Gain
- D number = 0 - Derivative Gain
*
Kind: instance method of PID
Returns: number - Output value
Params
- current number - Current value
- target number - Target value
*
ArrayKind: global constant
Returns: Array - copy of the array
Params
- source Array - source array
*
ArrayKind: global constant
Returns: Array - shuffled array copy
Params
- source Array - source array
*
ArrayKind: global constant
Returns: Array - array with unique elements only
Params
- source Array - source array
*
ArrayKind: global constant
Returns: Array - elements matching search value
Params
- list Array - Array of terms
- searchValue String - search value to find
*
booleanKind: global constant
Returns: boolean - - true when element is in array
Params
- elem any - element to find in array
- arr Array - array to look in
*
StringKind: global constant
Returns: String - Interpolated color
Params
- a String - First color
- b String - Second color
- amt Number - amount to interpolate
*
ArrayKind: global constant
Returns: Array - year and quarter (1-4)
Params
- d Date - Date to get quarter from
*
ArrayKind: global constant
Returns: Array - start and end date of quarter
Params
- quarter Number - quarter (1-4)
- year Number - full year
*
ArrayKind: global constant
Returns: Array - all dates between start and end
Params
- start Date - start date
- end Date - end date
*
PointKind: global constant
Returns: Point - Interpolated point
Params
- A Point - First point
- B Point - Second point
- amt Number - amount to interpolate
*
Array.<Point>Kind: global constant
Returns: Array.<Point> - Interpolated points
Params
- A Point - First point
- B Point - Second point
- count Number - Point count
*
NumberKind: global constant
Returns: Number - distance between the points
Params
- A Point - First point
- B Point - Second point
*
Point \| BooleanKind: global constant
Returns: Point \| Boolean - intersection or false (if no intersection)
Params
- p1 Point - first point of first line
- p2 Point - second point of first line
- p3 Point - first point of second line
- p4 Point - second point of second line
*
Array \| BooleanKind: global constant
Returns: Array \| Boolean - intersection or false (if no intersection)
Params
- c1 Circle - first circle
- c2 Circle - second circle
*
PointKind: global constant
Returns: Point - cartesian coordinates
Params
- r Number - radius
- angle Number - angle
*
ObjectKind: global constant
Returns: Object - polar coordinates
Params
- P Point - cartesian coordinates
*
NumberKind: global constant
Returns: Number - squared distance between the points
Params
- A Point - First point
- B Point - Second point
*
NumberKind: global constant
Returns: Number - squared distance between the point and the segment
Params
- A Point - First point
- S Point - Segment start
- E Point - Segment end
*
NumberKind: global constant
Returns: Number - distance between the point and the segment
Params
- A Point - First point
- S Point - Segment start
- E Point - Segment end
*
NumberKind: global constant
Returns: Number - Mapped number
Params
- value Number - Number to map
- low1 Number - Source range lower bound
- high1 Number - Source range upper bound
- low2 Number - Target range lower bound
- high2 Number - Target range upper bound
*
NumberKind: global constant
Returns: Number - Clamped number
Params
- value Number - Number to clamp
- min Number - Range lower bound
- max Number - Range upper bound
*
NumberKind: global constant
Returns: Number - normalized number (0.0 - 1.0)
Params
- value Number - value to normalize
- start Number - Source range lower bound
- stop Number - Source range upper bound
*
NumberKind: global constant
Returns: Number - Interpolated value
Params
- start Number - First value
- stop Number - Second value
- amt Number - amount to interpolate
*
NumberKind: global constant
Returns: Number - squared number
Params
- a Number - Number to square
*
NumberKind: global constant
Returns: Number - angle in degrees
Params
- radians Number - angle in radians
*
NumberKind: global constant
Returns: Number - angle in radians
Params
- degrees Number - angle in degrees
*
NumberKind: global constant
Returns: Number - rounded number
Params
- value Number - value to round
- precision Number - decimal places
*
ObjectKind: global constant
Returns: Object - - copied object
Params
- obj Object - Object to copy
- prop string - property name
*
NumberKind: global constant
Returns: Number - Random number
Params
- [low] Number - Range lower bound
- high Number - Range upper bound
*
NumberKind: global constant
Returns: Number - Random direction
*
NumberKind: global constant
Returns: Number - random index
Params
- N Number - max index
*
StringKind: global constant
Returns: String - random name
Params
- N Number - length of the name
*
StringKind: global constant
Returns: String - timestamp name
*
StringKind: global constant
Returns: String - string without diacritics
Params
- str String - string with diacritics
*
StringKind: global constant
Returns: String - string without non alphanumeric characters
Params
- str String - string with non alphanumeric characters
*
ArrayKind: global constant
Returns: Array - array of string chunks
Params
- str String - string to split
- n Number - chunk length
- discard Boolean - discard chunks shorter than N
*
stringKind: global constant
Returns: string - custom cased string
Params
- str string - string to convert
*
stringKind: global constant
Returns: string - snake cased string
Params
- str string - string to convert
*
stringKind: global constant
Returns: string - kebab cased string
Params
- str string - string to convert
*
stringKind: global constant
Returns: string - camel cased string
Params
- str string - string to convert
*
Object- x Number - x coordinate
- y Number - y coordinate
- z Number - z coordinate
*
Object- x Number - x coordinate of the center point
- y Number - y coordinate of the center point
- r Number - radius
*
panGenerator 2024