linearly 0.34.2 → 0.35.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +9 -8
  2. package/lib/cjs/mat2.d.ts +20 -5
  3. package/lib/cjs/mat2.d.ts.map +1 -1
  4. package/lib/cjs/mat2.js +35 -5
  5. package/lib/cjs/mat2d.d.ts +7 -3
  6. package/lib/cjs/mat2d.d.ts.map +1 -1
  7. package/lib/cjs/mat2d.js +7 -3
  8. package/lib/cjs/mat3.d.ts +1 -0
  9. package/lib/cjs/mat3.d.ts.map +1 -1
  10. package/lib/cjs/mat3.js +2 -1
  11. package/lib/cjs/mat4.d.ts +43 -16
  12. package/lib/cjs/mat4.d.ts.map +1 -1
  13. package/lib/cjs/mat4.js +73 -17
  14. package/lib/cjs/quat.d.ts +31 -3
  15. package/lib/cjs/quat.d.ts.map +1 -1
  16. package/lib/cjs/quat.js +177 -7
  17. package/lib/cjs/scalar.d.ts +141 -10
  18. package/lib/cjs/scalar.d.ts.map +1 -1
  19. package/lib/cjs/scalar.js +156 -11
  20. package/lib/cjs/vec2.d.ts +189 -34
  21. package/lib/cjs/vec2.d.ts.map +1 -1
  22. package/lib/cjs/vec2.js +354 -46
  23. package/lib/cjs/vec3.d.ts +143 -25
  24. package/lib/cjs/vec3.d.ts.map +1 -1
  25. package/lib/cjs/vec3.js +297 -44
  26. package/lib/cjs/vec4.d.ts +127 -30
  27. package/lib/cjs/vec4.d.ts.map +1 -1
  28. package/lib/cjs/vec4.js +292 -54
  29. package/lib/esm/mat2.d.ts +20 -5
  30. package/lib/esm/mat2.d.ts.map +1 -1
  31. package/lib/esm/mat2.js +35 -5
  32. package/lib/esm/mat2d.d.ts +7 -3
  33. package/lib/esm/mat2d.d.ts.map +1 -1
  34. package/lib/esm/mat2d.js +7 -3
  35. package/lib/esm/mat3.d.ts +1 -0
  36. package/lib/esm/mat3.d.ts.map +1 -1
  37. package/lib/esm/mat3.js +2 -1
  38. package/lib/esm/mat4.d.ts +43 -16
  39. package/lib/esm/mat4.d.ts.map +1 -1
  40. package/lib/esm/mat4.js +73 -17
  41. package/lib/esm/quat.d.ts +31 -3
  42. package/lib/esm/quat.d.ts.map +1 -1
  43. package/lib/esm/quat.js +177 -7
  44. package/lib/esm/scalar.d.ts +141 -10
  45. package/lib/esm/scalar.d.ts.map +1 -1
  46. package/lib/esm/scalar.js +156 -11
  47. package/lib/esm/vec2.d.ts +189 -34
  48. package/lib/esm/vec2.d.ts.map +1 -1
  49. package/lib/esm/vec2.js +354 -46
  50. package/lib/esm/vec3.d.ts +143 -25
  51. package/lib/esm/vec3.d.ts.map +1 -1
  52. package/lib/esm/vec3.js +297 -44
  53. package/lib/esm/vec4.d.ts +127 -30
  54. package/lib/esm/vec4.d.ts.map +1 -1
  55. package/lib/esm/vec4.js +292 -54
  56. package/package.json +1 -1
package/lib/cjs/scalar.js CHANGED
@@ -26,15 +26,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.scalar = void 0;
27
27
  const Common = __importStar(require("./common"));
28
28
  /**
29
- * Functions for working with scalar values
29
+ * Functions for working with scalar values.
30
+ * @category Modules
30
31
  */
31
32
  var scalar;
