three-low-poly 0.9.12 → 0.9.14

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