@lakuna/umath 1.3.5 → 1.3.7

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