@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.
Files changed (85) hide show
  1. package/dist/algorithms/hypergeometricPmf.d.ts.map +1 -1
  2. package/dist/algorithms/hypergeometricPmf.js +5 -1
  3. package/dist/algorithms/hypergeometricPmf.js.map +1 -1
  4. package/dist/algorithms/primeFactorization.d.ts +1 -1
  5. package/dist/algorithms/primeFactorization.d.ts.map +1 -1
  6. package/dist/index.d.ts +0 -3
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +0 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/linalg/DualQuaternion.d.ts +46 -46
  11. package/dist/linalg/DualQuaternion.d.ts.map +1 -1
  12. package/dist/linalg/DualQuaternion.js.map +1 -1
  13. package/dist/linalg/Matrix.d.ts +7 -7
  14. package/dist/linalg/Matrix.d.ts.map +1 -1
  15. package/dist/linalg/Matrix2.d.ts +25 -25
  16. package/dist/linalg/Matrix2.d.ts.map +1 -1
  17. package/dist/linalg/Matrix2.js.map +1 -1
  18. package/dist/linalg/Matrix3.d.ts +35 -35
  19. package/dist/linalg/Matrix3.d.ts.map +1 -1
  20. package/dist/linalg/Matrix3.js.map +1 -1
  21. package/dist/linalg/Matrix4.d.ts +64 -59
  22. package/dist/linalg/Matrix4.d.ts.map +1 -1
  23. package/dist/linalg/Matrix4.js +17 -11
  24. package/dist/linalg/Matrix4.js.map +1 -1
  25. package/dist/linalg/Quaternion.d.ts +50 -48
  26. package/dist/linalg/Quaternion.d.ts.map +1 -1
  27. package/dist/linalg/Quaternion.js +11 -12
  28. package/dist/linalg/Quaternion.js.map +1 -1
  29. package/dist/linalg/SlowMatrix.d.ts +8 -8
  30. package/dist/linalg/SlowMatrix.d.ts.map +1 -1
  31. package/dist/linalg/SlowMatrix.js.map +1 -1
  32. package/dist/linalg/SlowSquareMatrix.d.ts +1 -1
  33. package/dist/linalg/SlowSquareMatrix.d.ts.map +1 -1
  34. package/dist/linalg/SlowSquareMatrix.js.map +1 -1
  35. package/dist/linalg/SlowVector.d.ts +15 -15
  36. package/dist/linalg/SlowVector.d.ts.map +1 -1
  37. package/dist/linalg/SlowVector.js.map +1 -1
  38. package/dist/linalg/Vector.d.ts +14 -14
  39. package/dist/linalg/Vector.d.ts.map +1 -1
  40. package/dist/linalg/Vector2.d.ts +51 -51
  41. package/dist/linalg/Vector2.d.ts.map +1 -1
  42. package/dist/linalg/Vector2.js.map +1 -1
  43. package/dist/linalg/Vector3.d.ts +60 -60
  44. package/dist/linalg/Vector3.d.ts.map +1 -1
  45. package/dist/linalg/Vector3.js.map +1 -1
  46. package/dist/linalg/Vector4.d.ts +45 -45
  47. package/dist/linalg/Vector4.d.ts.map +1 -1
  48. package/dist/linalg/Vector4.js.map +1 -1
  49. package/dist/utility/BigNumber.d.ts +5 -5
  50. package/dist/utility/BigNumber.d.ts.map +1 -1
  51. package/dist/utility/BigNumber.js +13 -6
  52. package/dist/utility/BigNumber.js.map +1 -1
  53. package/package.json +36 -36
  54. package/src/algorithms/hypergeometricPmf.ts +2 -0
  55. package/src/algorithms/primeFactorization.ts +1 -1
  56. package/src/index.ts +0 -5
  57. package/src/linalg/DualQuaternion.ts +69 -58
  58. package/src/linalg/Matrix.ts +10 -7
  59. package/src/linalg/Matrix2.ts +43 -32
  60. package/src/linalg/Matrix3.ts +53 -41
  61. package/src/linalg/Matrix4.ts +127 -94
  62. package/src/linalg/Quaternion.ts +90 -75
  63. package/src/linalg/SlowMatrix.ts +12 -9
  64. package/src/linalg/SlowSquareMatrix.ts +1 -1
  65. package/src/linalg/SlowVector.ts +16 -16
  66. package/src/linalg/Vector.ts +14 -14
  67. package/src/linalg/Vector2.ts +104 -76
  68. package/src/linalg/Vector3.ts +125 -92
  69. package/src/linalg/Vector4.ts +93 -62
  70. package/src/utility/BigNumber.ts +22 -11
  71. package/dist/types/AxisAngle.d.ts +0 -12
  72. package/dist/types/AxisAngle.d.ts.map +0 -1
  73. package/dist/types/AxisAngle.js +0 -2
  74. package/dist/types/AxisAngle.js.map +0 -1
  75. package/dist/types/FieldOfView.d.ts +0 -15
  76. package/dist/types/FieldOfView.d.ts.map +0 -1
  77. package/dist/types/FieldOfView.js +0 -2
  78. package/dist/types/FieldOfView.js.map +0 -1
  79. package/dist/utility/createAxisAngleLike.d.ts +0 -10
  80. package/dist/utility/createAxisAngleLike.d.ts.map +0 -1
  81. package/dist/utility/createAxisAngleLike.js +0 -10
  82. package/dist/utility/createAxisAngleLike.js.map +0 -1
  83. package/src/types/AxisAngle.ts +0 -13
  84. package/src/types/FieldOfView.ts +0 -17
  85. package/src/utility/createAxisAngleLike.ts +0 -14
