three-low-poly 0.9.11 → 0.9.13

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