@lakuna/umath 3.0.0 → 4.0.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.
- package/dist/algorithms/hypergeometricPmf.d.ts.map +1 -1
- package/dist/algorithms/hypergeometricPmf.js +5 -1
- package/dist/algorithms/hypergeometricPmf.js.map +1 -1
- package/dist/algorithms/primeFactorization.d.ts +1 -1
- package/dist/algorithms/primeFactorization.d.ts.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/linalg/DualQuaternion.d.ts +46 -46
- package/dist/linalg/DualQuaternion.d.ts.map +1 -1
- package/dist/linalg/DualQuaternion.js.map +1 -1
- package/dist/linalg/Matrix.d.ts +7 -7
- package/dist/linalg/Matrix.d.ts.map +1 -1
- package/dist/linalg/Matrix2.d.ts +25 -25
- package/dist/linalg/Matrix2.d.ts.map +1 -1
- package/dist/linalg/Matrix2.js.map +1 -1
- package/dist/linalg/Matrix3.d.ts +35 -35
- package/dist/linalg/Matrix3.d.ts.map +1 -1
- package/dist/linalg/Matrix3.js.map +1 -1
- package/dist/linalg/Matrix4.d.ts +64 -59
- package/dist/linalg/Matrix4.d.ts.map +1 -1
- package/dist/linalg/Matrix4.js +17 -11
- package/dist/linalg/Matrix4.js.map +1 -1
- package/dist/linalg/Quaternion.d.ts +50 -48
- package/dist/linalg/Quaternion.d.ts.map +1 -1
- package/dist/linalg/Quaternion.js +11 -12
- package/dist/linalg/Quaternion.js.map +1 -1
- package/dist/linalg/SlowMatrix.d.ts +8 -8
- package/dist/linalg/SlowMatrix.d.ts.map +1 -1
- package/dist/linalg/SlowMatrix.js.map +1 -1
- package/dist/linalg/SlowSquareMatrix.d.ts +1 -1
- package/dist/linalg/SlowSquareMatrix.d.ts.map +1 -1
- package/dist/linalg/SlowSquareMatrix.js.map +1 -1
- package/dist/linalg/SlowVector.d.ts +15 -15
- package/dist/linalg/SlowVector.d.ts.map +1 -1
- package/dist/linalg/SlowVector.js.map +1 -1
- package/dist/linalg/Vector.d.ts +14 -14
- package/dist/linalg/Vector.d.ts.map +1 -1
- package/dist/linalg/Vector2.d.ts +51 -51
- package/dist/linalg/Vector2.d.ts.map +1 -1
- package/dist/linalg/Vector2.js.map +1 -1
- package/dist/linalg/Vector3.d.ts +60 -60
- package/dist/linalg/Vector3.d.ts.map +1 -1
- package/dist/linalg/Vector3.js.map +1 -1
- package/dist/linalg/Vector4.d.ts +45 -45
- package/dist/linalg/Vector4.d.ts.map +1 -1
- package/dist/linalg/Vector4.js.map +1 -1
- package/dist/utility/BigNumber.d.ts +5 -5
- package/dist/utility/BigNumber.d.ts.map +1 -1
- package/dist/utility/BigNumber.js +13 -6
- package/dist/utility/BigNumber.js.map +1 -1
- package/package.json +36 -36
- package/src/algorithms/hypergeometricPmf.ts +2 -0
- package/src/algorithms/primeFactorization.ts +1 -1
- package/src/index.ts +0 -5
- package/src/linalg/DualQuaternion.ts +69 -58
- package/src/linalg/Matrix.ts +10 -7
- package/src/linalg/Matrix2.ts +43 -32
- package/src/linalg/Matrix3.ts +53 -41
- package/src/linalg/Matrix4.ts +127 -94
- package/src/linalg/Quaternion.ts +90 -75
- package/src/linalg/SlowMatrix.ts +12 -9
- package/src/linalg/SlowSquareMatrix.ts +1 -1
- package/src/linalg/SlowVector.ts +16 -16
- package/src/linalg/Vector.ts +14 -14
- package/src/linalg/Vector2.ts +104 -76
- package/src/linalg/Vector3.ts +125 -92
- package/src/linalg/Vector4.ts +93 -62
- package/src/utility/BigNumber.ts +22 -11
- package/dist/types/AxisAngle.d.ts +0 -12
- package/dist/types/AxisAngle.d.ts.map +0 -1
- package/dist/types/AxisAngle.js +0 -2
- package/dist/types/AxisAngle.js.map +0 -1
- package/dist/types/FieldOfView.d.ts +0 -15
- package/dist/types/FieldOfView.d.ts.map +0 -1
- package/dist/types/FieldOfView.js +0 -2
- package/dist/types/FieldOfView.js.map +0 -1
- package/dist/utility/createAxisAngleLike.d.ts +0 -10
- package/dist/utility/createAxisAngleLike.d.ts.map +0 -1
- package/dist/utility/createAxisAngleLike.js +0 -10
- package/dist/utility/createAxisAngleLike.js.map +0 -1
- package/src/types/AxisAngle.ts +0 -13
- package/src/types/FieldOfView.ts +0 -17
- package/src/utility/createAxisAngleLike.ts +0 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BigNumber.d.ts","sourceRoot":"","sources":["../../src/utility/BigNumber.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC7B,qCAAqC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IAExB,oCAAoC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;
|
|
1
|
+
{"version":3,"file":"BigNumber.d.ts","sourceRoot":"","sources":["../../src/utility/BigNumber.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,CAAC;AAEnD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC7B,qCAAqC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IAExB,oCAAoC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;gBAEF,QAAQ,GAAE,QAAQ,CAAC,aAAa,CAAK,EACrC,OAAO,GAAE,QAAQ,CAAC,aAAa,CAAK;IAgCrC;;;;OAIG;IACI,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI;IAY5C;;;;OAIG;IACI,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI;IAY/C;;;;OAIG;IACI,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI;IAYjD;;;;OAIG;IACI,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI;IAYjD;;;OAGG;IACI,QAAQ,IAAI,MAAM;IAOzB;;;OAGG;IACI,QAAQ,IAAI,MAAM;CAsBzB"}
|
|
@@ -17,14 +17,14 @@ export default class BigNumber {
|
|
|
17
17
|
if (divisor === 0) {
|
|
18
18
|
throw new Error("Cannot divide by zero.");
|
|
19
19
|
}
|
|
20
|
-
if (dividend
|
|
20
|
+
if (BigNumber.is(dividend)) {
|
|
21
21
|
this.dividend = dividend.dividend;
|
|
22
22
|
this.divisor = dividend.divisor;
|
|
23
23
|
this.divide(divisor);
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
this.dividend = BigInt(dividend);
|
|
27
|
-
if (divisor
|
|
27
|
+
if (BigNumber.is(divisor)) {
|
|
28
28
|
this.divisor = 1n;
|
|
29
29
|
this.divide(divisor);
|
|
30
30
|
return;
|
|
@@ -32,13 +32,20 @@ export default class BigNumber {
|
|
|
32
32
|
this.divisor = BigInt(divisor);
|
|
33
33
|
this.simplify();
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Utility function for narrowing `Readonly<BigNumberLike>` to `Readonly<BigNumber>` or `BigIntLike`, since `Readonly` breaks the type narrowing for TypeScript.
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
static is(value) {
|
|
40
|
+
return value instanceof BigNumber;
|
|
41
|
+
}
|
|
35
42
|
/**
|
|
36
43
|
* Add a number to this number.
|
|
37
44
|
* @param n - The other number.
|
|
38
45
|
* @returns This number.
|
|
39
46
|
*/
|
|
40
47
|
add(n) {
|
|
41
|
-
if (n
|
|
48
|
+
if (BigNumber.is(n)) {
|
|
42
49
|
this.dividend = this.dividend * n.divisor + n.dividend * this.divisor;
|
|
43
50
|
this.divisor *= n.divisor;
|
|
44
51
|
}
|
|
@@ -54,7 +61,7 @@ export default class BigNumber {
|
|
|
54
61
|
* @returns This number.
|
|
55
62
|
*/
|
|
56
63
|
divide(n) {
|
|
57
|
-
if (n
|
|
64
|
+
if (BigNumber.is(n)) {
|
|
58
65
|
this.dividend *= n.divisor;
|
|
59
66
|
this.divisor *= n.dividend;
|
|
60
67
|
}
|
|
@@ -70,7 +77,7 @@ export default class BigNumber {
|
|
|
70
77
|
* @returns This number.
|
|
71
78
|
*/
|
|
72
79
|
multiply(n) {
|
|
73
|
-
if (n
|
|
80
|
+
if (BigNumber.is(n)) {
|
|
74
81
|
this.dividend *= n.dividend;
|
|
75
82
|
this.divisor *= n.divisor;
|
|
76
83
|
}
|
|
@@ -86,7 +93,7 @@ export default class BigNumber {
|
|
|
86
93
|
* @returns This number.
|
|
87
94
|
*/
|
|
88
95
|
subtract(n) {
|
|
89
|
-
if (n
|
|
96
|
+
if (BigNumber.is(n)) {
|
|
90
97
|
this.dividend = this.dividend * n.divisor - n.dividend * this.divisor;
|
|
91
98
|
this.divisor *= n.divisor;
|
|
92
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BigNumber.js","sourceRoot":"","sources":["../../src/utility/BigNumber.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,wCAAwC,CAAC;AAc3E;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC7B,qCAAqC;IAC9B,QAAQ,CAAS;IAExB,oCAAoC;IAC7B,OAAO,CAAS;IAEvB;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"BigNumber.js","sourceRoot":"","sources":["../../src/utility/BigNumber.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,wCAAwC,CAAC;AAc3E;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAC7B,qCAAqC;IAC9B,QAAQ,CAAS;IAExB,oCAAoC;IAC7B,OAAO,CAAS;IAEvB;;;;OAIG;IACH,YACC,WAAoC,CAAC,EACrC,UAAmC,CAAC;QAEpC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,EAAE,CAAC,KAAc;QAC/B,OAAO,KAAK,YAAY,SAAS,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,CAA0B;QACpC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;YACtE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,CAA0B;QACvC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC;YAC3B,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,CAA0B;QACzC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC;YAC5B,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACI,QAAQ,CAAC,CAA0B;QACzC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;YACtE,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;OAGG;IACI,QAAQ;QACd,OAAO,CACN,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAC3D,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,QAAQ;QACd,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACK,QAAQ;QACf,4DAA4D;QAC5D,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9B,CAAC;QAED,gDAAgD;QAChD,MAAM,GAAG,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC;YACrB,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC;QACrB,CAAC;IACF,CAAC;CACD"}
|
package/package.json
CHANGED
|
@@ -1,53 +1,26 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@lakuna/umath",
|
|
3
|
-
"version": "3.0.0",
|
|
4
|
-
"description": "A lightweight math library.",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"math"
|
|
7
|
-
],
|
|
8
|
-
"homepage": "https://umath.lakuna.pw",
|
|
9
|
-
"bugs": {
|
|
10
|
-
"url": "https://github.com/Lakuna/umath/issues",
|
|
11
|
-
"email": "travis@lakuna.pw"
|
|
12
|
-
},
|
|
13
|
-
"license": "MIT",
|
|
14
2
|
"author": {
|
|
15
|
-
"name": "Travis Martin",
|
|
16
3
|
"email": "travis@lakuna.pw",
|
|
4
|
+
"name": "Travis Martin",
|
|
17
5
|
"url": "https://www.lakuna.pw/"
|
|
18
6
|
},
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"url": "https://github.com/
|
|
22
|
-
},
|
|
23
|
-
"files": [
|
|
24
|
-
"dist",
|
|
25
|
-
"src"
|
|
26
|
-
],
|
|
27
|
-
"repository": {
|
|
28
|
-
"type": "git",
|
|
29
|
-
"url": "git+https://github.com/Lakuna/umath.git"
|
|
30
|
-
},
|
|
31
|
-
"scripts": {
|
|
32
|
-
"build": "tsc",
|
|
33
|
-
"lint": "eslint src",
|
|
34
|
-
"doc": "typedoc",
|
|
35
|
-
"test": "node --test",
|
|
36
|
-
"beautify": "prettier . --write"
|
|
7
|
+
"bugs": {
|
|
8
|
+
"email": "travis@lakuna.pw",
|
|
9
|
+
"url": "https://github.com/Lakuna/umath/issues"
|
|
37
10
|
},
|
|
11
|
+
"description": "A lightweight math library.",
|
|
38
12
|
"devDependencies": {
|
|
39
13
|
"@eslint/js": "^10.0.1",
|
|
40
14
|
"@types/eslint": "^9.6.1",
|
|
41
15
|
"@types/eslint-config-prettier": "^6.11.3",
|
|
42
16
|
"@types/node": "^25.5.0",
|
|
43
|
-
"eslint": "^10.0
|
|
17
|
+
"eslint": "^10.1.0",
|
|
44
18
|
"eslint-config-prettier": "^10.1.8",
|
|
45
19
|
"eslint-plugin-perfectionist": "^5.7.0",
|
|
46
20
|
"eslint-plugin-prettier": "^5.5.5",
|
|
47
21
|
"eslint-plugin-tsdoc": "^0.5.2",
|
|
48
|
-
"globals": "^17.4.0",
|
|
49
22
|
"prettier": "^3.8.1",
|
|
50
|
-
"typedoc": "^0.28.
|
|
23
|
+
"typedoc": "^0.28.18",
|
|
51
24
|
"typescript": "^5.9.3",
|
|
52
25
|
"typescript-eslint": "^8.57.1"
|
|
53
26
|
},
|
|
@@ -62,7 +35,34 @@
|
|
|
62
35
|
"./Vector3": "./dist/linalg/Vector3.js",
|
|
63
36
|
"./Vector4": "./dist/linalg/Vector4.js"
|
|
64
37
|
},
|
|
65
|
-
"
|
|
38
|
+
"files": [
|
|
39
|
+
"dist",
|
|
40
|
+
"src"
|
|
41
|
+
],
|
|
42
|
+
"funding": {
|
|
43
|
+
"type": "individual",
|
|
44
|
+
"url": "https://github.com/sponsors/Lakuna"
|
|
45
|
+
},
|
|
46
|
+
"homepage": "https://umath.lakuna.pw/",
|
|
47
|
+
"keywords": [
|
|
48
|
+
"math"
|
|
49
|
+
],
|
|
50
|
+
"license": "MIT",
|
|
51
|
+
"main": "./dist/index.js",
|
|
52
|
+
"name": "@lakuna/umath",
|
|
53
|
+
"repository": {
|
|
54
|
+
"type": "git",
|
|
55
|
+
"url": "git+https://github.com/Lakuna/umath.git"
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "tsc",
|
|
59
|
+
"doc": "typedoc",
|
|
60
|
+
"fix": "eslint src --fix",
|
|
61
|
+
"lint": "eslint src",
|
|
62
|
+
"test": "node --test"
|
|
63
|
+
},
|
|
64
|
+
"sideEffects": false,
|
|
66
65
|
"type": "module",
|
|
67
|
-
"
|
|
66
|
+
"typings": "./dist/index.d.ts",
|
|
67
|
+
"version": "4.0.0"
|
|
68
68
|
}
|
|
@@ -11,7 +11,9 @@ import combinations from "./combinations.js";
|
|
|
11
11
|
* @public
|
|
12
12
|
*/
|
|
13
13
|
export default function hypergeometricPmf(
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
14
15
|
N: number,
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
15
17
|
K: number,
|
|
16
18
|
n: number,
|
|
17
19
|
k: number
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @see {@link https://en.wikipedia.org/wiki/Integer_factorization | Integer factorization}
|
|
6
6
|
* @public
|
|
7
7
|
*/
|
|
8
|
-
export default function primeFactorization(n: number): number[] {
|
|
8
|
+
export default function primeFactorization(n: number): readonly number[] {
|
|
9
9
|
let m = n;
|
|
10
10
|
const out = [];
|
|
11
11
|
let divisor = 2;
|
package/src/index.ts
CHANGED
|
@@ -39,17 +39,12 @@ export { default as Vector3, type Vector3Like } from "./linalg/Vector3.js";
|
|
|
39
39
|
export { default as Vector4, type Vector4Like } from "./linalg/Vector4.js";
|
|
40
40
|
export type { default as Vector, VectorLike } from "./linalg/Vector.js";
|
|
41
41
|
|
|
42
|
-
// Types
|
|
43
|
-
export type { default as AxisAngle } from "./types/AxisAngle.js";
|
|
44
|
-
export type { default as FieldOfView } from "./types/FieldOfView.js";
|
|
45
|
-
|
|
46
42
|
// Utility
|
|
47
43
|
export {
|
|
48
44
|
type BigIntLike,
|
|
49
45
|
default as BigNumber,
|
|
50
46
|
type BigNumberLike
|
|
51
47
|
} from "./utility/BigNumber.js";
|
|
52
|
-
export { default as createAxisAngleLike } from "./utility/createAxisAngleLike.js";
|
|
53
48
|
export { default as epsilon } from "./utility/epsilon.js";
|
|
54
49
|
export { default as MagnitudeError } from "./utility/MagnitudeError.js";
|
|
55
50
|
export { default as MatrixSizeError } from "./utility/MatrixSizeError.js";
|
|
@@ -114,7 +114,7 @@ export const fromValues = <T extends DualQuaternionLike>(
|
|
|
114
114
|
* @public
|
|
115
115
|
*/
|
|
116
116
|
export const copy = <T extends DualQuaternionLike>(
|
|
117
|
-
dualQuaternion: DualQuaternionLike
|
|
117
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
118
118
|
out: T
|
|
119
119
|
): T =>
|
|
120
120
|
fromValues(
|
|
@@ -138,8 +138,8 @@ export const copy = <T extends DualQuaternionLike>(
|
|
|
138
138
|
* @public
|
|
139
139
|
*/
|
|
140
140
|
export const fromRotationTranslation = <T extends DualQuaternionLike>(
|
|
141
|
-
quaternion: QuaternionLike
|
|
142
|
-
translation: Vector3Like
|
|
141
|
+
quaternion: Readonly<QuaternionLike>,
|
|
142
|
+
translation: Readonly<Vector3Like>,
|
|
143
143
|
out: T
|
|
144
144
|
): T => {
|
|
145
145
|
const x = quaternion[0];
|
|
@@ -172,7 +172,7 @@ export const fromRotationTranslation = <T extends DualQuaternionLike>(
|
|
|
172
172
|
* @public
|
|
173
173
|
*/
|
|
174
174
|
export const fromTranslation = <T extends DualQuaternionLike>(
|
|
175
|
-
translation: Vector3Like
|
|
175
|
+
translation: Readonly<Vector3Like>,
|
|
176
176
|
out: T
|
|
177
177
|
): T =>
|
|
178
178
|
fromValues(
|
|
@@ -195,7 +195,7 @@ export const fromTranslation = <T extends DualQuaternionLike>(
|
|
|
195
195
|
* @public
|
|
196
196
|
*/
|
|
197
197
|
export const fromRotation = <T extends DualQuaternionLike>(
|
|
198
|
-
quaternion: QuaternionLike
|
|
198
|
+
quaternion: Readonly<QuaternionLike>,
|
|
199
199
|
out: T
|
|
200
200
|
): T =>
|
|
201
201
|
fromValues(
|
|
@@ -221,7 +221,7 @@ const iv3 = createVector3Like();
|
|
|
221
221
|
* @public
|
|
222
222
|
*/
|
|
223
223
|
export const fromMatrix4 = <T extends DualQuaternionLike>(
|
|
224
|
-
matrix: Matrix4Like
|
|
224
|
+
matrix: Readonly<Matrix4Like>,
|
|
225
225
|
out: T
|
|
226
226
|
): T => {
|
|
227
227
|
matrix4GetScaling(matrix, iv3);
|
|
@@ -310,7 +310,7 @@ export const identity = <T extends DualQuaternionLike>(out: T): T =>
|
|
|
310
310
|
* @public
|
|
311
311
|
*/
|
|
312
312
|
export const getReal: <T extends QuaternionLike>(
|
|
313
|
-
dualQuaternion: DualQuaternionLike
|
|
313
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
314
314
|
out: T
|
|
315
315
|
) => T = vector4Copy;
|
|
316
316
|
|
|
@@ -322,7 +322,7 @@ export const getReal: <T extends QuaternionLike>(
|
|
|
322
322
|
* @public
|
|
323
323
|
*/
|
|
324
324
|
export const getDual = <T extends QuaternionLike>(
|
|
325
|
-
dualQuaternion: DualQuaternionLike
|
|
325
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
326
326
|
out: T
|
|
327
327
|
): T =>
|
|
328
328
|
vector4FromValues(
|
|
@@ -341,7 +341,7 @@ export const getDual = <T extends QuaternionLike>(
|
|
|
341
341
|
* @public
|
|
342
342
|
*/
|
|
343
343
|
export const setReal: <T extends DualQuaternionLike>(
|
|
344
|
-
quaternion: QuaternionLike
|
|
344
|
+
quaternion: Readonly<QuaternionLike>,
|
|
345
345
|
out: T
|
|
346
346
|
) => T = vector4Copy;
|
|
347
347
|
|
|
@@ -353,7 +353,7 @@ export const setReal: <T extends DualQuaternionLike>(
|
|
|
353
353
|
* @public
|
|
354
354
|
*/
|
|
355
355
|
export const setDual = <T extends DualQuaternionLike>(
|
|
356
|
-
quaternion: QuaternionLike
|
|
356
|
+
quaternion: Readonly<QuaternionLike>,
|
|
357
357
|
out: T
|
|
358
358
|
): T => {
|
|
359
359
|
out[4] = quaternion[0];
|
|
@@ -371,7 +371,7 @@ export const setDual = <T extends DualQuaternionLike>(
|
|
|
371
371
|
* @public
|
|
372
372
|
*/
|
|
373
373
|
export const getTranslation = <T extends Vector3Like>(
|
|
374
|
-
dualQuaternion: DualQuaternionLike
|
|
374
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
375
375
|
out: T
|
|
376
376
|
): T => {
|
|
377
377
|
const ax = dualQuaternion[4];
|
|
@@ -400,8 +400,8 @@ export const getTranslation = <T extends Vector3Like>(
|
|
|
400
400
|
* @public
|
|
401
401
|
*/
|
|
402
402
|
export const translate = <T extends DualQuaternionLike>(
|
|
403
|
-
dualQuaternion: DualQuaternionLike
|
|
404
|
-
vector: Vector3Like
|
|
403
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
404
|
+
vector: Readonly<Vector3Like>,
|
|
405
405
|
out: T
|
|
406
406
|
): T => {
|
|
407
407
|
const ax1 = dualQuaternion[0];
|
|
@@ -440,7 +440,7 @@ export const translate = <T extends DualQuaternionLike>(
|
|
|
440
440
|
* @public
|
|
441
441
|
*/
|
|
442
442
|
export const rotateX = <T extends DualQuaternionLike>(
|
|
443
|
-
dualQuaternion: DualQuaternionLike
|
|
443
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
444
444
|
radians: number,
|
|
445
445
|
out: T
|
|
446
446
|
): T => {
|
|
@@ -482,7 +482,7 @@ export const rotateX = <T extends DualQuaternionLike>(
|
|
|
482
482
|
* @public
|
|
483
483
|
*/
|
|
484
484
|
export const rotateY = <T extends DualQuaternionLike>(
|
|
485
|
-
dualQuaternion: DualQuaternionLike
|
|
485
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
486
486
|
radians: number,
|
|
487
487
|
out: T
|
|
488
488
|
): T => {
|
|
@@ -524,7 +524,7 @@ export const rotateY = <T extends DualQuaternionLike>(
|
|
|
524
524
|
* @public
|
|
525
525
|
*/
|
|
526
526
|
export const rotateZ = <T extends DualQuaternionLike>(
|
|
527
|
-
dualQuaternion: DualQuaternionLike
|
|
527
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
528
528
|
radians: number,
|
|
529
529
|
out: T
|
|
530
530
|
): T => {
|
|
@@ -566,8 +566,8 @@ export const rotateZ = <T extends DualQuaternionLike>(
|
|
|
566
566
|
* @public
|
|
567
567
|
*/
|
|
568
568
|
export const rotateByQuaternionAppend = <T extends DualQuaternionLike>(
|
|
569
|
-
dualQuaternion: DualQuaternionLike
|
|
570
|
-
quaternion: QuaternionLike
|
|
569
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
570
|
+
quaternion: Readonly<QuaternionLike>,
|
|
571
571
|
out: T
|
|
572
572
|
): T => {
|
|
573
573
|
const qx = quaternion[0];
|
|
@@ -606,8 +606,8 @@ export const rotateByQuaternionAppend = <T extends DualQuaternionLike>(
|
|
|
606
606
|
* @public
|
|
607
607
|
*/
|
|
608
608
|
export const rotateByQuaternionPrepend = <T extends DualQuaternionLike>(
|
|
609
|
-
quaternion: QuaternionLike
|
|
610
|
-
dualQuaternion: DualQuaternionLike
|
|
609
|
+
quaternion: Readonly<QuaternionLike>,
|
|
610
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
611
611
|
out: T
|
|
612
612
|
): T => {
|
|
613
613
|
const qx = quaternion[0];
|
|
@@ -647,8 +647,8 @@ export const rotateByQuaternionPrepend = <T extends DualQuaternionLike>(
|
|
|
647
647
|
* @public
|
|
648
648
|
*/
|
|
649
649
|
export const rotateAroundAxis = <T extends DualQuaternionLike>(
|
|
650
|
-
dualQuaternion: DualQuaternionLike
|
|
651
|
-
axis: Vector3Like
|
|
650
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
651
|
+
axis: Readonly<Vector3Like>,
|
|
652
652
|
radians: number,
|
|
653
653
|
out: T
|
|
654
654
|
): T => {
|
|
@@ -701,8 +701,8 @@ export const rotateAroundAxis = <T extends DualQuaternionLike>(
|
|
|
701
701
|
* @public
|
|
702
702
|
*/
|
|
703
703
|
export const add = <T extends DualQuaternionLike>(
|
|
704
|
-
a: DualQuaternionLike
|
|
705
|
-
b: DualQuaternionLike
|
|
704
|
+
a: Readonly<DualQuaternionLike>,
|
|
705
|
+
b: Readonly<DualQuaternionLike>,
|
|
706
706
|
out: T
|
|
707
707
|
): T =>
|
|
708
708
|
fromValues(
|
|
@@ -726,8 +726,8 @@ export const add = <T extends DualQuaternionLike>(
|
|
|
726
726
|
* @public
|
|
727
727
|
*/
|
|
728
728
|
export const multiply = <T extends DualQuaternionLike>(
|
|
729
|
-
a: DualQuaternionLike
|
|
730
|
-
b: DualQuaternionLike
|
|
729
|
+
a: Readonly<DualQuaternionLike>,
|
|
730
|
+
b: Readonly<DualQuaternionLike>,
|
|
731
731
|
out: T
|
|
732
732
|
): T => {
|
|
733
733
|
const ax0 = a[0];
|
|
@@ -800,7 +800,7 @@ export const multiply = <T extends DualQuaternionLike>(
|
|
|
800
800
|
* @public
|
|
801
801
|
*/
|
|
802
802
|
export const scale = <T extends DualQuaternionLike>(
|
|
803
|
-
dualQuaternion: DualQuaternionLike
|
|
803
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
804
804
|
scalar: number,
|
|
805
805
|
out: T
|
|
806
806
|
): T =>
|
|
@@ -824,8 +824,10 @@ export const scale = <T extends DualQuaternionLike>(
|
|
|
824
824
|
* @see {@link https://en.wikipedia.org/wiki/Dot_product | Dot product}
|
|
825
825
|
* @public
|
|
826
826
|
*/
|
|
827
|
-
export const dot: (
|
|
828
|
-
|
|
827
|
+
export const dot: (
|
|
828
|
+
a: Readonly<DualQuaternionLike>,
|
|
829
|
+
b: Readonly<DualQuaternionLike>
|
|
830
|
+
) => number = vector4Dot;
|
|
829
831
|
|
|
830
832
|
/**
|
|
831
833
|
* Perform a linear interpolation between two dual quaternions.
|
|
@@ -837,8 +839,8 @@ export const dot: (a: DualQuaternionLike, b: DualQuaternionLike) => number =
|
|
|
837
839
|
* @public
|
|
838
840
|
*/
|
|
839
841
|
export const lerp = <T extends DualQuaternionLike>(
|
|
840
|
-
a: DualQuaternionLike
|
|
841
|
-
b: DualQuaternionLike
|
|
842
|
+
a: Readonly<DualQuaternionLike>,
|
|
843
|
+
b: Readonly<DualQuaternionLike>,
|
|
842
844
|
t: number,
|
|
843
845
|
out: T
|
|
844
846
|
): T => {
|
|
@@ -864,8 +866,9 @@ export const lerp = <T extends DualQuaternionLike>(
|
|
|
864
866
|
* @returns The magnitude.
|
|
865
867
|
* @public
|
|
866
868
|
*/
|
|
867
|
-
export const getMagnitude: (
|
|
868
|
-
|
|
869
|
+
export const getMagnitude: (
|
|
870
|
+
dualQuaternion: Readonly<DualQuaternionLike>
|
|
871
|
+
) => number = vector4GetMagnitude;
|
|
869
872
|
|
|
870
873
|
/**
|
|
871
874
|
* Calculate the squared magnitude (length) of a dual quaternion.
|
|
@@ -874,7 +877,7 @@ export const getMagnitude: (dualQuaternion: DualQuaternionLike) => number =
|
|
|
874
877
|
* @public
|
|
875
878
|
*/
|
|
876
879
|
export const getSquaredMagnitude: (
|
|
877
|
-
dualQuaternion: DualQuaternionLike
|
|
880
|
+
dualQuaternion: Readonly<DualQuaternionLike>
|
|
878
881
|
) => number = vector4GetSquaredMagnitude;
|
|
879
882
|
|
|
880
883
|
/**
|
|
@@ -885,7 +888,7 @@ export const getSquaredMagnitude: (
|
|
|
885
888
|
* @public
|
|
886
889
|
*/
|
|
887
890
|
export const invert = <T extends DualQuaternionLike>(
|
|
888
|
-
dualQuaternion: DualQuaternionLike
|
|
891
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
889
892
|
out: T
|
|
890
893
|
): T => {
|
|
891
894
|
const sqm = getSquaredMagnitude(dualQuaternion);
|
|
@@ -911,7 +914,7 @@ export const invert = <T extends DualQuaternionLike>(
|
|
|
911
914
|
* @public
|
|
912
915
|
*/
|
|
913
916
|
export const conjugate = <T extends DualQuaternionLike>(
|
|
914
|
-
dualQuaternion: DualQuaternionLike
|
|
917
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
915
918
|
out: T
|
|
916
919
|
): T =>
|
|
917
920
|
fromValues(
|
|
@@ -934,7 +937,7 @@ export const conjugate = <T extends DualQuaternionLike>(
|
|
|
934
937
|
* @public
|
|
935
938
|
*/
|
|
936
939
|
export const normalize = <T extends DualQuaternionLike>(
|
|
937
|
-
dualQuaternion: DualQuaternionLike
|
|
940
|
+
dualQuaternion: Readonly<DualQuaternionLike>,
|
|
938
941
|
out: T
|
|
939
942
|
): T => {
|
|
940
943
|
let magnitude = getSquaredMagnitude(dualQuaternion);
|
|
@@ -976,8 +979,8 @@ export const normalize = <T extends DualQuaternionLike>(
|
|
|
976
979
|
* @public
|
|
977
980
|
*/
|
|
978
981
|
export const exactEquals = (
|
|
979
|
-
a: DualQuaternionLike
|
|
980
|
-
b: DualQuaternionLike
|
|
982
|
+
a: Readonly<DualQuaternionLike>,
|
|
983
|
+
b: Readonly<DualQuaternionLike>
|
|
981
984
|
): boolean =>
|
|
982
985
|
a[0] === b[0] &&
|
|
983
986
|
a[1] === b[1] &&
|
|
@@ -995,7 +998,10 @@ export const exactEquals = (
|
|
|
995
998
|
* @returns Whether or not the dual quaternions are equivalent.
|
|
996
999
|
* @public
|
|
997
1000
|
*/
|
|
998
|
-
export const equals = (
|
|
1001
|
+
export const equals = (
|
|
1002
|
+
a: Readonly<DualQuaternionLike>,
|
|
1003
|
+
b: Readonly<DualQuaternionLike>
|
|
1004
|
+
): boolean =>
|
|
999
1005
|
approxRelative(a[0], b[0]) &&
|
|
1000
1006
|
approxRelative(a[1], b[1]) &&
|
|
1001
1007
|
approxRelative(a[2], b[2]) &&
|
|
@@ -1070,7 +1076,7 @@ export default class DualQuaternion
|
|
|
1070
1076
|
* @param matrix - The matrix.
|
|
1071
1077
|
* @returns The dual quaternion.
|
|
1072
1078
|
*/
|
|
1073
|
-
public static fromMatrix4(matrix: Matrix4Like): DualQuaternion {
|
|
1079
|
+
public static fromMatrix4(matrix: Readonly<Matrix4Like>): DualQuaternion {
|
|
1074
1080
|
return fromMatrix4(matrix, new DualQuaternion());
|
|
1075
1081
|
}
|
|
1076
1082
|
|
|
@@ -1079,7 +1085,7 @@ export default class DualQuaternion
|
|
|
1079
1085
|
* @param q - The rotation quaternion.
|
|
1080
1086
|
* @returns The dual quaternion.
|
|
1081
1087
|
*/
|
|
1082
|
-
public static fromRotation(q: QuaternionLike): DualQuaternion {
|
|
1088
|
+
public static fromRotation(q: Readonly<QuaternionLike>): DualQuaternion {
|
|
1083
1089
|
return fromRotation(q, new DualQuaternion());
|
|
1084
1090
|
}
|
|
1085
1091
|
|
|
@@ -1090,8 +1096,8 @@ export default class DualQuaternion
|
|
|
1090
1096
|
* @returns The dual quaternion.
|
|
1091
1097
|
*/
|
|
1092
1098
|
public static fromRotationTranslation(
|
|
1093
|
-
q: QuaternionLike
|
|
1094
|
-
t: Vector3Like
|
|
1099
|
+
q: Readonly<QuaternionLike>,
|
|
1100
|
+
t: Readonly<Vector3Like>
|
|
1095
1101
|
): DualQuaternion {
|
|
1096
1102
|
return fromRotationTranslation(q, t, new DualQuaternion());
|
|
1097
1103
|
}
|
|
@@ -1101,7 +1107,7 @@ export default class DualQuaternion
|
|
|
1101
1107
|
* @param t - The translation vector.
|
|
1102
1108
|
* @returns The dual quaternion.
|
|
1103
1109
|
*/
|
|
1104
|
-
public static fromTranslation(t: Vector3Like): DualQuaternion {
|
|
1110
|
+
public static fromTranslation(t: Readonly<Vector3Like>): DualQuaternion {
|
|
1105
1111
|
return fromTranslation(t, new DualQuaternion());
|
|
1106
1112
|
}
|
|
1107
1113
|
|
|
@@ -1135,7 +1141,7 @@ export default class DualQuaternion
|
|
|
1135
1141
|
* @param dq - The other dual quaternion.
|
|
1136
1142
|
* @returns The sum.
|
|
1137
1143
|
*/
|
|
1138
|
-
public add(dq: DualQuaternionLike): DualQuaternion {
|
|
1144
|
+
public add(dq: Readonly<DualQuaternionLike>): DualQuaternion {
|
|
1139
1145
|
return add(this, dq, new DualQuaternion());
|
|
1140
1146
|
}
|
|
1141
1147
|
|
|
@@ -1160,7 +1166,7 @@ export default class DualQuaternion
|
|
|
1160
1166
|
* @param dualQuaternion - The dual quaternion to copy.
|
|
1161
1167
|
* @returns This dual quaternion.
|
|
1162
1168
|
*/
|
|
1163
|
-
public copy(dualQuaternion: DualQuaternionLike): this {
|
|
1169
|
+
public copy(dualQuaternion: Readonly<DualQuaternionLike>): this {
|
|
1164
1170
|
return copy(dualQuaternion, this);
|
|
1165
1171
|
}
|
|
1166
1172
|
|
|
@@ -1170,7 +1176,7 @@ export default class DualQuaternion
|
|
|
1170
1176
|
* @returns The dot product.
|
|
1171
1177
|
* @see {@link https://en.wikipedia.org/wiki/Dot_product | Dot product}
|
|
1172
1178
|
*/
|
|
1173
|
-
public dot(dq: DualQuaternionLike): number {
|
|
1179
|
+
public dot(dq: Readonly<DualQuaternionLike>): number {
|
|
1174
1180
|
return dot(this, dq);
|
|
1175
1181
|
}
|
|
1176
1182
|
|
|
@@ -1179,7 +1185,7 @@ export default class DualQuaternion
|
|
|
1179
1185
|
* @param dq - The other dual quaternion.
|
|
1180
1186
|
* @returns Whether or not the dual quaternions are equivalent.
|
|
1181
1187
|
*/
|
|
1182
|
-
public equals(dq: DualQuaternionLike): boolean {
|
|
1188
|
+
public equals(dq: Readonly<DualQuaternionLike>): boolean {
|
|
1183
1189
|
return equals(this, dq);
|
|
1184
1190
|
}
|
|
1185
1191
|
|
|
@@ -1188,7 +1194,7 @@ export default class DualQuaternion
|
|
|
1188
1194
|
* @param dq - The other dual quaternion.
|
|
1189
1195
|
* @returns Whether or not the dual quaternions are equivalent.
|
|
1190
1196
|
*/
|
|
1191
|
-
public exactEquals(dq: DualQuaternionLike): boolean {
|
|
1197
|
+
public exactEquals(dq: Readonly<DualQuaternionLike>): boolean {
|
|
1192
1198
|
return exactEquals(this, dq);
|
|
1193
1199
|
}
|
|
1194
1200
|
|
|
@@ -1238,7 +1244,7 @@ export default class DualQuaternion
|
|
|
1238
1244
|
* @param t - The interpolation amount in `[0,1]`.
|
|
1239
1245
|
* @returns The interpolated value.
|
|
1240
1246
|
*/
|
|
1241
|
-
public lerp(dq: DualQuaternionLike
|
|
1247
|
+
public lerp(dq: Readonly<DualQuaternionLike>, t: number): DualQuaternion {
|
|
1242
1248
|
return lerp(this, dq, t, new DualQuaternion());
|
|
1243
1249
|
}
|
|
1244
1250
|
|
|
@@ -1247,7 +1253,7 @@ export default class DualQuaternion
|
|
|
1247
1253
|
* @param dq - The other dual quaternion.
|
|
1248
1254
|
* @returns The product.
|
|
1249
1255
|
*/
|
|
1250
|
-
public multiply(dq: DualQuaternionLike): DualQuaternion {
|
|
1256
|
+
public multiply(dq: Readonly<DualQuaternionLike>): DualQuaternion {
|
|
1251
1257
|
return multiply(this, dq, new DualQuaternion());
|
|
1252
1258
|
}
|
|
1253
1259
|
|
|
@@ -1265,7 +1271,10 @@ export default class DualQuaternion
|
|
|
1265
1271
|
* @param r - The angle of the rotation in radians.
|
|
1266
1272
|
* @returns A normalized dual quaternion.
|
|
1267
1273
|
*/
|
|
1268
|
-
public rotateAroundAxis(
|
|
1274
|
+
public rotateAroundAxis(
|
|
1275
|
+
axis: Readonly<Vector3Like>,
|
|
1276
|
+
r: number
|
|
1277
|
+
): DualQuaternion {
|
|
1269
1278
|
return rotateAroundAxis(this, axis, r, new DualQuaternion());
|
|
1270
1279
|
}
|
|
1271
1280
|
|
|
@@ -1275,7 +1284,7 @@ export default class DualQuaternion
|
|
|
1275
1284
|
* @returns The rotated dual quaternion.
|
|
1276
1285
|
* @see {@link https://en.wikipedia.org/wiki/Quaternion | Quaternion}
|
|
1277
1286
|
*/
|
|
1278
|
-
public rotateByQuaternionAppend(q: QuaternionLike): DualQuaternion {
|
|
1287
|
+
public rotateByQuaternionAppend(q: Readonly<QuaternionLike>): DualQuaternion {
|
|
1279
1288
|
return rotateByQuaternionAppend(this, q, new DualQuaternion());
|
|
1280
1289
|
}
|
|
1281
1290
|
|
|
@@ -1285,7 +1294,9 @@ export default class DualQuaternion
|
|
|
1285
1294
|
* @returns The rotated dual quaternion.
|
|
1286
1295
|
* @see {@link https://en.wikipedia.org/wiki/Quaternion | Quaternion}
|
|
1287
1296
|
*/
|
|
1288
|
-
public rotateByQuaternionPrepend(
|
|
1297
|
+
public rotateByQuaternionPrepend(
|
|
1298
|
+
q: Readonly<QuaternionLike>
|
|
1299
|
+
): DualQuaternion {
|
|
1289
1300
|
return rotateByQuaternionPrepend(q, this, new DualQuaternion());
|
|
1290
1301
|
}
|
|
1291
1302
|
|
|
@@ -1329,7 +1340,7 @@ export default class DualQuaternion
|
|
|
1329
1340
|
* Set the real part of this dual quaternion.
|
|
1330
1341
|
* @param q - The quaternion.
|
|
1331
1342
|
*/
|
|
1332
|
-
public setDual(q: QuaternionLike): void {
|
|
1343
|
+
public setDual(q: Readonly<QuaternionLike>): void {
|
|
1333
1344
|
setDual(q, this);
|
|
1334
1345
|
}
|
|
1335
1346
|
|
|
@@ -1337,7 +1348,7 @@ export default class DualQuaternion
|
|
|
1337
1348
|
* Set the real part of this dual quaternion.
|
|
1338
1349
|
* @param q - The quaternion.
|
|
1339
1350
|
*/
|
|
1340
|
-
public setReal(q: QuaternionLike): void {
|
|
1351
|
+
public setReal(q: Readonly<QuaternionLike>): void {
|
|
1341
1352
|
setReal(q, this);
|
|
1342
1353
|
}
|
|
1343
1354
|
|
|
@@ -1346,7 +1357,7 @@ export default class DualQuaternion
|
|
|
1346
1357
|
* @param v - The vector.
|
|
1347
1358
|
* @returns The translated dual quaternion.
|
|
1348
1359
|
*/
|
|
1349
|
-
public translate(v: Vector3Like): DualQuaternion {
|
|
1360
|
+
public translate(v: Readonly<Vector3Like>): DualQuaternion {
|
|
1350
1361
|
return translate(this, v, new DualQuaternion());
|
|
1351
1362
|
}
|
|
1352
1363
|
}
|