three-low-poly 0.9.13 → 0.9.15

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,216 +1,489 @@
1
- var ve = Object.defineProperty;
2
- var Me = (t, e, o) => e in t ? ve(t, e, { enumerable: !0, configurable: !0, writable: !0, value: o }) : t[e] = o;
3
- var N = (t, e, o) => Me(t, typeof e != "symbol" ? e + "" : e, o);
4
- import { Vector3 as g, MathUtils as F, Quaternion as xe, Group as A, SphereGeometry as z, MeshStandardMaterial as w, Mesh as d, BufferGeometry as I, BufferAttribute as R, BoxGeometry as S, InstancedMesh as ge, Matrix4 as ce, Float32BufferAttribute as D, ConeGeometry as Z, CylinderGeometry as E, Vector2 as b, LatheGeometry as H, CircleGeometry as be, TorusGeometry as ue, DodecahedronGeometry as se, ShaderMaterial as $, Shape as Y, ExtrudeGeometry as j, MeshBasicMaterial as Se, PointLight as me, MeshPhysicalMaterial as J, DoubleSide as q, CatmullRomCurve3 as Ie, TubeGeometry as Ee, Path as Ae, Color as K, BackSide as re, DataTexture as Ge, RGBAFormat as Pe, UnsignedByteType as Te, RepeatWrapping as ie, NearestFilter as Ce, Box3 as ae } from "three";
5
- const L = {
6
- UP: new g(0, 1, 0),
7
- DOWN: new g(0, -1, 0),
8
- LEFT: new g(-1, 0, 0),
9
- RIGHT: new g(1, 0, 0),
10
- FORWARD: new g(0, 0, 1),
11
- BACKWARD: new g(0, 0, -1),
12
- X: new g(1, 0, 0),
13
- Y: new g(0, 1, 0),
14
- Z: new g(0, 0, 1),
15
- XY: new g(1, 1, 0).normalize(),
16
- XZ: new g(1, 0, 1).normalize(),
17
- YZ: new g(0, 1, 1).normalize(),
18
- XYZ: new g(1, 1, 1).normalize()
1
+ var gt = Object.defineProperty;
2
+ var bt = (e, t, o) => t in e ? gt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[t] = o;
3
+ var g = (e, t, o) => bt(e, typeof t != "symbol" ? t + "" : t, o);
4
+ import { Vector3 as b, MathUtils as O, Quaternion as It, InstancedMesh as rt, SphereGeometry as N, MeshStandardMaterial as M, Matrix4 as X, BufferGeometry as S, Float32BufferAttribute as q, DoubleSide as L, Euler as At, BufferAttribute as R, BoxGeometry as A, ConeGeometry as Z, CylinderGeometry as E, Vector2 as I, LatheGeometry as Y, CircleGeometry as St, TorusGeometry as ht, DodecahedronGeometry as at, Group as G, ShaderMaterial as $, Mesh as y, Shape as j, ExtrudeGeometry as H, MeshBasicMaterial as Et, PointLight as ft, MeshPhysicalMaterial as J, CatmullRomCurve3 as Pt, TubeGeometry as Tt, Path as Gt, Color as K, BackSide as it, DataTexture as Bt, RGBAFormat as Ct, UnsignedByteType as Ut, RepeatWrapping as ut, NearestFilter as zt, Box3 as ct } from "three";
5
+ function ro(e, t, o, n) {
6
+ const r = e.position.clone(), s = r.clone().add(e.getWorldDirection(new b()).multiplyScalar(-t));
7
+ let a = null;
8
+ function i(c) {
9
+ a === null && (a = c);
10
+ const u = (c - a) / o;
11
+ if (u >= 1) {
12
+ e.position.copy(s), n && n();
13
+ return;
14
+ }
15
+ e.position.lerpVectors(r, s, u), requestAnimationFrame(i);
16
+ }
17
+ requestAnimationFrame(i);
18
+ }
19
+ function ao(e, t, o, n) {
20
+ const r = t.length - 1;
21
+ let s = null;
22
+ function a(i) {
23
+ s === null && (s = i);
24
+ const l = (i - s) / o;
25
+ if (l >= 1) {
26
+ e.position.copy(t[t.length - 1]), n && n();
27
+ return;
28
+ }
29
+ const u = l * r, m = Math.floor(u), h = u - m, f = t[m], p = t[m + 1];
30
+ e.position.lerpVectors(f, p, h), e.lookAt(p), requestAnimationFrame(a);
31
+ }
32
+ requestAnimationFrame(a);
33
+ }
34
+ function io(e, t, o, n, r) {
35
+ let s = null;
36
+ function a(i) {
37
+ s || (s = i);
38
+ const l = (i - s) / n;
39
+ if (l >= 1) {
40
+ r && r();
41
+ return;
42
+ }
43
+ const u = l * Math.PI * 2, m = t.x + o * Math.cos(u), h = t.z + o * Math.sin(u);
44
+ e.position.set(m, e.position.y, h), e.lookAt(t), requestAnimationFrame(a);
45
+ }
46
+ requestAnimationFrame(a);
47
+ }
48
+ function co(e, t, o, n, r, s) {
49
+ let a = null, i = 0;
50
+ function c(l) {
51
+ a === null && (a = l);
52
+ const u = l - a, m = n / r, h = u % m / m, f = Math.sin(h * Math.PI * 2) * Math.PI / 6, p = t.x + o * Math.sin(f), d = t.z + o * Math.cos(f);
53
+ if (e.position.set(p, e.position.y, d), e.lookAt(t), u >= (i + 1) * m && i++, i >= r) {
54
+ s && s();
55
+ return;
56
+ }
57
+ requestAnimationFrame(c);
58
+ }
59
+ requestAnimationFrame(c);
60
+ }
61
+ function lo(e, t, o, n, r, s, a) {
62
+ let i = null;
63
+ function c(l) {
64
+ i === null && (i = l);
65
+ const m = (l - i) / s;
66
+ if (m >= 1) {
67
+ a && a();
68
+ return;
69
+ }
70
+ const h = m * Math.PI * 2 * r, f = t.x + o * Math.cos(h), p = t.z + o * Math.sin(h), d = t.y + n * m;
71
+ e.position.set(f, d, p), e.lookAt(t), requestAnimationFrame(c);
72
+ }
73
+ requestAnimationFrame(c);
74
+ }
75
+ function uo(e, t, o, n) {
76
+ const r = e.position.clone();
77
+ let s = null;
78
+ function a(i) {
79
+ if (s === null && (s = i), (i - s) / o >= 1) {
80
+ e.position.copy(r), n && n();
81
+ return;
82
+ }
83
+ const u = new b(
84
+ (Math.random() - 0.5) * t,
85
+ (Math.random() - 0.5) * t,
86
+ (Math.random() - 0.5) * t
87
+ );
88
+ e.position.copy(r).add(u), requestAnimationFrame(a);
89
+ }
90
+ requestAnimationFrame(a);
91
+ }
92
+ function mo(e, t, o, n, r, s) {
93
+ const a = e.fov;
94
+ e.fov = o, e.updateProjectionMatrix();
95
+ let i = null;
96
+ function c(l) {
97
+ i === null && (i = l);
98
+ const m = (l - i) / r;
99
+ if (m >= 1) {
100
+ e.fov = n, e.updateProjectionMatrix(), e.lookAt(t), e.fov = a, e.updateProjectionMatrix(), s && s();
101
+ return;
102
+ }
103
+ e.fov = O.lerp(o, n, m), e.updateProjectionMatrix(), e.lookAt(t), requestAnimationFrame(c);
104
+ }
105
+ requestAnimationFrame(c);
106
+ }
107
+ const W = {
108
+ UP: new b(0, 1, 0),
109
+ DOWN: new b(0, -1, 0),
110
+ LEFT: new b(-1, 0, 0),
111
+ RIGHT: new b(1, 0, 0),
112
+ FORWARD: new b(0, 0, 1),
113
+ BACKWARD: new b(0, 0, -1)
19
114
  }, Q = {
20
- LINEAR: (t, e) => 1 - t / e,
21
- QUADRATIC: (t, e) => Math.pow(1 - t / e, 2),
22
- SQUARE_ROOT: (t, e) => Math.pow(1 - t / e, 0.5),
23
- LOGARITHMIC: (t, e) => Math.log(1 + (e - t)) / Math.log(1 + e),
24
- SINE: (t, e) => Math.cos(t / e * Math.PI / 2),
25
- EXPONENTIAL: (t, e) => Math.exp(-t / e),
26
- CUBIC: (t, e) => Math.pow(1 - t / e, 3),
27
- GAUSSIAN: (t, e) => Math.exp(-Math.pow(t, 2) / (2 * Math.pow(e / 3, 2))),
28
- INVERSE: (t, e) => e / (e + t),
29
- SMOOTHSTEP: (t, e) => {
30
- const o = Math.max(0, Math.min(1, 1 - t / e));
115
+ LINEAR: (e, t) => 1 - e / t,
116
+ QUADRATIC: (e, t) => Math.pow(1 - e / t, 2),
117
+ SQUARE_ROOT: (e, t) => Math.pow(1 - e / t, 0.5),
118
+ LOGARITHMIC: (e, t) => Math.log(1 + (t - e)) / Math.log(1 + t),
119
+ SINE: (e, t) => Math.cos(e / t * Math.PI / 2),
120
+ EXPONENTIAL: (e, t) => Math.exp(-e / t),
121
+ CUBIC: (e, t) => Math.pow(1 - e / t, 3),
122
+ GAUSSIAN: (e, t) => Math.exp(-Math.pow(e, 2) / (2 * Math.pow(t / 3, 2))),
123
+ INVERSE: (e, t) => t / (t + e),
124
+ SMOOTHSTEP: (e, t) => {
125
+ const o = Math.max(0, Math.min(1, 1 - e / t));
31
126
  return o * o * (3 - 2 * o);
32
127
  }
33
- }, $t = (t, e, o, n, a = L.UP, r = Q.LINEAR) => {
34
- const s = t.attributes.position;
35
- for (let c = 0; c < s.count; c++) {
36
- const i = new g();
37
- i.fromBufferAttribute(s, c);
38
- const l = i.distanceTo(e);
128
+ }, ho = (e, t, o, n, r = W.UP, s = Q.LINEAR) => {
129
+ const a = e.attributes.position;
130
+ for (let i = 0; i < a.count; i++) {
131
+ const c = new b();
132
+ c.fromBufferAttribute(a, i);
133
+ const l = c.distanceTo(t);
39
134
  if (l < o) {
40
- const m = r(l, o) * n;
41
- i.add(a.clone().multiplyScalar(m)), s.setXYZ(c, i.x, i.y, i.z);
135
+ const m = s(l, o) * n;
136
+ c.add(r.clone().multiplyScalar(m)), a.setXYZ(i, c.x, c.y, c.z);
42
137
  }
43
138
  }
44
- s.needsUpdate = !0;
45
- }, Jt = (t, e, o, n, a, r = L.UP, s = Q.LINEAR) => {
46
- const c = t.attributes.position;
47
- for (let i = 0; i < c.count; i++) {
48
- const l = new g();
49
- l.fromBufferAttribute(c, i);
50
- const u = l.distanceTo(e);
139
+ a.needsUpdate = !0;
140
+ }, fo = (e, t, o, n, r, s = W.UP, a = Q.LINEAR) => {
141
+ const i = e.attributes.position;
142
+ for (let c = 0; c < i.count; c++) {
143
+ const l = new b();
144
+ l.fromBufferAttribute(i, c);
145
+ const u = l.distanceTo(t);
51
146
  if (u < o) {
52
- const h = s(u, o) * a, f = l.dot(r.normalize()), p = n - f;
53
- l.add(r.clone().multiplyScalar(p * h)), c.setXYZ(i, l.x, l.y, l.z);
147
+ const h = a(u, o) * r, f = l.dot(s.normalize()), p = n - f;
148
+ l.add(s.clone().multiplyScalar(p * h)), i.setXYZ(c, l.x, l.y, l.z);
54
149
  }
55
150
  }
56
- c.needsUpdate = !0;
57
- }, Wt = (t, e, o, n, a = L.UP, r = Q.LINEAR) => {
58
- const s = t.attributes.position;
59
- for (let c = 0; c < s.count; c++) {
60
- const i = new g();
61
- i.fromBufferAttribute(s, c);
62
- const l = i.distanceTo(e);
151
+ i.needsUpdate = !0;
152
+ }, po = (e, t, o, n, r = W.UP, s = Q.LINEAR) => {
153
+ const a = e.attributes.position;
154
+ for (let i = 0; i < a.count; i++) {
155
+ const c = new b();
156
+ c.fromBufferAttribute(a, i);
157
+ const l = c.distanceTo(t);
63
158
  if (l < o) {
64
- const u = r(l, o), m = n * u, h = a.clone().normalize();
65
- i.x += F.randFloatSpread(m) * h.x, i.y += F.randFloatSpread(m) * h.y, i.z += F.randFloatSpread(m) * h.z, s.setXYZ(c, i.x, i.y, i.z);
159
+ const u = s(l, o), m = n * u, h = r.clone().normalize();
160
+ c.x += O.randFloatSpread(m) * h.x, c.y += O.randFloatSpread(m) * h.y, c.z += O.randFloatSpread(m) * h.z, a.setXYZ(i, c.x, c.y, c.z);
66
161
  }
67
162
  }
68
- s.needsUpdate = !0;
69
- }, eo = (t, e, o, n) => {
70
- const a = t.attributes.position, r = new g();
71
- for (let s = 0; s < a.count; s++) {
72
- const c = new g();
73
- if (c.fromBufferAttribute(a, s), c.distanceTo(e) < o) {
74
- let l = new g(), u = 0;
75
- for (let m = 0; m < a.count; m++)
76
- r.fromBufferAttribute(a, m), r.distanceTo(c) < o && (l.add(r), u++);
77
- u > 0 && (l.divideScalar(u), c.lerp(l, n), a.setXYZ(s, c.x, c.y, c.z));
163
+ a.needsUpdate = !0;
164
+ }, yo = (e, t, o, n) => {
165
+ const r = e.attributes.position, s = new b();
166
+ for (let a = 0; a < r.count; a++) {
167
+ const i = new b();
168
+ if (i.fromBufferAttribute(r, a), i.distanceTo(t) < o) {
169
+ let l = new b(), u = 0;
170
+ for (let m = 0; m < r.count; m++)
171
+ s.fromBufferAttribute(r, m), s.distanceTo(i) < o && (l.add(s), u++);
172
+ u > 0 && (l.divideScalar(u), i.lerp(l, n), r.setXYZ(a, i.x, i.y, i.z));
78
173
  }
79
174
  }
80
- a.needsUpdate = !0;
81
- }, to = (t, e, o, n, a = !1, r = Q.LINEAR) => {
82
- const s = t.attributes.position;
83
- for (let c = 0; c < s.count; c++) {
84
- const i = new g();
85
- i.fromBufferAttribute(s, c);
86
- const l = i.distanceTo(e);
175
+ r.needsUpdate = !0;
176
+ }, Mo = (e, t, o, n, r = !1, s = Q.LINEAR) => {
177
+ const a = e.attributes.position;
178
+ for (let i = 0; i < a.count; i++) {
179
+ const c = new b();
180
+ c.fromBufferAttribute(a, i);
181
+ const l = c.distanceTo(t);
87
182
  if (l < o) {
88
- const m = r(l, o) * n * (a ? -1 : 1), h = i.clone().sub(e).normalize();
89
- i.add(h.multiplyScalar(m)), s.setXYZ(c, i.x, i.y, i.z);
183
+ const m = s(l, o) * n * (r ? -1 : 1), h = c.clone().sub(t).normalize();
184
+ c.add(h.multiplyScalar(m)), a.setXYZ(i, c.x, c.y, c.z);
90
185
  }
91
186
  }
92
- s.needsUpdate = !0;
93
- }, oo = (t, e, o, n, a = L.UP, r = Q.LINEAR) => {
94
- const s = t.attributes.position, c = new xe();
95
- for (let i = 0; i < s.count; i++) {
96
- const l = new g();
97
- l.fromBufferAttribute(s, i);
98
- const u = l.distanceTo(e);
187
+ a.needsUpdate = !0;
188
+ }, wo = (e, t, o, n, r = W.UP, s = Q.LINEAR) => {
189
+ const a = e.attributes.position, i = new It();
190
+ for (let c = 0; c < a.count; c++) {
191
+ const l = new b();
192
+ l.fromBufferAttribute(a, c);
193
+ const u = l.distanceTo(t);
99
194
  if (u < o) {
100
- const h = r(u, o) * n;
101
- c.setFromAxisAngle(a, h), l.sub(e).applyQuaternion(c).add(e), s.setXYZ(i, l.x, l.y, l.z);
195
+ const h = s(u, o) * n;
196
+ i.setFromAxisAngle(r, h), l.sub(t).applyQuaternion(i).add(t), a.setXYZ(c, l.x, l.y, l.z);
102
197
  }
103
198
  }
104
- s.needsUpdate = !0;
105
- }, Be = (t) => 1 - Math.cos(t * Math.PI / 2), Ue = (t) => Math.sin(t * Math.PI / 2), Ne = (t) => -0.5 * (Math.cos(Math.PI * t) - 1), Oe = (t) => t * t, ze = (t) => 1 - Math.pow(1 - t, 2), _e = (t) => t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2, ke = (t) => t * t * t, Re = (t) => 1 - Math.pow(1 - t, 3), Fe = (t) => t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2, Le = (t) => t * t * t * t, De = (t) => 1 - Math.pow(1 - t, 4), qe = (t) => t < 0.5 ? 8 * t * t * t * t : 1 - Math.pow(-2 * t + 2, 4) / 2, Xe = (t) => t * t * t * t * t, Ve = (t) => 1 - Math.pow(1 - t, 5), Ze = (t) => t < 0.5 ? 16 * t * t * t * t * t : 1 - Math.pow(-2 * t + 2, 5) / 2, He = (t) => t === 0 ? 0 : Math.pow(2, 10 * t - 10), Ye = (t) => t === 1 ? 1 : 1 - Math.pow(2, -10 * t), je = (t) => t === 0 ? 0 : t === 1 ? 1 : t < 0.5 ? Math.pow(2, 20 * t - 10) / 2 : (2 - Math.pow(2, -20 * t + 10)) / 2, Qe = (t) => 1 - Math.sqrt(1 - Math.pow(t, 2)), Ke = (t) => Math.sqrt(1 - Math.pow(t - 1, 2)), $e = (t) => t < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * t, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * t + 2, 2)) + 1) / 2, Je = (t) => t, We = (t) => t * t * (3 - 2 * t), et = (t) => 1 - Math.pow(1 - t, 0.3), tt = (t) => Math.pow(t, 0.3), ot = (t) => Math.log(Math.max(0.01, t)) / Math.log(2), nt = (t) => Math.sqrt(t), st = (t) => 1 - t, rt = (t) => Math.exp(-Math.pow(t - 0.5, 2) / (2 * 0.5)), no = {
106
- SINE_EASE_IN: Be,
107
- SINE_EASE_OUT: Ue,
108
- SINE_EASE_IN_OUT: Ne,
109
- QUADRATIC_EASE_IN: Oe,
110
- QUADRATIC_EASE_OUT: ze,
111
- QUADRATIC_EASE_IN_OUT: _e,
112
- CUBIC_EASE_IN: ke,
113
- CUBIC_EASE_OUT: Re,
114
- CUBIC_EASE_IN_OUT: Fe,
115
- QUARTIC_EASE_IN: Le,
116
- QUARTIC_EASE_OUT: De,
117
- QUARTIC_EASE_IN_OUT: qe,
118
- QUINTIC_EASE_IN: Xe,
119
- QUINTIC_EASE_OUT: Ve,
120
- QUINTIC_EASE_IN_OUT: Ze,
121
- EXPONENTIAL_EASE_IN: He,
122
- EXPONENTIAL_EASE_OUT: Ye,
123
- EXPONENTIAL_EASE_IN_OUT: je,
124
- CIRCULAR_EASE_IN: Qe,
125
- CIRCULAR_EASE_OUT: Ke,
126
- CIRCULAR_EASE_IN_OUT: $e,
127
- LINEAR: Je,
128
- SMOOTHSTEP: We,
129
- CONCAVE: et,
130
- CONVEX: tt,
131
- LOGARITHMIC: ot,
132
- SQUARE_ROOT: nt,
133
- INVERSE: st,
134
- GAUSSIAN: rt
135
- }, at = (t, e, o, n, a) => {
136
- const r = Math.max(0, Math.min(1, t)), s = 1 - r;
137
- return s * s * s * e + 3 * s * s * r * o + 3 * s * r * r * n + r * r * r * a;
138
- }, ct = (t, e = 1) => {
139
- const o = Math.max(1e-3, e);
140
- return (1 - Math.exp(-o * t)) / (1 - Math.exp(-o));
141
- }, it = (t, e = 1, o = 1) => {
142
- const n = Math.max(0, Math.min(1, t));
143
- return e * Math.pow(n, o);
144
- }, lt = (t, e = 1, o = 1) => {
145
- const n = Math.max(1e-3, Math.min(1, t));
146
- return e * Math.log(o * n + 1);
147
- }, ut = (t, e = 1, o = 0, n = 0) => {
148
- const a = Math.max(0, Math.min(1, t));
149
- return e * a * a + o * a + n;
150
- }, mt = (t, e, o, n) => {
151
- const a = Math.max(0, Math.min(1, t)), r = 1 - a;
152
- return r * r * e + 2 * r * a * o + a * a * n;
153
- }, ht = (t, e = 10) => {
154
- const o = Math.max(0, Math.min(1, t));
155
- return 1 / (1 + Math.exp(-e * (o - 0.5)));
156
- }, ft = (t) => Math.sin(t * Math.PI * 0.5), k = {
157
- CUBIC: at,
158
- DAMPED: ct,
159
- EXPONENTIAL: it,
160
- LOGARITHMIC: lt,
161
- PARABOLIC: ut,
162
- QUADRATIC: mt,
163
- SIGMOID: ht,
164
- SINUSOIDAL: ft
199
+ a.needsUpdate = !0;
200
+ }, lt = {
201
+ X: new b(1, 0, 0),
202
+ Y: new b(0, 1, 0),
203
+ Z: new b(0, 0, 1),
204
+ XY: new b(1, 1, 0).normalize(),
205
+ XZ: new b(1, 0, 1).normalize(),
206
+ YZ: new b(0, 1, 1).normalize(),
207
+ XYZ: new b(1, 1, 1).normalize()
208
+ }, Nt = (e) => 1 - Math.cos(e * Math.PI / 2), kt = (e) => Math.sin(e * Math.PI / 2), Ft = (e) => -0.5 * (Math.cos(Math.PI * e) - 1), Ot = (e) => e * e, _t = (e) => 1 - Math.pow(1 - e, 2), Rt = (e) => e < 0.5 ? 2 * e * e : 1 - Math.pow(-2 * e + 2, 2) / 2, Lt = (e) => e * e * e, qt = (e) => 1 - Math.pow(1 - e, 3), Dt = (e) => e < 0.5 ? 4 * e * e * e : 1 - Math.pow(-2 * e + 2, 3) / 2, Vt = (e) => e * e * e * e, Xt = (e) => 1 - Math.pow(1 - e, 4), Zt = (e) => e < 0.5 ? 8 * e * e * e * e : 1 - Math.pow(-2 * e + 2, 4) / 2, Yt = (e) => e * e * e * e * e, jt = (e) => 1 - Math.pow(1 - e, 5), Ht = (e) => e < 0.5 ? 16 * e * e * e * e * e : 1 - Math.pow(-2 * e + 2, 5) / 2, Qt = (e) => e === 0 ? 0 : Math.pow(2, 10 * e - 10), Kt = (e) => e === 1 ? 1 : 1 - Math.pow(2, -10 * e), $t = (e) => e === 0 ? 0 : e === 1 ? 1 : e < 0.5 ? Math.pow(2, 20 * e - 10) / 2 : (2 - Math.pow(2, -20 * e + 10)) / 2, Jt = (e) => 1 - Math.sqrt(1 - Math.pow(e, 2)), Wt = (e) => Math.sqrt(1 - Math.pow(e - 1, 2)), te = (e) => e < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * e, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * e + 2, 2)) + 1) / 2, ee = (e) => e, oe = (e) => e * e * (3 - 2 * e), ne = (e) => 1 - Math.pow(1 - e, 0.3), se = (e) => Math.pow(e, 0.3), re = (e) => Math.log(Math.max(0.01, e)) / Math.log(2), ae = (e) => Math.sqrt(e), ie = (e) => 1 - e, ce = (e) => Math.exp(-Math.pow(e - 0.5, 2) / (2 * 0.5)), vo = {
209
+ SINE_EASE_IN: Nt,
210
+ SINE_EASE_OUT: kt,
211
+ SINE_EASE_IN_OUT: Ft,
212
+ QUADRATIC_EASE_IN: Ot,
213
+ QUADRATIC_EASE_OUT: _t,
214
+ QUADRATIC_EASE_IN_OUT: Rt,
215
+ CUBIC_EASE_IN: Lt,
216
+ CUBIC_EASE_OUT: qt,
217
+ CUBIC_EASE_IN_OUT: Dt,
218
+ QUARTIC_EASE_IN: Vt,
219
+ QUARTIC_EASE_OUT: Xt,
220
+ QUARTIC_EASE_IN_OUT: Zt,
221
+ QUINTIC_EASE_IN: Yt,
222
+ QUINTIC_EASE_OUT: jt,
223
+ QUINTIC_EASE_IN_OUT: Ht,
224
+ EXPONENTIAL_EASE_IN: Qt,
225
+ EXPONENTIAL_EASE_OUT: Kt,
226
+ EXPONENTIAL_EASE_IN_OUT: $t,
227
+ CIRCULAR_EASE_IN: Jt,
228
+ CIRCULAR_EASE_OUT: Wt,
229
+ CIRCULAR_EASE_IN_OUT: te,
230
+ LINEAR: ee,
231
+ SMOOTHSTEP: oe,
232
+ CONCAVE: ne,
233
+ CONVEX: se,
234
+ LOGARITHMIC: re,
235
+ SQUARE_ROOT: ae,
236
+ INVERSE: ie,
237
+ GAUSSIAN: ce
238
+ }, le = (e, t, o, n, r) => {
239
+ const s = Math.max(0, Math.min(1, e)), a = 1 - s;
240
+ return a * a * a * t + 3 * a * a * s * o + 3 * a * s * s * n + s * s * s * r;
241
+ }, ue = (e, t = 1) => {
242
+ const o = Math.max(1e-3, t);
243
+ return (1 - Math.exp(-o * e)) / (1 - Math.exp(-o));
244
+ }, me = (e, t = 1, o = 1) => {
245
+ const n = Math.max(0, Math.min(1, e));
246
+ return t * Math.pow(n, o);
247
+ }, he = (e, t = 1, o = 1) => {
248
+ const n = Math.max(1e-3, Math.min(1, e));
249
+ return t * Math.log(o * n + 1);
250
+ }, fe = (e, t = 1, o = 0, n = 0) => {
251
+ const r = Math.max(0, Math.min(1, e));
252
+ return t * r * r + o * r + n;
253
+ }, pe = (e, t, o, n) => {
254
+ const r = Math.max(0, Math.min(1, e)), s = 1 - r;
255
+ return s * s * t + 2 * s * r * o + r * r * n;
256
+ }, de = (e, t = 10) => {
257
+ const o = Math.max(0, Math.min(1, e));
258
+ return 1 / (1 + Math.exp(-t * (o - 0.5)));
259
+ }, ye = (e) => Math.sin(e * Math.PI * 0.5), _ = {
260
+ CUBIC: le,
261
+ DAMPED: ue,
262
+ EXPONENTIAL: me,
263
+ LOGARITHMIC: he,
264
+ PARABOLIC: fe,
265
+ QUADRATIC: pe,
266
+ SIGMOID: de,
267
+ SINUSOIDAL: ye
165
268
  };
166
- class so extends A {
167
- constructor() {
168
- super();
169
- N(this, "bubbles", []);
170
- N(this, "bubbleCount", 20);
171
- const o = new z(0.1, 6, 6), n = new w({
172
- color: 16777215,
173
- transparent: !0,
174
- opacity: 0.6,
175
- roughness: 0.3,
176
- metalness: 0.3
177
- });
178
- for (let a = 0; a < this.bubbleCount; a++) {
179
- const r = new d(o, n);
180
- r.position.set(
181
- (Math.random() - 0.5) * 1.5,
182
- // Random x position within flask
183
- Math.random() * 3,
184
- // Random y position within flask height
185
- (Math.random() - 0.5) * 1.5
186
- // Random z position within flask
187
- ), this.bubbles.push(r), this.add(r);
269
+ class xo extends rt {
270
+ constructor(o = {}) {
271
+ const {
272
+ count: n = 20,
273
+ width: r = 1.5,
274
+ height: s = 3,
275
+ depth: a = 1.5,
276
+ geometry: i = new N(0.1, 6, 6),
277
+ // Small spheres
278
+ material: c = new M({
279
+ color: 16777215,
280
+ transparent: !0,
281
+ opacity: 0.6,
282
+ roughness: 0.3,
283
+ metalness: 0.3
284
+ })
285
+ } = o;
286
+ super(i, c, n);
287
+ g(this, "bubblePositions", []);
288
+ g(this, "velocities", []);
289
+ g(this, "width");
290
+ g(this, "height");
291
+ g(this, "depth");
292
+ this.height = s, this.width = r, this.depth = a;
293
+ for (let l = 0; l < this.count; l++) {
294
+ const u = new b(
295
+ (Math.random() - 0.5) * r,
296
+ Math.random() * (s - 1) + 0.5,
297
+ (Math.random() - 0.5) * a
298
+ );
299
+ this.bubblePositions.push(u), this.velocities.push(0.01 + Math.random() * 0.02), this.updateInstanceMatrix(l);
188
300
  }
189
- this.animateBubbles();
301
+ }
302
+ /**
303
+ * Updates the position of a specific bubble instance in the InstancedMesh.
304
+ */
305
+ updateInstanceMatrix(o) {
306
+ const n = this.bubblePositions[o], r = new X().setPosition(n);
307
+ this.setMatrixAt(o, r), this.instanceMatrix.needsUpdate = !0;
190
308
  }
191
309
  /**
192
310
  * Updates bubble positions, moving them upward and resetting them
193
311
  * to the bottom if they reach the top.
194
312
  */
195
- updateBubbles() {
196
- this.bubbles.forEach((o) => {
197
- o.position.y += 0.02, o.position.y > 3 && (o.position.y = 0, o.position.x = (Math.random() - 0.5) * 1.5, o.position.z = (Math.random() - 0.5) * 1.5);
198
- });
313
+ update() {
314
+ for (let o = 0; o < this.count; o++) {
315
+ const n = this.bubblePositions[o];
316
+ n.y += this.velocities[o], n.y > this.height && (n.x = (Math.random() - 0.5) * this.width, n.y = 0, n.z = (Math.random() - 0.5) * this.depth), this.updateInstanceMatrix(o);
317
+ }
318
+ }
319
+ }
320
+ class go {
321
+ constructor(t) {
322
+ g(this, "speed");
323
+ g(this, "maxIntensity");
324
+ g(this, "minIntensity");
325
+ g(this, "material");
326
+ const {
327
+ speed: o = 2,
328
+ //
329
+ maxIntensity: n = 0.8,
330
+ minIntensity: r = 0.2
331
+ } = t;
332
+ this.speed = o, this.maxIntensity = n, this.minIntensity = r, this.material = t.material;
199
333
  }
200
334
  /**
201
- * Animates the bubbles by updating their positions in a loop.
335
+ * Update the emissive intensity of the material.
336
+ *
337
+ * Use Three.Clock getElapsedTime()
338
+ *
339
+ * Example:
340
+ * ```
341
+ * const clock = new THREE.Clock();
342
+ * effect.update(clock.getElapsedTime());
343
+ * ```
202
344
  */
203
- animateBubbles() {
204
- const o = () => {
205
- requestAnimationFrame(o), this.updateBubbles();
206
- };
207
- o();
345
+ update(t = 0) {
346
+ this.material.emissiveIntensity = this.minIntensity + Math.abs(Math.sin(t * this.speed)) * (this.maxIntensity - this.minIntensity);
208
347
  }
209
348
  }
210
- const C = (t, e) => {
211
- const o = t[0].index !== null, n = new Set(Object.keys(t[0].attributes)), a = new Set(Object.keys(t[0].morphAttributes)), r = {}, s = {}, c = t[0].morphTargetsRelative, i = new I();
349
+ class Me extends S {
350
+ constructor(t = 0.1) {
351
+ super();
352
+ const o = [], n = [], r = [
353
+ [0, 1],
354
+ // Top point
355
+ [0.5, 0.75],
356
+ // Right upper middle
357
+ [0.75, 0.25],
358
+ // Right lower middle
359
+ [0.5, -0.5],
360
+ // Right bottom middle
361
+ [0, -1],
362
+ // Bottom point
363
+ [-0.5, -0.5],
364
+ // Left bottom middle
365
+ [-0.75, 0.25],
366
+ // Left lower middle
367
+ [-0.5, 0.75]
368
+ // Left upper middle
369
+ ];
370
+ for (let a = 0; a < r.length; a++) {
371
+ const [i, c] = r[a];
372
+ o.push(i * t, c * t, 0);
373
+ }
374
+ for (let a = 1; a < r.length - 1; a++)
375
+ n.push(0, a, a + 1);
376
+ n.push(0, r.length - 1, 1);
377
+ const s = new q(o, 3);
378
+ this.setAttribute("position", s), this.setIndex(n), this.computeVertexNormals();
379
+ }
380
+ }
381
+ class bo extends rt {
382
+ constructor(o = {}) {
383
+ const {
384
+ count: n = 200,
385
+ width: r = 20,
386
+ height: s = 10,
387
+ depth: a = 20,
388
+ geometry: i = new Me(),
389
+ material: c = new M({
390
+ color: 8956467,
391
+ metalness: 0.1,
392
+ roughness: 0.8,
393
+ flatShading: !0,
394
+ side: L
395
+ })
396
+ } = o;
397
+ super(i, c, n);
398
+ g(this, "dummyMatrix");
399
+ g(this, "velocities");
400
+ g(this, "width");
401
+ g(this, "height");
402
+ g(this, "depth");
403
+ this.dummyMatrix = new X(), this.velocities = [], this.width = r, this.height = s, this.depth = a;
404
+ for (let l = 0; l < n; l++) {
405
+ const u = (Math.random() - 0.5) * r, m = Math.random() * (s - 1) + 0.5, h = (Math.random() - 0.5) * a, f = (Math.random() - 0.5) * Math.PI, p = (Math.random() - 0.5) * Math.PI, d = (Math.random() - 0.5) * Math.PI;
406
+ this.dummyMatrix.makeRotationFromEuler(new At(f, p, d)), this.dummyMatrix.setPosition(u, m, h), this.setMatrixAt(l, this.dummyMatrix);
407
+ const w = new b((Math.random() - 0.5) * 0.01, -5e-3, (Math.random() - 0.5) * 0.01);
408
+ this.velocities.push(w);
409
+ }
410
+ this.instanceMatrix.needsUpdate = !0;
411
+ }
412
+ update() {
413
+ for (let o = 0; o < this.count; o++) {
414
+ const n = new X();
415
+ this.getMatrixAt(o, n);
416
+ const r = new b();
417
+ r.setFromMatrixPosition(n);
418
+ const s = this.velocities[o];
419
+ r.add(s), r.y < 0 && (r.set(
420
+ (Math.random() - 0.5) * this.width,
421
+ Math.random() * (this.height - 1) + 0.5,
422
+ (Math.random() - 0.5) * this.depth
423
+ ), s.set((Math.random() - 0.5) * 0.01, -5e-3, (Math.random() - 0.5) * 0.01)), n.setPosition(r), this.setMatrixAt(o, n);
424
+ }
425
+ this.instanceMatrix.needsUpdate = !0;
426
+ }
427
+ }
428
+ function pt(e = 0, t = 1) {
429
+ return Math.random() * (t - e) + e;
430
+ }
431
+ function Io(e = 0, t = 1) {
432
+ return Math.floor(Math.random() * (t - e + 1)) + e;
433
+ }
434
+ function we(e = 0.5, t = 0, o = 1) {
435
+ return t + (o - t) * Math.pow(Math.random(), e);
436
+ }
437
+ function ve(e = 0.5, t = 0, o = 1) {
438
+ return t + (o - t) * Math.pow(1 - Math.random(), e);
439
+ }
440
+ function xe(e, t, o) {
441
+ const n = t + Math.random() * (o - t);
442
+ return setTimeout(e, n);
443
+ }
444
+ function Ao(e, t, o) {
445
+ let n;
446
+ function r() {
447
+ const s = t + Math.random() * (o - t);
448
+ n = setTimeout(() => {
449
+ e(), r();
450
+ }, s);
451
+ }
452
+ return r(), () => clearTimeout(n);
453
+ }
454
+ class So {
455
+ constructor({
456
+ light: t,
457
+ //
458
+ minIntensity: o = 15,
459
+ maxIntensity: n = 20,
460
+ minDuration: r = 50,
461
+ maxDuration: s = 250
462
+ } = {}) {
463
+ g(this, "light");
464
+ g(this, "minIntensity");
465
+ g(this, "maxIntensity");
466
+ g(this, "minDuration");
467
+ g(this, "maxDuration");
468
+ this.light = t, this.minIntensity = o, this.maxIntensity = n, this.minDuration = r, this.maxDuration = s;
469
+ }
470
+ triggerLightning() {
471
+ this.light && (this.light.intensity = pt(this.minIntensity, this.maxIntensity)), xe(
472
+ () => {
473
+ this.light && (this.light.intensity = 0);
474
+ },
475
+ this.minDuration,
476
+ this.maxDuration
477
+ );
478
+ }
479
+ update() {
480
+ Math.random() > 0.98 && this.triggerLightning();
481
+ }
482
+ }
483
+ const T = (e, t) => {
484
+ const o = e[0].index !== null, n = new Set(Object.keys(e[0].attributes)), r = new Set(Object.keys(e[0].morphAttributes)), s = {}, a = {}, i = e[0].morphTargetsRelative, c = new S();
212
485
  let l = 0;
213
- if (t.forEach((u, m) => {
486
+ if (e.forEach((u, m) => {
214
487
  let h = 0;
215
488
  if (o !== (u.index !== null))
216
489
  return console.error(
@@ -221,24 +494,24 @@ const C = (t, e) => {
221
494
  return console.error(
222
495
  "THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index " + m + '. All geometries must have compatible attributes; make sure "' + f + '" attribute exists among all geometries, or in none of them.'
223
496
  ), null;
224
- r[f] === void 0 && (r[f] = []), r[f].push(u.attributes[f]), h++;
497
+ s[f] === void 0 && (s[f] = []), s[f].push(u.attributes[f]), h++;
225
498
  }
226
499
  if (h !== n.size)
227
500
  return console.error(
228
501
  "THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index " + m + ". Make sure all geometries have the same number of attributes."
229
502
  ), null;
230
- if (c !== u.morphTargetsRelative)
503
+ if (i !== u.morphTargetsRelative)
231
504
  return console.error(
232
505
  "THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index " + m + ". .morphTargetsRelative must be consistent throughout all geometries."
233
506
  ), null;
234
507
  for (let f in u.morphAttributes) {
235
- if (!a.has(f))
508
+ if (!r.has(f))
236
509
  return console.error(
237
510
  "THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index " + m + ". .morphAttributes must be consistent throughout all geometries."
238
511
  ), null;
239
- s[f] === void 0 && (s[f] = []), s[f].push(u.morphAttributes[f]);
512
+ a[f] === void 0 && (a[f] = []), a[f].push(u.morphAttributes[f]);
240
513
  }
241
- if (i.userData.mergedUserData = i.userData.mergedUserData || [], i.userData.mergedUserData.push(u.userData), e) {
514
+ if (c.userData.mergedUserData = c.userData.mergedUserData || [], c.userData.mergedUserData.push(u.userData), t) {
242
515
  let f;
243
516
  if (u.index)
244
517
  f = u.index.count;
@@ -248,235 +521,235 @@ const C = (t, e) => {
248
521
  return console.error(
249
522
  "THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index " + m + ". The geometry must have either an index or a position attribute"
250
523
  ), null;
251
- i.addGroup(l, f, m), l += f;
524
+ c.addGroup(l, f, m), l += f;
252
525
  }
253
526
  }), o) {
254
527
  let u = 0;
255
528
  const m = [];
256
- t.forEach((h) => {
529
+ e.forEach((h) => {
257
530
  const f = h.index;
258
531
  for (let p = 0; p < f.count; ++p)
259
532
  m.push(f.getX(p) + u);
260
533
  u += h.attributes.position.count;
261
- }), i.setIndex(m);
534
+ }), c.setIndex(m);
262
535
  }
263
- for (let u in r) {
264
- const m = le(r[u]);
536
+ for (let u in s) {
537
+ const m = mt(s[u]);
265
538
  if (!m)
266
539
  return console.error(
267
540
  "THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the " + u + " attribute."
268
541
  ), null;
269
- i.setAttribute(u, m);
542
+ c.setAttribute(u, m);
270
543
  }
271
- for (let u in s) {
272
- const m = s[u][0].length;
544
+ for (let u in a) {
545
+ const m = a[u][0].length;
273
546
  if (m === 0)
274
547
  break;
275
- i.morphAttributes = i.morphAttributes || {}, i.morphAttributes[u] = [];
548
+ c.morphAttributes = c.morphAttributes || {}, c.morphAttributes[u] = [];
276
549
  for (let h = 0; h < m; ++h) {
277
550
  const f = [];
278
- for (let y = 0; y < s[u].length; ++y)
279
- f.push(s[u][y][h]);
280
- const p = le(f);
551
+ for (let d = 0; d < a[u].length; ++d)
552
+ f.push(a[u][d][h]);
553
+ const p = mt(f);
281
554
  if (!p)
282
555
  return console.error(
283
556
  "THREE.BufferGeometryUtils: .mergeBufferGeometries() failed while trying to merge the " + u + " morphAttribute."
284
557
  ), null;
285
- i.morphAttributes[u].push(p);
558
+ c.morphAttributes[u].push(p);
286
559
  }
287
560
  }
288
- return i;
289
- }, le = (t) => {
290
- let e, o, n, a = 0;
291
- if (t.forEach((r) => {
292
- if (e === void 0 && (e = r.array.constructor), e !== r.array.constructor)
561
+ return c;
562
+ }, mt = (e) => {
563
+ let t, o, n, r = 0;
564
+ if (e.forEach((s) => {
565
+ if (t === void 0 && (t = s.array.constructor), t !== s.array.constructor)
293
566
  return console.error(
294
567
  "THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."
295
568
  ), null;
296
- if (o === void 0 && (o = r.itemSize), o !== r.itemSize)
569
+ if (o === void 0 && (o = s.itemSize), o !== s.itemSize)
297
570
  return console.error(
298
571
  "THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."
299
572
  ), null;
300
- if (n === void 0 && (n = r.normalized), n !== r.normalized)
573
+ if (n === void 0 && (n = s.normalized), n !== s.normalized)
301
574
  return console.error(
302
575
  "THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."
303
576
  ), null;
304
- a += r.array.length;
305
- }), e && o) {
306
- const r = new e(a);
307
- let s = 0;
308
- return t.forEach((c) => {
309
- r.set(c.array, s), s += c.array.length;
310
- }), new R(r, o, n);
577
+ r += s.array.length;
578
+ }), t && o) {
579
+ const s = new t(r);
580
+ let a = 0;
581
+ return e.forEach((i) => {
582
+ s.set(i.array, a), a += i.array.length;
583
+ }), new R(s, o, n);
311
584
  }
312
585
  };
313
- function pt(t, e = 1e-4) {
314
- e = Math.max(e, Number.EPSILON);
315
- const o = {}, n = t.getIndex(), a = t.getAttribute("position"), r = n ? n.count : a.count;
316
- let s = 0;
317
- const c = Object.keys(t.attributes), i = {}, l = {}, u = [], m = ["getX", "getY", "getZ", "getW"];
318
- for (let y = 0, v = c.length; y < v; y++) {
319
- const M = c[y];
320
- i[M] = [];
321
- const x = t.morphAttributes[M];
322
- x && (l[M] = new Array(x.length).fill(0).map(() => []));
323
- }
324
- const h = Math.log10(1 / e), f = Math.pow(10, h);
325
- for (let y = 0; y < r; y++) {
326
- const v = n ? n.getX(y) : y;
327
- let M = "";
328
- for (let x = 0, B = c.length; x < B; x++) {
329
- const U = c[x], G = t.getAttribute(U), P = G.itemSize;
330
- for (let O = 0; O < P; O++)
331
- M += `${~~(G[m[O]](v) * f)},`;
586
+ function ge(e, t = 1e-4) {
587
+ t = Math.max(t, Number.EPSILON);
588
+ const o = {}, n = e.getIndex(), r = e.getAttribute("position"), s = n ? n.count : r.count;
589
+ let a = 0;
590
+ const i = Object.keys(e.attributes), c = {}, l = {}, u = [], m = ["getX", "getY", "getZ", "getW"];
591
+ for (let d = 0, w = i.length; d < w; d++) {
592
+ const v = i[d];
593
+ c[v] = [];
594
+ const x = e.morphAttributes[v];
595
+ x && (l[v] = new Array(x.length).fill(0).map(() => []));
596
+ }
597
+ const h = Math.log10(1 / t), f = Math.pow(10, h);
598
+ for (let d = 0; d < s; d++) {
599
+ const w = n ? n.getX(d) : d;
600
+ let v = "";
601
+ for (let x = 0, U = i.length; x < U; x++) {
602
+ const z = i[x], P = e.getAttribute(z), B = P.itemSize;
603
+ for (let k = 0; k < B; k++)
604
+ v += `${~~(P[m[k]](w) * f)},`;
332
605
  }
333
- if (M in o)
334
- u.push(o[M]);
606
+ if (v in o)
607
+ u.push(o[v]);
335
608
  else {
336
- for (let x = 0, B = c.length; x < B; x++) {
337
- const U = c[x], G = t.getAttribute(U), P = t.morphAttributes[U], O = G.itemSize, _ = i[U], W = l[U];
338
- for (let X = 0; X < O; X++) {
339
- const V = m[X];
340
- if (_.push(G[V](v)), P)
341
- for (let T = 0, we = P.length; T < we; T++)
342
- W[T].push(P[T][V](v));
609
+ for (let x = 0, U = i.length; x < U; x++) {
610
+ const z = i[x], P = e.getAttribute(z), B = e.morphAttributes[z], k = P.itemSize, F = c[z], tt = l[z];
611
+ for (let D = 0; D < k; D++) {
612
+ const V = m[D];
613
+ if (F.push(P[V](w)), B)
614
+ for (let C = 0, xt = B.length; C < xt; C++)
615
+ tt[C].push(B[C][V](w));
343
616
  }
344
617
  }
345
- o[M] = s, u.push(s), s++;
618
+ o[v] = a, u.push(a), a++;
346
619
  }
347
620
  }
348
- const p = t.clone();
349
- for (let y = 0, v = c.length; y < v; y++) {
350
- const M = c[y], x = t.getAttribute(M), B = new x.array.constructor(i[M]), U = new R(B, x.itemSize, x.normalized);
351
- if (p.setAttribute(M, U), M in l)
352
- for (let G = 0; G < l[M].length; G++) {
353
- const P = t.morphAttributes[M][G], O = new P.array.constructor(l[M][G]), _ = new R(O, P.itemSize, P.normalized);
354
- p.morphAttributes[M][G] = _;
621
+ const p = e.clone();
622
+ for (let d = 0, w = i.length; d < w; d++) {
623
+ const v = i[d], x = e.getAttribute(v), U = new x.array.constructor(c[v]), z = new R(U, x.itemSize, x.normalized);
624
+ if (p.setAttribute(v, z), v in l)
625
+ for (let P = 0; P < l[v].length; P++) {
626
+ const B = e.morphAttributes[v][P], k = new B.array.constructor(l[v][P]), F = new R(k, B.itemSize, B.normalized);
627
+ p.morphAttributes[v][P] = F;
355
628
  }
356
629
  }
357
630
  return p.setIndex(u), p;
358
631
  }
359
- class he extends I {
360
- constructor(e = 1, o = 1.5, n = 0.5, a = 0.05, r = 0.05) {
632
+ class dt extends S {
633
+ constructor(t = 1, o = 1.5, n = 0.5, r = 0.05, s = 0.05) {
361
634
  super();
362
- const s = e, c = o, i = n, l = a, u = r, m = [
635
+ const a = t, i = o, c = n, l = r, u = s, m = [
363
636
  // Front cover
364
637
  0,
365
638
  0,
366
639
  0,
367
- s,
640
+ a,
368
641
  0,
369
642
  0,
370
- s,
371
- c,
643
+ a,
644
+ i,
372
645
  0,
373
646
  0,
374
- c,
647
+ i,
375
648
  0,
376
649
  // Back cover
377
- s,
650
+ a,
378
651
  0,
379
- -i,
652
+ -c,
380
653
  0,
381
654
  0,
382
- -i,
655
+ -c,
383
656
  0,
384
- c,
385
- -i,
386
- s,
387
- c,
388
- -i,
657
+ i,
658
+ -c,
659
+ a,
660
+ i,
661
+ -c,
389
662
  // Spine
390
663
  0,
391
664
  0,
392
- -i,
665
+ -c,
393
666
  0,
394
667
  0,
395
668
  0,
396
669
  0,
397
- c,
670
+ i,
398
671
  0,
399
672
  0,
400
- c,
401
- -i,
673
+ i,
674
+ -c,
402
675
  // Inside front cover
403
- s,
676
+ a,
404
677
  0,
405
678
  -l,
406
679
  l,
407
680
  0,
408
681
  -l,
409
682
  l,
410
- c,
683
+ i,
411
684
  -l,
412
- s,
413
- c,
685
+ a,
686
+ i,
414
687
  -l,
415
688
  // Inside back cover
416
689
  l,
417
690
  0,
418
- -i + l,
419
- s,
691
+ -c + l,
692
+ a,
420
693
  0,
421
- -i + l,
422
- s,
423
- c,
424
- -i + l,
694
+ -c + l,
695
+ a,
696
+ i,
697
+ -c + l,
425
698
  l,
426
- c,
427
- -i + l,
699
+ i,
700
+ -c + l,
428
701
  // Inside spine
429
702
  l,
430
703
  0,
431
704
  -l,
432
705
  l,
433
706
  0,
434
- -i + l,
707
+ -c + l,
435
708
  l,
436
- c,
437
- -i + l,
709
+ i,
710
+ -c + l,
438
711
  l,
439
- c,
712
+ i,
440
713
  -l,
441
714
  // Front cover top
442
715
  0,
443
- c,
716
+ i,
444
717
  0,
445
- s,
446
- c,
718
+ a,
719
+ i,
447
720
  0,
448
- s,
449
- c,
721
+ a,
722
+ i,
450
723
  -l,
451
724
  l,
452
- c,
725
+ i,
453
726
  -l,
454
727
  // Back cover top
455
728
  0,
456
- c,
457
- -i,
729
+ i,
730
+ -c,
458
731
  l,
459
- c,
460
- -i + l,
461
- s,
462
- c,
463
- -i + l,
464
- s,
465
- c,
466
- -i,
732
+ i,
733
+ -c + l,
734
+ a,
735
+ i,
736
+ -c + l,
737
+ a,
738
+ i,
739
+ -c,
467
740
  // Spine cover top
468
741
  0,
469
- c,
742
+ i,
470
743
  0,
471
744
  l,
472
- c,
745
+ i,
473
746
  -l,
474
747
  l,
475
- c,
476
- -i + l,
748
+ i,
749
+ -c + l,
477
750
  0,
478
- c,
479
- -i,
751
+ i,
752
+ -c,
480
753
  // Front cover bottom
481
754
  0,
482
755
  0,
@@ -484,64 +757,64 @@ class he extends I {
484
757
  l,
485
758
  0,
486
759
  -l,
487
- s,
760
+ a,
488
761
  0,
489
762
  -l,
490
- s,
763
+ a,
491
764
  0,
492
765
  0,
493
766
  // Back cover bottom
494
767
  0,
495
768
  0,
496
- -i,
497
- s,
769
+ -c,
770
+ a,
498
771
  0,
499
- -i,
500
- s,
772
+ -c,
773
+ a,
501
774
  0,
502
- -i + l,
775
+ -c + l,
503
776
  l,
504
777
  0,
505
- -i + l,
778
+ -c + l,
506
779
  // Spine cover bottom
507
780
  0,
508
781
  0,
509
782
  0,
510
783
  0,
511
784
  0,
512
- -i,
785
+ -c,
513
786
  l,
514
787
  0,
515
- -i + l,
788
+ -c + l,
516
789
  l,
517
790
  0,
518
791
  -l,
519
792
  // Front cover edge
520
- s,
793
+ a,
521
794
  0,
522
795
  0,
523
- s,
796
+ a,
524
797
  0,
525
798
  -l,
526
- s,
527
- c,
799
+ a,
800
+ i,
528
801
  -l,
529
- s,
530
- c,
802
+ a,
803
+ i,
531
804
  0,
532
805
  // Back cover edge
533
- s,
806
+ a,
534
807
  0,
535
- -i,
536
- s,
537
- c,
538
- -i,
539
- s,
540
- c,
541
- -i + l,
542
- s,
808
+ -c,
809
+ a,
810
+ i,
811
+ -c,
812
+ a,
813
+ i,
814
+ -c + l,
815
+ a,
543
816
  0,
544
- -i + l
817
+ -c + l
545
818
  ], h = [
546
819
  0,
547
820
  0,
@@ -725,7 +998,7 @@ class he extends I {
725
998
  0,
726
999
  0
727
1000
  // Back cover edge
728
- ], f = e / (e * 2 + n), p = (e + n) / (e * 2 + n), y = [
1001
+ ], f = t / (t * 2 + n), p = (t + n) / (t * 2 + n), d = [
729
1002
  p,
730
1003
  0,
731
1004
  1,
@@ -852,7 +1125,7 @@ class he extends I {
852
1125
  0,
853
1126
  1
854
1127
  // Back cover edge
855
- ], v = [
1128
+ ], w = [
856
1129
  0,
857
1130
  1,
858
1131
  2,
@@ -951,138 +1224,126 @@ class he extends I {
951
1224
  54,
952
1225
  55
953
1226
  // Back cover edge
954
- ], M = new Float32Array(m), x = new Float32Array(h), B = new Float32Array(y), U = new Uint16Array(v), G = new I();
955
- G.setAttribute("position", new R(M, 3)), G.setAttribute("normal", new R(x, 3)), G.setAttribute("uv", new R(B, 2)), G.setIndex(new R(U, 1));
956
- const P = new S(e - l - u, c - u * 2, i - l * 2);
957
- P.translate((e - l - u) / 2 + l, c / 2, -i / 2), this.copy(C([G, P], !0));
1227
+ ], v = new Float32Array(m), x = new Float32Array(h), U = new Float32Array(d), z = new Uint16Array(w), P = new S();
1228
+ P.setAttribute("position", new R(v, 3)), P.setAttribute("normal", new R(x, 3)), P.setAttribute("uv", new R(U, 2)), P.setIndex(new R(z, 1));
1229
+ const B = new A(t - l - u, i - u * 2, c - l * 2);
1230
+ B.translate((t - l - u) / 2 + l, i / 2, -c / 2), this.copy(T([P, B], !0));
958
1231
  }
959
1232
  }
960
- function dt(t = 0, e = 1) {
961
- return Math.random() * (e - t) + t;
962
- }
963
- function ro(t = 0, e = 1) {
964
- return Math.floor(Math.random() * (e - t + 1)) + t;
965
- }
966
- function yt(t = 0.5, e = 0, o = 1) {
967
- return e + (o - e) * Math.pow(Math.random(), t);
968
- }
969
- function wt(t = 0.5, e = 0, o = 1) {
970
- return e + (o - e) * Math.pow(1 - Math.random(), t);
971
- }
972
- function fe({
973
- scaleXMin: t = 0.4,
974
- scaleXMax: e = 0.7,
1233
+ function yt({
1234
+ scaleXMin: e = 0.4,
1235
+ scaleXMax: t = 0.7,
975
1236
  scaleYMin: o = 0.3,
976
1237
  scaleYMax: n = 0.95,
977
- scaleZMin: a = 0.1,
978
- scaleZMax: r = 0.5
1238
+ scaleZMin: r = 0.1,
1239
+ scaleZMax: s = 0.5
979
1240
  } = {}) {
980
- return new g(
981
- dt(t, e),
982
- yt(0.25, o, n),
983
- wt(0.8, a, r)
1241
+ return new b(
1242
+ pt(e, t),
1243
+ we(0.25, o, n),
1244
+ ve(0.8, r, s)
984
1245
  );
985
1246
  }
986
- function pe({
987
- coverMaterial: t,
988
- pagesMaterial: e,
1247
+ function Mt({
1248
+ coverMaterial: e,
1249
+ pagesMaterial: t,
989
1250
  scales: o
990
1251
  }) {
991
- const n = new he(), a = new ge(n, [t, e], o.length), r = new ce();
992
- let s = 0;
993
- for (let c = 0; c < o.length; c++) {
994
- const i = o[c], l = new ce();
995
- l.makeScale(i.x, i.y, i.z), r.identity(), r.multiply(l), r.setPosition(0.01 + Math.random() * 0.1, 0, s + i.z * 0.5), a.setMatrixAt(c, r), s += i.z * 0.5;
1252
+ const n = new dt(), r = new rt(n, [e, t], o.length), s = new X();
1253
+ let a = 0;
1254
+ for (let i = 0; i < o.length; i++) {
1255
+ const c = o[i], l = new X();
1256
+ l.makeScale(c.x, c.y, c.z), s.identity(), s.multiply(l), s.setPosition(0.01 + Math.random() * 0.1, 0, a + c.z * 0.5), r.setMatrixAt(i, s), a += c.z * 0.5;
996
1257
  }
997
- return a;
1258
+ return r;
998
1259
  }
999
- function ao({
1000
- coverMaterial: t,
1001
- pagesMaterial: e,
1260
+ function Eo({
1261
+ coverMaterial: e,
1262
+ pagesMaterial: t,
1002
1263
  count: o = 10,
1003
1264
  scaleXMin: n = 0.4,
1004
- scaleXMax: a = 0.7,
1005
- scaleYMin: r = 0.3,
1006
- scaleYMax: s = 0.95,
1007
- scaleZMin: c = 0.1,
1008
- scaleZMax: i = 0.5
1265
+ scaleXMax: r = 0.7,
1266
+ scaleYMin: s = 0.3,
1267
+ scaleYMax: a = 0.95,
1268
+ scaleZMin: i = 0.1,
1269
+ scaleZMax: c = 0.5
1009
1270
  }) {
1010
1271
  const l = Array.from(
1011
1272
  { length: o },
1012
- () => fe({ scaleXMin: n, scaleXMax: a, scaleYMin: r, scaleYMax: s, scaleZMin: c, scaleZMax: i })
1273
+ () => yt({ scaleXMin: n, scaleXMax: r, scaleYMin: s, scaleYMax: a, scaleZMin: i, scaleZMax: c })
1013
1274
  );
1014
- return pe({ coverMaterial: t, pagesMaterial: e, scales: l });
1275
+ return Mt({ coverMaterial: e, pagesMaterial: t, scales: l });
1015
1276
  }
1016
- function co({
1017
- coverMaterial: t,
1018
- pagesMaterial: e,
1277
+ function Po({
1278
+ coverMaterial: e,
1279
+ pagesMaterial: t,
1019
1280
  length: o = 10,
1020
1281
  scaleXMin: n = 0.4,
1021
- scaleXMax: a = 0.7,
1022
- scaleYMin: r = 0.3,
1023
- scaleYMax: s = 0.95,
1024
- scaleZMin: c = 0.1,
1025
- scaleZMax: i = 0.5
1282
+ scaleXMax: r = 0.7,
1283
+ scaleYMin: s = 0.3,
1284
+ scaleYMax: a = 0.95,
1285
+ scaleZMin: i = 0.1,
1286
+ scaleZMax: c = 0.5
1026
1287
  }) {
1027
1288
  const l = [];
1028
1289
  let u = o;
1029
1290
  for (; u > 0; ) {
1030
- const m = fe({ scaleXMin: n, scaleXMax: a, scaleYMin: r, scaleYMax: s, scaleZMin: c, scaleZMax: i });
1291
+ const m = yt({ scaleXMin: n, scaleXMax: r, scaleYMin: s, scaleYMax: a, scaleZMin: i, scaleZMax: c });
1031
1292
  m.z = Math.min(m.z, u), l.push(m), u -= m.z;
1032
1293
  }
1033
- return pe({ coverMaterial: t, pagesMaterial: e, scales: l });
1294
+ return Mt({ coverMaterial: e, pagesMaterial: t, scales: l });
1034
1295
  }
1035
- class io extends I {
1036
- constructor(e = 2, o = 0.3, n = 0.6, a = 5, r = 5, s = Math.PI / 4) {
1296
+ class To extends S {
1297
+ constructor(t = 2, o = 0.3, n = 0.6, r = 5, s = 5, a = Math.PI / 4) {
1037
1298
  super();
1038
- const c = [], i = [];
1039
- for (let f = 0; f < a; f++) {
1040
- const p = f * o, y = p + o, v = f * n, M = v + n;
1041
- c.push(
1299
+ const i = [], c = [];
1300
+ for (let f = 0; f < r; f++) {
1301
+ const p = f * o, d = p + o, w = f * n, v = w + n;
1302
+ i.push(
1042
1303
  // Vertical riser
1043
- -e / 2,
1304
+ -t / 2,
1044
1305
  p,
1045
- v,
1306
+ w,
1046
1307
  // Bottom-left
1047
- e / 2,
1308
+ t / 2,
1048
1309
  p,
1049
- v,
1310
+ w,
1050
1311
  // Bottom-right
1051
- e / 2,
1052
- y,
1053
- v,
1312
+ t / 2,
1313
+ d,
1314
+ w,
1054
1315
  // Top-right
1055
- -e / 2,
1056
- y,
1057
- v,
1316
+ -t / 2,
1317
+ d,
1318
+ w,
1058
1319
  // Top-left
1059
1320
  // Horizontal tread
1060
- -e / 2,
1061
- y,
1062
- v,
1321
+ -t / 2,
1322
+ d,
1323
+ w,
1063
1324
  // Top-left
1064
- e / 2,
1065
- y,
1066
- v,
1325
+ t / 2,
1326
+ d,
1327
+ w,
1067
1328
  // Top-right
1068
- e / 2,
1069
- y,
1070
- M,
1329
+ t / 2,
1330
+ d,
1331
+ v,
1071
1332
  // Back-right
1072
- -e / 2,
1073
- y,
1074
- M
1333
+ -t / 2,
1334
+ d,
1335
+ v
1075
1336
  // Back-left
1076
1337
  );
1077
1338
  const x = f * 8;
1078
- i.push(
1339
+ c.push(
1079
1340
  x,
1080
1341
  x + 1,
1081
1342
  x + 2,
1082
1343
  x,
1083
1344
  x + 2,
1084
1345
  x + 3
1085
- ), i.push(
1346
+ ), c.push(
1086
1347
  x + 4,
1087
1348
  x + 5,
1088
1349
  x + 6,
@@ -1091,8 +1352,8 @@ class io extends I {
1091
1352
  x + 7
1092
1353
  );
1093
1354
  }
1094
- const l = a * o, u = a * n, m = e * 2;
1095
- c.push(
1355
+ const l = r * o, u = r * n, m = t * 2;
1356
+ i.push(
1096
1357
  // Landing platform (4 vertices)
1097
1358
  -m / 2,
1098
1359
  l,
@@ -1111,8 +1372,8 @@ class io extends I {
1111
1372
  u + n
1112
1373
  // Top-left
1113
1374
  );
1114
- const h = a * 8;
1115
- i.push(
1375
+ const h = r * 8;
1376
+ c.push(
1116
1377
  h,
1117
1378
  h + 1,
1118
1379
  h + 2,
@@ -1124,121 +1385,121 @@ class io extends I {
1124
1385
  );
1125
1386
  for (let f = 0; f < 2; f++) {
1126
1387
  const p = f === 0 ? 1 : -1;
1127
- for (let y = 0; y < r; y++) {
1128
- const v = l + y * o, M = v + o, x = p * (m / 4), B = u + n, U = y * n * Math.cos(s), G = y * n * Math.sin(s), P = x + p * U - e / 2 * Math.cos(s), O = x + p * U + e / 2 * Math.cos(s), _ = B + G, W = P + p * n * Math.cos(s), X = O + p * n * Math.cos(s), V = _ + n * Math.sin(s);
1129
- c.push(
1388
+ for (let d = 0; d < s; d++) {
1389
+ const w = l + d * o, v = w + o, x = p * (m / 4), U = u + n, z = d * n * Math.cos(a), P = d * n * Math.sin(a), B = x + p * z - t / 2 * Math.cos(a), k = x + p * z + t / 2 * Math.cos(a), F = U + P, tt = B + p * n * Math.cos(a), D = k + p * n * Math.cos(a), V = F + n * Math.sin(a);
1390
+ i.push(
1130
1391
  // Vertical riser
1131
- P,
1132
- v,
1133
- _,
1392
+ B,
1393
+ w,
1394
+ F,
1134
1395
  // Bottom-left
1135
- O,
1136
- v,
1137
- _,
1396
+ k,
1397
+ w,
1398
+ F,
1138
1399
  // Bottom-right
1139
- O,
1140
- M,
1141
- _,
1400
+ k,
1401
+ v,
1402
+ F,
1142
1403
  // Top-right
1143
- P,
1144
- M,
1145
- _,
1404
+ B,
1405
+ v,
1406
+ F,
1146
1407
  // Top-left
1147
1408
  // Horizontal tread
1148
- P,
1149
- M,
1150
- _,
1409
+ B,
1410
+ v,
1411
+ F,
1151
1412
  // Top-left
1152
- O,
1153
- M,
1154
- _,
1413
+ k,
1414
+ v,
1415
+ F,
1155
1416
  // Top-right
1156
- X,
1157
- M,
1417
+ D,
1418
+ v,
1158
1419
  V,
1159
1420
  // Back-right
1160
- W,
1161
- M,
1421
+ tt,
1422
+ v,
1162
1423
  V
1163
1424
  // Back-left
1164
1425
  );
1165
- const T = h + 4 + f * r * 8 + y * 8;
1166
- i.push(
1167
- T,
1168
- T + 1,
1169
- T + 2,
1170
- T,
1171
- T + 2,
1172
- T + 3
1173
- ), i.push(
1174
- T + 4,
1175
- T + 5,
1176
- T + 6,
1177
- T + 4,
1178
- T + 6,
1179
- T + 7
1426
+ const C = h + 4 + f * s * 8 + d * 8;
1427
+ c.push(
1428
+ C,
1429
+ C + 1,
1430
+ C + 2,
1431
+ C,
1432
+ C + 2,
1433
+ C + 3
1434
+ ), c.push(
1435
+ C + 4,
1436
+ C + 5,
1437
+ C + 6,
1438
+ C + 4,
1439
+ C + 6,
1440
+ C + 7
1180
1441
  );
1181
1442
  }
1182
1443
  }
1183
- this.setIndex(i), this.setAttribute("position", new D(c, 3)), this.computeVertexNormals();
1444
+ this.setIndex(c), this.setAttribute("position", new q(i, 3)), this.computeVertexNormals();
1184
1445
  }
1185
1446
  }
1186
- class lo extends I {
1187
- constructor(e = 5, o = 3, n = 5, a = 0.2) {
1447
+ class Go extends S {
1448
+ constructor(t = 5, o = 3, n = 5, r = 0.2) {
1188
1449
  super();
1189
- const r = [
1450
+ const s = [
1190
1451
  // Floor vertices
1191
- -e / 2,
1452
+ -t / 2,
1192
1453
  0,
1193
1454
  -n / 2,
1194
1455
  // 0
1195
- e / 2,
1456
+ t / 2,
1196
1457
  0,
1197
1458
  -n / 2,
1198
1459
  // 1
1199
- e / 2,
1460
+ t / 2,
1200
1461
  0,
1201
1462
  n / 2,
1202
1463
  // 2
1203
- -e / 2,
1464
+ -t / 2,
1204
1465
  0,
1205
1466
  n / 2,
1206
1467
  // 3
1207
1468
  // Back wall vertices
1208
- -e / 2,
1469
+ -t / 2,
1209
1470
  0,
1210
1471
  -n / 2,
1211
1472
  // 4
1212
- e / 2,
1473
+ t / 2,
1213
1474
  0,
1214
1475
  -n / 2,
1215
1476
  // 5
1216
- e / 2,
1477
+ t / 2,
1217
1478
  o,
1218
1479
  -n / 2,
1219
1480
  // 6
1220
- -e / 2,
1481
+ -t / 2,
1221
1482
  o,
1222
1483
  -n / 2,
1223
1484
  // 7
1224
1485
  // Left wall vertices
1225
- -e / 2,
1486
+ -t / 2,
1226
1487
  0,
1227
1488
  -n / 2,
1228
1489
  // 8
1229
- -e / 2,
1490
+ -t / 2,
1230
1491
  0,
1231
1492
  n / 2,
1232
1493
  // 9
1233
- -e / 2,
1494
+ -t / 2,
1234
1495
  o,
1235
1496
  n / 2,
1236
1497
  // 10
1237
- -e / 2,
1498
+ -t / 2,
1238
1499
  o,
1239
1500
  -n / 2
1240
1501
  // 11
1241
- ], s = [
1502
+ ], a = [
1242
1503
  // Floor
1243
1504
  0,
1244
1505
  1,
@@ -1261,90 +1522,90 @@ class lo extends I {
1261
1522
  10,
1262
1523
  11
1263
1524
  ];
1264
- this.setIndex(s), this.setAttribute("position", new D(r, 3)), this.computeVertexNormals();
1525
+ this.setIndex(a), this.setAttribute("position", new q(s, 3)), this.computeVertexNormals();
1265
1526
  }
1266
1527
  }
1267
- class uo extends I {
1268
- constructor(e = 2, o = 0.3, n = 0.5, a = 5, r = 2) {
1528
+ class Bo extends S {
1529
+ constructor(t = 2, o = 0.3, n = 0.5, r = 5, s = 2) {
1269
1530
  super();
1270
- const s = [], c = [];
1271
- for (let m = 0; m < a; m++) {
1272
- const h = m * o, f = h + o, p = m * n, y = p + n;
1273
- s.push(
1531
+ const a = [], i = [];
1532
+ for (let m = 0; m < r; m++) {
1533
+ const h = m * o, f = h + o, p = m * n, d = p + n;
1534
+ a.push(
1274
1535
  // Vertical riser
1275
- -e / 2,
1536
+ -t / 2,
1276
1537
  h,
1277
1538
  p,
1278
1539
  // Bottom-left
1279
- e / 2,
1540
+ t / 2,
1280
1541
  h,
1281
1542
  p,
1282
1543
  // Bottom-right
1283
- e / 2,
1544
+ t / 2,
1284
1545
  f,
1285
1546
  p,
1286
1547
  // Top-right
1287
- -e / 2,
1548
+ -t / 2,
1288
1549
  f,
1289
1550
  p,
1290
1551
  // Top-left
1291
1552
  // Horizontal tread
1292
- -e / 2,
1553
+ -t / 2,
1293
1554
  f,
1294
1555
  p,
1295
1556
  // Top-left
1296
- e / 2,
1557
+ t / 2,
1297
1558
  f,
1298
1559
  p,
1299
1560
  // Top-right
1300
- e / 2,
1561
+ t / 2,
1301
1562
  f,
1302
- y,
1563
+ d,
1303
1564
  // Back-right
1304
- -e / 2,
1565
+ -t / 2,
1305
1566
  f,
1306
- y
1567
+ d
1307
1568
  // Back-left
1308
1569
  );
1309
- const v = m * 8;
1310
- c.push(
1311
- v,
1312
- v + 1,
1313
- v + 2,
1314
- v,
1315
- v + 2,
1316
- v + 3
1317
- ), c.push(
1318
- v + 4,
1319
- v + 5,
1320
- v + 6,
1321
- v + 4,
1322
- v + 6,
1323
- v + 7
1570
+ const w = m * 8;
1571
+ i.push(
1572
+ w,
1573
+ w + 1,
1574
+ w + 2,
1575
+ w,
1576
+ w + 2,
1577
+ w + 3
1578
+ ), i.push(
1579
+ w + 4,
1580
+ w + 5,
1581
+ w + 6,
1582
+ w + 4,
1583
+ w + 6,
1584
+ w + 7
1324
1585
  );
1325
1586
  }
1326
- const i = a * o, l = a * n;
1327
- s.push(
1587
+ const c = r * o, l = r * n;
1588
+ a.push(
1328
1589
  // Landing platform (4 vertices)
1329
- -e / 2,
1330
- i,
1590
+ -t / 2,
1591
+ c,
1331
1592
  l,
1332
1593
  // Bottom-left
1333
- e / 2,
1334
- i,
1594
+ t / 2,
1595
+ c,
1335
1596
  l,
1336
1597
  // Bottom-right
1337
- e / 2,
1338
- i,
1339
- l + r,
1598
+ t / 2,
1599
+ c,
1600
+ l + s,
1340
1601
  // Top-right
1341
- -e / 2,
1342
- i,
1343
- l + r
1602
+ -t / 2,
1603
+ c,
1604
+ l + s
1344
1605
  // Top-left
1345
1606
  );
1346
- const u = a * 8;
1347
- c.push(
1607
+ const u = r * 8;
1608
+ i.push(
1348
1609
  u,
1349
1610
  u + 1,
1350
1611
  u + 2,
@@ -1354,176 +1615,176 @@ class uo extends I {
1354
1615
  u + 3
1355
1616
  // Second triangle for landing
1356
1617
  );
1357
- for (let m = 0; m < a; m++) {
1358
- const h = i + m * o, f = h + o, p = -e / 2 - m * n, y = p - n;
1359
- s.push(
1618
+ for (let m = 0; m < r; m++) {
1619
+ const h = c + m * o, f = h + o, p = -t / 2 - m * n, d = p - n;
1620
+ a.push(
1360
1621
  // Vertical riser
1361
1622
  p,
1362
1623
  h,
1363
- l + r,
1624
+ l + s,
1364
1625
  // Bottom-left
1365
1626
  p,
1366
1627
  h,
1367
- l + r - e,
1628
+ l + s - t,
1368
1629
  // Bottom-right
1369
1630
  p,
1370
1631
  f,
1371
- l + r - e,
1632
+ l + s - t,
1372
1633
  // Top-right
1373
1634
  p,
1374
1635
  f,
1375
- l + r,
1636
+ l + s,
1376
1637
  // Top-left
1377
1638
  // Horizontal tread
1378
1639
  p,
1379
1640
  f,
1380
- l + r,
1641
+ l + s,
1381
1642
  // Top-left
1382
1643
  p,
1383
1644
  f,
1384
- l + r - e,
1645
+ l + s - t,
1385
1646
  // Top-right
1386
- y,
1647
+ d,
1387
1648
  f,
1388
- l + r - e,
1649
+ l + s - t,
1389
1650
  // Back-right
1390
- y,
1651
+ d,
1391
1652
  f,
1392
- l + r
1653
+ l + s
1393
1654
  // Back-left
1394
1655
  );
1395
- const v = u + 4 + m * 8;
1396
- c.push(
1397
- v,
1398
- v + 1,
1399
- v + 2,
1400
- v,
1401
- v + 2,
1402
- v + 3
1403
- ), c.push(
1404
- v + 4,
1405
- v + 5,
1406
- v + 6,
1407
- v + 4,
1408
- v + 6,
1409
- v + 7
1656
+ const w = u + 4 + m * 8;
1657
+ i.push(
1658
+ w,
1659
+ w + 1,
1660
+ w + 2,
1661
+ w,
1662
+ w + 2,
1663
+ w + 3
1664
+ ), i.push(
1665
+ w + 4,
1666
+ w + 5,
1667
+ w + 6,
1668
+ w + 4,
1669
+ w + 6,
1670
+ w + 7
1410
1671
  );
1411
1672
  }
1412
- this.setIndex(c), this.setAttribute("position", new D(s, 3)), this.computeVertexNormals();
1673
+ this.setIndex(i), this.setAttribute("position", new q(a, 3)), this.computeVertexNormals();
1413
1674
  }
1414
1675
  }
1415
- class mo extends I {
1416
- constructor(e = 1, o = 0.4, n = 0.2, a = 20, r = 2, s = Math.PI / 8) {
1676
+ class Co extends S {
1677
+ constructor(t = 1, o = 0.4, n = 0.2, r = 20, s = 2, a = Math.PI / 8) {
1417
1678
  super();
1418
- const c = [], i = [];
1679
+ const i = [], c = [];
1419
1680
  let l = 0;
1420
- for (let u = 0; u < a; u++) {
1421
- const m = r * Math.cos(l), h = r * Math.sin(l), f = u * n, p = f + n;
1422
- c.push(
1681
+ for (let u = 0; u < r; u++) {
1682
+ const m = s * Math.cos(l), h = s * Math.sin(l), f = u * n, p = f + n;
1683
+ i.push(
1423
1684
  // Front face (vertical riser)
1424
- m - e / 2 * Math.cos(l),
1685
+ m - t / 2 * Math.cos(l),
1425
1686
  f,
1426
- h - e / 2 * Math.sin(l),
1687
+ h - t / 2 * Math.sin(l),
1427
1688
  // Bottom-left
1428
- m + e / 2 * Math.cos(l),
1689
+ m + t / 2 * Math.cos(l),
1429
1690
  f,
1430
- h + e / 2 * Math.sin(l),
1691
+ h + t / 2 * Math.sin(l),
1431
1692
  // Bottom-right
1432
- m + e / 2 * Math.cos(l),
1693
+ m + t / 2 * Math.cos(l),
1433
1694
  p,
1434
- h + e / 2 * Math.sin(l),
1695
+ h + t / 2 * Math.sin(l),
1435
1696
  // Top-right
1436
- m - e / 2 * Math.cos(l),
1697
+ m - t / 2 * Math.cos(l),
1437
1698
  p,
1438
- h - e / 2 * Math.sin(l)
1699
+ h - t / 2 * Math.sin(l)
1439
1700
  // Top-left
1440
- ), c.push(
1701
+ ), i.push(
1441
1702
  // Top face (horizontal tread)
1442
- m - e / 2 * Math.cos(l),
1703
+ m - t / 2 * Math.cos(l),
1443
1704
  p,
1444
- h - e / 2 * Math.sin(l),
1705
+ h - t / 2 * Math.sin(l),
1445
1706
  // Top-left-front
1446
- m + e / 2 * Math.cos(l),
1707
+ m + t / 2 * Math.cos(l),
1447
1708
  p,
1448
- h + e / 2 * Math.sin(l),
1709
+ h + t / 2 * Math.sin(l),
1449
1710
  // Top-right-front
1450
- m + e / 2 * Math.cos(l) - o * Math.sin(l),
1711
+ m + t / 2 * Math.cos(l) - o * Math.sin(l),
1451
1712
  p,
1452
- h + e / 2 * Math.sin(l) + o * Math.cos(l),
1713
+ h + t / 2 * Math.sin(l) + o * Math.cos(l),
1453
1714
  // Back-right
1454
- m - e / 2 * Math.cos(l) - o * Math.sin(l),
1715
+ m - t / 2 * Math.cos(l) - o * Math.sin(l),
1455
1716
  p,
1456
- h - e / 2 * Math.sin(l) + o * Math.cos(l)
1717
+ h - t / 2 * Math.sin(l) + o * Math.cos(l)
1457
1718
  // Back-left
1458
1719
  );
1459
- const y = u * 8;
1460
- i.push(
1461
- y,
1462
- y + 1,
1463
- y + 2,
1720
+ const d = u * 8;
1721
+ c.push(
1722
+ d,
1723
+ d + 1,
1724
+ d + 2,
1464
1725
  // First triangle for riser
1465
- y,
1466
- y + 2,
1467
- y + 3
1726
+ d,
1727
+ d + 2,
1728
+ d + 3
1468
1729
  // Second triangle for riser
1469
- ), i.push(
1470
- y + 4,
1471
- y + 5,
1472
- y + 6,
1730
+ ), c.push(
1731
+ d + 4,
1732
+ d + 5,
1733
+ d + 6,
1473
1734
  // First triangle for tread
1474
- y + 4,
1475
- y + 6,
1476
- y + 7
1735
+ d + 4,
1736
+ d + 6,
1737
+ d + 7
1477
1738
  // Second triangle for tread
1478
- ), l += s;
1739
+ ), l += a;
1479
1740
  }
1480
- this.setIndex(i), this.setAttribute("position", new D(c, 3)), this.computeVertexNormals();
1741
+ this.setIndex(c), this.setAttribute("position", new q(i, 3)), this.computeVertexNormals();
1481
1742
  }
1482
1743
  }
1483
- class ho extends I {
1484
- constructor(e = 2, o = 0.3, n = 0.5, a = 10) {
1744
+ class Uo extends S {
1745
+ constructor(t = 2, o = 0.3, n = 0.5, r = 10) {
1485
1746
  super();
1486
- const r = [], s = [];
1487
- for (let c = 0; c < a; c++) {
1488
- const i = c * o, l = i + o, u = c * n, m = u + n;
1489
- r.push(
1747
+ const s = [], a = [];
1748
+ for (let i = 0; i < r; i++) {
1749
+ const c = i * o, l = c + o, u = i * n, m = u + n;
1750
+ s.push(
1490
1751
  // Bottom face of riser (front face)
1491
- -e / 2,
1492
- i,
1752
+ -t / 2,
1753
+ c,
1493
1754
  u,
1494
1755
  // 0: Bottom-left-front
1495
- e / 2,
1496
- i,
1756
+ t / 2,
1757
+ c,
1497
1758
  u,
1498
1759
  // 1: Bottom-right-front
1499
- e / 2,
1760
+ t / 2,
1500
1761
  l,
1501
1762
  u,
1502
1763
  // 2: Top-right-front
1503
- -e / 2,
1764
+ -t / 2,
1504
1765
  l,
1505
1766
  u,
1506
1767
  // 3: Top-left-front
1507
1768
  // Top face of tread (horizontal step)
1508
- -e / 2,
1769
+ -t / 2,
1509
1770
  l,
1510
1771
  u,
1511
1772
  // 4: Top-left-front (repeated)
1512
- e / 2,
1773
+ t / 2,
1513
1774
  l,
1514
1775
  u,
1515
1776
  // 5: Top-right-front (repeated)
1516
- e / 2,
1777
+ t / 2,
1517
1778
  l,
1518
1779
  m,
1519
1780
  // 6: Top-right-back
1520
- -e / 2,
1781
+ -t / 2,
1521
1782
  l,
1522
1783
  m
1523
1784
  // 7: Top-left-back
1524
1785
  );
1525
- const h = c * 8;
1526
- s.push(
1786
+ const h = i * 8;
1787
+ a.push(
1527
1788
  h,
1528
1789
  h + 1,
1529
1790
  h + 2,
@@ -1532,7 +1793,7 @@ class ho extends I {
1532
1793
  h + 2,
1533
1794
  h + 3
1534
1795
  // Second triangle for riser
1535
- ), s.push(
1796
+ ), a.push(
1536
1797
  h + 4,
1537
1798
  h + 6,
1538
1799
  h + 5,
@@ -1543,356 +1804,349 @@ class ho extends I {
1543
1804
  // Second triangle for tread
1544
1805
  );
1545
1806
  }
1546
- this.setIndex(s), this.setAttribute("position", new D(r, 3)), this.computeVertexNormals();
1807
+ this.setIndex(a), this.setAttribute("position", new q(s, 3)), this.computeVertexNormals();
1547
1808
  }
1548
1809
  }
1549
- class vt extends I {
1550
- constructor(e = 0.4, o = 1.2, n = 0.2) {
1810
+ class be extends S {
1811
+ constructor(t = 0.4, o = 1.2, n = 0.2) {
1551
1812
  super();
1552
- const a = o * 0.6, r = new S(e / 2, a, n);
1553
- r.translate(0, a / 2, 0);
1554
- const s = e * 1.5, c = new S(s, e / 4, n);
1555
- c.translate(0, a * 0.75, 0), this.copy(C([r, c], !1)), this.computeVertexNormals();
1813
+ const r = o * 0.6, s = new A(t / 2, r, n);
1814
+ s.translate(0, r / 2, 0);
1815
+ const a = t * 1.5, i = new A(a, t / 4, n);
1816
+ i.translate(0, r * 0.75, 0), this.copy(T([s, i], !1)), this.computeVertexNormals();
1556
1817
  }
1557
1818
  }
1558
- class Mt extends I {
1559
- constructor(e = 1.75, o = 0.75) {
1819
+ class Ie extends S {
1820
+ constructor(t = 1.75, o = 0.75) {
1560
1821
  super();
1561
- const n = e * 0.05, a = e * 0.15, r = e * 0.15, s = e * 0.75;
1562
- let c = 0;
1563
- const i = new S(o, n, o);
1564
- i.translate(0, c + n / 2, 0), c += n;
1565
- const l = new S(o * 0.8, a, o * 0.8);
1566
- l.translate(0, c + a / 2, 0), c += a;
1567
- const u = new S(o * 0.6, r, o * 0.6);
1568
- u.translate(0, c + r / 2, 0), c += r;
1569
- const m = new S(o * 0.4, s, o * 0.4);
1570
- m.translate(0, c + s / 2, 0), c += s;
1822
+ const n = t * 0.05, r = t * 0.15, s = t * 0.15, a = t * 0.75;
1823
+ let i = 0;
1824
+ const c = new A(o, n, o);
1825
+ c.translate(0, i + n / 2, 0), i += n;
1826
+ const l = new A(o * 0.8, r, o * 0.8);
1827
+ l.translate(0, i + r / 2, 0), i += r;
1828
+ const u = new A(o * 0.6, s, o * 0.6);
1829
+ u.translate(0, i + s / 2, 0), i += s;
1830
+ const m = new A(o * 0.4, a, o * 0.4);
1831
+ m.translate(0, i + a / 2, 0), i += a;
1571
1832
  const h = new Z(o * 0.4 / Math.sqrt(2), 0.1, 4, 1, !1, Math.PI / 4);
1572
- h.translate(0, c + 0.1 / 2, 0), this.copy(C([i, l, u, m, h], !1)), this.computeVertexNormals();
1833
+ h.translate(0, i + 0.1 / 2, 0), this.copy(T([c, l, u, m, h], !1)), this.computeVertexNormals();
1573
1834
  }
1574
1835
  }
1575
- class xt extends I {
1576
- constructor(e = 0.6, o = 1, n = 0.2, a = 0.6) {
1836
+ class Ae extends S {
1837
+ constructor(t = 0.6, o = 1, n = 0.2, r = 0.6) {
1577
1838
  super();
1578
- const r = o - a / 2, s = new S(e, r, n);
1579
- s.translate(0, r / 2, 0);
1580
- const c = new E(a / 2, a / 2, n, 16, 1, !1, 0, Math.PI);
1581
- c.rotateY(Math.PI / 2), c.rotateX(Math.PI / 2), c.translate(0, r, 0), this.copy(C([s, c], !1)), this.computeVertexNormals();
1839
+ const s = o - r / 2, a = new A(t, s, n);
1840
+ a.translate(0, s / 2, 0);
1841
+ const i = new E(r / 2, r / 2, n, 16, 1, !1, 0, Math.PI);
1842
+ i.rotateY(Math.PI / 2), i.rotateX(Math.PI / 2), i.translate(0, s, 0), this.copy(T([a, i], !1)), this.computeVertexNormals();
1582
1843
  }
1583
1844
  }
1584
- class gt extends I {
1585
- constructor(e = 0.5, o = 0.8, n = 0.15) {
1845
+ class Se extends S {
1846
+ constructor(t = 0.5, o = 0.8, n = 0.15) {
1586
1847
  super();
1587
- const a = new S(e, o, n);
1588
- a.translate(0, o / 2, 0), this.copy(a);
1848
+ const r = new A(t, o, n);
1849
+ r.translate(0, o / 2, 0), this.copy(r);
1589
1850
  }
1590
1851
  }
1591
- class bt extends I {
1592
- constructor({ height: e = 2.25 } = {}) {
1852
+ class Ee extends S {
1853
+ constructor({ height: t = 2.25 } = {}) {
1593
1854
  super();
1594
- const o = new S(1.2, 0.5, 1.2);
1855
+ const o = new A(1.2, 0.5, 1.2);
1595
1856
  o.translate(0, 0.25, 0);
1596
- const n = new S(1, e, 1);
1597
- n.translate(0, 0.5 + e / 2, 0);
1598
- const a = new S(1.4, 0.3, 1.4);
1599
- a.translate(0, 0.5 + e + 0.15, 0), this.copy(C([o, n, a], !1));
1857
+ const n = new A(1, t, 1);
1858
+ n.translate(0, 0.5 + t / 2, 0);
1859
+ const r = new A(1.4, 0.3, 1.4);
1860
+ r.translate(0, 0.5 + t + 0.15, 0), this.copy(T([o, n, r], !1));
1600
1861
  }
1601
1862
  }
1602
- class de extends I {
1863
+ class wt extends S {
1603
1864
  constructor({
1604
- barHeight: e = 2,
1865
+ barHeight: t = 2,
1605
1866
  //
1606
1867
  barRadius: o = 0.05,
1607
1868
  spikeHeight: n = 0.3,
1608
- spikeRadius: a = 0.075,
1609
- spikeScaleZ: r = 1,
1610
- radialSegments: s = 8
1869
+ spikeRadius: r = 0.075,
1870
+ spikeScaleZ: s = 1,
1871
+ radialSegments: a = 8
1611
1872
  } = {}) {
1612
1873
  super();
1613
- const c = new E(o, o, e, s);
1614
- c.translate(0, e / 2, 0);
1615
- const i = new Z(a, n, s);
1616
- i.translate(0, e + n / 2, 0), i.scale(1, 1, r), this.copy(C([c, i], !1));
1874
+ const i = new E(o, o, t, a);
1875
+ i.translate(0, t / 2, 0);
1876
+ const c = new Z(r, n, a);
1877
+ c.translate(0, t + n / 2, 0), c.scale(1, 1, s), this.copy(T([i, c], !1));
1617
1878
  }
1618
1879
  }
1619
- class St extends I {
1880
+ class Pe extends S {
1620
1881
  constructor({
1621
- count: e = 20,
1882
+ count: t = 20,
1622
1883
  //
1623
1884
  spacing: o = 0.4,
1624
1885
  barHeight: n = 2,
1625
- barRadius: a = 0.05,
1626
- spikeHeight: r = 0.3,
1627
- spikeRadius: s = 0.075,
1628
- spikeScaleZ: c = 1,
1629
- railHeight: i = 0.1,
1886
+ barRadius: r = 0.05,
1887
+ spikeHeight: s = 0.3,
1888
+ spikeRadius: a = 0.075,
1889
+ spikeScaleZ: i = 1,
1890
+ railHeight: c = 0.1,
1630
1891
  railDepth: l = 0.05,
1631
1892
  railOffset: u = 0,
1632
1893
  radialSegments: m = 8
1633
1894
  } = {}) {
1634
1895
  super();
1635
- const h = [], f = new de({ barHeight: n, barRadius: a, spikeHeight: r, spikeRadius: s, spikeScaleZ: c, radialSegments: m }), p = new S(e * o, i, l);
1636
- for (let M = 0; M < e; M++) {
1896
+ const h = [], f = new wt({ barHeight: n, barRadius: r, spikeHeight: s, spikeRadius: a, spikeScaleZ: i, radialSegments: m }), p = new A(t * o, c, l);
1897
+ for (let v = 0; v < t; v++) {
1637
1898
  const x = f.clone();
1638
- x.translate(M * o, 0, 0), h.push(x);
1899
+ x.translate(v * o, 0, 0), h.push(x);
1639
1900
  }
1640
- const y = p.clone();
1641
- y.translate(o * (e - 1) / 2, n - u - i / 2, 0), h.push(y);
1642
- const v = p.clone();
1643
- v.translate(o * (e - 1) / 2, i / 2, 0), h.push(v), this.copy(C(h));
1901
+ const d = p.clone();
1902
+ d.translate(o * (t - 1) / 2, n - u - c / 2, 0), h.push(d);
1903
+ const w = p.clone();
1904
+ w.translate(o * (t - 1) / 2, c / 2, 0), h.push(w), this.copy(T(h));
1644
1905
  }
1645
1906
  }
1646
- class It extends I {
1907
+ class Te extends S {
1647
1908
  constructor({
1648
- width: e = 5,
1909
+ width: t = 5,
1649
1910
  //
1650
1911
  height: o = 8,
1651
1912
  depth: n = 1,
1652
- shelves: a = 4,
1653
- frameThickness: r = 0.1,
1654
- open: s = !1
1913
+ shelves: r = 4,
1914
+ frameThickness: s = 0.1,
1915
+ open: a = !1
1655
1916
  } = {}) {
1656
1917
  super();
1657
- const c = o, i = e, l = n, u = new S(r, c, l), m = new S(i - 2 * r, r, l), h = u.clone();
1658
- h.translate(-i / 2 + r / 2, c / 2, 0);
1918
+ const i = o, c = t, l = n, u = new A(s, i, l), m = new A(c - 2 * s, s, l), h = u.clone();
1919
+ h.translate(-c / 2 + s / 2, i / 2, 0);
1659
1920
  const f = u.clone();
1660
- f.translate(i / 2 - r / 2, c / 2, 0);
1921
+ f.translate(c / 2 - s / 2, i / 2, 0);
1661
1922
  const p = m.clone();
1662
- p.translate(0, c - r / 2, 0);
1663
- const y = m.clone();
1664
- y.translate(0, r / 2, 0);
1665
- const v = new S(i, c, r);
1666
- v.translate(0, c / 2, -l / 2 + r / 2);
1667
- const M = [], x = (c - r) / (a + 1);
1668
- for (let B = 1; B <= a; B++) {
1669
- const U = m.clone();
1670
- U.translate(0, r / 2 + B * x, 0), M.push(U);
1923
+ p.translate(0, i - s / 2, 0);
1924
+ const d = m.clone();
1925
+ d.translate(0, s / 2, 0);
1926
+ const w = new A(c, i, s);
1927
+ w.translate(0, i / 2, -l / 2 + s / 2);
1928
+ const v = [], x = (i - s) / (r + 1);
1929
+ for (let U = 1; U <= r; U++) {
1930
+ const z = m.clone();
1931
+ z.translate(0, s / 2 + U * x, 0), v.push(z);
1671
1932
  }
1672
- this.copy(C([
1933
+ this.copy(T([
1673
1934
  h,
1674
1935
  //
1675
1936
  f,
1676
1937
  p,
1677
- y,
1678
- ...s ? [] : [v],
1679
- ...M
1938
+ d,
1939
+ ...a ? [] : [w],
1940
+ ...v
1680
1941
  ], !1));
1681
1942
  }
1682
1943
  }
1683
- class fo extends I {
1684
- constructor(e = 0.1) {
1944
+ class Ge extends S {
1945
+ constructor() {
1685
1946
  super();
1686
- const o = [], n = [], a = [
1687
- [0, 1],
1688
- // Top point
1689
- [0.5, 0.75],
1690
- // Right upper middle
1691
- [0.75, 0.25],
1692
- // Right lower middle
1693
- [0.5, -0.5],
1694
- // Right bottom middle
1695
- [0, -1],
1696
- // Bottom point
1697
- [-0.5, -0.5],
1698
- // Left bottom middle
1699
- [-0.75, 0.25],
1700
- // Left lower middle
1701
- [-0.5, 0.75]
1702
- // Left upper middle
1703
- ];
1704
- for (let s = 0; s < a.length; s++) {
1705
- const [c, i] = a[s];
1706
- o.push(c * e, i * e, 0);
1707
- }
1708
- for (let s = 1; s < a.length - 1; s++)
1709
- n.push(0, s, s + 1);
1710
- n.push(0, a.length - 1, 1);
1711
- const r = new D(o, 3);
1712
- this.setAttribute("position", r), this.setIndex(n), this.computeVertexNormals();
1713
- }
1714
- }
1715
- function Et(t, e = L.XYZ, o = 0.5, n = 2) {
1716
- t.deleteAttribute("uv"), t.deleteAttribute("normal"), t = pt(t), t.computeVertexNormals();
1717
- const a = t.getAttribute("position");
1718
- for (let r = 0; r < a.count; r++) {
1719
- const s = new g().fromBufferAttribute(a, r), c = Math.random() * (n - o) + o, i = e.clone().multiplyScalar(c);
1720
- s.add(i), a.setXYZ(r, s.x, s.y, s.z);
1947
+ const t = new A(5, 0.3, 3);
1948
+ t.translate(0, 3.15, 0);
1949
+ const o = [
1950
+ new I(0.2, 0),
1951
+ //
1952
+ new I(0.25, 0.5),
1953
+ new I(0.15, 1.5),
1954
+ new I(0.3, 3)
1955
+ ], n = new Y(o, 32), s = T(
1956
+ [
1957
+ [2.1, 0, 1.1],
1958
+ [-2.1, 0, 1.1],
1959
+ [2.1, 0, -1.1],
1960
+ [-2.1, 0, -1.1]
1961
+ ].map((a) => {
1962
+ const i = n.clone();
1963
+ return i.translate(a[0], a[1], a[2]), i;
1964
+ })
1965
+ );
1966
+ this.copy(T([t, s], !0));
1721
1967
  }
1722
- return a.needsUpdate = !0, t.computeVertexNormals(), t;
1723
1968
  }
1724
- class At extends I {
1725
- constructor(e = 1, o = 4, n = 4) {
1726
- super();
1727
- const a = new z(e, o, n);
1728
- this.copy(Et(a, L.XYZ, 0.5, 1)), this.computeVertexNormals(), this.center();
1969
+ function Be(e, t = lt.XYZ, o = 0.5, n = 2) {
1970
+ e.deleteAttribute("uv"), e.deleteAttribute("normal"), e = ge(e), e.computeVertexNormals();
1971
+ const r = e.getAttribute("position");
1972
+ for (let s = 0; s < r.count; s++) {
1973
+ const a = new b().fromBufferAttribute(r, s), i = Math.random() * (n - o) + o, c = t.clone().multiplyScalar(i);
1974
+ a.add(c), r.setXYZ(s, a.x, a.y, a.z);
1729
1975
  }
1976
+ return r.needsUpdate = !0, e.computeVertexNormals(), e;
1730
1977
  }
1731
- class Gt extends I {
1732
- constructor(e = 0.1, o = 0.1, n = 0.4, a = 8) {
1978
+ class Ce extends S {
1979
+ constructor(t = 1, o = 4, n = 4) {
1733
1980
  super();
1734
- const r = new E(e * 0.6, o * 0.6, n, a);
1735
- r.translate(0, 0, 0);
1736
- const s = new z(e, a, a), c = s.clone(), i = s.clone(), l = s.clone(), u = s.clone();
1737
- c.translate(0, n / 2 + e * 0.6, -e * 0.6), i.translate(0, n / 2 + e * 0.6, e * 0.6), l.translate(0, -n / 2 - o * 0.6, -o * 0.6), u.translate(0, -n / 2 - o * 0.6, o * 0.6), this.copy(C([r, c, i, l, u], !1));
1981
+ const r = new N(t, o, n);
1982
+ this.copy(Be(r, lt.XYZ, 0.5, 1)), this.computeVertexNormals(), this.center();
1738
1983
  }
1739
1984
  }
1740
- class Pt extends I {
1741
- constructor() {
1985
+ class Ue extends S {
1986
+ constructor(t = 0.1, o = 0.1, n = 0.4, r = 8) {
1742
1987
  super();
1743
- const e = new z(1, 16, 16), o = new E(0.2, 0.2, 2, 16, 1, !0);
1744
- o.translate(0, 1.5, 0), o.rotateX(Math.PI / 2), this.copy(C([e, o], !1));
1988
+ const s = new E(t * 0.6, o * 0.6, n, r);
1989
+ s.translate(0, 0, 0);
1990
+ const a = new N(t, r, r), i = a.clone(), c = a.clone(), l = a.clone(), u = a.clone();
1991
+ i.translate(0, n / 2 + t * 0.6, -t * 0.6), c.translate(0, n / 2 + t * 0.6, t * 0.6), l.translate(0, -n / 2 - o * 0.6, -o * 0.6), u.translate(0, -n / 2 - o * 0.6, o * 0.6), this.copy(T([s, i, c, l, u], !1));
1745
1992
  }
1746
1993
  }
1747
- class Tt extends I {
1994
+ class ze extends S {
1748
1995
  constructor({
1749
- flaskRadius: e = 1,
1996
+ flaskRadius: t = 1,
1750
1997
  //
1751
1998
  neckRadius: o = 0.3,
1752
1999
  height: n = 2.5,
1753
- neckHeight: a = 1,
1754
- radialSegments: r = 16
2000
+ neckHeight: r = 1,
2001
+ radialSegments: s = 16
1755
2002
  } = {}) {
1756
2003
  super();
1757
- const s = [
1758
- new b(0, 0),
2004
+ const a = [
2005
+ new I(0, 0),
1759
2006
  // Bottom of the flask
1760
- new b(e * 0.875, 0),
2007
+ new I(t * 0.875, 0),
1761
2008
  // Flat base with minimum width
1762
- new b(e, 0.1),
2009
+ new I(t, 0.1),
1763
2010
  // End of the rounded base
1764
- new b(o, n),
2011
+ new I(o, n),
1765
2012
  // Start of the straight neck
1766
- new b(o, n + a),
2013
+ new I(o, n + r),
1767
2014
  // End of the straight neck
1768
- new b(o * 1.1, n + a + 0.3)
2015
+ new I(o * 1.1, n + r + 0.3)
1769
2016
  // Slight outward lip at the top
1770
- ], c = new H(s, r);
1771
- this.copy(C([c], !1));
2017
+ ], i = new Y(a, s);
2018
+ this.copy(T([i], !1));
1772
2019
  }
1773
2020
  }
1774
- class Ct extends I {
2021
+ class Ne extends S {
1775
2022
  constructor() {
1776
2023
  super();
1777
- const e = [
1778
- new b(1, 0),
2024
+ const t = new N(1, 16, 16), o = new E(0.2, 0.2, 2, 16, 1, !0);
2025
+ o.translate(0, 1.5, 0), o.rotateX(Math.PI / 2), this.copy(T([t, o], !1));
2026
+ }
2027
+ }
2028
+ class ke extends S {
2029
+ constructor() {
2030
+ super();
2031
+ const t = [
2032
+ new I(1, 0),
1779
2033
  // Bottom of the bowl
1780
- new b(1.2, 0.5),
2034
+ new I(1.2, 0.5),
1781
2035
  // Slight flare at the base
1782
- new b(1.4, 1.5),
2036
+ new I(1.4, 1.5),
1783
2037
  // Outer wall
1784
- new b(1.3, 1.8),
2038
+ new I(1.3, 1.8),
1785
2039
  // Flared edge
1786
- new b(0.8, 1.8)
2040
+ new I(0.8, 1.8)
1787
2041
  // Lip of the bowl
1788
- ], o = new H(e, 12), n = new be(1, 12);
1789
- n.rotateX(-Math.PI / 2), n.translate(0, 0, 0), this.copy(C([o, n], !1));
2042
+ ], o = new Y(t, 12), n = new St(1, 12);
2043
+ n.rotateX(-Math.PI / 2), n.translate(0, 0, 0), this.copy(T([o, n], !1));
1790
2044
  }
1791
2045
  }
1792
- class Bt extends I {
2046
+ class Fe extends S {
1793
2047
  constructor({
1794
- radius: e = 0.3,
2048
+ radius: t = 0.3,
1795
2049
  //
1796
2050
  height: o = 0.4,
1797
2051
  count: n = 3,
1798
- thickness: a = 0.03,
1799
- radialSegments: r = 16
2052
+ thickness: r = 0.03,
2053
+ radialSegments: s = 16
1800
2054
  } = {}) {
1801
2055
  super();
1802
- const s = new ue(e, a, 8, r);
1803
- s.rotateX(Math.PI / 2), s.translate(0, o, 0);
1804
- const c = new E(a * 0.6, a * 0.6, o, r), i = [];
2056
+ const a = new ht(t, r, 8, s);
2057
+ a.rotateX(Math.PI / 2), a.translate(0, o, 0);
2058
+ const i = new E(r * 0.6, r * 0.6, o, s), c = [];
1805
2059
  for (let l = 0; l < n; l++) {
1806
- const u = l / n * Math.PI * 2, m = c.clone();
1807
- m.translate(Math.cos(u) * e, o / 2, Math.sin(u) * e), i.push(m);
2060
+ const u = l / n * Math.PI * 2, m = i.clone();
2061
+ m.translate(Math.cos(u) * t, o / 2, Math.sin(u) * t), c.push(m);
1808
2062
  }
1809
- this.copy(C([s, ...i], !1));
2063
+ this.copy(T([a, ...c], !1));
1810
2064
  }
1811
2065
  }
1812
- class ne extends I {
1813
- constructor(e = 0.2, o = 0.2, n = 3, a = 32, r = !0) {
2066
+ class st extends S {
2067
+ constructor(t = 0.2, o = 0.2, n = 3, r = 32, s = !0) {
1814
2068
  super();
1815
- const s = new E(e, o, n, a, 1, r), c = new z(o, a, a / 2, 0, Math.PI * 2, Math.PI / 2, Math.PI / 2);
1816
- c.translate(0, -(n / 2), 0), this.copy(C([s, c], !1));
2069
+ const a = new E(t, o, n, r, 1, s), i = new N(o, r, r / 2, 0, Math.PI * 2, Math.PI / 2, Math.PI / 2);
2070
+ i.translate(0, -(n / 2), 0), this.copy(T([a, i], !1));
1817
2071
  }
1818
2072
  }
1819
- class Ut extends I {
1820
- constructor({ radius: e = 0.5, neckRadius: o = 0.2, height: n = 3, neckHeight: a = 1, segments: r = 16 } = {}) {
2073
+ class Oe extends S {
2074
+ constructor({ radius: t = 0.5, neckRadius: o = 0.2, height: n = 3, neckHeight: r = 1, segments: s = 16 } = {}) {
1821
2075
  super();
1822
- const s = n - a, c = new E(e, e, s, r);
1823
- c.translate(0, s / 2, 0);
1824
- const i = 0.3, l = new E(o, e, i, r);
1825
- l.translate(0, s + i / 2, 0);
1826
- const u = new E(o, o, a, r);
1827
- u.translate(0, s + i + a / 2, 0), this.copy(C([c, l, u], !1));
2076
+ const a = n - r, i = new E(t, t, a, s);
2077
+ i.translate(0, a / 2, 0);
2078
+ const c = 0.3, l = new E(o, t, c, s);
2079
+ l.translate(0, a + c / 2, 0);
2080
+ const u = new E(o, o, r, s);
2081
+ u.translate(0, a + c + r / 2, 0), this.copy(T([i, l, u], !1));
1828
2082
  }
1829
2083
  }
1830
- class Nt extends I {
2084
+ class _e extends S {
1831
2085
  constructor({
1832
- radius: e = 3,
2086
+ radius: t = 3,
1833
2087
  //
1834
2088
  height: o = 0.6,
1835
2089
  widthSegments: n = 64,
1836
- heightSegments: a = 16,
1837
- phiStart: r = 0,
1838
- phiLength: s = Math.PI * 2
2090
+ heightSegments: r = 16,
2091
+ phiStart: s = 0,
2092
+ phiLength: a = Math.PI * 2
1839
2093
  } = {}) {
1840
- super(), this.copy(new z(e, n, a, r, s, 0, Math.PI / 2)), this.scale(1, o / e, 1);
2094
+ super(), this.copy(new N(t, n, r, s, a, 0, Math.PI / 2)), this.scale(1, o / t, 1);
1841
2095
  }
1842
2096
  }
1843
- const po = (t, e) => t / (1 - Math.cos(e)), ye = (t, e) => t / (2 * Math.sin(e)), Ot = (t, e) => t * (1 - Math.cos(e)), yo = (t, e) => 2 * t * Math.sin(e), wo = (t, e, o) => ({
1844
- x: t * Math.sin(o) * Math.cos(e),
1845
- y: t * Math.sin(o) * Math.sin(e),
1846
- z: t * Math.cos(o)
1847
- }), vo = (t, e, o) => {
1848
- const n = Math.sqrt(t * t + e * e + o * o), a = Math.atan2(e, t), r = Math.acos(o / n);
1849
- return { radius: n, theta: a, phi: r };
2097
+ const zo = (e, t) => e / (1 - Math.cos(t)), vt = (e, t) => e / (2 * Math.sin(t)), Re = (e, t) => e * (1 - Math.cos(t)), No = (e, t) => 2 * e * Math.sin(t), ko = (e, t, o) => ({
2098
+ x: e * Math.sin(o) * Math.cos(t),
2099
+ y: e * Math.sin(o) * Math.sin(t),
2100
+ z: e * Math.cos(o)
2101
+ }), Fo = (e, t, o) => {
2102
+ const n = Math.sqrt(e * e + t * t + o * o), r = Math.atan2(t, e), s = Math.acos(o / n);
2103
+ return { radius: n, theta: r, phi: s };
1850
2104
  };
1851
- class zt extends I {
2105
+ class Le extends S {
1852
2106
  constructor({
1853
- radius: e = ye(5, Math.PI / 10),
2107
+ radius: t = vt(5, Math.PI / 10),
1854
2108
  //
1855
2109
  widthSegments: o = 64,
1856
2110
  heightSegments: n = 32,
1857
- phiStart: a = 0,
1858
- phiLength: r = Math.PI * 2,
1859
- thetaLength: s = Math.PI / 10
2111
+ phiStart: r = 0,
2112
+ phiLength: s = Math.PI * 2,
2113
+ thetaLength: a = Math.PI / 10
1860
2114
  } = {}) {
1861
- super(), this.copy(new z(e, o, n, a, r, 0, s));
1862
- const c = Ot(e, s);
1863
- this.translate(0, -e + c, 0);
2115
+ super(), this.copy(new N(t, o, n, r, s, 0, a));
2116
+ const i = Re(t, a);
2117
+ this.translate(0, -t + i, 0);
1864
2118
  }
1865
2119
  }
1866
- class _t extends I {
2120
+ class qe extends S {
1867
2121
  constructor({
1868
- trunkRadiusTop: e = 0.25,
2122
+ trunkRadiusTop: t = 0.25,
1869
2123
  trunkRadiusBottom: o = 0.4,
1870
2124
  trunkHeight: n = 2.5,
1871
- trunkSegments: a = 14,
1872
- leafSize: r = 0.8,
1873
- leafCount: s = 6,
1874
- leafDetail: c = 0,
1875
- leafSpreadRadius: i = 1.5
2125
+ trunkSegments: r = 14,
2126
+ leafSize: s = 0.8,
2127
+ leafCount: a = 6,
2128
+ leafDetail: i = 0,
2129
+ leafSpreadRadius: c = 1.5
1876
2130
  } = {}) {
1877
2131
  super();
1878
- const l = new E(e, o, n, a);
2132
+ const l = new E(t, o, n, r);
1879
2133
  l.translate(0, n / 2, 0);
1880
2134
  const u = [];
1881
- for (let m = 0; m < s; m++) {
1882
- const h = new se(r, c);
2135
+ for (let m = 0; m < a; m++) {
2136
+ const h = new at(s, i);
1883
2137
  h.translate(
1884
- (Math.random() - 0.5) * i,
1885
- (Math.random() - 0.5) * r + n,
1886
- (Math.random() - 0.5) * i
2138
+ (Math.random() - 0.5) * c,
2139
+ (Math.random() - 0.5) * s + n,
2140
+ (Math.random() - 0.5) * c
1887
2141
  ), u.push(h);
1888
2142
  }
1889
- this.copy(C([l.toNonIndexed(), C(u, !1)], !0)), this.computeVertexNormals();
2143
+ this.copy(T([l.toNonIndexed(), T(u, !1)], !0)), this.computeVertexNormals();
1890
2144
  }
1891
2145
  }
1892
- class Mo extends A {
2146
+ class Oo extends G {
1893
2147
  constructor() {
1894
2148
  super();
1895
- const e = new z(5, 32, 32), o = new $({
2149
+ const t = new N(5, 32, 32), o = new $({
1896
2150
  uniforms: {
1897
2151
  time: { value: 0 }
1898
2152
  },
@@ -1935,181 +2189,174 @@ class Mo extends A {
1935
2189
  gl_FragColor = vec4(color, 1.0);
1936
2190
  }
1937
2191
  `
1938
- }), n = new d(e, o);
2192
+ }), n = new y(t, o);
1939
2193
  this.add(n);
1940
2194
  }
1941
2195
  }
1942
- class xo extends d {
2196
+ class _o extends y {
1943
2197
  constructor({
1944
- width: e = 1,
2198
+ width: t = 1,
1945
2199
  height: o = 1.5,
1946
2200
  depth: n = 0.5,
1947
- coverThickness: a = 0.05,
1948
- pageIndent: r = 0.05,
1949
- coverColor: s = 9109504,
1950
- pageColor: c = 16777215
2201
+ coverThickness: r = 0.05,
2202
+ pageIndent: s = 0.05,
2203
+ coverColor: a = 9109504,
2204
+ pageColor: i = 16777215
1951
2205
  } = {}) {
1952
- super(), this.geometry = new he(e, o, n, a, r), this.material = [
1953
- new w({ color: s, metalness: 0.1, roughness: 0.7, flatShading: !0 }),
1954
- new w({ color: c, flatShading: !0 })
2206
+ super(), this.geometry = new dt(t, o, n, r, s), this.material = [
2207
+ new M({ color: a, metalness: 0.1, roughness: 0.7, flatShading: !0 }),
2208
+ new M({ color: i, flatShading: !0 })
1955
2209
  ];
1956
2210
  }
1957
2211
  }
1958
- class go extends d {
2212
+ class Ro extends y {
1959
2213
  constructor({
1960
- width: e = 0.4,
2214
+ width: t = 0.4,
1961
2215
  height: o = 1.2,
1962
2216
  depth: n = 0.2,
1963
- material: a = new w({ color: 7829367, roughness: 0.8 })
2217
+ material: r = new M({ color: 7829367, roughness: 0.8 })
1964
2218
  } = {}) {
1965
- const r = new vt(e, o, n);
1966
- super(r, a);
2219
+ const s = new be(t, o, n);
2220
+ super(s, r);
1967
2221
  }
1968
2222
  }
1969
- class bo extends A {
2223
+ class Lo extends G {
1970
2224
  constructor() {
1971
2225
  super();
1972
- const e = new S(5, 1, 5), o = new w({ color: 8421504, flatShading: !0 }), n = new d(e, o);
2226
+ const t = new A(5, 1, 5), o = new M({ color: 8421504, flatShading: !0 }), n = new y(t, o);
1973
2227
  n.position.set(0, 0.5, 0), this.add(n);
1974
- const a = new S(4, 3, 4), r = new w({ color: 6908265, flatShading: !0 }), s = new d(a, r);
1975
- s.position.set(0, 2.5, 0), this.add(s);
1976
- const c = new Z(3.5, 2, 4), i = new w({ color: 5263440, flatShading: !0 }), l = new d(c, i);
2228
+ const r = new A(4, 3, 4), s = new M({ color: 6908265, flatShading: !0 }), a = new y(r, s);
2229
+ a.position.set(0, 2.5, 0), this.add(a);
2230
+ const i = new Z(3.5, 2, 4), c = new M({ color: 5263440, flatShading: !0 }), l = new y(i, c);
1977
2231
  l.rotation.y = Math.PI / 4, l.position.set(0, 5, 0), this.add(l);
1978
- const u = new E(0.2, 0.2, 3.5, 16), m = new w({ color: 6908265, flatShading: !0 });
2232
+ const u = new E(0.2, 0.2, 3.5, 16), m = new M({ color: 6908265, flatShading: !0 });
1979
2233
  [
1980
2234
  [-1.8, 2.3, -2.2],
1981
2235
  [1.8, 2.3, -2.2],
1982
2236
  [-1.8, 2.3, 2.2],
1983
2237
  [1.8, 2.3, 2.2]
1984
2238
  ].forEach((x) => {
1985
- const B = new d(u, m);
1986
- B.position.set(x[0], x[1], x[2]), this.add(B);
2239
+ const U = new y(u, m);
2240
+ U.position.set(x[0], x[1], x[2]), this.add(U);
1987
2241
  });
1988
- const f = new Y();
2242
+ const f = new j();
1989
2243
  f.moveTo(-1, 0), f.lineTo(-1, 2), f.absarc(0, 2, 1, Math.PI, 0, !0), f.lineTo(1, 0);
1990
2244
  const p = {
1991
2245
  depth: 0.5,
1992
2246
  bevelEnabled: !1
1993
- }, y = new j(f, p), v = new w({ color: 4210752, flatShading: !0 }), M = new d(y, v);
1994
- M.position.set(0, 0.5, 1.7), this.add(M);
2247
+ }, d = new H(f, p), w = new M({ color: 4210752, flatShading: !0 }), v = new y(d, w);
2248
+ v.position.set(0, 0.5, 1.7), this.add(v);
1995
2249
  }
1996
2250
  }
1997
- class So extends d {
1998
- constructor({ totalHeight: e = 1.75, baseWidth: o = 0.75 } = {}) {
1999
- super(), this.geometry = new Mt(e, o), this.material = new w({ color: 7829367, roughness: 0.8 });
2251
+ class qo extends y {
2252
+ constructor({ totalHeight: t = 1.75, baseWidth: o = 0.75 } = {}) {
2253
+ super(), this.geometry = new Ie(t, o), this.material = new M({ color: 7829367, roughness: 0.8 });
2000
2254
  }
2001
2255
  }
2002
- class Io extends d {
2003
- constructor(e = 0.6, o = 1, n = 0.2, a = 0.6) {
2004
- super(), this.geometry = new xt(e, o, n, a), this.material = new w({ color: 7829367, roughness: 0.8 });
2256
+ class Do extends y {
2257
+ constructor(t = 0.6, o = 1, n = 0.2, r = 0.6) {
2258
+ super(), this.geometry = new Ae(t, o, n, r), this.material = new M({ color: 7829367, roughness: 0.8 });
2005
2259
  }
2006
2260
  }
2007
- class Eo extends d {
2008
- constructor(e = 0.5, o = 0.8, n = 0.15) {
2009
- super(), this.geometry = new gt(e, o, n), this.material = new w({ color: 7829367, roughness: 0.8 });
2261
+ class Vo extends y {
2262
+ constructor(t = 0.5, o = 0.8, n = 0.15) {
2263
+ super(), this.geometry = new Se(t, o, n), this.material = new M({ color: 7829367, roughness: 0.8 });
2010
2264
  }
2011
2265
  }
2012
- class Ao extends d {
2013
- constructor({ height: e = 2.25 } = {}) {
2014
- super(), this.geometry = new bt({ height: e }), this.material = new w({ color: 9141627, flatShading: !0 });
2266
+ class Xo extends y {
2267
+ constructor({ height: t = 2.25 } = {}) {
2268
+ super(), this.geometry = new Ee({ height: t }), this.material = new M({ color: 9141627, flatShading: !0 });
2015
2269
  }
2016
2270
  }
2017
- class Go extends d {
2271
+ class Zo extends y {
2018
2272
  constructor({
2019
- barHeight: e = 2,
2273
+ barHeight: t = 2,
2020
2274
  //
2021
2275
  barRadius: o = 0.05,
2022
2276
  spikeHeight: n = 0.3,
2023
- spikeRadius: a = 0.075,
2024
- spikeScaleZ: r = 1,
2025
- radialSegments: s = 8
2277
+ spikeRadius: r = 0.075,
2278
+ spikeScaleZ: s = 1,
2279
+ radialSegments: a = 8
2026
2280
  } = {}) {
2027
- super(), this.geometry = new de({
2028
- barHeight: e,
2281
+ super(), this.geometry = new wt({
2282
+ barHeight: t,
2029
2283
  barRadius: o,
2030
2284
  spikeHeight: n,
2031
- spikeRadius: a,
2032
- spikeScaleZ: r,
2033
- radialSegments: s
2034
- }), this.material = new w({ color: 3355443, metalness: 0.8, roughness: 0.4 });
2285
+ spikeRadius: r,
2286
+ spikeScaleZ: s,
2287
+ radialSegments: a
2288
+ }), this.material = new M({ color: 3355443, metalness: 0.8, roughness: 0.4 });
2035
2289
  }
2036
2290
  }
2037
- class Po extends d {
2291
+ class Yo extends y {
2038
2292
  constructor({
2039
- count: e = 20,
2293
+ count: t = 20,
2040
2294
  //
2041
2295
  spacing: o = 0.4,
2042
2296
  barHeight: n = 2,
2043
- barRadius: a = 0.05,
2044
- spikeHeight: r = 0.3,
2045
- spikeRadius: s = 0.075,
2046
- spikeScaleZ: c = 1,
2047
- railHeight: i = 0.1,
2297
+ barRadius: r = 0.05,
2298
+ spikeHeight: s = 0.3,
2299
+ spikeRadius: a = 0.075,
2300
+ spikeScaleZ: i = 1,
2301
+ railHeight: c = 0.1,
2048
2302
  railDepth: l = 0.05,
2049
2303
  railOffset: u = 0,
2050
2304
  radialSegments: m = 8
2051
2305
  } = {}) {
2052
- super(), this.geometry = new St({
2053
- count: e,
2306
+ super(), this.geometry = new Pe({
2307
+ count: t,
2054
2308
  spacing: o,
2055
2309
  barHeight: n,
2056
- barRadius: a,
2057
- spikeHeight: r,
2058
- spikeRadius: s,
2059
- spikeScaleZ: c,
2060
- railHeight: i,
2310
+ barRadius: r,
2311
+ spikeHeight: s,
2312
+ spikeRadius: a,
2313
+ spikeScaleZ: i,
2314
+ railHeight: c,
2061
2315
  railDepth: l,
2062
2316
  railOffset: u,
2063
2317
  radialSegments: m
2064
- }), this.material = new w({ color: 3355443, metalness: 0.8, roughness: 0.4 });
2318
+ }), this.material = new M({ color: 3355443, metalness: 0.8, roughness: 0.4 });
2065
2319
  }
2066
2320
  }
2067
- class To extends d {
2321
+ class jo extends y {
2068
2322
  constructor({
2069
- width: e = 5,
2323
+ width: t = 5,
2070
2324
  //
2071
2325
  height: o = 8,
2072
2326
  depth: n = 1,
2073
- shelves: a = 4,
2074
- frameThickness: r = 0.1,
2075
- open: s = !1
2327
+ shelves: r = 4,
2328
+ frameThickness: s = 0.1,
2329
+ open: a = !1
2076
2330
  } = {}) {
2077
- super(), this.geometry = new It({ width: e, height: o, depth: n, shelves: a, frameThickness: r, open: s }), this.material = new w({ color: 9127187 });
2331
+ super(), this.geometry = new Te({ width: t, height: o, depth: n, shelves: r, frameThickness: s, open: a }), this.material = new M({ color: 9127187 });
2078
2332
  }
2079
2333
  }
2080
- class Co extends A {
2334
+ class Ho extends y {
2081
2335
  constructor() {
2082
2336
  super();
2083
- const e = new S(5, 0.3, 3), o = new w({ color: 9132587 }), n = new d(e, o);
2084
- n.position.set(0, 3.15, 0);
2085
- const a = [];
2086
- a.push(new b(0.2, 0)), a.push(new b(0.25, 0.5)), a.push(new b(0.15, 1.5)), a.push(new b(0.3, 3));
2087
- const r = new H(a, 32), s = new w({ color: 4929057 });
2088
- [
2089
- [2.2, 0, 1.2],
2090
- // Adjust Y to 0 so legs start at ground level
2091
- [-2.2, 0, 1.2],
2092
- [2.2, 0, -1.2],
2093
- [-2.2, 0, -1.2]
2094
- ].forEach((i) => {
2095
- const l = new d(r, s);
2096
- l.position.set(i[0], i[1], i[2]), this.add(l);
2097
- }), this.add(n);
2098
- }
2099
- }
2100
- class Bo extends A {
2337
+ g(this, "geometry");
2338
+ g(this, "material");
2339
+ this.geometry = new Ge(), this.material = [
2340
+ new M({ color: 9132587 }),
2341
+ // Desk surface
2342
+ new M({ color: 4929057 })
2343
+ // Desk legs
2344
+ ];
2345
+ }
2346
+ }
2347
+ class Qo extends G {
2101
2348
  constructor(o = 1, n = 0.2) {
2102
2349
  super();
2103
- N(this, "candle");
2104
- N(this, "flame");
2105
- N(this, "candleLight");
2106
- N(this, "height");
2107
- N(this, "radius");
2350
+ g(this, "candle");
2351
+ g(this, "flame");
2352
+ g(this, "candleLight");
2353
+ g(this, "height");
2354
+ g(this, "radius");
2108
2355
  this.height = o, this.radius = n;
2109
- const a = new E(this.radius, this.radius, this.height, 32), r = new w({ color: 16777215 });
2110
- this.candle = new d(a, r), this.candle.position.set(0, this.height / 2, 0), this.add(this.candle);
2111
- const s = new z(0.05, 16, 16), c = new Se({ color: 16753920 });
2112
- this.flame = new d(s, c), this.flame.position.set(0, this.height + 0.05, 0), this.add(this.flame), this.candleLight = new me(16753920, 1, 5), this.candleLight.position.set(0, this.height + 0.05, 0), this.candleLight.castShadow = !0, this.add(this.candleLight), this.animateFlicker();
2356
+ const r = new E(this.radius, this.radius, this.height, 32), s = new M({ color: 16777215 });
2357
+ this.candle = new y(r, s), this.candle.position.set(0, this.height / 2, 0), this.add(this.candle);
2358
+ const a = new N(0.05, 16, 16), i = new Et({ color: 16753920 });
2359
+ this.flame = new y(a, i), this.flame.position.set(0, this.height + 0.05, 0), this.add(this.flame), this.candleLight = new ft(16753920, 1, 5), this.candleLight.position.set(0, this.height + 0.05, 0), this.candleLight.castShadow = !0, this.add(this.candleLight), this.animateFlicker();
2113
2360
  }
2114
2361
  animateFlicker() {
2115
2362
  const o = () => {
@@ -2118,170 +2365,156 @@ class Bo extends A {
2118
2365
  o();
2119
2366
  }
2120
2367
  }
2121
- class Uo extends A {
2122
- constructor(e = 1.3, o = 0.5) {
2368
+ class Ko extends G {
2369
+ constructor(t = 1.3, o = 0.5) {
2123
2370
  super();
2124
- const n = new E(o, o, 0.2, 16), a = new w({ color: 9127187, flatShading: !0 }), r = new d(n, a);
2125
- r.position.set(0, 0, 0), this.add(r);
2126
- const s = new E(o * 0.9, o * 0.9, e), c = new w({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }), i = new d(s, c);
2127
- i.position.set(0, e / 2 + 0.1, 0), this.add(i);
2128
- const l = new Z(o * 1.1, 0.5, 8), u = new w({ color: 9127187, flatShading: !0 }), m = new d(l, u);
2129
- m.position.set(0, e + 0.35, 0), this.add(m);
2130
- const h = new ue(o * 0.8, 0.05, 8, 16), f = new w({ color: 9127187, flatShading: !0 }), p = new d(h, f);
2131
- p.position.set(0, e + 0.85, 0), this.add(p);
2132
- const y = new me(16755200, 1.5, 15);
2133
- y.position.set(0, e / 2 + 0.1, 0), y.castShadow = !0, this.add(y);
2134
- }
2135
- }
2136
- class No extends A {
2371
+ const n = new E(o, o, 0.2, 16), r = new M({ color: 9127187, flatShading: !0 }), s = new y(n, r);
2372
+ s.position.set(0, 0, 0), this.add(s);
2373
+ const a = new E(o * 0.9, o * 0.9, t), i = new M({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }), c = new y(a, i);
2374
+ c.position.set(0, t / 2 + 0.1, 0), this.add(c);
2375
+ const l = new Z(o * 1.1, 0.5, 8), u = new M({ color: 9127187, flatShading: !0 }), m = new y(l, u);
2376
+ m.position.set(0, t + 0.35, 0), this.add(m);
2377
+ const h = new ht(o * 0.8, 0.05, 8, 16), f = new M({ color: 9127187, flatShading: !0 }), p = new y(h, f);
2378
+ p.position.set(0, t + 0.85, 0), this.add(p);
2379
+ const d = new ft(16755200, 1.5, 15);
2380
+ d.position.set(0, t / 2 + 0.1, 0), d.castShadow = !0, this.add(d);
2381
+ }
2382
+ }
2383
+ class $o extends G {
2137
2384
  constructor() {
2138
2385
  super();
2139
- const e = new se(1, 0), o = new w({ color: 8421504, flatShading: !0 }), n = new w({ color: 4950843, flatShading: !0, opacity: 0.8, transparent: !0 });
2140
- for (let a = 0; a < 5; a++) {
2141
- const r = new d(e, o);
2142
- 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);
2143
- const s = new d(e, n);
2144
- 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);
2386
+ const t = new at(1, 0), o = new M({ color: 8421504, flatShading: !0 }), n = new M({ color: 4950843, flatShading: !0, opacity: 0.8, transparent: !0 });
2387
+ for (let r = 0; r < 5; r++) {
2388
+ const s = new y(t, o);
2389
+ s.scale.set(0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4), s.rotation.set(Math.random() * Math.PI, Math.random() * Math.PI, Math.random() * Math.PI), s.position.set((Math.random() - 0.5) * 4, 0, (Math.random() - 0.5) * 4), this.add(s);
2390
+ const a = new y(t, n);
2391
+ a.scale.set(s.scale.x * 0.9, s.scale.y * 0.5, s.scale.z * 0.9), a.rotation.copy(s.rotation), a.position.copy(s.position), a.position.y += 0.3, this.add(a);
2145
2392
  }
2146
2393
  }
2147
2394
  }
2148
- class Oo extends d {
2149
- constructor(e = 1, o = 4, n = 4) {
2150
- super(), this.geometry = new At(e, o, n), this.material = new w({ color: 8421504, flatShading: !0 });
2395
+ class Jo extends y {
2396
+ constructor(t = 1, o = 4, n = 4) {
2397
+ super(), this.geometry = new Ce(t, o, n), this.material = new M({ color: 8421504, flatShading: !0 });
2151
2398
  }
2152
2399
  }
2153
- class zo extends A {
2400
+ class Wo extends G {
2154
2401
  constructor() {
2155
2402
  super();
2156
- const e = new se(1, 0), o = new w({ color: 8421504, flatShading: !0 });
2403
+ const t = new at(1, 0), o = new M({ color: 8421504, flatShading: !0 });
2157
2404
  for (let n = 0; n < 5; n++) {
2158
- const a = new d(e, o);
2159
- a.scale.set(0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4), a.rotation.set(Math.random() * Math.PI, Math.random() * Math.PI, Math.random() * Math.PI), a.position.set((Math.random() - 0.5) * 4, 0, (Math.random() - 0.5) * 4), this.add(a);
2405
+ const r = new y(t, o);
2406
+ 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);
2160
2407
  }
2161
2408
  }
2162
2409
  }
2163
- class _o extends A {
2164
- constructor() {
2165
- super();
2166
- const e = new Pt(), o = new J({
2167
- color: 8965375,
2168
- transparent: !0,
2169
- opacity: 0.4,
2170
- roughness: 0.1,
2171
- metalness: 0.1,
2172
- reflectivity: 0.8,
2173
- transmission: 0.9,
2174
- side: q
2175
- }), n = new d(e, o);
2176
- n.rotation.x = -Math.PI / 2, this.add(n);
2177
- }
2178
- }
2179
- class ko extends A {
2410
+ class tn extends G {
2180
2411
  constructor() {
2181
2412
  super();
2182
- const e = [
2183
- new b(0, 0),
2413
+ const t = [
2414
+ new I(0, 0),
2184
2415
  // Bottom
2185
- new b(0.8, 0),
2416
+ new I(0.8, 0),
2186
2417
  // Base
2187
- new b(1, 1.5),
2418
+ new I(1, 1.5),
2188
2419
  // Rounded body
2189
- new b(0.5, 2.2),
2420
+ new I(0.5, 2.2),
2190
2421
  // Neck
2191
- new b(0.6, 2.5)
2422
+ new I(0.6, 2.5)
2192
2423
  // Mouth
2193
- ], o = new H(e, 10), n = new E(0.3, 0.4, 0.2, 8), a = new w({
2424
+ ], o = new Y(t, 10), n = new E(0.3, 0.4, 0.2, 8), r = new M({
2194
2425
  color: 8965375,
2195
2426
  transparent: !0,
2196
2427
  opacity: 0.5,
2197
2428
  roughness: 0.1,
2198
2429
  metalness: 0.3
2199
- }), r = new w({
2430
+ }), s = new M({
2200
2431
  color: 16724838,
2201
2432
  // Vibrant potion color
2202
2433
  transparent: !0,
2203
2434
  opacity: 0.6
2204
- }), s = new w({
2435
+ }), a = new M({
2205
2436
  color: 9127187,
2206
2437
  roughness: 1
2207
- }), c = new d(o, a), i = new d(o, r), l = new d(n, s);
2208
- i.scale.set(0.8, 0.8, 0.8), i.position.y = 0.1, l.position.y = 2.5;
2209
- const u = new A();
2210
- u.add(c, i, l), this.add(u);
2438
+ }), i = new y(o, r);
2439
+ i.castShadow = !0;
2440
+ const c = new y(o, s), l = new y(n, a);
2441
+ c.scale.set(0.8, 0.8, 0.8), c.position.y = 0.1, l.position.y = 2.5;
2442
+ const u = new G();
2443
+ u.add(i, c, l), this.add(u);
2211
2444
  }
2212
2445
  }
2213
- class Ro extends A {
2446
+ class en extends G {
2214
2447
  constructor() {
2215
2448
  super();
2216
- const e = new E(0.3, 0.4, 0.1, 16), o = new w({
2449
+ const t = new E(0.3, 0.4, 0.1, 16), o = new M({
2217
2450
  color: 3355443,
2218
2451
  roughness: 0.6,
2219
2452
  metalness: 0.3
2220
- }), n = new d(e, o);
2453
+ }), n = new y(t, o);
2221
2454
  n.position.y = 0.05;
2222
- const a = new E(0.1, 0.1, 0.7, 16), r = new w({
2455
+ const r = new E(0.1, 0.1, 0.7, 16), s = new M({
2223
2456
  color: 5592405,
2224
2457
  roughness: 0.5,
2225
2458
  metalness: 0.4
2226
- }), s = new d(a, r);
2227
- s.position.y = 0.4;
2228
- const c = new Z(0.075, 0.2, 16), i = new w({
2459
+ }), a = new y(r, s);
2460
+ a.position.y = 0.4;
2461
+ const i = new Z(0.075, 0.2, 16), c = new M({
2229
2462
  color: 16733440,
2230
2463
  emissive: 16733440,
2231
2464
  emissiveIntensity: 0.6,
2232
2465
  transparent: !0,
2233
2466
  opacity: 0.8
2234
- }), l = new d(c, i);
2235
- l.position.y = 0.8, this.add(n, s, l);
2467
+ }), l = new y(i, c);
2468
+ l.position.y = 0.8, this.add(n, a, l);
2236
2469
  }
2237
2470
  }
2238
- class Fo extends A {
2471
+ class on extends G {
2239
2472
  constructor() {
2240
2473
  super();
2241
- const e = new S(3, 4, 0.1), o = new w({
2474
+ const t = new A(3, 4, 0.1), o = new M({
2242
2475
  color: 3026478,
2243
2476
  roughness: 0.8,
2244
2477
  metalness: 0.6
2245
- }), n = new S(0.2, 0.5, 0.2), a = new w({
2478
+ }), n = new A(0.2, 0.5, 0.2), r = new M({
2246
2479
  color: 11184810,
2247
2480
  roughness: 0.5,
2248
2481
  metalness: 0.7
2249
- }), r = new E(0.3, 0.3, 0.1, 16), s = new w({
2482
+ }), s = new E(0.3, 0.3, 0.1, 16), a = new M({
2250
2483
  color: 5592405,
2251
2484
  roughness: 0.7,
2252
2485
  metalness: 0.5
2253
- }), c = new d(e, o);
2254
- for (let v = -1; v <= 1; v++) {
2255
- const M = new d(n, a);
2256
- M.position.set(v, 1.5, 0.1), c.add(M);
2486
+ }), i = new y(t, o);
2487
+ for (let w = -1; w <= 1; w++) {
2488
+ const v = new y(n, r);
2489
+ v.position.set(w, 1.5, 0.1), i.add(v);
2257
2490
  }
2258
- const i = new d(r, s);
2259
- i.rotation.x = Math.PI / 2, i.position.set(0, 0.5, 0.15), c.add(i);
2260
- const l = new z(0.15, 8, 8), u = new w({
2491
+ const c = new y(s, a);
2492
+ c.rotation.x = Math.PI / 2, c.position.set(0, 0.5, 0.15), i.add(c);
2493
+ const l = new N(0.15, 8, 8), u = new M({
2261
2494
  color: 16711680,
2262
2495
  emissive: 16711680,
2263
2496
  emissiveIntensity: 0.5
2264
- }), m = new d(l, u);
2265
- m.position.set(0, -1, 0.1), c.add(m), this.add(c);
2497
+ }), m = new y(l, u);
2498
+ m.position.set(0, -1, 0.1), i.add(m), this.add(i);
2266
2499
  let h = 0.015, f = 0.8, p = 0.2;
2267
- function y() {
2268
- requestAnimationFrame(y);
2269
- const v = p + Math.abs(Math.sin(Date.now() * h)) * (f - p);
2270
- m.material.emissiveIntensity = v;
2500
+ function d() {
2501
+ requestAnimationFrame(d);
2502
+ const w = p + Math.abs(Math.sin(Date.now() * h)) * (f - p);
2503
+ m.material.emissiveIntensity = w;
2271
2504
  }
2272
- y();
2505
+ d();
2273
2506
  }
2274
2507
  }
2275
- class Lo extends d {
2508
+ class nn extends y {
2276
2509
  constructor({
2277
- flaskRadius: e = 1,
2510
+ flaskRadius: t = 1,
2278
2511
  //
2279
2512
  neckRadius: o = 0.3,
2280
2513
  height: n = 2.5,
2281
- neckHeight: a = 1,
2282
- radialSegments: r = 16
2514
+ neckHeight: r = 1,
2515
+ radialSegments: s = 16
2283
2516
  } = {}) {
2284
- super(), this.geometry = new Tt({ flaskRadius: e, neckRadius: o, height: n, neckHeight: a, radialSegments: r }), this.material = new J({
2517
+ super(), this.geometry = new ze({ flaskRadius: t, neckRadius: o, height: n, neckHeight: r, radialSegments: s }), this.material = new J({
2285
2518
  color: 8965375,
2286
2519
  transparent: !0,
2287
2520
  opacity: 0.4,
@@ -2289,176 +2522,231 @@ class Lo extends d {
2289
2522
  metalness: 0.1,
2290
2523
  reflectivity: 0.8,
2291
2524
  transmission: 0.9,
2292
- side: q,
2525
+ side: L,
2293
2526
  wireframe: !1
2294
2527
  });
2295
2528
  }
2296
2529
  }
2297
- class Do extends A {
2530
+ class sn extends G {
2298
2531
  constructor() {
2299
2532
  super();
2300
- const e = [
2301
- new b(0, 0),
2533
+ const t = [
2534
+ new I(0, 0),
2302
2535
  // Bottom of the flask
2303
- new b(1.2, 0),
2536
+ new I(1.2, 0),
2304
2537
  // Base
2305
- new b(1.5, 1.5),
2538
+ new I(1.5, 1.5),
2306
2539
  // Mid-body
2307
- new b(1, 3),
2540
+ new I(1, 3),
2308
2541
  // Narrow neck
2309
- new b(0.6, 3.5)
2542
+ new I(0.6, 3.5)
2310
2543
  // Mouth of the flask
2311
- ], o = new H(e, 12), n = new E(0.6, 0.7, 0.3, 8), a = new w({
2544
+ ], o = new Y(t, 12), n = new E(0.6, 0.7, 0.3, 8), r = new M({
2312
2545
  color: 8965290,
2313
2546
  transparent: !0,
2314
2547
  opacity: 0.4,
2315
2548
  roughness: 0.1,
2316
- metalness: 0.5
2317
- }), r = new w({
2549
+ metalness: 0.5,
2550
+ depthWrite: !1
2551
+ }), s = new M({
2318
2552
  color: 9127187,
2319
2553
  roughness: 1
2320
- }), s = new d(o, a), c = new d(n, r);
2321
- c.position.y = 3.5, this.add(s, c);
2554
+ }), a = new y(o, r);
2555
+ a.castShadow = !0;
2556
+ const i = new y(n, s);
2557
+ i.position.y = 3.5, this.add(a, i);
2558
+ }
2559
+ }
2560
+ class rn extends y {
2561
+ constructor() {
2562
+ super();
2563
+ g(this, "geometry");
2564
+ g(this, "material");
2565
+ this.geometry = new Ne(), this.material = new J({
2566
+ color: 8965375,
2567
+ transparent: !0,
2568
+ opacity: 0.4,
2569
+ roughness: 0.1,
2570
+ metalness: 0.1,
2571
+ reflectivity: 0.8,
2572
+ transmission: 0.9,
2573
+ side: L
2574
+ }), this.rotation.x = -Math.PI / 2;
2322
2575
  }
2323
2576
  }
2324
- class qo extends A {
2577
+ class an extends G {
2325
2578
  constructor() {
2326
2579
  super();
2327
- const e = new S(2, 3, 0.1), o = new w({
2580
+ const t = new A(2, 3, 0.1), o = new M({
2328
2581
  color: 3355443,
2329
2582
  roughness: 0.8,
2330
2583
  metalness: 0.5
2331
- }), n = new d(e, o), a = new E(0.1, 0.1, 0.2, 8), r = new E(0.05, 0.05, 1, 8), s = new w({
2584
+ }), n = new y(t, o), r = new E(0.1, 0.1, 0.2, 8), s = new E(0.05, 0.05, 1, 8), a = new M({
2332
2585
  color: 11184810,
2333
2586
  roughness: 0.5,
2334
2587
  metalness: 0.7
2335
2588
  });
2336
- for (let c = -0.5; c <= 0.5; c += 0.5) {
2337
- const i = new d(a, s);
2338
- i.position.set(c, 1, 0.1);
2339
- const l = new d(r, s);
2340
- l.position.y = 0.5, i.add(l), this.add(i);
2589
+ for (let i = -0.5; i <= 0.5; i += 0.5) {
2590
+ const c = new y(r, a);
2591
+ c.position.set(i, 1, 0.1);
2592
+ const l = new y(s, a);
2593
+ l.position.y = 0.5, c.add(l), this.add(c);
2341
2594
  }
2342
2595
  this.add(n);
2343
2596
  }
2344
2597
  }
2345
- class Xo extends A {
2598
+ class cn extends G {
2346
2599
  constructor() {
2347
2600
  super();
2348
- const e = new S(1, 0.2, 0.5), o = new w({
2601
+ const t = new A(1, 0.2, 0.5), o = new M({
2349
2602
  color: 4473924,
2350
2603
  roughness: 0.6,
2351
2604
  metalness: 0.3
2352
- }), n = new d(e, o);
2605
+ }), n = new y(t, o);
2353
2606
  n.position.y = 0.1;
2354
- const a = new S(0.2, 1, 0.2), r = new d(a, o);
2355
- r.position.set(0, 0.6, -0.2);
2356
- const s = new E(0.1, 0.1, 0.4, 8), c = new w({
2607
+ const r = new A(0.2, 1, 0.2), s = new y(r, o);
2608
+ s.position.set(0, 0.6, -0.2);
2609
+ const a = new E(0.1, 0.1, 0.4, 8), i = new M({
2357
2610
  color: 3355443,
2358
2611
  roughness: 0.5,
2359
2612
  metalness: 0.6
2360
- }), i = new d(s, c);
2361
- i.position.set(0, 1.1, -0.35), i.rotation.x = -Math.PI / 4;
2362
- const l = new S(0.6, 0.1, 0.6), u = new w({
2613
+ }), c = new y(a, i);
2614
+ c.position.set(0, 1.1, -0.35), c.rotation.x = -Math.PI / 4;
2615
+ const l = new A(0.6, 0.1, 0.6), u = new M({
2363
2616
  color: 5592405,
2364
2617
  roughness: 0.8,
2365
2618
  metalness: 0.2
2366
- }), m = new d(l, u);
2367
- m.position.set(0, 0.6, 0), this.add(n, r, i, m);
2619
+ }), m = new y(l, u);
2620
+ m.position.set(0, 0.6, 0), this.add(n, s, c, m);
2368
2621
  }
2369
2622
  }
2370
- class Vo extends A {
2623
+ class ln extends G {
2371
2624
  constructor() {
2372
2625
  super();
2373
- const e = new Ct(), o = new E(0.2, 0.3, 1.5, 8);
2626
+ const t = new ke(), o = new E(0.2, 0.3, 1.5, 8);
2374
2627
  o.translate(0, 0.75, 0);
2375
- const n = new w({
2628
+ const n = new M({
2376
2629
  color: 6045747,
2377
2630
  // Dark earthy tone
2378
2631
  roughness: 1,
2379
2632
  metalness: 0,
2380
- side: q
2633
+ side: L
2381
2634
  // Render inside and outside
2382
- }), a = new w({
2635
+ }), r = new M({
2383
2636
  color: 9132587,
2384
2637
  // Slightly lighter earthy color
2385
2638
  roughness: 0.8,
2386
2639
  metalness: 0.1
2387
- }), r = new d(e, n), s = new d(o, a);
2388
- s.position.set(0.3, 1.3, 0), s.rotation.z = Math.PI / 4, this.add(r, s);
2640
+ }), s = new y(t, n);
2641
+ s.castShadow = !0;
2642
+ const a = new y(o, r);
2643
+ a.castShadow = !0, a.position.set(0.3, 1.3, 0), a.rotation.z = Math.PI / 4, this.add(s, a);
2644
+ }
2645
+ }
2646
+ class un extends y {
2647
+ constructor({ width: o = 3, height: n = 4, depth: r = 0.1 } = {}) {
2648
+ super();
2649
+ g(this, "geometry");
2650
+ g(this, "material");
2651
+ this.geometry = new A(o, n, r), this.material = new M({
2652
+ color: 3026478,
2653
+ roughness: 0.8,
2654
+ metalness: 0.6
2655
+ });
2389
2656
  }
2390
2657
  }
2391
- class Zo extends A {
2658
+ class mn extends y {
2659
+ constructor({
2660
+ radius: o = 0.15,
2661
+ //
2662
+ color: n = 16762823,
2663
+ emissive: r = 16711680,
2664
+ emissiveIntensity: s = 0.5
2665
+ } = {}) {
2666
+ super();
2667
+ g(this, "geometry");
2668
+ g(this, "material");
2669
+ this.geometry = new N(o, 8, 8), this.material = new M({
2670
+ color: n,
2671
+ emissive: r,
2672
+ emissiveIntensity: s
2673
+ });
2674
+ }
2675
+ }
2676
+ class hn extends G {
2392
2677
  constructor() {
2393
2678
  super();
2394
- const e = 100, o = 0.05, n = new Ie(
2395
- Array.from({ length: e }, (l, u) => {
2679
+ const t = 100, o = 0.05, n = new Pt(
2680
+ Array.from({ length: t }, (l, u) => {
2396
2681
  const m = u * 0.2;
2397
- return new g(
2682
+ return new b(
2398
2683
  Math.cos(m) * 0.4,
2399
2684
  u * o,
2400
2685
  // Gradual height increase
2401
2686
  Math.sin(m) * 0.4
2402
2687
  );
2403
2688
  })
2404
- ), a = new Ee(n, 200, 0.1, 8, !1), r = new w({
2689
+ ), r = new Tt(n, 200, 0.1, 8, !1), s = new M({
2405
2690
  color: 8965375,
2406
2691
  transparent: !0,
2407
2692
  opacity: 0.3,
2408
2693
  roughness: 0.1,
2409
2694
  metalness: 0.2,
2410
2695
  emissive: 8965375
2411
- }), s = new d(a, r);
2412
- this.add(s);
2413
- function c() {
2414
- r.emissiveIntensity = 0.2 + Math.sin(Date.now() * 5e-3) * 0.1;
2415
- }
2696
+ }), a = new y(r, s);
2697
+ this.add(a);
2416
2698
  function i() {
2417
- requestAnimationFrame(i), c();
2699
+ s.emissiveIntensity = 0.2 + Math.sin(Date.now() * 5e-3) * 0.1;
2700
+ }
2701
+ function c() {
2702
+ requestAnimationFrame(c), i();
2418
2703
  }
2419
- i();
2704
+ c();
2420
2705
  }
2421
2706
  }
2422
- class Ho extends d {
2707
+ class fn extends y {
2423
2708
  constructor({
2424
- radius: e = 0.3,
2709
+ radius: o = 0.3,
2425
2710
  //
2426
- height: o = 0.4,
2427
- count: n = 3,
2428
- thickness: a = 0.03,
2429
- radialSegments: r = 16
2711
+ height: n = 0.4,
2712
+ count: r = 3,
2713
+ thickness: s = 0.03,
2714
+ radialSegments: a = 16
2430
2715
  } = {}) {
2431
- super(), this.geometry = new Bt({ radius: e, height: o, count: n, thickness: a, radialSegments: r }), this.material = new w({
2716
+ super();
2717
+ g(this, "geometry");
2718
+ g(this, "material");
2719
+ this.geometry = new Fe({ radius: o, height: n, count: r, thickness: s, radialSegments: a }), this.material = new M({
2432
2720
  color: 8947848,
2433
2721
  roughness: 0.7,
2434
2722
  metalness: 0.3
2435
2723
  });
2436
2724
  }
2437
2725
  }
2438
- class Yo extends A {
2726
+ class pn extends G {
2439
2727
  constructor() {
2440
2728
  super();
2441
- const e = new E(0.5, 0.6, 0.3, 16), o = new w({
2729
+ const t = new E(0.5, 0.6, 0.3, 16), o = new M({
2442
2730
  color: 3355443,
2443
2731
  roughness: 0.6,
2444
2732
  metalness: 0.5
2445
- }), n = new d(e, o);
2733
+ }), n = new y(t, o);
2446
2734
  n.position.y = 0.15;
2447
- const a = new E(0.15, 0.15, 2, 12, 1, !0), r = new w({
2735
+ const r = new E(0.15, 0.15, 2, 12, 1, !0), s = new M({
2448
2736
  color: 16737792,
2449
2737
  roughness: 0.5,
2450
2738
  metalness: 0.8,
2451
- side: q
2452
- }), s = new d(a, r);
2453
- s.position.y = 1.3;
2454
- const c = new z(0.3, 16, 16), i = new d(c, r);
2455
- i.position.y = 2.4, this.add(n, s, i);
2739
+ side: L
2740
+ }), a = new y(r, s);
2741
+ a.position.y = 1.3;
2742
+ const i = new N(0.3, 16, 16), c = new y(i, s);
2743
+ c.position.y = 2.4, this.add(n, a, c);
2456
2744
  }
2457
2745
  }
2458
- class jo extends A {
2459
- constructor(e = 0.2, o = 0.2, n = 3, a = 32) {
2746
+ class dn extends G {
2747
+ constructor(t = 0.2, o = 0.2, n = 3, r = 32) {
2460
2748
  super();
2461
- const r = new ne(e, o, n, a), s = new J({
2749
+ const s = new st(t, o, n, r), a = new J({
2462
2750
  color: 8965375,
2463
2751
  transparent: !0,
2464
2752
  opacity: 0.4,
@@ -2467,48 +2755,50 @@ class jo extends A {
2467
2755
  reflectivity: 0.8,
2468
2756
  transmission: 0.9,
2469
2757
  // For glass effect
2470
- side: q
2471
- }), c = new d(r, s);
2472
- this.add(c);
2758
+ depthWrite: !1,
2759
+ side: L
2760
+ }), i = new y(s, a);
2761
+ this.add(i);
2473
2762
  }
2474
2763
  }
2475
- class Qo extends A {
2476
- constructor(e = 3, o = [65450, 16711850, 11141375]) {
2764
+ class yn extends G {
2765
+ constructor(t = 3, o = [65450, 16711850, 11141375]) {
2477
2766
  super();
2478
- const n = new S(3, 0.2, 1), a = new w({
2767
+ const n = new A(3, 0.2, 1), r = new M({
2479
2768
  color: 9127187,
2480
2769
  // Wooden color or change to metallic tone
2481
2770
  roughness: 0.7,
2482
2771
  metalness: 0.3
2483
- }), r = new d(n, a);
2484
- r.position.y = 0.5;
2485
- const s = new ne(0.1, 0.1, 1, 16), c = new w({
2772
+ }), s = new y(n, r);
2773
+ s.position.y = 0.5, s.castShadow = !0;
2774
+ const a = new st(0.1, 0.1, 1, 16), i = new M({
2486
2775
  color: 11184810,
2487
2776
  transparent: !0,
2488
2777
  opacity: 0.4,
2489
2778
  roughness: 0.1,
2490
2779
  metalness: 0.5,
2491
- side: q
2780
+ depthWrite: !1,
2781
+ side: L
2492
2782
  });
2493
- for (let i = 0; i < e; i++) {
2494
- const l = new d(s, c), u = (i - (e - 1) / 2) * 0.8;
2495
- l.position.set(u, 1, 0);
2496
- const m = new ne(0.099, 0.099, 0.5, 16, !1), h = o[i % o.length], f = new w({
2783
+ for (let c = 0; c < t; c++) {
2784
+ const l = new y(a, i), u = (c - (t - 1) / 2) * 0.8;
2785
+ l.position.set(u, 1, 0), l.castShadow = !0;
2786
+ const m = new st(0.099, 0.099, 0.5, 16, !1), h = o[c % o.length], f = new M({
2497
2787
  color: h,
2498
2788
  emissive: h,
2499
2789
  emissiveIntensity: 0.5,
2500
2790
  transparent: !0,
2501
2791
  opacity: 0.6
2502
- }), p = new d(m, f);
2503
- p.position.set(0, -0.25, 0), l.add(p), r.add(l);
2792
+ }), p = new y(m, f);
2793
+ p.position.set(0, -0.25, 0), l.add(p), s.add(l);
2504
2794
  }
2505
- this.add(r);
2795
+ this.add(s);
2506
2796
  }
2507
2797
  }
2508
- class Ko extends d {
2798
+ class Mn extends y {
2509
2799
  constructor() {
2510
2800
  super();
2511
- const e = new Ut(), o = new J({
2801
+ const t = new Oe(), o = new J({
2512
2802
  color: 5597999,
2513
2803
  roughness: 0.1,
2514
2804
  transmission: 0.9,
@@ -2518,30 +2808,30 @@ class Ko extends d {
2518
2808
  clearcoat: 1,
2519
2809
  clearcoatRoughness: 0.1
2520
2810
  });
2521
- this.geometry = e, this.material = o;
2811
+ this.geometry = t, this.material = o;
2522
2812
  }
2523
2813
  }
2524
- class kt extends Y {
2525
- constructor(e = 5, o = 0.5, n = 1) {
2814
+ class De extends j {
2815
+ constructor(t = 5, o = 0.5, n = 1) {
2526
2816
  super();
2527
- const a = Math.PI * 2 / e, r = a / 2, s = a / 4;
2817
+ const r = Math.PI * 2 / t, s = r / 2, a = r / 4;
2528
2818
  this.moveTo(Math.cos(0) * n, -Math.sin(0) * n);
2529
- for (let c = 1; c <= e; ++c) {
2530
- let i = Math.cos(a * c - s * 3) * (o / Math.cos(s)), l = -Math.sin(a * c - s * 3) * (o / Math.cos(s)), u = Math.cos(a * c - r) * o, m = -Math.sin(a * c - r) * o;
2531
- this.quadraticCurveTo(i, l, u, m), i = Math.cos(a * c - s) * (o / Math.cos(s)), l = -Math.sin(a * c - s) * (o / Math.cos(s)), u = Math.cos(a * c) * n, m = -Math.sin(a * c) * n, this.quadraticCurveTo(i, l, u, m);
2819
+ for (let i = 1; i <= t; ++i) {
2820
+ let c = Math.cos(r * i - a * 3) * (o / Math.cos(a)), l = -Math.sin(r * i - a * 3) * (o / Math.cos(a)), u = Math.cos(r * i - s) * o, m = -Math.sin(r * i - s) * o;
2821
+ this.quadraticCurveTo(c, l, u, m), c = Math.cos(r * i - a) * (o / Math.cos(a)), l = -Math.sin(r * i - a) * (o / Math.cos(a)), u = Math.cos(r * i) * n, m = -Math.sin(r * i) * n, this.quadraticCurveTo(c, l, u, m);
2532
2822
  }
2533
2823
  this.closePath();
2534
2824
  }
2535
2825
  }
2536
- class $o extends d {
2537
- constructor(e = 5, o = 0.5, n = 1, a = 0.25) {
2826
+ class wn extends y {
2827
+ constructor(t = 5, o = 0.5, n = 1, r = 0.25) {
2538
2828
  super();
2539
- const r = new kt(e, o, n), s = new j(r, {
2540
- depth: a,
2541
- bevelEnabled: a > 0,
2829
+ const s = new De(t, o, n), a = new H(s, {
2830
+ depth: r,
2831
+ bevelEnabled: r > 0,
2542
2832
  bevelThickness: 0,
2543
2833
  bevelSize: 0
2544
- }), c = new w({
2834
+ }), i = new M({
2545
2835
  color: 16776960,
2546
2836
  emissive: 16766720,
2547
2837
  emissiveIntensity: 0.25,
@@ -2549,75 +2839,75 @@ class $o extends d {
2549
2839
  roughness: 0.3,
2550
2840
  flatShading: !0
2551
2841
  });
2552
- s.center(), this.geometry = s, this.material = c;
2842
+ a.center(), this.geometry = a, this.material = i;
2553
2843
  }
2554
2844
  }
2555
- class Rt extends Y {
2556
- constructor(e = 5, o = 0.5, n = 1, a = 5, r = 0.25) {
2845
+ class Ve extends j {
2846
+ constructor(t = 5, o = 0.5, n = 1, r = 5, s = 0.25) {
2557
2847
  super();
2558
- const s = Math.PI * 2 / e, c = s / 4;
2848
+ const a = Math.PI * 2 / t, i = a / 4;
2559
2849
  this.moveTo(Math.cos(0) * n, -Math.sin(0) * n);
2560
- for (let i = 1; i <= e; ++i)
2561
- this.lineTo(Math.cos(s * i - c * 3) * o, -Math.sin(s * i - c * 3) * o), this.lineTo(Math.cos(s * i - c * 2) * o, -Math.sin(s * i - c * 2) * o), this.lineTo(Math.cos(s * i - c) * n, -Math.sin(s * i - c) * n), this.lineTo(Math.cos(s * i) * n, -Math.sin(s * i) * n);
2562
- if (this.closePath(), r > 0 && a > 2) {
2563
- const i = new Ae(), l = Math.PI * 2 / a;
2564
- i.moveTo(Math.cos(0) * r, -Math.sin(0) * r);
2565
- for (let u = 1; u < a; ++u)
2566
- i.lineTo(Math.cos(l * u) * r, -Math.sin(l * u) * r);
2567
- i.lineTo(Math.cos(0) * r, -Math.sin(0) * r), this.holes.push(i);
2850
+ for (let c = 1; c <= t; ++c)
2851
+ this.lineTo(Math.cos(a * c - i * 3) * o, -Math.sin(a * c - i * 3) * o), this.lineTo(Math.cos(a * c - i * 2) * o, -Math.sin(a * c - i * 2) * o), this.lineTo(Math.cos(a * c - i) * n, -Math.sin(a * c - i) * n), this.lineTo(Math.cos(a * c) * n, -Math.sin(a * c) * n);
2852
+ if (this.closePath(), s > 0 && r > 2) {
2853
+ const c = new Gt(), l = Math.PI * 2 / r;
2854
+ c.moveTo(Math.cos(0) * s, -Math.sin(0) * s);
2855
+ for (let u = 1; u < r; ++u)
2856
+ c.lineTo(Math.cos(l * u) * s, -Math.sin(l * u) * s);
2857
+ c.lineTo(Math.cos(0) * s, -Math.sin(0) * s), this.holes.push(c);
2568
2858
  }
2569
2859
  }
2570
2860
  }
2571
- class Jo extends d {
2572
- constructor(e = 5, o = 0.5, n = 1, a = 5, r = 0.25, s = 0.25) {
2861
+ class vn extends y {
2862
+ constructor(t = 5, o = 0.5, n = 1, r = 5, s = 0.25, a = 0.25) {
2573
2863
  super();
2574
- const c = new Rt(e, o, n, a, r), i = new j(c, {
2575
- depth: s,
2576
- bevelEnabled: s > 0,
2864
+ const i = new Ve(t, o, n, r, s), c = new H(i, {
2865
+ depth: a,
2866
+ bevelEnabled: a > 0,
2577
2867
  bevelThickness: 0,
2578
2868
  bevelSize: 0
2579
- }), l = new w({
2869
+ }), l = new M({
2580
2870
  color: 11184810,
2581
2871
  metalness: 0.8,
2582
2872
  roughness: 0.2
2583
2873
  });
2584
- i.center(), this.geometry = i, this.material = l;
2874
+ c.center(), this.geometry = c, this.material = l;
2585
2875
  }
2586
2876
  }
2587
- class Ft extends Y {
2588
- constructor(e = 1, o = 2.1, n = 1.4, a = 1.6) {
2589
- super(), this.moveTo(0, n * e / 3), this.bezierCurveTo(
2590
- -o * 0.375 * e,
2591
- n * e,
2877
+ class Xe extends j {
2878
+ constructor(t = 1, o = 2.1, n = 1.4, r = 1.6) {
2879
+ super(), this.moveTo(0, n * t / 3), this.bezierCurveTo(
2880
+ -o * 0.375 * t,
2881
+ n * t,
2592
2882
  // Control point 1 for the left lobe
2593
- -o * e,
2594
- n * e / 3,
2883
+ -o * t,
2884
+ n * t / 3,
2595
2885
  // Control point 2 for the left side of the heart
2596
2886
  0,
2597
- -a * e
2887
+ -r * t
2598
2888
  // Bottom tip of the heart, controlled by `tipDepth`
2599
2889
  ), this.bezierCurveTo(
2600
- o * e,
2601
- n * e / 3,
2890
+ o * t,
2891
+ n * t / 3,
2602
2892
  // Control point 3 for the right side of the heart
2603
- o * 0.375 * e,
2604
- n * e,
2893
+ o * 0.375 * t,
2894
+ n * t,
2605
2895
  // Control point 4 for the right lobe
2606
2896
  0,
2607
- n * e / 3
2897
+ n * t / 3
2608
2898
  // Close shape at the top middle
2609
2899
  );
2610
2900
  }
2611
2901
  }
2612
- class Wo extends d {
2613
- constructor(e = 1, o = 1, n = 1, a = 10, r = 0.25) {
2902
+ class xn extends y {
2903
+ constructor(t = 1, o = 1, n = 1, r = 10, s = 0.25) {
2614
2904
  super();
2615
- const s = new Ft(e, o, n, a), c = new j(s, {
2616
- depth: r,
2617
- bevelEnabled: r > 0,
2905
+ const a = new Xe(t, o, n, r), i = new H(a, {
2906
+ depth: s,
2907
+ bevelEnabled: s > 0,
2618
2908
  bevelThickness: 0,
2619
2909
  bevelSize: 0
2620
- }), i = new w({
2910
+ }), c = new M({
2621
2911
  color: 12986408,
2622
2912
  emissive: 12981270,
2623
2913
  emissiveIntensity: 0.25,
@@ -2625,28 +2915,28 @@ class Wo extends d {
2625
2915
  roughness: 0.3,
2626
2916
  flatShading: !0
2627
2917
  });
2628
- c.center(), this.geometry = c, this.material = i;
2918
+ i.center(), this.geometry = i, this.material = c;
2629
2919
  }
2630
2920
  }
2631
- class Lt extends Y {
2632
- constructor(e = 5, o = 0.5, n = 1) {
2921
+ class Ze extends j {
2922
+ constructor(t = 5, o = 0.5, n = 1) {
2633
2923
  super();
2634
- const a = Math.PI * 2 / e, r = a / 2;
2924
+ const r = Math.PI * 2 / t, s = r / 2;
2635
2925
  this.moveTo(Math.cos(0) * n, Math.sin(0) * n);
2636
- for (let s = 1; s <= e; ++s)
2637
- this.lineTo(Math.cos(a * s - r) * o, Math.sin(a * s - r) * o), this.lineTo(Math.cos(a * s) * n, Math.sin(a * s) * n);
2926
+ for (let a = 1; a <= t; ++a)
2927
+ this.lineTo(Math.cos(r * a - s) * o, Math.sin(r * a - s) * o), this.lineTo(Math.cos(r * a) * n, Math.sin(r * a) * n);
2638
2928
  this.closePath();
2639
2929
  }
2640
2930
  }
2641
- class en extends d {
2642
- constructor(e = 5, o = 0.5, n = 1, a = 0.25) {
2931
+ class gn extends y {
2932
+ constructor(t = 5, o = 0.5, n = 1, r = 0.25) {
2643
2933
  super();
2644
- const r = new Lt(e, o, n), s = new j(r, {
2645
- depth: a,
2646
- bevelEnabled: a > 0,
2934
+ const s = new Ze(t, o, n), a = new H(s, {
2935
+ depth: r,
2936
+ bevelEnabled: r > 0,
2647
2937
  bevelThickness: 0,
2648
2938
  bevelSize: 0
2649
- }), c = new w({
2939
+ }), i = new M({
2650
2940
  color: 16776960,
2651
2941
  emissive: 16766720,
2652
2942
  emissiveIntensity: 0.25,
@@ -2654,43 +2944,43 @@ class en extends d {
2654
2944
  roughness: 0.3,
2655
2945
  flatShading: !0
2656
2946
  });
2657
- s.center(), this.geometry = s, this.material = c;
2947
+ a.center(), this.geometry = a, this.material = i;
2658
2948
  }
2659
2949
  }
2660
- class tn extends d {
2950
+ class bn extends y {
2661
2951
  constructor() {
2662
- super(), this.geometry = new Gt(), this.material = new w({ color: 16777215 });
2952
+ super(), this.geometry = new Ue(), this.material = new M({ color: 16777215 });
2663
2953
  }
2664
2954
  }
2665
- class on extends d {
2955
+ class In extends y {
2666
2956
  constructor({
2667
- trunkRadiusTop: e = 0.25,
2957
+ trunkRadiusTop: t = 0.25,
2668
2958
  trunkRadiusBottom: o = 0.4,
2669
2959
  trunkHeight: n = 2.5,
2670
- trunkSegments: a = 14,
2671
- trunkColor: r = 9127187,
2672
- leafSize: s = 0.8,
2673
- leafCount: c = 6,
2674
- leafDetail: i = 0,
2960
+ trunkSegments: r = 14,
2961
+ trunkColor: s = 9127187,
2962
+ leafSize: a = 0.8,
2963
+ leafCount: i = 6,
2964
+ leafDetail: c = 0,
2675
2965
  leafSpreadRadius: l = 1.5,
2676
2966
  leafColor: u = 2263842
2677
2967
  } = {}) {
2678
2968
  super();
2679
- const m = new _t({
2680
- trunkRadiusTop: e,
2969
+ const m = new qe({
2970
+ trunkRadiusTop: t,
2681
2971
  trunkRadiusBottom: o,
2682
2972
  trunkHeight: n,
2683
- trunkSegments: a,
2684
- leafSize: s,
2685
- leafCount: c,
2686
- leafDetail: i,
2973
+ trunkSegments: r,
2974
+ leafSize: a,
2975
+ leafCount: i,
2976
+ leafDetail: c,
2687
2977
  leafSpreadRadius: l
2688
- }), h = new w({
2689
- color: r,
2978
+ }), h = new M({
2979
+ color: s,
2690
2980
  roughness: 0.9,
2691
2981
  metalness: 0,
2692
2982
  flatShading: !0
2693
- }), f = new w({
2983
+ }), f = new M({
2694
2984
  color: u,
2695
2985
  roughness: 0.8,
2696
2986
  metalness: 0,
@@ -2699,49 +2989,49 @@ class on extends d {
2699
2989
  this.geometry = m, this.material = [h, f];
2700
2990
  }
2701
2991
  }
2702
- class nn extends d {
2992
+ class An extends y {
2703
2993
  constructor({
2704
- radius: e = 3,
2994
+ radius: t = 3,
2705
2995
  //
2706
2996
  height: o = 0.6,
2707
2997
  widthSegments: n = 64,
2708
- heightSegments: a = 16,
2709
- phiStart: r = 0,
2710
- phiLength: s = Math.PI * 2
2998
+ heightSegments: r = 16,
2999
+ phiStart: s = 0,
3000
+ phiLength: a = Math.PI * 2
2711
3001
  } = {}) {
2712
- super(), this.geometry = new Nt({
2713
- radius: e,
3002
+ super(), this.geometry = new _e({
3003
+ radius: t,
2714
3004
  height: o,
2715
3005
  widthSegments: n,
2716
- heightSegments: a,
2717
- phiStart: r,
2718
- phiLength: s
2719
- }), this.material = new w({ color: 65280, flatShading: !0 });
3006
+ heightSegments: r,
3007
+ phiStart: s,
3008
+ phiLength: a
3009
+ }), this.material = new M({ color: 65280, flatShading: !0 });
2720
3010
  }
2721
3011
  }
2722
- class sn extends d {
3012
+ class Sn extends y {
2723
3013
  constructor({
2724
- radius: e = ye(5, Math.PI / 10),
3014
+ radius: t = vt(5, Math.PI / 10),
2725
3015
  //
2726
3016
  widthSegments: o = 64,
2727
3017
  heightSegments: n = 32,
2728
- phiStart: a = 0,
2729
- phiLength: r = Math.PI * 2,
2730
- thetaLength: s = Math.PI / 10
3018
+ phiStart: r = 0,
3019
+ phiLength: s = Math.PI * 2,
3020
+ thetaLength: a = Math.PI / 10
2731
3021
  } = {}) {
2732
- super(), this.geometry = new zt({
2733
- radius: e,
3022
+ super(), this.geometry = new Le({
3023
+ radius: t,
2734
3024
  widthSegments: o,
2735
3025
  heightSegments: n,
2736
- phiStart: a,
2737
- phiLength: r,
2738
- thetaLength: s
2739
- }), this.material = new w({ color: 65280, flatShading: !0 });
3026
+ phiStart: r,
3027
+ phiLength: s,
3028
+ thetaLength: a
3029
+ }), this.material = new M({ color: 65280, flatShading: !0 });
2740
3030
  }
2741
3031
  }
2742
- function rn(t, { time: e = 0, waveFrequency: o = 0.2, waveAmplitude: n = 0.5 } = {}) {
2743
- t.onBeforeCompile = (a) => {
2744
- a.uniforms.time = { value: e }, a.uniforms.waveFrequency = { value: o }, a.uniforms.waveAmplitude = { value: n }, a.vertexShader = `
3032
+ function En(e, { time: t = 0, waveFrequency: o = 0.2, waveAmplitude: n = 0.5 } = {}) {
3033
+ e.onBeforeCompile = (r) => {
3034
+ r.uniforms.time = { value: t }, r.uniforms.waveFrequency = { value: o }, r.uniforms.waveAmplitude = { value: n }, r.vertexShader = `
2745
3035
  uniform float time;
2746
3036
  uniform float waveFrequency;
2747
3037
  uniform float waveAmplitude;
@@ -2755,22 +3045,22 @@ function rn(t, { time: e = 0, waveFrequency: o = 0.2, waveAmplitude: n = 0.5 } =
2755
3045
 
2756
3046
  return displaced;
2757
3047
  }
2758
- ` + a.vertexShader, a.vertexShader = a.vertexShader.replace(
3048
+ ` + r.vertexShader, r.vertexShader = r.vertexShader.replace(
2759
3049
  "#include <begin_vertex>",
2760
3050
  `
2761
3051
  vec3 transformed = waterDisplacement(position, normal);
2762
3052
  `
2763
- ), t.userData.shader = a;
3053
+ ), e.userData.shader = r;
2764
3054
  };
2765
3055
  }
2766
- function an(t, e) {
2767
- t.userData.shader && (t.userData.shader.uniforms.time.value += e);
3056
+ function Pn(e, t) {
3057
+ e.userData.shader && (e.userData.shader.uniforms.time.value += t);
2768
3058
  }
2769
- function cn(t, { time: e = 0, intensity: o = 1, direction: n = L.XYZ, scale: a = 10 } = {}) {
2770
- t.onBeforeCompile = (r) => {
2771
- r.uniforms.time = { value: e }, r.uniforms.direction = { value: n }, r.uniforms.intensity = { value: o }, r.uniforms.scale = { value: a }, r.vertexShader = `
3059
+ function Tn(e, { time: t = 0, intensity: o = 1, axis: n = lt.XYZ, scale: r = 10 } = {}) {
3060
+ e.onBeforeCompile = (s) => {
3061
+ s.uniforms.time = { value: t }, s.uniforms.axis = { value: n }, s.uniforms.intensity = { value: o }, s.uniforms.scale = { value: r }, s.vertexShader = `
2772
3062
  uniform float time;
2773
- uniform vec3 direction;
3063
+ uniform vec3 axis;
2774
3064
  uniform float intensity;
2775
3065
  uniform float scale;
2776
3066
 
@@ -2799,28 +3089,28 @@ function cn(t, { time: e = 0, intensity: o = 1, direction: n = L.XYZ, scale: a =
2799
3089
 
2800
3090
  return o4.y * d.y + o4.x * (1.0 - d.y);
2801
3091
  }
2802
- ` + r.vertexShader, r.vertexShader = r.vertexShader.replace(
3092
+ ` + s.vertexShader, s.vertexShader = s.vertexShader.replace(
2803
3093
  "#include <begin_vertex>",
2804
3094
  `
2805
3095
  vec3 transformed = vec3(position);
2806
3096
  float n = noise(transformed * scale + time);
2807
- transformed += normalize(direction) * n * intensity;
3097
+ transformed += normalize(axis) * n * intensity;
2808
3098
  vec3 transformedNormal = normal;
2809
3099
  `
2810
- ), t.userData.shader = r;
3100
+ ), e.userData.shader = s;
2811
3101
  };
2812
3102
  }
2813
- function ln(t, e) {
2814
- t.userData.shader && (t.userData.shader.uniforms.time.value += e);
3103
+ function Gn(e, t) {
3104
+ e.userData.shader && (e.userData.shader.uniforms.time.value += t);
2815
3105
  }
2816
- const ee = {
3106
+ const et = {
2817
3107
  uniforms: {
2818
3108
  turbidity: { value: 10 },
2819
3109
  rayleigh: { value: 2 },
2820
3110
  mieCoefficient: { value: 5e-3 },
2821
3111
  mieDirectionalG: { value: 0.8 },
2822
- sunPosition: { value: new g().setFromSphericalCoords(1, F.degToRad(90), F.degToRad(180)) },
2823
- up: { value: new g(0, 1, 0) }
3112
+ sunPosition: { value: new b().setFromSphericalCoords(1, O.degToRad(90), O.degToRad(180)) },
3113
+ up: { value: new b(0, 1, 0) }
2824
3114
  },
2825
3115
  vertexShader: `
2826
3116
  uniform vec3 sunPosition;
@@ -2975,7 +3265,7 @@ const ee = {
2975
3265
  #include <colorspace_fragment>
2976
3266
  }
2977
3267
  `
2978
- }, te = {
3268
+ }, ot = {
2979
3269
  uniforms: {
2980
3270
  topColor: { value: new K(0.5, 0.8, 1) },
2981
3271
  bottomColor: { value: new K(1, 1, 1) }
@@ -2996,7 +3286,7 @@ const ee = {
2996
3286
  gl_FragColor = vec4(mix(bottomColor, topColor, y), 1.0);
2997
3287
  }
2998
3288
  `
2999
- }, un = {
3289
+ }, Bn = {
3000
3290
  uniforms: {
3001
3291
  tDiffuse: { value: null },
3002
3292
  opacity: { value: 1 }
@@ -3017,7 +3307,7 @@ const ee = {
3017
3307
  gl_FragColor = opacity * texel;
3018
3308
  }
3019
3309
  `
3020
- }, oe = {
3310
+ }, nt = {
3021
3311
  uniforms: {
3022
3312
  topColor: { value: new K(51) },
3023
3313
  bottomColor: { value: new K(17) },
@@ -3044,20 +3334,20 @@ const ee = {
3044
3334
  }
3045
3335
  `
3046
3336
  };
3047
- class mn extends d {
3337
+ class Cn extends y {
3048
3338
  constructor() {
3049
3339
  super();
3050
- N(this, "geometry");
3051
- N(this, "material");
3052
- this.geometry = new S(1, 1, 1), this.material = new $({
3053
- uniforms: ee.uniforms,
3054
- vertexShader: ee.vertexShader,
3055
- fragmentShader: ee.fragmentShader,
3340
+ g(this, "geometry");
3341
+ g(this, "material");
3342
+ this.geometry = new A(1, 1, 1), this.material = new $({
3343
+ uniforms: et.uniforms,
3344
+ vertexShader: et.vertexShader,
3345
+ fragmentShader: et.fragmentShader,
3056
3346
  depthWrite: !1,
3057
- side: re
3347
+ side: it
3058
3348
  }), this.scale.setScalar(45e4);
3059
- const o = F.degToRad(89), n = F.degToRad(180), a = new g().setFromSphericalCoords(1, o, n);
3060
- this.material.uniforms.sunPosition.value = a;
3349
+ const o = O.degToRad(89), n = O.degToRad(180), r = new b().setFromSphericalCoords(1, o, n);
3350
+ this.material.uniforms.sunPosition.value = r;
3061
3351
  }
3062
3352
  /**
3063
3353
  * Set the sun position.
@@ -3073,301 +3363,410 @@ class mn extends d {
3073
3363
  * - This is the horizontal angle in the xy-plane.
3074
3364
  */
3075
3365
  sunPosition(o, n) {
3076
- const a = new g();
3077
- a.setFromSphericalCoords(1, o, n), this.material.uniforms.sunPosition.value = a;
3366
+ const r = new b();
3367
+ r.setFromSphericalCoords(1, o, n), this.material.uniforms.sunPosition.value = r;
3078
3368
  }
3079
3369
  }
3080
- class hn extends d {
3370
+ class Un extends y {
3081
3371
  constructor(o = 1e3) {
3082
3372
  super();
3083
- N(this, "geometry");
3084
- N(this, "material");
3085
- this.geometry = new S(o, o, o), this.material = new $({
3086
- uniforms: te.uniforms,
3087
- vertexShader: te.vertexShader,
3088
- fragmentShader: te.fragmentShader,
3089
- side: re
3373
+ g(this, "geometry");
3374
+ g(this, "material");
3375
+ this.geometry = new A(o, o, o), this.material = new $({
3376
+ uniforms: ot.uniforms,
3377
+ vertexShader: ot.vertexShader,
3378
+ fragmentShader: ot.fragmentShader,
3379
+ side: it
3090
3380
  });
3091
3381
  }
3092
3382
  }
3093
- class fn extends d {
3383
+ class zn extends y {
3094
3384
  constructor(o = 1e3) {
3095
3385
  super();
3096
- N(this, "geometry");
3097
- N(this, "material");
3098
- this.geometry = new z(o, 32, 15), this.material = new $({
3099
- vertexShader: oe.vertexShader,
3100
- fragmentShader: oe.fragmentShader,
3101
- uniforms: oe.uniforms,
3102
- side: re
3386
+ g(this, "geometry");
3387
+ g(this, "material");
3388
+ this.geometry = new N(o, 32, 15), this.material = new $({
3389
+ vertexShader: nt.vertexShader,
3390
+ fragmentShader: nt.fragmentShader,
3391
+ uniforms: nt.uniforms,
3392
+ side: it
3103
3393
  });
3104
3394
  }
3105
3395
  }
3106
- const pn = (t) => {
3107
- const e = new Uint8Array(4 * t * t);
3108
- for (let n = 0; n < t * t; n++) {
3109
- const a = n * 4, r = (n % t ^ Math.floor(n / t)) & 1 ? 255 : 0;
3110
- e[a] = r, e[a + 1] = r, e[a + 2] = r, e[a + 3] = 255;
3396
+ const Nn = (e) => {
3397
+ const t = new Uint8Array(4 * e * e);
3398
+ for (let n = 0; n < e * e; n++) {
3399
+ const r = n * 4, s = (n % e ^ Math.floor(n / e)) & 1 ? 255 : 0;
3400
+ t[r] = s, t[r + 1] = s, t[r + 2] = s, t[r + 3] = 255;
3111
3401
  }
3112
- const o = new Ge(e, t, t, Pe, Te);
3113
- return o.wrapS = ie, o.wrapT = ie, o.minFilter = Ce, o.needsUpdate = !0, o;
3402
+ const o = new Bt(t, e, e, Ct, Ut);
3403
+ return o.wrapS = ut, o.wrapT = ut, o.minFilter = zt, o.needsUpdate = !0, o;
3114
3404
  };
3115
- function dn(t) {
3116
- const e = new ae().setFromObject(t), o = new g();
3117
- e.getCenter(o), t.position.sub(o);
3405
+ function kn(e) {
3406
+ const t = new ct().setFromObject(e), o = new b();
3407
+ t.getCenter(o), e.position.sub(o);
3118
3408
  }
3119
- function yn(t, e = new g(0, 0, 0)) {
3120
- const o = new ae().setFromObject(t), n = new g();
3409
+ function Fn(e, t = new b(0, 0, 0)) {
3410
+ const o = new ct().setFromObject(e), n = new b();
3121
3411
  o.getCenter(n);
3122
- const a = new g().subVectors(e, n);
3123
- t.position.add(a);
3412
+ const r = new b().subVectors(t, n);
3413
+ e.position.add(r);
3124
3414
  }
3125
- function wn(t) {
3126
- t.computeBoundingBox();
3127
- const e = t.boundingBox;
3128
- if (e) {
3129
- const o = e.getCenter(new g());
3130
- t.translateX(-o.x), t.translateY(-o.y), t.translateZ(-o.z);
3415
+ function On(e) {
3416
+ e.computeBoundingBox();
3417
+ const t = e.boundingBox;
3418
+ if (t) {
3419
+ const o = t.getCenter(new b());
3420
+ e.translateX(-o.x), e.translateY(-o.y), e.translateZ(-o.z);
3131
3421
  }
3132
3422
  }
3133
- function Dt(t, e, o) {
3134
- return Math.max(0, Math.min(1, (t - e) / (o - e)));
3423
+ function Ye(e, t, o) {
3424
+ return Math.max(0, Math.min(1, (e - t) / (o - t)));
3135
3425
  }
3136
- function vn(t, e, o, n, a, r = 20, s = 0, c = 1) {
3137
- const i = [];
3138
- for (let l = 0; l <= r; l++) {
3139
- const u = l / r, m = t(Dt(u, s, c)), h = e + m * (o - e), f = n + u * (a - n);
3140
- i.push(new b(h, f));
3426
+ function _n(e, t, o, n, r, s = 20, a = 0, i = 1) {
3427
+ const c = [];
3428
+ for (let l = 0; l <= s; l++) {
3429
+ const u = l / s, m = e(Ye(u, a, i)), h = t + m * (o - t), f = n + u * (r - n);
3430
+ c.push(new I(h, f));
3141
3431
  }
3142
- return i;
3432
+ return c;
3143
3433
  }
3144
- function Mn(t) {
3145
- const o = new ae().setFromObject(t).getCenter(new g());
3146
- t.translateX(-o.x), t.translateY(-o.y), t.translateZ(-o.z), t.updateMatrixWorld(!0);
3434
+ function Rn(e) {
3435
+ const o = new ct().setFromObject(e).getCenter(new b());
3436
+ e.translateX(-o.x), e.translateY(-o.y), e.translateZ(-o.z), e.updateMatrixWorld(!0);
3147
3437
  }
3148
- function xn(t) {
3149
- t.geometry.computeBoundingBox();
3150
- const e = t.geometry.boundingBox;
3151
- if (e) {
3152
- const o = e.getCenter(new g());
3153
- t.geometry.translate(-o.x, -o.y, -o.z);
3438
+ function Ln(e) {
3439
+ e.geometry.computeBoundingBox();
3440
+ const t = e.geometry.boundingBox;
3441
+ if (t) {
3442
+ const o = t.getCenter(new b());
3443
+ e.geometry.translate(-o.x, -o.y, -o.z);
3154
3444
  }
3155
3445
  }
3156
- const qt = (t, e, o, n, a = 24) => {
3157
- let r = [];
3158
- for (let s = 0; s <= a; s++) {
3159
- const c = s / a, i = k.CUBIC(c, t.x, e.x, o.x, n.x), l = k.CUBIC(c, t.y, e.y, o.y, n.y);
3160
- r.push(new b(i, l));
3161
- }
3162
- return r;
3163
- }, Xt = (t, e, o, n = 24) => {
3164
- let a = [];
3165
- for (let r = 0; r <= n; r++) {
3166
- const s = r / n, c = k.DAMPED(s, o) * (e.x - t.x) + t.x, i = t.y + s * (e.y - t.y);
3167
- a.push(new b(c, i));
3446
+ const je = (e, t, o, n, r = 24) => {
3447
+ let s = [];
3448
+ for (let a = 0; a <= r; a++) {
3449
+ const i = a / r, c = _.CUBIC(i, e.x, t.x, o.x, n.x), l = _.CUBIC(i, e.y, t.y, o.y, n.y);
3450
+ s.push(new I(c, l));
3168
3451
  }
3169
- return a;
3170
- }, Vt = (t, e, o, n, a = 24) => {
3452
+ return s;
3453
+ }, He = (e, t, o, n = 24) => {
3171
3454
  let r = [];
3172
- for (let s = 0; s <= a; s++) {
3173
- const c = s / a, i = k.EXPONENTIAL(c, o, n) * (e.x - t.x) + t.x, l = t.y + c * (e.y - t.y);
3174
- r.push(new b(i, l));
3455
+ for (let s = 0; s <= n; s++) {
3456
+ const a = s / n, i = _.DAMPED(a, o) * (t.x - e.x) + e.x, c = e.y + a * (t.y - e.y);
3457
+ r.push(new I(i, c));
3175
3458
  }
3176
3459
  return r;
3177
- }, Zt = (t, e, o, n, a = 24) => {
3178
- let r = [];
3179
- for (let s = 0; s <= a; s++) {
3180
- const c = s / a, i = k.LOGARITHMIC(c, o, n) * (e.x - t.x) + t.x, l = t.y + c * (e.y - t.y);
3181
- r.push(new b(i, l));
3460
+ }, Qe = (e, t, o, n, r = 24) => {
3461
+ let s = [];
3462
+ for (let a = 0; a <= r; a++) {
3463
+ const i = a / r, c = _.EXPONENTIAL(i, o, n) * (t.x - e.x) + e.x, l = e.y + i * (t.y - e.y);
3464
+ s.push(new I(c, l));
3182
3465
  }
3183
- return r;
3184
- }, Ht = (t, e, o, n, a, r = 24) => {
3466
+ return s;
3467
+ }, Ke = (e, t, o, n, r = 24) => {
3185
3468
  let s = [];
3186
- for (let c = 0; c <= r; c++) {
3187
- const i = c / r, l = o * i * i + n * i + a + t.x, u = t.y + i * (e.y - t.y);
3188
- s.push(new b(l, u));
3469
+ for (let a = 0; a <= r; a++) {
3470
+ const i = a / r, c = _.LOGARITHMIC(i, o, n) * (t.x - e.x) + e.x, l = e.y + i * (t.y - e.y);
3471
+ s.push(new I(c, l));
3189
3472
  }
3190
3473
  return s;
3191
- }, Yt = (t, e, o, n = 24) => {
3474
+ }, $e = (e, t, o, n, r, s = 24) => {
3192
3475
  let a = [];
3193
- for (let r = 0; r <= n; r++) {
3194
- const s = r / n, c = k.QUADRATIC(s, t.x, e.x, o.x), i = k.QUADRATIC(s, t.y, e.y, o.y);
3195
- a.push(new b(c, i));
3476
+ for (let i = 0; i <= s; i++) {
3477
+ const c = i / s, l = o * c * c + n * c + r + e.x, u = e.y + c * (t.y - e.y);
3478
+ a.push(new I(l, u));
3196
3479
  }
3197
3480
  return a;
3198
- }, jt = (t, e, o, n = 24) => {
3199
- let a = [];
3200
- for (let r = 0; r <= n; r++) {
3201
- const s = r / n, c = k.SIGMOID(s, o) * (e.x - t.x) + t.x, i = t.y + s * (e.y - t.y);
3202
- a.push(new b(c, i));
3481
+ }, Je = (e, t, o, n = 24) => {
3482
+ let r = [];
3483
+ for (let s = 0; s <= n; s++) {
3484
+ const a = s / n, i = _.QUADRATIC(a, e.x, t.x, o.x), c = _.QUADRATIC(a, e.y, t.y, o.y);
3485
+ r.push(new I(i, c));
3203
3486
  }
3204
- return a;
3205
- }, gn = {
3206
- createCubicCurvePoints: qt,
3207
- createDampedCurvePoints: Xt,
3208
- createExponentialCurvePoints: Vt,
3209
- createLogarithmicCurvePoints: Zt,
3210
- createParabolicCurvePoints: Ht,
3211
- createQuadraticCurvePoints: Yt,
3212
- createSigmoidCurvePoints: jt
3487
+ return r;
3488
+ }, We = (e, t, o, n = 24) => {
3489
+ let r = [];
3490
+ for (let s = 0; s <= n; s++) {
3491
+ const a = s / n, i = _.SIGMOID(a, o) * (t.x - e.x) + e.x, c = e.y + a * (t.y - e.y);
3492
+ r.push(new I(i, c));
3493
+ }
3494
+ return r;
3495
+ }, qn = {
3496
+ createCubicCurvePoints: je,
3497
+ createDampedCurvePoints: He,
3498
+ createExponentialCurvePoints: Qe,
3499
+ createLogarithmicCurvePoints: Ke,
3500
+ createParabolicCurvePoints: $e,
3501
+ createQuadraticCurvePoints: Je,
3502
+ createSigmoidCurvePoints: We
3213
3503
  };
3504
+ function Dn(e, t, o, n, r, s = [0, 0], a = [1, 0], i = [0, 1], c = [1, 1]) {
3505
+ const l = r || to(e, t, o);
3506
+ return [
3507
+ // Triangle 1
3508
+ { pos: e, norm: l, uv: s },
3509
+ { pos: t, norm: l, uv: a },
3510
+ { pos: n, norm: l, uv: c },
3511
+ // Triangle 2
3512
+ { pos: e, norm: l, uv: s },
3513
+ { pos: n, norm: l, uv: c },
3514
+ { pos: o, norm: l, uv: i }
3515
+ ];
3516
+ }
3517
+ function to(e, t, o) {
3518
+ const n = [
3519
+ t[0] - e[0],
3520
+ t[1] - e[1],
3521
+ t[2] - e[2]
3522
+ ], r = [
3523
+ o[0] - e[0],
3524
+ o[1] - e[1],
3525
+ o[2] - e[2]
3526
+ ], s = [
3527
+ n[1] * r[2] - n[2] * r[1],
3528
+ n[2] * r[0] - n[0] * r[2],
3529
+ n[0] * r[1] - n[1] * r[0]
3530
+ ], a = Math.sqrt(s[0] ** 2 + s[1] ** 2 + s[2] ** 2);
3531
+ return s.map((i) => i / a);
3532
+ }
3533
+ function Vn(e, t) {
3534
+ return e.map(([o, n, r]) => {
3535
+ switch (t) {
3536
+ case "x":
3537
+ return [n, r];
3538
+ case "y":
3539
+ return [o, r];
3540
+ case "z":
3541
+ return [o, n];
3542
+ default:
3543
+ throw new Error(`Invalid axis: ${t}`);
3544
+ }
3545
+ });
3546
+ }
3547
+ function eo(e) {
3548
+ const [t, o, n] = e, r = Math.abs(t), s = Math.abs(o), a = Math.abs(n);
3549
+ return r >= s && r >= a ? [n > 0 ? n : -n, o] : s >= r && s >= a ? [t, n > 0 ? n : -n] : [t, o];
3550
+ }
3551
+ function Xn(e) {
3552
+ return e.map((t) => eo(t));
3553
+ }
3554
+ function Zn(e) {
3555
+ return e.map(([t, o, n]) => {
3556
+ const r = Math.atan2(n, t), s = Math.acos(o / Math.sqrt(t ** 2 + o ** 2 + n ** 2)), a = r / (2 * Math.PI) + 0.5, i = 1 - s / Math.PI;
3557
+ return [a, i];
3558
+ });
3559
+ }
3560
+ function Yn(e) {
3561
+ return e.map(([t, o, n]) => [Math.atan2(n, t) / (2 * Math.PI) + 0.5, o]);
3562
+ }
3563
+ function jn(e) {
3564
+ return e.map(([t, o, n]) => {
3565
+ const r = Math.sqrt(t ** 2 + n ** 2);
3566
+ return [Math.atan2(n, t) / (2 * Math.PI) + 0.5, r];
3567
+ });
3568
+ }
3569
+ function oo(e, t, o, n, r) {
3570
+ return [
3571
+ (e[0] - t) / (o - t),
3572
+ (e[1] - n) / (r - n)
3573
+ ];
3574
+ }
3575
+ function Hn(e, t, o) {
3576
+ const [n, r] = t, [s, a] = o;
3577
+ return e.map((i) => oo(i, n, s, r, a));
3578
+ }
3579
+ function Qn(e) {
3580
+ const t = Math.min(...e.map((s) => s[0])), o = Math.max(...e.map((s) => s[0])), n = Math.min(...e.map((s) => s[1])), r = Math.max(...e.map((s) => s[1]));
3581
+ return {
3582
+ minBounds: [t, n],
3583
+ maxBounds: [o, r]
3584
+ };
3585
+ }
3214
3586
  export {
3215
- mn as AtmosphericSkybox,
3216
- _o as Beaker,
3217
- Pt as BeakerGeometry,
3218
- io as BifurcatedStaircaseGeometry,
3219
- tn as Bone,
3220
- Gt as BoneGeometry,
3221
- xo as Book,
3222
- he as BookGeometry,
3223
- To as Bookshelf,
3224
- It as BookshelfGeometry,
3225
- ko as Bottle,
3226
- so as Bubbling,
3227
- Ro as BunsenBurner,
3228
- $o as Burst,
3229
- kt as BurstShape,
3230
- Bo as Candle,
3231
- go as CrossHeadstone,
3232
- vt as CrossHeadstoneGeometry,
3233
- hn as DaySkybox,
3234
- Co as Desk,
3235
- lo as DioramaGeometry,
3236
- L as Direction,
3237
- no as Easing,
3238
- Fo as ElectricPanel,
3239
- Lo as ErlenmeyerFlask,
3240
- Tt as ErlenmeyerFlaskGeometry,
3587
+ Cn as AtmosphericSkybox,
3588
+ lt as Axis,
3589
+ To as BifurcatedStaircaseGeometry,
3590
+ bn as Bone,
3591
+ Ue as BoneGeometry,
3592
+ _o as Book,
3593
+ dt as BookGeometry,
3594
+ jo as Bookshelf,
3595
+ Te as BookshelfGeometry,
3596
+ tn as Bottle,
3597
+ xo as BubblingEffect,
3598
+ en as BunsenBurner,
3599
+ wn as Burst,
3600
+ De as BurstShape,
3601
+ Qo as Candle,
3602
+ Ro as CrossHeadstone,
3603
+ be as CrossHeadstoneGeometry,
3604
+ Un as DaySkybox,
3605
+ Ho as Desk,
3606
+ Ge as DeskGeometry,
3607
+ Go as DioramaGeometry,
3608
+ W as Direction,
3609
+ vo as Easing,
3610
+ on as ElectricPanel,
3611
+ Me as EllipticLeafGeometry,
3612
+ go as EmissivePulseEffect,
3613
+ nn as ErlenmeyerFlask,
3614
+ ze as ErlenmeyerFlaskGeometry,
3241
3615
  Q as Falloff,
3242
- Ao as FenceColumn,
3243
- bt as FenceColumnGeometry,
3244
- Do as Flask,
3245
- Jo as Gear,
3246
- Rt as GearShape,
3247
- Wo as Heart,
3248
- Ft as HeartShape,
3249
- nn as Hill,
3250
- Nt as HillGeometry,
3251
- uo as LShapedStaircaseGeometry,
3252
- Uo as Lantern,
3253
- qo as LeverPanel,
3254
- bo as Mausoleum,
3255
- Xo as Microscope,
3256
- Mo as Moon,
3257
- Vo as MortarAndPestle,
3258
- Ct as MortarGeometry,
3259
- No as MossyRocks,
3260
- sn as Mound,
3261
- zt as MoundGeometry,
3262
- fn as NightSkybox,
3263
- So as ObeliskHeadstone,
3264
- Mt as ObeliskHeadstoneGeometry,
3265
- k as ParametricCurve,
3266
- gn as ParametricCurveUtils,
3267
- Oo as Rock,
3268
- At as RockGeometry,
3269
- zo as Rocks,
3270
- Io as RoundedHeadstone,
3271
- xt as RoundedHeadstoneGeometry,
3272
- fo as SimpleLeafGeometry,
3273
- mo as SpiralStaircaseGeometry,
3274
- Zo as SpiralTube,
3275
- Eo as SquareHeadstone,
3276
- gt as SquareHeadstoneGeometry,
3277
- ho as StaircaseGeometry,
3278
- Ho as Stand,
3279
- Bt as StandGeometry,
3280
- en as Star,
3281
- Lt as StarShape,
3282
- Yo as TeslaCoil,
3283
- jo as TestTube,
3284
- ne as TestTubeGeometry,
3285
- Qo as TestTubeRack,
3286
- on as Tree,
3287
- _t as TreeGeometry,
3288
- Ko as WineBottle,
3289
- Ut as WineBottleGeometry,
3290
- Go as WroughtIronBar,
3291
- de as WroughtIronBarGeometry,
3292
- Po as WroughtIronFence,
3293
- St as WroughtIronFenceGeometry,
3294
- cn as addNoiseDisplacement,
3295
- rn as addWaterDisplacement,
3296
- ee as atmosphericShader,
3297
- Ot as capHeightFromRadius,
3298
- yo as capWidthFromRadius,
3299
- vo as cartesianToSpherical,
3300
- dn as centerGroup,
3301
- yn as centerGroupAtTarget,
3302
- wn as centerInstancedMesh,
3303
- Mn as centerMesh,
3304
- xn as centerMeshGeometry,
3305
- pn as checkerboardTexture,
3306
- Qe as circularEaseIn,
3307
- $e as circularEaseInOut,
3308
- Ke as circularEaseOut,
3309
- et as concave,
3310
- tt as convex,
3311
- qt as createCubicCurvePoints,
3312
- Xt as createDampedCurvePoints,
3313
- Vt as createExponentialCurvePoints,
3314
- Zt as createLogarithmicCurvePoints,
3315
- Ht as createParabolicCurvePoints,
3316
- Yt as createQuadraticCurvePoints,
3317
- jt as createSigmoidCurvePoints,
3318
- at as cubicCurve,
3319
- ke as cubicEaseIn,
3320
- Fe as cubicEaseInOut,
3321
- Re as cubicEaseOut,
3322
- ct as dampedCurve,
3323
- te as daySkyShader,
3324
- $t as displacementBrush,
3325
- it as exponentialCurve,
3326
- He as exponentialEaseIn,
3327
- je as exponentialEaseInOut,
3328
- Ye as exponentialEaseOut,
3329
- un as fadeShader,
3330
- Jt as flattenBrush,
3331
- rt as gaussian,
3332
- vn as interpolateCurve,
3333
- st as inverse,
3334
- Je as linear,
3335
- ot as logarithmic,
3336
- lt as logarithmicCurve,
3337
- yt as logarithmicRandomMax,
3338
- wt as logarithmicRandomMin,
3339
- oe as nightSkyShader,
3340
- Wt as noiseBrush,
3341
- ut as parabolicCurve,
3342
- mt as quadraticCurve,
3343
- Oe as quadraticEaseIn,
3344
- _e as quadraticEaseInOut,
3345
- ze as quadraticEaseOut,
3346
- Le as quarticEaseIn,
3347
- qe as quarticEaseInOut,
3348
- De as quarticEaseOut,
3349
- Xe as quinticEaseIn,
3350
- Ze as quinticEaseInOut,
3351
- Ve as quinticEaseOut,
3352
- po as radiusFromCapHeight,
3353
- ye as radiusFromCapWidth,
3354
- dt as randomFloat,
3355
- ro as randomInteger,
3356
- Et as randomTransformVertices,
3357
- ao as rowOfBooksByCount,
3358
- co as rowOfBooksByLength,
3359
- pe as rowOfBooksByScales,
3360
- ht as sigmoidCurve,
3361
- Be as sineEaseIn,
3362
- Ne as sineEaseInOut,
3363
- Ue as sineEaseOut,
3364
- eo as smoothBrush,
3365
- We as smoothstep,
3366
- wo as sphericalToCartesian,
3367
- to as spikeBrush,
3368
- nt as squareRoot,
3369
- oo as twistBrush,
3370
- ln as updateNoiseDisplacementTime,
3371
- an as updateWaterDisplacementTime
3616
+ Xo as FenceColumn,
3617
+ Ee as FenceColumnGeometry,
3618
+ sn as Flask,
3619
+ rn as FlorenceFlask,
3620
+ Ne as FlorenceFlaskGeometry,
3621
+ vn as Gear,
3622
+ Ve as GearShape,
3623
+ xn as Heart,
3624
+ Xe as HeartShape,
3625
+ An as Hill,
3626
+ _e as HillGeometry,
3627
+ Bo as LShapedStaircaseGeometry,
3628
+ Ko as Lantern,
3629
+ bo as LeafEffect,
3630
+ an as LeverPanel,
3631
+ So as LightningEffect,
3632
+ Lo as Mausoleum,
3633
+ cn as Microscope,
3634
+ Oo as Moon,
3635
+ ln as MortarAndPestle,
3636
+ ke as MortarGeometry,
3637
+ $o as MossyRocks,
3638
+ Sn as Mound,
3639
+ Le as MoundGeometry,
3640
+ zn as NightSkybox,
3641
+ qo as ObeliskHeadstone,
3642
+ Ie as ObeliskHeadstoneGeometry,
3643
+ un as Panel,
3644
+ mn as PanelLight,
3645
+ _ as ParametricCurve,
3646
+ qn as ParametricCurveUtils,
3647
+ Jo as Rock,
3648
+ Ce as RockGeometry,
3649
+ Wo as Rocks,
3650
+ Do as RoundedHeadstone,
3651
+ Ae as RoundedHeadstoneGeometry,
3652
+ Co as SpiralStaircaseGeometry,
3653
+ hn as SpiralTube,
3654
+ Vo as SquareHeadstone,
3655
+ Se as SquareHeadstoneGeometry,
3656
+ Uo as StaircaseGeometry,
3657
+ fn as Stand,
3658
+ Fe as StandGeometry,
3659
+ gn as Star,
3660
+ Ze as StarShape,
3661
+ pn as TeslaCoil,
3662
+ dn as TestTube,
3663
+ st as TestTubeGeometry,
3664
+ yn as TestTubeRack,
3665
+ In as Tree,
3666
+ qe as TreeGeometry,
3667
+ Mn as WineBottle,
3668
+ Oe as WineBottleGeometry,
3669
+ Zo as WroughtIronBar,
3670
+ wt as WroughtIronBarGeometry,
3671
+ Yo as WroughtIronFence,
3672
+ Pe as WroughtIronFenceGeometry,
3673
+ Tn as addNoiseDisplacement,
3674
+ En as addWaterDisplacement,
3675
+ et as atmosphericShader,
3676
+ to as calculateNormal,
3677
+ Qn as calculateUVBounds,
3678
+ Re as capHeightFromRadius,
3679
+ No as capWidthFromRadius,
3680
+ Fo as cartesianToSpherical,
3681
+ kn as centerGroup,
3682
+ Fn as centerGroupAtTarget,
3683
+ On as centerInstancedMesh,
3684
+ Rn as centerMesh,
3685
+ Ln as centerMeshGeometry,
3686
+ Nn as checkerboardTexture,
3687
+ Jt as circularEaseIn,
3688
+ te as circularEaseInOut,
3689
+ Wt as circularEaseOut,
3690
+ ne as concave,
3691
+ se as convex,
3692
+ je as createCubicCurvePoints,
3693
+ He as createDampedCurvePoints,
3694
+ Qe as createExponentialCurvePoints,
3695
+ Ke as createLogarithmicCurvePoints,
3696
+ $e as createParabolicCurvePoints,
3697
+ Dn as createQuad,
3698
+ Je as createQuadraticCurvePoints,
3699
+ We as createSigmoidCurvePoints,
3700
+ le as cubicCurve,
3701
+ Lt as cubicEaseIn,
3702
+ Dt as cubicEaseInOut,
3703
+ qt as cubicEaseOut,
3704
+ eo as cubicUVMapping,
3705
+ Xn as cubicUVMappingBatch,
3706
+ Yn as cylindricalUVMapping,
3707
+ ue as dampedCurve,
3708
+ ot as daySkyShader,
3709
+ ho as displacementBrush,
3710
+ ro as dollyAnimation,
3711
+ me as exponentialCurve,
3712
+ Qt as exponentialEaseIn,
3713
+ $t as exponentialEaseInOut,
3714
+ Kt as exponentialEaseOut,
3715
+ Bn as fadeShader,
3716
+ fo as flattenBrush,
3717
+ ao as flythroughAnimation,
3718
+ ce as gaussian,
3719
+ _n as interpolateCurve,
3720
+ ie as inverse,
3721
+ ee as linear,
3722
+ re as logarithmic,
3723
+ he as logarithmicCurve,
3724
+ we as logarithmicRandomMax,
3725
+ ve as logarithmicRandomMin,
3726
+ nt as nightSkyShader,
3727
+ po as noiseBrush,
3728
+ oo as normalizeUV,
3729
+ Hn as normalizeUVBatch,
3730
+ io as orbitAnimation,
3731
+ fe as parabolicCurve,
3732
+ co as pendulumAnimation,
3733
+ Vn as planarUVMapping,
3734
+ jn as polarUVMapping,
3735
+ pe as quadraticCurve,
3736
+ Ot as quadraticEaseIn,
3737
+ Rt as quadraticEaseInOut,
3738
+ _t as quadraticEaseOut,
3739
+ Vt as quarticEaseIn,
3740
+ Zt as quarticEaseInOut,
3741
+ Xt as quarticEaseOut,
3742
+ Yt as quinticEaseIn,
3743
+ Ht as quinticEaseInOut,
3744
+ jt as quinticEaseOut,
3745
+ zo as radiusFromCapHeight,
3746
+ vt as radiusFromCapWidth,
3747
+ pt as randomFloat,
3748
+ Io as randomInteger,
3749
+ Be as randomTransformVertices,
3750
+ Eo as rowOfBooksByCount,
3751
+ Po as rowOfBooksByLength,
3752
+ Mt as rowOfBooksByScales,
3753
+ Ao as setRandomInterval,
3754
+ xe as setRandomTimeout,
3755
+ de as sigmoidCurve,
3756
+ Nt as sineEaseIn,
3757
+ Ft as sineEaseInOut,
3758
+ kt as sineEaseOut,
3759
+ yo as smoothBrush,
3760
+ oe as smoothstep,
3761
+ ko as sphericalToCartesian,
3762
+ Zn as sphericalUVMapping,
3763
+ Mo as spikeBrush,
3764
+ lo as spiralAscensionAnimation,
3765
+ ae as squareRoot,
3766
+ wo as twistBrush,
3767
+ Gn as updateNoiseDisplacementTime,
3768
+ Pn as updateWaterDisplacementTime,
3769
+ uo as wobbleAnimation,
3770
+ mo as zoomInAnimation
3372
3771
  };
3373
3772
  //# sourceMappingURL=index.es.js.map