@lakuna/umath 1.5.0 → 2.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 (73) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +6 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/linalg/DualQuaternion.d.ts +23 -46
  6. package/dist/linalg/DualQuaternion.d.ts.map +1 -1
  7. package/dist/linalg/DualQuaternion.js +47 -70
  8. package/dist/linalg/DualQuaternion.js.map +1 -1
  9. package/dist/linalg/Matrix2.d.ts +14 -28
  10. package/dist/linalg/Matrix2.d.ts.map +1 -1
  11. package/dist/linalg/Matrix2.js +28 -42
  12. package/dist/linalg/Matrix2.js.map +1 -1
  13. package/dist/linalg/Matrix3.d.ts +21 -42
  14. package/dist/linalg/Matrix3.d.ts.map +1 -1
  15. package/dist/linalg/Matrix3.js +43 -84
  16. package/dist/linalg/Matrix3.js.map +1 -1
  17. package/dist/linalg/Matrix4.d.ts +39 -78
  18. package/dist/linalg/Matrix4.d.ts.map +1 -1
  19. package/dist/linalg/Matrix4.js +85 -170
  20. package/dist/linalg/Matrix4.js.map +1 -1
  21. package/dist/linalg/Quaternion.d.ts +27 -58
  22. package/dist/linalg/Quaternion.d.ts.map +1 -1
  23. package/dist/linalg/Quaternion.js +54 -85
  24. package/dist/linalg/Quaternion.js.map +1 -1
  25. package/dist/linalg/SlowMatrix.d.ts.map +1 -1
  26. package/dist/linalg/SlowMatrix.js +52 -78
  27. package/dist/linalg/SlowMatrix.js.map +1 -1
  28. package/dist/linalg/SlowVector.d.ts +165 -0
  29. package/dist/linalg/SlowVector.d.ts.map +1 -0
  30. package/dist/linalg/SlowVector.js +369 -0
  31. package/dist/linalg/SlowVector.js.map +1 -0
  32. package/dist/linalg/Vector.d.ts +14 -15
  33. package/dist/linalg/Vector.d.ts.map +1 -1
  34. package/dist/linalg/Vector2.d.ts +28 -50
  35. package/dist/linalg/Vector2.d.ts.map +1 -1
  36. package/dist/linalg/Vector2.js +59 -85
  37. package/dist/linalg/Vector2.js.map +1 -1
  38. package/dist/linalg/Vector3.d.ts +32 -58
  39. package/dist/linalg/Vector3.d.ts.map +1 -1
  40. package/dist/linalg/Vector3.js +67 -107
  41. package/dist/linalg/Vector3.js.map +1 -1
  42. package/dist/linalg/Vector4.d.ts +26 -46
  43. package/dist/linalg/Vector4.d.ts.map +1 -1
  44. package/dist/linalg/Vector4.js +54 -82
  45. package/dist/linalg/Vector4.js.map +1 -1
  46. package/dist/utility/MatrixSizeError.d.ts +1 -1
  47. package/dist/utility/MatrixSizeError.d.ts.map +1 -1
  48. package/dist/utility/MatrixSizeError.js +1 -1
  49. package/dist/utility/MatrixSizeError.js.map +1 -1
  50. package/dist/utility/VectorSizeError.d.ts +12 -0
  51. package/dist/utility/VectorSizeError.d.ts.map +1 -0
  52. package/dist/utility/VectorSizeError.js +15 -0
  53. package/dist/utility/VectorSizeError.js.map +1 -0
  54. package/dist/utility/createAxisAngleLike.d.ts +10 -0
  55. package/dist/utility/createAxisAngleLike.d.ts.map +1 -0
  56. package/dist/utility/createAxisAngleLike.js +10 -0
  57. package/dist/utility/createAxisAngleLike.js.map +1 -0
  58. package/package.json +1 -3
  59. package/src/index.ts +7 -0
  60. package/src/linalg/DualQuaternion.ts +51 -134
  61. package/src/linalg/Matrix2.ts +30 -81
  62. package/src/linalg/Matrix3.ts +55 -149
  63. package/src/linalg/Matrix4.ts +135 -291
  64. package/src/linalg/Quaternion.ts +60 -151
  65. package/src/linalg/SlowMatrix.ts +82 -81
  66. package/src/linalg/SlowVector.ts +449 -0
  67. package/src/linalg/Vector.ts +14 -16
  68. package/src/linalg/Vector2.ts +63 -153
  69. package/src/linalg/Vector3.ts +75 -194
  70. package/src/linalg/Vector4.ts +60 -143
  71. package/src/utility/MatrixSizeError.ts +1 -1
  72. package/src/utility/VectorSizeError.ts +14 -0
  73. package/src/utility/createAxisAngleLike.ts +13 -0
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /** @module . */
1
2
  export { default as approx } from "./algorithms/approx.js";