32
33
  (function (scalar) {
34
+ /**
35
+ * Adds the given values
36
+ */
33
37
  function add(...vs) {
34
38
  return vs.reduce((a, b) => a + b, 0);
35
39
  }
36
40
  scalar.add = add;
37
41
  /**
42
+ * Subtracts the given values. When the argument is a single value, it negates it. Otherwise, it subtracts from left to right.
43
+ *
38
44
  * @shorthands
39
45
  * - {@link sub}
40
46
  */
@@ -54,13 +60,15 @@ var scalar;
54
60
  */
55
61
  scalar.sub = subtract;
56
62
  /**
57
- * Subtracts b from a
63
+ * Subtracts a from b
58
64
  */
59
65
  function delta(a, b) {
60
66
  return b - a;
61
67
  }
62
68
  scalar.delta = delta;
63
69
  /**
70
+ * Multiplies the given values
71
+ *
64
72
  * @shorthands
65
73
  * - {@link mul}
66
74
  */
@@ -74,6 +82,8 @@ var scalar;
74
82
  */
75
83
  scalar.mul = multiply;
76
84
  /**
85
+ * Divides the given values. When the argument is a single value, it returns its reciprocal. Otherwise, it divides from left to right.
86
+ *
77
87
  * @shorthands
78
88
  * - {@link div}
79
89
  */
@@ -96,9 +106,21 @@ var scalar;
96
106
  * Symmetric round the given number
97
107
  */
98
108
  scalar.round = Common.round;
109
+ /**
110
+ * Returns the smallest integer greater than or equal to the input
111
+ */
99
112
  scalar.ceil = Math.ceil;
113
+ /**
114
+ * Returns the largest integer less than or equal to the input
115
+ */
100
116
  scalar.floor = Math.floor;
117
+ /**
118
+ * Returns the sign of the input (-1, 0, or 1)
119
+ */
101
120
  scalar.sign = Math.sign;
121
+ /**
122
+ * Returns the absolute value of the input
123
+ */
102
124
  scalar.abs = Math.abs;
103
125
  /**
104
126
  * Removes the fractional part
@@ -117,7 +139,7 @@ var scalar;
117
139
  }
118
140
  scalar.fract = fract;
119
141
  /**
120
- * Compute value of one parameter module another. This is computed as x - y * floor(x/y). Unlike JavaScript's `%` operator, the sign of result always matches to `b`.
142
+ * Computes the value of one parameter modulo another. This is computed as x - y * floor(x/y). Unlike JavaScript's `%` operator, the sign of result always matches to `b`.
121
143
  * @see https://thebookofshaders.com/glossary/?search=mod
122
144
  */
123
145
  function mod(a, b) {
@@ -137,7 +159,13 @@ var scalar;
137
159
  return Math.round((v - offset) / step) * step + offset;
138
160
  }
139
161
  scalar.quantize = quantize;
162
+ /**
163
+ * Returns the minimum of the given values
164
+ */
140
165
  scalar.min = Math.min;
166
+ /**
167
+ * Returns the maximum of the given values
168
+ */
141
169
  scalar.max = Math.max;
142
170
  /**
143
171
  * Constrain a value to lie between two further values
@@ -150,6 +178,9 @@ var scalar;
150
178
  return Math.max(min, Math.min(max, v));
151
179
  }
152
180
  scalar.clamp = clamp;
181
+ /**
182
+ * Multiplies two values
183
+ */
153
184
  function scale(a, b) {
154
185
  return a * b;
155
186
  }
@@ -175,12 +206,17 @@ var scalar;
175
206
  * @category Shorthands
176
207
  */
177
208
  scalar.avg = average;
209
+ /**
210
+ * Adds two values after scaling the second operand by a scalar value
211
+ */
178
212
  function scaleAndAdd(a, b, s) {
179
213
  return a + b * s;
180
214
  }
181
215
  scalar.scaleAndAdd = scaleAndAdd;
182
216
  /**
183
- * @shortands
217
+ * Calculates the distance between two values
218
+ *
219
+ * @shorthands
184
220
  * - {@link dist}
185
221
  */
186
222
  function distance(a, b) {
@@ -235,7 +271,9 @@ var scalar;
235
271
  */
236
272
  scalar.len = scalar.length;
237
273
  /**
238
- * @shortands
274
+ * Returns the squared value of the input
275
+ *
276
+ * @shorthands
239
277
  * - {@link sqrLen}
240
278
  */
241
279
  function squaredLength(a) {
@@ -247,10 +285,16 @@ var scalar;
247
285
  * @category Shorthands
248
286
  */
249
287
  scalar.sqrLen = squaredLength;
288
+ /**
289
+ * Negates a value
290
+ */
250
291
  function negate(a) {
251
292
  return -a;
252
293
  }
253
294
  scalar.negate = negate;
295
+ /**
296
+ * Returns the reciprocal of a value (1/a)
297
+ */
254
298
  function invert(a) {
255
299
  return 1 / a;
256
300
  }
@@ -262,9 +306,12 @@ var scalar;
262
306
  return 1 - a;
263
307
  }
264
308
  scalar.oneMinus = oneMinus;
309
+ /**
310
+ * Normalizes a value to -1, 0, or 1. Equivalent to `Math.sign`.
311
+ */
265
312
  scalar.normalize = Math.sign;
266
313
  /**
267
- * Linearly interpolate between two numbers. Same as GLSL's bulit-in `mix` function.
314
+ * Linearly interpolates between two values. Same as GLSL's built-in `mix` function.
268
315
  * @see https://registry.khronos.org/OpenGL-Refpages/gl4/html/mix.xhtml
269
316
  *
270
317
  * @shorthands
@@ -275,7 +322,7 @@ var scalar;
275
322
  }
276
323
  scalar.lerp = lerp;
277
324
  /**
278
- * Alias for {@link invert}
325
+ * Alias for {@link lerp}
279
326
  * @see https://registry.khronos.org/OpenGL-Refpages/gl4/html/mix.xhtml
280
327
  * @category Shorthands
281
328
  */
@@ -335,6 +382,22 @@ var scalar;
335
382
  return lerp(nmin, nmax, t);
336
383
  }
337
384
  scalar.efit = efit;
385
+ /**
386
+ * Takes the value in the range `(0, 1)` and shifts it to the corresponding value in the new range `(nmin, nmax)`.
387
+ * @see https://www.sidefx.com/docs/houdini/vex/functions/fit01.html
388
+ */
389
+ function fit01(value, nmin, nmax) {
390
+ return fit(value, 0, 1, nmin, nmax);
391
+ }
392
+ scalar.fit01 = fit01;
393
+ /**
394
+ * Takes the value in the range `(-1, 1)` and shifts it to the corresponding value in the new range `(nmin, nmax)`.
395
+ * @see https://www.sidefx.com/docs/houdini/vex/functions/fit11.html
396
+ */
397
+ function fit11(value, nmin, nmax) {
398
+ return fit(value, -1, 1, nmin, nmax);
399
+ }
400
+ scalar.fit11 = fit11;
338
401
  /**
339
402
  * Apply a step function by comparing two values
340
403
  * @see https://registry.khronos.org/OpenGL-Refpages/gl4/html/step.xhtml
@@ -393,22 +456,44 @@ var scalar;
393
456
  * @category Shorthands
394
457
  */
395
458
  scalar.rad = radians;
459
+ /**
460
+ * Returns the sine of an angle in degrees
461
+ * @param deg An angle in degrees
462
+ */
396
463
  function sin(deg) {
397
464
  return Math.sin(deg * Common.DEG2RAD);
398
465
  }
399
466
  scalar.sin = sin;
467
+ /**
468
+ * Returns the cosine of an angle in degrees
469
+ * @param deg An angle in degrees
470
+ */
400
471
  function cos(deg) {
401
472
  return Math.cos(deg * Common.DEG2RAD);
402
473
  }
403
474
  scalar.cos = cos;
475
+ /**
476
+ * Returns the tangent of an angle in degrees
477
+ * @param deg An angle in degrees
478
+ */
404
479
  function tan(deg) {
405
480
  return Math.tan(deg * Common.DEG2RAD);
406
481
  }
407
482
  scalar.tan = tan;
483
+ /**
484
+ * Returns the arcsine of a value, in degrees
485
+ * @param x A numeric expression
486
+ * @returns The angle in degrees
487
+ */
408
488
  function asin(x) {
409
489
  return Math.asin(x) * Common.RAD2DEG;
410
490
  }
411
491
  scalar.asin = asin;
492
+ /**
493
+ * Returns the arc cosine of a value, in degrees
494
+ * @param x A numeric expression
495
+ * @returns The angle in degrees
496
+ */
412
497
  function acos(x) {
413
498
  return Math.acos(x) * Common.RAD2DEG;
414
499
  }
@@ -440,18 +525,33 @@ var scalar;
440
525
  return Math.atan2(y, x) * Common.RAD2DEG;
441
526
  }
442
527
  scalar.atan2 = atan2;
528
+ /**
529
+ * Returns the base to the exponent power
530
+ */
443
531
  scalar.pow = Math.pow;
532
+ /**
533
+ * Returns e raised to the power of the input
534
+ */
444
535
  scalar.exp = Math.exp;
536
+ /**
537
+ * Returns the natural logarithm of the input
538
+ */
445
539
  scalar.log = Math.log;
446
540
  /**
447
541
  * Returns 2 raised to the power of the parameter
448
- * @param v the value of the powe to which 2 will be raised
542
+ * @param v the value of the power to which 2 will be raised
449
543
  */
450
544
  function exp2(v) {
451
545
  return 2 ** v;
452
546
  }
453
547
  scalar.exp2 = exp2;
548
+ /**
549
+ * Returns the base-2 logarithm of the input
550
+ */
454
551
  scalar.log2 = Math.log2;
552
+ /**
553
+ * Returns the square root of the input
554
+ */
455
555
  scalar.sqrt = Math.sqrt;
456
556
  /**
457
557
  * Returns the inverse of the square root of the parameter
@@ -468,7 +568,38 @@ var scalar;
468
568
  */
469
569
  scalar.invsqrt = inverseSqrt;
470
570
  /**
471
- * Returns a sawtooth wave with the given period. Basically, the output will be the input value modulo `period`, but returns 1 when the phase is 1. The shape of the wave will be continous for the negative ranges, so when phase is negative integer, the output will be 0, else if phase is negative float, the output will be 1 - fractional part of phase.
571
+ * Returns the hyperbolic sine of the input
572
+ */
573
+ scalar.sinh = Math.sinh;
574
+ /**
575
+ * Returns the hyperbolic cosine of the input
576
+ */
577
+ scalar.cosh = Math.cosh;
578
+ /**
579
+ * Returns the hyperbolic tangent of the input
580
+ */
581
+ scalar.tanh = Math.tanh;
582
+ /**
583
+ * Returns the inverse hyperbolic sine of the input
584
+ */
585
+ scalar.asinh = Math.asinh;
586
+ /**
587
+ * Returns the inverse hyperbolic cosine of the input
588
+ */
589
+ scalar.acosh = Math.acosh;
590
+ /**
591
+ * Returns the inverse hyperbolic tangent of the input
592
+ */
593
+ scalar.atanh = Math.atanh;
594
+ /**
595
+ * Clamps the value to [0, 1]. Equivalent to HLSL's `saturate`.
596
+ */
597
+ function saturate(v) {
598
+ return Math.max(0, Math.min(1, v));
599
+ }
600
+ scalar.saturate = saturate;
601
+ /**
602
+ * Returns a sawtooth wave with the given period. Basically, the output will be the input value modulo `period`, but returns 1 when the phase is 1. The shape of the wave will be continuous for the negative ranges, so when phase is negative integer, the output will be 0, else if phase is negative float, the output will be 1 - fractional part of phase.
472
603
  * @see https://www.geogebra.org/calculator/d3grfqqe
473
604
  *
474
605
  * @param x the input value
@@ -533,7 +664,21 @@ var scalar;
533
664
  }
534
665
  scalar.sinwave = sinwave;
535
666
  /**
536
- * Returns whether or not the numbers have approximately the same.
667
+ * Returns a square wave with the given period. The output is 0 for the first half and 1 for the second half of each period.
668
+ * @see https://www.geogebra.org/calculator/d3grfqqe
669
+ *
670
+ * @param x the input value
671
+ * @param period the period of the wave
672
+ * @category Periodic Functions
673
+ */
674
+ function square(x, period = 1) {
675
+ x /= period;
676
+ const phase = ((x % 1) + 1) % 1;
677
+ return phase < 0.5 ? 0 : 1;
678
+ }
679
+ scalar.square = square;
680
+ /**
681
+ * Returns whether or not two numbers are approximately equal.
537
682
  *
538
683
  * @shorthands
539
684
  * - {@link approx}
@@ -556,4 +701,4 @@ var scalar;
556
701
  */
557
702
  scalar.equals = approxEquals;
558
703
  })(scalar || (exports.scalar = scalar = {}));
