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