linearly 0.36.0 → 0.37.0

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 (47) hide show
  1. package/lib/esm/mat2.d.ts +1 -1
  2. package/lib/esm/mat2.d.ts.map +1 -1
  3. package/lib/esm/mat2.js +3 -2
  4. package/lib/esm/mat2d.d.ts.map +1 -1
  5. package/lib/esm/mat2d.js +4 -5
  6. package/lib/esm/mat3.d.ts.map +1 -1
  7. package/lib/esm/mat3.js +16 -15
  8. package/lib/esm/mat4.d.ts.map +1 -1
  9. package/lib/esm/mat4.js +18 -17
  10. package/lib/esm/quat.js +3 -3
  11. package/lib/esm/scalar.d.ts +6 -35
  12. package/lib/esm/scalar.d.ts.map +1 -1
  13. package/lib/esm/scalar.js +11 -53
  14. package/package.json +9 -4
  15. package/lib/cjs/common.d.ts +0 -16
  16. package/lib/cjs/common.d.ts.map +0 -1
  17. package/lib/cjs/common.js +0 -70
  18. package/lib/cjs/index.d.ts +0 -10
  19. package/lib/cjs/index.d.ts.map +0 -1
  20. package/lib/cjs/index.js +0 -22
  21. package/lib/cjs/mat2.d.ts +0 -272
  22. package/lib/cjs/mat2.d.ts.map +0 -1
  23. package/lib/cjs/mat2.js +0 -473
  24. package/lib/cjs/mat2d.d.ts +0 -329
  25. package/lib/cjs/mat2d.d.ts.map +0 -1
  26. package/lib/cjs/mat2d.js +0 -641
  27. package/lib/cjs/mat3.d.ts +0 -295
  28. package/lib/cjs/mat3.d.ts.map +0 -1
  29. package/lib/cjs/mat3.js +0 -670
  30. package/lib/cjs/mat4.d.ts +0 -532
  31. package/lib/cjs/mat4.d.ts.map +0 -1
  32. package/lib/cjs/mat4.js +0 -1576
  33. package/lib/cjs/quat.d.ts +0 -334
  34. package/lib/cjs/quat.d.ts.map +0 -1
  35. package/lib/cjs/quat.js +0 -802
  36. package/lib/cjs/scalar.d.ts +0 -501
  37. package/lib/cjs/scalar.d.ts.map +0 -1
  38. package/lib/cjs/scalar.js +0 -728
  39. package/lib/cjs/vec2.d.ts +0 -664
  40. package/lib/cjs/vec2.d.ts.map +0 -1
  41. package/lib/cjs/vec2.js +0 -1247
  42. package/lib/cjs/vec3.d.ts +0 -660
  43. package/lib/cjs/vec3.d.ts.map +0 -1
  44. package/lib/cjs/vec3.js +0 -1329
  45. package/lib/cjs/vec4.d.ts +0 -552
  46. package/lib/cjs/vec4.d.ts.map +0 -1
  47. package/lib/cjs/vec4.js +0 -1200
