@lakuna/umath 1.3.3 → 1.3.5

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 (133) hide show
  1. package/README.md +7 -9
  2. package/dist/algorithms/combinations.d.ts.map +1 -1
  3. package/dist/algorithms/combinations.js +1 -1
  4. package/dist/algorithms/combinations.js.map +1 -1
  5. package/dist/algorithms/degreesToRadians.d.ts.map +1 -1
  6. package/dist/algorithms/factorial.d.ts.map +1 -1
  7. package/dist/algorithms/factorial.js +8 -5
  8. package/dist/algorithms/factorial.js.map +1 -1
  9. package/dist/algorithms/fibonacci.d.ts +1 -1
  10. package/dist/algorithms/fibonacci.d.ts.map +1 -1
  11. package/dist/algorithms/fibonacci.js +1 -1
  12. package/dist/algorithms/fibonacci.js.map +1 -1
  13. package/dist/algorithms/greatestCommonDivisor.js +5 -9
  14. package/dist/algorithms/greatestCommonDivisor.js.map +1 -1
  15. package/dist/algorithms/hypergeometricPmf.d.ts.map +1 -1
  16. package/dist/algorithms/hypergeometricPmf.js +1 -1
  17. package/dist/algorithms/hypergeometricPmf.js.map +1 -1
  18. package/dist/algorithms/isPrime.d.ts.map +1 -1
  19. package/dist/algorithms/isPrime.js +1 -1
  20. package/dist/algorithms/isPrime.js.map +1 -1
  21. package/dist/algorithms/permutations.d.ts.map +1 -1
  22. package/dist/algorithms/permutations.js +1 -1
  23. package/dist/algorithms/permutations.js.map +1 -1
  24. package/dist/algorithms/primeFactorization.d.ts +1 -1
  25. package/dist/algorithms/primeFactorization.d.ts.map +1 -1
  26. package/dist/algorithms/primeFactorization.js +4 -3
  27. package/dist/algorithms/primeFactorization.js.map +1 -1
  28. package/dist/algorithms/radiansToDegrees.d.ts.map +1 -1
  29. package/dist/algorithms/summation.d.ts.map +1 -1
  30. package/dist/algorithms/summation.js.map +1 -1
  31. package/dist/index.d.ts +32 -33
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +27 -27
  34. package/dist/index.js.map +1 -1
  35. package/dist/linalg/DualQuaternion.d.ts +50 -56
  36. package/dist/linalg/DualQuaternion.d.ts.map +1 -1
  37. package/dist/linalg/DualQuaternion.js +67 -61
  38. package/dist/linalg/DualQuaternion.js.map +1 -1
  39. package/dist/linalg/Matrix.d.ts +13 -12
  40. package/dist/linalg/Matrix.d.ts.map +1 -1
  41. package/dist/linalg/Matrix2.d.ts +30 -34
  42. package/dist/linalg/Matrix2.d.ts.map +1 -1
  43. package/dist/linalg/Matrix2.js +26 -23
  44. package/dist/linalg/Matrix2.js.map +1 -1
  45. package/dist/linalg/Matrix3.d.ts +47 -47
  46. package/dist/linalg/Matrix3.d.ts.map +1 -1
  47. package/dist/linalg/Matrix3.js +52 -43
  48. package/dist/linalg/Matrix3.js.map +1 -1
  49. package/dist/linalg/Matrix4.d.ts +83 -102
  50. package/dist/linalg/Matrix4.d.ts.map +1 -1
  51. package/dist/linalg/Matrix4.js +105 -89
  52. package/dist/linalg/Matrix4.js.map +1 -1
  53. package/dist/linalg/Quaternion.d.ts +36 -49
  54. package/dist/linalg/Quaternion.d.ts.map +1 -1
  55. package/dist/linalg/Quaternion.js +33 -25
  56. package/dist/linalg/Quaternion.js.map +1 -1
  57. package/dist/linalg/SlowMatrix.d.ts +9 -9
  58. package/dist/linalg/SlowMatrix.d.ts.map +1 -1
  59. package/dist/linalg/SlowMatrix.js +76 -27
  60. package/dist/linalg/SlowMatrix.js.map +1 -1
  61. package/dist/linalg/SlowSquareMatrix.d.ts +3 -3
  62. package/dist/linalg/SlowSquareMatrix.d.ts.map +1 -1
  63. package/dist/linalg/SlowSquareMatrix.js +53 -21
  64. package/dist/linalg/SlowSquareMatrix.js.map +1 -1
  65. package/dist/linalg/SquareMatrix.d.ts +3 -3
  66. package/dist/linalg/SquareMatrix.d.ts.map +1 -1
  67. package/dist/linalg/Vector.d.ts +25 -24
  68. package/dist/linalg/Vector.d.ts.map +1 -1
  69. package/dist/linalg/Vector2.d.ts +35 -52
  70. package/dist/linalg/Vector2.d.ts.map +1 -1
  71. package/dist/linalg/Vector2.js +8 -6
  72. package/dist/linalg/Vector2.js.map +1 -1
  73. package/dist/linalg/Vector3.d.ts +43 -63
  74. package/dist/linalg/Vector3.d.ts.map +1 -1
  75. package/dist/linalg/Vector3.js +46 -58
  76. package/dist/linalg/Vector3.js.map +1 -1
  77. package/dist/linalg/Vector4.d.ts +34 -45
  78. package/dist/linalg/Vector4.d.ts.map +1 -1
  79. package/dist/linalg/Vector4.js +6 -2
  80. package/dist/linalg/Vector4.js.map +1 -1
  81. package/dist/types/AxisAngle.d.ts +1 -1
  82. package/dist/types/AxisAngle.d.ts.map +1 -1
  83. package/dist/utility/BigNumber.d.ts +5 -8
  84. package/dist/utility/BigNumber.d.ts.map +1 -1
  85. package/dist/utility/BigNumber.js +5 -5
  86. package/dist/utility/BigNumber.js.map +1 -1
  87. package/dist/utility/MagnitudeError.d.ts.map +1 -1
  88. package/dist/utility/MagnitudeError.js +1 -1
  89. package/dist/utility/MagnitudeError.js.map +1 -1
  90. package/dist/utility/MatrixSizeError.d.ts.map +1 -1
  91. package/dist/utility/MatrixSizeError.js.map +1 -1
  92. package/dist/utility/PartialMatrixError.d.ts.map +1 -1
  93. package/dist/utility/PartialMatrixError.js.map +1 -1
  94. package/dist/utility/epsilon.d.ts.map +1 -1
  95. package/dist/utility/epsilon.js.map +1 -1
  96. package/package.json +20 -51
  97. package/src/algorithms/combinations.ts +5 -5
  98. package/src/algorithms/degreesToRadians.ts +4 -4
  99. package/src/algorithms/factorial.ts +14 -9
  100. package/src/algorithms/fibonacci.ts +3 -3
  101. package/src/algorithms/greatestCommonDivisor.ts +15 -19
  102. package/src/algorithms/hypergeometricPmf.ts +6 -7
  103. package/src/algorithms/isPrime.ts +5 -5
  104. package/src/algorithms/permutations.ts +5 -5
  105. package/src/algorithms/primeFactorization.ts +9 -9
  106. package/src/algorithms/radiansToDegrees.ts +4 -4
  107. package/src/algorithms/summation.ts +6 -6
  108. package/src/index.ts +35 -33
  109. package/src/linalg/DualQuaternion.ts +528 -780
  110. package/src/linalg/Matrix.ts +35 -36
  111. package/src/linalg/Matrix2.ts +253 -402
  112. package/src/linalg/Matrix3.ts +502 -720
  113. package/src/linalg/Matrix4.ts +1032 -1574
  114. package/src/linalg/Quaternion.ts +400 -679
  115. package/src/linalg/SlowMatrix.ts +124 -75
  116. package/src/linalg/SlowSquareMatrix.ts +92 -63
  117. package/src/linalg/SquareMatrix.ts +7 -7
  118. package/src/linalg/Vector.ts +71 -70
  119. package/src/linalg/Vector2.ts +342 -552
  120. package/src/linalg/Vector3.ts +502 -815
  121. package/src/linalg/Vector4.ts +347 -530
  122. package/src/types/AxisAngle.ts +1 -1
  123. package/src/utility/BigNumber.ts +36 -45
  124. package/src/utility/MagnitudeError.ts +4 -4
  125. package/src/utility/MatrixSizeError.ts +2 -3
  126. package/src/utility/PartialMatrixError.ts +2 -3
  127. package/src/utility/SingularMatrixError.ts +2 -2
  128. package/src/utility/epsilon.ts +1 -4
  129. package/dist/types/IntegerRepresentation.d.ts +0 -2
  130. package/dist/types/IntegerRepresentation.d.ts.map +0 -1
  131. package/dist/types/IntegerRepresentation.js +0 -2
  132. package/dist/types/IntegerRepresentation.js.map +0 -1
  133. package/src/types/IntegerRepresentation.ts +0 -2
