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