three-low-poly 0.9.1 → 0.9.3

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 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 {
4
+ constructor() {
5
+ super();
6
+ const e = [], t = 20, o = new B(0.1, 6, 6), s = new d({
7
+ color: 16777215,
8
+ transparent: !0,
9
+ opacity: 0.6,
10
+ roughness: 0.3,
11
+ metalness: 0.3
12
+ });
13
+ for (let r = 0; r < t; r++) {
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 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);
27
+ });
28
+ }
29
+ function a() {
30
+ requestAnimationFrame(a), n();
31
+ }
32
+ a();
33
+ }
34
+ }
35
+ class ye extends b {
36
+ constructor(e = 2, t = 0.3, o = 0.6, s = 5, n = 5, a = Math.PI / 4) {
37
+ 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(
42
+ // Vertical riser
43
+ -e / 2,
44
+ f,
45
+ y,
46
+ // Bottom-left
47
+ e / 2,
48
+ f,
49
+ y,
50
+ // Bottom-right
51
+ e / 2,
52
+ p,
53
+ y,
54
+ // Top-right
55
+ -e / 2,
56
+ p,
57
+ y,
58
+ // Top-left
59
+ // Horizontal tread
60
+ -e / 2,
61
+ p,
62
+ y,
63
+ // Top-left
64
+ e / 2,
65
+ p,
66
+ y,
67
+ // Top-right
68
+ e / 2,
69
+ p,
70
+ I,
71
+ // Back-right
72
+ -e / 2,
73
+ p,
74
+ I
75
+ // Back-left
76
+ );
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
92
+ );
93
+ }
94
+ const c = s * t, l = s * o, w = e * 2;
95
+ r.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 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(
130
+ // Vertical riser
131
+ z,
132
+ y,
133
+ T,
134
+ // Bottom-left
135
+ N,
136
+ y,
137
+ T,
138
+ // Bottom-right
139
+ N,
140
+ I,
141
+ T,
142
+ // Top-right
143
+ z,
144
+ I,
145
+ T,
146
+ // Top-left
147
+ // Horizontal tread
148
+ z,
149
+ I,
150
+ T,
151
+ // Top-left
152
+ N,
153
+ I,
154
+ T,
155
+ // Top-right
156
+ K,
157
+ I,
158
+ Y,
159
+ // Back-right
160
+ J,
161
+ I,
162
+ Y
163
+ // Back-left
164
+ );
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
180
+ );
181
+ }
182
+ }
183
+ this.setIndex(i), this.setAttribute("position", new F(r, 3)), this.computeVertexNormals();
184
+ }
185
+ }
186
+ class de extends b {
187
+ constructor(e = 5, t = 3, o = 5, s = 0.2) {
188
+ super();
189
+ const n = [
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
+ ], a = [
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(a), this.setAttribute("position", new F(n, 3)), this.computeVertexNormals();
265
+ }
266
+ }
267
+ class fe extends b {
268
+ constructor(e = 2, t = 0.3, o = 0.5, s = 5, n = 2) {
269
+ 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(
274
+ // Vertical riser
275
+ -e / 2,
276
+ u,
277
+ f,
278
+ // Bottom-left
279
+ e / 2,
280
+ u,
281
+ f,
282
+ // Bottom-right
283
+ e / 2,
284
+ M,
285
+ f,
286
+ // Top-right
287
+ -e / 2,
288
+ M,
289
+ f,
290
+ // Top-left
291
+ // Horizontal tread
292
+ -e / 2,
293
+ M,
294
+ f,
295
+ // Top-left
296
+ e / 2,
297
+ M,
298
+ f,
299
+ // Top-right
300
+ e / 2,
301
+ M,
302
+ p,
303
+ // Back-right
304
+ -e / 2,
305
+ M,
306
+ p
307
+ // Back-left
308
+ );
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
324
+ );
325
+ }
326
+ const i = s * t, c = s * o;
327
+ a.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 + n,
340
+ // Top-right
341
+ -e / 2,
342
+ i,
343
+ c + n
344
+ // Top-left
345
+ );
346
+ const l = s * 8;
347
+ r.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, M = u + t, f = -e / 2 - w * o, p = f - o;
359
+ a.push(
360
+ // Vertical riser
361
+ f,
362
+ u,
363
+ c + n,
364
+ // Bottom-left
365
+ f,
366
+ u,
367
+ c + n - e,
368
+ // Bottom-right
369
+ f,
370
+ M,
371
+ c + n - e,
372
+ // Top-right
373
+ f,
374
+ M,
375
+ c + n,
376
+ // Top-left
377
+ // Horizontal tread
378
+ f,
379
+ M,
380
+ c + n,
381
+ // Top-left
382
+ f,
383
+ M,
384
+ c + n - e,
385
+ // Top-right
386
+ p,
387
+ M,
388
+ c + n - e,
389
+ // Back-right
390
+ p,
391
+ M,
392
+ c + n
393
+ // Back-left
394
+ );
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
410
+ );
411
+ }
412
+ this.setIndex(r), this.setAttribute("position", new F(a, 3)), this.computeVertexNormals();
413
+ }
414
+ }
415
+ class Me extends b {
416
+ constructor(e = 1, t = 0.4, o = 0.2, s = 20, n = 2, a = Math.PI / 8) {
417
+ super();
418
+ const r = [], i = [];
419
+ let c = 0;
420
+ 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(
423
+ // Front face (vertical riser)
424
+ w - e / 2 * Math.cos(c),
425
+ M,
426
+ u - e / 2 * Math.sin(c),
427
+ // Bottom-left
428
+ w + e / 2 * Math.cos(c),
429
+ M,
430
+ u + e / 2 * Math.sin(c),
431
+ // Bottom-right
432
+ w + e / 2 * Math.cos(c),
433
+ f,
434
+ u + e / 2 * Math.sin(c),
435
+ // Top-right
436
+ w - e / 2 * Math.cos(c),
437
+ f,
438
+ u - e / 2 * Math.sin(c)
439
+ // Top-left
440
+ ), r.push(
441
+ // Top face (horizontal tread)
442
+ w - e / 2 * Math.cos(c),
443
+ f,
444
+ u - e / 2 * Math.sin(c),
445
+ // Top-left-front
446
+ w + e / 2 * Math.cos(c),
447
+ f,
448
+ u + e / 2 * Math.sin(c),
449
+ // 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),
453
+ // 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)
457
+ // Back-left
458
+ );
459
+ const p = l * 8;
460
+ i.push(
461
+ p,
462
+ p + 1,
463
+ p + 2,
464
+ // First triangle for riser
465
+ p,
466
+ p + 2,
467
+ p + 3
468
+ // Second triangle for riser
469
+ ), i.push(
470
+ p + 4,
471
+ p + 5,
472
+ p + 6,
473
+ // First triangle for tread
474
+ p + 4,
475
+ p + 6,
476
+ p + 7
477
+ // Second triangle for tread
478
+ ), c += a;
479
+ }
480
+ this.setIndex(i), this.setAttribute("position", new F(r, 3)), this.computeVertexNormals();
481
+ }
482
+ }
483
+ class pe extends b {
484
+ constructor(e = 2, t = 0.3, o = 0.5, s = 10) {
485
+ 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(
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 = r * 8;
526
+ a.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
+ ), a.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(a), this.setAttribute("position", new F(n, 3)), this.computeVertexNormals();
547
+ }
548
+ }
549
+ class xe extends b {
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, 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));
10
556
  }
