three-low-poly 0.9.5 → 0.9.7

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,18 +1,137 @@
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 {
1
+ import { Vector3 as M, MathUtils as D, Quaternion as ce, Group as S, SphereGeometry as T, MeshStandardMaterial as w, Mesh as h, BufferGeometry as b, Float32BufferAttribute as U, BufferAttribute as Y, BoxGeometry as g, ConeGeometry as z, CylinderGeometry as v, Vector2 as I, LatheGeometry as Z, CircleGeometry as ie, DodecahedronGeometry as Q, ShaderMaterial as j, Shape as _, ExtrudeGeometry as L, MeshBasicMaterial as le, PointLight as oe, TorusGeometry as se, MeshPhysicalMaterial as K, DoubleSide as q, CatmullRomCurve3 as me, TubeGeometry as ue, LineBasicMaterial as fe, Line as he, Path as de, Color as $, BackSide as ne, DataTexture as pe, RGBAFormat as we, UnsignedByteType as ye, RepeatWrapping as W, NearestFilter as xe } from "three";
2
+ import { mergeGeometries as A, mergeVertices as Me } from "three/addons/utils/BufferGeometryUtils.js";
3
+ import { Sky as ve } from "three/addons/objects/Sky.js";
4
+ import { EffectComposer as ge } from "three/addons/postprocessing/EffectComposer.js";
5
+ import { RenderPass as ee } from "three/addons/postprocessing/RenderPass.js";
6
+ import { ShaderPass as Se } from "three/addons/postprocessing/ShaderPass.js";
7
+ const C = {
8
+ UP: new M(0, 1, 0),
9
+ DOWN: new M(0, -1, 0),
10
+ LEFT: new M(-1, 0, 0),
11
+ RIGHT: new M(1, 0, 0),
12
+ FORWARD: new M(0, 0, 1),
13
+ BACKWARD: new M(0, 0, -1),
14
+ X: new M(1, 0, 0),
15
+ Y: new M(0, 1, 0),
16
+ Z: new M(0, 0, 1),
17
+ XY: new M(1, 1, 0).normalize(),
18
+ XZ: new M(1, 0, 1).normalize(),
19
+ YZ: new M(0, 1, 1).normalize(),
20
+ XYZ: new M(1, 1, 1).normalize()
21
+ }, O = {
22
+ LINEAR: (l, e) => 1 - l / e,
23
+ QUADRATIC: (l, e) => Math.pow(1 - l / e, 2),
24
+ SQUARE_ROOT: (l, e) => Math.pow(1 - l / e, 0.5),
25
+ LOGARITHMIC: (l, e) => Math.log(1 + (e - l)) / Math.log(1 + e),
26
+ SINE: (l, e) => Math.cos(l / e * Math.PI / 2),
27
+ EXPONENTIAL: (l, e) => Math.exp(-l / e),
28
+ CUBIC: (l, e) => Math.pow(1 - l / e, 3),
29
+ GAUSSIAN: (l, e) => Math.exp(-Math.pow(l, 2) / (2 * Math.pow(e / 3, 2))),
30
+ INVERSE: (l, e) => e / (e + l),
31
+ SMOOTHSTEP: (l, e) => {
32
+ const t = Math.max(0, Math.min(1, 1 - l / e));
33
+ return t * t * (3 - 2 * t);
34
+ }
35
+ }, De = (l, e, t, o, r = C.UP, i = O.LINEAR) => {
36
+ const s = l.attributes.position;
37
+ for (let n = 0; n < s.count; n++) {
38
+ const c = new M();
39
+ c.fromBufferAttribute(s, n);
40
+ const a = c.distanceTo(e);
41
+ if (a < t) {
42
+ const u = i(a, t) * o;
43
+ c.add(r.clone().multiplyScalar(u)), s.setXYZ(n, c.x, c.y, c.z);
44
+ }
45
+ }
46
+ s.needsUpdate = !0;
47
+ }, He = (l, e, t, o, r, i = C.UP, s = O.LINEAR) => {
48
+ const n = l.attributes.position;
49
+ for (let c = 0; c < n.count; c++) {
50
+ const a = new M();
51
+ a.fromBufferAttribute(n, c);
52
+ const m = a.distanceTo(e);
53
+ if (m < t) {
54
+ const f = s(m, t) * r, p = a.dot(i.normalize()), d = o - p;
55
+ a.add(i.clone().multiplyScalar(d * f)), n.setXYZ(c, a.x, a.y, a.z);
56
+ }
57
+ }
58
+ n.needsUpdate = !0;
59
+ }, Re = (l, e, t, o, r = C.UP, i = O.LINEAR) => {
60
+ const s = l.attributes.position;
61
+ for (let n = 0; n < s.count; n++) {
62
+ const c = new M();
63
+ c.fromBufferAttribute(s, n);
64
+ const a = c.distanceTo(e);
65
+ if (a < t) {
66
+ const m = i(a, t), u = o * m, f = r.clone().normalize();
67
+ f.x !== 0 && (c.x += D.randFloatSpread(u) * f.x), f.y !== 0 && (c.y += D.randFloatSpread(u) * f.y), f.z !== 0 && (c.z += D.randFloatSpread(u) * f.z), s.setXYZ(n, c.x, c.y, c.z);
68
+ }
69
+ }
70
+ s.needsUpdate = !0;
71
+ }, Qe = (l, e, t, o) => {
72
+ const r = l.attributes.position, i = new M();
73
+ for (let s = 0; s < r.count; s++) {
74
+ const n = new M();
75
+ if (n.fromBufferAttribute(r, s), n.distanceTo(e) < t) {
76
+ let a = new M(), m = 0;
77
+ for (let u = 0; u < r.count; u++)
78
+ i.fromBufferAttribute(r, u), i.distanceTo(n) < t && (a.add(i), m++);
79
+ m > 0 && (a.divideScalar(m), n.lerp(a, o), r.setXYZ(s, n.x, n.y, n.z));
80
+ }
81
+ }
82
+ r.needsUpdate = !0;
83
+ }, je = (l, e, t, o, r = !1, i = O.LINEAR) => {
84
+ const s = l.attributes.position;
85
+ for (let n = 0; n < s.count; n++) {
86
+ const c = new M();
87
+ c.fromBufferAttribute(s, n);
88
+ const a = c.distanceTo(e);
89
+ if (a < t) {
90
+ const u = i(a, t) * o * (r ? -1 : 1), f = c.clone().sub(e).normalize();
91
+ c.add(f.multiplyScalar(u)), s.setXYZ(n, c.x, c.y, c.z);
92
+ }
93
+ }
94
+ s.needsUpdate = !0;
95
+ }, Ke = (l, e, t, o, r = C.UP, i = O.LINEAR) => {
96
+ const s = l.attributes.position, n = new ce();
97
+ for (let c = 0; c < s.count; c++) {
98
+ const a = new M();
99
+ a.fromBufferAttribute(s, c);
100
+ const m = a.distanceTo(e);
101
+ if (m < t) {
102
+ const f = i(m, t) * o;
103
+ n.setFromAxisAngle(r, f), a.sub(e).applyQuaternion(n).add(e), s.setXYZ(c, a.x, a.y, a.z);
104
+ }
105
+ }
106
+ s.needsUpdate = !0;
107
+ }, Je = {
108
+ LINEAR: (l) => l,
109
+ QUADRATIC_EASE_IN: (l) => l * l,
110
+ QUADRATIC_EASE_OUT: (l) => 1 - Math.pow(1 - l, 2),
111
+ SQUARE_ROOT_EASING: (l) => Math.sqrt(l),
112
+ LOGARITHMIC_EASING: (l) => Math.log(1 + l) / Math.log(2),
113
+ SINE_EASE_IN: (l) => 1 - Math.cos(l * Math.PI / 2),
114
+ SINE_EASE_OUT: (l) => Math.sin(l * Math.PI / 2),
115
+ EXPONENTIAL_EASE_IN: (l) => Math.pow(2, 10 * (l - 1)),
116
+ EXPONENTIAL_EASE_OUT: (l) => 1 - Math.pow(2, -10 * l),
117
+ CUBIC_EASE_IN: (l) => l * l * l,
118
+ CUBIC_EASE_OUT: (l) => 1 - Math.pow(1 - l, 3),
119
+ GAUSSIAN_EASING: (l) => Math.exp(-Math.pow(l - 0.5, 2) / (2 * 0.1)),
120
+ INVERSE_EASING: (l) => 1 / (1 + l),
121
+ SMOOTHSTEP_EASING: (l) => l * l * (3 - 2 * l)
122
+ };
123
+ class $e extends S {
5
124
  constructor() {
6
125
  super();
7
- const e = [], o = 20, t = new T(0.1, 6, 6), s = new y({
126
+ const e = [], t = 20, o = new T(0.1, 6, 6), r = new w({
8
127
  color: 16777215,
9
128
  transparent: !0,
10
129
  opacity: 0.6,
11
130
  roughness: 0.3,
12
131
  metalness: 0.3
13
132
  });
14
- for (let a = 0; a < o; a++) {
15
- const c = new m(t, s);
133
+ for (let n = 0; n < t; n++) {
134
+ const c = new h(o, r);
16
135
  c.position.set(
17
136
  (Math.random() - 0.5) * 1.5,
18
137
  // Random x position within flask
@@ -22,97 +141,97 @@ class Se extends g {
22
141
  // Random z position within flask
23
142
  ), e.push(c), this.add(c);
24
143
  }
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);
144
+ function i() {
145
+ e.forEach((n) => {
146
+ n.position.y += 0.02, n.position.y > 3 && (n.position.y = 0, n.position.x = (Math.random() - 0.5) * 1.5, n.position.z = (Math.random() - 0.5) * 1.5);
28
147
  });
29
148
  }
30
- function n() {
31
- requestAnimationFrame(n), r();
149
+ function s() {
150
+ requestAnimationFrame(s), i();
32
151
  }
33
- n();
152
+ s();
34
153
  }
35
154
  }
36
- class Pe extends b {
37
- constructor(e = 2, o = 0.3, t = 0.6, s = 5, r = 5, n = Math.PI / 4) {
155
+ class We extends b {
156
+ constructor(e = 2, t = 0.3, o = 0.6, r = 5, i = 5, s = Math.PI / 4) {
38
157
  super();
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(
158
+ const n = [], c = [];
159
+ for (let p = 0; p < r; p++) {
160
+ const d = p * t, x = d + t, y = p * o, P = y + o;
161
+ n.push(
43
162
  // Vertical riser
44
163
  -e / 2,
45
- M,
46
- w,
164
+ d,
165
+ y,
47
166
  // Bottom-left
48
167
  e / 2,
49
- M,
50
- w,
168
+ d,
169
+ y,
51
170
  // Bottom-right
52
171
  e / 2,
53
- d,
54
- w,
172
+ x,
173
+ y,
55
174
  // Top-right
56
175
  -e / 2,
57
- d,
58
- w,
176
+ x,
177
+ y,
59
178
  // Top-left
60
179
  // Horizontal tread
61
180
  -e / 2,
62
- d,
63
- w,
181
+ x,
182
+ y,
64
183
  // Top-left
65
184
  e / 2,
66
- d,
67
- w,
185
+ x,
186
+ y,
68
187
  // Top-right
69
188
  e / 2,
70
- d,
189
+ x,
71
190
  P,
72
191
  // Back-right
73
192
  -e / 2,
74
- d,
193
+ x,
75
194
  P
76
195
  // Back-left
77
196
  );
78
- const S = p * 8;
197
+ const G = p * 8;
79
198
  c.push(
80
- S,
81
- S + 1,
82
- S + 2,
83
- S,
84
- S + 2,
85
- S + 3
199
+ G,
200
+ G + 1,
201
+ G + 2,
202
+ G,
203
+ G + 2,
204
+ G + 3
86
205
  ), c.push(
87
- S + 4,
88
- S + 5,
89
- S + 6,
90
- S + 4,
91
- S + 6,
92
- S + 7
206
+ G + 4,
207
+ G + 5,
208
+ G + 6,
209
+ G + 4,
210
+ G + 6,
211
+ G + 7
93
212
  );
94
213
  }
95
- const i = s * o, l = s * t, u = e * 2;
96
- a.push(
214
+ const a = r * t, m = r * o, u = e * 2;
215
+ n.push(
97
216
  // Landing platform (4 vertices)
98
217
  -u / 2,
99
- i,
100
- l,
218
+ a,
219
+ m,
101
220
  // Bottom-left
102
221
  u / 2,
103
- i,
104
- l,
222
+ a,
223
+ m,
105
224
  // Bottom-right
106
225
  u / 2,
107
- i,
108
- l + t,
226
+ a,
227
+ m + o,
109
228
  // Top-right
110
229
  -u / 2,
111
- i,
112
- l + t
230
+ a,
231
+ m + o
113
232
  // Top-left
114
233
  );
115
- const f = s * 8;
234
+ const f = r * 8;
116
235
  c.push(
117
236
  f,
118
237
  f + 1,
@@ -124,46 +243,46 @@ class Pe extends b {
124
243
  // Second triangle for landing
125
244
  );
126
245
  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(
246
+ const d = p === 0 ? 1 : -1;
247
+ for (let x = 0; x < i; x++) {
248
+ const y = a + x * t, P = y + t, G = d * (u / 4), F = m + o, V = x * o * Math.cos(s), B = x * o * Math.sin(s), E = G + d * V - e / 2 * Math.cos(s), X = G + d * V + e / 2 * Math.cos(s), N = F + B, ae = E + d * o * Math.cos(s), re = X + d * o * Math.cos(s), J = N + o * Math.sin(s);
249
+ n.push(
131
250
  // Vertical riser
132
251
  E,
133
- w,
134
- B,
252
+ y,
253
+ N,
135
254
  // Bottom-left
136
- U,
137
- w,
138
- B,
255
+ X,
256
+ y,
257
+ N,
139
258
  // Bottom-right
140
- U,
259
+ X,
141
260
  P,
142
- B,
261
+ N,
143
262
  // Top-right
144
263
  E,
145
264
  P,
146
- B,
265
+ N,
147
266
  // Top-left
148
267
  // Horizontal tread
149
268
  E,
150
269
  P,
151
- B,
270
+ N,
152
271
  // Top-left
153
- U,
272
+ X,
154
273
  P,
155
- B,
274
+ N,
156
275
  // Top-right
157
- te,
276
+ re,
158
277
  P,
159
- X,
278
+ J,
160
279
  // Back-right
161
- ee,
280
+ ae,
162
281
  P,
163
- X
282
+ J
164
283
  // Back-left
165
284
  );
166
- const k = f + 4 + p * r * 8 + d * 8;
285
+ const k = f + 4 + p * i * 8 + x * 8;
167
286
  c.push(
168
287
  k,
169
288
  k + 1,
@@ -181,65 +300,65 @@ class Pe extends b {
181
300
  );
182
301
  }
183
302
  }
184
- this.setIndex(c), this.setAttribute("position", new F(a, 3)), this.computeVertexNormals();
303
+ this.setIndex(c), this.setAttribute("position", new U(n, 3)), this.computeVertexNormals();
185
304
  }
186
305
  }
187
- class ke extends b {
188
- constructor(e = 5, o = 3, t = 5, s = 0.2) {
306
+ class et extends b {
307
+ constructor(e = 5, t = 3, o = 5, r = 0.2) {
189
308
  super();
190
- const r = [
309
+ const i = [
191
310
  // Floor vertices
192
311
  -e / 2,
193
312
  0,
194
- -t / 2,
313
+ -o / 2,
195
314
  // 0
196
315
  e / 2,
197
316
  0,
198
- -t / 2,
317
+ -o / 2,
199
318
  // 1
200
319
  e / 2,
201
320
  0,
202
- t / 2,
321
+ o / 2,
203
322
  // 2
204
323
  -e / 2,
205
324
  0,
206
- t / 2,
325
+ o / 2,
207
326
  // 3
208
327
  // Back wall vertices
209
328
  -e / 2,
210
329
  0,
211
- -t / 2,
330
+ -o / 2,
212
331
  // 4
213
332
  e / 2,
214
333
  0,
215
- -t / 2,
334
+ -o / 2,
216
335
  // 5
217
336
  e / 2,
218
- o,
219
- -t / 2,
337
+ t,
338
+ -o / 2,
220
339
  // 6
221
340
  -e / 2,
222
- o,
223
- -t / 2,
341
+ t,
342
+ -o / 2,
224
343
  // 7
225
344
  // Left wall vertices
226
345
  -e / 2,
227
346
  0,
228
- -t / 2,
347
+ -o / 2,
229
348
  // 8
230
349
  -e / 2,
231
350
  0,
232
- t / 2,
351
+ o / 2,
233
352
  // 9
234
353
  -e / 2,
235
- o,
236
- t / 2,
354
+ t,
355
+ o / 2,
237
356
  // 10
238
357
  -e / 2,
239
- o,
240
- -t / 2
358
+ t,
359
+ -o / 2
241
360
  // 11
242
- ], n = [
361
+ ], s = [
243
362
  // Floor
244
363
  0,
245
364
  1,
@@ -262,269 +381,269 @@ class ke extends b {
262
381
  10,
263
382
  11
264
383
  ];
265
- this.setIndex(n), this.setAttribute("position", new F(r, 3)), this.computeVertexNormals();
384
+ this.setIndex(s), this.setAttribute("position", new U(i, 3)), this.computeVertexNormals();
266
385
  }
267
386
  }
268
- class Ie extends b {
269
- constructor(e = 2, o = 0.3, t = 0.5, s = 5, r = 2) {
387
+ class tt extends b {
388
+ constructor(e = 2, t = 0.3, o = 0.5, r = 5, i = 2) {
270
389
  super();
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(
390
+ const s = [], n = [];
391
+ for (let u = 0; u < r; u++) {
392
+ const f = u * t, p = f + t, d = u * o, x = d + o;
393
+ s.push(
275
394
  // Vertical riser
276
395
  -e / 2,
277
396
  f,
278
- M,
397
+ d,
279
398
  // Bottom-left
280
399
  e / 2,
281
400
  f,
282
- M,
401
+ d,
283
402
  // Bottom-right
284
403
  e / 2,
285
404
  p,
286
- M,
405
+ d,
287
406
  // Top-right
288
407
  -e / 2,
289
408
  p,
290
- M,
409
+ d,
291
410
  // Top-left
292
411
  // Horizontal tread
293
412
  -e / 2,
294
413
  p,
295
- M,
414
+ d,
296
415
  // Top-left
297
416
  e / 2,
298
417
  p,
299
- M,
418
+ d,
300
419
  // Top-right
301
420
  e / 2,
302
421
  p,
303
- d,
422
+ x,
304
423
  // Back-right
305
424
  -e / 2,
306
425
  p,
307
- d
426
+ x
308
427
  // Back-left
309
428
  );
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
429
+ const y = u * 8;
430
+ n.push(
431
+ y,
432
+ y + 1,
433
+ y + 2,
434
+ y,
435
+ y + 2,
436
+ y + 3
437
+ ), n.push(
438
+ y + 4,
439
+ y + 5,
440
+ y + 6,
441
+ y + 4,
442
+ y + 6,
443
+ y + 7
325
444
  );
326
445
  }
327
- const c = s * o, i = s * t;
328
- n.push(
446
+ const c = r * t, a = r * o;
447
+ s.push(
329
448
  // Landing platform (4 vertices)
330
449
  -e / 2,
331
450
  c,
332
- i,
451
+ a,
333
452
  // Bottom-left
334
453
  e / 2,
335
454
  c,
336
- i,
455
+ a,
337
456
  // Bottom-right
338
457
  e / 2,
339
458
  c,
340
- i + r,
459
+ a + i,
341
460
  // Top-right
342
461
  -e / 2,
343
462
  c,
344
- i + r
463
+ a + i
345
464
  // Top-left
346
465
  );
347
- const l = s * 8;
348
- a.push(
349
- l,
350
- l + 1,
351
- l + 2,
466
+ const m = r * 8;
467
+ n.push(
468
+ m,
469
+ m + 1,
470
+ m + 2,
352
471
  // First triangle for landing
353
- l,
354
- l + 2,
355
- l + 3
472
+ m,
473
+ m + 2,
474
+ m + 3
356
475
  // Second triangle for landing
357
476
  );
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(
477
+ for (let u = 0; u < r; u++) {
478
+ const f = c + u * t, p = f + t, d = -e / 2 - u * o, x = d - o;
479
+ s.push(
361
480
  // Vertical riser
362
- M,
481
+ d,
363
482
  f,
364
- i + r,
483
+ a + i,
365
484
  // Bottom-left
366
- M,
485
+ d,
367
486
  f,
368
- i + r - e,
487
+ a + i - e,
369
488
  // Bottom-right
370
- M,
489
+ d,
371
490
  p,
372
- i + r - e,
491
+ a + i - e,
373
492
  // Top-right
374
- M,
493
+ d,
375
494
  p,
376
- i + r,
495
+ a + i,
377
496
  // Top-left
378
497
  // Horizontal tread
379
- M,
498
+ d,
380
499
  p,
381
- i + r,
500
+ a + i,
382
501
  // Top-left
383
- M,
502
+ d,
384
503
  p,
385
- i + r - e,
504
+ a + i - e,
386
505
  // Top-right
387
- d,
506
+ x,
388
507
  p,
389
- i + r - e,
508
+ a + i - e,
390
509
  // Back-right
391
- d,
510
+ x,
392
511
  p,
393
- i + r
512
+ a + i
394
513
  // Back-left
395
514
  );
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
515
+ const y = m + 4 + u * 8;
516
+ n.push(
517
+ y,
518
+ y + 1,
519
+ y + 2,
520
+ y,
521
+ y + 2,
522
+ y + 3
523
+ ), n.push(
524
+ y + 4,
525
+ y + 5,
526
+ y + 6,
527
+ y + 4,
528
+ y + 6,
529
+ y + 7
411
530
  );
412
531
  }
413
- this.setIndex(a), this.setAttribute("position", new F(n, 3)), this.computeVertexNormals();
532
+ this.setIndex(n), this.setAttribute("position", new U(s, 3)), this.computeVertexNormals();
414
533
  }
415
534
  }
416
- class Te extends b {
417
- constructor(e = 1, o = 0.4, t = 0.2, s = 20, r = 2, n = Math.PI / 8) {
535
+ class ot extends b {
536
+ constructor(e = 1, t = 0.4, o = 0.2, r = 20, i = 2, s = Math.PI / 8) {
418
537
  super();
419
- const a = [], c = [];
420
- let i = 0;
421
- for (let l = 0; l < s; l++) {
422
- const u = r * Math.cos(i), f = r * Math.sin(i), p = l * t, M = p + t;
423
- a.push(
538
+ const n = [], c = [];
539
+ let a = 0;
540
+ for (let m = 0; m < r; m++) {
541
+ const u = i * Math.cos(a), f = i * Math.sin(a), p = m * o, d = p + o;
542
+ n.push(
424
543
  // Front face (vertical riser)
425
- u - e / 2 * Math.cos(i),
544
+ u - e / 2 * Math.cos(a),
426
545
  p,
427
- f - e / 2 * Math.sin(i),
546
+ f - e / 2 * Math.sin(a),
428
547
  // Bottom-left
429
- u + e / 2 * Math.cos(i),
548
+ u + e / 2 * Math.cos(a),
430
549
  p,
431
- f + e / 2 * Math.sin(i),
550
+ f + e / 2 * Math.sin(a),
432
551
  // Bottom-right
433
- u + e / 2 * Math.cos(i),
434
- M,
435
- f + e / 2 * Math.sin(i),
552
+ u + e / 2 * Math.cos(a),
553
+ d,
554
+ f + e / 2 * Math.sin(a),
436
555
  // Top-right
437
- u - e / 2 * Math.cos(i),
438
- M,
439
- f - e / 2 * Math.sin(i)
556
+ u - e / 2 * Math.cos(a),
557
+ d,
558
+ f - e / 2 * Math.sin(a)
440
559
  // Top-left
441
- ), a.push(
560
+ ), n.push(
442
561
  // Top face (horizontal tread)
443
- u - e / 2 * Math.cos(i),
444
- M,
445
- f - e / 2 * Math.sin(i),
562
+ u - e / 2 * Math.cos(a),
563
+ d,
564
+ f - e / 2 * Math.sin(a),
446
565
  // Top-left-front
447
- u + e / 2 * Math.cos(i),
448
- M,
449
- f + e / 2 * Math.sin(i),
566
+ u + e / 2 * Math.cos(a),
567
+ d,
568
+ f + e / 2 * Math.sin(a),
450
569
  // Top-right-front
451
- u + e / 2 * Math.cos(i) - o * Math.sin(i),
452
- M,
453
- f + e / 2 * Math.sin(i) + o * Math.cos(i),
570
+ u + e / 2 * Math.cos(a) - t * Math.sin(a),
571
+ d,
572
+ f + e / 2 * Math.sin(a) + t * Math.cos(a),
454
573
  // Back-right
455
- u - e / 2 * Math.cos(i) - o * Math.sin(i),
456
- M,
457
- f - e / 2 * Math.sin(i) + o * Math.cos(i)
574
+ u - e / 2 * Math.cos(a) - t * Math.sin(a),
575
+ d,
576
+ f - e / 2 * Math.sin(a) + t * Math.cos(a)
458
577
  // Back-left
459
578
  );
460
- const d = l * 8;
579
+ const x = m * 8;
461
580
  c.push(
462
- d,
463
- d + 1,
464
- d + 2,
581
+ x,
582
+ x + 1,
583
+ x + 2,
465
584
  // First triangle for riser
466
- d,
467
- d + 2,
468
- d + 3
585
+ x,
586
+ x + 2,
587
+ x + 3
469
588
  // Second triangle for riser
470
589
  ), c.push(
471
- d + 4,
472
- d + 5,
473
- d + 6,
590
+ x + 4,
591
+ x + 5,
592
+ x + 6,
474
593
  // First triangle for tread
475
- d + 4,
476
- d + 6,
477
- d + 7
594
+ x + 4,
595
+ x + 6,
596
+ x + 7
478
597
  // Second triangle for tread
479
- ), i += n;
598
+ ), a += s;
480
599
  }
481
- this.setIndex(c), this.setAttribute("position", new F(a, 3)), this.computeVertexNormals();
600
+ this.setIndex(c), this.setAttribute("position", new U(n, 3)), this.computeVertexNormals();
482
601
  }
483
602
  }
484
- class Be extends b {
485
- constructor(e = 2, o = 0.3, t = 0.5, s = 10) {
603
+ class st extends b {
604
+ constructor(e = 2, t = 0.3, o = 0.5, r = 10) {
486
605
  super();
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(
606
+ const i = [], s = [];
607
+ for (let n = 0; n < r; n++) {
608
+ const c = n * t, a = c + t, m = n * o, u = m + o;
609
+ i.push(
491
610
  // Bottom face of riser (front face)
492
611
  -e / 2,
493
612
  c,
494
- l,
613
+ m,
495
614
  // 0: Bottom-left-front
496
615
  e / 2,
497
616
  c,
498
- l,
617
+ m,
499
618
  // 1: Bottom-right-front
500
619
  e / 2,
501
- i,
502
- l,
620
+ a,
621
+ m,
503
622
  // 2: Top-right-front
504
623
  -e / 2,
505
- i,
506
- l,
624
+ a,
625
+ m,
507
626
  // 3: Top-left-front
508
627
  // Top face of tread (horizontal step)
509
628
  -e / 2,
510
- i,
511
- l,
629
+ a,
630
+ m,
512
631
  // 4: Top-left-front (repeated)
513
632
  e / 2,
514
- i,
515
- l,
633
+ a,
634
+ m,
516
635
  // 5: Top-right-front (repeated)
517
636
  e / 2,
518
- i,
637
+ a,
519
638
  u,
520
639
  // 6: Top-right-back
521
640
  -e / 2,
522
- i,
641
+ a,
523
642
  u
524
643
  // 7: Top-left-back
525
644
  );
526
- const f = a * 8;
527
- n.push(
645
+ const f = n * 8;
646
+ s.push(
528
647
  f,
529
648
  f + 1,
530
649
  f + 2,
@@ -533,7 +652,7 @@ class Be extends b {
533
652
  f + 2,
534
653
  f + 3
535
654
  // Second triangle for riser
536
- ), n.push(
655
+ ), s.push(
537
656
  f + 4,
538
657
  f + 6,
539
658
  f + 5,
@@ -544,77 +663,676 @@ class Be extends b {
544
663
  // Second triangle for tread
545
664
  );
546
665
  }
547
- this.setIndex(n), this.setAttribute("position", new F(r, 3)), this.computeVertexNormals();
666
+ this.setIndex(s), this.setAttribute("position", new U(i, 3)), this.computeVertexNormals();
548
667
  }
549
668
  }
550
- class Ce extends b {
551
- constructor(e = 0.4, o = 1.2, t = 0.2) {
669
+ class be extends b {
670
+ constructor(e = 1, t = 1.5, o = 0.5, r = 0.05, i = 0.05) {
552
671
  super();
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));
672
+ const s = e, n = t, c = o, a = r, m = i, u = [
673
+ // Front cover
674
+ 0,
675
+ 0,
676
+ 0,
677
+ s,
678
+ 0,
679
+ 0,
680
+ s,
681
+ n,
682
+ 0,
683
+ 0,
684
+ n,
685
+ 0,
686
+ // Back cover
687
+ s,
688
+ 0,
689
+ -c,
690
+ 0,
691
+ 0,
692
+ -c,
693
+ 0,
694
+ n,
695
+ -c,
696
+ s,
697
+ n,
698
+ -c,
699
+ // Spine
700
+ 0,
701
+ 0,
702
+ -c,
703
+ 0,
704
+ 0,
705
+ 0,
706
+ 0,
707
+ n,
708
+ 0,
709
+ 0,
710
+ n,
711
+ -c,
712
+ // Inside front cover
713
+ s,
714
+ 0,
715
+ -a,
716
+ a,
717
+ 0,
718
+ -a,
719
+ a,
720
+ n,
721
+ -a,
722
+ s,
723
+ n,
724
+ -a,
725
+ // Inside back cover
726
+ a,
727
+ 0,
728
+ -c + a,
729
+ s,
730
+ 0,
731
+ -c + a,
732
+ s,
733
+ n,
734
+ -c + a,
735
+ a,
736
+ n,
737
+ -c + a,
738
+ // Inside spine
739
+ a,
740
+ 0,
741
+ -a,
742
+ a,
743
+ 0,
744
+ -c + a,
745
+ a,
746
+ n,
747
+ -c + a,
748
+ a,
749
+ n,
750
+ -a,
751
+ // Front cover top
752
+ 0,
753
+ n,
754
+ 0,
755
+ s,
756
+ n,
757
+ 0,
758
+ s,
759
+ n,
760
+ -a,
761
+ a,
762
+ n,
763
+ -a,
764
+ // Back cover top
765
+ 0,
766
+ n,
767
+ -c,
768
+ a,
769
+ n,
770
+ -c + a,
771
+ s,
772
+ n,
773
+ -c + a,
774
+ s,
775
+ n,
776
+ -c,
777
+ // Spine cover top
778
+ 0,
779
+ n,
780
+ 0,
781
+ a,
782
+ n,
783
+ -a,
784
+ a,
785
+ n,
786
+ -c + a,
787
+ 0,
788
+ n,
789
+ -c,
790
+ // Front cover bottom
791
+ 0,
792
+ 0,
793
+ 0,
794
+ a,
795
+ 0,
796
+ -a,
797
+ s,
798
+ 0,
799
+ -a,
800
+ s,
801
+ 0,
802
+ 0,
803
+ // Back cover bottom
804
+ 0,
805
+ 0,
806
+ -c,
807
+ s,
808
+ 0,
809
+ -c,
810
+ s,
811
+ 0,
812
+ -c + a,
813
+ a,
814
+ 0,
815
+ -c + a,
816
+ // Spine cover bottom
817
+ 0,
818
+ 0,
819
+ 0,
820
+ 0,
821
+ 0,
822
+ -c,
823
+ a,
824
+ 0,
825
+ -c + a,
826
+ a,
827
+ 0,
828
+ -a,
829
+ // Front cover edge
830
+ s,
831
+ 0,
832
+ 0,
833
+ s,
834
+ 0,
835
+ -a,
836
+ s,
837
+ n,
838
+ -a,
839
+ s,
840
+ n,
841
+ 0,
842
+ // Back cover edge
843
+ s,
844
+ 0,
845
+ -c,
846
+ s,
847
+ n,
848
+ -c,
849
+ s,
850
+ n,
851
+ -c + a,
852
+ s,
853
+ 0,
854
+ -c + a
855
+ ], f = [
856
+ 0,
857
+ 0,
858
+ 1,
859
+ 0,
860
+ 0,
861
+ 1,
862
+ 0,
863
+ 0,
864
+ 1,
865
+ 0,
866
+ 0,
867
+ 1,
868
+ // Front cover
869
+ 0,
870
+ 0,
871
+ -1,
872
+ 0,
873
+ 0,
874
+ -1,
875
+ 0,
876
+ 0,
877
+ -1,
878
+ 0,
879
+ 0,
880
+ -1,
881
+ // Back cover
882
+ -1,
883
+ 0,
884
+ 0,
885
+ -1,
886
+ 0,
887
+ 0,
888
+ -1,
889
+ 0,
890
+ 0,
891
+ -1,
892
+ 0,
893
+ 0,
894
+ // Spine
895
+ 0,
896
+ 0,
897
+ -1,
898
+ 0,
899
+ 0,
900
+ -1,
901
+ 0,
902
+ 0,
903
+ -1,
904
+ 0,
905
+ 0,
906
+ -1,
907
+ // Inside front cover
908
+ 0,
909
+ 0,
910
+ 1,
911
+ 0,
912
+ 0,
913
+ 1,
914
+ 0,
915
+ 0,
916
+ 1,
917
+ 0,
918
+ 0,
919
+ 1,
920
+ // Inside back cover
921
+ 1,
922
+ 0,
923
+ 0,
924
+ 1,
925
+ 0,
926
+ 0,
927
+ 1,
928
+ 0,
929
+ 0,
930
+ 1,
931
+ 0,
932
+ 0,
933
+ // Inside spine
934
+ 0,
935
+ 1,
936
+ 0,
937
+ 0,
938
+ 1,
939
+ 0,
940
+ 0,
941
+ 1,
942
+ 0,
943
+ 0,
944
+ 1,
945
+ 0,
946
+ // Front cover top
947
+ 0,
948
+ 1,
949
+ 0,
950
+ 0,
951
+ 1,
952
+ 0,
953
+ 0,
954
+ 1,
955
+ 0,
956
+ 0,
957
+ 1,
958
+ 0,
959
+ // Back cover top
960
+ 0,
961
+ 1,
962
+ 0,
963
+ 0,
964
+ 1,
965
+ 0,
966
+ 0,
967
+ 1,
968
+ 0,
969
+ 0,
970
+ 1,
971
+ 0,
972
+ // Spine cover top
973
+ 0,
974
+ -1,
975
+ 0,
976
+ 0,
977
+ -1,
978
+ 0,
979
+ 0,
980
+ -1,
981
+ 0,
982
+ 0,
983
+ -1,
984
+ 0,
985
+ // Front cover bottom
986
+ 0,
987
+ -1,
988
+ 0,
989
+ 0,
990
+ -1,
991
+ 0,
992
+ 0,
993
+ -1,
994
+ 0,
995
+ 0,
996
+ -1,
997
+ 0,
998
+ // Back cover bottom
999
+ 0,
1000
+ -1,
1001
+ 0,
1002
+ 0,
1003
+ -1,
1004
+ 0,
1005
+ 0,
1006
+ -1,
1007
+ 0,
1008
+ 0,
1009
+ -1,
1010
+ 0,
1011
+ // Spine cover bottom
1012
+ 1,
1013
+ 0,
1014
+ 0,
1015
+ 1,
1016
+ 0,
1017
+ 0,
1018
+ 1,
1019
+ 0,
1020
+ 0,
1021
+ 1,
1022
+ 0,
1023
+ 0,
1024
+ // Front cover edge
1025
+ 1,
1026
+ 0,
1027
+ 0,
1028
+ 1,
1029
+ 0,
1030
+ 0,
1031
+ 1,
1032
+ 0,
1033
+ 0,
1034
+ 1,
1035
+ 0,
1036
+ 0
1037
+ // Back cover edge
1038
+ ], p = e / (e * 2 + o), d = (e + o) / (e * 2 + o), x = [
1039
+ d,
1040
+ 0,
1041
+ 1,
1042
+ 0,
1043
+ 1,
1044
+ 1,
1045
+ d,
1046
+ 1,
1047
+ // Front cover
1048
+ 0,
1049
+ 0,
1050
+ p,
1051
+ 0,
1052
+ p,
1053
+ 1,
1054
+ 0,
1055
+ 1,
1056
+ // Back cover
1057
+ p,
1058
+ 0,
1059
+ d,
1060
+ 0,
1061
+ d,
1062
+ 1,
1063
+ p,
1064
+ 1,
1065
+ // Spine
1066
+ 1,
1067
+ 0,
1068
+ d,
1069
+ 0,
1070
+ d,
1071
+ 1,
1072
+ 1,
1073
+ 1,
1074
+ // Inside front cover
1075
+ p,
1076
+ 0,
1077
+ 0,
1078
+ 0,
1079
+ 0,
1080
+ 1,
1081
+ p,
1082
+ 1,
1083
+ // Inside back cover
1084
+ d,
1085
+ 0,
1086
+ p,
1087
+ 0,
1088
+ p,
1089
+ 1,
1090
+ d,
1091
+ 1,
1092
+ // Inside spine
1093
+ d,
1094
+ 0,
1095
+ 1,
1096
+ 0,
1097
+ 1,
1098
+ 1,
1099
+ d,
1100
+ 1,
1101
+ // Front cover top
1102
+ 0,
1103
+ 0,
1104
+ 1,
1105
+ 0,
1106
+ 1,
1107
+ 1,
1108
+ 0,
1109
+ 1,
1110
+ // Back cover top
1111
+ 0,
1112
+ 0,
1113
+ 1,
1114
+ 0,
1115
+ 1,
1116
+ 1,
1117
+ 0,
1118
+ 1,
1119
+ // Spine cover top
1120
+ 0,
1121
+ 0,
1122
+ 1,
1123
+ 0,
1124
+ 1,
1125
+ 1,
1126
+ 0,
1127
+ 1,
1128
+ // Front cover bottom
1129
+ 0,
1130
+ 0,
1131
+ 1,
1132
+ 0,
1133
+ 1,
1134
+ 1,
1135
+ 0,
1136
+ 1,
1137
+ // Back cover bottom
1138
+ 0,
1139
+ 0,
1140
+ 1,
1141
+ 0,
1142
+ 1,
1143
+ 1,
1144
+ 0,
1145
+ 1,
1146
+ // Spine cover bottom
1147
+ 0,
1148
+ 0,
1149
+ 1,
1150
+ 0,
1151
+ 1,
1152
+ 1,
1153
+ 0,
1154
+ 1,
1155
+ // Front cover edge
1156
+ 0,
1157
+ 0,
1158
+ 1,
1159
+ 0,
1160
+ 1,
1161
+ 1,
1162
+ 0,
1163
+ 1
1164
+ // Back cover edge
1165
+ ], y = [
1166
+ 0,
1167
+ 1,
1168
+ 2,
1169
+ 0,
1170
+ 2,
1171
+ 3,
1172
+ // Front cover face
1173
+ 4,
1174
+ 5,
1175
+ 6,
1176
+ 4,
1177
+ 6,
1178
+ 7,
1179
+ // Back cover face
1180
+ 8,
1181
+ 9,
1182
+ 10,
1183
+ 8,
1184
+ 10,
1185
+ 11,
1186
+ // Spine face
1187
+ 12,
1188
+ 13,
1189
+ 14,
1190
+ 12,
1191
+ 14,
1192
+ 15,
1193
+ // Inside front cover
1194
+ 16,
1195
+ 17,
1196
+ 18,
1197
+ 16,
1198
+ 18,
1199
+ 19,
1200
+ // Inside back cover
1201
+ 20,
1202
+ 21,
1203
+ 22,
1204
+ 20,
1205
+ 22,
1206
+ 23,
1207
+ // Inside spine
1208
+ 24,
1209
+ 25,
1210
+ 26,
1211
+ 24,
1212
+ 26,
1213
+ 27,
1214
+ // Front cover top
1215
+ 28,
1216
+ 29,
1217
+ 30,
1218
+ 28,
1219
+ 30,
1220
+ 31,
1221
+ // Back cover top
1222
+ 32,
1223
+ 33,
1224
+ 34,
1225
+ 32,
1226
+ 34,
1227
+ 35,
1228
+ // Spine cover top
1229
+ 36,
1230
+ 37,
1231
+ 38,
1232
+ 36,
1233
+ 38,
1234
+ 39,
1235
+ // Front cover bottom
1236
+ 40,
1237
+ 41,
1238
+ 42,
1239
+ 40,
1240
+ 42,
1241
+ 43,
1242
+ // Back cover bottom
1243
+ 44,
1244
+ 45,
1245
+ 46,
1246
+ 44,
1247
+ 46,
1248
+ 47,
1249
+ // Spine cover bottom
1250
+ 48,
1251
+ 49,
1252
+ 50,
1253
+ 48,
1254
+ 50,
1255
+ 51,
1256
+ // Front cover edge
1257
+ 52,
1258
+ 53,
1259
+ 54,
1260
+ 52,
1261
+ 54,
1262
+ 55
1263
+ // Back cover edge
1264
+ ], P = new Float32Array(u), G = new Float32Array(f), F = new Float32Array(x), V = new Uint16Array(y), B = new b();
1265
+ B.setAttribute("position", new Y(P, 3)), B.setAttribute("normal", new Y(G, 3)), B.setAttribute("uv", new Y(F, 2)), B.setIndex(new Y(V, 1));
1266
+ const E = new g(e - a - m, n - m * 2, c - a * 2);
1267
+ E.translate((e - a - m) / 2 + a, n / 2, -c / 2), this.copy(A([B, E], !0));
557
1268
  }
558
1269
  }
559
- class Fe extends b {
560
- constructor(e = 1.75, o = 0.75) {
1270
+ class Ge extends b {
1271
+ constructor(e = 0.4, t = 1.2, o = 0.2) {
561
1272
  super();
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)
575
- );
1273
+ const r = t * 0.6, i = new g(e / 2, r, o);
1274
+ i.translate(0, r / 2, 0);
1275
+ const s = e * 1.5, n = new g(s, e / 4, o);
1276
+ n.translate(0, r * 0.75, 0), this.copy(A([i, n], !1)), this.computeVertexNormals();
576
1277
  }
577
1278
  }
578
- class Le extends b {
579
- constructor(e = 0.6, o = 1, t = 0.2) {
1279
+ class Ie extends b {
1280
+ constructor(e = 1.75, t = 0.75) {
580
1281
  super();
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));
1282
+ const o = e * 0.05, r = e * 0.15, i = e * 0.15, s = e * 0.75;
1283
+ let n = 0;
1284
+ const c = new g(t, o, t);
1285
+ c.translate(0, n + o / 2, 0), n += o;
1286
+ const a = new g(t * 0.8, r, t * 0.8);
1287
+ a.translate(0, n + r / 2, 0), n += r;
1288
+ const m = new g(t * 0.6, i, t * 0.6);
1289
+ m.translate(0, n + i / 2, 0), n += i;
1290
+ const u = new g(t * 0.4, s, t * 0.4);
1291
+ u.translate(0, n + s / 2, 0), n += s;
1292
+ const f = new z(t * 0.4 / Math.sqrt(2), 0.1, 4, 1, !1, Math.PI / 4);
1293
+ f.translate(0, n + 0.1 / 2, 0), this.copy(A([c, a, m, u, f], !1)), this.computeVertexNormals();
585
1294
  }
586
1295
  }
587
- class qe extends b {
588
- constructor(e = 0.5, o = 0.8, t = 0.15) {
1296
+ class Pe extends b {
1297
+ constructor(e = 0.6, t = 1, o = 0.2, r = 0.6) {
589
1298
  super();
590
- const s = new x(e, o, t);
591
- s.translate(0, o / 2, 0), this.copy(s);
1299
+ const i = t - r / 2, s = new g(e, i, o);
1300
+ s.translate(0, i / 2, 0);
1301
+ const n = new v(r / 2, r / 2, o, 16, 1, !1, 0, Math.PI);
1302
+ n.rotateY(Math.PI / 2), n.rotateX(Math.PI / 2), n.translate(0, i, 0), this.copy(A([s, n], !1)), this.computeVertexNormals();
592
1303
  }
593
1304
  }
594
1305
  class Ae extends b {
1306
+ constructor(e = 0.5, t = 0.8, o = 0.15) {
1307
+ super();
1308
+ const r = new g(e, t, o);
1309
+ r.translate(0, t / 2, 0), this.copy(r);
1310
+ }
1311
+ }
1312
+ class nt extends b {
595
1313
  constructor(e = 2.25) {
596
1314
  super();
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);
601
- const s = new x(1.4, 0.3, 1.4);
602
- s.translate(0, 0.5 + e + 0.15, 0), this.copy(I([o, t, s], !1));
1315
+ const t = new g(1.2, 0.5, 1.2);
1316
+ t.translate(0, 0.25, 0);
1317
+ const o = new g(1, e, 1);
1318
+ o.translate(0, 0.5 + e / 2, 0);
1319
+ const r = new g(1.4, 0.3, 1.4);
1320
+ r.translate(0, 0.5 + e + 0.15, 0), this.copy(A([t, o, r], !1));
603
1321
  }
604
1322
  }
605
- class Ne extends b {
606
- constructor(e = 2, o = 0.05, t = 0.3) {
1323
+ class at extends b {
1324
+ constructor(e = 2, t = 0.05, o = 0.3) {
607
1325
  super();
608
- const s = new v(o, o, e, 8);
609
- s.translate(0, e / 2, 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));
1326
+ const r = new v(t, t, e, 8);
1327
+ r.translate(0, e / 2, 0);
1328
+ const i = new z(t * 1.5, o, 8);
1329
+ i.translate(0, e + o / 2, 0), this.copy(A([r, i], !1));
612
1330
  }
613
1331
  }
614
- class Ve extends b {
1332
+ class rt extends b {
615
1333
  constructor(e = 0.1) {
616
1334
  super();
617
- const o = [], t = [], s = [
1335
+ const t = [], o = [], r = [
618
1336
  [0, 1],
619
1337
  // Top point
620
1338
  [0.5, 0.75],
@@ -632,73 +1350,115 @@ class Ve extends b {
632
1350
  [-0.5, 0.75]
633
1351
  // Left upper middle
634
1352
  ];
635
- for (let n = 0; n < s.length; n++) {
636
- const [a, c] = s[n];
637
- o.push(a * e, c * e, 0);
1353
+ for (let s = 0; s < r.length; s++) {
1354
+ const [n, c] = r[s];
1355
+ t.push(n * e, c * e, 0);
638
1356
  }
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();
1357
+ for (let s = 1; s < r.length - 1; s++)
1358
+ o.push(0, s, s + 1);
1359
+ o.push(0, r.length - 1, 1);
1360
+ const i = new U(t, 3);
1361
+ this.setAttribute("position", i), this.setIndex(o), this.computeVertexNormals();
644
1362
  }
645
1363
  }
646
- class Ee extends b {
647
- constructor(e = 0.1, o = 0.1, t = 0.4, s = 8) {
1364
+ function ke(l, e = C.XYZ, t = 0.5, o = 2) {
1365
+ l.deleteAttribute("uv"), l.deleteAttribute("normal"), l = Me(l), l.computeVertexNormals();
1366
+ const r = l.getAttribute("position");
1367
+ for (let i = 0; i < r.count; i++) {
1368
+ const s = new M().fromBufferAttribute(r, i), n = Math.random() * (o - t) + t, c = e.clone().multiplyScalar(n);
1369
+ s.add(c), r.setXYZ(i, s.x, s.y, s.z);
1370
+ }
1371
+ return r.needsUpdate = !0, l.computeVertexNormals(), l;
1372
+ }
1373
+ class Te extends b {
1374
+ constructor(e = 1, t = 4, o = 4) {
1375
+ super();
1376
+ const r = new T(e, t, o);
1377
+ this.copy(ke(r, C.XYZ, 0.5, 1)), this.computeVertexNormals(), this.center();
1378
+ }
1379
+ }
1380
+ class ct extends b {
1381
+ constructor(e = 0.1, t = 0.1, o = 0.4, r = 8) {
648
1382
  super();
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));
1383
+ const i = new v(e * 0.6, t * 0.6, o, r);
1384
+ i.translate(0, 0, 0);
1385
+ const s = new T(e, r, r), n = s.clone(), c = s.clone(), a = s.clone(), m = s.clone();
1386
+ n.translate(0, o / 2 + e * 0.6, -e * 0.6), c.translate(0, o / 2 + e * 0.6, e * 0.6), a.translate(0, -o / 2 - t * 0.6, -t * 0.6), m.translate(0, -o / 2 - t * 0.6, t * 0.6), this.copy(A([i, n, c, a, m], !1));
653
1387
  }
654
1388
  }
655
- class ye extends b {
1389
+ class Be extends b {
656
1390
  constructor() {
657
1391
  super();
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));
1392
+ const e = new T(1, 16, 16), t = new v(0.2, 0.2, 2, 16, 1, !0);
1393
+ t.translate(0, 1.5, 0), t.rotateX(Math.PI / 2), this.copy(A([e, t], !1));
660
1394
  }
661
1395
  }
662
- class we extends b {
1396
+ class Ee extends b {
663
1397
  constructor() {
664
1398
  super();
665
1399
  const e = [
666
- new G(1, 0),
1400
+ new I(1, 0),
667
1401
  // Bottom of the bowl
668
- new G(1.2, 0.5),
1402
+ new I(1.2, 0.5),
669
1403
  // Slight flare at the base
670
- new G(1.4, 1.5),
1404
+ new I(1.4, 1.5),
671
1405
  // Outer wall
672
- new G(1.3, 1.8),
1406
+ new I(1.3, 1.8),
673
1407
  // Flared edge
674
- new G(0.8, 1.8)
1408
+ new I(0.8, 1.8)
675
1409
  // Lip of the bowl
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));
1410
+ ], t = new Z(e, 12), o = new ie(1, 12);
1411
+ o.rotateX(-Math.PI / 2), o.translate(0, 0, 0), this.copy(A([t, o], !1));
678
1412
  }
679
1413
  }
680
- class j extends b {
681
- constructor(e = 0.2, o = 0.2, t = 3, s = 32, r = !0) {
1414
+ class R extends b {
1415
+ constructor(e = 0.2, t = 0.2, o = 3, r = 32, i = !0) {
682
1416
  super();
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));
1417
+ const s = new v(e, t, o, r, 1, i), n = new T(t, r, r / 2, 0, Math.PI * 2, Math.PI / 2, Math.PI / 2);
1418
+ n.translate(0, -(o / 2), 0), this.copy(A([s, n], !1));
685
1419
  }
686
1420
  }
687
- class Me extends b {
688
- constructor({ radius: e = 0.5, neckRadius: o = 0.2, height: t = 3, neckHeight: s = 1, segments: r = 16 } = {}) {
1421
+ class Ne extends b {
1422
+ constructor({ radius: e = 0.5, neckRadius: t = 0.2, height: o = 3, neckHeight: r = 1, segments: i = 16 } = {}) {
689
1423
  super();
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));
1424
+ const s = o - r, n = new v(e, e, s, i);
1425
+ n.translate(0, s / 2, 0);
1426
+ const c = 0.3, a = new v(t, e, c, i);
1427
+ a.translate(0, s + c / 2, 0);
1428
+ const m = new v(t, t, r, i);
1429
+ m.translate(0, s + c + r / 2, 0), this.copy(A([n, a, m], !1));
1430
+ }
1431
+ }
1432
+ class Ce extends b {
1433
+ constructor({
1434
+ trunkRadiusTop: e = 0.25,
1435
+ trunkRadiusBottom: t = 0.4,
1436
+ trunkHeight: o = 2.5,
1437
+ trunkSegments: r = 14,
1438
+ leafSize: i = 0.8,
1439
+ leafCount: s = 6,
1440
+ leafDetail: n = 0,
1441
+ leafSpreadRadius: c = 1.5
1442
+ } = {}) {
1443
+ super();
1444
+ const a = new v(e, t, o, r);
1445
+ a.translate(0, o / 2, 0);
1446
+ const m = [];
1447
+ for (let u = 0; u < s; u++) {
1448
+ const f = new Q(i, n);
1449
+ f.translate(
1450
+ (Math.random() - 0.5) * c,
1451
+ (Math.random() - 0.5) * i + o,
1452
+ (Math.random() - 0.5) * c
1453
+ ), m.push(f);
1454
+ }
1455
+ this.copy(A([a.toNonIndexed(), A(m, !1)], !0)), this.computeVertexNormals();
696
1456
  }
697
1457
  }
698
- class Ue extends g {
1458
+ class it extends S {
699
1459
  constructor() {
700
1460
  super();
701
- const e = new T(5, 32, 32), o = new Y({
1461
+ const e = new T(5, 32, 32), t = new j({
702
1462
  uniforms: {
703
1463
  time: { value: 0 }
704
1464
  },
@@ -741,46 +1501,82 @@ class Ue extends g {
741
1501
  gl_FragColor = vec4(color, 1.0);
742
1502
  }
743
1503
  `
744
- }), t = new m(e, o);
745
- this.add(t);
1504
+ }), o = new h(e, t);
1505
+ this.add(o);
746
1506
  }
747
1507
  }
748
- class ze extends g {
1508
+ class lt extends h {
1509
+ constructor({
1510
+ width: e = 1,
1511
+ height: t = 1.5,
1512
+ depth: o = 0.5,
1513
+ coverThickness: r = 0.05,
1514
+ pageIndent: i = 0.05,
1515
+ coverColor: s = 9109504,
1516
+ pageColor: n = 16777215
1517
+ } = {}) {
1518
+ super(), this.geometry = new be(e, t, o, r, i), this.material = [
1519
+ new w({ color: s, metalness: 0.1, roughness: 0.7, flatShading: !0 }),
1520
+ new w({ color: n, flatShading: !0 })
1521
+ ];
1522
+ }
1523
+ }
1524
+ class mt extends h {
1525
+ constructor(e = 0.4, t = 1.2, o = 0.2) {
1526
+ super(), this.geometry = new Ge(e, t, o), this.material = new w({ color: 7829367, roughness: 0.8 });
1527
+ }
1528
+ }
1529
+ class ut extends S {
749
1530
  constructor() {
750
1531
  super();
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 });
1532
+ const e = new g(5, 1, 5), t = new w({ color: 8421504, flatShading: !0 }), o = new h(e, t);
1533
+ o.position.set(0, 0.5, 0), this.add(o);
1534
+ const r = new g(4, 3, 4), i = new w({ color: 6908265, flatShading: !0 }), s = new h(r, i);
1535
+ s.position.set(0, 2.5, 0), this.add(s);
1536
+ const n = new z(3.5, 2, 4), c = new w({ color: 5263440, flatShading: !0 }), a = new h(n, c);
1537
+ a.rotation.y = Math.PI / 4, a.position.set(0, 5, 0), this.add(a);
1538
+ const m = new v(0.2, 0.2, 3.5, 16), u = new w({ color: 6908265, flatShading: !0 });
758
1539
  [
759
1540
  [-1.8, 2.3, -2.2],
760
1541
  [1.8, 2.3, -2.2],
761
1542
  [-1.8, 2.3, 2.2],
762
1543
  [1.8, 2.3, 2.2]
763
- ].forEach((S) => {
764
- const V = new m(l, u);
765
- V.position.set(...S), this.add(V);
1544
+ ].forEach((G) => {
1545
+ const F = new h(m, u);
1546
+ F.position.set(...G), this.add(F);
766
1547
  });
767
- const p = new q();
1548
+ const p = new _();
768
1549
  p.moveTo(-1, 0), p.lineTo(-1, 2), p.absarc(0, 2, 1, Math.PI, 0, !0), p.lineTo(1, 0);
769
- const M = {
1550
+ const d = {
770
1551
  depth: 0.5,
771
1552
  bevelEnabled: !1
772
- }, d = new A(p, M), w = new y({ color: 4210752, flatShading: !0 }), P = new m(d, w);
1553
+ }, x = new L(p, d), y = new w({ color: 4210752, flatShading: !0 }), P = new h(x, y);
773
1554
  P.position.set(0, 0.5, 1.7), this.add(P);
774
1555
  }
775
1556
  }
776
- class _e extends g {
1557
+ class ft extends h {
1558
+ constructor(e = 1.75, t = 0.75) {
1559
+ super(), this.geometry = new Ie(e, t), this.material = new w({ color: 7829367, roughness: 0.8 });
1560
+ }
1561
+ }
1562
+ class ht extends h {
1563
+ constructor(e = 0.6, t = 1, o = 0.2, r = 0.6) {
1564
+ super(), this.geometry = new Pe(e, t, o, r), this.material = new w({ color: 7829367, roughness: 0.8 });
1565
+ }
1566
+ }
1567
+ class dt extends h {
1568
+ constructor(e = 0.5, t = 0.8, o = 0.15) {
1569
+ super(), this.geometry = new Ae(e, t, o), this.material = new w({ color: 7829367, roughness: 0.8 });
1570
+ }
1571
+ }
1572
+ class pt extends S {
777
1573
  constructor() {
778
1574
  super();
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);
781
- const s = [];
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 });
1575
+ const e = new g(5, 0.3, 3), t = new w({ color: 9132587 }), o = new h(e, t);
1576
+ o.position.set(0, 3.15, 0);
1577
+ const r = [];
1578
+ r.push(new I(0.2, 0)), r.push(new I(0.25, 0.5)), r.push(new I(0.15, 1.5)), r.push(new I(0.3, 3));
1579
+ const i = new Z(r, 32), s = new w({ color: 4929057 });
784
1580
  [
785
1581
  [2.2, 0, 1.2],
786
1582
  // Adjust Y to 0 so legs start at ground level
@@ -788,20 +1584,20 @@ class _e extends g {
788
1584
  [2.2, 0, -1.2],
789
1585
  [-2.2, 0, -1.2]
790
1586
  ].forEach((c) => {
791
- const i = new m(r, n);
792
- i.position.set(...c), this.add(i);
793
- }), this.add(t);
1587
+ const a = new h(i, s);
1588
+ a.position.set(...c), this.add(a);
1589
+ }), this.add(o);
794
1590
  }
795
1591
  }
796
- class je extends g {
797
- constructor(e = 1, o = 0.2) {
798
- super(), this.height = e, this.radius = o, this.createCandle(), this.animateFlicker();
1592
+ class wt extends S {
1593
+ constructor(e = 1, t = 0.2) {
1594
+ super(), this.height = e, this.radius = t, this.createCandle(), this.animateFlicker();
799
1595
  }
800
1596
  createCandle() {
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);
1597
+ const e = new v(this.radius, this.radius, this.height, 32), t = new w({ color: 16777215 });
1598
+ this.candle = new h(e, t), this.candle.position.set(0, this.height / 2, 0), this.add(this.candle);
1599
+ const o = new T(0.05, 16, 16), r = new le({ color: 16753920 });
1600
+ this.flame = new h(o, r), this.flame.position.set(0, this.height + 0.05, 0), this.add(this.flame), this.candleLight = new oe(16753920, 1, 5), this.candleLight.position.set(0, this.height + 0.05, 0), this.candleLight.castShadow = !0, this.add(this.candleLight);
805
1601
  }
806
1602
  animateFlicker() {
807
1603
  const e = () => {
@@ -810,47 +1606,52 @@ class je extends g {
810
1606
  e();
811
1607
  }
812
1608
  }
813
- class Ye extends g {
814
- constructor(e = 1.3, o = 0.5) {
1609
+ class yt extends S {
1610
+ constructor(e = 1.3, t = 0.5) {
815
1611
  super();
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);
1612
+ const o = new v(t, t, 0.2, 16), r = new w({ color: 9127187, flatShading: !0 }), i = new h(o, r);
1613
+ i.position.set(0, 0, 0), this.add(i);
1614
+ const s = new v(t * 0.9, t * 0.9, e), n = new w({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }), c = new h(s, n);
819
1615
  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);
1616
+ const a = new z(t * 1.1, 0.5, 8), m = new w({ color: 9127187, flatShading: !0 }), u = new h(a, m);
821
1617
  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);
1618
+ const f = new se(t * 0.8, 0.05, 8, 16), p = new w({ color: 9127187, flatShading: !0 }), d = new h(f, p);
1619
+ d.position.set(0, e + 0.85, 0), this.add(d);
1620
+ const x = new oe(16755200, 1.5, 15);
1621
+ x.position.set(0, e / 2 + 0.1, 0), x.castShadow = !0, this.add(x);
826
1622
  }
827
1623
  }
828
- class Ze extends g {
1624
+ class xt extends S {
829
1625
  constructor() {
830
1626
  super();
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 });
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);
835
- const n = new m(e, t);
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);
1627
+ const e = new Q(1, 0), t = new w({ color: 8421504, flatShading: !0 }), o = new w({ color: 4950843, flatShading: !0, opacity: 0.8, transparent: !0 });
1628
+ for (let r = 0; r < 5; r++) {
1629
+ const i = new h(e, t);
1630
+ i.scale.set(0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4), i.rotation.set(Math.random() * Math.PI, Math.random() * Math.PI, Math.random() * Math.PI), i.position.set((Math.random() - 0.5) * 4, 0, (Math.random() - 0.5) * 4), this.add(i);
1631
+ const s = new h(e, o);
1632
+ s.scale.set(i.scale.x * 0.9, i.scale.y * 0.5, i.scale.z * 0.9), s.rotation.copy(i.rotation), s.position.copy(i.position), s.position.y += 0.3, this.add(s);
837
1633
  }
838
1634
  }
839
1635
  }
840
- class Oe extends g {
1636
+ class Mt extends h {
1637
+ constructor(e = 1, t = 4, o = 4) {
1638
+ super(), this.geometry = new Te(e, t, o), this.material = new w({ color: 8421504, flatShading: !0 });
1639
+ }
1640
+ }
1641
+ class vt extends S {
841
1642
  constructor() {
842
1643
  super();
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);
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);
1644
+ const e = new Q(1, 0), t = new w({ color: 8421504, flatShading: !0 });
1645
+ for (let o = 0; o < 5; o++) {
1646
+ const r = new h(e, t);
1647
+ 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);
847
1648
  }
848
1649
  }
849
1650
  }
850
- class Xe extends g {
1651
+ class gt extends S {
851
1652
  constructor() {
852
1653
  super();
853
- const e = new ye(), o = new Z({
1654
+ const e = new Be(), t = new K({
854
1655
  color: 8965375,
855
1656
  transparent: !0,
856
1657
  opacity: 0.4,
@@ -858,309 +1659,298 @@ class Xe extends g {
858
1659
  metalness: 0.1,
859
1660
  reflectivity: 0.8,
860
1661
  transmission: 0.9,
861
- side: N
862
- }), t = new m(e, o);
863
- t.rotation.x = -Math.PI / 2, this.add(t);
1662
+ side: q
1663
+ }), o = new h(e, t);
1664
+ o.rotation.x = -Math.PI / 2, this.add(o);
864
1665
  }
865
1666
  }
866
- class He extends g {
867
- constructor() {
868
- super();
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);
875
- }
876
- }
877
- class Je extends g {
1667
+ class St extends S {
878
1668
  constructor() {
879
1669
  super();
880
1670
  const e = [
881
- new G(0, 0),
1671
+ new I(0, 0),
882
1672
  // Bottom
883
- new G(0.8, 0),
1673
+ new I(0.8, 0),
884
1674
  // Base
885
- new G(1, 1.5),
1675
+ new I(1, 1.5),
886
1676
  // Rounded body
887
- new G(0.5, 2.2),
1677
+ new I(0.5, 2.2),
888
1678
  // Neck
889
- new G(0.6, 2.5)
1679
+ new I(0.6, 2.5)
890
1680
  // Mouth
891
- ], o = new z(e, 10), t = new v(0.3, 0.4, 0.2, 8), s = new y({
1681
+ ], t = new Z(e, 10), o = new v(0.3, 0.4, 0.2, 8), r = new w({
892
1682
  color: 8965375,
893
1683
  transparent: !0,
894
1684
  opacity: 0.5,
895
1685
  roughness: 0.1,
896
1686
  metalness: 0.3
897
- }), r = new y({
1687
+ }), i = new w({
898
1688
  color: 16724838,
899
1689
  // Vibrant potion color
900
1690
  transparent: !0,
901
1691
  opacity: 0.6
902
- }), n = new y({
1692
+ }), s = new w({
903
1693
  color: 9127187,
904
1694
  roughness: 1
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);
1695
+ }), n = new h(t, r), c = new h(t, i), a = new h(o, s);
1696
+ c.scale.set(0.8, 0.8, 0.8), c.position.y = 0.1, a.position.y = 2.5;
1697
+ const m = new S();
1698
+ m.add(n, c, a), this.add(m);
909
1699
  }
910
1700
  }
911
- class Ke extends g {
1701
+ class bt extends S {
912
1702
  constructor() {
913
1703
  super();
914
- const e = new v(0.3, 0.4, 0.1, 16), o = new y({
1704
+ const e = new v(0.3, 0.4, 0.1, 16), t = new w({
915
1705
  color: 3355443,
916
1706
  roughness: 0.6,
917
1707
  metalness: 0.3
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({
1708
+ }), o = new h(e, t);
1709
+ o.position.y = 0.05;
1710
+ const r = new v(0.1, 0.1, 0.7, 16), i = new w({
921
1711
  color: 5592405,
922
1712
  roughness: 0.5,
923
1713
  metalness: 0.4
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({
1714
+ }), s = new h(r, i);
1715
+ s.position.y = 0.4;
1716
+ const n = new z(0.075, 0.2, 16), c = new w({
927
1717
  color: 16733440,
928
1718
  emissive: 16733440,
929
1719
  emissiveIntensity: 0.6,
930
1720
  transparent: !0,
931
1721
  opacity: 0.8
932
- }), i = new m(a, c);
933
- i.position.y = 0.8, this.add(t, n, i);
1722
+ }), a = new h(n, c);
1723
+ a.position.y = 0.8, this.add(o, s, a);
934
1724
  }
935
1725
  }
936
- class Qe extends g {
1726
+ class Gt extends S {
937
1727
  constructor() {
938
1728
  super();
939
- const e = new x(3, 4, 0.1), o = new y({
1729
+ const e = new g(3, 4, 0.1), t = new w({
940
1730
  color: 3026478,
941
1731
  roughness: 0.8,
942
1732
  metalness: 0.6
943
- }), t = new x(0.2, 0.5, 0.2), s = new y({
1733
+ }), o = new g(0.2, 0.5, 0.2), r = new w({
944
1734
  color: 11184810,
945
1735
  roughness: 0.5,
946
1736
  metalness: 0.7
947
- }), r = new v(0.3, 0.3, 0.1, 16), n = new y({
1737
+ }), i = new v(0.3, 0.3, 0.1, 16), s = new w({
948
1738
  color: 5592405,
949
1739
  roughness: 0.7,
950
1740
  metalness: 0.5
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);
1741
+ }), n = new h(e, t);
1742
+ for (let y = -1; y <= 1; y++) {
1743
+ const P = new h(o, r);
1744
+ P.position.set(y, 1.5, 0.1), n.add(P);
955
1745
  }
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({
1746
+ const c = new h(i, s);
1747
+ c.rotation.x = Math.PI / 2, c.position.set(0, 0.5, 0.15), n.add(c);
1748
+ const a = new T(0.15, 8, 8), m = new w({
959
1749
  color: 16711680,
960
1750
  emissive: 16711680,
961
1751
  emissiveIntensity: 0.5
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;
1752
+ }), u = new h(a, m);
1753
+ u.position.set(0, -1, 0.1), n.add(u), this.add(n);
1754
+ let f = 0.015, p = 0.8, d = 0.2;
1755
+ function x() {
1756
+ requestAnimationFrame(x);
1757
+ const y = d + Math.abs(Math.sin(Date.now() * f)) * (p - d);
1758
+ u.material.emissiveIntensity = y;
969
1759
  }
970
- d();
1760
+ x();
971
1761
  }
972
1762
  }
973
- class $e extends g {
1763
+ class It extends S {
974
1764
  constructor() {
975
1765
  super();
976
1766
  const e = [
977
- new G(0, 0),
1767
+ new I(0, 0),
978
1768
  // Bottom of the flask
979
- new G(1.2, 0),
1769
+ new I(1.2, 0),
980
1770
  // Base
981
- new G(1.5, 1.5),
1771
+ new I(1.5, 1.5),
982
1772
  // Mid-body
983
- new G(1, 3),
1773
+ new I(1, 3),
984
1774
  // Narrow neck
985
- new G(0.6, 3.5)
1775
+ new I(0.6, 3.5)
986
1776
  // Mouth of the flask
987
- ], o = new z(e, 12), t = new v(0.6, 0.7, 0.3, 8), s = new y({
1777
+ ], t = new Z(e, 12), o = new v(0.6, 0.7, 0.3, 8), r = new w({
988
1778
  color: 8965290,
989
1779
  transparent: !0,
990
1780
  opacity: 0.4,
991
1781
  roughness: 0.1,
992
1782
  metalness: 0.5
993
- }), r = new y({
1783
+ }), i = new w({
994
1784
  color: 9127187,
995
1785
  roughness: 1
996
- }), n = new m(o, s), a = new m(t, r);
997
- a.position.y = 3.5, this.add(n, a);
1786
+ }), s = new h(t, r), n = new h(o, i);
1787
+ n.position.y = 3.5, this.add(s, n);
998
1788
  }
999
1789
  }
1000
- class De extends g {
1790
+ class Pt extends S {
1001
1791
  constructor() {
1002
1792
  super();
1003
- const e = new x(2, 3, 0.1), o = new y({
1793
+ const e = new g(2, 3, 0.1), t = new w({
1004
1794
  color: 3355443,
1005
1795
  roughness: 0.8,
1006
1796
  metalness: 0.5
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({
1797
+ }), o = new h(e, t), r = new v(0.1, 0.1, 0.2, 8), i = new v(0.05, 0.05, 1, 8), s = new w({
1008
1798
  color: 11184810,
1009
1799
  roughness: 0.5,
1010
1800
  metalness: 0.7
1011
1801
  });
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);
1802
+ for (let n = -0.5; n <= 0.5; n += 0.5) {
1803
+ const c = new h(r, s);
1804
+ c.position.set(n, 1, 0.1);
1805
+ const a = new h(i, s);
1806
+ a.position.y = 0.5, c.add(a), this.add(c);
1017
1807
  }
1018
- this.add(t);
1808
+ this.add(o);
1019
1809
  }
1020
1810
  }
1021
- class Re extends g {
1811
+ class At extends S {
1022
1812
  constructor() {
1023
1813
  super();
1024
- const e = new x(1, 0.2, 0.5), o = new y({
1814
+ const e = new g(1, 0.2, 0.5), t = new w({
1025
1815
  color: 4473924,
1026
1816
  roughness: 0.6,
1027
1817
  metalness: 0.3
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({
1818
+ }), o = new h(e, t);
1819
+ o.position.y = 0.1;
1820
+ const r = new g(0.2, 1, 0.2), i = new h(r, t);
1821
+ i.position.set(0, 0.6, -0.2);
1822
+ const s = new v(0.1, 0.1, 0.4, 8), n = new w({
1033
1823
  color: 3355443,
1034
1824
  roughness: 0.5,
1035
1825
  metalness: 0.6
1036
- }), c = new m(n, a);
1826
+ }), c = new h(s, n);
1037
1827
  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({
1828
+ const a = new g(0.6, 0.1, 0.6), m = new w({
1039
1829
  color: 5592405,
1040
1830
  roughness: 0.8,
1041
1831
  metalness: 0.2
1042
- }), u = new m(i, l);
1043
- u.position.set(0, 0.6, 0), this.add(t, r, c, u);
1832
+ }), u = new h(a, m);
1833
+ u.position.set(0, 0.6, 0), this.add(o, i, c, u);
1044
1834
  }
1045
1835
  }
1046
- class We extends g {
1836
+ class kt extends S {
1047
1837
  constructor() {
1048
1838
  super();
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({
1839
+ const e = new Ee(), t = new v(0.2, 0.3, 1.5, 8);
1840
+ t.translate(0, 0.75, 0);
1841
+ const o = new w({
1052
1842
  color: 6045747,
1053
1843
  // Dark earthy tone
1054
1844
  roughness: 1,
1055
1845
  metalness: 0,
1056
- side: N
1846
+ side: q
1057
1847
  // Render inside and outside
1058
- }), s = new y({
1848
+ }), r = new w({
1059
1849
  color: 9132587,
1060
1850
  // Slightly lighter earthy color
1061
1851
  roughness: 0.8,
1062
1852
  metalness: 0.1
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);
1853
+ }), i = new h(e, o), s = new h(t, r);
1854
+ s.position.set(0.3, 1.3, 0), s.rotation.z = Math.PI / 4, this.add(i, s);
1065
1855
  }
1066
1856
  }
1067
- class et extends g {
1857
+ class Tt extends S {
1068
1858
  constructor() {
1069
1859
  super();
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(
1860
+ const e = 100, t = 0.05, o = new me(
1861
+ Array.from({ length: e }, (a, m) => {
1862
+ const u = m * 0.2;
1863
+ return new M(
1074
1864
  Math.cos(u) * 0.4,
1075
- l * o,
1865
+ m * t,
1076
1866
  // Gradual height increase
1077
1867
  Math.sin(u) * 0.4
1078
1868
  );
1079
1869
  })
1080
- ), s = new ae(t, 200, 0.1, 8, !1), r = new y({
1870
+ ), r = new ue(o, 200, 0.1, 8, !1), i = new w({
1081
1871
  color: 8965375,
1082
1872
  transparent: !0,
1083
1873
  opacity: 0.3,
1084
1874
  roughness: 0.1,
1085
1875
  metalness: 0.2,
1086
1876
  emissive: 8965375
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;
1877
+ }), s = new h(r, i);
1878
+ this.add(s);
1879
+ function n() {
1880
+ i.emissiveIntensity = 0.2 + Math.sin(Date.now() * 5e-3) * 0.1;
1091
1881
  }
1092
1882
  function c() {
1093
- requestAnimationFrame(c), a();
1883
+ requestAnimationFrame(c), n();
1094
1884
  }
1095
1885
  c();
1096
1886
  }
1097
1887
  }
1098
- class tt extends g {
1888
+ class Bt extends S {
1099
1889
  constructor() {
1100
1890
  super();
1101
- const e = new $(0.3, 0.03, 8, 16), o = new y({
1891
+ const e = new se(0.3, 0.03, 8, 16), t = new w({
1102
1892
  color: 8947848,
1103
1893
  roughness: 0.7,
1104
1894
  metalness: 0.3
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({
1895
+ }), o = new h(e, t);
1896
+ o.rotation.x = Math.PI / 2, o.position.y = 0.4;
1897
+ const r = new v(0.02, 0.02, 0.4, 8), i = new w({
1108
1898
  color: 6710886,
1109
1899
  roughness: 0.8,
1110
1900
  metalness: 0.3
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);
1901
+ }), s = [];
1902
+ for (let n = 0; n < 3; n++) {
1903
+ const c = n / 3 * Math.PI * 2, a = new h(r, i);
1904
+ a.position.set(Math.cos(c) * 0.25, 0.2, Math.sin(c) * 0.25), s.push(a);
1115
1905
  }
1116
- this.add(t, ...n);
1906
+ this.add(o, ...s);
1117
1907
  }
1118
1908
  }
1119
- class ot extends g {
1909
+ class Et extends S {
1120
1910
  constructor() {
1121
1911
  super();
1122
- const e = new v(0.5, 0.6, 0.3, 16), o = new y({
1912
+ const e = new v(0.5, 0.6, 0.3, 16), t = new w({
1123
1913
  color: 3355443,
1124
1914
  roughness: 0.6,
1125
1915
  metalness: 0.5
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({
1916
+ }), o = new h(e, t);
1917
+ o.position.y = 0.15;
1918
+ const r = new v(0.15, 0.15, 2, 12, 1, !0), i = new w({
1129
1919
  color: 16737792,
1130
1920
  roughness: 0.5,
1131
1921
  metalness: 0.8,
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 = [];
1922
+ side: q
1923
+ }), s = new h(r, i);
1924
+ s.position.y = 1.3;
1925
+ const n = new T(0.3, 16, 16), c = new h(n, i);
1926
+ c.position.y = 2.4, this.add(o, s, c);
1927
+ const a = [];
1138
1928
  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);
1929
+ const p = new fe({ color: 10079487 }), d = [
1930
+ new M(0, 2.4, 0),
1931
+ new M((Math.random() - 0.5) * 1.5, Math.random() * 2.4, (Math.random() - 0.5) * 1.5)
1932
+ ], x = new b().setFromPoints(d), y = new he(x, p);
1933
+ this.add(y), a.push(y);
1144
1934
  }
1145
- function l() {
1146
- i.forEach((f) => {
1935
+ function m() {
1936
+ a.forEach((f) => {
1147
1937
  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)
1938
+ new M(0, 2.4, 0),
1939
+ new M((Math.random() - 0.5) * 1.5, Math.random() * 2.4, (Math.random() - 0.5) * 1.5)
1150
1940
  ];
1151
1941
  f.geometry.setFromPoints(p);
1152
1942
  });
1153
1943
  }
1154
1944
  function u() {
1155
- requestAnimationFrame(u), l();
1945
+ requestAnimationFrame(u), m();
1156
1946
  }
1157
1947
  u();
1158
1948
  }
1159
1949
  }
1160
- class st extends g {
1161
- constructor(e = 0.2, o = 0.2, t = 3, s = 32) {
1950
+ class Nt extends S {
1951
+ constructor(e = 0.2, t = 0.2, o = 3, r = 32) {
1162
1952
  super();
1163
- const r = new j(e, o, t, s), n = new Z({
1953
+ const i = new R(e, t, o, r), s = new K({
1164
1954
  color: 8965375,
1165
1955
  transparent: !0,
1166
1956
  opacity: 0.4,
@@ -1169,48 +1959,48 @@ class st extends g {
1169
1959
  reflectivity: 0.8,
1170
1960
  transmission: 0.9,
1171
1961
  // For glass effect
1172
- side: N
1173
- }), a = new m(r, n);
1174
- this.add(a);
1962
+ side: q
1963
+ }), n = new h(i, s);
1964
+ this.add(n);
1175
1965
  }
1176
1966
  }
1177
- class nt extends g {
1178
- constructor(e = 3, o = [65450, 16711850, 11141375]) {
1967
+ class Ct extends S {
1968
+ constructor(e = 3, t = [65450, 16711850, 11141375]) {
1179
1969
  super();
1180
- const t = new x(3, 0.2, 1), s = new y({
1970
+ const o = new g(3, 0.2, 1), r = new w({
1181
1971
  color: 9127187,
1182
1972
  // Wooden color or change to metallic tone
1183
1973
  roughness: 0.7,
1184
1974
  metalness: 0.3
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({
1975
+ }), i = new h(o, r);
1976
+ i.position.y = 0.5;
1977
+ const s = new R(0.1, 0.1, 1, 16), n = new w({
1188
1978
  color: 11184810,
1189
1979
  transparent: !0,
1190
1980
  opacity: 0.4,
1191
1981
  roughness: 0.1,
1192
1982
  metalness: 0.5,
1193
- side: N
1983
+ side: q
1194
1984
  });
1195
1985
  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({
1986
+ const a = new h(s, n), m = (c - (e - 1) / 2) * 0.8;
1987
+ a.position.set(m, 1, 0);
1988
+ const u = new R(0.099, 0.099, 0.5, 16, !1), f = t[c % t.length], p = new w({
1199
1989
  color: f,
1200
1990
  emissive: f,
1201
1991
  emissiveIntensity: 0.5,
1202
1992
  transparent: !0,
1203
1993
  opacity: 0.6
1204
- }), M = new m(u, p);
1205
- M.position.set(0, -0.25, 0), i.add(M), r.add(i);
1994
+ }), d = new h(u, p);
1995
+ d.position.set(0, -0.25, 0), a.add(d), i.add(a);
1206
1996
  }
1207
- this.add(r);
1997
+ this.add(i);
1208
1998
  }
1209
1999
  }
1210
- class at extends m {
2000
+ class Ft extends h {
1211
2001
  constructor() {
1212
2002
  super();
1213
- const e = new Me(), o = new Z({
2003
+ const e = new Ne(), t = new K({
1214
2004
  color: 5597999,
1215
2005
  roughness: 0.1,
1216
2006
  transmission: 0.9,
@@ -1220,30 +2010,30 @@ class at extends m {
1220
2010
  clearcoat: 1,
1221
2011
  clearcoatRoughness: 0.1
1222
2012
  });
1223
- this.geometry = e, this.material = o;
2013
+ this.geometry = e, this.material = t;
1224
2014
  }
1225
2015
  }
1226
- class pe extends q {
1227
- constructor(e = 5, o = 0.5, t = 1) {
2016
+ class Fe extends _ {
2017
+ constructor(e = 5, t = 0.5, o = 1) {
1228
2018
  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);
2019
+ const r = Math.PI * 2 / e, i = r / 2, s = r / 4;
2020
+ this.moveTo(Math.cos(0) * o, -Math.sin(0) * o);
2021
+ for (let n = 1; n <= e; ++n) {
2022
+ let c = Math.cos(r * n - s * 3) * (t / Math.cos(s)), a = -Math.sin(r * n - s * 3) * (t / Math.cos(s)), m = Math.cos(r * n - i) * t, u = -Math.sin(r * n - i) * t;
2023
+ this.quadraticCurveTo(c, a, m, u), c = Math.cos(r * n - s) * (t / Math.cos(s)), a = -Math.sin(r * n - s) * (t / Math.cos(s)), m = Math.cos(r * n) * o, u = -Math.sin(r * n) * o, this.quadraticCurveTo(c, a, m, u);
1234
2024
  }
1235
2025
  this.closePath();
1236
2026
  }
1237
2027
  }
1238
- class rt extends m {
1239
- constructor(e = 5, o = 0.5, t = 1, s = 0.25) {
2028
+ class Ut extends h {
2029
+ constructor(e = 5, t = 0.5, o = 1, r = 0.25) {
1240
2030
  super();
1241
- const r = new pe(e, o, t), n = new A(r, {
1242
- depth: s,
1243
- bevelEnabled: s > 0,
2031
+ const i = new Fe(e, t, o), s = new L(i, {
2032
+ depth: r,
2033
+ bevelEnabled: r > 0,
1244
2034
  bevelThickness: 0,
1245
2035
  bevelSize: 0
1246
- }), a = new y({
2036
+ }), n = new w({
1247
2037
  color: 16776960,
1248
2038
  emissive: 16766720,
1249
2039
  emissiveIntensity: 0.25,
@@ -1251,76 +2041,76 @@ class rt extends m {
1251
2041
  roughness: 0.3,
1252
2042
  flatShading: !0
1253
2043
  });
1254
- n.center(), this.geometry = n, this.material = a;
2044
+ s.center(), this.geometry = s, this.material = n;
1255
2045
  }
1256
2046
  }
1257
- class de extends q {
1258
- constructor(e = 5, o = 0.5, t = 1, s = 5, r = 0.25) {
2047
+ class Ue extends _ {
2048
+ constructor(e = 5, t = 0.5, o = 1, r = 5, i = 0.25) {
1259
2049
  super();
1260
- const n = Math.PI * 2 / e, a = n / 4;
1261
- this.moveTo(Math.cos(0) * t, -Math.sin(0) * t);
2050
+ const s = Math.PI * 2 / e, n = s / 4;
2051
+ this.moveTo(Math.cos(0) * o, -Math.sin(0) * o);
1262
2052
  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);
2053
+ this.lineTo(Math.cos(s * c - n * 3) * t, -Math.sin(s * c - n * 3) * t), this.lineTo(Math.cos(s * c - n * 2) * t, -Math.sin(s * c - n * 2) * t), this.lineTo(Math.cos(s * c - n) * o, -Math.sin(s * c - n) * o), this.lineTo(Math.cos(s * c) * o, -Math.sin(s * c) * o);
2054
+ if (this.closePath(), i > 0 && r > 2) {
2055
+ const c = new de(), a = Math.PI * 2 / r;
2056
+ c.moveTo(Math.cos(0) * i, -Math.sin(0) * i);
2057
+ for (let m = 1; m < r; ++m)
2058
+ c.lineTo(Math.cos(a * m) * i, -Math.sin(a * m) * i);
2059
+ c.lineTo(Math.cos(0) * i, -Math.sin(0) * i), this.holes.push(c);
1270
2060
  }
1271
2061
  }
1272
2062
  }
1273
- class ct extends m {
1274
- constructor(e = 5, o = 0.5, t = 1, s = 5, r = 0.25, n = 0.25) {
2063
+ class zt extends h {
2064
+ constructor(e = 5, t = 0.5, o = 1, r = 5, i = 0.25, s = 0.25) {
1275
2065
  super();
1276
- const a = new de(e, o, t, s, r), c = new A(a, {
1277
- depth: n,
1278
- bevelEnabled: n > 0,
2066
+ const n = new Ue(e, t, o, r, i), c = new L(n, {
2067
+ depth: s,
2068
+ bevelEnabled: s > 0,
1279
2069
  bevelThickness: 0,
1280
2070
  bevelSize: 0
1281
- }), i = new y({
2071
+ }), a = new w({
1282
2072
  color: 11184810,
1283
2073
  metalness: 0.8,
1284
2074
  roughness: 0.2,
1285
2075
  reflectivity: 0.5
1286
2076
  });
1287
- c.center(), this.geometry = c, this.material = i;
2077
+ c.center(), this.geometry = c, this.material = a;
1288
2078
  }
1289
2079
  }
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,
2080
+ class ze extends _ {
2081
+ constructor(e = 1, t = 2.1, o = 1.4, r = 1.6) {
2082
+ super(), this.moveTo(0, o * e / 3), this.bezierCurveTo(
2083
+ -t * 0.375 * e,
2084
+ o * e,
1295
2085
  // Control point 1 for the left lobe
1296
- -o * e,
1297
- t * e / 3,
2086
+ -t * e,
2087
+ o * e / 3,
1298
2088
  // Control point 2 for the left side of the heart
1299
2089
  0,
1300
- -s * e
2090
+ -r * e
1301
2091
  // Bottom tip of the heart, controlled by `tipDepth`
1302
2092
  ), 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
2093
  t * e,
2094
+ o * e / 3,
2095
+ // Control point 3 for the right side of the heart
2096
+ t * 0.375 * e,
2097
+ o * e,
1308
2098
  // Control point 4 for the right lobe
1309
2099
  0,
1310
- t * e / 3
2100
+ o * e / 3
1311
2101
  // Close shape at the top middle
1312
2102
  );
1313
2103
  }
1314
2104
  }
1315
- class it extends m {
1316
- constructor(e = 1, o = 1, t = 1, s = 10, r = 0.25) {
2105
+ class _t extends h {
2106
+ constructor(e = 1, t = 1, o = 1, r = 10, i = 0.25) {
1317
2107
  super();
1318
- const n = new xe(e, o, t, s), a = new A(n, {
1319
- depth: r,
1320
- bevelEnabled: r > 0,
2108
+ const s = new ze(e, t, o, r), n = new L(s, {
2109
+ depth: i,
2110
+ bevelEnabled: i > 0,
1321
2111
  bevelThickness: 0,
1322
2112
  bevelSize: 0
1323
- }), c = new y({
2113
+ }), c = new w({
1324
2114
  color: 12986408,
1325
2115
  emissive: 12981270,
1326
2116
  emissiveIntensity: 0.25,
@@ -1328,28 +2118,28 @@ class it extends m {
1328
2118
  roughness: 0.3,
1329
2119
  flatShading: !0
1330
2120
  });
1331
- a.center(), this.geometry = a, this.material = c;
2121
+ n.center(), this.geometry = n, this.material = c;
1332
2122
  }
1333
2123
  }
1334
- class ve extends q {
1335
- constructor(e = 5, o = 0.5, t = 1) {
2124
+ class _e extends _ {
2125
+ constructor(e = 5, t = 0.5, o = 1) {
1336
2126
  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);
2127
+ const r = Math.PI * 2 / e, i = r / 2;
2128
+ this.moveTo(Math.cos(0) * o, Math.sin(0) * o);
2129
+ for (let s = 1; s <= e; ++s)
2130
+ this.lineTo(Math.cos(r * s - i) * t, Math.sin(r * s - i) * t), this.lineTo(Math.cos(r * s) * o, Math.sin(r * s) * o);
1341
2131
  this.closePath();
1342
2132
  }
1343
2133
  }
1344
- class lt extends m {
1345
- constructor(e = 5, o = 0.5, t = 1, s = 0.25) {
2134
+ class Lt extends h {
2135
+ constructor(e = 5, t = 0.5, o = 1, r = 0.25) {
1346
2136
  super();
1347
- const r = new ve(e, o, t), n = new A(r, {
1348
- depth: s,
1349
- bevelEnabled: s > 0,
2137
+ const i = new _e(e, t, o), s = new L(i, {
2138
+ depth: r,
2139
+ bevelEnabled: r > 0,
1350
2140
  bevelThickness: 0,
1351
2141
  bevelSize: 0
1352
- }), a = new y({
2142
+ }), n = new w({
1353
2143
  color: 16776960,
1354
2144
  emissive: 16766720,
1355
2145
  emissiveIntensity: 0.25,
@@ -1357,10 +2147,123 @@ class lt extends m {
1357
2147
  roughness: 0.3,
1358
2148
  flatShading: !0
1359
2149
  });
1360
- n.center(), this.geometry = n, this.material = a;
2150
+ s.center(), this.geometry = s, this.material = n;
2151
+ }
2152
+ }
2153
+ class qt extends h {
2154
+ constructor({
2155
+ trunkRadiusTop: e = 0.25,
2156
+ trunkRadiusBottom: t = 0.4,
2157
+ trunkHeight: o = 2.5,
2158
+ trunkSegments: r = 14,
2159
+ trunkColor: i = 9127187,
2160
+ leafSize: s = 0.8,
2161
+ leafCount: n = 6,
2162
+ leafDetail: c = 0,
2163
+ leafSpreadRadius: a = 1.5,
2164
+ leafColor: m = 2263842
2165
+ } = {}) {
2166
+ super();
2167
+ const u = new Ce({
2168
+ trunkRadiusTop: e,
2169
+ trunkRadiusBottom: t,
2170
+ trunkHeight: o,
2171
+ trunkSegments: r,
2172
+ trunkColor: i,
2173
+ leafSize: s,
2174
+ leafCount: n,
2175
+ leafDetail: c,
2176
+ leafSpreadRadius: a,
2177
+ leafColor: m
2178
+ }), f = new w({
2179
+ color: i,
2180
+ roughness: 0.9,
2181
+ metalness: 0,
2182
+ flatShading: !0
2183
+ }), p = new w({
2184
+ color: m,
2185
+ roughness: 0.8,
2186
+ metalness: 0,
2187
+ flatShading: !0
2188
+ });
2189
+ this.geometry = u, this.material = [f, p];
1361
2190
  }
1362
2191
  }
1363
- const K = {
2192
+ function Ot(l, { time: e = 0, waveFrequency: t = 0.2, waveAmplitude: o = 0.5 } = {}) {
2193
+ l.onBeforeCompile = (r) => {
2194
+ r.uniforms.time = { value: e }, r.uniforms.waveFrequency = { value: t }, r.uniforms.waveAmplitude = { value: o }, r.vertexShader = `
2195
+ uniform float time;
2196
+ uniform float waveFrequency;
2197
+ uniform float waveAmplitude;
2198
+
2199
+ vec3 waterDisplacement(vec3 position, vec3 normal) {
2200
+ vec3 displaced = position;
2201
+
2202
+ // Displace along the normal direction instead of local y-axis
2203
+ displaced += normal * (sin(position.x * waveFrequency + time) * waveAmplitude);
2204
+ displaced += normal * (cos(position.z * waveFrequency + time) * waveAmplitude);
2205
+
2206
+ return displaced;
2207
+ }
2208
+ ` + r.vertexShader, r.vertexShader = r.vertexShader.replace(
2209
+ "#include <begin_vertex>",
2210
+ `
2211
+ vec3 transformed = waterDisplacement(position, normal);
2212
+ `
2213
+ ), l.userData.shader = r;
2214
+ };
2215
+ }
2216
+ function Vt(l, e) {
2217
+ l.userData.shader && (l.userData.shader.uniforms.time.value += e);
2218
+ }
2219
+ function Xt(l, { time: e = 0, intensity: t = 1, direction: o = C.XYZ, scale: r = 10 } = {}) {
2220
+ l.onBeforeCompile = (i) => {
2221
+ i.uniforms.time = { value: e }, i.uniforms.direction = { value: o }, i.uniforms.intensity = { value: t }, i.uniforms.scale = { value: r }, i.vertexShader = `
2222
+ uniform float time;
2223
+ uniform vec3 direction;
2224
+ uniform float intensity;
2225
+ uniform float scale;
2226
+
2227
+ float mod289(float x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }
2228
+ vec4 mod289(vec4 x) { return x - floor(x * (1.0 / 289.0)) * 289.0; }
2229
+ vec4 perm(vec4 x) { return mod289(((x * 34.0) + 1.0) * x); }
2230
+
2231
+ float noise(vec3 p) {
2232
+ vec3 a = floor(p);
2233
+ vec3 d = p - a;
2234
+ d = d * d * (3.0 - 2.0 * d);
2235
+
2236
+ vec4 b = a.xxyy + vec4(0.0, 1.0, 0.0, 1.0);
2237
+ vec4 k1 = perm(b.xyxy);
2238
+ vec4 k2 = perm(k1.xyxy + b.zzww);
2239
+
2240
+ vec4 c = k2 + a.zzzz;
2241
+ vec4 k3 = perm(c);
2242
+ vec4 k4 = perm(c + 1.0);
2243
+
2244
+ vec4 o1 = fract(k3 * (1.0 / 41.0));
2245
+ vec4 o2 = fract(k4 * (1.0 / 41.0));
2246
+
2247
+ vec4 o3 = o2 * d.z + o1 * (1.0 - d.z);
2248
+ vec2 o4 = o3.yw * d.x + o3.xz * (1.0 - d.x);
2249
+
2250
+ return o4.y * d.y + o4.x * (1.0 - d.y);
2251
+ }
2252
+ ` + i.vertexShader, i.vertexShader = i.vertexShader.replace(
2253
+ "#include <begin_vertex>",
2254
+ `
2255
+ vec3 transformed = vec3(position);
2256
+ float n = noise(transformed * scale + time);
2257
+ transformed += normalize(direction) * n * intensity;
2258
+ vec3 transformedNormal = normal;
2259
+ `
2260
+ ), l.userData.shader = i;
2261
+ };
2262
+ }
2263
+ function Yt(l, e) {
2264
+ l.userData.shader && (l.userData.shader.uniforms.time.value += e);
2265
+ }
2266
+ const te = {
1364
2267
  uniforms: {},
1365
2268
  vertexShader: `
1366
2269
  varying vec3 vPosition;
@@ -1378,7 +2281,7 @@ const K = {
1378
2281
  gl_FragColor = vec4(mix(bottomColor, topColor, y), 1.0);
1379
2282
  }
1380
2283
  `
1381
- }, mt = {
2284
+ }, Le = {
1382
2285
  uniforms: {
1383
2286
  tDiffuse: { value: null },
1384
2287
  opacity: { value: 1 }
@@ -1399,10 +2302,10 @@ const K = {
1399
2302
  gl_FragColor = opacity * texel;
1400
2303
  }
1401
2304
  `
1402
- }, _ = {
2305
+ }, H = {
1403
2306
  uniforms: {
1404
- topColor: { value: new H(51) },
1405
- bottomColor: { value: new H(17) },
2307
+ topColor: { value: new $(51) },
2308
+ bottomColor: { value: new $(17) },
1406
2309
  offset: { value: 33 },
1407
2310
  exponent: { value: 0.6 }
1408
2311
  },
@@ -1426,102 +2329,151 @@ const K = {
1426
2329
  }
1427
2330
  `
1428
2331
  };
1429
- class ht extends m {
2332
+ class Zt extends h {
1430
2333
  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
2334
+ super(), this.geometry = new g(e, e, e), this.material = new j({
2335
+ vertexShader: te.vertexShader,
2336
+ fragmentShader: te.fragmentShader,
2337
+ side: ne
1435
2338
  });
1436
2339
  }
1437
2340
  }
1438
- class ut extends m {
2341
+ class Dt extends h {
1439
2342
  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
2343
+ super(), this.geometry = new T(e, 32, 15), this.material = new j({
2344
+ vertexShader: H.vertexShader,
2345
+ fragmentShader: H.fragmentShader,
2346
+ uniforms: H.uniforms,
2347
+ side: ne
1445
2348
  });
1446
2349
  }
1447
2350
  }
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) {
2351
+ class Ht extends h {
2352
+ constructor(e = Math.PI * 0.49, t = 2 * Math.PI * 0.25, o = 10, r = 2, i = 5e-3, s = 0.8) {
1450
2353
  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);
2354
+ const n = new ve();
2355
+ n.scale.setScalar(45e4), this.add(n);
2356
+ const c = n.material.uniforms;
2357
+ c.turbidity.value = o, c.rayleigh.value = r, c.mieCoefficient.value = i, c.mieDirectionalG.value = s, this.skyUniforms = c, this.sunPosition(e, t);
1455
2358
  }
1456
- sunPosition(e, o) {
1457
- const t = new C(), s = this.skyUniforms;
1458
- t.setFromSphericalCoords(1, e, o), s.sunPosition.value.copy(t);
2359
+ sunPosition(e, t) {
2360
+ const o = new M(), r = this.skyUniforms;
2361
+ o.setFromSphericalCoords(1, e, t), r.sunPosition.value.copy(o);
1459
2362
  }
1460
2363
  }
1461
- const yt = (h) => {
1462
- const e = new Uint8Array(4 * h * h);
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;
2364
+ const Rt = (l) => {
2365
+ const e = new Uint8Array(4 * l * l);
2366
+ for (let o = 0; o < l * l; o++) {
2367
+ const r = o * 4, i = (o % l ^ Math.floor(o / l)) & 1 ? 255 : 0;
2368
+ e[r] = i, e[r + 1] = i, e[r + 2] = i, e[r + 3] = 255;
1466
2369
  }
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;
2370
+ const t = new pe(e, l, l, we, ye);
2371
+ return t.wrapS = W, t.wrapT = W, t.minFilter = xe, t.needsUpdate = !0, t;
1469
2372
  };
2373
+ class Qt {
2374
+ static dispose(e) {
2375
+ e == null || e.traverse((t) => {
2376
+ t.geometry && t.geometry.dispose(), t.material && (Array.isArray(t.material) ? t.material.forEach((o) => o.dispose()) : t.material.dispose());
2377
+ });
2378
+ }
2379
+ static fadeBetween(e, t, o, r, i = 1) {
2380
+ const s = new ge(e), n = new ee(o, t);
2381
+ s.addPass(n);
2382
+ const c = new Se(Le);
2383
+ c.uniforms.opacity.value = 1, s.addPass(c);
2384
+ let a = null;
2385
+ function m(f) {
2386
+ a || (a = f);
2387
+ const d = (f - a) / 1e3 / i;
2388
+ c.uniforms.opacity.value = Math.max(1 - d, 0), d < 1 ? (s.render(), requestAnimationFrame(m)) : (s.passes[0] = new ee(r, t), a = null, requestAnimationFrame(u));
2389
+ }
2390
+ function u(f) {
2391
+ a || (a = f);
2392
+ const d = (f - a) / 1e3 / i;
2393
+ c.uniforms.opacity.value = Math.min(d, 1), d < 1 && (s.render(), requestAnimationFrame(u));
2394
+ }
2395
+ requestAnimationFrame(m);
2396
+ }
2397
+ }
1470
2398
  export {
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
2399
+ gt as Beaker,
2400
+ Be as BeakerGeometry,
2401
+ We as BifurcatedStaircaseGeometry,
2402
+ ct as BoneGeometry,
2403
+ lt as Book,
2404
+ be as BookGeometry,
2405
+ St as Bottle,
2406
+ $e as Bubbling,
2407
+ bt as BunsenBurner,
2408
+ Ut as Burst,
2409
+ Fe as BurstShape,
2410
+ wt as Candle,
2411
+ mt as CrossHeadstone,
2412
+ Ge as CrossHeadstoneGeometry,
2413
+ Zt as DaySkybox,
2414
+ pt as Desk,
2415
+ et as DioramaGeometry,
2416
+ C as Direction,
2417
+ Je as Easing,
2418
+ Gt as ElectricPanel,
2419
+ O as Falloff,
2420
+ nt as FenceColumn,
2421
+ It as Flask,
2422
+ zt as Gear,
2423
+ Ue as GearShape,
2424
+ _t as Heart,
2425
+ ze as HeartShape,
2426
+ tt as LShapedStaircaseGeometry,
2427
+ yt as Lantern,
2428
+ Pt as LeverPanel,
2429
+ ut as Mausoleum,
2430
+ At as Microscope,
2431
+ it as Moon,
2432
+ kt as MortarAndPestle,
2433
+ Ee as MortarGeometry,
2434
+ xt as MossyRocks,
2435
+ Dt as NightSkybox,
2436
+ ft as ObeliskHeadstone,
2437
+ Ie as ObeliskHeadstoneGeometry,
2438
+ Mt as Rock,
2439
+ Te as RockGeometry,
2440
+ vt as Rocks,
2441
+ ht as RoundedHeadstone,
2442
+ Pe as RoundedHeadstoneGeometry,
2443
+ Qt as SceneUtils,
2444
+ rt as SimpleLeafGeometry,
2445
+ ot as SpiralStaircaseGeometry,
2446
+ Tt as SpiralTube,
2447
+ dt as SquareHeadstone,
2448
+ Ae as SquareHeadstoneGeometry,
2449
+ st as StaircaseGeometry,
2450
+ Bt as Stand,
2451
+ Lt as Star,
2452
+ _e as StarShape,
2453
+ Et as TeslaCoil,
2454
+ Nt as TestTube,
2455
+ R as TestTubeGeometry,
2456
+ Ct as TestTubeRack,
2457
+ qt as Tree,
2458
+ Ce as TreeGeometry,
2459
+ Ht as TwilightSkybox,
2460
+ Ft as WineBottle,
2461
+ Ne as WineBottleGeometry,
2462
+ at as WroughtIronBarGeometry,
2463
+ Xt as addNoiseDisplacement,
2464
+ Ot as addWaterDisplacement,
2465
+ Rt as checkerboardTexture,
2466
+ te as daySkyShader,
2467
+ De as displacementBrush,
2468
+ Le as fadeShader,
2469
+ He as flattenBrush,
2470
+ H as nightSkyShader,
2471
+ Re as noiseBrush,
2472
+ ke as randomTransformVertices,
2473
+ Qe as smoothBrush,
2474
+ je as spikeBrush,
2475
+ Ke as twistBrush,
2476
+ Yt as updateNoiseDisplacementTime,
2477
+ Vt as updateWaterDisplacementTime
1526
2478
  };
1527
2479
  //# sourceMappingURL=index.es.js.map