three-low-poly 0.9.7 → 0.9.8
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 +9 -9
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +921 -742
- package/dist/index.es.js.map +1 -1
- package/dist/index.iife.js +8 -8
- package/dist/index.iife.js.map +1 -1
- package/dist/index.umd.js +9 -9
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Vector3 as M, MathUtils as
|
|
2
|
-
import { mergeGeometries as A, mergeVertices as
|
|
3
|
-
import { Sky as
|
|
4
|
-
import { EffectComposer as
|
|
1
|
+
import { Vector3 as M, MathUtils as R, Quaternion as le, Group as b, SphereGeometry as T, MeshStandardMaterial as w, Mesh as f, BufferGeometry as g, Float32BufferAttribute as U, BufferAttribute as Y, BoxGeometry as S, ConeGeometry as z, CylinderGeometry as v, Vector2 as P, LatheGeometry as Z, CircleGeometry as me, DodecahedronGeometry as Q, ShaderMaterial as j, Shape as _, ExtrudeGeometry as L, MeshBasicMaterial as ue, PointLight as oe, TorusGeometry as se, MeshPhysicalMaterial as K, DoubleSide as q, CatmullRomCurve3 as he, TubeGeometry as fe, LineBasicMaterial as pe, Line as de, Path as we, Color as $, BackSide as ne, DataTexture as ye, RGBAFormat as xe, UnsignedByteType as Me, RepeatWrapping as W, NearestFilter as ve, Box3 as ge } from "three";
|
|
2
|
+
import { mergeGeometries as A, mergeVertices as Se } from "three/addons/utils/BufferGeometryUtils.js";
|
|
3
|
+
import { Sky as be } from "three/addons/objects/Sky.js";
|
|
4
|
+
import { EffectComposer as Ge } from "three/addons/postprocessing/EffectComposer.js";
|
|
5
5
|
import { RenderPass as ee } from "three/addons/postprocessing/RenderPass.js";
|
|
6
|
-
import { ShaderPass as
|
|
7
|
-
const
|
|
6
|
+
import { ShaderPass as Ie } from "three/addons/postprocessing/ShaderPass.js";
|
|
7
|
+
const N = {
|
|
8
8
|
UP: new M(0, 1, 0),
|
|
9
9
|
DOWN: new M(0, -1, 0),
|
|
10
10
|
LEFT: new M(-1, 0, 0),
|
|
@@ -19,108 +19,108 @@ const C = {
|
|
|
19
19
|
YZ: new M(0, 1, 1).normalize(),
|
|
20
20
|
XYZ: new M(1, 1, 1).normalize()
|
|
21
21
|
}, O = {
|
|
22
|
-
LINEAR: (
|
|
23
|
-
QUADRATIC: (
|
|
24
|
-
SQUARE_ROOT: (
|
|
25
|
-
LOGARITHMIC: (
|
|
26
|
-
SINE: (
|
|
27
|
-
EXPONENTIAL: (
|
|
28
|
-
CUBIC: (
|
|
29
|
-
GAUSSIAN: (
|
|
30
|
-
INVERSE: (
|
|
31
|
-
SMOOTHSTEP: (
|
|
32
|
-
const t = Math.max(0, Math.min(1, 1 -
|
|
22
|
+
LINEAR: (i, e) => 1 - i / e,
|
|
23
|
+
QUADRATIC: (i, e) => Math.pow(1 - i / e, 2),
|
|
24
|
+
SQUARE_ROOT: (i, e) => Math.pow(1 - i / e, 0.5),
|
|
25
|
+
LOGARITHMIC: (i, e) => Math.log(1 + (e - i)) / Math.log(1 + e),
|
|
26
|
+
SINE: (i, e) => Math.cos(i / e * Math.PI / 2),
|
|
27
|
+
EXPONENTIAL: (i, e) => Math.exp(-i / e),
|
|
28
|
+
CUBIC: (i, e) => Math.pow(1 - i / e, 3),
|
|
29
|
+
GAUSSIAN: (i, e) => Math.exp(-Math.pow(i, 2) / (2 * Math.pow(e / 3, 2))),
|
|
30
|
+
INVERSE: (i, e) => e / (e + i),
|
|
31
|
+
SMOOTHSTEP: (i, e) => {
|
|
32
|
+
const t = Math.max(0, Math.min(1, 1 - i / e));
|
|
33
33
|
return t * t * (3 - 2 * t);
|
|
34
34
|
}
|
|
35
|
-
},
|
|
36
|
-
const s =
|
|
35
|
+
}, We = (i, e, t, o, r = N.UP, l = O.LINEAR) => {
|
|
36
|
+
const s = i.attributes.position;
|
|
37
37
|
for (let n = 0; n < s.count; n++) {
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
if (
|
|
42
|
-
const u =
|
|
43
|
-
|
|
38
|
+
const a = new M();
|
|
39
|
+
a.fromBufferAttribute(s, n);
|
|
40
|
+
const c = a.distanceTo(e);
|
|
41
|
+
if (c < t) {
|
|
42
|
+
const u = l(c, t) * o;
|
|
43
|
+
a.add(r.clone().multiplyScalar(u)), s.setXYZ(n, a.x, a.y, a.z);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
s.needsUpdate = !0;
|
|
47
|
-
},
|
|
48
|
-
const n =
|
|
49
|
-
for (let
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
const m =
|
|
47
|
+
}, et = (i, e, t, o, r, l = N.UP, s = O.LINEAR) => {
|
|
48
|
+
const n = i.attributes.position;
|
|
49
|
+
for (let a = 0; a < n.count; a++) {
|
|
50
|
+
const c = new M();
|
|
51
|
+
c.fromBufferAttribute(n, a);
|
|
52
|
+
const m = c.distanceTo(e);
|
|
53
53
|
if (m < t) {
|
|
54
|
-
const
|
|
55
|
-
|
|
54
|
+
const h = s(m, t) * r, d = c.dot(l.normalize()), p = o - d;
|
|
55
|
+
c.add(l.clone().multiplyScalar(p * h)), n.setXYZ(a, c.x, c.y, c.z);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
n.needsUpdate = !0;
|
|
59
|
-
},
|
|
60
|
-
const s =
|
|
59
|
+
}, tt = (i, e, t, o, r = N.UP, l = O.LINEAR) => {
|
|
60
|
+
const s = i.attributes.position;
|
|
61
61
|
for (let n = 0; n < s.count; n++) {
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
const
|
|
65
|
-
if (
|
|
66
|
-
const m =
|
|
67
|
-
|
|
62
|
+
const a = new M();
|
|
63
|
+
a.fromBufferAttribute(s, n);
|
|
64
|
+
const c = a.distanceTo(e);
|
|
65
|
+
if (c < t) {
|
|
66
|
+
const m = l(c, t), u = o * m, h = r.clone().normalize();
|
|
67
|
+
a.x += R.randFloatSpread(u) * h.x, a.y += R.randFloatSpread(u) * h.y, a.z += R.randFloatSpread(u) * h.z, s.setXYZ(n, a.x, a.y, a.z);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
s.needsUpdate = !0;
|
|
71
|
-
},
|
|
72
|
-
const r =
|
|
71
|
+
}, ot = (i, e, t, o) => {
|
|
72
|
+
const r = i.attributes.position, l = new M();
|
|
73
73
|
for (let s = 0; s < r.count; s++) {
|
|
74
74
|
const n = new M();
|
|
75
75
|
if (n.fromBufferAttribute(r, s), n.distanceTo(e) < t) {
|
|
76
|
-
let
|
|
76
|
+
let c = new M(), m = 0;
|
|
77
77
|
for (let u = 0; u < r.count; u++)
|
|
78
|
-
|
|
79
|
-
m > 0 && (
|
|
78
|
+
l.fromBufferAttribute(r, u), l.distanceTo(n) < t && (c.add(l), m++);
|
|
79
|
+
m > 0 && (c.divideScalar(m), n.lerp(c, o), r.setXYZ(s, n.x, n.y, n.z));
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
r.needsUpdate = !0;
|
|
83
|
-
},
|
|
84
|
-
const s =
|
|
83
|
+
}, st = (i, e, t, o, r = !1, l = O.LINEAR) => {
|
|
84
|
+
const s = i.attributes.position;
|
|
85
85
|
for (let n = 0; n < s.count; n++) {
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
if (
|
|
90
|
-
const u =
|
|
91
|
-
|
|
86
|
+
const a = new M();
|
|
87
|
+
a.fromBufferAttribute(s, n);
|
|
88
|
+
const c = a.distanceTo(e);
|
|
89
|
+
if (c < t) {
|
|
90
|
+
const u = l(c, t) * o * (r ? -1 : 1), h = a.clone().sub(e).normalize();
|
|
91
|
+
a.add(h.multiplyScalar(u)), s.setXYZ(n, a.x, a.y, a.z);
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
s.needsUpdate = !0;
|
|
95
|
-
},
|
|
96
|
-
const s =
|
|
97
|
-
for (let
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
const m =
|
|
95
|
+
}, nt = (i, e, t, o, r = N.UP, l = O.LINEAR) => {
|
|
96
|
+
const s = i.attributes.position, n = new le();
|
|
97
|
+
for (let a = 0; a < s.count; a++) {
|
|
98
|
+
const c = new M();
|
|
99
|
+
c.fromBufferAttribute(s, a);
|
|
100
|
+
const m = c.distanceTo(e);
|
|
101
101
|
if (m < t) {
|
|
102
|
-
const
|
|
103
|
-
n.setFromAxisAngle(r,
|
|
102
|
+
const h = l(m, t) * o;
|
|
103
|
+
n.setFromAxisAngle(r, h), c.sub(e).applyQuaternion(n).add(e), s.setXYZ(a, c.x, c.y, c.z);
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
s.needsUpdate = !0;
|
|
107
|
-
},
|
|
108
|
-
LINEAR: (
|
|
109
|
-
QUADRATIC_EASE_IN: (
|
|
110
|
-
QUADRATIC_EASE_OUT: (
|
|
111
|
-
SQUARE_ROOT_EASING: (
|
|
112
|
-
LOGARITHMIC_EASING: (
|
|
113
|
-
SINE_EASE_IN: (
|
|
114
|
-
SINE_EASE_OUT: (
|
|
115
|
-
EXPONENTIAL_EASE_IN: (
|
|
116
|
-
EXPONENTIAL_EASE_OUT: (
|
|
117
|
-
CUBIC_EASE_IN: (
|
|
118
|
-
CUBIC_EASE_OUT: (
|
|
119
|
-
GAUSSIAN_EASING: (
|
|
120
|
-
INVERSE_EASING: (
|
|
121
|
-
SMOOTHSTEP_EASING: (
|
|
107
|
+
}, rt = {
|
|
108
|
+
LINEAR: (i) => i,
|
|
109
|
+
QUADRATIC_EASE_IN: (i) => i * i,
|
|
110
|
+
QUADRATIC_EASE_OUT: (i) => 1 - Math.pow(1 - i, 2),
|
|
111
|
+
SQUARE_ROOT_EASING: (i) => Math.sqrt(i),
|
|
112
|
+
LOGARITHMIC_EASING: (i) => Math.log(1 + i) / Math.log(2),
|
|
113
|
+
SINE_EASE_IN: (i) => 1 - Math.cos(i * Math.PI / 2),
|
|
114
|
+
SINE_EASE_OUT: (i) => Math.sin(i * Math.PI / 2),
|
|
115
|
+
EXPONENTIAL_EASE_IN: (i) => Math.pow(2, 10 * (i - 1)),
|
|
116
|
+
EXPONENTIAL_EASE_OUT: (i) => 1 - Math.pow(2, -10 * i),
|
|
117
|
+
CUBIC_EASE_IN: (i) => i * i * i,
|
|
118
|
+
CUBIC_EASE_OUT: (i) => 1 - Math.pow(1 - i, 3),
|
|
119
|
+
GAUSSIAN_EASING: (i) => Math.exp(-Math.pow(i - 0.5, 2) / (2 * 0.1)),
|
|
120
|
+
INVERSE_EASING: (i) => 1 / (1 + i),
|
|
121
|
+
SMOOTHSTEP_EASING: (i) => i * i * (3 - 2 * i)
|
|
122
122
|
};
|
|
123
|
-
class
|
|
123
|
+
class at extends b {
|
|
124
124
|
constructor() {
|
|
125
125
|
super();
|
|
126
126
|
const e = [], t = 20, o = new T(0.1, 6, 6), r = new w({
|
|
@@ -131,41 +131,41 @@ class $e extends S {
|
|
|
131
131
|
metalness: 0.3
|
|
132
132
|
});
|
|
133
133
|
for (let n = 0; n < t; n++) {
|
|
134
|
-
const
|
|
135
|
-
|
|
134
|
+
const a = new f(o, r);
|
|
135
|
+
a.position.set(
|
|
136
136
|
(Math.random() - 0.5) * 1.5,
|
|
137
137
|
// Random x position within flask
|
|
138
138
|
Math.random() * 3,
|
|
139
139
|
// Random y position within flask height
|
|
140
140
|
(Math.random() - 0.5) * 1.5
|
|
141
141
|
// Random z position within flask
|
|
142
|
-
), e.push(
|
|
142
|
+
), e.push(a), this.add(a);
|
|
143
143
|
}
|
|
144
|
-
function
|
|
144
|
+
function l() {
|
|
145
145
|
e.forEach((n) => {
|
|
146
146
|
n.position.y += 0.02, n.position.y > 3 && (n.position.y = 0, n.position.x = (Math.random() - 0.5) * 1.5, n.position.z = (Math.random() - 0.5) * 1.5);
|
|
147
147
|
});
|
|
148
148
|
}
|
|
149
149
|
function s() {
|
|
150
|
-
requestAnimationFrame(s),
|
|
150
|
+
requestAnimationFrame(s), l();
|
|
151
151
|
}
|
|
152
152
|
s();
|
|
153
153
|
}
|
|
154
154
|
}
|
|
155
|
-
class
|
|
156
|
-
constructor(e = 2, t = 0.3, o = 0.6, r = 5,
|
|
155
|
+
class ct extends g {
|
|
156
|
+
constructor(e = 2, t = 0.3, o = 0.6, r = 5, l = 5, s = Math.PI / 4) {
|
|
157
157
|
super();
|
|
158
|
-
const n = [],
|
|
159
|
-
for (let
|
|
160
|
-
const
|
|
158
|
+
const n = [], a = [];
|
|
159
|
+
for (let d = 0; d < r; d++) {
|
|
160
|
+
const p = d * t, x = p + t, y = d * o, G = y + o;
|
|
161
161
|
n.push(
|
|
162
162
|
// Vertical riser
|
|
163
163
|
-e / 2,
|
|
164
|
-
|
|
164
|
+
p,
|
|
165
165
|
y,
|
|
166
166
|
// Bottom-left
|
|
167
167
|
e / 2,
|
|
168
|
-
|
|
168
|
+
p,
|
|
169
169
|
y,
|
|
170
170
|
// Bottom-right
|
|
171
171
|
e / 2,
|
|
@@ -187,110 +187,110 @@ class We extends b {
|
|
|
187
187
|
// Top-right
|
|
188
188
|
e / 2,
|
|
189
189
|
x,
|
|
190
|
-
|
|
190
|
+
G,
|
|
191
191
|
// Back-right
|
|
192
192
|
-e / 2,
|
|
193
193
|
x,
|
|
194
|
-
|
|
194
|
+
G
|
|
195
195
|
// Back-left
|
|
196
196
|
);
|
|
197
|
-
const
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
),
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
197
|
+
const I = d * 8;
|
|
198
|
+
a.push(
|
|
199
|
+
I,
|
|
200
|
+
I + 1,
|
|
201
|
+
I + 2,
|
|
202
|
+
I,
|
|
203
|
+
I + 2,
|
|
204
|
+
I + 3
|
|
205
|
+
), a.push(
|
|
206
|
+
I + 4,
|
|
207
|
+
I + 5,
|
|
208
|
+
I + 6,
|
|
209
|
+
I + 4,
|
|
210
|
+
I + 6,
|
|
211
|
+
I + 7
|
|
212
212
|
);
|
|
213
213
|
}
|
|
214
|
-
const
|
|
214
|
+
const c = r * t, m = r * o, u = e * 2;
|
|
215
215
|
n.push(
|
|
216
216
|
// Landing platform (4 vertices)
|
|
217
217
|
-u / 2,
|
|
218
|
-
|
|
218
|
+
c,
|
|
219
219
|
m,
|
|
220
220
|
// Bottom-left
|
|
221
221
|
u / 2,
|
|
222
|
-
|
|
222
|
+
c,
|
|
223
223
|
m,
|
|
224
224
|
// Bottom-right
|
|
225
225
|
u / 2,
|
|
226
|
-
|
|
226
|
+
c,
|
|
227
227
|
m + o,
|
|
228
228
|
// Top-right
|
|
229
229
|
-u / 2,
|
|
230
|
-
|
|
230
|
+
c,
|
|
231
231
|
m + o
|
|
232
232
|
// Top-left
|
|
233
233
|
);
|
|
234
|
-
const
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
234
|
+
const h = r * 8;
|
|
235
|
+
a.push(
|
|
236
|
+
h,
|
|
237
|
+
h + 1,
|
|
238
|
+
h + 2,
|
|
239
239
|
// First triangle for landing
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
240
|
+
h,
|
|
241
|
+
h + 2,
|
|
242
|
+
h + 3
|
|
243
243
|
// Second triangle for landing
|
|
244
244
|
);
|
|
245
|
-
for (let
|
|
246
|
-
const
|
|
247
|
-
for (let x = 0; x <
|
|
248
|
-
const y =
|
|
245
|
+
for (let d = 0; d < 2; d++) {
|
|
246
|
+
const p = d === 0 ? 1 : -1;
|
|
247
|
+
for (let x = 0; x < l; x++) {
|
|
248
|
+
const y = c + x * t, G = y + t, I = p * (u / 4), F = m + o, V = x * o * Math.cos(s), B = x * o * Math.sin(s), E = I + p * V - e / 2 * Math.cos(s), X = I + p * V + e / 2 * Math.cos(s), C = F + B, ce = E + p * o * Math.cos(s), ie = X + p * o * Math.cos(s), J = C + o * Math.sin(s);
|
|
249
249
|
n.push(
|
|
250
250
|
// Vertical riser
|
|
251
251
|
E,
|
|
252
252
|
y,
|
|
253
|
-
|
|
253
|
+
C,
|
|
254
254
|
// Bottom-left
|
|
255
255
|
X,
|
|
256
256
|
y,
|
|
257
|
-
|
|
257
|
+
C,
|
|
258
258
|
// Bottom-right
|
|
259
259
|
X,
|
|
260
|
-
|
|
261
|
-
|
|
260
|
+
G,
|
|
261
|
+
C,
|
|
262
262
|
// Top-right
|
|
263
263
|
E,
|
|
264
|
-
|
|
265
|
-
|
|
264
|
+
G,
|
|
265
|
+
C,
|
|
266
266
|
// Top-left
|
|
267
267
|
// Horizontal tread
|
|
268
268
|
E,
|
|
269
|
-
|
|
270
|
-
|
|
269
|
+
G,
|
|
270
|
+
C,
|
|
271
271
|
// Top-left
|
|
272
272
|
X,
|
|
273
|
-
|
|
274
|
-
|
|
273
|
+
G,
|
|
274
|
+
C,
|
|
275
275
|
// Top-right
|
|
276
|
-
|
|
277
|
-
|
|
276
|
+
ie,
|
|
277
|
+
G,
|
|
278
278
|
J,
|
|
279
279
|
// Back-right
|
|
280
|
-
|
|
281
|
-
|
|
280
|
+
ce,
|
|
281
|
+
G,
|
|
282
282
|
J
|
|
283
283
|
// Back-left
|
|
284
284
|
);
|
|
285
|
-
const k =
|
|
286
|
-
|
|
285
|
+
const k = h + 4 + d * l * 8 + x * 8;
|
|
286
|
+
a.push(
|
|
287
287
|
k,
|
|
288
288
|
k + 1,
|
|
289
289
|
k + 2,
|
|
290
290
|
k,
|
|
291
291
|
k + 2,
|
|
292
292
|
k + 3
|
|
293
|
-
),
|
|
293
|
+
), a.push(
|
|
294
294
|
k + 4,
|
|
295
295
|
k + 5,
|
|
296
296
|
k + 6,
|
|
@@ -300,13 +300,13 @@ class We extends b {
|
|
|
300
300
|
);
|
|
301
301
|
}
|
|
302
302
|
}
|
|
303
|
-
this.setIndex(
|
|
303
|
+
this.setIndex(a), this.setAttribute("position", new U(n, 3)), this.computeVertexNormals();
|
|
304
304
|
}
|
|
305
305
|
}
|
|
306
|
-
class
|
|
306
|
+
class it extends g {
|
|
307
307
|
constructor(e = 5, t = 3, o = 5, r = 0.2) {
|
|
308
308
|
super();
|
|
309
|
-
const
|
|
309
|
+
const l = [
|
|
310
310
|
// Floor vertices
|
|
311
311
|
-e / 2,
|
|
312
312
|
0,
|
|
@@ -381,48 +381,48 @@ class et extends b {
|
|
|
381
381
|
10,
|
|
382
382
|
11
|
|
383
383
|
];
|
|
384
|
-
this.setIndex(s), this.setAttribute("position", new U(
|
|
384
|
+
this.setIndex(s), this.setAttribute("position", new U(l, 3)), this.computeVertexNormals();
|
|
385
385
|
}
|
|
386
386
|
}
|
|
387
|
-
class
|
|
388
|
-
constructor(e = 2, t = 0.3, o = 0.5, r = 5,
|
|
387
|
+
class lt extends g {
|
|
388
|
+
constructor(e = 2, t = 0.3, o = 0.5, r = 5, l = 2) {
|
|
389
389
|
super();
|
|
390
390
|
const s = [], n = [];
|
|
391
391
|
for (let u = 0; u < r; u++) {
|
|
392
|
-
const
|
|
392
|
+
const h = u * t, d = h + t, p = u * o, x = p + o;
|
|
393
393
|
s.push(
|
|
394
394
|
// Vertical riser
|
|
395
395
|
-e / 2,
|
|
396
|
-
|
|
397
|
-
|
|
396
|
+
h,
|
|
397
|
+
p,
|
|
398
398
|
// Bottom-left
|
|
399
399
|
e / 2,
|
|
400
|
-
|
|
401
|
-
|
|
400
|
+
h,
|
|
401
|
+
p,
|
|
402
402
|
// Bottom-right
|
|
403
403
|
e / 2,
|
|
404
|
-
p,
|
|
405
404
|
d,
|
|
405
|
+
p,
|
|
406
406
|
// Top-right
|
|
407
407
|
-e / 2,
|
|
408
|
-
p,
|
|
409
408
|
d,
|
|
409
|
+
p,
|
|
410
410
|
// Top-left
|
|
411
411
|
// Horizontal tread
|
|
412
412
|
-e / 2,
|
|
413
|
-
p,
|
|
414
413
|
d,
|
|
414
|
+
p,
|
|
415
415
|
// Top-left
|
|
416
416
|
e / 2,
|
|
417
|
-
p,
|
|
418
417
|
d,
|
|
418
|
+
p,
|
|
419
419
|
// Top-right
|
|
420
420
|
e / 2,
|
|
421
|
-
|
|
421
|
+
d,
|
|
422
422
|
x,
|
|
423
423
|
// Back-right
|
|
424
424
|
-e / 2,
|
|
425
|
-
|
|
425
|
+
d,
|
|
426
426
|
x
|
|
427
427
|
// Back-left
|
|
428
428
|
);
|
|
@@ -443,24 +443,24 @@ class tt extends b {
|
|
|
443
443
|
y + 7
|
|
444
444
|
);
|
|
445
445
|
}
|
|
446
|
-
const
|
|
446
|
+
const a = r * t, c = r * o;
|
|
447
447
|
s.push(
|
|
448
448
|
// Landing platform (4 vertices)
|
|
449
449
|
-e / 2,
|
|
450
|
-
c,
|
|
451
450
|
a,
|
|
451
|
+
c,
|
|
452
452
|
// Bottom-left
|
|
453
453
|
e / 2,
|
|
454
|
-
c,
|
|
455
454
|
a,
|
|
455
|
+
c,
|
|
456
456
|
// Bottom-right
|
|
457
457
|
e / 2,
|
|
458
|
-
|
|
459
|
-
|
|
458
|
+
a,
|
|
459
|
+
c + l,
|
|
460
460
|
// Top-right
|
|
461
461
|
-e / 2,
|
|
462
|
-
|
|
463
|
-
|
|
462
|
+
a,
|
|
463
|
+
c + l
|
|
464
464
|
// Top-left
|
|
465
465
|
);
|
|
466
466
|
const m = r * 8;
|
|
@@ -475,41 +475,41 @@ class tt extends b {
|
|
|
475
475
|
// Second triangle for landing
|
|
476
476
|
);
|
|
477
477
|
for (let u = 0; u < r; u++) {
|
|
478
|
-
const
|
|
478
|
+
const h = a + u * t, d = h + t, p = -e / 2 - u * o, x = p - o;
|
|
479
479
|
s.push(
|
|
480
480
|
// Vertical riser
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
481
|
+
p,
|
|
482
|
+
h,
|
|
483
|
+
c + l,
|
|
484
484
|
// Bottom-left
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
485
|
+
p,
|
|
486
|
+
h,
|
|
487
|
+
c + l - e,
|
|
488
488
|
// Bottom-right
|
|
489
|
-
d,
|
|
490
489
|
p,
|
|
491
|
-
a + i - e,
|
|
492
|
-
// Top-right
|
|
493
490
|
d,
|
|
491
|
+
c + l - e,
|
|
492
|
+
// Top-right
|
|
494
493
|
p,
|
|
495
|
-
|
|
494
|
+
d,
|
|
495
|
+
c + l,
|
|
496
496
|
// Top-left
|
|
497
497
|
// Horizontal tread
|
|
498
|
-
d,
|
|
499
498
|
p,
|
|
500
|
-
a + i,
|
|
501
|
-
// Top-left
|
|
502
499
|
d,
|
|
500
|
+
c + l,
|
|
501
|
+
// Top-left
|
|
503
502
|
p,
|
|
504
|
-
|
|
503
|
+
d,
|
|
504
|
+
c + l - e,
|
|
505
505
|
// Top-right
|
|
506
506
|
x,
|
|
507
|
-
|
|
508
|
-
|
|
507
|
+
d,
|
|
508
|
+
c + l - e,
|
|
509
509
|
// Back-right
|
|
510
510
|
x,
|
|
511
|
-
|
|
512
|
-
|
|
511
|
+
d,
|
|
512
|
+
c + l
|
|
513
513
|
// Back-left
|
|
514
514
|
);
|
|
515
515
|
const y = m + 4 + u * 8;
|
|
@@ -532,52 +532,52 @@ class tt extends b {
|
|
|
532
532
|
this.setIndex(n), this.setAttribute("position", new U(s, 3)), this.computeVertexNormals();
|
|
533
533
|
}
|
|
534
534
|
}
|
|
535
|
-
class
|
|
536
|
-
constructor(e = 1, t = 0.4, o = 0.2, r = 20,
|
|
535
|
+
class mt extends g {
|
|
536
|
+
constructor(e = 1, t = 0.4, o = 0.2, r = 20, l = 2, s = Math.PI / 8) {
|
|
537
537
|
super();
|
|
538
|
-
const n = [],
|
|
539
|
-
let
|
|
538
|
+
const n = [], a = [];
|
|
539
|
+
let c = 0;
|
|
540
540
|
for (let m = 0; m < r; m++) {
|
|
541
|
-
const u =
|
|
541
|
+
const u = l * Math.cos(c), h = l * Math.sin(c), d = m * o, p = d + o;
|
|
542
542
|
n.push(
|
|
543
543
|
// Front face (vertical riser)
|
|
544
|
-
u - e / 2 * Math.cos(
|
|
545
|
-
|
|
546
|
-
|
|
544
|
+
u - e / 2 * Math.cos(c),
|
|
545
|
+
d,
|
|
546
|
+
h - e / 2 * Math.sin(c),
|
|
547
547
|
// Bottom-left
|
|
548
|
-
u + e / 2 * Math.cos(
|
|
549
|
-
p,
|
|
550
|
-
f + e / 2 * Math.sin(a),
|
|
551
|
-
// Bottom-right
|
|
552
|
-
u + e / 2 * Math.cos(a),
|
|
548
|
+
u + e / 2 * Math.cos(c),
|
|
553
549
|
d,
|
|
554
|
-
|
|
550
|
+
h + e / 2 * Math.sin(c),
|
|
551
|
+
// Bottom-right
|
|
552
|
+
u + e / 2 * Math.cos(c),
|
|
553
|
+
p,
|
|
554
|
+
h + e / 2 * Math.sin(c),
|
|
555
555
|
// Top-right
|
|
556
|
-
u - e / 2 * Math.cos(
|
|
557
|
-
|
|
558
|
-
|
|
556
|
+
u - e / 2 * Math.cos(c),
|
|
557
|
+
p,
|
|
558
|
+
h - e / 2 * Math.sin(c)
|
|
559
559
|
// Top-left
|
|
560
560
|
), n.push(
|
|
561
561
|
// Top face (horizontal tread)
|
|
562
|
-
u - e / 2 * Math.cos(
|
|
563
|
-
|
|
564
|
-
|
|
562
|
+
u - e / 2 * Math.cos(c),
|
|
563
|
+
p,
|
|
564
|
+
h - e / 2 * Math.sin(c),
|
|
565
565
|
// Top-left-front
|
|
566
|
-
u + e / 2 * Math.cos(
|
|
567
|
-
|
|
568
|
-
|
|
566
|
+
u + e / 2 * Math.cos(c),
|
|
567
|
+
p,
|
|
568
|
+
h + e / 2 * Math.sin(c),
|
|
569
569
|
// Top-right-front
|
|
570
|
-
u + e / 2 * Math.cos(
|
|
571
|
-
|
|
572
|
-
|
|
570
|
+
u + e / 2 * Math.cos(c) - t * Math.sin(c),
|
|
571
|
+
p,
|
|
572
|
+
h + e / 2 * Math.sin(c) + t * Math.cos(c),
|
|
573
573
|
// Back-right
|
|
574
|
-
u - e / 2 * Math.cos(
|
|
575
|
-
|
|
576
|
-
|
|
574
|
+
u - e / 2 * Math.cos(c) - t * Math.sin(c),
|
|
575
|
+
p,
|
|
576
|
+
h - e / 2 * Math.sin(c) + t * Math.cos(c)
|
|
577
577
|
// Back-left
|
|
578
578
|
);
|
|
579
579
|
const x = m * 8;
|
|
580
|
-
|
|
580
|
+
a.push(
|
|
581
581
|
x,
|
|
582
582
|
x + 1,
|
|
583
583
|
x + 2,
|
|
@@ -586,7 +586,7 @@ class ot extends b {
|
|
|
586
586
|
x + 2,
|
|
587
587
|
x + 3
|
|
588
588
|
// Second triangle for riser
|
|
589
|
-
),
|
|
589
|
+
), a.push(
|
|
590
590
|
x + 4,
|
|
591
591
|
x + 5,
|
|
592
592
|
x + 6,
|
|
@@ -595,81 +595,81 @@ class ot extends b {
|
|
|
595
595
|
x + 6,
|
|
596
596
|
x + 7
|
|
597
597
|
// Second triangle for tread
|
|
598
|
-
),
|
|
598
|
+
), c += s;
|
|
599
599
|
}
|
|
600
|
-
this.setIndex(
|
|
600
|
+
this.setIndex(a), this.setAttribute("position", new U(n, 3)), this.computeVertexNormals();
|
|
601
601
|
}
|
|
602
602
|
}
|
|
603
|
-
class
|
|
603
|
+
class ut extends g {
|
|
604
604
|
constructor(e = 2, t = 0.3, o = 0.5, r = 10) {
|
|
605
605
|
super();
|
|
606
|
-
const
|
|
606
|
+
const l = [], s = [];
|
|
607
607
|
for (let n = 0; n < r; n++) {
|
|
608
|
-
const
|
|
609
|
-
|
|
608
|
+
const a = n * t, c = a + t, m = n * o, u = m + o;
|
|
609
|
+
l.push(
|
|
610
610
|
// Bottom face of riser (front face)
|
|
611
611
|
-e / 2,
|
|
612
|
-
|
|
612
|
+
a,
|
|
613
613
|
m,
|
|
614
614
|
// 0: Bottom-left-front
|
|
615
615
|
e / 2,
|
|
616
|
-
|
|
616
|
+
a,
|
|
617
617
|
m,
|
|
618
618
|
// 1: Bottom-right-front
|
|
619
619
|
e / 2,
|
|
620
|
-
|
|
620
|
+
c,
|
|
621
621
|
m,
|
|
622
622
|
// 2: Top-right-front
|
|
623
623
|
-e / 2,
|
|
624
|
-
|
|
624
|
+
c,
|
|
625
625
|
m,
|
|
626
626
|
// 3: Top-left-front
|
|
627
627
|
// Top face of tread (horizontal step)
|
|
628
628
|
-e / 2,
|
|
629
|
-
|
|
629
|
+
c,
|
|
630
630
|
m,
|
|
631
631
|
// 4: Top-left-front (repeated)
|
|
632
632
|
e / 2,
|
|
633
|
-
|
|
633
|
+
c,
|
|
634
634
|
m,
|
|
635
635
|
// 5: Top-right-front (repeated)
|
|
636
636
|
e / 2,
|
|
637
|
-
|
|
637
|
+
c,
|
|
638
638
|
u,
|
|
639
639
|
// 6: Top-right-back
|
|
640
640
|
-e / 2,
|
|
641
|
-
|
|
641
|
+
c,
|
|
642
642
|
u
|
|
643
643
|
// 7: Top-left-back
|
|
644
644
|
);
|
|
645
|
-
const
|
|
645
|
+
const h = n * 8;
|
|
646
646
|
s.push(
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
647
|
+
h,
|
|
648
|
+
h + 1,
|
|
649
|
+
h + 2,
|
|
650
650
|
// First triangle for riser
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
651
|
+
h,
|
|
652
|
+
h + 2,
|
|
653
|
+
h + 3
|
|
654
654
|
// Second triangle for riser
|
|
655
655
|
), s.push(
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
656
|
+
h + 4,
|
|
657
|
+
h + 6,
|
|
658
|
+
h + 5,
|
|
659
659
|
// First triangle for tread
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
660
|
+
h + 4,
|
|
661
|
+
h + 7,
|
|
662
|
+
h + 6
|
|
663
663
|
// Second triangle for tread
|
|
664
664
|
);
|
|
665
665
|
}
|
|
666
|
-
this.setIndex(s), this.setAttribute("position", new U(
|
|
666
|
+
this.setIndex(s), this.setAttribute("position", new U(l, 3)), this.computeVertexNormals();
|
|
667
667
|
}
|
|
668
668
|
}
|
|
669
|
-
class
|
|
670
|
-
constructor(e = 1, t = 1.5, o = 0.5, r = 0.05,
|
|
669
|
+
class Pe extends g {
|
|
670
|
+
constructor(e = 1, t = 1.5, o = 0.5, r = 0.05, l = 0.05) {
|
|
671
671
|
super();
|
|
672
|
-
const s = e, n = t,
|
|
672
|
+
const s = e, n = t, a = o, c = r, m = l, u = [
|
|
673
673
|
// Front cover
|
|
674
674
|
0,
|
|
675
675
|
0,
|
|
@@ -686,20 +686,20 @@ class be extends b {
|
|
|
686
686
|
// Back cover
|
|
687
687
|
s,
|
|
688
688
|
0,
|
|
689
|
-
-
|
|
689
|
+
-a,
|
|
690
690
|
0,
|
|
691
691
|
0,
|
|
692
|
-
-
|
|
692
|
+
-a,
|
|
693
693
|
0,
|
|
694
694
|
n,
|
|
695
|
-
-
|
|
695
|
+
-a,
|
|
696
696
|
s,
|
|
697
697
|
n,
|
|
698
|
-
-
|
|
698
|
+
-a,
|
|
699
699
|
// Spine
|
|
700
700
|
0,
|
|
701
701
|
0,
|
|
702
|
-
-
|
|
702
|
+
-a,
|
|
703
703
|
0,
|
|
704
704
|
0,
|
|
705
705
|
0,
|
|
@@ -708,46 +708,46 @@ class be extends b {
|
|
|
708
708
|
0,
|
|
709
709
|
0,
|
|
710
710
|
n,
|
|
711
|
-
-
|
|
711
|
+
-a,
|
|
712
712
|
// Inside front cover
|
|
713
713
|
s,
|
|
714
714
|
0,
|
|
715
|
-
-
|
|
716
|
-
|
|
715
|
+
-c,
|
|
716
|
+
c,
|
|
717
717
|
0,
|
|
718
|
-
-
|
|
719
|
-
|
|
718
|
+
-c,
|
|
719
|
+
c,
|
|
720
720
|
n,
|
|
721
|
-
-
|
|
721
|
+
-c,
|
|
722
722
|
s,
|
|
723
723
|
n,
|
|
724
|
-
-
|
|
724
|
+
-c,
|
|
725
725
|
// Inside back cover
|
|
726
|
-
|
|
726
|
+
c,
|
|
727
727
|
0,
|
|
728
|
-
-
|
|
728
|
+
-a + c,
|
|
729
729
|
s,
|
|
730
730
|
0,
|
|
731
|
-
-
|
|
731
|
+
-a + c,
|
|
732
732
|
s,
|
|
733
733
|
n,
|
|
734
|
-
-
|
|
735
|
-
|
|
734
|
+
-a + c,
|
|
735
|
+
c,
|
|
736
736
|
n,
|
|
737
|
-
-
|
|
737
|
+
-a + c,
|
|
738
738
|
// Inside spine
|
|
739
|
-
|
|
739
|
+
c,
|
|
740
740
|
0,
|
|
741
|
-
-
|
|
742
|
-
|
|
741
|
+
-c,
|
|
742
|
+
c,
|
|
743
743
|
0,
|
|
744
|
-
-
|
|
745
|
-
|
|
744
|
+
-a + c,
|
|
745
|
+
c,
|
|
746
746
|
n,
|
|
747
|
-
-
|
|
748
|
-
|
|
747
|
+
-a + c,
|
|
748
|
+
c,
|
|
749
749
|
n,
|
|
750
|
-
-
|
|
750
|
+
-c,
|
|
751
751
|
// Front cover top
|
|
752
752
|
0,
|
|
753
753
|
n,
|
|
@@ -757,102 +757,102 @@ class be extends b {
|
|
|
757
757
|
0,
|
|
758
758
|
s,
|
|
759
759
|
n,
|
|
760
|
-
-
|
|
761
|
-
|
|
760
|
+
-c,
|
|
761
|
+
c,
|
|
762
762
|
n,
|
|
763
|
-
-
|
|
763
|
+
-c,
|
|
764
764
|
// Back cover top
|
|
765
765
|
0,
|
|
766
766
|
n,
|
|
767
|
-
-
|
|
768
|
-
|
|
767
|
+
-a,
|
|
768
|
+
c,
|
|
769
769
|
n,
|
|
770
|
-
-
|
|
770
|
+
-a + c,
|
|
771
771
|
s,
|
|
772
772
|
n,
|
|
773
|
-
-
|
|
773
|
+
-a + c,
|
|
774
774
|
s,
|
|
775
775
|
n,
|
|
776
|
-
-
|
|
776
|
+
-a,
|
|
777
777
|
// Spine cover top
|
|
778
778
|
0,
|
|
779
779
|
n,
|
|
780
780
|
0,
|
|
781
|
-
|
|
781
|
+
c,
|
|
782
782
|
n,
|
|
783
|
-
-
|
|
784
|
-
|
|
783
|
+
-c,
|
|
784
|
+
c,
|
|
785
785
|
n,
|
|
786
|
-
-
|
|
786
|
+
-a + c,
|
|
787
787
|
0,
|
|
788
788
|
n,
|
|
789
|
-
-
|
|
789
|
+
-a,
|
|
790
790
|
// Front cover bottom
|
|
791
791
|
0,
|
|
792
792
|
0,
|
|
793
793
|
0,
|
|
794
|
-
|
|
794
|
+
c,
|
|
795
795
|
0,
|
|
796
|
-
-
|
|
796
|
+
-c,
|
|
797
797
|
s,
|
|
798
798
|
0,
|
|
799
|
-
-
|
|
799
|
+
-c,
|
|
800
800
|
s,
|
|
801
801
|
0,
|
|
802
802
|
0,
|
|
803
803
|
// Back cover bottom
|
|
804
804
|
0,
|
|
805
805
|
0,
|
|
806
|
-
-
|
|
806
|
+
-a,
|
|
807
807
|
s,
|
|
808
808
|
0,
|
|
809
|
-
-
|
|
809
|
+
-a,
|
|
810
810
|
s,
|
|
811
811
|
0,
|
|
812
|
-
-
|
|
813
|
-
|
|
812
|
+
-a + c,
|
|
813
|
+
c,
|
|
814
814
|
0,
|
|
815
|
-
-
|
|
815
|
+
-a + c,
|
|
816
816
|
// Spine cover bottom
|
|
817
817
|
0,
|
|
818
818
|
0,
|
|
819
819
|
0,
|
|
820
820
|
0,
|
|
821
821
|
0,
|
|
822
|
-
-
|
|
823
|
-
|
|
822
|
+
-a,
|
|
823
|
+
c,
|
|
824
824
|
0,
|
|
825
|
-
-
|
|
826
|
-
|
|
825
|
+
-a + c,
|
|
826
|
+
c,
|
|
827
827
|
0,
|
|
828
|
-
-
|
|
828
|
+
-c,
|
|
829
829
|
// Front cover edge
|
|
830
830
|
s,
|
|
831
831
|
0,
|
|
832
832
|
0,
|
|
833
833
|
s,
|
|
834
834
|
0,
|
|
835
|
-
-
|
|
835
|
+
-c,
|
|
836
836
|
s,
|
|
837
837
|
n,
|
|
838
|
-
-
|
|
838
|
+
-c,
|
|
839
839
|
s,
|
|
840
840
|
n,
|
|
841
841
|
0,
|
|
842
842
|
// Back cover edge
|
|
843
843
|
s,
|
|
844
844
|
0,
|
|
845
|
-
-
|
|
845
|
+
-a,
|
|
846
846
|
s,
|
|
847
847
|
n,
|
|
848
|
-
-
|
|
848
|
+
-a,
|
|
849
849
|
s,
|
|
850
850
|
n,
|
|
851
|
-
-
|
|
851
|
+
-a + c,
|
|
852
852
|
s,
|
|
853
853
|
0,
|
|
854
|
-
-
|
|
855
|
-
],
|
|
854
|
+
-a + c
|
|
855
|
+
], h = [
|
|
856
856
|
0,
|
|
857
857
|
0,
|
|
858
858
|
1,
|
|
@@ -1035,68 +1035,68 @@ class be extends b {
|
|
|
1035
1035
|
0,
|
|
1036
1036
|
0
|
|
1037
1037
|
// Back cover edge
|
|
1038
|
-
],
|
|
1039
|
-
|
|
1038
|
+
], d = e / (e * 2 + o), p = (e + o) / (e * 2 + o), x = [
|
|
1039
|
+
p,
|
|
1040
1040
|
0,
|
|
1041
1041
|
1,
|
|
1042
1042
|
0,
|
|
1043
1043
|
1,
|
|
1044
1044
|
1,
|
|
1045
|
-
|
|
1045
|
+
p,
|
|
1046
1046
|
1,
|
|
1047
1047
|
// Front cover
|
|
1048
1048
|
0,
|
|
1049
1049
|
0,
|
|
1050
|
-
|
|
1050
|
+
d,
|
|
1051
1051
|
0,
|
|
1052
|
-
|
|
1052
|
+
d,
|
|
1053
1053
|
1,
|
|
1054
1054
|
0,
|
|
1055
1055
|
1,
|
|
1056
1056
|
// Back cover
|
|
1057
|
-
p,
|
|
1058
|
-
0,
|
|
1059
1057
|
d,
|
|
1060
1058
|
0,
|
|
1061
|
-
|
|
1062
|
-
|
|
1059
|
+
p,
|
|
1060
|
+
0,
|
|
1063
1061
|
p,
|
|
1064
1062
|
1,
|
|
1063
|
+
d,
|
|
1064
|
+
1,
|
|
1065
1065
|
// Spine
|
|
1066
1066
|
1,
|
|
1067
1067
|
0,
|
|
1068
|
-
|
|
1068
|
+
p,
|
|
1069
1069
|
0,
|
|
1070
|
-
|
|
1070
|
+
p,
|
|
1071
1071
|
1,
|
|
1072
1072
|
1,
|
|
1073
1073
|
1,
|
|
1074
1074
|
// Inside front cover
|
|
1075
|
-
|
|
1075
|
+
d,
|
|
1076
1076
|
0,
|
|
1077
1077
|
0,
|
|
1078
1078
|
0,
|
|
1079
1079
|
0,
|
|
1080
1080
|
1,
|
|
1081
|
-
|
|
1081
|
+
d,
|
|
1082
1082
|
1,
|
|
1083
1083
|
// Inside back cover
|
|
1084
|
-
d,
|
|
1085
|
-
0,
|
|
1086
1084
|
p,
|
|
1087
1085
|
0,
|
|
1088
|
-
p,
|
|
1089
|
-
1,
|
|
1090
1086
|
d,
|
|
1087
|
+
0,
|
|
1088
|
+
d,
|
|
1089
|
+
1,
|
|
1090
|
+
p,
|
|
1091
1091
|
1,
|
|
1092
1092
|
// Inside spine
|
|
1093
|
-
|
|
1093
|
+
p,
|
|
1094
1094
|
0,
|
|
1095
1095
|
1,
|
|
1096
1096
|
0,
|
|
1097
1097
|
1,
|
|
1098
1098
|
1,
|
|
1099
|
-
|
|
1099
|
+
p,
|
|
1100
1100
|
1,
|
|
1101
1101
|
// Front cover top
|
|
1102
1102
|
0,
|
|
@@ -1261,75 +1261,109 @@ class be extends b {
|
|
|
1261
1261
|
54,
|
|
1262
1262
|
55
|
|
1263
1263
|
// Back cover edge
|
|
1264
|
-
],
|
|
1265
|
-
B.setAttribute("position", new Y(
|
|
1266
|
-
const E = new
|
|
1267
|
-
E.translate((e -
|
|
1264
|
+
], G = new Float32Array(u), I = new Float32Array(h), F = new Float32Array(x), V = new Uint16Array(y), B = new g();
|
|
1265
|
+
B.setAttribute("position", new Y(G, 3)), B.setAttribute("normal", new Y(I, 3)), B.setAttribute("uv", new Y(F, 2)), B.setIndex(new Y(V, 1));
|
|
1266
|
+
const E = new S(e - c - m, n - m * 2, a - c * 2);
|
|
1267
|
+
E.translate((e - c - m) / 2 + c, n / 2, -a / 2), this.copy(A([B, E], !0));
|
|
1268
1268
|
}
|
|
1269
1269
|
}
|
|
1270
|
-
class
|
|
1270
|
+
class Ae extends g {
|
|
1271
1271
|
constructor(e = 0.4, t = 1.2, o = 0.2) {
|
|
1272
1272
|
super();
|
|
1273
|
-
const r = t * 0.6,
|
|
1274
|
-
|
|
1275
|
-
const s = e * 1.5, n = new
|
|
1276
|
-
n.translate(0, r * 0.75, 0), this.copy(A([
|
|
1273
|
+
const r = t * 0.6, l = new S(e / 2, r, o);
|
|
1274
|
+
l.translate(0, r / 2, 0);
|
|
1275
|
+
const s = e * 1.5, n = new S(s, e / 4, o);
|
|
1276
|
+
n.translate(0, r * 0.75, 0), this.copy(A([l, n], !1)), this.computeVertexNormals();
|
|
1277
1277
|
}
|
|
1278
1278
|
}
|
|
1279
|
-
class
|
|
1279
|
+
class ke extends g {
|
|
1280
1280
|
constructor(e = 1.75, t = 0.75) {
|
|
1281
1281
|
super();
|
|
1282
|
-
const o = e * 0.05, r = e * 0.15,
|
|
1282
|
+
const o = e * 0.05, r = e * 0.15, l = e * 0.15, s = e * 0.75;
|
|
1283
1283
|
let n = 0;
|
|
1284
|
-
const
|
|
1285
|
-
|
|
1286
|
-
const
|
|
1287
|
-
|
|
1288
|
-
const m = new
|
|
1289
|
-
m.translate(0, n +
|
|
1290
|
-
const u = new
|
|
1284
|
+
const a = new S(t, o, t);
|
|
1285
|
+
a.translate(0, n + o / 2, 0), n += o;
|
|
1286
|
+
const c = new S(t * 0.8, r, t * 0.8);
|
|
1287
|
+
c.translate(0, n + r / 2, 0), n += r;
|
|
1288
|
+
const m = new S(t * 0.6, l, t * 0.6);
|
|
1289
|
+
m.translate(0, n + l / 2, 0), n += l;
|
|
1290
|
+
const u = new S(t * 0.4, s, t * 0.4);
|
|
1291
1291
|
u.translate(0, n + s / 2, 0), n += s;
|
|
1292
|
-
const
|
|
1293
|
-
|
|
1292
|
+
const h = new z(t * 0.4 / Math.sqrt(2), 0.1, 4, 1, !1, Math.PI / 4);
|
|
1293
|
+
h.translate(0, n + 0.1 / 2, 0), this.copy(A([a, c, m, u, h], !1)), this.computeVertexNormals();
|
|
1294
1294
|
}
|
|
1295
1295
|
}
|
|
1296
|
-
class
|
|
1296
|
+
class Te extends g {
|
|
1297
1297
|
constructor(e = 0.6, t = 1, o = 0.2, r = 0.6) {
|
|
1298
1298
|
super();
|
|
1299
|
-
const
|
|
1300
|
-
s.translate(0,
|
|
1299
|
+
const l = t - r / 2, s = new S(e, l, o);
|
|
1300
|
+
s.translate(0, l / 2, 0);
|
|
1301
1301
|
const n = new v(r / 2, r / 2, o, 16, 1, !1, 0, Math.PI);
|
|
1302
|
-
n.rotateY(Math.PI / 2), n.rotateX(Math.PI / 2), n.translate(0,
|
|
1302
|
+
n.rotateY(Math.PI / 2), n.rotateX(Math.PI / 2), n.translate(0, l, 0), this.copy(A([s, n], !1)), this.computeVertexNormals();
|
|
1303
1303
|
}
|
|
1304
1304
|
}
|
|
1305
|
-
class
|
|
1305
|
+
class Be extends g {
|
|
1306
1306
|
constructor(e = 0.5, t = 0.8, o = 0.15) {
|
|
1307
1307
|
super();
|
|
1308
|
-
const r = new
|
|
1308
|
+
const r = new S(e, t, o);
|
|
1309
1309
|
r.translate(0, t / 2, 0), this.copy(r);
|
|
1310
1310
|
}
|
|
1311
1311
|
}
|
|
1312
|
-
class
|
|
1313
|
-
constructor(e = 2.25) {
|
|
1312
|
+
class Ee extends g {
|
|
1313
|
+
constructor({ height: e = 2.25 } = {}) {
|
|
1314
1314
|
super();
|
|
1315
|
-
const t = new
|
|
1315
|
+
const t = new S(1.2, 0.5, 1.2);
|
|
1316
1316
|
t.translate(0, 0.25, 0);
|
|
1317
|
-
const o = new
|
|
1317
|
+
const o = new S(1, e, 1);
|
|
1318
1318
|
o.translate(0, 0.5 + e / 2, 0);
|
|
1319
|
-
const r = new
|
|
1319
|
+
const r = new S(1.4, 0.3, 1.4);
|
|
1320
1320
|
r.translate(0, 0.5 + e + 0.15, 0), this.copy(A([t, o, r], !1));
|
|
1321
1321
|
}
|
|
1322
1322
|
}
|
|
1323
|
-
class
|
|
1324
|
-
constructor(
|
|
1323
|
+
class re extends g {
|
|
1324
|
+
constructor({
|
|
1325
|
+
barHeight: e = 2,
|
|
1326
|
+
//
|
|
1327
|
+
barRadius: t = 0.05,
|
|
1328
|
+
spikeHeight: o = 0.3,
|
|
1329
|
+
spikeRadius: r = 0.075,
|
|
1330
|
+
spikeScaleZ: l = 1,
|
|
1331
|
+
radialSegments: s = 8
|
|
1332
|
+
} = {}) {
|
|
1325
1333
|
super();
|
|
1326
|
-
const
|
|
1327
|
-
|
|
1328
|
-
const
|
|
1329
|
-
|
|
1334
|
+
const n = new v(t, t, e, s);
|
|
1335
|
+
n.translate(0, e / 2, 0);
|
|
1336
|
+
const a = new z(r, o, s);
|
|
1337
|
+
a.translate(0, e + o / 2, 0), a.scale(1, 1, l), this.copy(A([n, a], !1));
|
|
1330
1338
|
}
|
|
1331
1339
|
}
|
|
1332
|
-
class
|
|
1340
|
+
class Ce extends g {
|
|
1341
|
+
constructor({
|
|
1342
|
+
count: e = 20,
|
|
1343
|
+
//
|
|
1344
|
+
spacing: t = 0.4,
|
|
1345
|
+
barHeight: o = 2,
|
|
1346
|
+
barRadius: r = 0.05,
|
|
1347
|
+
spikeHeight: l = 0.3,
|
|
1348
|
+
spikeRadius: s = 0.075,
|
|
1349
|
+
spikeScaleZ: n = 1,
|
|
1350
|
+
railHeight: a = 0.1,
|
|
1351
|
+
railDepth: c = 0.05,
|
|
1352
|
+
railOffset: m = 0
|
|
1353
|
+
} = {}) {
|
|
1354
|
+
super();
|
|
1355
|
+
const u = [], h = new re({ barHeight: o, barRadius: r, spikeHeight: l, spikeRadius: s, spikeScaleZ: n }), d = new S(e * t, a, c);
|
|
1356
|
+
for (let y = 0; y < e; y++) {
|
|
1357
|
+
const G = h.clone();
|
|
1358
|
+
G.translate(y * t, 0, 0), u.push(G);
|
|
1359
|
+
}
|
|
1360
|
+
const p = d.clone();
|
|
1361
|
+
p.translate(t * (e - 1) / 2, o - m - a / 2, 0), u.push(p);
|
|
1362
|
+
const x = d.clone();
|
|
1363
|
+
x.translate(t * (e - 1) / 2, a / 2, 0), u.push(x), this.copy(A(u));
|
|
1364
|
+
}
|
|
1365
|
+
}
|
|
1366
|
+
class ht extends g {
|
|
1333
1367
|
constructor(e = 0.1) {
|
|
1334
1368
|
super();
|
|
1335
1369
|
const t = [], o = [], r = [
|
|
@@ -1351,111 +1385,140 @@ class rt extends b {
|
|
|
1351
1385
|
// Left upper middle
|
|
1352
1386
|
];
|
|
1353
1387
|
for (let s = 0; s < r.length; s++) {
|
|
1354
|
-
const [n,
|
|
1355
|
-
t.push(n * e,
|
|
1388
|
+
const [n, a] = r[s];
|
|
1389
|
+
t.push(n * e, a * e, 0);
|
|
1356
1390
|
}
|
|
1357
1391
|
for (let s = 1; s < r.length - 1; s++)
|
|
1358
1392
|
o.push(0, s, s + 1);
|
|
1359
1393
|
o.push(0, r.length - 1, 1);
|
|
1360
|
-
const
|
|
1361
|
-
this.setAttribute("position",
|
|
1394
|
+
const l = new U(t, 3);
|
|
1395
|
+
this.setAttribute("position", l), this.setIndex(o), this.computeVertexNormals();
|
|
1362
1396
|
}
|
|
1363
1397
|
}
|
|
1364
|
-
function
|
|
1365
|
-
|
|
1366
|
-
const r =
|
|
1367
|
-
for (let
|
|
1368
|
-
const s = new M().fromBufferAttribute(r,
|
|
1369
|
-
s.add(
|
|
1398
|
+
function Ne(i, e = N.XYZ, t = 0.5, o = 2) {
|
|
1399
|
+
i.deleteAttribute("uv"), i.deleteAttribute("normal"), i = Se(i), i.computeVertexNormals();
|
|
1400
|
+
const r = i.getAttribute("position");
|
|
1401
|
+
for (let l = 0; l < r.count; l++) {
|
|
1402
|
+
const s = new M().fromBufferAttribute(r, l), n = Math.random() * (o - t) + t, a = e.clone().multiplyScalar(n);
|
|
1403
|
+
s.add(a), r.setXYZ(l, s.x, s.y, s.z);
|
|
1370
1404
|
}
|
|
1371
|
-
return r.needsUpdate = !0,
|
|
1405
|
+
return r.needsUpdate = !0, i.computeVertexNormals(), i;
|
|
1372
1406
|
}
|
|
1373
|
-
class
|
|
1407
|
+
class Fe extends g {
|
|
1374
1408
|
constructor(e = 1, t = 4, o = 4) {
|
|
1375
1409
|
super();
|
|
1376
1410
|
const r = new T(e, t, o);
|
|
1377
|
-
this.copy(
|
|
1411
|
+
this.copy(Ne(r, N.XYZ, 0.5, 1)), this.computeVertexNormals(), this.center();
|
|
1378
1412
|
}
|
|
1379
1413
|
}
|
|
1380
|
-
class
|
|
1414
|
+
class ft extends g {
|
|
1381
1415
|
constructor(e = 0.1, t = 0.1, o = 0.4, r = 8) {
|
|
1382
1416
|
super();
|
|
1383
|
-
const
|
|
1384
|
-
|
|
1385
|
-
const s = new T(e, r, r), n = s.clone(),
|
|
1386
|
-
n.translate(0, o / 2 + e * 0.6, -e * 0.6),
|
|
1417
|
+
const l = new v(e * 0.6, t * 0.6, o, r);
|
|
1418
|
+
l.translate(0, 0, 0);
|
|
1419
|
+
const s = new T(e, r, r), n = s.clone(), a = s.clone(), c = s.clone(), m = s.clone();
|
|
1420
|
+
n.translate(0, o / 2 + e * 0.6, -e * 0.6), a.translate(0, o / 2 + e * 0.6, e * 0.6), c.translate(0, -o / 2 - t * 0.6, -t * 0.6), m.translate(0, -o / 2 - t * 0.6, t * 0.6), this.copy(A([l, n, a, c, m], !1));
|
|
1387
1421
|
}
|
|
1388
1422
|
}
|
|
1389
|
-
class
|
|
1423
|
+
class Ue extends g {
|
|
1390
1424
|
constructor() {
|
|
1391
1425
|
super();
|
|
1392
1426
|
const e = new T(1, 16, 16), t = new v(0.2, 0.2, 2, 16, 1, !0);
|
|
1393
1427
|
t.translate(0, 1.5, 0), t.rotateX(Math.PI / 2), this.copy(A([e, t], !1));
|
|
1394
1428
|
}
|
|
1395
1429
|
}
|
|
1396
|
-
class
|
|
1430
|
+
class ze extends g {
|
|
1397
1431
|
constructor() {
|
|
1398
1432
|
super();
|
|
1399
1433
|
const e = [
|
|
1400
|
-
new
|
|
1434
|
+
new P(1, 0),
|
|
1401
1435
|
// Bottom of the bowl
|
|
1402
|
-
new
|
|
1436
|
+
new P(1.2, 0.5),
|
|
1403
1437
|
// Slight flare at the base
|
|
1404
|
-
new
|
|
1438
|
+
new P(1.4, 1.5),
|
|
1405
1439
|
// Outer wall
|
|
1406
|
-
new
|
|
1440
|
+
new P(1.3, 1.8),
|
|
1407
1441
|
// Flared edge
|
|
1408
|
-
new
|
|
1442
|
+
new P(0.8, 1.8)
|
|
1409
1443
|
// Lip of the bowl
|
|
1410
|
-
], t = new Z(e, 12), o = new
|
|
1444
|
+
], t = new Z(e, 12), o = new me(1, 12);
|
|
1411
1445
|
o.rotateX(-Math.PI / 2), o.translate(0, 0, 0), this.copy(A([t, o], !1));
|
|
1412
1446
|
}
|
|
1413
1447
|
}
|
|
1414
|
-
class
|
|
1415
|
-
constructor(e = 0.2, t = 0.2, o = 3, r = 32,
|
|
1448
|
+
class H extends g {
|
|
1449
|
+
constructor(e = 0.2, t = 0.2, o = 3, r = 32, l = !0) {
|
|
1416
1450
|
super();
|
|
1417
|
-
const s = new v(e, t, o, r, 1,
|
|
1451
|
+
const s = new v(e, t, o, r, 1, l), n = new T(t, r, r / 2, 0, Math.PI * 2, Math.PI / 2, Math.PI / 2);
|
|
1418
1452
|
n.translate(0, -(o / 2), 0), this.copy(A([s, n], !1));
|
|
1419
1453
|
}
|
|
1420
1454
|
}
|
|
1421
|
-
class
|
|
1422
|
-
constructor({ radius: e = 0.5, neckRadius: t = 0.2, height: o = 3, neckHeight: r = 1, segments:
|
|
1455
|
+
class _e extends g {
|
|
1456
|
+
constructor({ radius: e = 0.5, neckRadius: t = 0.2, height: o = 3, neckHeight: r = 1, segments: l = 16 } = {}) {
|
|
1423
1457
|
super();
|
|
1424
|
-
const s = o - r, n = new v(e, e, s,
|
|
1458
|
+
const s = o - r, n = new v(e, e, s, l);
|
|
1425
1459
|
n.translate(0, s / 2, 0);
|
|
1426
|
-
const
|
|
1427
|
-
|
|
1428
|
-
const m = new v(t, t, r,
|
|
1429
|
-
m.translate(0, s +
|
|
1460
|
+
const a = 0.3, c = new v(t, e, a, l);
|
|
1461
|
+
c.translate(0, s + a / 2, 0);
|
|
1462
|
+
const m = new v(t, t, r, l);
|
|
1463
|
+
m.translate(0, s + a + r / 2, 0), this.copy(A([n, c, m], !1));
|
|
1464
|
+
}
|
|
1465
|
+
}
|
|
1466
|
+
class Le extends g {
|
|
1467
|
+
constructor({
|
|
1468
|
+
radius: e = 3,
|
|
1469
|
+
//
|
|
1470
|
+
height: t = 0.6,
|
|
1471
|
+
widthSegments: o = 64,
|
|
1472
|
+
heightSegments: r = 16,
|
|
1473
|
+
phiStart: l = 0,
|
|
1474
|
+
phiLength: s = Math.PI * 2
|
|
1475
|
+
} = {}) {
|
|
1476
|
+
super(), this.copy(new T(e, o, r, l, s, 0, Math.PI / 2)), this.scale(1, t / e, 1);
|
|
1477
|
+
}
|
|
1478
|
+
}
|
|
1479
|
+
const pt = (i, e) => i / (1 - Math.cos(e)), ae = (i, e) => i / (2 * Math.sin(e)), qe = (i, e) => i * (1 - Math.cos(e)), dt = (i, e) => 2 * i * Math.sin(e);
|
|
1480
|
+
class Oe extends g {
|
|
1481
|
+
constructor({
|
|
1482
|
+
radius: e = ae(5, Math.PI / 10),
|
|
1483
|
+
//
|
|
1484
|
+
widthSegments: t = 64,
|
|
1485
|
+
heightSegments: o = 32,
|
|
1486
|
+
phiStart: r = 0,
|
|
1487
|
+
phiLength: l = Math.PI * 2,
|
|
1488
|
+
thetaLength: s = Math.PI / 10
|
|
1489
|
+
} = {}) {
|
|
1490
|
+
super(), this.copy(new T(e, t, o, r, l, 0, s));
|
|
1491
|
+
const n = qe(e, s);
|
|
1492
|
+
this.translate(0, -e + n, 0);
|
|
1430
1493
|
}
|
|
1431
1494
|
}
|
|
1432
|
-
class
|
|
1495
|
+
class Ve extends g {
|
|
1433
1496
|
constructor({
|
|
1434
1497
|
trunkRadiusTop: e = 0.25,
|
|
1435
1498
|
trunkRadiusBottom: t = 0.4,
|
|
1436
1499
|
trunkHeight: o = 2.5,
|
|
1437
1500
|
trunkSegments: r = 14,
|
|
1438
|
-
leafSize:
|
|
1501
|
+
leafSize: l = 0.8,
|
|
1439
1502
|
leafCount: s = 6,
|
|
1440
1503
|
leafDetail: n = 0,
|
|
1441
|
-
leafSpreadRadius:
|
|
1504
|
+
leafSpreadRadius: a = 1.5
|
|
1442
1505
|
} = {}) {
|
|
1443
1506
|
super();
|
|
1444
|
-
const
|
|
1445
|
-
|
|
1507
|
+
const c = new v(e, t, o, r);
|
|
1508
|
+
c.translate(0, o / 2, 0);
|
|
1446
1509
|
const m = [];
|
|
1447
1510
|
for (let u = 0; u < s; u++) {
|
|
1448
|
-
const
|
|
1449
|
-
|
|
1450
|
-
(Math.random() - 0.5) *
|
|
1451
|
-
(Math.random() - 0.5) *
|
|
1452
|
-
(Math.random() - 0.5) *
|
|
1453
|
-
), m.push(
|
|
1511
|
+
const h = new Q(l, n);
|
|
1512
|
+
h.translate(
|
|
1513
|
+
(Math.random() - 0.5) * a,
|
|
1514
|
+
(Math.random() - 0.5) * l + o,
|
|
1515
|
+
(Math.random() - 0.5) * a
|
|
1516
|
+
), m.push(h);
|
|
1454
1517
|
}
|
|
1455
|
-
this.copy(A([
|
|
1518
|
+
this.copy(A([c.toNonIndexed(), A(m, !1)], !0)), this.computeVertexNormals();
|
|
1456
1519
|
}
|
|
1457
1520
|
}
|
|
1458
|
-
class
|
|
1521
|
+
class wt extends b {
|
|
1459
1522
|
constructor() {
|
|
1460
1523
|
super();
|
|
1461
1524
|
const e = new T(5, 32, 32), t = new j({
|
|
@@ -1501,103 +1564,156 @@ class it extends S {
|
|
|
1501
1564
|
gl_FragColor = vec4(color, 1.0);
|
|
1502
1565
|
}
|
|
1503
1566
|
`
|
|
1504
|
-
}), o = new
|
|
1567
|
+
}), o = new f(e, t);
|
|
1505
1568
|
this.add(o);
|
|
1506
1569
|
}
|
|
1507
1570
|
}
|
|
1508
|
-
class
|
|
1571
|
+
class yt extends f {
|
|
1509
1572
|
constructor({
|
|
1510
1573
|
width: e = 1,
|
|
1511
1574
|
height: t = 1.5,
|
|
1512
1575
|
depth: o = 0.5,
|
|
1513
1576
|
coverThickness: r = 0.05,
|
|
1514
|
-
pageIndent:
|
|
1577
|
+
pageIndent: l = 0.05,
|
|
1515
1578
|
coverColor: s = 9109504,
|
|
1516
1579
|
pageColor: n = 16777215
|
|
1517
1580
|
} = {}) {
|
|
1518
|
-
super(), this.geometry = new
|
|
1581
|
+
super(), this.geometry = new Pe(e, t, o, r, l), this.material = [
|
|
1519
1582
|
new w({ color: s, metalness: 0.1, roughness: 0.7, flatShading: !0 }),
|
|
1520
1583
|
new w({ color: n, flatShading: !0 })
|
|
1521
1584
|
];
|
|
1522
1585
|
}
|
|
1523
1586
|
}
|
|
1524
|
-
class
|
|
1587
|
+
class xt extends f {
|
|
1525
1588
|
constructor(e = 0.4, t = 1.2, o = 0.2) {
|
|
1526
|
-
super(), this.geometry = new
|
|
1589
|
+
super(), this.geometry = new Ae(e, t, o), this.material = new w({ color: 7829367, roughness: 0.8 });
|
|
1527
1590
|
}
|
|
1528
1591
|
}
|
|
1529
|
-
class
|
|
1592
|
+
class Mt extends b {
|
|
1530
1593
|
constructor() {
|
|
1531
1594
|
super();
|
|
1532
|
-
const e = new
|
|
1595
|
+
const e = new S(5, 1, 5), t = new w({ color: 8421504, flatShading: !0 }), o = new f(e, t);
|
|
1533
1596
|
o.position.set(0, 0.5, 0), this.add(o);
|
|
1534
|
-
const r = new
|
|
1597
|
+
const r = new S(4, 3, 4), l = new w({ color: 6908265, flatShading: !0 }), s = new f(r, l);
|
|
1535
1598
|
s.position.set(0, 2.5, 0), this.add(s);
|
|
1536
|
-
const n = new z(3.5, 2, 4),
|
|
1537
|
-
|
|
1599
|
+
const n = new z(3.5, 2, 4), a = new w({ color: 5263440, flatShading: !0 }), c = new f(n, a);
|
|
1600
|
+
c.rotation.y = Math.PI / 4, c.position.set(0, 5, 0), this.add(c);
|
|
1538
1601
|
const m = new v(0.2, 0.2, 3.5, 16), u = new w({ color: 6908265, flatShading: !0 });
|
|
1539
1602
|
[
|
|
1540
1603
|
[-1.8, 2.3, -2.2],
|
|
1541
1604
|
[1.8, 2.3, -2.2],
|
|
1542
1605
|
[-1.8, 2.3, 2.2],
|
|
1543
1606
|
[1.8, 2.3, 2.2]
|
|
1544
|
-
].forEach((
|
|
1545
|
-
const F = new
|
|
1546
|
-
F.position.set(...
|
|
1607
|
+
].forEach((I) => {
|
|
1608
|
+
const F = new f(m, u);
|
|
1609
|
+
F.position.set(...I), this.add(F);
|
|
1547
1610
|
});
|
|
1548
|
-
const
|
|
1549
|
-
|
|
1550
|
-
const
|
|
1611
|
+
const d = new _();
|
|
1612
|
+
d.moveTo(-1, 0), d.lineTo(-1, 2), d.absarc(0, 2, 1, Math.PI, 0, !0), d.lineTo(1, 0);
|
|
1613
|
+
const p = {
|
|
1551
1614
|
depth: 0.5,
|
|
1552
1615
|
bevelEnabled: !1
|
|
1553
|
-
}, x = new L(
|
|
1554
|
-
|
|
1616
|
+
}, x = new L(d, p), y = new w({ color: 4210752, flatShading: !0 }), G = new f(x, y);
|
|
1617
|
+
G.position.set(0, 0.5, 1.7), this.add(G);
|
|
1555
1618
|
}
|
|
1556
1619
|
}
|
|
1557
|
-
class
|
|
1620
|
+
class vt extends f {
|
|
1558
1621
|
constructor(e = 1.75, t = 0.75) {
|
|
1559
|
-
super(), this.geometry = new
|
|
1622
|
+
super(), this.geometry = new ke(e, t), this.material = new w({ color: 7829367, roughness: 0.8 });
|
|
1560
1623
|
}
|
|
1561
1624
|
}
|
|
1562
|
-
class
|
|
1625
|
+
class gt extends f {
|
|
1563
1626
|
constructor(e = 0.6, t = 1, o = 0.2, r = 0.6) {
|
|
1564
|
-
super(), this.geometry = new
|
|
1627
|
+
super(), this.geometry = new Te(e, t, o, r), this.material = new w({ color: 7829367, roughness: 0.8 });
|
|
1565
1628
|
}
|
|
1566
1629
|
}
|
|
1567
|
-
class
|
|
1630
|
+
class St extends f {
|
|
1568
1631
|
constructor(e = 0.5, t = 0.8, o = 0.15) {
|
|
1569
|
-
super(), this.geometry = new
|
|
1632
|
+
super(), this.geometry = new Be(e, t, o), this.material = new w({ color: 7829367, roughness: 0.8 });
|
|
1633
|
+
}
|
|
1634
|
+
}
|
|
1635
|
+
class bt extends f {
|
|
1636
|
+
constructor({ height: e = 2.25 } = {}) {
|
|
1637
|
+
super(), this.geometry = new Ee({ height: e }), this.material = new w({ color: 9141627, flatShading: !0 });
|
|
1638
|
+
}
|
|
1639
|
+
}
|
|
1640
|
+
class Gt extends f {
|
|
1641
|
+
constructor({
|
|
1642
|
+
barHeight: e = 2,
|
|
1643
|
+
//
|
|
1644
|
+
barRadius: t = 0.05,
|
|
1645
|
+
spikeHeight: o = 0.3,
|
|
1646
|
+
spikeRadius: r = 0.075,
|
|
1647
|
+
spikeScaleZ: l = 1,
|
|
1648
|
+
radialSegments: s = 8
|
|
1649
|
+
} = {}) {
|
|
1650
|
+
super(), this.geometry = new re({
|
|
1651
|
+
barHeight: e,
|
|
1652
|
+
barRadius: t,
|
|
1653
|
+
spikeHeight: o,
|
|
1654
|
+
spikeRadius: r,
|
|
1655
|
+
spikeScaleZ: l,
|
|
1656
|
+
radialSegments: s
|
|
1657
|
+
}), this.material = new w({ color: 3355443, metalness: 0.8, roughness: 0.4 });
|
|
1570
1658
|
}
|
|
1571
1659
|
}
|
|
1572
|
-
class
|
|
1660
|
+
class It extends f {
|
|
1661
|
+
constructor({
|
|
1662
|
+
count: e = 20,
|
|
1663
|
+
//
|
|
1664
|
+
spacing: t = 0.4,
|
|
1665
|
+
barHeight: o = 2,
|
|
1666
|
+
barRadius: r = 0.05,
|
|
1667
|
+
spikeHeight: l = 0.3,
|
|
1668
|
+
spikeRadius: s = 0.075,
|
|
1669
|
+
spikeScaleZ: n = 1,
|
|
1670
|
+
railHeight: a = 0.1,
|
|
1671
|
+
railDepth: c = 0.05,
|
|
1672
|
+
railOffset: m = 0
|
|
1673
|
+
} = {}) {
|
|
1674
|
+
super(), this.geometry = new Ce({
|
|
1675
|
+
count: e,
|
|
1676
|
+
spacing: t,
|
|
1677
|
+
barHeight: o,
|
|
1678
|
+
barRadius: r,
|
|
1679
|
+
spikeHeight: l,
|
|
1680
|
+
spikeRadius: s,
|
|
1681
|
+
spikeScaleZ: n,
|
|
1682
|
+
railHeight: a,
|
|
1683
|
+
railDepth: c,
|
|
1684
|
+
railOffset: m
|
|
1685
|
+
}), this.material = new w({ color: 3355443, metalness: 0.8, roughness: 0.4 });
|
|
1686
|
+
}
|
|
1687
|
+
}
|
|
1688
|
+
class Pt extends b {
|
|
1573
1689
|
constructor() {
|
|
1574
1690
|
super();
|
|
1575
|
-
const e = new
|
|
1691
|
+
const e = new S(5, 0.3, 3), t = new w({ color: 9132587 }), o = new f(e, t);
|
|
1576
1692
|
o.position.set(0, 3.15, 0);
|
|
1577
1693
|
const r = [];
|
|
1578
|
-
r.push(new
|
|
1579
|
-
const
|
|
1694
|
+
r.push(new P(0.2, 0)), r.push(new P(0.25, 0.5)), r.push(new P(0.15, 1.5)), r.push(new P(0.3, 3));
|
|
1695
|
+
const l = new Z(r, 32), s = new w({ color: 4929057 });
|
|
1580
1696
|
[
|
|
1581
1697
|
[2.2, 0, 1.2],
|
|
1582
1698
|
// Adjust Y to 0 so legs start at ground level
|
|
1583
1699
|
[-2.2, 0, 1.2],
|
|
1584
1700
|
[2.2, 0, -1.2],
|
|
1585
1701
|
[-2.2, 0, -1.2]
|
|
1586
|
-
].forEach((
|
|
1587
|
-
const
|
|
1588
|
-
|
|
1702
|
+
].forEach((a) => {
|
|
1703
|
+
const c = new f(l, s);
|
|
1704
|
+
c.position.set(...a), this.add(c);
|
|
1589
1705
|
}), this.add(o);
|
|
1590
1706
|
}
|
|
1591
1707
|
}
|
|
1592
|
-
class
|
|
1708
|
+
class At extends b {
|
|
1593
1709
|
constructor(e = 1, t = 0.2) {
|
|
1594
1710
|
super(), this.height = e, this.radius = t, this.createCandle(), this.animateFlicker();
|
|
1595
1711
|
}
|
|
1596
1712
|
createCandle() {
|
|
1597
1713
|
const e = new v(this.radius, this.radius, this.height, 32), t = new w({ color: 16777215 });
|
|
1598
|
-
this.candle = new
|
|
1599
|
-
const o = new T(0.05, 16, 16), r = new
|
|
1600
|
-
this.flame = new
|
|
1714
|
+
this.candle = new f(e, t), this.candle.position.set(0, this.height / 2, 0), this.add(this.candle);
|
|
1715
|
+
const o = new T(0.05, 16, 16), r = new ue({ color: 16753920 });
|
|
1716
|
+
this.flame = new f(o, r), this.flame.position.set(0, this.height + 0.05, 0), this.add(this.flame), this.candleLight = new oe(16753920, 1, 5), this.candleLight.position.set(0, this.height + 0.05, 0), this.candleLight.castShadow = !0, this.add(this.candleLight);
|
|
1601
1717
|
}
|
|
1602
1718
|
animateFlicker() {
|
|
1603
1719
|
const e = () => {
|
|
@@ -1606,52 +1722,52 @@ class wt extends S {
|
|
|
1606
1722
|
e();
|
|
1607
1723
|
}
|
|
1608
1724
|
}
|
|
1609
|
-
class
|
|
1725
|
+
class kt extends b {
|
|
1610
1726
|
constructor(e = 1.3, t = 0.5) {
|
|
1611
1727
|
super();
|
|
1612
|
-
const o = new v(t, t, 0.2, 16), r = new w({ color: 9127187, flatShading: !0 }),
|
|
1613
|
-
|
|
1614
|
-
const s = new v(t * 0.9, t * 0.9, e), n = new w({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }),
|
|
1615
|
-
|
|
1616
|
-
const
|
|
1728
|
+
const o = new v(t, t, 0.2, 16), r = new w({ color: 9127187, flatShading: !0 }), l = new f(o, r);
|
|
1729
|
+
l.position.set(0, 0, 0), this.add(l);
|
|
1730
|
+
const s = new v(t * 0.9, t * 0.9, e), n = new w({ color: 16766720, flatShading: !0, transparent: !0, opacity: 0.6 }), a = new f(s, n);
|
|
1731
|
+
a.position.set(0, e / 2 + 0.1, 0), this.add(a);
|
|
1732
|
+
const c = new z(t * 1.1, 0.5, 8), m = new w({ color: 9127187, flatShading: !0 }), u = new f(c, m);
|
|
1617
1733
|
u.position.set(0, e + 0.35, 0), this.add(u);
|
|
1618
|
-
const
|
|
1619
|
-
|
|
1734
|
+
const h = new se(t * 0.8, 0.05, 8, 16), d = new w({ color: 9127187, flatShading: !0 }), p = new f(h, d);
|
|
1735
|
+
p.position.set(0, e + 0.85, 0), this.add(p);
|
|
1620
1736
|
const x = new oe(16755200, 1.5, 15);
|
|
1621
1737
|
x.position.set(0, e / 2 + 0.1, 0), x.castShadow = !0, this.add(x);
|
|
1622
1738
|
}
|
|
1623
1739
|
}
|
|
1624
|
-
class
|
|
1740
|
+
class Tt extends b {
|
|
1625
1741
|
constructor() {
|
|
1626
1742
|
super();
|
|
1627
1743
|
const e = new Q(1, 0), t = new w({ color: 8421504, flatShading: !0 }), o = new w({ color: 4950843, flatShading: !0, opacity: 0.8, transparent: !0 });
|
|
1628
1744
|
for (let r = 0; r < 5; r++) {
|
|
1629
|
-
const
|
|
1630
|
-
|
|
1631
|
-
const s = new
|
|
1632
|
-
s.scale.set(
|
|
1745
|
+
const l = new f(e, t);
|
|
1746
|
+
l.scale.set(0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4, 0.8 + Math.random() * 0.4), l.rotation.set(Math.random() * Math.PI, Math.random() * Math.PI, Math.random() * Math.PI), l.position.set((Math.random() - 0.5) * 4, 0, (Math.random() - 0.5) * 4), this.add(l);
|
|
1747
|
+
const s = new f(e, o);
|
|
1748
|
+
s.scale.set(l.scale.x * 0.9, l.scale.y * 0.5, l.scale.z * 0.9), s.rotation.copy(l.rotation), s.position.copy(l.position), s.position.y += 0.3, this.add(s);
|
|
1633
1749
|
}
|
|
1634
1750
|
}
|
|
1635
1751
|
}
|
|
1636
|
-
class
|
|
1752
|
+
class Bt extends f {
|
|
1637
1753
|
constructor(e = 1, t = 4, o = 4) {
|
|
1638
|
-
super(), this.geometry = new
|
|
1754
|
+
super(), this.geometry = new Fe(e, t, o), this.material = new w({ color: 8421504, flatShading: !0 });
|
|
1639
1755
|
}
|
|
1640
1756
|
}
|
|
1641
|
-
class
|
|
1757
|
+
class Et extends b {
|
|
1642
1758
|
constructor() {
|
|
1643
1759
|
super();
|
|
1644
1760
|
const e = new Q(1, 0), t = new w({ color: 8421504, flatShading: !0 });
|
|
1645
1761
|
for (let o = 0; o < 5; o++) {
|
|
1646
|
-
const r = new
|
|
1762
|
+
const r = new f(e, t);
|
|
1647
1763
|
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);
|
|
1648
1764
|
}
|
|
1649
1765
|
}
|
|
1650
1766
|
}
|
|
1651
|
-
class
|
|
1767
|
+
class Ct extends b {
|
|
1652
1768
|
constructor() {
|
|
1653
1769
|
super();
|
|
1654
|
-
const e = new
|
|
1770
|
+
const e = new Ue(), t = new K({
|
|
1655
1771
|
color: 8965375,
|
|
1656
1772
|
transparent: !0,
|
|
1657
1773
|
opacity: 0.4,
|
|
@@ -1660,23 +1776,23 @@ class gt extends S {
|
|
|
1660
1776
|
reflectivity: 0.8,
|
|
1661
1777
|
transmission: 0.9,
|
|
1662
1778
|
side: q
|
|
1663
|
-
}), o = new
|
|
1779
|
+
}), o = new f(e, t);
|
|
1664
1780
|
o.rotation.x = -Math.PI / 2, this.add(o);
|
|
1665
1781
|
}
|
|
1666
1782
|
}
|
|
1667
|
-
class
|
|
1783
|
+
class Nt extends b {
|
|
1668
1784
|
constructor() {
|
|
1669
1785
|
super();
|
|
1670
1786
|
const e = [
|
|
1671
|
-
new
|
|
1787
|
+
new P(0, 0),
|
|
1672
1788
|
// Bottom
|
|
1673
|
-
new
|
|
1789
|
+
new P(0.8, 0),
|
|
1674
1790
|
// Base
|
|
1675
|
-
new
|
|
1791
|
+
new P(1, 1.5),
|
|
1676
1792
|
// Rounded body
|
|
1677
|
-
new
|
|
1793
|
+
new P(0.5, 2.2),
|
|
1678
1794
|
// Neck
|
|
1679
|
-
new
|
|
1795
|
+
new P(0.6, 2.5)
|
|
1680
1796
|
// Mouth
|
|
1681
1797
|
], t = new Z(e, 10), o = new v(0.3, 0.4, 0.2, 8), r = new w({
|
|
1682
1798
|
color: 8965375,
|
|
@@ -1684,7 +1800,7 @@ class St extends S {
|
|
|
1684
1800
|
opacity: 0.5,
|
|
1685
1801
|
roughness: 0.1,
|
|
1686
1802
|
metalness: 0.3
|
|
1687
|
-
}),
|
|
1803
|
+
}), l = new w({
|
|
1688
1804
|
color: 16724838,
|
|
1689
1805
|
// Vibrant potion color
|
|
1690
1806
|
transparent: !0,
|
|
@@ -1692,87 +1808,87 @@ class St extends S {
|
|
|
1692
1808
|
}), s = new w({
|
|
1693
1809
|
color: 9127187,
|
|
1694
1810
|
roughness: 1
|
|
1695
|
-
}), n = new
|
|
1696
|
-
|
|
1697
|
-
const m = new
|
|
1698
|
-
m.add(n,
|
|
1811
|
+
}), n = new f(t, r), a = new f(t, l), c = new f(o, s);
|
|
1812
|
+
a.scale.set(0.8, 0.8, 0.8), a.position.y = 0.1, c.position.y = 2.5;
|
|
1813
|
+
const m = new b();
|
|
1814
|
+
m.add(n, a, c), this.add(m);
|
|
1699
1815
|
}
|
|
1700
1816
|
}
|
|
1701
|
-
class
|
|
1817
|
+
class Ft extends b {
|
|
1702
1818
|
constructor() {
|
|
1703
1819
|
super();
|
|
1704
1820
|
const e = new v(0.3, 0.4, 0.1, 16), t = new w({
|
|
1705
1821
|
color: 3355443,
|
|
1706
1822
|
roughness: 0.6,
|
|
1707
1823
|
metalness: 0.3
|
|
1708
|
-
}), o = new
|
|
1824
|
+
}), o = new f(e, t);
|
|
1709
1825
|
o.position.y = 0.05;
|
|
1710
|
-
const r = new v(0.1, 0.1, 0.7, 16),
|
|
1826
|
+
const r = new v(0.1, 0.1, 0.7, 16), l = new w({
|
|
1711
1827
|
color: 5592405,
|
|
1712
1828
|
roughness: 0.5,
|
|
1713
1829
|
metalness: 0.4
|
|
1714
|
-
}), s = new
|
|
1830
|
+
}), s = new f(r, l);
|
|
1715
1831
|
s.position.y = 0.4;
|
|
1716
|
-
const n = new z(0.075, 0.2, 16),
|
|
1832
|
+
const n = new z(0.075, 0.2, 16), a = new w({
|
|
1717
1833
|
color: 16733440,
|
|
1718
1834
|
emissive: 16733440,
|
|
1719
1835
|
emissiveIntensity: 0.6,
|
|
1720
1836
|
transparent: !0,
|
|
1721
1837
|
opacity: 0.8
|
|
1722
|
-
}),
|
|
1723
|
-
|
|
1838
|
+
}), c = new f(n, a);
|
|
1839
|
+
c.position.y = 0.8, this.add(o, s, c);
|
|
1724
1840
|
}
|
|
1725
1841
|
}
|
|
1726
|
-
class
|
|
1842
|
+
class Ut extends b {
|
|
1727
1843
|
constructor() {
|
|
1728
1844
|
super();
|
|
1729
|
-
const e = new
|
|
1845
|
+
const e = new S(3, 4, 0.1), t = new w({
|
|
1730
1846
|
color: 3026478,
|
|
1731
1847
|
roughness: 0.8,
|
|
1732
1848
|
metalness: 0.6
|
|
1733
|
-
}), o = new
|
|
1849
|
+
}), o = new S(0.2, 0.5, 0.2), r = new w({
|
|
1734
1850
|
color: 11184810,
|
|
1735
1851
|
roughness: 0.5,
|
|
1736
1852
|
metalness: 0.7
|
|
1737
|
-
}),
|
|
1853
|
+
}), l = new v(0.3, 0.3, 0.1, 16), s = new w({
|
|
1738
1854
|
color: 5592405,
|
|
1739
1855
|
roughness: 0.7,
|
|
1740
1856
|
metalness: 0.5
|
|
1741
|
-
}), n = new
|
|
1857
|
+
}), n = new f(e, t);
|
|
1742
1858
|
for (let y = -1; y <= 1; y++) {
|
|
1743
|
-
const
|
|
1744
|
-
|
|
1859
|
+
const G = new f(o, r);
|
|
1860
|
+
G.position.set(y, 1.5, 0.1), n.add(G);
|
|
1745
1861
|
}
|
|
1746
|
-
const
|
|
1747
|
-
|
|
1748
|
-
const
|
|
1862
|
+
const a = new f(l, s);
|
|
1863
|
+
a.rotation.x = Math.PI / 2, a.position.set(0, 0.5, 0.15), n.add(a);
|
|
1864
|
+
const c = new T(0.15, 8, 8), m = new w({
|
|
1749
1865
|
color: 16711680,
|
|
1750
1866
|
emissive: 16711680,
|
|
1751
1867
|
emissiveIntensity: 0.5
|
|
1752
|
-
}), u = new
|
|
1868
|
+
}), u = new f(c, m);
|
|
1753
1869
|
u.position.set(0, -1, 0.1), n.add(u), this.add(n);
|
|
1754
|
-
let
|
|
1870
|
+
let h = 0.015, d = 0.8, p = 0.2;
|
|
1755
1871
|
function x() {
|
|
1756
1872
|
requestAnimationFrame(x);
|
|
1757
|
-
const y =
|
|
1873
|
+
const y = p + Math.abs(Math.sin(Date.now() * h)) * (d - p);
|
|
1758
1874
|
u.material.emissiveIntensity = y;
|
|
1759
1875
|
}
|
|
1760
1876
|
x();
|
|
1761
1877
|
}
|
|
1762
1878
|
}
|
|
1763
|
-
class
|
|
1879
|
+
class zt extends b {
|
|
1764
1880
|
constructor() {
|
|
1765
1881
|
super();
|
|
1766
1882
|
const e = [
|
|
1767
|
-
new
|
|
1883
|
+
new P(0, 0),
|
|
1768
1884
|
// Bottom of the flask
|
|
1769
|
-
new
|
|
1885
|
+
new P(1.2, 0),
|
|
1770
1886
|
// Base
|
|
1771
|
-
new
|
|
1887
|
+
new P(1.5, 1.5),
|
|
1772
1888
|
// Mid-body
|
|
1773
|
-
new
|
|
1889
|
+
new P(1, 3),
|
|
1774
1890
|
// Narrow neck
|
|
1775
|
-
new
|
|
1891
|
+
new P(0.6, 3.5)
|
|
1776
1892
|
// Mouth of the flask
|
|
1777
1893
|
], t = new Z(e, 12), o = new v(0.6, 0.7, 0.3, 8), r = new w({
|
|
1778
1894
|
color: 8965290,
|
|
@@ -1780,63 +1896,63 @@ class It extends S {
|
|
|
1780
1896
|
opacity: 0.4,
|
|
1781
1897
|
roughness: 0.1,
|
|
1782
1898
|
metalness: 0.5
|
|
1783
|
-
}),
|
|
1899
|
+
}), l = new w({
|
|
1784
1900
|
color: 9127187,
|
|
1785
1901
|
roughness: 1
|
|
1786
|
-
}), s = new
|
|
1902
|
+
}), s = new f(t, r), n = new f(o, l);
|
|
1787
1903
|
n.position.y = 3.5, this.add(s, n);
|
|
1788
1904
|
}
|
|
1789
1905
|
}
|
|
1790
|
-
class
|
|
1906
|
+
class _t extends b {
|
|
1791
1907
|
constructor() {
|
|
1792
1908
|
super();
|
|
1793
|
-
const e = new
|
|
1909
|
+
const e = new S(2, 3, 0.1), t = new w({
|
|
1794
1910
|
color: 3355443,
|
|
1795
1911
|
roughness: 0.8,
|
|
1796
1912
|
metalness: 0.5
|
|
1797
|
-
}), o = new
|
|
1913
|
+
}), o = new f(e, t), r = new v(0.1, 0.1, 0.2, 8), l = new v(0.05, 0.05, 1, 8), s = new w({
|
|
1798
1914
|
color: 11184810,
|
|
1799
1915
|
roughness: 0.5,
|
|
1800
1916
|
metalness: 0.7
|
|
1801
1917
|
});
|
|
1802
1918
|
for (let n = -0.5; n <= 0.5; n += 0.5) {
|
|
1803
|
-
const
|
|
1804
|
-
|
|
1805
|
-
const
|
|
1806
|
-
|
|
1919
|
+
const a = new f(r, s);
|
|
1920
|
+
a.position.set(n, 1, 0.1);
|
|
1921
|
+
const c = new f(l, s);
|
|
1922
|
+
c.position.y = 0.5, a.add(c), this.add(a);
|
|
1807
1923
|
}
|
|
1808
1924
|
this.add(o);
|
|
1809
1925
|
}
|
|
1810
1926
|
}
|
|
1811
|
-
class
|
|
1927
|
+
class Lt extends b {
|
|
1812
1928
|
constructor() {
|
|
1813
1929
|
super();
|
|
1814
|
-
const e = new
|
|
1930
|
+
const e = new S(1, 0.2, 0.5), t = new w({
|
|
1815
1931
|
color: 4473924,
|
|
1816
1932
|
roughness: 0.6,
|
|
1817
1933
|
metalness: 0.3
|
|
1818
|
-
}), o = new
|
|
1934
|
+
}), o = new f(e, t);
|
|
1819
1935
|
o.position.y = 0.1;
|
|
1820
|
-
const r = new
|
|
1821
|
-
|
|
1936
|
+
const r = new S(0.2, 1, 0.2), l = new f(r, t);
|
|
1937
|
+
l.position.set(0, 0.6, -0.2);
|
|
1822
1938
|
const s = new v(0.1, 0.1, 0.4, 8), n = new w({
|
|
1823
1939
|
color: 3355443,
|
|
1824
1940
|
roughness: 0.5,
|
|
1825
1941
|
metalness: 0.6
|
|
1826
|
-
}),
|
|
1827
|
-
|
|
1828
|
-
const
|
|
1942
|
+
}), a = new f(s, n);
|
|
1943
|
+
a.position.set(0, 1.1, -0.35), a.rotation.x = -Math.PI / 4;
|
|
1944
|
+
const c = new S(0.6, 0.1, 0.6), m = new w({
|
|
1829
1945
|
color: 5592405,
|
|
1830
1946
|
roughness: 0.8,
|
|
1831
1947
|
metalness: 0.2
|
|
1832
|
-
}), u = new
|
|
1833
|
-
u.position.set(0, 0.6, 0), this.add(o,
|
|
1948
|
+
}), u = new f(c, m);
|
|
1949
|
+
u.position.set(0, 0.6, 0), this.add(o, l, a, u);
|
|
1834
1950
|
}
|
|
1835
1951
|
}
|
|
1836
|
-
class
|
|
1952
|
+
class qt extends b {
|
|
1837
1953
|
constructor() {
|
|
1838
1954
|
super();
|
|
1839
|
-
const e = new
|
|
1955
|
+
const e = new ze(), t = new v(0.2, 0.3, 1.5, 8);
|
|
1840
1956
|
t.translate(0, 0.75, 0);
|
|
1841
1957
|
const o = new w({
|
|
1842
1958
|
color: 6045747,
|
|
@@ -1850,15 +1966,15 @@ class kt extends S {
|
|
|
1850
1966
|
// Slightly lighter earthy color
|
|
1851
1967
|
roughness: 0.8,
|
|
1852
1968
|
metalness: 0.1
|
|
1853
|
-
}),
|
|
1854
|
-
s.position.set(0.3, 1.3, 0), s.rotation.z = Math.PI / 4, this.add(
|
|
1969
|
+
}), l = new f(e, o), s = new f(t, r);
|
|
1970
|
+
s.position.set(0.3, 1.3, 0), s.rotation.z = Math.PI / 4, this.add(l, s);
|
|
1855
1971
|
}
|
|
1856
1972
|
}
|
|
1857
|
-
class
|
|
1973
|
+
class Ot extends b {
|
|
1858
1974
|
constructor() {
|
|
1859
1975
|
super();
|
|
1860
|
-
const e = 100, t = 0.05, o = new
|
|
1861
|
-
Array.from({ length: e }, (
|
|
1976
|
+
const e = 100, t = 0.05, o = new he(
|
|
1977
|
+
Array.from({ length: e }, (c, m) => {
|
|
1862
1978
|
const u = m * 0.2;
|
|
1863
1979
|
return new M(
|
|
1864
1980
|
Math.cos(u) * 0.4,
|
|
@@ -1867,78 +1983,78 @@ class Tt extends S {
|
|
|
1867
1983
|
Math.sin(u) * 0.4
|
|
1868
1984
|
);
|
|
1869
1985
|
})
|
|
1870
|
-
), r = new
|
|
1986
|
+
), r = new fe(o, 200, 0.1, 8, !1), l = new w({
|
|
1871
1987
|
color: 8965375,
|
|
1872
1988
|
transparent: !0,
|
|
1873
1989
|
opacity: 0.3,
|
|
1874
1990
|
roughness: 0.1,
|
|
1875
1991
|
metalness: 0.2,
|
|
1876
1992
|
emissive: 8965375
|
|
1877
|
-
}), s = new
|
|
1993
|
+
}), s = new f(r, l);
|
|
1878
1994
|
this.add(s);
|
|
1879
1995
|
function n() {
|
|
1880
|
-
|
|
1996
|
+
l.emissiveIntensity = 0.2 + Math.sin(Date.now() * 5e-3) * 0.1;
|
|
1881
1997
|
}
|
|
1882
|
-
function
|
|
1883
|
-
requestAnimationFrame(
|
|
1998
|
+
function a() {
|
|
1999
|
+
requestAnimationFrame(a), n();
|
|
1884
2000
|
}
|
|
1885
|
-
|
|
2001
|
+
a();
|
|
1886
2002
|
}
|
|
1887
2003
|
}
|
|
1888
|
-
class
|
|
2004
|
+
class Vt extends b {
|
|
1889
2005
|
constructor() {
|
|
1890
2006
|
super();
|
|
1891
2007
|
const e = new se(0.3, 0.03, 8, 16), t = new w({
|
|
1892
2008
|
color: 8947848,
|
|
1893
2009
|
roughness: 0.7,
|
|
1894
2010
|
metalness: 0.3
|
|
1895
|
-
}), o = new
|
|
2011
|
+
}), o = new f(e, t);
|
|
1896
2012
|
o.rotation.x = Math.PI / 2, o.position.y = 0.4;
|
|
1897
|
-
const r = new v(0.02, 0.02, 0.4, 8),
|
|
2013
|
+
const r = new v(0.02, 0.02, 0.4, 8), l = new w({
|
|
1898
2014
|
color: 6710886,
|
|
1899
2015
|
roughness: 0.8,
|
|
1900
2016
|
metalness: 0.3
|
|
1901
2017
|
}), s = [];
|
|
1902
2018
|
for (let n = 0; n < 3; n++) {
|
|
1903
|
-
const
|
|
1904
|
-
|
|
2019
|
+
const a = n / 3 * Math.PI * 2, c = new f(r, l);
|
|
2020
|
+
c.position.set(Math.cos(a) * 0.25, 0.2, Math.sin(a) * 0.25), s.push(c);
|
|
1905
2021
|
}
|
|
1906
2022
|
this.add(o, ...s);
|
|
1907
2023
|
}
|
|
1908
2024
|
}
|
|
1909
|
-
class
|
|
2025
|
+
class Xt extends b {
|
|
1910
2026
|
constructor() {
|
|
1911
2027
|
super();
|
|
1912
2028
|
const e = new v(0.5, 0.6, 0.3, 16), t = new w({
|
|
1913
2029
|
color: 3355443,
|
|
1914
2030
|
roughness: 0.6,
|
|
1915
2031
|
metalness: 0.5
|
|
1916
|
-
}), o = new
|
|
2032
|
+
}), o = new f(e, t);
|
|
1917
2033
|
o.position.y = 0.15;
|
|
1918
|
-
const r = new v(0.15, 0.15, 2, 12, 1, !0),
|
|
2034
|
+
const r = new v(0.15, 0.15, 2, 12, 1, !0), l = new w({
|
|
1919
2035
|
color: 16737792,
|
|
1920
2036
|
roughness: 0.5,
|
|
1921
2037
|
metalness: 0.8,
|
|
1922
2038
|
side: q
|
|
1923
|
-
}), s = new
|
|
2039
|
+
}), s = new f(r, l);
|
|
1924
2040
|
s.position.y = 1.3;
|
|
1925
|
-
const n = new T(0.3, 16, 16),
|
|
1926
|
-
|
|
1927
|
-
const
|
|
1928
|
-
for (let
|
|
1929
|
-
const
|
|
2041
|
+
const n = new T(0.3, 16, 16), a = new f(n, l);
|
|
2042
|
+
a.position.y = 2.4, this.add(o, s, a);
|
|
2043
|
+
const c = [];
|
|
2044
|
+
for (let h = 0; h < 5; h++) {
|
|
2045
|
+
const d = new pe({ color: 10079487 }), p = [
|
|
1930
2046
|
new M(0, 2.4, 0),
|
|
1931
2047
|
new M((Math.random() - 0.5) * 1.5, Math.random() * 2.4, (Math.random() - 0.5) * 1.5)
|
|
1932
|
-
], x = new
|
|
1933
|
-
this.add(y),
|
|
2048
|
+
], x = new g().setFromPoints(p), y = new de(x, d);
|
|
2049
|
+
this.add(y), c.push(y);
|
|
1934
2050
|
}
|
|
1935
2051
|
function m() {
|
|
1936
|
-
|
|
1937
|
-
const
|
|
2052
|
+
c.forEach((h) => {
|
|
2053
|
+
const d = [
|
|
1938
2054
|
new M(0, 2.4, 0),
|
|
1939
2055
|
new M((Math.random() - 0.5) * 1.5, Math.random() * 2.4, (Math.random() - 0.5) * 1.5)
|
|
1940
2056
|
];
|
|
1941
|
-
|
|
2057
|
+
h.geometry.setFromPoints(d);
|
|
1942
2058
|
});
|
|
1943
2059
|
}
|
|
1944
2060
|
function u() {
|
|
@@ -1947,10 +2063,10 @@ class Et extends S {
|
|
|
1947
2063
|
u();
|
|
1948
2064
|
}
|
|
1949
2065
|
}
|
|
1950
|
-
class
|
|
2066
|
+
class Yt extends b {
|
|
1951
2067
|
constructor(e = 0.2, t = 0.2, o = 3, r = 32) {
|
|
1952
2068
|
super();
|
|
1953
|
-
const
|
|
2069
|
+
const l = new H(e, t, o, r), s = new K({
|
|
1954
2070
|
color: 8965375,
|
|
1955
2071
|
transparent: !0,
|
|
1956
2072
|
opacity: 0.4,
|
|
@@ -1960,21 +2076,21 @@ class Nt extends S {
|
|
|
1960
2076
|
transmission: 0.9,
|
|
1961
2077
|
// For glass effect
|
|
1962
2078
|
side: q
|
|
1963
|
-
}), n = new
|
|
2079
|
+
}), n = new f(l, s);
|
|
1964
2080
|
this.add(n);
|
|
1965
2081
|
}
|
|
1966
2082
|
}
|
|
1967
|
-
class
|
|
2083
|
+
class Zt extends b {
|
|
1968
2084
|
constructor(e = 3, t = [65450, 16711850, 11141375]) {
|
|
1969
2085
|
super();
|
|
1970
|
-
const o = new
|
|
2086
|
+
const o = new S(3, 0.2, 1), r = new w({
|
|
1971
2087
|
color: 9127187,
|
|
1972
2088
|
// Wooden color or change to metallic tone
|
|
1973
2089
|
roughness: 0.7,
|
|
1974
2090
|
metalness: 0.3
|
|
1975
|
-
}),
|
|
1976
|
-
|
|
1977
|
-
const s = new
|
|
2091
|
+
}), l = new f(o, r);
|
|
2092
|
+
l.position.y = 0.5;
|
|
2093
|
+
const s = new H(0.1, 0.1, 1, 16), n = new w({
|
|
1978
2094
|
color: 11184810,
|
|
1979
2095
|
transparent: !0,
|
|
1980
2096
|
opacity: 0.4,
|
|
@@ -1982,25 +2098,25 @@ class Ct extends S {
|
|
|
1982
2098
|
metalness: 0.5,
|
|
1983
2099
|
side: q
|
|
1984
2100
|
});
|
|
1985
|
-
for (let
|
|
1986
|
-
const
|
|
1987
|
-
|
|
1988
|
-
const u = new
|
|
1989
|
-
color:
|
|
1990
|
-
emissive:
|
|
2101
|
+
for (let a = 0; a < e; a++) {
|
|
2102
|
+
const c = new f(s, n), m = (a - (e - 1) / 2) * 0.8;
|
|
2103
|
+
c.position.set(m, 1, 0);
|
|
2104
|
+
const u = new H(0.099, 0.099, 0.5, 16, !1), h = t[a % t.length], d = new w({
|
|
2105
|
+
color: h,
|
|
2106
|
+
emissive: h,
|
|
1991
2107
|
emissiveIntensity: 0.5,
|
|
1992
2108
|
transparent: !0,
|
|
1993
2109
|
opacity: 0.6
|
|
1994
|
-
}),
|
|
1995
|
-
|
|
2110
|
+
}), p = new f(u, d);
|
|
2111
|
+
p.position.set(0, -0.25, 0), c.add(p), l.add(c);
|
|
1996
2112
|
}
|
|
1997
|
-
this.add(
|
|
2113
|
+
this.add(l);
|
|
1998
2114
|
}
|
|
1999
2115
|
}
|
|
2000
|
-
class
|
|
2116
|
+
class Rt extends f {
|
|
2001
2117
|
constructor() {
|
|
2002
2118
|
super();
|
|
2003
|
-
const e = new
|
|
2119
|
+
const e = new _e(), t = new K({
|
|
2004
2120
|
color: 5597999,
|
|
2005
2121
|
roughness: 0.1,
|
|
2006
2122
|
transmission: 0.9,
|
|
@@ -2013,22 +2129,22 @@ class Ft extends h {
|
|
|
2013
2129
|
this.geometry = e, this.material = t;
|
|
2014
2130
|
}
|
|
2015
2131
|
}
|
|
2016
|
-
class
|
|
2132
|
+
class Xe extends _ {
|
|
2017
2133
|
constructor(e = 5, t = 0.5, o = 1) {
|
|
2018
2134
|
super();
|
|
2019
|
-
const r = Math.PI * 2 / e,
|
|
2135
|
+
const r = Math.PI * 2 / e, l = r / 2, s = r / 4;
|
|
2020
2136
|
this.moveTo(Math.cos(0) * o, -Math.sin(0) * o);
|
|
2021
2137
|
for (let n = 1; n <= e; ++n) {
|
|
2022
|
-
let
|
|
2023
|
-
this.quadraticCurveTo(
|
|
2138
|
+
let a = Math.cos(r * n - s * 3) * (t / Math.cos(s)), c = -Math.sin(r * n - s * 3) * (t / Math.cos(s)), m = Math.cos(r * n - l) * t, u = -Math.sin(r * n - l) * t;
|
|
2139
|
+
this.quadraticCurveTo(a, c, m, u), a = Math.cos(r * n - s) * (t / Math.cos(s)), c = -Math.sin(r * n - s) * (t / Math.cos(s)), m = Math.cos(r * n) * o, u = -Math.sin(r * n) * o, this.quadraticCurveTo(a, c, m, u);
|
|
2024
2140
|
}
|
|
2025
2141
|
this.closePath();
|
|
2026
2142
|
}
|
|
2027
2143
|
}
|
|
2028
|
-
class
|
|
2144
|
+
class Dt extends f {
|
|
2029
2145
|
constructor(e = 5, t = 0.5, o = 1, r = 0.25) {
|
|
2030
2146
|
super();
|
|
2031
|
-
const
|
|
2147
|
+
const l = new Xe(e, t, o), s = new L(l, {
|
|
2032
2148
|
depth: r,
|
|
2033
2149
|
bevelEnabled: r > 0,
|
|
2034
2150
|
bevelThickness: 0,
|
|
@@ -2044,40 +2160,40 @@ class Ut extends h {
|
|
|
2044
2160
|
s.center(), this.geometry = s, this.material = n;
|
|
2045
2161
|
}
|
|
2046
2162
|
}
|
|
2047
|
-
class
|
|
2048
|
-
constructor(e = 5, t = 0.5, o = 1, r = 5,
|
|
2163
|
+
class Ye extends _ {
|
|
2164
|
+
constructor(e = 5, t = 0.5, o = 1, r = 5, l = 0.25) {
|
|
2049
2165
|
super();
|
|
2050
2166
|
const s = Math.PI * 2 / e, n = s / 4;
|
|
2051
2167
|
this.moveTo(Math.cos(0) * o, -Math.sin(0) * o);
|
|
2052
|
-
for (let
|
|
2053
|
-
this.lineTo(Math.cos(s *
|
|
2054
|
-
if (this.closePath(),
|
|
2055
|
-
const
|
|
2056
|
-
|
|
2168
|
+
for (let a = 1; a <= e; ++a)
|
|
2169
|
+
this.lineTo(Math.cos(s * a - n * 3) * t, -Math.sin(s * a - n * 3) * t), this.lineTo(Math.cos(s * a - n * 2) * t, -Math.sin(s * a - n * 2) * t), this.lineTo(Math.cos(s * a - n) * o, -Math.sin(s * a - n) * o), this.lineTo(Math.cos(s * a) * o, -Math.sin(s * a) * o);
|
|
2170
|
+
if (this.closePath(), l > 0 && r > 2) {
|
|
2171
|
+
const a = new we(), c = Math.PI * 2 / r;
|
|
2172
|
+
a.moveTo(Math.cos(0) * l, -Math.sin(0) * l);
|
|
2057
2173
|
for (let m = 1; m < r; ++m)
|
|
2058
|
-
|
|
2059
|
-
|
|
2174
|
+
a.lineTo(Math.cos(c * m) * l, -Math.sin(c * m) * l);
|
|
2175
|
+
a.lineTo(Math.cos(0) * l, -Math.sin(0) * l), this.holes.push(a);
|
|
2060
2176
|
}
|
|
2061
2177
|
}
|
|
2062
2178
|
}
|
|
2063
|
-
class
|
|
2064
|
-
constructor(e = 5, t = 0.5, o = 1, r = 5,
|
|
2179
|
+
class Ht extends f {
|
|
2180
|
+
constructor(e = 5, t = 0.5, o = 1, r = 5, l = 0.25, s = 0.25) {
|
|
2065
2181
|
super();
|
|
2066
|
-
const n = new
|
|
2182
|
+
const n = new Ye(e, t, o, r, l), a = new L(n, {
|
|
2067
2183
|
depth: s,
|
|
2068
2184
|
bevelEnabled: s > 0,
|
|
2069
2185
|
bevelThickness: 0,
|
|
2070
2186
|
bevelSize: 0
|
|
2071
|
-
}),
|
|
2187
|
+
}), c = new w({
|
|
2072
2188
|
color: 11184810,
|
|
2073
2189
|
metalness: 0.8,
|
|
2074
2190
|
roughness: 0.2,
|
|
2075
2191
|
reflectivity: 0.5
|
|
2076
2192
|
});
|
|
2077
|
-
|
|
2193
|
+
a.center(), this.geometry = a, this.material = c;
|
|
2078
2194
|
}
|
|
2079
2195
|
}
|
|
2080
|
-
class
|
|
2196
|
+
class Ze extends _ {
|
|
2081
2197
|
constructor(e = 1, t = 2.1, o = 1.4, r = 1.6) {
|
|
2082
2198
|
super(), this.moveTo(0, o * e / 3), this.bezierCurveTo(
|
|
2083
2199
|
-t * 0.375 * e,
|
|
@@ -2102,15 +2218,15 @@ class ze extends _ {
|
|
|
2102
2218
|
);
|
|
2103
2219
|
}
|
|
2104
2220
|
}
|
|
2105
|
-
class
|
|
2106
|
-
constructor(e = 1, t = 1, o = 1, r = 10,
|
|
2221
|
+
class Qt extends f {
|
|
2222
|
+
constructor(e = 1, t = 1, o = 1, r = 10, l = 0.25) {
|
|
2107
2223
|
super();
|
|
2108
|
-
const s = new
|
|
2109
|
-
depth:
|
|
2110
|
-
bevelEnabled:
|
|
2224
|
+
const s = new Ze(e, t, o, r), n = new L(s, {
|
|
2225
|
+
depth: l,
|
|
2226
|
+
bevelEnabled: l > 0,
|
|
2111
2227
|
bevelThickness: 0,
|
|
2112
2228
|
bevelSize: 0
|
|
2113
|
-
}),
|
|
2229
|
+
}), a = new w({
|
|
2114
2230
|
color: 12986408,
|
|
2115
2231
|
emissive: 12981270,
|
|
2116
2232
|
emissiveIntensity: 0.25,
|
|
@@ -2118,23 +2234,23 @@ class _t extends h {
|
|
|
2118
2234
|
roughness: 0.3,
|
|
2119
2235
|
flatShading: !0
|
|
2120
2236
|
});
|
|
2121
|
-
n.center(), this.geometry = n, this.material =
|
|
2237
|
+
n.center(), this.geometry = n, this.material = a;
|
|
2122
2238
|
}
|
|
2123
2239
|
}
|
|
2124
|
-
class
|
|
2240
|
+
class Re extends _ {
|
|
2125
2241
|
constructor(e = 5, t = 0.5, o = 1) {
|
|
2126
2242
|
super();
|
|
2127
|
-
const r = Math.PI * 2 / e,
|
|
2243
|
+
const r = Math.PI * 2 / e, l = r / 2;
|
|
2128
2244
|
this.moveTo(Math.cos(0) * o, Math.sin(0) * o);
|
|
2129
2245
|
for (let s = 1; s <= e; ++s)
|
|
2130
|
-
this.lineTo(Math.cos(r * s -
|
|
2246
|
+
this.lineTo(Math.cos(r * s - l) * t, Math.sin(r * s - l) * t), this.lineTo(Math.cos(r * s) * o, Math.sin(r * s) * o);
|
|
2131
2247
|
this.closePath();
|
|
2132
2248
|
}
|
|
2133
2249
|
}
|
|
2134
|
-
class
|
|
2250
|
+
class jt extends f {
|
|
2135
2251
|
constructor(e = 5, t = 0.5, o = 1, r = 0.25) {
|
|
2136
2252
|
super();
|
|
2137
|
-
const
|
|
2253
|
+
const l = new Re(e, t, o), s = new L(l, {
|
|
2138
2254
|
depth: r,
|
|
2139
2255
|
bevelEnabled: r > 0,
|
|
2140
2256
|
bevelThickness: 0,
|
|
@@ -2150,47 +2266,87 @@ class Lt extends h {
|
|
|
2150
2266
|
s.center(), this.geometry = s, this.material = n;
|
|
2151
2267
|
}
|
|
2152
2268
|
}
|
|
2153
|
-
class
|
|
2269
|
+
class Kt extends f {
|
|
2154
2270
|
constructor({
|
|
2155
2271
|
trunkRadiusTop: e = 0.25,
|
|
2156
2272
|
trunkRadiusBottom: t = 0.4,
|
|
2157
2273
|
trunkHeight: o = 2.5,
|
|
2158
2274
|
trunkSegments: r = 14,
|
|
2159
|
-
trunkColor:
|
|
2275
|
+
trunkColor: l = 9127187,
|
|
2160
2276
|
leafSize: s = 0.8,
|
|
2161
2277
|
leafCount: n = 6,
|
|
2162
|
-
leafDetail:
|
|
2163
|
-
leafSpreadRadius:
|
|
2278
|
+
leafDetail: a = 0,
|
|
2279
|
+
leafSpreadRadius: c = 1.5,
|
|
2164
2280
|
leafColor: m = 2263842
|
|
2165
2281
|
} = {}) {
|
|
2166
2282
|
super();
|
|
2167
|
-
const u = new
|
|
2283
|
+
const u = new Ve({
|
|
2168
2284
|
trunkRadiusTop: e,
|
|
2169
2285
|
trunkRadiusBottom: t,
|
|
2170
2286
|
trunkHeight: o,
|
|
2171
2287
|
trunkSegments: r,
|
|
2172
|
-
trunkColor:
|
|
2288
|
+
trunkColor: l,
|
|
2173
2289
|
leafSize: s,
|
|
2174
2290
|
leafCount: n,
|
|
2175
|
-
leafDetail:
|
|
2176
|
-
leafSpreadRadius:
|
|
2291
|
+
leafDetail: a,
|
|
2292
|
+
leafSpreadRadius: c,
|
|
2177
2293
|
leafColor: m
|
|
2178
|
-
}),
|
|
2179
|
-
color:
|
|
2294
|
+
}), h = new w({
|
|
2295
|
+
color: l,
|
|
2180
2296
|
roughness: 0.9,
|
|
2181
2297
|
metalness: 0,
|
|
2182
2298
|
flatShading: !0
|
|
2183
|
-
}),
|
|
2299
|
+
}), d = new w({
|
|
2184
2300
|
color: m,
|
|
2185
2301
|
roughness: 0.8,
|
|
2186
2302
|
metalness: 0,
|
|
2187
2303
|
flatShading: !0
|
|
2188
2304
|
});
|
|
2189
|
-
this.geometry = u, this.material = [
|
|
2305
|
+
this.geometry = u, this.material = [h, d];
|
|
2190
2306
|
}
|
|
2191
2307
|
}
|
|
2192
|
-
|
|
2193
|
-
|
|
2308
|
+
class Jt extends f {
|
|
2309
|
+
constructor({
|
|
2310
|
+
radius: e = 3,
|
|
2311
|
+
//
|
|
2312
|
+
height: t = 0.6,
|
|
2313
|
+
widthSegments: o = 64,
|
|
2314
|
+
heightSegments: r = 16,
|
|
2315
|
+
phiStart: l = 0,
|
|
2316
|
+
phiLength: s = Math.PI * 2
|
|
2317
|
+
} = {}) {
|
|
2318
|
+
super(), this.geometry = new Le({
|
|
2319
|
+
radius: e,
|
|
2320
|
+
height: t,
|
|
2321
|
+
widthSegments: o,
|
|
2322
|
+
heightSegments: r,
|
|
2323
|
+
phiStart: l,
|
|
2324
|
+
phiLength: s
|
|
2325
|
+
}), this.material = new w({ color: 65280, flatShading: !0 });
|
|
2326
|
+
}
|
|
2327
|
+
}
|
|
2328
|
+
class $t extends f {
|
|
2329
|
+
constructor({
|
|
2330
|
+
radius: e = ae(5, Math.PI / 10),
|
|
2331
|
+
//
|
|
2332
|
+
widthSegments: t = 64,
|
|
2333
|
+
heightSegments: o = 32,
|
|
2334
|
+
phiStart: r = 0,
|
|
2335
|
+
phiLength: l = Math.PI * 2,
|
|
2336
|
+
thetaLength: s = Math.PI / 10
|
|
2337
|
+
} = {}) {
|
|
2338
|
+
super(), this.geometry = new Oe({
|
|
2339
|
+
radius: e,
|
|
2340
|
+
widthSegments: t,
|
|
2341
|
+
heightSegments: o,
|
|
2342
|
+
phiStart: r,
|
|
2343
|
+
phiLength: l,
|
|
2344
|
+
thetaLength: s
|
|
2345
|
+
}), this.material = new w({ color: 65280, flatShading: !0 });
|
|
2346
|
+
}
|
|
2347
|
+
}
|
|
2348
|
+
function Wt(i, { time: e = 0, waveFrequency: t = 0.2, waveAmplitude: o = 0.5 } = {}) {
|
|
2349
|
+
i.onBeforeCompile = (r) => {
|
|
2194
2350
|
r.uniforms.time = { value: e }, r.uniforms.waveFrequency = { value: t }, r.uniforms.waveAmplitude = { value: o }, r.vertexShader = `
|
|
2195
2351
|
uniform float time;
|
|
2196
2352
|
uniform float waveFrequency;
|
|
@@ -2210,15 +2366,15 @@ function Ot(l, { time: e = 0, waveFrequency: t = 0.2, waveAmplitude: o = 0.5 } =
|
|
|
2210
2366
|
`
|
|
2211
2367
|
vec3 transformed = waterDisplacement(position, normal);
|
|
2212
2368
|
`
|
|
2213
|
-
),
|
|
2369
|
+
), i.userData.shader = r;
|
|
2214
2370
|
};
|
|
2215
2371
|
}
|
|
2216
|
-
function
|
|
2217
|
-
|
|
2372
|
+
function eo(i, e) {
|
|
2373
|
+
i.userData.shader && (i.userData.shader.uniforms.time.value += e);
|
|
2218
2374
|
}
|
|
2219
|
-
function
|
|
2220
|
-
|
|
2221
|
-
|
|
2375
|
+
function to(i, { time: e = 0, intensity: t = 1, direction: o = N.XYZ, scale: r = 10 } = {}) {
|
|
2376
|
+
i.onBeforeCompile = (l) => {
|
|
2377
|
+
l.uniforms.time = { value: e }, l.uniforms.direction = { value: o }, l.uniforms.intensity = { value: t }, l.uniforms.scale = { value: r }, l.vertexShader = `
|
|
2222
2378
|
uniform float time;
|
|
2223
2379
|
uniform vec3 direction;
|
|
2224
2380
|
uniform float intensity;
|
|
@@ -2249,7 +2405,7 @@ function Xt(l, { time: e = 0, intensity: t = 1, direction: o = C.XYZ, scale: r =
|
|
|
2249
2405
|
|
|
2250
2406
|
return o4.y * d.y + o4.x * (1.0 - d.y);
|
|
2251
2407
|
}
|
|
2252
|
-
` +
|
|
2408
|
+
` + l.vertexShader, l.vertexShader = l.vertexShader.replace(
|
|
2253
2409
|
"#include <begin_vertex>",
|
|
2254
2410
|
`
|
|
2255
2411
|
vec3 transformed = vec3(position);
|
|
@@ -2257,11 +2413,11 @@ function Xt(l, { time: e = 0, intensity: t = 1, direction: o = C.XYZ, scale: r =
|
|
|
2257
2413
|
transformed += normalize(direction) * n * intensity;
|
|
2258
2414
|
vec3 transformedNormal = normal;
|
|
2259
2415
|
`
|
|
2260
|
-
),
|
|
2416
|
+
), i.userData.shader = l;
|
|
2261
2417
|
};
|
|
2262
2418
|
}
|
|
2263
|
-
function
|
|
2264
|
-
|
|
2419
|
+
function oo(i, e) {
|
|
2420
|
+
i.userData.shader && (i.userData.shader.uniforms.time.value += e);
|
|
2265
2421
|
}
|
|
2266
2422
|
const te = {
|
|
2267
2423
|
uniforms: {},
|
|
@@ -2281,7 +2437,7 @@ const te = {
|
|
|
2281
2437
|
gl_FragColor = vec4(mix(bottomColor, topColor, y), 1.0);
|
|
2282
2438
|
}
|
|
2283
2439
|
`
|
|
2284
|
-
},
|
|
2440
|
+
}, De = {
|
|
2285
2441
|
uniforms: {
|
|
2286
2442
|
tDiffuse: { value: null },
|
|
2287
2443
|
opacity: { value: 1 }
|
|
@@ -2302,7 +2458,7 @@ const te = {
|
|
|
2302
2458
|
gl_FragColor = opacity * texel;
|
|
2303
2459
|
}
|
|
2304
2460
|
`
|
|
2305
|
-
},
|
|
2461
|
+
}, D = {
|
|
2306
2462
|
uniforms: {
|
|
2307
2463
|
topColor: { value: new $(51) },
|
|
2308
2464
|
bottomColor: { value: new $(17) },
|
|
@@ -2329,151 +2485,174 @@ const te = {
|
|
|
2329
2485
|
}
|
|
2330
2486
|
`
|
|
2331
2487
|
};
|
|
2332
|
-
class
|
|
2488
|
+
class so extends f {
|
|
2333
2489
|
constructor(e = 1e3) {
|
|
2334
|
-
super(), this.geometry = new
|
|
2490
|
+
super(), this.geometry = new S(e, e, e), this.material = new j({
|
|
2335
2491
|
vertexShader: te.vertexShader,
|
|
2336
2492
|
fragmentShader: te.fragmentShader,
|
|
2337
2493
|
side: ne
|
|
2338
2494
|
});
|
|
2339
2495
|
}
|
|
2340
2496
|
}
|
|
2341
|
-
class
|
|
2497
|
+
class no extends f {
|
|
2342
2498
|
constructor(e = 1e3) {
|
|
2343
2499
|
super(), this.geometry = new T(e, 32, 15), this.material = new j({
|
|
2344
|
-
vertexShader:
|
|
2345
|
-
fragmentShader:
|
|
2346
|
-
uniforms:
|
|
2500
|
+
vertexShader: D.vertexShader,
|
|
2501
|
+
fragmentShader: D.fragmentShader,
|
|
2502
|
+
uniforms: D.uniforms,
|
|
2347
2503
|
side: ne
|
|
2348
2504
|
});
|
|
2349
2505
|
}
|
|
2350
2506
|
}
|
|
2351
|
-
class
|
|
2352
|
-
constructor(e = Math.PI * 0.49, t = 2 * Math.PI * 0.25, o = 10, r = 2,
|
|
2507
|
+
class ro extends f {
|
|
2508
|
+
constructor(e = Math.PI * 0.49, t = 2 * Math.PI * 0.25, o = 10, r = 2, l = 5e-3, s = 0.8) {
|
|
2353
2509
|
super();
|
|
2354
|
-
const n = new
|
|
2510
|
+
const n = new be();
|
|
2355
2511
|
n.scale.setScalar(45e4), this.add(n);
|
|
2356
|
-
const
|
|
2357
|
-
|
|
2512
|
+
const a = n.material.uniforms;
|
|
2513
|
+
a.turbidity.value = o, a.rayleigh.value = r, a.mieCoefficient.value = l, a.mieDirectionalG.value = s, this.skyUniforms = a, this.sunPosition(e, t);
|
|
2358
2514
|
}
|
|
2359
2515
|
sunPosition(e, t) {
|
|
2360
2516
|
const o = new M(), r = this.skyUniforms;
|
|
2361
2517
|
o.setFromSphericalCoords(1, e, t), r.sunPosition.value.copy(o);
|
|
2362
2518
|
}
|
|
2363
2519
|
}
|
|
2364
|
-
const
|
|
2365
|
-
const e = new Uint8Array(4 *
|
|
2366
|
-
for (let o = 0; o <
|
|
2367
|
-
const r = o * 4,
|
|
2368
|
-
e[r] =
|
|
2520
|
+
const ao = (i) => {
|
|
2521
|
+
const e = new Uint8Array(4 * i * i);
|
|
2522
|
+
for (let o = 0; o < i * i; o++) {
|
|
2523
|
+
const r = o * 4, l = (o % i ^ Math.floor(o / i)) & 1 ? 255 : 0;
|
|
2524
|
+
e[r] = l, e[r + 1] = l, e[r + 2] = l, e[r + 3] = 255;
|
|
2369
2525
|
}
|
|
2370
|
-
const t = new
|
|
2371
|
-
return t.wrapS = W, t.wrapT = W, t.minFilter =
|
|
2526
|
+
const t = new ye(e, i, i, xe, Me);
|
|
2527
|
+
return t.wrapS = W, t.wrapT = W, t.minFilter = ve, t.needsUpdate = !0, t;
|
|
2372
2528
|
};
|
|
2373
|
-
|
|
2529
|
+
function co(i) {
|
|
2530
|
+
const t = new ge().setFromObject(i).getCenter(new M());
|
|
2531
|
+
i.translateX(-t.x), i.translateY(-t.y), i.translateZ(-t.z), i.updateMatrixWorld(!0);
|
|
2532
|
+
}
|
|
2533
|
+
function io(i) {
|
|
2534
|
+
i.geometry.computeBoundingBox();
|
|
2535
|
+
const t = i.geometry.boundingBox.getCenter(new M());
|
|
2536
|
+
i.geometry.translate(-t.x, -t.y, -t.z);
|
|
2537
|
+
}
|
|
2538
|
+
class lo {
|
|
2374
2539
|
static dispose(e) {
|
|
2375
2540
|
e == null || e.traverse((t) => {
|
|
2376
2541
|
t.geometry && t.geometry.dispose(), t.material && (Array.isArray(t.material) ? t.material.forEach((o) => o.dispose()) : t.material.dispose());
|
|
2377
2542
|
});
|
|
2378
2543
|
}
|
|
2379
|
-
static fadeBetween(e, t, o, r,
|
|
2380
|
-
const s = new
|
|
2544
|
+
static fadeBetween(e, t, o, r, l = 1) {
|
|
2545
|
+
const s = new Ge(e), n = new ee(o, t);
|
|
2381
2546
|
s.addPass(n);
|
|
2382
|
-
const
|
|
2383
|
-
|
|
2384
|
-
let
|
|
2385
|
-
function m(
|
|
2386
|
-
|
|
2387
|
-
const
|
|
2388
|
-
|
|
2547
|
+
const a = new Ie(De);
|
|
2548
|
+
a.uniforms.opacity.value = 1, s.addPass(a);
|
|
2549
|
+
let c = null;
|
|
2550
|
+
function m(h) {
|
|
2551
|
+
c || (c = h);
|
|
2552
|
+
const p = (h - c) / 1e3 / l;
|
|
2553
|
+
a.uniforms.opacity.value = Math.max(1 - p, 0), p < 1 ? (s.render(), requestAnimationFrame(m)) : (s.passes[0] = new ee(r, t), c = null, requestAnimationFrame(u));
|
|
2389
2554
|
}
|
|
2390
|
-
function u(
|
|
2391
|
-
|
|
2392
|
-
const
|
|
2393
|
-
|
|
2555
|
+
function u(h) {
|
|
2556
|
+
c || (c = h);
|
|
2557
|
+
const p = (h - c) / 1e3 / l;
|
|
2558
|
+
a.uniforms.opacity.value = Math.min(p, 1), p < 1 && (s.render(), requestAnimationFrame(u));
|
|
2394
2559
|
}
|
|
2395
2560
|
requestAnimationFrame(m);
|
|
2396
2561
|
}
|
|
2397
2562
|
}
|
|
2398
2563
|
export {
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2403
|
-
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2407
|
-
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
|
|
2564
|
+
Ct as Beaker,
|
|
2565
|
+
Ue as BeakerGeometry,
|
|
2566
|
+
ct as BifurcatedStaircaseGeometry,
|
|
2567
|
+
ft as BoneGeometry,
|
|
2568
|
+
yt as Book,
|
|
2569
|
+
Pe as BookGeometry,
|
|
2570
|
+
Nt as Bottle,
|
|
2571
|
+
at as Bubbling,
|
|
2572
|
+
Ft as BunsenBurner,
|
|
2573
|
+
Dt as Burst,
|
|
2574
|
+
Xe as BurstShape,
|
|
2575
|
+
At as Candle,
|
|
2576
|
+
xt as CrossHeadstone,
|
|
2577
|
+
Ae as CrossHeadstoneGeometry,
|
|
2578
|
+
so as DaySkybox,
|
|
2579
|
+
Pt as Desk,
|
|
2580
|
+
it as DioramaGeometry,
|
|
2581
|
+
N as Direction,
|
|
2582
|
+
rt as Easing,
|
|
2583
|
+
Ut as ElectricPanel,
|
|
2419
2584
|
O as Falloff,
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
zt as
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2463
|
-
|
|
2464
|
-
|
|
2465
|
-
Rt as
|
|
2585
|
+
bt as FenceColumn,
|
|
2586
|
+
Ee as FenceColumnGeometry,
|
|
2587
|
+
zt as Flask,
|
|
2588
|
+
Ht as Gear,
|
|
2589
|
+
Ye as GearShape,
|
|
2590
|
+
Qt as Heart,
|
|
2591
|
+
Ze as HeartShape,
|
|
2592
|
+
Jt as Hill,
|
|
2593
|
+
Le as HillGeometry,
|
|
2594
|
+
lt as LShapedStaircaseGeometry,
|
|
2595
|
+
kt as Lantern,
|
|
2596
|
+
_t as LeverPanel,
|
|
2597
|
+
Mt as Mausoleum,
|
|
2598
|
+
Lt as Microscope,
|
|
2599
|
+
wt as Moon,
|
|
2600
|
+
qt as MortarAndPestle,
|
|
2601
|
+
ze as MortarGeometry,
|
|
2602
|
+
Tt as MossyRocks,
|
|
2603
|
+
$t as Mound,
|
|
2604
|
+
Oe as MoundGeometry,
|
|
2605
|
+
no as NightSkybox,
|
|
2606
|
+
vt as ObeliskHeadstone,
|
|
2607
|
+
ke as ObeliskHeadstoneGeometry,
|
|
2608
|
+
Bt as Rock,
|
|
2609
|
+
Fe as RockGeometry,
|
|
2610
|
+
Et as Rocks,
|
|
2611
|
+
gt as RoundedHeadstone,
|
|
2612
|
+
Te as RoundedHeadstoneGeometry,
|
|
2613
|
+
lo as SceneUtils,
|
|
2614
|
+
ht as SimpleLeafGeometry,
|
|
2615
|
+
mt as SpiralStaircaseGeometry,
|
|
2616
|
+
Ot as SpiralTube,
|
|
2617
|
+
St as SquareHeadstone,
|
|
2618
|
+
Be as SquareHeadstoneGeometry,
|
|
2619
|
+
ut as StaircaseGeometry,
|
|
2620
|
+
Vt as Stand,
|
|
2621
|
+
jt as Star,
|
|
2622
|
+
Re as StarShape,
|
|
2623
|
+
Xt as TeslaCoil,
|
|
2624
|
+
Yt as TestTube,
|
|
2625
|
+
H as TestTubeGeometry,
|
|
2626
|
+
Zt as TestTubeRack,
|
|
2627
|
+
Kt as Tree,
|
|
2628
|
+
Ve as TreeGeometry,
|
|
2629
|
+
ro as TwilightSkybox,
|
|
2630
|
+
Rt as WineBottle,
|
|
2631
|
+
_e as WineBottleGeometry,
|
|
2632
|
+
Gt as WroughtIronBar,
|
|
2633
|
+
re as WroughtIronBarGeometry,
|
|
2634
|
+
It as WroughtIronFence,
|
|
2635
|
+
Ce as WroughtIronFenceGeometry,
|
|
2636
|
+
to as addNoiseDisplacement,
|
|
2637
|
+
Wt as addWaterDisplacement,
|
|
2638
|
+
qe as calculateSphereCapHeight,
|
|
2639
|
+
dt as calculateSphereCapWidth,
|
|
2640
|
+
co as centerMesh,
|
|
2641
|
+
io as centerMeshGeometry,
|
|
2642
|
+
ao as checkerboardTexture,
|
|
2466
2643
|
te as daySkyShader,
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
|
|
2644
|
+
We as displacementBrush,
|
|
2645
|
+
De as fadeShader,
|
|
2646
|
+
et as flattenBrush,
|
|
2647
|
+
D as nightSkyShader,
|
|
2648
|
+
tt as noiseBrush,
|
|
2649
|
+
pt as radiusForSphereCapHeight,
|
|
2650
|
+
ae as radiusForSphereCapWidth,
|
|
2651
|
+
Ne as randomTransformVertices,
|
|
2652
|
+
ot as smoothBrush,
|
|
2653
|
+
st as spikeBrush,
|
|
2654
|
+
nt as twistBrush,
|
|
2655
|
+
oo as updateNoiseDisplacementTime,
|
|
2656
|
+
eo as updateWaterDisplacementTime
|
|
2478
2657
|
};
|
|
2479
2658
|
//# sourceMappingURL=index.es.js.map
|