three-low-poly 0.9.7 → 0.9.8

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