@@ -1,5 +1,3 @@
1
- import type AxisAngle from "../types/AxisAngle.js";
2
- import createAxisAngleLike from "../utility/createAxisAngleLike.js";
3
1
  import { type Matrix3Like } from "./Matrix3.js";
4
2
  import Vector3, { type Vector3Like } from "./Vector3.js";
5
3
  /**
@@ -42,7 +40,7 @@ export declare const fromValues: <T extends QuaternionLike>(x: number, y: number
42
40
  * @returns The sum of the quaternions.
43
41
  * @public
44
42
  */
45
- export declare const add: <T extends QuaternionLike>(a: QuaternionLike, b: QuaternionLike, out: T) => T;
43
+ export declare const add: <T extends QuaternionLike>(a: Readonly<QuaternionLike>, b: Readonly<QuaternionLike>, out: T) => T;
46
44
  /**
47
45
  * Copy the values from one quaternion to another.
48
46
  * @param quaternion - The quaternion to copy.
@@ -50,7 +48,7 @@ export declare const add: <T extends QuaternionLike>(a: QuaternionLike, b: Quate
50
48
  * @returns The copy.
51
49
  * @public
52
50
  */
53
- export declare const copy: <T extends QuaternionLike>(quaternion: QuaternionLike, out: T) => T;
51
+ export declare const copy: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, out: T) => T;
54
52
  /**
55
53
  * Calculate the dot product of two quaternions.
56
54
  * @param a - The first quaternion
@@ -58,7 +56,7 @@ export declare const copy: <T extends QuaternionLike>(quaternion: QuaternionLike
58
56
  * @returns The dot product.
59
57
  * @public
60
58
  */
61
- export declare const dot: (a: QuaternionLike, b: QuaternionLike) => number;
59
+ export declare const dot: (a: Readonly<QuaternionLike>, b: Readonly<QuaternionLike>) => number;
62
60
  /**
63
61
  * Determine whether or not two unit quaternions point in roughly the same direction.
64
62
  * @param a - The first unit quaternion.
@@ -66,7 +64,7 @@ export declare const dot: (a: QuaternionLike, b: QuaternionLike) => number;
66
64
  * @returns Whether or not the unit quaternions point in the same direction.
67
65
  * @public
68
66
  */
69
- export declare const equals: (a: QuaternionLike, b: QuaternionLike) => boolean;
67
+ export declare const equals: (a: Readonly<QuaternionLike>, b: Readonly<QuaternionLike>) => boolean;
70
68
  /**
71
69
  * Determine whether or not two quaternions are exactly equivalent.
72
70
  * @param a - The first quaternion.
@@ -74,21 +72,21 @@ export declare const equals: (a: QuaternionLike, b: QuaternionLike) => boolean;
74
72
  * @returns Whether or not the quaternions are equivalent.
75
73
  * @public
76
74
  */
77
- export declare const exactEquals: (a: QuaternionLike, b: QuaternionLike) => boolean;
75
+ export declare const exactEquals: (a: Readonly<QuaternionLike>, b: Readonly<QuaternionLike>) => boolean;
78
76
  /**
79
77
  * Calculate the magnitude (length) of a quaternion.
80
78
  * @param quaternion - The quaternion.
81
79
  * @returns The magnitude.
82
80
  * @public
83
81
  */
84
- export declare const getMagnitude: (quaternion: QuaternionLike) => number;
82
+ export declare const getMagnitude: (quaternion: Readonly<QuaternionLike>) => number;
85
83
  /**
86
84
  * Calculate the squared magnitude (length) of a quaternion.
87
85
  * @param quaternion - The quaternion.
88
86
  * @returns The squared magnitude.
89
87
  * @public
90
88
  */
91
- export declare const getSquaredMagnitude: (quaternion: QuaternionLike) => number;
89
+ export declare const getSquaredMagnitude: (quaternion: Readonly<QuaternionLike>) => number;
92
90
  /**
93
91
  * Perform a linear interpolation between two quaternions.
94
92
  * @param a - The first quaternion.
@@ -99,7 +97,7 @@ export declare const getSquaredMagnitude: (quaternion: QuaternionLike) => number
99
97
  * @see {@link https://en.wikipedia.org/wiki/Linear_interpolation | Linear interpolation}
100
98
  * @public
101
99
  */
102
- export declare const lerp: <T extends QuaternionLike>(a: QuaternionLike, b: QuaternionLike, t: number, out: T) => T;
100
+ export declare const lerp: <T extends QuaternionLike>(a: Readonly<QuaternionLike>, b: Readonly<QuaternionLike>, t: number, out: T) => T;
103
101
  /**
104
102
  * Normalize a quaternion.
105
103
  * @param quaternion - The quaternion.
@@ -107,7 +105,7 @@ export declare const lerp: <T extends QuaternionLike>(a: QuaternionLike, b: Quat
107
105
  * @returns The normalized quaternion.
108
106
  * @public
109
107
  */
110
- export declare const normalize: <T extends QuaternionLike>(quaternion: QuaternionLike, out: T) => T;
108
+ export declare const normalize: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, out: T) => T;
111
109
  /**
112
110
  * Scale a quaternion by a scalar.
113
111
  * @param quaternion - The multiplier.
@@ -116,7 +114,7 @@ export declare const normalize: <T extends QuaternionLike>(quaternion: Quaternio
116
114
  * @returns The product.
117
115
  * @public
118
116
  */
