three-low-poly 0.9.7 → 0.9.9

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,10 +1,10 @@
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";
1
+ import { Vector3 as M, MathUtils as H, Quaternion as le, Group as P, SphereGeometry as B, MeshStandardMaterial as w, Mesh as h, BufferGeometry as v, Float32BufferAttribute as U, BufferAttribute as Z, BoxGeometry as g, ConeGeometry as _, CylinderGeometry as G, Vector2 as b, LatheGeometry as L, CircleGeometry as me, TorusGeometry as oe, DodecahedronGeometry as j, ShaderMaterial as K, Shape as q, ExtrudeGeometry as O, MeshBasicMaterial as ue, PointLight as se, MeshPhysicalMaterial as D, DoubleSide as z, CatmullRomCurve3 as fe, TubeGeometry as he, LineBasicMaterial as pe, Line as de, Path as we, Color as $, BackSide as ne, DataTexture as ye, RGBAFormat as xe, UnsignedByteType as Me, RepeatWrapping as W, NearestFilter as ve, Box3 as ge } from "three";
2
+ import { mergeGeometries as A, mergeVertices as Se } from "three/addons/utils/BufferGeometryUtils.js";
3
+ import { Sky as be } from "three/addons/objects/Sky.js";
4
+ import { EffectComposer as Ge } from "three/addons/postprocessing/EffectComposer.js";
5
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 = {
6
+ import { ShaderPass as Ie } from "three/addons/postprocessing/ShaderPass.js";
7
+ const F = {
8
8
  UP: new M(0, 1, 0),
9
9
  DOWN: new M(0, -1, 0),
10
10
  LEFT: new M(-1, 0, 0),
@@ -18,7 +18,7 @@ const C = {
18
18
  XZ: new M(1, 0, 1).normalize(),
19
19
  YZ: new M(0, 1, 1).normalize(),
20
20
  XYZ: new M(1, 1, 1).normalize()
21
- }, O = {
21
+ }, V = {
22
22
  LINEAR: (l, e) => 1 - l / e,
23
23
  QUADRATIC: (l, e) => Math.pow(1 - l / e, 2),
24
24
  SQUARE_ROOT: (l, e) => Math.pow(1 - l / e, 0.5),
@@ -32,79 +32,79 @@ const C = {
32
32
  const t = Math.max(0, Math.min(1, 1 - l / e));
33
33
  return t * t * (3 - 2 * t);
34
34
  }
35
- }, De = (l, e, t, o, r = C.UP, i = O.LINEAR) => {
35
+ }, st = (l, e, t, o, n = F.UP, a = V.LINEAR) => {
36
36
  const s = l.attributes.position;
37
- for (let n = 0; n < s.count; n++) {
37
+ for (let r = 0; r < s.count; r++) {
38
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);
39
+ c.fromBufferAttribute(s, r);
40
+ const i = c.distanceTo(e);
41
+ if (i < t) {
42
+ const u = a(i, t) * o;
43
+ c.add(n.clone().multiplyScalar(u)), s.setXYZ(r, c.x, c.y, c.z);
44
44
  }
45
45
  }
46
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);
47
+ }, nt = (l, e, t, o, n, a = F.UP, s = V.LINEAR) => {
48
+ const r = l.attributes.position;
49
+ for (let c = 0; c < r.count; c++) {
50
+ const i = new M();
51
+ i.fromBufferAttribute(r, c);
52
+ const m = i.distanceTo(e);
53
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);
54
+ const f = s(m, t) * n, d = i.dot(a.normalize()), p = o - d;
55
+ i.add(a.clone().multiplyScalar(p * f)), r.setXYZ(c, i.x, i.y, i.z);
56
56
  }
57
57
  }
58
- n.needsUpdate = !0;
59
- }, Re = (l, e, t, o, r = C.UP, i = O.LINEAR) => {
58
+ r.needsUpdate = !0;
59
+ }, rt = (l, e, t, o, n = F.UP, a = V.LINEAR) => {
60
60
  const s = l.attributes.position;
61
- for (let n = 0; n < s.count; n++) {
61
+ for (let r = 0; r < s.count; r++) {
62
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);
63
+ c.fromBufferAttribute(s, r);
64
+ const i = c.distanceTo(e);
65
+ if (i < t) {
66
+ const m = a(i, t), u = o * m, f = n.clone().normalize();
67
+ c.x += H.randFloatSpread(u) * f.x, c.y += H.randFloatSpread(u) * f.y, c.z += H.randFloatSpread(u) * f.z, s.setXYZ(r, c.x, c.y, c.z);
68
68
  }
69
69
  }
70
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));
71
+ }, at = (l, e, t, o) => {
72
+ const n = l.attributes.position, a = new M();
73
+ for (let s = 0; s < n.count; s++) {
74
+ const r = new M();
75
+ if (r.fromBufferAttribute(n, s), r.distanceTo(e) < t) {
76
+ let i = new M(), m = 0;
77
+ for (let u = 0; u < n.count; u++)
78
+ a.fromBufferAttribute(n, u), a.distanceTo(r) < t && (i.add(a), m++);
79
+ m > 0 && (i.divideScalar(m), r.lerp(i, o), n.setXYZ(s, r.x, r.y, r.z));
80
80
  }
81
81
  }
82
- r.needsUpdate = !0;
83
- }, je = (l, e, t, o, r = !1, i = O.LINEAR) => {
82
+ n.needsUpdate = !0;
83
+ }, ct = (l, e, t, o, n = !1, a = V.LINEAR) => {
84
84
  const s = l.attributes.position;
85
- for (let n = 0; n < s.count; n++) {
85
+ for (let r = 0; r < s.count; r++) {
86
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);
87
+ c.fromBufferAttribute(s, r);
88
+ const i = c.distanceTo(e);
89
+ if (i < t) {
90
+ const u = a(i, t) * o * (n ? -1 : 1), f = c.clone().sub(e).normalize();
91
+ c.add(f.multiplyScalar(u)), s.setXYZ(r, c.x, c.y, c.z);
92
92
  }
93
93
  }
94
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();
95
+ }, it = (l, e, t, o, n = F.UP, a = V.LINEAR) => {
96
+ const s = l.attributes.position, r = new le();
97
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);
98
+ const i = new M();
99
+ i.fromBufferAttribute(s, c);
100
+ const m = i.distanceTo(e);
101
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);
102
+ const f = a(m, t) * o;
103
+ r.setFromAxisAngle(n, f), i.sub(e).applyQuaternion(r).add(e), s.setXYZ(c, i.x, i.y, i.z);
104
104
  }
105
105
  }
106
106
  s.needsUpdate = !0;