@@ -1,8 +1,8 @@
1
- import { getRotation as getMatrix4Rotation, getTranslation as getMatrix4Translation } from "#Matrix4";
2
- import Quaternion, { rotateX as quaternionRotateX, rotateY as quaternionRotateY, rotateZ as quaternionRotateZ } from "#Quaternion";
3
- import Vector3, {} from "#Vector3";
4
- import { copy as xetReal, dot, getMagnitude, getSquaredMagnitude } from "#Vector4";
5
- import epsilon from "#epsilon";
1
+ import { getRotation as getMatrix4Rotation, getTranslation as getMatrix4Translation } from "./Matrix4.js";
2
+ import Quaternion, { createQuaternionLike, rotateX as quaternionRotateX, rotateY as quaternionRotateY, rotateZ as quaternionRotateZ } from "./Quaternion.js";
3
+ import Vector3, { createVector3Like } from "./Vector3.js";
4
+ import { dot, getMagnitude, getSquaredMagnitude, copy as xetReal } from "./Vector4.js";
5
+ import epsilon from "../utility/epsilon.js";
6
6
  export function createDualQuaternionLike() {
7
7
  return new Float32Array(8);
8
8
  }
@@ -68,8 +68,8 @@ export function fromRotation(quaternion, out) {
68
68
  out[7] = 0;
69
69
  return out;
70
70
  }
