@lakuna/umath 2.0.0 → 3.0.1

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 (88) hide show
  1. package/LICENSE +1 -1
  2. package/dist/algorithms/greatestCommonDivisor.d.ts.map +1 -1
  3. package/dist/algorithms/greatestCommonDivisor.js +14 -4
  4. package/dist/algorithms/greatestCommonDivisor.js.map +1 -1
  5. package/dist/index.d.ts +12 -12
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/linalg/DualQuaternion.d.ts +158 -158
  9. package/dist/linalg/DualQuaternion.d.ts.map +1 -1
  10. package/dist/linalg/DualQuaternion.js +173 -165
  11. package/dist/linalg/DualQuaternion.js.map +1 -1
  12. package/dist/linalg/Matrix.d.ts +24 -24
  13. package/dist/linalg/Matrix.d.ts.map +1 -1
  14. package/dist/linalg/Matrix2.d.ts +85 -85
  15. package/dist/linalg/Matrix2.d.ts.map +1 -1
  16. package/dist/linalg/Matrix2.js +92 -88
  17. package/dist/linalg/Matrix2.js.map +1 -1
  18. package/dist/linalg/Matrix3.d.ts +134 -134
  19. package/dist/linalg/Matrix3.d.ts.map +1 -1
  20. package/dist/linalg/Matrix3.js +147 -138
  21. package/dist/linalg/Matrix3.js.map +1 -1
  22. package/dist/linalg/Matrix4.d.ts +245 -246
  23. package/dist/linalg/Matrix4.d.ts.map +1 -1
  24. package/dist/linalg/Matrix4.js +272 -251
  25. package/dist/linalg/Matrix4.js.map +1 -1
  26. package/dist/linalg/Quaternion.d.ts +147 -146
  27. package/dist/linalg/Quaternion.d.ts.map +1 -1
  28. package/dist/linalg/Quaternion.js +175 -161
  29. package/dist/linalg/Quaternion.js.map +1 -1
  30. package/dist/linalg/SlowMatrix.d.ts +12 -12
  31. package/dist/linalg/SlowMatrix.d.ts.map +1 -1
  32. package/dist/linalg/SlowMatrix.js +12 -12
  33. package/dist/linalg/SlowMatrix.js.map +1 -1
  34. package/dist/linalg/SlowSquareMatrix.d.ts +7 -7
  35. package/dist/linalg/SlowSquareMatrix.d.ts.map +1 -1
  36. package/dist/linalg/SlowSquareMatrix.js +15 -15
  37. package/dist/linalg/SlowSquareMatrix.js.map +1 -1
  38. package/dist/linalg/SlowVector.d.ts +77 -77
  39. package/dist/linalg/SlowVector.d.ts.map +1 -1
  40. package/dist/linalg/SlowVector.js +153 -153
  41. package/dist/linalg/SlowVector.js.map +1 -1
  42. package/dist/linalg/SquareMatrix.d.ts +8 -8
  43. package/dist/linalg/SquareMatrix.d.ts.map +1 -1
  44. package/dist/linalg/Vector.d.ts +85 -84
  45. package/dist/linalg/Vector.d.ts.map +1 -1
  46. package/dist/linalg/Vector2.d.ts +143 -143
  47. package/dist/linalg/Vector2.d.ts.map +1 -1
  48. package/dist/linalg/Vector2.js +145 -143
  49. package/dist/linalg/Vector2.js.map +1 -1
  50. package/dist/linalg/Vector3.d.ts +173 -173
  51. package/dist/linalg/Vector3.d.ts.map +1 -1
  52. package/dist/linalg/Vector3.js +176 -173
  53. package/dist/linalg/Vector3.js.map +1 -1
  54. package/dist/linalg/Vector4.d.ts +137 -137
  55. package/dist/linalg/Vector4.d.ts.map +1 -1
  56. package/dist/linalg/Vector4.js +144 -140
  57. package/dist/linalg/Vector4.js.map +1 -1
  58. package/dist/types/AxisAngle.d.ts +11 -1
  59. package/dist/types/AxisAngle.d.ts.map +1 -1
  60. package/dist/types/FieldOfView.d.ts +2 -2
  61. package/dist/types/FieldOfView.d.ts.map +1 -1
  62. package/dist/utility/BigNumber.d.ts +21 -11
  63. package/dist/utility/BigNumber.d.ts.map +1 -1
  64. package/dist/utility/BigNumber.js +49 -31
  65. package/dist/utility/BigNumber.js.map +1 -1
  66. package/dist/utility/createAxisAngleLike.d.ts.map +1 -1
  67. package/dist/utility/createAxisAngleLike.js.map +1 -1
  68. package/package.json +13 -12
  69. package/src/algorithms/greatestCommonDivisor.ts +19 -7
  70. package/src/index.ts +21 -14
  71. package/src/linalg/DualQuaternion.ts +264 -238
  72. package/src/linalg/Matrix.ts +31 -28
  73. package/src/linalg/Matrix2.ts +157 -137
  74. package/src/linalg/Matrix3.ts +222 -191
  75. package/src/linalg/Matrix4.ts +464 -412
  76. package/src/linalg/Quaternion.ts +267 -234
  77. package/src/linalg/SlowMatrix.ts +31 -27
  78. package/src/linalg/SlowSquareMatrix.ts +19 -18
  79. package/src/linalg/SlowVector.ts +175 -174
  80. package/src/linalg/SquareMatrix.ts +9 -9
  81. package/src/linalg/Vector.ts +91 -89
  82. package/src/linalg/Vector2.ts +250 -217
  83. package/src/linalg/Vector3.ts +309 -269
  84. package/src/linalg/Vector4.ts +246 -206
  85. package/src/types/AxisAngle.ts +13 -1
  86. package/src/types/FieldOfView.ts +3 -3
  87. package/src/utility/BigNumber.ts +71 -38
  88. package/src/utility/createAxisAngleLike.ts +1 -0
