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/esm/scalar.js CHANGED
@@ -1,14 +1,20 @@
1
1
  import * as Common from './common';
2
2
  /**
3
- * Functions for working with scalar values
3
+ * Functions for working with scalar values.
4
+ * @category Modules
4
5
  */
5
6
  export var scalar;
6
7
  (function (scalar) {
8
+ /**
9
+ * Adds the given values
10
+ */
7
11
  function add(...vs) {
8
12
  return vs.reduce((a, b) => a + b, 0);
9
13
  }
10
14
  scalar.add = add;
11
15
  /**
16
+ * Subtracts the given values. When the argument is a single value, it negates it. Otherwise, it subtracts from left to right.
17
+ *
12
18
  * @shorthands
13
19
  * - {@link sub}
14
20
  */
@@ -28,13 +34,15 @@ export var scalar;
28
34
  */
29
35
  scalar.sub = subtract;
30
36
  /**
31
- * Subtracts b from a
37
+ * Subtracts a from b
32
38
  */
33
39
  function delta(a, b) {
34
40
  return b - a;
35
41
  }
36
42
  scalar.delta = delta;
37
43
  /**
44
+ * Multiplies the given values
45
+ *
38
46
  * @shorthands
39
47
  * - {@link mul}
40
48
  */
@@ -48,6 +56,8 @@ export var scalar;
48
56
  */
49
57
  scalar.mul = multiply;
50
58
  /**
59
+ * Divides the given values. When the argument is a single value, it returns its reciprocal. Otherwise, it divides from left to right.
60
+ *
51
61
  * @shorthands
52
62
  * - {@link div}
53
63
  */
@@ -70,9 +80,21 @@ export var scalar;
70
80
  * Symmetric round the given number
71
81
  */
72
82
  scalar.round = Common.round;
83
+ /**
84
+ * Returns the smallest integer greater than or equal to the input
85
+ */
73
86
  scalar.ceil = Math.ceil;
87
+ /**
88
+ * Returns the largest integer less than or equal to the input
89
+ */
74
90
  scalar.floor = Math.floor;
91
+ /**
92
+ * Returns the sign of the input (-1, 0, or 1)
93
+ */
75
94
  scalar.sign = Math.sign;
95
+ /**
96
+ * Returns the absolute value of the input
97
+ */
76
98
  scalar.abs = Math.abs;
77
99
  /**
78
100
  * Removes the fractional part
@@ -91,7 +113,7 @@ export var scalar;
91
113
  }
92
114
  scalar.fract = fract;
93
115
  /**
94
- * 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`.
116
+ * 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`.
95
117
  * @see https://thebookofshaders.com/glossary/?search=mod
96
118
  */
97
119
  function mod(a, b) {
@@ -111,7 +133,13 @@ export var scalar;
111
133
  return Math.round((v - offset) / step) * step + offset;
112
134
  }
113
135
  scalar.quantize = quantize;
136
+ /**
137
+ * Returns the minimum of the given values
138
+ */
114
139
  scalar.min = Math.min;
140
+ /**
141
+ * Returns the maximum of the given values
142
+ */
115
143
  scalar.max = Math.max;
116
144
  /**
117
145
  * Constrain a value to lie between two further values
@@ -124,6 +152,9 @@ export var scalar;
124
152
  return Math.max(min, Math.min(max, v));
125
153
  }
126
154
  scalar.clamp = clamp;
155
+ /**
156
+ * Multiplies two values
157
+ */
127
158
  function scale(a, b) {
128
159
  return a * b;
129
160
  }
@@ -149,12 +180,17 @@ export var scalar;
149
180
  * @category Shorthands
150
181
  */
151
182
  scalar.avg = average;
183
+ /**
184
+ * Adds two values after scaling the second operand by a scalar value
185
+ */
152
186
  function scaleAndAdd(a, b, s) {
153
187
  return a + b * s;
154
188
  }
155
189
  scalar.scaleAndAdd = scaleAndAdd;
156
190
  /**
157
- * @shortands
191
+ * Calculates the distance between two values
192
+ *
193
+ * @shorthands
158
194
  * - {@link dist}
159
195
  */
160
196
  function distance(a, b) {
@@ -209,7 +245,9 @@ export var scalar;
209
245
  */
210
246
  scalar.len = scalar.length;
211
247
  /**
212
- * @shortands
248
+ * Returns the squared value of the input
249
+ *
250
+ * @shorthands
213
251
  * - {@link sqrLen}
214
252
  */
215
253
  function squaredLength(a) {
@@ -221,10 +259,16 @@ export var scalar;
221
259
  * @category Shorthands
222
260
  */
223
261
  scalar.sqrLen = squaredLength;
262
+ /**
263
+ * Negates a value
264
+ */
224
265
  function negate(a) {
225
266
  return -a;
226
267
  }
227
268
  scalar.negate = negate;
269
+ /**
270
+ * Returns the reciprocal of a value (1/a)
271
+ */
228
272
  function invert(a) {
229
273
  return 1 / a;
230
274
  }
@@ -236,9 +280,12 @@ export var scalar;
236
280
  return 1 - a;
237
281
  }
238
282
  scalar.oneMinus = oneMinus;
283
+ /**
284
+ * Normalizes a value to -1, 0, or 1. Equivalent to `Math.sign`.
285
+ */
239
286
  scalar.normalize = Math.sign;
240
287
  /**
241
- * Linearly interpolate between two numbers. Same as GLSL's bulit-in `mix` function.
288
+ * Linearly interpolates between two values. Same as GLSL's built-in `mix` function.
242
289
  * @see https://registry.khronos.org/OpenGL-Refpages/gl4/html/mix.xhtml
243
290
  *
244
291
  * @shorthands
@@ -249,7 +296,7 @@ export var scalar;
249
296
  }
250
297
  scalar.lerp = lerp;
251
298
  /**
252
- * Alias for {@link invert}
299
+ * Alias for {@link lerp}
253
300
  * @see https://registry.khronos.org/OpenGL-Refpages/gl4/html/mix.xhtml
254
301
  * @category Shorthands
255
302
  */
@@ -309,6 +356,22 @@ export var scalar;
309
356
  return lerp(nmin, nmax, t);
310
357
  }
311
358
  scalar.efit = efit;
359
+ /**
360
+ * Takes the value in the range `(0, 1)` and shifts it to the corresponding value in the new range `(nmin, nmax)`.
361
+ * @see https://www.sidefx.com/docs/houdini/vex/functions/fit01.html
362
+ */
363
+ function fit01(value, nmin, nmax) {
364
+ return fit(value, 0, 1, nmin, nmax);
365
+ }
366
+ scalar.fit01 = fit01;
367
+ /**
368
+ * Takes the value in the range `(-1, 1)` and shifts it to the corresponding value in the new range `(nmin, nmax)`.
369
+ * @see https://www.sidefx.com/docs/houdini/vex/functions/fit11.html
370
+ */
371
+ function fit11(value, nmin, nmax) {
372
+ return fit(value, -1, 1, nmin, nmax);
373
+ }
374
+ scalar.fit11 = fit11;
312
375
  /**
313
376
  * Apply a step function by comparing two values
314
377
  * @see https://registry.khronos.org/OpenGL-Refpages/gl4/html/step.xhtml
@@ -367,22 +430,44 @@ export var scalar;
367
430
  * @category Shorthands
368
431
  */
369
432
  scalar.rad = radians;
433
+ /**
434
+ * Returns the sine of an angle in degrees
435
+ * @param deg An angle in degrees
436
+ */
370
437
  function sin(deg) {
371
438
  return Math.sin(deg * Common.DEG2RAD);
372
439
  }
373
440
  scalar.sin = sin;
441
+ /**
442
+ * Returns the cosine of an angle in degrees
443
+ * @param deg An angle in degrees
444
+ */
374
445
  function cos(deg) {
375
446
  return Math.cos(deg * Common.DEG2RAD);
376
447
  }
377
448
  scalar.cos = cos;
449
+ /**
450
+ * Returns the tangent of an angle in degrees
451
+ * @param deg An angle in degrees
452
+ */
378
453
  function tan(deg) {
379
454
  return Math.tan(deg * Common.DEG2RAD);
380
455
  }
381
456
  scalar.tan = tan;
457
+ /**
458
+ * Returns the arcsine of a value, in degrees
459
+ * @param x A numeric expression
460
+ * @returns The angle in degrees
461
+ */
382
462
  function asin(x) {
383
463
  return Math.asin(x) * Common.RAD2DEG;
384
464
  }
385
465
  scalar.asin = asin;
466
+ /**
467
+ * Returns the arc cosine of a value, in degrees
468
+ * @param x A numeric expression
469
+ * @returns The angle in degrees
470
+ */
386
471
  function acos(x) {
387
472
  return Math.acos(x) * Common.RAD2DEG;
388
473
  }
@@ -414,18 +499,33 @@ export var scalar;
414
499
  return Math.atan2(y, x) * Common.RAD2DEG;
415
500
  }
416
501
  scalar.atan2 = atan2;
502
+ /**
503
+ * Returns the base to the exponent power
504
+ */
417
505
  scalar.pow = Math.pow;
506
+ /**
507
+ * Returns e raised to the power of the input
508
+ */
418
509
  scalar.exp = Math.exp;
510
+ /**
511
+ * Returns the natural logarithm of the input
512
+ */
419
513
  scalar.log = Math.log;
420
514
  /**
421
515
  * Returns 2 raised to the power of the parameter
422
- * @param v the value of the powe to which 2 will be raised
516
+ * @param v the value of the power to which 2 will be raised
423
517
  */
424
518
  function exp2(v) {
425
519
  return 2 ** v;
426
520
  }
427
521
  scalar.exp2 = exp2;
522
+ /**
523
+ * Returns the base-2 logarithm of the input
524
+ */
428
525
  scalar.log2 = Math.log2;
526
+ /**
527
+ * Returns the square root of the input
528
+ */
429
529
  scalar.sqrt = Math.sqrt;
430
530
  /**
431
531
  * Returns the inverse of the square root of the parameter
@@ -442,7 +542,38 @@ export var scalar;
442
542
  */
443
543
  scalar.invsqrt = inverseSqrt;
444
544
  /**
445
- * 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.
545
+ * Returns the hyperbolic sine of the input
546
+ */
547
+ scalar.sinh = Math.sinh;
548
+ /**
549
+ * Returns the hyperbolic cosine of the input
550
+ */
551
+ scalar.cosh = Math.cosh;
552
+ /**
553
+ * Returns the hyperbolic tangent of the input
554
+ */
555
+ scalar.tanh = Math.tanh;
556
+ /**
557
+ * Returns the inverse hyperbolic sine of the input
558
+ */
559
+ scalar.asinh = Math.asinh;
560
+ /**
561
+ * Returns the inverse hyperbolic cosine of the input
562
+ */
563
+ scalar.acosh = Math.acosh;
564
+ /**
565
+ * Returns the inverse hyperbolic tangent of the input
566
+ */
567
+ scalar.atanh = Math.atanh;
568
+ /**
569
+ * Clamps the value to [0, 1]. Equivalent to HLSL's `saturate`.
570
+ */
571
+ function saturate(v) {
572
+ return Math.max(0, Math.min(1, v));
573
+ }
574
+ scalar.saturate = saturate;
575
+ /**
576
+ * 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.
446
577
  * @see https://www.geogebra.org/calculator/d3grfqqe
447
578
  *
448
579
  * @param x the input value
@@ -507,7 +638,21 @@ export var scalar;
507
638
  }
508
639
  scalar.sinwave = sinwave;
509
640
  /**
510
- * Returns whether or not the numbers have approximately the same.
641
+ * 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.
642
+ * @see https://www.geogebra.org/calculator/d3grfqqe
643
+ *
644
+ * @param x the input value
645
+ * @param period the period of the wave
646
+ * @category Periodic Functions
647
+ */
648
+ function square(x, period = 1) {
649
+ x /= period;
650
+ const phase = ((x % 1) + 1) % 1;
651
+ return phase < 0.5 ? 0 : 1;
652
+ }
653
+ scalar.square = square;
654
+ /**
655
+ * Returns whether or not two numbers are approximately equal.
511
656
  *
512
657
  * @shorthands
513
658
  * - {@link approx}
@@ -530,4 +675,4 @@ export var scalar;
530
675
  */
531
676
  scalar.equals = approxEquals;
532
677
  })(scalar || (scalar = {}));