11
557
  }
12
- class _ extends f {
558
+ class Ge extends b {
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;
561
+ const o = e * 0.05, s = e * 0.15, n = e * 0.15, a = e * 0.75;
16
562
  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)
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)
28
574
  );
29
575
  }
30
576
  }
31
- class j extends f {
32
- constructor(e = 0.6, t = 1, n = 0.2) {
577
+ class ve extends b {
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, 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));
38
584
  }
39
585
  }
40
- class O extends f {
41
- constructor(e = 0.5, t = 0.8, n = 0.15) {
586
+ class ge extends b {
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 be extends b {
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 ke extends b {
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 n = new C(t * 1.5, o, 8);
610
+ n.translate(0, e + o / 2, 0), this.copy(S([s, n], !0));
65
611
  }
66
612
  }
67
- class J extends f {
613
+ class Ie extends b {
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 a = 0; a < s.length; a++) {
635
+ const [r, i] = s[a];
636
+ t.push(r * 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 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();
97
643
  }
98
644
  }
99
- class K extends f {
100
- constructor(e = 0.1, t = 0.1, n = 0.4, o = 8) {
645
+ class Pe extends b {
646
+ constructor(e = 0.1, t = 0.1, o = 0.4, s = 8) {
101
647
  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));
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));
106
652
  }
107
653
  }
108
- class Q extends v {
654
+ class ie extends b {
109
655
  constructor() {
110
656
  super();
111
- const e = new P(5, 32, 32), t = new F({
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));
659
+ }
660
+ }
661
+ class le extends b {
662
+ constructor() {
663
+ super();
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 b {
680
+ constructor(e = 0.2, t = 0.2, o = 3, s = 32, n = !0) {
681
+ 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));
684
+ }
685
+ }
686
+ class me extends b {
687
+ constructor({ radius: e = 0.5, neckRadius: t = 0.2, height: o = 3, neckHeight: s = 1, segments: n = 16 } = {}) {
688
+ 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));
695
+ }
696
+ }
697
+ class Se extends v {
698
+ constructor() {
699
+ super();
700
+ const e = new B(5, 32, 32), t = new $({
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 Be extends v {
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 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 });
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 A = new m(l, w);
764
+ A.position.set(...k), this.add(A);
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 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 = {
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
+ }, 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);
773
+ }
774
+ }
775
+ class Te extends v {
776
+ constructor() {
777
+ 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);
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 n = new V(s, 32), a = new d({ 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(n, a);
791
+ c.position.set(...i), this.add(c);
792
+ }), this.add(o);
185
793
  }
186
794
  }