119
- export declare const scale: <T extends QuaternionLike>(quaternion: QuaternionLike, scalar: number, out: T) => T;
117
+ export declare const scale: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, scalar: number, out: T) => T;
120
118
  /**
121
119
  * Create a quaternion from a three-by-three rotation matrix.
122
120
  * @param matrix - The matrix.
@@ -126,7 +124,7 @@ export declare const scale: <T extends QuaternionLike>(quaternion: QuaternionLik
126
124
  * @see Ken Shoemake. Quaternion calculus and fast animation. SIGGRAPH Course Notes, 10:101-121, 1987.
127
125
  * @public
128
126
  */
129
- export declare const fromMatrix3: <T extends QuaternionLike>(matrix: Matrix3Like, out: T) => T;
127
+ export declare const fromMatrix3: <T extends QuaternionLike>(matrix: Readonly<Matrix3Like>, out: T) => T;
130
128
  /**
131
129
  * Create a quaternion from equivalent x-y'-z" (intrinsic) Tait-Bryan angles.
132
130
  * @param x - The X angle in degrees.
@@ -211,7 +209,7 @@ export declare const fromEuler: <T extends QuaternionLike>(z: number, y: number,
211
209
  * @returns The Tait-Bryan angles in degrees in roll (z), pitch (y'), yaw (x") order.
212
210
  * @public
213
211
  */
214
- export declare const toEuler: <T extends Vector3Like>(quaternion: QuaternionLike, out: T) => T;
212
+ export declare const toEuler: <T extends Vector3Like>(quaternion: Readonly<QuaternionLike>, out: T) => T;
215
213
  /**
216
214
  * Create a quaternion with values corresponding to the given orthonormal set of unit vectors.
217
215
  * @param view - The unit vector representing the viewing direction.
@@ -221,7 +219,7 @@ export declare const toEuler: <T extends Vector3Like>(quaternion: QuaternionLike
221
219
  * @returns The quaternion.
222
220
  * @public
223
221
  */
224
- export declare const fromAxes: <T extends QuaternionLike>(view: Vector3Like, right: Vector3Like, up: Vector3Like, out: T) => T;
222
+ export declare const fromAxes: <T extends QuaternionLike>(view: Readonly<Vector3Like>, right: Readonly<Vector3Like>, up: Readonly<Vector3Like>, out: T) => T;
225
223
  /**
226
224
  * Set a quaternion to the identity.
227
225
  * @param out - The quaternion to store the result in.
@@ -232,19 +230,20 @@ export declare const identity: <T extends QuaternionLike>(out: T) => T;
232
230
  /**
233
231
  * Calculate the axis and angle that represent a quaternion.
234
232
  * @param quaternion - The quaternion.
235
- * @param out - The axis and angle to store the result in.
233
+ * @param out - The axis to store the result in.
236
234
  * @returns The axis and angle.
237
235
  * @public
238
236
  */
239
- export declare const getAxisAngle: <T extends AxisAngle>(quaternion: QuaternionLike, out: T) => T;
237
+ export declare const getAxisAngle: <T extends Vector3Like>(quaternion: Readonly<QuaternionLike>, out: T) => [T, number];
240
238
  /**
241
239
  * Set the axis and angle that represent a quaternion.
242
- * @param axisAngle - The axis and angle.
240
+ * @param axis - The axis.
241
+ * @param angle - The angle.
243
242
  * @param out - The quaternion to store the result in.
244
243
  * @returns The quaternion.
245
244
  * @public
246
245
  */
247
- export declare const setAxisAngle: <T extends QuaternionLike>({ angle, axis }: AxisAngle, out: T) => T;
246
+ export declare const setAxisAngle: <T extends QuaternionLike>(axis: Readonly<Vector3Like>, angle: number, out: T) => T;
248
247
  /**
249
248
  * Get the angular distance between two unit quaternions.
250
249
  * @param a - The first unit quaternion.
@@ -252,7 +251,7 @@ export declare const setAxisAngle: <T extends QuaternionLike>({ angle, axis }: A
252
251
  * @returns The angular distance in radians.
253
252
  * @public
254
253
  */
255
- export declare const getAngle: (a: QuaternionLike, b: QuaternionLike) => number;
254
+ export declare const getAngle: (a: Readonly<QuaternionLike>, b: Readonly<QuaternionLike>) => number;
256
255
  /**
257
256
  * Multiply two quaternions.
258
257
  * @param a - The multiplier.
@@ -261,7 +260,7 @@ export declare const getAngle: (a: QuaternionLike, b: QuaternionLike) => number;
261
260
  * @returns The product.
262
261
  * @public
263
262
  */
264
- export declare const multiply: <T extends QuaternionLike>(a: QuaternionLike, b: QuaternionLike, out: T) => T;
263
+ export declare const multiply: <T extends QuaternionLike>(a: Readonly<QuaternionLike>, b: Readonly<QuaternionLike>, out: T) => T;
265
264
  /**
266
265
  * Rotate a quaternion by the given angle around the X-axis.
267
266
  * @param quaternion - The quaternion.
@@ -270,7 +269,7 @@ export declare const multiply: <T extends QuaternionLike>(a: QuaternionLike, b:
270
269
  * @returns The rotated quaternion.
271
270
  * @public
272
271
  */
273
- export declare const rotateX: <T extends QuaternionLike>(quaternion: QuaternionLike, radians: number, out: T) => T;
272
+ export declare const rotateX: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, radians: number, out: T) => T;
274
273
  /**
275
274
  * Rotate a quaternion by the given angle around the Y-axis.
276
275
  * @param quaternion - The quaternion.
@@ -279,7 +278,7 @@ export declare const rotateX: <T extends QuaternionLike>(quaternion: QuaternionL
279
278
  * @returns The rotated quaternion.
280
279
  * @public
281
280
  */