@@ -425,59 +425,30 @@ export declare namespace scalar {
425
425
  */
426
426
  function saturate(v: number): number;
427
427
  /**
428
- * 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.
428
+ * Returns a sawtooth wave with a period of 360°. Output is the input modulo 360, normalized to [0, 1], with a jump back to 0 at each multiple of 360°. Continuous for the negative ranges: phase at negative integer multiples of 360° is 0, otherwise it is 1 minus the fractional part of the phase.
429
429
  * @see https://www.geogebra.org/calculator/d3grfqqe
430
430
  *
431
- * @param x the input value
432
- * @param period the period of the wave
431
+ * @param x the input value in degrees
433
432
  * @category Periodic Functions
434
433
  *
435
434
  * @shorthands
436
435
  * - {@link ramp}
437
436
  *
438
437
  */
439
- function sawtooth(x: number, period?: number): number;
438
+ function sawtooth(x: number): number;
440
439
  /**
441
440
  * Alias for {@link sawtooth}
442
441
  * @category Shorthands
443
442
  */
444
443
  const ramp: typeof sawtooth;
445
444
  /**
446
- * Returns a triangle wave with the given period. The output ranges from 0 to 1.
445
+ * Returns a triangle wave with a period of 360°. The output ranges from 0 to 1.
447
446
  * @see https://www.geogebra.org/calculator/d3grfqqe
448
447
  *
449
- * @param x The input value
450
- * @param period The period of the wave
448
+ * @param x The input value in degrees
451
449
  * @category Periodic Functions
452
450
  */
453
- function triangle(x: number, period?: number): number;
454
- /**
455
- * Returns a cosine wave with the given period. The output ranges from 0 to 1, and y = 0 when x = 0.
456
- *
457
- * @see https://www.geogebra.org/calculator/d3grfqqe
458
- * @param v the input value
459
- * @param period the period of the wave
460
- * @category Periodic Functions
461
- */
462
- function coswave(v: number, period?: number): number;
463
- /**
464
- * Returns a sine wave with the given period. The output ranges from 0 to 1, and y = 0 when x = 0.
465
- *
466
- * @see https://www.geogebra.org/calculator/d3grfqqe
467
- * @param v the input value
468
- * @param period the period of the wave
469
- * @category Periodic Functions
470
- */
471
- function sinwave(v: number, period?: number): number;
472
- /**
473
- * 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.
474
- * @see https://www.geogebra.org/calculator/d3grfqqe
475
- *
476
- * @param x the input value
477
- * @param period the period of the wave
478
- * @category Periodic Functions
479
- */
480
- function square(x: number, period?: number): number;
451
+ function triangle(x: number): number;
481
452
  /**
482
453
  * Returns whether or not two numbers are approximately equal.
483
454
  *
@@ -1 +1 @@
1
- {"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../../src/scalar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scalar.d.ts","sourceRoot":"","sources":["../../src/scalar.ts"],"names":[],"mappings":"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"}
package/lib/esm/scalar.js CHANGED
@@ -182,11 +182,11 @@ export var scalar;
182
182
  */
183
183
  function average(...vs) {
184
184
  let x = 0;
185
- const scale = 1 / (vs.length || 1);
185
+ const len = vs.length || 1;
186
186
  for (const v of vs) {
187
187
  x += v;
188
188
  }
189
- return x / scale;
189
+ return x / len;
190
190
  }
191
191
  scalar.average = average;
192
192
  /**
@@ -587,19 +587,18 @@ export var scalar;
587
587
  }
588
588
  scalar.saturate = saturate;
589
589
  /**
590
- * 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.
590
+ * Returns a sawtooth wave with a period of 360°. Output is the input modulo 360, normalized to [0, 1], with a jump back to 0 at each multiple of 360°. Continuous for the negative ranges: phase at negative integer multiples of 360° is 0, otherwise it is 1 minus the fractional part of the phase.
591
591
  * @see https://www.geogebra.org/calculator/d3grfqqe
592
592
  *
593
- * @param x the input value
594
- * @param period the period of the wave
593
+ * @param x the input value in degrees
595
594
  * @category Periodic Functions
596
595
  *
597
596
  * @shorthands
598
597
  * - {@link ramp}
599
598
  *
600
599
  */
601
- function sawtooth(x, period = 1) {
602
- x /= period;
600
+ function sawtooth(x) {
601
+ x /= 360;
603
602
  if (x === 1)
604
603
  return 1;
605
604
  if (x < 0)
@@ -613,58 +612,17 @@ export var scalar;
613
612
  */
614
613
  scalar.ramp = sawtooth;
615
614
  /**
616
- * Returns a triangle wave with the given period. The output ranges from 0 to 1.
615
+ * Returns a triangle wave with a period of 360°. The output ranges from 0 to 1.
617
616
  * @see https://www.geogebra.org/calculator/d3grfqqe
618
617
  *
619
- * @param x The input value
620
- * @param period The period of the wave
618
+ * @param x The input value in degrees
621
619
  * @category Periodic Functions
622
620
  */
623
- function triangle(x, period = 1) {
624
- x /= period;
621
+ function triangle(x) {
622
+ x /= 360;
625
623
  return 1 - Math.abs(1 - 2 * (Math.abs(x) % 1));
626
624
  }
627
625
  scalar.triangle = triangle;
628
- /**
629
- * Returns a cosine wave with the given period. The output ranges from 0 to 1, and y = 0 when x = 0.
630
- *
631
- * @see https://www.geogebra.org/calculator/d3grfqqe
632
- * @param v the input value
633
- * @param period the period of the wave
634
- * @category Periodic Functions
635
- */
636
- function coswave(v, period = 1) {
637
- v = (v * Math.PI * 2) / period;
638
- return (-Math.cos(v) + 1) / 2;
639
- }
640
- scalar.coswave = coswave;
641
- /**
642
- * Returns a sine wave with the given period. The output ranges from 0 to 1, and y = 0 when x = 0.
643
- *
644
- * @see https://www.geogebra.org/calculator/d3grfqqe
645
- * @param v the input value
646
- * @param period the period of the wave
647
- * @category Periodic Functions
648
- */
649
- function sinwave(v, period = 1) {
650
- v = (v * Math.PI * 2) / period;
651
- return (-Math.sin(v) + 1) / 2;
652
- }
653
- scalar.sinwave = sinwave;
654
- /**
655
- * 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.
656
- * @see https://www.geogebra.org/calculator/d3grfqqe
657
- *
658
- * @param x the input value
659
- * @param period the period of the wave
660
- * @category Periodic Functions
661
- */
662
- function square(x, period = 1) {
663
- x /= period;
664
- const phase = ((x % 1) + 1) % 1;
665
- return phase < 0.5 ? 0 : 1;
666
- }
667
- scalar.square = square;
668
626
  /**
669
627
  * Returns whether or not two numbers are approximately equal.
670
628
  *
@@ -689,4 +647,4 @@ export var scalar;
689
647
  */
690
648
  scalar.equals = approxEquals;
691
649
  })(scalar || (scalar = {}));
692
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjYWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQTtBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLEtBQVcsTUFBTSxDQTJ0QnRCO0FBM3RCRCxXQUFpQixNQUFNO0lBQ3RCOztPQUVHO0lBQ0gsU0FBZ0IsR0FBRyxDQUFDLEdBQUcsRUFBWTtRQUNsQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFGZSxVQUFHLE1BRWxCLENBQUE7SUFFRDs7Ozs7T0FLRztJQUNILFNBQWdCLFFBQVEsQ0FBQyxHQUFHLEVBQVk7UUFDdkMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxDQUFBO1FBQ1QsQ0FBQzthQUFNLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2QsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBUGUsZUFBUSxXQU92QixDQUFBO0lBRUQ7OztPQUdHO0lBQ1UsVUFBRyxHQUFHLFFBQVEsQ0FBQTtJQUUzQjs7T0FFRztJQUNILFNBQWdCLEtBQUssQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDYixDQUFDO0lBRmUsWUFBSyxRQUVwQixDQUFBO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFnQixRQUFRLENBQUMsR0FBRyxFQUFZO1FBQ3ZDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUZlLGVBQVEsV0FFdkIsQ0FBQTtJQUVEOzs7T0FHRztJQUNVLFVBQUcsR0FBRyxRQUFRLENBQUE7SUFFM0I7Ozs7O09BS0c7SUFDSCxTQUFnQixNQUFNLENBQUMsR0FBRyxFQUFZO1FBQ3JDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsQ0FBQTtRQUNULENBQUM7YUFBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2pCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQVBlLGFBQU0sU0FPckIsQ0FBQTtJQUVEOzs7T0FHRztJQUNVLFVBQUcsR0FBRyxNQUFNLENBQUE7SUFFekI7O09BRUc7SUFDVSxZQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQTtJQUVqQzs7T0FFRztJQUNVLFdBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO0lBRTdCOztPQUVHO0lBQ1UsWUFBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7SUFFL0I7O09BRUc7SUFDVSxXQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtJQUU3Qjs7T0FFRztJQUNVLFVBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFBO0lBRTNCOzs7T0FHRztJQUNILFNBQWdCLEtBQUssQ0FBQyxDQUFTO1FBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRmUsWUFBSyxRQUVwQixDQUFBO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0IsS0FBSyxDQUFDLENBQVM7UUFDOUIsT0FBTyxDQUFDLEdBQUcsT0FBQSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDcEIsQ0FBQztJQUZlLFlBQUssUUFFcEIsQ0FBQTtJQUVEOzs7T0FHRztJQUNILFNBQWdCLEdBQUcsQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBQSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzVCLENBQUM7SUFGZSxVQUFHLE1BRWxCLENBQUE7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFnQixRQUFRLENBQUMsQ0FBUyxFQUFFLElBQVksRUFBRSxNQUFNLEdBQUcsQ0FBQztRQUMzRCxJQUFJLElBQUksS0FBSyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUE7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxNQUFNLENBQUE7SUFDdkQsQ0FBQztJQUhlLGVBQVEsV0FHdkIsQ0FBQTtJQUVEOztPQUVHO0lBQ1UsVUFBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUE7SUFFM0I7O09BRUc7SUFDVSxVQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQTtJQUUzQjs7Ozs7O09BTUc7SUFDSCxTQUFnQixLQUFLLENBQUMsQ0FBUyxFQUFFLEdBQVcsRUFBRSxHQUFXO1FBQ3hELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2QyxDQUFDO0lBRmUsWUFBSyxRQUVwQixDQUFBO0lBRUQ7O09BRUc7SUFDSCxTQUFnQixPQUFPLENBQUMsS0FBYTtRQUNwQyxPQUFPLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzFCLENBQUM7SUFGZSxjQUFPLFVBRXRCLENBQUE7SUFFRDs7T0FFRztJQUNILFNBQWdCLE9BQU8sQ0FBQyxLQUFhO1FBQ3BDLE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUMzQixDQUFDO0lBRmUsY0FBTyxVQUV0QixDQUFBO0lBRUQ7O09BRUc7SUFDSCxTQUFnQixLQUFLLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2IsQ0FBQztJQUZlLFlBQUssUUFFcEIsQ0FBQTtJQUVEOzs7Ozs7T0FNRztJQUNILFNBQWdCLE9BQU8sQ0FBQyxHQUFHLEVBQVk7UUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ1QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQTtRQUNsQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDUCxDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFBO0lBQ2pCLENBQUM7SUFQZSxjQUFPLFVBT3RCLENBQUE7SUFFRDs7O09BR0c7SUFDVSxVQUFHLEdBQUcsT0FBTyxDQUFBO0lBRTFCOztPQUVHO0lBQ0gsU0FBZ0IsV0FBVyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUztRQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2pCLENBQUM7SUFGZSxrQkFBVyxjQUUxQixDQUFBO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFnQixRQUFRLENBQUMsQ0FBUyxFQUFFLENBQVM7UUFDNUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUN2QixDQUFDO0lBRmUsZUFBUSxXQUV2QixDQUFBO0lBRUQ7OztPQUdHO0lBQ1UsV0FBSSxHQUFHLFFBQVEsQ0FBQTtJQUU1Qjs7Ozs7T0FLRztJQUNILFNBQWdCLFVBQVUsQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUM5QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3ZCLENBQUM7SUFGZSxpQkFBVSxhQUV6QixDQUFBO0lBRUQ7OztPQUdHO0lBQ1UsV0FBSSxHQUFHLFVBQVUsQ0FBQTtJQUU5Qjs7Ozs7T0FLRztJQUNILFNBQWdCLGVBQWUsQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUNuRCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNwQixDQUFDO0lBRmUsc0JBQWUsa0JBRTlCLENBQUE7SUFFRDs7O09BR0c7SUFDVSxjQUFPLEdBQUcsZUFBZSxDQUFBO0lBRXRDOzs7OztPQUtHO0lBQ1UsYUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUE7SUFFOUI7OztPQUdHO0lBQ1UsVUFBRyxHQUFHLE9BQUEsTUFBTSxDQUFBO0lBRXpCOzs7OztPQUtHO0lBQ0gsU0FBZ0IsYUFBYSxDQUFDLENBQVM7UUFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2QsQ0FBQztJQUZlLG9CQUFhLGdCQUU1QixDQUFBO0lBRUQ7OztPQUdHO0lBQ1UsYUFBTSxHQUFHLGFBQWEsQ0FBQTtJQUVuQzs7T0FFRztJQUNILFNBQWdCLE1BQU0sQ0FBQyxDQUFTO1FBQy9CLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDVixDQUFDO0lBRmUsYUFBTSxTQUVyQixDQUFBO0lBRUQ7O09BRUc7SUFDSCxTQUFnQixNQUFNLENBQUMsQ0FBUztRQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDYixDQUFDO0lBRmUsYUFBTSxTQUVyQixDQUFBO0lBRUQ7O09BRUc7SUFDSCxTQUFnQixRQUFRLENBQUMsQ0FBUztRQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDYixDQUFDO0lBRmUsZUFBUSxXQUV2QixDQUFBO0lBRUQ7O09BRUc7SUFDVSxnQkFBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7SUFFbEM7Ozs7OztPQU1HO0lBQ0gsU0FBZ0IsSUFBSSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUztRQUNuRCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkIsQ0FBQztJQUZlLFdBQUksT0FFbkIsQ0FBQTtJQUVEOzs7O09BSUc7SUFDVSxVQUFHLEdBQUcsSUFBSSxDQUFBO0lBRXZCOzs7Ozs7O09BT0c7SUFDSCxTQUFnQixXQUFXLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO1FBQzFELElBQUksQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLEdBQUcsQ0FBQTtRQUN2QixPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFIZSxrQkFBVyxjQUcxQixDQUFBO0lBRUQ7OztPQUdHO0lBQ1UsY0FBTyxHQUFHLFdBQVcsQ0FBQTtJQUVsQzs7Ozs7Ozs7O09BU0c7SUFDSCxTQUFnQixHQUFHLENBQ2xCLEtBQWEsRUFDYixJQUFZLEVBQ1osSUFBWSxFQUNaLElBQVksRUFDWixJQUFZO1FBRVosSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUM3QixDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUNyRCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzNCLENBQUM7SUFiZSxVQUFHLE1BYWxCLENBQUE7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxTQUFnQixJQUFJLENBQ25CLEtBQWEsRUFDYixJQUFZLEVBQ1osSUFBWSxFQUNaLElBQVksRUFDWixJQUFZO1FBRVosSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUM3QixDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUMzQixDQUFDO0lBYmUsV0FBSSxPQWFuQixDQUFBO0lBRUQ7OztPQUdHO0lBQ0gsU0FBZ0IsS0FBSyxDQUFDLEtBQWEsRUFBRSxJQUFZLEVBQUUsSUFBWTtRQUM5RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUZlLFlBQUssUUFFcEIsQ0FBQTtJQUVEOzs7T0FHRztJQUNILFNBQWdCLEtBQUssQ0FBQyxLQUFhLEVBQUUsSUFBWSxFQUFFLElBQVk7UUFDOUQsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUZlLFlBQUssUUFFcEIsQ0FBQTtJQUVEOzs7Ozs7T0FNRztJQUNILFNBQWdCLElBQUksQ0FBQyxJQUFZLEVBQUUsQ0FBUztRQUMzQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3hCLENBQUM7SUFGZSxXQUFJLE9BRW5CLENBQUE7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsU0FBZ0IsVUFBVSxDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQUUsQ0FBUztRQUNqRSxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUhlLGlCQUFVLGFBR3pCLENBQUE7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsU0FBZ0IsT0FBTyxDQUFDLEdBQVc7UUFDbEMsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFBO0lBQzdCLENBQUM7SUFGZSxjQUFPLFVBRXRCLENBQUE7SUFFRDs7O09BR0c7SUFDVSxVQUFHLEdBQUcsT0FBTyxDQUFBO0lBRTFCOzs7Ozs7O09BT0c7SUFDSCxTQUFnQixPQUFPLENBQUMsR0FBVztRQUNsQyxPQUFPLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUE7SUFDN0IsQ0FBQztJQUZlLGNBQU8sVUFFdEIsQ0FBQTtJQUVEOzs7T0FHRztJQUNVLFVBQUcsR0FBRyxPQUFPLENBQUE7SUFFMUI7OztPQUdHO0lBQ0gsU0FBZ0IsR0FBRyxDQUFDLEdBQVc7UUFDOUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUZlLFVBQUcsTUFFbEIsQ0FBQTtJQUVEOzs7T0FHRztJQUNILFNBQWdCLEdBQUcsQ0FBQyxHQUFXO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3RDLENBQUM7SUFGZSxVQUFHLE1BRWxCLENBQUE7SUFFRDs7O09BR0c7SUFDSCxTQUFnQixHQUFHLENBQUMsR0FBVztRQUM5QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBRmUsVUFBRyxNQUVsQixDQUFBO0lBRUQ7Ozs7T0FJRztJQUNILFNBQWdCLElBQUksQ0FBQyxDQUFTO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFBO0lBQ3JDLENBQUM7SUFGZSxXQUFJLE9BRW5CLENBQUE7SUFFRDs7OztPQUlHO0lBQ0gsU0FBZ0IsSUFBSSxDQUFDLENBQVM7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUE7SUFDckMsQ0FBQztJQUZlLFdBQUksT0FFbkIsQ0FBQTtJQUVEOzs7Ozs7T0FNRztJQUNILFNBQWdCLElBQUksQ0FBQyxDQUFTLEVBQUUsQ0FBVTtRQUN6QyxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQTtRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQTtRQUN6QyxDQUFDO0lBQ0YsQ0FBQztJQU5lLFdBQUksT0FNbkIsQ0FBQTtJQUVEOzs7Ozs7T0FNRztJQUNILFNBQWdCLEtBQUssQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUN6QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUE7SUFDekMsQ0FBQztJQUZlLFlBQUssUUFFcEIsQ0FBQTtJQUVEOztPQUVHO0lBQ1UsVUFBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUE7SUFFM0I7O09BRUc7SUFDVSxVQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQTtJQUUzQjs7T0FFRztJQUNVLFVBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFBO0lBRTNCOzs7T0FHRztJQUNILFNBQWdCLElBQUksQ0FBQyxDQUFTO1FBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNkLENBQUM7SUFGZSxXQUFJLE9BRW5CLENBQUE7SUFFRDs7T0FFRztJQUNVLFdBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO0lBRTdCOztPQUVHO0lBQ1UsV0FBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7SUFFN0I7Ozs7T0FJRztJQUNILFNBQWdCLFdBQVcsQ0FBQyxDQUFTO1FBQ3BDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEIsQ0FBQztJQUZlLGtCQUFXLGNBRTFCLENBQUE7SUFFRDs7O09BR0c7SUFDVSxjQUFPLEdBQUcsV0FBVyxDQUFBO0lBRWxDOztPQUVHO0lBQ1UsV0FBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7SUFFN0I7O09BRUc7SUFDVSxXQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtJQUU3Qjs7T0FFRztJQUNVLFdBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO0lBRTdCOztPQUVHO0lBQ1UsWUFBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUE7SUFFL0I7O09BRUc7SUFDVSxZQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQTtJQUUvQjs7T0FFRztJQUNVLFlBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFBO0lBRS9COztPQUVHO0lBQ0gsU0FBZ0IsUUFBUSxDQUFDLENBQVM7UUFDakMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ25DLENBQUM7SUFGZSxlQUFRLFdBRXZCLENBQUE7SUFFRDs7Ozs7Ozs7Ozs7T0FXRztJQUNILFNBQWdCLFFBQVEsQ0FBQyxDQUFTLEVBQUUsTUFBTSxHQUFHLENBQUM7UUFDN0MsQ0FBQyxJQUFJLE1BQU0sQ0FBQTtRQUVYLElBQUksQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNuQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDYixDQUFDO0lBTmUsZUFBUSxXQU12QixDQUFBO0lBRUQ7OztPQUdHO0lBQ1UsV0FBSSxHQUFHLFFBQVEsQ0FBQTtJQUU1Qjs7Ozs7OztPQU9HO0lBQ0gsU0FBZ0IsUUFBUSxDQUFDLENBQVMsRUFBRSxNQUFNLEdBQUcsQ0FBQztRQUM3QyxDQUFDLElBQUksTUFBTSxDQUFBO1FBRVgsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFKZSxlQUFRLFdBSXZCLENBQUE7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsU0FBZ0IsT0FBTyxDQUFDLENBQVMsRUFBRSxNQUFNLEdBQUcsQ0FBQztRQUM1QyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUE7UUFDOUIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUhlLGNBQU8sVUFHdEIsQ0FBQTtJQUVEOzs7Ozs7O09BT0c7SUFDSCxTQUFnQixPQUFPLENBQUMsQ0FBUyxFQUFFLE1BQU0sR0FBRyxDQUFDO1FBQzVDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQTtRQUM5QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBSGUsY0FBTyxVQUd0QixDQUFBO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILFNBQWdCLE1BQU0sQ0FBQyxDQUFTLEVBQUUsTUFBTSxHQUFHLENBQUM7UUFDM0MsQ0FBQyxJQUFJLE1BQU0sQ0FBQTtRQUNYLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQy9CLE9BQU8sS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUplLGFBQU0sU0FJckIsQ0FBQTtJQUVEOzs7Ozs7T0FNRztJQUNILFNBQWdCLFlBQVksQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUNoRCxPQUFPLENBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDeEQsQ0FBQTtJQUNGLENBQUM7SUFMZSxtQkFBWSxlQUszQixDQUFBO0lBRUQ7OztPQUdHO0lBQ1UsYUFBTSxHQUFHLFlBQVksQ0FBQTtJQUVsQzs7OztPQUlHO0lBQ1UsYUFBTSxHQUFHLFlBQVksQ0FBQTtBQUNuQyxDQUFDLEVBM3RCZ0IsTUFBTSxLQUFOLE1BQU0sUUEydEJ0QiJ9
650
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjYWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQTtBQUVsQzs7O0dBR0c7QUFDSCxNQUFNLEtBQVcsTUFBTSxDQWlyQnRCO0FBanJCRCxXQUFpQixNQUFNO0lBQ3RCOztPQUVHO0lBQ0gsU0FBZ0IsR0FBRyxDQUFDLEdBQUcsRUFBWTtRQUNsQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFGZSxVQUFHLE1BRWxCLENBQUE7SUFFRDs7Ozs7T0FLRztJQUNILFNBQWdCLFFBQVEsQ0FBQyxHQUFHLEVBQVk7UUFDdkMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxDQUFBO1FBQ1QsQ0FBQzthQUFNLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2QsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBUGUsZUFBUSxXQU92QixDQUFBO0lBRUQ7OztPQUdHO0lBQ1UsVUFBRyxHQUFHLFFBQVEsQ0FBQTtJQUUzQjs7T0FFRztJQUNILFNBQWdCLEtBQUssQ0FBQyxDQUFTLEVBQUUsQ0FBUztRQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDYixDQUFDO0lBRmUsWUFBSyxRQUVwQixDQUFBO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFnQixRQUFRLENBQUMsR0FB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
package/package.json CHANGED
@@ -1,9 +1,14 @@
1
1
  {
2
2
  "name": "linearly",
3
- "version": "0.36.0",
3
+ "version": "0.37.0",
4
4
  "description": "Matrix and vector library with immutable data types",
5
- "main": "./lib/cjs/index.js",
6
- "module": "./lib/esm/index.js",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./lib/esm/index.d.ts",
9
+ "import": "./lib/esm/index.js"
10
+ }
11
+ },
7
12
  "types": "./lib/esm/index.d.ts",
8
13
  "sideEffects": false,
9
14
  "scripts": {
@@ -11,7 +16,7 @@
11
16
  "dev:test": "vitest",
12
17
  "dev:api": "typedoc src/index.ts --watch",
13
18
  "dev:doc": "vuepress dev docs",
14
- "build": "tsc && tsc -p tsconfig.cjs.json",
19
+ "build": "tsc",
15
20
  "build:api": "typedoc src/index.ts",
16
21
  "build:doc": "npm run build:api; vuepress build docs",
17
22
  "lint": "eslint",
@@ -1,16 +0,0 @@
1
- /**
2
- * Common utilities
3
- */
4
- export declare const EPSILON = 0.000001;
5
- export declare const DEG2RAD: number;
6
- export declare const RAD2DEG: number;
7
- /**
8
- * Symmetric round
9
- * see https://www.npmjs.com/package/round-half-up-symmetric#user-content-detailed-background
10
- */
11
- export declare function round(a: number): number;
12
- export type AngleOrder = 'xyz' | 'xzy' | 'yxz' | 'yzx' | 'zxy' | 'zyx';
13
- export declare const DEFAULT_ANGLE_ORDER: AngleOrder;
14
- export declare function vecToString(v: readonly number[], fractionDigits?: number): string;
15
- export declare function createMatToStringFunction(col: number, row: number): (m: readonly number[], fractionDigits?: number) => string;
16
- //# sourceMappingURL=common.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/common.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,eAAO,MAAM,OAAO,WAAW,CAAA;AAE/B,eAAO,MAAM,OAAO,QAAgB,CAAA;AAEpC,eAAO,MAAM,OAAO,QAAgB,CAAA;AAEpC;;;GAGG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,UAG9B;AAED,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;AAEtE,eAAO,MAAM,mBAAmB,EAAE,UAAkB,CAAA;AAEpD,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,cAAc,SAAI,GAAG,MAAM,CAI5E;AASD,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,IAYhD,GAAG,SAAS,MAAM,EAAE,EAAE,uBAAkB,KAAG,MAAM,CAsClE"}
package/lib/cjs/common.js DELETED
@@ -1,70 +0,0 @@
1
- "use strict";
2
- /**
3
- * Common utilities
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DEFAULT_ANGLE_ORDER = exports.RAD2DEG = exports.DEG2RAD = exports.EPSILON = void 0;
7
- exports.round = round;
8
- exports.vecToString = vecToString;
9
- exports.createMatToStringFunction = createMatToStringFunction;
10
- // Configuration Constants
11
- exports.EPSILON = 0.000001;
12
- exports.DEG2RAD = Math.PI / 180;
13
- exports.RAD2DEG = 180 / Math.PI;
14
- /**
15
- * Symmetric round
16
- * see https://www.npmjs.com/package/round-half-up-symmetric#user-content-detailed-background
17
- */
18
- function round(a) {
19
- if (a >= 0)
20
- return Math.round(a);
21
- return a % 0.5 === 0 ? Math.floor(a) : Math.round(a);
22
- }
23
- exports.DEFAULT_ANGLE_ORDER = 'zyx';
24
- function vecToString(v, fractionDigits = 2) {
25
- const strs = v.map(a => toFixedSimple(a, fractionDigits));
26
- return '[' + strs.join(', ') + ']';
27
- }
28
- function toFixedSimple(a, fractionDigits = 2) {
29
- return a
30
- .toFixed(fractionDigits)
31
- .replace(/\.([\d]*?)(0+)$/g, '.$1')
32
- .replace(/\.$/g, '');
33
- }
34
- function createMatToStringFunction(col, row) {
35
- function padNumber(str, padWhile, padLength) {
36
- const [whole, decimal] = str.split('.');
37
- const paddedWhole = whole.padStart(padWhile, ' ');
38
- const paddedDecimal = (decimal !== undefined ? '.' + decimal : '').padEnd(padLength, ' ');
39
- return paddedWhole + paddedDecimal;
40
- }
41
- return function (m, fractionDigits = 2) {
42
- const strs = m.map(a => toFixedSimple(a, fractionDigits));
43
- const maxDecimalLengthPerCol = [];
44
- const maxWholeLengthPerCol = [];
45
- for (let i = 0; i < col; i++) {
46
- const colStrs = [];
47
- for (let j = 0; j < row; j++) {
48
- colStrs.push(strs[i + j * col]);
49
- }
50
- maxWholeLengthPerCol.push(Math.max(...colStrs.map(a => a.split('.')[0].length)));
51
- maxDecimalLengthPerCol.push(Math.max(...colStrs.map(a => {
52
- const decimal = a.split('.')[1];
53
- return decimal !== undefined ? ('.' + decimal).length : 0;
54
- })));
55
- }
56
- const rows = [];
57
- for (let j = 0; j < row; j++) {
58
- const rowStrs = [];
59
- for (let i = 0; i < col; i++) {
60
- const str = strs[i + j * col];
61
- const wholeLength = maxWholeLengthPerCol[i];
62
- const decimalLength = maxDecimalLengthPerCol[i];
63
- rowStrs.push(padNumber(str, wholeLength, decimalLength));
64
- }
65
- rows.push(rowStrs.join(', '));
66
- }
67
- return '[' + rows.join(',\n ') + ']';
68
- };
69
- }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQWFILHNCQUdDO0FBTUQsa0NBSUM7QUFTRCw4REFrREM7QUFuRkQsMEJBQTBCO0FBQ2IsUUFBQSxPQUFPLEdBQUcsUUFBUSxDQUFBO0FBRWxCLFFBQUEsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFBO0FBRXZCLFFBQUEsT0FBTyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFBO0FBRXBDOzs7R0FHRztBQUNILFNBQWdCLEtBQUssQ0FBQyxDQUFTO0lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDaEMsT0FBTyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNyRCxDQUFDO0FBSVksUUFBQSxtQkFBbUIsR0FBZSxLQUFLLENBQUE7QUFFcEQsU0FBZ0IsV0FBVyxDQUFDLENBQW9CLEVBQUUsY0FBYyxHQUFHLENBQUM7SUFDbkUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQTtJQUV6RCxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQTtBQUNuQyxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsQ0FBUyxFQUFFLGNBQWMsR0FBRyxDQUFDO0lBQ25ELE9BQU8sQ0FBQztTQUNOLE9BQU8sQ0FBQyxjQUFjLENBQUM7U0FDdkIs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
@@ -1,10 +0,0 @@
1
- export { scalar } from './scalar';
2
- export { vec2 } from './vec2';
3
- export { vec3 } from './vec3';
4
- export { vec4 } from './vec4';
5
- export { mat2 } from './mat2';
6
- export { mat2d } from './mat2d';
7
- export { mat3 } from './mat3';
8
- export { mat4 } from './mat4';
9
- export { quat } from './quat';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAA;AAE/B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAE7B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAA"}
package/lib/cjs/index.js DELETED
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.quat = exports.mat4 = exports.mat3 = exports.mat2d = exports.mat2 = exports.vec4 = exports.vec3 = exports.vec2 = exports.scalar = void 0;
4
- var scalar_1 = require("./scalar");
5
- Object.defineProperty(exports, "scalar", { enumerable: true, get: function () { return scalar_1.scalar; } });
6
- var vec2_1 = require("./vec2");
7
- Object.defineProperty(exports, "vec2", { enumerable: true, get: function () { return vec2_1.vec2; } });
8
- var vec3_1 = require("./vec3");
9
- Object.defineProperty(exports, "vec3", { enumerable: true, get: function () { return vec3_1.vec3; } });
10
- var vec4_1 = require("./vec4");
11
- Object.defineProperty(exports, "vec4", { enumerable: true, get: function () { return vec4_1.vec4; } });
12
- var mat2_1 = require("./mat2");
13
- Object.defineProperty(exports, "mat2", { enumerable: true, get: function () { return mat2_1.mat2; } });
14
- var mat2d_1 = require("./mat2d");
15
- Object.defineProperty(exports, "mat2d", { enumerable: true, get: function () { return mat2d_1.mat2d; } });
16
- var mat3_1 = require("./mat3");
17
- Object.defineProperty(exports, "mat3", { enumerable: true, get: function () { return mat3_1.mat3; } });
18
- var mat4_1 = require("./mat4");
19
- Object.defineProperty(exports, "mat4", { enumerable: true, get: function () { return mat4_1.mat4; } });
20
- var quat_1 = require("./quat");
21
- Object.defineProperty(exports, "quat", { enumerable: true, get: function () { return quat_1.quat; } });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQStCO0FBQXZCLGdHQUFBLE1BQU0sT0FBQTtBQUVkLCtCQUEyQjtBQUFuQiw0RkFBQSxJQUFJLE9BQUE7QUFFWiwrQkFBMkI7QUFBbkIsNEZBQUEsSUFBSSxPQUFBO0FBRVosK0JBQTJCO0FBQW5CLDRGQUFBLElBQUksT0FBQTtBQUVaLCtCQUEyQjtBQUFuQiw0RkFBQSxJQUFJLE9BQUE7QUFFWixpQ0FBNkI7QUFBckIsOEZBQUEsS0FBSyxPQUFBO0FBRWIsK0JBQTJCO0FBQW5CLDRGQUFBLElBQUksT0FBQTtBQUVaLCtCQUEyQjtBQUFuQiw0RkFBQSxJQUFJLE9BQUE7QUFFWiwrQkFBMkI7QUFBbkIsNEZBQUEsSUFBSSxPQUFBIn0=