@aura3d/math 4.3.7 → 4.5.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 (65) hide show
  1. package/dist/SphericalHarmonics3.d.ts +6 -3
  2. package/dist/SphericalHarmonics3.d.ts.map +1 -1
  3. package/dist/SphericalHarmonics3.js +8 -5
  4. package/dist/SphericalHarmonics3.js.map +1 -1
  5. package/dist/three/Box3.d.ts +106 -0
  6. package/dist/three/Box3.d.ts.map +1 -0
  7. package/dist/three/Box3.js +348 -0
  8. package/dist/three/Box3.js.map +1 -0
  9. package/dist/three/Color.d.ts +127 -0
  10. package/dist/three/Color.d.ts.map +1 -0
  11. package/dist/three/Color.js +501 -0
  12. package/dist/three/Color.js.map +1 -0
  13. package/dist/three/Euler.d.ts +50 -0
  14. package/dist/three/Euler.d.ts.map +1 -0
  15. package/dist/three/Euler.js +210 -0
  16. package/dist/three/Euler.js.map +1 -0
  17. package/dist/three/Frustum.d.ts +59 -0
  18. package/dist/three/Frustum.d.ts.map +1 -0
  19. package/dist/three/Frustum.js +135 -0
  20. package/dist/three/Frustum.js.map +1 -0
  21. package/dist/three/Matrix3.d.ts +56 -0
  22. package/dist/three/Matrix3.d.ts.map +1 -0
  23. package/dist/three/Matrix3.js +248 -0
  24. package/dist/three/Matrix3.js.map +1 -0
  25. package/dist/three/Matrix4.d.ts +79 -0
  26. package/dist/three/Matrix4.d.ts.map +1 -0
  27. package/dist/three/Matrix4.js +708 -0
  28. package/dist/three/Matrix4.js.map +1 -0
  29. package/dist/three/Plane.d.ts +65 -0
  30. package/dist/three/Plane.d.ts.map +1 -0
  31. package/dist/three/Plane.js +135 -0
  32. package/dist/three/Plane.js.map +1 -0
  33. package/dist/three/Quaternion.d.ts +91 -0
  34. package/dist/three/Quaternion.d.ts.map +1 -0
  35. package/dist/three/Quaternion.js +444 -0
  36. package/dist/three/Quaternion.js.map +1 -0
  37. package/dist/three/Ray.d.ts +56 -0
  38. package/dist/three/Ray.d.ts.map +1 -0
  39. package/dist/three/Ray.js +340 -0
  40. package/dist/three/Ray.js.map +1 -0
  41. package/dist/three/Sphere.d.ts +58 -0
  42. package/dist/three/Sphere.d.ts.map +1 -0
  43. package/dist/three/Sphere.js +166 -0
  44. package/dist/three/Sphere.js.map +1 -0
  45. package/dist/three/Triangle.d.ts +58 -0
  46. package/dist/three/Triangle.d.ts.map +1 -0
  47. package/dist/three/Triangle.js +229 -0
  48. package/dist/three/Triangle.js.map +1 -0
  49. package/dist/three/Vector2.d.ts +88 -0
  50. package/dist/three/Vector2.d.ts.map +1 -0
  51. package/dist/three/Vector2.js +283 -0
  52. package/dist/three/Vector2.js.map +1 -0
  53. package/dist/three/Vector3.d.ts +137 -0
  54. package/dist/three/Vector3.d.ts.map +1 -0
  55. package/dist/three/Vector3.js +458 -0
  56. package/dist/three/Vector3.js.map +1 -0
  57. package/dist/three/Vector4.d.ts +100 -0
  58. package/dist/three/Vector4.d.ts.map +1 -0
  59. package/dist/three/Vector4.js +443 -0
  60. package/dist/three/Vector4.js.map +1 -0
  61. package/dist/three/index.d.ts +29 -0
  62. package/dist/three/index.d.ts.map +1 -0
  63. package/dist/three/index.js +29 -0
  64. package/dist/three/index.js.map +1 -0
  65. package/package.json +5 -1
