@lakuna/umath 1.3.4 → 1.3.6

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 (162) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +7 -9
  3. package/dist/algorithms/combinations.d.ts +7 -0
  4. package/dist/algorithms/combinations.d.ts.map +1 -1
  5. package/dist/algorithms/combinations.js +8 -1
  6. package/dist/algorithms/combinations.js.map +1 -1
  7. package/dist/algorithms/degreesToRadians.d.ts +7 -0
  8. package/dist/algorithms/degreesToRadians.d.ts.map +1 -1
  9. package/dist/algorithms/degreesToRadians.js +7 -0
  10. package/dist/algorithms/degreesToRadians.js.map +1 -1
  11. package/dist/algorithms/factorial.d.ts +6 -0
  12. package/dist/algorithms/factorial.d.ts.map +1 -1
  13. package/dist/algorithms/factorial.js +15 -5
  14. package/dist/algorithms/factorial.js.map +1 -1
  15. package/dist/algorithms/fibonacci.d.ts +6 -1
  16. package/dist/algorithms/fibonacci.d.ts.map +1 -1
  17. package/dist/algorithms/fibonacci.js +6 -1
  18. package/dist/algorithms/fibonacci.js.map +1 -1
  19. package/dist/algorithms/greatestCommonDivisor.d.ts +14 -0
  20. package/dist/algorithms/greatestCommonDivisor.d.ts.map +1 -1
  21. package/dist/algorithms/greatestCommonDivisor.js +7 -9
  22. package/dist/algorithms/greatestCommonDivisor.js.map +1 -1
  23. package/dist/algorithms/hypergeometricPmf.d.ts +9 -0
  24. package/dist/algorithms/hypergeometricPmf.d.ts.map +1 -1
  25. package/dist/algorithms/hypergeometricPmf.js +10 -1
  26. package/dist/algorithms/hypergeometricPmf.js.map +1 -1
  27. package/dist/algorithms/isPrime.d.ts +6 -0
  28. package/dist/algorithms/isPrime.d.ts.map +1 -1
  29. package/dist/algorithms/isPrime.js +8 -1
  30. package/dist/algorithms/isPrime.js.map +1 -1
  31. package/dist/algorithms/permutations.d.ts +7 -0
  32. package/dist/algorithms/permutations.d.ts.map +1 -1
  33. package/dist/algorithms/permutations.js +8 -1
  34. package/dist/algorithms/permutations.js.map +1 -1
  35. package/dist/algorithms/primeFactorization.d.ts +7 -1
  36. package/dist/algorithms/primeFactorization.d.ts.map +1 -1
  37. package/dist/algorithms/primeFactorization.js +10 -3
  38. package/dist/algorithms/primeFactorization.js.map +1 -1
  39. package/dist/algorithms/radiansToDegrees.d.ts +7 -0
  40. package/dist/algorithms/radiansToDegrees.d.ts.map +1 -1
  41. package/dist/algorithms/radiansToDegrees.js +7 -0
  42. package/dist/algorithms/radiansToDegrees.js.map +1 -1
  43. package/dist/algorithms/summation.d.ts +8 -0
  44. package/dist/algorithms/summation.d.ts.map +1 -1
  45. package/dist/algorithms/summation.js +9 -0
  46. package/dist/algorithms/summation.js.map +1 -1
  47. package/dist/index.d.ts +32 -33
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +27 -27
  50. package/dist/index.js.map +1 -1
  51. package/dist/linalg/DualQuaternion.d.ts +460 -83
  52. package/dist/linalg/DualQuaternion.d.ts.map +1 -1
  53. package/dist/linalg/DualQuaternion.js +514 -133
  54. package/dist/linalg/DualQuaternion.js.map +1 -1
  55. package/dist/linalg/Matrix.d.ts +80 -12
  56. package/dist/linalg/Matrix.d.ts.map +1 -1
  57. package/dist/linalg/Matrix2.d.ts +337 -52
  58. package/dist/linalg/Matrix2.d.ts.map +1 -1
  59. package/dist/linalg/Matrix2.js +345 -61
  60. package/dist/linalg/Matrix2.js.map +1 -1
  61. package/dist/linalg/Matrix3.d.ts +470 -72
  62. package/dist/linalg/Matrix3.d.ts.map +1 -1
  63. package/dist/linalg/Matrix3.js +488 -94
  64. package/dist/linalg/Matrix3.js.map +1 -1
  65. package/dist/linalg/Matrix4.d.ts +842 -137
  66. package/dist/linalg/Matrix4.d.ts.map +1 -1
  67. package/dist/linalg/Matrix4.js +896 -175
  68. package/dist/linalg/Matrix4.js.map +1 -1
  69. package/dist/linalg/Quaternion.d.ts +395 -70
  70. package/dist/linalg/Quaternion.d.ts.map +1 -1
  71. package/dist/linalg/Quaternion.js +416 -70
  72. package/dist/linalg/Quaternion.js.map +1 -1
  73. package/dist/linalg/SlowMatrix.d.ts +79 -9
  74. package/dist/linalg/SlowMatrix.d.ts.map +1 -1
  75. package/dist/linalg/SlowMatrix.js +147 -27
  76. package/dist/linalg/SlowMatrix.js.map +1 -1
  77. package/dist/linalg/SlowSquareMatrix.d.ts +58 -3
  78. package/dist/linalg/SlowSquareMatrix.d.ts.map +1 -1
  79. package/dist/linalg/SlowSquareMatrix.js +111 -21
  80. package/dist/linalg/SlowSquareMatrix.js.map +1 -1
  81. package/dist/linalg/SquareMatrix.d.ts +26 -3
  82. package/dist/linalg/SquareMatrix.d.ts.map +1 -1
  83. package/dist/linalg/Vector.d.ts +148 -24
  84. package/dist/linalg/Vector.d.ts.map +1 -1
  85. package/dist/linalg/Vector2.d.ts +484 -84
  86. package/dist/linalg/Vector2.d.ts.map +1 -1
  87. package/dist/linalg/Vector2.js +487 -71
  88. package/dist/linalg/Vector2.js.map +1 -1
  89. package/dist/linalg/Vector3.d.ts +582 -98
  90. package/dist/linalg/Vector3.d.ts.map +1 -1
  91. package/dist/linalg/Vector3.js +625 -134
  92. package/dist/linalg/Vector3.js.map +1 -1
  93. package/dist/linalg/Vector4.d.ts +450 -75
  94. package/dist/linalg/Vector4.d.ts.map +1 -1
  95. package/dist/linalg/Vector4.js +447 -62
  96. package/dist/linalg/Vector4.js.map +1 -1
  97. package/dist/types/AxisAngle.d.ts +4 -1
  98. package/dist/types/AxisAngle.d.ts.map +1 -1
  99. package/dist/types/FieldOfView.d.ts +5 -0
  100. package/dist/types/FieldOfView.d.ts.map +1 -1
  101. package/dist/utility/BigNumber.d.ts +41 -8
  102. package/dist/utility/BigNumber.d.ts.map +1 -1
  103. package/dist/utility/BigNumber.js +47 -5
  104. package/dist/utility/BigNumber.js.map +1 -1
  105. package/dist/utility/MagnitudeError.d.ts +5 -0
  106. package/dist/utility/MagnitudeError.d.ts.map +1 -1
  107. package/dist/utility/MagnitudeError.js +6 -1
  108. package/dist/utility/MagnitudeError.js.map +1 -1
  109. package/dist/utility/MatrixSizeError.d.ts +5 -0
  110. package/dist/utility/MatrixSizeError.d.ts.map +1 -1
  111. package/dist/utility/MatrixSizeError.js +5 -0
  112. package/dist/utility/MatrixSizeError.js.map +1 -1
  113. package/dist/utility/PartialMatrixError.d.ts +5 -0
  114. package/dist/utility/PartialMatrixError.d.ts.map +1 -1
  115. package/dist/utility/PartialMatrixError.js +5 -0
  116. package/dist/utility/PartialMatrixError.js.map +1 -1
  117. package/dist/utility/SingularMatrixError.d.ts +8 -0
  118. package/dist/utility/SingularMatrixError.d.ts.map +1 -1
  119. package/dist/utility/SingularMatrixError.js +8 -0
  120. package/dist/utility/SingularMatrixError.js.map +1 -1
  121. package/dist/utility/epsilon.d.ts +1 -0
  122. package/dist/utility/epsilon.d.ts.map +1 -1
  123. package/dist/utility/epsilon.js +1 -0
  124. package/dist/utility/epsilon.js.map +1 -1
  125. package/package.json +20 -51
  126. package/src/algorithms/combinations.ts +4 -4
  127. package/src/algorithms/degreesToRadians.ts +3 -3
  128. package/src/algorithms/factorial.ts +13 -8
  129. package/src/algorithms/fibonacci.ts +3 -3
  130. package/src/algorithms/greatestCommonDivisor.ts +15 -19
  131. package/src/algorithms/hypergeometricPmf.ts +5 -6
  132. package/src/algorithms/isPrime.ts +4 -4
  133. package/src/algorithms/permutations.ts +4 -4
  134. package/src/algorithms/primeFactorization.ts +9 -9
  135. package/src/algorithms/radiansToDegrees.ts +3 -3
  136. package/src/algorithms/summation.ts +5 -5
  137. package/src/index.ts +35 -33
  138. package/src/linalg/DualQuaternion.ts +558 -804
  139. package/src/linalg/Matrix.ts +35 -36
  140. package/src/linalg/Matrix2.ts +277 -413
  141. package/src/linalg/Matrix3.ts +532 -737
  142. package/src/linalg/Matrix4.ts +1078 -1604
  143. package/src/linalg/Quaternion.ts +415 -690
  144. package/src/linalg/SlowMatrix.ts +118 -69
  145. package/src/linalg/SlowSquareMatrix.ts +85 -56
  146. package/src/linalg/SquareMatrix.ts +7 -7
  147. package/src/linalg/Vector.ts +71 -70
  148. package/src/linalg/Vector2.ts +380 -576
  149. package/src/linalg/Vector3.ts +544 -840
  150. package/src/linalg/Vector4.ts +383 -549
  151. package/src/types/AxisAngle.ts +1 -1
  152. package/src/utility/BigNumber.ts +33 -42
  153. package/src/utility/MagnitudeError.ts +4 -4
  154. package/src/utility/MatrixSizeError.ts +2 -3
  155. package/src/utility/PartialMatrixError.ts +2 -3
  156. package/src/utility/SingularMatrixError.ts +2 -2
  157. package/src/utility/epsilon.ts +1 -4
  158. package/dist/types/IntegerRepresentation.d.ts +0 -2
  159. package/dist/types/IntegerRepresentation.d.ts.map +0 -1
  160. package/dist/types/IntegerRepresentation.js +0 -2
  161. package/dist/types/IntegerRepresentation.js.map +0 -1
  162. package/src/types/IntegerRepresentation.ts +0 -2
