three-low-poly 0.9.6 → 0.9.7

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