@@ -0,0 +1,137 @@
1
+ import { Vector3 as ImmutableVector3 } from "../Vector3.js";
2
+ import type { Euler } from "./Euler.js";
3
+ /** Anything with the `{ x, y, z }` shape, including the immutable `@aura3d/math` Vector3. */
4
+ export interface Vector3Like {
5
+ readonly x: number;
6
+ readonly y: number;
7
+ readonly z: number;
8
+ }
9
+ /** Minimal buffer-attribute shape three's `fromBufferAttribute` reads. */
10
+ export interface BufferAttributeLike3 {
11
+ getX(index: number): number;
12
+ getY(index: number): number;
13
+ getZ(index: number): number;
14
+ }
15
+ interface ElementsLike {
16
+ readonly elements: ArrayLike<number>;
17
+ }
18
+ /** The camera fields `project` / `unproject` read (three's `Camera`). */
19
+ export interface ProjectionCameraLike {
20
+ readonly matrixWorld: ElementsLike;
21
+ readonly matrixWorldInverse: ElementsLike;
22
+ readonly projectionMatrix: ElementsLike;
23
+ readonly projectionMatrixInverse: ElementsLike;
24
+ }
25
+ /**
26
+ * Mutable three.js-compatible 3-D vector. Every modifier mutates `this` and
27
+ * returns `this`, exactly like three r185 `Vector3`. Use `fromImmutable` and
28
+ * `toImmutable` to cross into the immutable `@aura3d/math` Vector3.
29
+ */
30
+ export declare class Vector3 {
31
+ readonly isVector3: true;
32
+ x: number;
33
+ y: number;
34
+ z: number;
35
+ constructor(x?: number, y?: number, z?: number);
36
+ /** Copy the components of an immutable `@aura3d/math` Vector3 (or any `{x, y, z}`) into this vector. */
37
+ fromImmutable(v: Vector3Like): this;
38
+ /** Snapshot as an immutable `@aura3d/math` Vector3 (throws on non-finite components, like that class). */
39
+ toImmutable(): ImmutableVector3;
40
+ set(x: number, y: number, z?: number): this;
41
+ setScalar(scalar: number): this;
42
+ setX(x: number): this;
43
+ setY(y: number): this;
44
+ setZ(z: number): this;
45
+ setComponent(index: number, value: number): this;
46
+ getComponent(index: number): number;
47
+ clone(): this;
48
+ copy(v: Vector3Like): this;
49
+ add(v: Vector3Like): this;
50
+ addScalar(s: number): this;
51
+ addVectors(a: Vector3Like, b: Vector3Like): this;
52
+ addScaledVector(v: Vector3Like, s: number): this;
53
+ sub(v: Vector3Like): this;
54
+ subScalar(s: number): this;
55
+ subVectors(a: Vector3Like, b: Vector3Like): this;
56
+ multiply(v: Vector3Like): this;
57
+ multiplyScalar(scalar: number): this;
58
+ multiplyVectors(a: Vector3Like, b: Vector3Like): this;
59
+ applyEuler(euler: Euler): this;
60
+ applyAxisAngle(axis: Vector3Like, angle: number): this;
61
+ applyMatrix3(m: ElementsLike): this;
62
+ applyNormalMatrix(m: ElementsLike): this;
63
+ applyMatrix4(m: ElementsLike): this;
64
+ applyQuaternion(q: {
65
+ readonly x: number;
66
+ readonly y: number;
67
+ readonly z: number;
68
+ readonly w: number;
69
+ }): this;
70
+ project(camera: ProjectionCameraLike): this;
71
+ unproject(camera: ProjectionCameraLike): this;
72
+ transformDirection(m: ElementsLike): this;
73
+ divide(v: Vector3Like): this;
74
+ divideScalar(scalar: number): this;
75
+ min(v: Vector3Like): this;
76
+ max(v: Vector3Like): this;
77
+ clamp(min: Vector3Like, max: Vector3Like): this;
78
+ clampScalar(minVal: number, maxVal: number): this;
79
+ clampLength(min: number, max: number): this;
80
+ floor(): this;
81
+ ceil(): this;
82
+ round(): this;
83
+ roundToZero(): this;
84
+ negate(): this;
85
+ dot(v: Vector3Like): number;
86
+ lengthSq(): number;
87
+ length(): number;
88
+ manhattanLength(): number;
89
+ normalize(): this;
90
+ setLength(length: number): this;
91
+ lerp(v: Vector3Like, alpha: number): this;
92
+ lerpVectors(v1: Vector3Like, v2: Vector3Like, alpha: number): this;
93
+ cross(v: Vector3Like): this;
94
+ crossVectors(a: Vector3Like, b: Vector3Like): this;
95
+ projectOnVector(v: Vector3): this;
96
+ projectOnPlane(planeNormal: Vector3): this;
97
+ reflect(normal: Vector3Like): this;
98
+ angleTo(v: Vector3): number;
99
+ distanceTo(v: Vector3Like): number;
100
+ distanceToSquared(v: Vector3Like): number;
101
+ manhattanDistanceTo(v: Vector3Like): number;
102
+ setFromSpherical(s: {
103
+ readonly radius: number;
104
+ readonly phi: number;
105
+ readonly theta: number;
106
+ }): this;
107
+ setFromSphericalCoords(radius: number, phi: number, theta: number): this;
108
+ setFromCylindrical(c: {
109
+ readonly radius: number;
110
+ readonly theta: number;
111
+ readonly y: number;
112
+ }): this;
113
+ setFromCylindricalCoords(radius: number, theta: number, y: number): this;
114
+ setFromMatrixPosition(m: ElementsLike): this;
115
+ setFromMatrixScale(m: ElementsLike): this;
116
+ setFromMatrixColumn(m: ElementsLike, index: number): this;
117
+ setFromMatrix3Column(m: ElementsLike, index: number): this;
118
+ setFromEuler(e: {
119
+ readonly x: number;
120
+ readonly y: number;
121
+ readonly z: number;
122
+ }): this;
123
+ setFromColor(c: {
124
+ readonly r: number;
125
+ readonly g: number;
126
+ readonly b: number;
127
+ }): this;
128
+ equals(v: Vector3Like): boolean;
129
+ fromArray(array: ArrayLike<number>, offset?: number): this;
130
+ toArray(array?: number[], offset?: number): number[];
131
+ fromBufferAttribute(attribute: BufferAttributeLike3, index: number): this;
132
+ random(): this;
133
+ randomDirection(): this;
134
+ [Symbol.iterator](): Generator<number, void, undefined>;
135
+ }
136
+ export {};
137
+ //# sourceMappingURL=Vector3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vector3.d.ts","sourceRoot":"","sources":["../../../../../packages/math/src/three/Vector3.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,458 @@
1
+ import { clamp } from "../MathUtils.js";
2
+ import { Vector3 as ImmutableVector3 } from "../Vector3.js";
3
+ import { Quaternion } from "./Quaternion.js";
4
+ /**
5
+ * Mutable three.js-compatible 3-D vector. Every modifier mutates `this` and
6
+ * returns `this`, exactly like three r185 `Vector3`. Use `fromImmutable` and
7
+ * `toImmutable` to cross into the immutable `@aura3d/math` Vector3.
8
+ */
9
+ export class Vector3 {
10
+ x;
11
+ y;
12
+ z;
13
+ constructor(x = 0, y = 0, z = 0) {
14
+ this.x = x;
15
+ this.y = y;
16
+ this.z = z;
17
+ }
18
+ /** Copy the components of an immutable `@aura3d/math` Vector3 (or any `{x, y, z}`) into this vector. */
19
+ fromImmutable(v) {
20
+ this.x = v.x;
21
+ this.y = v.y;
22
+ this.z = v.z;
23
+ return this;
24
+ }
25
+ /** Snapshot as an immutable `@aura3d/math` Vector3 (throws on non-finite components, like that class). */
26
+ toImmutable() {
27
+ return new ImmutableVector3(this.x, this.y, this.z);
28
+ }
29
+ set(x, y, z) {
30
+ if (z === undefined)
31
+ z = this.z; // sprite.scale.set(x, y)
32
+ this.x = x;
33
+ this.y = y;
34
+ this.z = z;
35
+ return this;
36
+ }
37
+ setScalar(scalar) {
38
+ this.x = scalar;
39
+ this.y = scalar;
40
+ this.z = scalar;
41
+ return this;
42
+ }
43
+ setX(x) {
44
+ this.x = x;
45
+ return this;
46
+ }
47
+ setY(y) {
48
+ this.y = y;
49
+ return this;
50
+ }
51
+ setZ(z) {
52
+ this.z = z;
53
+ return this;
54
+ }
55
+ setComponent(index, value) {
56
+ switch (index) {
57
+ case 0:
58
+ this.x = value;
59
+ break;
60
+ case 1:
61
+ this.y = value;
62
+ break;
63
+ case 2:
64
+ this.z = value;
65
+ break;
66
+ default: throw new Error(`THREE.Vector3: index is out of range: ${index}`);
67
+ }
68
+ return this;
69
+ }
70
+ getComponent(index) {
71
+ switch (index) {
72
+ case 0: return this.x;
73
+ case 1: return this.y;
74
+ case 2: return this.z;
75
+ default: throw new Error(`THREE.Vector3: index is out of range: ${index}`);
76
+ }
77
+ }
78
+ clone() {
79
+ return new this.constructor(this.x, this.y, this.z);
80
+ }
81
+ copy(v) {
82
+ this.x = v.x;
83
+ this.y = v.y;
84
+ this.z = v.z;
85
+ return this;
86
+ }
87
+ add(v) {
88
+ this.x += v.x;
89
+ this.y += v.y;
90
+ this.z += v.z;
91
+ return this;
92
+ }
93
+ addScalar(s) {
94
+ this.x += s;
95
+ this.y += s;
96
+ this.z += s;
97
+ return this;
98
+ }
99
+ addVectors(a, b) {
100
+ this.x = a.x + b.x;
101
+ this.y = a.y + b.y;
102
+ this.z = a.z + b.z;
103
+ return this;
104
+ }
105
+ addScaledVector(v, s) {
106
+ this.x += v.x * s;
107
+ this.y += v.y * s;
108
+ this.z += v.z * s;
109
+ return this;
110
+ }
111
+ sub(v) {
112
+ this.x -= v.x;
113
+ this.y -= v.y;
114
+ this.z -= v.z;
115
+ return this;
116
+ }
117
+ subScalar(s) {
118
+ this.x -= s;
119
+ this.y -= s;
120
+ this.z -= s;
121
+ return this;
122
+ }
123
+ subVectors(a, b) {
124
+ this.x = a.x - b.x;
125
+ this.y = a.y - b.y;
126
+ this.z = a.z - b.z;
127
+ return this;
128
+ }
129
+ multiply(v) {
130
+ this.x *= v.x;
131
+ this.y *= v.y;
132
+ this.z *= v.z;
133
+ return this;
134
+ }
135
+ multiplyScalar(scalar) {
136
+ this.x *= scalar;
137
+ this.y *= scalar;
138
+ this.z *= scalar;
139
+ return this;
140
+ }
141
+ multiplyVectors(a, b) {
142
+ this.x = a.x * b.x;
143
+ this.y = a.y * b.y;
144
+ this.z = a.z * b.z;
145
+ return this;
146
+ }
147
+ applyEuler(euler) {
148
+ return this.applyQuaternion(_quaternion.setFromEuler(euler));
149
+ }
150
+ applyAxisAngle(axis, angle) {
151
+ return this.applyQuaternion(_quaternion.setFromAxisAngle(axis, angle));
152
+ }
153
+ applyMatrix3(m) {
154
+ const x = this.x;
155
+ const y = this.y;
156
+ const z = this.z;
157
+ const e = m.elements;
158
+ this.x = e[0] * x + e[3] * y + e[6] * z;
159
+ this.y = e[1] * x + e[4] * y + e[7] * z;
160
+ this.z = e[2] * x + e[5] * y + e[8] * z;
161
+ return this;
162
+ }
163
+ applyNormalMatrix(m) {
164
+ return this.applyMatrix3(m).normalize();
165
+ }
166
+ applyMatrix4(m) {
167
+ const x = this.x;
168
+ const y = this.y;
169
+ const z = this.z;
170
+ const e = m.elements;
171
+ const w = 1 / (e[3] * x + e[7] * y + e[11] * z + e[15]);
172
+ this.x = (e[0] * x + e[4] * y + e[8] * z + e[12]) * w;
173
+ this.y = (e[1] * x + e[5] * y + e[9] * z + e[13]) * w;
174
+ this.z = (e[2] * x + e[6] * y + e[10] * z + e[14]) * w;
175
+ return this;
176
+ }
177
+ applyQuaternion(q) {
178
+ const vx = this.x;
179
+ const vy = this.y;
180
+ const vz = this.z;
181
+ const qx = q.x;
182
+ const qy = q.y;
183
+ const qz = q.z;
184
+ const qw = q.w;
185
+ // t = 2 * cross(q.xyz, v)
186
+ const tx = 2 * (qy * vz - qz * vy);
187
+ const ty = 2 * (qz * vx - qx * vz);
188
+ const tz = 2 * (qx * vy - qy * vx);
189
+ // v + q.w * t + cross(q.xyz, t)
190
+ this.x = vx + qw * tx + qy * tz - qz * ty;
191
+ this.y = vy + qw * ty + qz * tx - qx * tz;
192
+ this.z = vz + qw * tz + qx * ty - qy * tx;
193
+ return this;
194
+ }
195
+ project(camera) {
196
+ return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix);
197
+ }
198
+ unproject(camera) {
199
+ return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld);
200
+ }
201
+ transformDirection(m) {
202
+ // input: THREE.Matrix4 affine matrix; vector does not have to be a unit vector
203
+ const x = this.x;
204
+ const y = this.y;
205
+ const z = this.z;
206
+ const e = m.elements;
207
+ this.x = e[0] * x + e[4] * y + e[8] * z;
208
+ this.y = e[1] * x + e[5] * y + e[9] * z;
209
+ this.z = e[2] * x + e[6] * y + e[10] * z;
210
+ return this.normalize();
211
+ }
212
+ divide(v) {
213
+ this.x /= v.x;
214
+ this.y /= v.y;
215
+ this.z /= v.z;
216
+ return this;
217
+ }
218
+ divideScalar(scalar) {
219
+ return this.multiplyScalar(1 / scalar);
220
+ }
221
+ min(v) {
222
+ this.x = Math.min(this.x, v.x);
223
+ this.y = Math.min(this.y, v.y);
224
+ this.z = Math.min(this.z, v.z);
225
+ return this;
226
+ }
227
+ max(v) {
228
+ this.x = Math.max(this.x, v.x);
229
+ this.y = Math.max(this.y, v.y);
230
+ this.z = Math.max(this.z, v.z);
231
+ return this;
232
+ }
233
+ clamp(min, max) {
234
+ this.x = clamp(this.x, min.x, max.x);
235
+ this.y = clamp(this.y, min.y, max.y);
236
+ this.z = clamp(this.z, min.z, max.z);
237
+ return this;
238
+ }
239
+ clampScalar(minVal, maxVal) {
240
+ this.x = clamp(this.x, minVal, maxVal);
241
+ this.y = clamp(this.y, minVal, maxVal);
242
+ this.z = clamp(this.z, minVal, maxVal);
243
+ return this;
244
+ }
245
+ clampLength(min, max) {
246
+ const length = this.length();
247
+ return this.divideScalar(length || 1).multiplyScalar(clamp(length, min, max));
248
+ }
249
+ floor() {
250
+ this.x = Math.floor(this.x);
251
+ this.y = Math.floor(this.y);
252
+ this.z = Math.floor(this.z);
253
+ return this;
254
+ }
255
+ ceil() {
256
+ this.x = Math.ceil(this.x);
257
+ this.y = Math.ceil(this.y);
258
+ this.z = Math.ceil(this.z);
259
+ return this;
260
+ }
261
+ round() {
262
+ this.x = Math.round(this.x);
263
+ this.y = Math.round(this.y);
264
+ this.z = Math.round(this.z);
265
+ return this;
266
+ }
267
+ roundToZero() {
268
+ this.x = Math.trunc(this.x);
269
+ this.y = Math.trunc(this.y);
270
+ this.z = Math.trunc(this.z);
271
+ return this;
272
+ }
273
+ negate() {
274
+ this.x = -this.x;
275
+ this.y = -this.y;
276
+ this.z = -this.z;
277
+ return this;
278
+ }
279
+ dot(v) {
280
+ return this.x * v.x + this.y * v.y + this.z * v.z;
281
+ }
282
+ lengthSq() {
283
+ return this.x * this.x + this.y * this.y + this.z * this.z;
284
+ }
285
+ length() {
286
+ return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
287
+ }
288
+ manhattanLength() {
289
+ return Math.abs(this.x) + Math.abs(this.y) + Math.abs(this.z);
290
+ }
291
+ normalize() {
292
+ return this.divideScalar(this.length() || 1);
293
+ }
294
+ setLength(length) {
295
+ return this.normalize().multiplyScalar(length);
296
+ }
297
+ lerp(v, alpha) {
298
+ this.x += (v.x - this.x) * alpha;
299
+ this.y += (v.y - this.y) * alpha;
300
+ this.z += (v.z - this.z) * alpha;
301
+ return this;
302
+ }
303
+ lerpVectors(v1, v2, alpha) {
304
+ this.x = v1.x + (v2.x - v1.x) * alpha;
305
+ this.y = v1.y + (v2.y - v1.y) * alpha;
306
+ this.z = v1.z + (v2.z - v1.z) * alpha;
307
+ return this;
308
+ }
309
+ cross(v) {
310
+ return this.crossVectors(this, v);
311
+ }
312
+ crossVectors(a, b) {
313
+ const ax = a.x;
314
+ const ay = a.y;
315
+ const az = a.z;
316
+ const bx = b.x;
317
+ const by = b.y;
318
+ const bz = b.z;
319
+ this.x = ay * bz - az * by;
320
+ this.y = az * bx - ax * bz;
321
+ this.z = ax * by - ay * bx;
322
+ return this;
323
+ }
324
+ projectOnVector(v) {
325
+ const denominator = v.lengthSq();
326
+ if (denominator === 0)
327
+ return this.set(0, 0, 0);
328
+ const scalar = v.dot(this) / denominator;
329
+ return this.copy(v).multiplyScalar(scalar);
330
+ }
331
+ projectOnPlane(planeNormal) {
332
+ _vector.copy(this).projectOnVector(planeNormal);
333
+ return this.sub(_vector);
334
+ }
335
+ reflect(normal) {
336
+ // reflect incident vector off plane orthogonal to normal; normal is assumed to have unit length
337
+ return this.sub(_vector.copy(normal).multiplyScalar(2 * this.dot(normal)));
338
+ }
339
+ angleTo(v) {
340
+ const denominator = Math.sqrt(this.lengthSq() * v.lengthSq());
341
+ if (denominator === 0)
342
+ return Math.PI / 2;
343
+ const theta = this.dot(v) / denominator;
344
+ // clamp, to handle numerical problems
345
+ return Math.acos(clamp(theta, -1, 1));
346
+ }
347
+ distanceTo(v) {
348
+ return Math.sqrt(this.distanceToSquared(v));
349
+ }
350
+ distanceToSquared(v) {
351
+ const dx = this.x - v.x;
352
+ const dy = this.y - v.y;
353
+ const dz = this.z - v.z;
354
+ return dx * dx + dy * dy + dz * dz;
355
+ }
356
+ manhattanDistanceTo(v) {
357
+ return Math.abs(this.x - v.x) + Math.abs(this.y - v.y) + Math.abs(this.z - v.z);
358
+ }
359
+ setFromSpherical(s) {
360
+ return this.setFromSphericalCoords(s.radius, s.phi, s.theta);
361
+ }
362
+ setFromSphericalCoords(radius, phi, theta) {
363
+ const sinPhiRadius = Math.sin(phi) * radius;
364
+ this.x = sinPhiRadius * Math.sin(theta);
365
+ this.y = Math.cos(phi) * radius;
366
+ this.z = sinPhiRadius * Math.cos(theta);
367
+ return this;
368
+ }
369
+ setFromCylindrical(c) {
370
+ return this.setFromCylindricalCoords(c.radius, c.theta, c.y);
371
+ }
372
+ setFromCylindricalCoords(radius, theta, y) {
373
+ this.x = radius * Math.sin(theta);
374
+ this.y = y;
375
+ this.z = radius * Math.cos(theta);
376
+ return this;
377
+ }
378
+ setFromMatrixPosition(m) {
379
+ const e = m.elements;
380
+ this.x = e[12];
381
+ this.y = e[13];
382
+ this.z = e[14];
383
+ return this;
384
+ }
385
+ setFromMatrixScale(m) {
386
+ const sx = this.setFromMatrixColumn(m, 0).length();
387
+ const sy = this.setFromMatrixColumn(m, 1).length();
388
+ const sz = this.setFromMatrixColumn(m, 2).length();
389
+ this.x = sx;
390
+ this.y = sy;
391
+ this.z = sz;
392
+ return this;
393
+ }
394
+ setFromMatrixColumn(m, index) {
395
+ return this.fromArray(m.elements, index * 4);
396
+ }
397
+ setFromMatrix3Column(m, index) {
398
+ return this.fromArray(m.elements, index * 3);
399
+ }
400
+ setFromEuler(e) {
401
+ this.x = e.x;
402
+ this.y = e.y;
403
+ this.z = e.z;
404
+ return this;
405
+ }
406
+ setFromColor(c) {
407
+ this.x = c.r;
408
+ this.y = c.g;
409
+ this.z = c.b;
410
+ return this;
411
+ }
412
+ equals(v) {
413
+ return v.x === this.x && v.y === this.y && v.z === this.z;
414
+ }
415
+ fromArray(array, offset = 0) {
416
+ this.x = array[offset];
417
+ this.y = array[offset + 1];
418
+ this.z = array[offset + 2];
419
+ return this;
420
+ }
421
+ toArray(array = [], offset = 0) {
422
+ array[offset] = this.x;
423
+ array[offset + 1] = this.y;
424
+ array[offset + 2] = this.z;
425
+ return array;
426
+ }
427
+ fromBufferAttribute(attribute, index) {
428
+ this.x = attribute.getX(index);
429
+ this.y = attribute.getY(index);
430
+ this.z = attribute.getZ(index);
431
+ return this;
432
+ }
433
+ random() {
434
+ this.x = Math.random();
435
+ this.y = Math.random();
436
+ this.z = Math.random();
437
+ return this;
438
+ }
439
+ randomDirection() {
440
+ // https://mathworld.wolfram.com/SpherePointPicking.html
441
+ const theta = Math.random() * Math.PI * 2;
442
+ const u = Math.random() * 2 - 1;
443
+ const c = Math.sqrt(1 - u * u);
444
+ this.x = c * Math.cos(theta);
445
+ this.y = u;
446
+ this.z = c * Math.sin(theta);
447
+ return this;
448
+ }
449
+ *[Symbol.iterator]() {
450
+ yield this.x;
451
+ yield this.y;
452
+ yield this.z;
453
+ }
454
+ }
455
+ Vector3.prototype.isVector3 = true;
456
+ const _vector = new Vector3();
457
+ const _quaternion = new Quaternion();
458
+ //# sourceMappingURL=Vector3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Vector3.js","sourceRoot":"","sources":["../../../../../packages/math/src/three/Vector3.ts"],"names":[],"mappings":"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"}