@@ -1,98 +1,498 @@
1
- import type { Matrix2Like } from "#Matrix2";
2
- import type { Matrix3Like } from "#Matrix3";
3
- import type { Matrix4Like } from "#Matrix4";
4
- import type Vector from "#Vector";
5
- import Vector3, { type Vector3Like } from "#Vector3";
6
- export type Vector2Like = Vector2 | [number, number];
7
- export declare function createVector2Like(): Vector2Like;
8
- export declare function fromValues<T extends Vector2Like>(x: number, y: number, out: T): T;
9
- export declare function equals(a: Vector2Like, b: Vector2Like): boolean;
10
- export declare function exactEquals(a: Vector2Like, b: Vector2Like): boolean;
11
- export declare function add<T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T): T;
12
- export declare function copy<T extends Vector2Like>(vector: Vector2Like, out: T): T;
13
- export declare function multiply<T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T): T;
14
- export declare function divide<T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T): T;
15
- export declare function subtract<T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T): T;
16
- export declare function ceil<T extends Vector2Like>(vector: Vector2Like, out: T): T;
17
- export declare function floor<T extends Vector2Like>(vector: Vector2Like, out: T): T;
18
- export declare function round<T extends Vector2Like>(vector: Vector2Like, out: T): T;
19
- export declare function min<T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T): T;
20
- export declare function max<T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T): T;
21
- export declare function scale<T extends Vector2Like>(vector: Vector2Like, scalar: number, out: T): T;
22
- export declare function scaleAndAdd<T extends Vector2Like>(a: Vector2Like, b: Vector2Like, scalar: number, out: T): T;
23
- export declare function distance(a: Vector2Like, b: Vector2Like): number;
24
- export declare function squaredDistance(a: Vector2Like, b: Vector2Like): number;
25
- export declare function getMagnitude(vector: Vector2Like): number;
26
- export declare function getSquaredMagnitude(vector: Vector2Like): number;
27
- export declare function negate<T extends Vector2Like>(vector: Vector2Like, out: T): T;
28
- export declare function invert<T extends Vector2Like>(vector: Vector2Like, out: T): T;
29
- export declare function normalize<T extends Vector2Like>(vector: Vector2Like, out: T): T;
30
- export declare function dot(a: Vector2Like, b: Vector2Like): number;
31
- export declare function cross<T extends Vector3Like>(a: Vector2Like, b: Vector2Like, out: T): T;
32
- export declare function lerp<T extends Vector2Like>(a: Vector2Like, b: Vector2Like, t: number, out: T): T;
33
- export declare function random<T extends Vector2Like>(magnitude: number, out: T): T;
34
- export declare function transformMatrix2<T extends Vector2Like>(vector: Vector2Like, matrix: Matrix2Like, out: T): T;
35
- export declare function transformMatrix3<T extends Vector2Like>(vector: Vector2Like, matrix: Matrix3Like, out: T): T;
36
- export declare function transformMatrix4<T extends Vector2Like>(vector: Vector2Like, matrix: Matrix4Like, out: T): T;
37
- export declare function rotate<T extends Vector2Like>(vector: Vector2Like, origin: Vector2Like, radians: number, out: T): T;
38
- export declare function angle(a: Vector2Like, b: Vector2Like): number;
39
- export declare function zero<T extends Vector2Like>(out: T): T;
40
- export default class Vector2 extends Float32Array implements Vector {
41
- static fromValues(x: number, y: number): Vector2;
42
- static fromValues<T extends Vector2Like>(x: number, y: number, out: T): T;
1
+ import type { default as Vector, VectorLike } from "./Vector.js";
2
+ import { type Vector3Like } from "./Vector3.js";
3
+ import type { Matrix2Like } from "./Matrix2.js";
4
+ import type { Matrix3Like } from "./Matrix3.js";
5
+ import type { Matrix4Like } from "./Matrix4.js";
6
+ /** A quantity with magnitude and direction in two dimensions. */
7
+ export interface Vector2Like extends VectorLike {
8
+ /** The first component of this vector. */
9
+ 0: number;
10
+ /** The second component of this vector. */
11
+ 1: number;
12
+ }
13
+ /**
14
+ * Create a 2x1 vector-like object.
15
+ * @returns A 2x1 vector-like object.
16
+ */
17
+ export declare const createVector2Like: () => Vector2Like;
18
+ /**
19
+ * Create a vector with the given values.
20
+ * @param x - The first component.
21
+ * @param y - The second component.
22
+ * @param out - The vector to store the result in.
23
+ * @returns A new vector.
24
+ */
25
+ export declare const fromValues: <T extends Vector2Like>(x: number, y: number, out: T) => T;
26
+ /**
27
+ * Determine whether or not two vectors are roughly equivalent.
28
+ * @param a - The first vector.
29
+ * @param b - The second vector.
30
+ * @returns Whether or not the vectors are equivalent.
31
+ */
32
+ export declare const equals: (a: Vector2Like, b: Vector2Like) => boolean;
33
+ /**
34
+ * Determine whether or not two vectors are exactly equivalent.
35
+ * @param a - The first vector.
36
+ * @param b - The second vector.
37
+ * @returns Whether or not the vectors are equivalent.
38
+ */
39
+ export declare const exactEquals: (a: Vector2Like, b: Vector2Like) => boolean;
40
+ /**
41
+ * Add two vectors.
42
+ * @param a - The augend.
43
+ * @param b - The addend.
44
+ * @param out - The vector to store the result in.
45
+ * @returns The sum.
46
+ */
47
+ export declare const add: <T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T) => T;
48
+ /**
49
+ * Copy the values of one vector into another.
50
+ * @param vector - The vector to copy.
51
+ * @param out - The vector to store the result in.
52
+ * @returns The copy.
53
+ */
54
+ export declare const copy: <T extends Vector2Like>(vector: Vector2Like, out: T) => T;
55
+ /**
56
+ * Multiply the components in one vector by the corresponding components in another.
57
+ * @param a - The multiplicand.
58
+ * @param b - The multiplier.
59
+ * @param out - The vector to store the result in.
60
+ * @returns The product.
61
+ */
62
+ export declare const multiply: <T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T) => T;
63
+ /**
64
+ * Divide one vector by another.
65
+ * @param a - The dividend.
66
+ * @param b - The divisor.
67
+ * @param out - The vector to store the result in.
68
+ * @returns The quotient.
69
+ */
70
+ export declare const divide: <T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T) => T;
71
+ /**
72
+ * Subtract one vector from another.
73
+ * @param a - The minuend.
74
+ * @param b - The subtrahend.
75
+ * @param out - The vector to store the result in.
76
+ * @returns The difference.
77
+ */
78
+ export declare const subtract: <T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T) => T;
79
+ /**
80
+ * Round up the components of a vector.
81
+ * @param vector - The vector.
82
+ * @param out - The vector to store the result in.
83
+ * @returns The rounded vector.
84
+ */
85
+ export declare const ceil: <T extends Vector2Like>(vector: Vector2Like, out: T) => T;
86
+ /**
87
+ * Round down the components of a vector.
88
+ * @param vector - The vector.
89
+ * @param out - The vector to store the result in.
90
+ * @returns The rounded vector.
91
+ */
92
+ export declare const floor: <T extends Vector2Like>(vector: Vector2Like, out: T) => T;
93
+ /**
94
+ * Round the components of a vector.
95
+ * @param vector - The vector.
96
+ * @param out - The vector to store the result in.
97
+ * @returns The rounded vector.
98
+ */
99
+ export declare const round: <T extends Vector2Like>(vector: Vector2Like, out: T) => T;
100
+ /**
101
+ * Return the minimum of two vectors.
102
+ * @param a - The first vector.
103
+ * @param b - The second vector.
104
+ * @param out - The vector to store the result in.
105
+ * @returns The minimum.
106
+ */
107
+ export declare const min: <T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T) => T;
108
+ /**
109
+ * Return the maximum of two vectors.
110
+ * @param a - The first vector.
111
+ * @param b - The second vector.
112
+ * @param out - The vector to store the result in.
113
+ * @returns The maximum.
114
+ */
115
+ export declare const max: <T extends Vector2Like>(a: Vector2Like, b: Vector2Like, out: T) => T;
116
+ /**
117
+ * Multiply a vector by a scalar.
118
+ * @param vector - The multiplier.
119
+ * @param scalar - The multiplicand.
120
+ * @param out - The vector to store the result in.
121
+ * @returns The product.
122
+ */
123
+ export declare const scale: <T extends Vector2Like>(vector: Vector2Like, scalar: number, out: T) => T;
124
+ /**
125
+ * Add two vectors after multiplying the latter by a scalar.
126
+ * @param a - The augend.
127
+ * @param b - The addend.
128
+ * @param scalar - The multiplier.
129
+ * @param out - The vector to store the result in.
130
+ * @returns The sum.
131
+ */
132
+ export declare const scaleAndAdd: <T extends Vector2Like>(a: Vector2Like, b: Vector2Like, scalar: number, out: T) => T;
133
+ /**
134
+ * Calculate the Euclidean distance from one vector to another.
135
+ * @param a - The first vector.
136
+ * @param b - The second vector.
137
+ * @returns The distance.
138
+ * @see [Euclidean distance](https://en.wikipedia.org/wiki/Euclidean_distance)
139
+ */
140
+ export declare const distance: (a: Vector2Like, b: Vector2Like) => number;
141
+ /**
142
+ * Calculate the squared Euclidean distance from one vector to another.
143
+ * @param a - The first vector.
144
+ * @param b - The other vector.
145
+ * @returns The squared distance.
146
+ * @see [Euclidean distance](https://en.wikipedia.org/wiki/Euclidean_distance)
147
+ */
148
+ export declare const squaredDistance: (a: Vector2Like, b: Vector2Like) => number;
149
+ /**
150
+ * Get the magnitude (length) of a vector.
151
+ * @param vector - The vector.
152
+ * @returns The magnitude.
153
+ */
154
+ export declare const getMagnitude: (vector: Vector2Like) => number;
155
+ /**
156
+ * Get the squared magnitude (length) of a vector.
157
+ * @param vector - The vector.
158
+ * @returns The squared magnitude.
159
+ */
160
+ export declare const getSquaredMagnitude: (vector: Vector2Like) => number;
161
+ /**
162
+ * Negate a vector.
163
+ * @param vector - The vector.
164
+ * @param out - The vector to store the result in.
165
+ * @returns The negated vector.
166
+ */
167
+ export declare const negate: <T extends Vector2Like>(vector: Vector2Like, out: T) => T;
168
+ /**
169
+ * Calculate the multiplicative inverse of the components of a vector.
170
+ * @param vector - The vector.
171
+ * @param out - The vector to store the result in.
172
+ * @returns The inverted vector.
173
+ */
174
+ export declare const invert: <T extends Vector2Like>(vector: Vector2Like, out: T) => T;
175
+ /**
176
+ * Normalize a vector.
177
+ * @param vector - The vector.
178
+ * @param out - The vector to store the result in.
179
+ * @returns The normalized vector.
180
+ * @see [Unit vector](https://en.wikipedia.org/wiki/Unit_vector)
181
+ */
182
+ export declare const normalize: <T extends Vector2Like>(vector: Vector2Like, out: T) => T;
183
+ /**
184
+ * Calculate the dot product of two vectors.
185
+ * @param a - The multiplicand.
186
+ * @param b - The multiplier.
187
+ * @returns The dot product.
188
+ * @see [Dot product](https://en.wikipedia.org/wiki/Dot_product)
189
+ */
190
+ export declare const dot: (a: Vector2Like, b: Vector2Like) => number;
191
+ /**
192
+ * Calculate the cross product of two vectors.
193
+ * @param a - The multiplicand.
194
+ * @param b - The multiplier.
195
+ * @param out - The vector to store the result in.
196
+ * @returns The cross product.
197
+ * @see [Cross product](https://en.wikipedia.org/wiki/Cross_product)
198
+ */
199
+ export declare const cross: <T extends Vector3Like>(a: Vector2Like, b: Vector2Like, out: T) => T;
200
+ /**
201
+ * Perform a linear interpolation between two vectors.
202
+ * @param a - The first vector.
203
+ * @param b - The second vector.
204
+ * @param t - The interpolation amount (in `[0,1]`).
205
+ * @param out - The vector to store the result in.
206
+ * @returns The interpolated vector.
207
+ * @see [Linear interpolation](https://en.wikipedia.org/wiki/Linear_interpolation)
208
+ */
209
+ export declare const lerp: <T extends Vector2Like>(a: Vector2Like, b: Vector2Like, t: number, out: T) => T;
210
+ /**
211
+ * Set a vector to a random value with the given magnitude.
212
+ * @param magnitude - The magnitude.
213
+ * @param out - The vector to store the result in.
214
+ * @returns The vector.
215
+ */
216
+ export declare const random: <T extends Vector2Like>(magnitude: number, out: T) => T;
217
+ /**
218
+ * Transform a vector by a two-by-two matrix.
219
+ * @param vector - The vector (multiplier).
220
+ * @param matrix - The matrix (multiplicand).
221
+ * @param out - The vector to store the result in.
222
+ * @returns The transformed vector.
223
+ * @see [Transformation matrix](https://en.wikipedia.org/wiki/Transformation_matrix)
224
+ */
225
+ export declare const transformMatrix2: <T extends Vector2Like>(vector: Vector2Like, matrix: Matrix2Like, out: T) => T;
226
+ /**
227
+ * Transform a vector by a three-by-three matrix.
228
+ * @param vector - The vector (multiplier).
229
+ * @param matrix - The matrix (multiplicand).
230
+ * @param out - The vector to store the result in.
231
+ * @returns The transformed vector.
232
+ * @see [Transformation matrix](https://en.wikipedia.org/wiki/Transformation_matrix)
233
+ */
234
+ export declare const transformMatrix3: <T extends Vector2Like>(vector: Vector2Like, matrix: Matrix3Like, out: T) => T;
235
+ /**
236
+ * Transform a vector by a four-by-four matrix.
237
+ * @param vector - The vector (multiplier).
238
+ * @param matrix - The matrix (multiplicand).
239
+ * @param out - The vector to store the result in.
240
+ * @returns The transformed vector.
241
+ * @see [Transformation matrix](https://en.wikipedia.org/wiki/Transformation_matrix)
242
+ */
243
+ export declare const transformMatrix4: <T extends Vector2Like>(vector: Vector2Like, matrix: Matrix4Like, out: T) => T;
244
+ /**
245
+ * Rotate a vector.
246
+ * @param vector - The vector.
247
+ * @param origin - The origin of the rotation.
248
+ * @param r - The angle of rotation in radians.
249
+ * @param out - The vector to store the result in.
250
+ * @returns The rotated vector.
251
+ */
252
+ export declare const rotate: <T extends Vector2Like>(vector: Vector2Like, origin: Vector2Like, r: number, out: T) => T;
253
+ /**
254
+ * Get the angle from one vector to another in radians.
255
+ * @param a - The first vector.
256
+ * @param b - The second vector.
257
+ * @returns The angular distance.
258
+ */
259
+ export declare const angle: (a: Vector2Like, b: Vector2Like) => number;
260
+ /**
261
+ * Set a vector to the zero vector.
262
+ * @param out - The vector to store the result in.
263
+ * @returns This vector.
264
+ */
265
+ export declare const zero: <T extends Vector2Like>(out: T) => T;
266
+ /**
267
+ * A quantity with magnitude and direction in two dimensions.
268
+ * @see [Euclidean vector](https://en.wikipedia.org/wiki/Euclidean_vector)
269
+ */
270
+ export default class Vector2 extends Float32Array implements Vector, Vector2Like {
271
+ /**
272
+ * Create a vector with the given values.
273
+ * @param x - The first component.
274
+ * @param y - The second component.
275
+ * @param out - The vector to store the result in.
276
+ * @returns A new vector.
277
+ */
278
+ static fromValues<T extends Vector2Like>(x: number, y: number, out?: T): T;
279
+ /**
280
+ * Create a two-dimensional zero vector.
281
+ * @see [Euclidean vector](https://en.wikipedia.org/wiki/Euclidean_vector)
282
+ */
43
283
  constructor();
284
+ /** The first component of this vector. */
285
+ 0: number;
286
+ /** The second component of this vector. */
287
+ 1: number;
288
+ /**
289
+ * Determine whether this vector is roughly equivalent to another.
290
+ * @param vector - The other vector.
291
+ * @returns Whether the vectors are equivalent.
292
+ */
44
293
  equals(vector: Vector2Like): boolean;
294
+ /**
295
+ * Determine whether or not this vector is exactly equivalent to another.
296
+ * @param vector - The other vector.
297
+ * @returns Whether or not the vectors are equivalent.
298
+ */
45
299
  exactEquals(vector: Vector2Like): boolean;
46
- add(vector: Vector2Like): Vector2;
47
- add<T extends Vector2Like>(vector: Vector2Like, out: T): T;
48
- clone(): Vector2;
49
- clone<T extends Vector2Like>(out: T): T;
300
+ /**
301
+ * Add another vector to this one.
302
+ * @param vector - The other vector.
303
+ * @param out - The vector to store the result in.
304
+ * @returns The sum of the vectors.
305
+ */
306
+ add<T extends Vector2Like>(vector: Vector2Like, out?: T): T;
307
+ /**
308
+ * Copy the values from this vector to another one.
309
+ * @param out - The vector to store the result in.
310
+ * @returns The copy.
311
+ */
312
+ clone<T extends Vector2Like>(out?: T): T;
313
+ /**
314
+ * Copy the values from another vector into this one.
315
+ * @param vector - The vector to copy.
316
+ * @returns This vector.
317
+ */
50
318
  copy(vector: Vector2Like): this;
51
- multiply(vector: Vector2Like): Vector2;
52
- multiply<T extends Vector2Like>(vector: Vector2Like, out: T): T;
53
- divide(vector: Vector2Like): Vector2;
54
- divide<T extends Vector2Like>(vector: Vector2Like, out: T): T;
55
- subtract(vector: Vector2Like): Vector2;
56
- subtract<T extends Vector2Like>(vector: Vector2Like, out: T): T;
57
- ceil(): Vector2;
58
- ceil<T extends Vector2Like>(out: T): T;
59
- floor(): Vector2;
60
- floor<T extends Vector2Like>(out: T): T;
61
- round(): Vector2;
62
- round<T extends Vector2Like>(out: T): T;
63
- min(vector: Vector2Like): Vector2;
64
- min<T extends Vector2Like>(vector: Vector2Like, out: T): T;
65
- max(vector: Vector2Like): Vector2;
66
- max<T extends Vector2Like>(vector: Vector2Like, out: T): T;
67
- scale(scalar: number): Vector2;
68
- scale<T extends Vector2Like>(scalar: number, out: T): T;
69
- scaleAndAdd(vector: Vector2Like, scalar: number): Vector2;
70
- scaleAndAdd<T extends Vector2Like>(vector: Vector2Like, scalar: number, out: T): T;
319
+ /**
320
+ * Multiply the components in this vector by the corresponding components in another.
321
+ * @param vector - The other vector.
322
+ * @param out - The vector to store the result in.
323
+ * @returns The product of the vectors.
324
+ */
325
+ multiply<T extends Vector2Like>(vector: Vector2Like, out?: T): T;
326
+ /**
327
+ * Divide this vector by another.
328
+ * @param vector - The other vector.
329
+ * @param out - The vector to store the result in.
330
+ * @returns The quotient of the vectors.
331
+ */
332
+ divide<T extends Vector2Like>(vector: Vector2Like, out?: T): T;
333
+ /**
334
+ * Subtract another vector from this one.
335
+ * @param vector - The other vector.
336
+ * @param out - The vector to store the result in.
337
+ * @returns The difference between the vectors.
338
+ */
339
+ subtract<T extends Vector2Like>(vector: Vector2Like, out?: T): T;
340
+ /**
341
+ * Round up the components of this vector.
342
+ * @param out - The vector to store the result in.
343
+ * @returns The rounded vector.
344
+ */
345
+ ceil<T extends Vector2Like>(out?: T): T;
346
+ /**
347
+ * Round down the components of this vector.
348
+ * @param out - The vector to store the result in.
349
+ * @returns The rounded vector.
350
+ */
351
+ floor<T extends Vector2Like>(out?: T): T;
352
+ /**
353
+ * Round the components of this vector.
354
+ * @param out - The vector to store the result in.
355
+ * @returns The rounded vector.
356
+ */
357
+ round<T extends Vector2Like>(out?: T): T;
358
+ /**
359
+ * Return the minimum of this and another vector.
360
+ * @param vector - The other vector.
361
+ * @param out - The vector to store the result in.
362
+ * @returns The minimum.
363
+ */
364
+ min<T extends Vector2Like>(vector: Vector2Like, out?: T): T;
365
+ /**
366
+ * Return the maximum of this and another vector.
367
+ * @param vector - The other vector.
368
+ * @param out - The vector to store the result in.
369
+ * @returns The maximum.
370
+ */
371
+ max<T extends Vector2Like>(vector: Vector2Like, out?: T): T;
372
+ /**
373
+ * Scale this vector by a scalar.
374
+ * @param scalar - The scalar.
375
+ * @param out - The vector to store the result in.
376
+ * @returns The scaled vector.
377
+ */
378
+ scale<T extends Vector2Like>(scalar: number, out?: T): T;
379
+ /**
380
+ * Add another vector to this one after scaling the other by a scalar.
381
+ * @param vector - The other vector.
382
+ * @param scalar - The scalar.
383
+ * @param out - The vector to store the result in.
384
+ * @returns The sum.
385
+ */
386
+ scaleAndAdd<T extends Vector2Like>(vector: Vector2Like, scalar: number, out?: T): T;
387
+ /**
388
+ * Calculate the Euclidean distance from this vector to another.
389
+ * @param vector - The other vector.
390
+ * @returns The distance.
391
+ * @see [Euclidean distance](https://en.wikipedia.org/wiki/Euclidean_distance)
392
+ */
71
393
  distance(vector: Vector2Like): number;
394
+ /**
395
+ * Calculate the squared Euclidean distance from this vector to another.
396
+ * @param vector - The other vector.
397
+ * @returns The squared distance.
398
+ * @see [Euclidean distance](https://en.wikipedia.org/wiki/Euclidean_distance)
399
+ */
72
400
  squaredDistance(vector: Vector2Like): number;
401
+ /** Get the magnitude (length) of this vector. */
73
402
  get magnitude(): number;
403
+ /** Get the squared magnitude (length) of this vector. */
74
404
  get squaredMagnitude(): number;
75
- negate(): Vector2;
76
- negate<T extends Vector2Like>(out: T): T;
77
- invert(): Vector2;
78
- invert<T extends Vector2Like>(out: T): T;
79
- normalize(): Vector2;
80
- normalize<T extends Vector2Like>(out: T): T;
405
+ /**
406
+ * Negate this vector.
407
+ * @param out - The vector to store the result in.
408
+ * @returns The negated vector.
409
+ */
410
+ negate<T extends Vector2Like>(out?: T): T;
411
+ /**
412
+ * Calculate the multiplicative inverse of the components of this vector.
413
+ * @param out - The vector to store the result in.
414
+ * @returns The inverted vector.
415
+ */
416
+ invert<T extends Vector2Like>(out?: T): T;
417
+ /**
418
+ * Normalize this vector.
419
+ * @param out - The vector to store the result in.
420
+ * @returns The normalized vector.
421
+ * @see [Unit vector](https://en.wikipedia.org/wiki/Unit_vector)
422
+ */
423
+ normalize<T extends Vector2Like>(out?: T): T;
424
+ /**
425
+ * Calculate the dot product of this and another vector.
426
+ * @param vector - The other vector.
427
+ * @returns The dot product.
428
+ * @see [Dot product](https://en.wikipedia.org/wiki/Dot_product)
429
+ */
81
430
  dot(vector: Vector2Like): number;
82
- cross(vector: Vector2Like): Vector3;
83
- cross<T extends Vector3Like>(vector: Vector2Like, out: T): T;
84
- lerp(vector: Vector2Like, t: number): Vector2;
85
- lerp<T extends Vector2Like>(vector: Vector2Like, t: number, out: T): T;
431
+ /**
432
+ * Calculate the cross product of this and another vector.
433
+ * @param vector - The other vector.
434
+ * @param out - The vector to store the result in.
435
+ * @returns The cross product.
436
+ * @see [Cross product](https://en.wikipedia.org/wiki/Cross_product)
437
+ */
438
+ cross<T extends Vector3Like>(vector: Vector2Like, out?: T): T;
439
+ /**
440
+ * Perform a linear interpolation between this and another vector.
441
+ * @param vector - The other vector.
442
+ * @param t - The interpolation amount (in `[0,1]`).
443
+ * @param out - The vector to store the result in.
444
+ * @returns The interpolated vector.
445
+ * @see [Linear interpolation](https://en.wikipedia.org/wiki/Linear_interpolation)
446
+ */
447
+ lerp<T extends Vector2Like>(vector: Vector2Like, t: number, out?: T): T;
448
+ /**
449
+ * Set this vector to a random value with the given magnitude.
450
+ * @param magnitude - The magnitude.
451
+ * @returns This vector.
452
+ */
86
453
  random(magnitude?: number): this;
87
- transformMatrix2(matrix: Matrix2Like): Vector2;
88
- transformMatrix2<T extends Vector2Like>(matrix: Matrix2Like, out: T): T;
89
- transformMatrix3(matrix: Matrix3Like): Vector2;
90
- transformMatrix3<T extends Vector2Like>(matrix: Matrix3Like, out: T): T;
91
- transformMatrix4(matrix: Matrix4Like): Vector2;
92
- transformMatrix4<T extends Vector2Like>(matrix: Matrix4Like, out: T): T;
93
- rotate(origin: Vector2Like, radians: number): Vector2;
94
- rotate<T extends Vector2Like>(origin: Vector2Like, radians: number, out: T): T;
454
+ /**
455
+ * Transform this vector by a two-by-two matrix.
456
+ * @param matrix - The matrix.
457
+ * @param out - The vector to store the result in.
458
+ * @returns The transformed vector.
459
+ * @see [Transformation matrix](https://en.wikipedia.org/wiki/Transformation_matrix)
460
+ */
461
+ transformMatrix2<T extends Vector2Like>(matrix: Matrix2Like, out?: T): T;
462
+ /**
463
+ * Transform this vector by a three-by-three matrix.
464
+ * @param matrix - The matrix.
465
+ * @param out - The vector to store the result in.
466
+ * @returns The transformed vector.
467
+ * @see [Transformation matrix](https://en.wikipedia.org/wiki/Transformation_matrix)
468
+ */
469
+ transformMatrix3<T extends Vector2Like>(matrix: Matrix3Like, out?: T): T;
470
+ /**
471
+ * Transform this vector by a four-by-four matrix.
472
+ * @param matrix - The matrix.
473
+ * @param out - The vector to store the result in.
474
+ * @returns The transformed vector.
475
+ * @see [Transformation matrix](https://en.wikipedia.org/wiki/Transformation_matrix)
476
+ */
477
+ transformMatrix4<T extends Vector2Like>(matrix: Matrix4Like, out?: T): T;
478
+ /**
479
+ * Rotate this vector.
480
+ * @param origin - The origin of the rotation.
481
+ * @param radians - The angle of rotation in radians.
482
+ * @param out - The vector to store the result in.
483
+ * @returns The rotated vector.
484
+ */
485
+ rotate<T extends Vector2Like>(origin: Vector2Like, radians: number, out?: T): T;
486
+ /**
487
+ * Get the angle from this to another vector in radians.
488
+ * @param vector - The other vector.
489
+ * @returns The angular distance.
490
+ */
95
491
  angle(vector: Vector2Like): number;
492
+ /**
493
+ * Set this to the zero vector.
494
+ * @returns This vector.
495
+ */
96
496
  zero(): this;
97
497
  }
98
498
  //# sourceMappingURL=Vector2.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../../src/linalg/Vector2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Vector2.d.ts","sourceRoot":"","sources":["../../src/linalg/Vector2.ts"],"names":[],"mappings":"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"}