107
- }, Je = {
107
+ }, lt = {
108
108
  LINEAR: (l) => l,
109
109
  QUADRATIC_EASE_IN: (l) => l * l,
110
110
  QUADRATIC_EASE_OUT: (l) => 1 - Math.pow(1 - l, 2),
@@ -120,18 +120,18 @@ const C = {
120
120
  INVERSE_EASING: (l) => 1 / (1 + l),
121
121
  SMOOTHSTEP_EASING: (l) => l * l * (3 - 2 * l)
122
122
  };
123
- class $e extends S {
123
+ class mt extends P {
124
124
  constructor() {
125
125
  super();
126
- const e = [], t = 20, o = new T(0.1, 6, 6), r = new w({
126
+ const e = [], t = 20, o = new B(0.1, 6, 6), n = new w({
127
127
  color: 16777215,
128
128
  transparent: !0,
129
129
  opacity: 0.6,
130
130
  roughness: 0.3,
131
131
  metalness: 0.3
132
132
  });
133
- for (let n = 0; n < t; n++) {
134
- const c = new h(o, r);
133
+ for (let r = 0; r < t; r++) {
134
+ const c = new h(o, n);
135
135
  c.position.set(
136
136
  (Math.random() - 0.5) * 1.5,
137
137
  // Random x position within flask
@@ -141,31 +141,31 @@ class $e extends S {
141
141
  // Random z position within flask
142
142
  ), e.push(c), this.add(c);
143
143
  }
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);
144
+ function a() {
145
+ e.forEach((r) => {
146
+ 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);
147
147
  });
148
148
  }
149
149
  function s() {
150
- requestAnimationFrame(s), i();
150
+ requestAnimationFrame(s), a();
151
151
  }
152
152
  s();
153
153
  }
154
154
  }
155
- class We extends b {
156
- constructor(e = 2, t = 0.3, o = 0.6, r = 5, i = 5, s = Math.PI / 4) {
155
+ class ut extends v {
156
+ constructor(e = 2, t = 0.3, o = 0.6, n = 5, a = 5, s = Math.PI / 4) {
157
157
  super();
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(
158
+ const r = [], c = [];
159
+ for (let d = 0; d < n; d++) {
160
+ const p = d * t, x = p + t, y = d * o, I = y + o;
161
+ r.push(
162
162
  // Vertical riser
163
163
  -e / 2,
164
- d,
164
+ p,
165
165
  y,
166
166
  // Bottom-left
167
167
  e / 2,
168
- d,
168
+ p,
169
169
  y,
170
170
  // Bottom-right
171
171
  e / 2,
@@ -187,51 +187,51 @@ class We extends b {
187
187
  // Top-right
188
188
  e / 2,
189
189
  x,
190
- P,
190
+ I,
191
191
  // Back-right
192
192
  -e / 2,
193
193
  x,
194
- P
194
+ I
195
195
  // Back-left
196
196
  );
197
- const G = p * 8;
197
+ const S = d * 8;
198
198
  c.push(
199
- G,
200
- G + 1,
201
- G + 2,
202
- G,
203
- G + 2,
204
- G + 3
199
+ S,
200
+ S + 1,
201
+ S + 2,
202
+ S,
203
+ S + 2,
204
+ S + 3
205
205
  ), c.push(
206
- G + 4,
207
- G + 5,
208
- G + 6,
209
- G + 4,
210
- G + 6,
211
- G + 7
206
+ S + 4,
207
+ S + 5,
208
+ S + 6,
209
+ S + 4,
210
+ S + 6,
211
+ S + 7
212
212
  );
213
213
  }
214
- const a = r * t, m = r * o, u = e * 2;
215
- n.push(
214
+ const i = n * t, m = n * o, u = e * 2;
215
+ r.push(
216
216
  // Landing platform (4 vertices)
217
217
  -u / 2,
218
- a,
218
+ i,
219
219
  m,
220
220
  // Bottom-left
221
221
  u / 2,
222
- a,
222
+ i,
223
223
  m,
224
224
  // Bottom-right
225
225
  u / 2,
226
- a,
226
+ i,
227
227
  m + o,
228
228
  // Top-right
229
229
  -u / 2,
230
- a,
230
+ i,
231
231
  m + o
232
232
  // Top-left
233
233
  );
234
- const f = r * 8;
234
+ const f = n * 8;
235
235
  c.push(
236
236
  f,
237
237
  f + 1,
@@ -242,47 +242,47 @@ class We extends b {
242
242
  f + 3
243
243
  // Second triangle for landing
244
244
  );
245
- for (let p = 0; p < 2; p++) {
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(
245
+ for (let d = 0; d < 2; d++) {
246
+ const p = d === 0 ? 1 : -1;
247
+ for (let x = 0; x < a; x++) {
248
+ const y = i + x * t, I = y + t, S = p * (u / 4), T = m + o, X = x * o * Math.cos(s), E = x * o * Math.sin(s), C = S + p * X - e / 2 * Math.cos(s), Y = S + p * X + e / 2 * Math.cos(s), N = T + E, ce = C + p * o * Math.cos(s), ie = Y + p * o * Math.cos(s), J = N + o * Math.sin(s);
249
+ r.push(
250
250
  // Vertical riser
251
- E,
251
+ C,
252
252
  y,
253
253
  N,
254
254
  // Bottom-left
255
- X,
255
+ Y,
256
256
  y,
257
257
  N,
258
258
  // Bottom-right
259
- X,
260
- P,
259
+ Y,
260
+ I,
261
261
  N,
262
262
  // Top-right
263
- E,
264
- P,
263
+ C,
264
+ I,
265
265
  N,
266
266
  // Top-left
267
267
  // Horizontal tread
268
- E,
269
- P,
268
+ C,
269
+ I,
270
270
  N,
271
271
  // Top-left
272
- X,
273
- P,
272
+ Y,
273
+ I,
274
274
  N,
275
275
  // Top-right
276
- re,
277
- P,
276
+ ie,
277
+ I,
278
278
  J,
279
279
  // Back-right
280
- ae,
281
- P,
280
+ ce,
281
+ I,
282
282
  J
283
283
  // Back-left
284
284
  );
285
- const k = f + 4 + p * i * 8 + x * 8;
285
+ const k = f + 4 + d * a * 8 + x * 8;
286
286
  c.push(
287
287
  k,
288
288
  k + 1,
@@ -300,13 +300,13 @@ class We extends b {
300
300
  );
301
301
  }
302
302
  }
303
- this.setIndex(c), this.setAttribute("position", new U(n, 3)), this.computeVertexNormals();
303
+ this.setIndex(c), this.setAttribute("position", new U(r, 3)), this.computeVertexNormals();
304
304
  }
305
305
  }
306
- class et extends b {
307
- constructor(e = 5, t = 3, o = 5, r = 0.2) {
306
+ class ft extends v {
307
+ constructor(e = 5, t = 3, o = 5, n = 0.2) {
308
308
  super();
309
- const i = [
309
+ const a = [
310
310
  // Floor vertices
311
311
  -e / 2,
312
312
  0,
@@ -381,60 +381,60 @@ class et extends b {
381
381
  10,
382
382
  11
383
383
  ];
384
- this.setIndex(s), this.setAttribute("position", new U(i, 3)), this.computeVertexNormals();
384
+ this.setIndex(s), this.setAttribute("position", new U(a, 3)), this.computeVertexNormals();
385
385
  }
386
386
  }
387
- class tt extends b {
388
- constructor(e = 2, t = 0.3, o = 0.5, r = 5, i = 2) {
387
+ class ht extends v {
388
+ constructor(e = 2, t = 0.3, o = 0.5, n = 5, a = 2) {
389
389
  super();
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;
390
+ const s = [], r = [];
391
+ for (let u = 0; u < n; u++) {
392
+ const f = u * t, d = f + t, p = u * o, x = p + o;
393
393
  s.push(
394
394
  // Vertical riser
395
395
  -e / 2,
396
396
  f,
397
- d,
397
+ p,
398
398
  // Bottom-left
399
399
  e / 2,
400
400
  f,
401
- d,
401
+ p,
402
402
  // Bottom-right
403
403
  e / 2,
404
- p,
405
404
  d,
405
+ p,
406
406
  // Top-right
407
407
  -e / 2,
408
- p,
409
408
  d,
409
+ p,
410
410
  // Top-left
411
411
  // Horizontal tread
412
412
  -e / 2,
413
- p,
414
413
  d,
414
+ p,
415
415
  // Top-left
416
416
  e / 2,
417
- p,
418
417
  d,
418
+ p,
419
419
  // Top-right
420
420
  e / 2,
421
- p,
421
+ d,
422
422
  x,
423
423
  // Back-right
424
424
  -e / 2,
425
- p,
425
+ d,
426
426
  x
427
427
  // Back-left
428
428
  );
429
429
  const y = u * 8;
430
- n.push(
430
+ r.push(
431
431
  y,
432
432
  y + 1,
433
433
  y + 2,
434
434
  y,
435
435
  y + 2,
436
436
  y + 3
437
- ), n.push(
437
+ ), r.push(
438
438
  y + 4,
439
439
  y + 5,
440
440
  y + 6,
@@ -443,28 +443,28 @@ class tt extends b {
443
443
  y + 7
444
444
  );
445
445
  }
446
- const c = r * t, a = r * o;
446
+ const c = n * t, i = n * o;
447
447
  s.push(
448
448
  // Landing platform (4 vertices)
449
449
  -e / 2,
450
450
  c,
451
- a,
451
+ i,
452
452
  // Bottom-left
453
453
  e / 2,
454
454
  c,
455
- a,
455
+ i,
456
456
  // Bottom-right
457
457
  e / 2,
458
458
  c,
459
- a + i,
459
+ i + a,
460
460
  // Top-right
461
461
  -e / 2,
462
462
  c,
463
- a + i
463
+ i + a
464
464
  // Top-left
465
465
  );
466
- const m = r * 8;
467
- n.push(
466
+ const m = n * 8;
467
+ r.push(
468
468
  m,
469
469
  m + 1,
470
470
  m + 2,
@@ -474,53 +474,53 @@ class tt extends b {
474
474
  m + 3
475
475
  // Second triangle for landing
476
476
  );
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;
477
+ for (let u = 0; u < n; u++) {
478
+ const f = c + u * t, d = f + t, p = -e / 2 - u * o, x = p - o;
479
479
  s.push(
480
480
  // Vertical riser
481
- d,
481
+ p,
482
482
  f,
483
- a + i,
483
+ i + a,
484
484
  // Bottom-left
485
- d,
485
+ p,
486
486
  f,
487
- a + i - e,
487
+ i + a - e,
488
488
  // Bottom-right
489
- d,
490
489
  p,
491
- a + i - e,
492
- // Top-right
493
490
  d,
491
+ i + a - e,
492
+ // Top-right
494
493
  p,
495
- a + i,
494
+ d,
495
+ i + a,
496
496
  // Top-left
497
497
  // Horizontal tread
498
- d,
499
498
  p,
500
- a + i,
501
- // Top-left
502
499
  d,
500
+ i + a,
501
+ // Top-left
503
502
  p,
504
- a + i - e,
503
+ d,
504
+ i + a - e,
505
505
  // Top-right
506
506
  x,
507
- p,
508
- a + i - e,
507
+ d,
508
+ i + a - e,
509
509
  // Back-right
510
510
  x,
511
- p,
512
- a + i
511
+ d,
512
+ i + a
513
513
  // Back-left
514
514
  );
515
515
  const y = m + 4 + u * 8;
516
- n.push(
516
+ r.push(
517
517
  y,
518
518
  y + 1,
519
519
  y + 2,
520
520
  y,
521
521
  y + 2,
522
522
  y + 3
523
- ), n.push(
523
+ ), r.push(
524
524
  y + 4,
525
525
  y + 5,
526
526
  y + 6,
@@ -529,51 +529,51 @@ class tt extends b {
529
529
  y + 7
530
530
  );
531
531
  }
532
- this.setIndex(n), this.setAttribute("position", new U(s, 3)), this.computeVertexNormals();
532
+ this.setIndex(r), this.setAttribute("position", new U(s, 3)), this.computeVertexNormals();
533
533
  }
534
534
  }
535
- class ot extends b {
536
- constructor(e = 1, t = 0.4, o = 0.2, r = 20, i = 2, s = Math.PI / 8) {
535
+ class pt extends v {
536
+ constructor(e = 1, t = 0.4, o = 0.2, n = 20, a = 2, s = Math.PI / 8) {
537
537
  super();
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(
538
+ const r = [], c = [];
539
+ let i = 0;
540
+ for (let m = 0; m < n; m++) {
541
+ const u = a * Math.cos(i), f = a * Math.sin(i), d = m * o, p = d + o;
542
+ r.push(
543
543
  // Front face (vertical riser)
544
- u - e / 2 * Math.cos(a),
545
- p,
546
- f - e / 2 * Math.sin(a),
544
+ u - e / 2 * Math.cos(i),
545
+ d,
546
+ f - e / 2 * Math.sin(i),
547
547
  // Bottom-left
548
- u + e / 2 * Math.cos(a),
549
- p,
550
- f + e / 2 * Math.sin(a),
551
- // Bottom-right
552
- u + e / 2 * Math.cos(a),
548
+ u + e / 2 * Math.cos(i),
553
549
  d,
554
- f + e / 2 * Math.sin(a),
550
+ f + e / 2 * Math.sin(i),
551
+ // Bottom-right
552
+ u + e / 2 * Math.cos(i),
553
+ p,
554
+ f + e / 2 * Math.sin(i),
555
555
  // Top-right
556
- u - e / 2 * Math.cos(a),
557
- d,
558
- f - e / 2 * Math.sin(a)
556
+ u - e / 2 * Math.cos(i),
557
+ p,
558
+ f - e / 2 * Math.sin(i)
559
559
  // Top-left
560
- ), n.push(
560
+ ), r.push(
561
561
  // Top face (horizontal tread)
562
- u - e / 2 * Math.cos(a),
563
- d,
564
- f - e / 2 * Math.sin(a),
562
+ u - e / 2 * Math.cos(i),
563
+ p,
564
+ f - e / 2 * Math.sin(i),
565
565
  // Top-left-front
566
- u + e / 2 * Math.cos(a),
567
- d,
568
- f + e / 2 * Math.sin(a),
566
+ u + e / 2 * Math.cos(i),
567
+ p,
568
+ f + e / 2 * Math.sin(i),
569
569
  // Top-right-front
570
- u + e / 2 * Math.cos(a) - t * Math.sin(a),
571
- d,
572
- f + e / 2 * Math.sin(a) + t * Math.cos(a),
570
+ u + e / 2 * Math.cos(i) - t * Math.sin(i),
571
+ p,
572
+ f + e / 2 * Math.sin(i) + t * Math.cos(i),
573
573
  // Back-right
574
- u - e / 2 * Math.cos(a) - t * Math.sin(a),
575
- d,
576
- f - e / 2 * Math.sin(a) + t * Math.cos(a)
574
+ u - e / 2 * Math.cos(i) - t * Math.sin(i),
575
+ p,
576
+ f - e / 2 * Math.sin(i) + t * Math.cos(i)
577
577
  // Back-left
578
578
  );
579
579
  const x = m * 8;
@@ -595,18 +595,18 @@ class ot extends b {
595
595
  x + 6,
596
596
  x + 7
597
597
  // Second triangle for tread
598
- ), a += s;
598
+ ), i += s;
599
599
  }
600
- this.setIndex(c), this.setAttribute("position", new U(n, 3)), this.computeVertexNormals();
600
+ this.setIndex(c), this.setAttribute("position", new U(r, 3)), this.computeVertexNormals();
601
601
  }
602
602
  }
603
- class st extends b {
604
- constructor(e = 2, t = 0.3, o = 0.5, r = 10) {
603
+ class dt extends v {
604
+ constructor(e = 2, t = 0.3, o = 0.5, n = 10) {
605
605
  super();
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(
606
+ const a = [], s = [];
607
+ for (let r = 0; r < n; r++) {
608
+ const c = r * t, i = c + t, m = r * o, u = m + o;
609
+ a.push(
610
610
  // Bottom face of riser (front face)
611
611
  -e / 2,
612
612
  c,
@@ -617,32 +617,32 @@ class st extends b {
617
617
  m,
618
618
  // 1: Bottom-right-front
619
619
  e / 2,
620
- a,
620
+ i,
621
621
  m,
622
622
  // 2: Top-right-front
623
623
  -e / 2,
624
- a,
624
+ i,
625
625
  m,
626
626
  // 3: Top-left-front
627
627
  // Top face of tread (horizontal step)
628
628
  -e / 2,
629
- a,
629
+ i,
630
630
  m,
631
631
  // 4: Top-left-front (repeated)
632
632
  e / 2,
633
- a,
633
+ i,
634
634
  m,
635
635
  // 5: Top-right-front (repeated)
636
636
  e / 2,
637
- a,
637
+ i,
638
638
  u,
639
639
  // 6: Top-right-back
640
640
  -e / 2,
641
- a,
641
+ i,
642
642
  u
643
643
  // 7: Top-left-back
644
644
  );
645
- const f = n * 8;
645
+ const f = r * 8;
646
646
  s.push(
647
647
  f,
648
648
  f + 1,
@@ -663,13 +663,13 @@ class st extends b {
663
663
  // Second triangle for tread
664
664
  );
665
665
  }
666
- this.setIndex(s), this.setAttribute("position", new U(i, 3)), this.computeVertexNormals();
666
+ this.setIndex(s), this.setAttribute("position", new U(a, 3)), this.computeVertexNormals();
667
667
  }
668
668
  }
669
- class be extends b {
670
- constructor(e = 1, t = 1.5, o = 0.5, r = 0.05, i = 0.05) {
669
+ class Pe extends v {
670
+ constructor(e = 1, t = 1.5, o = 0.5, n = 0.05, a = 0.05) {
671
671
  super();
672
- const s = e, n = t, c = o, a = r, m = i, u = [
672
+ const s = e, r = t, c = o, i = n, m = a, u = [
673
673
  // Front cover
674
674
  0,
675
675
  0,
@@ -678,10 +678,10 @@ class be extends b {
678
678
  0,
679
679
  0,
680
680
  s,
681
- n,
681
+ r,
682
682
  0,
683
683
  0,
684
- n,
684
+ r,
685
685
  0,
686
686
  // Back cover
687
687
  s,
@@ -691,10 +691,10 @@ class be extends b {
691
691
  0,
692
692
  -c,
693
693
  0,
694
- n,
694
+ r,
695
695
  -c,
696
696
  s,
697
- n,
697
+ r,
698
698
  -c,
699
699
  // Spine
700
700
  0,
@@ -704,99 +704,99 @@ class be extends b {
704
704
  0,
705
705
  0,
706
706
  0,
707
- n,
707
+ r,
708
708
  0,
709
709
  0,
710
- n,
710
+ r,
711
711
  -c,
712
712
  // Inside front cover
713
713
  s,
714
714
  0,
715
- -a,
716
- a,
715
+ -i,
716
+ i,
717
717
  0,
718
- -a,
719
- a,
720
- n,
721
- -a,
718
+ -i,
719
+ i,
720
+ r,
721
+ -i,
722
722
  s,
723
- n,
724
- -a,
723
+ r,
724
+ -i,
725
725
  // Inside back cover
726
- a,
726
+ i,
727
727
  0,
728
- -c + a,
728
+ -c + i,
729
729
  s,
730
730
  0,
731
- -c + a,
731
+ -c + i,
732
732
  s,
733
- n,
734
- -c + a,
735
- a,
736
- n,
737
- -c + a,
733
+ r,
734
+ -c + i,
735
+ i,
736
+ r,
737
+ -c + i,
738
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,
739
+ i,
740
+ 0,
741
+ -i,
742
+ i,
743
+ 0,
744
+ -c + i,
745
+ i,
746
+ r,
747
+ -c + i,
748
+ i,
749
+ r,
750
+ -i,
751
751
  // Front cover top
752
752
  0,
753
- n,
753
+ r,
754
754
  0,
755
755
  s,
756
- n,
756
+ r,
757
757
  0,
758
758
  s,
759
- n,
760
- -a,
761
- a,
762
- n,
763
- -a,
759
+ r,
760
+ -i,
761
+ i,
762
+ r,
763
+ -i,
764
764
  // Back cover top
765
765
  0,
766
- n,
766
+ r,
767
767
  -c,
768
- a,
769
- n,
770
- -c + a,
768
+ i,
769
+ r,
770
+ -c + i,
771
771
  s,
772
- n,
773
- -c + a,
772
+ r,
773
+ -c + i,
774
774
  s,
775
- n,
775
+ r,
776
776
  -c,
777
777
  // Spine cover top
778
778
  0,
779
- n,
779
+ r,
780
780
  0,
781
- a,
782
- n,
783
- -a,
784
- a,
785
- n,
786
- -c + a,
781
+ i,
782
+ r,
783
+ -i,
784
+ i,
785
+ r,
786
+ -c + i,
787
787
  0,
788
- n,
788
+ r,
789
789
  -c,
790
790
  // Front cover bottom
791
791
  0,
792
792
  0,
793
793
  0,
794
- a,
794
+ i,
795
795
  0,
796
- -a,
796
+ -i,
797
797
  s,
798
798
  0,
799
- -a,
799
+ -i,
800
800
  s,
801
801
  0,
802
802
  0,
@@ -809,10 +809,10 @@ class be extends b {
809
809
  -c,
810
810
  s,
811
811
  0,
812
- -c + a,
813
- a,
812
+ -c + i,
813
+ i,
814
814
  0,
815
- -c + a,
815
+ -c + i,
816
816
  // Spine cover bottom
817
817
  0,
818
818
  0,
@@ -820,38 +820,38 @@ class be extends b {
820
820
  0,
821
821
  0,
822
822
  -c,
823
- a,
823
+ i,
824
824
  0,
825
- -c + a,
826
- a,
825
+ -c + i,
826
+ i,
827
827
  0,
828
- -a,
828
+ -i,
829
829
  // Front cover edge
830
830
  s,
831
831
  0,
832
832
  0,
833
833
  s,
834
834
  0,
835
- -a,
835
+ -i,
836
836
  s,
837
- n,
838
- -a,
837
+ r,
838
+ -i,
839
839
  s,
840
- n,
840
+ r,
841
841
  0,
842
842
  // Back cover edge
843
843
  s,
844
844
  0,
845
845
  -c,
846
846
  s,
847
- n,
847
+ r,
848
848
  -c,
849
849
  s,
850
- n,
851
- -c + a,
850
+ r,
851
+ -c + i,
852
852
  s,
853
853
  0,
854
- -c + a
854
+ -c + i
855
855
  ], f = [
856
856
  0,
857
857
  0,
@@ -1035,68 +1035,68 @@ class be extends b {
1035
1035
  0,
1036
1036
  0
1037
1037
  // Back cover edge
1038
- ], p = e / (e * 2 + o), d = (e + o) / (e * 2 + o), x = [
1039
- d,
1038
+ ], d = e / (e * 2 + o), p = (e + o) / (e * 2 + o), x = [
1039
+ p,
1040
1040
  0,
1041
1041
  1,
1042
1042
  0,
1043
1043
  1,
1044
1044
  1,
1045
- d,
1045
+ p,
1046
1046
  1,
1047
1047
  // Front cover
1048
1048
  0,
1049
1049
  0,
1050
- p,
1050
+ d,
1051
1051
  0,
1052
- p,
1052
+ d,
1053
1053
  1,
1054
1054
  0,
1055
1055
  1,
1056
1056
  // Back cover
1057
- p,
1058
- 0,
1059
1057
  d,
1060
1058
  0,
1061
- d,
1062
- 1,
1059
+ p,
1060
+ 0,
1063
1061
  p,
1064
1062
  1,
1063
+ d,
1064
+ 1,
1065
1065
  // Spine
1066
1066
  1,
1067
1067
  0,
1068
- d,
1068
+ p,
1069
1069
  0,
1070
- d,
1070
+ p,
1071
1071
  1,
1072
1072
  1,
1073
1073
  1,
1074
1074
  // Inside front cover
1075
- p,
1075
+ d,
1076
1076
  0,
1077
1077
  0,
1078
1078
  0,
1079
1079
  0,
1080
1080
  1,
1081
- p,
1081
+ d,
1082
1082
  1,
1083
1083
  // Inside back cover
1084
- d,
1085
- 0,
1086
1084
  p,
1087
1085
  0,
1088
- p,
1089
- 1,
1090
1086
  d,
1087
+ 0,
1088
+ d,
1089
+ 1,
1090
+ p,
1091
1091
  1,
1092
1092
  // Inside spine
1093
- d,
1093
+ p,
1094
1094
  0,
1095
1095
  1,
1096
1096
  0,
1097
1097
  1,
1098
1098
  1,
1099
- d,
1099
+ p,
1100
1100
  1,
1101
1101
  // Front cover top
1102
1102
  0,
@@ -1261,78 +1261,141 @@ class be extends b {
1261
1261
  54,
1262
1262
  55
1263
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));
1264
+ ], I = new Float32Array(u), S = new Float32Array(f), T = new Float32Array(x), X = new Uint16Array(y), E = new v();
1265
+ E.setAttribute("position", new Z(I, 3)), E.setAttribute("normal", new Z(S, 3)), E.setAttribute("uv", new Z(T, 2)), E.setIndex(new Z(X, 1));
1266
+ const C = new g(e - i - m, r - m * 2, c - i * 2);
1267
+ C.translate((e - i - m) / 2 + i, r / 2, -c / 2), this.copy(A([E, C], !0));
1268
1268
  }
1269
1269
  }
1270
- class Ge extends b {
1270
+ class Ae extends v {
1271
1271
  constructor(e = 0.4, t = 1.2, o = 0.2) {
1272
1272
  super();
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();
1273
+ const n = t * 0.6, a = new g(e / 2, n, o);
1274
+ a.translate(0, n / 2, 0);
1275
+ const s = e * 1.5, r = new g(s, e / 4, o);
1276
+ r.translate(0, n * 0.75, 0), this.copy(A([a, r], !1)), this.computeVertexNormals();
1277
1277
  }
1278
1278
  }
1279
- class Ie extends b {
1279
+ class ke extends v {
1280
1280
  constructor(e = 1.75, t = 0.75) {
1281
1281
  super();
1282
- const o = e * 0.05, r = e * 0.15, i = e * 0.15, s = e * 0.75;
1283
- let n = 0;
1282
+ const o = e * 0.05, n = e * 0.15, a = e * 0.15, s = e * 0.75;
1283
+ let r = 0;
1284
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;
1285
+ c.translate(0, r + o / 2, 0), r += o;
1286
+ const i = new g(t * 0.8, n, t * 0.8);
1287
+ i.translate(0, r + n / 2, 0), r += n;
1288
+ const m = new g(t * 0.6, a, t * 0.6);
1289
+ m.translate(0, r + a / 2, 0), r += a;
1290
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();
1291
+ u.translate(0, r + s / 2, 0), r += s;
1292
+ const f = new _(t * 0.4 / Math.sqrt(2), 0.1, 4, 1, !1, Math.PI / 4);
1293
+ f.translate(0, r + 0.1 / 2, 0), this.copy(A([c, i, m, u, f], !1)), this.computeVertexNormals();
1294
1294
  }
1295
1295
  }
1296
- class Pe extends b {
1297
- constructor(e = 0.6, t = 1, o = 0.2, r = 0.6) {
1296
+ class Be extends v {
1297
+ constructor(e = 0.6, t = 1, o = 0.2, n = 0.6) {
1298
1298
  super();
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();
1299
+ const a = t - n / 2, s = new g(e, a, o);
1300
+ s.translate(0, a / 2, 0);
1301
+ const r = new G(n / 2, n / 2, o, 16, 1, !1, 0, Math.PI);
1302
+ r.rotateY(Math.PI / 2), r.rotateX(Math.PI / 2), r.translate(0, a, 0), this.copy(A([s, r], !1)), this.computeVertexNormals();
1303
1303
  }
1304
1304
  }
1305
- class Ae extends b {
1305
+ class Te extends v {
1306
1306
  constructor(e = 0.5, t = 0.8, o = 0.15) {
1307
1307
  super();
1308
- const r = new g(e, t, o);
1309
- r.translate(0, t / 2, 0), this.copy(r);
1308
+ const n = new g(e, t, o);
1309
+ n.translate(0, t / 2, 0), this.copy(n);
1310
1310
  }
1311
1311
  }
1312
- class nt extends b {
1313
- constructor(e = 2.25) {
1312
+ class Ee extends v {
1313
+ constructor({ height: e = 2.25 } = {}) {
1314
1314
  super();
1315
1315
  const t = new g(1.2, 0.5, 1.2);
1316
1316
  t.translate(0, 0.25, 0);
1317
1317
  const o = new g(1, e, 1);
1318
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));
1319
+ const n = new g(1.4, 0.3, 1.4);
1320
+ n.translate(0, 0.5 + e + 0.15, 0), this.copy(A([t, o, n], !1));
1321
1321
  }
1322
1322
  }
1323
- class at extends b {
1324
- constructor(e = 2, t = 0.05, o = 0.3) {
1323
+ class re extends v {
1324
+ constructor({
1325
+ barHeight: e = 2,
1326
+ //
1327
+ barRadius: t = 0.05,
1328
+ spikeHeight: o = 0.3,
1329
+ spikeRadius: n = 0.075,
1330
+ spikeScaleZ: a = 1,
1331
+ radialSegments: s = 8
1332
+ } = {}) {
1325
1333
  super();
1326
- const r = new v(t, t, e, 8);
1334
+ const r = new G(t, t, e, s);
1327
1335
  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));
1336
+ const c = new _(n, o, s);
1337
+ c.translate(0, e + o / 2, 0), c.scale(1, 1, a), this.copy(A([r, c], !1));
1338
+ }
1339
+ }
1340
+ class Ce extends v {
1341
+ constructor({
1342
+ count: e = 20,
1343
+ //
1344
+ spacing: t = 0.4,
1345
+ barHeight: o = 2,
1346
+ barRadius: n = 0.05,
1347
+ spikeHeight: a = 0.3,
1348
+ spikeRadius: s = 0.075,
1349
+ spikeScaleZ: r = 1,
1350
+ railHeight: c = 0.1,
1351
+ railDepth: i = 0.05,
1352
+ railOffset: m = 0,
1353
+ radialSegments: u = 8
1354
+ } = {}) {
1355
+ super();
1356
+ const f = [], d = new re({ barHeight: o, barRadius: n, spikeHeight: a, spikeRadius: s, spikeScaleZ: r, radialSegments: u }), p = new g(e * t, c, i);
1357
+ for (let I = 0; I < e; I++) {
1358
+ const S = d.clone();
1359
+ S.translate(I * t, 0, 0), f.push(S);
1360
+ }
1361
+ const x = p.clone();
1362
+ x.translate(t * (e - 1) / 2, o - m - c / 2, 0), f.push(x);
1363
+ const y = p.clone();
1364
+ y.translate(t * (e - 1) / 2, c / 2, 0), f.push(y), this.copy(A(f));
1365
+ }
1366
+ }
1367
+ class Ne extends v {
1368
+ constructor({
1369
+ width: e = 5,
1370
+ //
1371
+ height: t = 8,
1372
+ depth: o = 1,
1373
+ shelves: n = 4,
1374
+ frameThickness: a = 0.1
1375
+ } = {}) {
1376
+ super();
1377
+ const s = t, r = e, c = o, i = new g(a, s, c), m = new g(r - 2 * a, a, c), u = i.clone();
1378
+ u.translate(-r / 2 + a / 2, s / 2, 0);
1379
+ const f = i.clone();
1380
+ f.translate(r / 2 - a / 2, s / 2, 0);
1381
+ const d = m.clone();
1382
+ d.translate(0, s - a / 2, 0);
1383
+ const p = m.clone();
1384
+ p.translate(0, a / 2, 0);
1385
+ const x = new g(r, s, a);
1386
+ x.translate(0, s / 2, -c / 2 + a / 2);
1387
+ const y = [], I = (s - a) / (n + 1);
1388
+ for (let S = 1; S <= n; S++) {
1389
+ const T = m.clone();
1390
+ T.translate(0, a / 2 + S * I, 0), y.push(T);
1391
+ }
1392
+ this.copy(A([u, f, d, p, x, ...y], !1));
1330
1393
  }
1331
1394
  }
1332
- class rt extends b {
1395
+ class wt extends v {
1333
1396
  constructor(e = 0.1) {
1334
1397
  super();
1335
- const t = [], o = [], r = [
1398
+ const t = [], o = [], n = [
1336
1399
  [0, 1],
1337
1400
  // Top point
1338
1401
  [0.5, 0.75],
@@ -1350,115 +1413,191 @@ class rt extends b {
1350
1413
  [-0.5, 0.75]
1351
1414
  // Left upper middle
1352
1415
  ];
1353
- for (let s = 0; s < r.length; s++) {
1354
- const [n, c] = r[s];
1355
- t.push(n * e, c * e, 0);
1416
+ for (let s = 0; s < n.length; s++) {
1417
+ const [r, c] = n[s];
1418
+ t.push(r * e, c * e, 0);
1356
1419
  }
1357
- for (let s = 1; s < r.length - 1; s++)
1420
+ for (let s = 1; s < n.length - 1; s++)
1358
1421
  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();
1422
+ o.push(0, n.length - 1, 1);
1423
+ const a = new U(t, 3);
1424
+ this.setAttribute("position", a), this.setIndex(o), this.computeVertexNormals();
1362
1425
  }
1363
1426
  }
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);
1427
+ function Fe(l, e = F.XYZ, t = 0.5, o = 2) {
1428
+ l.deleteAttribute("uv"), l.deleteAttribute("normal"), l = Se(l), l.computeVertexNormals();
1429
+ const n = l.getAttribute("position");
1430
+ for (let a = 0; a < n.count; a++) {
1431
+ const s = new M().fromBufferAttribute(n, a), r = Math.random() * (o - t) + t, c = e.clone().multiplyScalar(r);
1432
+ s.add(c), n.setXYZ(a, s.x, s.y, s.z);
1370
1433
  }
1371
- return r.needsUpdate = !0, l.computeVertexNormals(), l;
1434
+ return n.needsUpdate = !0, l.computeVertexNormals(), l;
1372
1435
  }
1373
- class Te extends b {
1436
+ class Ue extends v {
1374
1437
  constructor(e = 1, t = 4, o = 4) {
1375
1438
  super();
1376
- const r = new T(e, t, o);
1377
- this.copy(ke(r, C.XYZ, 0.5, 1)), this.computeVertexNormals(), this.center();
1439
+ const n = new B(e, t, o);
1440
+ this.copy(Fe(n, F.XYZ, 0.5, 1)), this.computeVertexNormals(), this.center();
1378
1441
  }
1379
1442
  }
1380
- class ct extends b {
1381
- constructor(e = 0.1, t = 0.1, o = 0.4, r = 8) {
1443
+ class ze extends v {
1444
+ constructor(e = 0.1, t = 0.1, o = 0.4, n = 8) {
1382
1445
  super();
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));
1446
+ const a = new G(e * 0.6, t * 0.6, o, n);
1447
+ a.translate(0, 0, 0);
1448
+ const s = new B(e, n, n), r = s.clone(), c = s.clone(), i = s.clone(), m = s.clone();
1449
+ r.translate(0, o / 2 + e * 0.6, -e * 0.6), c.translate(0, o / 2 + e * 0.6, e * 0.6), i.translate(0, -o / 2 - t * 0.6, -t * 0.6), m.translate(0, -o / 2 - t * 0.6, t * 0.6), this.copy(A([a, r, c, i, m], !1));
1387
1450
  }
1388
1451
  }
1389
- class Be extends b {
1452
+ class _e extends v {
1390
1453
  constructor() {
1391
1454
  super();
1392
- const e = new T(1, 16, 16), t = new v(0.2, 0.2, 2, 16, 1, !0);
1455
+ const e = new B(1, 16, 16), t = new G(0.2, 0.2, 2, 16, 1, !0);
1393
1456
  t.translate(0, 1.5, 0), t.rotateX(Math.PI / 2), this.copy(A([e, t], !1));
1394
1457
  }
1395
1458
  }
1396
- class Ee extends b {
1459
+ class Le extends v {
1460
+ constructor({
1461
+ flaskRadius: e = 1,
1462
+ //
1463
+ neckRadius: t = 0.3,
1464
+ height: o = 2.5,
1465
+ neckHeight: n = 1,
1466
+ radialSegments: a = 16
1467
+ } = {}) {
1468
+ super();
1469
+ const s = [
1470
+ new b(0, 0),
1471
+ // Bottom of the flask
1472
+ new b(e * 0.875, 0),
1473
+ // Flat base with minimum width
1474
+ new b(e, 0.1),
1475
+ // End of the rounded base
1476
+ new b(t, o),
1477
+ // Start of the straight neck
1478
+ new b(t, o + n),
1479
+ // End of the straight neck
1480
+ new b(t * 1.1, o + n + 0.3)
1481
+ // Slight outward lip at the top
1482
+ ], r = new L(s, a);
1483
+ this.copy(A([r], !1));
1484
+ }
1485
+ }
1486
+ class qe extends v {
1397
1487
  constructor() {
1398
1488
  super();
1399
1489
  const e = [
1400
- new I(1, 0),
1490
+ new b(1, 0),
1401
1491
  // Bottom of the bowl
1402
- new I(1.2, 0.5),
1492
+ new b(1.2, 0.5),
1403
1493
  // Slight flare at the base
1404
- new I(1.4, 1.5),
1494
+ new b(1.4, 1.5),
1405
1495
  // Outer wall
1406
- new I(1.3, 1.8),
1496
+ new b(1.3, 1.8),
1407
1497
  // Flared edge
1408
- new I(0.8, 1.8)
1498
+ new b(0.8, 1.8)
1409
1499
  // Lip of the bowl
1410
- ], t = new Z(e, 12), o = new ie(1, 12);
1500
+ ], t = new L(e, 12), o = new me(1, 12);
1411
1501
  o.rotateX(-Math.PI / 2), o.translate(0, 0, 0), this.copy(A([t, o], !1));
1412
1502
  }
1413
1503
  }
1414
- class R extends b {
1415
- constructor(e = 0.2, t = 0.2, o = 3, r = 32, i = !0) {
1504
+ class Oe extends v {
1505
+ constructor({
1506
+ radius: e = 0.3,
1507
+ //
1508
+ height: t = 0.4,
1509
+ count: o = 3,
1510
+ thickness: n = 0.03,
1511
+ radialSegments: a = 16
1512
+ } = {}) {
1513
+ super();
1514
+ const s = new oe(e, n, 8, a);
1515
+ s.rotateX(Math.PI / 2), s.translate(0, t, 0);
1516
+ const r = new G(n * 0.6, n * 0.6, t, a), c = [];
1517
+ for (let i = 0; i < o; i++) {
1518
+ const m = i / o * Math.PI * 2, u = r.clone();
1519
+ u.translate(Math.cos(m) * e, t / 2, Math.sin(m) * e), c.push(u);
1520
+ }
1521
+ this.copy(A([s, ...c], !1));
1522
+ }
1523
+ }
1524
+ class Q extends v {
1525
+ constructor(e = 0.2, t = 0.2, o = 3, n = 32, a = !0) {
1416
1526
  super();
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));
1527
+ const s = new G(e, t, o, n, 1, a), r = new B(t, n, n / 2, 0, Math.PI * 2, Math.PI / 2, Math.PI / 2);
1528
+ r.translate(0, -(o / 2), 0), this.copy(A([s, r], !1));
1419
1529
  }
1420
1530
  }
1421
- class Ne extends b {
1422
- constructor({ radius: e = 0.5, neckRadius: t = 0.2, height: o = 3, neckHeight: r = 1, segments: i = 16 } = {}) {
1531
+ class Ve extends v {
1532
+ constructor({ radius: e = 0.5, neckRadius: t = 0.2, height: o = 3, neckHeight: n = 1, segments: a = 16 } = {}) {
1423
1533
  super();
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));
1534
+ const s = o - n, r = new G(e, e, s, a);
1535
+ r.translate(0, s / 2, 0);
1536
+ const c = 0.3, i = new G(t, e, c, a);
1537
+ i.translate(0, s + c / 2, 0);
1538
+ const m = new G(t, t, n, a);
1539
+ m.translate(0, s + c + n / 2, 0), this.copy(A([r, i, m], !1));
1430
1540
  }
1431
1541
  }
1432
- class Ce extends b {
1542
+ class Xe extends v {
1543
+ constructor({
1544
+ radius: e = 3,
1545
+ //
1546
+ height: t = 0.6,
1547
+ widthSegments: o = 64,
1548
+ heightSegments: n = 16,
1549
+ phiStart: a = 0,
1550
+ phiLength: s = Math.PI * 2
1551
+ } = {}) {
1552
+ super(), this.copy(new B(e, o, n, a, s, 0, Math.PI / 2)), this.scale(1, t / e, 1);
1553
+ }
1554
+ }
1555
+ const yt = (l, e) => l / (1 - Math.cos(e)), ae = (l, e) => l / (2 * Math.sin(e)), Ye = (l, e) => l * (1 - Math.cos(e)), xt = (l, e) => 2 * l * Math.sin(e);
1556
+ class Ze extends v {
1557
+ constructor({
1558
+ radius: e = ae(5, Math.PI / 10),
1559
+ //
1560
+ widthSegments: t = 64,
1561
+ heightSegments: o = 32,
1562
+ phiStart: n = 0,
1563
+ phiLength: a = Math.PI * 2,
1564
+ thetaLength: s = Math.PI / 10
1565
+ } = {}) {
1566
+ super(), this.copy(new B(e, t, o, n, a, 0, s));
1567
+ const r = Ye(e, s);
1568
+ this.translate(0, -e + r, 0);
1569
+ }
1570
+ }
1571
+ class De extends v {
1433
1572
  constructor({
1434
1573
  trunkRadiusTop: e = 0.25,
1435
1574
  trunkRadiusBottom: t = 0.4,
1436
1575
  trunkHeight: o = 2.5,
1437
- trunkSegments: r = 14,
1438
- leafSize: i = 0.8,
1576
+ trunkSegments: n = 14,
1577
+ leafSize: a = 0.8,
1439
1578
  leafCount: s = 6,
1440
- leafDetail: n = 0,
1579
+ leafDetail: r = 0,
1441
1580
  leafSpreadRadius: c = 1.5
1442
1581
  } = {}) {
1443
1582
  super();
1444
- const a = new v(e, t, o, r);
1445
- a.translate(0, o / 2, 0);
1583
+ const i = new G(e, t, o, n);
1584
+ i.translate(0, o / 2, 0);
1446
1585
  const m = [];
1447
1586
  for (let u = 0; u < s; u++) {
1448
- const f = new Q(i, n);
1587
+ const f = new j(a, r);
1449
1588
  f.translate(
1450
1589
  (Math.random() - 0.5) * c,
1451
- (Math.random() - 0.5) * i + o,
1590
+ (Math.random() - 0.5) * a + o,
1452
1591
  (Math.random() - 0.5) * c
1453
1592
  ), m.push(f);
1454
1593
  }
1455
- this.copy(A([a.toNonIndexed(), A(m, !1)], !0)), this.computeVertexNormals();
1594
+ this.copy(A([i.toNonIndexed(), A(m, !1)], !0)), this.computeVertexNormals();
1456
1595
  }
1457
1596
  }
1458
- class it extends S {
1597
+ class Mt extends P {
1459
1598
  constructor() {
1460
1599
  super();
1461
- const e = new T(5, 32, 32), t = new j({
1600
+ const e = new B(5, 32, 32), t = new K({
1462
1601
  uniforms: {
1463
1602
  time: { value: 0 }
1464
1603
  },
@@ -1505,78 +1644,145 @@ class it extends S {
1505
1644
  this.add(o);
1506
1645
  }
1507
1646
  }
1508
- class lt extends h {
1647
+ class vt extends h {
1509
1648
  constructor({
1510
1649
  width: e = 1,
1511
1650
  height: t = 1.5,
1512
1651
  depth: o = 0.5,
1513
- coverThickness: r = 0.05,
1514
- pageIndent: i = 0.05,
1652
+ coverThickness: n = 0.05,
1653
+ pageIndent: a = 0.05,
1515
1654
  coverColor: s = 9109504,
1516
- pageColor: n = 16777215
1655
+ pageColor: r = 16777215
1517
1656
  } = {}) {
1518
- super(), this.geometry = new be(e, t, o, r, i), this.material = [
1657
+ super(), this.geometry = new Pe(e, t, o, n, a), this.material = [
1519
1658
  new w({ color: s, metalness: 0.1, roughness: 0.7, flatShading: !0 }),
1520
- new w({ color: n, flatShading: !0 })
1659
+ new w({ color: r, flatShading: !0 })
1521
1660
  ];
1522
1661
  }
1523
1662
  }
1524
- class mt extends h {
1663
+ class gt extends h {
1525
1664
  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 });
1665
+ super(), this.geometry = new Ae(e, t, o), this.material = new w({ color: 7829367, roughness: 0.8 });
1527
1666
  }
1528
1667
  }
1529
- class ut extends S {
1668
+ class St extends P {
1530
1669
  constructor() {
1531
1670
  super();
1532
1671
  const e = new g(5, 1, 5), t = new w({ color: 8421504, flatShading: !0 }), o = new h(e, t);
1533
1672
  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);
1673
+ const n = new g(4, 3, 4), a = new w({ color: 6908265, flatShading: !0 }), s = new h(n, a);
1535
1674
  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 });
1675
+ const r = new _(3.5, 2, 4), c = new w({ color: 5263440, flatShading: !0 }), i = new h(r, c);
1676
+ i.rotation.y = Math.PI / 4, i.position.set(0, 5, 0), this.add(i);
1677
+ const m = new G(0.2, 0.2, 3.5, 16), u = new w({ color: 6908265, flatShading: !0 });
1539
1678
  [
1540
1679
  [-1.8, 2.3, -2.2],
1541
1680
  [1.8, 2.3, -2.2],
1542
1681
  [-1.8, 2.3, 2.2],
1543
1682
  [1.8, 2.3, 2.2]
1544
- ].forEach((G) => {
1545
- const F = new h(m, u);
1546
- F.position.set(...G), this.add(F);
1683
+ ].forEach((S) => {
1684
+ const T = new h(m, u);
1685
+ T.position.set(...S), this.add(T);
1547
1686
  });
1548
- const p = new _();
1549
- p.moveTo(-1, 0), p.lineTo(-1, 2), p.absarc(0, 2, 1, Math.PI, 0, !0), p.lineTo(1, 0);
1550
- const d = {
1687
+ const d = new q();
1688
+ d.moveTo(-1, 0), d.lineTo(-1, 2), d.absarc(0, 2, 1, Math.PI, 0, !0), d.lineTo(1, 0);
1689
+ const p = {
1551
1690
  depth: 0.5,
1552
1691
  bevelEnabled: !1
1553
- }, x = new L(p, d), y = new w({ color: 4210752, flatShading: !0 }), P = new h(x, y);
1554
- P.position.set(0, 0.5, 1.7), this.add(P);
1692
+ }, x = new O(d, p), y = new w({ color: 4210752, flatShading: !0 }), I = new h(x, y);
1693
+ I.position.set(0, 0.5, 1.7), this.add(I);
1555
1694
  }
1556
1695
  }
1557
- class ft extends h {
1696
+ class bt extends h {
1558
1697
  constructor(e = 1.75, t = 0.75) {
1559
- super(), this.geometry = new Ie(e, t), this.material = new w({ color: 7829367, roughness: 0.8 });
1698
+ super(), this.geometry = new ke(e, t), this.material = new w({ color: 7829367, roughness: 0.8 });
1560
1699
  }
1561
1700
  }
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 });
1701
+ class Gt extends h {
1702
+ constructor(e = 0.6, t = 1, o = 0.2, n = 0.6) {
1703
+ super(), this.geometry = new Be(e, t, o, n), this.material = new w({ color: 7829367, roughness: 0.8 });
1565
1704
  }
1566
1705
  }
1567
- class dt extends h {
1706
+ class It extends h {
1568
1707
  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 });
1708
+ super(), this.geometry = new Te(e, t, o), this.material = new w({ color: 7829367, roughness: 0.8 });
1570
1709
  }
1571
1710
  }
1572
- class pt extends S {
1711
+ class Pt extends h {
1712
+ constructor({ height: e = 2.25 } = {}) {
1713
+ super(), this.geometry = new Ee({ height: e }), this.material = new w({ color: 9141627, flatShading: !0 });
1714
+ }
1715
+ }
1716
+ class At extends h {
1717
+ constructor({
1718
+ barHeight: e = 2,
1719
+ //
1720
+ barRadius: t = 0.05,
1721
+ spikeHeight: o = 0.3,
1722
+ spikeRadius: n = 0.075,
1723
+ spikeScaleZ: a = 1,
1724
+ radialSegments: s = 8
1725
+ } = {}) {
1726
+ super(), this.geometry = new re({
1727
+ barHeight: e,
1728
+ barRadius: t,
1729
+ spikeHeight: o,
1730
+ spikeRadius: n,
1731
+ spikeScaleZ: a,
1732
+ radialSegments: s
1733
+ }), this.material = new w({ color: 3355443, metalness: 0.8, roughness: 0.4 });
1734
+ }
1735
+ }
1736
+ class kt extends h {
1737
+ constructor({
1738
+ count: e = 20,
1739
+ //
1740
+ spacing: t = 0.4,
1741
+ barHeight: o = 2,
1742
+ barRadius: n = 0.05,
1743
+ spikeHeight: a = 0.3,
1744
+ spikeRadius: s = 0.075,
1745
+ spikeScaleZ: r = 1,
1746
+ railHeight: c = 0.1,
1747
+ railDepth: i = 0.05,
1748
+ railOffset: m = 0,
1749
+ radialSegments: u = 8
1750
+ } = {}) {
1751
+ super(), this.geometry = new Ce({
1752
+ count: e,
1753
+ spacing: t,
1754
+ barHeight: o,
1755
+ barRadius: n,
1756
+ spikeHeight: a,
1757
+ spikeRadius: s,
1758
+ spikeScaleZ: r,
1759
+ railHeight: c,
1760
+ railDepth: i,
1761
+ railOffset: m,
1762
+ radialSegments: u
1763
+ }), this.material = new w({ color: 3355443, metalness: 0.8, roughness: 0.4 });
1764
+ }
1765
+ }
1766
+ class Bt extends h {
1767
+ constructor({
1768
+ width: e = 5,
1769
+ //
1770
+ height: t = 8,
1771
+ depth: o = 1,
1772
+ shelves: n = 4,
1773
+ frameThickness: a = 0.1
1774
+ } = {}) {
1775
+ super(), this.geometry = new Ne({ width: e, height: t, depth: o, shelves: n, frameThickness: a }), this.material = new w({ color: 9127187 });
1776
+ }
1777
+ }
1778
+ class Tt extends P {
1573
1779
  constructor() {
1574
1780
  super();
1575
1781
  const e = new g(5, 0.3, 3), t = new w({ color: 9132587 }), o = new h(e, t);
1576
1782
  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 });
1783
+ const n = [];
1784
+ n.push(new b(0.2, 0)), n.push(new b(0.25, 0.5)), n.push(new b(0.15, 1.5)), n.push(new b(0.3, 3));
1785
+ const a = new L(n, 32), s = new w({ color: 4929057 });
1580
1786
  [
1581
1787
  [2.2, 0, 1.2],
1582
1788
  // Adjust Y to 0 so legs start at ground level
@@ -1584,20 +1790,20 @@ class pt extends S {
1584
1790
  [2.2, 0, -1.2],
1585
1791
  [-2.2, 0, -1.2]
1586
1792
  ].forEach((c) => {
1587
- const a = new h(i, s);
1588
- a.position.set(...c), this.add(a);
1793
+ const i = new h(a, s);
1794
+ i.position.set(...c), this.add(i);
1589
1795
  }), this.add(o);
1590
1796
  }
1591
1797
  }
1592
- class wt extends S {
1798
+ class Et extends P {
1593
1799
  constructor(e = 1, t = 0.2) {
1594
1800
  super(), this.height = e, this.radius = t, this.createCandle(), this.animateFlicker();
1595
1801
  }
1596
1802
  createCandle() {
1597
- const e = new v(this.radius, this.radius, this.height, 32), t = new w({ color: 16777215 });
1803
+ const e = new G(this.radius, this.radius, this.height, 32), t = new w({ color: 16777215 });
1598
1804
  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);
1805
+ const o = new B(0.05, 16, 16), n = new ue({ color: 16753920 });
1806
+ this.flame = new h(o, n), this.flame.position.set(0, this.height + 0.05, 0), this.add(this.flame), this.candleLight = new se(16753920, 1, 5), this.candleLight.position.set(0, this.height + 0.05, 0), this.candleLight.castShadow = !0, this.add(this.candleLight);
1601
1807
  }
1602
1808
  animateFlicker() {
1603
1809
  const e = () => {
@@ -1606,52 +1812,52 @@ class wt extends S {
1606
1812
  e();
1607
1813
  }
1608
1814
  }
1609
- class yt extends S {
1815
+ class Ct extends P {
1610
1816
  constructor(e = 1.3, t = 0.5) {
1611
1817
  super();
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);
1818
+ const o = new G(t, t, 0.2, 16), n = new w({ color: 9127187, flatShading: !0 }), a = new h(o, n);
1819
+ a.position.set(0, 0, 0), this.add(a);
1820
+ const s = new G(t * 0.9, t * 0.9, e), r = new w({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }), c = new h(s, r);
1615
1821
  c.position.set(0, e / 2 + 0.1, 0), this.add(c);
1616
- const a = new z(t * 1.1, 0.5, 8), m = new w({ color: 9127187, flatShading: !0 }), u = new h(a, m);
1822
+ const i = new _(t * 1.1, 0.5, 8), m = new w({ color: 9127187, flatShading: !0 }), u = new h(i, m);
1617
1823
  u.position.set(0, e + 0.35, 0), this.add(u);
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);
1824
+ const f = new oe(t * 0.8, 0.05, 8, 16), d = new w({ color: 9127187, flatShading: !0 }), p = new h(f, d);
1825
+ p.position.set(0, e + 0.85, 0), this.add(p);
1826
+ const x = new se(16755200, 1.5, 15);
1621
1827
  x.position.set(0, e / 2 + 0.1, 0), x.castShadow = !0, this.add(x);
1622
1828
  }
1623
1829
  }
1624
- class xt extends S {
1830
+ class Nt extends P {
1625
1831
  constructor() {
1626
1832
  super();
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);
1833
+ const e = new j(1, 0), t = new w({ color: 8421504, flatShading: !0 }), o = new w({ color: 4950843, flatShading: !0, opacity: 0.8, transparent: !0 });
1834
+ for (let n = 0; n < 5; n++) {
1835
+ const a = new h(e, t);
1836
+ a.scale.set(0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4), a.rotation.set(Math.random() * Math.PI, Math.random() * Math.PI, Math.random() * Math.PI), a.position.set((Math.random() - 0.5) * 4, 0, (Math.random() - 0.5) * 4), this.add(a);
1631
1837
  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);
1838
+ s.scale.set(a.scale.x * 0.9, a.scale.y * 0.5, a.scale.z * 0.9), s.rotation.copy(a.rotation), s.position.copy(a.position), s.position.y += 0.3, this.add(s);
1633
1839
  }
1634
1840
  }
1635
1841
  }
1636
- class Mt extends h {
1842
+ class Ft extends h {
1637
1843
  constructor(e = 1, t = 4, o = 4) {
1638
- super(), this.geometry = new Te(e, t, o), this.material = new w({ color: 8421504, flatShading: !0 });
1844
+ super(), this.geometry = new Ue(e, t, o), this.material = new w({ color: 8421504, flatShading: !0 });
1639
1845
  }
1640
1846
  }
1641
- class vt extends S {
1847
+ class Ut extends P {
1642
1848
  constructor() {
1643
1849
  super();
1644
- const e = new Q(1, 0), t = new w({ color: 8421504, flatShading: !0 });
1850
+ const e = new j(1, 0), t = new w({ color: 8421504, flatShading: !0 });
1645
1851
  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);
1852
+ const n = new h(e, t);
1853
+ 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);
1648
1854
  }
1649
1855
  }
1650
1856
  }
1651
- class gt extends S {
1857
+ class zt extends P {
1652
1858
  constructor() {
1653
1859
  super();
1654
- const e = new Be(), t = new K({
1860
+ const e = new _e(), t = new D({
1655
1861
  color: 8965375,
1656
1862
  transparent: !0,
1657
1863
  opacity: 0.4,
@@ -1659,32 +1865,32 @@ class gt extends S {
1659
1865
  metalness: 0.1,
1660
1866
  reflectivity: 0.8,
1661
1867
  transmission: 0.9,
1662
- side: q
1868
+ side: z
1663
1869
  }), o = new h(e, t);
1664
1870
  o.rotation.x = -Math.PI / 2, this.add(o);
1665
1871
  }
1666
1872
  }
1667
- class St extends S {
1873
+ class _t extends P {
1668
1874
  constructor() {
1669
1875
  super();
1670
1876
  const e = [
1671
- new I(0, 0),
1877
+ new b(0, 0),
1672
1878
  // Bottom
1673
- new I(0.8, 0),
1879
+ new b(0.8, 0),
1674
1880
  // Base
1675
- new I(1, 1.5),
1881
+ new b(1, 1.5),
1676
1882
  // Rounded body
1677
- new I(0.5, 2.2),
1883
+ new b(0.5, 2.2),
1678
1884
  // Neck
1679
- new I(0.6, 2.5)
1885
+ new b(0.6, 2.5)
1680
1886
  // Mouth
1681
- ], t = new Z(e, 10), o = new v(0.3, 0.4, 0.2, 8), r = new w({
1887
+ ], t = new L(e, 10), o = new G(0.3, 0.4, 0.2, 8), n = new w({
1682
1888
  color: 8965375,
1683
1889
  transparent: !0,
1684
1890
  opacity: 0.5,
1685
1891
  roughness: 0.1,
1686
1892
  metalness: 0.3
1687
- }), i = new w({
1893
+ }), a = new w({
1688
1894
  color: 16724838,
1689
1895
  // Vibrant potion color
1690
1896
  transparent: !0,
@@ -1692,123 +1898,145 @@ class St extends S {
1692
1898
  }), s = new w({
1693
1899
  color: 9127187,
1694
1900
  roughness: 1
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);
1901
+ }), r = new h(t, n), c = new h(t, a), i = new h(o, s);
1902
+ c.scale.set(0.8, 0.8, 0.8), c.position.y = 0.1, i.position.y = 2.5;
1903
+ const m = new P();
1904
+ m.add(r, c, i), this.add(m);
1699
1905
  }
1700
1906
  }
1701
- class bt extends S {
1907
+ class Lt extends P {
1702
1908
  constructor() {
1703
1909
  super();
1704
- const e = new v(0.3, 0.4, 0.1, 16), t = new w({
1910
+ const e = new G(0.3, 0.4, 0.1, 16), t = new w({
1705
1911
  color: 3355443,
1706
1912
  roughness: 0.6,
1707
1913
  metalness: 0.3
1708
1914
  }), o = new h(e, t);
1709
1915
  o.position.y = 0.05;
1710
- const r = new v(0.1, 0.1, 0.7, 16), i = new w({
1916
+ const n = new G(0.1, 0.1, 0.7, 16), a = new w({
1711
1917
  color: 5592405,
1712
1918
  roughness: 0.5,
1713
1919
  metalness: 0.4
1714
- }), s = new h(r, i);
1920
+ }), s = new h(n, a);
1715
1921
  s.position.y = 0.4;
1716
- const n = new z(0.075, 0.2, 16), c = new w({
1922
+ const r = new _(0.075, 0.2, 16), c = new w({
1717
1923
  color: 16733440,
1718
1924
  emissive: 16733440,
1719
1925
  emissiveIntensity: 0.6,
1720
1926
  transparent: !0,
1721
1927
  opacity: 0.8
1722
- }), a = new h(n, c);
1723
- a.position.y = 0.8, this.add(o, s, a);
1928
+ }), i = new h(r, c);
1929
+ i.position.y = 0.8, this.add(o, s, i);
1724
1930
  }
1725
1931
  }
1726
- class Gt extends S {
1932
+ class qt extends P {
1727
1933
  constructor() {
1728
1934
  super();
1729
1935
  const e = new g(3, 4, 0.1), t = new w({
1730
1936
  color: 3026478,
1731
1937
  roughness: 0.8,
1732
1938
  metalness: 0.6
1733
- }), o = new g(0.2, 0.5, 0.2), r = new w({
1939
+ }), o = new g(0.2, 0.5, 0.2), n = new w({
1734
1940
  color: 11184810,
1735
1941
  roughness: 0.5,
1736
1942
  metalness: 0.7
1737
- }), i = new v(0.3, 0.3, 0.1, 16), s = new w({
1943
+ }), a = new G(0.3, 0.3, 0.1, 16), s = new w({
1738
1944
  color: 5592405,
1739
1945
  roughness: 0.7,
1740
1946
  metalness: 0.5
1741
- }), n = new h(e, t);
1947
+ }), r = new h(e, t);
1742
1948
  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);
1949
+ const I = new h(o, n);
1950
+ I.position.set(y, 1.5, 0.1), r.add(I);
1745
1951
  }
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({
1952
+ const c = new h(a, s);
1953
+ c.rotation.x = Math.PI / 2, c.position.set(0, 0.5, 0.15), r.add(c);
1954
+ const i = new B(0.15, 8, 8), m = new w({
1749
1955
  color: 16711680,
1750
1956
  emissive: 16711680,
1751
1957
  emissiveIntensity: 0.5
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;
1958
+ }), u = new h(i, m);
1959
+ u.position.set(0, -1, 0.1), r.add(u), this.add(r);
1960
+ let f = 0.015, d = 0.8, p = 0.2;
1755
1961
  function x() {
1756
1962
  requestAnimationFrame(x);
1757
- const y = d + Math.abs(Math.sin(Date.now() * f)) * (p - d);
1963
+ const y = p + Math.abs(Math.sin(Date.now() * f)) * (d - p);
1758
1964
  u.material.emissiveIntensity = y;
1759
1965
  }
1760
1966
  x();
1761
1967
  }
1762
1968
  }
1763
- class It extends S {
1969
+ class Ot extends h {
1970
+ constructor({
1971
+ flaskRadius: e = 1,
1972
+ //
1973
+ neckRadius: t = 0.3,
1974
+ height: o = 2.5,
1975
+ neckHeight: n = 1,
1976
+ radialSegments: a = 16
1977
+ } = {}) {
1978
+ super(), this.geometry = new Le({ flaskRadius: e, neckRadius: t, height: o, neckHeight: n, radialSegments: a }), this.material = new D({
1979
+ color: 8965375,
1980
+ transparent: !0,
1981
+ opacity: 0.4,
1982
+ roughness: 0.1,
1983
+ metalness: 0.1,
1984
+ reflectivity: 0.8,
1985
+ transmission: 0.9,
1986
+ side: z,
1987
+ wireframe: !1
1988
+ });
1989
+ }
1990
+ }
1991
+ class Vt extends P {
1764
1992
  constructor() {
1765
1993
  super();
1766
1994
  const e = [
1767
- new I(0, 0),
1995
+ new b(0, 0),
1768
1996
  // Bottom of the flask
1769
- new I(1.2, 0),
1997
+ new b(1.2, 0),
1770
1998
  // Base
1771
- new I(1.5, 1.5),
1999
+ new b(1.5, 1.5),
1772
2000
  // Mid-body
1773
- new I(1, 3),
2001
+ new b(1, 3),
1774
2002
  // Narrow neck
1775
- new I(0.6, 3.5)
2003
+ new b(0.6, 3.5)
1776
2004
  // Mouth of the flask
1777
- ], t = new Z(e, 12), o = new v(0.6, 0.7, 0.3, 8), r = new w({
2005
+ ], t = new L(e, 12), o = new G(0.6, 0.7, 0.3, 8), n = new w({
1778
2006
  color: 8965290,
1779
2007
  transparent: !0,
1780
2008
  opacity: 0.4,
1781
2009
  roughness: 0.1,
1782
2010
  metalness: 0.5
1783
- }), i = new w({
2011
+ }), a = new w({
1784
2012
  color: 9127187,
1785
2013
  roughness: 1
1786
- }), s = new h(t, r), n = new h(o, i);
1787
- n.position.y = 3.5, this.add(s, n);
2014
+ }), s = new h(t, n), r = new h(o, a);
2015
+ r.position.y = 3.5, this.add(s, r);
1788
2016
  }
1789
2017
  }
1790
- class Pt extends S {
2018
+ class Xt extends P {
1791
2019
  constructor() {
1792
2020
  super();
1793
2021
  const e = new g(2, 3, 0.1), t = new w({
1794
2022
  color: 3355443,
1795
2023
  roughness: 0.8,
1796
2024
  metalness: 0.5
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({
2025
+ }), o = new h(e, t), n = new G(0.1, 0.1, 0.2, 8), a = new G(0.05, 0.05, 1, 8), s = new w({
1798
2026
  color: 11184810,
1799
2027
  roughness: 0.5,
1800
2028
  metalness: 0.7
1801
2029
  });
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);
2030
+ for (let r = -0.5; r <= 0.5; r += 0.5) {
2031
+ const c = new h(n, s);
2032
+ c.position.set(r, 1, 0.1);
2033
+ const i = new h(a, s);
2034
+ i.position.y = 0.5, c.add(i), this.add(c);
1807
2035
  }
1808
2036
  this.add(o);
1809
2037
  }
1810
2038
  }
1811
- class At extends S {
2039
+ class Yt extends P {
1812
2040
  constructor() {
1813
2041
  super();
1814
2042
  const e = new g(1, 0.2, 0.5), t = new w({
@@ -1817,48 +2045,48 @@ class At extends S {
1817
2045
  metalness: 0.3
1818
2046
  }), o = new h(e, t);
1819
2047
  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({
2048
+ const n = new g(0.2, 1, 0.2), a = new h(n, t);
2049
+ a.position.set(0, 0.6, -0.2);
2050
+ const s = new G(0.1, 0.1, 0.4, 8), r = new w({
1823
2051
  color: 3355443,
1824
2052
  roughness: 0.5,
1825
2053
  metalness: 0.6
1826
- }), c = new h(s, n);
2054
+ }), c = new h(s, r);
1827
2055
  c.position.set(0, 1.1, -0.35), c.rotation.x = -Math.PI / 4;
1828
- const a = new g(0.6, 0.1, 0.6), m = new w({
2056
+ const i = new g(0.6, 0.1, 0.6), m = new w({
1829
2057
  color: 5592405,
1830
2058
  roughness: 0.8,
1831
2059
  metalness: 0.2
1832
- }), u = new h(a, m);
1833
- u.position.set(0, 0.6, 0), this.add(o, i, c, u);
2060
+ }), u = new h(i, m);
2061
+ u.position.set(0, 0.6, 0), this.add(o, a, c, u);
1834
2062
  }
1835
2063
  }
1836
- class kt extends S {
2064
+ class Zt extends P {
1837
2065
  constructor() {
1838
2066
  super();
1839
- const e = new Ee(), t = new v(0.2, 0.3, 1.5, 8);
2067
+ const e = new qe(), t = new G(0.2, 0.3, 1.5, 8);
1840
2068
  t.translate(0, 0.75, 0);
1841
2069
  const o = new w({
1842
2070
  color: 6045747,
1843
2071
  // Dark earthy tone
1844
2072
  roughness: 1,
1845
2073
  metalness: 0,
1846
- side: q
2074
+ side: z
1847
2075
  // Render inside and outside
1848
- }), r = new w({
2076
+ }), n = new w({
1849
2077
  color: 9132587,
1850
2078
  // Slightly lighter earthy color
1851
2079
  roughness: 0.8,
1852
2080
  metalness: 0.1
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);
2081
+ }), a = new h(e, o), s = new h(t, n);
2082
+ s.position.set(0.3, 1.3, 0), s.rotation.z = Math.PI / 4, this.add(a, s);
1855
2083
  }
1856
2084
  }
1857
- class Tt extends S {
2085
+ class Dt extends P {
1858
2086
  constructor() {
1859
2087
  super();
1860
- const e = 100, t = 0.05, o = new me(
1861
- Array.from({ length: e }, (a, m) => {
2088
+ const e = 100, t = 0.05, o = new fe(
2089
+ Array.from({ length: e }, (i, m) => {
1862
2090
  const u = m * 0.2;
1863
2091
  return new M(
1864
2092
  Math.cos(u) * 0.4,
@@ -1867,78 +2095,73 @@ class Tt extends S {
1867
2095
  Math.sin(u) * 0.4
1868
2096
  );
1869
2097
  })
1870
- ), r = new ue(o, 200, 0.1, 8, !1), i = new w({
2098
+ ), n = new he(o, 200, 0.1, 8, !1), a = new w({
1871
2099
  color: 8965375,
1872
2100
  transparent: !0,
1873
2101
  opacity: 0.3,
1874
2102
  roughness: 0.1,
1875
2103
  metalness: 0.2,
1876
2104
  emissive: 8965375
1877
- }), s = new h(r, i);
2105
+ }), s = new h(n, a);
1878
2106
  this.add(s);
1879
- function n() {
1880
- i.emissiveIntensity = 0.2 + Math.sin(Date.now() * 5e-3) * 0.1;
2107
+ function r() {
2108
+ a.emissiveIntensity = 0.2 + Math.sin(Date.now() * 5e-3) * 0.1;
1881
2109
  }
1882
2110
  function c() {
1883
- requestAnimationFrame(c), n();
2111
+ requestAnimationFrame(c), r();
1884
2112
  }
1885
2113
  c();
1886
2114
  }
1887
2115
  }
1888
- class Bt extends S {
1889
- constructor() {
1890
- super();
1891
- const e = new se(0.3, 0.03, 8, 16), t = new w({
2116
+ class Ht extends h {
2117
+ constructor({
2118
+ radius: e = 0.3,
2119
+ //
2120
+ height: t = 0.4,
2121
+ count: o = 3,
2122
+ thickness: n = 0.03,
2123
+ radialSegments: a = 16
2124
+ } = {}) {
2125
+ super(), this.geometry = new Oe({ radius: e, height: t, count: o, thickness: n, radialSegments: a }), this.material = new w({
1892
2126
  color: 8947848,
1893
2127
  roughness: 0.7,
1894
2128
  metalness: 0.3
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({
1898
- color: 6710886,
1899
- roughness: 0.8,
1900
- metalness: 0.3
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);
1905
- }
1906
- this.add(o, ...s);
2129
+ });
1907
2130
  }
1908
2131
  }
1909
- class Et extends S {
2132
+ class Rt extends P {
1910
2133
  constructor() {
1911
2134
  super();
1912
- const e = new v(0.5, 0.6, 0.3, 16), t = new w({
2135
+ const e = new G(0.5, 0.6, 0.3, 16), t = new w({
1913
2136
  color: 3355443,
1914
2137
  roughness: 0.6,
1915
2138
  metalness: 0.5
1916
2139
  }), o = new h(e, t);
1917
2140
  o.position.y = 0.15;
1918
- const r = new v(0.15, 0.15, 2, 12, 1, !0), i = new w({
2141
+ const n = new G(0.15, 0.15, 2, 12, 1, !0), a = new w({
1919
2142
  color: 16737792,
1920
2143
  roughness: 0.5,
1921
2144
  metalness: 0.8,
1922
- side: q
1923
- }), s = new h(r, i);
2145
+ side: z
2146
+ }), s = new h(n, a);
1924
2147
  s.position.y = 1.3;
1925
- const n = new T(0.3, 16, 16), c = new h(n, i);
2148
+ const r = new B(0.3, 16, 16), c = new h(r, a);
1926
2149
  c.position.y = 2.4, this.add(o, s, c);
1927
- const a = [];
2150
+ const i = [];
1928
2151
  for (let f = 0; f < 5; f++) {
1929
- const p = new fe({ color: 10079487 }), d = [
2152
+ const d = new pe({ color: 10079487 }), p = [
1930
2153
  new M(0, 2.4, 0),
1931
2154
  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);
2155
+ ], x = new v().setFromPoints(p), y = new de(x, d);
2156
+ this.add(y), i.push(y);
1934
2157
  }
1935
2158
  function m() {
1936
- a.forEach((f) => {
1937
- const p = [
2159
+ i.forEach((f) => {
2160
+ const d = [
1938
2161
  new M(0, 2.4, 0),
1939
2162
  new M((Math.random() - 0.5) * 1.5, Math.random() * 2.4, (Math.random() - 0.5) * 1.5)
1940
2163
  ];
1941
- f.geometry.setFromPoints(p);
2164
+ f.geometry.setFromPoints(d);
1942
2165
  });
1943
2166
  }
1944
2167
  function u() {
@@ -1947,10 +2170,10 @@ class Et extends S {
1947
2170
  u();
1948
2171
  }
1949
2172
  }
1950
- class Nt extends S {
1951
- constructor(e = 0.2, t = 0.2, o = 3, r = 32) {
2173
+ class Qt extends P {
2174
+ constructor(e = 0.2, t = 0.2, o = 3, n = 32) {
1952
2175
  super();
1953
- const i = new R(e, t, o, r), s = new K({
2176
+ const a = new Q(e, t, o, n), s = new D({
1954
2177
  color: 8965375,
1955
2178
  transparent: !0,
1956
2179
  opacity: 0.4,
@@ -1959,48 +2182,48 @@ class Nt extends S {
1959
2182
  reflectivity: 0.8,
1960
2183
  transmission: 0.9,
1961
2184
  // For glass effect
1962
- side: q
1963
- }), n = new h(i, s);
1964
- this.add(n);
2185
+ side: z
2186
+ }), r = new h(a, s);
2187
+ this.add(r);
1965
2188
  }
1966
2189
  }
1967
- class Ct extends S {
2190
+ class jt extends P {
1968
2191
  constructor(e = 3, t = [65450, 16711850, 11141375]) {
1969
2192
  super();
1970
- const o = new g(3, 0.2, 1), r = new w({
2193
+ const o = new g(3, 0.2, 1), n = new w({
1971
2194
  color: 9127187,
1972
2195
  // Wooden color or change to metallic tone
1973
2196
  roughness: 0.7,
1974
2197
  metalness: 0.3
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({
2198
+ }), a = new h(o, n);
2199
+ a.position.y = 0.5;
2200
+ const s = new Q(0.1, 0.1, 1, 16), r = new w({
1978
2201
  color: 11184810,
1979
2202
  transparent: !0,
1980
2203
  opacity: 0.4,
1981
2204
  roughness: 0.1,
1982
2205
  metalness: 0.5,
1983
- side: q
2206
+ side: z
1984
2207
  });
1985
2208
  for (let c = 0; c < e; c++) {
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({
2209
+ const i = new h(s, r), m = (c - (e - 1) / 2) * 0.8;
2210
+ i.position.set(m, 1, 0);
2211
+ const u = new Q(0.099, 0.099, 0.5, 16, !1), f = t[c % t.length], d = new w({
1989
2212
  color: f,
1990
2213
  emissive: f,
1991
2214
  emissiveIntensity: 0.5,
1992
2215
  transparent: !0,
1993
2216
  opacity: 0.6
1994
- }), d = new h(u, p);
1995
- d.position.set(0, -0.25, 0), a.add(d), i.add(a);
2217
+ }), p = new h(u, d);
2218
+ p.position.set(0, -0.25, 0), i.add(p), a.add(i);
1996
2219
  }
1997
- this.add(i);
2220
+ this.add(a);
1998
2221
  }
1999
2222
  }
2000
- class Ft extends h {
2223
+ class Kt extends h {
2001
2224
  constructor() {
2002
2225
  super();
2003
- const e = new Ne(), t = new K({
2226
+ const e = new Ve(), t = new D({
2004
2227
  color: 5597999,
2005
2228
  roughness: 0.1,
2006
2229
  transmission: 0.9,
@@ -2013,27 +2236,27 @@ class Ft extends h {
2013
2236
  this.geometry = e, this.material = t;
2014
2237
  }
2015
2238
  }
2016
- class Fe extends _ {
2239
+ class He extends q {
2017
2240
  constructor(e = 5, t = 0.5, o = 1) {
2018
2241
  super();
2019
- const r = Math.PI * 2 / e, i = r / 2, s = r / 4;
2242
+ const n = Math.PI * 2 / e, a = n / 2, s = n / 4;
2020
2243
  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);
2244
+ for (let r = 1; r <= e; ++r) {
2245
+ let c = Math.cos(n * r - s * 3) * (t / Math.cos(s)), i = -Math.sin(n * r - s * 3) * (t / Math.cos(s)), m = Math.cos(n * r - a) * t, u = -Math.sin(n * r - a) * t;
2246
+ this.quadraticCurveTo(c, i, m, u), c = Math.cos(n * r - s) * (t / Math.cos(s)), i = -Math.sin(n * r - s) * (t / Math.cos(s)), m = Math.cos(n * r) * o, u = -Math.sin(n * r) * o, this.quadraticCurveTo(c, i, m, u);
2024
2247
  }
2025
2248
  this.closePath();
2026
2249
  }
2027
2250
  }
2028
- class Ut extends h {
2029
- constructor(e = 5, t = 0.5, o = 1, r = 0.25) {
2251
+ class Jt extends h {
2252
+ constructor(e = 5, t = 0.5, o = 1, n = 0.25) {
2030
2253
  super();
2031
- const i = new Fe(e, t, o), s = new L(i, {
2032
- depth: r,
2033
- bevelEnabled: r > 0,
2254
+ const a = new He(e, t, o), s = new O(a, {
2255
+ depth: n,
2256
+ bevelEnabled: n > 0,
2034
2257
  bevelThickness: 0,
2035
2258
  bevelSize: 0
2036
- }), n = new w({
2259
+ }), r = new w({
2037
2260
  color: 16776960,
2038
2261
  emissive: 16766720,
2039
2262
  emissiveIntensity: 0.25,
@@ -2041,44 +2264,44 @@ class Ut extends h {
2041
2264
  roughness: 0.3,
2042
2265
  flatShading: !0
2043
2266
  });
2044
- s.center(), this.geometry = s, this.material = n;
2267
+ s.center(), this.geometry = s, this.material = r;
2045
2268
  }
2046
2269
  }
2047
- class Ue extends _ {
2048
- constructor(e = 5, t = 0.5, o = 1, r = 5, i = 0.25) {
2270
+ class Re extends q {
2271
+ constructor(e = 5, t = 0.5, o = 1, n = 5, a = 0.25) {
2049
2272
  super();
2050
- const s = Math.PI * 2 / e, n = s / 4;
2273
+ const s = Math.PI * 2 / e, r = s / 4;
2051
2274
  this.moveTo(Math.cos(0) * o, -Math.sin(0) * o);
2052
2275
  for (let c = 1; c <= e; ++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);
2276
+ this.lineTo(Math.cos(s * c - r * 3) * t, -Math.sin(s * c - r * 3) * t), this.lineTo(Math.cos(s * c - r * 2) * t, -Math.sin(s * c - r * 2) * t), this.lineTo(Math.cos(s * c - r) * o, -Math.sin(s * c - r) * o), this.lineTo(Math.cos(s * c) * o, -Math.sin(s * c) * o);
2277
+ if (this.closePath(), a > 0 && n > 2) {
2278
+ const c = new we(), i = Math.PI * 2 / n;
2279
+ c.moveTo(Math.cos(0) * a, -Math.sin(0) * a);
2280
+ for (let m = 1; m < n; ++m)
2281
+ c.lineTo(Math.cos(i * m) * a, -Math.sin(i * m) * a);
2282
+ c.lineTo(Math.cos(0) * a, -Math.sin(0) * a), this.holes.push(c);
2060
2283
  }
2061
2284
  }
2062
2285
  }
2063
- class zt extends h {
2064
- constructor(e = 5, t = 0.5, o = 1, r = 5, i = 0.25, s = 0.25) {
2286
+ class $t extends h {
2287
+ constructor(e = 5, t = 0.5, o = 1, n = 5, a = 0.25, s = 0.25) {
2065
2288
  super();
2066
- const n = new Ue(e, t, o, r, i), c = new L(n, {
2289
+ const r = new Re(e, t, o, n, a), c = new O(r, {
2067
2290
  depth: s,
2068
2291
  bevelEnabled: s > 0,
2069
2292
  bevelThickness: 0,
2070
2293
  bevelSize: 0
2071
- }), a = new w({
2294
+ }), i = new w({
2072
2295
  color: 11184810,
2073
2296
  metalness: 0.8,
2074
2297
  roughness: 0.2,
2075
2298
  reflectivity: 0.5
2076
2299
  });
2077
- c.center(), this.geometry = c, this.material = a;
2300
+ c.center(), this.geometry = c, this.material = i;
2078
2301
  }
2079
2302
  }
2080
- class ze extends _ {
2081
- constructor(e = 1, t = 2.1, o = 1.4, r = 1.6) {
2303
+ class Qe extends q {
2304
+ constructor(e = 1, t = 2.1, o = 1.4, n = 1.6) {
2082
2305
  super(), this.moveTo(0, o * e / 3), this.bezierCurveTo(
2083
2306
  -t * 0.375 * e,
2084
2307
  o * e,
@@ -2087,7 +2310,7 @@ class ze extends _ {
2087
2310
  o * e / 3,
2088
2311
  // Control point 2 for the left side of the heart
2089
2312
  0,
2090
- -r * e
2313
+ -n * e
2091
2314
  // Bottom tip of the heart, controlled by `tipDepth`
2092
2315
  ), this.bezierCurveTo(
2093
2316
  t * e,
@@ -2102,12 +2325,12 @@ class ze extends _ {
2102
2325
  );
2103
2326
  }
2104
2327
  }
2105
- class _t extends h {
2106
- constructor(e = 1, t = 1, o = 1, r = 10, i = 0.25) {
2328
+ class Wt extends h {
2329
+ constructor(e = 1, t = 1, o = 1, n = 10, a = 0.25) {
2107
2330
  super();
2108
- const s = new ze(e, t, o, r), n = new L(s, {
2109
- depth: i,
2110
- bevelEnabled: i > 0,
2331
+ const s = new Qe(e, t, o, n), r = new O(s, {
2332
+ depth: a,
2333
+ bevelEnabled: a > 0,
2111
2334
  bevelThickness: 0,
2112
2335
  bevelSize: 0
2113
2336
  }), c = new w({
@@ -2118,28 +2341,28 @@ class _t extends h {
2118
2341
  roughness: 0.3,
2119
2342
  flatShading: !0
2120
2343
  });
2121
- n.center(), this.geometry = n, this.material = c;
2344
+ r.center(), this.geometry = r, this.material = c;
2122
2345
  }
2123
2346
  }
2124
- class _e extends _ {
2347
+ class je extends q {
2125
2348
  constructor(e = 5, t = 0.5, o = 1) {
2126
2349
  super();
2127
- const r = Math.PI * 2 / e, i = r / 2;
2350
+ const n = Math.PI * 2 / e, a = n / 2;
2128
2351
  this.moveTo(Math.cos(0) * o, Math.sin(0) * o);
2129
2352
  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);
2353
+ this.lineTo(Math.cos(n * s - a) * t, Math.sin(n * s - a) * t), this.lineTo(Math.cos(n * s) * o, Math.sin(n * s) * o);
2131
2354
  this.closePath();
2132
2355
  }
2133
2356
  }
2134
- class Lt extends h {
2135
- constructor(e = 5, t = 0.5, o = 1, r = 0.25) {
2357
+ class eo extends h {
2358
+ constructor(e = 5, t = 0.5, o = 1, n = 0.25) {
2136
2359
  super();
2137
- const i = new _e(e, t, o), s = new L(i, {
2138
- depth: r,
2139
- bevelEnabled: r > 0,
2360
+ const a = new je(e, t, o), s = new O(a, {
2361
+ depth: n,
2362
+ bevelEnabled: n > 0,
2140
2363
  bevelThickness: 0,
2141
2364
  bevelSize: 0
2142
- }), n = new w({
2365
+ }), r = new w({
2143
2366
  color: 16776960,
2144
2367
  emissive: 16766720,
2145
2368
  emissiveIntensity: 0.25,
@@ -2147,51 +2370,96 @@ class Lt extends h {
2147
2370
  roughness: 0.3,
2148
2371
  flatShading: !0
2149
2372
  });
2150
- s.center(), this.geometry = s, this.material = n;
2373
+ s.center(), this.geometry = s, this.material = r;
2151
2374
  }
2152
2375
  }
2153
- class qt extends h {
2376
+ class to extends h {
2377
+ constructor() {
2378
+ super(), this.geometry = new ze(), this.material = new w({ color: 16777215 });
2379
+ }
2380
+ }
2381
+ class oo extends h {
2154
2382
  constructor({
2155
2383
  trunkRadiusTop: e = 0.25,
2156
2384
  trunkRadiusBottom: t = 0.4,
2157
2385
  trunkHeight: o = 2.5,
2158
- trunkSegments: r = 14,
2159
- trunkColor: i = 9127187,
2386
+ trunkSegments: n = 14,
2387
+ trunkColor: a = 9127187,
2160
2388
  leafSize: s = 0.8,
2161
- leafCount: n = 6,
2389
+ leafCount: r = 6,
2162
2390
  leafDetail: c = 0,
2163
- leafSpreadRadius: a = 1.5,
2391
+ leafSpreadRadius: i = 1.5,
2164
2392
  leafColor: m = 2263842
2165
2393
  } = {}) {
2166
2394
  super();
2167
- const u = new Ce({
2395
+ const u = new De({
2168
2396
  trunkRadiusTop: e,
2169
2397
  trunkRadiusBottom: t,
2170
2398
  trunkHeight: o,
2171
- trunkSegments: r,
2172
- trunkColor: i,
2399
+ trunkSegments: n,
2400
+ trunkColor: a,
2173
2401
  leafSize: s,
2174
- leafCount: n,
2402
+ leafCount: r,
2175
2403
  leafDetail: c,
2176
- leafSpreadRadius: a,
2404
+ leafSpreadRadius: i,
2177
2405
  leafColor: m
2178
2406
  }), f = new w({
2179
- color: i,
2407
+ color: a,
2180
2408
  roughness: 0.9,
2181
2409
  metalness: 0,
2182
2410
  flatShading: !0
2183
- }), p = new w({
2411
+ }), d = new w({
2184
2412
  color: m,
2185
2413
  roughness: 0.8,
2186
2414
  metalness: 0,
2187
2415
  flatShading: !0
2188
2416
  });
2189
- this.geometry = u, this.material = [f, p];
2417
+ this.geometry = u, this.material = [f, d];
2418
+ }
2419
+ }
2420
+ class so extends h {
2421
+ constructor({
2422
+ radius: e = 3,
2423
+ //
2424
+ height: t = 0.6,
2425
+ widthSegments: o = 64,
2426
+ heightSegments: n = 16,
2427
+ phiStart: a = 0,
2428
+ phiLength: s = Math.PI * 2
2429
+ } = {}) {
2430
+ super(), this.geometry = new Xe({
2431
+ radius: e,
2432
+ height: t,
2433
+ widthSegments: o,
2434
+ heightSegments: n,
2435
+ phiStart: a,
2436
+ phiLength: s
2437
+ }), this.material = new w({ color: 65280, flatShading: !0 });
2190
2438
  }
2191
2439
  }
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 = `
2440
+ class no extends h {
2441
+ constructor({
2442
+ radius: e = ae(5, Math.PI / 10),
2443
+ //
2444
+ widthSegments: t = 64,
2445
+ heightSegments: o = 32,
2446
+ phiStart: n = 0,
2447
+ phiLength: a = Math.PI * 2,
2448
+ thetaLength: s = Math.PI / 10
2449
+ } = {}) {
2450
+ super(), this.geometry = new Ze({
2451
+ radius: e,
2452
+ widthSegments: t,
2453
+ heightSegments: o,
2454
+ phiStart: n,
2455
+ phiLength: a,
2456
+ thetaLength: s
2457
+ }), this.material = new w({ color: 65280, flatShading: !0 });
2458
+ }
2459
+ }
2460
+ function ro(l, { time: e = 0, waveFrequency: t = 0.2, waveAmplitude: o = 0.5 } = {}) {
2461
+ l.onBeforeCompile = (n) => {
2462
+ n.uniforms.time = { value: e }, n.uniforms.waveFrequency = { value: t }, n.uniforms.waveAmplitude = { value: o }, n.vertexShader = `
2195
2463
  uniform float time;
2196
2464
  uniform float waveFrequency;
2197
2465
  uniform float waveAmplitude;
@@ -2205,20 +2473,20 @@ function Ot(l, { time: e = 0, waveFrequency: t = 0.2, waveAmplitude: o = 0.5 } =
2205
2473
 
2206
2474
  return displaced;
2207
2475
  }
2208
- ` + r.vertexShader, r.vertexShader = r.vertexShader.replace(
2476
+ ` + n.vertexShader, n.vertexShader = n.vertexShader.replace(
2209
2477
  "#include <begin_vertex>",
2210
2478
  `
2211
2479
  vec3 transformed = waterDisplacement(position, normal);
2212
2480
  `
2213
- ), l.userData.shader = r;
2481
+ ), l.userData.shader = n;
2214
2482
  };
2215
2483
  }
2216
- function Vt(l, e) {
2484
+ function ao(l, e) {
2217
2485
  l.userData.shader && (l.userData.shader.uniforms.time.value += e);
2218
2486
  }
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 = `
2487
+ function co(l, { time: e = 0, intensity: t = 1, direction: o = F.XYZ, scale: n = 10 } = {}) {
2488
+ l.onBeforeCompile = (a) => {
2489
+ a.uniforms.time = { value: e }, a.uniforms.direction = { value: o }, a.uniforms.intensity = { value: t }, a.uniforms.scale = { value: n }, a.vertexShader = `
2222
2490
  uniform float time;
2223
2491
  uniform vec3 direction;
2224
2492
  uniform float intensity;
@@ -2249,7 +2517,7 @@ function Xt(l, { time: e = 0, intensity: t = 1, direction: o = C.XYZ, scale: r =
2249
2517
 
2250
2518
  return o4.y * d.y + o4.x * (1.0 - d.y);
2251
2519
  }
2252
- ` + i.vertexShader, i.vertexShader = i.vertexShader.replace(
2520
+ ` + a.vertexShader, a.vertexShader = a.vertexShader.replace(
2253
2521
  "#include <begin_vertex>",
2254
2522
  `
2255
2523
  vec3 transformed = vec3(position);
@@ -2257,10 +2525,10 @@ function Xt(l, { time: e = 0, intensity: t = 1, direction: o = C.XYZ, scale: r =
2257
2525
  transformed += normalize(direction) * n * intensity;
2258
2526
  vec3 transformedNormal = normal;
2259
2527
  `
2260
- ), l.userData.shader = i;
2528
+ ), l.userData.shader = a;
2261
2529
  };
2262
2530
  }
2263
- function Yt(l, e) {
2531
+ function io(l, e) {
2264
2532
  l.userData.shader && (l.userData.shader.uniforms.time.value += e);
2265
2533
  }
2266
2534
  const te = {
@@ -2281,7 +2549,7 @@ const te = {
2281
2549
  gl_FragColor = vec4(mix(bottomColor, topColor, y), 1.0);
2282
2550
  }
2283
2551
  `
2284
- }, Le = {
2552
+ }, Ke = {
2285
2553
  uniforms: {
2286
2554
  tDiffuse: { value: null },
2287
2555
  opacity: { value: 1 }
@@ -2302,7 +2570,7 @@ const te = {
2302
2570
  gl_FragColor = opacity * texel;
2303
2571
  }
2304
2572
  `
2305
- }, H = {
2573
+ }, R = {
2306
2574
  uniforms: {
2307
2575
  topColor: { value: new $(51) },
2308
2576
  bottomColor: { value: new $(17) },
@@ -2329,151 +2597,180 @@ const te = {
2329
2597
  }
2330
2598
  `
2331
2599
  };
2332
- class Zt extends h {
2600
+ class lo extends h {
2333
2601
  constructor(e = 1e3) {
2334
- super(), this.geometry = new g(e, e, e), this.material = new j({
2602
+ super(), this.geometry = new g(e, e, e), this.material = new K({
2335
2603
  vertexShader: te.vertexShader,
2336
2604
  fragmentShader: te.fragmentShader,
2337
2605
  side: ne
2338
2606
  });
2339
2607
  }
2340
2608
  }
2341
- class Dt extends h {
2609
+ class mo extends h {
2342
2610
  constructor(e = 1e3) {
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,
2611
+ super(), this.geometry = new B(e, 32, 15), this.material = new K({
2612
+ vertexShader: R.vertexShader,
2613
+ fragmentShader: R.fragmentShader,
2614
+ uniforms: R.uniforms,
2347
2615
  side: ne
2348
2616
  });
2349
2617
  }
2350
2618
  }
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) {
2619
+ class uo extends h {
2620
+ constructor(e = Math.PI * 0.49, t = 2 * Math.PI * 0.25, o = 10, n = 2, a = 5e-3, s = 0.8) {
2353
2621
  super();
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);
2622
+ const r = new be();
2623
+ r.scale.setScalar(45e4), this.add(r);
2624
+ const c = r.material.uniforms;
2625
+ c.turbidity.value = o, c.rayleigh.value = n, c.mieCoefficient.value = a, c.mieDirectionalG.value = s, this.skyUniforms = c, this.sunPosition(e, t);
2358
2626
  }
2359
2627
  sunPosition(e, t) {
2360
- const o = new M(), r = this.skyUniforms;
2361
- o.setFromSphericalCoords(1, e, t), r.sunPosition.value.copy(o);
2628
+ const o = new M(), n = this.skyUniforms;
2629
+ o.setFromSphericalCoords(1, e, t), n.sunPosition.value.copy(o);
2362
2630
  }
2363
2631
  }
2364
- const Rt = (l) => {
2632
+ const fo = (l) => {
2365
2633
  const e = new Uint8Array(4 * l * l);
2366
2634
  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;
2635
+ const n = o * 4, a = (o % l ^ Math.floor(o / l)) & 1 ? 255 : 0;
2636
+ e[n] = a, e[n + 1] = a, e[n + 2] = a, e[n + 3] = 255;
2369
2637
  }
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;
2638
+ const t = new ye(e, l, l, xe, Me);
2639
+ return t.wrapS = W, t.wrapT = W, t.minFilter = ve, t.needsUpdate = !0, t;
2372
2640
  };
2373
- class Qt {
2641
+ function ho(l) {
2642
+ const t = new ge().setFromObject(l).getCenter(new M());
2643
+ l.translateX(-t.x), l.translateY(-t.y), l.translateZ(-t.z), l.updateMatrixWorld(!0);
2644
+ }
2645
+ function po(l) {
2646
+ l.geometry.computeBoundingBox();
2647
+ const t = l.geometry.boundingBox.getCenter(new M());
2648
+ l.geometry.translate(-t.x, -t.y, -t.z);
2649
+ }
2650
+ class wo {
2374
2651
  static dispose(e) {
2375
2652
  e == null || e.traverse((t) => {
2376
2653
  t.geometry && t.geometry.dispose(), t.material && (Array.isArray(t.material) ? t.material.forEach((o) => o.dispose()) : t.material.dispose());
2377
2654
  });
2378
2655
  }
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);
2656
+ static fadeBetween(e, t, o, n, a = 1) {
2657
+ const s = new Ge(e), r = new ee(o, t);
2658
+ s.addPass(r);
2659
+ const c = new Ie(Ke);
2383
2660
  c.uniforms.opacity.value = 1, s.addPass(c);
2384
- let a = null;
2661
+ let i = null;
2385
2662
  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));
2663
+ i || (i = f);
2664
+ const p = (f - i) / 1e3 / a;
2665
+ c.uniforms.opacity.value = Math.max(1 - p, 0), p < 1 ? (s.render(), requestAnimationFrame(m)) : (s.passes[0] = new ee(n, t), i = null, requestAnimationFrame(u));
2389
2666
  }
2390
2667
  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));
2668
+ i || (i = f);
2669
+ const p = (f - i) / 1e3 / a;
2670
+ c.uniforms.opacity.value = Math.min(p, 1), p < 1 && (s.render(), requestAnimationFrame(u));
2394
2671
  }
2395
2672
  requestAnimationFrame(m);
2396
2673
  }
2397
2674
  }
2398
2675
  export {
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,
2676
+ zt as Beaker,
2677
+ _e as BeakerGeometry,
2678
+ ut as BifurcatedStaircaseGeometry,
2679
+ to as Bone,
2680
+ ze as BoneGeometry,
2681
+ vt as Book,
2682
+ Pe as BookGeometry,
2683
+ Bt as Bookshelf,
2684
+ Ne as BookshelfGeometry,
2685
+ _t as Bottle,
2686
+ mt as Bubbling,
2687
+ Lt as BunsenBurner,
2688
+ Jt as Burst,
2689
+ He as BurstShape,
2690
+ Et as Candle,
2691
+ gt as CrossHeadstone,
2692
+ Ae as CrossHeadstoneGeometry,
2693
+ lo as DaySkybox,
2694
+ Tt as Desk,
2695
+ ft as DioramaGeometry,
2696
+ F as Direction,
2697
+ lt as Easing,
2698
+ qt as ElectricPanel,
2699
+ Ot as ErlenmeyerFlask,
2700
+ Le as ErlenmeyerFlaskGeometry,
2701
+ V as Falloff,
2702
+ Pt as FenceColumn,
2703
+ Ee as FenceColumnGeometry,
2704
+ Vt as Flask,
2705
+ $t as Gear,
2706
+ Re as GearShape,
2707
+ Wt as Heart,
2708
+ Qe as HeartShape,
2709
+ so as Hill,
2710
+ Xe as HillGeometry,
2711
+ ht as LShapedStaircaseGeometry,
2712
+ Ct as Lantern,
2713
+ Xt as LeverPanel,
2714
+ St as Mausoleum,
2715
+ Yt as Microscope,
2716
+ Mt as Moon,
2717
+ Zt as MortarAndPestle,
2718
+ qe as MortarGeometry,
2719
+ Nt as MossyRocks,
2720
+ no as Mound,
2721
+ Ze as MoundGeometry,
2722
+ mo as NightSkybox,
2723
+ bt as ObeliskHeadstone,
2724
+ ke as ObeliskHeadstoneGeometry,
2725
+ Ft as Rock,
2726
+ Ue as RockGeometry,
2727
+ Ut as Rocks,
2728
+ Gt as RoundedHeadstone,
2729
+ Be as RoundedHeadstoneGeometry,
2730
+ wo as SceneUtils,
2731
+ wt as SimpleLeafGeometry,
2732
+ pt as SpiralStaircaseGeometry,
2733
+ Dt as SpiralTube,
2734
+ It as SquareHeadstone,
2735
+ Te as SquareHeadstoneGeometry,
2736
+ dt as StaircaseGeometry,
2737
+ Ht as Stand,
2738
+ Oe as StandGeometry,
2739
+ eo as Star,
2740
+ je as StarShape,
2741
+ Rt as TeslaCoil,
2742
+ Qt as TestTube,
2743
+ Q as TestTubeGeometry,
2744
+ jt as TestTubeRack,
2745
+ oo as Tree,
2746
+ De as TreeGeometry,
2747
+ uo as TwilightSkybox,
2748
+ Kt as WineBottle,
2749
+ Ve as WineBottleGeometry,
2750
+ At as WroughtIronBar,
2751
+ re as WroughtIronBarGeometry,
2752
+ kt as WroughtIronFence,
2753
+ Ce as WroughtIronFenceGeometry,
2754
+ co as addNoiseDisplacement,
2755
+ ro as addWaterDisplacement,
2756
+ Ye as calculateSphereCapHeight,
2757
+ xt as calculateSphereCapWidth,
2758
+ ho as centerMesh,
2759
+ po as centerMeshGeometry,
2760
+ fo as checkerboardTexture,
2466
2761
  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
2762
+ st as displacementBrush,
2763
+ Ke as fadeShader,
2764
+ nt as flattenBrush,
2765
+ R as nightSkyShader,
2766
+ rt as noiseBrush,
2767
+ yt as radiusForSphereCapHeight,
2768
+ ae as radiusForSphereCapWidth,
2769
+ Fe as randomTransformVertices,
2770
+ at as smoothBrush,
2771
+ ct as spikeBrush,
2772
+ it as twistBrush,
2773
+ io as updateNoiseDisplacementTime,
2774
+ ao as updateWaterDisplacementTime
2478
2775
  };
2479
2776
  //# sourceMappingURL=index.es.js.map