533
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjYWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQTtBQUVsQzs7R0FFRztBQUNILE1BQU0sS0FBVyxNQUFNLENBdWpCdEI7QUF2akJELFdBQWlCLE1BQU07SUFDdEIsU0FBZ0IsR0FBRyxDQUFDLEdBQUcsRUFBWTtRQUNsQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFGZSxVQUFHLE1BRWxCLENBQUE7SUFFRDs7O09BR0c7SUFDSCxTQUFnQixRQUFRLENBQUMsR0FBRyxFQUFZO1FBQ3ZDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsQ0FBQTtRQUNULENBQUM7YUFBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNkLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQVBlLGVBQVEsV0FPdkIsQ0FBQTtJQUVEOzs7T0FHRztJQUNVLFVBQUcsR0FBRyxRQUFRLENBQUE7SUFFM0I7O09BRUc7SUFDSCxTQUFnQixLQUFLLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2IsQ0FBQztJQUZlLFlBQUssUUFFcEIsQ0FBQTtJQUVEOzs7T0FHRztJQUNILFNBQWdCLFFBQVEsQ0FBQyxHQUFHLEVBQVk7UUFDdkMsT0FB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
678
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjYWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQTtBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLEtBQVcsTUFBTSxDQTZzQnRCO0FBN3NCRCxXQUFpQixNQUFNO0lBQ3RCOztPQUVHO0lBQ0gsU0FBZ0IsR0FBRyxDQUFDLEdBQUcsRUFBWTtRQUNsQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFGZSxVQUFHLE1BRWxCLENBQUE7SUFFRDs7Ozs7T0FLRztJQUNILFNBQWdCLFFBQVEsQ0FBQyxHQUFHLEVBQVk7UUFDdkMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxDQUFBO1FBQ1QsQ0FBQzthQUFNLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2QsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBUGUsZUFBUSxXQU92QixDQUFBO0lBRUQ7OztPQUdHO0lBQ1UsVUFBRyxHQUFHLFFBQVEsQ0FBQTtJQUUzQjs7T0FFRztJQUNILFNBQWdCLEtBQUssQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDYixDQUFDO0lBRmUsWUFBSyxRQUVwQixDQUFBO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFnQixRQUFRLENBQUMsR0FB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