559
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjYWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUFrQztBQUVsQzs7R0FFRztBQUNILElBQWlCLE1BQU0sQ0F1akJ0QjtBQXZqQkQsV0FBaUIsTUFBTTtJQUN0QixTQUFnQixHQUFHLENBQUMsR0FBRyxFQUFZO1FBQ2xDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUZlLFVBQUcsTUFFbEIsQ0FBQTtJQUVEOzs7T0FHRztJQUNILFNBQWdCLFFBQVEsQ0FBQyxHQUFHLEVBQVk7UUFDdkMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxDQUFBO1FBQ1QsQ0FBQzthQUFNLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2QsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBUGUsZUFBUSxXQU92QixDQUFBO0lBRUQ7OztPQUdHO0lBQ1UsVUFBRyxHQUFHLFFBQVEsQ0FBQTtJQUUzQjs7T0FFRztJQUNILFNBQWdCLEtBQUssQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDYixDQUFDO0lBRmUsWUFBSyxRQUVwQixDQUFBO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0IsUUFBUSxDQUFDLEdBQUcsRUFBWTtRQUN2QyxPQUFP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
704
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjYWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUFrQztBQUVsQzs7O0dBR0c7QUFDSCxJQUFpQixNQUFNLENBNnNCdEI7QUE3c0JELFdBQWlCLE1BQU07SUFDdEI7O09BRUc7SUFDSCxTQUFnQixHQUFHLENBQUMsR0FBRyxFQUFZO1FBQ2xDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUZlLFVBQUcsTUFFbEIsQ0FBQTtJQUVEOzs7OztPQUtHO0lBQ0gsU0FBZ0IsUUFBUSxDQUFDLEdBQUcsRUFBWTtRQUN2QyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLENBQUE7UUFDVCxDQUFDO2FBQU0sSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDZCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFQZSxlQUFRLFdBT3ZCLENBQUE7SUFFRDs7O09BR0c7SUFDVSxVQUFHLEdBQUcsUUFBUSxDQUFBO0lBRTNCOztPQUVHO0lBQ0gsU0FBZ0IsS0FBSyxDQUFDLENBQVMsRUFBRSxDQUFTO1FBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNiLENBQUM7SUFGZSxZQUFLLFFBRXBCLENBQUE7SUFFRDs7Ozs7T0FLRztJQUNILFNBQWdCLFFBQVEsQ0FBQyxHQUFH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