2
3
  export { default as approxRelative } from "./algorithms/approxRelative.js";
3
4
  export { default as combinations } from "./algorithms/combinations.js";
@@ -19,6 +20,7 @@ export { type Matrix4Like, default as Matrix4 } from "./linalg/Matrix4.js";
19
20
  export { type QuaternionLike, default as Quaternion } from "./linalg/Quaternion.js";
20
21
  export { default as SlowMatrix } from "./linalg/SlowMatrix.js";
21
22
  export { default as SlowSquareMatrix } from "./linalg/SlowSquareMatrix.js";
23
+ export { default as SlowVector } from "./linalg/SlowVector.js";
22
24
  export type { default as SquareMatrix } from "./linalg/SquareMatrix.js";
23
25
  export type { VectorLike, default as Vector } from "./linalg/Vector.js";
24
26
  export { type Vector2Like, default as Vector2 } from "./linalg/Vector2.js";
@@ -27,9 +29,11 @@ export { type Vector4Like, default as Vector4 } from "./linalg/Vector4.js";
27
29
  export type { default as AxisAngle } from "./types/AxisAngle.js";
28
30
  export type { default as FieldOfView } from "./types/FieldOfView.js";
29
31
  export { default as BigNumber } from "./utility/BigNumber.js";
32
+ export { default as createAxisAngleLike } from "./utility/createAxisAngleLike.js";
30
33
  export { default as epsilon } from "./utility/epsilon.js";
31
34
  export { default as MagnitudeError } from "./utility/MagnitudeError.js";
32
35
  export { default as MatrixSizeError } from "./utility/MatrixSizeError.js";
33
36
  export { default as PartialMatrixError } from "./utility/PartialMatrixError.js";
34
37
  export { default as SingularMatrixError } from "./utility/SingularMatrixError.js";
38
+ export { default as VectorSizeError } from "./utility/VectorSizeError.js";
35
39
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,EACN,KAAK,kBAAkB,EACvB,OAAO,IAAI,cAAc,EACzB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,UAAU,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,KAAK,WAAW,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,KAAK,WAAW,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,KAAK,WAAW,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EACN,KAAK,cAAc,EACnB,OAAO,IAAI,UAAU,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,YAAY,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,KAAK,WAAW,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,KAAK,WAAW,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,KAAK,WAAW,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG3E,YAAY,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjE,YAAY,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ // TypeDoc-specific tag that gives a name to this module.
2
+ // eslint-disable-next-line tsdoc/syntax
3
+ /** @module . */
1
4
  // Algorithms
2
5
  export { default as approx } from "./algorithms/approx.js";
3
6
  export { default as approxRelative } from "./algorithms/approxRelative.js";
@@ -20,14 +23,17 @@ export { default as Matrix4 } from "./linalg/Matrix4.js";
20
23
  export { default as Quaternion } from "./linalg/Quaternion.js";
21
24
  export { default as SlowMatrix } from "./linalg/SlowMatrix.js";
22
25
  export { default as SlowSquareMatrix } from "./linalg/SlowSquareMatrix.js";
26
+ export { default as SlowVector } from "./linalg/SlowVector.js";
23
27
  export { default as Vector2 } from "./linalg/Vector2.js";
24
28
  export { default as Vector3 } from "./linalg/Vector3.js";
25
29
  export { default as Vector4 } from "./linalg/Vector4.js";
26
30
  // Utility
27
31
  export { default as BigNumber } from "./utility/BigNumber.js";
32
+ export { default as createAxisAngleLike } from "./utility/createAxisAngleLike.js";
28
33
  export { default as epsilon } from "./utility/epsilon.js";
29
34
  export { default as MagnitudeError } from "./utility/MagnitudeError.js";
30
35
  export { default as MatrixSizeError } from "./utility/MatrixSizeError.js";