@@ -28,7 +28,7 @@ export interface DualQuaternionLike extends Record<number, number> {
28
28
  * @returns A dual quaternion-like object.
29
29
  * @public
30
30
  */
31
- export declare const createDualQuaternionLike: () => Float32Array & DualQuaternionLike;
31
+ export declare const createDualQuaternionLike: () => DualQuaternionLike & Float32Array;
32
32
  /**
33
33
  * Create a dual quaternion with the given values.
34
34
  * @param x1 - The first real component.
@@ -51,7 +51,7 @@ export declare const fromValues: <T extends DualQuaternionLike>(x1: number, y1:
51
51
  * @returns The copy.
52
52
  * @public
53
53
  */
54
- export declare const copy: <T extends DualQuaternionLike>(dualQuaternion: DualQuaternionLike, out: T) => T;
54
+ export declare const copy: <T extends DualQuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, out: T) => T;
55
55
  /**
56
56
  * Create a dual quaternion from the given rotation and translation.
57
57
  * @param quaternion - The rotation quaternion.
@@ -60,7 +60,7 @@ export declare const copy: <T extends DualQuaternionLike>(dualQuaternion: DualQu
60
60
  * @returns The dual quaternion.
61
61
  * @public
62
62
  */
63
- export declare const fromRotationTranslation: <T extends DualQuaternionLike>(quaternion: QuaternionLike, translation: Vector3Like, out: T) => T;
63
+ export declare const fromRotationTranslation: <T extends DualQuaternionLike>(quaternion: Readonly<QuaternionLike>, translation: Readonly<Vector3Like>, out: T) => T;
64
64
  /**
65
65
  * Create a dual quaternion from the given translation.
66
66
  * @param translation - The translation vector.
@@ -68,7 +68,7 @@ export declare const fromRotationTranslation: <T extends DualQuaternionLike>(qua
68
68
  * @returns The dual quaternion.
69
69
  * @public
70
70
  */
71
- export declare const fromTranslation: <T extends DualQuaternionLike>(translation: Vector3Like, out: T) => T;
71
+ export declare const fromTranslation: <T extends DualQuaternionLike>(translation: Readonly<Vector3Like>, out: T) => T;
72
72
  /**
73
73
  * Create a dual quaternion from the given rotation.
74
74
  * @param quaternion - The rotation quaternion.
@@ -76,7 +76,7 @@ export declare const fromTranslation: <T extends DualQuaternionLike>(translation
76
76
  * @returns The dual quaternion.
77
77
  * @public
78
78
  */
79
- export declare const fromRotation: <T extends DualQuaternionLike>(quaternion: QuaternionLike, out: T) => T;
79
+ export declare const fromRotation: <T extends DualQuaternionLike>(quaternion: Readonly<QuaternionLike>, out: T) => T;
80
80
  /**
81
81
  * Create a dual quaternion from the given four-by-four matrix. Equivalent to (but faster than) `fromRotationTranslation(getRotation(matrix, createQuaternionLike()), getTranslation(matrix, createVector3Like()), out)`.
82
82
  * @param matrix - The matrix.
@@ -84,7 +84,7 @@ export declare const fromRotation: <T extends DualQuaternionLike>(quaternion: Qu
84
84
  * @returns The dual quaternion.
85
85
  * @public
86
86
  */
87
- export declare const fromMatrix4: <T extends DualQuaternionLike>(matrix: Matrix4Like, out: T) => T;
87
+ export declare const fromMatrix4: <T extends DualQuaternionLike>(matrix: Readonly<Matrix4Like>, out: T) => T;
88
88
  /**
89
89
  * Set a dual quaternion to the identity dual quaternion.
90
90
  * @param out - The dual quaternion to store the result in.
@@ -99,7 +99,7 @@ export declare const identity: <T extends DualQuaternionLike>(out: T) => T;
99
99
  * @returns The real part.
100
100
  * @public
101
101
  */
102
- export declare const getReal: <T extends QuaternionLike>(dualQuaternion: DualQuaternionLike, out: T) => T;
102
+ export declare const getReal: <T extends QuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, out: T) => T;
103
103
  /**
104
104
  * Get the dual part of a dual quaternion.
105
105
  * @param dualQuaternion - The dual quaternion.
@@ -107,7 +107,7 @@ export declare const getReal: <T extends QuaternionLike>(dualQuaternion: DualQua
107
107
  * @returns The dual part.
108
108
  * @public
109
109
  */