71
- const rotation = new Float32Array(4);
72
- const translation = new Float32Array(4);
71
+ const rotation = createQuaternionLike();
72
+ const translation = createVector3Like();
73
73
  export function fromMatrix4(matrix, out) {
74
74
  return fromRotationTranslation(getMatrix4Rotation(matrix, rotation), getMatrix4Translation(matrix, translation), out);
75
75
  }
@@ -364,17 +364,15 @@ export function scale(dualQuaternion, scalar, out) {
364
364
  }
365
365
  export function lerp(a, b, t, out) {
366
366
  const mt = 1 - t;
367
- if (dot(a, b) < epsilon) {
368
- t = -t;
369
- }
370
- out[0] = a[0] * mt + b[0] * t;
371
- out[1] = a[1] * mt + b[1] * t;
372
- out[2] = a[2] * mt + b[2] * t;
373
- out[3] = a[3] * mt + b[3] * t;
374
- out[4] = a[4] * mt + b[4] * t;
375
- out[5] = a[5] * mt + b[5] * t;
376
- out[6] = a[6] * mt + b[6] * t;
377
- out[7] = a[7] * mt + b[7] * t;
367
+ const it = dot(a, b) < epsilon ? -t : t;
368
+ out[0] = a[0] * mt + b[0] * it;
369
+ out[1] = a[1] * mt + b[1] * it;
370
+ out[2] = a[2] * mt + b[2] * it;
371
+ out[3] = a[3] * mt + b[3] * it;
372
+ out[4] = a[4] * mt + b[4] * it;
373
+ out[5] = a[5] * mt + b[5] * it;
374
+ out[6] = a[6] * mt + b[6] * it;
375
+ out[7] = a[7] * mt + b[7] * it;
378
376
  return out;
379
377
  }
380
378
  export function invert(dualQuaternion, out) {
@@ -412,15 +410,15 @@ export function normalize(dualQuaternion, out) {
412
410
  const b1 = dualQuaternion[5];
413
411
  const b2 = dualQuaternion[6];
414
412
  const b3 = dualQuaternion[7];
415
- const a_dot_b = a0 * b0 + a1 * b1 + a2 * b2 + a3 * b3;
413
+ const aDotB = a0 * b0 + a1 * b1 + a2 * b2 + a3 * b3;
416
414
  out[0] = a0;
417
415
  out[1] = a1;
418
416
  out[2] = a2;
419
417
  out[3] = a3;
420
- out[4] = (b0 - a0 * a_dot_b) / magnitude;
421
- out[5] = (b1 - a1 * a_dot_b) / magnitude;
422
- out[6] = (b2 - a2 * a_dot_b) / magnitude;
423
- out[7] = (b3 - a3 * a_dot_b) / magnitude;
418
+ out[4] = (b0 - a0 * aDotB) / magnitude;
419
+ out[5] = (b1 - a1 * aDotB) / magnitude;
420
+ out[6] = (b2 - a2 * aDotB) / magnitude;
421
+ out[7] = (b3 - a3 * aDotB) / magnitude;
424
422
  }
425
423
  return out;
426
424
  }
