three-low-poly 0.9.10 → 0.9.11

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 de, Group as P, SphereGeometry as k, MeshStandardMaterial as w, Mesh as h, BufferGeometry as v, BufferAttribute as Y, BoxGeometry as g, InstancedMesh as pe, Matrix4 as W, Float32BufferAttribute as U, ConeGeometry as L, CylinderGeometry as S, Vector2 as b, LatheGeometry as q, CircleGeometry as we, TorusGeometry as se, DodecahedronGeometry as j, ShaderMaterial as K, Shape as O, ExtrudeGeometry as V, MeshBasicMaterial as ye, PointLight as re, MeshPhysicalMaterial as R, DoubleSide as _, CatmullRomCurve3 as xe, TubeGeometry as Me, LineBasicMaterial as ve, Line as ge, Path as be, Color as ee, BackSide as ae, DataTexture as Se, RGBAFormat as Ge, UnsignedByteType as Ie, RepeatWrapping as te, NearestFilter as Pe, Box3 as J } from "three";
1
+ import { Vector3 as M, MathUtils as Q, Quaternion as pe, Group as P, SphereGeometry as T, MeshStandardMaterial as w, Mesh as f, BufferGeometry as v, BufferAttribute as Z, BoxGeometry as g, InstancedMesh as de, Matrix4 as W, Float32BufferAttribute as F, ConeGeometry as z, CylinderGeometry as S, Vector2 as b, LatheGeometry as q, CircleGeometry as we, TorusGeometry as se, DodecahedronGeometry as j, ShaderMaterial as K, Shape as L, ExtrudeGeometry as V, MeshBasicMaterial as ye, PointLight as ae, MeshPhysicalMaterial as Y, DoubleSide as O, CatmullRomCurve3 as xe, TubeGeometry as Me, LineBasicMaterial as ve, Line as ge, Path as be, Color as ee, BackSide as re, DataTexture as Se, RGBAFormat as Ie, UnsignedByteType as Ge, RepeatWrapping as te, NearestFilter as Pe, Box3 as J } from "three";
2
2
  import { mergeGeometries as A, mergeVertices as Ae } from "three/addons/utils/BufferGeometryUtils.js";
3
- import { Sky as Be } from "three/addons/objects/Sky.js";
4
- import { EffectComposer as ke } from "three/addons/postprocessing/EffectComposer.js";
3
+ import { Sky as Ee } from "three/addons/objects/Sky.js";
4
+ import { EffectComposer as Te } from "three/addons/postprocessing/EffectComposer.js";
5
5
  import { RenderPass as oe } from "three/addons/postprocessing/RenderPass.js";