110
- export declare const getDual: <T extends QuaternionLike>(dualQuaternion: DualQuaternionLike, out: T) => T;
110
+ export declare const getDual: <T extends QuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, out: T) => T;
111
111
  /**
112
112
  * Set the real part of a dual quaternion.
113
113
  * @param quaternion - The quaternion to set as the real part.
@@ -115,7 +115,7 @@ export declare const getDual: <T extends QuaternionLike>(dualQuaternion: DualQua
115
115
  * @returns The dual quaternion.
116
116
  * @public
117
117
  */
118
- export declare const setReal: <T extends DualQuaternionLike>(quaternion: QuaternionLike, out: T) => T;
118
+ export declare const setReal: <T extends DualQuaternionLike>(quaternion: Readonly<QuaternionLike>, out: T) => T;
119
119
  /**
120
120
  * Set the dual part of a dual quaternion.
121
121
  * @param quaternion - The quaternion to set as the dual part.
@@ -123,7 +123,7 @@ export declare const setReal: <T extends DualQuaternionLike>(quaternion: Quatern
123
123
  * @returns The dual quaternion.
124
124
  * @public
125
125
  */
126
- export declare const setDual: <T extends DualQuaternionLike>(quaternion: QuaternionLike, out: T) => T;
126
+ export declare const setDual: <T extends DualQuaternionLike>(quaternion: Readonly<QuaternionLike>, out: T) => T;
127
127
  /**
128
128
  * Get the translation of a normalized dual quaternion.
129
129
  * @param dualQuaternion - The dual quaternion.
@@ -131,7 +131,7 @@ export declare const setDual: <T extends DualQuaternionLike>(quaternion: Quatern
131
131
  * @returns The translation vector.
132
132
  * @public
133
133
  */
134
- export declare const getTranslation: <T extends Vector3Like>(dualQuaternion: DualQuaternionLike, out: T) => T;
134
+ export declare const getTranslation: <T extends Vector3Like>(dualQuaternion: Readonly<DualQuaternionLike>, out: T) => T;
135
135
  /**
136
136
  * Translate a dual quaternion by the given vector.
137
137
  * @param dualQuaternion - The dual quaternion.
@@ -140,7 +140,7 @@ export declare const getTranslation: <T extends Vector3Like>(dualQuaternion: Dua
140
140
  * @returns The translated dual quaternion.
141
141
  * @public
142
142
  */
143
- export declare const translate: <T extends DualQuaternionLike>(dualQuaternion: DualQuaternionLike, vector: Vector3Like, out: T) => T;
143
+ export declare const translate: <T extends DualQuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, vector: Readonly<Vector3Like>, out: T) => T;
144
144
  /**
145
145
  * Rotate a dual quaternion around the X-axis.
146
146
  * @param dualQuaternion - The dual quaternion.
@@ -149,7 +149,7 @@ export declare const translate: <T extends DualQuaternionLike>(dualQuaternion: D
149
149
  * @returns The rotated dual quaternion.
150
150
  * @public
151
151
  */
152
- export declare const rotateX: <T extends DualQuaternionLike>(dualQuaternion: DualQuaternionLike, radians: number, out: T) => T;
152
+ export declare const rotateX: <T extends DualQuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, radians: number, out: T) => T;
153
153
  /**
154
154
  * Rotate a dual quaternion around the Y-axis.
155
155
  * @param dualQuaternion - The dual quaternion.
@@ -158,7 +158,7 @@ export declare const rotateX: <T extends DualQuaternionLike>(dualQuaternion: Dua
158
158
  * @returns The rotated dual quaternion.
159
159
  * @public
160
160
  */
161
- export declare const rotateY: <T extends DualQuaternionLike>(dualQuaternion: DualQuaternionLike, radians: number, out: T) => T;
161
+ export declare const rotateY: <T extends DualQuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, radians: number, out: T) => T;
162
162
  /**
163
163
  * Rotate a dual quaternion around the Z-axis.
164
164
  * @param dualQuaternion - The dual quaternion.
@@ -167,7 +167,7 @@ export declare const rotateY: <T extends DualQuaternionLike>(dualQuaternion: Dua
167
167
  * @returns The rotated dual quaternion.
168
168
  * @public
169
169
  */
170
- export declare const rotateZ: <T extends DualQuaternionLike>(dualQuaternion: DualQuaternionLike, radians: number, out: T) => T;
170
+ export declare const rotateZ: <T extends DualQuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, radians: number, out: T) => T;
171
171
  /**
172
172
  * Rotate a dual quaternion by a quaternion (using the quaternion as the multiplicand).
173
173
  * @param dualQuaternion - The dual quaternion to rotate.
@@ -176,7 +176,7 @@ export declare const rotateZ: <T extends DualQuaternionLike>(dualQuaternion: Dua
176
176
  * @returns The rotated dual quaternion.
177
177
  * @public
178
178
  */