@@ -464,14 +462,14 @@ export default class DualQuaternion extends Float32Array {
464
462
  static fromValues(x1, y1, z1, w1, x2, y2, z2, w2, out = new DualQuaternion()) {
465
463
  return fromValues(x1, y1, z1, w1, x2, y2, z2, w2, out);
466
464
  }
467
- static fromRotationTranslation(quaternion, translation, out = new DualQuaternion()) {
468
- return fromRotationTranslation(quaternion, translation, out);
465
+ static fromRotationTranslation(q, t, out = new DualQuaternion()) {
466
+ return fromRotationTranslation(q, t, out);
469
467
  }
470
- static fromTranslation(translation, out = new DualQuaternion()) {
471
- return fromTranslation(translation, out);
468
+ static fromTranslation(t, out = new DualQuaternion()) {
469
+ return fromTranslation(t, out);
472
470
  }
473
- static fromRotation(quaternion, out = new DualQuaternion()) {
474
- return fromRotation(quaternion, out);
471
+ static fromRotation(q, out = new DualQuaternion()) {
472
+ return fromRotation(q, out);
475
473
  }
476
474
  static fromMatrix4(matrix, out = new DualQuaternion()) {
477
475
  return fromMatrix4(matrix, out);
@@ -480,6 +478,14 @@ export default class DualQuaternion extends Float32Array {
480
478
  super(8);
481
479
  this[3] = 1;
482
480
  }
481
+ 0;
482
+ 1;
483
+ 2;
484
+ 3;
485
+ 4;
486
+ 5;
487
+ 6;
488
+ 7;
483
489
  copy(dualQuaternion) {
484
490
  return copy(dualQuaternion, this);
485
491
  }
@@ -492,53 +498,53 @@ export default class DualQuaternion extends Float32Array {
492
498
  getReal(out = new Quaternion()) {
493
499
  return xetReal(this, out);
494
500
  }
495
- setReal(quaternion) {
496
- xetReal(quaternion, this);
501
+ setReal(q) {
502
+ xetReal(q, this);
497
503
  }
498
504
  getDual(out = new Quaternion()) {
499
505
  return getDual(this, out);
500
506
  }
501
- setDual(quaternion) {
502
- setDual(quaternion, this);
507
+ setDual(q) {
508
+ setDual(q, this);
503
509
  }
504
510
  getTranslation(out = new Vector3()) {
505
511
  return getTranslation(this, out);
506
512
  }
507
- translate(vector, out = new DualQuaternion()) {
508
- return translate(this, vector, out);
513
+ translate(v, out = new DualQuaternion()) {
514
+ return translate(this, v, out);
509
515
  }
510
- rotateX(radians, out = new DualQuaternion()) {
511
- return rotateX(this, radians, out);
516
+ rotateX(r, out = new DualQuaternion()) {
517
+ return rotateX(this, r, out);
512
518
  }
513
- rotateY(radians, out = new DualQuaternion()) {
514
- return rotateY(this, radians, out);
519
+ rotateY(r, out = new DualQuaternion()) {
520
+ return rotateY(this, r, out);
515
521
  }
516
- rotateZ(radians, out = new DualQuaternion()) {
517
- return rotateZ(this, radians, out);
522
+ rotateZ(r, out = new DualQuaternion()) {
523
+ return rotateZ(this, r, out);
518
524
  }
519
- rotateByQuaternionAppend(quaternion, out = new DualQuaternion()) {
520
- return rotateByQuaternionAppend(this, quaternion, out);
525
+ rotateByQuaternionAppend(q, out = new DualQuaternion()) {
526
+ return rotateByQuaternionAppend(this, q, out);
521
527
  }
522
- rotateByQuaternionPrepend(quaternion, out = new DualQuaternion()) {
523
- return rotateByQuaternionPrepend(quaternion, this, out);
528
+ rotateByQuaternionPrepend(q, out = new DualQuaternion()) {
529
+ return rotateByQuaternionPrepend(q, this, out);
524
530
  }
525
- rotateAroundAxis(axis, radians, out = new DualQuaternion()) {
526
- return rotateAroundAxis(this, axis, radians, out);
531
+ rotateAroundAxis(axis, r, out = new DualQuaternion()) {
532
+ return rotateAroundAxis(this, axis, r, out);
527
533
  }
528
- add(dualQuaternion, out = new DualQuaternion()) {
529
- return add(this, dualQuaternion, out);
534
+ add(dq, out = new DualQuaternion()) {
535
+ return add(this, dq, out);
530
536
  }
531
- multiply(dualQuaternion, out = new DualQuaternion()) {
532
- return multiply(this, dualQuaternion, out);
537
+ multiply(dq, out = new DualQuaternion()) {
538
+ return multiply(this, dq, out);
533
539
  }
534
- scale(scalar, out = new DualQuaternion()) {
535
- return scale(this, scalar, out);
540
+ scale(s, out = new DualQuaternion()) {
541
+ return scale(this, s, out);
536
542
  }
537
- dot(dualQuaternion) {
538
- return dot(this, dualQuaternion);
543
+ dot(dq) {
544
+ return dot(this, dq);
539
545
  }
540
- lerp(dualQuaternion, t, out = new DualQuaternion()) {
541
- return lerp(this, dualQuaternion, t, out);
546
+ lerp(dq, t, out = new DualQuaternion()) {
547
+ return lerp(this, dq, t, out);
542
548
  }
543
549
  invert(out = new DualQuaternion()) {
544
550
  return invert(this, out);
@@ -555,11 +561,11 @@ export default class DualQuaternion extends Float32Array {
555
561
  normalize(out = new DualQuaternion()) {
556
562
  return normalize(this, out);
557
563
  }
558
- exactEquals(dualQuaternion) {
559
- return exactEquals(this, dualQuaternion);
564
+ exactEquals(dq) {
565
+ return exactEquals(this, dq);
560
566
  }
561
- equals(dualQuaternion) {
562
- return equals(this, dualQuaternion);
567
+ equals(dq) {
568
+ return equals(this, dq);
563
569
  }
564
570
  }
565
571
  //# sourceMappingURL=DualQuaternion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DualQuaternion.js","sourceRoot":"","sources":["../../src/linalg/DualQuaternion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DualQuaternion.js","sourceRoot":"","sources":["../../src/linalg/DualQuaternion.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,18 @@
1
- export type MatrixLike = Matrix | ArrayLike<number>;
2
- export default interface Matrix extends ArrayLike<number> {
1
+ import type { Matrix4Like } from "./Matrix4.js";
2
+ export type MatrixLike = Record<number, number>;
3
+ export default interface Matrix extends MatrixLike {
3
4
  height: number;
4
5
  width: number;
5
6
  get frob(): number;
6
- add(matrix: MatrixLike): Matrix;
7
- clone(): Matrix;
8
- copy(matrix: MatrixLike): this;
9
- equals(matrix: MatrixLike): boolean;
10
- exactEquals(matrix: MatrixLike): boolean;
11
- multiply(matrix: MatrixLike): Matrix;
12
- multiplyScalar(scalar: number): Matrix;
13
- multiplyScalarAndAdd(matrix: MatrixLike, scalar: number): Matrix;
14
- subtract(matrix: MatrixLike): Matrix;
15
- transpose(): Matrix;
7
+ add(matrix: Matrix4Like): MatrixLike;
8
+ clone(): MatrixLike;
9
+ copy(matrix: Matrix4Like): this;
10
+ equals(matrix: Matrix4Like): boolean;
11
+ exactEquals(matrix: Matrix4Like): boolean;
12
+ multiply(matrix: Matrix4Like): MatrixLike;
13
+ multiplyScalar(scalar: number): MatrixLike;
14
+ multiplyScalarAndAdd(matrix: Matrix4Like, scalar: number): MatrixLike;
15
+ subtract(matrix: Matrix4Like): MatrixLike;
16
+ transpose(): MatrixLike;
16
17
  }
17
18
  //# sourceMappingURL=Matrix.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Matrix.d.ts","sourceRoot":"","sources":["../../src/linalg/Matrix.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAMpD,MAAM,CAAC,OAAO,WAAW,MAAO,SAAQ,SAAS,CAAC,MAAM,CAAC;IAExD,MAAM,EAAE,MAAM,CAAC;IAGf,KAAK,EAAE,MAAM,CAAC;IAMd,IAAI,IAAI,IAAI,MAAM,CAAC;IAQnB,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;IAMhC,KAAK,IAAI,MAAM,CAAC;IAOhB,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAO/B,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;IAOpC,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;IAQzC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;IAQrC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAUvC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAQjE,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;IAOrC,SAAS,IAAI,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"Matrix.d.ts","sourceRoot":"","sources":["../../src/linalg/Matrix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAMhD,MAAM,CAAC,OAAO,WAAW,MAAO,SAAQ,UAAU;IAEjD,MAAM,EAAE,MAAM,CAAC;IAGf,KAAK,EAAE,MAAM,CAAC;IAMd,IAAI,IAAI,IAAI,MAAM,CAAC;IAQnB,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IAMrC,KAAK,IAAI,UAAU,CAAC;IAOpB,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAOhC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAOrC,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAQ1C,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IAQ1C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IAU3C,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IAQtE,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IAO1C,SAAS,IAAI,UAAU,CAAC;CACxB"}
@@ -1,8 +1,14 @@
1
- import type SquareMatrix from "#SquareMatrix";
2
- import type { Vector2Like } from "#Vector2";
3
- export type Matrix2Like = Matrix2 | [number, number, number, number];
1
+ import type { MatrixLike } from "./Matrix.js";
2
+ import type SquareMatrix from "./SquareMatrix.js";
3
+ import type { Vector2Like } from "./Vector2.js";
4
+ export interface Matrix2Like extends MatrixLike {
5
+ 0: number;
6
+ 1: number;
7
+ 2: number;
8
+ 3: number;
9
+ }
4
10
  export declare function createMatrix2Like(): Matrix2Like;
5
- export declare function fromRotation<T extends Matrix2Like>(radians: number, out: T): T;
11
+ export declare function fromRotation<T extends Matrix2Like>(r: number, out: T): T;
6
12
  export declare function fromScaling<T extends Matrix2Like>(vector: Vector2Like, out: T): T;
7
13
  export declare function fromValues<T extends Matrix2Like>(c0r0: number, c0r1: number, c1r0: number, c1r1: number, out: T): T;
8
14
  export declare function equals(a: Matrix2Like, b: Matrix2Like): boolean;
@@ -19,45 +25,35 @@ export declare function transpose<T extends Matrix2Like>(matrix: Matrix2Like, ou
19
25
  export declare function determinant(matrix: Matrix2Like): number;
20
26
  export declare function identity<T extends Matrix2Like>(out: T): T;
21
27
  export declare function invert<T extends Matrix2Like>(matrix: Matrix2Like, out: T): T;
22
- export declare function rotate<T extends Matrix2Like>(matrix: Matrix2Like, radians: number, out: T): T;
28
+ export declare function rotate<T extends Matrix2Like>(matrix: Matrix2Like, r: number, out: T): T;
23
29
  export declare function scale<T extends Matrix2Like>(matrix: Matrix2Like, vector: Vector2Like, out: T): T;
24
- export default class Matrix2 extends Float32Array implements SquareMatrix {
25
- static fromRotation(radians: number): Matrix2;
26
- static fromRotation<T extends Matrix2Like>(radians: number, out: T): T;
27
- static fromScaling(vector: Vector2Like): Matrix2;
28
- static fromScaling<T extends Matrix2Like>(vector: Vector2Like, out: T): T;
29
- static fromValues(c0r0: number, c0r1: number, c1r0: number, c1r1: number): Matrix2;
30
- static fromValues<T extends Matrix2Like>(c0r0: number, c0r1: number, c1r0: number, c1r1: number, out: T): T;
30
+ export default class Matrix2 extends Float32Array implements SquareMatrix, Matrix2Like {
31
+ static fromRotation<T extends Matrix2Like>(r: number, out?: T): T;
32
+ static fromScaling<T extends Matrix2Like>(vector: Vector2Like, out?: T): T;
33
+ static fromValues<T extends Matrix2Like>(c0r0: number, c0r1: number, c1r0: number, c1r1: number, out?: T): T;
31
34
  constructor();
35
+ 0: number;
36
+ 1: number;
37
+ 2: number;
38
+ 3: number;
32
39
  readonly width: 2;
33
40
  readonly height: 2;
34
41
  equals(matrix: Matrix2Like): boolean;
35
42
  exactEquals(matrix: Matrix2Like): boolean;
36
- add(matrix: Matrix2Like): Matrix2;
37
- add<T extends Matrix2Like>(matrix: Matrix2Like, out: T): T;
38
- adjoint(): Matrix2;
39
- adjoint<T extends Matrix2Like>(out: T): T;
40
- clone(): Matrix2;
41
- clone<T extends Matrix2Like>(out: T): T;
43
+ add<T extends Matrix2Like>(matrix: Matrix2Like, out?: T): T;
44
+ adjoint<T extends Matrix2Like>(out?: T): T;
45
+ clone<T extends Matrix2Like>(out?: T): T;
42
46
  copy(matrix: Matrix2Like): this;
43
47
  get frob(): number;
44
- multiply(matrix: Matrix2Like): Matrix2;
45
- multiply<T extends Matrix2Like>(matrix: Matrix2Like, out: T): T;
46
- multiplyScalar(scalar: number): Matrix2;
47
- multiplyScalar<T extends Matrix2Like>(scalar: number, out: T): T;
48
- multiplyScalarAndAdd(matrix: Matrix2Like, scalar: number): Matrix2;
49
- multiplyScalarAndAdd<T extends Matrix2Like>(matrix: Matrix2Like, scalar: number, out: T): T;
50
- subtract(matrix: Matrix2Like): Matrix2;
51
- subtract<T extends Matrix2Like>(matrix: Matrix2Like, out: T): T;
52
- transpose(): Matrix2;
53
- transpose<T extends Matrix2Like>(out: T): T;
48
+ multiply<T extends Matrix2Like>(matrix: Matrix2Like, out?: T): T;
49
+ multiplyScalar<T extends Matrix2Like>(scalar: number, out?: T): T;
50
+ multiplyScalarAndAdd<T extends Matrix2Like>(matrix: Matrix2Like, scalar: number, out?: T): T;
51
+ subtract<T extends Matrix2Like>(matrix: Matrix2Like, out?: T): T;
52
+ transpose<T extends Matrix2Like>(out?: T): T;
54
53
  get determinant(): number;
55
54
  identity(): this;
56
- invert(): Matrix2;
57
- invert<T extends Matrix2Like>(out: T): T;
58
- rotate(radians: number): Matrix2;
59
- rotate<T extends Matrix2Like>(radians: number, out: T): T;
60
- scale(v: Vector2Like): Matrix2;
61
- scale<T extends Matrix2Like>(vector: Vector2Like, out: T): T;
55
+ invert<T extends Matrix2Like>(out?: T): T;
56
+ rotate<T extends Matrix2Like>(r: number, out?: T): T;
57
+ scale<T extends Matrix2Like>(vector: Vector2Like, out?: T): T;
62
58
  }
63
59
  //# sourceMappingURL=Matrix2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Matrix2.d.ts","sourceRoot":"","sources":["../../src/linalg/Matrix2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAQ5C,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAMrE,wBAAgB,iBAAiB,IAAI,WAAW,CAE/C;AAUD,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,EACjD,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,CAAC,GACJ,CAAC,CASH;AAUD,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAChD,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,CAAC,GACJ,CAAC,CAMH;AAWD,wBAAgB,UAAU,CAAC,CAAC,SAAS,WAAW,EAC/C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,CAAC,GACJ,CAAC,CAMH;AAQD,wBAAgB,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAiB9D;AAQD,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,OAAO,CAEnE;AAUD,wBAAgB,GAAG,CAAC,CAAC,SAAS,WAAW,EACxC,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,GAAG,EAAE,CAAC,GACJ,CAAC,CAMH;AASD,wBAAgB,OAAO,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAO7E;AAQD,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAM1E;AAQD,wBAAgB,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAOhD;AAUD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAC7C,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,GAAG,EAAE,CAAC,GACJ,CAAC,CAgBH;AAUD,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EACnD,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CAAC,GACJ,CAAC,CAMH;AAYD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,WAAW,EACzD,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CAAC,GACJ,CAAC,CAMH;AAUD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAC7C,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,GAAG,EAAE,CAAC,GACJ,CAAC,CAMH;AASD,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,EAC9C,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,CAAC,GACJ,CAAC,CAYH;AAQD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAKvD;AAQD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAMzD;AASD,wBAAgB,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAiB5E;AAUD,wBAAgB,MAAM,CAAC,CAAC,SAAS,WAAW,EAC3C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,CAAC,GACJ,CAAC,CAcH;AAUD,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,EAC1C,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,CAAC,GACJ,CAAC,CASH;AAMD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,YAAa,YAAW,YAAY;WAQ1D,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;WAUtC,YAAY,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;WAgB/D,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;WAUzC,WAAW,CAAC,CAAC,SAAS,WAAW,EAC9C,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,CAAC,GACJ,CAAC;WAiBU,UAAU,CACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACV,OAAO;WAWI,UAAU,CAAC,CAAC,SAAS,WAAW,EAC7C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,CAAC,GACJ,CAAC;;IA2BJ,SAAgB,KAAK,EAAE,CAAC,CAAC;IAGzB,SAAgB,MAAM,EAAE,CAAC,CAAC;IAOnB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IASpC,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAUzC,GAAG,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IASjC,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAc1D,OAAO,IAAI,OAAO;IAQlB,OAAO,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAUzC,KAAK,IAAI,OAAO;IAOhB,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAWvC,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAQtC,IAAW,IAAI,IAAI,MAAM,CAExB;IAQM,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAStC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAe/D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IASvC,cAAc,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAiBhE,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAWlE,oBAAoB,CAAC,CAAC,SAAS,WAAW,EAChD,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CAAC,GACJ,CAAC;IAgBG,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAStC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAc/D,SAAS,IAAI,OAAO;IAQpB,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAUlD,IAAW,WAAW,IAAI,MAAM,CAE/B;IAOM,QAAQ,IAAI,IAAI;IAShB,MAAM,IAAI,OAAO;IAQjB,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAYxC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAShC,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;IAezD,KAAK,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO;IAS9B,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;CAQnE"}
1
+ {"version":3,"file":"Matrix2.d.ts","sourceRoot":"","sources":["../../src/linalg/Matrix2.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import epsilon from "#epsilon";
2
- import SingularMatrixError from "#SingularMatrixError";
1
+ import SingularMatrixError from "../utility/SingularMatrixError.js";
2
+ import epsilon from "../utility/epsilon.js";
3
3
  export function createMatrix2Like() {
4
4
  return new Float32Array(4);
5
5
  }
6
- export function fromRotation(radians, out) {
7
- const s = Math.sin(radians);
8
- const c = Math.cos(radians);
6
+ export function fromRotation(r, out) {
7
+ const s = Math.sin(r);
8
+ const c = Math.cos(r);
9
9
  out[0] = c;
10
10
  out[1] = s;
11
11
  out[2] = -s;
@@ -41,7 +41,7 @@ export function equals(a, b) {
41
41
  Math.abs(a3 - b3) <= epsilon * Math.max(1, Math.abs(a3), Math.abs(b3)));
42
42
  }
43
43
  export function exactEquals(a, b) {
44
- return a[0] == b[0] && a[1] == b[1] && a[2] == b[2] && a[3] == b[3];
44
+ return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3];
45
45
  }
46
46
  export function add(a, b, out) {
47
47
  out[0] = a[0] + b[0];
@@ -105,7 +105,7 @@ export function subtract(a, b, out) {
105
105
  return out;
106
106
  }
107
107
  export function transpose(matrix, out) {
108
- if (out == matrix) {
108
+ if (out === matrix) {
109
109
  const a1 = matrix[1];
110
110
  out[1] = matrix[2];
111
111
  out[2] = a1;
@@ -119,8 +119,7 @@ export function transpose(matrix, out) {
119
119
  return out;
120
120
  }
121
121
  export function determinant(matrix) {
122
- return (matrix[0] * matrix[3] -
123
- matrix[2] * matrix[1]);
122
+ return matrix[0] * matrix[3] - matrix[2] * matrix[1];
124
123
  }
125
124
  export function identity(out) {
126
125
  out[0] = 1;
@@ -134,24 +133,24 @@ export function invert(matrix, out) {
134
133
  const a1 = matrix[1];
135
134
  const a2 = matrix[2];
136
135
  const a3 = matrix[3];
137
- let determinant = a0 * a3 - a2 * a1;
138
- if (!determinant) {
136
+ let det = a0 * a3 - a2 * a1;
137
+ if (!det) {
139
138
  throw new SingularMatrixError();
140
139
  }
141
- determinant = 1 / determinant;
142
- out[0] = a3 * determinant;
143
- out[1] = -a1 * determinant;
144
- out[2] = -a2 * determinant;
145
- out[3] = a0 * determinant;
140
+ det = 1 / det;
141
+ out[0] = a3 * det;
142
+ out[1] = -a1 * det;
143
+ out[2] = -a2 * det;
144
+ out[3] = a0 * det;
146
145
  return out;
147
146
  }
148
- export function rotate(matrix, radians, out) {
147
+ export function rotate(matrix, r, out) {
149
148
  const a0 = matrix[0];
150
149
  const a1 = matrix[1];
151
150
  const a2 = matrix[2];
152
151
  const a3 = matrix[3];
153
- const s = Math.sin(radians);
154
- const c = Math.cos(radians);
152
+ const s = Math.sin(r);
153
+ const c = Math.cos(r);
155
154
  out[0] = a0 * c + a2 * s;
156
155
  out[1] = a1 * c + a3 * s;
157
156
  out[2] = a0 * -s + a2 * c;
@@ -168,8 +167,8 @@ export function scale(matrix, vector, out) {
168
167
  return out;
169
168
  }
170
169
  export default class Matrix2 extends Float32Array {
171
- static fromRotation(radians, out = new Matrix2()) {
172
- return fromRotation(radians, out);
170
+ static fromRotation(r, out = new Matrix2()) {
171
+ return fromRotation(r, out);
173
172
  }
174
173
  static fromScaling(vector, out = new Matrix2()) {
175
174
  return fromScaling(vector, out);
@@ -184,6 +183,10 @@ export default class Matrix2 extends Float32Array {
184
183
  this.width = 2;
185
184
  this.height = 2;
186
185
  }
186
+ 0;
187
+ 1;
188
+ 2;
189
+ 3;
187
190
  width;
188
191
  height;
189
192
  equals(matrix) {
@@ -231,8 +234,8 @@ export default class Matrix2 extends Float32Array {
231
234
  invert(out = new Matrix2()) {
232
235
  return invert(this, out);
233
236
  }
234
- rotate(radians, out = new Matrix2()) {
235
- return rotate(this, radians, out);
237
+ rotate(r, out = new Matrix2()) {
238
+ return rotate(this, r, out);
236
239
  }
237
240
  scale(vector, out = new Matrix2()) {
238
241
  return scale(this, vector, out);