282
- export declare const rotateY: <T extends QuaternionLike>(quaternion: QuaternionLike, radians: number, out: T) => T;
281
+ export declare const rotateY: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, radians: number, out: T) => T;
283
282
  /**
284
283
  * Rotate a quaternion by the given angle around the Z-axis.
285
284
  * @param quaternion - The quaternion.
@@ -288,7 +287,7 @@ export declare const rotateY: <T extends QuaternionLike>(quaternion: QuaternionL
288
287
  * @returns The rotated quaternion.
289
288
  * @public
290
289
  */
291
- export declare const rotateZ: <T extends QuaternionLike>(quaternion: QuaternionLike, radians: number, out: T) => T;
290
+ export declare const rotateZ: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, radians: number, out: T) => T;
292
291
  /**
293
292
  * Calculate the fourth component of a unit quaternion from the first three, ignoring the existing fourth component.
294
293
  * @param quaternion - The unit quaternion.
@@ -296,7 +295,7 @@ export declare const rotateZ: <T extends QuaternionLike>(quaternion: QuaternionL
296
295
  * @returns The quaternion.
297
296
  * @public
298
297
  */
299
- export declare const calculateW: <T extends QuaternionLike>(quaternion: QuaternionLike, out: T) => T;
298
+ export declare const calculateW: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, out: T) => T;
300
299
  /**
301
300
  * Calculate the exponential of a unit quaternion.
302
301
  * @param quaternion - The unit quaternion.
@@ -304,7 +303,7 @@ export declare const calculateW: <T extends QuaternionLike>(quaternion: Quaterni
304
303
  * @returns The exponential.
305
304
  * @public
306
305
  */
307
- export declare const exp: <T extends QuaternionLike>(quaternion: QuaternionLike, out: T) => T;
306
+ export declare const exp: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, out: T) => T;
308
307
  /**
309
308
  * Calculate the natural logarithm of a unit quaternion.
310
309
  * @param quaternion - The unit quaternion.
@@ -312,7 +311,7 @@ export declare const exp: <T extends QuaternionLike>(quaternion: QuaternionLike,
312
311
  * @returns The natural logarithm.
313
312
  * @public
314
313
  */
315
- export declare const ln: <T extends QuaternionLike>(quaternion: QuaternionLike, out: T) => T;
314
+ export declare const ln: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, out: T) => T;
316
315
  /**
317
316
  * Calculate a scalar power of a unit quaternion.
318
317
  * @param quaternion - The unit quaternion.
@@ -321,7 +320,7 @@ export declare const ln: <T extends QuaternionLike>(quaternion: QuaternionLike,
321
320
  * @returns The scalar power.
322
321
  * @public
323
322
  */
324
- export declare const pow: <T extends QuaternionLike>(quaternion: QuaternionLike, scalar: number, out: T) => T;
323
+ export declare const pow: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, scalar: number, out: T) => T;
325
324
  /**
326
325
  * Perform a spherical linear interpolation between two quaternions.
327
326
  * @param a - The first quaternion.
@@ -332,7 +331,7 @@ export declare const pow: <T extends QuaternionLike>(quaternion: QuaternionLike,
332
331
  * @see {@link https://en.wikipedia.org/wiki/Slerp | Slerp}
333
332
  * @public
334
333
  */
335
- export declare const slerp: <T extends QuaternionLike>(a: QuaternionLike, b: QuaternionLike, t: number, out: T) => T;
334
+ export declare const slerp: <T extends QuaternionLike>(a: Readonly<QuaternionLike>, b: Readonly<QuaternionLike>, t: number, out: T) => T;
336
335
  /**
337
336
  * Set a quaternion to a random unit quaternion.
338
337
  * @param out - The quaternion to store the result in.
@@ -347,7 +346,7 @@ export declare const random: <T extends QuaternionLike>(out: T) => T;
347
346
  * @returns The inverse.
348
347
  * @public
349
348
  */
350
- export declare const invert: <T extends QuaternionLike>(quaternion: QuaternionLike, out: T) => T;
349
+ export declare const invert: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, out: T) => T;
351
350
  /**
352
351
  * Calculate the conjugate of a quaternion. If the quaternion is normalized, this is the same as the inverse but faster to calculate.
353
352
  * @param quaternion - The quaternion.
@@ -355,7 +354,7 @@ export declare const invert: <T extends QuaternionLike>(quaternion: QuaternionLi
355
354
  * @returns The conjugate.
356
355
  * @public
357
356
  */
358
- export declare const conjugate: <T extends QuaternionLike>(quaternion: QuaternionLike, out: T) => T;
357
+ export declare const conjugate: <T extends QuaternionLike>(quaternion: Readonly<QuaternionLike>, out: T) => T;
359
358
  /**
360
359
  * Perform a spherical linear interpolation with two control points between two quaternions.
361
360
  * @param a - The first quaternion.
@@ -368,7 +367,7 @@ export declare const conjugate: <T extends QuaternionLike>(quaternion: Quaternio
368
367
  * @see {@link https://en.wikipedia.org/wiki/Slerp | Slerp}
369
368
  * @public
370
369
  */