179
- export declare const rotateByQuaternionAppend: <T extends DualQuaternionLike>(dualQuaternion: DualQuaternionLike, quaternion: QuaternionLike, out: T) => T;
179
+ export declare const rotateByQuaternionAppend: <T extends DualQuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, quaternion: Readonly<QuaternionLike>, out: T) => T;
180
180
  /**
181
181
  * Rotate a dual quaternion by a quaternion (using the quaternion as the multiplier).
182
182
  * @param quaternion - The quaternion to rotate by.
@@ -185,7 +185,7 @@ export declare const rotateByQuaternionAppend: <T extends DualQuaternionLike>(du
185
185
  * @returns The rotated dual quaternion.
186
186
  * @public
187
187
  */
188
- export declare const rotateByQuaternionPrepend: <T extends DualQuaternionLike>(quaternion: QuaternionLike, dualQuaternion: DualQuaternionLike, out: T) => T;
188
+ export declare const rotateByQuaternionPrepend: <T extends DualQuaternionLike>(quaternion: Readonly<QuaternionLike>, dualQuaternion: Readonly<DualQuaternionLike>, out: T) => T;
189
189
  /**
190
190
  * Rotate a dual quaternion around an axis.
191
191
  * @param dualQuaternion - The dual quaternion.
@@ -195,7 +195,7 @@ export declare const rotateByQuaternionPrepend: <T extends DualQuaternionLike>(q
195
195
  * @returns A normalized dual quaternion.
196
196
  * @public
197
197
  */
198
- export declare const rotateAroundAxis: <T extends DualQuaternionLike>(dualQuaternion: DualQuaternionLike, axis: Vector3Like, radians: number, out: T) => T;
198
+ export declare const rotateAroundAxis: <T extends DualQuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, axis: Readonly<Vector3Like>, radians: number, out: T) => T;
199
199
  /**
200
200
  * Add two dual quaternions.
201
201
  * @param a - The augend.
@@ -204,7 +204,7 @@ export declare const rotateAroundAxis: <T extends DualQuaternionLike>(dualQuater
204
204
  * @returns The sum.
205
205
  * @public
206
206
  */
207
- export declare const add: <T extends DualQuaternionLike>(a: DualQuaternionLike, b: DualQuaternionLike, out: T) => T;
207
+ export declare const add: <T extends DualQuaternionLike>(a: Readonly<DualQuaternionLike>, b: Readonly<DualQuaternionLike>, out: T) => T;
208
208
  /**
209
209
  * Multiply two dual quaternions.
210
210
  * @param a - The multiplier.
@@ -213,7 +213,7 @@ export declare const add: <T extends DualQuaternionLike>(a: DualQuaternionLike,
213
213
  * @returns The product.
214
214
  * @public
215
215
  */
216
- export declare const multiply: <T extends DualQuaternionLike>(a: DualQuaternionLike, b: DualQuaternionLike, out: T) => T;
216
+ export declare const multiply: <T extends DualQuaternionLike>(a: Readonly<DualQuaternionLike>, b: Readonly<DualQuaternionLike>, out: T) => T;
217
217
  /**
218
218
  * Multiply a dual quaternion by a scalar.
219
219
  * @param dualQuaternion - The multiplicand (dual quaternion).
@@ -222,7 +222,7 @@ export declare const multiply: <T extends DualQuaternionLike>(a: DualQuaternionL
222
222
  * @returns The product.
223
223
  * @public
224
224
  */
225
- export declare const scale: <T extends DualQuaternionLike>(dualQuaternion: DualQuaternionLike, scalar: number, out: T) => T;
225
+ export declare const scale: <T extends DualQuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, scalar: number, out: T) => T;
226
226
  /**
227
227
  * Calculate the dot product of two dual quaternions.
228
228
  * @param a - The multiplier.
@@ -231,7 +231,7 @@ export declare const scale: <T extends DualQuaternionLike>(dualQuaternion: DualQ
231
231
  * @see {@link https://en.wikipedia.org/wiki/Dot_product | Dot product}
232
232
  * @public
233
233
  */
234
- export declare const dot: (a: DualQuaternionLike, b: DualQuaternionLike) => number;
234
+ export declare const dot: (a: Readonly<DualQuaternionLike>, b: Readonly<DualQuaternionLike>) => number;
235
235
  /**
236
236
  * Perform a linear interpolation between two dual quaternions.
237
237
  * @param a - The first dual quaternion.
@@ -241,21 +241,21 @@ export declare const dot: (a: DualQuaternionLike, b: DualQuaternionLike) => numb
241
241
  * @returns The interpolated value.
242
242
  * @public
243
243
  */
244
- export declare const lerp: <T extends DualQuaternionLike>(a: DualQuaternionLike, b: DualQuaternionLike, t: number, out: T) => T;
244
+ export declare const lerp: <T extends DualQuaternionLike>(a: Readonly<DualQuaternionLike>, b: Readonly<DualQuaternionLike>, t: number, out: T) => T;
245
245
  /**
246
246
  * Calculate the magnitude (length) of a dual quaternion.
247
247
  * @param dualQuaternion - The dual quaternion.
248
248
  * @returns The magnitude.
249
249
  * @public
250
250
  */