31
36
  export { default as PartialMatrixError } from "./utility/PartialMatrixError.js";
32
37
  export { default as SingularMatrixError } from "./utility/SingularMatrixError.js";
38
+ export { default as VectorSizeError } from "./utility/VectorSizeError.js";
33
39
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEjE,iBAAiB;AACjB,OAAO,EAEN,OAAO,IAAI,cAAc,EACzB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAEN,OAAO,IAAI,UAAU,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM3E,UAAU;AACV,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,wCAAwC;AACxC,gBAAgB;AAEhB,aAAa;AACb,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEjE,iBAAiB;AACjB,OAAO,EAEN,OAAO,IAAI,cAAc,EACzB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAEN,OAAO,IAAI,UAAU,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAoB,OAAO,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAM3E,UAAU;AACV,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
@@ -312,39 +312,34 @@ export default class DualQuaternion extends Float32Array implements DualQuaterni
312
312
  * @param y2 - The second dual component.
313
313
  * @param z2 - The third dual component.
314
314
  * @param w2 - The fourth dual component.
315
- * @param out - The dual quaternion to store the result in.
316
315
  * @returns A new dual quaternion.
317
316
  */
318
- static fromValues<T extends DualQuaternionLike = DualQuaternion>(x1: number, y1: number, z1: number, w1: number, x2: number, y2: number, z2: number, w2: number, out?: T): T;
317
+ static fromValues(x1: number, y1: number, z1: number, w1: number, x2: number, y2: number, z2: number, w2: number): DualQuaternion;
319
318
  /**
320
319
  * Create a dual quaternion from the given rotation and translation.
321
320
  * @param q - The rotation quaternion.
322
321
  * @param t - The translation vector.
323
- * @param out - The dual quaternion to store the result in.
324
322
  * @returns The dual quaternion.
325
323
  */
326
- static fromRotationTranslation<T extends DualQuaternionLike = DualQuaternion>(q: QuaternionLike, t: Vector3Like, out?: T): T;
324
+ static fromRotationTranslation(q: QuaternionLike, t: Vector3Like): DualQuaternion;
327
325
  /**
328
326
  * Create a dual quaternion from the given translation.
329
327
  * @param t - The translation vector.
330
- * @param out - The dual quaternion to store the result in.
331
328
  * @returns The dual quaternion.
332
329
  */
333
- static fromTranslation<T extends DualQuaternionLike = DualQuaternion>(t: Vector3Like, out?: T): T;
330
+ static fromTranslation(t: Vector3Like): DualQuaternion;
334
331
  /**
335
332
  * Create a dual quaternion from the given rotation.
336
333
  * @param q - The rotation quaternion.
337
- * @param out - The dual quaternion to store the result in.
338
334
  * @returns The dual quaternion.
339
335
  */
340
- static fromRotation<T extends DualQuaternionLike = DualQuaternion>(q: QuaternionLike, out?: T): T;
336
+ static fromRotation(q: QuaternionLike): DualQuaternion;
341
337
  /**
342
338
  * Create a dual quaternion from the given four-by-four matrix.
343
339
  * @param matrix - The matrix.
344
- * @param out - The dual quaternion to store the result in.
345
340
  * @returns The dual quaternion.
346
341
  */
347
- static fromMatrix4<T extends DualQuaternionLike = DualQuaternion>(matrix: Matrix4Like, out?: T): T;
342
+ static fromMatrix4(matrix: Matrix4Like): DualQuaternion;
348
343
  /**
349
344
  * Create an identity dual quaternion.
350
345
  * @see {@link https://en.wikipedia.org/wiki/Dual_quaternion | Dual quaternion}
@@ -374,10 +369,9 @@ export default class DualQuaternion extends Float32Array implements DualQuaterni
374
369
  copy(dualQuaternion: DualQuaternionLike): this;
375
370
  /**
376
371
  * Copy the values from this dual quaternion to another one.
377
- * @param out - The dual quaternion to store the result in.
378
372
  * @returns The copy.
379
373
  */
380
- clone<T extends DualQuaternionLike = DualQuaternion>(out?: T): T;
374
+ clone(): DualQuaternion;
381
375
  /**
382
376
  * Set this dual quaternion to the identity dual quaternion.
383
377
  * @returns The identity dual quaternion.
@@ -385,10 +379,9 @@ export default class DualQuaternion extends Float32Array implements DualQuaterni
385
379
  identity(): this;
386
380
  /**
387
381
  * Get the real part of this dual quaternion.
388
- * @param out - The quaternion to store the result in.
389
382
  * @returns The real part.
390
383
  */