371
- export declare const sqlerp: <T extends QuaternionLike>(a: QuaternionLike, b: QuaternionLike, c: QuaternionLike, d: QuaternionLike, t: number, out: T) => T;
370
+ export declare const sqlerp: <T extends QuaternionLike>(a: Readonly<QuaternionLike>, b: Readonly<QuaternionLike>, c: Readonly<QuaternionLike>, d: Readonly<QuaternionLike>, t: number, out: T) => T;
372
371
  /**
373
372
  * Create a unit quaternion that represents the shortest rotation from one unit vector to another.
374
373
  * @param a - The first unit vector.
@@ -377,7 +376,7 @@ export declare const sqlerp: <T extends QuaternionLike>(a: QuaternionLike, b: Qu
377
376
  * @returns The unit quaternion.
378
377
  * @public
379
378
  */
380
- export declare const fromRotationTo: <T extends QuaternionLike>(a: Vector3Like, b: Vector3Like, out: T) => T;
379
+ export declare const fromRotationTo: <T extends QuaternionLike>(a: Readonly<Vector3Like>, b: Readonly<Vector3Like>, out: T) => T;
381
380
  /**
382
381
  * A complex number that is commonly used to describe rotations.
383
382
  * @see {@link https://en.wikipedia.org/wiki/Quaternion | Quaternion}
@@ -393,8 +392,11 @@ export default class Quaternion extends Float32Array implements QuaternionLike {
393
392
  /** The fourth component of this quaternion. */
394
393
  3: number;
395
394
  /** The axis and angle that represent this quaternion. */
396
- get axisAngle(): ReturnType<typeof createAxisAngleLike>;
397
- set axisAngle(value: AxisAngle);
395
+ get axisAngle(): readonly [Readonly<Vector3Like>, number];
396
+ set axisAngle([axis, angle]: readonly [
397
+ Readonly<Vector3Like>,
398
+ number
399
+ ]);
398
400
  /** Get the magnitude (length) of this quaternion. */
399
401
  get magnitude(): number;
400
402
  /** Get the squared magnitude (length) of this quaternion. */