251
- export declare const getMagnitude: (dualQuaternion: DualQuaternionLike) => number;
251
+ export declare const getMagnitude: (dualQuaternion: Readonly<DualQuaternionLike>) => number;
252
252
  /**
253
253
  * Calculate the squared magnitude (length) of a dual quaternion.
254
254
  * @param dualQuaternion - The dual quaternion.
255
255
  * @returns The squared magnitude.
256
256
  * @public
257
257
  */
258
- export declare const getSquaredMagnitude: (dualQuaternion: DualQuaternionLike) => number;
258
+ export declare const getSquaredMagnitude: (dualQuaternion: Readonly<DualQuaternionLike>) => number;
259
259
  /**
260
260
  * Calculate the inverse of a dual quaternion. If the dual quaternion is normalized, the conjugate is equivalent and faster to calculate.
261
261
  * @param dualQuaternion - The dual quaternion.
@@ -263,7 +263,7 @@ export declare const getSquaredMagnitude: (dualQuaternion: DualQuaternionLike) =
263
263
  * @returns The inverse.
264
264
  * @public
265
265
  */
266
- export declare const invert: <T extends DualQuaternionLike>(dualQuaternion: DualQuaternionLike, out: T) => T;
266
+ export declare const invert: <T extends DualQuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, out: T) => T;
267
267
  /**
268
268
  * Calculate the conjugate of a dual quaternion. If the dual quaternion is normalized, this is equivalent to its inverse and faster to calculate.
269
269
  * @param dualQuaternion - The dual quaternion.
@@ -271,7 +271,7 @@ export declare const invert: <T extends DualQuaternionLike>(dualQuaternion: Dual
271
271
  * @returns The conjugate.
272
272
  * @public
273
273
  */
274
- export declare const conjugate: <T extends DualQuaternionLike>(dualQuaternion: DualQuaternionLike, out: T) => T;
274
+ export declare const conjugate: <T extends DualQuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, out: T) => T;
275
275
  /**
276
276
  * Normalize a dual quaternion.
277
277
  * @param dualQuaternion - The dual quaternion.
@@ -279,7 +279,7 @@ export declare const conjugate: <T extends DualQuaternionLike>(dualQuaternion: D
279
279
  * @returns The normalized dual quaternion.
280
280
  * @public
281
281
  */
282
- export declare const normalize: <T extends DualQuaternionLike>(dualQuaternion: DualQuaternionLike, out: T) => T;
282
+ export declare const normalize: <T extends DualQuaternionLike>(dualQuaternion: Readonly<DualQuaternionLike>, out: T) => T;
283
283
  /**
284
284
  * Determine whether or not two dual quaternions are exactly equivalent.
285
285
  * @param a - The first dual quaternion.
@@ -287,7 +287,7 @@ export declare const normalize: <T extends DualQuaternionLike>(dualQuaternion: D
287
287
  * @returns Whether or not the dual quaternions are equivalent.
288
288
  * @public
289
289
  */
290
- export declare const exactEquals: (a: DualQuaternionLike, b: DualQuaternionLike) => boolean;
290
+ export declare const exactEquals: (a: Readonly<DualQuaternionLike>, b: Readonly<DualQuaternionLike>) => boolean;
291
291
  /**
292
292
  * Determine whether or not two dual quaternions are roughly equivalent.
293
293
  * @param a - The first dual quaternion.
@@ -295,170 +295,199 @@ export declare const exactEquals: (a: DualQuaternionLike, b: DualQuaternionLike)
295
295
  * @returns Whether or not the dual quaternions are equivalent.
296
296
  * @public
297
297
  */
298
- export declare const equals: (a: DualQuaternionLike, b: DualQuaternionLike) => boolean;
298
+ export declare const equals: (a: Readonly<DualQuaternionLike>, b: Readonly<DualQuaternionLike>) => boolean;
299
299
  /**
300
300
  * A complex number that is commonly used to describe transformations.
301
301
  * @see {@link https://en.wikipedia.org/wiki/Dual_quaternion | Dual quaternion}
302
302
  * @public
303
303
  */