391
- getReal<T extends QuaternionLike = Quaternion>(out?: T): T;
384
+ getReal(): Quaternion;
392
385
  /**
393
386
  * Set the real part of this dual quaternion.
394
387
  * @param q - The quaternion.
@@ -396,10 +389,9 @@ export default class DualQuaternion extends Float32Array implements DualQuaterni
396
389
  setReal(q: QuaternionLike): void;
397
390
  /**
398
391
  * Get the dual part of this dual quaternion.
399
- * @param out - The quaternion to store the result in.
400
392
  * @returns The dual part.
401
393
  */
402
- getDual<T extends QuaternionLike = Quaternion>(out?: T): T;
394
+ getDual(): Quaternion;
403
395
  /**
404
396
  * Set the real part of this dual quaternion.
405
397
  * @param q - The quaternion.
@@ -407,83 +399,72 @@ export default class DualQuaternion extends Float32Array implements DualQuaterni
407
399
  setDual(q: QuaternionLike): void;
408
400
  /**
409
401
  * Get the translation of this normalized dual quaternion.
410
- * @param out - The vector to store the result in.
411
402
  * @returns The translation.
412
403
  */
413
- getTranslation<T extends Vector3Like = Vector3>(out?: T): T;
404
+ getTranslation(): Vector3;
414
405
  /**
415
406
  * Translate this dual quaternion by the given vector.
416
407
  * @param v - The vector.
417
- * @param out - The dual quaternion to store the result in.
418
408
  * @returns The translated dual quaternion.
419
409
  */
420
- translate<T extends DualQuaternionLike = DualQuaternion>(v: Vector3Like, out?: T): T;
410
+ translate(v: Vector3Like): DualQuaternion;
421
411
  /**
422
412
  * Rotate this dual quaternion around the X-axis.
423
413
  * @param r - The angle to rotate by in radians.
424
- * @param out - The dual quaternion to store the result in.
425
414
  * @returns The rotated dual quaternion.
426
415
  */
427
- rotateX<T extends DualQuaternionLike = DualQuaternion>(r: number, out?: T): T;
416
+ rotateX(r: number): DualQuaternion;
428
417
  /**
429
418
  * Rotate this dual quaternion around the Y-axis.
430
419
  * @param r - The angle to rotate by in radians.
431
- * @param out - The dual quaternion to store the result in.
432
420
  * @returns The rotated dual quaternion.
433
421
  */
434
- rotateY<T extends DualQuaternionLike = DualQuaternion>(r: number, out?: T): T;
422
+ rotateY(r: number): DualQuaternion;
435
423
  /**
436
424
  * Rotate this dual quaternion around the Z-axis.
437
425
  * @param r - The angle to rotate by in radians.
438
- * @param out - The dual quaternion to store the result in.
439
426
  * @returns The rotated dual quaternion.
440
427
  */
441
- rotateZ<T extends DualQuaternionLike = DualQuaternion>(r: number, out?: T): T;
428
+ rotateZ(r: number): DualQuaternion;
442
429
  /**
443
430
  * Rotate this dual quaternion by a quaternion (using the quaternion as the multiplicand).
444
431
  * @param q - The quaternion.
445
- * @param out - The dual quaternion to store the result in.
446
432
  * @returns The rotated dual quaternion.
447
433
  * @see {@link https://en.wikipedia.org/wiki/Quaternion | Quaternion}
448
434
  */
449
- rotateByQuaternionAppend<T extends DualQuaternionLike = DualQuaternion>(q: QuaternionLike, out?: T): T;
435
+ rotateByQuaternionAppend(q: QuaternionLike): DualQuaternion;
450
436
  /**
451
437
  * Rotate this dual quaternion by a quaternion (using the quaternion as the multiplier).
452
438
  * @param q - The quaternion.
453
- * @param out - The dual quaternion to store the result in.
454
439
  * @returns The rotated dual quaternion.
455
440
  * @see {@link https://en.wikipedia.org/wiki/Quaternion | Quaternion}
456
441
  */
