three-low-poly 0.9.1 → 0.9.2

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,73 +1,619 @@
1
- import { BufferGeometry as f, BoxGeometry as i, ConeGeometry as S, CylinderGeometry as w, Float32BufferAttribute as z, SphereGeometry as P, Group as v, ShaderMaterial as F, Mesh as c, MeshStandardMaterial as p, Shape as H, ExtrudeGeometry as A, MeshBasicMaterial as q, PointLight as L, TorusGeometry as N, DodecahedronGeometry as B } from "three";
2
- import { mergeGeometries as M } from "three/addons/utils/BufferGeometryUtils.js";
3
- class V extends f {
4
- constructor(e = 0.4, t = 1.2, n = 0.2) {
1
+ import { Group as b, SphereGeometry as B, MeshStandardMaterial as y, Mesh as m, BufferGeometry as v, Float32BufferAttribute as z, BoxGeometry as x, ConeGeometry as F, CylinderGeometry as G, Vector2 as g, LatheGeometry as V, CircleGeometry as Q, ShaderMaterial as U, Shape as $, ExtrudeGeometry as H, MeshBasicMaterial as D, PointLight as O, TorusGeometry as X, DodecahedronGeometry as _, MeshPhysicalMaterial as Y, DoubleSide as C, CatmullRomCurve3 as W, Vector3 as L, TubeGeometry as ee, LineBasicMaterial as te, Line as oe } from "three";
2
+ import { mergeGeometries as S } from "three/addons/utils/BufferGeometryUtils.js";
3
+ class ie extends b {
4
+ constructor() {
5
+ super();
6
+ const e = [], t = 20, o = new B(0.1, 6, 6), s = new y({
7
+ color: 16777215,
8
+ transparent: !0,
9
+ opacity: 0.6,
10
+ roughness: 0.3,
11
+ metalness: 0.3
12
+ });
13
+ for (let a = 0; a < t; a++) {
14
+ const i = new m(o, s);
15
+ i.position.set(
16
+ (Math.random() - 0.5) * 1.5,
17
+ // Random x position within flask
18
+ Math.random() * 3,
19
+ // Random y position within flask height
20
+ (Math.random() - 0.5) * 1.5
21
+ // Random z position within flask
22
+ ), e.push(i), this.add(i);
23
+ }
24
+ function r() {
25
+ e.forEach((a) => {
26
+ 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
+ }
29
+ function n() {
30
+ requestAnimationFrame(n), r();
31
+ }
32
+ n();
33
+ }
34
+ }
35
+ class le extends v {
36
+ constructor(e = 2, t = 0.3, o = 0.6, s = 5, r = 5, n = Math.PI / 4) {
37
+ super();
38
+ const a = [], i = [];
39
+ for (let d = 0; d < s; d++) {
40
+ const M = d * t, f = M + t, h = d * o, I = h + o;
41
+ a.push(
42
+ // Vertical riser
43
+ -e / 2,
44
+ M,
45
+ h,
46
+ // Bottom-left
47
+ e / 2,
48
+ M,
49
+ h,
50
+ // Bottom-right
51
+ e / 2,
52
+ f,
53
+ h,
54
+ // Top-right
55
+ -e / 2,
56
+ f,
57
+ h,
58
+ // Top-left
59
+ // Horizontal tread
60
+ -e / 2,
61
+ f,
62
+ h,
63
+ // Top-left
64
+ e / 2,
65
+ f,
66
+ h,
67
+ // Top-right
68
+ e / 2,
69
+ f,
70
+ I,
71
+ // Back-right
72
+ -e / 2,
73
+ f,
74
+ I
75
+ // Back-left
76
+ );
77
+ const k = d * 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
92
+ );
93
+ }
94
+ const c = s * t, l = s * o, w = e * 2;
95
+ a.push(
96
+ // Landing platform (4 vertices)
97
+ -w / 2,
98
+ c,
99
+ l,
100
+ // Bottom-left
101
+ w / 2,
102
+ c,
103
+ l,
104
+ // Bottom-right
105
+ w / 2,
106
+ c,
107
+ l + o,
108
+ // Top-right
109
+ -w / 2,
110
+ c,
111
+ l + o
112
+ // Top-left
113
+ );
114
+ const u = s * 8;
115
+ i.push(
116
+ u,
117
+ u + 1,
118
+ u + 2,
119
+ // First triangle for landing
120
+ u,
121
+ u + 2,
122
+ u + 3
123
+ // Second triangle for landing
124
+ );
125
+ for (let d = 0; d < 2; d++) {
126
+ const M = d === 0 ? 1 : -1;
127
+ for (let f = 0; f < r; f++) {
128
+ const h = c + f * t, I = h + t, k = M * (w / 4), q = l + o, R = f * o * Math.cos(n), j = f * o * Math.sin(n), A = k + M * R - e / 2 * Math.cos(n), N = k + M * R + e / 2 * Math.cos(n), T = q + j, J = A + M * o * Math.cos(n), K = N + M * o * Math.cos(n), Z = T + o * Math.sin(n);
129
+ a.push(
130
+ // Vertical riser
131
+ A,
132
+ h,
133
+ T,
134
+ // Bottom-left
135
+ N,
136
+ h,
137
+ T,
138
+ // Bottom-right
139
+ N,
140
+ I,
141
+ T,
142
+ // Top-right
143
+ A,
144
+ I,
145
+ T,
146
+ // Top-left
147
+ // Horizontal tread
148
+ A,
149
+ I,
150
+ T,
151
+ // Top-left
152
+ N,
153
+ I,
154
+ T,
155
+ // Top-right
156
+ K,
157
+ I,
158
+ Z,
159
+ // Back-right
160
+ J,
161
+ I,
162
+ Z
163
+ // Back-left
164
+ );
165
+ const P = u + 4 + d * r * 8 + f * 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
180
+ );
181
+ }
182
+ }
183
+ this.setIndex(i), this.setAttribute("position", new z(a, 3)), this.computeVertexNormals();
184
+ }
185
+ }
186
+ class me extends v {
187
+ constructor(e = 5, t = 3, o = 5, s = 0.2) {
188
+ super();
189
+ const r = [
190
+ // Floor vertices
191
+ -e / 2,
192
+ 0,
193
+ -o / 2,
194
+ // 0
195
+ e / 2,
196
+ 0,
197
+ -o / 2,
198
+ // 1
199
+ e / 2,
200
+ 0,
201
+ o / 2,
202
+ // 2
203
+ -e / 2,
204
+ 0,
205
+ o / 2,
206
+ // 3
207
+ // Back wall vertices
208
+ -e / 2,
209
+ 0,
210
+ -o / 2,
211
+ // 4
212
+ e / 2,
213
+ 0,
214
+ -o / 2,
215
+ // 5
216
+ e / 2,
217
+ t,
218
+ -o / 2,
219
+ // 6
220
+ -e / 2,
221
+ t,
222
+ -o / 2,
223
+ // 7
224
+ // Left wall vertices
225
+ -e / 2,
226
+ 0,
227
+ -o / 2,
228
+ // 8
229
+ -e / 2,
230
+ 0,
231
+ o / 2,
232
+ // 9
233
+ -e / 2,
234
+ t,
235
+ o / 2,
236
+ // 10
237
+ -e / 2,
238
+ t,
239
+ -o / 2
240
+ // 11
241
+ ], n = [
242
+ // Floor
243
+ 0,
244
+ 1,
245
+ 2,
246
+ 0,
247
+ 2,
248
+ 3,
249
+ // Back wall
250
+ 4,
251
+ 5,
252
+ 6,
253
+ 4,
254
+ 6,
255
+ 7,
256
+ // Left wall
257
+ 8,
258
+ 9,
259
+ 10,
260
+ 8,
261
+ 10,
262
+ 11
263
+ ];
264
+ this.setIndex(n), this.setAttribute("position", new z(r, 3)), this.computeVertexNormals();
265
+ }
266
+ }
267
+ class ue extends v {
268
+ constructor(e = 2, t = 0.3, o = 0.5, s = 5, r = 2) {
269
+ super();
270
+ const n = [], a = [];
271
+ for (let w = 0; w < s; w++) {
272
+ const u = w * t, d = u + t, M = w * o, f = M + o;
273
+ n.push(
274
+ // Vertical riser
275
+ -e / 2,
276
+ u,
277
+ M,
278
+ // Bottom-left
279
+ e / 2,
280
+ u,
281
+ M,
282
+ // Bottom-right
283
+ e / 2,
284
+ d,
285
+ M,
286
+ // Top-right
287
+ -e / 2,
288
+ d,
289
+ M,
290
+ // Top-left
291
+ // Horizontal tread
292
+ -e / 2,
293
+ d,
294
+ M,
295
+ // Top-left
296
+ e / 2,
297
+ d,
298
+ M,
299
+ // Top-right
300
+ e / 2,
301
+ d,
302
+ f,
303
+ // Back-right
304
+ -e / 2,
305
+ d,
306
+ f
307
+ // Back-left
308
+ );
309
+ const h = w * 8;
310
+ a.push(
311
+ h,
312
+ h + 1,
313
+ h + 2,
314
+ h,
315
+ h + 2,
316
+ h + 3
317
+ ), a.push(
318
+ h + 4,
319
+ h + 5,
320
+ h + 6,
321
+ h + 4,
322
+ h + 6,
323
+ h + 7
324
+ );
325
+ }
326
+ const i = s * t, c = s * o;
327
+ n.push(
328
+ // Landing platform (4 vertices)
329
+ -e / 2,
330
+ i,
331
+ c,
332
+ // Bottom-left
333
+ e / 2,
334
+ i,
335
+ c,
336
+ // Bottom-right
337
+ e / 2,
338
+ i,
339
+ c + r,
340
+ // Top-right
341
+ -e / 2,
342
+ i,
343
+ c + r
344
+ // Top-left
345
+ );
346
+ const l = s * 8;
347
+ a.push(
348
+ l,
349
+ l + 1,
350
+ l + 2,
351
+ // First triangle for landing
352
+ l,
353
+ l + 2,
354
+ l + 3
355
+ // Second triangle for landing
356
+ );
357
+ for (let w = 0; w < s; w++) {
358
+ const u = i + w * t, d = u + t, M = -e / 2 - w * o, f = M - o;
359
+ n.push(
360
+ // Vertical riser
361
+ M,
362
+ u,
363
+ c + r,
364
+ // Bottom-left
365
+ M,
366
+ u,
367
+ c + r - e,
368
+ // Bottom-right
369
+ M,
370
+ d,
371
+ c + r - e,
372
+ // Top-right
373
+ M,
374
+ d,
375
+ c + r,
376
+ // Top-left
377
+ // Horizontal tread
378
+ M,
379
+ d,
380
+ c + r,
381
+ // Top-left
382
+ M,
383
+ d,
384
+ c + r - e,
385
+ // Top-right
386
+ f,
387
+ d,
388
+ c + r - e,
389
+ // Back-right
390
+ f,
391
+ d,
392
+ c + r
393
+ // Back-left
394
+ );
395
+ const h = l + 4 + w * 8;
396
+ a.push(
397
+ h,
398
+ h + 1,
399
+ h + 2,
400
+ h,
401
+ h + 2,
402
+ h + 3
403
+ ), a.push(
404
+ h + 4,
405
+ h + 5,
406
+ h + 6,
407
+ h + 4,
408
+ h + 6,
409
+ h + 7
410
+ );
411
+ }
412
+ this.setIndex(a), this.setAttribute("position", new z(n, 3)), this.computeVertexNormals();
413
+ }
414
+ }
415
+ class we extends v {
416
+ constructor(e = 1, t = 0.4, o = 0.2, s = 20, r = 2, n = Math.PI / 8) {
417
+ super();
418
+ const a = [], i = [];
419
+ let c = 0;
420
+ for (let l = 0; l < s; l++) {
421
+ const w = r * Math.cos(c), u = r * Math.sin(c), d = l * o, M = d + o;
422
+ a.push(
423
+ // Front face (vertical riser)
424
+ w - e / 2 * Math.cos(c),
425
+ d,
426
+ u - e / 2 * Math.sin(c),
427
+ // Bottom-left
428
+ w + e / 2 * Math.cos(c),
429
+ d,
430
+ u + e / 2 * Math.sin(c),
431
+ // Bottom-right
432
+ w + e / 2 * Math.cos(c),
433
+ M,
434
+ u + e / 2 * Math.sin(c),
435
+ // Top-right
436
+ w - e / 2 * Math.cos(c),
437
+ M,
438
+ u - e / 2 * Math.sin(c)
439
+ // Top-left
440
+ ), a.push(
441
+ // Top face (horizontal tread)
442
+ w - e / 2 * Math.cos(c),
443
+ M,
444
+ u - e / 2 * Math.sin(c),
445
+ // Top-left-front
446
+ w + e / 2 * Math.cos(c),
447
+ M,
448
+ u + e / 2 * Math.sin(c),
449
+ // Top-right-front
450
+ w + e / 2 * Math.cos(c) - t * Math.sin(c),
451
+ M,
452
+ u + e / 2 * Math.sin(c) + t * Math.cos(c),
453
+ // Back-right
454
+ w - e / 2 * Math.cos(c) - t * Math.sin(c),
455
+ M,
456
+ u - e / 2 * Math.sin(c) + t * Math.cos(c)
457
+ // Back-left
458
+ );
459
+ const f = l * 8;
460
+ i.push(
461
+ f,
462
+ f + 1,
463
+ f + 2,
464
+ // First triangle for riser
465
+ f,
466
+ f + 2,
467
+ f + 3
468
+ // Second triangle for riser
469
+ ), i.push(
470
+ f + 4,
471
+ f + 5,
472
+ f + 6,
473
+ // First triangle for tread
474
+ f + 4,
475
+ f + 6,
476
+ f + 7
477
+ // Second triangle for tread
478
+ ), c += n;
479
+ }
480
+ this.setIndex(i), this.setAttribute("position", new z(a, 3)), this.computeVertexNormals();
481
+ }
482
+ }
483
+ class he extends v {
484
+ constructor(e = 2, t = 0.3, o = 0.5, s = 10) {
485
+ super();
486
+ const r = [], n = [];
487
+ for (let a = 0; a < s; a++) {
488
+ const i = a * t, c = i + t, l = a * o, w = l + o;
489
+ r.push(
490
+ // Bottom face of riser (front face)
491
+ -e / 2,
492
+ i,
493
+ l,
494
+ // 0: Bottom-left-front
495
+ e / 2,
496
+ i,
497
+ l,
498
+ // 1: Bottom-right-front
499
+ e / 2,
500
+ c,
501
+ l,
502
+ // 2: Top-right-front
503
+ -e / 2,
504
+ c,
505
+ l,
506
+ // 3: Top-left-front
507
+ // Top face of tread (horizontal step)
508
+ -e / 2,
509
+ c,
510
+ l,
511
+ // 4: Top-left-front (repeated)
512
+ e / 2,
513
+ c,
514
+ l,
515
+ // 5: Top-right-front (repeated)
516
+ e / 2,
517
+ c,
518
+ w,
519
+ // 6: Top-right-back
520
+ -e / 2,
521
+ c,
522
+ w
523
+ // 7: Top-left-back
524
+ );
525
+ const u = a * 8;
526
+ n.push(
527
+ u,
528
+ u + 1,
529
+ u + 2,
530
+ // First triangle for riser
531
+ u,
532
+ u + 2,
533
+ u + 3
534
+ // Second triangle for riser
535
+ ), n.push(
536
+ u + 4,
537
+ u + 6,
538
+ u + 5,
539
+ // First triangle for tread
540
+ u + 4,
541
+ u + 7,
542
+ u + 6
543
+ // Second triangle for tread
544
+ );
545
+ }
546
+ this.setIndex(n), this.setAttribute("position", new z(r, 3)), this.computeVertexNormals();
547
+ }
548
+ }
549
+ class ye extends v {
550
+ constructor(e = 0.4, t = 1.2, o = 0.2) {
5
551
  super();
6
- const o = t * 0.6, a = new i(e / 2, o, n);
7
- a.translate(0, o / 2, 0);
8
- const s = e * 1.5, r = new i(s, e / 4, n);
9
- r.translate(0, o * 0.75, 0), this.copy(M([a, r], !0));
552
+ const s = t * 0.6, r = new x(e / 2, s, o);
553
+ r.translate(0, s / 2, 0);
554
+ const n = e * 1.5, a = new x(n, e / 4, o);
555
+ a.translate(0, s * 0.75, 0), this.copy(S([r, a], !0));
10
556
  }
11
557
  }
12
- class _ extends f {
558
+ class Me extends v {
13
559
  constructor(e = 1.75, t = 0.75) {
14
560
  super();
15
- const n = e * 0.05, o = e * 0.15, a = e * 0.15, s = e * 0.75;
16
- let r = 0;
17
- const h = new i(t, n, t);
18
- h.translate(0, r + n / 2, 0), r += n;
19
- const m = new i(t * 0.8, o, t * 0.8);
20
- m.translate(0, r + o / 2, 0), r += o;
21
- const d = new i(t * 0.6, a, t * 0.6);
22
- d.translate(0, r + a / 2, 0), r += a;
23
- const y = new i(t * 0.4, s, t * 0.4);
24
- y.translate(0, r + s / 2, 0), r += s;
25
- const x = new S(t * 0.4 / Math.sqrt(2), 0.1, 4, 1, !1, Math.PI / 4);
26
- x.translate(0, r + 0.1 / 2, 0), this.copy(
27
- M([h, m, d, y, x], !0)
561
+ const o = e * 0.05, s = e * 0.15, r = e * 0.15, n = e * 0.75;
562
+ let a = 0;
563
+ const i = new x(t, o, t);
564
+ i.translate(0, a + o / 2, 0), a += o;
565
+ const c = new x(t * 0.8, s, t * 0.8);
566
+ c.translate(0, a + s / 2, 0), a += s;
567
+ const l = new x(t * 0.6, r, t * 0.6);
568
+ l.translate(0, a + r / 2, 0), a += r;
569
+ const w = new x(t * 0.4, n, t * 0.4);
570
+ w.translate(0, a + n / 2, 0), a += n;
571
+ const u = new F(t * 0.4 / Math.sqrt(2), 0.1, 4, 1, !1, Math.PI / 4);
572
+ u.translate(0, a + 0.1 / 2, 0), this.copy(
573
+ S([i, c, l, w, u], !0)
28
574
  );
29
575
  }
30
576
  }
31
- class j extends f {
32
- constructor(e = 0.6, t = 1, n = 0.2) {
577
+ class de extends v {
578
+ constructor(e = 0.6, t = 1, o = 0.2) {
33
579
  super();
34
- const o = t * 0.7, a = new i(e, o, n);
35
- a.translate(0, o / 2, 0);
36
- const s = t - o, r = new w(e / 2, e / 2, n, 16, 1, !1, 0, Math.PI);
37
- r.rotateY(Math.PI / 2), r.rotateX(Math.PI / 2), r.translate(0, o + s / 2 - n / 2 - 0.05, 0), this.copy(M([a, r], !0));
580
+ const s = t * 0.7, r = new x(e, s, o);
581
+ r.translate(0, s / 2, 0);
582
+ const n = t - s, a = new G(e / 2, e / 2, o, 16, 1, !1, 0, Math.PI);
583
+ a.rotateY(Math.PI / 2), a.rotateX(Math.PI / 2), a.translate(0, s + n / 2 - o / 2 - 0.05, 0), this.copy(S([r, a], !0));
38
584
  }
39
585
  }
40
- class O extends f {
41
- constructor(e = 0.5, t = 0.8, n = 0.15) {
586
+ class fe extends v {
587
+ constructor(e = 0.5, t = 0.8, o = 0.15) {
42
588
  super();
43
- const o = new i(e, t, n);
44
- o.translate(0, t / 2, 0), this.copy(o);
589
+ const s = new x(e, t, o);
590
+ s.translate(0, t / 2, 0), this.copy(s);
45
591
  }
46
592
  }
47
- class X extends f {
593
+ class pe extends v {
48
594
  constructor(e = 2.25) {
49
595
  super();
50
- const t = new i(1.2, 0.5, 1.2);
596
+ const t = new x(1.2, 0.5, 1.2);
51
597
  t.translate(0, 0.25, 0);
52
- const n = new i(1, e, 1);
53
- n.translate(0, 0.5 + e / 2, 0);
54
- const o = new i(1.4, 0.3, 1.4);
55
- o.translate(0, 0.5 + e + 0.15, 0), this.copy(M([t, n, o], !0));
598
+ const o = new x(1, e, 1);
599
+ o.translate(0, 0.5 + e / 2, 0);
600
+ 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));
56
602
  }
57
603
  }
58
- class Y extends f {
59
- constructor(e = 2, t = 0.05, n = 0.3) {
604
+ class xe extends v {
605
+ constructor(e = 2, t = 0.05, o = 0.3) {
60
606
  super();
61
- const o = new w(t, t, e, 8);
62
- o.translate(0, e / 2, 0);
63
- const a = new S(t * 1.5, n, 8);
64
- a.translate(0, e + n / 2, 0), this.copy(M([o, a], !0));
607
+ const s = new G(t, t, e, 8);
608
+ s.translate(0, e / 2, 0);
609
+ const r = new F(t * 1.5, o, 8);
610
+ r.translate(0, e + o / 2, 0), this.copy(S([s, r], !0));
65
611
  }
66
612
  }
67
- class J extends f {
613
+ class Ge extends v {
68
614
  constructor(e = 0.1) {
69
615
  super();
70
- const t = [], n = [], o = [
616
+ const t = [], o = [], s = [
71
617
  [0, 1],
72
618
  // Top point
73
619
  [0.5, 0.75],
@@ -85,30 +631,73 @@ class J extends f {
85
631
  [-0.5, 0.75]
86
632
  // Left upper middle
87
633
  ];
88
- for (let s = 0; s < o.length; s++) {
89
- const [r, h] = o[s];
90
- t.push(r * e, h * e, 0);
634
+ for (let n = 0; n < s.length; n++) {
635
+ const [a, i] = s[n];
636
+ t.push(a * e, i * e, 0);
91
637
  }
92
- for (let s = 1; s < o.length - 1; s++)
93
- n.push(0, s, s + 1);
94
- n.push(0, o.length - 1, 1);
95
- const a = new z(t, 3);
96
- this.setAttribute("position", a), this.setIndex(n), this.computeVertexNormals();
638
+ for (let n = 1; n < s.length - 1; n++)
639
+ o.push(0, n, n + 1);
640
+ o.push(0, s.length - 1, 1);
641
+ const r = new z(t, 3);
642
+ this.setAttribute("position", r), this.setIndex(o), this.computeVertexNormals();
97
643
  }
98
644
  }
99
- class K extends f {
100
- constructor(e = 0.1, t = 0.1, n = 0.4, o = 8) {
645
+ class be extends v {
646
+ constructor(e = 0.1, t = 0.1, o = 0.4, s = 8) {
647
+ super();
648
+ const r = new G(e * 0.6, t * 0.6, o, s);
649
+ r.translate(0, 0, 0);
650
+ const n = new B(e, s, s), a = n.clone(), i = n.clone(), c = n.clone(), l = n.clone();
651
+ a.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([r, a, i, c, l], !0));
652
+ }
653
+ }
654
+ class se extends v {
655
+ constructor() {
101
656
  super();
102
- const a = new w(e * 0.6, t * 0.6, n, o);
103
- a.translate(0, 0, 0);
104
- const s = new P(e, o, o), r = s.clone(), h = s.clone(), m = s.clone(), d = s.clone();
105
- r.translate(0, n / 2 + e * 0.6, -e * 0.6), h.translate(0, n / 2 + e * 0.6, e * 0.6), m.translate(0, -n / 2 - t * 0.6, -t * 0.6), d.translate(0, -n / 2 - t * 0.6, t * 0.6), this.copy(M([a, r, h, m, d], !0));
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));
106
659
  }
107
660
  }
108
- class Q extends v {
661
+ class ne extends v {
109
662
  constructor() {
110
663
  super();
111
- const e = new P(5, 32, 32), t = new F({
664
+ const e = [
665
+ new g(1, 0),
666
+ // Bottom of the bowl
667
+ new g(1.2, 0.5),
668
+ // Slight flare at the base
669
+ new g(1.4, 1.5),
670
+ // Outer wall
671
+ new g(1.3, 1.8),
672
+ // Flared edge
673
+ new g(0.8, 1.8)
674
+ // 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));
677
+ }
678
+ }
679
+ class E extends v {
680
+ constructor(e = 0.2, t = 0.2, o = 3, s = 32, r = !0) {
681
+ super();
682
+ const n = new G(e, t, o, s, 1, r), a = new B(t, s, s / 2, 0, Math.PI * 2, Math.PI / 2, Math.PI / 2);
683
+ a.translate(0, -(o / 2), 0), this.copy(S([n, a], !0));
684
+ }
685
+ }
686
+ class ae extends v {
687
+ constructor({ radius: e = 0.5, neckRadius: t = 0.2, height: o = 3, neckHeight: s = 1, segments: r = 16 } = {}) {
688
+ super();
689
+ const n = o - s, a = new G(e, e, n, r);
690
+ a.translate(0, n / 2, 0);
691
+ const i = 0.3, c = new G(t, e, i, r);
692
+ c.translate(0, n + i / 2, 0);
693
+ const l = new G(t, t, s, r);
694
+ l.translate(0, n + i + s / 2, 0), this.copy(S([a, c, l], !0));
695
+ }
696
+ }
697
+ class ge extends b {
698
+ constructor() {
699
+ super();
700
+ const e = new B(5, 32, 32), t = new U({
112
701
  uniforms: {
113
702
  time: { value: 0 }
114
703
  },
@@ -150,49 +739,68 @@ class Q extends v {
150
739
  color *= 0.8 + 0.2 * n; // Modulate color by noise
151
740
  gl_FragColor = vec4(color, 1.0);
152
741
  }
153
- `,
154
- flatShading: !0
155
- }), n = new c(e, t);
156
- this.add(n);
742
+ `
743
+ }), o = new m(e, t);
744
+ this.add(o);
157
745
  }
158
746
  }
159
- class U extends v {
747
+ class ve extends b {
160
748
  constructor() {
161
749
  super();
162
- const e = new i(5, 1, 5), t = new p({ color: 8421504, flatShading: !0 }), n = new c(e, t);
163
- n.position.set(0, 0.5, 0), this.add(n);
164
- const o = new i(4, 3, 4), a = new p({ color: 6908265, flatShading: !0 }), s = new c(o, a);
165
- s.position.set(0, 2.5, 0), this.add(s);
166
- const r = new S(3.5, 2, 4), h = new p({ color: 5263440, flatShading: !0 }), m = new c(r, h);
167
- m.rotation.y = Math.PI / 4, m.position.set(0, 5, 0), this.add(m);
168
- const d = new w(0.2, 0.2, 3.5, 16), y = new p({ color: 6908265, flatShading: !0 });
750
+ const e = new x(5, 1, 5), t = new y({ 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), r = new y({ color: 6908265, flatShading: !0 }), n = new m(s, r);
753
+ n.position.set(0, 2.5, 0), this.add(n);
754
+ const a = new F(3.5, 2, 4), i = new y({ color: 5263440, flatShading: !0 }), c = new m(a, 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 y({ color: 6908265, flatShading: !0 });
169
757
  [
170
758
  [-1.8, 2.3, -2.2],
171
759
  [1.8, 2.3, -2.2],
172
760
  [-1.8, 2.3, 2.2],
173
761
  [1.8, 2.3, 2.2]
174
762
  ].forEach((k) => {
175
- const I = new c(d, y);
176
- I.position.set(...k), this.add(I);
763
+ const q = new m(l, w);
764
+ q.position.set(...k), this.add(q);
177
765
  });
178
- const u = new H();
179
- u.moveTo(-1, 0), u.lineTo(-1, 2), u.absarc(0, 2, 1, Math.PI, 0, !0), u.lineTo(1, 0);
180
- const g = {
766
+ const d = new $();
767
+ d.moveTo(-1, 0), d.lineTo(-1, 2), d.absarc(0, 2, 1, Math.PI, 0, !0), d.lineTo(1, 0);
768
+ const M = {
181
769
  depth: 0.5,
182
770
  bevelEnabled: !1
183
- }, G = new A(u, g), C = new p({ color: 4210752, flatShading: !0 }), b = new c(G, C);
184
- b.position.set(0, 0.5, 1.7), this.add(b);
771
+ }, f = new H(d, M), h = new y({ color: 4210752, flatShading: !0 }), I = new m(f, h);
772
+ I.position.set(0, 0.5, 1.7), this.add(I);
185
773
  }
186
774
  }
187
- class Z extends v {
775
+ class ke extends b {
776
+ constructor() {
777
+ super();
778
+ const e = new x(5, 0.3, 3), t = new y({ color: 9132587 }), o = new m(e, t);
779
+ o.position.set(0, 3.15, 0);
780
+ 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 r = new V(s, 32), n = new y({ color: 4929057 });
783
+ [
784
+ [2.2, 0, 1.2],
785
+ // Adjust Y to 0 so legs start at ground level
786
+ [-2.2, 0, 1.2],
787
+ [2.2, 0, -1.2],
788
+ [-2.2, 0, -1.2]
789
+ ].forEach((i) => {
790
+ const c = new m(r, n);
791
+ c.position.set(...i), this.add(c);
792
+ }), this.add(o);
793
+ }
794
+ }
795
+ class Ie extends b {
188
796
  constructor(e = 1, t = 0.2) {
189
797
  super(), this.height = e, this.radius = t, this.createCandle(), this.animateFlicker();
190
798
  }
191
799
  createCandle() {
192
- const e = new w(this.radius, this.radius, this.height, 32), t = new p({ color: 16777215 });
193
- this.candle = new c(e, t), this.candle.position.set(0, this.height / 2, 0), this.add(this.candle);
194
- const n = new P(0.05, 16, 16), o = new q({ color: 16753920 });
195
- this.flame = new c(n, o), this.flame.position.set(0, this.height + 0.05, 0), this.add(this.flame), this.candleLight = new L(16753920, 1, 5), this.candleLight.position.set(0, this.height + 0.05, 0), this.candleLight.castShadow = !0, this.add(this.candleLight);
800
+ const e = new G(this.radius, this.radius, this.height, 32), t = new y({ 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 D({ 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 O(16753920, 1, 5), this.candleLight.position.set(0, this.height + 0.05, 0), this.candleLight.castShadow = !0, this.add(this.candleLight);
196
804
  }
197
805
  animateFlicker() {
198
806
  const e = () => {
@@ -201,44 +809,459 @@ class Z extends v {
201
809
  e();
202
810
  }
203
811
  }
204
- class $ extends v {
812
+ class Pe extends b {
205
813
  constructor(e = 1.3, t = 0.5) {
206
814
  super();
207
- const n = new w(t, t, 0.2, 16), o = new p({ color: 9127187, flatShading: !0 }), a = new c(n, o);
208
- a.position.set(0, 0, 0), this.add(a);
209
- const s = new w(t * 0.9, t * 0.9, e), r = new p({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }), h = new c(s, r);
210
- h.position.set(0, e / 2 + 0.1, 0), this.add(h);
211
- const m = new S(t * 1.1, 0.5, 8), d = new p({ color: 9127187, flatShading: !0 }), y = new c(m, d);
212
- y.position.set(0, e + 0.35, 0), this.add(y);
213
- const x = new N(t * 0.8, 0.05, 8, 16), u = new p({ color: 9127187, flatShading: !0 }), g = new c(x, u);
214
- g.position.set(0, e + 0.85, 0), this.add(g);
215
- const G = new L(16755200, 1.5, 15);
216
- G.position.set(0, e / 2 + 0.1, 0), G.castShadow = !0, this.add(G);
815
+ const o = new G(t, t, 0.2, 16), s = new y({ color: 9127187, flatShading: !0 }), r = new m(o, s);
816
+ r.position.set(0, 0, 0), this.add(r);
817
+ const n = new G(t * 0.9, t * 0.9, e), a = new y({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }), i = new m(n, a);
818
+ i.position.set(0, e / 2 + 0.1, 0), this.add(i);
819
+ const c = new F(t * 1.1, 0.5, 8), l = new y({ 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 X(t * 0.8, 0.05, 8, 16), d = new y({ color: 9127187, flatShading: !0 }), M = new m(u, d);
822
+ M.position.set(0, e + 0.85, 0), this.add(M);
823
+ const f = new O(16755200, 1.5, 15);
824
+ f.position.set(0, e / 2 + 0.1, 0), f.castShadow = !0, this.add(f);
825
+ }
826
+ }
827
+ class Se extends b {
828
+ constructor() {
829
+ super();
830
+ const e = new _(1, 0), t = new y({ color: 8421504, flatShading: !0 }), o = new y({ color: 4950843, flatShading: !0, opacity: 0.8, transparent: !0 });
831
+ for (let s = 0; s < 5; s++) {
832
+ const r = new m(e, t);
833
+ 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);
834
+ const n = new m(e, o);
835
+ 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
+ }
838
+ }
839
+ class Be extends b {
840
+ constructor() {
841
+ super();
842
+ const e = new _(1, 0), t = new y({ color: 8421504, flatShading: !0 });
843
+ for (let o = 0; o < 5; o++) {
844
+ const s = new m(e, t);
845
+ 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
+ }
848
+ }
849
+ class Te extends b {
850
+ constructor() {
851
+ super();
852
+ const e = new se(), t = new Y({
853
+ color: 8965375,
854
+ transparent: !0,
855
+ opacity: 0.4,
856
+ roughness: 0.1,
857
+ metalness: 0.1,
858
+ reflectivity: 0.8,
859
+ transmission: 0.9,
860
+ side: C
861
+ }), o = new m(e, t);
862
+ o.rotation.x = -Math.PI / 2, this.add(o);
863
+ }
864
+ }
865
+ class ze extends b {
866
+ constructor() {
867
+ super();
868
+ const e = new x(1.6, 0.05, 2.1), t = new y({ 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 r = new x(1.55, 0.2, 2), n = new y({ color: 16777215 }), a = new m(r, n);
871
+ a.position.set(-0.025, 0, 0);
872
+ const i = new x(0.05, 0.25, 2.1), c = new y({ color: 4915200 }), l = new m(i, c);
873
+ l.position.set(-0.8, 0, 0), this.add(o), this.add(s), this.add(a), this.add(l);
874
+ }
875
+ }
876
+ class Le extends b {
877
+ constructor() {
878
+ super();
879
+ const e = [
880
+ new g(0, 0),
881
+ // Bottom
882
+ new g(0.8, 0),
883
+ // Base
884
+ new g(1, 1.5),
885
+ // Rounded body
886
+ new g(0.5, 2.2),
887
+ // Neck
888
+ new g(0.6, 2.5)
889
+ // Mouth
890
+ ], t = new V(e, 10), o = new G(0.3, 0.4, 0.2, 8), s = new y({
891
+ color: 8965375,
892
+ transparent: !0,
893
+ opacity: 0.5,
894
+ roughness: 0.1,
895
+ metalness: 0.3
896
+ }), r = new y({
897
+ color: 16724838,
898
+ // Vibrant potion color
899
+ transparent: !0,
900
+ opacity: 0.6
901
+ }), n = new y({
902
+ color: 9127187,
903
+ roughness: 1
904
+ }), a = new m(t, s), i = new m(t, r), c = new m(o, n);
905
+ i.scale.set(0.8, 0.8, 0.8), i.position.y = 0.1, c.position.y = 2.5;
906
+ const l = new b();
907
+ l.add(a, i, c), this.add(l);
908
+ }
909
+ }
910
+ class Fe extends b {
911
+ constructor() {
912
+ super();
913
+ const e = new G(0.3, 0.4, 0.1, 16), t = new y({
914
+ color: 3355443,
915
+ roughness: 0.6,
916
+ 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), r = new y({
920
+ color: 5592405,
921
+ roughness: 0.5,
922
+ metalness: 0.4
923
+ }), n = new m(s, r);
924
+ n.position.y = 0.4;
925
+ const a = new F(0.075, 0.2, 16), i = new y({
926
+ color: 16733440,
927
+ emissive: 16733440,
928
+ emissiveIntensity: 0.6,
929
+ transparent: !0,
930
+ opacity: 0.8
931
+ }), c = new m(a, i);
932
+ c.position.y = 0.8, this.add(o, n, c);
933
+ }
934
+ }
935
+ class Ce extends b {
936
+ constructor() {
937
+ super();
938
+ const e = new x(3, 4, 0.1), t = new y({
939
+ color: 3026478,
940
+ roughness: 0.8,
941
+ metalness: 0.6
942
+ }), o = new x(0.2, 0.5, 0.2), s = new y({
943
+ color: 11184810,
944
+ roughness: 0.5,
945
+ metalness: 0.7
946
+ }), r = new G(0.3, 0.3, 0.1, 16), n = new y({
947
+ color: 5592405,
948
+ roughness: 0.7,
949
+ metalness: 0.5
950
+ }), a = new m(e, t);
951
+ for (let h = -1; h <= 1; h++) {
952
+ const I = new m(o, s);
953
+ I.position.set(h, 1.5, 0.1), a.add(I);
954
+ }
955
+ const i = new m(r, n);
956
+ i.rotation.x = Math.PI / 2, i.position.set(0, 0.5, 0.15), a.add(i);
957
+ const c = new B(0.15, 8, 8), l = new y({
958
+ color: 16711680,
959
+ emissive: 16711680,
960
+ emissiveIntensity: 0.5
961
+ }), w = new m(c, l);
962
+ w.position.set(0, -1, 0.1), a.add(w), this.add(a);
963
+ let u = 0.015, d = 0.8, M = 0.2;
964
+ function f() {
965
+ requestAnimationFrame(f);
966
+ const h = M + Math.abs(Math.sin(Date.now() * u)) * (d - M);
967
+ w.material.emissiveIntensity = h;
968
+ }
969
+ f();
970
+ }
971
+ }
972
+ class qe extends b {
973
+ constructor() {
974
+ super();
975
+ const e = [
976
+ new g(0, 0),
977
+ // Bottom of the flask
978
+ new g(1.2, 0),
979
+ // Base
980
+ new g(1.5, 1.5),
981
+ // Mid-body
982
+ new g(1, 3),
983
+ // Narrow neck
984
+ new g(0.6, 3.5)
985
+ // Mouth of the flask
986
+ ], t = new V(e, 12), o = new G(0.6, 0.7, 0.3, 8), s = new y({
987
+ color: 8965290,
988
+ transparent: !0,
989
+ opacity: 0.4,
990
+ roughness: 0.1,
991
+ metalness: 0.5
992
+ }), r = new y({
993
+ color: 9127187,
994
+ roughness: 1
995
+ }), n = new m(t, s), a = new m(o, r);
996
+ a.position.y = 3.5, this.add(n, a);
997
+ }
998
+ }
999
+ class Ae extends b {
1000
+ constructor() {
1001
+ super();
1002
+ const e = new x(2, 3, 0.1), t = new y({
1003
+ color: 3355443,
1004
+ roughness: 0.8,
1005
+ metalness: 0.5
1006
+ }), o = new m(e, t), s = new G(0.1, 0.1, 0.2, 8), r = new G(0.05, 0.05, 1, 8), n = new y({
1007
+ color: 11184810,
1008
+ roughness: 0.5,
1009
+ metalness: 0.7
1010
+ });
1011
+ for (let a = -0.5; a <= 0.5; a += 0.5) {
1012
+ const i = new m(s, n);
1013
+ i.position.set(a, 1, 0.1);
1014
+ const c = new m(r, n);
1015
+ c.position.y = 0.5, i.add(c), this.add(i);
1016
+ }
1017
+ this.add(o);
1018
+ }
1019
+ }
1020
+ class Ne extends b {
1021
+ constructor() {
1022
+ super();
1023
+ const e = new x(1, 0.2, 0.5), t = new y({
1024
+ color: 4473924,
1025
+ roughness: 0.6,
1026
+ 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), r = new m(s, t);
1030
+ r.position.set(0, 0.6, -0.2);
1031
+ const n = new G(0.1, 0.1, 0.4, 8), a = new y({
1032
+ color: 3355443,
1033
+ roughness: 0.5,
1034
+ metalness: 0.6
1035
+ }), i = new m(n, a);
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 y({
1038
+ color: 5592405,
1039
+ roughness: 0.8,
1040
+ metalness: 0.2
1041
+ }), w = new m(c, l);
1042
+ w.position.set(0, 0.6, 0), this.add(o, r, i, w);
217
1043
  }
218
1044
  }
219
- class R extends v {
1045
+ class Ve extends b {
220
1046
  constructor() {
221
1047
  super();
222
- const e = new B(1, 0), t = new p({ color: 8421504, flatShading: !0 });
223
- for (let n = 0; n < 5; n++) {
224
- const o = new c(e, t);
225
- o.scale.set(0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4), o.rotation.set(Math.random() * Math.PI, Math.random() * Math.PI, Math.random() * Math.PI), o.position.set((Math.random() - 0.5) * 4, 0, (Math.random() - 0.5) * 4), this.add(o);
1048
+ const e = new ne(), t = new G(0.2, 0.3, 1.5, 8);
1049
+ t.translate(0, 0.75, 0);
1050
+ const o = new y({
1051
+ color: 6045747,
1052
+ // Dark earthy tone
1053
+ roughness: 1,
1054
+ metalness: 0,
1055
+ side: C
1056
+ // Render inside and outside
1057
+ }), s = new y({
1058
+ color: 9132587,
1059
+ // Slightly lighter earthy color
1060
+ roughness: 0.8,
1061
+ metalness: 0.1
1062
+ }), r = new m(e, o), n = new m(t, s);
1063
+ n.position.set(0.3, 1.3, 0), n.rotation.z = Math.PI / 4, this.add(r, n);
1064
+ }
1065
+ }
1066
+ class Ee extends b {
1067
+ constructor() {
1068
+ super();
1069
+ const e = 100, t = 0.05, o = new W(
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,
1075
+ // Gradual height increase
1076
+ Math.sin(w) * 0.4
1077
+ );
1078
+ })
1079
+ ), s = new ee(o, 200, 0.1, 8, !1), r = new y({
1080
+ color: 8965375,
1081
+ transparent: !0,
1082
+ opacity: 0.3,
1083
+ roughness: 0.1,
1084
+ metalness: 0.2,
1085
+ emissive: 8965375
1086
+ }), n = new m(s, r);
1087
+ this.add(n);
1088
+ function a() {
1089
+ r.emissiveIntensity = 0.2 + Math.sin(Date.now() * 5e-3) * 0.1;
226
1090
  }
1091
+ function i() {
1092
+ requestAnimationFrame(i), a();
1093
+ }
1094
+ i();
1095
+ }
1096
+ }
1097
+ class Ye extends b {
1098
+ constructor() {
1099
+ super();
1100
+ const e = new X(0.3, 0.03, 8, 16), t = new y({
1101
+ color: 8947848,
1102
+ roughness: 0.7,
1103
+ 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), r = new y({
1107
+ color: 6710886,
1108
+ roughness: 0.8,
1109
+ metalness: 0.3
1110
+ }), n = [];
1111
+ for (let a = 0; a < 3; a++) {
1112
+ const i = a / 3 * Math.PI * 2, c = new m(s, r);
1113
+ c.position.set(Math.cos(i) * 0.25, 0.2, Math.sin(i) * 0.25), n.push(c);
1114
+ }
1115
+ this.add(o, ...n);
1116
+ }
1117
+ }
1118
+ class Re extends b {
1119
+ constructor() {
1120
+ super();
1121
+ const e = new G(0.5, 0.6, 0.3, 16), t = new y({
1122
+ color: 3355443,
1123
+ roughness: 0.6,
1124
+ 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), r = new y({
1128
+ color: 16737792,
1129
+ roughness: 0.5,
1130
+ metalness: 0.8,
1131
+ side: C
1132
+ }), n = new m(s, r);
1133
+ n.position.y = 1.3;
1134
+ const a = new B(0.3, 16, 16), i = new m(a, r);
1135
+ i.position.y = 2.4, this.add(o, n, i);
1136
+ const c = [];
1137
+ for (let u = 0; u < 5; u++) {
1138
+ const d = new te({ color: 10079487 }), M = [
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
+ ], f = new v().setFromPoints(M), h = new oe(f, d);
1142
+ this.add(h), c.push(h);
1143
+ }
1144
+ function l() {
1145
+ c.forEach((u) => {
1146
+ const d = [
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)
1149
+ ];
1150
+ u.geometry.setFromPoints(d);
1151
+ });
1152
+ }
1153
+ function w() {
1154
+ requestAnimationFrame(w), l();
1155
+ }
1156
+ w();
1157
+ }
1158
+ }
1159
+ class Ze extends b {
1160
+ constructor(e = 0.2, t = 0.2, o = 3, s = 32) {
1161
+ super();
1162
+ const r = new E(e, t, o, s), n = new Y({
1163
+ color: 8965375,
1164
+ transparent: !0,
1165
+ opacity: 0.4,
1166
+ roughness: 0.1,
1167
+ metalness: 0.1,
1168
+ reflectivity: 0.8,
1169
+ transmission: 0.9,
1170
+ // For glass effect
1171
+ side: C
1172
+ }), a = new m(r, n);
1173
+ this.add(a);
1174
+ }
1175
+ }
1176
+ class Oe extends b {
1177
+ constructor(e = 3, t = [65450, 16711850, 11141375]) {
1178
+ super();
1179
+ const o = new x(3, 0.2, 1), s = new y({
1180
+ color: 9127187,
1181
+ // Wooden color or change to metallic tone
1182
+ roughness: 0.7,
1183
+ metalness: 0.3
1184
+ }), r = new m(o, s);
1185
+ r.position.y = 0.5;
1186
+ const n = new E(0.1, 0.1, 1, 16), a = new y({
1187
+ color: 11184810,
1188
+ transparent: !0,
1189
+ opacity: 0.4,
1190
+ roughness: 0.1,
1191
+ metalness: 0.5,
1192
+ side: C
1193
+ });
1194
+ for (let i = 0; i < e; i++) {
1195
+ const c = new m(n, a), 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], d = new y({
1198
+ color: u,
1199
+ emissive: u,
1200
+ emissiveIntensity: 0.5,
1201
+ transparent: !0,
1202
+ opacity: 0.6
1203
+ }), M = new m(w, d);
1204
+ M.position.set(0, -0.25, 0), c.add(M), r.add(c);
1205
+ }
1206
+ this.add(r);
1207
+ }
1208
+ }
1209
+ class Xe extends m {
1210
+ constructor() {
1211
+ super();
1212
+ const e = new ae(), t = new Y({
1213
+ color: 5597999,
1214
+ roughness: 0.1,
1215
+ transmission: 0.9,
1216
+ // Makes the material transparent
1217
+ thickness: 0.2,
1218
+ metalness: 0,
1219
+ clearcoat: 1,
1220
+ clearcoatRoughness: 0.1
1221
+ });
1222
+ this.geometry = e, this.material = t;
227
1223
  }
228
1224
  }
229
1225
  export {
230
- K as BoneGeometry,
231
- Z as Candle,
232
- V as CrossHeadstoneGeometry,
233
- X as FenceColumn,
234
- $ as Lantern,
235
- U as Mausoleum,
236
- Q as Moon,
237
- _ as ObeliskHeadstoneGeometry,
238
- j as RoundedHeadstoneGeometry,
239
- J as SimpleLeafGeometry,
240
- O as SquareHeadstoneGeometry,
241
- R as Stones,
242
- Y as WroughtIronBarGeometry
1226
+ Te as Beaker,
1227
+ se as BeakerGeometry,
1228
+ le as BifurcatedStaircaseGeometry,
1229
+ be as BoneGeometry,
1230
+ ze as Book,
1231
+ Le as Bottle,
1232
+ ie as Bubbling,
1233
+ Fe as BunsenBurner,
1234
+ Ie as Candle,
1235
+ ye as CrossHeadstoneGeometry,
1236
+ ke as Desk,
1237
+ me as DioramaGeometry,
1238
+ Ce as ElectricPanel,
1239
+ pe as FenceColumn,
1240
+ qe as Flask,
1241
+ ue as LShapedStaircaseGeometry,
1242
+ Pe as Lantern,
1243
+ Ae as LeverPanel,
1244
+ ve as Mausoleum,
1245
+ Ne as Microscope,
1246
+ ge as Moon,
1247
+ Ve as MortarAndPestle,
1248
+ ne as MortarGeometry,
1249
+ Se as MossyRocks,
1250
+ Me as ObeliskHeadstoneGeometry,
1251
+ Be as Rocks,
1252
+ de as RoundedHeadstoneGeometry,
1253
+ Ge as SimpleLeafGeometry,
1254
+ we as SpiralStaircaseGeometry,
1255
+ Ee as SpiralTube,
1256
+ fe as SquareHeadstoneGeometry,
1257
+ he as StaircaseGeometry,
1258
+ Ye as Stand,
1259
+ Re as TeslaCoil,
1260
+ Ze as TestTube,
1261
+ E as TestTubeGeometry,
1262
+ Oe as TestTubeRack,
1263
+ Xe as WineBottle,
1264
+ ae as WineBottleGeometry,
1265
+ xe as WroughtIronBarGeometry
243
1266
  };
244
1267
  //# sourceMappingURL=index.es.js.map