@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.
- package/README.md +7 -9
- package/dist/algorithms/combinations.d.ts.map +1 -1
- package/dist/algorithms/combinations.js +1 -1
- package/dist/algorithms/combinations.js.map +1 -1
- package/dist/algorithms/degreesToRadians.d.ts.map +1 -1
- package/dist/algorithms/factorial.d.ts.map +1 -1
- package/dist/algorithms/factorial.js +8 -5
- package/dist/algorithms/factorial.js.map +1 -1
- package/dist/algorithms/fibonacci.d.ts +1 -1
- package/dist/algorithms/fibonacci.d.ts.map +1 -1
- package/dist/algorithms/fibonacci.js +1 -1
- package/dist/algorithms/fibonacci.js.map +1 -1
- package/dist/algorithms/greatestCommonDivisor.js +5 -9
- package/dist/algorithms/greatestCommonDivisor.js.map +1 -1
- package/dist/algorithms/hypergeometricPmf.d.ts.map +1 -1
- package/dist/algorithms/hypergeometricPmf.js +1 -1
- package/dist/algorithms/hypergeometricPmf.js.map +1 -1
- package/dist/algorithms/isPrime.d.ts.map +1 -1
- package/dist/algorithms/isPrime.js +1 -1
- package/dist/algorithms/isPrime.js.map +1 -1
- package/dist/algorithms/permutations.d.ts.map +1 -1
- package/dist/algorithms/permutations.js +1 -1
- package/dist/algorithms/permutations.js.map +1 -1
- package/dist/algorithms/primeFactorization.d.ts +1 -1
- package/dist/algorithms/primeFactorization.d.ts.map +1 -1
- package/dist/algorithms/primeFactorization.js +4 -3
- package/dist/algorithms/primeFactorization.js.map +1 -1
- package/dist/algorithms/radiansToDegrees.d.ts.map +1 -1
- package/dist/algorithms/summation.d.ts.map +1 -1
- package/dist/algorithms/summation.js.map +1 -1
- package/dist/index.d.ts +32 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -27
- package/dist/index.js.map +1 -1
- package/dist/linalg/DualQuaternion.d.ts +50 -56
- package/dist/linalg/DualQuaternion.d.ts.map +1 -1
- package/dist/linalg/DualQuaternion.js +67 -61
- package/dist/linalg/DualQuaternion.js.map +1 -1
- package/dist/linalg/Matrix.d.ts +13 -12
- package/dist/linalg/Matrix.d.ts.map +1 -1
- package/dist/linalg/Matrix2.d.ts +30 -34
- package/dist/linalg/Matrix2.d.ts.map +1 -1
- package/dist/linalg/Matrix2.js +26 -23
- package/dist/linalg/Matrix2.js.map +1 -1
- package/dist/linalg/Matrix3.d.ts +47 -47
- package/dist/linalg/Matrix3.d.ts.map +1 -1
- package/dist/linalg/Matrix3.js +52 -43
- package/dist/linalg/Matrix3.js.map +1 -1
- package/dist/linalg/Matrix4.d.ts +83 -102
- package/dist/linalg/Matrix4.d.ts.map +1 -1
- package/dist/linalg/Matrix4.js +105 -89
- package/dist/linalg/Matrix4.js.map +1 -1
- package/dist/linalg/Quaternion.d.ts +36 -49
- package/dist/linalg/Quaternion.d.ts.map +1 -1
- package/dist/linalg/Quaternion.js +33 -25
- package/dist/linalg/Quaternion.js.map +1 -1
- package/dist/linalg/SlowMatrix.d.ts +9 -9
- package/dist/linalg/SlowMatrix.d.ts.map +1 -1
- package/dist/linalg/SlowMatrix.js +76 -27
- package/dist/linalg/SlowMatrix.js.map +1 -1
- package/dist/linalg/SlowSquareMatrix.d.ts +3 -3
- package/dist/linalg/SlowSquareMatrix.d.ts.map +1 -1
- package/dist/linalg/SlowSquareMatrix.js +53 -21
- package/dist/linalg/SlowSquareMatrix.js.map +1 -1
- package/dist/linalg/SquareMatrix.d.ts +3 -3
- package/dist/linalg/SquareMatrix.d.ts.map +1 -1
- package/dist/linalg/Vector.d.ts +25 -24
- package/dist/linalg/Vector.d.ts.map +1 -1
- package/dist/linalg/Vector2.d.ts +35 -52
- package/dist/linalg/Vector2.d.ts.map +1 -1
- package/dist/linalg/Vector2.js +8 -6
- package/dist/linalg/Vector2.js.map +1 -1
- package/dist/linalg/Vector3.d.ts +43 -63
- package/dist/linalg/Vector3.d.ts.map +1 -1
- package/dist/linalg/Vector3.js +46 -58
- package/dist/linalg/Vector3.js.map +1 -1
- package/dist/linalg/Vector4.d.ts +34 -45
- package/dist/linalg/Vector4.d.ts.map +1 -1
- package/dist/linalg/Vector4.js +6 -2
- package/dist/linalg/Vector4.js.map +1 -1
- package/dist/types/AxisAngle.d.ts +1 -1
- package/dist/types/AxisAngle.d.ts.map +1 -1
- package/dist/utility/BigNumber.d.ts +5 -8
- package/dist/utility/BigNumber.d.ts.map +1 -1
- package/dist/utility/BigNumber.js +5 -5
- package/dist/utility/BigNumber.js.map +1 -1
- package/dist/utility/MagnitudeError.d.ts.map +1 -1
- package/dist/utility/MagnitudeError.js +1 -1
- package/dist/utility/MagnitudeError.js.map +1 -1
- package/dist/utility/MatrixSizeError.d.ts.map +1 -1
- package/dist/utility/MatrixSizeError.js.map +1 -1
- package/dist/utility/PartialMatrixError.d.ts.map +1 -1
- package/dist/utility/PartialMatrixError.js.map +1 -1
- package/dist/utility/epsilon.d.ts.map +1 -1
- package/dist/utility/epsilon.js.map +1 -1
- package/package.json +20 -51
- package/src/algorithms/combinations.ts +5 -5
- package/src/algorithms/degreesToRadians.ts +4 -4
- package/src/algorithms/factorial.ts +14 -9
- package/src/algorithms/fibonacci.ts +3 -3
- package/src/algorithms/greatestCommonDivisor.ts +15 -19
- package/src/algorithms/hypergeometricPmf.ts +6 -7
- package/src/algorithms/isPrime.ts +5 -5
- package/src/algorithms/permutations.ts +5 -5
- package/src/algorithms/primeFactorization.ts +9 -9
- package/src/algorithms/radiansToDegrees.ts +4 -4
- package/src/algorithms/summation.ts +6 -6
- package/src/index.ts +35 -33
- package/src/linalg/DualQuaternion.ts +528 -780
- package/src/linalg/Matrix.ts +35 -36
- package/src/linalg/Matrix2.ts +253 -402
- package/src/linalg/Matrix3.ts +502 -720
- package/src/linalg/Matrix4.ts +1032 -1574
- package/src/linalg/Quaternion.ts +400 -679
- package/src/linalg/SlowMatrix.ts +124 -75
- package/src/linalg/SlowSquareMatrix.ts +92 -63
- package/src/linalg/SquareMatrix.ts +7 -7
- package/src/linalg/Vector.ts +71 -70
- package/src/linalg/Vector2.ts +342 -552
- package/src/linalg/Vector3.ts +502 -815
- package/src/linalg/Vector4.ts +347 -530
- package/src/types/AxisAngle.ts +1 -1
- package/src/utility/BigNumber.ts +36 -45
- package/src/utility/MagnitudeError.ts +4 -4
- package/src/utility/MatrixSizeError.ts +2 -3
- package/src/utility/PartialMatrixError.ts +2 -3
- package/src/utility/SingularMatrixError.ts +2 -2
- package/src/utility/epsilon.ts +1 -4
- package/dist/types/IntegerRepresentation.d.ts +0 -2
- package/dist/types/IntegerRepresentation.d.ts.map +0 -1
- package/dist/types/IntegerRepresentation.js +0 -2
- package/dist/types/IntegerRepresentation.js.map +0 -1
- package/src/types/IntegerRepresentation.ts +0 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { getRotation as getMatrix4Rotation, getTranslation as getMatrix4Translation } from "
|
|
2
|
-
import Quaternion, { rotateX as quaternionRotateX, rotateY as quaternionRotateY, rotateZ as quaternionRotateZ } from "
|
|
3
|
-
import Vector3, {} from "
|
|
4
|
-
import {
|
|
5
|
-
import epsilon from "
|
|
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 =
|
|
72
|
-
const translation =
|
|
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
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
out[
|
|
371
|
-
out[
|
|
372
|
-
out[
|
|
373
|
-
out[
|
|
374
|
-
out[
|
|
375
|
-
out[
|
|
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
|
|
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 *
|
|
421
|
-
out[5] = (b1 - a1 *
|
|
422
|
-
out[6] = (b2 - a2 *
|
|
423
|
-
out[7] = (b3 - a3 *
|
|
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(
|
|
468
|
-
return fromRotationTranslation(
|
|
465
|
+
static fromRotationTranslation(q, t, out = new DualQuaternion()) {
|
|
466
|
+
return fromRotationTranslation(q, t, out);
|
|
469
467
|
}
|
|
470
|
-
static fromTranslation(
|
|
471
|
-
return fromTranslation(
|
|
468
|
+
static fromTranslation(t, out = new DualQuaternion()) {
|
|
469
|
+
return fromTranslation(t, out);
|
|
472
470
|
}
|
|
473
|
-
static fromRotation(
|
|
474
|
-
return fromRotation(
|
|
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(
|
|
496
|
-
xetReal(
|
|
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(
|
|
502
|
-
setDual(
|
|
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(
|
|
508
|
-
return translate(this,
|
|
513
|
+
translate(v, out = new DualQuaternion()) {
|
|
514
|
+
return translate(this, v, out);
|
|
509
515
|
}
|
|
510
|
-
rotateX(
|
|
511
|
-
return rotateX(this,
|
|
516
|
+
rotateX(r, out = new DualQuaternion()) {
|
|
517
|
+
return rotateX(this, r, out);
|
|
512
518
|
}
|
|
513
|
-
rotateY(
|
|
514
|
-
return rotateY(this,
|
|
519
|
+
rotateY(r, out = new DualQuaternion()) {
|
|
520
|
+
return rotateY(this, r, out);
|
|
515
521
|
}
|
|
516
|
-
rotateZ(
|
|
517
|
-
return rotateZ(this,
|
|
522
|
+
rotateZ(r, out = new DualQuaternion()) {
|
|
523
|
+
return rotateZ(this, r, out);
|
|
518
524
|
}
|
|
519
|
-
rotateByQuaternionAppend(
|
|
520
|
-
return rotateByQuaternionAppend(this,
|
|
525
|
+
rotateByQuaternionAppend(q, out = new DualQuaternion()) {
|
|
526
|
+
return rotateByQuaternionAppend(this, q, out);
|
|
521
527
|
}
|
|
522
|
-
rotateByQuaternionPrepend(
|
|
523
|
-
return rotateByQuaternionPrepend(
|
|
528
|
+
rotateByQuaternionPrepend(q, out = new DualQuaternion()) {
|
|
529
|
+
return rotateByQuaternionPrepend(q, this, out);
|
|
524
530
|
}
|
|
525
|
-
rotateAroundAxis(axis,
|
|
526
|
-
return rotateAroundAxis(this, axis,
|
|
531
|
+
rotateAroundAxis(axis, r, out = new DualQuaternion()) {
|
|
532
|
+
return rotateAroundAxis(this, axis, r, out);
|
|
527
533
|
}
|
|
528
|
-
add(
|
|
529
|
-
return add(this,
|
|
534
|
+
add(dq, out = new DualQuaternion()) {
|
|
535
|
+
return add(this, dq, out);
|
|
530
536
|
}
|
|
531
|
-
multiply(
|
|
532
|
-
return multiply(this,
|
|
537
|
+
multiply(dq, out = new DualQuaternion()) {
|
|
538
|
+
return multiply(this, dq, out);
|
|
533
539
|
}
|
|
534
|
-
scale(
|
|
535
|
-
return scale(this,
|
|
540
|
+
scale(s, out = new DualQuaternion()) {
|
|
541
|
+
return scale(this, s, out);
|
|
536
542
|
}
|
|
537
|
-
dot(
|
|
538
|
-
return dot(this,
|
|
543
|
+
dot(dq) {
|
|
544
|
+
return dot(this, dq);
|
|
539
545
|
}
|
|
540
|
-
lerp(
|
|
541
|
-
return lerp(this,
|
|
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(
|
|
559
|
-
return exactEquals(this,
|
|
564
|
+
exactEquals(dq) {
|
|
565
|
+
return exactEquals(this, dq);
|
|
560
566
|
}
|
|
561
|
-
equals(
|
|
562
|
-
return equals(this,
|
|
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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"}
|
package/dist/linalg/Matrix.d.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
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:
|
|
7
|
-
clone():
|
|
8
|
-
copy(matrix:
|
|
9
|
-
equals(matrix:
|
|
10
|
-
exactEquals(matrix:
|
|
11
|
-
multiply(matrix:
|
|
12
|
-
multiplyScalar(scalar: number):
|
|
13
|
-
multiplyScalarAndAdd(matrix:
|
|
14
|
-
subtract(matrix:
|
|
15
|
-
transpose():
|
|
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":"
|
|
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"}
|
package/dist/linalg/Matrix2.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
|
|
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>(
|
|
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,
|
|
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(
|
|
26
|
-
static
|
|
27
|
-
static
|
|
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):
|
|
37
|
-
|
|
38
|
-
|
|
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):
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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():
|
|
57
|
-
|
|
58
|
-
|
|
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,
|
|
1
|
+
{"version":3,"file":"Matrix2.d.ts","sourceRoot":"","sources":["../../src/linalg/Matrix2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAOhD,MAAM,WAAW,WAAY,SAAQ,UAAU;IAE9C,CAAC,EAAE,MAAM,CAAC;IAGV,CAAC,EAAE,MAAM,CAAC;IAGV,CAAC,EAAE,MAAM,CAAC;IAGV,CAAC,EAAE,MAAM,CAAC;CACV;AAMD,wBAAgB,iBAAiB,IACS,WAAW,CACpD;AASD,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,KASpE;AASD,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAChD,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,CAAC,KAON;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,KAON;AAQD,wBAAgB,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,WAiBpD;AAQD,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,WAEzD;AAUD,wBAAgB,GAAG,CAAC,CAAC,SAAS,WAAW,EACxC,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,GAAG,EAAE,CAAC,KAON;AASD,wBAAgB,OAAO,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,KAOzE;AAQD,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,KAMtE;AAQD,wBAAgB,IAAI,CAAC,MAAM,EAAE,WAAW,UAEvC;AAUD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAC7C,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,GAAG,EAAE,CAAC,KAiBN;AAUD,wBAAgB,cAAc,CAAC,CAAC,SAAS,WAAW,EACnD,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CAAC,KAON;AAYD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,WAAW,EACzD,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CAAC,KAON;AAUD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAC7C,CAAC,EAAE,WAAW,EACd,CAAC,EAAE,WAAW,EACd,GAAG,EAAE,CAAC,KAON;AASD,wBAAgB,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,KAY3E;AAQD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,UAE9C;AAQD,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,KAMrD;AASD,wBAAgB,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,KAiBxE;AAUD,wBAAgB,MAAM,CAAC,CAAC,SAAS,WAAW,EAC3C,MAAM,EAAE,WAAW,EACnB,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,CAAC,KAeN;AAUD,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,EAC1C,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,CAAC,KAUN;AAMD,MAAM,CAAC,OAAO,OAAO,OACpB,SAAQ,YACR,YAAW,YAAY,EAAE,WAAW;WAStB,YAAY,CAAC,CAAC,SAAS,WAAW,EAC/C,CAAC,EAAE,MAAM,EACT,GAAG,GAA+B,CAAC;WAYtB,WAAW,CAAC,CAAC,SAAS,WAAW,EAC9C,MAAM,EAAE,WAAW,EACnB,GAAG,GAA+B,CAAC;WActB,UAAU,CAAC,CAAC,SAAS,WAAW,EAC7C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,GAA+B,CAAC;;IAoB7B,CAAC,EAAE,MAAM,CAAC;IAGV,CAAC,EAAE,MAAM,CAAC;IAGV,CAAC,EAAE,MAAM,CAAC;IAGV,CAAC,EAAE,MAAM,CAAC;IAGjB,SAAgB,KAAK,EAAE,CAAC,CAAC;IAGzB,SAAgB,MAAM,EAAE,CAAC,CAAC;IAOnB,MAAM,CAAC,MAAM,EAAE,WAAW;IAS1B,WAAW,CAAC,MAAM,EAAE,WAAW;IAW/B,GAAG,CAAC,CAAC,SAAS,WAAW,EAC/B,MAAM,EAAE,WAAW,EACnB,GAAG,GAA+B,CAAC;IAW7B,OAAO,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,GAA+B,CAAC;IASlE,KAAK,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,GAA+B,CAAC;IAShE,IAAI,CAAC,MAAM,EAAE,WAAW;IAQ/B,IAAW,IAAI,WAEd;IASM,QAAQ,CAAC,CAAC,SAAS,WAAW,EACpC,MAAM,EAAE,WAAW,EACnB,GAAG,GAA+B,CAAC;IAY7B,cAAc,CAAC,CAAC,SAAS,WAAW,EAC1C,MAAM,EAAE,MAAM,EACd,GAAG,GAA+B,CAAC;IAc7B,oBAAoB,CAAC,CAAC,SAAS,WAAW,EAChD,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,GAA+B,CAAC;IAY7B,QAAQ,CAAC,CAAC,SAAS,WAAW,EACpC,MAAM,EAAE,WAAW,EACnB,GAAG,GAA+B,CAAC;IAW7B,SAAS,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,GAA+B,CAAC;IAQ3E,IAAW,WAAW,WAErB;IAOM,QAAQ;IAUR,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,GAA+B,CAAC;IAWjE,MAAM,CAAC,CAAC,SAAS,WAAW,EAClC,CAAC,EAAE,MAAM,EACT,GAAG,GAA+B,CAAC;IAY7B,KAAK,CAAC,CAAC,SAAS,WAAW,EACjC,MAAM,EAAE,WAAW,EACnB,GAAG,GAA+B,CAAC;CAIpC"}
|
package/dist/linalg/Matrix2.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
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(
|
|
7
|
-
const s = Math.sin(
|
|
8
|
-
const c = Math.cos(
|
|
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]
|
|
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
|
|
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
|
|
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
|
|
138
|
-
if (!
|
|
136
|
+
let det = a0 * a3 - a2 * a1;
|
|
137
|
+
if (!det) {
|
|
139
138
|
throw new SingularMatrixError();
|
|
140
139
|
}
|
|
141
|
-
|
|
142
|
-
out[0] = a3 *
|
|
143
|
-
out[1] = -a1 *
|
|
144
|
-
out[2] = -a2 *
|
|
145
|
-
out[3] = a0 *
|
|
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,
|
|
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(
|
|
154
|
-
const c = Math.cos(
|
|
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(
|
|
172
|
-
return fromRotation(
|
|
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(
|
|
235
|
-
return rotate(this,
|
|
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);
|