three-low-poly 0.9.3 → 0.9.5

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.
package/dist/index.es.js CHANGED
@@ -1,244 +1,245 @@
1
- import { Group as v, SphereGeometry as B, MeshStandardMaterial as d, Mesh as m, BufferGeometry as b, Float32BufferAttribute as F, BoxGeometry as x, ConeGeometry as C, CylinderGeometry as G, Vector2 as g, LatheGeometry as V, CircleGeometry as Q, ShaderMaterial as $, Shape as H, ExtrudeGeometry as D, MeshBasicMaterial as W, PointLight as Z, TorusGeometry as j, DodecahedronGeometry as O, MeshPhysicalMaterial as U, DoubleSide as q, CatmullRomCurve3 as ee, Vector3 as L, TubeGeometry as te, LineBasicMaterial as oe, Line as se, DataTexture as ne, RGBAFormat as ae, UnsignedByteType as re, RepeatWrapping as _, NearestFilter as ce } from "three";
2
- import { mergeGeometries as S } from "three/addons/utils/BufferGeometryUtils.js";
3
- class he extends v {
1
+ import { Group as g, SphereGeometry as T, MeshStandardMaterial as y, Mesh as m, BufferGeometry as b, Float32BufferAttribute as F, BoxGeometry as x, ConeGeometry as L, CylinderGeometry as v, Vector2 as G, LatheGeometry as z, CircleGeometry as oe, ShaderMaterial as Y, Shape as q, ExtrudeGeometry as A, MeshBasicMaterial as se, PointLight as Q, TorusGeometry as $, DodecahedronGeometry as D, MeshPhysicalMaterial as Z, DoubleSide as N, CatmullRomCurve3 as ne, Vector3 as C, TubeGeometry as ae, LineBasicMaterial as re, Line as ce, Path as ie, Color as H, BackSide as R, DataTexture as le, RGBAFormat as me, UnsignedByteType as he, RepeatWrapping as J, NearestFilter as ue } from "three";
2
+ import { mergeGeometries as I } from "three/addons/utils/BufferGeometryUtils.js";
3
+ import { Sky as fe } from "three/addons/objects/Sky.js";
4
+ class Se extends g {
4
5
  constructor() {
5
6
  super();
6
- const e = [], t = 20, o = new B(0.1, 6, 6), s = new d({
7
+ const e = [], o = 20, t = new T(0.1, 6, 6), s = new y({
7
8
  color: 16777215,
8
9
  transparent: !0,
9
10
  opacity: 0.6,
10
11
  roughness: 0.3,
11
12
  metalness: 0.3
12
13
  });
13
- for (let r = 0; r < t; r++) {
14
- const i = new m(o, s);
15
- i.position.set(
14
+ for (let a = 0; a < o; a++) {
15
+ const c = new m(t, s);
16
+ c.position.set(
16
17
  (Math.random() - 0.5) * 1.5,
17
18
  // Random x position within flask
18
19
  Math.random() * 3,
19
20
  // Random y position within flask height
20
21
  (Math.random() - 0.5) * 1.5
21
22
  // Random z position within flask
22
- ), e.push(i), this.add(i);
23
+ ), e.push(c), this.add(c);
23
24
  }
24
- function n() {
25
- e.forEach((r) => {
26
- r.position.y += 0.02, r.position.y > 3 && (r.position.y = 0, r.position.x = (Math.random() - 0.5) * 1.5, r.position.z = (Math.random() - 0.5) * 1.5);
25
+ function r() {
26
+ e.forEach((a) => {
27
+ a.position.y += 0.02, a.position.y > 3 && (a.position.y = 0, a.position.x = (Math.random() - 0.5) * 1.5, a.position.z = (Math.random() - 0.5) * 1.5);
27
28
  });
28
29
  }
29
- function a() {
30
- requestAnimationFrame(a), n();
30
+ function n() {
31
+ requestAnimationFrame(n), r();
31
32
  }
32
- a();
33
+ n();
33
34
  }
34
35
  }
35
- class ye extends b {
36
- constructor(e = 2, t = 0.3, o = 0.6, s = 5, n = 5, a = Math.PI / 4) {
36
+ class Pe extends b {
37
+ constructor(e = 2, o = 0.3, t = 0.6, s = 5, r = 5, n = Math.PI / 4) {
37
38
  super();
38
- const r = [], i = [];
39
- for (let M = 0; M < s; M++) {
40
- const f = M * t, p = f + t, y = M * o, I = y + o;
41
- r.push(
39
+ const a = [], c = [];
40
+ for (let p = 0; p < s; p++) {
41
+ const M = p * o, d = M + o, w = p * t, P = w + t;
42
+ a.push(
42
43
  // Vertical riser
43
44
  -e / 2,
44
- f,
45
- y,
45
+ M,
46
+ w,
46
47
  // Bottom-left
47
48
  e / 2,
48
- f,
49
- y,
49
+ M,
50
+ w,
50
51
  // Bottom-right
51
52
  e / 2,
52
- p,
53
- y,
53
+ d,
54
+ w,
54
55
  // Top-right
55
56
  -e / 2,
56
- p,
57
- y,
57
+ d,
58
+ w,
58
59
  // Top-left
59
60
  // Horizontal tread
60
61
  -e / 2,
61
- p,
62
- y,
62
+ d,
63
+ w,
63
64
  // Top-left
64
65
  e / 2,
65
- p,
66
- y,
66
+ d,
67
+ w,
67
68
  // Top-right
68
69
  e / 2,
69
- p,
70
- I,
70
+ d,
71
+ P,
71
72
  // Back-right
72
73
  -e / 2,
73
- p,
74
- I
74
+ d,
75
+ P
75
76
  // Back-left
76
77
  );
77
- const k = M * 8;
78
- i.push(
79
- k,
80
- k + 1,
81
- k + 2,
82
- k,
83
- k + 2,
84
- k + 3
85
- ), i.push(
86
- k + 4,
87
- k + 5,
88
- k + 6,
89
- k + 4,
90
- k + 6,
91
- k + 7
78
+ const S = p * 8;
79
+ c.push(
80
+ S,
81
+ S + 1,
82
+ S + 2,
83
+ S,
84
+ S + 2,
85
+ S + 3
86
+ ), c.push(
87
+ S + 4,
88
+ S + 5,
89
+ S + 6,
90
+ S + 4,
91
+ S + 6,
92
+ S + 7
92
93
  );
93
94
  }
94
- const c = s * t, l = s * o, w = e * 2;
95
- r.push(
95
+ const i = s * o, l = s * t, u = e * 2;
96
+ a.push(
96
97
  // Landing platform (4 vertices)
97
- -w / 2,
98
- c,
98
+ -u / 2,
99
+ i,
99
100
  l,
100
101
  // Bottom-left
101
- w / 2,
102
- c,
102
+ u / 2,
103
+ i,
103
104
  l,
104
105
  // Bottom-right
105
- w / 2,
106
- c,
107
- l + o,
106
+ u / 2,
107
+ i,
108
+ l + t,
108
109
  // Top-right
109
- -w / 2,
110
- c,
111
- l + o
110
+ -u / 2,
111
+ i,
112
+ l + t
112
113
  // Top-left
113
114
  );
114
- const u = s * 8;
115
- i.push(
116
- u,
117
- u + 1,
118
- u + 2,
115
+ const f = s * 8;
116
+ c.push(
117
+ f,
118
+ f + 1,
119
+ f + 2,
119
120
  // First triangle for landing
120
- u,
121
- u + 2,
122
- u + 3
121
+ f,
122
+ f + 2,
123
+ f + 3
123
124
  // Second triangle for landing
124
125
  );
125
- for (let M = 0; M < 2; M++) {
126
- const f = M === 0 ? 1 : -1;
127
- for (let p = 0; p < n; p++) {
128
- const y = c + p * t, I = y + t, k = f * (w / 4), A = l + o, R = p * o * Math.cos(a), X = p * o * Math.sin(a), z = k + f * R - e / 2 * Math.cos(a), N = k + f * R + e / 2 * Math.cos(a), T = A + X, J = z + f * o * Math.cos(a), K = N + f * o * Math.cos(a), Y = T + o * Math.sin(a);
129
- r.push(
126
+ for (let p = 0; p < 2; p++) {
127
+ const M = p === 0 ? 1 : -1;
128
+ for (let d = 0; d < r; d++) {
129
+ const w = i + d * o, P = w + o, S = M * (u / 4), V = l + t, O = d * t * Math.cos(n), W = d * t * Math.sin(n), E = S + M * O - e / 2 * Math.cos(n), U = S + M * O + e / 2 * Math.cos(n), B = V + W, ee = E + M * t * Math.cos(n), te = U + M * t * Math.cos(n), X = B + t * Math.sin(n);
130
+ a.push(
130
131
  // Vertical riser
131
- z,
132
- y,
133
- T,
132
+ E,
133
+ w,
134
+ B,
134
135
  // Bottom-left
135
- N,
136
- y,
137
- T,
136
+ U,
137
+ w,
138
+ B,
138
139
  // Bottom-right
139
- N,
140
- I,
141
- T,
140
+ U,
141
+ P,
142
+ B,
142
143
  // Top-right
143
- z,
144
- I,
145
- T,
144
+ E,
145
+ P,
146
+ B,
146
147
  // Top-left
147
148
  // Horizontal tread
148
- z,
149
- I,
150
- T,
149
+ E,
150
+ P,
151
+ B,
151
152
  // Top-left
152
- N,
153
- I,
154
- T,
153
+ U,
154
+ P,
155
+ B,
155
156
  // Top-right
156
- K,
157
- I,
158
- Y,
157
+ te,
158
+ P,
159
+ X,
159
160
  // Back-right
160
- J,
161
- I,
162
- Y
161
+ ee,
162
+ P,
163
+ X
163
164
  // Back-left
164
165
  );
165
- const P = u + 4 + M * n * 8 + p * 8;
166
- i.push(
167
- P,
168
- P + 1,
169
- P + 2,
170
- P,
171
- P + 2,
172
- P + 3
173
- ), i.push(
174
- P + 4,
175
- P + 5,
176
- P + 6,
177
- P + 4,
178
- P + 6,
179
- P + 7
166
+ const k = f + 4 + p * r * 8 + d * 8;
167
+ c.push(
168
+ k,
169
+ k + 1,
170
+ k + 2,
171
+ k,
172
+ k + 2,
173
+ k + 3
174
+ ), c.push(
175
+ k + 4,
176
+ k + 5,
177
+ k + 6,
178
+ k + 4,
179
+ k + 6,
180
+ k + 7
180
181
  );
181
182
  }
182
183
  }
183
- this.setIndex(i), this.setAttribute("position", new F(r, 3)), this.computeVertexNormals();
184
+ this.setIndex(c), this.setAttribute("position", new F(a, 3)), this.computeVertexNormals();
184
185
  }
185
186
  }
186
- class de extends b {
187
- constructor(e = 5, t = 3, o = 5, s = 0.2) {
187
+ class ke extends b {
188
+ constructor(e = 5, o = 3, t = 5, s = 0.2) {
188
189
  super();
189
- const n = [
190
+ const r = [
190
191
  // Floor vertices
191
192
  -e / 2,
192
193
  0,
193
- -o / 2,
194
+ -t / 2,
194
195
  // 0
195
196
  e / 2,
196
197
  0,
197
- -o / 2,
198
+ -t / 2,
198
199
  // 1
199
200
  e / 2,
200
201
  0,
201
- o / 2,
202
+ t / 2,
202
203
  // 2
203
204
  -e / 2,
204
205
  0,
205
- o / 2,
206
+ t / 2,
206
207
  // 3
207
208
  // Back wall vertices
208
209
  -e / 2,
209
210
  0,
210
- -o / 2,
211
+ -t / 2,
211
212
  // 4
212
213
  e / 2,
213
214
  0,
214
- -o / 2,
215
+ -t / 2,
215
216
  // 5
216
217
  e / 2,
217
- t,
218
- -o / 2,
218
+ o,
219
+ -t / 2,
219
220
  // 6
220
221
  -e / 2,
221
- t,
222
- -o / 2,
222
+ o,
223
+ -t / 2,
223
224
  // 7
224
225
  // Left wall vertices
225
226
  -e / 2,
226
227
  0,
227
- -o / 2,
228
+ -t / 2,
228
229
  // 8
229
230
  -e / 2,
230
231
  0,
231
- o / 2,
232
+ t / 2,
232
233
  // 9
233
234
  -e / 2,
234
- t,
235
- o / 2,
235
+ o,
236
+ t / 2,
236
237
  // 10
237
238
  -e / 2,
238
- t,
239
- -o / 2
239
+ o,
240
+ -t / 2
240
241
  // 11
241
- ], a = [
242
+ ], n = [
242
243
  // Floor
243
244
  0,
244
245
  1,
@@ -261,90 +262,90 @@ class de extends b {
261
262
  10,
262
263
  11
263
264
  ];
264
- this.setIndex(a), this.setAttribute("position", new F(n, 3)), this.computeVertexNormals();
265
+ this.setIndex(n), this.setAttribute("position", new F(r, 3)), this.computeVertexNormals();
265
266
  }
266
267
  }
267
- class fe extends b {
268
- constructor(e = 2, t = 0.3, o = 0.5, s = 5, n = 2) {
268
+ class Ie extends b {
269
+ constructor(e = 2, o = 0.3, t = 0.5, s = 5, r = 2) {
269
270
  super();
270
- const a = [], r = [];
271
- for (let w = 0; w < s; w++) {
272
- const u = w * t, M = u + t, f = w * o, p = f + o;
273
- a.push(
271
+ const n = [], a = [];
272
+ for (let u = 0; u < s; u++) {
273
+ const f = u * o, p = f + o, M = u * t, d = M + t;
274
+ n.push(
274
275
  // Vertical riser
275
276
  -e / 2,
276
- u,
277
277
  f,
278
+ M,
278
279
  // Bottom-left
279
280
  e / 2,
280
- u,
281
281
  f,
282
+ M,
282
283
  // Bottom-right
283
284
  e / 2,
285
+ p,
284
286
  M,
285
- f,
286
287
  // Top-right
287
288
  -e / 2,
289
+ p,
288
290
  M,
289
- f,
290
291
  // Top-left
291
292
  // Horizontal tread
292
293
  -e / 2,
294
+ p,
293
295
  M,
294
- f,
295
296
  // Top-left
296
297
  e / 2,
298
+ p,
297
299
  M,
298
- f,
299
300
  // Top-right
300
301
  e / 2,
301
- M,
302
302
  p,
303
+ d,
303
304
  // Back-right
304
305
  -e / 2,
305
- M,
306
- p
306
+ p,
307
+ d
307
308
  // Back-left
308
309
  );
309
- const y = w * 8;
310
- r.push(
311
- y,
312
- y + 1,
313
- y + 2,
314
- y,
315
- y + 2,
316
- y + 3
317
- ), r.push(
318
- y + 4,
319
- y + 5,
320
- y + 6,
321
- y + 4,
322
- y + 6,
323
- y + 7
310
+ const w = u * 8;
311
+ a.push(
312
+ w,
313
+ w + 1,
314
+ w + 2,
315
+ w,
316
+ w + 2,
317
+ w + 3
318
+ ), a.push(
319
+ w + 4,
320
+ w + 5,
321
+ w + 6,
322
+ w + 4,
323
+ w + 6,
324
+ w + 7
324
325
  );
325
326
  }
326
- const i = s * t, c = s * o;
327
- a.push(
327
+ const c = s * o, i = s * t;
328
+ n.push(
328
329
  // Landing platform (4 vertices)
329
330
  -e / 2,
330
- i,
331
331
  c,
332
+ i,
332
333
  // Bottom-left
333
334
  e / 2,
334
- i,
335
335
  c,
336
+ i,
336
337
  // Bottom-right
337
338
  e / 2,
338
- i,
339
- c + n,
339
+ c,
340
+ i + r,
340
341
  // Top-right
341
342
  -e / 2,
342
- i,
343
- c + n
343
+ c,
344
+ i + r
344
345
  // Top-left
345
346
  );
346
347
  const l = s * 8;
347
- r.push(
348
+ a.push(
348
349
  l,
349
350
  l + 1,
350
351
  l + 2,
@@ -354,266 +355,266 @@ class fe extends b {
354
355
  l + 3
355
356
  // Second triangle for landing
356
357
  );
357
- for (let w = 0; w < s; w++) {
358
- const u = i + w * t, M = u + t, f = -e / 2 - w * o, p = f - o;
359
- a.push(
358
+ for (let u = 0; u < s; u++) {
359
+ const f = c + u * o, p = f + o, M = -e / 2 - u * t, d = M - t;
360
+ n.push(
360
361
  // Vertical riser
362
+ M,
361
363
  f,
362
- u,
363
- c + n,
364
+ i + r,
364
365
  // Bottom-left
366
+ M,
365
367
  f,
366
- u,
367
- c + n - e,
368
+ i + r - e,
368
369
  // Bottom-right
369
- f,
370
370
  M,
371
- c + n - e,
371
+ p,
372
+ i + r - e,
372
373
  // Top-right
373
- f,
374
374
  M,
375
- c + n,
375
+ p,
376
+ i + r,
376
377
  // Top-left
377
378
  // Horizontal tread
378
- f,
379
379
  M,
380
- c + n,
380
+ p,
381
+ i + r,
381
382
  // Top-left
382
- f,
383
383
  M,
384
- c + n - e,
384
+ p,
385
+ i + r - e,
385
386
  // Top-right
387
+ d,
386
388
  p,
387
- M,
388
- c + n - e,
389
+ i + r - e,
389
390
  // Back-right
391
+ d,
390
392
  p,
391
- M,
392
- c + n
393
+ i + r
393
394
  // Back-left
394
395
  );
395
- const y = l + 4 + w * 8;
396
- r.push(
397
- y,
398
- y + 1,
399
- y + 2,
400
- y,
401
- y + 2,
402
- y + 3
403
- ), r.push(
404
- y + 4,
405
- y + 5,
406
- y + 6,
407
- y + 4,
408
- y + 6,
409
- y + 7
396
+ const w = l + 4 + u * 8;
397
+ a.push(
398
+ w,
399
+ w + 1,
400
+ w + 2,
401
+ w,
402
+ w + 2,
403
+ w + 3
404
+ ), a.push(
405
+ w + 4,
406
+ w + 5,
407
+ w + 6,
408
+ w + 4,
409
+ w + 6,
410
+ w + 7
410
411
  );
411
412
  }
412
- this.setIndex(r), this.setAttribute("position", new F(a, 3)), this.computeVertexNormals();
413
+ this.setIndex(a), this.setAttribute("position", new F(n, 3)), this.computeVertexNormals();
413
414
  }
414
415
  }
415
- class Me extends b {
416
- constructor(e = 1, t = 0.4, o = 0.2, s = 20, n = 2, a = Math.PI / 8) {
416
+ class Te extends b {
417
+ constructor(e = 1, o = 0.4, t = 0.2, s = 20, r = 2, n = Math.PI / 8) {
417
418
  super();
418
- const r = [], i = [];
419
- let c = 0;
419
+ const a = [], c = [];
420
+ let i = 0;
420
421
  for (let l = 0; l < s; l++) {
421
- const w = n * Math.cos(c), u = n * Math.sin(c), M = l * o, f = M + o;
422
- r.push(
422
+ const u = r * Math.cos(i), f = r * Math.sin(i), p = l * t, M = p + t;
423
+ a.push(
423
424
  // Front face (vertical riser)
424
- w - e / 2 * Math.cos(c),
425
- M,
426
- u - e / 2 * Math.sin(c),
425
+ u - e / 2 * Math.cos(i),
426
+ p,
427
+ f - e / 2 * Math.sin(i),
427
428
  // Bottom-left
428
- w + e / 2 * Math.cos(c),
429
- M,
430
- u + e / 2 * Math.sin(c),
429
+ u + e / 2 * Math.cos(i),
430
+ p,
431
+ f + e / 2 * Math.sin(i),
431
432
  // Bottom-right
432
- w + e / 2 * Math.cos(c),
433
- f,
434
- u + e / 2 * Math.sin(c),
433
+ u + e / 2 * Math.cos(i),
434
+ M,
435
+ f + e / 2 * Math.sin(i),
435
436
  // Top-right
436
- w - e / 2 * Math.cos(c),
437
- f,
438
- u - e / 2 * Math.sin(c)
437
+ u - e / 2 * Math.cos(i),
438
+ M,
439
+ f - e / 2 * Math.sin(i)
439
440
  // Top-left
440
- ), r.push(
441
+ ), a.push(
441
442
  // Top face (horizontal tread)
442
- w - e / 2 * Math.cos(c),
443
- f,
444
- u - e / 2 * Math.sin(c),
443
+ u - e / 2 * Math.cos(i),
444
+ M,
445
+ f - e / 2 * Math.sin(i),
445
446
  // Top-left-front
446
- w + e / 2 * Math.cos(c),
447
- f,
448
- u + e / 2 * Math.sin(c),
447
+ u + e / 2 * Math.cos(i),
448
+ M,
449
+ f + e / 2 * Math.sin(i),
449
450
  // Top-right-front
450
- w + e / 2 * Math.cos(c) - t * Math.sin(c),
451
- f,
452
- u + e / 2 * Math.sin(c) + t * Math.cos(c),
451
+ u + e / 2 * Math.cos(i) - o * Math.sin(i),
452
+ M,
453
+ f + e / 2 * Math.sin(i) + o * Math.cos(i),
453
454
  // Back-right
454
- w - e / 2 * Math.cos(c) - t * Math.sin(c),
455
- f,
456
- u - e / 2 * Math.sin(c) + t * Math.cos(c)
455
+ u - e / 2 * Math.cos(i) - o * Math.sin(i),
456
+ M,
457
+ f - e / 2 * Math.sin(i) + o * Math.cos(i)
457
458
  // Back-left
458
459
  );
459
- const p = l * 8;
460
- i.push(
461
- p,
462
- p + 1,
463
- p + 2,
460
+ const d = l * 8;
461
+ c.push(
462
+ d,
463
+ d + 1,
464
+ d + 2,
464
465
  // First triangle for riser
465
- p,
466
- p + 2,
467
- p + 3
466
+ d,
467
+ d + 2,
468
+ d + 3
468
469
  // Second triangle for riser
469
- ), i.push(
470
- p + 4,
471
- p + 5,
472
- p + 6,
470
+ ), c.push(
471
+ d + 4,
472
+ d + 5,
473
+ d + 6,
473
474
  // First triangle for tread
474
- p + 4,
475
- p + 6,
476
- p + 7
475
+ d + 4,
476
+ d + 6,
477
+ d + 7
477
478
  // Second triangle for tread
478
- ), c += a;
479
+ ), i += n;
479
480
  }
480
- this.setIndex(i), this.setAttribute("position", new F(r, 3)), this.computeVertexNormals();
481
+ this.setIndex(c), this.setAttribute("position", new F(a, 3)), this.computeVertexNormals();
481
482
  }
482
483
  }
483
- class pe extends b {
484
- constructor(e = 2, t = 0.3, o = 0.5, s = 10) {
484
+ class Be extends b {
485
+ constructor(e = 2, o = 0.3, t = 0.5, s = 10) {
485
486
  super();
486
- const n = [], a = [];
487
- for (let r = 0; r < s; r++) {
488
- const i = r * t, c = i + t, l = r * o, w = l + o;
489
- n.push(
487
+ const r = [], n = [];
488
+ for (let a = 0; a < s; a++) {
489
+ const c = a * o, i = c + o, l = a * t, u = l + t;
490
+ r.push(
490
491
  // Bottom face of riser (front face)
491
492
  -e / 2,
492
- i,
493
+ c,
493
494
  l,
494
495
  // 0: Bottom-left-front
495
496
  e / 2,
496
- i,
497
+ c,
497
498
  l,
498
499
  // 1: Bottom-right-front
499
500
  e / 2,
500
- c,
501
+ i,
501
502
  l,
502
503
  // 2: Top-right-front
503
504
  -e / 2,
504
- c,
505
+ i,
505
506
  l,
506
507
  // 3: Top-left-front
507
508
  // Top face of tread (horizontal step)
508
509
  -e / 2,
509
- c,
510
+ i,
510
511
  l,
511
512
  // 4: Top-left-front (repeated)
512
513
  e / 2,
513
- c,
514
+ i,
514
515
  l,
515
516
  // 5: Top-right-front (repeated)
516
517
  e / 2,
517
- c,
518
- w,
518
+ i,
519
+ u,
519
520
  // 6: Top-right-back
520
521
  -e / 2,
521
- c,
522
- w
522
+ i,
523
+ u
523
524
  // 7: Top-left-back
524
525
  );
525
- const u = r * 8;
526
- a.push(
527
- u,
528
- u + 1,
529
- u + 2,
526
+ const f = a * 8;
527
+ n.push(
528
+ f,
529
+ f + 1,
530
+ f + 2,
530
531
  // First triangle for riser
531
- u,
532
- u + 2,
533
- u + 3
532
+ f,
533
+ f + 2,
534
+ f + 3
534
535
  // Second triangle for riser
535
- ), a.push(
536
- u + 4,
537
- u + 6,
538
- u + 5,
536
+ ), n.push(
537
+ f + 4,
538
+ f + 6,
539
+ f + 5,
539
540
  // First triangle for tread
540
- u + 4,
541
- u + 7,
542
- u + 6
541
+ f + 4,
542
+ f + 7,
543
+ f + 6
543
544
  // Second triangle for tread
544
545
  );
545
546
  }
546
- this.setIndex(a), this.setAttribute("position", new F(n, 3)), this.computeVertexNormals();
547
+ this.setIndex(n), this.setAttribute("position", new F(r, 3)), this.computeVertexNormals();
547
548
  }
548
549
  }
549
- class xe extends b {
550
- constructor(e = 0.4, t = 1.2, o = 0.2) {
550
+ class Ce extends b {
551
+ constructor(e = 0.4, o = 1.2, t = 0.2) {
551
552
  super();
552
- const s = t * 0.6, n = new x(e / 2, s, o);
553
- n.translate(0, s / 2, 0);
554
- const a = e * 1.5, r = new x(a, e / 4, o);
555
- r.translate(0, s * 0.75, 0), this.copy(S([n, r], !0));
553
+ const s = o * 0.6, r = new x(e / 2, s, t);
554
+ r.translate(0, s / 2, 0);
555
+ const n = e * 1.5, a = new x(n, e / 4, t);
556
+ a.translate(0, s * 0.75, 0), this.copy(I([r, a], !1));
556
557
  }
557
558
  }
558
- class Ge extends b {
559
- constructor(e = 1.75, t = 0.75) {
559
+ class Fe extends b {
560
+ constructor(e = 1.75, o = 0.75) {
560
561
  super();
561
- const o = e * 0.05, s = e * 0.15, n = e * 0.15, a = e * 0.75;
562
- let r = 0;
563
- const i = new x(t, o, t);
564
- i.translate(0, r + o / 2, 0), r += o;
565
- const c = new x(t * 0.8, s, t * 0.8);
566
- c.translate(0, r + s / 2, 0), r += s;
567
- const l = new x(t * 0.6, n, t * 0.6);
568
- l.translate(0, r + n / 2, 0), r += n;
569
- const w = new x(t * 0.4, a, t * 0.4);
570
- w.translate(0, r + a / 2, 0), r += a;
571
- const u = new C(t * 0.4 / Math.sqrt(2), 0.1, 4, 1, !1, Math.PI / 4);
572
- u.translate(0, r + 0.1 / 2, 0), this.copy(
573
- S([i, c, l, w, u], !0)
562
+ const t = e * 0.05, s = e * 0.15, r = e * 0.15, n = e * 0.75;
563
+ let a = 0;
564
+ const c = new x(o, t, o);
565
+ c.translate(0, a + t / 2, 0), a += t;
566
+ const i = new x(o * 0.8, s, o * 0.8);
567
+ i.translate(0, a + s / 2, 0), a += s;
568
+ const l = new x(o * 0.6, r, o * 0.6);
569
+ l.translate(0, a + r / 2, 0), a += r;
570
+ const u = new x(o * 0.4, n, o * 0.4);
571
+ u.translate(0, a + n / 2, 0), a += n;
572
+ const f = new L(o * 0.4 / Math.sqrt(2), 0.1, 4, 1, !1, Math.PI / 4);
573
+ f.translate(0, a + 0.1 / 2, 0), this.copy(
574
+ I([c, i, l, u, f], !1)
574
575
  );
575
576
  }
576
577
  }
577
- class ve extends b {
578
- constructor(e = 0.6, t = 1, o = 0.2) {
578
+ class Le extends b {
579
+ constructor(e = 0.6, o = 1, t = 0.2) {
579
580
  super();
580
- const s = t * 0.7, n = new x(e, s, o);
581
- n.translate(0, s / 2, 0);
582
- const a = t - s, r = new G(e / 2, e / 2, o, 16, 1, !1, 0, Math.PI);
583
- r.rotateY(Math.PI / 2), r.rotateX(Math.PI / 2), r.translate(0, s + a / 2 - o / 2 - 0.05, 0), this.copy(S([n, r], !0));
581
+ const s = o * 0.7, r = new x(e, s, t);
582
+ r.translate(0, s / 2, 0);
583
+ const n = o - s, a = new v(e / 2, e / 2, t, 16, 1, !1, 0, Math.PI);
584
+ a.rotateY(Math.PI / 2), a.rotateX(Math.PI / 2), a.translate(0, s + n / 2 - t / 2 - 0.05, 0), this.copy(I([r, a], !1));
584
585
  }
585
586
  }
586
- class ge extends b {
587
- constructor(e = 0.5, t = 0.8, o = 0.15) {
587
+ class qe extends b {
588
+ constructor(e = 0.5, o = 0.8, t = 0.15) {
588
589
  super();
589
- const s = new x(e, t, o);
590
- s.translate(0, t / 2, 0), this.copy(s);
590
+ const s = new x(e, o, t);
591
+ s.translate(0, o / 2, 0), this.copy(s);
591
592
  }
592
593
  }
593
- class be extends b {
594
+ class Ae extends b {
594
595
  constructor(e = 2.25) {
595
596
  super();
596
- const t = new x(1.2, 0.5, 1.2);
597
- t.translate(0, 0.25, 0);
598
- const o = new x(1, e, 1);
599
- o.translate(0, 0.5 + e / 2, 0);
597
+ const o = new x(1.2, 0.5, 1.2);
598
+ o.translate(0, 0.25, 0);
599
+ const t = new x(1, e, 1);
600
+ t.translate(0, 0.5 + e / 2, 0);
600
601
  const s = new x(1.4, 0.3, 1.4);
601
- s.translate(0, 0.5 + e + 0.15, 0), this.copy(S([t, o, s], !0));
602
+ s.translate(0, 0.5 + e + 0.15, 0), this.copy(I([o, t, s], !1));
602
603
  }
603
604
  }
604
- class ke extends b {
605
- constructor(e = 2, t = 0.05, o = 0.3) {
605
+ class Ne extends b {
606
+ constructor(e = 2, o = 0.05, t = 0.3) {
606
607
  super();
607
- const s = new G(t, t, e, 8);
608
+ const s = new v(o, o, e, 8);
608
609
  s.translate(0, e / 2, 0);
609
- const n = new C(t * 1.5, o, 8);
610
- n.translate(0, e + o / 2, 0), this.copy(S([s, n], !0));
610
+ const r = new L(o * 1.5, t, 8);
611
+ r.translate(0, e + t / 2, 0), this.copy(I([s, r], !1));
611
612
  }
612
613
  }
613
- class Ie extends b {
614
+ class Ve extends b {
614
615
  constructor(e = 0.1) {
615
616
  super();
616
- const t = [], o = [], s = [
617
+ const o = [], t = [], s = [
617
618
  [0, 1],
618
619
  // Top point
619
620
  [0.5, 0.75],
@@ -631,73 +632,73 @@ class Ie extends b {
631
632
  [-0.5, 0.75]
632
633
  // Left upper middle
633
634
  ];
634
- for (let a = 0; a < s.length; a++) {
635
- const [r, i] = s[a];
636
- t.push(r * e, i * e, 0);
635
+ for (let n = 0; n < s.length; n++) {
636
+ const [a, c] = s[n];
637
+ o.push(a * e, c * e, 0);
637
638
  }
638
- for (let a = 1; a < s.length - 1; a++)
639
- o.push(0, a, a + 1);
640
- o.push(0, s.length - 1, 1);
641
- const n = new F(t, 3);
642
- this.setAttribute("position", n), this.setIndex(o), this.computeVertexNormals();
639
+ for (let n = 1; n < s.length - 1; n++)
640
+ t.push(0, n, n + 1);
641
+ t.push(0, s.length - 1, 1);
642
+ const r = new F(o, 3);
643
+ this.setAttribute("position", r), this.setIndex(t), this.computeVertexNormals();
643
644
  }
644
645
  }
645
- class Pe extends b {
646
- constructor(e = 0.1, t = 0.1, o = 0.4, s = 8) {
646
+ class Ee extends b {
647
+ constructor(e = 0.1, o = 0.1, t = 0.4, s = 8) {
647
648
  super();
648
- const n = new G(e * 0.6, t * 0.6, o, s);
649
- n.translate(0, 0, 0);
650
- const a = new B(e, s, s), r = a.clone(), i = a.clone(), c = a.clone(), l = a.clone();
651
- r.translate(0, o / 2 + e * 0.6, -e * 0.6), i.translate(0, o / 2 + e * 0.6, e * 0.6), c.translate(0, -o / 2 - t * 0.6, -t * 0.6), l.translate(0, -o / 2 - t * 0.6, t * 0.6), this.copy(S([n, r, i, c, l], !0));
649
+ const r = new v(e * 0.6, o * 0.6, t, s);
650
+ r.translate(0, 0, 0);
651
+ const n = new T(e, s, s), a = n.clone(), c = n.clone(), i = n.clone(), l = n.clone();
652
+ a.translate(0, t / 2 + e * 0.6, -e * 0.6), c.translate(0, t / 2 + e * 0.6, e * 0.6), i.translate(0, -t / 2 - o * 0.6, -o * 0.6), l.translate(0, -t / 2 - o * 0.6, o * 0.6), this.copy(I([r, a, c, i, l], !1));
652
653
  }
653
654
  }
654
- class ie extends b {
655
+ class ye extends b {
655
656
  constructor() {
656
657
  super();
657
- const e = new B(1, 16, 16), t = new G(0.2, 0.2, 2, 16, 1, !0);
658
- t.translate(0, 1.5, 0), t.rotateX(Math.PI / 2), this.copy(S([e, t], !0));
658
+ const e = new T(1, 16, 16), o = new v(0.2, 0.2, 2, 16, 1, !0);
659
+ o.translate(0, 1.5, 0), o.rotateX(Math.PI / 2), this.copy(I([e, o], !1));
659
660
  }
660
661
  }
661
- class le extends b {
662
+ class we extends b {
662
663
  constructor() {
663
664
  super();
664
665
  const e = [
665
- new g(1, 0),
666
+ new G(1, 0),
666
667
  // Bottom of the bowl
667
- new g(1.2, 0.5),
668
+ new G(1.2, 0.5),
668
669
  // Slight flare at the base
669
- new g(1.4, 1.5),
670
+ new G(1.4, 1.5),
670
671
  // Outer wall
671
- new g(1.3, 1.8),
672
+ new G(1.3, 1.8),
672
673
  // Flared edge
673
- new g(0.8, 1.8)
674
+ new G(0.8, 1.8)
674
675
  // Lip of the bowl
675
- ], t = new V(e, 12), o = new Q(1, 12);
676
- o.rotateX(-Math.PI / 2), o.translate(0, 0, 0), this.copy(S([t, o], !0));
676
+ ], o = new z(e, 12), t = new oe(1, 12);
677
+ t.rotateX(-Math.PI / 2), t.translate(0, 0, 0), this.copy(I([o, t], !1));
677
678
  }
678
679
  }
679
- class E extends b {
680
- constructor(e = 0.2, t = 0.2, o = 3, s = 32, n = !0) {
680
+ class j extends b {
681
+ constructor(e = 0.2, o = 0.2, t = 3, s = 32, r = !0) {
681
682
  super();
682
- const a = new G(e, t, o, s, 1, n), r = new B(t, s, s / 2, 0, Math.PI * 2, Math.PI / 2, Math.PI / 2);
683
- r.translate(0, -(o / 2), 0), this.copy(S([a, r], !0));
683
+ const n = new v(e, o, t, s, 1, r), a = new T(o, s, s / 2, 0, Math.PI * 2, Math.PI / 2, Math.PI / 2);
684
+ a.translate(0, -(t / 2), 0), this.copy(I([n, a], !1));
684
685
  }
685
686
  }
686
- class me extends b {
687
- constructor({ radius: e = 0.5, neckRadius: t = 0.2, height: o = 3, neckHeight: s = 1, segments: n = 16 } = {}) {
687
+ class Me extends b {
688
+ constructor({ radius: e = 0.5, neckRadius: o = 0.2, height: t = 3, neckHeight: s = 1, segments: r = 16 } = {}) {
688
689
  super();
689
- const a = o - s, r = new G(e, e, a, n);
690
- r.translate(0, a / 2, 0);
691
- const i = 0.3, c = new G(t, e, i, n);
692
- c.translate(0, a + i / 2, 0);
693
- const l = new G(t, t, s, n);
694
- l.translate(0, a + i + s / 2, 0), this.copy(S([r, c, l], !0));
690
+ const n = t - s, a = new v(e, e, n, r);
691
+ a.translate(0, n / 2, 0);
692
+ const c = 0.3, i = new v(o, e, c, r);
693
+ i.translate(0, n + c / 2, 0);
694
+ const l = new v(o, o, s, r);
695
+ l.translate(0, n + c + s / 2, 0), this.copy(I([a, i, l], !1));
695
696
  }
696
697
  }
697
- class Se extends v {
698
+ class Ue extends g {
698
699
  constructor() {
699
700
  super();
700
- const e = new B(5, 32, 32), t = new $({
701
+ const e = new T(5, 32, 32), o = new Y({
701
702
  uniforms: {
702
703
  time: { value: 0 }
703
704
  },
@@ -740,67 +741,67 @@ class Se extends v {
740
741
  gl_FragColor = vec4(color, 1.0);
741
742
  }
742
743
  `
743
- }), o = new m(e, t);
744
- this.add(o);
744
+ }), t = new m(e, o);
745
+ this.add(t);
745
746
  }
746
747
  }
747
- class Be extends v {
748
+ class ze extends g {
748
749
  constructor() {
749
750
  super();
750
- const e = new x(5, 1, 5), t = new d({ color: 8421504, flatShading: !0 }), o = new m(e, t);
751
- o.position.set(0, 0.5, 0), this.add(o);
752
- const s = new x(4, 3, 4), n = new d({ color: 6908265, flatShading: !0 }), a = new m(s, n);
753
- a.position.set(0, 2.5, 0), this.add(a);
754
- const r = new C(3.5, 2, 4), i = new d({ color: 5263440, flatShading: !0 }), c = new m(r, i);
755
- c.rotation.y = Math.PI / 4, c.position.set(0, 5, 0), this.add(c);
756
- const l = new G(0.2, 0.2, 3.5, 16), w = new d({ color: 6908265, flatShading: !0 });
751
+ const e = new x(5, 1, 5), o = new y({ color: 8421504, flatShading: !0 }), t = new m(e, o);
752
+ t.position.set(0, 0.5, 0), this.add(t);
753
+ const s = new x(4, 3, 4), r = new y({ color: 6908265, flatShading: !0 }), n = new m(s, r);
754
+ n.position.set(0, 2.5, 0), this.add(n);
755
+ const a = new L(3.5, 2, 4), c = new y({ color: 5263440, flatShading: !0 }), i = new m(a, c);
756
+ i.rotation.y = Math.PI / 4, i.position.set(0, 5, 0), this.add(i);
757
+ const l = new v(0.2, 0.2, 3.5, 16), u = new y({ color: 6908265, flatShading: !0 });
757
758
  [
758
759
  [-1.8, 2.3, -2.2],
759
760
  [1.8, 2.3, -2.2],
760
761
  [-1.8, 2.3, 2.2],
761
762
  [1.8, 2.3, 2.2]
762
- ].forEach((k) => {
763
- const A = new m(l, w);
764
- A.position.set(...k), this.add(A);
763
+ ].forEach((S) => {
764
+ const V = new m(l, u);
765
+ V.position.set(...S), this.add(V);
765
766
  });
766
- const M = new H();
767
- M.moveTo(-1, 0), M.lineTo(-1, 2), M.absarc(0, 2, 1, Math.PI, 0, !0), M.lineTo(1, 0);
768
- const f = {
767
+ const p = new q();
768
+ p.moveTo(-1, 0), p.lineTo(-1, 2), p.absarc(0, 2, 1, Math.PI, 0, !0), p.lineTo(1, 0);
769
+ const M = {
769
770
  depth: 0.5,
770
771
  bevelEnabled: !1
771
- }, p = new D(M, f), y = new d({ color: 4210752, flatShading: !0 }), I = new m(p, y);
772
- I.position.set(0, 0.5, 1.7), this.add(I);
772
+ }, d = new A(p, M), w = new y({ color: 4210752, flatShading: !0 }), P = new m(d, w);
773
+ P.position.set(0, 0.5, 1.7), this.add(P);
773
774
  }
774
775
  }
775
- class Te extends v {
776
+ class _e extends g {
776
777
  constructor() {
777
778
  super();
778
- const e = new x(5, 0.3, 3), t = new d({ color: 9132587 }), o = new m(e, t);
779
- o.position.set(0, 3.15, 0);
779
+ const e = new x(5, 0.3, 3), o = new y({ color: 9132587 }), t = new m(e, o);
780
+ t.position.set(0, 3.15, 0);
780
781
  const s = [];
781
- s.push(new g(0.2, 0)), s.push(new g(0.25, 0.5)), s.push(new g(0.15, 1.5)), s.push(new g(0.3, 3));
782
- const n = new V(s, 32), a = new d({ color: 4929057 });
782
+ s.push(new G(0.2, 0)), s.push(new G(0.25, 0.5)), s.push(new G(0.15, 1.5)), s.push(new G(0.3, 3));
783
+ const r = new z(s, 32), n = new y({ color: 4929057 });
783
784
  [
784
785
  [2.2, 0, 1.2],
785
786
  // Adjust Y to 0 so legs start at ground level
786
787
  [-2.2, 0, 1.2],
787
788
  [2.2, 0, -1.2],
788
789
  [-2.2, 0, -1.2]
789
- ].forEach((i) => {
790
- const c = new m(n, a);
791
- c.position.set(...i), this.add(c);
792
- }), this.add(o);
790
+ ].forEach((c) => {
791
+ const i = new m(r, n);
792
+ i.position.set(...c), this.add(i);
793
+ }), this.add(t);
793
794
  }
794
795
  }
795
- class Fe extends v {
796
- constructor(e = 1, t = 0.2) {
797
- super(), this.height = e, this.radius = t, this.createCandle(), this.animateFlicker();
796
+ class je extends g {
797
+ constructor(e = 1, o = 0.2) {
798
+ super(), this.height = e, this.radius = o, this.createCandle(), this.animateFlicker();
798
799
  }
799
800
  createCandle() {
800
- const e = new G(this.radius, this.radius, this.height, 32), t = new d({ color: 16777215 });
801
- this.candle = new m(e, t), this.candle.position.set(0, this.height / 2, 0), this.add(this.candle);
802
- const o = new B(0.05, 16, 16), s = new W({ color: 16753920 });
803
- this.flame = new m(o, s), this.flame.position.set(0, this.height + 0.05, 0), this.add(this.flame), this.candleLight = new Z(16753920, 1, 5), this.candleLight.position.set(0, this.height + 0.05, 0), this.candleLight.castShadow = !0, this.add(this.candleLight);
801
+ const e = new v(this.radius, this.radius, this.height, 32), o = new y({ color: 16777215 });
802
+ this.candle = new m(e, o), this.candle.position.set(0, this.height / 2, 0), this.add(this.candle);
803
+ const t = new T(0.05, 16, 16), s = new se({ color: 16753920 });
804
+ this.flame = new m(t, s), this.flame.position.set(0, this.height + 0.05, 0), this.add(this.flame), this.candleLight = new Q(16753920, 1, 5), this.candleLight.position.set(0, this.height + 0.05, 0), this.candleLight.castShadow = !0, this.add(this.candleLight);
804
805
  }
805
806
  animateFlicker() {
806
807
  const e = () => {
@@ -809,47 +810,47 @@ class Fe extends v {
809
810
  e();
810
811
  }
811
812
  }
812
- class Le extends v {
813
- constructor(e = 1.3, t = 0.5) {
813
+ class Ye extends g {
814
+ constructor(e = 1.3, o = 0.5) {
814
815
  super();
815
- const o = new G(t, t, 0.2, 16), s = new d({ color: 9127187, flatShading: !0 }), n = new m(o, s);
816
- n.position.set(0, 0, 0), this.add(n);
817
- const a = new G(t * 0.9, t * 0.9, e), r = new d({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }), i = new m(a, r);
818
- i.position.set(0, e / 2 + 0.1, 0), this.add(i);
819
- const c = new C(t * 1.1, 0.5, 8), l = new d({ color: 9127187, flatShading: !0 }), w = new m(c, l);
820
- w.position.set(0, e + 0.35, 0), this.add(w);
821
- const u = new j(t * 0.8, 0.05, 8, 16), M = new d({ color: 9127187, flatShading: !0 }), f = new m(u, M);
822
- f.position.set(0, e + 0.85, 0), this.add(f);
823
- const p = new Z(16755200, 1.5, 15);
824
- p.position.set(0, e / 2 + 0.1, 0), p.castShadow = !0, this.add(p);
816
+ const t = new v(o, o, 0.2, 16), s = new y({ color: 9127187, flatShading: !0 }), r = new m(t, s);
817
+ r.position.set(0, 0, 0), this.add(r);
818
+ const n = new v(o * 0.9, o * 0.9, e), a = new y({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }), c = new m(n, a);
819
+ c.position.set(0, e / 2 + 0.1, 0), this.add(c);
820
+ const i = new L(o * 1.1, 0.5, 8), l = new y({ color: 9127187, flatShading: !0 }), u = new m(i, l);
821
+ u.position.set(0, e + 0.35, 0), this.add(u);
822
+ const f = new $(o * 0.8, 0.05, 8, 16), p = new y({ color: 9127187, flatShading: !0 }), M = new m(f, p);
823
+ M.position.set(0, e + 0.85, 0), this.add(M);
824
+ const d = new Q(16755200, 1.5, 15);
825
+ d.position.set(0, e / 2 + 0.1, 0), d.castShadow = !0, this.add(d);
825
826
  }
826
827
  }
827
- class Ce extends v {
828
+ class Ze extends g {
828
829
  constructor() {
829
830
  super();
830
- const e = new O(1, 0), t = new d({ color: 8421504, flatShading: !0 }), o = new d({ color: 4950843, flatShading: !0, opacity: 0.8, transparent: !0 });
831
+ const e = new D(1, 0), o = new y({ color: 8421504, flatShading: !0 }), t = new y({ color: 4950843, flatShading: !0, opacity: 0.8, transparent: !0 });
831
832
  for (let s = 0; s < 5; s++) {
833
+ const r = new m(e, o);
834
+ r.scale.set(0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4), r.rotation.set(Math.random() * Math.PI, Math.random() * Math.PI, Math.random() * Math.PI), r.position.set((Math.random() - 0.5) * 4, 0, (Math.random() - 0.5) * 4), this.add(r);
832
835
  const n = new m(e, t);
833
- n.scale.set(0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4), n.rotation.set(Math.random() * Math.PI, Math.random() * Math.PI, Math.random() * Math.PI), n.position.set((Math.random() - 0.5) * 4, 0, (Math.random() - 0.5) * 4), this.add(n);
834
- const a = new m(e, o);
835
- a.scale.set(n.scale.x * 0.9, n.scale.y * 0.5, n.scale.z * 0.9), a.rotation.copy(n.rotation), a.position.copy(n.position), a.position.y += 0.3, this.add(a);
836
+ n.scale.set(r.scale.x * 0.9, r.scale.y * 0.5, r.scale.z * 0.9), n.rotation.copy(r.rotation), n.position.copy(r.position), n.position.y += 0.3, this.add(n);
836
837
  }
837
838
  }
838
839
  }
839
- class qe extends v {
840
+ class Oe extends g {
840
841
  constructor() {
841
842
  super();
842
- const e = new O(1, 0), t = new d({ color: 8421504, flatShading: !0 });
843
- for (let o = 0; o < 5; o++) {
844
- const s = new m(e, t);
843
+ const e = new D(1, 0), o = new y({ color: 8421504, flatShading: !0 });
844
+ for (let t = 0; t < 5; t++) {
845
+ const s = new m(e, o);
845
846
  s.scale.set(0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4), s.rotation.set(Math.random() * Math.PI, Math.random() * Math.PI, Math.random() * Math.PI), s.position.set((Math.random() - 0.5) * 4, 0, (Math.random() - 0.5) * 4), this.add(s);
846
847
  }
847
848
  }
848
849
  }
849
- class Ae extends v {
850
+ class Xe extends g {
850
851
  constructor() {
851
852
  super();
852
- const e = new ie(), t = new U({
853
+ const e = new ye(), o = new Z({
853
854
  color: 8965375,
854
855
  transparent: !0,
855
856
  opacity: 0.4,
@@ -857,309 +858,309 @@ class Ae extends v {
857
858
  metalness: 0.1,
858
859
  reflectivity: 0.8,
859
860
  transmission: 0.9,
860
- side: q
861
- }), o = new m(e, t);
862
- o.rotation.x = -Math.PI / 2, this.add(o);
861
+ side: N
862
+ }), t = new m(e, o);
863
+ t.rotation.x = -Math.PI / 2, this.add(t);
863
864
  }
864
865
  }
865
- class ze extends v {
866
+ class He extends g {
866
867
  constructor() {
867
868
  super();
868
- const e = new x(1.6, 0.05, 2.1), t = new d({ color: 9109504 }), o = new m(e, t), s = new m(e, t);
869
- o.position.set(0, 0.125, 0), s.position.set(0, -0.125, 0);
870
- const n = new x(1.55, 0.2, 2), a = new d({ color: 16777215 }), r = new m(n, a);
871
- r.position.set(-0.025, 0, 0);
872
- const i = new x(0.05, 0.25, 2.1), c = new d({ color: 4915200 }), l = new m(i, c);
873
- l.position.set(-0.8, 0, 0), this.add(o), this.add(s), this.add(r), this.add(l);
869
+ const e = new x(1.6, 0.05, 2.1), o = new y({ color: 9109504 }), t = new m(e, o), s = new m(e, o);
870
+ t.position.set(0, 0.125, 0), s.position.set(0, -0.125, 0);
871
+ const r = new x(1.55, 0.2, 2), n = new y({ color: 16777215 }), a = new m(r, n);
872
+ a.position.set(-0.025, 0, 0);
873
+ const c = new x(0.05, 0.25, 2.1), i = new y({ color: 4915200 }), l = new m(c, i);
874
+ l.position.set(-0.8, 0, 0), this.add(t), this.add(s), this.add(a), this.add(l);
874
875
  }
875
876
  }
876
- class Ne extends v {
877
+ class Je extends g {
877
878
  constructor() {
878
879
  super();
879
880
  const e = [
880
- new g(0, 0),
881
+ new G(0, 0),
881
882
  // Bottom
882
- new g(0.8, 0),
883
+ new G(0.8, 0),
883
884
  // Base
884
- new g(1, 1.5),
885
+ new G(1, 1.5),
885
886
  // Rounded body
886
- new g(0.5, 2.2),
887
+ new G(0.5, 2.2),
887
888
  // Neck
888
- new g(0.6, 2.5)
889
+ new G(0.6, 2.5)
889
890
  // Mouth
890
- ], t = new V(e, 10), o = new G(0.3, 0.4, 0.2, 8), s = new d({
891
+ ], o = new z(e, 10), t = new v(0.3, 0.4, 0.2, 8), s = new y({
891
892
  color: 8965375,
892
893
  transparent: !0,
893
894
  opacity: 0.5,
894
895
  roughness: 0.1,
895
896
  metalness: 0.3
896
- }), n = new d({
897
+ }), r = new y({
897
898
  color: 16724838,
898
899
  // Vibrant potion color
899
900
  transparent: !0,
900
901
  opacity: 0.6
901
- }), a = new d({
902
+ }), n = new y({
902
903
  color: 9127187,
903
904
  roughness: 1
904
- }), r = new m(t, s), i = new m(t, n), c = new m(o, a);
905
- i.scale.set(0.8, 0.8, 0.8), i.position.y = 0.1, c.position.y = 2.5;
906
- const l = new v();
907
- l.add(r, i, c), this.add(l);
905
+ }), a = new m(o, s), c = new m(o, r), i = new m(t, n);
906
+ c.scale.set(0.8, 0.8, 0.8), c.position.y = 0.1, i.position.y = 2.5;
907
+ const l = new g();
908
+ l.add(a, c, i), this.add(l);
908
909
  }
909
910
  }
910
- class Ve extends v {
911
+ class Ke extends g {
911
912
  constructor() {
912
913
  super();
913
- const e = new G(0.3, 0.4, 0.1, 16), t = new d({
914
+ const e = new v(0.3, 0.4, 0.1, 16), o = new y({
914
915
  color: 3355443,
915
916
  roughness: 0.6,
916
917
  metalness: 0.3
917
- }), o = new m(e, t);
918
- o.position.y = 0.05;
919
- const s = new G(0.1, 0.1, 0.7, 16), n = new d({
918
+ }), t = new m(e, o);
919
+ t.position.y = 0.05;
920
+ const s = new v(0.1, 0.1, 0.7, 16), r = new y({
920
921
  color: 5592405,
921
922
  roughness: 0.5,
922
923
  metalness: 0.4
923
- }), a = new m(s, n);
924
- a.position.y = 0.4;
925
- const r = new C(0.075, 0.2, 16), i = new d({
924
+ }), n = new m(s, r);
925
+ n.position.y = 0.4;
926
+ const a = new L(0.075, 0.2, 16), c = new y({
926
927
  color: 16733440,
927
928
  emissive: 16733440,
928
929
  emissiveIntensity: 0.6,
929
930
  transparent: !0,
930
931
  opacity: 0.8
931
- }), c = new m(r, i);
932
- c.position.y = 0.8, this.add(o, a, c);
932
+ }), i = new m(a, c);
933
+ i.position.y = 0.8, this.add(t, n, i);
933
934
  }
934
935
  }
935
- class Ee extends v {
936
+ class Qe extends g {
936
937
  constructor() {
937
938
  super();
938
- const e = new x(3, 4, 0.1), t = new d({
939
+ const e = new x(3, 4, 0.1), o = new y({
939
940
  color: 3026478,
940
941
  roughness: 0.8,
941
942
  metalness: 0.6
942
- }), o = new x(0.2, 0.5, 0.2), s = new d({
943
+ }), t = new x(0.2, 0.5, 0.2), s = new y({
943
944
  color: 11184810,
944
945
  roughness: 0.5,
945
946
  metalness: 0.7
946
- }), n = new G(0.3, 0.3, 0.1, 16), a = new d({
947
+ }), r = new v(0.3, 0.3, 0.1, 16), n = new y({
947
948
  color: 5592405,
948
949
  roughness: 0.7,
949
950
  metalness: 0.5
950
- }), r = new m(e, t);
951
- for (let y = -1; y <= 1; y++) {
952
- const I = new m(o, s);
953
- I.position.set(y, 1.5, 0.1), r.add(I);
951
+ }), a = new m(e, o);
952
+ for (let w = -1; w <= 1; w++) {
953
+ const P = new m(t, s);
954
+ P.position.set(w, 1.5, 0.1), a.add(P);
954
955
  }
955
- const i = new m(n, a);
956
- i.rotation.x = Math.PI / 2, i.position.set(0, 0.5, 0.15), r.add(i);
957
- const c = new B(0.15, 8, 8), l = new d({
956
+ const c = new m(r, n);
957
+ c.rotation.x = Math.PI / 2, c.position.set(0, 0.5, 0.15), a.add(c);
958
+ const i = new T(0.15, 8, 8), l = new y({
958
959
  color: 16711680,
959
960
  emissive: 16711680,
960
961
  emissiveIntensity: 0.5
961
- }), w = new m(c, l);
962
- w.position.set(0, -1, 0.1), r.add(w), this.add(r);
963
- let u = 0.015, M = 0.8, f = 0.2;
964
- function p() {
965
- requestAnimationFrame(p);
966
- const y = f + Math.abs(Math.sin(Date.now() * u)) * (M - f);
967
- w.material.emissiveIntensity = y;
962
+ }), u = new m(i, l);
963
+ u.position.set(0, -1, 0.1), a.add(u), this.add(a);
964
+ let f = 0.015, p = 0.8, M = 0.2;
965
+ function d() {
966
+ requestAnimationFrame(d);
967
+ const w = M + Math.abs(Math.sin(Date.now() * f)) * (p - M);
968
+ u.material.emissiveIntensity = w;
968
969
  }
969
- p();
970
+ d();
970
971
  }
971
972
  }
972
- class Ue extends v {
973
+ class $e extends g {
973
974
  constructor() {
974
975
  super();
975
976
  const e = [
976
- new g(0, 0),
977
+ new G(0, 0),
977
978
  // Bottom of the flask
978
- new g(1.2, 0),
979
+ new G(1.2, 0),
979
980
  // Base
980
- new g(1.5, 1.5),
981
+ new G(1.5, 1.5),
981
982
  // Mid-body
982
- new g(1, 3),
983
+ new G(1, 3),
983
984
  // Narrow neck
984
- new g(0.6, 3.5)
985
+ new G(0.6, 3.5)
985
986
  // Mouth of the flask
986
- ], t = new V(e, 12), o = new G(0.6, 0.7, 0.3, 8), s = new d({
987
+ ], o = new z(e, 12), t = new v(0.6, 0.7, 0.3, 8), s = new y({
987
988
  color: 8965290,
988
989
  transparent: !0,
989
990
  opacity: 0.4,
990
991
  roughness: 0.1,
991
992
  metalness: 0.5
992
- }), n = new d({
993
+ }), r = new y({
993
994
  color: 9127187,
994
995
  roughness: 1
995
- }), a = new m(t, s), r = new m(o, n);
996
- r.position.y = 3.5, this.add(a, r);
996
+ }), n = new m(o, s), a = new m(t, r);
997
+ a.position.y = 3.5, this.add(n, a);
997
998
  }
998
999
  }
999
- class Re extends v {
1000
+ class De extends g {
1000
1001
  constructor() {
1001
1002
  super();
1002
- const e = new x(2, 3, 0.1), t = new d({
1003
+ const e = new x(2, 3, 0.1), o = new y({
1003
1004
  color: 3355443,
1004
1005
  roughness: 0.8,
1005
1006
  metalness: 0.5
1006
- }), o = new m(e, t), s = new G(0.1, 0.1, 0.2, 8), n = new G(0.05, 0.05, 1, 8), a = new d({
1007
+ }), t = new m(e, o), s = new v(0.1, 0.1, 0.2, 8), r = new v(0.05, 0.05, 1, 8), n = new y({
1007
1008
  color: 11184810,
1008
1009
  roughness: 0.5,
1009
1010
  metalness: 0.7
1010
1011
  });
1011
- for (let r = -0.5; r <= 0.5; r += 0.5) {
1012
- const i = new m(s, a);
1013
- i.position.set(r, 1, 0.1);
1014
- const c = new m(n, a);
1015
- c.position.y = 0.5, i.add(c), this.add(i);
1012
+ for (let a = -0.5; a <= 0.5; a += 0.5) {
1013
+ const c = new m(s, n);
1014
+ c.position.set(a, 1, 0.1);
1015
+ const i = new m(r, n);
1016
+ i.position.y = 0.5, c.add(i), this.add(c);
1016
1017
  }
1017
- this.add(o);
1018
+ this.add(t);
1018
1019
  }
1019
1020
  }
1020
- class Ye extends v {
1021
+ class Re extends g {
1021
1022
  constructor() {
1022
1023
  super();
1023
- const e = new x(1, 0.2, 0.5), t = new d({
1024
+ const e = new x(1, 0.2, 0.5), o = new y({
1024
1025
  color: 4473924,
1025
1026
  roughness: 0.6,
1026
1027
  metalness: 0.3
1027
- }), o = new m(e, t);
1028
- o.position.y = 0.1;
1029
- const s = new x(0.2, 1, 0.2), n = new m(s, t);
1030
- n.position.set(0, 0.6, -0.2);
1031
- const a = new G(0.1, 0.1, 0.4, 8), r = new d({
1028
+ }), t = new m(e, o);
1029
+ t.position.y = 0.1;
1030
+ const s = new x(0.2, 1, 0.2), r = new m(s, o);
1031
+ r.position.set(0, 0.6, -0.2);
1032
+ const n = new v(0.1, 0.1, 0.4, 8), a = new y({
1032
1033
  color: 3355443,
1033
1034
  roughness: 0.5,
1034
1035
  metalness: 0.6
1035
- }), i = new m(a, r);
1036
- i.position.set(0, 1.1, -0.35), i.rotation.x = -Math.PI / 4;
1037
- const c = new x(0.6, 0.1, 0.6), l = new d({
1036
+ }), c = new m(n, a);
1037
+ c.position.set(0, 1.1, -0.35), c.rotation.x = -Math.PI / 4;
1038
+ const i = new x(0.6, 0.1, 0.6), l = new y({
1038
1039
  color: 5592405,
1039
1040
  roughness: 0.8,
1040
1041
  metalness: 0.2
1041
- }), w = new m(c, l);
1042
- w.position.set(0, 0.6, 0), this.add(o, n, i, w);
1042
+ }), u = new m(i, l);
1043
+ u.position.set(0, 0.6, 0), this.add(t, r, c, u);
1043
1044
  }
1044
1045
  }
1045
- class _e extends v {
1046
+ class We extends g {
1046
1047
  constructor() {
1047
1048
  super();
1048
- const e = new le(), t = new G(0.2, 0.3, 1.5, 8);
1049
- t.translate(0, 0.75, 0);
1050
- const o = new d({
1049
+ const e = new we(), o = new v(0.2, 0.3, 1.5, 8);
1050
+ o.translate(0, 0.75, 0);
1051
+ const t = new y({
1051
1052
  color: 6045747,
1052
1053
  // Dark earthy tone
1053
1054
  roughness: 1,
1054
1055
  metalness: 0,
1055
- side: q
1056
+ side: N
1056
1057
  // Render inside and outside
1057
- }), s = new d({
1058
+ }), s = new y({
1058
1059
  color: 9132587,
1059
1060
  // Slightly lighter earthy color
1060
1061
  roughness: 0.8,
1061
1062
  metalness: 0.1
1062
- }), n = new m(e, o), a = new m(t, s);
1063
- a.position.set(0.3, 1.3, 0), a.rotation.z = Math.PI / 4, this.add(n, a);
1063
+ }), r = new m(e, t), n = new m(o, s);
1064
+ n.position.set(0.3, 1.3, 0), n.rotation.z = Math.PI / 4, this.add(r, n);
1064
1065
  }
1065
1066
  }
1066
- class Ze extends v {
1067
+ class et extends g {
1067
1068
  constructor() {
1068
1069
  super();
1069
- const e = 100, t = 0.05, o = new ee(
1070
- Array.from({ length: e }, (c, l) => {
1071
- const w = l * 0.2;
1072
- return new L(
1073
- Math.cos(w) * 0.4,
1074
- l * t,
1070
+ const e = 100, o = 0.05, t = new ne(
1071
+ Array.from({ length: e }, (i, l) => {
1072
+ const u = l * 0.2;
1073
+ return new C(
1074
+ Math.cos(u) * 0.4,
1075
+ l * o,
1075
1076
  // Gradual height increase
1076
- Math.sin(w) * 0.4
1077
+ Math.sin(u) * 0.4
1077
1078
  );
1078
1079
  })
1079
- ), s = new te(o, 200, 0.1, 8, !1), n = new d({
1080
+ ), s = new ae(t, 200, 0.1, 8, !1), r = new y({
1080
1081
  color: 8965375,
1081
1082
  transparent: !0,
1082
1083
  opacity: 0.3,
1083
1084
  roughness: 0.1,
1084
1085
  metalness: 0.2,
1085
1086
  emissive: 8965375
1086
- }), a = new m(s, n);
1087
- this.add(a);
1088
- function r() {
1089
- n.emissiveIntensity = 0.2 + Math.sin(Date.now() * 5e-3) * 0.1;
1087
+ }), n = new m(s, r);
1088
+ this.add(n);
1089
+ function a() {
1090
+ r.emissiveIntensity = 0.2 + Math.sin(Date.now() * 5e-3) * 0.1;
1090
1091
  }
1091
- function i() {
1092
- requestAnimationFrame(i), r();
1092
+ function c() {
1093
+ requestAnimationFrame(c), a();
1093
1094
  }
1094
- i();
1095
+ c();
1095
1096
  }
1096
1097
  }
1097
- class je extends v {
1098
+ class tt extends g {
1098
1099
  constructor() {
1099
1100
  super();
1100
- const e = new j(0.3, 0.03, 8, 16), t = new d({
1101
+ const e = new $(0.3, 0.03, 8, 16), o = new y({
1101
1102
  color: 8947848,
1102
1103
  roughness: 0.7,
1103
1104
  metalness: 0.3
1104
- }), o = new m(e, t);
1105
- o.rotation.x = Math.PI / 2, o.position.y = 0.4;
1106
- const s = new G(0.02, 0.02, 0.4, 8), n = new d({
1105
+ }), t = new m(e, o);
1106
+ t.rotation.x = Math.PI / 2, t.position.y = 0.4;
1107
+ const s = new v(0.02, 0.02, 0.4, 8), r = new y({
1107
1108
  color: 6710886,
1108
1109
  roughness: 0.8,
1109
1110
  metalness: 0.3
1110
- }), a = [];
1111
- for (let r = 0; r < 3; r++) {
1112
- const i = r / 3 * Math.PI * 2, c = new m(s, n);
1113
- c.position.set(Math.cos(i) * 0.25, 0.2, Math.sin(i) * 0.25), a.push(c);
1111
+ }), n = [];
1112
+ for (let a = 0; a < 3; a++) {
1113
+ const c = a / 3 * Math.PI * 2, i = new m(s, r);
1114
+ i.position.set(Math.cos(c) * 0.25, 0.2, Math.sin(c) * 0.25), n.push(i);
1114
1115
  }
1115
- this.add(o, ...a);
1116
+ this.add(t, ...n);
1116
1117
  }
1117
1118
  }
1118
- class Oe extends v {
1119
+ class ot extends g {
1119
1120
  constructor() {
1120
1121
  super();
1121
- const e = new G(0.5, 0.6, 0.3, 16), t = new d({
1122
+ const e = new v(0.5, 0.6, 0.3, 16), o = new y({
1122
1123
  color: 3355443,
1123
1124
  roughness: 0.6,
1124
1125
  metalness: 0.5
1125
- }), o = new m(e, t);
1126
- o.position.y = 0.15;
1127
- const s = new G(0.15, 0.15, 2, 12, 1, !0), n = new d({
1126
+ }), t = new m(e, o);
1127
+ t.position.y = 0.15;
1128
+ const s = new v(0.15, 0.15, 2, 12, 1, !0), r = new y({
1128
1129
  color: 16737792,
1129
1130
  roughness: 0.5,
1130
1131
  metalness: 0.8,
1131
- side: q
1132
- }), a = new m(s, n);
1133
- a.position.y = 1.3;
1134
- const r = new B(0.3, 16, 16), i = new m(r, n);
1135
- i.position.y = 2.4, this.add(o, a, i);
1136
- const c = [];
1137
- for (let u = 0; u < 5; u++) {
1138
- const M = new oe({ color: 10079487 }), f = [
1139
- new L(0, 2.4, 0),
1140
- new L((Math.random() - 0.5) * 1.5, Math.random() * 2.4, (Math.random() - 0.5) * 1.5)
1141
- ], p = new b().setFromPoints(f), y = new se(p, M);
1142
- this.add(y), c.push(y);
1132
+ side: N
1133
+ }), n = new m(s, r);
1134
+ n.position.y = 1.3;
1135
+ const a = new T(0.3, 16, 16), c = new m(a, r);
1136
+ c.position.y = 2.4, this.add(t, n, c);
1137
+ const i = [];
1138
+ for (let f = 0; f < 5; f++) {
1139
+ const p = new re({ color: 10079487 }), M = [
1140
+ new C(0, 2.4, 0),
1141
+ new C((Math.random() - 0.5) * 1.5, Math.random() * 2.4, (Math.random() - 0.5) * 1.5)
1142
+ ], d = new b().setFromPoints(M), w = new ce(d, p);
1143
+ this.add(w), i.push(w);
1143
1144
  }
1144
1145
  function l() {
1145
- c.forEach((u) => {
1146
- const M = [
1147
- new L(0, 2.4, 0),
1148
- new L((Math.random() - 0.5) * 1.5, Math.random() * 2.4, (Math.random() - 0.5) * 1.5)
1146
+ i.forEach((f) => {
1147
+ const p = [
1148
+ new C(0, 2.4, 0),
1149
+ new C((Math.random() - 0.5) * 1.5, Math.random() * 2.4, (Math.random() - 0.5) * 1.5)
1149
1150
  ];
1150
- u.geometry.setFromPoints(M);
1151
+ f.geometry.setFromPoints(p);
1151
1152
  });
1152
1153
  }
1153
- function w() {
1154
- requestAnimationFrame(w), l();
1154
+ function u() {
1155
+ requestAnimationFrame(u), l();
1155
1156
  }
1156
- w();
1157
+ u();
1157
1158
  }
1158
1159
  }
1159
- class Xe extends v {
1160
- constructor(e = 0.2, t = 0.2, o = 3, s = 32) {
1160
+ class st extends g {
1161
+ constructor(e = 0.2, o = 0.2, t = 3, s = 32) {
1161
1162
  super();
1162
- const n = new E(e, t, o, s), a = new U({
1163
+ const r = new j(e, o, t, s), n = new Z({
1163
1164
  color: 8965375,
1164
1165
  transparent: !0,
1165
1166
  opacity: 0.4,
@@ -1168,48 +1169,48 @@ class Xe extends v {
1168
1169
  reflectivity: 0.8,
1169
1170
  transmission: 0.9,
1170
1171
  // For glass effect
1171
- side: q
1172
- }), r = new m(n, a);
1173
- this.add(r);
1172
+ side: N
1173
+ }), a = new m(r, n);
1174
+ this.add(a);
1174
1175
  }
1175
1176
  }
1176
- class Je extends v {
1177
- constructor(e = 3, t = [65450, 16711850, 11141375]) {
1177
+ class nt extends g {
1178
+ constructor(e = 3, o = [65450, 16711850, 11141375]) {
1178
1179
  super();
1179
- const o = new x(3, 0.2, 1), s = new d({
1180
+ const t = new x(3, 0.2, 1), s = new y({
1180
1181
  color: 9127187,
1181
1182
  // Wooden color or change to metallic tone
1182
1183
  roughness: 0.7,
1183
1184
  metalness: 0.3
1184
- }), n = new m(o, s);
1185
- n.position.y = 0.5;
1186
- const a = new E(0.1, 0.1, 1, 16), r = new d({
1185
+ }), r = new m(t, s);
1186
+ r.position.y = 0.5;
1187
+ const n = new j(0.1, 0.1, 1, 16), a = new y({
1187
1188
  color: 11184810,
1188
1189
  transparent: !0,
1189
1190
  opacity: 0.4,
1190
1191
  roughness: 0.1,
1191
1192
  metalness: 0.5,
1192
- side: q
1193
+ side: N
1193
1194
  });
1194
- for (let i = 0; i < e; i++) {
1195
- const c = new m(a, r), l = (i - (e - 1) / 2) * 0.8;
1196
- c.position.set(l, 1, 0);
1197
- const w = new E(0.099, 0.099, 0.5, 16, !1), u = t[i % t.length], M = new d({
1198
- color: u,
1199
- emissive: u,
1195
+ for (let c = 0; c < e; c++) {
1196
+ const i = new m(n, a), l = (c - (e - 1) / 2) * 0.8;
1197
+ i.position.set(l, 1, 0);
1198
+ const u = new j(0.099, 0.099, 0.5, 16, !1), f = o[c % o.length], p = new y({
1199
+ color: f,
1200
+ emissive: f,
1200
1201
  emissiveIntensity: 0.5,
1201
1202
  transparent: !0,
1202
1203
  opacity: 0.6
1203
- }), f = new m(w, M);
1204
- f.position.set(0, -0.25, 0), c.add(f), n.add(c);
1204
+ }), M = new m(u, p);
1205
+ M.position.set(0, -0.25, 0), i.add(M), r.add(i);
1205
1206
  }
1206
- this.add(n);
1207
+ this.add(r);
1207
1208
  }
1208
1209
  }
1209
- class Ke extends m {
1210
+ class at extends m {
1210
1211
  constructor() {
1211
1212
  super();
1212
- const e = new me(), t = new U({
1213
+ const e = new Me(), o = new Z({
1213
1214
  color: 5597999,
1214
1215
  roughness: 0.1,
1215
1216
  transmission: 0.9,
@@ -1219,10 +1220,165 @@ class Ke extends m {
1219
1220
  clearcoat: 1,
1220
1221
  clearcoatRoughness: 0.1
1221
1222
  });
1222
- this.geometry = e, this.material = t;
1223
+ this.geometry = e, this.material = o;
1224
+ }
1225
+ }
1226
+ class pe extends q {
1227
+ constructor(e = 5, o = 0.5, t = 1) {
1228
+ super();
1229
+ const s = Math.PI * 2 / e, r = s / 2, n = s / 4;
1230
+ this.moveTo(Math.cos(0) * t, -Math.sin(0) * t);
1231
+ for (let a = 1; a <= e; ++a) {
1232
+ let c = Math.cos(s * a - n * 3) * (o / Math.cos(n)), i = -Math.sin(s * a - n * 3) * (o / Math.cos(n)), l = Math.cos(s * a - r) * o, u = -Math.sin(s * a - r) * o;
1233
+ this.quadraticCurveTo(c, i, l, u), c = Math.cos(s * a - n) * (o / Math.cos(n)), i = -Math.sin(s * a - n) * (o / Math.cos(n)), l = Math.cos(s * a) * t, u = -Math.sin(s * a) * t, this.quadraticCurveTo(c, i, l, u);
1234
+ }
1235
+ this.closePath();
1236
+ }
1237
+ }
1238
+ class rt extends m {
1239
+ constructor(e = 5, o = 0.5, t = 1, s = 0.25) {
1240
+ super();
1241
+ const r = new pe(e, o, t), n = new A(r, {
1242
+ depth: s,
1243
+ bevelEnabled: s > 0,
1244
+ bevelThickness: 0,
1245
+ bevelSize: 0
1246
+ }), a = new y({
1247
+ color: 16776960,
1248
+ emissive: 16766720,
1249
+ emissiveIntensity: 0.25,
1250
+ metalness: 0.1,
1251
+ roughness: 0.3,
1252
+ flatShading: !0
1253
+ });
1254
+ n.center(), this.geometry = n, this.material = a;
1223
1255
  }
1224
1256
  }
1225
- const Qe = {
1257
+ class de extends q {
1258
+ constructor(e = 5, o = 0.5, t = 1, s = 5, r = 0.25) {
1259
+ super();
1260
+ const n = Math.PI * 2 / e, a = n / 4;
1261
+ this.moveTo(Math.cos(0) * t, -Math.sin(0) * t);
1262
+ for (let c = 1; c <= e; ++c)
1263
+ this.lineTo(Math.cos(n * c - a * 3) * o, -Math.sin(n * c - a * 3) * o), this.lineTo(Math.cos(n * c - a * 2) * o, -Math.sin(n * c - a * 2) * o), this.lineTo(Math.cos(n * c - a) * t, -Math.sin(n * c - a) * t), this.lineTo(Math.cos(n * c) * t, -Math.sin(n * c) * t);
1264
+ if (this.closePath(), r > 0 && s > 2) {
1265
+ const c = new ie(), i = Math.PI * 2 / s;
1266
+ c.moveTo(Math.cos(0) * r, -Math.sin(0) * r);
1267
+ for (let l = 1; l < s; ++l)
1268
+ c.lineTo(Math.cos(i * l) * r, -Math.sin(i * l) * r);
1269
+ c.lineTo(Math.cos(0) * r, -Math.sin(0) * r), this.holes.push(c);
1270
+ }
1271
+ }
1272
+ }
1273
+ class ct extends m {
1274
+ constructor(e = 5, o = 0.5, t = 1, s = 5, r = 0.25, n = 0.25) {
1275
+ super();
1276
+ const a = new de(e, o, t, s, r), c = new A(a, {
1277
+ depth: n,
1278
+ bevelEnabled: n > 0,
1279
+ bevelThickness: 0,
1280
+ bevelSize: 0
1281
+ }), i = new y({
1282
+ color: 11184810,
1283
+ metalness: 0.8,
1284
+ roughness: 0.2,
1285
+ reflectivity: 0.5
1286
+ });
1287
+ c.center(), this.geometry = c, this.material = i;
1288
+ }
1289
+ }
1290
+ class xe extends q {
1291
+ constructor(e = 1, o = 2.1, t = 1.4, s = 1.6) {
1292
+ super(), this.moveTo(0, t * e / 3), this.bezierCurveTo(
1293
+ -o * 0.375 * e,
1294
+ t * e,
1295
+ // Control point 1 for the left lobe
1296
+ -o * e,
1297
+ t * e / 3,
1298
+ // Control point 2 for the left side of the heart
1299
+ 0,
1300
+ -s * e
1301
+ // Bottom tip of the heart, controlled by `tipDepth`
1302
+ ), this.bezierCurveTo(
1303
+ o * e,
1304
+ t * e / 3,
1305
+ // Control point 3 for the right side of the heart
1306
+ o * 0.375 * e,
1307
+ t * e,
1308
+ // Control point 4 for the right lobe
1309
+ 0,
1310
+ t * e / 3
1311
+ // Close shape at the top middle
1312
+ );
1313
+ }
1314
+ }
1315
+ class it extends m {
1316
+ constructor(e = 1, o = 1, t = 1, s = 10, r = 0.25) {
1317
+ super();
1318
+ const n = new xe(e, o, t, s), a = new A(n, {
1319
+ depth: r,
1320
+ bevelEnabled: r > 0,
1321
+ bevelThickness: 0,
1322
+ bevelSize: 0
1323
+ }), c = new y({
1324
+ color: 12986408,
1325
+ emissive: 12981270,
1326
+ emissiveIntensity: 0.25,
1327
+ metalness: 0.1,
1328
+ roughness: 0.3,
1329
+ flatShading: !0
1330
+ });
1331
+ a.center(), this.geometry = a, this.material = c;
1332
+ }
1333
+ }
1334
+ class ve extends q {
1335
+ constructor(e = 5, o = 0.5, t = 1) {
1336
+ super();
1337
+ const s = Math.PI * 2 / e, r = s / 2;
1338
+ this.moveTo(Math.cos(0) * t, Math.sin(0) * t);
1339
+ for (let n = 1; n <= e; ++n)
1340
+ this.lineTo(Math.cos(s * n - r) * o, Math.sin(s * n - r) * o), this.lineTo(Math.cos(s * n) * t, Math.sin(s * n) * t);
1341
+ this.closePath();
1342
+ }
1343
+ }
1344
+ class lt extends m {
1345
+ constructor(e = 5, o = 0.5, t = 1, s = 0.25) {
1346
+ super();
1347
+ const r = new ve(e, o, t), n = new A(r, {
1348
+ depth: s,
1349
+ bevelEnabled: s > 0,
1350
+ bevelThickness: 0,
1351
+ bevelSize: 0
1352
+ }), a = new y({
1353
+ color: 16776960,
1354
+ emissive: 16766720,
1355
+ emissiveIntensity: 0.25,
1356
+ metalness: 0.1,
1357
+ roughness: 0.3,
1358
+ flatShading: !0
1359
+ });
1360
+ n.center(), this.geometry = n, this.material = a;
1361
+ }
1362
+ }
1363
+ const K = {
1364
+ uniforms: {},
1365
+ vertexShader: `
1366
+ varying vec3 vPosition;
1367
+ void main() {
1368
+ vPosition = position;
1369
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
1370
+ }
1371
+ `,
1372
+ fragmentShader: `
1373
+ varying vec3 vPosition;
1374
+ void main() {
1375
+ float y = normalize(vPosition).y * 0.5 + 0.5; // Normalizing y to range 0 to 1
1376
+ vec3 topColor = vec3(0.5, 0.8, 1.0); // Light blue
1377
+ vec3 bottomColor = vec3(1.0, 1.0, 1.0); // Light white/gray for the horizon
1378
+ gl_FragColor = vec4(mix(bottomColor, topColor, y), 1.0);
1379
+ }
1380
+ `
1381
+ }, mt = {
1226
1382
  uniforms: {
1227
1383
  tDiffuse: { value: null },
1228
1384
  opacity: { value: 1 }
@@ -1243,57 +1399,129 @@ const Qe = {
1243
1399
  gl_FragColor = opacity * texel;
1244
1400
  }
1245
1401
  `
1246
- }, $e = (h) => {
1402
+ }, _ = {
1403
+ uniforms: {
1404
+ topColor: { value: new H(51) },
1405
+ bottomColor: { value: new H(17) },
1406
+ offset: { value: 33 },
1407
+ exponent: { value: 0.6 }
1408
+ },
1409
+ vertexShader: `
1410
+ varying vec3 vWorldPosition;
1411
+ void main() {
1412
+ vec4 worldPosition = modelMatrix * vec4(position, 1.0);
1413
+ vWorldPosition = worldPosition.xyz;
1414
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
1415
+ }
1416
+ `,
1417
+ fragmentShader: `
1418
+ uniform vec3 topColor;
1419
+ uniform vec3 bottomColor;
1420
+ uniform float offset;
1421
+ uniform float exponent;
1422
+ varying vec3 vWorldPosition;
1423
+ void main() {
1424
+ float h = normalize(vWorldPosition + offset).y;
1425
+ gl_FragColor = vec4(mix(bottomColor, topColor, max(pow(max(h, 0.0), exponent), 0.0)), 1.0);
1426
+ }
1427
+ `
1428
+ };
1429
+ class ht extends m {
1430
+ constructor(e = 1e3) {
1431
+ super(), this.geometry = new x(e, e, e), this.material = new Y({
1432
+ vertexShader: K.vertexShader,
1433
+ fragmentShader: K.fragmentShader,
1434
+ side: R
1435
+ });
1436
+ }
1437
+ }
1438
+ class ut extends m {
1439
+ constructor(e = 1e3) {
1440
+ super(), this.geometry = new T(e, 32, 15), this.material = new Y({
1441
+ vertexShader: _.vertexShader,
1442
+ fragmentShader: _.fragmentShader,
1443
+ uniforms: _.uniforms,
1444
+ side: R
1445
+ });
1446
+ }
1447
+ }
1448
+ class ft extends m {
1449
+ constructor(e = Math.PI * 0.49, o = 2 * Math.PI * 0.25, t = 10, s = 2, r = 5e-3, n = 0.8) {
1450
+ super();
1451
+ const a = new fe();
1452
+ a.scale.setScalar(45e4), this.add(a);
1453
+ const c = a.material.uniforms;
1454
+ c.turbidity.value = t, c.rayleigh.value = s, c.mieCoefficient.value = r, c.mieDirectionalG.value = n, this.skyUniforms = c, this.sunPosition(e, o);
1455
+ }
1456
+ sunPosition(e, o) {
1457
+ const t = new C(), s = this.skyUniforms;
1458
+ t.setFromSphericalCoords(1, e, o), s.sunPosition.value.copy(t);
1459
+ }
1460
+ }
1461
+ const yt = (h) => {
1247
1462
  const e = new Uint8Array(4 * h * h);
1248
- for (let o = 0; o < h * h; o++) {
1249
- const s = o * 4, n = (o % h ^ Math.floor(o / h)) & 1 ? 255 : 0;
1250
- e[s] = n, e[s + 1] = n, e[s + 2] = n, e[s + 3] = 255;
1463
+ for (let t = 0; t < h * h; t++) {
1464
+ const s = t * 4, r = (t % h ^ Math.floor(t / h)) & 1 ? 255 : 0;
1465
+ e[s] = r, e[s + 1] = r, e[s + 2] = r, e[s + 3] = 255;
1251
1466
  }
1252
- const t = new ne(e, h, h, ae, re);
1253
- return t.wrapS = _, t.wrapT = _, t.minFilter = ce, t.needsUpdate = !0, t;
1467
+ const o = new le(e, h, h, me, he);
1468
+ return o.wrapS = J, o.wrapT = J, o.minFilter = ue, o.needsUpdate = !0, o;
1254
1469
  };
1255
1470
  export {
1256
- Ae as Beaker,
1257
- ie as BeakerGeometry,
1258
- ye as BifurcatedStaircaseGeometry,
1259
- Pe as BoneGeometry,
1260
- ze as Book,
1261
- Ne as Bottle,
1262
- he as Bubbling,
1263
- Ve as BunsenBurner,
1264
- Fe as Candle,
1265
- xe as CrossHeadstoneGeometry,
1266
- Te as Desk,
1267
- de as DioramaGeometry,
1268
- Ee as ElectricPanel,
1269
- be as FenceColumn,
1270
- Ue as Flask,
1271
- fe as LShapedStaircaseGeometry,
1272
- Le as Lantern,
1273
- Re as LeverPanel,
1274
- Be as Mausoleum,
1275
- Ye as Microscope,
1276
- Se as Moon,
1277
- _e as MortarAndPestle,
1278
- le as MortarGeometry,
1279
- Ce as MossyRocks,
1280
- Ge as ObeliskHeadstoneGeometry,
1281
- qe as Rocks,
1282
- ve as RoundedHeadstoneGeometry,
1283
- Ie as SimpleLeafGeometry,
1284
- Me as SpiralStaircaseGeometry,
1285
- Ze as SpiralTube,
1286
- ge as SquareHeadstoneGeometry,
1287
- pe as StaircaseGeometry,
1288
- je as Stand,
1289
- Oe as TeslaCoil,
1290
- Xe as TestTube,
1291
- E as TestTubeGeometry,
1292
- Je as TestTubeRack,
1293
- Ke as WineBottle,
1294
- me as WineBottleGeometry,
1295
- ke as WroughtIronBarGeometry,
1296
- $e as checkerboardTexture,
1297
- Qe as fadeShader
1471
+ Xe as Beaker,
1472
+ ye as BeakerGeometry,
1473
+ Pe as BifurcatedStaircaseGeometry,
1474
+ Ee as BoneGeometry,
1475
+ He as Book,
1476
+ Je as Bottle,
1477
+ Se as Bubbling,
1478
+ Ke as BunsenBurner,
1479
+ rt as Burst,
1480
+ pe as BurstShape,
1481
+ je as Candle,
1482
+ Ce as CrossHeadstoneGeometry,
1483
+ ht as DaySkybox,
1484
+ _e as Desk,
1485
+ ke as DioramaGeometry,
1486
+ Qe as ElectricPanel,
1487
+ Ae as FenceColumn,
1488
+ $e as Flask,
1489
+ ct as Gear,
1490
+ de as GearShape,
1491
+ it as Heart,
1492
+ xe as HeartShape,
1493
+ Ie as LShapedStaircaseGeometry,
1494
+ Ye as Lantern,
1495
+ De as LeverPanel,
1496
+ ze as Mausoleum,
1497
+ Re as Microscope,
1498
+ Ue as Moon,
1499
+ We as MortarAndPestle,
1500
+ we as MortarGeometry,
1501
+ Ze as MossyRocks,
1502
+ ut as NightSkybox,
1503
+ Fe as ObeliskHeadstoneGeometry,
1504
+ Oe as Rocks,
1505
+ Le as RoundedHeadstoneGeometry,
1506
+ Ve as SimpleLeafGeometry,
1507
+ Te as SpiralStaircaseGeometry,
1508
+ et as SpiralTube,
1509
+ qe as SquareHeadstoneGeometry,
1510
+ Be as StaircaseGeometry,
1511
+ tt as Stand,
1512
+ lt as Star,
1513
+ ve as StarShape,
1514
+ ot as TeslaCoil,
1515
+ st as TestTube,
1516
+ j as TestTubeGeometry,
1517
+ nt as TestTubeRack,
1518
+ ft as TwilightSkybox,
1519
+ at as WineBottle,
1520
+ Me as WineBottleGeometry,
1521
+ Ne as WroughtIronBarGeometry,
1522
+ yt as checkerboardTexture,
1523
+ K as daySkyShader,
1524
+ mt as fadeShader,
1525
+ _ as nightSkyShader
1298
1526
  };
1299
1527
  //# sourceMappingURL=index.es.js.map