304
304
  export default class DualQuaternion extends Float32Array implements DualQuaternionLike {
305
+ /** The first real component of this dual quaternion. */
306
+ 0: number;
307
+ /** The second real component of this dual quaternion. */
308
+ 1: number;
309
+ /** The third real component of this dual quaternion. */
310
+ 2: number;
311
+ /** The fourth real component of this dual quaternion. */
312
+ 3: number;
313
+ /** The first dual component of this dual quaternion. */
314
+ 4: number;
315
+ /** The second dual component of this dual quaternion. */
316
+ 5: number;
317
+ /** The third dual component of this dual quaternion. */
318
+ 6: number;
319
+ /** The fourth dual component of this dual quaternion. */
320
+ 7: number;
321
+ /** Get the magnitude (length) of this dual quaternion. */
322
+ get magnitude(): number;
323
+ /** Get the squared magnitude (length) of this dual quaternion. */
324
+ get squaredMagnitude(): number;
305
325
  /**
306
- * Create a dual quaternion with the given values.
307
- * @param x1 - The first real component.
308
- * @param y1 - The second real component.
309
- * @param z1 - The third real component.
310
- * @param w1 - The fourth real component.
311
- * @param x2 - The first dual component.
312
- * @param y2 - The second dual component.
313
- * @param z2 - The third dual component.
314
- * @param w2 - The fourth dual component.
315
- * @returns A new dual quaternion.
326
+ * Create an identity dual quaternion.
327
+ * @see {@link https://en.wikipedia.org/wiki/Dual_quaternion | Dual quaternion}
316
328
  */
317
- static fromValues(x1: number, y1: number, z1: number, w1: number, x2: number, y2: number, z2: number, w2: number): DualQuaternion;
329
+ constructor();
318
330
  /**
319
- * Create a dual quaternion from the given rotation and translation.
320
- * @param q - The rotation quaternion.
321
- * @param t - The translation vector.
331
+ * Create a dual quaternion from the given four-by-four matrix.
332
+ * @param matrix - The matrix.
322
333
  * @returns The dual quaternion.
323
334
  */
324
- static fromRotationTranslation(q: QuaternionLike, t: Vector3Like): DualQuaternion;
335
+ static fromMatrix4(matrix: Readonly<Matrix4Like>): DualQuaternion;
325
336
  /**
326
- * Create a dual quaternion from the given translation.
327
- * @param t - The translation vector.
337
+ * Create a dual quaternion from the given rotation.
338
+ * @param q - The rotation quaternion.
328
339
  * @returns The dual quaternion.
329
340
  */
330
- static fromTranslation(t: Vector3Like): DualQuaternion;
341
+ static fromRotation(q: Readonly<QuaternionLike>): DualQuaternion;
331
342
  /**
332
- * Create a dual quaternion from the given rotation.
343
+ * Create a dual quaternion from the given rotation and translation.
333
344
  * @param q - The rotation quaternion.
345
+ * @param t - The translation vector.
334
346
  * @returns The dual quaternion.
335
347
  */
336
- static fromRotation(q: QuaternionLike): DualQuaternion;
348
+ static fromRotationTranslation(q: Readonly<QuaternionLike>, t: Readonly<Vector3Like>): DualQuaternion;
337
349
  /**
338
- * Create a dual quaternion from the given four-by-four matrix.
339
- * @param matrix - The matrix.
350
+ * Create a dual quaternion from the given translation.
351
+ * @param t - The translation vector.
340
352
  * @returns The dual quaternion.
341
353
  */
342
- static fromMatrix4(matrix: Matrix4Like): DualQuaternion;
354
+ static fromTranslation(t: Readonly<Vector3Like>): DualQuaternion;
343
355
  /**
344
- * Create an identity dual quaternion.
345
- * @see {@link https://en.wikipedia.org/wiki/Dual_quaternion | Dual quaternion}
356
+ * Create a dual quaternion with the given values.
357
+ * @param x1 - The first real component.
358
+ * @param y1 - The second real component.
359
+ * @param z1 - The third real component.
360
+ * @param w1 - The fourth real component.
361
+ * @param x2 - The first dual component.
362
+ * @param y2 - The second dual component.
363
+ * @param z2 - The third dual component.
364
+ * @param w2 - The fourth dual component.
365
+ * @returns A new dual quaternion.
346
366
  */
347
- constructor();
348
- /** The first real component of this dual quaternion. */
349
- 0: number;
350
- /** The second real component of this dual quaternion. */
351
- 1: number;
352
- /** The third real component of this dual quaternion. */
353
- 2: number;
354
- /** The fourth real component of this dual quaternion. */
355
- 3: number;
356
- /** The first dual component of this dual quaternion. */
357
- 4: number;
358
- /** The second dual component of this dual quaternion. */
359
- 5: number;
360
- /** The third dual component of this dual quaternion. */
361
- 6: number;
362
- /** The fourth dual component of this dual quaternion. */
363
- 7: number;
367
+ static fromValues(x1: number, y1: number, z1: number, w1: number, x2: number, y2: number, z2: number, w2: number): DualQuaternion;
364
368
  /**
365
- * Copy the values from another dual quaternion to this one.
366
- * @param dualQuaternion - The dual quaternion to copy.
367
- * @returns This dual quaternion.
369
+ * Add another dual quaternion to this one.
370
+ * @param dq - The other dual quaternion.
371
+ * @returns The sum.
368
372
  */
369
- copy(dualQuaternion: DualQuaternionLike): this;
373
+ add(dq: Readonly<DualQuaternionLike>): DualQuaternion;
370
374
  /**
371
375
  * Copy the values from this dual quaternion to another one.
372
376
  * @returns The copy.
373
377
  */
374
378
  clone(): DualQuaternion;
375
379
  /**
376
- * Set this dual quaternion to the identity dual quaternion.
377
- * @returns The identity dual quaternion.
380
+ * Calculate the conjugate of this dual quaternion. If this dual quaternion is normalized, this is equivalent to its inverse and faster to calculate.
381
+ * @returns The conjugate.
378
382
  */
379
- identity(): this;
383
+ conjugate(): DualQuaternion;
380
384
  /**
381
- * Get the real part of this dual quaternion.
382
- * @returns The real part.
385
+ * Copy the values from another dual quaternion to this one.
386
+ * @param dualQuaternion - The dual quaternion to copy.
387
+ * @returns This dual quaternion.
383
388
  */
384
- getReal(): Quaternion;
389
+ copy(dualQuaternion: Readonly<DualQuaternionLike>): this;
385
390
  /**
386
- * Set the real part of this dual quaternion.
387
- * @param q - The quaternion.
391
+ * Calculate the dot product of this and another dual quaternion.
392
+ * @param dq - The other dual quaternion.
393
+ * @returns The dot product.
394
+ * @see {@link https://en.wikipedia.org/wiki/Dot_product | Dot product}
395
+ */
396
+ dot(dq: Readonly<DualQuaternionLike>): number;
397
+ /**
398
+ * Determine whether or not this dual quaternion is roughly equivalent to another.
399
+ * @param dq - The other dual quaternion.
400
+ * @returns Whether or not the dual quaternions are equivalent.
401
+ */
402
+ equals(dq: Readonly<DualQuaternionLike>): boolean;
403
+ /**
404
+ * Determine whether or not this dual quaternion is exactly equivalent to another.
405
+ * @param dq - The other dual quaternion.
406
+ * @returns Whether or not the dual quaternions are equivalent.
388
407
  */
389
- setReal(q: QuaternionLike): void;
408
+ exactEquals(dq: Readonly<DualQuaternionLike>): boolean;
390
409
  /**
391
410
  * Get the dual part of this dual quaternion.
392
411
  * @returns The dual part.
393
412
  */
394
413
  getDual(): Quaternion;
395
414
  /**
396
- * Set the real part of this dual quaternion.
397
- * @param q - The quaternion.
415
+ * Get the real part of this dual quaternion.
416
+ * @returns The real part.
398
417
  */
399
- setDual(q: QuaternionLike): void;
418
+ getReal(): Quaternion;
400
419
  /**
401
420
  * Get the translation of this normalized dual quaternion.
402
421
  * @returns The translation.
403
422
  */
404
423
  getTranslation(): Vector3;
405
424
  /**
406
- * Translate this dual quaternion by the given vector.
407
- * @param v - The vector.
408
- * @returns The translated dual quaternion.
425
+ * Set this dual quaternion to the identity dual quaternion.
426
+ * @returns The identity dual quaternion.
409
427
  */
410
- translate(v: Vector3Like): DualQuaternion;
428
+ identity(): this;
411
429
  /**
412
- * Rotate this dual quaternion around the X-axis.
413
- * @param r - The angle to rotate by in radians.
414
- * @returns The rotated dual quaternion.
430
+ * Calculate the inverse of this dual quaternion. If this dual quaternion is normalized, the conjugate is equivalent and faster to calculate.
431
+ * @returns The inverse.
415
432
  */
416
- rotateX(r: number): DualQuaternion;
433
+ invert(): DualQuaternion;
417
434
  /**
418
- * Rotate this dual quaternion around the Y-axis.
419
- * @param r - The angle to rotate by in radians.
420
- * @returns The rotated dual quaternion.
435
+ * Perform a linear interpolation between this and another dual quaternion.
436
+ * @param dq - The other dual quaternion.
437
+ * @param t - The interpolation amount in `[0,1]`.
438
+ * @returns The interpolated value.
421
439
  */
422
- rotateY(r: number): DualQuaternion;
440
+ lerp(dq: Readonly<DualQuaternionLike>, t: number): DualQuaternion;
423
441
  /**
424
- * Rotate this dual quaternion around the Z-axis.
425
- * @param r - The angle to rotate by in radians.
426
- * @returns The rotated dual quaternion.
442
+ * Multiply this dual quaternion by another one.
443
+ * @param dq - The other dual quaternion.
444
+ * @returns The product.
427
445
  */
428
- rotateZ(r: number): DualQuaternion;
446
+ multiply(dq: Readonly<DualQuaternionLike>): DualQuaternion;
447
+ /**
448
+ * Normalize this dual quaternion.
449
+ * @returns The normalized dual quaternion.
450
+ */
451
+ normalize(): DualQuaternion;
452
+ /**
453
+ * Rotate this dual quaternion around an axis.
454
+ * @param axis - The axis.
455
+ * @param r - The angle of the rotation in radians.
456
+ * @returns A normalized dual quaternion.
457
+ */
458
+ rotateAroundAxis(axis: Readonly<Vector3Like>, r: number): DualQuaternion;
429
459
  /**
430
460
  * Rotate this dual quaternion by a quaternion (using the quaternion as the multiplicand).
431
461
  * @param q - The quaternion.
432
462
  * @returns The rotated dual quaternion.
433
463
  * @see {@link https://en.wikipedia.org/wiki/Quaternion | Quaternion}
434
464
  */
435
- rotateByQuaternionAppend(q: QuaternionLike): DualQuaternion;
465
+ rotateByQuaternionAppend(q: Readonly<QuaternionLike>): DualQuaternion;
436
466
  /**
437
467
  * Rotate this dual quaternion by a quaternion (using the quaternion as the multiplier).
438
468
  * @param q - The quaternion.
439
469
  * @returns The rotated dual quaternion.
440
470
  * @see {@link https://en.wikipedia.org/wiki/Quaternion | Quaternion}
441
471
  */
442
- rotateByQuaternionPrepend(q: QuaternionLike): DualQuaternion;
472
+ rotateByQuaternionPrepend(q: Readonly<QuaternionLike>): DualQuaternion;
443
473
  /**
444
- * Rotate this dual quaternion around an axis.
445
- * @param axis - The axis.
446
- * @param r - The angle of the rotation in radians.
447
- * @returns A normalized dual quaternion.
474
+ * Rotate this dual quaternion around the X-axis.
475
+ * @param r - The angle to rotate by in radians.
476
+ * @returns The rotated dual quaternion.
448
477
  */
449
- rotateAroundAxis(axis: Vector3Like, r: number): DualQuaternion;
478
+ rotateX(r: number): DualQuaternion;
450
479
  /**
451
- * Add another dual quaternion to this one.
452
- * @param dq - The other dual quaternion.
453
- * @returns The sum.
480
+ * Rotate this dual quaternion around the Y-axis.
481
+ * @param r - The angle to rotate by in radians.
482
+ * @returns The rotated dual quaternion.
454
483
  */
455
- add(dq: DualQuaternionLike): DualQuaternion;
484
+ rotateY(r: number): DualQuaternion;
456
485
  /**
457
- * Multiply this dual quaternion by another one.
458
- * @param dq - The other dual quaternion.
459
- * @returns The product.
486
+ * Rotate this dual quaternion around the Z-axis.
487
+ * @param r - The angle to rotate by in radians.
488
+ * @returns The rotated dual quaternion.
460
489
  */
461
- multiply(dq: DualQuaternionLike): DualQuaternion;
490
+ rotateZ(r: number): DualQuaternion;
462
491
  /**
463
492
  * Multiply this dual quaternion by a scalar.
464
493
  * @param s - The scalar.
@@ -466,49 +495,20 @@ export default class DualQuaternion extends Float32Array implements DualQuaterni
466
495
  */
467
496
  scale(s: number): DualQuaternion;
468
497
  /**
469
- * Calculate the dot product of this and another dual quaternion.
470
- * @param dq - The other dual quaternion.
471
- * @returns The dot product.
472
- * @see {@link https://en.wikipedia.org/wiki/Dot_product | Dot product}
473
- */
474
- dot(dq: DualQuaternionLike): number;
475
- /**
476
- * Perform a linear interpolation between this and another dual quaternion.
477
- * @param dq - The other dual quaternion.
478
- * @param t - The interpolation amount in `[0,1]`.
479
- * @returns The interpolated value.
480
- */
481
- lerp(dq: DualQuaternionLike, t: number): DualQuaternion;
482
- /**
483
- * Calculate the inverse of this dual quaternion. If this dual quaternion is normalized, the conjugate is equivalent and faster to calculate.
484
- * @returns The inverse.
485
- */
486
- invert(): DualQuaternion;
487
- /**
488
- * Calculate the conjugate of this dual quaternion. If this dual quaternion is normalized, this is equivalent to its inverse and faster to calculate.
489
- * @returns The conjugate.
490
- */
491
- conjugate(): DualQuaternion;
492
- /** Get the magnitude (length) of this dual quaternion. */
493
- get magnitude(): number;
494
- /** Get the squared magnitude (length) of this dual quaternion. */
495
- get squaredMagnitude(): number;
496
- /**
497
- * Normalize this dual quaternion.
498
- * @returns The normalized dual quaternion.
498
+ * Set the real part of this dual quaternion.
499
+ * @param q - The quaternion.
499
500
  */
500
- normalize(): DualQuaternion;
501
+ setDual(q: Readonly<QuaternionLike>): void;
501
502
  /**
502
- * Determine whether or not this dual quaternion is exactly equivalent to another.
503
- * @param dq - The other dual quaternion.
504
- * @returns Whether or not the dual quaternions are equivalent.
503
+ * Set the real part of this dual quaternion.
504
+ * @param q - The quaternion.
505
505
  */
506
- exactEquals(dq: DualQuaternionLike): boolean;
506
+ setReal(q: Readonly<QuaternionLike>): void;
507
507
  /**
508
- * Determine whether or not this dual quaternion is roughly equivalent to another.
509
- * @param dq - The other dual quaternion.
510
- * @returns Whether or not the dual quaternions are equivalent.
508
+ * Translate this dual quaternion by the given vector.
509
+ * @param v - The vector.
510
+ * @returns The translated dual quaternion.
511
511
  */
512
- equals(dq: DualQuaternionLike): boolean;
512
+ translate(v: Readonly<Vector3Like>): DualQuaternion;
513
513
  }
514
514
  //# sourceMappingURL=DualQuaternion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DualQuaternion.d.ts","sourceRoot":"","sources":["../../src/linalg/DualQuaternion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DualQuaternion.d.ts","sourceRoot":"","sources":["../../src/linalg/DualQuaternion.ts"],"names":[],"mappings":"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"}