457
- rotateByQuaternionPrepend<T extends DualQuaternionLike = DualQuaternion>(q: QuaternionLike, out?: T): T;
442
+ rotateByQuaternionPrepend(q: QuaternionLike): DualQuaternion;
458
443
  /**
459
444
  * Rotate this dual quaternion around an axis.
460
445
  * @param axis - The axis.
461
446
  * @param r - The angle of the rotation in radians.
462
- * @param out - The dual quaternion to store the result in.
463
447
  * @returns A normalized dual quaternion.
464
448
  */
465
- rotateAroundAxis<T extends DualQuaternionLike = DualQuaternion>(axis: Vector3Like, r: number, out?: T): T;
449
+ rotateAroundAxis(axis: Vector3Like, r: number): DualQuaternion;
466
450
  /**
467
451
  * Add another dual quaternion to this one.
468
452
  * @param dq - The other dual quaternion.
469
- * @param out - The dual quaternion to store the result in.
470
453
  * @returns The sum.
471
454
  */
472
- add<T extends DualQuaternionLike = DualQuaternion>(dq: DualQuaternionLike, out?: T): T;
455
+ add(dq: DualQuaternionLike): DualQuaternion;
473
456
  /**
474
457
  * Multiply this dual quaternion by another one.
475
458
  * @param dq - The other dual quaternion.
476
- * @param out - The dual quaternion to store the result in.
477
459
  * @returns The product.
478
460
  */
479
- multiply<T extends DualQuaternionLike = DualQuaternion>(dq: DualQuaternionLike, out?: T): T;
461
+ multiply(dq: DualQuaternionLike): DualQuaternion;
480
462
  /**
481
463
  * Multiply this dual quaternion by a scalar.
482
464
  * @param s - The scalar.
483
- * @param out - The dual quaternion to store the result in.
484
465
  * @returns The product.
485
466
  */
486
- scale<T extends DualQuaternionLike = DualQuaternion>(s: number, out?: T): T;
467
+ scale(s: number): DualQuaternion;
487
468
  /**
488
469
  * Calculate the dot product of this and another dual quaternion.
489
470
  * @param dq - The other dual quaternion.
@@ -495,32 +476,28 @@ export default class DualQuaternion extends Float32Array implements DualQuaterni
495
476
  * Perform a linear interpolation between this and another dual quaternion.
496
477
  * @param dq - The other dual quaternion.
497
478
  * @param t - The interpolation amount in `[0,1]`.
498
- * @param out - The dual quaternion to store the result in.
499
479
  * @returns The interpolated value.
500
480
  */
501
- lerp<T extends DualQuaternionLike = DualQuaternion>(dq: DualQuaternionLike, t: number, out?: T): T;
481
+ lerp(dq: DualQuaternionLike, t: number): DualQuaternion;
502
482
  /**
503
483
  * Calculate the inverse of this dual quaternion. If this dual quaternion is normalized, the conjugate is equivalent and faster to calculate.
504
- * @param out - The dual quaternion to store the result in.
505
484
  * @returns The inverse.
506
485
  */
507
- invert<T extends DualQuaternionLike = DualQuaternion>(out?: T): T;
486
+ invert(): DualQuaternion;
508
487
  /**
509
488
  * Calculate the conjugate of this dual quaternion. If this dual quaternion is normalized, this is equivalent to its inverse and faster to calculate.
510
- * @param out - The dual quaternion to store the result in.
511
489
  * @returns The conjugate.
512
490
  */
513
- conjugate<T extends DualQuaternionLike = DualQuaternion>(out?: T): T;
491
+ conjugate(): DualQuaternion;
514
492
  /** Get the magnitude (length) of this dual quaternion. */
515
493
  get magnitude(): number;
516
494
  /** Get the squared magnitude (length) of this dual quaternion. */
517
495
  get squaredMagnitude(): number;
518
496
  /**
519
497
  * Normalize this dual quaternion.
520
- * @param out - The dual quaternion to store the result in.
521
498
  * @returns The normalized dual quaternion.
522
499
  */
