three-low-poly 0.9.8 → 0.9.9

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