@@ -411,7 +413,7 @@ export default class Quaternion extends Float32Array implements QuaternionLike {
411
413
  * @param up - The vector representing the local "up" direction.
412
414
  * @returns The quaternion.
413
415
  */
414
- static fromAxes(view: Vector3Like, right: Vector3Like, up: Vector3Like): Quaternion;
416
+ static fromAxes(view: Readonly<Vector3Like>, right: Readonly<Vector3Like>, up: Readonly<Vector3Like>): Quaternion;
415
417
  /**
416
418
  * Create a quaternion from equivalent z-y'-x" (intrinsic) Tait-Bryan angles.
417
419
  * @param z - The z (roll) angle.
@@ -427,14 +429,14 @@ export default class Quaternion extends Float32Array implements QuaternionLike {
427
429
  * @returns The quaternion.
428
430
  * @see {@link https://en.wikipedia.org/wiki/Rotation_matrix | Rotation matrix}
429
431
  */
430
- static fromMatrix3(matrix: Matrix3Like): Quaternion;
432
+ static fromMatrix3(matrix: Readonly<Matrix3Like>): Quaternion;
431
433
  /**
432
434
  * Create a unit quaternion that represents the shortest rotation from one unit vector to another.
433
435
  * @param a - The first unit vector.
434
436
  * @param b - The second unit vector.
435
437
  * @returns The unit quaternion.
436
438
  */
437
- static fromRotationTo(a: Vector3Like, b: Vector3Like): Quaternion;
439
+ static fromRotationTo(a: Readonly<Vector3Like>, b: Readonly<Vector3Like>): Quaternion;
438
440
  /**
439
441
  * Create a quaternion with the given values.
440
442
  * @param x - The first component.
@@ -449,7 +451,7 @@ export default class Quaternion extends Float32Array implements QuaternionLike {
449
451
  * @param quaternion - The other quaternion.
450
452
  * @returns The sum of the quaternions.
451
453
  */
452
- add(quaternion: QuaternionLike): Quaternion;
454
+ add(quaternion: Readonly<QuaternionLike>): Quaternion;
453
455
  /**
454
456
  * Calculate the fourth component of this unit quaternion from the first three, ignoring the existing fourth component.
455
457
  * @returns The quaternion.
@@ -470,25 +472,25 @@ export default class Quaternion extends Float32Array implements QuaternionLike {
470
472
  * @param quaternion - The quaternion to copy.
471
473
  * @returns This quaternion.
472
474
  */
473
- copy(quaternion: QuaternionLike): this;
475
+ copy(quaternion: Readonly<QuaternionLike>): this;
474
476
  /**
475
477
  * Calculate the dot product of this and another quaternion.
476
478
  * @param quaternion - The other quaternion.
477
479
  * @returns The dot product.
478
480
  */
479
- dot(quaternion: QuaternionLike): number;
481
+ dot(quaternion: Readonly<QuaternionLike>): number;
480
482
  /**
481
483
  * Determine whether or not this quaternion is roughly equivalent to another.
482
484
  * @param quaternion - The other quaternion.
483
485
  * @returns Whether or not the quaternions are equivalent.
484
486
  */
485
- equals(quaternion: QuaternionLike): boolean;
487
+ equals(quaternion: Readonly<QuaternionLike>): boolean;
486
488
  /**
487
489
  * Determine whether or not this quaternion is exactly equivalent to another.
488
490
  * @param quaternion - The other quaternion.
489
491
  * @returns Whether or not the quaternions are equivalent.
490
492
  */
491
- exactEquals(quaternion: QuaternionLike): boolean;
493
+ exactEquals(quaternion: Readonly<QuaternionLike>): boolean;
492
494
  /**
493
495
  * Calculate the exponential of this unit quaternion.
494
496
  * @returns The exponential.
@@ -499,7 +501,7 @@ export default class Quaternion extends Float32Array implements QuaternionLike {
499
501
  * @param quaternion - The other unit quaternion.
500
502
  * @returns The angular distance in radians.
501
503
  */
502
- getAngle(quaternion: QuaternionLike): number;
504
+ getAngle(quaternion: Readonly<QuaternionLike>): number;
503
505
  /**
504
506
  * Set this quaternion to the identity.
505
507
  * @returns This quaternion.
@@ -516,7 +518,7 @@ export default class Quaternion extends Float32Array implements QuaternionLike {
516
518
  * @param t - The interpolation amount (in `[0,1]`).
517
519
  * @returns The interpolated quaternion.
518
520
  */
519
- lerp(quaternion: QuaternionLike, t: number): Quaternion;
521
+ lerp(quaternion: Readonly<QuaternionLike>, t: number): Quaternion;
520
522
  /**
521
523
  * Calculate the natural logarithm of this unit quaternion.
522
524
  * @returns The natural logarithm.
@@ -527,7 +529,7 @@ export default class Quaternion extends Float32Array implements QuaternionLike {
527
529
  * @param quaternion - The other quaternion.
528
530
  * @returns The product.
529
531
  */
530
- multiply(quaternion: QuaternionLike): Quaternion;
532
+ multiply(quaternion: Readonly<QuaternionLike>): Quaternion;
531
533
  /**
532
534
  * Normalize this quaternion.
533
535
  * @returns The normalized quaternion.
@@ -575,7 +577,7 @@ export default class Quaternion extends Float32Array implements QuaternionLike {
575
577
  * @returns The interpolated quaternion.
576
578
  * @see {@link https://en.wikipedia.org/wiki/Slerp | Slerp}
577
579
  */
578
- slerp(quaternion: QuaternionLike, t: number): Quaternion;
580
+ slerp(quaternion: Readonly<QuaternionLike>, t: number): Quaternion;
579
581
  /**
580
582
  * Perform a spherical linear interpolation with two control points between this and another quaternion.
581
583
  * @param a - The first control point.
@@ -585,7 +587,7 @@ export default class Quaternion extends Float32Array implements QuaternionLike {
585
587
  * @returns The interpolated value.
586
588
  * @see {@link https://en.wikipedia.org/wiki/Slerp | Slerp}
587
589
  */
588
- sqlerp(a: QuaternionLike, b: QuaternionLike, quaternion: QuaternionLike, t: number): Quaternion;
590
+ sqlerp(a: Readonly<QuaternionLike>, b: Readonly<QuaternionLike>, quaternion: Readonly<QuaternionLike>, t: number): Quaternion;
589
591
  /**
590
592
  * Convert this quaternion to equivalent z-y'-x" (intrinsic) Tait-Bryan angles.
591
593
  * @returns The Tait-Bryan angles in degrees in roll (z), pitch (y'), yaw (x") order.
@@ -1 +1 @@
1
- {"version":3,"file":"Quaternion.d.ts","sourceRoot":"","sources":["../../src/linalg/Quaternion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Quaternion.d.ts","sourceRoot":"","sources":["../../src/linalg/Quaternion.ts"],"names":[],"mappings":"AAEA,OAAO,EAGN,KAAK,WAAW,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,OAAO,EAAE,EAMf,KAAK,WAAW,EAEhB,MAAM,cAAc,CAAC;AActB;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7D,8CAA8C;IAE9C,CAAC,EAAE,MAAM,CAAC;IAEV,+CAA+C;IAE/C,CAAC,EAAE,MAAM,CAAC;IAEV,8CAA8C;IAE9C,CAAC,EAAE,MAAM,CAAC;IAEV,+CAA+C;IAE/C,CAAC,EAAE,MAAM,CAAC;CACV;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAO,YAAY,GAAG,cAEF,CAAC;AAEtD;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,EAAE,CAAC,CAAC,SAAS,cAAc,EACjD,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,CAAC,KACF,CAAqB,CAAC;AAE3B;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,CAAC,SAAS,cAAc,EAC1C,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,EAAE,CAAC,KACF,CAAc,CAAC;AAEpB;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,CAAC,SAAS,cAAc,EAC3C,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,EACpC,GAAG,EAAE,CAAC,KACF,CAAe,CAAC;AAErB;;;;;;GAMG;AACH,eAAO,MAAM,GAAG,EAAE,CACjB,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,KACvB,MAAmB,CAAC;AAEzB;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,GAClB,GAAG,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,QAAQ,CAAC,cAAc,CAAC,KACzB,OAA6C,CAAC;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,CACzB,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,KACvB,OAA4B,CAAC;AAElC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,MACjD,CAAC;AAErB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,CACjC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,KAChC,MAAmC,CAAC;AAEzC;;;;;;;;;GASG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,CAAC,SAAS,cAAc,EAC3C,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,CAAC,KACF,CAAe,CAAC;AAErB;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,CAAC,CAAC,SAAS,cAAc,EAChD,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,EACpC,GAAG,EAAE,CAAC,KACF,CAAoB,CAAC;AAE1B;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,EAAE,CAAC,CAAC,SAAS,cAAc,EAC5C,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,EACpC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,CAAC,KACF,CAAgB,CAAC;AAEtB;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,cAAc,EACnD,QAAQ,QAAQ,CAAC,WAAW,CAAC,EAC7B,KAAK,CAAC,KACJ,CAqDF,CAAC;AAIF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,cAAc,EACpD,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,EACT,KAAK,CAAC,KACJ,CAwBF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,cAAc,EACpD,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,EACT,KAAK,CAAC,KACJ,CAwBF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,cAAc,EACpD,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,EACT,KAAK,CAAC,KACJ,CAwBF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,cAAc,EACpD,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,EACT,KAAK,CAAC,KACJ,CAwBF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,cAAc,EACpD,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,EACT,KAAK,CAAC,KACJ,CAwBF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,cAAc,EACpD,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,EACT,KAAK,CAAC,KACJ,CAwBF,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,EAAE,CAAC,CAAC,SAAS,cAAc,EAChD,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,GAAG,EAAE,CAAC,KACF,CAAgB,CAAC;AAMtB;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,WAAW,EAC5C,YAAY,QAAQ,CAAC,cAAc,CAAC,EACpC,KAAK,CAAC,KACJ,CA4BF,CAAC;AAKF;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,cAAc,EAChD,MAAM,QAAQ,CAAC,WAAW,CAAC,EAC3B,OAAO,QAAQ,CAAC,WAAW,CAAC,EAC5B,IAAI,QAAQ,CAAC,WAAW,CAAC,EACzB,KAAK,CAAC,KACJ,CAkBD,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,cAAc,EAAE,KAAK,CAAC,KAAG,CAChC,CAAC;AAE7B;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,WAAW,EACjD,YAAY,QAAQ,CAAC,cAAc,CAAC,EACpC,KAAK,CAAC,KACJ,CAAC,CAAC,EAAE,MAAM,CAgBZ,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,cAAc,EACpD,MAAM,QAAQ,CAAC,WAAW,CAAC,EAC3B,OAAO,MAAM,EACb,KAAK,CAAC,KACJ,CAKF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GACpB,GAAG,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,QAAQ,CAAC,cAAc,CAAC,KACzB,MAGF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,cAAc,EAChD,GAAG,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,QAAQ,CAAC,cAAc,CAAC,EAC3B,KAAK,CAAC,KACJ,CAkBF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,cAAc,EAC/C,YAAY,QAAQ,CAAC,cAAc,CAAC,EACpC,SAAS,MAAM,EACf,KAAK,CAAC,KACJ,CAiBF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,cAAc,EAC/C,YAAY,QAAQ,CAAC,cAAc,CAAC,EACpC,SAAS,MAAM,EACf,KAAK,CAAC,KACJ,CAiBF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,cAAc,EAC/C,YAAY,QAAQ,CAAC,cAAc,CAAC,EACpC,SAAS,MAAM,EACf,KAAK,CAAC,KACJ,CAiBF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,cAAc,EAClD,YAAY,QAAQ,CAAC,cAAc,CAAC,EACpC,KAAK,CAAC,KACJ,CAaF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,cAAc,EAC3C,YAAY,QAAQ,CAAC,cAAc,CAAC,EACpC,KAAK,CAAC,KACJ,CAUF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,EAAE,GAAI,CAAC,SAAS,cAAc,EAC1C,YAAY,QAAQ,CAAC,cAAc,CAAC,EACpC,KAAK,CAAC,KACJ,CAWF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,cAAc,EAC3C,YAAY,QAAQ,CAAC,cAAc,CAAC,EACpC,QAAQ,MAAM,EACd,KAAK,CAAC,KACJ,CAAsD,CAAC;AAE1D;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,SAAS,cAAc,EAC7C,GAAG,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,MAAM,EACT,KAAK,CAAC,KACJ,CA0CF,CAAC;AAIF;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,cAAc,EAAE,KAAK,CAAC,KAAG,CAczD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,cAAc,EAC9C,YAAY,QAAQ,CAAC,cAAc,CAAC,EACpC,KAAK,CAAC,KACJ,CAYF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,cAAc,EACjD,YAAY,QAAQ,CAAC,cAAc,CAAC,EACpC,KAAK,CAAC,KACJ,CAOD,CAAC;AAMH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,cAAc,EAC9C,GAAG,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,QAAQ,CAAC,cAAc,CAAC,EAC3B,GAAG,MAAM,EACT,KAAK,CAAC,KACJ,CAMD,CAAC;AAWH;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,cAAc,EACtD,GAAG,QAAQ,CAAC,WAAW,CAAC,EACxB,GAAG,QAAQ,CAAC,WAAW,CAAC,EACxB,KAAK,CAAC,KACJ,CAkBF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,YAAa,YAAW,cAAc;IAC7E,8CAA8C;IAEvC,CAAC,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAExC,CAAC,EAAE,MAAM,CAAC;IAEjB,8CAA8C;IAEvC,CAAC,EAAE,MAAM,CAAC;IAEjB,+CAA+C;IAExC,CAAC,EAAE,MAAM,CAAC;IAEjB,yDAAyD;IACzD,IAAW,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAE/D;IAED,IAAW,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS;QAC5C,QAAQ,CAAC,WAAW,CAAC;QACrB,MAAM;KACN,EAEA;IAED,qDAAqD;IACrD,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,6DAA6D;IAC7D,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED;;;OAGG;;IAMH;;;;;;OAMG;WACW,QAAQ,CACrB,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC3B,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC5B,EAAE,EAAE,QAAQ,CAAC,WAAW,CAAC,GACvB,UAAU;IAIb;;;;;;;OAOG;WACW,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAIpE;;;;;OAKG;WACW,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,UAAU;IAIpE;;;;;OAKG;WACW,cAAc,CAC3B,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,EACxB,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GACtB,UAAU;IAIb;;;;;;;OAOG;WACW,UAAU,CACvB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACP,UAAU;IAIb;;;;OAIG;IACI,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,UAAU;IAI5D;;;OAGG;IACI,UAAU,IAAI,UAAU;IAI/B;;;OAGG;IACI,KAAK,IAAI,UAAU;IAI1B;;;OAGG;IACI,SAAS,IAAI,UAAU;IAI9B;;;;OAIG;IACI,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI;IAIvD;;;;OAIG;IACI,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,MAAM;IAIxD;;;;OAIG;IACI,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO;IAI5D;;;;OAIG;IACI,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO;IAIjE;;;OAGG;IACI,GAAG,IAAI,UAAU;IAIxB;;;;OAIG;IACI,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,MAAM;IAI7D;;;OAGG;IACI,QAAQ,IAAI,IAAI;IAIvB;;;OAGG;IACI,MAAM,IAAI,UAAU;IAI3B;;;;;OAKG;IACI,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAIxE;;;OAGG;IACI,EAAE,IAAI,UAAU;IAIvB;;;;OAIG;IACI,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,UAAU;IAIjE;;;OAGG;IACI,SAAS,IAAI,UAAU;IAI9B;;;;OAIG;IACI,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAItC;;;OAGG;IACI,MAAM,IAAI,IAAI;IAIrB;;;;OAIG;IACI,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAIrC;;;;OAIG;IACI,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAIrC;;;;OAIG;IACI,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU;IAIrC;;;;OAIG;IACI,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAIxC;;;;;;OAMG;IACI,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU;IAIzE;;;;;;;;OAQG;IACI,MAAM,CACZ,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,EAC3B,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,EACpC,CAAC,EAAE,MAAM,GACP,UAAU;IAIb;;;OAGG;IACI,OAAO,IAAI,OAAO;CAGzB"}
@@ -1,5 +1,4 @@
1
1
  import radiansToDegrees from "../algorithms/radiansToDegrees.js";
2
- import createAxisAngleLike from "../utility/createAxisAngleLike.js";
3
2
  import epsilon from "../utility/epsilon.js";
4
3
  import { createMatrix3Like, fromValues as matrix3FromValues } from "./Matrix3.js";
5
4
  import Vector3, { createVector3Like, cross as vector3Cross, dot as vector3Dot, fromValues as vector3FromValues, getMagnitude as vector3GetMagnitude, normalize as vector3Normalize } from "./Vector3.js";
@@ -383,7 +382,7 @@ export const identity = (out) => fromValues(0, 0, 0, 1, out);
383
382
  /**
384
383
  * Calculate the axis and angle that represent a quaternion.
385
384
  * @param quaternion - The quaternion.
386
- * @param out - The axis and angle to store the result in.
385
+ * @param out - The axis to store the result in.
387
386
  * @returns The axis and angle.
388
387
  * @public
389
388
  */
@@ -391,22 +390,22 @@ export const getAxisAngle = (quaternion, out) => {
391
390
  const r = Math.acos(quaternion[3]) * 2;
392
391
  const s = Math.sin(r / 2);
393
392
  if (s > epsilon) {
394
- vector3FromValues(quaternion[0] / s, quaternion[1] / s, quaternion[2] / s, out.axis);
393
+ vector3FromValues(quaternion[0] / s, quaternion[1] / s, quaternion[2] / s, out);
395
394
  }
396
395
  else {
397
- vector3FromValues(1, 0, 0, out.axis);
396
+ vector3FromValues(1, 0, 0, out);
398
397
  }
399
- out.angle = r;
400
- return out;
398
+ return [out, r];
401
399
  };
402
400
  /**
403
401
  * Set the axis and angle that represent a quaternion.
404
- * @param axisAngle - The axis and angle.
402
+ * @param axis - The axis.
403
+ * @param angle - The angle.
405
404
  * @param out - The quaternion to store the result in.
406
405
  * @returns The quaternion.
407
406
  * @public
408
407
  */
409
- export const setAxisAngle = ({ angle, axis }, out) => {
408
+ export const setAxisAngle = (axis, angle, out) => {
410
409
  const r = angle / 2;
411
410
  const s = Math.sin(r);
412
411
  return fromValues(axis[0] * s, axis[1] * s, axis[2] * s, Math.cos(r), out);
@@ -679,7 +678,7 @@ export const fromRotationTo = (a, b, out) => {
679
678
  vector3Cross(yAxis, a, iv3);
680
679
  }
681
680
  vector3Normalize(iv3, iv3);
682
- return setAxisAngle({ angle: Math.PI, axis: iv3 }, out);
681
+ return setAxisAngle(iv3, Math.PI, out);
683
682
  }
684
683
  if (dp > 1 - epsilon) {
685
684
  return fromValues(0, 0, 0, 1, out);
@@ -707,10 +706,10 @@ export default class Quaternion extends Float32Array {
707
706
  3;
708
707
  /** The axis and angle that represent this quaternion. */
709
708
  get axisAngle() {
710
- return getAxisAngle(this, createAxisAngleLike());
709
+ return getAxisAngle(this, createVector3Like());
711
710
  }
712
- set axisAngle(value) {
713
- setAxisAngle(value, this);
711
+ set axisAngle([axis, angle]) {
712
+ setAxisAngle(axis, angle, this);
714
713
  }
715
714
  /** Get the magnitude (length) of this quaternion. */
716
715
  get magnitude() {
@@ -1 +1 @@
1
- {"version":3,"file":"Quaternion.js","sourceRoot":"","sources":["../../src/linalg/Quaternion.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Quaternion.js","sourceRoot":"","sources":["../../src/linalg/Quaternion.ts"],"names":[],"mappings":"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"}