523
- normalize<T extends DualQuaternionLike = DualQuaternion>(out?: T): T;
500
+ normalize(): DualQuaternion;
524
501
  /**
525
502
  * Determine whether or not this dual quaternion is exactly equivalent to another.
526
503
  * @param dq - The other dual quaternion.
@@ -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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"}
@@ -404,7 +404,7 @@ export const rotateAroundAxis = (dualQuaternion, axis, radians, out) => {
404
404
  const ax = axis[0];
405
405
  const ay = axis[1];
406
406
  const az = axis[2];
407
- const axisLength = Math.sqrt(ax * ax + ay * ay + az * az); // `Math.hypot` is slower.
407
+ const axisLength = Math.hypot(ax, ay, az);
408
408
  const r = radians / 2;
409
409
  const s = Math.sin(r);
410
410
  const bx = (s * ax) / axisLength;
@@ -628,48 +628,43 @@ export default class DualQuaternion extends Float32Array {
628
628
  * @param y2 - The second dual component.
629
629
  * @param z2 - The third dual component.
630
630
  * @param w2 - The fourth dual component.
631
- * @param out - The dual quaternion to store the result in.
632
631
  * @returns A new dual quaternion.
633
632
  */
634
- static fromValues(x1, y1, z1, w1, x2, y2, z2, w2, out = new DualQuaternion()) {
635
- return fromValues(x1, y1, z1, w1, x2, y2, z2, w2, out);
633
+ static fromValues(x1, y1, z1, w1, x2, y2, z2, w2) {
634
+ return fromValues(x1, y1, z1, w1, x2, y2, z2, w2, new DualQuaternion());
636
635
  }
637
636
  /**
638
637
  * Create a dual quaternion from the given rotation and translation.
639
638
  * @param q - The rotation quaternion.
640
639
  * @param t - The translation vector.
641
- * @param out - The dual quaternion to store the result in.
642
640
  * @returns The dual quaternion.
643
641
  */
644
- static fromRotationTranslation(q, t, out = new DualQuaternion()) {
645
- return fromRotationTranslation(q, t, out);
642
+ static fromRotationTranslation(q, t) {
643
+ return fromRotationTranslation(q, t, new DualQuaternion());
646
644
  }
647
645
  /**
648
646
  * Create a dual quaternion from the given translation.
649
647
  * @param t - The translation vector.
650
- * @param out - The dual quaternion to store the result in.
651
648
  * @returns The dual quaternion.
652
649
  */
653
- static fromTranslation(t, out = new DualQuaternion()) {
654
- return fromTranslation(t, out);
650
+ static fromTranslation(t) {
651
+ return fromTranslation(t, new DualQuaternion());
655
652
  }
656
653
  /**
657
654
  * Create a dual quaternion from the given rotation.
658
655
  * @param q - The rotation quaternion.
659
- * @param out - The dual quaternion to store the result in.
660
656
  * @returns The dual quaternion.
661
657
  */
662
- static fromRotation(q, out = new DualQuaternion()) {
663
- return fromRotation(q, out);
658
+ static fromRotation(q) {
659
+ return fromRotation(q, new DualQuaternion());
664
660
  }
665
661
  /**
666
662
  * Create a dual quaternion from the given four-by-four matrix.
667
663
  * @param matrix - The matrix.
668
- * @param out - The dual quaternion to store the result in.
669
664
  * @returns The dual quaternion.
670
665
  */
671
- static fromMatrix4(matrix, out = new DualQuaternion()) {
672
- return fromMatrix4(matrix, out);
666
+ static fromMatrix4(matrix) {
667
+ return fromMatrix4(matrix, new DualQuaternion());
673
668
  }
674
669
  /**
675
670
  * Create an identity dual quaternion.
@@ -705,11 +700,10 @@ export default class DualQuaternion extends Float32Array {
705
700
  }
706
701
  /**
707
702
  * Copy the values from this dual quaternion to another one.
708
- * @param out - The dual quaternion to store the result in.
709
703
  * @returns The copy.
710
704
  */
711
- clone(out = new DualQuaternion()) {
712
- return copy(this, out);
705
+ clone() {
706
+ return copy(this, new DualQuaternion());
713
707
  }
714
708
  /**
715
709
  * Set this dual quaternion to the identity dual quaternion.
@@ -720,11 +714,10 @@ export default class DualQuaternion extends Float32Array {
720
714
  }
721
715
  /**
722
716
  * Get the real part of this dual quaternion.
723
- * @param out - The quaternion to store the result in.
724
717
  * @returns The real part.
725
718
  */
726
- getReal(out = new Quaternion()) {
727
- return getReal(this, out);
719
+ getReal() {
720
+ return getReal(this, new Quaternion());
728
721
  }
729
722
  /**
730
723
  * Set the real part of this dual quaternion.
@@ -735,11 +728,10 @@ export default class DualQuaternion extends Float32Array {
735
728
  }
736
729
  /**
737
730
  * Get the dual part of this dual quaternion.
738
- * @param out - The quaternion to store the result in.
739
731
  * @returns The dual part.
740
732
  */
741
- getDual(out = new Quaternion()) {
742
- return getDual(this, out);
733
+ getDual() {
734
+ return getDual(this, new Quaternion());
743
735
  }
744
736
  /**
745
737
  * Set the real part of this dual quaternion.
@@ -750,104 +742,93 @@ export default class DualQuaternion extends Float32Array {
750
742
  }
751
743
  /**
752
744
  * Get the translation of this normalized dual quaternion.
753
- * @param out - The vector to store the result in.
754
745
  * @returns The translation.
755
746
  */
756
- getTranslation(out = new Vector3()) {
757
- return getTranslation(this, out);
747
+ getTranslation() {
748
+ return getTranslation(this, new Vector3());
758
749
  }
759
750
  /**
760
751
  * Translate this dual quaternion by the given vector.
761
752
  * @param v - The vector.
762
- * @param out - The dual quaternion to store the result in.
763
753
  * @returns The translated dual quaternion.
764
754
  */
765
- translate(v, out = new DualQuaternion()) {
766
- return translate(this, v, out);
755
+ translate(v) {
756
+ return translate(this, v, new DualQuaternion());
767
757
  }
768
758
  /**
769
759
  * Rotate this dual quaternion around the X-axis.
770
760
  * @param r - The angle to rotate by in radians.
771
- * @param out - The dual quaternion to store the result in.
772
761
  * @returns The rotated dual quaternion.
773
762
  */
774
- rotateX(r, out = new DualQuaternion()) {
775
- return rotateX(this, r, out);
763
+ rotateX(r) {
764
+ return rotateX(this, r, new DualQuaternion());
776
765
  }
777
766
  /**
778
767
  * Rotate this dual quaternion around the Y-axis.
779
768
  * @param r - The angle to rotate by in radians.
780
- * @param out - The dual quaternion to store the result in.
781
769
  * @returns The rotated dual quaternion.
782
770
  */
783
- rotateY(r, out = new DualQuaternion()) {
784
- return rotateY(this, r, out);
771
+ rotateY(r) {
772
+ return rotateY(this, r, new DualQuaternion());
785
773
  }
786
774
  /**
787
775
  * Rotate this dual quaternion around the Z-axis.
788
776
  * @param r - The angle to rotate by in radians.
789
- * @param out - The dual quaternion to store the result in.
790
777
  * @returns The rotated dual quaternion.
791
778
  */
792
- rotateZ(r, out = new DualQuaternion()) {
793
- return rotateZ(this, r, out);
779
+ rotateZ(r) {
780
+ return rotateZ(this, r, new DualQuaternion());
794
781
  }
795
782
  /**
796
783
  * Rotate this dual quaternion by a quaternion (using the quaternion as the multiplicand).
797
784
  * @param q - The quaternion.
798
- * @param out - The dual quaternion to store the result in.
799
785
  * @returns The rotated dual quaternion.
800
786
  * @see {@link https://en.wikipedia.org/wiki/Quaternion | Quaternion}
801
787
  */
802
- rotateByQuaternionAppend(q, out = new DualQuaternion()) {
803
- return rotateByQuaternionAppend(this, q, out);
788
+ rotateByQuaternionAppend(q) {
789
+ return rotateByQuaternionAppend(this, q, new DualQuaternion());
804
790
  }
805
791
  /**
806
792
  * Rotate this dual quaternion by a quaternion (using the quaternion as the multiplier).
807
793
  * @param q - The quaternion.
808
- * @param out - The dual quaternion to store the result in.
809
794
  * @returns The rotated dual quaternion.
810
795
  * @see {@link https://en.wikipedia.org/wiki/Quaternion | Quaternion}
811
796
  */
812
- rotateByQuaternionPrepend(q, out = new DualQuaternion()) {
813
- return rotateByQuaternionPrepend(q, this, out);
797
+ rotateByQuaternionPrepend(q) {
798
+ return rotateByQuaternionPrepend(q, this, new DualQuaternion());
814
799
  }
815
800
  /**
816
801
  * Rotate this dual quaternion around an axis.
817
802
  * @param axis - The axis.
818
803
  * @param r - The angle of the rotation in radians.
819
- * @param out - The dual quaternion to store the result in.
820
804
  * @returns A normalized dual quaternion.
821
805
  */
822
- rotateAroundAxis(axis, r, out = new DualQuaternion()) {
823
- return rotateAroundAxis(this, axis, r, out);
806
+ rotateAroundAxis(axis, r) {
807
+ return rotateAroundAxis(this, axis, r, new DualQuaternion());
824
808
  }
825
809
  /**
826
810
  * Add another dual quaternion to this one.
827
811
  * @param dq - The other dual quaternion.
828
- * @param out - The dual quaternion to store the result in.
829
812
  * @returns The sum.
830
813
  */
831
- add(dq, out = new DualQuaternion()) {
832
- return add(this, dq, out);
814
+ add(dq) {
815
+ return add(this, dq, new DualQuaternion());
833
816
  }
834
817
  /**
835
818
  * Multiply this dual quaternion by another one.
836
819
  * @param dq - The other dual quaternion.
837
- * @param out - The dual quaternion to store the result in.
838
820
  * @returns The product.
839
821
  */
840
- multiply(dq, out = new DualQuaternion()) {
841
- return multiply(this, dq, out);
822
+ multiply(dq) {
823
+ return multiply(this, dq, new DualQuaternion());
842
824
  }
843
825
  /**
844
826
  * Multiply this dual quaternion by a scalar.
845
827
  * @param s - The scalar.
846
- * @param out - The dual quaternion to store the result in.
847
828
  * @returns The product.
848
829
  */
849
- scale(s, out = new DualQuaternion()) {
850
- return scale(this, s, out);
830
+ scale(s) {
831
+ return scale(this, s, new DualQuaternion());
851
832
  }
852
833
  /**
853
834
  * Calculate the dot product of this and another dual quaternion.
@@ -862,27 +843,24 @@ export default class DualQuaternion extends Float32Array {
862
843
  * Perform a linear interpolation between this and another dual quaternion.
863
844
  * @param dq - The other dual quaternion.
864
845
  * @param t - The interpolation amount in `[0,1]`.
865
- * @param out - The dual quaternion to store the result in.
866
846
  * @returns The interpolated value.
867
847
  */
868
- lerp(dq, t, out = new DualQuaternion()) {
869
- return lerp(this, dq, t, out);
848
+ lerp(dq, t) {
849
+ return lerp(this, dq, t, new DualQuaternion());
870
850
  }
871
851
  /**
872
852
  * Calculate the inverse of this dual quaternion. If this dual quaternion is normalized, the conjugate is equivalent and faster to calculate.
873
- * @param out - The dual quaternion to store the result in.
874
853
  * @returns The inverse.
875
854
  */
876
- invert(out = new DualQuaternion()) {
877
- return invert(this, out);
855
+ invert() {
856
+ return invert(this, new DualQuaternion());
878
857
  }
879
858
  /**
880
859
  * Calculate the conjugate of this dual quaternion. If this dual quaternion is normalized, this is equivalent to its inverse and faster to calculate.
881
- * @param out - The dual quaternion to store the result in.
882
860
  * @returns The conjugate.
883
861
  */
884
- conjugate(out = new DualQuaternion()) {
885
- return conjugate(this, out);
862
+ conjugate() {
863
+ return conjugate(this, new DualQuaternion());
886
864
  }
887
865
  /** Get the magnitude (length) of this dual quaternion. */
888
866
  get magnitude() {
@@ -894,11 +872,10 @@ export default class DualQuaternion extends Float32Array {
894
872
  }
895
873
  /**
896
874
  * Normalize this dual quaternion.
897
- * @param out - The dual quaternion to store the result in.
898
875
  * @returns The normalized dual quaternion.
899
876
  */
900
- normalize(out = new DualQuaternion()) {
901
- return normalize(this, out);
877
+ normalize() {
878
+ return normalize(this, new DualQuaternion());
902
879
  }
903
880
  /**
904
881
  * Determine whether or not this dual quaternion is exactly equivalent to another.