6
- import { ShaderPass as Te } from "three/addons/postprocessing/ShaderPass.js";
7
- const z = {
6
+ import { ShaderPass as Be } from "three/addons/postprocessing/ShaderPass.js";
7
+ const U = {
8
8
  UP: new M(0, 1, 0),
9
9
  DOWN: new M(0, -1, 0),
10
10
  LEFT: new M(-1, 0, 0),
@@ -19,119 +19,134 @@ const z = {
19
19
  YZ: new M(0, 1, 1).normalize(),
20
20
  XYZ: new M(1, 1, 1).normalize()
21
21
  }, X = {
22
- LINEAR: (r, e) => 1 - r / e,
23
- QUADRATIC: (r, e) => Math.pow(1 - r / e, 2),
24
- SQUARE_ROOT: (r, e) => Math.pow(1 - r / e, 0.5),
25
- LOGARITHMIC: (r, e) => Math.log(1 + (e - r)) / Math.log(1 + e),
26
- SINE: (r, e) => Math.cos(r / e * Math.PI / 2),
27
- EXPONENTIAL: (r, e) => Math.exp(-r / e),
28
- CUBIC: (r, e) => Math.pow(1 - r / e, 3),
29
- GAUSSIAN: (r, e) => Math.exp(-Math.pow(r, 2) / (2 * Math.pow(e / 3, 2))),
30
- INVERSE: (r, e) => e / (e + r),
31
- SMOOTHSTEP: (r, e) => {
32
- const t = Math.max(0, Math.min(1, 1 - r / e));
22
+ LINEAR: (o, e) => 1 - o / e,
23
+ QUADRATIC: (o, e) => Math.pow(1 - o / e, 2),
24
+ SQUARE_ROOT: (o, e) => Math.pow(1 - o / e, 0.5),
25
+ LOGARITHMIC: (o, e) => Math.log(1 + (e - o)) / Math.log(1 + e),
26
+ SINE: (o, e) => Math.cos(o / e * Math.PI / 2),
27
+ EXPONENTIAL: (o, e) => Math.exp(-o / e),
28
+ CUBIC: (o, e) => Math.pow(1 - o / e, 3),
29
+ GAUSSIAN: (o, e) => Math.exp(-Math.pow(o, 2) / (2 * Math.pow(e / 3, 2))),
30
+ INVERSE: (o, e) => e / (e + o),
31
+ SMOOTHSTEP: (o, e) => {
32
+ const t = Math.max(0, Math.min(1, 1 - o / e));
33
33
  return t * t * (3 - 2 * t);
34
34
  }
35
- }, mt = (r, e, t, o, s = z.UP, c = X.LINEAR) => {
36
- const n = r.attributes.position;
37
- for (let a = 0; a < n.count; a++) {
35
+ }, Lt = (o, e, t, n, a = U.UP, c = X.LINEAR) => {
36
+ const s = o.attributes.position;
37
+ for (let r = 0; r < s.count; r++) {
38
38
  const i = new M();
39
- i.fromBufferAttribute(n, a);
39
+ i.fromBufferAttribute(s, r);
40
40
  const l = i.distanceTo(e);
41
41
  if (l < t) {
42
- const u = c(l, t) * o;
43
- i.add(s.clone().multiplyScalar(u)), n.setXYZ(a, i.x, i.y, i.z);
42
+ const m = c(l, t) * n;
43
+ i.add(a.clone().multiplyScalar(m)), s.setXYZ(r, i.x, i.y, i.z);
44
44
  }
45
45
  }
46
- n.needsUpdate = !0;
47
- }, ut = (r, e, t, o, s, c = z.UP, n = X.LINEAR) => {
48
- const a = r.attributes.position;
49
- for (let i = 0; i < a.count; i++) {
46
+ s.needsUpdate = !0;
47
+ }, Vt = (o, e, t, n, a, c = U.UP, s = X.LINEAR) => {
48
+ const r = o.attributes.position;
49
+ for (let i = 0; i < r.count; i++) {
50
50
  const l = new M();
51
- l.fromBufferAttribute(a, i);
52
- const m = l.distanceTo(e);
53
- if (m < t) {
54
- const f = n(m, t) * s, p = l.dot(c.normalize()), d = o - p;
55
- l.add(c.clone().multiplyScalar(d * f)), a.setXYZ(i, l.x, l.y, l.z);
51
+ l.fromBufferAttribute(r, i);
52
+ const u = l.distanceTo(e);
53
+ if (u < t) {
54
+ const h = s(u, t) * a, d = l.dot(c.normalize()), p = n - d;
55
+ l.add(c.clone().multiplyScalar(p * h)), r.setXYZ(i, l.x, l.y, l.z);
56
56
  }
57
57
  }
58
- a.needsUpdate = !0;
59
- }, ft = (r, e, t, o, s = z.UP, c = X.LINEAR) => {
60
- const n = r.attributes.position;
61
- for (let a = 0; a < n.count; a++) {
58
+ r.needsUpdate = !0;
59
+ }, Xt = (o, e, t, n, a = U.UP, c = X.LINEAR) => {
60
+ const s = o.attributes.position;
61
+ for (let r = 0; r < s.count; r++) {
62
62
  const i = new M();
63
- i.fromBufferAttribute(n, a);
63
+ i.fromBufferAttribute(s, r);
64
64
  const l = i.distanceTo(e);
65
65
  if (l < t) {
66
- const m = c(l, t), u = o * m, f = s.clone().normalize();
67
- i.x += D.randFloatSpread(u) * f.x, i.y += D.randFloatSpread(u) * f.y, i.z += D.randFloatSpread(u) * f.z, n.setXYZ(a, i.x, i.y, i.z);
66
+ const u = c(l, t), m = n * u, h = a.clone().normalize();
67
+ i.x += Q.randFloatSpread(m) * h.x, i.y += Q.randFloatSpread(m) * h.y, i.z += Q.randFloatSpread(m) * h.z, s.setXYZ(r, i.x, i.y, i.z);
68
68
  }
69
69
  }
70
- n.needsUpdate = !0;
71
- }, ht = (r, e, t, o) => {
72
- const s = r.attributes.position, c = new M();
73
- for (let n = 0; n < s.count; n++) {
74
- const a = new M();
75
- if (a.fromBufferAttribute(s, n), a.distanceTo(e) < t) {
76
- let l = new M(), m = 0;
77
- for (let u = 0; u < s.count; u++)
78
- c.fromBufferAttribute(s, u), c.distanceTo(a) < t && (l.add(c), m++);
79
- m > 0 && (l.divideScalar(m), a.lerp(l, o), s.setXYZ(n, a.x, a.y, a.z));
70
+ s.needsUpdate = !0;
71
+ }, Rt = (o, e, t, n) => {
72
+ const a = o.attributes.position, c = new M();
73
+ for (let s = 0; s < a.count; s++) {
74
+ const r = new M();
75
+ if (r.fromBufferAttribute(a, s), r.distanceTo(e) < t) {
76
+ let l = new M(), u = 0;
77
+ for (let m = 0; m < a.count; m++)
78
+ c.fromBufferAttribute(a, m), c.distanceTo(r) < t && (l.add(c), u++);
79
+ u > 0 && (l.divideScalar(u), r.lerp(l, n), a.setXYZ(s, r.x, r.y, r.z));
80
80
  }
81
81
  }
82
- s.needsUpdate = !0;
83
- }, dt = (r, e, t, o, s = !1, c = X.LINEAR) => {
84
- const n = r.attributes.position;
85
- for (let a = 0; a < n.count; a++) {
82
+ a.needsUpdate = !0;
83
+ }, Zt = (o, e, t, n, a = !1, c = X.LINEAR) => {
84
+ const s = o.attributes.position;
85
+ for (let r = 0; r < s.count; r++) {
86
86
  const i = new M();
87
- i.fromBufferAttribute(n, a);
87
+ i.fromBufferAttribute(s, r);
88
88
  const l = i.distanceTo(e);
89
89
  if (l < t) {
90
- const u = c(l, t) * o * (s ? -1 : 1), f = i.clone().sub(e).normalize();
91
- i.add(f.multiplyScalar(u)), n.setXYZ(a, i.x, i.y, i.z);
90
+ const m = c(l, t) * n * (a ? -1 : 1), h = i.clone().sub(e).normalize();
91
+ i.add(h.multiplyScalar(m)), s.setXYZ(r, i.x, i.y, i.z);
92
92
  }
93
93
  }
94
- n.needsUpdate = !0;
95
- }, pt = (r, e, t, o, s = z.UP, c = X.LINEAR) => {
96
- const n = r.attributes.position, a = new de();
97
- for (let i = 0; i < n.count; i++) {
94
+ s.needsUpdate = !0;
95
+ }, Yt = (o, e, t, n, a = U.UP, c = X.LINEAR) => {
96
+ const s = o.attributes.position, r = new pe();
97
+ for (let i = 0; i < s.count; i++) {
98
98
  const l = new M();
99
- l.fromBufferAttribute(n, i);
100
- const m = l.distanceTo(e);
101
- if (m < t) {
102
- const f = c(m, t) * o;
103
- a.setFromAxisAngle(s, f), l.sub(e).applyQuaternion(a).add(e), n.setXYZ(i, l.x, l.y, l.z);
99
+ l.fromBufferAttribute(s, i);
100
+ const u = l.distanceTo(e);
101
+ if (u < t) {
102
+ const h = c(u, t) * n;
103
+ r.setFromAxisAngle(a, h), l.sub(e).applyQuaternion(r).add(e), s.setXYZ(i, l.x, l.y, l.z);
104
104
  }
105
105
  }
106
- n.needsUpdate = !0;
107
- }, wt = {
108
- LINEAR: (r) => r,
109
- QUADRATIC_EASE_IN: (r) => r * r,
110
- QUADRATIC_EASE_OUT: (r) => 1 - Math.pow(1 - r, 2),
111
- SQUARE_ROOT_EASING: (r) => Math.sqrt(r),
112
- LOGARITHMIC_EASING: (r) => Math.log(1 + r) / Math.log(2),
113
- SINE_EASE_IN: (r) => 1 - Math.cos(r * Math.PI / 2),
114
- SINE_EASE_OUT: (r) => Math.sin(r * Math.PI / 2),
115
- EXPONENTIAL_EASE_IN: (r) => Math.pow(2, 10 * (r - 1)),
116
- EXPONENTIAL_EASE_OUT: (r) => 1 - Math.pow(2, -10 * r),
117
- CUBIC_EASE_IN: (r) => r * r * r,
118
- CUBIC_EASE_OUT: (r) => 1 - Math.pow(1 - r, 3),
119
- GAUSSIAN_EASING: (r) => Math.exp(-Math.pow(r - 0.5, 2) / (2 * 0.1)),
120
- INVERSE_EASING: (r) => 1 / (1 + r),
121
- SMOOTHSTEP_EASING: (r) => r * r * (3 - 2 * r)
106
+ s.needsUpdate = !0;
107
+ }, Ce = (o) => 1 - Math.cos(o * Math.PI / 2), ke = (o) => Math.sin(o * Math.PI / 2), Ne = (o) => -0.5 * (Math.cos(Math.PI * o) - 1), _e = (o) => o * o, Ue = (o) => 1 - Math.pow(1 - o, 2), Fe = (o) => o < 0.5 ? 2 * o * o : 1 - Math.pow(-2 * o + 2, 2) / 2, Oe = (o) => o * o * o, ze = (o) => 1 - Math.pow(1 - o, 3), qe = (o) => o < 0.5 ? 4 * o * o * o : 1 - Math.pow(-2 * o + 2, 3) / 2, Le = (o) => o * o * o * o, Ve = (o) => 1 - Math.pow(1 - o, 4), Xe = (o) => o < 0.5 ? 8 * o * o * o * o : 1 - Math.pow(-2 * o + 2, 4) / 2, Re = (o) => o * o * o * o * o, Ze = (o) => 1 - Math.pow(1 - o, 5), Ye = (o) => o < 0.5 ? 16 * o * o * o * o * o : 1 - Math.pow(-2 * o + 2, 5) / 2, Qe = (o) => o === 0 ? 0 : Math.pow(2, 10 * o - 10), De = (o) => o === 1 ? 1 : 1 - Math.pow(2, -10 * o), He = (o) => o === 0 ? 0 : o === 1 ? 1 : o < 0.5 ? Math.pow(2, 20 * o - 10) / 2 : (2 - Math.pow(2, -20 * o + 10)) / 2, je = (o) => 1 - Math.sqrt(1 - Math.pow(o, 2)), Ke = (o) => Math.sqrt(1 - Math.pow(o - 1, 2)), Je = (o) => o < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * o, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * o + 2, 2)) + 1) / 2, $e = (o) => o, We = (o) => o * o * (3 - 2 * o), et = (o) => 1 - Math.pow(1 - o, 0.3), tt = (o) => Math.pow(o, 0.3), ot = (o) => Math.log(Math.max(0.01, o)) / Math.log(2), nt = (o) => Math.sqrt(o), st = (o) => 1 - o, at = (o) => Math.exp(-Math.pow(o - 0.5, 2) / (2 * 0.5)), Qt = {
108
+ SINE_EASE_IN: Ce,
109
+ SINE_EASE_OUT: ke,
110
+ SINE_EASE_IN_OUT: Ne,
111
+ QUADRATIC_EASE_IN: _e,
112
+ QUADRATIC_EASE_OUT: Ue,
113
+ QUADRATIC_EASE_IN_OUT: Fe,
114
+ CUBIC_EASE_IN: Oe,
115
+ CUBIC_EASE_OUT: ze,
116
+ CUBIC_EASE_IN_OUT: qe,
117
+ QUARTIC_EASE_IN: Le,
118
+ QUARTIC_EASE_OUT: Ve,
119
+ QUARTIC_EASE_IN_OUT: Xe,
120
+ QUINTIC_EASE_IN: Re,
121
+ QUINTIC_EASE_OUT: Ze,
122
+ QUINTIC_EASE_IN_OUT: Ye,
123
+ EXPONENTIAL_EASE_IN: Qe,
124
+ EXPONENTIAL_EASE_OUT: De,
125
+ EXPONENTIAL_EASE_IN_OUT: He,
126
+ CIRCULAR_EASE_IN: je,
127
+ CIRCULAR_EASE_OUT: Ke,
128
+ CIRCULAR_EASE_IN_OUT: Je,
129
+ LINEAR: $e,
130
+ SMOOTHSTEP: We,
131
+ CONCAVE: et,
132
+ CONVEX: tt,
133
+ LOGARITHMIC: ot,
134
+ SQUARE_ROOT: nt,
135
+ INVERSE: st,
136
+ GAUSSIAN: at
122
137
  };
123
- class yt extends P {
138
+ class Dt extends P {
124
139
  constructor() {
125
140
  super();
126
- const e = [], t = 20, o = new k(0.1, 6, 6), s = new w({
141
+ const e = [], t = 20, n = new T(0.1, 6, 6), a = new w({
127
142
  color: 16777215,
128
143
  transparent: !0,
129
144
  opacity: 0.6,
130
145
  roughness: 0.3,
131
146
  metalness: 0.3
132
147
  });
133
- for (let a = 0; a < t; a++) {
134
- const i = new h(o, s);
148
+ for (let r = 0; r < t; r++) {
149
+ const i = new f(n, a);
135
150
  i.position.set(
136
151
  (Math.random() - 0.5) * 1.5,
137
152
  // Random x position within flask
@@ -142,45 +157,45 @@ class yt extends P {
142
157
  ), e.push(i), this.add(i);
143
158
  }
144
159
  function c() {
145
- e.forEach((a) => {
146
- a.position.y += 0.02, a.position.y > 3 && (a.position.y = 0, a.position.x = (Math.random() - 0.5) * 1.5, a.position.z = (Math.random() - 0.5) * 1.5);
160
+ e.forEach((r) => {
161
+ 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
162
  });
148
163
  }
149
- function n() {
150
- requestAnimationFrame(n), c();
164
+ function s() {
165
+ requestAnimationFrame(s), c();
151
166
  }
152
- n();
167
+ s();
153
168
  }
154
169
  }
155
170
  class ce extends v {
156
- constructor(e = 1, t = 1.5, o = 0.5, s = 0.05, c = 0.05) {
171
+ constructor(e = 1, t = 1.5, n = 0.5, a = 0.05, c = 0.05) {
157
172
  super();
158
- const n = e, a = t, i = o, l = s, m = c, u = [
173
+ const s = e, r = t, i = n, l = a, u = c, m = [
159
174
  // Front cover
160
175
  0,
161
176
  0,
162
177
  0,
163
- n,
178
+ s,
164
179
  0,
165
180
  0,
166
- n,
167
- a,
181
+ s,
182
+ r,
168
183
  0,
169
184
  0,
170
- a,
185
+ r,
171
186
  0,
172
187
  // Back cover
173
- n,
188
+ s,
174
189
  0,
175
190
  -i,
176
191
  0,
177
192
  0,
178
193
  -i,
179
194
  0,
180
- a,
195
+ r,
181
196
  -i,
182
- n,
183
- a,
197
+ s,
198
+ r,
184
199
  -i,
185
200
  // Spine
186
201
  0,
@@ -190,36 +205,36 @@ class ce extends v {
190
205
  0,
191
206
  0,
192
207
  0,
193
- a,
208
+ r,
194
209
  0,
195
210
  0,
196
- a,
211
+ r,
197
212
  -i,
198
213
  // Inside front cover
199
- n,
214
+ s,
200
215
  0,
201
216
  -l,
202
217
  l,
203
218
  0,
204
219
  -l,
205
220
  l,
206
- a,
221
+ r,
207
222
  -l,
208
- n,
209
- a,
223
+ s,
224
+ r,
210
225
  -l,
211
226
  // Inside back cover
212
227
  l,
213
228
  0,
214
229
  -i + l,
215
- n,
230
+ s,
216
231
  0,
217
232
  -i + l,
218
- n,
219
- a,
233
+ s,
234
+ r,
220
235
  -i + l,
221
236
  l,
222
- a,
237
+ r,
223
238
  -i + l,
224
239
  // Inside spine
225
240
  l,
@@ -229,49 +244,49 @@ class ce extends v {
229
244
  0,
230
245
  -i + l,
231
246
  l,
232
- a,
247
+ r,
233
248
  -i + l,
234
249
  l,
235
- a,
250
+ r,
236
251
  -l,
237
252
  // Front cover top
238
253
  0,
239
- a,
254
+ r,
240
255
  0,
241
- n,
242
- a,
256
+ s,
257
+ r,
243
258
  0,
244
- n,
245
- a,
259
+ s,
260
+ r,
246
261
  -l,
247
262
  l,
248
- a,
263
+ r,
249
264
  -l,
250
265
  // Back cover top
251
266
  0,
252
- a,
267
+ r,
253
268
  -i,
254
269
  l,
255
- a,
270
+ r,
256
271
  -i + l,
257
- n,
258
- a,
272
+ s,
273
+ r,
259
274
  -i + l,
260
- n,
261
- a,
275
+ s,
276
+ r,
262
277
  -i,
263
278
  // Spine cover top
264
279
  0,
265
- a,
280
+ r,
266
281
  0,
267
282
  l,
268
- a,
283
+ r,
269
284
  -l,
270
285
  l,
271
- a,
286
+ r,
272
287
  -i + l,
273
288
  0,
274
- a,
289
+ r,
275
290
  -i,
276
291
  // Front cover bottom
277
292
  0,
@@ -280,20 +295,20 @@ class ce extends v {
280
295
  l,
281
296
  0,
282
297
  -l,
283
- n,
298
+ s,
284
299
  0,
285
300
  -l,
286
- n,
301
+ s,
287
302
  0,
288
303
  0,
289
304
  // Back cover bottom
290
305
  0,
291
306
  0,
292
307
  -i,
293
- n,
308
+ s,
294
309
  0,
295
310
  -i,
296
- n,
311
+ s,
297
312
  0,
298
313
  -i + l,
299
314
  l,
@@ -313,32 +328,32 @@ class ce extends v {
313
328
  0,
314
329
  -l,
315
330
  // Front cover edge
316
- n,
331
+ s,
317
332
  0,
318
333
  0,
319
- n,
334
+ s,
320
335
  0,
321
336
  -l,
322
- n,
323
- a,
337
+ s,
338
+ r,
324
339
  -l,
325
- n,
326
- a,
340
+ s,
341
+ r,
327
342
  0,
328
343
  // Back cover edge
329
- n,
344
+ s,
330
345
  0,
331
346
  -i,
332
- n,
333
- a,
347
+ s,
348
+ r,
334
349
  -i,
335
- n,
336
- a,
350
+ s,
351
+ r,
337
352
  -i + l,
338
- n,
353
+ s,
339
354
  0,
340
355
  -i + l
341
- ], f = [
356
+ ], h = [
342
357
  0,
343
358
  0,
344
359
  1,
@@ -521,68 +536,68 @@ class ce extends v {
521
536
  0,
522
537
  0
523
538
  // Back cover edge
524
- ], p = e / (e * 2 + o), d = (e + o) / (e * 2 + o), x = [
525
- d,
539
+ ], d = e / (e * 2 + n), p = (e + n) / (e * 2 + n), x = [
540
+ p,
526
541
  0,
527
542
  1,
528
543
  0,
529
544
  1,
530
545
  1,
531
- d,
546
+ p,
532
547
  1,
533
548
  // Front cover
534
549
  0,
535
550
  0,
536
- p,
551
+ d,
537
552
  0,
538
- p,
553
+ d,
539
554
  1,
540
555
  0,
541
556
  1,
542
557
  // Back cover
543
- p,
544
- 0,
545
558
  d,
546
559
  0,
547
- d,
548
- 1,
549
560
  p,
561
+ 0,
562
+ p,
563
+ 1,
564
+ d,
550
565
  1,
551
566
  // Spine
552
567
  1,
553
568
  0,
554
- d,
569
+ p,
555
570
  0,
556
- d,
571
+ p,
557
572
  1,
558
573
  1,
559
574
  1,
560
575
  // Inside front cover
561
- p,
576
+ d,
562
577
  0,
563
578
  0,
564
579
  0,
565
580
  0,
566
581
  1,
567
- p,
582
+ d,
568
583
  1,
569
584
  // Inside back cover
570
- d,
571
- 0,
572
585
  p,
573
586
  0,
574
- p,
575
- 1,
576
587
  d,
588
+ 0,
589
+ d,
590
+ 1,
591
+ p,
577
592
  1,
578
593
  // Inside spine
579
- d,
594
+ p,
580
595
  0,
581
596
  1,
582
597
  0,
583
598
  1,
584
599
  1,
585
- d,
600
+ p,
586
601
  1,
587
602
  // Front cover top
588
603
  0,
@@ -747,97 +762,97 @@ class ce extends v {
747
762
  54,
748
763
  55
749
764
  // Back cover edge
750
- ], G = new Float32Array(u), I = new Float32Array(f), T = new Float32Array(x), E = new Uint16Array(y), C = new v();
751
- C.setAttribute("position", new Y(G, 3)), C.setAttribute("normal", new Y(I, 3)), C.setAttribute("uv", new Y(T, 2)), C.setIndex(new Y(E, 1));
752
- const F = new g(e - l - m, a - m * 2, i - l * 2);
753
- F.translate((e - l - m) / 2 + l, a / 2, -i / 2), this.copy(A([C, F], !0));
765
+ ], I = new Float32Array(m), G = new Float32Array(h), B = new Float32Array(x), C = new Uint16Array(y), k = new v();
766
+ k.setAttribute("position", new Z(I, 3)), k.setAttribute("normal", new Z(G, 3)), k.setAttribute("uv", new Z(B, 2)), k.setIndex(new Z(C, 1));
767
+ const N = new g(e - l - u, r - u * 2, i - l * 2);
768
+ N.translate((e - l - u) / 2 + l, r / 2, -i / 2), this.copy(A([k, N], !0));
754
769
  }
755
770
  }
756
- function Ee(r = 0, e = 1) {
757
- return Math.random() * (e - r) + r;
771
+ function rt(o = 0, e = 1) {
772
+ return Math.random() * (e - o) + o;
758
773
  }
759
- function xt(r = 0, e = 1) {
760
- return Math.floor(Math.random() * (e - r + 1)) + r;
774
+ function Ht(o = 0, e = 1) {
775
+ return Math.floor(Math.random() * (e - o + 1)) + o;
761
776
  }
762
- function Ce(r = 0.5, e = 0, t = 1) {
763
- return e + (t - e) * Math.pow(Math.random(), r);
777
+ function ct(o = 0.5, e = 0, t = 1) {
778
+ return e + (t - e) * Math.pow(Math.random(), o);
764
779
  }
765
- function Fe(r = 0.5, e = 0, t = 1) {
766
- return e + (t - e) * Math.pow(1 - Math.random(), r);
780
+ function it(o = 0.5, e = 0, t = 1) {
781
+ return e + (t - e) * Math.pow(1 - Math.random(), o);
767
782
  }
768
783
  function ie({
769
- scaleXMin: r = 0.4,
784
+ scaleXMin: o = 0.4,
770
785
  scaleXMax: e = 0.7,
771
786
  scaleYMin: t = 0.3,
772
- scaleYMax: o = 0.95,
773
- scaleZMin: s = 0.1,
787
+ scaleYMax: n = 0.95,
788
+ scaleZMin: a = 0.1,
774
789
  scaleZMax: c = 0.5
775
790
  } = {}) {
776
791
  return new M(
777
- Ee(r, e),
778
- Ce(0.25, t, o),
779
- Fe(0.8, s, c)
792
+ rt(o, e),
793
+ ct(0.25, t, n),
794
+ it(0.8, a, c)
780
795
  );
781
796
  }
782
- function le({ coverMaterial: r, pagesMaterial: e, scales: t = [] } = {}) {
783
- const o = new ce(), s = new pe(o, [r, e], t.length), c = new W();
784
- let n = 0;
785
- for (let a = 0; a < t.length; a++) {
786
- const i = t[a], l = new W();
787
- l.makeScale(i.x, i.y, i.z), c.identity(), c.multiply(l), c.setPosition(0.01 + Math.random() * 0.1, 0, n + i.z * 0.5), s.setMatrixAt(a, c), n += i.z * 0.5;
797
+ function le({ coverMaterial: o, pagesMaterial: e, scales: t = [] } = {}) {
798
+ const n = new ce(), a = new de(n, [o, e], t.length), c = new W();
799
+ let s = 0;
800
+ for (let r = 0; r < t.length; r++) {
801
+ const i = t[r], l = new W();
802
+ l.makeScale(i.x, i.y, i.z), c.identity(), c.multiply(l), c.setPosition(0.01 + Math.random() * 0.1, 0, s + i.z * 0.5), a.setMatrixAt(r, c), s += i.z * 0.5;
788
803
  }
789
- return s;
804
+ return a;
790
805
  }
791
- function Mt({
792
- coverMaterial: r,
806
+ function jt({
807
+ coverMaterial: o,
793
808
  pagesMaterial: e,
794
809
  count: t = 10,
795
- scaleXMin: o = 0.4,
796
- scaleXMax: s = 0.7,
810
+ scaleXMin: n = 0.4,
811
+ scaleXMax: a = 0.7,
797
812
  scaleYMin: c = 0.3,
798
- scaleYMax: n = 0.95,
799
- scaleZMin: a = 0.1,
813
+ scaleYMax: s = 0.95,
814
+ scaleZMin: r = 0.1,
800
815
  scaleZMax: i = 0.5
801
816
  } = {}) {
802
817
  const l = Array.from(
803
818
  { length: t },
804
- () => ie({ scaleXMin: o, scaleXMax: s, scaleYMin: c, scaleYMax: n, scaleZMin: a, scaleZMax: i })
819
+ () => ie({ scaleXMin: n, scaleXMax: a, scaleYMin: c, scaleYMax: s, scaleZMin: r, scaleZMax: i })
805
820
  );
806
- return le({ coverMaterial: r, pagesMaterial: e, scales: l });
821
+ return le({ coverMaterial: o, pagesMaterial: e, scales: l });
807
822
  }
808
- function vt({
809
- coverMaterial: r,
823
+ function Kt({
824
+ coverMaterial: o,
810
825
  pagesMaterial: e,
811
826
  length: t = 10,
812
- scaleXMin: o = 0.4,
813
- scaleXMax: s = 0.7,
827
+ scaleXMin: n = 0.4,
828
+ scaleXMax: a = 0.7,
814
829
  scaleYMin: c = 0.3,
815
- scaleYMax: n = 0.95,
816
- scaleZMin: a = 0.1,
830
+ scaleYMax: s = 0.95,
831
+ scaleZMin: r = 0.1,
817
832
  scaleZMax: i = 0.5
818
833
  } = {}) {
819
834
  const l = [];
820
- let m = t;
821
- for (; m > 0; ) {
822
- const u = ie({ scaleXMin: o, scaleXMax: s, scaleYMin: c, scaleYMax: n, scaleZMin: a, scaleZMax: i });
823
- u.z = Math.min(u.z, m), l.push(u), m -= u.z;
835
+ let u = t;
836
+ for (; u > 0; ) {
837
+ const m = ie({ scaleXMin: n, scaleXMax: a, scaleYMin: c, scaleYMax: s, scaleZMin: r, scaleZMax: i });
838
+ m.z = Math.min(m.z, u), l.push(m), u -= m.z;
824
839
  }
825
- return le({ coverMaterial: r, pagesMaterial: e, scales: l });
840
+ return le({ coverMaterial: o, pagesMaterial: e, scales: l });
826
841
  }
827
- class gt extends v {
828
- constructor(e = 2, t = 0.3, o = 0.6, s = 5, c = 5, n = Math.PI / 4) {
842
+ class Jt extends v {
843
+ constructor(e = 2, t = 0.3, n = 0.6, a = 5, c = 5, s = Math.PI / 4) {
829
844
  super();
830
- const a = [], i = [];
831
- for (let p = 0; p < s; p++) {
832
- const d = p * t, x = d + t, y = p * o, G = y + o;
833
- a.push(
845
+ const r = [], i = [];
846
+ for (let d = 0; d < a; d++) {
847
+ const p = d * t, x = p + t, y = d * n, I = y + n;
848
+ r.push(
834
849
  // Vertical riser
835
850
  -e / 2,
836
- d,
851
+ p,
837
852
  y,
838
853
  // Bottom-left
839
854
  e / 2,
840
- d,
855
+ p,
841
856
  y,
842
857
  // Bottom-right
843
858
  e / 2,
@@ -859,178 +874,178 @@ class gt extends v {
859
874
  // Top-right
860
875
  e / 2,
861
876
  x,
862
- G,
877
+ I,
863
878
  // Back-right
864
879
  -e / 2,
865
880
  x,
866
- G
881
+ I
867
882
  // Back-left
868
883
  );
869
- const I = p * 8;
884
+ const G = d * 8;
870
885
  i.push(
871
- I,
872
- I + 1,
873
- I + 2,
874
- I,
875
- I + 2,
876
- I + 3
886
+ G,
887
+ G + 1,
888
+ G + 2,
889
+ G,
890
+ G + 2,
891
+ G + 3
877
892
  ), i.push(
878
- I + 4,
879
- I + 5,
880
- I + 6,
881
- I + 4,
882
- I + 6,
883
- I + 7
893
+ G + 4,
894
+ G + 5,
895
+ G + 6,
896
+ G + 4,
897
+ G + 6,
898
+ G + 7
884
899
  );
885
900
  }
886
- const l = s * t, m = s * o, u = e * 2;
887
- a.push(
901
+ const l = a * t, u = a * n, m = e * 2;
902
+ r.push(
888
903
  // Landing platform (4 vertices)
889
- -u / 2,
904
+ -m / 2,
890
905
  l,
891
- m,
906
+ u,
892
907
  // Bottom-left
893
- u / 2,
908
+ m / 2,
894
909
  l,
895
- m,
910
+ u,
896
911
  // Bottom-right
897
- u / 2,
912
+ m / 2,
898
913
  l,
899
- m + o,
914
+ u + n,
900
915
  // Top-right
901
- -u / 2,
916
+ -m / 2,
902
917
  l,
903
- m + o
918
+ u + n
904
919
  // Top-left
905
920
  );
906
- const f = s * 8;
921
+ const h = a * 8;
907
922
  i.push(
908
- f,
909
- f + 1,
910
- f + 2,
923
+ h,
924
+ h + 1,
925
+ h + 2,
911
926
  // First triangle for landing
912
- f,
913
- f + 2,
914
- f + 3
927
+ h,
928
+ h + 2,
929
+ h + 3
915
930
  // Second triangle for landing
916
931
  );
917
- for (let p = 0; p < 2; p++) {
918
- const d = p === 0 ? 1 : -1;
932
+ for (let d = 0; d < 2; d++) {
933
+ const p = d === 0 ? 1 : -1;
919
934
  for (let x = 0; x < c; x++) {
920
- const y = l + x * t, G = y + t, I = d * (u / 4), T = m + o, E = x * o * Math.cos(n), C = x * o * Math.sin(n), F = I + d * E - e / 2 * Math.cos(n), Z = I + d * E + e / 2 * Math.cos(n), N = T + C, fe = F + d * o * Math.cos(n), he = Z + d * o * Math.cos(n), $ = N + o * Math.sin(n);
921
- a.push(
935
+ const y = l + x * t, I = y + t, G = p * (m / 4), B = u + n, C = x * n * Math.cos(s), k = x * n * Math.sin(s), N = G + p * C - e / 2 * Math.cos(s), R = G + p * C + e / 2 * Math.cos(s), _ = B + k, he = N + p * n * Math.cos(s), fe = R + p * n * Math.cos(s), $ = _ + n * Math.sin(s);
936
+ r.push(
922
937
  // Vertical riser
923
- F,
924
- y,
925
938
  N,
939
+ y,
940
+ _,
926
941
  // Bottom-left
927
- Z,
942
+ R,
928
943
  y,
929
- N,
944
+ _,
930
945
  // Bottom-right
931
- Z,
932
- G,
933
- N,
946
+ R,
947
+ I,
948
+ _,
934
949
  // Top-right
935
- F,
936
- G,
937
950
  N,
951
+ I,
952
+ _,
938
953
  // Top-left
939
954
  // Horizontal tread
940
- F,
941
- G,
942
955
  N,
956
+ I,
957
+ _,
943
958
  // Top-left
944
- Z,
945
- G,
946
- N,
959
+ R,
960
+ I,
961
+ _,
947
962
  // Top-right
948
- he,
949
- G,
963
+ fe,
964
+ I,
950
965
  $,
951
966
  // Back-right
952
- fe,
953
- G,
967
+ he,
968
+ I,
954
969
  $
955
970
  // Back-left
956
971
  );
957
- const B = f + 4 + p * c * 8 + x * 8;
972
+ const E = h + 4 + d * c * 8 + x * 8;
958
973
  i.push(
959
- B,
960
- B + 1,
961
- B + 2,
962
- B,
963
- B + 2,
964
- B + 3
974
+ E,
975
+ E + 1,
976
+ E + 2,
977
+ E,
978
+ E + 2,
979
+ E + 3
965
980
  ), i.push(
966
- B + 4,
967
- B + 5,
968
- B + 6,
969
- B + 4,
970
- B + 6,
971
- B + 7
981
+ E + 4,
982
+ E + 5,
983
+ E + 6,
984
+ E + 4,
985
+ E + 6,
986
+ E + 7
972
987
  );
973
988
  }
974
989
  }
975
- this.setIndex(i), this.setAttribute("position", new U(a, 3)), this.computeVertexNormals();
990
+ this.setIndex(i), this.setAttribute("position", new F(r, 3)), this.computeVertexNormals();
976
991
  }
977
992
  }
978
- class bt extends v {
979
- constructor(e = 5, t = 3, o = 5, s = 0.2) {
993
+ class $t extends v {
994
+ constructor(e = 5, t = 3, n = 5, a = 0.2) {
980
995
  super();
981
996
  const c = [
982
997
  // Floor vertices
983
998
  -e / 2,
984
999
  0,
985
- -o / 2,
1000
+ -n / 2,
986
1001
  // 0
987
1002
  e / 2,
988
1003
  0,
989
- -o / 2,
1004
+ -n / 2,
990
1005
  // 1
991
1006
  e / 2,
992
1007
  0,
993
- o / 2,
1008
+ n / 2,
994
1009
  // 2
995
1010
  -e / 2,
996
1011
  0,
997
- o / 2,
1012
+ n / 2,
998
1013
  // 3
999
1014
  // Back wall vertices
1000
1015
  -e / 2,
1001
1016
  0,
1002
- -o / 2,
1017
+ -n / 2,
1003
1018
  // 4
1004
1019
  e / 2,
1005
1020
  0,
1006
- -o / 2,
1021
+ -n / 2,
1007
1022
  // 5
1008
1023
  e / 2,
1009
1024
  t,
1010
- -o / 2,
1025
+ -n / 2,
1011
1026
  // 6
1012
1027
  -e / 2,
1013
1028
  t,
1014
- -o / 2,
1029
+ -n / 2,
1015
1030
  // 7
1016
1031
  // Left wall vertices
1017
1032
  -e / 2,
1018
1033
  0,
1019
- -o / 2,
1034
+ -n / 2,
1020
1035
  // 8
1021
1036
  -e / 2,
1022
1037
  0,
1023
- o / 2,
1038
+ n / 2,
1024
1039
  // 9
1025
1040
  -e / 2,
1026
1041
  t,
1027
- o / 2,
1042
+ n / 2,
1028
1043
  // 10
1029
1044
  -e / 2,
1030
1045
  t,
1031
- -o / 2
1046
+ -n / 2
1032
1047
  // 11
1033
- ], n = [
1048
+ ], s = [
1034
1049
  // Floor
1035
1050
  0,
1036
1051
  1,
@@ -1053,60 +1068,60 @@ class bt extends v {
1053
1068
  10,
1054
1069
  11
1055
1070
  ];
1056
- this.setIndex(n), this.setAttribute("position", new U(c, 3)), this.computeVertexNormals();
1071
+ this.setIndex(s), this.setAttribute("position", new F(c, 3)), this.computeVertexNormals();
1057
1072
  }
1058
1073
  }
1059
- class St extends v {
1060
- constructor(e = 2, t = 0.3, o = 0.5, s = 5, c = 2) {
1074
+ class Wt extends v {
1075
+ constructor(e = 2, t = 0.3, n = 0.5, a = 5, c = 2) {
1061
1076
  super();
1062
- const n = [], a = [];
1063
- for (let u = 0; u < s; u++) {
1064
- const f = u * t, p = f + t, d = u * o, x = d + o;
1065
- n.push(
1077
+ const s = [], r = [];
1078
+ for (let m = 0; m < a; m++) {
1079
+ const h = m * t, d = h + t, p = m * n, x = p + n;
1080
+ s.push(
1066
1081
  // Vertical riser
1067
1082
  -e / 2,
1068
- f,
1069
- d,
1083
+ h,
1084
+ p,
1070
1085
  // Bottom-left
1071
1086
  e / 2,
1072
- f,
1073
- d,
1087
+ h,
1088
+ p,
1074
1089
  // Bottom-right
1075
1090
  e / 2,
1076
- p,
1077
1091
  d,
1092
+ p,
1078
1093
  // Top-right
1079
1094
  -e / 2,
1080
- p,
1081
1095
  d,
1096
+ p,
1082
1097
  // Top-left
1083
1098
  // Horizontal tread
1084
1099
  -e / 2,
1085
- p,
1086
1100
  d,
1101
+ p,
1087
1102
  // Top-left
1088
1103
  e / 2,
1089
- p,
1090
1104
  d,
1105
+ p,
1091
1106
  // Top-right
1092
1107
  e / 2,
1093
- p,
1108
+ d,
1094
1109
  x,
1095
1110
  // Back-right
1096
1111
  -e / 2,
1097
- p,
1112
+ d,
1098
1113
  x
1099
1114
  // Back-left
1100
1115
  );
1101
- const y = u * 8;
1102
- a.push(
1116
+ const y = m * 8;
1117
+ r.push(
1103
1118
  y,
1104
1119
  y + 1,
1105
1120
  y + 2,
1106
1121
  y,
1107
1122
  y + 2,
1108
1123
  y + 3
1109
- ), a.push(
1124
+ ), r.push(
1110
1125
  y + 4,
1111
1126
  y + 5,
1112
1127
  y + 6,
@@ -1115,8 +1130,8 @@ class St extends v {
1115
1130
  y + 7
1116
1131
  );
1117
1132
  }
1118
- const i = s * t, l = s * o;
1119
- n.push(
1133
+ const i = a * t, l = a * n;
1134
+ s.push(
1120
1135
  // Landing platform (4 vertices)
1121
1136
  -e / 2,
1122
1137
  i,
@@ -1135,64 +1150,64 @@ class St extends v {
1135
1150
  l + c
1136
1151
  // Top-left
1137
1152
  );
1138
- const m = s * 8;
1139
- a.push(
1140
- m,
1141
- m + 1,
1142
- m + 2,
1153
+ const u = a * 8;
1154
+ r.push(
1155
+ u,
1156
+ u + 1,
1157
+ u + 2,
1143
1158
  // First triangle for landing
1144
- m,
1145
- m + 2,
1146
- m + 3
1159
+ u,
1160
+ u + 2,
1161
+ u + 3
1147
1162
  // Second triangle for landing
1148
1163
  );
1149
- for (let u = 0; u < s; u++) {
1150
- const f = i + u * t, p = f + t, d = -e / 2 - u * o, x = d - o;
1151
- n.push(
1164
+ for (let m = 0; m < a; m++) {
1165
+ const h = i + m * t, d = h + t, p = -e / 2 - m * n, x = p - n;
1166
+ s.push(
1152
1167
  // Vertical riser
1153
- d,
1154
- f,
1168
+ p,
1169
+ h,
1155
1170
  l + c,
1156
1171
  // Bottom-left
1157
- d,
1158
- f,
1172
+ p,
1173
+ h,
1159
1174
  l + c - e,
1160
1175
  // Bottom-right
1161
- d,
1162
1176
  p,
1177
+ d,
1163
1178
  l + c - e,
1164
1179
  // Top-right
1165
- d,
1166
1180
  p,
1181
+ d,
1167
1182
  l + c,
1168
1183
  // Top-left
1169
1184
  // Horizontal tread
1170
- d,
1171
1185
  p,
1186
+ d,
1172
1187
  l + c,
1173
1188
  // Top-left
1174
- d,
1175
1189
  p,
1190
+ d,
1176
1191
  l + c - e,
1177
1192
  // Top-right
1178
1193
  x,
1179
- p,
1194
+ d,
1180
1195
  l + c - e,
1181
1196
  // Back-right
1182
1197
  x,
1183
- p,
1198
+ d,
1184
1199
  l + c
1185
1200
  // Back-left
1186
1201
  );
1187
- const y = m + 4 + u * 8;
1188
- a.push(
1202
+ const y = u + 4 + m * 8;
1203
+ r.push(
1189
1204
  y,
1190
1205
  y + 1,
1191
1206
  y + 2,
1192
1207
  y,
1193
1208
  y + 2,
1194
1209
  y + 3
1195
- ), a.push(
1210
+ ), r.push(
1196
1211
  y + 4,
1197
1212
  y + 5,
1198
1213
  y + 6,
@@ -1201,54 +1216,54 @@ class St extends v {
1201
1216
  y + 7
1202
1217
  );
1203
1218
  }
1204
- this.setIndex(a), this.setAttribute("position", new U(n, 3)), this.computeVertexNormals();
1219
+ this.setIndex(r), this.setAttribute("position", new F(s, 3)), this.computeVertexNormals();
1205
1220
  }
1206
1221
  }
1207
- class Gt extends v {
1208
- constructor(e = 1, t = 0.4, o = 0.2, s = 20, c = 2, n = Math.PI / 8) {
1222
+ class eo extends v {
1223
+ constructor(e = 1, t = 0.4, n = 0.2, a = 20, c = 2, s = Math.PI / 8) {
1209
1224
  super();
1210
- const a = [], i = [];
1225
+ const r = [], i = [];
1211
1226
  let l = 0;
1212
- for (let m = 0; m < s; m++) {
1213
- const u = c * Math.cos(l), f = c * Math.sin(l), p = m * o, d = p + o;
1214
- a.push(
1227
+ for (let u = 0; u < a; u++) {
1228
+ const m = c * Math.cos(l), h = c * Math.sin(l), d = u * n, p = d + n;
1229
+ r.push(
1215
1230
  // Front face (vertical riser)
1216
- u - e / 2 * Math.cos(l),
1217
- p,
1218
- f - e / 2 * Math.sin(l),
1231
+ m - e / 2 * Math.cos(l),
1232
+ d,
1233
+ h - e / 2 * Math.sin(l),
1219
1234
  // Bottom-left
1220
- u + e / 2 * Math.cos(l),
1221
- p,
1222
- f + e / 2 * Math.sin(l),
1223
- // Bottom-right
1224
- u + e / 2 * Math.cos(l),
1235
+ m + e / 2 * Math.cos(l),
1225
1236
  d,
1226
- f + e / 2 * Math.sin(l),
1237
+ h + e / 2 * Math.sin(l),
1238
+ // Bottom-right
1239
+ m + e / 2 * Math.cos(l),
1240
+ p,
1241
+ h + e / 2 * Math.sin(l),
1227
1242
  // Top-right
1228
- u - e / 2 * Math.cos(l),
1229
- d,
1230
- f - e / 2 * Math.sin(l)
1243
+ m - e / 2 * Math.cos(l),
1244
+ p,
1245
+ h - e / 2 * Math.sin(l)
1231
1246
  // Top-left
1232
- ), a.push(
1247
+ ), r.push(
1233
1248
  // Top face (horizontal tread)
1234
- u - e / 2 * Math.cos(l),
1235
- d,
1236
- f - e / 2 * Math.sin(l),
1249
+ m - e / 2 * Math.cos(l),
1250
+ p,
1251
+ h - e / 2 * Math.sin(l),
1237
1252
  // Top-left-front
1238
- u + e / 2 * Math.cos(l),
1239
- d,
1240
- f + e / 2 * Math.sin(l),
1253
+ m + e / 2 * Math.cos(l),
1254
+ p,
1255
+ h + e / 2 * Math.sin(l),
1241
1256
  // Top-right-front
1242
- u + e / 2 * Math.cos(l) - t * Math.sin(l),
1243
- d,
1244
- f + e / 2 * Math.sin(l) + t * Math.cos(l),
1257
+ m + e / 2 * Math.cos(l) - t * Math.sin(l),
1258
+ p,
1259
+ h + e / 2 * Math.sin(l) + t * Math.cos(l),
1245
1260
  // Back-right
1246
- u - e / 2 * Math.cos(l) - t * Math.sin(l),
1247
- d,
1248
- f - e / 2 * Math.sin(l) + t * Math.cos(l)
1261
+ m - e / 2 * Math.cos(l) - t * Math.sin(l),
1262
+ p,
1263
+ h - e / 2 * Math.sin(l) + t * Math.cos(l)
1249
1264
  // Back-left
1250
1265
  );
1251
- const x = m * 8;
1266
+ const x = u * 8;
1252
1267
  i.push(
1253
1268
  x,
1254
1269
  x + 1,
@@ -1267,215 +1282,215 @@ class Gt extends v {
1267
1282
  x + 6,
1268
1283
  x + 7
1269
1284
  // Second triangle for tread
1270
- ), l += n;
1285
+ ), l += s;
1271
1286
  }
1272
- this.setIndex(i), this.setAttribute("position", new U(a, 3)), this.computeVertexNormals();
1287
+ this.setIndex(i), this.setAttribute("position", new F(r, 3)), this.computeVertexNormals();
1273
1288
  }
1274
1289
  }
1275
- class It extends v {
1276
- constructor(e = 2, t = 0.3, o = 0.5, s = 10) {
1290
+ class to extends v {
1291
+ constructor(e = 2, t = 0.3, n = 0.5, a = 10) {
1277
1292
  super();
1278
- const c = [], n = [];
1279
- for (let a = 0; a < s; a++) {
1280
- const i = a * t, l = i + t, m = a * o, u = m + o;
1293
+ const c = [], s = [];
1294
+ for (let r = 0; r < a; r++) {
1295
+ const i = r * t, l = i + t, u = r * n, m = u + n;
1281
1296
  c.push(
1282
1297
  // Bottom face of riser (front face)
1283
1298
  -e / 2,
1284
1299
  i,
1285
- m,
1300
+ u,
1286
1301
  // 0: Bottom-left-front
1287
1302
  e / 2,
1288
1303
  i,
1289
- m,
1304
+ u,
1290
1305
  // 1: Bottom-right-front
1291
1306
  e / 2,
1292
1307
  l,
1293
- m,
1308
+ u,
1294
1309
  // 2: Top-right-front
1295
1310
  -e / 2,
1296
1311
  l,
1297
- m,
1312
+ u,
1298
1313
  // 3: Top-left-front
1299
1314
  // Top face of tread (horizontal step)
1300
1315
  -e / 2,
1301
1316
  l,
1302
- m,
1317
+ u,
1303
1318
  // 4: Top-left-front (repeated)
1304
1319
  e / 2,
1305
1320
  l,
1306
- m,
1321
+ u,
1307
1322
  // 5: Top-right-front (repeated)
1308
1323
  e / 2,
1309
1324
  l,
1310
- u,
1325
+ m,
1311
1326
  // 6: Top-right-back
1312
1327
  -e / 2,
1313
1328
  l,
1314
- u
1329
+ m
1315
1330
  // 7: Top-left-back
1316
1331
  );
1317
- const f = a * 8;
1318
- n.push(
1319
- f,
1320
- f + 1,
1321
- f + 2,
1332
+ const h = r * 8;
1333
+ s.push(
1334
+ h,
1335
+ h + 1,
1336
+ h + 2,
1322
1337
  // First triangle for riser
1323
- f,
1324
- f + 2,
1325
- f + 3
1338
+ h,
1339
+ h + 2,
1340
+ h + 3
1326
1341
  // Second triangle for riser
1327
- ), n.push(
1328
- f + 4,
1329
- f + 6,
1330
- f + 5,
1342
+ ), s.push(
1343
+ h + 4,
1344
+ h + 6,
1345
+ h + 5,
1331
1346
  // First triangle for tread
1332
- f + 4,
1333
- f + 7,
1334
- f + 6
1347
+ h + 4,
1348
+ h + 7,
1349
+ h + 6
1335
1350
  // Second triangle for tread
1336
1351
  );
1337
1352
  }
1338
- this.setIndex(n), this.setAttribute("position", new U(c, 3)), this.computeVertexNormals();
1353
+ this.setIndex(s), this.setAttribute("position", new F(c, 3)), this.computeVertexNormals();
1339
1354
  }
1340
1355
  }
1341
- class Ne extends v {
1342
- constructor(e = 0.4, t = 1.2, o = 0.2) {
1356
+ class lt extends v {
1357
+ constructor(e = 0.4, t = 1.2, n = 0.2) {
1343
1358
  super();
1344
- const s = t * 0.6, c = new g(e / 2, s, o);
1345
- c.translate(0, s / 2, 0);
1346
- const n = e * 1.5, a = new g(n, e / 4, o);
1347
- a.translate(0, s * 0.75, 0), this.copy(A([c, a], !1)), this.computeVertexNormals();
1359
+ const a = t * 0.6, c = new g(e / 2, a, n);
1360
+ c.translate(0, a / 2, 0);
1361
+ const s = e * 1.5, r = new g(s, e / 4, n);
1362
+ r.translate(0, a * 0.75, 0), this.copy(A([c, r], !1)), this.computeVertexNormals();
1348
1363
  }
1349
1364
  }
1350
- class ze extends v {
1365
+ class ut extends v {
1351
1366
  constructor(e = 1.75, t = 0.75) {
1352
1367
  super();
1353
- const o = e * 0.05, s = e * 0.15, c = e * 0.15, n = e * 0.75;
1354
- let a = 0;
1355
- const i = new g(t, o, t);
1356
- i.translate(0, a + o / 2, 0), a += o;
1357
- const l = new g(t * 0.8, s, t * 0.8);
1358
- l.translate(0, a + s / 2, 0), a += s;
1359
- const m = new g(t * 0.6, c, t * 0.6);
1360
- m.translate(0, a + c / 2, 0), a += c;
1361
- const u = new g(t * 0.4, n, t * 0.4);
1362
- u.translate(0, a + n / 2, 0), a += n;
1363
- const f = new L(t * 0.4 / Math.sqrt(2), 0.1, 4, 1, !1, Math.PI / 4);
1364
- f.translate(0, a + 0.1 / 2, 0), this.copy(A([i, l, m, u, f], !1)), this.computeVertexNormals();
1365
- }
1366
- }
1367
- class Ue extends v {
1368
- constructor(e = 0.6, t = 1, o = 0.2, s = 0.6) {
1368
+ const n = e * 0.05, a = e * 0.15, c = e * 0.15, s = e * 0.75;
1369
+ let r = 0;
1370
+ const i = new g(t, n, t);
1371
+ i.translate(0, r + n / 2, 0), r += n;
1372
+ const l = new g(t * 0.8, a, t * 0.8);
1373
+ l.translate(0, r + a / 2, 0), r += a;
1374
+ const u = new g(t * 0.6, c, t * 0.6);
1375
+ u.translate(0, r + c / 2, 0), r += c;
1376
+ const m = new g(t * 0.4, s, t * 0.4);
1377
+ m.translate(0, r + s / 2, 0), r += s;
1378
+ const h = new z(t * 0.4 / Math.sqrt(2), 0.1, 4, 1, !1, Math.PI / 4);
1379
+ h.translate(0, r + 0.1 / 2, 0), this.copy(A([i, l, u, m, h], !1)), this.computeVertexNormals();
1380
+ }
1381
+ }
1382
+ class mt extends v {
1383
+ constructor(e = 0.6, t = 1, n = 0.2, a = 0.6) {
1369
1384
  super();
1370
- const c = t - s / 2, n = new g(e, c, o);
1371
- n.translate(0, c / 2, 0);
1372
- const a = new S(s / 2, s / 2, o, 16, 1, !1, 0, Math.PI);
1373
- a.rotateY(Math.PI / 2), a.rotateX(Math.PI / 2), a.translate(0, c, 0), this.copy(A([n, a], !1)), this.computeVertexNormals();
1385
+ const c = t - a / 2, s = new g(e, c, n);
1386
+ s.translate(0, c / 2, 0);
1387
+ const r = new S(a / 2, a / 2, n, 16, 1, !1, 0, Math.PI);
1388
+ r.rotateY(Math.PI / 2), r.rotateX(Math.PI / 2), r.translate(0, c, 0), this.copy(A([s, r], !1)), this.computeVertexNormals();
1374
1389
  }
1375
1390
  }
1376
- class _e extends v {
1377
- constructor(e = 0.5, t = 0.8, o = 0.15) {
1391
+ class ht extends v {
1392
+ constructor(e = 0.5, t = 0.8, n = 0.15) {
1378
1393
  super();
1379
- const s = new g(e, t, o);
1380
- s.translate(0, t / 2, 0), this.copy(s);
1394
+ const a = new g(e, t, n);
1395
+ a.translate(0, t / 2, 0), this.copy(a);
1381
1396
  }
1382
1397
  }
1383
- class Le extends v {
1398
+ class ft extends v {
1384
1399
  constructor({ height: e = 2.25 } = {}) {
1385
1400
  super();
1386
1401
  const t = new g(1.2, 0.5, 1.2);
1387
1402
  t.translate(0, 0.25, 0);
1388
- const o = new g(1, e, 1);
1389
- o.translate(0, 0.5 + e / 2, 0);
1390
- const s = new g(1.4, 0.3, 1.4);
1391
- s.translate(0, 0.5 + e + 0.15, 0), this.copy(A([t, o, s], !1));
1403
+ const n = new g(1, e, 1);
1404
+ n.translate(0, 0.5 + e / 2, 0);
1405
+ const a = new g(1.4, 0.3, 1.4);
1406
+ a.translate(0, 0.5 + e + 0.15, 0), this.copy(A([t, n, a], !1));
1392
1407
  }
1393
1408
  }
1394
- class me extends v {
1409
+ class ue extends v {
1395
1410
  constructor({
1396
1411
  barHeight: e = 2,
1397
1412
  //
1398
1413
  barRadius: t = 0.05,
1399
- spikeHeight: o = 0.3,
1400
- spikeRadius: s = 0.075,
1414
+ spikeHeight: n = 0.3,
1415
+ spikeRadius: a = 0.075,
1401
1416
  spikeScaleZ: c = 1,
1402
- radialSegments: n = 8
1417
+ radialSegments: s = 8
1403
1418
  } = {}) {
1404
1419
  super();
1405
- const a = new S(t, t, e, n);
1406
- a.translate(0, e / 2, 0);
1407
- const i = new L(s, o, n);
1408
- i.translate(0, e + o / 2, 0), i.scale(1, 1, c), this.copy(A([a, i], !1));
1420
+ const r = new S(t, t, e, s);
1421
+ r.translate(0, e / 2, 0);
1422
+ const i = new z(a, n, s);
1423
+ i.translate(0, e + n / 2, 0), i.scale(1, 1, c), this.copy(A([r, i], !1));
1409
1424
  }
1410
1425
  }
1411
- class qe extends v {
1426
+ class pt extends v {
1412
1427
  constructor({
1413
1428
  count: e = 20,
1414
1429
  //
1415
1430
  spacing: t = 0.4,
1416
- barHeight: o = 2,
1417
- barRadius: s = 0.05,
1431
+ barHeight: n = 2,
1432
+ barRadius: a = 0.05,
1418
1433
  spikeHeight: c = 0.3,
1419
- spikeRadius: n = 0.075,
1420
- spikeScaleZ: a = 1,
1434
+ spikeRadius: s = 0.075,
1435
+ spikeScaleZ: r = 1,
1421
1436
  railHeight: i = 0.1,
1422
1437
  railDepth: l = 0.05,
1423
- railOffset: m = 0,
1424
- radialSegments: u = 8
1438
+ railOffset: u = 0,
1439
+ radialSegments: m = 8
1425
1440
  } = {}) {
1426
1441
  super();
1427
- const f = [], p = new me({ barHeight: o, barRadius: s, spikeHeight: c, spikeRadius: n, spikeScaleZ: a, radialSegments: u }), d = new g(e * t, i, l);
1428
- for (let G = 0; G < e; G++) {
1429
- const I = p.clone();
1430
- I.translate(G * t, 0, 0), f.push(I);
1442
+ const h = [], d = new ue({ barHeight: n, barRadius: a, spikeHeight: c, spikeRadius: s, spikeScaleZ: r, radialSegments: m }), p = new g(e * t, i, l);
1443
+ for (let I = 0; I < e; I++) {
1444
+ const G = d.clone();
1445
+ G.translate(I * t, 0, 0), h.push(G);
1431
1446
  }
1432
- const x = d.clone();
1433
- x.translate(t * (e - 1) / 2, o - m - i / 2, 0), f.push(x);
1434
- const y = d.clone();
1435
- y.translate(t * (e - 1) / 2, i / 2, 0), f.push(y), this.copy(A(f));
1447
+ const x = p.clone();
1448
+ x.translate(t * (e - 1) / 2, n - u - i / 2, 0), h.push(x);
1449
+ const y = p.clone();
1450
+ y.translate(t * (e - 1) / 2, i / 2, 0), h.push(y), this.copy(A(h));
1436
1451
  }
1437
1452
  }
1438
- class Oe extends v {
1453
+ class dt extends v {
1439
1454
  constructor({
1440
1455
  width: e = 5,
1441
1456
  //
1442
1457
  height: t = 8,
1443
- depth: o = 1,
1444
- shelves: s = 4,
1458
+ depth: n = 1,
1459
+ shelves: a = 4,
1445
1460
  frameThickness: c = 0.1,
1446
- open: n = !1
1461
+ open: s = !1
1447
1462
  } = {}) {
1448
1463
  super();
1449
- const a = t, i = e, l = o, m = new g(c, a, l), u = new g(i - 2 * c, c, l), f = m.clone();
1450
- f.translate(-i / 2 + c / 2, a / 2, 0);
1451
- const p = m.clone();
1452
- p.translate(i / 2 - c / 2, a / 2, 0);
1464
+ const r = t, i = e, l = n, u = new g(c, r, l), m = new g(i - 2 * c, c, l), h = u.clone();
1465
+ h.translate(-i / 2 + c / 2, r / 2, 0);
1453
1466
  const d = u.clone();
1454
- d.translate(0, a - c / 2, 0);
1455
- const x = u.clone();
1467
+ d.translate(i / 2 - c / 2, r / 2, 0);
1468
+ const p = m.clone();
1469
+ p.translate(0, r - c / 2, 0);
1470
+ const x = m.clone();
1456
1471
  x.translate(0, c / 2, 0);
1457
- const y = new g(i, a, c);
1458
- y.translate(0, a / 2, -l / 2 + c / 2);
1459
- const G = [], I = (a - c) / (s + 1);
1460
- for (let T = 1; T <= s; T++) {
1461
- const E = u.clone();
1462
- E.translate(0, c / 2 + T * I, 0), G.push(E);
1472
+ const y = new g(i, r, c);
1473
+ y.translate(0, r / 2, -l / 2 + c / 2);
1474
+ const I = [], G = (r - c) / (a + 1);
1475
+ for (let B = 1; B <= a; B++) {
1476
+ const C = m.clone();
1477
+ C.translate(0, c / 2 + B * G, 0), I.push(C);
1463
1478
  }
1464
1479
  this.copy(A([
1465
- f,
1480
+ h,
1466
1481
  //
1467
- p,
1468
1482
  d,
1483
+ p,
1469
1484
  x,
1470
- ...n ? [] : [y],
1471
- ...G
1485
+ ...s ? [] : [y],
1486
+ ...I
1472
1487
  ], !1));
1473
1488
  }
1474
1489
  }
1475
- class Pt extends v {
1490
+ class oo extends v {
1476
1491
  constructor(e = 0.1) {
1477
1492
  super();
1478
- const t = [], o = [], s = [
1493
+ const t = [], n = [], a = [
1479
1494
  [0, 1],
1480
1495
  // Top point
1481
1496
  [0.5, 0.75],
@@ -1493,77 +1508,77 @@ class Pt extends v {
1493
1508
  [-0.5, 0.75]
1494
1509
  // Left upper middle
1495
1510
  ];
1496
- for (let n = 0; n < s.length; n++) {
1497
- const [a, i] = s[n];
1498
- t.push(a * e, i * e, 0);
1511
+ for (let s = 0; s < a.length; s++) {
1512
+ const [r, i] = a[s];
1513
+ t.push(r * e, i * e, 0);
1499
1514
  }
1500
- for (let n = 1; n < s.length - 1; n++)
1501
- o.push(0, n, n + 1);
1502
- o.push(0, s.length - 1, 1);
1503
- const c = new U(t, 3);
1504
- this.setAttribute("position", c), this.setIndex(o), this.computeVertexNormals();
1515
+ for (let s = 1; s < a.length - 1; s++)
1516
+ n.push(0, s, s + 1);
1517
+ n.push(0, a.length - 1, 1);
1518
+ const c = new F(t, 3);
1519
+ this.setAttribute("position", c), this.setIndex(n), this.computeVertexNormals();
1505
1520
  }
1506
1521
  }
1507
- function Ve(r, e = z.XYZ, t = 0.5, o = 2) {
1508
- r.deleteAttribute("uv"), r.deleteAttribute("normal"), r = Ae(r), r.computeVertexNormals();
1509
- const s = r.getAttribute("position");
1510
- for (let c = 0; c < s.count; c++) {
1511
- const n = new M().fromBufferAttribute(s, c), a = Math.random() * (o - t) + t, i = e.clone().multiplyScalar(a);
1512
- n.add(i), s.setXYZ(c, n.x, n.y, n.z);
1522
+ function wt(o, e = U.XYZ, t = 0.5, n = 2) {
1523
+ o.deleteAttribute("uv"), o.deleteAttribute("normal"), o = Ae(o), o.computeVertexNormals();
1524
+ const a = o.getAttribute("position");
1525
+ for (let c = 0; c < a.count; c++) {
1526
+ const s = new M().fromBufferAttribute(a, c), r = Math.random() * (n - t) + t, i = e.clone().multiplyScalar(r);
1527
+ s.add(i), a.setXYZ(c, s.x, s.y, s.z);
1513
1528
  }
1514
- return s.needsUpdate = !0, r.computeVertexNormals(), r;
1529
+ return a.needsUpdate = !0, o.computeVertexNormals(), o;
1515
1530
  }
1516
- class Xe extends v {
1517
- constructor(e = 1, t = 4, o = 4) {
1531
+ class yt extends v {
1532
+ constructor(e = 1, t = 4, n = 4) {
1518
1533
  super();
1519
- const s = new k(e, t, o);
1520
- this.copy(Ve(s, z.XYZ, 0.5, 1)), this.computeVertexNormals(), this.center();
1534
+ const a = new T(e, t, n);
1535
+ this.copy(wt(a, U.XYZ, 0.5, 1)), this.computeVertexNormals(), this.center();
1521
1536
  }
1522
1537
  }
1523
- class Ze extends v {
1524
- constructor(e = 0.1, t = 0.1, o = 0.4, s = 8) {
1538
+ class xt extends v {
1539
+ constructor(e = 0.1, t = 0.1, n = 0.4, a = 8) {
1525
1540
  super();
1526
- const c = new S(e * 0.6, t * 0.6, o, s);
1541
+ const c = new S(e * 0.6, t * 0.6, n, a);
1527
1542
  c.translate(0, 0, 0);
1528
- const n = new k(e, s, s), a = n.clone(), i = n.clone(), l = n.clone(), m = n.clone();
1529
- a.translate(0, o / 2 + e * 0.6, -e * 0.6), i.translate(0, o / 2 + e * 0.6, e * 0.6), l.translate(0, -o / 2 - t * 0.6, -t * 0.6), m.translate(0, -o / 2 - t * 0.6, t * 0.6), this.copy(A([c, a, i, l, m], !1));
1543
+ const s = new T(e, a, a), r = s.clone(), i = s.clone(), l = s.clone(), u = s.clone();
1544
+ r.translate(0, n / 2 + e * 0.6, -e * 0.6), i.translate(0, n / 2 + e * 0.6, e * 0.6), l.translate(0, -n / 2 - t * 0.6, -t * 0.6), u.translate(0, -n / 2 - t * 0.6, t * 0.6), this.copy(A([c, r, i, l, u], !1));
1530
1545
  }
1531
1546
  }
1532
- class Ye extends v {
1547
+ class Mt extends v {
1533
1548
  constructor() {
1534
1549
  super();
1535
- const e = new k(1, 16, 16), t = new S(0.2, 0.2, 2, 16, 1, !0);
1550
+ const e = new T(1, 16, 16), t = new S(0.2, 0.2, 2, 16, 1, !0);
1536
1551
  t.translate(0, 1.5, 0), t.rotateX(Math.PI / 2), this.copy(A([e, t], !1));
1537
1552
  }
1538
1553
  }
1539
- class Re extends v {
1554
+ class vt extends v {
1540
1555
  constructor({
1541
1556
  flaskRadius: e = 1,
1542
1557
  //
1543
1558
  neckRadius: t = 0.3,
1544
- height: o = 2.5,
1545
- neckHeight: s = 1,
1559
+ height: n = 2.5,
1560
+ neckHeight: a = 1,
1546
1561
  radialSegments: c = 16
1547
1562
  } = {}) {
1548
1563
  super();
1549
- const n = [
1564
+ const s = [
1550
1565
  new b(0, 0),
1551
1566
  // Bottom of the flask
1552
1567
  new b(e * 0.875, 0),
1553
1568
  // Flat base with minimum width
1554
1569
  new b(e, 0.1),
1555
1570
  // End of the rounded base
1556
- new b(t, o),
1571
+ new b(t, n),
1557
1572
  // Start of the straight neck
1558
- new b(t, o + s),
1573
+ new b(t, n + a),
1559
1574
  // End of the straight neck
1560
- new b(t * 1.1, o + s + 0.3)
1575
+ new b(t * 1.1, n + a + 0.3)
1561
1576
  // Slight outward lip at the top
1562
- ], a = new q(n, c);
1563
- this.copy(A([a], !1));
1577
+ ], r = new q(s, c);
1578
+ this.copy(A([r], !1));
1564
1579
  }
1565
1580
  }
1566
- class De extends v {
1581
+ class gt extends v {
1567
1582
  constructor() {
1568
1583
  super();
1569
1584
  const e = [
@@ -1577,114 +1592,114 @@ class De extends v {
1577
1592
  // Flared edge
1578
1593
  new b(0.8, 1.8)
1579
1594
  // Lip of the bowl
1580
- ], t = new q(e, 12), o = new we(1, 12);
1581
- o.rotateX(-Math.PI / 2), o.translate(0, 0, 0), this.copy(A([t, o], !1));
1595
+ ], t = new q(e, 12), n = new we(1, 12);
1596
+ n.rotateX(-Math.PI / 2), n.translate(0, 0, 0), this.copy(A([t, n], !1));
1582
1597
  }
1583
1598
  }
1584
- class He extends v {
1599
+ class bt extends v {
1585
1600
  constructor({
1586
1601
  radius: e = 0.3,
1587
1602
  //
1588
1603
  height: t = 0.4,
1589
- count: o = 3,
1590
- thickness: s = 0.03,
1604
+ count: n = 3,
1605
+ thickness: a = 0.03,
1591
1606
  radialSegments: c = 16
1592
1607
  } = {}) {
1593
1608
  super();
1594
- const n = new se(e, s, 8, c);
1595
- n.rotateX(Math.PI / 2), n.translate(0, t, 0);
1596
- const a = new S(s * 0.6, s * 0.6, t, c), i = [];
1597
- for (let l = 0; l < o; l++) {
1598
- const m = l / o * Math.PI * 2, u = a.clone();
1599
- u.translate(Math.cos(m) * e, t / 2, Math.sin(m) * e), i.push(u);
1609
+ const s = new se(e, a, 8, c);
1610
+ s.rotateX(Math.PI / 2), s.translate(0, t, 0);
1611
+ const r = new S(a * 0.6, a * 0.6, t, c), i = [];
1612
+ for (let l = 0; l < n; l++) {
1613
+ const u = l / n * Math.PI * 2, m = r.clone();
1614
+ m.translate(Math.cos(u) * e, t / 2, Math.sin(u) * e), i.push(m);
1600
1615
  }
1601
- this.copy(A([n, ...i], !1));
1616
+ this.copy(A([s, ...i], !1));
1602
1617
  }
1603
1618
  }
1604
- class Q extends v {
1605
- constructor(e = 0.2, t = 0.2, o = 3, s = 32, c = !0) {
1619
+ class H extends v {
1620
+ constructor(e = 0.2, t = 0.2, n = 3, a = 32, c = !0) {
1606
1621
  super();
1607
- const n = new S(e, t, o, s, 1, c), a = new k(t, s, s / 2, 0, Math.PI * 2, Math.PI / 2, Math.PI / 2);
1608
- a.translate(0, -(o / 2), 0), this.copy(A([n, a], !1));
1622
+ const s = new S(e, t, n, a, 1, c), r = new T(t, a, a / 2, 0, Math.PI * 2, Math.PI / 2, Math.PI / 2);
1623
+ r.translate(0, -(n / 2), 0), this.copy(A([s, r], !1));
1609
1624
  }
1610
1625
  }
1611
- class Qe extends v {
1612
- constructor({ radius: e = 0.5, neckRadius: t = 0.2, height: o = 3, neckHeight: s = 1, segments: c = 16 } = {}) {
1626
+ class St extends v {
1627
+ constructor({ radius: e = 0.5, neckRadius: t = 0.2, height: n = 3, neckHeight: a = 1, segments: c = 16 } = {}) {
1613
1628
  super();
1614
- const n = o - s, a = new S(e, e, n, c);
1615
- a.translate(0, n / 2, 0);
1629
+ const s = n - a, r = new S(e, e, s, c);
1630
+ r.translate(0, s / 2, 0);
1616
1631
  const i = 0.3, l = new S(t, e, i, c);
1617
- l.translate(0, n + i / 2, 0);
1618
- const m = new S(t, t, s, c);
1619
- m.translate(0, n + i + s / 2, 0), this.copy(A([a, l, m], !1));
1632
+ l.translate(0, s + i / 2, 0);
1633
+ const u = new S(t, t, a, c);
1634
+ u.translate(0, s + i + a / 2, 0), this.copy(A([r, l, u], !1));
1620
1635
  }
1621
1636
  }
1622
- class je extends v {
1637
+ class It extends v {
1623
1638
  constructor({
1624
1639
  radius: e = 3,
1625
1640
  //
1626
1641
  height: t = 0.6,
1627
- widthSegments: o = 64,
1628
- heightSegments: s = 16,
1642
+ widthSegments: n = 64,
1643
+ heightSegments: a = 16,
1629
1644
  phiStart: c = 0,
1630
- phiLength: n = Math.PI * 2
1645
+ phiLength: s = Math.PI * 2
1631
1646
  } = {}) {
1632
- super(), this.copy(new k(e, o, s, c, n, 0, Math.PI / 2)), this.scale(1, t / e, 1);
1647
+ super(), this.copy(new T(e, n, a, c, s, 0, Math.PI / 2)), this.scale(1, t / e, 1);
1633
1648
  }
1634
1649
  }
1635
- const At = (r, e) => r / (1 - Math.cos(e)), ue = (r, e) => r / (2 * Math.sin(e)), Ke = (r, e) => r * (1 - Math.cos(e)), Bt = (r, e) => 2 * r * Math.sin(e), kt = (r, e, t) => ({
1636
- x: r * Math.sin(t) * Math.cos(e),
1637
- y: r * Math.sin(t) * Math.sin(e),
1638
- z: r * Math.cos(t)
1639
- }), Tt = (r, e, t) => {
1640
- const o = Math.sqrt(r * r + e * e + t * t), s = Math.atan2(e, r), c = Math.acos(t / o);
1641
- return { radius: o, theta: s, phi: c };
1650
+ const no = (o, e) => o / (1 - Math.cos(e)), me = (o, e) => o / (2 * Math.sin(e)), Gt = (o, e) => o * (1 - Math.cos(e)), so = (o, e) => 2 * o * Math.sin(e), ao = (o, e, t) => ({
1651
+ x: o * Math.sin(t) * Math.cos(e),
1652
+ y: o * Math.sin(t) * Math.sin(e),
1653
+ z: o * Math.cos(t)
1654
+ }), ro = (o, e, t) => {
1655
+ const n = Math.sqrt(o * o + e * e + t * t), a = Math.atan2(e, o), c = Math.acos(t / n);
1656
+ return { radius: n, theta: a, phi: c };
1642
1657
  };
1643
- class Je extends v {
1658
+ class Pt extends v {
1644
1659
  constructor({
1645
- radius: e = ue(5, Math.PI / 10),
1660
+ radius: e = me(5, Math.PI / 10),
1646
1661
  //
1647
1662
  widthSegments: t = 64,
1648
- heightSegments: o = 32,
1649
- phiStart: s = 0,
1663
+ heightSegments: n = 32,
1664
+ phiStart: a = 0,
1650
1665
  phiLength: c = Math.PI * 2,
1651
- thetaLength: n = Math.PI / 10
1666
+ thetaLength: s = Math.PI / 10
1652
1667
  } = {}) {
1653
- super(), this.copy(new k(e, t, o, s, c, 0, n));
1654
- const a = Ke(e, n);
1655
- this.translate(0, -e + a, 0);
1668
+ super(), this.copy(new T(e, t, n, a, c, 0, s));
1669
+ const r = Gt(e, s);
1670
+ this.translate(0, -e + r, 0);
1656
1671
  }
1657
1672
  }
1658
- class $e extends v {
1673
+ class At extends v {
1659
1674
  constructor({
1660
1675
  trunkRadiusTop: e = 0.25,
1661
1676
  trunkRadiusBottom: t = 0.4,
1662
- trunkHeight: o = 2.5,
1663
- trunkSegments: s = 14,
1677
+ trunkHeight: n = 2.5,
1678
+ trunkSegments: a = 14,
1664
1679
  leafSize: c = 0.8,
1665
- leafCount: n = 6,
1666
- leafDetail: a = 0,
1680
+ leafCount: s = 6,
1681
+ leafDetail: r = 0,
1667
1682
  leafSpreadRadius: i = 1.5
1668
1683
  } = {}) {
1669
1684
  super();
1670
- const l = new S(e, t, o, s);
1671
- l.translate(0, o / 2, 0);
1672
- const m = [];
1673
- for (let u = 0; u < n; u++) {
1674
- const f = new j(c, a);
1675
- f.translate(
1685
+ const l = new S(e, t, n, a);
1686
+ l.translate(0, n / 2, 0);
1687
+ const u = [];
1688
+ for (let m = 0; m < s; m++) {
1689
+ const h = new j(c, r);
1690
+ h.translate(
1676
1691
  (Math.random() - 0.5) * i,
1677
- (Math.random() - 0.5) * c + o,
1692
+ (Math.random() - 0.5) * c + n,
1678
1693
  (Math.random() - 0.5) * i
1679
- ), m.push(f);
1694
+ ), u.push(h);
1680
1695
  }
1681
- this.copy(A([l.toNonIndexed(), A(m, !1)], !0)), this.computeVertexNormals();
1696
+ this.copy(A([l.toNonIndexed(), A(u, !1)], !0)), this.computeVertexNormals();
1682
1697
  }
1683
1698
  }
1684
- class Et extends P {
1699
+ class co extends P {
1685
1700
  constructor() {
1686
1701
  super();
1687
- const e = new k(5, 32, 32), t = new K({
1702
+ const e = new T(5, 32, 32), t = new K({
1688
1703
  uniforms: {
1689
1704
  time: { value: 0 }
1690
1705
  },
@@ -1727,150 +1742,150 @@ class Et extends P {
1727
1742
  gl_FragColor = vec4(color, 1.0);
1728
1743
  }
1729
1744
  `
1730
- }), o = new h(e, t);
1731
- this.add(o);
1745
+ }), n = new f(e, t);
1746
+ this.add(n);
1732
1747
  }
1733
1748
  }
1734
- class Ct extends h {
1749
+ class io extends f {
1735
1750
  constructor({
1736
1751
  width: e = 1,
1737
1752
  height: t = 1.5,
1738
- depth: o = 0.5,
1739
- coverThickness: s = 0.05,
1753
+ depth: n = 0.5,
1754
+ coverThickness: a = 0.05,
1740
1755
  pageIndent: c = 0.05,
1741
- coverColor: n = 9109504,
1742
- pageColor: a = 16777215
1756
+ coverColor: s = 9109504,
1757
+ pageColor: r = 16777215
1743
1758
  } = {}) {
1744
- super(), this.geometry = new ce(e, t, o, s, c), this.material = [
1745
- new w({ color: n, metalness: 0.1, roughness: 0.7, flatShading: !0 }),
1746
- new w({ color: a, flatShading: !0 })
1759
+ super(), this.geometry = new ce(e, t, n, a, c), this.material = [
1760
+ new w({ color: s, metalness: 0.1, roughness: 0.7, flatShading: !0 }),
1761
+ new w({ color: r, flatShading: !0 })
1747
1762
  ];
1748
1763
  }
1749
1764
  }
1750
- class Ft extends h {
1751
- constructor(e = 0.4, t = 1.2, o = 0.2) {
1752
- super(), this.geometry = new Ne(e, t, o), this.material = new w({ color: 7829367, roughness: 0.8 });
1765
+ class lo extends f {
1766
+ constructor(e = 0.4, t = 1.2, n = 0.2) {
1767
+ super(), this.geometry = new lt(e, t, n), this.material = new w({ color: 7829367, roughness: 0.8 });
1753
1768
  }
1754
1769
  }
1755
- class Nt extends P {
1770
+ class uo extends P {
1756
1771
  constructor() {
1757
1772
  super();
1758
- const e = new g(5, 1, 5), t = new w({ color: 8421504, flatShading: !0 }), o = new h(e, t);
1759
- o.position.set(0, 0.5, 0), this.add(o);
1760
- const s = new g(4, 3, 4), c = new w({ color: 6908265, flatShading: !0 }), n = new h(s, c);
1761
- n.position.set(0, 2.5, 0), this.add(n);
1762
- const a = new L(3.5, 2, 4), i = new w({ color: 5263440, flatShading: !0 }), l = new h(a, i);
1773
+ const e = new g(5, 1, 5), t = new w({ color: 8421504, flatShading: !0 }), n = new f(e, t);
1774
+ n.position.set(0, 0.5, 0), this.add(n);
1775
+ const a = new g(4, 3, 4), c = new w({ color: 6908265, flatShading: !0 }), s = new f(a, c);
1776
+ s.position.set(0, 2.5, 0), this.add(s);
1777
+ const r = new z(3.5, 2, 4), i = new w({ color: 5263440, flatShading: !0 }), l = new f(r, i);
1763
1778
  l.rotation.y = Math.PI / 4, l.position.set(0, 5, 0), this.add(l);
1764
- const m = new S(0.2, 0.2, 3.5, 16), u = new w({ color: 6908265, flatShading: !0 });
1779
+ const u = new S(0.2, 0.2, 3.5, 16), m = new w({ color: 6908265, flatShading: !0 });
1765
1780
  [
1766
1781
  [-1.8, 2.3, -2.2],
1767
1782
  [1.8, 2.3, -2.2],
1768
1783
  [-1.8, 2.3, 2.2],
1769
1784
  [1.8, 2.3, 2.2]
1770
- ].forEach((I) => {
1771
- const T = new h(m, u);
1772
- T.position.set(...I), this.add(T);
1785
+ ].forEach((G) => {
1786
+ const B = new f(u, m);
1787
+ B.position.set(...G), this.add(B);
1773
1788
  });
1774
- const p = new O();
1775
- p.moveTo(-1, 0), p.lineTo(-1, 2), p.absarc(0, 2, 1, Math.PI, 0, !0), p.lineTo(1, 0);
1776
- const d = {
1789
+ const d = new L();
1790
+ d.moveTo(-1, 0), d.lineTo(-1, 2), d.absarc(0, 2, 1, Math.PI, 0, !0), d.lineTo(1, 0);
1791
+ const p = {
1777
1792
  depth: 0.5,
1778
1793
  bevelEnabled: !1
1779
- }, x = new V(p, d), y = new w({ color: 4210752, flatShading: !0 }), G = new h(x, y);
1780
- G.position.set(0, 0.5, 1.7), this.add(G);
1794
+ }, x = new V(d, p), y = new w({ color: 4210752, flatShading: !0 }), I = new f(x, y);
1795
+ I.position.set(0, 0.5, 1.7), this.add(I);
1781
1796
  }
1782
1797
  }
1783
- class zt extends h {
1798
+ class mo extends f {
1784
1799
  constructor(e = 1.75, t = 0.75) {
1785
- super(), this.geometry = new ze(e, t), this.material = new w({ color: 7829367, roughness: 0.8 });
1800
+ super(), this.geometry = new ut(e, t), this.material = new w({ color: 7829367, roughness: 0.8 });
1786
1801
  }
1787
1802
  }
1788
- class Ut extends h {
1789
- constructor(e = 0.6, t = 1, o = 0.2, s = 0.6) {
1790
- super(), this.geometry = new Ue(e, t, o, s), this.material = new w({ color: 7829367, roughness: 0.8 });
1803
+ class ho extends f {
1804
+ constructor(e = 0.6, t = 1, n = 0.2, a = 0.6) {
1805
+ super(), this.geometry = new mt(e, t, n, a), this.material = new w({ color: 7829367, roughness: 0.8 });
1791
1806
  }
1792
1807
  }
1793
- class _t extends h {
1794
- constructor(e = 0.5, t = 0.8, o = 0.15) {
1795
- super(), this.geometry = new _e(e, t, o), this.material = new w({ color: 7829367, roughness: 0.8 });
1808
+ class fo extends f {
1809
+ constructor(e = 0.5, t = 0.8, n = 0.15) {
1810
+ super(), this.geometry = new ht(e, t, n), this.material = new w({ color: 7829367, roughness: 0.8 });
1796
1811
  }
1797
1812
  }
1798
- class Lt extends h {
1813
+ class po extends f {
1799
1814
  constructor({ height: e = 2.25 } = {}) {
1800
- super(), this.geometry = new Le({ height: e }), this.material = new w({ color: 9141627, flatShading: !0 });
1815
+ super(), this.geometry = new ft({ height: e }), this.material = new w({ color: 9141627, flatShading: !0 });
1801
1816
  }
1802
1817
  }
1803
- class qt extends h {
1818
+ class wo extends f {
1804
1819
  constructor({
1805
1820
  barHeight: e = 2,
1806
1821
  //
1807
1822
  barRadius: t = 0.05,
1808
- spikeHeight: o = 0.3,
1809
- spikeRadius: s = 0.075,
1823
+ spikeHeight: n = 0.3,
1824
+ spikeRadius: a = 0.075,
1810
1825
  spikeScaleZ: c = 1,
1811
- radialSegments: n = 8
1826
+ radialSegments: s = 8
1812
1827
  } = {}) {
1813
- super(), this.geometry = new me({
1828
+ super(), this.geometry = new ue({
1814
1829
  barHeight: e,
1815
1830
  barRadius: t,
1816
- spikeHeight: o,
1817
- spikeRadius: s,
1831
+ spikeHeight: n,
1832
+ spikeRadius: a,
1818
1833
  spikeScaleZ: c,
1819
- radialSegments: n
1834
+ radialSegments: s
1820
1835
  }), this.material = new w({ color: 3355443, metalness: 0.8, roughness: 0.4 });
1821
1836
  }
1822
1837
  }
1823
- class Ot extends h {
1838
+ class yo extends f {
1824
1839
  constructor({
1825
1840
  count: e = 20,
1826
1841
  //
1827
1842
  spacing: t = 0.4,
1828
- barHeight: o = 2,
1829
- barRadius: s = 0.05,
1843
+ barHeight: n = 2,
1844
+ barRadius: a = 0.05,
1830
1845
  spikeHeight: c = 0.3,
1831
- spikeRadius: n = 0.075,
1832
- spikeScaleZ: a = 1,
1846
+ spikeRadius: s = 0.075,
1847
+ spikeScaleZ: r = 1,
1833
1848
  railHeight: i = 0.1,
1834
1849
  railDepth: l = 0.05,
1835
- railOffset: m = 0,
1836
- radialSegments: u = 8
1850
+ railOffset: u = 0,
1851
+ radialSegments: m = 8
1837
1852
  } = {}) {
1838
- super(), this.geometry = new qe({
1853
+ super(), this.geometry = new pt({
1839
1854
  count: e,
1840
1855
  spacing: t,
1841
- barHeight: o,
1842
- barRadius: s,
1856
+ barHeight: n,
1857
+ barRadius: a,
1843
1858
  spikeHeight: c,
1844
- spikeRadius: n,
1845
- spikeScaleZ: a,
1859
+ spikeRadius: s,
1860
+ spikeScaleZ: r,
1846
1861
  railHeight: i,
1847
1862
  railDepth: l,
1848
- railOffset: m,
1849
- radialSegments: u
1863
+ railOffset: u,
1864
+ radialSegments: m
1850
1865
  }), this.material = new w({ color: 3355443, metalness: 0.8, roughness: 0.4 });
1851
1866
  }
1852
1867
  }
1853
- class Vt extends h {
1868
+ class xo extends f {
1854
1869
  constructor({
1855
1870
  width: e = 5,
1856
1871
  //
1857
1872
  height: t = 8,
1858
- depth: o = 1,
1859
- shelves: s = 4,
1873
+ depth: n = 1,
1874
+ shelves: a = 4,
1860
1875
  frameThickness: c = 0.1,
1861
- open: n = !1
1876
+ open: s = !1
1862
1877
  } = {}) {
1863
- super(), this.geometry = new Oe({ width: e, height: t, depth: o, shelves: s, frameThickness: c, open: n }), this.material = new w({ color: 9127187 });
1878
+ super(), this.geometry = new dt({ width: e, height: t, depth: n, shelves: a, frameThickness: c, open: s }), this.material = new w({ color: 9127187 });
1864
1879
  }
1865
1880
  }
1866
- class Xt extends P {
1881
+ class Mo extends P {
1867
1882
  constructor() {
1868
1883
  super();
1869
- const e = new g(5, 0.3, 3), t = new w({ color: 9132587 }), o = new h(e, t);
1870
- o.position.set(0, 3.15, 0);
1871
- const s = [];
1872
- s.push(new b(0.2, 0)), s.push(new b(0.25, 0.5)), s.push(new b(0.15, 1.5)), s.push(new b(0.3, 3));
1873
- const c = new q(s, 32), n = new w({ color: 4929057 });
1884
+ const e = new g(5, 0.3, 3), t = new w({ color: 9132587 }), n = new f(e, t);
1885
+ n.position.set(0, 3.15, 0);
1886
+ const a = [];
1887
+ a.push(new b(0.2, 0)), a.push(new b(0.25, 0.5)), a.push(new b(0.15, 1.5)), a.push(new b(0.3, 3));
1888
+ const c = new q(a, 32), s = new w({ color: 4929057 });
1874
1889
  [
1875
1890
  [2.2, 0, 1.2],
1876
1891
  // Adjust Y to 0 so legs start at ground level
@@ -1878,20 +1893,20 @@ class Xt extends P {
1878
1893
  [2.2, 0, -1.2],
1879
1894
  [-2.2, 0, -1.2]
1880
1895
  ].forEach((i) => {
1881
- const l = new h(c, n);
1896
+ const l = new f(c, s);
1882
1897
  l.position.set(...i), this.add(l);
1883
- }), this.add(o);
1898
+ }), this.add(n);
1884
1899
  }
1885
1900
  }
1886
- class Zt extends P {
1901
+ class vo extends P {
1887
1902
  constructor(e = 1, t = 0.2) {
1888
1903
  super(), this.height = e, this.radius = t, this.createCandle(), this.animateFlicker();
1889
1904
  }
1890
1905
  createCandle() {
1891
1906
  const e = new S(this.radius, this.radius, this.height, 32), t = new w({ color: 16777215 });
1892
- this.candle = new h(e, t), this.candle.position.set(0, this.height / 2, 0), this.add(this.candle);
1893
- const o = new k(0.05, 16, 16), s = new ye({ color: 16753920 });
1894
- this.flame = new h(o, s), this.flame.position.set(0, this.height + 0.05, 0), this.add(this.flame), this.candleLight = new re(16753920, 1, 5), this.candleLight.position.set(0, this.height + 0.05, 0), this.candleLight.castShadow = !0, this.add(this.candleLight);
1907
+ this.candle = new f(e, t), this.candle.position.set(0, this.height / 2, 0), this.add(this.candle);
1908
+ const n = new T(0.05, 16, 16), a = new ye({ color: 16753920 });
1909
+ this.flame = new f(n, a), this.flame.position.set(0, this.height + 0.05, 0), this.add(this.flame), this.candleLight = new ae(16753920, 1, 5), this.candleLight.position.set(0, this.height + 0.05, 0), this.candleLight.castShadow = !0, this.add(this.candleLight);
1895
1910
  }
1896
1911
  animateFlicker() {
1897
1912
  const e = () => {
@@ -1900,52 +1915,52 @@ class Zt extends P {
1900
1915
  e();
1901
1916
  }
1902
1917
  }
1903
- class Yt extends P {
1918
+ class go extends P {
1904
1919
  constructor(e = 1.3, t = 0.5) {
1905
1920
  super();
1906
- const o = new S(t, t, 0.2, 16), s = new w({ color: 9127187, flatShading: !0 }), c = new h(o, s);
1921
+ const n = new S(t, t, 0.2, 16), a = new w({ color: 9127187, flatShading: !0 }), c = new f(n, a);
1907
1922
  c.position.set(0, 0, 0), this.add(c);
1908
- const n = new S(t * 0.9, t * 0.9, e), a = new w({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }), i = new h(n, a);
1923
+ const s = new S(t * 0.9, t * 0.9, e), r = new w({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }), i = new f(s, r);
1909
1924
  i.position.set(0, e / 2 + 0.1, 0), this.add(i);
1910
- const l = new L(t * 1.1, 0.5, 8), m = new w({ color: 9127187, flatShading: !0 }), u = new h(l, m);
1911
- u.position.set(0, e + 0.35, 0), this.add(u);
1912
- const f = new se(t * 0.8, 0.05, 8, 16), p = new w({ color: 9127187, flatShading: !0 }), d = new h(f, p);
1913
- d.position.set(0, e + 0.85, 0), this.add(d);
1914
- const x = new re(16755200, 1.5, 15);
1925
+ const l = new z(t * 1.1, 0.5, 8), u = new w({ color: 9127187, flatShading: !0 }), m = new f(l, u);
1926
+ m.position.set(0, e + 0.35, 0), this.add(m);
1927
+ const h = new se(t * 0.8, 0.05, 8, 16), d = new w({ color: 9127187, flatShading: !0 }), p = new f(h, d);
1928
+ p.position.set(0, e + 0.85, 0), this.add(p);
1929
+ const x = new ae(16755200, 1.5, 15);
1915
1930
  x.position.set(0, e / 2 + 0.1, 0), x.castShadow = !0, this.add(x);
1916
1931
  }
1917
1932
  }
1918
- class Rt extends P {
1933
+ class bo extends P {
1919
1934
  constructor() {
1920
1935
  super();
1921
- 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 });
1922
- for (let s = 0; s < 5; s++) {
1923
- const c = new h(e, t);
1936
+ const e = new j(1, 0), t = new w({ color: 8421504, flatShading: !0 }), n = new w({ color: 4950843, flatShading: !0, opacity: 0.8, transparent: !0 });
1937
+ for (let a = 0; a < 5; a++) {
1938
+ const c = new f(e, t);
1924
1939
  c.scale.set(0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4), c.rotation.set(Math.random() * Math.PI, Math.random() * Math.PI, Math.random() * Math.PI), c.position.set((Math.random() - 0.5) * 4, 0, (Math.random() - 0.5) * 4), this.add(c);
1925
- const n = new h(e, o);
1926
- n.scale.set(c.scale.x * 0.9, c.scale.y * 0.5, c.scale.z * 0.9), n.rotation.copy(c.rotation), n.position.copy(c.position), n.position.y += 0.3, this.add(n);
1940
+ const s = new f(e, n);
1941
+ s.scale.set(c.scale.x * 0.9, c.scale.y * 0.5, c.scale.z * 0.9), s.rotation.copy(c.rotation), s.position.copy(c.position), s.position.y += 0.3, this.add(s);
1927
1942
  }
1928
1943
  }
1929
1944
  }
1930
- class Dt extends h {
1931
- constructor(e = 1, t = 4, o = 4) {
1932
- super(), this.geometry = new Xe(e, t, o), this.material = new w({ color: 8421504, flatShading: !0 });
1945
+ class So extends f {
1946
+ constructor(e = 1, t = 4, n = 4) {
1947
+ super(), this.geometry = new yt(e, t, n), this.material = new w({ color: 8421504, flatShading: !0 });
1933
1948
  }
1934
1949
  }
1935
- class Ht extends P {
1950
+ class Io extends P {
1936
1951
  constructor() {
1937
1952
  super();
1938
1953
  const e = new j(1, 0), t = new w({ color: 8421504, flatShading: !0 });
1939
- for (let o = 0; o < 5; o++) {
1940
- const s = new h(e, t);
1941
- s.scale.set(0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4), s.rotation.set(Math.random() * Math.PI, Math.random() * Math.PI, Math.random() * Math.PI), s.position.set((Math.random() - 0.5) * 4, 0, (Math.random() - 0.5) * 4), this.add(s);
1954
+ for (let n = 0; n < 5; n++) {
1955
+ const a = new f(e, t);
1956
+ 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);
1942
1957
  }
1943
1958
  }
1944
1959
  }
1945
- class Qt extends P {
1960
+ class Go extends P {
1946
1961
  constructor() {
1947
1962
  super();
1948
- const e = new Ye(), t = new R({
1963
+ const e = new Mt(), t = new Y({
1949
1964
  color: 8965375,
1950
1965
  transparent: !0,
1951
1966
  opacity: 0.4,
@@ -1953,12 +1968,12 @@ class Qt extends P {
1953
1968
  metalness: 0.1,
1954
1969
  reflectivity: 0.8,
1955
1970
  transmission: 0.9,
1956
- side: _
1957
- }), o = new h(e, t);
1958
- o.rotation.x = -Math.PI / 2, this.add(o);
1971
+ side: O
1972
+ }), n = new f(e, t);
1973
+ n.rotation.x = -Math.PI / 2, this.add(n);
1959
1974
  }
1960
1975
  }
1961
- class jt extends P {
1976
+ class Po extends P {
1962
1977
  constructor() {
1963
1978
  super();
1964
1979
  const e = [
@@ -1972,7 +1987,7 @@ class jt extends P {
1972
1987
  // Neck
1973
1988
  new b(0.6, 2.5)
1974
1989
  // Mouth
1975
- ], t = new q(e, 10), o = new S(0.3, 0.4, 0.2, 8), s = new w({
1990
+ ], t = new q(e, 10), n = new S(0.3, 0.4, 0.2, 8), a = new w({
1976
1991
  color: 8965375,
1977
1992
  transparent: !0,
1978
1993
  opacity: 0.5,
@@ -1983,87 +1998,87 @@ class jt extends P {
1983
1998
  // Vibrant potion color
1984
1999
  transparent: !0,
1985
2000
  opacity: 0.6
1986
- }), n = new w({
2001
+ }), s = new w({
1987
2002
  color: 9127187,
1988
2003
  roughness: 1
1989
- }), a = new h(t, s), i = new h(t, c), l = new h(o, n);
2004
+ }), r = new f(t, a), i = new f(t, c), l = new f(n, s);
1990
2005
  i.scale.set(0.8, 0.8, 0.8), i.position.y = 0.1, l.position.y = 2.5;
1991
- const m = new P();
1992
- m.add(a, i, l), this.add(m);
2006
+ const u = new P();
2007
+ u.add(r, i, l), this.add(u);
1993
2008
  }
1994
2009
  }
1995
- class Kt extends P {
2010
+ class Ao extends P {
1996
2011
  constructor() {
1997
2012
  super();
1998
2013
  const e = new S(0.3, 0.4, 0.1, 16), t = new w({
1999
2014
  color: 3355443,
2000
2015
  roughness: 0.6,
2001
2016
  metalness: 0.3
2002
- }), o = new h(e, t);
2003
- o.position.y = 0.05;
2004
- const s = new S(0.1, 0.1, 0.7, 16), c = new w({
2017
+ }), n = new f(e, t);
2018
+ n.position.y = 0.05;
2019
+ const a = new S(0.1, 0.1, 0.7, 16), c = new w({
2005
2020
  color: 5592405,
2006
2021
  roughness: 0.5,
2007
2022
  metalness: 0.4
2008
- }), n = new h(s, c);
2009
- n.position.y = 0.4;
2010
- const a = new L(0.075, 0.2, 16), i = new w({
2023
+ }), s = new f(a, c);
2024
+ s.position.y = 0.4;
2025
+ const r = new z(0.075, 0.2, 16), i = new w({
2011
2026
  color: 16733440,
2012
2027
  emissive: 16733440,
2013
2028
  emissiveIntensity: 0.6,
2014
2029
  transparent: !0,
2015
2030
  opacity: 0.8
2016
- }), l = new h(a, i);
2017
- l.position.y = 0.8, this.add(o, n, l);
2031
+ }), l = new f(r, i);
2032
+ l.position.y = 0.8, this.add(n, s, l);
2018
2033
  }
2019
2034
  }
2020
- class Jt extends P {
2035
+ class Eo extends P {
2021
2036
  constructor() {
2022
2037
  super();
2023
2038
  const e = new g(3, 4, 0.1), t = new w({
2024
2039
  color: 3026478,
2025
2040
  roughness: 0.8,
2026
2041
  metalness: 0.6
2027
- }), o = new g(0.2, 0.5, 0.2), s = new w({
2042
+ }), n = new g(0.2, 0.5, 0.2), a = new w({
2028
2043
  color: 11184810,
2029
2044
  roughness: 0.5,
2030
2045
  metalness: 0.7
2031
- }), c = new S(0.3, 0.3, 0.1, 16), n = new w({
2046
+ }), c = new S(0.3, 0.3, 0.1, 16), s = new w({
2032
2047
  color: 5592405,
2033
2048
  roughness: 0.7,
2034
2049
  metalness: 0.5
2035
- }), a = new h(e, t);
2050
+ }), r = new f(e, t);
2036
2051
  for (let y = -1; y <= 1; y++) {
2037
- const G = new h(o, s);
2038
- G.position.set(y, 1.5, 0.1), a.add(G);
2052
+ const I = new f(n, a);
2053
+ I.position.set(y, 1.5, 0.1), r.add(I);
2039
2054
  }
2040
- const i = new h(c, n);
2041
- i.rotation.x = Math.PI / 2, i.position.set(0, 0.5, 0.15), a.add(i);
2042
- const l = new k(0.15, 8, 8), m = new w({
2055
+ const i = new f(c, s);
2056
+ i.rotation.x = Math.PI / 2, i.position.set(0, 0.5, 0.15), r.add(i);
2057
+ const l = new T(0.15, 8, 8), u = new w({
2043
2058
  color: 16711680,
2044
2059
  emissive: 16711680,
2045
2060
  emissiveIntensity: 0.5
2046
- }), u = new h(l, m);
2047
- u.position.set(0, -1, 0.1), a.add(u), this.add(a);
2048
- let f = 0.015, p = 0.8, d = 0.2;
2061
+ }), m = new f(l, u);
2062
+ m.position.set(0, -1, 0.1), r.add(m), this.add(r);
2063
+ let h = 0.015, d = 0.8, p = 0.2;
2049
2064
  function x() {
2050
2065
  requestAnimationFrame(x);
2051
- const y = d + Math.abs(Math.sin(Date.now() * f)) * (p - d);
2052
- u.material.emissiveIntensity = y;
2066
+ const y = p + Math.abs(Math.sin(Date.now() * h)) * (d - p);
2067
+ m.material.emissiveIntensity = y;
2053
2068
  }
2054
2069
  x();
2055
2070
  }
2056
2071
  }
2057
- class $t extends h {
2072
+ class To extends f {
2058
2073
  constructor({
2059
2074
  flaskRadius: e = 1,
2060
2075
  //
2061
2076
  neckRadius: t = 0.3,
2062
- height: o = 2.5,
2063
- neckHeight: s = 1,
2077
+ height: n = 2.5,
2078
+ neckHeight: a = 1,
2064
2079
  radialSegments: c = 16
2065
2080
  } = {}) {
2066
- super(), this.geometry = new Re({ flaskRadius: e, neckRadius: t, height: o, neckHeight: s, radialSegments: c }), this.material = new R({
2081
+ super(), this.geometry = new vt({ flaskRadius: e, neckRadius: t, height: n, neckHeight: a, radialSegments: c }), this.material = new Y({
2067
2082
  color: 8965375,
2068
2083
  transparent: !0,
2069
2084
  opacity: 0.4,
@@ -2071,12 +2086,12 @@ class $t extends h {
2071
2086
  metalness: 0.1,
2072
2087
  reflectivity: 0.8,
2073
2088
  transmission: 0.9,
2074
- side: _,
2089
+ side: O,
2075
2090
  wireframe: !1
2076
2091
  });
2077
2092
  }
2078
2093
  }
2079
- class Wt extends P {
2094
+ class Bo extends P {
2080
2095
  constructor() {
2081
2096
  super();
2082
2097
  const e = [
@@ -2090,7 +2105,7 @@ class Wt extends P {
2090
2105
  // Narrow neck
2091
2106
  new b(0.6, 3.5)
2092
2107
  // Mouth of the flask
2093
- ], t = new q(e, 12), o = new S(0.6, 0.7, 0.3, 8), s = new w({
2108
+ ], t = new q(e, 12), n = new S(0.6, 0.7, 0.3, 8), a = new w({
2094
2109
  color: 8965290,
2095
2110
  transparent: !0,
2096
2111
  opacity: 0.4,
@@ -2099,169 +2114,169 @@ class Wt extends P {
2099
2114
  }), c = new w({
2100
2115
  color: 9127187,
2101
2116
  roughness: 1
2102
- }), n = new h(t, s), a = new h(o, c);
2103
- a.position.y = 3.5, this.add(n, a);
2117
+ }), s = new f(t, a), r = new f(n, c);
2118
+ r.position.y = 3.5, this.add(s, r);
2104
2119
  }
2105
2120
  }
2106
- class eo extends P {
2121
+ class Co extends P {
2107
2122
  constructor() {
2108
2123
  super();
2109
2124
  const e = new g(2, 3, 0.1), t = new w({
2110
2125
  color: 3355443,
2111
2126
  roughness: 0.8,
2112
2127
  metalness: 0.5
2113
- }), o = new h(e, t), s = new S(0.1, 0.1, 0.2, 8), c = new S(0.05, 0.05, 1, 8), n = new w({
2128
+ }), n = new f(e, t), a = new S(0.1, 0.1, 0.2, 8), c = new S(0.05, 0.05, 1, 8), s = new w({
2114
2129
  color: 11184810,
2115
2130
  roughness: 0.5,
2116
2131
  metalness: 0.7
2117
2132
  });
2118
- for (let a = -0.5; a <= 0.5; a += 0.5) {
2119
- const i = new h(s, n);
2120
- i.position.set(a, 1, 0.1);
2121
- const l = new h(c, n);
2133
+ for (let r = -0.5; r <= 0.5; r += 0.5) {
2134
+ const i = new f(a, s);
2135
+ i.position.set(r, 1, 0.1);
2136
+ const l = new f(c, s);
2122
2137
  l.position.y = 0.5, i.add(l), this.add(i);
2123
2138
  }
2124
- this.add(o);
2139
+ this.add(n);
2125
2140
  }
2126
2141
  }
2127
- class to extends P {
2142
+ class ko extends P {
2128
2143
  constructor() {
2129
2144
  super();
2130
2145
  const e = new g(1, 0.2, 0.5), t = new w({
2131
2146
  color: 4473924,
2132
2147
  roughness: 0.6,
2133
2148
  metalness: 0.3
2134
- }), o = new h(e, t);
2135
- o.position.y = 0.1;
2136
- const s = new g(0.2, 1, 0.2), c = new h(s, t);
2149
+ }), n = new f(e, t);
2150
+ n.position.y = 0.1;
2151
+ const a = new g(0.2, 1, 0.2), c = new f(a, t);
2137
2152
  c.position.set(0, 0.6, -0.2);
2138
- const n = new S(0.1, 0.1, 0.4, 8), a = new w({
2153
+ const s = new S(0.1, 0.1, 0.4, 8), r = new w({
2139
2154
  color: 3355443,
2140
2155
  roughness: 0.5,
2141
2156
  metalness: 0.6
2142
- }), i = new h(n, a);
2157
+ }), i = new f(s, r);
2143
2158
  i.position.set(0, 1.1, -0.35), i.rotation.x = -Math.PI / 4;
2144
- const l = new g(0.6, 0.1, 0.6), m = new w({
2159
+ const l = new g(0.6, 0.1, 0.6), u = new w({
2145
2160
  color: 5592405,
2146
2161
  roughness: 0.8,
2147
2162
  metalness: 0.2
2148
- }), u = new h(l, m);
2149
- u.position.set(0, 0.6, 0), this.add(o, c, i, u);
2163
+ }), m = new f(l, u);
2164
+ m.position.set(0, 0.6, 0), this.add(n, c, i, m);
2150
2165
  }
2151
2166
  }
2152
- class oo extends P {
2167
+ class No extends P {
2153
2168
  constructor() {
2154
2169
  super();
2155
- const e = new De(), t = new S(0.2, 0.3, 1.5, 8);
2170
+ const e = new gt(), t = new S(0.2, 0.3, 1.5, 8);
2156
2171
  t.translate(0, 0.75, 0);
2157
- const o = new w({
2172
+ const n = new w({
2158
2173
  color: 6045747,
2159
2174
  // Dark earthy tone
2160
2175
  roughness: 1,
2161
2176
  metalness: 0,
2162
- side: _
2177
+ side: O
2163
2178
  // Render inside and outside
2164
- }), s = new w({
2179
+ }), a = new w({
2165
2180
  color: 9132587,
2166
2181
  // Slightly lighter earthy color
2167
2182
  roughness: 0.8,
2168
2183
  metalness: 0.1
2169
- }), c = new h(e, o), n = new h(t, s);
2170
- n.position.set(0.3, 1.3, 0), n.rotation.z = Math.PI / 4, this.add(c, n);
2184
+ }), c = new f(e, n), s = new f(t, a);
2185
+ s.position.set(0.3, 1.3, 0), s.rotation.z = Math.PI / 4, this.add(c, s);
2171
2186
  }
2172
2187
  }
2173
- class no extends P {
2188
+ class _o extends P {
2174
2189
  constructor() {
2175
2190
  super();
2176
- const e = 100, t = 0.05, o = new xe(
2177
- Array.from({ length: e }, (l, m) => {
2178
- const u = m * 0.2;
2191
+ const e = 100, t = 0.05, n = new xe(
2192
+ Array.from({ length: e }, (l, u) => {
2193
+ const m = u * 0.2;
2179
2194
  return new M(
2180
- Math.cos(u) * 0.4,
2181
- m * t,
2195
+ Math.cos(m) * 0.4,
2196
+ u * t,
2182
2197
  // Gradual height increase
2183
- Math.sin(u) * 0.4
2198
+ Math.sin(m) * 0.4
2184
2199
  );
2185
2200
  })
2186
- ), s = new Me(o, 200, 0.1, 8, !1), c = new w({
2201
+ ), a = new Me(n, 200, 0.1, 8, !1), c = new w({
2187
2202
  color: 8965375,
2188
2203
  transparent: !0,
2189
2204
  opacity: 0.3,
2190
2205
  roughness: 0.1,
2191
2206
  metalness: 0.2,
2192
2207
  emissive: 8965375
2193
- }), n = new h(s, c);
2194
- this.add(n);
2195
- function a() {
2208
+ }), s = new f(a, c);
2209
+ this.add(s);
2210
+ function r() {
2196
2211
  c.emissiveIntensity = 0.2 + Math.sin(Date.now() * 5e-3) * 0.1;
2197
2212
  }
2198
2213
  function i() {
2199
- requestAnimationFrame(i), a();
2214
+ requestAnimationFrame(i), r();
2200
2215
  }
2201
2216
  i();
2202
2217
  }
2203
2218
  }
2204
- class so extends h {
2219
+ class Uo extends f {
2205
2220
  constructor({
2206
2221
  radius: e = 0.3,
2207
2222
  //
2208
2223
  height: t = 0.4,
2209
- count: o = 3,
2210
- thickness: s = 0.03,
2224
+ count: n = 3,
2225
+ thickness: a = 0.03,
2211
2226
  radialSegments: c = 16
2212
2227
  } = {}) {
2213
- super(), this.geometry = new He({ radius: e, height: t, count: o, thickness: s, radialSegments: c }), this.material = new w({
2228
+ super(), this.geometry = new bt({ radius: e, height: t, count: n, thickness: a, radialSegments: c }), this.material = new w({
2214
2229
  color: 8947848,
2215
2230
  roughness: 0.7,
2216
2231
  metalness: 0.3
2217
2232
  });
2218
2233
  }
2219
2234
  }
2220
- class ro extends P {
2235
+ class Fo extends P {
2221
2236
  constructor() {
2222
2237
  super();
2223
2238
  const e = new S(0.5, 0.6, 0.3, 16), t = new w({
2224
2239
  color: 3355443,
2225
2240
  roughness: 0.6,
2226
2241
  metalness: 0.5
2227
- }), o = new h(e, t);
2228
- o.position.y = 0.15;
2229
- const s = new S(0.15, 0.15, 2, 12, 1, !0), c = new w({
2242
+ }), n = new f(e, t);
2243
+ n.position.y = 0.15;
2244
+ const a = new S(0.15, 0.15, 2, 12, 1, !0), c = new w({
2230
2245
  color: 16737792,
2231
2246
  roughness: 0.5,
2232
2247
  metalness: 0.8,
2233
- side: _
2234
- }), n = new h(s, c);
2235
- n.position.y = 1.3;
2236
- const a = new k(0.3, 16, 16), i = new h(a, c);
2237
- i.position.y = 2.4, this.add(o, n, i);
2248
+ side: O
2249
+ }), s = new f(a, c);
2250
+ s.position.y = 1.3;
2251
+ const r = new T(0.3, 16, 16), i = new f(r, c);
2252
+ i.position.y = 2.4, this.add(n, s, i);
2238
2253
  const l = [];
2239
- for (let f = 0; f < 5; f++) {
2240
- const p = new ve({ color: 10079487 }), d = [
2254
+ for (let h = 0; h < 5; h++) {
2255
+ const d = new ve({ color: 10079487 }), p = [
2241
2256
  new M(0, 2.4, 0),
2242
2257
  new M((Math.random() - 0.5) * 1.5, Math.random() * 2.4, (Math.random() - 0.5) * 1.5)
2243
- ], x = new v().setFromPoints(d), y = new ge(x, p);
2258
+ ], x = new v().setFromPoints(p), y = new ge(x, d);
2244
2259
  this.add(y), l.push(y);
2245
2260
  }
2246
- function m() {
2247
- l.forEach((f) => {
2248
- const p = [
2261
+ function u() {
2262
+ l.forEach((h) => {
2263
+ const d = [
2249
2264
  new M(0, 2.4, 0),
2250
2265
  new M((Math.random() - 0.5) * 1.5, Math.random() * 2.4, (Math.random() - 0.5) * 1.5)
2251
2266
  ];
2252
- f.geometry.setFromPoints(p);
2267
+ h.geometry.setFromPoints(d);
2253
2268
  });
2254
2269
  }
2255
- function u() {
2256
- requestAnimationFrame(u), m();
2270
+ function m() {
2271
+ requestAnimationFrame(m), u();
2257
2272
  }
2258
- u();
2273
+ m();
2259
2274
  }
2260
2275
  }
2261
- class ao extends P {
2262
- constructor(e = 0.2, t = 0.2, o = 3, s = 32) {
2276
+ class Oo extends P {
2277
+ constructor(e = 0.2, t = 0.2, n = 3, a = 32) {
2263
2278
  super();
2264
- const c = new Q(e, t, o, s), n = new R({
2279
+ const c = new H(e, t, n, a), s = new Y({
2265
2280
  color: 8965375,
2266
2281
  transparent: !0,
2267
2282
  opacity: 0.4,
@@ -2270,48 +2285,48 @@ class ao extends P {
2270
2285
  reflectivity: 0.8,
2271
2286
  transmission: 0.9,
2272
2287
  // For glass effect
2273
- side: _
2274
- }), a = new h(c, n);
2275
- this.add(a);
2288
+ side: O
2289
+ }), r = new f(c, s);
2290
+ this.add(r);
2276
2291
  }
2277
2292
  }
2278
- class co extends P {
2293
+ class zo extends P {
2279
2294
  constructor(e = 3, t = [65450, 16711850, 11141375]) {
2280
2295
  super();
2281
- const o = new g(3, 0.2, 1), s = new w({
2296
+ const n = new g(3, 0.2, 1), a = new w({
2282
2297
  color: 9127187,
2283
2298
  // Wooden color or change to metallic tone
2284
2299
  roughness: 0.7,
2285
2300
  metalness: 0.3
2286
- }), c = new h(o, s);
2301
+ }), c = new f(n, a);
2287
2302
  c.position.y = 0.5;
2288
- const n = new Q(0.1, 0.1, 1, 16), a = new w({
2303
+ const s = new H(0.1, 0.1, 1, 16), r = new w({
2289
2304
  color: 11184810,
2290
2305
  transparent: !0,
2291
2306
  opacity: 0.4,
2292
2307
  roughness: 0.1,
2293
2308
  metalness: 0.5,
2294
- side: _
2309
+ side: O
2295
2310
  });
2296
2311
  for (let i = 0; i < e; i++) {
2297
- const l = new h(n, a), m = (i - (e - 1) / 2) * 0.8;
2298
- l.position.set(m, 1, 0);
2299
- const u = new Q(0.099, 0.099, 0.5, 16, !1), f = t[i % t.length], p = new w({
2300
- color: f,
2301
- emissive: f,
2312
+ const l = new f(s, r), u = (i - (e - 1) / 2) * 0.8;
2313
+ l.position.set(u, 1, 0);
2314
+ const m = new H(0.099, 0.099, 0.5, 16, !1), h = t[i % t.length], d = new w({
2315
+ color: h,
2316
+ emissive: h,
2302
2317
  emissiveIntensity: 0.5,
2303
2318
  transparent: !0,
2304
2319
  opacity: 0.6
2305
- }), d = new h(u, p);
2306
- d.position.set(0, -0.25, 0), l.add(d), c.add(l);
2320
+ }), p = new f(m, d);
2321
+ p.position.set(0, -0.25, 0), l.add(p), c.add(l);
2307
2322
  }
2308
2323
  this.add(c);
2309
2324
  }
2310
2325
  }
2311
- class io extends h {
2326
+ class qo extends f {
2312
2327
  constructor() {
2313
2328
  super();
2314
- const e = new Qe(), t = new R({
2329
+ const e = new St(), t = new Y({
2315
2330
  color: 5597999,
2316
2331
  roughness: 0.1,
2317
2332
  transmission: 0.9,
@@ -2324,27 +2339,27 @@ class io extends h {
2324
2339
  this.geometry = e, this.material = t;
2325
2340
  }
2326
2341
  }
2327
- class We extends O {
2328
- constructor(e = 5, t = 0.5, o = 1) {
2342
+ class Et extends L {
2343
+ constructor(e = 5, t = 0.5, n = 1) {
2329
2344
  super();
2330
- const s = Math.PI * 2 / e, c = s / 2, n = s / 4;
2331
- this.moveTo(Math.cos(0) * o, -Math.sin(0) * o);
2332
- for (let a = 1; a <= e; ++a) {
2333
- let i = Math.cos(s * a - n * 3) * (t / Math.cos(n)), l = -Math.sin(s * a - n * 3) * (t / Math.cos(n)), m = Math.cos(s * a - c) * t, u = -Math.sin(s * a - c) * t;
2334
- this.quadraticCurveTo(i, l, m, u), i = Math.cos(s * a - n) * (t / Math.cos(n)), l = -Math.sin(s * a - n) * (t / Math.cos(n)), m = Math.cos(s * a) * o, u = -Math.sin(s * a) * o, this.quadraticCurveTo(i, l, m, u);
2345
+ const a = Math.PI * 2 / e, c = a / 2, s = a / 4;
2346
+ this.moveTo(Math.cos(0) * n, -Math.sin(0) * n);
2347
+ for (let r = 1; r <= e; ++r) {
2348
+ let i = Math.cos(a * r - s * 3) * (t / Math.cos(s)), l = -Math.sin(a * r - s * 3) * (t / Math.cos(s)), u = Math.cos(a * r - c) * t, m = -Math.sin(a * r - c) * t;
2349
+ this.quadraticCurveTo(i, l, u, m), i = Math.cos(a * r - s) * (t / Math.cos(s)), l = -Math.sin(a * r - s) * (t / Math.cos(s)), u = Math.cos(a * r) * n, m = -Math.sin(a * r) * n, this.quadraticCurveTo(i, l, u, m);
2335
2350
  }
2336
2351
  this.closePath();
2337
2352
  }
2338
2353
  }
2339
- class lo extends h {
2340
- constructor(e = 5, t = 0.5, o = 1, s = 0.25) {
2354
+ class Lo extends f {
2355
+ constructor(e = 5, t = 0.5, n = 1, a = 0.25) {
2341
2356
  super();
2342
- const c = new We(e, t, o), n = new V(c, {
2343
- depth: s,
2344
- bevelEnabled: s > 0,
2357
+ const c = new Et(e, t, n), s = new V(c, {
2358
+ depth: a,
2359
+ bevelEnabled: a > 0,
2345
2360
  bevelThickness: 0,
2346
2361
  bevelSize: 0
2347
- }), a = new w({
2362
+ }), r = new w({
2348
2363
  color: 16776960,
2349
2364
  emissive: 16766720,
2350
2365
  emissiveIntensity: 0.25,
@@ -2352,31 +2367,31 @@ class lo extends h {
2352
2367
  roughness: 0.3,
2353
2368
  flatShading: !0
2354
2369
  });
2355
- n.center(), this.geometry = n, this.material = a;
2370
+ s.center(), this.geometry = s, this.material = r;
2356
2371
  }
2357
2372
  }
2358
- class et extends O {
2359
- constructor(e = 5, t = 0.5, o = 1, s = 5, c = 0.25) {
2373
+ class Tt extends L {
2374
+ constructor(e = 5, t = 0.5, n = 1, a = 5, c = 0.25) {
2360
2375
  super();
2361
- const n = Math.PI * 2 / e, a = n / 4;
2362
- this.moveTo(Math.cos(0) * o, -Math.sin(0) * o);
2376
+ const s = Math.PI * 2 / e, r = s / 4;
2377
+ this.moveTo(Math.cos(0) * n, -Math.sin(0) * n);
2363
2378
  for (let i = 1; i <= e; ++i)
2364
- this.lineTo(Math.cos(n * i - a * 3) * t, -Math.sin(n * i - a * 3) * t), this.lineTo(Math.cos(n * i - a * 2) * t, -Math.sin(n * i - a * 2) * t), this.lineTo(Math.cos(n * i - a) * o, -Math.sin(n * i - a) * o), this.lineTo(Math.cos(n * i) * o, -Math.sin(n * i) * o);
2365
- if (this.closePath(), c > 0 && s > 2) {
2366
- const i = new be(), l = Math.PI * 2 / s;
2379
+ this.lineTo(Math.cos(s * i - r * 3) * t, -Math.sin(s * i - r * 3) * t), this.lineTo(Math.cos(s * i - r * 2) * t, -Math.sin(s * i - r * 2) * t), this.lineTo(Math.cos(s * i - r) * n, -Math.sin(s * i - r) * n), this.lineTo(Math.cos(s * i) * n, -Math.sin(s * i) * n);
2380
+ if (this.closePath(), c > 0 && a > 2) {
2381
+ const i = new be(), l = Math.PI * 2 / a;
2367
2382
  i.moveTo(Math.cos(0) * c, -Math.sin(0) * c);
2368
- for (let m = 1; m < s; ++m)
2369
- i.lineTo(Math.cos(l * m) * c, -Math.sin(l * m) * c);
2383
+ for (let u = 1; u < a; ++u)
2384
+ i.lineTo(Math.cos(l * u) * c, -Math.sin(l * u) * c);
2370
2385
  i.lineTo(Math.cos(0) * c, -Math.sin(0) * c), this.holes.push(i);
2371
2386
  }
2372
2387
  }
2373
2388
  }
2374
- class mo extends h {
2375
- constructor(e = 5, t = 0.5, o = 1, s = 5, c = 0.25, n = 0.25) {
2389
+ class Vo extends f {
2390
+ constructor(e = 5, t = 0.5, n = 1, a = 5, c = 0.25, s = 0.25) {
2376
2391
  super();
2377
- const a = new et(e, t, o, s, c), i = new V(a, {
2378
- depth: n,
2379
- bevelEnabled: n > 0,
2392
+ const r = new Tt(e, t, n, a, c), i = new V(r, {
2393
+ depth: s,
2394
+ bevelEnabled: s > 0,
2380
2395
  bevelThickness: 0,
2381
2396
  bevelSize: 0
2382
2397
  }), l = new w({
@@ -2388,35 +2403,35 @@ class mo extends h {
2388
2403
  i.center(), this.geometry = i, this.material = l;
2389
2404
  }
2390
2405
  }
2391
- class tt extends O {
2392
- constructor(e = 1, t = 2.1, o = 1.4, s = 1.6) {
2393
- super(), this.moveTo(0, o * e / 3), this.bezierCurveTo(
2406
+ class Bt extends L {
2407
+ constructor(e = 1, t = 2.1, n = 1.4, a = 1.6) {
2408
+ super(), this.moveTo(0, n * e / 3), this.bezierCurveTo(
2394
2409
  -t * 0.375 * e,
2395
- o * e,
2410
+ n * e,
2396
2411
  // Control point 1 for the left lobe
2397
2412
  -t * e,
2398
- o * e / 3,
2413
+ n * e / 3,
2399
2414
  // Control point 2 for the left side of the heart
2400
2415
  0,
2401
- -s * e
2416
+ -a * e
2402
2417
  // Bottom tip of the heart, controlled by `tipDepth`
2403
2418
  ), this.bezierCurveTo(
2404
2419
  t * e,
2405
- o * e / 3,
2420
+ n * e / 3,
2406
2421
  // Control point 3 for the right side of the heart
2407
2422
  t * 0.375 * e,
2408
- o * e,
2423
+ n * e,
2409
2424
  // Control point 4 for the right lobe
2410
2425
  0,
2411
- o * e / 3
2426
+ n * e / 3
2412
2427
  // Close shape at the top middle
2413
2428
  );
2414
2429
  }
2415
2430
  }
2416
- class uo extends h {
2417
- constructor(e = 1, t = 1, o = 1, s = 10, c = 0.25) {
2431
+ class Xo extends f {
2432
+ constructor(e = 1, t = 1, n = 1, a = 10, c = 0.25) {
2418
2433
  super();
2419
- const n = new tt(e, t, o, s), a = new V(n, {
2434
+ const s = new Bt(e, t, n, a), r = new V(s, {
2420
2435
  depth: c,
2421
2436
  bevelEnabled: c > 0,
2422
2437
  bevelThickness: 0,
@@ -2429,28 +2444,28 @@ class uo extends h {
2429
2444
  roughness: 0.3,
2430
2445
  flatShading: !0
2431
2446
  });
2432
- a.center(), this.geometry = a, this.material = i;
2447
+ r.center(), this.geometry = r, this.material = i;
2433
2448
  }
2434
2449
  }
2435
- class ot extends O {
2436
- constructor(e = 5, t = 0.5, o = 1) {
2450
+ class Ct extends L {
2451
+ constructor(e = 5, t = 0.5, n = 1) {
2437
2452
  super();
2438
- const s = Math.PI * 2 / e, c = s / 2;
2439
- this.moveTo(Math.cos(0) * o, Math.sin(0) * o);
2440
- for (let n = 1; n <= e; ++n)
2441
- this.lineTo(Math.cos(s * n - c) * t, Math.sin(s * n - c) * t), this.lineTo(Math.cos(s * n) * o, Math.sin(s * n) * o);
2453
+ const a = Math.PI * 2 / e, c = a / 2;
2454
+ this.moveTo(Math.cos(0) * n, Math.sin(0) * n);
2455
+ for (let s = 1; s <= e; ++s)
2456
+ this.lineTo(Math.cos(a * s - c) * t, Math.sin(a * s - c) * t), this.lineTo(Math.cos(a * s) * n, Math.sin(a * s) * n);
2442
2457
  this.closePath();
2443
2458
  }
2444
2459
  }
2445
- class fo extends h {
2446
- constructor(e = 5, t = 0.5, o = 1, s = 0.25) {
2460
+ class Ro extends f {
2461
+ constructor(e = 5, t = 0.5, n = 1, a = 0.25) {
2447
2462
  super();
2448
- const c = new ot(e, t, o), n = new V(c, {
2449
- depth: s,
2450
- bevelEnabled: s > 0,
2463
+ const c = new Ct(e, t, n), s = new V(c, {
2464
+ depth: a,
2465
+ bevelEnabled: a > 0,
2451
2466
  bevelThickness: 0,
2452
2467
  bevelSize: 0
2453
- }), a = new w({
2468
+ }), r = new w({
2454
2469
  color: 16776960,
2455
2470
  emissive: 16766720,
2456
2471
  emissiveIntensity: 0.25,
@@ -2458,96 +2473,96 @@ class fo extends h {
2458
2473
  roughness: 0.3,
2459
2474
  flatShading: !0
2460
2475
  });
2461
- n.center(), this.geometry = n, this.material = a;
2476
+ s.center(), this.geometry = s, this.material = r;
2462
2477
  }
2463
2478
  }
2464
- class ho extends h {
2479
+ class Zo extends f {
2465
2480
  constructor() {
2466
- super(), this.geometry = new Ze(), this.material = new w({ color: 16777215 });
2481
+ super(), this.geometry = new xt(), this.material = new w({ color: 16777215 });
2467
2482
  }
2468
2483
  }
2469
- class po extends h {
2484
+ class Yo extends f {
2470
2485
  constructor({
2471
2486
  trunkRadiusTop: e = 0.25,
2472
2487
  trunkRadiusBottom: t = 0.4,
2473
- trunkHeight: o = 2.5,
2474
- trunkSegments: s = 14,
2488
+ trunkHeight: n = 2.5,
2489
+ trunkSegments: a = 14,
2475
2490
  trunkColor: c = 9127187,
2476
- leafSize: n = 0.8,
2477
- leafCount: a = 6,
2491
+ leafSize: s = 0.8,
2492
+ leafCount: r = 6,
2478
2493
  leafDetail: i = 0,
2479
2494
  leafSpreadRadius: l = 1.5,
2480
- leafColor: m = 2263842
2495
+ leafColor: u = 2263842
2481
2496
  } = {}) {
2482
2497
  super();
2483
- const u = new $e({
2498
+ const m = new At({
2484
2499
  trunkRadiusTop: e,
2485
2500
  trunkRadiusBottom: t,
2486
- trunkHeight: o,
2487
- trunkSegments: s,
2501
+ trunkHeight: n,
2502
+ trunkSegments: a,
2488
2503
  trunkColor: c,
2489
- leafSize: n,
2490
- leafCount: a,
2504
+ leafSize: s,
2505
+ leafCount: r,
2491
2506
  leafDetail: i,
2492
2507
  leafSpreadRadius: l,
2493
- leafColor: m
2494
- }), f = new w({
2508
+ leafColor: u
2509
+ }), h = new w({
2495
2510
  color: c,
2496
2511
  roughness: 0.9,
2497
2512
  metalness: 0,
2498
2513
  flatShading: !0
2499
- }), p = new w({
2500
- color: m,
2514
+ }), d = new w({
2515
+ color: u,
2501
2516
  roughness: 0.8,
2502
2517
  metalness: 0,
2503
2518
  flatShading: !0
2504
2519
  });
2505
- this.geometry = u, this.material = [f, p];
2520
+ this.geometry = m, this.material = [h, d];
2506
2521
  }
2507
2522
  }
2508
- class wo extends h {
2523
+ class Qo extends f {
2509
2524
  constructor({
2510
2525
  radius: e = 3,
2511
2526
  //
2512
2527
  height: t = 0.6,
2513
- widthSegments: o = 64,
2514
- heightSegments: s = 16,
2528
+ widthSegments: n = 64,
2529
+ heightSegments: a = 16,
2515
2530
  phiStart: c = 0,
2516
- phiLength: n = Math.PI * 2
2531
+ phiLength: s = Math.PI * 2
2517
2532
  } = {}) {
2518
- super(), this.geometry = new je({
2533
+ super(), this.geometry = new It({
2519
2534
  radius: e,
2520
2535
  height: t,
2521
- widthSegments: o,
2522
- heightSegments: s,
2536
+ widthSegments: n,
2537
+ heightSegments: a,
2523
2538
  phiStart: c,
2524
- phiLength: n
2539
+ phiLength: s
2525
2540
  }), this.material = new w({ color: 65280, flatShading: !0 });
2526
2541
  }
2527
2542
  }
2528
- class yo extends h {
2543
+ class Do extends f {
2529
2544
  constructor({
2530
- radius: e = ue(5, Math.PI / 10),
2545
+ radius: e = me(5, Math.PI / 10),
2531
2546
  //
2532
2547
  widthSegments: t = 64,
2533
- heightSegments: o = 32,
2534
- phiStart: s = 0,
2548
+ heightSegments: n = 32,
2549
+ phiStart: a = 0,
2535
2550
  phiLength: c = Math.PI * 2,
2536
- thetaLength: n = Math.PI / 10
2551
+ thetaLength: s = Math.PI / 10
2537
2552
  } = {}) {
2538
- super(), this.geometry = new Je({
2553
+ super(), this.geometry = new Pt({
2539
2554
  radius: e,
2540
2555
  widthSegments: t,
2541
- heightSegments: o,
2542
- phiStart: s,
2556
+ heightSegments: n,
2557
+ phiStart: a,
2543
2558
  phiLength: c,
2544
- thetaLength: n
2559
+ thetaLength: s
2545
2560
  }), this.material = new w({ color: 65280, flatShading: !0 });
2546
2561
  }
2547
2562
  }
2548
- function xo(r, { time: e = 0, waveFrequency: t = 0.2, waveAmplitude: o = 0.5 } = {}) {
2549
- r.onBeforeCompile = (s) => {
2550
- s.uniforms.time = { value: e }, s.uniforms.waveFrequency = { value: t }, s.uniforms.waveAmplitude = { value: o }, s.vertexShader = `
2563
+ function Ho(o, { time: e = 0, waveFrequency: t = 0.2, waveAmplitude: n = 0.5 } = {}) {
2564
+ o.onBeforeCompile = (a) => {
2565
+ a.uniforms.time = { value: e }, a.uniforms.waveFrequency = { value: t }, a.uniforms.waveAmplitude = { value: n }, a.vertexShader = `
2551
2566
  uniform float time;
2552
2567
  uniform float waveFrequency;
2553
2568
  uniform float waveAmplitude;
@@ -2561,20 +2576,20 @@ function xo(r, { time: e = 0, waveFrequency: t = 0.2, waveAmplitude: o = 0.5 } =
2561
2576
 
2562
2577
  return displaced;
2563
2578
  }
2564
- ` + s.vertexShader, s.vertexShader = s.vertexShader.replace(
2579
+ ` + a.vertexShader, a.vertexShader = a.vertexShader.replace(
2565
2580
  "#include <begin_vertex>",
2566
2581
  `
2567
2582
  vec3 transformed = waterDisplacement(position, normal);
2568
2583
  `
2569
- ), r.userData.shader = s;
2584
+ ), o.userData.shader = a;
2570
2585
  };
2571
2586
  }
2572
- function Mo(r, e) {
2573
- r.userData.shader && (r.userData.shader.uniforms.time.value += e);
2587
+ function jo(o, e) {
2588
+ o.userData.shader && (o.userData.shader.uniforms.time.value += e);
2574
2589
  }
2575
- function vo(r, { time: e = 0, intensity: t = 1, direction: o = z.XYZ, scale: s = 10 } = {}) {
2576
- r.onBeforeCompile = (c) => {
2577
- c.uniforms.time = { value: e }, c.uniforms.direction = { value: o }, c.uniforms.intensity = { value: t }, c.uniforms.scale = { value: s }, c.vertexShader = `
2590
+ function Ko(o, { time: e = 0, intensity: t = 1, direction: n = U.XYZ, scale: a = 10 } = {}) {
2591
+ o.onBeforeCompile = (c) => {
2592
+ c.uniforms.time = { value: e }, c.uniforms.direction = { value: n }, c.uniforms.intensity = { value: t }, c.uniforms.scale = { value: a }, c.vertexShader = `
2578
2593
  uniform float time;
2579
2594
  uniform vec3 direction;
2580
2595
  uniform float intensity;
@@ -2613,11 +2628,11 @@ function vo(r, { time: e = 0, intensity: t = 1, direction: o = z.XYZ, scale: s =
2613
2628
  transformed += normalize(direction) * n * intensity;
2614
2629
  vec3 transformedNormal = normal;
2615
2630
  `
2616
- ), r.userData.shader = c;
2631
+ ), o.userData.shader = c;
2617
2632
  };
2618
2633
  }
2619
- function go(r, e) {
2620
- r.userData.shader && (r.userData.shader.uniforms.time.value += e);
2634
+ function Jo(o, e) {
2635
+ o.userData.shader && (o.userData.shader.uniforms.time.value += e);
2621
2636
  }
2622
2637
  const ne = {
2623
2638
  uniforms: {},
@@ -2637,7 +2652,7 @@ const ne = {
2637
2652
  gl_FragColor = vec4(mix(bottomColor, topColor, y), 1.0);
2638
2653
  }
2639
2654
  `
2640
- }, nt = {
2655
+ }, kt = {
2641
2656
  uniforms: {
2642
2657
  tDiffuse: { value: null },
2643
2658
  opacity: { value: 1 }
@@ -2658,7 +2673,7 @@ const ne = {
2658
2673
  gl_FragColor = opacity * texel;
2659
2674
  }
2660
2675
  `
2661
- }, H = {
2676
+ }, D = {
2662
2677
  uniforms: {
2663
2678
  topColor: { value: new ee(51) },
2664
2679
  bottomColor: { value: new ee(17) },
@@ -2685,207 +2700,248 @@ const ne = {
2685
2700
  }
2686
2701
  `
2687
2702
  };
2688
- class bo extends h {
2703
+ class $o extends f {
2689
2704
  constructor(e = 1e3) {
2690
2705
  super(), this.geometry = new g(e, e, e), this.material = new K({
2691
2706
  vertexShader: ne.vertexShader,
2692
2707
  fragmentShader: ne.fragmentShader,
2693
- side: ae
2708
+ side: re
2694
2709
  });
2695
2710
  }
2696
2711
  }
2697
- class So extends h {
2712
+ class Wo extends f {
2698
2713
  constructor(e = 1e3) {
2699
- super(), this.geometry = new k(e, 32, 15), this.material = new K({
2700
- vertexShader: H.vertexShader,
2701
- fragmentShader: H.fragmentShader,
2702
- uniforms: H.uniforms,
2703
- side: ae
2714
+ super(), this.geometry = new T(e, 32, 15), this.material = new K({
2715
+ vertexShader: D.vertexShader,
2716
+ fragmentShader: D.fragmentShader,
2717
+ uniforms: D.uniforms,
2718
+ side: re
2704
2719
  });
2705
2720
  }
2706
2721
  }
2707
- class Go extends h {
2708
- constructor(e = Math.PI * 0.49, t = 2 * Math.PI * 0.25, o = 10, s = 2, c = 5e-3, n = 0.8) {
2722
+ class en extends f {
2723
+ constructor(e = Math.PI * 0.49, t = 2 * Math.PI * 0.25, n = 10, a = 2, c = 5e-3, s = 0.8) {
2709
2724
  super();
2710
- const a = new Be();
2711
- a.scale.setScalar(45e4), this.add(a);
2712
- const i = a.material.uniforms;
2713
- i.turbidity.value = o, i.rayleigh.value = s, i.mieCoefficient.value = c, i.mieDirectionalG.value = n, this.skyUniforms = i, this.sunPosition(e, t);
2725
+ const r = new Ee();
2726
+ r.scale.setScalar(45e4), this.add(r);
2727
+ const i = r.material.uniforms;
2728
+ i.turbidity.value = n, i.rayleigh.value = a, i.mieCoefficient.value = c, i.mieDirectionalG.value = s, this.skyUniforms = i, this.sunPosition(e, t);
2714
2729
  }
2715
2730
  sunPosition(e, t) {
2716
- const o = new M(), s = this.skyUniforms;
2717
- o.setFromSphericalCoords(1, e, t), s.sunPosition.value.copy(o);
2731
+ const n = new M(), a = this.skyUniforms;
2732
+ n.setFromSphericalCoords(1, e, t), a.sunPosition.value.copy(n);
2718
2733
  }
2719
2734
  }
2720
- const Io = (r) => {
2721
- const e = new Uint8Array(4 * r * r);
2722
- for (let o = 0; o < r * r; o++) {
2723
- const s = o * 4, c = (o % r ^ Math.floor(o / r)) & 1 ? 255 : 0;
2724
- e[s] = c, e[s + 1] = c, e[s + 2] = c, e[s + 3] = 255;
2735
+ const tn = (o) => {
2736
+ const e = new Uint8Array(4 * o * o);
2737
+ for (let n = 0; n < o * o; n++) {
2738
+ const a = n * 4, c = (n % o ^ Math.floor(n / o)) & 1 ? 255 : 0;
2739
+ e[a] = c, e[a + 1] = c, e[a + 2] = c, e[a + 3] = 255;
2725
2740
  }
2726
- const t = new Se(e, r, r, Ge, Ie);
2741
+ const t = new Se(e, o, o, Ie, Ge);
2727
2742
  return t.wrapS = te, t.wrapT = te, t.minFilter = Pe, t.needsUpdate = !0, t;
2728
2743
  };
2729
- function Po(r) {
2730
- const e = new J().setFromObject(r), t = new M();
2731
- e.getCenter(t), r.position.sub(t);
2732
- }
2733
- function Ao(r, e = new M(0, 0, 0)) {
2734
- const t = new J().setFromObject(r), o = new M();
2735
- t.getCenter(o);
2736
- const s = new M().subVectors(e, o);
2737
- r.position.add(s);
2738
- }
2739
- function Bo(r) {
2740
- r.computeBoundingBox();
2741
- const t = r.boundingBox.getCenter(new M());
2742
- r.translateX(-t.x), r.translateY(-t.y), r.translateZ(-t.z);
2743
- }
2744
- function ko(r) {
2745
- const t = new J().setFromObject(r).getCenter(new M());
2746
- r.translateX(-t.x), r.translateY(-t.y), r.translateZ(-t.z), r.updateMatrixWorld(!0);
2747
- }
2748
- function To(r) {
2749
- r.geometry.computeBoundingBox();
2750
- const t = r.geometry.boundingBox.getCenter(new M());
2751
- r.geometry.translate(-t.x, -t.y, -t.z);
2752
- }
2753
- class Eo {
2744
+ function on(o) {
2745
+ const e = new J().setFromObject(o), t = new M();
2746
+ e.getCenter(t), o.position.sub(t);
2747
+ }
2748
+ function nn(o, e = new M(0, 0, 0)) {
2749
+ const t = new J().setFromObject(o), n = new M();
2750
+ t.getCenter(n);
2751
+ const a = new M().subVectors(e, n);
2752
+ o.position.add(a);
2753
+ }
2754
+ function sn(o) {
2755
+ o.computeBoundingBox();
2756
+ const t = o.boundingBox.getCenter(new M());
2757
+ o.translateX(-t.x), o.translateY(-t.y), o.translateZ(-t.z);
2758
+ }
2759
+ function Nt(o, e, t) {
2760
+ return Math.max(0, Math.min(1, (o - e) / (t - e)));
2761
+ }
2762
+ function an(o, e, t, n, a, c = 20, s = 0, r = 1) {
2763
+ const i = [];
2764
+ for (let l = 0; l <= c; l++) {
2765
+ const u = l / c, m = o(Nt(u, s, r)), h = e + m * (t - e), d = n + u * (a - n);
2766
+ i.push(new b(h, d));
2767
+ }
2768
+ return i;
2769
+ }
2770
+ function rn(o) {
2771
+ const t = new J().setFromObject(o).getCenter(new M());
2772
+ o.translateX(-t.x), o.translateY(-t.y), o.translateZ(-t.z), o.updateMatrixWorld(!0);
2773
+ }
2774
+ function cn(o) {
2775
+ o.geometry.computeBoundingBox();
2776
+ const t = o.geometry.boundingBox.getCenter(new M());
2777
+ o.geometry.translate(-t.x, -t.y, -t.z);
2778
+ }
2779
+ class ln {
2754
2780
  static dispose(e) {
2755
2781
  e == null || e.traverse((t) => {
2756
- t.geometry && t.geometry.dispose(), t.material && (Array.isArray(t.material) ? t.material.forEach((o) => o.dispose()) : t.material.dispose());
2782
+ t.geometry && t.geometry.dispose(), t.material && (Array.isArray(t.material) ? t.material.forEach((n) => n.dispose()) : t.material.dispose());
2757
2783
  });
2758
2784
  }
2759
- static fadeBetween(e, t, o, s, c = 1) {
2760
- const n = new ke(e), a = new oe(o, t);
2761
- n.addPass(a);
2762
- const i = new Te(nt);
2763
- i.uniforms.opacity.value = 1, n.addPass(i);
2785
+ static fadeBetween(e, t, n, a, c = 1) {
2786
+ const s = new Te(e), r = new oe(n, t);
2787
+ s.addPass(r);
2788
+ const i = new Be(kt);
2789
+ i.uniforms.opacity.value = 1, s.addPass(i);
2764
2790
  let l = null;
2765
- function m(f) {
2766
- l || (l = f);
2767
- const d = (f - l) / 1e3 / c;
2768
- i.uniforms.opacity.value = Math.max(1 - d, 0), d < 1 ? (n.render(), requestAnimationFrame(m)) : (n.passes[0] = new oe(s, t), l = null, requestAnimationFrame(u));
2791
+ function u(h) {
2792
+ l || (l = h);
2793
+ const p = (h - l) / 1e3 / c;
2794
+ i.uniforms.opacity.value = Math.max(1 - p, 0), p < 1 ? (s.render(), requestAnimationFrame(u)) : (s.passes[0] = new oe(a, t), l = null, requestAnimationFrame(m));
2769
2795
  }
2770
- function u(f) {
2771
- l || (l = f);
2772
- const d = (f - l) / 1e3 / c;
2773
- i.uniforms.opacity.value = Math.min(d, 1), d < 1 && (n.render(), requestAnimationFrame(u));
2796
+ function m(h) {
2797
+ l || (l = h);
2798
+ const p = (h - l) / 1e3 / c;
2799
+ i.uniforms.opacity.value = Math.min(p, 1), p < 1 && (s.render(), requestAnimationFrame(m));
2774
2800
  }
2775
- requestAnimationFrame(m);
2801
+ requestAnimationFrame(u);
2776
2802
  }
2777
2803
  }
2778
2804
  export {
2779
- Qt as Beaker,
2780
- Ye as BeakerGeometry,
2781
- gt as BifurcatedStaircaseGeometry,
2782
- ho as Bone,
2783
- Ze as BoneGeometry,
2784
- Ct as Book,
2805
+ Go as Beaker,
2806
+ Mt as BeakerGeometry,
2807
+ Jt as BifurcatedStaircaseGeometry,
2808
+ Zo as Bone,
2809
+ xt as BoneGeometry,
2810
+ io as Book,
2785
2811
  ce as BookGeometry,
2786
- Vt as Bookshelf,
2787
- Oe as BookshelfGeometry,
2788
- jt as Bottle,
2789
- yt as Bubbling,
2790
- Kt as BunsenBurner,
2791
- lo as Burst,
2792
- We as BurstShape,
2793
- Zt as Candle,
2794
- Ft as CrossHeadstone,
2795
- Ne as CrossHeadstoneGeometry,
2796
- bo as DaySkybox,
2797
- Xt as Desk,
2798
- bt as DioramaGeometry,
2799
- z as Direction,
2800
- wt as Easing,
2801
- Jt as ElectricPanel,
2802
- $t as ErlenmeyerFlask,
2803
- Re as ErlenmeyerFlaskGeometry,
2812
+ xo as Bookshelf,
2813
+ dt as BookshelfGeometry,
2814
+ Po as Bottle,
2815
+ Dt as Bubbling,
2816
+ Ao as BunsenBurner,
2817
+ Lo as Burst,
2818
+ Et as BurstShape,
2819
+ vo as Candle,
2820
+ lo as CrossHeadstone,
2821
+ lt as CrossHeadstoneGeometry,
2822
+ $o as DaySkybox,
2823
+ Mo as Desk,
2824
+ $t as DioramaGeometry,
2825
+ U as Direction,
2826
+ Qt as Easing,
2827
+ Eo as ElectricPanel,
2828
+ To as ErlenmeyerFlask,
2829
+ vt as ErlenmeyerFlaskGeometry,
2804
2830
  X as Falloff,
2805
- Lt as FenceColumn,
2806
- Le as FenceColumnGeometry,
2807
- Wt as Flask,
2808
- mo as Gear,
2809
- et as GearShape,
2810
- uo as Heart,
2811
- tt as HeartShape,
2812
- wo as Hill,
2813
- je as HillGeometry,
2814
- St as LShapedStaircaseGeometry,
2815
- Yt as Lantern,
2816
- eo as LeverPanel,
2817
- Nt as Mausoleum,
2818
- to as Microscope,
2819
- Et as Moon,
2820
- oo as MortarAndPestle,
2821
- De as MortarGeometry,
2822
- Rt as MossyRocks,
2823
- yo as Mound,
2824
- Je as MoundGeometry,
2825
- So as NightSkybox,
2826
- zt as ObeliskHeadstone,
2827
- ze as ObeliskHeadstoneGeometry,
2828
- Dt as Rock,
2829
- Xe as RockGeometry,
2830
- Ht as Rocks,
2831
- Ut as RoundedHeadstone,
2832
- Ue as RoundedHeadstoneGeometry,
2833
- Eo as SceneUtils,
2834
- Pt as SimpleLeafGeometry,
2835
- Gt as SpiralStaircaseGeometry,
2836
- no as SpiralTube,
2837
- _t as SquareHeadstone,
2838
- _e as SquareHeadstoneGeometry,
2839
- It as StaircaseGeometry,
2840
- so as Stand,
2841
- He as StandGeometry,
2842
- fo as Star,
2843
- ot as StarShape,
2844
- ro as TeslaCoil,
2845
- ao as TestTube,
2846
- Q as TestTubeGeometry,
2847
- co as TestTubeRack,
2848
- po as Tree,
2849
- $e as TreeGeometry,
2850
- Go as TwilightSkybox,
2851
- io as WineBottle,
2852
- Qe as WineBottleGeometry,
2853
- qt as WroughtIronBar,
2854
- me as WroughtIronBarGeometry,
2855
- Ot as WroughtIronFence,
2856
- qe as WroughtIronFenceGeometry,
2857
- vo as addNoiseDisplacement,
2858
- xo as addWaterDisplacement,
2859
- Ke as capHeightFromRadius,
2860
- Bt as capWidthFromRadius,
2861
- Tt as cartesianToSpherical,
2862
- Po as centerGroup,
2863
- Ao as centerGroupAtTarget,
2864
- Bo as centerInstancedMesh,
2865
- ko as centerMesh,
2866
- To as centerMeshGeometry,
2867
- Io as checkerboardTexture,
2831
+ po as FenceColumn,
2832
+ ft as FenceColumnGeometry,
2833
+ Bo as Flask,
2834
+ Vo as Gear,
2835
+ Tt as GearShape,
2836
+ Xo as Heart,
2837
+ Bt as HeartShape,
2838
+ Qo as Hill,
2839
+ It as HillGeometry,
2840
+ Wt as LShapedStaircaseGeometry,
2841
+ go as Lantern,
2842
+ Co as LeverPanel,
2843
+ uo as Mausoleum,
2844
+ ko as Microscope,
2845
+ co as Moon,
2846
+ No as MortarAndPestle,
2847
+ gt as MortarGeometry,
2848
+ bo as MossyRocks,
2849
+ Do as Mound,
2850
+ Pt as MoundGeometry,
2851
+ Wo as NightSkybox,
2852
+ mo as ObeliskHeadstone,
2853
+ ut as ObeliskHeadstoneGeometry,
2854
+ So as Rock,
2855
+ yt as RockGeometry,
2856
+ Io as Rocks,
2857
+ ho as RoundedHeadstone,
2858
+ mt as RoundedHeadstoneGeometry,
2859
+ ln as SceneUtils,
2860
+ oo as SimpleLeafGeometry,
2861
+ eo as SpiralStaircaseGeometry,
2862
+ _o as SpiralTube,
2863
+ fo as SquareHeadstone,
2864
+ ht as SquareHeadstoneGeometry,
2865
+ to as StaircaseGeometry,
2866
+ Uo as Stand,
2867
+ bt as StandGeometry,
2868
+ Ro as Star,
2869
+ Ct as StarShape,
2870
+ Fo as TeslaCoil,
2871
+ Oo as TestTube,
2872
+ H as TestTubeGeometry,
2873
+ zo as TestTubeRack,
2874
+ Yo as Tree,
2875
+ At as TreeGeometry,
2876
+ en as TwilightSkybox,
2877
+ qo as WineBottle,
2878
+ St as WineBottleGeometry,
2879
+ wo as WroughtIronBar,
2880
+ ue as WroughtIronBarGeometry,
2881
+ yo as WroughtIronFence,
2882
+ pt as WroughtIronFenceGeometry,
2883
+ Ko as addNoiseDisplacement,
2884
+ Ho as addWaterDisplacement,
2885
+ Gt as capHeightFromRadius,
2886
+ so as capWidthFromRadius,
2887
+ ro as cartesianToSpherical,
2888
+ on as centerGroup,
2889
+ nn as centerGroupAtTarget,
2890
+ sn as centerInstancedMesh,
2891
+ rn as centerMesh,
2892
+ cn as centerMeshGeometry,
2893
+ tn as checkerboardTexture,
2894
+ je as circularEaseIn,
2895
+ Je as circularEaseInOut,
2896
+ Ke as circularEaseOut,
2897
+ et as concave,
2898
+ tt as convex,
2899
+ Oe as cubicEaseIn,
2900
+ qe as cubicEaseInOut,
2901
+ ze as cubicEaseOut,
2868
2902
  ne as daySkyShader,
2869
- mt as displacementBrush,
2870
- nt as fadeShader,
2871
- ut as flattenBrush,
2872
- Ce as logarithmicRandomMax,
2873
- Fe as logarithmicRandomMin,
2874
- H as nightSkyShader,
2875
- ft as noiseBrush,
2876
- At as radiusFromCapHeight,
2877
- ue as radiusFromCapWidth,
2878
- Ee as randomFloat,
2879
- xt as randomInteger,
2880
- Ve as randomTransformVertices,
2881
- Mt as rowOfBooksByCount,
2882
- vt as rowOfBooksByLength,
2903
+ Lt as displacementBrush,
2904
+ Qe as exponentialEaseIn,
2905
+ He as exponentialEaseInOut,
2906
+ De as exponentialEaseOut,
2907
+ kt as fadeShader,
2908
+ Vt as flattenBrush,
2909
+ at as gaussian,
2910
+ an as interpolateCurve,
2911
+ st as inverse,
2912
+ $e as linear,
2913
+ ot as logarithmic,
2914
+ ct as logarithmicRandomMax,
2915
+ it as logarithmicRandomMin,
2916
+ D as nightSkyShader,
2917
+ Xt as noiseBrush,
2918
+ _e as quadraticEaseIn,
2919
+ Fe as quadraticEaseInOut,
2920
+ Ue as quadraticEaseOut,
2921
+ Le as quarticEaseIn,
2922
+ Xe as quarticEaseInOut,
2923
+ Ve as quarticEaseOut,
2924
+ Re as quinticEaseIn,
2925
+ Ye as quinticEaseInOut,
2926
+ Ze as quinticEaseOut,
2927
+ no as radiusFromCapHeight,
2928
+ me as radiusFromCapWidth,
2929
+ rt as randomFloat,
2930
+ Ht as randomInteger,
2931
+ wt as randomTransformVertices,
2932
+ jt as rowOfBooksByCount,
2933
+ Kt as rowOfBooksByLength,
2883
2934
  le as rowOfBooksByScales,
2884
- ht as smoothBrush,
2885
- kt as sphericalToCartesian,
2886
- dt as spikeBrush,
2887
- pt as twistBrush,
2888
- go as updateNoiseDisplacementTime,
2889
- Mo as updateWaterDisplacementTime
2935
+ Ce as sineEaseIn,
2936
+ Ne as sineEaseInOut,
2937
+ ke as sineEaseOut,
2938
+ Rt as smoothBrush,
2939
+ We as smoothstep,
2940
+ ao as sphericalToCartesian,
2941
+ Zt as spikeBrush,
2942
+ nt as squareRoot,
2943
+ Yt as twistBrush,
2944
+ Jo as updateNoiseDisplacementTime,
2945
+ jo as updateWaterDisplacementTime
2890
2946
  };
2891
2947
  //# sourceMappingURL=index.es.js.map