187
- class Z extends v {
795
+ class Fe extends v {
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 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);
196
804
  }
197
805
  animateFlicker() {
198
806
  const e = () => {
@@ -201,44 +809,491 @@ class Z extends v {
201
809
  e();
202
810
  }
203
811
  }
204
- class $ extends v {
812
+ class Le extends v {
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 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);
825
+ }
826
+ }
827
+ class Ce extends v {
828
+ constructor() {
829
+ 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
+ for (let s = 0; s < 5; s++) {
832
+ 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
+ }
837
+ }
838
+ }
839
+ class qe extends v {
840
+ constructor() {
841
+ 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);
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 Ae extends v {
850
+ constructor() {
851
+ super();
852
+ const e = new ie(), t = new U({
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: q
861
+ }), o = new m(e, t);
862
+ o.rotation.x = -Math.PI / 2, this.add(o);
863
+ }
864
+ }
865
+ class ze extends v {
866
+ constructor() {
867
+ 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);
874
+ }
875
+ }
876
+ class Ne extends v {
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 d({
891
+ color: 8965375,
892
+ transparent: !0,
893
+ opacity: 0.5,
894
+ roughness: 0.1,
895
+ metalness: 0.3
896
+ }), n = new d({
897
+ color: 16724838,
898
+ // Vibrant potion color
899
+ transparent: !0,
900
+ opacity: 0.6
901
+ }), a = new d({
902
+ color: 9127187,
903
+ 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);
908
+ }
909
+ }
910
+ class Ve extends v {
911
+ constructor() {
912
+ super();
913
+ const e = new G(0.3, 0.4, 0.1, 16), t = new d({
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), n = new d({
920
+ color: 5592405,
921
+ roughness: 0.5,
922
+ 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({
926
+ color: 16733440,
927
+ emissive: 16733440,
928
+ emissiveIntensity: 0.6,
929
+ transparent: !0,
930
+ opacity: 0.8
931
+ }), c = new m(r, i);
932
+ c.position.y = 0.8, this.add(o, a, c);
933
+ }
934
+ }
935
+ class Ee extends v {
936
+ constructor() {
937
+ super();
938
+ const e = new x(3, 4, 0.1), t = new d({
939
+ color: 3026478,
940
+ roughness: 0.8,
941
+ metalness: 0.6
942
+ }), o = new x(0.2, 0.5, 0.2), s = new d({
943
+ color: 11184810,
944
+ roughness: 0.5,
945
+ metalness: 0.7
946
+ }), n = new G(0.3, 0.3, 0.1, 16), a = new d({
947
+ color: 5592405,
948
+ roughness: 0.7,
949
+ 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);
954
+ }
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({
958
+ color: 16711680,
959
+ emissive: 16711680,
960
+ 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;
968
+ }
969
+ p();
970
+ }
971
+ }
972
+ class Ue extends v {
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 d({
987
+ color: 8965290,
988
+ transparent: !0,
989
+ opacity: 0.4,
990
+ roughness: 0.1,
991
+ metalness: 0.5
992
+ }), n = new d({
993
+ color: 9127187,
994
+ roughness: 1
995
+ }), a = new m(t, s), r = new m(o, n);
996
+ r.position.y = 3.5, this.add(a, r);
997
+ }
998
+ }
999
+ class Re extends v {
1000
+ constructor() {
1001
+ super();
1002
+ const e = new x(2, 3, 0.1), t = new d({
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), n = new G(0.05, 0.05, 1, 8), a = new d({
1007
+ color: 11184810,
1008
+ roughness: 0.5,
1009
+ metalness: 0.7
1010
+ });
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);
1016
+ }
1017
+ this.add(o);
1018
+ }
1019
+ }
1020
+ class Ye extends v {
1021
+ constructor() {
1022
+ super();
1023
+ const e = new x(1, 0.2, 0.5), t = new d({
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), 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({
1032
+ color: 3355443,
1033
+ roughness: 0.5,
1034
+ 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({
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, n, i, w);
1043
+ }
1044
+ }
1045
+ class _e extends v {
1046
+ constructor() {
1047
+ 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({
1051
+ color: 6045747,
1052
+ // Dark earthy tone
1053
+ roughness: 1,
1054
+ metalness: 0,
1055
+ side: q
1056
+ // Render inside and outside
1057
+ }), s = new d({
1058
+ color: 9132587,
1059
+ // Slightly lighter earthy color
1060
+ roughness: 0.8,
1061
+ 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);
1064
+ }
1065
+ }
1066
+ class Ze extends v {
1067
+ constructor() {
1068
+ 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,
1075
+ // Gradual height increase
1076
+ Math.sin(w) * 0.4
1077
+ );
1078
+ })
1079
+ ), s = new te(o, 200, 0.1, 8, !1), n = new d({
1080
+ color: 8965375,
1081
+ transparent: !0,
1082
+ opacity: 0.3,
1083
+ roughness: 0.1,
1084
+ metalness: 0.2,
1085
+ 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;
1090
+ }
1091
+ function i() {
1092
+ requestAnimationFrame(i), r();
1093
+ }
1094
+ i();
217
1095
  }
218
1096
  }
219
- class R extends v {
1097
+ class je extends v {
220
1098
  constructor() {
221
1099
  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);
1100
+ const e = new j(0.3, 0.03, 8, 16), t = new d({
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), n = new d({
1107
+ color: 6710886,
1108
+ roughness: 0.8,
1109
+ 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);
1114
+ }
1115
+ this.add(o, ...a);
1116
+ }
1117
+ }
1118
+ class Oe extends v {
1119
+ constructor() {
1120
+ super();
1121
+ const e = new G(0.5, 0.6, 0.3, 16), t = new d({
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), n = new d({
1128
+ color: 16737792,
1129
+ roughness: 0.5,
1130
+ 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);
1143
+ }
1144
+ 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)
1149
+ ];
1150
+ u.geometry.setFromPoints(M);
1151
+ });
1152
+ }
1153
+ function w() {
1154
+ requestAnimationFrame(w), l();
1155
+ }
1156
+ w();
1157
+ }
1158
+ }
1159
+ class Xe extends v {
1160
+ constructor(e = 0.2, t = 0.2, o = 3, s = 32) {
1161
+ super();
1162
+ const n = new E(e, t, o, s), a = new U({
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: q
1172
+ }), r = new m(n, a);
1173
+ this.add(r);
1174
+ }
1175
+ }
1176
+ class Je extends v {
1177
+ constructor(e = 3, t = [65450, 16711850, 11141375]) {
1178
+ super();
1179
+ const o = new x(3, 0.2, 1), s = new d({
1180
+ color: 9127187,
1181
+ // Wooden color or change to metallic tone
1182
+ roughness: 0.7,
1183
+ 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({
1187
+ color: 11184810,
1188
+ transparent: !0,
1189
+ opacity: 0.4,
1190
+ roughness: 0.1,
1191
+ metalness: 0.5,
1192
+ side: q
1193
+ });
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,
1200
+ emissiveIntensity: 0.5,
1201
+ transparent: !0,
1202
+ opacity: 0.6
1203
+ }), f = new m(w, M);
1204
+ f.position.set(0, -0.25, 0), c.add(f), n.add(c);
226
1205
  }
1206
+ this.add(n);
227
1207
  }
228
1208
  }
1209
+ class Ke extends m {
1210
+ constructor() {
1211
+ super();
1212
+ const e = new me(), t = new U({
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;
1223
+ }
1224
+ }
1225
+ const Qe = {
1226
+ uniforms: {
1227
+ tDiffuse: { value: null },
1228
+ opacity: { value: 1 }
1229
+ },
1230
+ vertexShader: `
1231
+ varying vec2 vUv;
1232
+ void main() {
1233
+ vUv = uv;
1234
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
1235
+ }
1236
+ `,
1237
+ fragmentShader: `
1238
+ uniform float opacity;
1239
+ uniform sampler2D tDiffuse;
1240
+ varying vec2 vUv;
1241
+ void main() {
1242
+ vec4 texel = texture2D(tDiffuse, vUv);
1243
+ gl_FragColor = opacity * texel;
1244
+ }
1245
+ `
1246
+ }, $e = (h) => {
1247
+ 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;
1251
+ }
1252
+ const t = new ne(e, h, h, ae, re);
1253
+ return t.wrapS = _, t.wrapT = _, t.minFilter = ce, t.needsUpdate = !0, t;
1254
+ };
229
1255
  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
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
243
1298
  };
244
1299
  //# sourceMappingURL=index.es.js.map