a3js 0.0.41 → 0.0.42
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/a3js.cjs.js +19 -19
- package/dist/a3js.cjs.js.map +1 -1
- package/dist/a3js.es.js +880 -361
- package/dist/a3js.es.js.map +1 -1
- package/package.json +1 -1
package/dist/a3js.es.js
CHANGED
|
@@ -8,19 +8,40 @@ class ae {
|
|
|
8
8
|
constructor(e, t, n) {
|
|
9
9
|
typeof e == "number" ? (this.x = e, this.y = t, this.z = n) : typeof e > "u" ? this.x = this.y = this.z = 0 : (this.x = e.x, this.y = e.y, this.z = e.z);
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* このベクトルのコピーを新しい `Vec3` インスタンスとして返します。
|
|
13
|
+
* @returns コピーされた新しい `Vec3`
|
|
14
|
+
*/
|
|
11
15
|
clone() {
|
|
12
16
|
return new ae(this);
|
|
13
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* このベクトルの値を `MutableVec3` を実装したオブジェクト(例: `THREE.Vector3`)に書き込みます。
|
|
20
|
+
* @param q 書き込み先のオブジェクト
|
|
21
|
+
*/
|
|
14
22
|
write(e) {
|
|
15
23
|
e.x = this.x, e.y = this.y, e.z = this.z;
|
|
16
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* このベクトルを正規化します(長さを1にします)。
|
|
27
|
+
* ゼロベクトルを正規化しようとした場合はコンソールに警告を出します。
|
|
28
|
+
* @returns `this`(メソッドチェーン用)
|
|
29
|
+
*/
|
|
17
30
|
normalize() {
|
|
18
31
|
const e = this.x * this.x + this.y * this.y + this.z * this.z, t = Math.sqrt(e);
|
|
19
32
|
return t !== 0 ? (this.x /= t, this.y /= t, this.z /= t) : console.warn("Vec3.normalize."), this;
|
|
20
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* このベクトルの各成分の符号を反転します(x, y, z をそれぞれ -1 倍します)。
|
|
36
|
+
* @returns `this`(メソッドチェーン用)
|
|
37
|
+
*/
|
|
21
38
|
negate() {
|
|
22
39
|
return this.x *= -1, this.y *= -1, this.z *= -1, this;
|
|
23
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* このベクトルの長さ(ユークリッドノルム)を返します。
|
|
43
|
+
* @returns ベクトルの長さ
|
|
44
|
+
*/
|
|
24
45
|
length() {
|
|
25
46
|
return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
|
|
26
47
|
}
|
|
@@ -33,10 +54,25 @@ class ae {
|
|
|
33
54
|
sub(e, t, n) {
|
|
34
55
|
return typeof e == "number" ? (this.x -= e, this.y -= t, this.z -= n) : (this.x -= e.x, this.y -= e.y, this.z -= e.z), this;
|
|
35
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* このベクトルをスカラー倍します(`this *= s`)。
|
|
59
|
+
* @param s スケール値
|
|
60
|
+
* @returns `this`(メソッドチェーン用)
|
|
61
|
+
*/
|
|
36
62
|
scale(e) {
|
|
37
63
|
return this.x *= e, this.y *= e, this.z *= e, this;
|
|
38
64
|
}
|
|
39
|
-
|
|
65
|
+
/**
|
|
66
|
+
* `v1` と `v2` の外積を計算し、結果をこのベクトルに設定します。
|
|
67
|
+
*
|
|
68
|
+
* @remarks
|
|
69
|
+
* `v1` または `v2` にこのベクトル自身(`this`)を渡すと結果が不正になります。
|
|
70
|
+
* 自分自身を引数として渡さないでください。
|
|
71
|
+
*
|
|
72
|
+
* @param v1 外積の第1ベクトル
|
|
73
|
+
* @param v2 外積の第2ベクトル
|
|
74
|
+
* @returns `this`(メソッドチェーン用)
|
|
75
|
+
*/
|
|
40
76
|
cross(e, t) {
|
|
41
77
|
return this.x = e.y * t.z - e.z * t.y, this.y = e.z * t.x - e.x * t.z, this.z = e.x * t.y - e.y * t.x, this;
|
|
42
78
|
}
|
|
@@ -46,7 +82,13 @@ class ae {
|
|
|
46
82
|
const a = 2 * (s * this.z - c * this.y), d = 2 * (c * this.x - o * this.z), u = 2 * (o * this.y - s * this.x);
|
|
47
83
|
return this.x += A * a + s * u - c * d, this.y += A * d + c * a - o * u, this.z += A * u + o * d - s * a, this;
|
|
48
84
|
}
|
|
49
|
-
|
|
85
|
+
/**
|
|
86
|
+
* 2つのベクトル `v1` と `v2` を線形補間し、結果をこのベクトルに設定します。
|
|
87
|
+
* `t=0` のとき `v1`、`t=1` のとき `v2` と等しくなります。
|
|
88
|
+
* @param v1 補間の始点
|
|
89
|
+
* @param v2 補間の終点
|
|
90
|
+
* @param t 補間係数(0〜1)
|
|
91
|
+
*/
|
|
50
92
|
lerp(e, t, n) {
|
|
51
93
|
this.x = (1 - n) * e.x + n * t.x, this.y = (1 - n) * e.y + n * t.y, this.z = (1 - n) * e.z + n * t.z;
|
|
52
94
|
}
|
|
@@ -59,16 +101,33 @@ class Pe {
|
|
|
59
101
|
constructor(e, t, n, r) {
|
|
60
102
|
typeof e == "number" ? (this.x = e, this.y = t, this.z = n, this.w = r) : typeof e > "u" ? (this.x = this.y = this.z = 0, this.w = 1) : (this.x = e.x, this.y = e.y, this.z = e.z, this.w = e.w);
|
|
61
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* このクォータニオンのコピーを新しい `Quat` インスタンスとして返します。
|
|
106
|
+
* @returns コピーされた新しい `Quat`
|
|
107
|
+
*/
|
|
62
108
|
clone() {
|
|
63
109
|
return new Pe(this);
|
|
64
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* このクォータニオンの値を `MutableQuat` を実装したオブジェクト(例: `THREE.Quaternion`)に書き込みます。
|
|
113
|
+
* @param q 書き込み先のオブジェクト
|
|
114
|
+
*/
|
|
65
115
|
write(e) {
|
|
66
116
|
e.x = this.x, e.y = this.y, e.z = this.z, e.w = this.w;
|
|
67
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* このクォータニオンを正規化します(長さを1にします)。
|
|
120
|
+
* @returns `this`(メソッドチェーン用)
|
|
121
|
+
*/
|
|
68
122
|
normalize() {
|
|
69
123
|
const e = this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w, t = Math.sqrt(e);
|
|
70
124
|
return t !== 0 ? (this.x /= t, this.y /= t, this.z /= t, this.w /= t) : console.warn("Quat.normalize."), this;
|
|
71
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* このクォータニオンの共役を返します(x, y, z 成分の符号を反転します)。
|
|
128
|
+
* 逆回転を表すために使います(正規化されている場合は逆クォータニオンと一致します)。
|
|
129
|
+
* @returns `this`(メソッドチェーン用)
|
|
130
|
+
*/
|
|
72
131
|
conjugate() {
|
|
73
132
|
return this.x *= -1, this.y *= -1, this.z *= -1, this;
|
|
74
133
|
}
|
|
@@ -80,13 +139,25 @@ class Pe {
|
|
|
80
139
|
let a, d, u, m;
|
|
81
140
|
return typeof e == "number" ? (a = e, d = t, u = n, m = r) : (a = e.x, d = e.y, u = e.z, m = e.w), this.x = A * a + o * m + s * u - c * d, this.y = A * d - o * u + s * m + c * a, this.z = A * u + o * d - s * a + c * m, this.w = A * m - o * a - s * d - c * u, this;
|
|
82
141
|
}
|
|
83
|
-
|
|
84
|
-
|
|
142
|
+
/**
|
|
143
|
+
* 2つのクォータニオン `q1` と `q2` を線形補間し、結果をこのクォータニオンに設定します。
|
|
144
|
+
* `t=0` のとき `q1`、`t=1` のとき `q2` と等しくなります。
|
|
145
|
+
* `q1` に `this` 自身を渡しても安全です。
|
|
146
|
+
* @param q1 補間の始点
|
|
147
|
+
* @param q2 補間の終点
|
|
148
|
+
* @param t 補間係数(0〜1)
|
|
149
|
+
*/
|
|
85
150
|
lerp(e, t, n) {
|
|
86
151
|
this.x = (1 - n) * e.x + n * t.x, this.y = (1 - n) * e.y + n * t.y, this.z = (1 - n) * e.z + n * t.z, this.w = (1 - n) * e.w + n * t.w;
|
|
87
152
|
}
|
|
88
|
-
|
|
89
|
-
|
|
153
|
+
/**
|
|
154
|
+
* 2つのクォータニオン `q1` と `q2` を球面線形補間(Slerp)し、結果をこのクォータニオンに設定します。
|
|
155
|
+
* `t=0` のとき `q1`、`t=1` のとき `q2` と等しくなります。
|
|
156
|
+
* `lerp()` より滑らかな回転補間が得られます。`q1` に `this` 自身を渡しても安全です。
|
|
157
|
+
* @param q1 補間の始点
|
|
158
|
+
* @param q2 補間の終点
|
|
159
|
+
* @param t 補間係数(0〜1)
|
|
160
|
+
*/
|
|
90
161
|
slerp(e, t, n) {
|
|
91
162
|
if (n < 0 || n > 1) {
|
|
92
163
|
console.warn("Quat.slerp(): t must be in [0,1]");
|
|
@@ -174,8 +245,11 @@ function ui(i, e = "ZXY", t) {
|
|
|
174
245
|
return r.set(o, s, c), r;
|
|
175
246
|
}
|
|
176
247
|
class Ve {
|
|
248
|
+
/** 位置(ワールド座標)。 */
|
|
177
249
|
loc;
|
|
250
|
+
/** 回転(クォータニオン)。 */
|
|
178
251
|
quat;
|
|
252
|
+
/** 拡大率(各軸の倍率)。初期値は `(1, 1, 1)`。 */
|
|
179
253
|
scale;
|
|
180
254
|
constructor() {
|
|
181
255
|
this.loc = new ae(), this.quat = new Pe(), this.scale = new ae(1, 1, 1);
|
|
@@ -403,12 +477,21 @@ class ir {
|
|
|
403
477
|
this.transform.set(this.startTransform), this.transform.blend(this.endTransform, n);
|
|
404
478
|
}
|
|
405
479
|
}
|
|
406
|
-
const ut = new ae(), Pt = new ae(), kt = new Pe(), nn = new Ve(), rn = new ae(), on = new ae()
|
|
407
|
-
|
|
480
|
+
const ut = new ae(), Pt = new ae(), kt = new Pe(), nn = new Ve(), rn = new ae(), on = new ae(), cs = {
|
|
481
|
+
up: new ae(0, 1, 0)
|
|
482
|
+
};
|
|
483
|
+
class ls extends cn {
|
|
484
|
+
/** 上方向ベクトル。 */
|
|
408
485
|
up;
|
|
486
|
+
/** 常に向き続ける対象のオブジェクト。 */
|
|
409
487
|
target;
|
|
410
488
|
constructor(e) {
|
|
411
|
-
super()
|
|
489
|
+
super();
|
|
490
|
+
const t = {
|
|
491
|
+
...cs,
|
|
492
|
+
...e
|
|
493
|
+
};
|
|
494
|
+
this.target = t.target, this.up = t.up;
|
|
412
495
|
}
|
|
413
496
|
setTarget(e) {
|
|
414
497
|
this.target = e;
|
|
@@ -424,11 +507,21 @@ class cs extends cn {
|
|
|
424
507
|
ut.set(this.transform.loc), this.target.getPosition(Pt), Bt(ut, Pt, this.up, kt), this.transform.quat.set(kt);
|
|
425
508
|
}
|
|
426
509
|
}
|
|
427
|
-
|
|
510
|
+
const us = {
|
|
511
|
+
up: new ae(0, 1, 0)
|
|
512
|
+
};
|
|
513
|
+
class hs extends ir {
|
|
514
|
+
/** 上方向ベクトル。 */
|
|
428
515
|
up;
|
|
516
|
+
/** 常に向き続ける対象のオブジェクト。 */
|
|
429
517
|
target;
|
|
430
518
|
constructor(e) {
|
|
431
|
-
super()
|
|
519
|
+
super();
|
|
520
|
+
const t = {
|
|
521
|
+
...us,
|
|
522
|
+
...e
|
|
523
|
+
};
|
|
524
|
+
this.target = t.target, this.up = t.up;
|
|
432
525
|
}
|
|
433
526
|
init(e, t) {
|
|
434
527
|
super.init(e, t), t.upVector ? this.up = t.upVector : this.up = Me.defaultUpVector;
|
|
@@ -441,26 +534,32 @@ class ls extends ir {
|
|
|
441
534
|
super.update(e), ut.set(this.transform.loc), this.target.getPosition(Pt), Bt(ut, Pt, this.up, kt), this.transform.quat.set(kt);
|
|
442
535
|
}
|
|
443
536
|
}
|
|
444
|
-
const
|
|
537
|
+
const ds = {
|
|
445
538
|
lookFrom: { x: 0, y: 5, z: -10 },
|
|
446
539
|
smoothness: 0.9
|
|
447
540
|
};
|
|
448
|
-
class
|
|
449
|
-
|
|
541
|
+
class fs extends As {
|
|
542
|
+
/** 追従する対象のオブジェクト。 */
|
|
450
543
|
target;
|
|
544
|
+
/** 対象から見た相対位置(カメラをどこに配置するか)。 */
|
|
451
545
|
lookFrom;
|
|
546
|
+
/** 上方向ベクトル。 */
|
|
452
547
|
up;
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
548
|
+
/** なめらかさ(0 以上 1 未満)。 */
|
|
549
|
+
smoothness;
|
|
550
|
+
constructor(e) {
|
|
551
|
+
super();
|
|
552
|
+
const t = {
|
|
553
|
+
...ds,
|
|
554
|
+
...e
|
|
555
|
+
};
|
|
556
|
+
this.target = t.target, this.lookFrom = new ae(t.lookFrom), this.target.upVector ? this.up = this.target.upVector : this.up = Me.defaultUpVector, this.smoothness = t.smoothness;
|
|
458
557
|
}
|
|
459
558
|
init(e, t) {
|
|
460
559
|
super.init(e, t);
|
|
461
560
|
}
|
|
462
561
|
update(e) {
|
|
463
|
-
super.update(e), ut.set(this.transform.loc), this.target.getPosition(Pt), Bt(ut, Pt, this.up, kt), kt.mul(0, 1, 0, 0), nn.quat.set(kt), ut.set(this.lookFrom), ut.apply(this.target.getQuat()), ut.add(this.target.getPosition()), nn.loc.set(ut), this.transform.loc.lerp(this.transform.loc, nn.loc, 1 - this.
|
|
562
|
+
super.update(e), ut.set(this.transform.loc), this.target.getPosition(Pt), Bt(ut, Pt, this.up, kt), kt.mul(0, 1, 0, 0), nn.quat.set(kt), ut.set(this.lookFrom), ut.apply(this.target.getQuat()), ut.add(this.target.getPosition()), nn.loc.set(ut), this.transform.loc.lerp(this.transform.loc, nn.loc, 1 - this.smoothness), this.transform.quat.slerp(this.transform.quat, nn.quat, 1 - this.smoothness);
|
|
464
563
|
}
|
|
465
564
|
}
|
|
466
565
|
const rr = {
|
|
@@ -480,28 +579,28 @@ function or(i) {
|
|
|
480
579
|
function Jn(i) {
|
|
481
580
|
return i.isMesh === !0;
|
|
482
581
|
}
|
|
483
|
-
function
|
|
582
|
+
function ps(i) {
|
|
484
583
|
return i.type === "RoundedBoxGeometry";
|
|
485
584
|
}
|
|
486
|
-
function
|
|
585
|
+
function gs(i) {
|
|
487
586
|
return i.type === "BoxGeometry";
|
|
488
587
|
}
|
|
489
|
-
function
|
|
588
|
+
function ms(i) {
|
|
490
589
|
return i.type === "SphereGeometry";
|
|
491
590
|
}
|
|
492
|
-
function
|
|
591
|
+
function Es(i) {
|
|
493
592
|
return i.type === "IcosahedronGeometry";
|
|
494
593
|
}
|
|
495
|
-
function
|
|
594
|
+
function Is(i) {
|
|
496
595
|
return i.type === "CylinderGeometry";
|
|
497
596
|
}
|
|
498
|
-
function
|
|
597
|
+
function bs(i) {
|
|
499
598
|
return i.type === "CapsuleGeometry";
|
|
500
599
|
}
|
|
501
|
-
function
|
|
600
|
+
function Cs(i) {
|
|
502
601
|
return i.isBone === !0;
|
|
503
602
|
}
|
|
504
|
-
function
|
|
603
|
+
function ys(i) {
|
|
505
604
|
return i.isPerspectiveCamera === !0;
|
|
506
605
|
}
|
|
507
606
|
let je;
|
|
@@ -613,17 +712,17 @@ class hi {
|
|
|
613
712
|
const e = this.completeOptions, t = [];
|
|
614
713
|
this.objectA3.object3D.traverse((r) => {
|
|
615
714
|
if (Jn(r)) {
|
|
616
|
-
const o =
|
|
715
|
+
const o = Ts(r.geometry), s = e.membership << 16 | e.filter;
|
|
617
716
|
if (o)
|
|
618
717
|
o.colliderDesc.setCollisionGroups(s), e.collisionDetection && o.colliderDesc.setActiveEvents(je.ActiveEvents.COLLISION_EVENTS), this.colliderDescs.push(o.colliderDesc), o.colliderDesc.setRestitution(e.restitution).setFriction(e.friction), t.push(o.volume);
|
|
619
718
|
else {
|
|
620
719
|
let c, A;
|
|
621
720
|
switch (e.meshCollider) {
|
|
622
721
|
case "tri_mesh":
|
|
623
|
-
c =
|
|
722
|
+
c = Bs(r), A = di(r.geometry);
|
|
624
723
|
break;
|
|
625
724
|
case "convex_hull":
|
|
626
|
-
c =
|
|
725
|
+
c = ws(r), A = di(r.geometry);
|
|
627
726
|
break;
|
|
628
727
|
}
|
|
629
728
|
c && (c.setCollisionGroups(s), e.collisionDetection && c.setActiveEvents(je.ActiveEvents.COLLISION_EVENTS), this.colliderDescs.push(c), t.push(A));
|
|
@@ -711,7 +810,7 @@ class hi {
|
|
|
711
810
|
}
|
|
712
811
|
}
|
|
713
812
|
}
|
|
714
|
-
function
|
|
813
|
+
function Bs(i) {
|
|
715
814
|
let e = null;
|
|
716
815
|
if (Jn(i)) {
|
|
717
816
|
const t = i;
|
|
@@ -731,7 +830,7 @@ function Cs(i) {
|
|
|
731
830
|
}
|
|
732
831
|
return e;
|
|
733
832
|
}
|
|
734
|
-
function
|
|
833
|
+
function ws(i) {
|
|
735
834
|
let e = null;
|
|
736
835
|
if (Jn(i)) {
|
|
737
836
|
const t = i;
|
|
@@ -761,39 +860,39 @@ function di(i) {
|
|
|
761
860
|
o.set(n[A], n[A + 1], n[A + 2]), s.set(n[A + 3], n[A + 4], n[A + 5]), c.set(n[A + 6], n[A + 7], n[A + 8]), r += o.dot(s.clone().cross(c));
|
|
762
861
|
return Math.abs(r) / 6;
|
|
763
862
|
}
|
|
764
|
-
function
|
|
765
|
-
if (
|
|
863
|
+
function Ts(i) {
|
|
864
|
+
if (ps(i)) {
|
|
766
865
|
const e = i.parameters, t = typeof e?.width == "number" ? e.width / 2 : 0.5, n = typeof e?.height == "number" ? e.height / 2 : 0.5, r = typeof e?.depth == "number" ? e.depth / 2 : 0.5, o = 0.1;
|
|
767
866
|
return {
|
|
768
867
|
colliderDesc: je.ColliderDesc.roundCuboid(t - o, n - o, r - o, o),
|
|
769
868
|
volume: 2 * t * 2 * n * 2 * r
|
|
770
869
|
// GAHA radiusも取れないし、不正確な体積
|
|
771
870
|
};
|
|
772
|
-
} else if (
|
|
871
|
+
} else if (gs(i)) {
|
|
773
872
|
const e = i.parameters, t = typeof e?.width == "number" ? e.width / 2 : 0.5, n = typeof e?.height == "number" ? e.height / 2 : 0.5, r = typeof e?.depth == "number" ? e.depth / 2 : 0.5;
|
|
774
873
|
return {
|
|
775
874
|
colliderDesc: je.ColliderDesc.cuboid(t, n, r),
|
|
776
875
|
volume: 2 * t * 2 * n * 2 * r
|
|
777
876
|
};
|
|
778
|
-
} else if (
|
|
877
|
+
} else if (ms(i)) {
|
|
779
878
|
const e = i.parameters, t = typeof e?.radius == "number" ? e.radius : 1;
|
|
780
879
|
return {
|
|
781
880
|
colliderDesc: je.ColliderDesc.ball(t),
|
|
782
881
|
volume: 4 / 3 * Math.PI * t * t * t
|
|
783
882
|
};
|
|
784
|
-
} else if (
|
|
883
|
+
} else if (Es(i)) {
|
|
785
884
|
const e = i.parameters, t = typeof e?.radius == "number" ? e.radius : 1;
|
|
786
885
|
return {
|
|
787
886
|
colliderDesc: je.ColliderDesc.ball(t),
|
|
788
887
|
volume: 4 / 3 * Math.PI * t * t * t
|
|
789
888
|
};
|
|
790
|
-
} else if (
|
|
889
|
+
} else if (Is(i)) {
|
|
791
890
|
const e = i.parameters, t = typeof e?.radiusBottom == "number" ? e.radiusBottom : 0.5, n = typeof e?.height == "number" ? e.height : 0.5;
|
|
792
891
|
return {
|
|
793
892
|
colliderDesc: je.ColliderDesc.cylinder(n / 2, t),
|
|
794
893
|
volume: Math.PI * t * t * n
|
|
795
894
|
};
|
|
796
|
-
} else if (
|
|
895
|
+
} else if (bs(i)) {
|
|
797
896
|
const e = i.parameters, t = typeof e?.radius == "number" ? e.radius : 0.5, n = typeof e?.height == "number" ? e.height : 0.5;
|
|
798
897
|
return {
|
|
799
898
|
colliderDesc: je.ColliderDesc.capsule(n / 2, t),
|
|
@@ -803,7 +902,7 @@ function Bs(i) {
|
|
|
803
902
|
return null;
|
|
804
903
|
}
|
|
805
904
|
const Hn = new ln();
|
|
806
|
-
async function
|
|
905
|
+
async function OA() {
|
|
807
906
|
await Hn.init();
|
|
808
907
|
}
|
|
809
908
|
const L = {
|
|
@@ -823,7 +922,7 @@ const L = {
|
|
|
823
922
|
t3: new Ve(),
|
|
824
923
|
t4: new Ve()
|
|
825
924
|
};
|
|
826
|
-
function
|
|
925
|
+
function MA(i) {
|
|
827
926
|
return new Promise((e) => {
|
|
828
927
|
setTimeout(() => {
|
|
829
928
|
e();
|
|
@@ -845,12 +944,12 @@ function un(i, e) {
|
|
|
845
944
|
}
|
|
846
945
|
function jn(i, e) {
|
|
847
946
|
if (e = e.replace(/^\.\//, "").replace(/^\//, ""), i.unzipped[e]) {
|
|
848
|
-
const t =
|
|
947
|
+
const t = Rs(e);
|
|
849
948
|
return new Blob([new Uint8Array(i.unzipped[e])], { type: t });
|
|
850
949
|
} else
|
|
851
950
|
throw new Error(`readBlobFromUnzippedA3(): no file at ${e}`);
|
|
852
951
|
}
|
|
853
|
-
const
|
|
952
|
+
const vs = {
|
|
854
953
|
"image/png": /\.png$/i,
|
|
855
954
|
"image/jpeg": /\.(jpg|jpeg)$/i,
|
|
856
955
|
"image/gif": /\.gif$/i,
|
|
@@ -865,8 +964,8 @@ const ws = {
|
|
|
865
964
|
"model/gltf+json": /\.gltf$/i,
|
|
866
965
|
"model/gltf-binary": /\.glb$/i
|
|
867
966
|
};
|
|
868
|
-
function
|
|
869
|
-
for (const [e, t] of Object.entries(
|
|
967
|
+
function Rs(i) {
|
|
968
|
+
for (const [e, t] of Object.entries(vs))
|
|
870
969
|
if (t.test(i))
|
|
871
970
|
return e;
|
|
872
971
|
return "application/octet-stream";
|
|
@@ -878,13 +977,13 @@ function Xn(i, e) {
|
|
|
878
977
|
typeof i[n] == "object" && typeof e[n] == "object" ? t[n] = Xn(i[n], e[n]) : t[n] = e[n];
|
|
879
978
|
return t;
|
|
880
979
|
}
|
|
881
|
-
const
|
|
980
|
+
const Qs = {
|
|
882
981
|
offset: 0.01,
|
|
883
982
|
auto: !0,
|
|
884
983
|
height: 1.5,
|
|
885
984
|
radius: 0.3
|
|
886
985
|
};
|
|
887
|
-
class
|
|
986
|
+
class ks {
|
|
888
987
|
transform;
|
|
889
988
|
objectA3;
|
|
890
989
|
completeOptions;
|
|
@@ -900,7 +999,7 @@ class Rs {
|
|
|
900
999
|
tmpQ1;
|
|
901
1000
|
constructor(e = {}) {
|
|
902
1001
|
this.completeOptions = {
|
|
903
|
-
...
|
|
1002
|
+
...Qs,
|
|
904
1003
|
...e
|
|
905
1004
|
}, this.transform = new Ve(), this.capsuleCenter = new ae(), this.nextLocation = new ae(), this.tmpV1 = new ae(), this.tmpV2 = new ae(), this.tmpQ1 = new Pe();
|
|
906
1005
|
}
|
|
@@ -984,12 +1083,12 @@ class Rs {
|
|
|
984
1083
|
this.tmpV1.add(t), this.collider.setTranslation(this.tmpV1), this.tmpV1.sub(this.capsuleCenter), this.transform.loc.set(this.tmpV1), this.nextLocation.set(this.tmpV1);
|
|
985
1084
|
}
|
|
986
1085
|
}
|
|
987
|
-
const
|
|
1086
|
+
const Ss = {
|
|
988
1087
|
auto: !0,
|
|
989
1088
|
height: 1.5,
|
|
990
1089
|
radius: 0.3
|
|
991
1090
|
};
|
|
992
|
-
class
|
|
1091
|
+
class xs {
|
|
993
1092
|
transform;
|
|
994
1093
|
objectA3;
|
|
995
1094
|
completeOptions;
|
|
@@ -1007,7 +1106,7 @@ class ks {
|
|
|
1007
1106
|
physicsWorld;
|
|
1008
1107
|
constructor(e = {}) {
|
|
1009
1108
|
this.completeOptions = {
|
|
1010
|
-
...
|
|
1109
|
+
...Ss,
|
|
1011
1110
|
...e
|
|
1012
1111
|
}, this.transform = new Ve(), this.capsuleCenter = new ae(), this.nextLocation = new ae(), this.tmpV1 = new ae(), this.tmpV2 = new ae(), this.tmpQ1 = new Pe();
|
|
1013
1112
|
}
|
|
@@ -1106,19 +1205,28 @@ class ks {
|
|
|
1106
1205
|
t.sub(this.capsuleCenter), this.transform.loc.set(t), this.transform.quat.set(this.body.rotation());
|
|
1107
1206
|
}
|
|
1108
1207
|
}
|
|
1109
|
-
const
|
|
1110
|
-
let
|
|
1208
|
+
const Ls = new re.SphereGeometry(), _s = new re.MeshStandardMaterial({ color: 16711680 });
|
|
1209
|
+
let Ns = new re.Mesh(Ls, _s);
|
|
1111
1210
|
class Me {
|
|
1211
|
+
/** 全 `ObjectA3` に共通して使われるデフォルトの回転順番。初期値は `"ZXY"`。 */
|
|
1112
1212
|
static defaultRotationOrder = "ZXY";
|
|
1213
|
+
/** 全 `ObjectA3` に共通して使われるデフォルトの上方向ベクトル。初期値は `(0, 1, 0)`。 */
|
|
1113
1214
|
static defaultUpVector = new ae(0, 1, 0);
|
|
1215
|
+
/** このオブジェクト固有の回転順番。`undefined` のとき `ObjectA3.defaultRotationOrder` が使われます。 */
|
|
1114
1216
|
rotationOrder;
|
|
1217
|
+
/** このオブジェクト固有の上方向ベクトル。`undefined` のとき `ObjectA3.defaultUpVector` が使われます。 */
|
|
1115
1218
|
upVector;
|
|
1219
|
+
/** Three.js の内部オブジェクト(`THREE.Object3D`)です。通常は直接操作しません。 */
|
|
1116
1220
|
object3D;
|
|
1221
|
+
/** このオブジェクトが追加されている `Scene`。追加前は `undefined`。 */
|
|
1117
1222
|
scene;
|
|
1118
1223
|
balloon;
|
|
1119
1224
|
transformer;
|
|
1225
|
+
/** 親オブジェクト。`ObjectA3.add()` で追加された場合に設定されます。 */
|
|
1120
1226
|
parent;
|
|
1227
|
+
/** 子オブジェクトの配列。`ObjectA3.add()` で追加されたオブジェクトが格納されます。 */
|
|
1121
1228
|
children = [];
|
|
1229
|
+
/** `setClickListener()` で登録されたクリックリスナー関数。 */
|
|
1122
1230
|
clickListener;
|
|
1123
1231
|
constructor(e) {
|
|
1124
1232
|
this.transformer = this.initTransformer(e), this.object3D = new re.Object3D();
|
|
@@ -1127,55 +1235,68 @@ class Me {
|
|
|
1127
1235
|
n.userData.a3js = { objectA3: this };
|
|
1128
1236
|
});
|
|
1129
1237
|
}
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1238
|
+
/**
|
|
1239
|
+
* このオブジェクトの Three.js メッシュなどを生成して返すメソッドです。
|
|
1240
|
+
* サブクラスでオーバーライドして、独自の形状を返してください。
|
|
1241
|
+
* 非同期処理が必要な場合はとりあえず `a3jsLoading.clone()` を返しておき、
|
|
1242
|
+
* 読み込み完了後に差し替えてください。
|
|
1243
|
+
* @param _data コンストラクタから渡されたデータ
|
|
1244
|
+
* @returns Three.js の `Object3D`(メッシュ・グループ等)
|
|
1245
|
+
*/
|
|
1134
1246
|
initObject(e) {
|
|
1135
|
-
return
|
|
1247
|
+
return Ns.clone();
|
|
1136
1248
|
}
|
|
1137
1249
|
/**
|
|
1138
|
-
*
|
|
1139
|
-
*
|
|
1140
|
-
* このメソッドをオーバーライドすることでデフォルトの
|
|
1141
|
-
* Transformerを変更することが可能。
|
|
1250
|
+
* コンストラクタから呼び出され、デフォルトで使用される `Transformer` を返すメソッドです。
|
|
1251
|
+
* サブクラスでオーバーライドすることでデフォルトの動作モードを変更できます。
|
|
1142
1252
|
* @param _data コンストラクタから渡された情報
|
|
1143
|
-
* @returns
|
|
1253
|
+
* @returns このオブジェクトで使用する `Transformer`
|
|
1144
1254
|
*/
|
|
1145
1255
|
initTransformer(e) {
|
|
1146
1256
|
return new cn();
|
|
1147
1257
|
}
|
|
1148
1258
|
/**
|
|
1149
|
-
*
|
|
1150
|
-
*
|
|
1259
|
+
* このオブジェクトに使用する `Transformer` を変更します。
|
|
1260
|
+
* 現在の位置・回転・拡大率を引き継いで新しい `Transformer` に切り替えます。
|
|
1261
|
+
* @param transformer 新しい `Transformer`
|
|
1151
1262
|
*/
|
|
1152
1263
|
setTransformer(e) {
|
|
1153
1264
|
L.t0.set(this.transformer.transform), e.init(L.t0, this), this.transformer = e;
|
|
1154
1265
|
}
|
|
1155
1266
|
/**
|
|
1156
|
-
*
|
|
1157
|
-
* @
|
|
1267
|
+
* このオブジェクトに現在設定されている `Transformer` を返します。
|
|
1268
|
+
* @returns 現在の `Transformer`
|
|
1158
1269
|
*/
|
|
1159
1270
|
getTransformer() {
|
|
1160
1271
|
return this.transformer;
|
|
1161
1272
|
}
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1273
|
+
/**
|
|
1274
|
+
* このオブジェクトの制御モード(`TransformMode`)を設定します。
|
|
1275
|
+
* モードに応じた `Transformer` が自動的に適用されます。
|
|
1276
|
+
*
|
|
1277
|
+
* | モード | 使用される Transformer |
|
|
1278
|
+
* |---|---|
|
|
1279
|
+
* | `"Default"` | `DefaultTransformer` |
|
|
1280
|
+
* | `"Smooth"` | `SmoothTransformer` |
|
|
1281
|
+
* | `"Follow"` | `FollowTransformer` |
|
|
1282
|
+
* | `"Billboard"` | `BillboardTransformer` |
|
|
1283
|
+
* | `"SmoothBillboard"` | `SmoothBillboardTransformer` |
|
|
1284
|
+
* | `"SimplePhysics"` | `RapierTransformer` |
|
|
1285
|
+
* | `"KinematicCharacter"` | `KinematicCharacterTransformer` |
|
|
1286
|
+
* | `"DynamicCharacter"` | `DynamicCharacterTransformer` |
|
|
1287
|
+
*
|
|
1288
|
+
* `options` の詳細は各 Transformer クラスのオプション型を参照してください。
|
|
1289
|
+
*
|
|
1290
|
+
* @param mode 設定するモード
|
|
1291
|
+
* @param options モードによっては追加のオプションが必要です
|
|
1292
|
+
*/
|
|
1293
|
+
setTransformMode(e, t) {
|
|
1294
|
+
e === "Default" ? this.setTransformer(new cn()) : e === "Smooth" ? this.setTransformer(new ir()) : e === "Follow" ? this.setTransformer(new fs(t)) : e === "Billboard" ? this.setTransformer(new ls(t)) : e === "SmoothBillboard" ? this.setTransformer(new hs(t)) : e === "SimplePhysics" ? this.setTransformer(new hi(t)) : e === "KinematicCharacter" ? this.setTransformer(new ks(t)) : e === "DynamicCharacter" && this.setTransformer(new xs(t));
|
|
1295
|
+
}
|
|
1296
|
+
/**
|
|
1297
|
+
* `"SimplePhysics"` モードを設定します。`setTransformMode("SimplePhysics", options)` と同等です。
|
|
1298
|
+
* @param options 物理挙動のオプション(`PhysicsMotionOptions`)
|
|
1299
|
+
*/
|
|
1179
1300
|
initSimplePhysics(e) {
|
|
1180
1301
|
const t = {
|
|
1181
1302
|
...rr,
|
|
@@ -1188,6 +1309,11 @@ class Me {
|
|
|
1188
1309
|
t.update(e);
|
|
1189
1310
|
});
|
|
1190
1311
|
}
|
|
1312
|
+
/**
|
|
1313
|
+
* このオブジェクトに子オブジェクトを追加します。
|
|
1314
|
+
* 追加したオブジェクトはこのオブジェクトの座標系に従って動きます。
|
|
1315
|
+
* @param obj 追加する子オブジェクト
|
|
1316
|
+
*/
|
|
1191
1317
|
add(e) {
|
|
1192
1318
|
if (e.scene) {
|
|
1193
1319
|
console.warn("ObjectA3.add(obj) is ignored.");
|
|
@@ -1199,6 +1325,10 @@ class Me {
|
|
|
1199
1325
|
}
|
|
1200
1326
|
this.children.push(e), e.parent = this, this.object3D.add(e.object3D);
|
|
1201
1327
|
}
|
|
1328
|
+
/**
|
|
1329
|
+
* このオブジェクトから子オブジェクトを取り除きます。
|
|
1330
|
+
* @param obj 取り除く子オブジェクト
|
|
1331
|
+
*/
|
|
1202
1332
|
remove(e) {
|
|
1203
1333
|
if (e.parent !== this) {
|
|
1204
1334
|
console.warn("ObjectA3.remove(obj) is ignored.");
|
|
@@ -1207,29 +1337,41 @@ class Me {
|
|
|
1207
1337
|
const t = this.children.indexOf(e);
|
|
1208
1338
|
this.children.splice(t, 1), e.parent = void 0, this.object3D.remove(e.object3D);
|
|
1209
1339
|
}
|
|
1340
|
+
/**
|
|
1341
|
+
* このオブジェクトに吹き出しを表示します。
|
|
1342
|
+
* @param message 吹き出しに表示するメッセージ
|
|
1343
|
+
* @remarks 現在未実装です。
|
|
1344
|
+
*/
|
|
1210
1345
|
setSpeechBubble(e) {
|
|
1211
|
-
this.balloon ? this.balloon.message = e : this.balloon = new
|
|
1346
|
+
this.balloon ? this.balloon.message = e : this.balloon = new Ds(e);
|
|
1212
1347
|
}
|
|
1213
1348
|
/**
|
|
1214
|
-
*
|
|
1215
|
-
*
|
|
1216
|
-
*
|
|
1349
|
+
* このオブジェクトがクリックされたときに呼ばれる関数を登録します。
|
|
1350
|
+
* 登録できるリスナーは1つだけです。2回目の呼び出しで上書きされます。
|
|
1351
|
+
* @param func クリック時に呼ばれる関数。引数にクリックされた `ObjectA3` が渡されます。
|
|
1217
1352
|
*/
|
|
1218
1353
|
setClickListener(e) {
|
|
1219
1354
|
this.clickListener = e;
|
|
1220
1355
|
}
|
|
1221
1356
|
/**
|
|
1222
|
-
*
|
|
1223
|
-
*
|
|
1224
|
-
*
|
|
1225
|
-
* @param
|
|
1226
|
-
* @param
|
|
1357
|
+
* 物理エンジンにより衝突が検知されたときに呼び出されるコールバックメソッドです。
|
|
1358
|
+
* 衝突イベントを受け取るには、サブクラスでオーバーライドしてください。
|
|
1359
|
+
* また、`PhysicsMotionOptions.collisionDetection` を `true` に設定する必要があります。
|
|
1360
|
+
* @param obj 衝突相手の `ObjectA3`
|
|
1361
|
+
* @param started 衝突開始のとき `true`、衝突終了のとき `false`
|
|
1362
|
+
* @param myPartNo このオブジェクトの、ぶつかったパーツのコライダー番号
|
|
1363
|
+
* @param yourPartNo 相手オブジェクトの、ぶつかったパーツのコライダー番号
|
|
1227
1364
|
*/
|
|
1228
1365
|
handleCollision(e, t, n, r) {
|
|
1229
1366
|
}
|
|
1230
1367
|
async clicked() {
|
|
1231
1368
|
this.clickListener && await this.clickListener(this);
|
|
1232
1369
|
}
|
|
1370
|
+
/**
|
|
1371
|
+
* このオブジェクトの現在の位置を返します。
|
|
1372
|
+
* @param out 値を書き込む `Vec3`(省略時は新しい `Vec3` を返します)
|
|
1373
|
+
* @returns 現在の位置
|
|
1374
|
+
*/
|
|
1233
1375
|
getPosition(e) {
|
|
1234
1376
|
return e ? (e.set(this.transformer.transform.loc), e) : this.transformer.transform.loc.clone();
|
|
1235
1377
|
}
|
|
@@ -1239,6 +1381,11 @@ class Me {
|
|
|
1239
1381
|
setPositionNow(e, t, n) {
|
|
1240
1382
|
typeof e == "number" ? L.v0.set(e, t, n) : L.v0.set(e), this.transformer.setPositionNow(L.v0);
|
|
1241
1383
|
}
|
|
1384
|
+
/**
|
|
1385
|
+
* このオブジェクトの現在の回転をクォータニオンで返します。
|
|
1386
|
+
* @param out 値を書き込む `Quat`(省略時は新しい `Quat` を返します)
|
|
1387
|
+
* @returns 現在の回転(クォータニオン)
|
|
1388
|
+
*/
|
|
1242
1389
|
getQuat(e) {
|
|
1243
1390
|
return e ? (e.set(this.transformer.transform.quat), e) : this.transformer.transform.quat.clone();
|
|
1244
1391
|
}
|
|
@@ -1248,6 +1395,11 @@ class Me {
|
|
|
1248
1395
|
setQuatNow(e, t, n, r) {
|
|
1249
1396
|
typeof e == "number" ? L.q0.set(e, t, n, r) : L.q0.set(e), this.transformer.setQuatNow(L.q0);
|
|
1250
1397
|
}
|
|
1398
|
+
/**
|
|
1399
|
+
* このオブジェクトの現在の拡大率を返します。
|
|
1400
|
+
* @param out 値を書き込む `Vec3`(省略時は新しい `Vec3` を返します)
|
|
1401
|
+
* @returns 現在の拡大率(x, y, z 各軸)
|
|
1402
|
+
*/
|
|
1251
1403
|
getScale(e) {
|
|
1252
1404
|
return e ? (e.set(this.transformer.transform.scale), e) : this.transformer.transform.scale.clone();
|
|
1253
1405
|
}
|
|
@@ -1277,12 +1429,27 @@ class Me {
|
|
|
1277
1429
|
const r = this.upVector ? this.upVector : Me.defaultUpVector;
|
|
1278
1430
|
Bt(this.transformer.transform.loc, L.v1, r, L.q1), this.setQuatNow(L.q1);
|
|
1279
1431
|
}
|
|
1432
|
+
/**
|
|
1433
|
+
* このオブジェクトのローカル X 軸方向の単位ベクトルを返します。
|
|
1434
|
+
* @param out 値を書き込む `Vec3`(省略時は新しい `Vec3` を返します)
|
|
1435
|
+
* @returns ローカル X 軸の単位ベクトル(ワールド座標)
|
|
1436
|
+
*/
|
|
1280
1437
|
getUnitVecX(e) {
|
|
1281
1438
|
return e ? (e.set(1, 0, 0), e.apply(this.object3D.quaternion)) : new ae(1, 0, 0).apply(this.object3D.quaternion);
|
|
1282
1439
|
}
|
|
1440
|
+
/**
|
|
1441
|
+
* このオブジェクトのローカル Y 軸方向の単位ベクトルを返します。
|
|
1442
|
+
* @param out 値を書き込む `Vec3`(省略時は新しい `Vec3` を返します)
|
|
1443
|
+
* @returns ローカル Y 軸の単位ベクトル(ワールド座標)
|
|
1444
|
+
*/
|
|
1283
1445
|
getUnitVecY(e) {
|
|
1284
1446
|
return e ? (e.set(0, 1, 0), e.apply(this.object3D.quaternion)) : new ae(0, 1, 0).apply(this.object3D.quaternion);
|
|
1285
1447
|
}
|
|
1448
|
+
/**
|
|
1449
|
+
* このオブジェクトのローカル Z 軸方向の単位ベクトルを返します。
|
|
1450
|
+
* @param out 値を書き込む `Vec3`(省略時は新しい `Vec3` を返します)
|
|
1451
|
+
* @returns ローカル Z 軸の単位ベクトル(ワールド座標)
|
|
1452
|
+
*/
|
|
1286
1453
|
getUnitVecZ(e) {
|
|
1287
1454
|
return e ? (e.set(0, 0, 1), e.apply(this.object3D.quaternion)) : new ae(0, 0, 1).apply(this.object3D.quaternion);
|
|
1288
1455
|
}
|
|
@@ -1314,90 +1481,214 @@ class Me {
|
|
|
1314
1481
|
mulScaleNow(e, t, n) {
|
|
1315
1482
|
this.getScale(L.v0), typeof e == "number" ? L.v0.set(L.v0.x * e, L.v0.y * t, L.v0.z * n) : L.v0.set(L.v0.x * e.x, L.v0.y * e.y, L.v0.z * e.z), this.setScaleNow(L.v0);
|
|
1316
1483
|
}
|
|
1484
|
+
/**
|
|
1485
|
+
* このオブジェクトをローカル Z 軸の正方向(前方)へ移動します。
|
|
1486
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1487
|
+
* @param f 移動距離
|
|
1488
|
+
*/
|
|
1317
1489
|
moveForward(e) {
|
|
1318
1490
|
this.getUnitVecZ(L.v0), L.v0.scale(e), this.translate(L.v0);
|
|
1319
1491
|
}
|
|
1492
|
+
/**
|
|
1493
|
+
* このオブジェクトをローカル Z 軸の正方向(前方)へ即座に移動します。
|
|
1494
|
+
* @param f 移動距離
|
|
1495
|
+
*/
|
|
1320
1496
|
moveForwardNow(e) {
|
|
1321
1497
|
this.getUnitVecZ(L.v0), L.v0.scale(e), this.translateNow(L.v0);
|
|
1322
1498
|
}
|
|
1499
|
+
/**
|
|
1500
|
+
* このオブジェクトをローカル Z 軸の負方向(後方)へ移動します。
|
|
1501
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1502
|
+
* @param b 移動距離
|
|
1503
|
+
*/
|
|
1323
1504
|
moveBackward(e) {
|
|
1324
1505
|
this.getUnitVecZ(L.v0), L.v0.scale(-e), this.translate(L.v0);
|
|
1325
1506
|
}
|
|
1507
|
+
/**
|
|
1508
|
+
* このオブジェクトをローカル Z 軸の負方向(後方)へ即座に移動します。
|
|
1509
|
+
* @param b 移動距離
|
|
1510
|
+
*/
|
|
1326
1511
|
moveBackwardNow(e) {
|
|
1327
1512
|
this.getUnitVecZ(L.v0), L.v0.scale(-e), this.translateNow(L.v0);
|
|
1328
1513
|
}
|
|
1514
|
+
/**
|
|
1515
|
+
* このオブジェクトをローカル X 軸の負方向(右方向)へ移動します。
|
|
1516
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1517
|
+
* @param r 移動距離
|
|
1518
|
+
*/
|
|
1329
1519
|
moveRight(e) {
|
|
1330
1520
|
this.getUnitVecX(L.v0), L.v0.scale(-e), this.translate(L.v0);
|
|
1331
1521
|
}
|
|
1522
|
+
/**
|
|
1523
|
+
* このオブジェクトをローカル X 軸の負方向(右方向)へ即座に移動します。
|
|
1524
|
+
* @param r 移動距離
|
|
1525
|
+
*/
|
|
1332
1526
|
moveRightNow(e) {
|
|
1333
1527
|
this.getUnitVecX(L.v0), L.v0.scale(-e), this.translateNow(L.v0);
|
|
1334
1528
|
}
|
|
1529
|
+
/**
|
|
1530
|
+
* このオブジェクトをローカル X 軸の正方向(左方向)へ移動します。
|
|
1531
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1532
|
+
* @param l 移動距離
|
|
1533
|
+
*/
|
|
1335
1534
|
moveLeft(e) {
|
|
1336
1535
|
this.getUnitVecX(L.v0), L.v0.scale(e), this.translate(L.v0);
|
|
1337
1536
|
}
|
|
1537
|
+
/**
|
|
1538
|
+
* このオブジェクトをローカル X 軸の正方向(左方向)へ即座に移動します。
|
|
1539
|
+
* @param l 移動距離
|
|
1540
|
+
*/
|
|
1338
1541
|
moveLeftNow(e) {
|
|
1339
1542
|
this.getUnitVecX(L.v0), L.v0.scale(e), this.translateNow(L.v0);
|
|
1340
1543
|
}
|
|
1544
|
+
/**
|
|
1545
|
+
* このオブジェクトをローカル Y 軸の正方向(上方向)へ移動します。
|
|
1546
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1547
|
+
* @param u 移動距離
|
|
1548
|
+
*/
|
|
1341
1549
|
moveUp(e) {
|
|
1342
1550
|
this.getUnitVecY(L.v0), L.v0.scale(e), this.translate(L.v0);
|
|
1343
1551
|
}
|
|
1552
|
+
/**
|
|
1553
|
+
* このオブジェクトをローカル Y 軸の正方向(上方向)へ即座に移動します。
|
|
1554
|
+
* @param u 移動距離
|
|
1555
|
+
*/
|
|
1344
1556
|
moveUpNow(e) {
|
|
1345
1557
|
this.getUnitVecY(L.v0), L.v0.scale(e), this.translateNow(L.v0);
|
|
1346
1558
|
}
|
|
1559
|
+
/**
|
|
1560
|
+
* このオブジェクトをローカル Y 軸の負方向(下方向)へ移動します。
|
|
1561
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1562
|
+
* @param d 移動距離
|
|
1563
|
+
*/
|
|
1347
1564
|
moveDown(e) {
|
|
1348
1565
|
this.getUnitVecY(L.v0), L.v0.scale(-e), this.translate(L.v0);
|
|
1349
1566
|
}
|
|
1567
|
+
/**
|
|
1568
|
+
* このオブジェクトをローカル Y 軸の負方向(下方向)へ即座に移動します。
|
|
1569
|
+
* @param d 移動距離
|
|
1570
|
+
*/
|
|
1350
1571
|
moveDownNow(e) {
|
|
1351
1572
|
this.getUnitVecY(L.v0), L.v0.scale(-e), this.translateNow(L.v0);
|
|
1352
1573
|
}
|
|
1574
|
+
/**
|
|
1575
|
+
* このオブジェクトを上向きに回転させます(X 軸回りに仰角方向)。
|
|
1576
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1577
|
+
* @param u 回転量(度)
|
|
1578
|
+
*/
|
|
1353
1579
|
turnUp(e) {
|
|
1354
1580
|
this.mulRotation(-e, 0, 0);
|
|
1355
1581
|
}
|
|
1582
|
+
/**
|
|
1583
|
+
* このオブジェクトを上向きに即座に回転させます(X 軸回りに仰角方向)。
|
|
1584
|
+
* @param u 回転量(度)
|
|
1585
|
+
*/
|
|
1356
1586
|
turnUpNow(e) {
|
|
1357
1587
|
this.mulRotationNow(-e, 0, 0);
|
|
1358
1588
|
}
|
|
1589
|
+
/**
|
|
1590
|
+
* このオブジェクトを下向きに回転させます(X 軸回りに俯角方向)。
|
|
1591
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1592
|
+
* @param d 回転量(度)
|
|
1593
|
+
*/
|
|
1359
1594
|
turnDown(e) {
|
|
1360
1595
|
this.mulRotation(e, 0, 0);
|
|
1361
1596
|
}
|
|
1597
|
+
/**
|
|
1598
|
+
* このオブジェクトを下向きに即座に回転させます(X 軸回りに俯角方向)。
|
|
1599
|
+
* @param d 回転量(度)
|
|
1600
|
+
*/
|
|
1362
1601
|
turnDownNow(e) {
|
|
1363
1602
|
this.mulRotationNow(e, 0, 0);
|
|
1364
1603
|
}
|
|
1604
|
+
/**
|
|
1605
|
+
* このオブジェクトを右向きに回転させます(Y 軸回りに右旋回)。
|
|
1606
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1607
|
+
* @param r 回転量(度)
|
|
1608
|
+
*/
|
|
1365
1609
|
turnRight(e) {
|
|
1366
1610
|
this.mulRotation(0, -e, 0);
|
|
1367
1611
|
}
|
|
1612
|
+
/**
|
|
1613
|
+
* このオブジェクトを右向きに即座に回転させます(Y 軸回りに右旋回)。
|
|
1614
|
+
* @param r 回転量(度)
|
|
1615
|
+
*/
|
|
1368
1616
|
turnRightNow(e) {
|
|
1369
1617
|
this.mulRotationNow(0, -e, 0);
|
|
1370
1618
|
}
|
|
1619
|
+
/**
|
|
1620
|
+
* このオブジェクトを左向きに回転させます(Y 軸回りに左旋回)。
|
|
1621
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1622
|
+
* @param l 回転量(度)
|
|
1623
|
+
*/
|
|
1371
1624
|
turnLeft(e) {
|
|
1372
1625
|
this.mulRotation(0, e, 0);
|
|
1373
1626
|
}
|
|
1627
|
+
/**
|
|
1628
|
+
* このオブジェクトを左向きに即座に回転させます(Y 軸回りに左旋回)。
|
|
1629
|
+
* @param l 回転量(度)
|
|
1630
|
+
*/
|
|
1374
1631
|
turnLeftNow(e) {
|
|
1375
1632
|
this.mulRotationNow(0, e, 0);
|
|
1376
1633
|
}
|
|
1634
|
+
/**
|
|
1635
|
+
* このオブジェクトを右方向にロール回転させます(Z 軸回りに時計回り)。
|
|
1636
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1637
|
+
* @param r 回転量(度)
|
|
1638
|
+
*/
|
|
1377
1639
|
rollRight(e) {
|
|
1378
1640
|
this.mulRotation(0, 0, e);
|
|
1379
1641
|
}
|
|
1642
|
+
/**
|
|
1643
|
+
* このオブジェクトを右方向に即座にロール回転させます(Z 軸回りに時計回り)。
|
|
1644
|
+
* @param r 回転量(度)
|
|
1645
|
+
*/
|
|
1380
1646
|
rollRightNow(e) {
|
|
1381
1647
|
this.mulRotationNow(0, 0, e);
|
|
1382
1648
|
}
|
|
1649
|
+
/**
|
|
1650
|
+
* このオブジェクトを左方向にロール回転させます(Z 軸回りに反時計回り)。
|
|
1651
|
+
* `"Smooth"` モードの場合はなめらかに補間されます。
|
|
1652
|
+
* @param l 回転量(度)
|
|
1653
|
+
*/
|
|
1383
1654
|
rollLeft(e) {
|
|
1384
1655
|
this.mulRotation(0, 0, -e);
|
|
1385
1656
|
}
|
|
1657
|
+
/**
|
|
1658
|
+
* このオブジェクトを左方向に即座にロール回転させます(Z 軸回りに反時計回り)。
|
|
1659
|
+
* @param l 回転量(度)
|
|
1660
|
+
*/
|
|
1386
1661
|
rollLeftNow(e) {
|
|
1387
1662
|
this.mulRotationNow(0, 0, -e);
|
|
1388
1663
|
}
|
|
1389
1664
|
setLinearVelocity(e, t, n) {
|
|
1390
1665
|
typeof e == "number" ? L.v0.set(e, t, n) : L.v0.set(e), this.transformer.setLinearVelocity(L.v0);
|
|
1391
1666
|
}
|
|
1667
|
+
/**
|
|
1668
|
+
* このオブジェクトの線速度を返します。
|
|
1669
|
+
* 物理演算系のモードでのみ有効な値が返ります。
|
|
1670
|
+
* @param v 値を書き込む `Vec3`(省略時は新しい `Vec3` を返します)
|
|
1671
|
+
* @returns 線速度
|
|
1672
|
+
*/
|
|
1392
1673
|
getLinearVelocity(e) {
|
|
1393
1674
|
return this.transformer.getLinearVelocity(e);
|
|
1394
1675
|
}
|
|
1395
1676
|
setAngularVelocity(e, t, n) {
|
|
1396
1677
|
typeof e == "number" ? L.v0.set(e, t, n) : L.v0.set(e), this.transformer.setAngularVelocity(L.v0);
|
|
1397
1678
|
}
|
|
1679
|
+
/**
|
|
1680
|
+
* このオブジェクトの角速度を返します(単位:ラジアン/秒)。
|
|
1681
|
+
* 物理演算系のモードでのみ有効な値が返ります。
|
|
1682
|
+
* @param v 値を書き込む `Vec3`(省略時は新しい `Vec3` を返します)
|
|
1683
|
+
* @returns 角速度
|
|
1684
|
+
*/
|
|
1398
1685
|
getAngularVelocity(e) {
|
|
1399
1686
|
return this.transformer.getAngularVelocity(e);
|
|
1400
1687
|
}
|
|
1688
|
+
/**
|
|
1689
|
+
* このオブジェクトに加えられている力をリセットします。
|
|
1690
|
+
* 物理演算系のモードでのみ有効です。
|
|
1691
|
+
*/
|
|
1401
1692
|
resetForce() {
|
|
1402
1693
|
this.transformer.resetForce();
|
|
1403
1694
|
}
|
|
@@ -1419,6 +1710,10 @@ class Me {
|
|
|
1419
1710
|
L.v0.set(e), L.v1.set(t);
|
|
1420
1711
|
this.transformer.addForceAtPoint(L.v0, L.v1);
|
|
1421
1712
|
}
|
|
1713
|
+
/**
|
|
1714
|
+
* このオブジェクトに加えられているトルクをリセットします。
|
|
1715
|
+
* 物理演算系のモードでのみ有効です。
|
|
1716
|
+
*/
|
|
1422
1717
|
resetTorque() {
|
|
1423
1718
|
this.transformer.resetTorque();
|
|
1424
1719
|
}
|
|
@@ -1453,17 +1748,17 @@ class Me {
|
|
|
1453
1748
|
this.transformer.removeOneselfFromPhysics(e);
|
|
1454
1749
|
}
|
|
1455
1750
|
/**
|
|
1456
|
-
*
|
|
1457
|
-
*
|
|
1458
|
-
*
|
|
1459
|
-
*
|
|
1460
|
-
* @returns
|
|
1751
|
+
* このオブジェクトが地面に接地しているかどうかを返します。
|
|
1752
|
+
* `"KinematicCharacter"` や `"DynamicCharacter"` モードでは
|
|
1753
|
+
* 他のオブジェクトとの衝突を考慮した正確な判定を行います。
|
|
1754
|
+
* それ以外のモードでは、Y 座標が 0 以下のとき接地していると判定します。
|
|
1755
|
+
* @returns 接地しているとき `true`
|
|
1461
1756
|
*/
|
|
1462
1757
|
isGrounded() {
|
|
1463
1758
|
return this.transformer.isGrounded();
|
|
1464
1759
|
}
|
|
1465
1760
|
}
|
|
1466
|
-
class
|
|
1761
|
+
class Ds {
|
|
1467
1762
|
message;
|
|
1468
1763
|
dir;
|
|
1469
1764
|
offsetTop;
|
|
@@ -1475,7 +1770,9 @@ class _s {
|
|
|
1475
1770
|
}
|
|
1476
1771
|
}
|
|
1477
1772
|
class Ar {
|
|
1773
|
+
/** このアクションの 3D モデル形状。 */
|
|
1478
1774
|
shape;
|
|
1775
|
+
/** このアクションのモーション(アニメーション)。 */
|
|
1479
1776
|
motion;
|
|
1480
1777
|
constructor(e, t) {
|
|
1481
1778
|
this.shape = e, this.motion = t;
|
|
@@ -1488,12 +1785,22 @@ class Ar {
|
|
|
1488
1785
|
}
|
|
1489
1786
|
}
|
|
1490
1787
|
class Wt extends Me {
|
|
1788
|
+
/**
|
|
1789
|
+
* 非同期初期化の完了を待つための `Promise`。
|
|
1790
|
+
* `await obj.ready` でモデルの読み込み完了を待機してください。
|
|
1791
|
+
*/
|
|
1491
1792
|
ready;
|
|
1793
|
+
/** 名前で管理されているアクションの辞書。 */
|
|
1492
1794
|
actions;
|
|
1795
|
+
/** 現在再生中のアクション。 */
|
|
1493
1796
|
currentAction;
|
|
1797
|
+
/** ループ再生するアクション(`setState()` で設定)。 */
|
|
1494
1798
|
stateAction;
|
|
1799
|
+
/** 一度だけ再生するアクション(`setEmote()` で設定)。再生終了後に `stateAction` に戻ります。 */
|
|
1495
1800
|
emoteAction;
|
|
1801
|
+
/** モーフィング(表情・形状変化)の情報。 */
|
|
1496
1802
|
morphs;
|
|
1803
|
+
/** `true` のとき、モーションのモーフィング値を上書きしません。 */
|
|
1497
1804
|
overwriteMorphs;
|
|
1498
1805
|
constructor(e) {
|
|
1499
1806
|
super(e), this.actions = {}, this.morphs = {}, this.overwriteMorphs = !1, this.ready = this.asyncInit(e);
|
|
@@ -1547,25 +1854,49 @@ class Wt extends Me {
|
|
|
1547
1854
|
getActionNames() {
|
|
1548
1855
|
return Object.keys(this.actions);
|
|
1549
1856
|
}
|
|
1857
|
+
/**
|
|
1858
|
+
* 指定した名前のアクションをループ再生します(基本アクション)。
|
|
1859
|
+
* 現在のアクションを停止してから切り替えます。
|
|
1860
|
+
* `setEmote()` で一時的に別のアクションを再生した後も、このアクションに戻ります。
|
|
1861
|
+
* @param name アクション名
|
|
1862
|
+
*/
|
|
1550
1863
|
setState(e) {
|
|
1551
1864
|
const t = this.actions[e];
|
|
1552
1865
|
t && (this.currentAction && this.currentAction.disable(this.object3D, this.scene), t.enable(this.object3D, this.scene), this.currentAction = t, this.stateAction = t);
|
|
1553
1866
|
}
|
|
1867
|
+
/**
|
|
1868
|
+
* 指定した名前のアクションを一度だけ再生します(エモートアクション)。
|
|
1869
|
+
* 再生が終わると `setState()` で設定したアクションに自動的に戻ります。
|
|
1870
|
+
* @param name アクション名
|
|
1871
|
+
*/
|
|
1554
1872
|
setEmote(e) {
|
|
1555
1873
|
const t = this.actions[e];
|
|
1556
1874
|
t && (this.currentAction && this.currentAction.disable(this.object3D, this.scene), t.enable(this.object3D, this.scene), this.currentAction = t, this.emoteAction = t);
|
|
1557
1875
|
}
|
|
1558
|
-
|
|
1559
|
-
|
|
1876
|
+
/**
|
|
1877
|
+
* `true` にすると、モーションのモーフィング値がオブジェクトに上書きされなくなります。
|
|
1878
|
+
* `setMorph()` で手動設定した値を保持したい場合に使います。
|
|
1879
|
+
* @param b `true` で上書きを無効化
|
|
1880
|
+
*/
|
|
1560
1881
|
setMorphsOverwrite(e) {
|
|
1561
1882
|
this.overwriteMorphs = e;
|
|
1562
1883
|
}
|
|
1884
|
+
/**
|
|
1885
|
+
* 指定した名前のモーフ(表情・形状変化)の値を設定します。
|
|
1886
|
+
* 値の範囲はモデルによって異なりますが、通常は 0.0 〜 1.0 です。
|
|
1887
|
+
* @param name モーフ名
|
|
1888
|
+
* @param value モーフの値
|
|
1889
|
+
*/
|
|
1563
1890
|
setMorph(e, t) {
|
|
1564
1891
|
if (e in this.morphs) {
|
|
1565
1892
|
const { array: n, idx: r } = this.morphs[e];
|
|
1566
1893
|
n[r] = t;
|
|
1567
1894
|
}
|
|
1568
1895
|
}
|
|
1896
|
+
/**
|
|
1897
|
+
* このオブジェクトが持つモーフ名の一覧を返します。
|
|
1898
|
+
* @returns モーフ名の配列
|
|
1899
|
+
*/
|
|
1569
1900
|
getMorphNames() {
|
|
1570
1901
|
return Object.keys(this.morphs);
|
|
1571
1902
|
}
|
|
@@ -2466,7 +2797,7 @@ var Te = (i, e) => () => (e || (e = { exports: {} }, i(e.exports, e)), e.exports
|
|
|
2466
2797
|
t = {};
|
|
2467
2798
|
}
|
|
2468
2799
|
i.clearRegExpParserCache = o;
|
|
2469
|
-
}),
|
|
2800
|
+
}), Fs = Te((i) => {
|
|
2470
2801
|
var e = i && i.__extends || /* @__PURE__ */ (function() {
|
|
2471
2802
|
var g = function(l, h) {
|
|
2472
2803
|
return g = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(f, b) {
|
|
@@ -2645,7 +2976,7 @@ var Te = (i, e) => () => (e || (e = { exports: {} }, i(e.exports, e)), e.exports
|
|
|
2645
2976
|
};
|
|
2646
2977
|
})();
|
|
2647
2978
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.charCodeToOptimizedIndex = i.minOptimizationVal = i.buildLineBreakIssueMessage = i.LineTerminatorOptimizedTester = i.isShortPattern = i.isCustomPattern = i.cloneEmptyGroups = i.performWarningRuntimeChecks = i.performRuntimeChecks = i.addStickyFlag = i.addStartOfInput = i.findUnreachablePatterns = i.findModesThatDoNotExist = i.findInvalidGroupType = i.findDuplicatePatterns = i.findUnsupportedFlags = i.findStartOfInputAnchor = i.findEmptyMatchRegExps = i.findEndOfInputAnchor = i.findInvalidPatterns = i.findMissingPatterns = i.validatePatterns = i.analyzeTokenTypes = i.enableSticky = i.disableSticky = i.SUPPORT_STICKY = i.MODES = i.DEFAULT_MODE = void 0;
|
|
2648
|
-
var t = Zn(), n = fn(), r = Fe(), o =
|
|
2979
|
+
var t = Zn(), n = fn(), r = Fe(), o = Fs(), s = $n(), c = "PATTERN";
|
|
2649
2980
|
i.DEFAULT_MODE = "defaultMode", i.MODES = "modes", i.SUPPORT_STICKY = typeof new RegExp("(?:)").sticky == "boolean";
|
|
2650
2981
|
function A() {
|
|
2651
2982
|
i.SUPPORT_STICKY = !1;
|
|
@@ -3772,7 +4103,7 @@ See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346
|
|
|
3772
4103
|
i.firstForTerminal = c;
|
|
3773
4104
|
}), dr = Te((i) => {
|
|
3774
4105
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.IN = void 0, i.IN = "_~IN~_";
|
|
3775
|
-
}),
|
|
4106
|
+
}), Os = Te((i) => {
|
|
3776
4107
|
var e = i && i.__extends || /* @__PURE__ */ (function() {
|
|
3777
4108
|
var u = function(m, p) {
|
|
3778
4109
|
return u = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(E, g) {
|
|
@@ -3940,7 +4271,7 @@ see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;
|
|
|
3940
4271
|
var A = "Duplicate definition, rule: ->" + c + "<- is already defined in the grammar: ->" + s.grammarName + "<-";
|
|
3941
4272
|
return A;
|
|
3942
4273
|
} };
|
|
3943
|
-
}),
|
|
4274
|
+
}), Ms = Te((i) => {
|
|
3944
4275
|
var e = i && i.__extends || /* @__PURE__ */ (function() {
|
|
3945
4276
|
var c = function(A, a) {
|
|
3946
4277
|
return c = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d, u) {
|
|
@@ -4743,9 +5074,9 @@ see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;
|
|
|
4743
5074
|
}
|
|
4744
5075
|
}), Y;
|
|
4745
5076
|
}
|
|
4746
|
-
}),
|
|
5077
|
+
}), Ps = Te((i) => {
|
|
4747
5078
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.validateGrammar = i.resolveGrammar = void 0;
|
|
4748
|
-
var e = Fe(), t =
|
|
5079
|
+
var e = Fe(), t = Ms(), n = fr(), r = gn();
|
|
4749
5080
|
function o(c) {
|
|
4750
5081
|
c = e.defaults(c, { errMsgProvider: r.defaultGrammarResolverErrorProvider });
|
|
4751
5082
|
var A = {};
|
|
@@ -4943,7 +5274,7 @@ see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;
|
|
|
4943
5274
|
return r | n | t;
|
|
4944
5275
|
}
|
|
4945
5276
|
i.getKeyForAutomaticLookahead = e, 32 - i.BITS_FOR_ALT_IDX;
|
|
4946
|
-
}),
|
|
5277
|
+
}), Us = Te((i) => {
|
|
4947
5278
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.LooksAhead = void 0;
|
|
4948
5279
|
var e = En(), t = Fe(), n = ot(), r = ti(), o = pn(), s = (function() {
|
|
4949
5280
|
function c() {
|
|
@@ -5000,7 +5331,7 @@ see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;
|
|
|
5000
5331
|
}, c;
|
|
5001
5332
|
})();
|
|
5002
5333
|
i.LooksAhead = s;
|
|
5003
|
-
}),
|
|
5334
|
+
}), Gs = Te((i) => {
|
|
5004
5335
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.addNoneTerminalToCst = i.addTerminalToCst = i.setNodeLocationFull = i.setNodeLocationOnlyOffset = void 0;
|
|
5005
5336
|
function e(o, s) {
|
|
5006
5337
|
isNaN(o.startOffset) === !0 ? (o.startOffset = s.startOffset, o.endOffset = s.endOffset) : o.endOffset < s.endOffset && (o.endOffset = s.endOffset);
|
|
@@ -5036,7 +5367,7 @@ see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;
|
|
|
5036
5367
|
return e.isUndefined(A) || A.configurable ? (Object.defineProperty(s, n, { enumerable: !1, configurable: !0, writable: !1, value: c }), !0) : !1;
|
|
5037
5368
|
}
|
|
5038
5369
|
i.defineNameProp = o;
|
|
5039
|
-
}),
|
|
5370
|
+
}), Hs = Te((i) => {
|
|
5040
5371
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.validateRedundantMethods = i.validateMissingCstMethods = i.validateVisitor = i.CstVisitorDefinitionError = i.createBaseVisitorConstructorWithDefaults = i.createBaseSemanticVisitorConstructor = i.defaultVisit = void 0;
|
|
5041
5372
|
var e = Fe(), t = gr();
|
|
5042
5373
|
function n(u, m) {
|
|
@@ -5103,9 +5434,9 @@ There is no Grammar Rule corresponding to this method's name.
|
|
|
5103
5434
|
return p;
|
|
5104
5435
|
}
|
|
5105
5436
|
i.validateRedundantMethods = d;
|
|
5106
|
-
}),
|
|
5437
|
+
}), js = Te((i) => {
|
|
5107
5438
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.TreeBuilder = void 0;
|
|
5108
|
-
var e =
|
|
5439
|
+
var e = Gs(), t = Fe(), n = Hs(), r = ot(), o = (function() {
|
|
5109
5440
|
function s() {
|
|
5110
5441
|
}
|
|
5111
5442
|
return s.prototype.initTreeBuilder = function(c) {
|
|
@@ -5164,7 +5495,7 @@ There is no Grammar Rule corresponding to this method's name.
|
|
|
5164
5495
|
}, s;
|
|
5165
5496
|
})();
|
|
5166
5497
|
i.TreeBuilder = o;
|
|
5167
|
-
}),
|
|
5498
|
+
}), qs = Te((i) => {
|
|
5168
5499
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.LexerAdapter = void 0;
|
|
5169
5500
|
var e = ot(), t = (function() {
|
|
5170
5501
|
function n() {
|
|
@@ -5196,7 +5527,7 @@ There is no Grammar Rule corresponding to this method's name.
|
|
|
5196
5527
|
}, n;
|
|
5197
5528
|
})();
|
|
5198
5529
|
i.LexerAdapter = t;
|
|
5199
|
-
}),
|
|
5530
|
+
}), zs = Te((i) => {
|
|
5200
5531
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.RecognizerApi = void 0;
|
|
5201
5532
|
var e = Fe(), t = tn(), n = ot(), r = gn(), o = fr(), s = nt(), c = (function() {
|
|
5202
5533
|
function A() {
|
|
@@ -5409,7 +5740,7 @@ There is no Grammar Rule corresponding to this method's name.
|
|
|
5409
5740
|
}, A;
|
|
5410
5741
|
})();
|
|
5411
5742
|
i.RecognizerApi = c;
|
|
5412
|
-
}),
|
|
5743
|
+
}), Ks = Te((i) => {
|
|
5413
5744
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.RecognizerEngine = void 0;
|
|
5414
5745
|
var e = Fe(), t = ti(), n = tn(), r = En(), o = mn(), s = ot(), c = pr(), A = St(), a = $t(), d = gr(), u = (function() {
|
|
5415
5746
|
function m() {
|
|
@@ -5626,7 +5957,7 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis
|
|
|
5626
5957
|
}, m;
|
|
5627
5958
|
})();
|
|
5628
5959
|
i.RecognizerEngine = u;
|
|
5629
|
-
}),
|
|
5960
|
+
}), Vs = Te((i) => {
|
|
5630
5961
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.ErrorHandler = void 0;
|
|
5631
5962
|
var e = tn(), t = Fe(), n = En(), r = ot(), o = (function() {
|
|
5632
5963
|
function s() {
|
|
@@ -5651,7 +5982,7 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis
|
|
|
5651
5982
|
}, s;
|
|
5652
5983
|
})();
|
|
5653
5984
|
i.ErrorHandler = o;
|
|
5654
|
-
}),
|
|
5985
|
+
}), Ws = Te((i) => {
|
|
5655
5986
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.ContentAssist = void 0;
|
|
5656
5987
|
var e = mn(), t = Fe(), n = (function() {
|
|
5657
5988
|
function r() {
|
|
@@ -5667,7 +5998,7 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis
|
|
|
5667
5998
|
}, r;
|
|
5668
5999
|
})();
|
|
5669
6000
|
i.ContentAssist = n;
|
|
5670
|
-
}),
|
|
6001
|
+
}), Ys = Te((i) => {
|
|
5671
6002
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.GastRecorder = void 0;
|
|
5672
6003
|
var e = Fe(), t = nt(), n = fn(), r = $t(), o = St(), s = ot(), c = ti(), A = { description: "This Object indicates the Parser is during Recording Phase" };
|
|
5673
6004
|
Object.freeze(A);
|
|
@@ -5808,7 +6139,7 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis
|
|
|
5808
6139
|
throw I.KNOWN_RECORDER_ERROR = !0, I;
|
|
5809
6140
|
}
|
|
5810
6141
|
}
|
|
5811
|
-
}),
|
|
6142
|
+
}), Js = Te((i) => {
|
|
5812
6143
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.PerformanceTracer = void 0;
|
|
5813
6144
|
var e = Fe(), t = ot(), n = (function() {
|
|
5814
6145
|
function r() {
|
|
@@ -5830,7 +6161,7 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis
|
|
|
5830
6161
|
}, r;
|
|
5831
6162
|
})();
|
|
5832
6163
|
i.PerformanceTracer = n;
|
|
5833
|
-
}),
|
|
6164
|
+
}), Xs = Te((i) => {
|
|
5834
6165
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.applyMixins = void 0;
|
|
5835
6166
|
function e(t, n) {
|
|
5836
6167
|
n.forEach(function(r) {
|
|
@@ -5863,7 +6194,7 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis
|
|
|
5863
6194
|
};
|
|
5864
6195
|
})();
|
|
5865
6196
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.EmbeddedActionsParser = i.CstParser = i.Parser = i.EMPTY_ALT = i.ParserDefinitionErrorType = i.DEFAULT_RULE_CONFIG = i.DEFAULT_PARSER_CONFIG = i.END_OF_FILE = void 0;
|
|
5866
|
-
var t = Fe(), n =
|
|
6197
|
+
var t = Fe(), n = Os(), r = St(), o = gn(), s = Ps(), c = pr(), A = Us(), a = js(), d = qs(), u = zs(), m = Ks(), p = Vs(), E = Ws(), g = Ys(), l = Js(), h = Xs();
|
|
5867
6198
|
i.END_OF_FILE = r.createTokenInstance(r.EOF, "", NaN, NaN, NaN, NaN, NaN, NaN), Object.freeze(i.END_OF_FILE), i.DEFAULT_PARSER_CONFIG = Object.freeze({ recoveryEnabled: !1, maxLookahead: 3, dynamicTokensEnabled: !1, outputCst: !0, errorMessageProvider: o.defaultParserErrorProvider, nodeLocationTracking: "none", traceInitPerf: !1, skipValidations: !1 }), i.DEFAULT_RULE_CONFIG = Object.freeze({ recoveryValueFunc: function() {
|
|
5868
6199
|
}, resyncEnabled: !0 }), (function(T) {
|
|
5869
6200
|
T[T.INVALID_RULE_NAME = 0] = "INVALID_RULE_NAME", T[T.DUPLICATE_RULE_NAME = 1] = "DUPLICATE_RULE_NAME", T[T.INVALID_RULE_OVERRIDE = 2] = "INVALID_RULE_OVERRIDE", T[T.DUPLICATE_PRODUCTIONS = 3] = "DUPLICATE_PRODUCTIONS", T[T.UNRESOLVED_SUBRULE_REF = 4] = "UNRESOLVED_SUBRULE_REF", T[T.LEFT_RECURSION = 5] = "LEFT_RECURSION", T[T.NONE_LAST_EMPTY_ALT = 6] = "NONE_LAST_EMPTY_ALT", T[T.AMBIGUOUS_ALTS = 7] = "AMBIGUOUS_ALTS", T[T.CONFLICT_TOKENS_RULES_NAMESPACE = 8] = "CONFLICT_TOKENS_RULES_NAMESPACE", T[T.INVALID_TOKEN_NAME = 9] = "INVALID_TOKEN_NAME", T[T.NO_NON_EMPTY_LOOKAHEAD = 10] = "NO_NON_EMPTY_LOOKAHEAD", T[T.AMBIGUOUS_PREFIX_ALTS = 11] = "AMBIGUOUS_PREFIX_ALTS", T[T.TOO_MANY_ALTS = 12] = "TOO_MANY_ALTS";
|
|
@@ -5949,7 +6280,7 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis
|
|
|
5949
6280
|
return S;
|
|
5950
6281
|
})(b);
|
|
5951
6282
|
i.EmbeddedActionsParser = C;
|
|
5952
|
-
}),
|
|
6283
|
+
}), Zs = Te((i) => {
|
|
5953
6284
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.createSyntaxDiagramsCode = void 0;
|
|
5954
6285
|
var e = cr();
|
|
5955
6286
|
function t(n, r) {
|
|
@@ -5985,7 +6316,7 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis
|
|
|
5985
6316
|
return d + u + m + p + E + g;
|
|
5986
6317
|
}
|
|
5987
6318
|
i.createSyntaxDiagramsCode = t;
|
|
5988
|
-
}),
|
|
6319
|
+
}), $s = Te((i) => {
|
|
5989
6320
|
Object.defineProperty(i, "__esModule", { value: !0 }), i.Parser = i.createSyntaxDiagramsCode = i.clearCache = i.GAstVisitor = i.serializeProduction = i.serializeGrammar = i.Terminal = i.Rule = i.RepetitionWithSeparator = i.RepetitionMandatoryWithSeparator = i.RepetitionMandatory = i.Repetition = i.Option = i.NonTerminal = i.Alternative = i.Alternation = i.defaultLexerErrorProvider = i.NoViableAltException = i.NotAllInputParsedException = i.MismatchedTokenException = i.isRecognitionException = i.EarlyExitException = i.defaultParserErrorProvider = i.tokenName = i.tokenMatcher = i.tokenLabel = i.EOF = i.createTokenInstance = i.createToken = i.LexerDefinitionErrorType = i.Lexer = i.EMPTY_ALT = i.ParserDefinitionErrorType = i.EmbeddedActionsParser = i.CstParser = i.VERSION = void 0;
|
|
5990
6321
|
var e = cr();
|
|
5991
6322
|
Object.defineProperty(i, "VERSION", { enumerable: !0, get: function() {
|
|
@@ -6079,7 +6410,7 @@ Make sure that all grammar rule definitions are done before 'performSelfAnalysis
|
|
|
6079
6410
|
Please avoid using it as it will be completely removed in the future`);
|
|
6080
6411
|
}
|
|
6081
6412
|
i.clearCache = u;
|
|
6082
|
-
var m =
|
|
6413
|
+
var m = Zs();
|
|
6083
6414
|
Object.defineProperty(i, "createSyntaxDiagramsCode", { enumerable: !0, get: function() {
|
|
6084
6415
|
return m.createSyntaxDiagramsCode;
|
|
6085
6416
|
} });
|
|
@@ -6092,8 +6423,8 @@ See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`);
|
|
|
6092
6423
|
})();
|
|
6093
6424
|
i.Parser = p;
|
|
6094
6425
|
});
|
|
6095
|
-
const Yt =
|
|
6096
|
-
class
|
|
6426
|
+
const Yt = $s();
|
|
6427
|
+
class ea extends ht {
|
|
6097
6428
|
/**
|
|
6098
6429
|
* VRMLのBackgroundノードでSkyboxが使われた時に、scene.backgroundと
|
|
6099
6430
|
* scene.environmentに設定できるCubeTextureを受け渡すために使用される。
|
|
@@ -6146,7 +6477,7 @@ class Zs extends ht {
|
|
|
6146
6477
|
parse(e, t) {
|
|
6147
6478
|
const n = {};
|
|
6148
6479
|
function r(Q) {
|
|
6149
|
-
const w = o(), y = new
|
|
6480
|
+
const w = o(), y = new ta(w.tokens), k = new ia(w.tokenVocabulary), B = s(k.getBaseCstVisitorConstructor()), N = y.lex(Q);
|
|
6150
6481
|
k.input = N.tokens;
|
|
6151
6482
|
const O = k.vrml();
|
|
6152
6483
|
if (k.errors.length > 0)
|
|
@@ -6649,7 +6980,7 @@ class Zs extends ht {
|
|
|
6649
6980
|
Qe.push([k[Ie], k[Ie + 1], k[Ie + 2]]);
|
|
6650
6981
|
k = Qe;
|
|
6651
6982
|
}
|
|
6652
|
-
this.backgroundTexture = new
|
|
6983
|
+
this.backgroundTexture = new oa(
|
|
6653
6984
|
{
|
|
6654
6985
|
skyColor: N,
|
|
6655
6986
|
skyAngle: B,
|
|
@@ -6751,7 +7082,7 @@ class Zs extends ht {
|
|
|
6751
7082
|
y && (w.map.center.copy(y.center), w.map.rotation = y.rotation, w.map.repeat.copy(y.scale), w.map.offset.copy(y.translation));
|
|
6752
7083
|
}
|
|
6753
7084
|
return w.map && w.map.fookHolder && w.map.fookHolder.fooks.push(async (B) => {
|
|
6754
|
-
const N = await
|
|
7085
|
+
const N = await sa(B.source.data);
|
|
6755
7086
|
w.transparent = N, w.needsUpdate = N;
|
|
6756
7087
|
}), w;
|
|
6757
7088
|
}
|
|
@@ -7602,7 +7933,7 @@ class Zs extends ht {
|
|
|
7602
7933
|
function ie(Q, w, y) {
|
|
7603
7934
|
const k = [], B = {};
|
|
7604
7935
|
for (let O = 0, U = Q.length; O < U; O += 3) {
|
|
7605
|
-
const V = Q[O], ee = Q[O + 1], se = Q[O + 2], ge = new
|
|
7936
|
+
const V = Q[O], ee = Q[O + 1], se = Q[O + 2], ge = new ra(V, ee, se);
|
|
7606
7937
|
z.fromArray(w, V * 3), K.fromArray(w, ee * 3), Ae.fromArray(w, se * 3), q.subVectors(Ae, K), J.subVectors(z, K), q.cross(J), q.normalize(), ge.normal.copy(q), B[V] === void 0 && (B[V] = []), B[ee] === void 0 && (B[ee] = []), B[se] === void 0 && (B[se] = []), B[V].push(ge.normal), B[ee].push(ge.normal), B[se].push(ge.normal), k.push(ge);
|
|
7607
7938
|
}
|
|
7608
7939
|
const N = [];
|
|
@@ -7633,7 +7964,7 @@ class Zs extends ht {
|
|
|
7633
7964
|
return c(ce);
|
|
7634
7965
|
}
|
|
7635
7966
|
}
|
|
7636
|
-
class
|
|
7967
|
+
class ta {
|
|
7637
7968
|
constructor(e) {
|
|
7638
7969
|
this.lexer = new Yt.Lexer(e);
|
|
7639
7970
|
}
|
|
@@ -7644,8 +7975,8 @@ class $s {
|
|
|
7644
7975
|
return t;
|
|
7645
7976
|
}
|
|
7646
7977
|
}
|
|
7647
|
-
const
|
|
7648
|
-
class
|
|
7978
|
+
const na = Yt.CstParser;
|
|
7979
|
+
class ia extends na {
|
|
7649
7980
|
constructor(e) {
|
|
7650
7981
|
super(e);
|
|
7651
7982
|
const t = this, n = e.Version, r = e.LCurly, o = e.RCurly, s = e.LSquare, c = e.RSquare, A = e.Identifier, a = e.RouteIdentifier, d = e.StringLiteral, u = e.HexLiteral, m = e.NumberLiteral, p = e.TrueLiteral, E = e.FalseLiteral, g = e.NullLiteral, l = e.DEF, h = e.USE, f = e.ROUTE, b = e.TO, I = e.NodeName;
|
|
@@ -7747,7 +8078,7 @@ class ta extends ea {
|
|
|
7747
8078
|
}), this.performSelfAnalysis();
|
|
7748
8079
|
}
|
|
7749
8080
|
}
|
|
7750
|
-
class
|
|
8081
|
+
class ra {
|
|
7751
8082
|
constructor(e, t, n) {
|
|
7752
8083
|
this.a = e, this.b = t, this.c = n, this.normal = new _e();
|
|
7753
8084
|
}
|
|
@@ -7758,7 +8089,7 @@ const st = {
|
|
|
7758
8089
|
RGB: 3,
|
|
7759
8090
|
RGBA: 4
|
|
7760
8091
|
};
|
|
7761
|
-
class
|
|
8092
|
+
class oa {
|
|
7762
8093
|
/**
|
|
7763
8094
|
* @param {object} options
|
|
7764
8095
|
* @param {number[][]} [options.skyColor] - RGB 配列の配列 (0〜1)
|
|
@@ -7963,7 +8294,7 @@ class ia {
|
|
|
7963
8294
|
return o.needsUpdate = !0, o.minFilter = Zt, o.magFilter = yt, o;
|
|
7964
8295
|
}
|
|
7965
8296
|
}
|
|
7966
|
-
async function
|
|
8297
|
+
async function sa(i) {
|
|
7967
8298
|
await new Promise((o, s) => {
|
|
7968
8299
|
if (i.complete) return o();
|
|
7969
8300
|
i.onload = o, i.onerror = s;
|
|
@@ -7975,7 +8306,7 @@ async function ra(i) {
|
|
|
7975
8306
|
if (r[o] < 255) return !0;
|
|
7976
8307
|
return !1;
|
|
7977
8308
|
}
|
|
7978
|
-
class
|
|
8309
|
+
class aa extends ht {
|
|
7979
8310
|
/**
|
|
7980
8311
|
* Constructs a new BVH loader.
|
|
7981
8312
|
*
|
|
@@ -8127,19 +8458,19 @@ class oa extends ht {
|
|
|
8127
8458
|
};
|
|
8128
8459
|
}
|
|
8129
8460
|
}
|
|
8130
|
-
async function
|
|
8461
|
+
async function Aa(i, e) {
|
|
8131
8462
|
const t = new re.LoadingManager();
|
|
8132
8463
|
t.setURLModifier((c) => (c.startsWith("./") && (c = c.substring(2)), URL.createObjectURL(jn(i, c))));
|
|
8133
|
-
const n = new
|
|
8464
|
+
const n = new ea(t), r = await n.loadAsync(e), o = n.backgroundTexture, s = n.fog;
|
|
8134
8465
|
return { object3D: r, bgTexture: o, fog: s };
|
|
8135
8466
|
}
|
|
8136
8467
|
let Bn;
|
|
8137
|
-
async function
|
|
8138
|
-
Bn || (Bn = new
|
|
8468
|
+
async function ca(i, e) {
|
|
8469
|
+
Bn || (Bn = new aa());
|
|
8139
8470
|
const t = un(i, e);
|
|
8140
8471
|
return await Bn.parse(t);
|
|
8141
8472
|
}
|
|
8142
|
-
function
|
|
8473
|
+
function la(i) {
|
|
8143
8474
|
const e = i.clip.clone(), t = i.skeleton.bones[0].clone(!0), n = [];
|
|
8144
8475
|
t.traverse((o) => {
|
|
8145
8476
|
o instanceof re.Bone && n.push(o);
|
|
@@ -8151,12 +8482,19 @@ function Aa(i) {
|
|
|
8151
8482
|
};
|
|
8152
8483
|
}
|
|
8153
8484
|
class mr {
|
|
8485
|
+
/** このモーションの名前。 */
|
|
8154
8486
|
name;
|
|
8487
|
+
/** 現在の再生位置(秒)。 */
|
|
8155
8488
|
time;
|
|
8489
|
+
/** 再生完了時のリスナー。 */
|
|
8156
8490
|
finishListener;
|
|
8491
|
+
/** このモーションの総再生時間(秒)。 */
|
|
8157
8492
|
duration;
|
|
8493
|
+
/** 一時停止中かどうか。 */
|
|
8158
8494
|
isPaused;
|
|
8495
|
+
/** 再生回数。 */
|
|
8159
8496
|
playCount;
|
|
8497
|
+
/** ボーンごとの補間器。内部処理用です。 */
|
|
8160
8498
|
interpolants;
|
|
8161
8499
|
constructor(e, t) {
|
|
8162
8500
|
this.name = t || e.name, this.time = 0, this.duration = e.duration, this.isPaused = !1, this.playCount = 0, this.interpolants = {};
|
|
@@ -8217,7 +8555,7 @@ class mr {
|
|
|
8217
8555
|
return t;
|
|
8218
8556
|
}
|
|
8219
8557
|
}
|
|
8220
|
-
const
|
|
8558
|
+
const ua = {
|
|
8221
8559
|
type: "audio",
|
|
8222
8560
|
autoplay: !1,
|
|
8223
8561
|
loop: !1,
|
|
@@ -8233,7 +8571,7 @@ const ca = {
|
|
|
8233
8571
|
}
|
|
8234
8572
|
}
|
|
8235
8573
|
};
|
|
8236
|
-
async function
|
|
8574
|
+
async function PA() {
|
|
8237
8575
|
try {
|
|
8238
8576
|
Ct.listener.context.state !== "running" && await Ct.listener.context.resume();
|
|
8239
8577
|
} catch {
|
|
@@ -8241,13 +8579,15 @@ async function OA() {
|
|
|
8241
8579
|
}
|
|
8242
8580
|
}
|
|
8243
8581
|
class Ct extends Me {
|
|
8582
|
+
/** 音声のリスナー(耳の位置)。カメラに自動的に取り付けられます。 */
|
|
8244
8583
|
static listener = new re.AudioListener();
|
|
8584
|
+
/** 音声ファイルのローダー。 */
|
|
8245
8585
|
static audioLoader = new re.AudioLoader();
|
|
8246
8586
|
ready;
|
|
8247
8587
|
options;
|
|
8248
8588
|
sound;
|
|
8249
8589
|
constructor(e, t = {}) {
|
|
8250
|
-
super(), this.options = Xn(
|
|
8590
|
+
super(), this.options = Xn(ua, t), this.ready = this.asyncInit(e);
|
|
8251
8591
|
}
|
|
8252
8592
|
initObject() {
|
|
8253
8593
|
return new re.Object3D();
|
|
@@ -8272,9 +8612,15 @@ class Ct extends Me {
|
|
|
8272
8612
|
});
|
|
8273
8613
|
});
|
|
8274
8614
|
}
|
|
8615
|
+
/**
|
|
8616
|
+
* サウンドを再生します。すでに再生中の場合は最初から再生し直します。
|
|
8617
|
+
*/
|
|
8275
8618
|
play() {
|
|
8276
8619
|
this.sound?.stop(), this.sound?.play();
|
|
8277
8620
|
}
|
|
8621
|
+
/**
|
|
8622
|
+
* サウンドを停止します。
|
|
8623
|
+
*/
|
|
8278
8624
|
stop() {
|
|
8279
8625
|
this.sound?.stop();
|
|
8280
8626
|
}
|
|
@@ -8309,31 +8655,64 @@ class qn extends Ar {
|
|
|
8309
8655
|
});
|
|
8310
8656
|
}
|
|
8311
8657
|
}
|
|
8312
|
-
class
|
|
8658
|
+
class ha extends Wt {
|
|
8659
|
+
/**
|
|
8660
|
+
* 静止時のアクション番号。
|
|
8661
|
+
* @remarks 現在未実装です。
|
|
8662
|
+
*/
|
|
8313
8663
|
haltActionNo = 0;
|
|
8314
|
-
|
|
8664
|
+
/**
|
|
8665
|
+
* 歩行時のアクション番号。
|
|
8666
|
+
* @remarks 現在未実装です。
|
|
8667
|
+
*/
|
|
8315
8668
|
walkActionNo = 0;
|
|
8316
|
-
|
|
8669
|
+
/**
|
|
8670
|
+
* 走行時のアクション番号。
|
|
8671
|
+
* @remarks 現在未実装です。
|
|
8672
|
+
*/
|
|
8317
8673
|
runActionNo = 0;
|
|
8318
|
-
|
|
8674
|
+
/**
|
|
8675
|
+
* 歩行と判定する最低速度(m/s)。
|
|
8676
|
+
* @remarks 現在未実装です。
|
|
8677
|
+
*/
|
|
8319
8678
|
minWalkSpeed = 0.1;
|
|
8320
|
-
|
|
8679
|
+
/**
|
|
8680
|
+
* 走行と判定する最低速度(m/s)。
|
|
8681
|
+
* @remarks 現在未実装です。
|
|
8682
|
+
*/
|
|
8321
8683
|
minRunSpeed = 1;
|
|
8322
|
-
|
|
8684
|
+
/**
|
|
8685
|
+
* ビルボード表示(常にカメラ方向を向く)を有効にするか。
|
|
8686
|
+
* @remarks 現在未実装です。
|
|
8687
|
+
*/
|
|
8323
8688
|
isBillboard = !1;
|
|
8324
|
-
|
|
8689
|
+
/** CATALOG.XML の `<c>` タグに記述されたコメント文字列。ない場合は `null`。 */
|
|
8325
8690
|
comment = null;
|
|
8326
|
-
|
|
8691
|
+
/**
|
|
8692
|
+
* CATALOG.XML に記述されたタグ一覧。
|
|
8693
|
+
* @remarks 現在未実装です。
|
|
8694
|
+
*/
|
|
8327
8695
|
tags = [];
|
|
8328
|
-
|
|
8696
|
+
/**
|
|
8697
|
+
* CATALOG.XML に記述されたプロファイル URI 一覧。
|
|
8698
|
+
* @remarks 現在未実装です。
|
|
8699
|
+
*/
|
|
8329
8700
|
profiles = [];
|
|
8330
|
-
|
|
8701
|
+
/**
|
|
8702
|
+
* CATALOG.XML に記述されたサムネイル画像の Blob 一覧。
|
|
8703
|
+
* @remarks 現在未実装です。
|
|
8704
|
+
*/
|
|
8331
8705
|
thumbnails = [];
|
|
8332
|
-
|
|
8706
|
+
/**
|
|
8707
|
+
* CATALOG.XML に含まれる RDF メタデータ要素。ない場合は `null`。
|
|
8708
|
+
* @remarks 現在未実装です。
|
|
8709
|
+
*/
|
|
8333
8710
|
rdf = null;
|
|
8334
|
-
|
|
8711
|
+
/**
|
|
8712
|
+
* CATALOG.XML に記述された HTML ファイルの内容文字列。
|
|
8713
|
+
* @remarks 現在未実装です。
|
|
8714
|
+
*/
|
|
8335
8715
|
htmlfile = "";
|
|
8336
|
-
// 未実装 GAHA
|
|
8337
8716
|
constructor(e) {
|
|
8338
8717
|
super(e);
|
|
8339
8718
|
}
|
|
@@ -8380,7 +8759,7 @@ class la extends Wt {
|
|
|
8380
8759
|
const I = h.getAttribute("bvh");
|
|
8381
8760
|
if (I && I !== "none") {
|
|
8382
8761
|
const X = t.zipUrl + "!" + I;
|
|
8383
|
-
wn[X] || (wn[X] = await
|
|
8762
|
+
wn[X] || (wn[X] = await ca(t, I)), b = la(wn[X]), b && b.clip.tracks.forEach((oe) => {
|
|
8384
8763
|
oe.setInterpolation(re.InterpolateDiscrete);
|
|
8385
8764
|
});
|
|
8386
8765
|
} else
|
|
@@ -8407,7 +8786,7 @@ class la extends Wt {
|
|
|
8407
8786
|
if (oe && he) {
|
|
8408
8787
|
const M = t.zipUrl + "!" + he;
|
|
8409
8788
|
if (!Lt[M]) {
|
|
8410
|
-
const K = await
|
|
8789
|
+
const K = await Aa(t, he);
|
|
8411
8790
|
Lt[M] = K.object3D, K.bgTexture && (D = K.bgTexture), K.fog && (x = K.fog);
|
|
8412
8791
|
}
|
|
8413
8792
|
const H = X.getAttribute("scale");
|
|
@@ -8483,7 +8862,7 @@ class la extends Wt {
|
|
|
8483
8862
|
}
|
|
8484
8863
|
}
|
|
8485
8864
|
function Er(i, e) {
|
|
8486
|
-
if (
|
|
8865
|
+
if (Cs(i)) {
|
|
8487
8866
|
const t = e[i.name];
|
|
8488
8867
|
t && (i.add(t), delete e[i.name]);
|
|
8489
8868
|
}
|
|
@@ -8491,12 +8870,18 @@ function Er(i, e) {
|
|
|
8491
8870
|
Er(t, e);
|
|
8492
8871
|
});
|
|
8493
8872
|
}
|
|
8494
|
-
class
|
|
8873
|
+
class da {
|
|
8874
|
+
/** 内部で使用している Three.js の `THREE.Scene`。直接操作するよりも `Scene` のメソッドを使うことを推奨します。 */
|
|
8495
8875
|
scene;
|
|
8876
|
+
/** このシーンに追加されているすべての `ObjectA3` の配列です。 */
|
|
8496
8877
|
objects;
|
|
8878
|
+
/** 物理ワールドのインスタンス。`initPhysics()` が呼ばれていない場合は `null` です。 */
|
|
8497
8879
|
physicsWorld = null;
|
|
8880
|
+
/** 物理シミュレーションの時間刻み(秒)。初期値は `1/60` 秒です。 */
|
|
8498
8881
|
physicsDt = 1 / 60;
|
|
8882
|
+
/** 衝突が検知されたときに呼び出されるリスナー。`setCollisionListener()` で登録します。 */
|
|
8499
8883
|
collisionListener;
|
|
8884
|
+
/** 物理デバッグモード時に表示するコライダーの輪郭線。`setPhysicsDebugMode(true)` で有効になります。 */
|
|
8500
8885
|
rapierLines;
|
|
8501
8886
|
constructor() {
|
|
8502
8887
|
this.scene = new re.Scene(), this.objects = [], Hn.isInitialized && (this.physicsWorld = Hn.createWorld({
|
|
@@ -8504,12 +8889,23 @@ class ua {
|
|
|
8504
8889
|
timestep: this.physicsDt
|
|
8505
8890
|
}));
|
|
8506
8891
|
}
|
|
8892
|
+
/**
|
|
8893
|
+
* `ObjectA3` をこのシーンに追加します。
|
|
8894
|
+
* 追加されたオブジェクトは毎フレームの `update()` で更新されるようになります。
|
|
8895
|
+
* 物理エンジンが有効な場合は物理ワールドへの登録も自動的に行われます。
|
|
8896
|
+
* @param object 追加する `ObjectA3`
|
|
8897
|
+
*/
|
|
8507
8898
|
add(e) {
|
|
8508
8899
|
if (this.scene.add(e.object3D), this.objects.push(e), e.scene = this, this.physicsWorld && (e.addOneselfToPhysics(this.physicsWorld), e instanceof Wt))
|
|
8509
8900
|
for (const t of Object.values(e.actions))
|
|
8510
8901
|
t.motion.addOneselfToPhysics(this.physicsWorld);
|
|
8511
|
-
e instanceof
|
|
8902
|
+
e instanceof ha && e.currentAction instanceof qn && (e.currentAction.backgroundTexture && (this.scene.background = e.currentAction.backgroundTexture, this.scene.environment = e.currentAction.backgroundTexture), e.currentAction.fog && (this.scene.fog = e.currentAction.fog));
|
|
8512
8903
|
}
|
|
8904
|
+
/**
|
|
8905
|
+
* `ObjectA3` をこのシーンから取り除きます。
|
|
8906
|
+
* 物理エンジンが有効な場合は物理ワールドからの登録解除も自動的に行われます。
|
|
8907
|
+
* @param object 取り除く `ObjectA3`
|
|
8908
|
+
*/
|
|
8513
8909
|
remove(e) {
|
|
8514
8910
|
this.scene.remove(e.object3D);
|
|
8515
8911
|
{
|
|
@@ -8521,11 +8917,19 @@ class ua {
|
|
|
8521
8917
|
t.motion.removeOneselfFromPhysics(this.physicsWorld);
|
|
8522
8918
|
e instanceof Wt && e.currentAction instanceof qn && (e.currentAction.backgroundTexture && (this.scene.background = null, this.scene.environment = null), e.currentAction.fog && (this.scene.fog = null));
|
|
8523
8919
|
}
|
|
8920
|
+
/**
|
|
8921
|
+
* このシーンに追加されているすべての `ObjectA3` を取り除きます。
|
|
8922
|
+
*/
|
|
8524
8923
|
removeAll() {
|
|
8525
8924
|
[...this.objects].forEach((t) => {
|
|
8526
8925
|
this.remove(t);
|
|
8527
8926
|
});
|
|
8528
8927
|
}
|
|
8928
|
+
/**
|
|
8929
|
+
* 物理エンジンが衝突を検知したときに呼び出されるリスナーを登録します。
|
|
8930
|
+
* 個別のオブジェクトの衝突を処理したい場合は `ObjectA3.handleCollision()` のオーバーライドを使ってください。
|
|
8931
|
+
* @param func 衝突情報の配列 `Collision[]` を受け取る関数
|
|
8932
|
+
*/
|
|
8529
8933
|
setCollisionListener(e) {
|
|
8530
8934
|
this.collisionListener = e;
|
|
8531
8935
|
}
|
|
@@ -8549,6 +8953,11 @@ class ua {
|
|
|
8549
8953
|
for (const t of this.objects)
|
|
8550
8954
|
t.update(e);
|
|
8551
8955
|
}
|
|
8956
|
+
/**
|
|
8957
|
+
* 物理エンジンのデバッグ表示を切り替えます。
|
|
8958
|
+
* `true` にすると、コライダー(衝突判定の形状)の輪郭線が 3D 空間に表示されます。
|
|
8959
|
+
* @param debug `true` でデバッグ表示を有効化、`false` で無効化
|
|
8960
|
+
*/
|
|
8552
8961
|
setPhysicsDebugMode(e) {
|
|
8553
8962
|
e ? (this.rapierLines = new re.LineSegments(
|
|
8554
8963
|
new re.BufferGeometry(),
|
|
@@ -8556,8 +8965,13 @@ class ua {
|
|
|
8556
8965
|
), this.scene.add(this.rapierLines)) : this.rapierLines && (this.scene.remove(this.rapierLines), this.rapierLines = void 0);
|
|
8557
8966
|
}
|
|
8558
8967
|
}
|
|
8559
|
-
class
|
|
8968
|
+
class fa extends Me {
|
|
8969
|
+
/** このカメラが属する `View`。`View.camera` として設定されるまでは `undefined` です。 */
|
|
8560
8970
|
view;
|
|
8971
|
+
/**
|
|
8972
|
+
* このカメラを指定した `View` に関連付けます。通常は自動的に呼ばれます。
|
|
8973
|
+
* @param view 関連付ける `View`
|
|
8974
|
+
*/
|
|
8561
8975
|
setView(e) {
|
|
8562
8976
|
this.view = e;
|
|
8563
8977
|
}
|
|
@@ -8614,15 +9028,22 @@ class ni {
|
|
|
8614
9028
|
touchCancel(e) {
|
|
8615
9029
|
}
|
|
8616
9030
|
}
|
|
8617
|
-
class
|
|
9031
|
+
class pa extends ni {
|
|
9032
|
+
/** 前フレームのマウス位置。 */
|
|
8618
9033
|
lastMousePosition;
|
|
9034
|
+
/** 今フレームのマウスの x 方向の移動量。 */
|
|
8619
9035
|
dx = 0;
|
|
9036
|
+
/** 今フレームのマウスの y 方向の移動量。 */
|
|
8620
9037
|
dy = 0;
|
|
9038
|
+
/** 左マウスボタンが押されているか。 */
|
|
8621
9039
|
isLeftDown = !1;
|
|
9040
|
+
/** 右マウスボタンが押されているか。 */
|
|
8622
9041
|
isRightDown = !1;
|
|
9042
|
+
/** Ctrl キーが押されているか。 */
|
|
8623
9043
|
ctrlKey = !1;
|
|
9044
|
+
/** マウスホイールの移動量。 */
|
|
8624
9045
|
deltaY = 0;
|
|
8625
|
-
|
|
9046
|
+
/** カメラが注視する対象の位置(ワールド座標)。 */
|
|
8626
9047
|
target;
|
|
8627
9048
|
constructor(e, t, n) {
|
|
8628
9049
|
super(), this.lastMousePosition = { x: 0, y: 0 }, typeof e == "number" ? this.target = new ae(e, t, n) : this.target = new ae(e);
|
|
@@ -8667,11 +9088,11 @@ class da extends ni {
|
|
|
8667
9088
|
}
|
|
8668
9089
|
*/
|
|
8669
9090
|
}
|
|
8670
|
-
const
|
|
9091
|
+
const ga = {
|
|
8671
9092
|
speed: 0.1,
|
|
8672
9093
|
angSpeed: 0.01
|
|
8673
9094
|
};
|
|
8674
|
-
class
|
|
9095
|
+
class UA extends ni {
|
|
8675
9096
|
options;
|
|
8676
9097
|
_avatar;
|
|
8677
9098
|
_keyW;
|
|
@@ -8686,7 +9107,7 @@ class MA extends ni {
|
|
|
8686
9107
|
_velY;
|
|
8687
9108
|
constructor(e, t) {
|
|
8688
9109
|
super(), this.options = {
|
|
8689
|
-
...
|
|
9110
|
+
...ga,
|
|
8690
9111
|
...t
|
|
8691
9112
|
}, this._avatar = e, this._keyW = this._keyA = this._keyS = this._keyD = !1, this._keyLeft = this._keyRight = !1, this._keySpace = !1, this._avatarNextLoc = new ae(), this._avatarNextQuat = new Pe(), this._velY = 0;
|
|
8692
9113
|
}
|
|
@@ -8703,12 +9124,12 @@ class MA extends ni {
|
|
|
8703
9124
|
this._avatarNextLoc.set(n.loc), this._avatarNextQuat.set(n.quat), this._keyW && this._avatarNextLoc.add(r), this._keyA && this._avatarNextLoc.add(o), this._keyS && this._avatarNextLoc.sub(r), this._keyD && this._avatarNextLoc.sub(o), this._velY += -9.8 * e * 0.1, t.isGrounded() && (this._velY = 0, this._keySpace && (this._velY = 0.5)), this._avatarNextLoc.add(0, this._velY, 0), this._keyLeft && (L.v0.set(0, this.options.angSpeed, 0), this._avatarNextQuat.mul(Qt(L.v0, "ZXY", L.q0))), this._keyRight && (L.v0.set(0, -this.options.angSpeed, 0), this._avatarNextQuat.mul(Qt(L.v0, "ZXY", L.q0))), t.setPosition(this._avatarNextLoc), t.setQuat(this._avatarNextQuat);
|
|
8704
9125
|
}
|
|
8705
9126
|
}
|
|
8706
|
-
const
|
|
9127
|
+
const ma = {
|
|
8707
9128
|
speed: 5,
|
|
8708
9129
|
angSpeed: 0.3,
|
|
8709
9130
|
jumpSpeed: 15
|
|
8710
9131
|
};
|
|
8711
|
-
class
|
|
9132
|
+
class GA extends ni {
|
|
8712
9133
|
options;
|
|
8713
9134
|
_avatar;
|
|
8714
9135
|
_keyW;
|
|
@@ -8723,7 +9144,7 @@ class PA extends ni {
|
|
|
8723
9144
|
_velY;
|
|
8724
9145
|
constructor(e, t) {
|
|
8725
9146
|
super(), this.options = {
|
|
8726
|
-
...
|
|
9147
|
+
...ma,
|
|
8727
9148
|
...t
|
|
8728
9149
|
}, this._avatar = e, this._keyW = this._keyA = this._keyS = this._keyD = !1, this._keyLeft = this._keyRight = !1, this._keySpace = !1, this._avatarNextVel = new ae(), this._avatarNextAngVel = new ae(), this._velY = 0;
|
|
8729
9150
|
}
|
|
@@ -8741,20 +9162,32 @@ class PA extends ni {
|
|
|
8741
9162
|
}
|
|
8742
9163
|
}
|
|
8743
9164
|
class Ir {
|
|
9165
|
+
/** このビューが表示している `Scene`。 */
|
|
8744
9166
|
scene;
|
|
9167
|
+
/** このビューのカメラ。 */
|
|
8745
9168
|
camera;
|
|
9169
|
+
/** このビューの入力コントローラー。 */
|
|
8746
9170
|
controller;
|
|
8747
9171
|
constructor(e) {
|
|
8748
|
-
e.setView(this), this.camera = e, this.camera.setAudioListener(Ct.listener), this.camera.setPosition(0, 0, 3), this.scene = new
|
|
9172
|
+
e.setView(this), this.camera = e, this.camera.setAudioListener(Ct.listener), this.camera.setPosition(0, 0, 3), this.scene = new da(), this.scene.scene.add(this.camera.object3D), this.controller = new pa(0, 0, 0), this.controller.setView(this), this.controller.activate();
|
|
8749
9173
|
}
|
|
8750
9174
|
replaceScene(e) {
|
|
8751
9175
|
this.scene.scene.remove(this.camera.object3D), e.scene.add(this.camera.object3D);
|
|
8752
9176
|
const t = this.scene;
|
|
8753
9177
|
return this.scene = e, t;
|
|
8754
9178
|
}
|
|
9179
|
+
/**
|
|
9180
|
+
* シーンの更新処理を行います。毎フレーム呼び出される内部メソッドです。
|
|
9181
|
+
* @param dt 前フレームからの経過時間(秒)
|
|
9182
|
+
*/
|
|
8755
9183
|
updateScene(e) {
|
|
8756
9184
|
this.scene.update(e), this.controller?.update(e), this.camera.update(e);
|
|
8757
9185
|
}
|
|
9186
|
+
/**
|
|
9187
|
+
* 入力コントローラーを切り替えます。
|
|
9188
|
+
* 現在のコントローラーを無効化してから新しいコントローラーを有効化します。
|
|
9189
|
+
* @param controller 新しいコントローラー
|
|
9190
|
+
*/
|
|
8758
9191
|
setController(e) {
|
|
8759
9192
|
this.controller.deactivate(), this.controller = e, this.controller.setView(this), this.controller.activate();
|
|
8760
9193
|
}
|
|
@@ -8794,8 +9227,10 @@ class Ir {
|
|
|
8794
9227
|
throw new Error("BaseViewはwaitForRender()は実装していません");
|
|
8795
9228
|
}
|
|
8796
9229
|
}
|
|
8797
|
-
class hn extends
|
|
9230
|
+
class hn extends fa {
|
|
9231
|
+
/** 内部で使用している Three.js の `THREE.Camera`。 */
|
|
8798
9232
|
camera;
|
|
9233
|
+
/** カメラに取り付けられているヘッドライト(`THREE.SpotLight`)。 */
|
|
8799
9234
|
headLight;
|
|
8800
9235
|
constructor(e) {
|
|
8801
9236
|
super(), this.camera = e, this.headLight = new re.SpotLight(16777215, 1, 0, Math.PI / 3, 0, 0), this.headLight.position.set(0, 0, 0);
|
|
@@ -8808,11 +9243,22 @@ class hn extends ha {
|
|
|
8808
9243
|
setAudioListener(e) {
|
|
8809
9244
|
this.camera.add(e);
|
|
8810
9245
|
}
|
|
9246
|
+
/**
|
|
9247
|
+
* ヘッドライト(`THREE.SpotLight`)を返します。
|
|
9248
|
+
* 強度や角度などを直接カスタマイズしたい場合に使用します。
|
|
9249
|
+
* @returns ヘッドライト
|
|
9250
|
+
*/
|
|
8811
9251
|
getHeadLight() {
|
|
8812
9252
|
return this.headLight;
|
|
8813
9253
|
}
|
|
9254
|
+
/**
|
|
9255
|
+
* カメラのアスペクト比(横幅÷縦幅)を設定します。
|
|
9256
|
+
* ウィンドウのリサイズ時などに呼び出します。
|
|
9257
|
+
* 透視投影カメラ(`THREE.PerspectiveCamera`)以外には効果がありません。
|
|
9258
|
+
* @param aspect 新しいアスペクト比
|
|
9259
|
+
*/
|
|
8814
9260
|
setAspect(e) {
|
|
8815
|
-
|
|
9261
|
+
ys(this.camera) && (this.camera.aspect = e, this.camera.updateProjectionMatrix());
|
|
8816
9262
|
}
|
|
8817
9263
|
setHeadLightEnable(e) {
|
|
8818
9264
|
e ? this.headLight.intensity = 1 : this.headLight.intensity = 0;
|
|
@@ -8940,39 +9386,39 @@ class yr extends ht {
|
|
|
8940
9386
|
*/
|
|
8941
9387
|
constructor(e) {
|
|
8942
9388
|
super(e), this.dracoLoader = null, this.ktx2Loader = null, this.meshoptDecoder = null, this.pluginCallbacks = [], this.register(function(t) {
|
|
8943
|
-
return new
|
|
8944
|
-
}), this.register(function(t) {
|
|
8945
|
-
return new Ca(t);
|
|
8946
|
-
}), this.register(function(t) {
|
|
8947
|
-
return new Sa(t);
|
|
9389
|
+
return new ya(t);
|
|
8948
9390
|
}), this.register(function(t) {
|
|
8949
|
-
return new
|
|
9391
|
+
return new Ba(t);
|
|
8950
9392
|
}), this.register(function(t) {
|
|
8951
9393
|
return new La(t);
|
|
8952
9394
|
}), this.register(function(t) {
|
|
8953
|
-
return new
|
|
9395
|
+
return new _a(t);
|
|
8954
9396
|
}), this.register(function(t) {
|
|
8955
|
-
return new
|
|
9397
|
+
return new Na(t);
|
|
8956
9398
|
}), this.register(function(t) {
|
|
8957
9399
|
return new Ta(t);
|
|
8958
9400
|
}), this.register(function(t) {
|
|
8959
9401
|
return new va(t);
|
|
8960
|
-
}), this.register(function(t) {
|
|
8961
|
-
return new Ia(t);
|
|
8962
9402
|
}), this.register(function(t) {
|
|
8963
9403
|
return new Ra(t);
|
|
8964
9404
|
}), this.register(function(t) {
|
|
8965
|
-
return new
|
|
9405
|
+
return new Qa(t);
|
|
9406
|
+
}), this.register(function(t) {
|
|
9407
|
+
return new Ca(t);
|
|
8966
9408
|
}), this.register(function(t) {
|
|
8967
9409
|
return new ka(t);
|
|
8968
9410
|
}), this.register(function(t) {
|
|
8969
|
-
return new
|
|
9411
|
+
return new wa(t);
|
|
8970
9412
|
}), this.register(function(t) {
|
|
8971
|
-
return new
|
|
9413
|
+
return new xa(t);
|
|
8972
9414
|
}), this.register(function(t) {
|
|
8973
|
-
return new
|
|
9415
|
+
return new Sa(t);
|
|
8974
9416
|
}), this.register(function(t) {
|
|
8975
|
-
return new
|
|
9417
|
+
return new Ia(t);
|
|
9418
|
+
}), this.register(function(t) {
|
|
9419
|
+
return new Da(t);
|
|
9420
|
+
}), this.register(function(t) {
|
|
9421
|
+
return new Fa(t);
|
|
8976
9422
|
});
|
|
8977
9423
|
}
|
|
8978
9424
|
/**
|
|
@@ -9074,7 +9520,7 @@ class yr extends ht {
|
|
|
9074
9520
|
else if (e instanceof ArrayBuffer)
|
|
9075
9521
|
if (A.decode(new Uint8Array(e, 0, 4)) === Br) {
|
|
9076
9522
|
try {
|
|
9077
|
-
s[ke.KHR_BINARY_GLTF] = new
|
|
9523
|
+
s[ke.KHR_BINARY_GLTF] = new Oa(e);
|
|
9078
9524
|
} catch (u) {
|
|
9079
9525
|
r && r(u);
|
|
9080
9526
|
return;
|
|
@@ -9088,7 +9534,7 @@ class yr extends ht {
|
|
|
9088
9534
|
r && r(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));
|
|
9089
9535
|
return;
|
|
9090
9536
|
}
|
|
9091
|
-
const a = new
|
|
9537
|
+
const a = new Ja(o, {
|
|
9092
9538
|
path: t || this.resourcePath || "",
|
|
9093
9539
|
crossOrigin: this.crossOrigin,
|
|
9094
9540
|
requestHeader: this.requestHeader,
|
|
@@ -9106,16 +9552,16 @@ class yr extends ht {
|
|
|
9106
9552
|
const u = o.extensionsUsed[d], m = o.extensionsRequired || [];
|
|
9107
9553
|
switch (u) {
|
|
9108
9554
|
case ke.KHR_MATERIALS_UNLIT:
|
|
9109
|
-
s[u] = new
|
|
9555
|
+
s[u] = new ba();
|
|
9110
9556
|
break;
|
|
9111
9557
|
case ke.KHR_DRACO_MESH_COMPRESSION:
|
|
9112
|
-
s[u] = new
|
|
9558
|
+
s[u] = new Ma(o, this.dracoLoader);
|
|
9113
9559
|
break;
|
|
9114
9560
|
case ke.KHR_TEXTURE_TRANSFORM:
|
|
9115
|
-
s[u] = new
|
|
9561
|
+
s[u] = new Pa();
|
|
9116
9562
|
break;
|
|
9117
9563
|
case ke.KHR_MESH_QUANTIZATION:
|
|
9118
|
-
s[u] = new
|
|
9564
|
+
s[u] = new Ua();
|
|
9119
9565
|
break;
|
|
9120
9566
|
default:
|
|
9121
9567
|
m.indexOf(u) >= 0 && c[u] === void 0 && console.warn('THREE.GLTFLoader: Unknown extension "' + u + '".');
|
|
@@ -9138,7 +9584,7 @@ class yr extends ht {
|
|
|
9138
9584
|
});
|
|
9139
9585
|
}
|
|
9140
9586
|
}
|
|
9141
|
-
function
|
|
9587
|
+
function Ea() {
|
|
9142
9588
|
let i = {};
|
|
9143
9589
|
return {
|
|
9144
9590
|
get: function(e) {
|
|
@@ -9179,7 +9625,7 @@ const ke = {
|
|
|
9179
9625
|
EXT_MESHOPT_COMPRESSION: "EXT_meshopt_compression",
|
|
9180
9626
|
EXT_MESH_GPU_INSTANCING: "EXT_mesh_gpu_instancing"
|
|
9181
9627
|
};
|
|
9182
|
-
class
|
|
9628
|
+
class Ia {
|
|
9183
9629
|
constructor(e) {
|
|
9184
9630
|
this.parser = e, this.name = ke.KHR_LIGHTS_PUNCTUAL, this.cache = { refs: {}, uses: {} };
|
|
9185
9631
|
}
|
|
@@ -9225,7 +9671,7 @@ class ma {
|
|
|
9225
9671
|
});
|
|
9226
9672
|
}
|
|
9227
9673
|
}
|
|
9228
|
-
class
|
|
9674
|
+
class ba {
|
|
9229
9675
|
constructor() {
|
|
9230
9676
|
this.name = ke.KHR_MATERIALS_UNLIT;
|
|
9231
9677
|
}
|
|
@@ -9246,7 +9692,7 @@ class Ea {
|
|
|
9246
9692
|
return Promise.all(r);
|
|
9247
9693
|
}
|
|
9248
9694
|
}
|
|
9249
|
-
class
|
|
9695
|
+
class Ca {
|
|
9250
9696
|
constructor(e) {
|
|
9251
9697
|
this.parser = e, this.name = ke.KHR_MATERIALS_EMISSIVE_STRENGTH;
|
|
9252
9698
|
}
|
|
@@ -9258,7 +9704,7 @@ class Ia {
|
|
|
9258
9704
|
return o !== void 0 && (t.emissiveIntensity = o), Promise.resolve();
|
|
9259
9705
|
}
|
|
9260
9706
|
}
|
|
9261
|
-
class
|
|
9707
|
+
class ya {
|
|
9262
9708
|
constructor(e) {
|
|
9263
9709
|
this.parser = e, this.name = ke.KHR_MATERIALS_CLEARCOAT;
|
|
9264
9710
|
}
|
|
@@ -9278,7 +9724,7 @@ class ba {
|
|
|
9278
9724
|
return Promise.all(o);
|
|
9279
9725
|
}
|
|
9280
9726
|
}
|
|
9281
|
-
class
|
|
9727
|
+
class Ba {
|
|
9282
9728
|
constructor(e) {
|
|
9283
9729
|
this.parser = e, this.name = ke.KHR_MATERIALS_DISPERSION;
|
|
9284
9730
|
}
|
|
@@ -9294,7 +9740,7 @@ class Ca {
|
|
|
9294
9740
|
return t.dispersion = o.dispersion !== void 0 ? o.dispersion : 0, Promise.resolve();
|
|
9295
9741
|
}
|
|
9296
9742
|
}
|
|
9297
|
-
class
|
|
9743
|
+
class wa {
|
|
9298
9744
|
constructor(e) {
|
|
9299
9745
|
this.parser = e, this.name = ke.KHR_MATERIALS_IRIDESCENCE;
|
|
9300
9746
|
}
|
|
@@ -9310,7 +9756,7 @@ class ya {
|
|
|
9310
9756
|
return s.iridescenceFactor !== void 0 && (t.iridescence = s.iridescenceFactor), s.iridescenceTexture !== void 0 && o.push(n.assignTexture(t, "iridescenceMap", s.iridescenceTexture)), s.iridescenceIor !== void 0 && (t.iridescenceIOR = s.iridescenceIor), t.iridescenceThicknessRange === void 0 && (t.iridescenceThicknessRange = [100, 400]), s.iridescenceThicknessMinimum !== void 0 && (t.iridescenceThicknessRange[0] = s.iridescenceThicknessMinimum), s.iridescenceThicknessMaximum !== void 0 && (t.iridescenceThicknessRange[1] = s.iridescenceThicknessMaximum), s.iridescenceThicknessTexture !== void 0 && o.push(n.assignTexture(t, "iridescenceThicknessMap", s.iridescenceThicknessTexture)), Promise.all(o);
|
|
9311
9757
|
}
|
|
9312
9758
|
}
|
|
9313
|
-
class
|
|
9759
|
+
class Ta {
|
|
9314
9760
|
constructor(e) {
|
|
9315
9761
|
this.parser = e, this.name = ke.KHR_MATERIALS_SHEEN;
|
|
9316
9762
|
}
|
|
@@ -9332,7 +9778,7 @@ class Ba {
|
|
|
9332
9778
|
return s.sheenRoughnessFactor !== void 0 && (t.sheenRoughness = s.sheenRoughnessFactor), s.sheenColorTexture !== void 0 && o.push(n.assignTexture(t, "sheenColorMap", s.sheenColorTexture, Ze)), s.sheenRoughnessTexture !== void 0 && o.push(n.assignTexture(t, "sheenRoughnessMap", s.sheenRoughnessTexture)), Promise.all(o);
|
|
9333
9779
|
}
|
|
9334
9780
|
}
|
|
9335
|
-
class
|
|
9781
|
+
class va {
|
|
9336
9782
|
constructor(e) {
|
|
9337
9783
|
this.parser = e, this.name = ke.KHR_MATERIALS_TRANSMISSION;
|
|
9338
9784
|
}
|
|
@@ -9348,7 +9794,7 @@ class wa {
|
|
|
9348
9794
|
return s.transmissionFactor !== void 0 && (t.transmission = s.transmissionFactor), s.transmissionTexture !== void 0 && o.push(n.assignTexture(t, "transmissionMap", s.transmissionTexture)), Promise.all(o);
|
|
9349
9795
|
}
|
|
9350
9796
|
}
|
|
9351
|
-
class
|
|
9797
|
+
class Ra {
|
|
9352
9798
|
constructor(e) {
|
|
9353
9799
|
this.parser = e, this.name = ke.KHR_MATERIALS_VOLUME;
|
|
9354
9800
|
}
|
|
@@ -9366,7 +9812,7 @@ class Ta {
|
|
|
9366
9812
|
return t.attenuationColor = new Xe().setRGB(c[0], c[1], c[2], at), Promise.all(o);
|
|
9367
9813
|
}
|
|
9368
9814
|
}
|
|
9369
|
-
class
|
|
9815
|
+
class Qa {
|
|
9370
9816
|
constructor(e) {
|
|
9371
9817
|
this.parser = e, this.name = ke.KHR_MATERIALS_IOR;
|
|
9372
9818
|
}
|
|
@@ -9382,7 +9828,7 @@ class va {
|
|
|
9382
9828
|
return t.ior = o.ior !== void 0 ? o.ior : 1.5, Promise.resolve();
|
|
9383
9829
|
}
|
|
9384
9830
|
}
|
|
9385
|
-
class
|
|
9831
|
+
class ka {
|
|
9386
9832
|
constructor(e) {
|
|
9387
9833
|
this.parser = e, this.name = ke.KHR_MATERIALS_SPECULAR;
|
|
9388
9834
|
}
|
|
@@ -9400,7 +9846,7 @@ class Ra {
|
|
|
9400
9846
|
return t.specularColor = new Xe().setRGB(c[0], c[1], c[2], at), s.specularColorTexture !== void 0 && o.push(n.assignTexture(t, "specularColorMap", s.specularColorTexture, Ze)), Promise.all(o);
|
|
9401
9847
|
}
|
|
9402
9848
|
}
|
|
9403
|
-
class
|
|
9849
|
+
class Sa {
|
|
9404
9850
|
constructor(e) {
|
|
9405
9851
|
this.parser = e, this.name = ke.EXT_MATERIALS_BUMP;
|
|
9406
9852
|
}
|
|
@@ -9416,7 +9862,7 @@ class Qa {
|
|
|
9416
9862
|
return t.bumpScale = s.bumpFactor !== void 0 ? s.bumpFactor : 1, s.bumpTexture !== void 0 && o.push(n.assignTexture(t, "bumpMap", s.bumpTexture)), Promise.all(o);
|
|
9417
9863
|
}
|
|
9418
9864
|
}
|
|
9419
|
-
class
|
|
9865
|
+
class xa {
|
|
9420
9866
|
constructor(e) {
|
|
9421
9867
|
this.parser = e, this.name = ke.KHR_MATERIALS_ANISOTROPY;
|
|
9422
9868
|
}
|
|
@@ -9432,7 +9878,7 @@ class ka {
|
|
|
9432
9878
|
return s.anisotropyStrength !== void 0 && (t.anisotropy = s.anisotropyStrength), s.anisotropyRotation !== void 0 && (t.anisotropyRotation = s.anisotropyRotation), s.anisotropyTexture !== void 0 && o.push(n.assignTexture(t, "anisotropyMap", s.anisotropyTexture)), Promise.all(o);
|
|
9433
9879
|
}
|
|
9434
9880
|
}
|
|
9435
|
-
class
|
|
9881
|
+
class La {
|
|
9436
9882
|
constructor(e) {
|
|
9437
9883
|
this.parser = e, this.name = ke.KHR_TEXTURE_BASISU;
|
|
9438
9884
|
}
|
|
@@ -9449,7 +9895,7 @@ class Sa {
|
|
|
9449
9895
|
return t.loadTextureImage(e, o.source, s);
|
|
9450
9896
|
}
|
|
9451
9897
|
}
|
|
9452
|
-
class
|
|
9898
|
+
class _a {
|
|
9453
9899
|
constructor(e) {
|
|
9454
9900
|
this.parser = e, this.name = ke.EXT_TEXTURE_WEBP;
|
|
9455
9901
|
}
|
|
@@ -9466,7 +9912,7 @@ class xa {
|
|
|
9466
9912
|
return n.loadTextureImage(e, s.source, A);
|
|
9467
9913
|
}
|
|
9468
9914
|
}
|
|
9469
|
-
class
|
|
9915
|
+
class Na {
|
|
9470
9916
|
constructor(e) {
|
|
9471
9917
|
this.parser = e, this.name = ke.EXT_TEXTURE_AVIF;
|
|
9472
9918
|
}
|
|
@@ -9483,7 +9929,7 @@ class La {
|
|
|
9483
9929
|
return n.loadTextureImage(e, s.source, A);
|
|
9484
9930
|
}
|
|
9485
9931
|
}
|
|
9486
|
-
class
|
|
9932
|
+
class Da {
|
|
9487
9933
|
constructor(e) {
|
|
9488
9934
|
this.name = ke.EXT_MESHOPT_COMPRESSION, this.parser = e;
|
|
9489
9935
|
}
|
|
@@ -9509,7 +9955,7 @@ class _a {
|
|
|
9509
9955
|
return null;
|
|
9510
9956
|
}
|
|
9511
9957
|
}
|
|
9512
|
-
class
|
|
9958
|
+
class Fa {
|
|
9513
9959
|
constructor(e) {
|
|
9514
9960
|
this.name = ke.EXT_MESH_GPU_INSTANCING, this.parser = e;
|
|
9515
9961
|
}
|
|
@@ -9542,7 +9988,7 @@ class Na {
|
|
|
9542
9988
|
}
|
|
9543
9989
|
}
|
|
9544
9990
|
const Br = "glTF", Ut = 12, Ci = { JSON: 1313821514, BIN: 5130562 };
|
|
9545
|
-
class
|
|
9991
|
+
class Oa {
|
|
9546
9992
|
constructor(e) {
|
|
9547
9993
|
this.name = ke.KHR_BINARY_GLTF, this.content = null, this.body = null;
|
|
9548
9994
|
const t = new DataView(e, 0, Ut), n = new TextDecoder();
|
|
@@ -9573,7 +10019,7 @@ class Da {
|
|
|
9573
10019
|
throw new Error("THREE.GLTFLoader: JSON content not found.");
|
|
9574
10020
|
}
|
|
9575
10021
|
}
|
|
9576
|
-
class
|
|
10022
|
+
class Ma {
|
|
9577
10023
|
constructor(e, t) {
|
|
9578
10024
|
if (!t)
|
|
9579
10025
|
throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");
|
|
@@ -9605,7 +10051,7 @@ class Fa {
|
|
|
9605
10051
|
});
|
|
9606
10052
|
}
|
|
9607
10053
|
}
|
|
9608
|
-
class
|
|
10054
|
+
class Pa {
|
|
9609
10055
|
constructor() {
|
|
9610
10056
|
this.name = ke.KHR_TEXTURE_TRANSFORM;
|
|
9611
10057
|
}
|
|
@@ -9613,7 +10059,7 @@ class Oa {
|
|
|
9613
10059
|
return (t.texCoord === void 0 || t.texCoord === e.channel) && t.offset === void 0 && t.rotation === void 0 && t.scale === void 0 || (e = e.clone(), t.texCoord !== void 0 && (e.channel = t.texCoord), t.offset !== void 0 && e.offset.fromArray(t.offset), t.rotation !== void 0 && (e.rotation = t.rotation), t.scale !== void 0 && e.repeat.fromArray(t.scale), e.needsUpdate = !0), e;
|
|
9614
10060
|
}
|
|
9615
10061
|
}
|
|
9616
|
-
class
|
|
10062
|
+
class Ua {
|
|
9617
10063
|
constructor() {
|
|
9618
10064
|
this.name = ke.KHR_MESH_QUANTIZATION;
|
|
9619
10065
|
}
|
|
@@ -9637,11 +10083,11 @@ class wr extends Po {
|
|
|
9637
10083
|
return o;
|
|
9638
10084
|
}
|
|
9639
10085
|
}
|
|
9640
|
-
const
|
|
9641
|
-
class
|
|
10086
|
+
const Ga = new Jt();
|
|
10087
|
+
class Ha extends wr {
|
|
9642
10088
|
interpolate_(e, t, n, r) {
|
|
9643
10089
|
const o = super.interpolate_(e, t, n, r);
|
|
9644
|
-
return
|
|
10090
|
+
return Ga.fromArray(o).normalize().toArray(o), o;
|
|
9645
10091
|
}
|
|
9646
10092
|
}
|
|
9647
10093
|
const it = {
|
|
@@ -9694,7 +10140,7 @@ const it = {
|
|
|
9694
10140
|
translation: "position",
|
|
9695
10141
|
rotation: "quaternion",
|
|
9696
10142
|
weights: "morphTargetInfluences"
|
|
9697
|
-
},
|
|
10143
|
+
}, ja = {
|
|
9698
10144
|
CUBICSPLINE: void 0,
|
|
9699
10145
|
// We use a custom interpolant (GLTFCubicSplineInterpolation) for CUBICSPLINE tracks. Each
|
|
9700
10146
|
// keyframe track will be initialized with a default interpolation type, then modified.
|
|
@@ -9705,7 +10151,7 @@ const it = {
|
|
|
9705
10151
|
MASK: "MASK",
|
|
9706
10152
|
BLEND: "BLEND"
|
|
9707
10153
|
};
|
|
9708
|
-
function
|
|
10154
|
+
function qa(i) {
|
|
9709
10155
|
return i.DefaultMaterial === void 0 && (i.DefaultMaterial = new Ji({
|
|
9710
10156
|
color: 16777215,
|
|
9711
10157
|
emissive: 0,
|
|
@@ -9723,7 +10169,7 @@ function wt(i, e, t) {
|
|
|
9723
10169
|
function At(i, e) {
|
|
9724
10170
|
e.extras !== void 0 && (typeof e.extras == "object" ? Object.assign(i.userData, e.extras) : console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, " + e.extras));
|
|
9725
10171
|
}
|
|
9726
|
-
function
|
|
10172
|
+
function za(i, e, t) {
|
|
9727
10173
|
let n = !1, r = !1, o = !1;
|
|
9728
10174
|
for (let a = 0, d = e.length; a < d; a++) {
|
|
9729
10175
|
const u = e[a];
|
|
@@ -9755,7 +10201,7 @@ function ja(i, e, t) {
|
|
|
9755
10201
|
return n && (i.morphAttributes.position = d), r && (i.morphAttributes.normal = u), o && (i.morphAttributes.color = m), i.morphTargetsRelative = !0, i;
|
|
9756
10202
|
});
|
|
9757
10203
|
}
|
|
9758
|
-
function
|
|
10204
|
+
function Ka(i, e) {
|
|
9759
10205
|
if (i.updateMorphTargets(), e.weights !== void 0)
|
|
9760
10206
|
for (let t = 0, n = e.weights.length; t < n; t++)
|
|
9761
10207
|
i.morphTargetInfluences[t] = e.weights[t];
|
|
@@ -9769,7 +10215,7 @@ function qa(i, e) {
|
|
|
9769
10215
|
console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.");
|
|
9770
10216
|
}
|
|
9771
10217
|
}
|
|
9772
|
-
function
|
|
10218
|
+
function Va(i) {
|
|
9773
10219
|
let e;
|
|
9774
10220
|
const t = i.extensions && i.extensions[ke.KHR_DRACO_MESH_COMPRESSION];
|
|
9775
10221
|
if (t ? e = "draco:" + t.bufferView + ":" + t.indices + ":" + Rn(t.attributes) : e = i.indices + ":" + Rn(i.attributes) + ":" + i.mode, i.targets !== void 0)
|
|
@@ -9798,13 +10244,13 @@ function Kn(i) {
|
|
|
9798
10244
|
throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.");
|
|
9799
10245
|
}
|
|
9800
10246
|
}
|
|
9801
|
-
function
|
|
10247
|
+
function Wa(i) {
|
|
9802
10248
|
return i.search(/\.jpe?g($|\?)/i) > 0 || i.search(/^data\:image\/jpeg/) === 0 ? "image/jpeg" : i.search(/\.webp($|\?)/i) > 0 || i.search(/^data\:image\/webp/) === 0 ? "image/webp" : i.search(/\.ktx2($|\?)/i) > 0 || i.search(/^data\:image\/ktx2/) === 0 ? "image/ktx2" : "image/png";
|
|
9803
10249
|
}
|
|
9804
|
-
const
|
|
9805
|
-
class
|
|
10250
|
+
const Ya = new Mt();
|
|
10251
|
+
class Ja {
|
|
9806
10252
|
constructor(e = {}, t = {}) {
|
|
9807
|
-
this.json = e, this.extensions = {}, this.plugins = {}, this.options = t, this.cache = new
|
|
10253
|
+
this.json = e, this.extensions = {}, this.plugins = {}, this.options = t, this.cache = new Ea(), this.associations = /* @__PURE__ */ new Map(), this.primitiveCache = {}, this.nodeCache = {}, this.meshCache = { refs: {}, uses: {} }, this.cameraCache = { refs: {}, uses: {} }, this.lightCache = { refs: {}, uses: {} }, this.sourceCache = {}, this.textureCache = {}, this.nodeNamesUsed = {};
|
|
9808
10254
|
let n = !1, r = -1, o = !1, s = -1;
|
|
9809
10255
|
if (typeof navigator < "u") {
|
|
9810
10256
|
const c = navigator.userAgent;
|
|
@@ -10129,7 +10575,7 @@ class Wa {
|
|
|
10129
10575
|
}), t.load(Ft.resolveURL(u, o.path), E, void 0, p);
|
|
10130
10576
|
});
|
|
10131
10577
|
}).then(function(u) {
|
|
10132
|
-
return a === !0 && c.revokeObjectURL(A), At(u, s), u.userData.mimeType = s.mimeType ||
|
|
10578
|
+
return a === !0 && c.revokeObjectURL(A), At(u, s), u.userData.mimeType = s.mimeType || Wa(s.uri), u;
|
|
10133
10579
|
}).catch(function(u) {
|
|
10134
10580
|
throw console.error("THREE.GLTFLoader: Couldn't load texture", A), u;
|
|
10135
10581
|
});
|
|
@@ -10263,7 +10709,7 @@ class Wa {
|
|
|
10263
10709
|
}
|
|
10264
10710
|
const s = [];
|
|
10265
10711
|
for (let c = 0, A = e.length; c < A; c++) {
|
|
10266
|
-
const a = e[c], d =
|
|
10712
|
+
const a = e[c], d = Va(a), u = r[d];
|
|
10267
10713
|
if (u)
|
|
10268
10714
|
s.push(u.promise);
|
|
10269
10715
|
else {
|
|
@@ -10283,7 +10729,7 @@ class Wa {
|
|
|
10283
10729
|
loadMesh(e) {
|
|
10284
10730
|
const t = this, n = this.json, r = this.extensions, o = n.meshes[e], s = o.primitives, c = [];
|
|
10285
10731
|
for (let A = 0, a = s.length; A < a; A++) {
|
|
10286
|
-
const d = s[A].material === void 0 ?
|
|
10732
|
+
const d = s[A].material === void 0 ? qa(this.cache) : this.getDependency("material", s[A].material);
|
|
10287
10733
|
c.push(d);
|
|
10288
10734
|
}
|
|
10289
10735
|
return c.push(t.loadGeometries(s)), Promise.all(c).then(function(A) {
|
|
@@ -10304,7 +10750,7 @@ class Wa {
|
|
|
10304
10750
|
h = new _i(g, f);
|
|
10305
10751
|
else
|
|
10306
10752
|
throw new Error("THREE.GLTFLoader: Primitive mode unsupported: " + l.mode);
|
|
10307
|
-
Object.keys(h.geometry.morphAttributes).length > 0 &&
|
|
10753
|
+
Object.keys(h.geometry.morphAttributes).length > 0 && Ka(h, o), h.name = t.createUniqueName(o.name || "mesh_" + e), At(h, o), l.extensions && wt(r, h, l), t.assignFinalMaterial(h), u.push(h);
|
|
10308
10754
|
}
|
|
10309
10755
|
for (let p = 0, E = u.length; p < E; p++)
|
|
10310
10756
|
t.associations.set(u[p], {
|
|
@@ -10425,7 +10871,7 @@ class Wa {
|
|
|
10425
10871
|
]).then(function(a) {
|
|
10426
10872
|
const d = a[0], u = a[1], m = a[2];
|
|
10427
10873
|
m !== null && d.traverse(function(p) {
|
|
10428
|
-
p.isSkinnedMesh && p.bind(m,
|
|
10874
|
+
p.isSkinnedMesh && p.bind(m, Ya);
|
|
10429
10875
|
});
|
|
10430
10876
|
for (let p = 0, E = u.length; p < E; p++)
|
|
10431
10877
|
d.add(u[p]);
|
|
@@ -10515,7 +10961,7 @@ class Wa {
|
|
|
10515
10961
|
n.itemSize === 1 ? a = si : a = an;
|
|
10516
10962
|
break;
|
|
10517
10963
|
}
|
|
10518
|
-
const d = r.interpolation !== void 0 ?
|
|
10964
|
+
const d = r.interpolation !== void 0 ? ja[r.interpolation] : Xi, u = this._getArrayFromAccessor(n);
|
|
10519
10965
|
for (let m = 0, p = A.length; m < p; m++) {
|
|
10520
10966
|
const E = new a(
|
|
10521
10967
|
A[m] + "." + It[o.path],
|
|
@@ -10539,12 +10985,12 @@ class Wa {
|
|
|
10539
10985
|
}
|
|
10540
10986
|
_createCubicSplineTrackInterpolant(e) {
|
|
10541
10987
|
e.createInterpolant = function(n) {
|
|
10542
|
-
const r = this instanceof Fn ?
|
|
10988
|
+
const r = this instanceof Fn ? Ha : wr;
|
|
10543
10989
|
return new r(this.times, this.values, this.getValueSize() / 3, n);
|
|
10544
10990
|
}, e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline = !0;
|
|
10545
10991
|
}
|
|
10546
10992
|
}
|
|
10547
|
-
function
|
|
10993
|
+
function Xa(i, e, t) {
|
|
10548
10994
|
const n = e.attributes, r = new Uo();
|
|
10549
10995
|
if (n.POSITION !== void 0) {
|
|
10550
10996
|
const c = t.json.accessors[n.POSITION], A = c.min, a = c.max;
|
|
@@ -10602,12 +11048,12 @@ function wi(i, e, t) {
|
|
|
10602
11048
|
});
|
|
10603
11049
|
r.push(s);
|
|
10604
11050
|
}
|
|
10605
|
-
return Xt.workingColorSpace !== at && "COLOR_0" in n && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${Xt.workingColorSpace}" not supported.`), At(i, e),
|
|
10606
|
-
return e.targets !== void 0 ?
|
|
11051
|
+
return Xt.workingColorSpace !== at && "COLOR_0" in n && console.warn(`THREE.GLTFLoader: Converting vertex colors from "srgb-linear" to "${Xt.workingColorSpace}" not supported.`), At(i, e), Xa(i, e, t), Promise.all(r).then(function() {
|
|
11052
|
+
return e.targets !== void 0 ? za(i, e.targets, t) : i;
|
|
10607
11053
|
});
|
|
10608
11054
|
}
|
|
10609
11055
|
const Qn = /* @__PURE__ */ new WeakMap();
|
|
10610
|
-
class
|
|
11056
|
+
class Za extends ht {
|
|
10611
11057
|
/**
|
|
10612
11058
|
* Constructs a new Draco loader.
|
|
10613
11059
|
*
|
|
@@ -10750,7 +11196,7 @@ class Ja extends ht {
|
|
|
10750
11196
|
return e ? t.push(this._loadLibrary("draco_decoder.js", "text")) : (t.push(this._loadLibrary("draco_wasm_wrapper.js", "text")), t.push(this._loadLibrary("draco_decoder.wasm", "arraybuffer"))), this.decoderPending = Promise.all(t).then((n) => {
|
|
10751
11197
|
const r = n[0];
|
|
10752
11198
|
e || (this.decoderConfig.wasmBinary = n[1]);
|
|
10753
|
-
const o =
|
|
11199
|
+
const o = $a.toString(), s = [
|
|
10754
11200
|
"/* draco decoder */",
|
|
10755
11201
|
r,
|
|
10756
11202
|
"",
|
|
@@ -10798,7 +11244,7 @@ class Ja extends ht {
|
|
|
10798
11244
|
return this.workerPool.length = 0, this.workerSourceURL !== "" && URL.revokeObjectURL(this.workerSourceURL), this;
|
|
10799
11245
|
}
|
|
10800
11246
|
}
|
|
10801
|
-
function
|
|
11247
|
+
function $a() {
|
|
10802
11248
|
let i, e;
|
|
10803
11249
|
onmessage = function(s) {
|
|
10804
11250
|
const c = s.data;
|
|
@@ -10902,7 +11348,7 @@ function Xa() {
|
|
|
10902
11348
|
}
|
|
10903
11349
|
}
|
|
10904
11350
|
}
|
|
10905
|
-
class
|
|
11351
|
+
class eA {
|
|
10906
11352
|
/**
|
|
10907
11353
|
* Constructs a new Worker pool.
|
|
10908
11354
|
*
|
|
@@ -10968,7 +11414,7 @@ class Za {
|
|
|
10968
11414
|
this.workers.forEach((e) => e.terminate()), this.workersResolve.length = 0, this.workers.length = 0, this.queue.length = 0, this.workerStatus = 0;
|
|
10969
11415
|
}
|
|
10970
11416
|
}
|
|
10971
|
-
const
|
|
11417
|
+
const tA = 0, Ti = 2, nA = 1, vi = 2, iA = 0, rA = 1, oA = 10, sA = 0, Tr = 9, vr = 15, Rr = 16, Qr = 22, kr = 37, Sr = 43, xr = 76, Lr = 83, _r = 97, Nr = 100, Dr = 103, Fr = 109, Or = 122, Mr = 123, Pr = 131, Ur = 132, Gr = 133, Hr = 134, jr = 137, qr = 138, zr = 139, Kr = 140, Vr = 141, Wr = 142, Yr = 145, Jr = 146, Xr = 148, Zr = 152, Vn = 153, aA = 154, Wn = 155, AA = 156, $r = 157, eo = 158, to = 165, no = 166, io = 1000054e3, ro = 1000054001, oo = 1000054004, so = 1000054005, ii = 1000066e3, ao = 1000066004;
|
|
10972
11418
|
class Gt {
|
|
10973
11419
|
constructor(e, t, n, r) {
|
|
10974
11420
|
this._dataView = void 0, this._littleEndian = void 0, this._offset = void 0, this._dataView = new DataView(e.buffer, e.byteOffset + t, n), this._littleEndian = r, this._offset = 0;
|
|
@@ -11011,7 +11457,7 @@ const $e = [171, 75, 84, 88, 32, 50, 48, 187, 13, 10, 26, 10];
|
|
|
11011
11457
|
function Ri(i) {
|
|
11012
11458
|
return new TextDecoder().decode(i);
|
|
11013
11459
|
}
|
|
11014
|
-
function
|
|
11460
|
+
function cA(i) {
|
|
11015
11461
|
const e = new Uint8Array(i.buffer, i.byteOffset, $e.length);
|
|
11016
11462
|
if (e[0] !== $e[0] || e[1] !== $e[1] || e[2] !== $e[2] || e[3] !== $e[3] || e[4] !== $e[4] || e[5] !== $e[5] || e[6] !== $e[6] || e[7] !== $e[7] || e[8] !== $e[8] || e[9] !== $e[9] || e[10] !== $e[10] || e[11] !== $e[11]) throw new Error("Missing KTX 2.0 identifier.");
|
|
11017
11463
|
const t = { vkFormat: 0, typeSize: 1, pixelWidth: 0, pixelHeight: 0, pixelDepth: 0, layerCount: 0, faceCount: 1, levelCount: 0, supercompressionScheme: 0, levels: [], dataFormatDescriptor: [{ vendorId: 0, descriptorType: 0, versionNumber: 2, colorModel: 0, colorPrimaries: 1, transferFunction: 2, flags: 0, texelBlockDimension: [0, 0, 0, 0], bytesPlane: [0, 0, 0, 0, 0, 0, 0, 0], samples: [] }], keyValue: {}, globalData: null }, n = 17 * Uint32Array.BYTES_PER_ELEMENT, r = new Gt(i, $e.length, n, !0);
|
|
@@ -11045,7 +11491,7 @@ let kn, gt, Yn;
|
|
|
11045
11491
|
const Sn = { env: { emscripten_notify_memory_growth: function(i) {
|
|
11046
11492
|
Yn = new Uint8Array(gt.exports.memory.buffer);
|
|
11047
11493
|
} } };
|
|
11048
|
-
class
|
|
11494
|
+
class lA {
|
|
11049
11495
|
init() {
|
|
11050
11496
|
return kn || (kn = typeof fetch < "u" ? fetch("data:application/wasm;base64," + Qi).then((e) => e.arrayBuffer()).then((e) => WebAssembly.instantiate(e, Sn)).then(this._init) : WebAssembly.instantiate(Buffer.from(Qi, "base64"), Sn).then(this._init), kn);
|
|
11051
11497
|
}
|
|
@@ -11060,7 +11506,7 @@ class AA {
|
|
|
11060
11506
|
return gt.exports.free(r), gt.exports.free(o), c;
|
|
11061
11507
|
}
|
|
11062
11508
|
}
|
|
11063
|
-
const Qi = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", cA = "display-p3", lA = "display-p3-linear";
|
|
11509
|
+
const Qi = "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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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", uA = "display-p3", hA = "display-p3-linear";
|
|
11064
11510
|
({
|
|
11065
11511
|
...Xt.spaces[Ze]
|
|
11066
11512
|
});
|
|
@@ -11073,7 +11519,7 @@ class rt extends ht {
|
|
|
11073
11519
|
* @param {LoadingManager} [manager] - The loading manager.
|
|
11074
11520
|
*/
|
|
11075
11521
|
constructor(e) {
|
|
11076
|
-
super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new
|
|
11522
|
+
super(e), this.transcoderPath = "", this.transcoderBinary = null, this.transcoderPending = null, this.workerPool = new eA(), this.workerSourceURL = "", this.workerConfig = null, typeof MSC_TRANSCODER < "u" && console.warn(
|
|
11077
11523
|
'THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.'
|
|
11078
11524
|
);
|
|
11079
11525
|
}
|
|
@@ -11208,7 +11654,7 @@ class rt extends ht {
|
|
|
11208
11654
|
const m = o[0].mipmaps;
|
|
11209
11655
|
u = t.layerCount > 1 ? new jo(m, s, c, t.layerCount, A, a) : new Zi(m, s, c, A, a);
|
|
11210
11656
|
}
|
|
11211
|
-
return u.minFilter = o[0].mipmaps.length === 1 ? yt : Zt, u.magFilter = yt, u.generateMipmaps = !1, u.needsUpdate = !0, u.colorSpace = Ao(t), u.premultiplyAlpha = !!(d &
|
|
11657
|
+
return u.minFilter = o[0].mipmaps.length === 1 ? yt : Zt, u.magFilter = yt, u.generateMipmaps = !1, u.needsUpdate = !0, u.colorSpace = Ao(t), u.premultiplyAlpha = !!(d & nA), u;
|
|
11212
11658
|
}
|
|
11213
11659
|
/**
|
|
11214
11660
|
* @private
|
|
@@ -11217,9 +11663,9 @@ class rt extends ht {
|
|
|
11217
11663
|
* @return {Promise<CompressedTexture|CompressedArrayTexture|DataTexture|Data3DTexture>}
|
|
11218
11664
|
*/
|
|
11219
11665
|
async _createTexture(e, t = {}) {
|
|
11220
|
-
const n =
|
|
11221
|
-
if (!(n.vkFormat ===
|
|
11222
|
-
return
|
|
11666
|
+
const n = cA(new Uint8Array(e)), r = n.vkFormat === ii && n.dataFormatDescriptor[0].colorModel === 167;
|
|
11667
|
+
if (!(n.vkFormat === sA || r && !this.workerConfig.astcHDRSupported))
|
|
11668
|
+
return fA(n);
|
|
11223
11669
|
const s = t, c = this.init().then(() => this.workerPool.postMessage({ type: "transcode", buffer: e, taskConfig: s }, [e])).then((A) => this._createTextureFrom(A.data, n));
|
|
11224
11670
|
return xn.set(e, { promise: c }), c;
|
|
11225
11671
|
}
|
|
@@ -11469,7 +11915,7 @@ rt.BasisWorker = function() {
|
|
|
11469
11915
|
return l;
|
|
11470
11916
|
}
|
|
11471
11917
|
};
|
|
11472
|
-
const
|
|
11918
|
+
const dA = /* @__PURE__ */ new Set([Dt, Gn, qt, jt]), Nn = {
|
|
11473
11919
|
[Fr]: Dt,
|
|
11474
11920
|
[Dr]: qt,
|
|
11475
11921
|
[Nr]: jt,
|
|
@@ -11487,9 +11933,9 @@ const uA = /* @__PURE__ */ new Set([Dt, Gn, qt, jt]), Nn = {
|
|
|
11487
11933
|
[Zr]: er,
|
|
11488
11934
|
[Xr]: $i,
|
|
11489
11935
|
[Vn]: Xo,
|
|
11490
|
-
[
|
|
11936
|
+
[aA]: Jo,
|
|
11491
11937
|
[Wn]: Yo,
|
|
11492
|
-
[
|
|
11938
|
+
[AA]: Wo,
|
|
11493
11939
|
[ii]: sn,
|
|
11494
11940
|
[eo]: sn,
|
|
11495
11941
|
[$r]: sn,
|
|
@@ -11556,21 +12002,21 @@ const uA = /* @__PURE__ */ new Set([Dt, Gn, qt, jt]), Nn = {
|
|
|
11556
12002
|
[oo]: Ne,
|
|
11557
12003
|
[io]: Ne
|
|
11558
12004
|
};
|
|
11559
|
-
async function
|
|
12005
|
+
async function fA(i) {
|
|
11560
12006
|
const { vkFormat: e } = i;
|
|
11561
12007
|
if (Nn[e] === void 0)
|
|
11562
12008
|
throw new Error("THREE.KTX2Loader: Unsupported vkFormat: " + e);
|
|
11563
12009
|
Nt[e] === void 0 && console.warn('THREE.KTX2Loader: Missing ".type" for vkFormat: ' + e);
|
|
11564
12010
|
let t;
|
|
11565
12011
|
i.supercompressionScheme === Ti && (_n || (_n = new Promise(async (s) => {
|
|
11566
|
-
const c = new
|
|
12012
|
+
const c = new lA();
|
|
11567
12013
|
await c.init(), s(c);
|
|
11568
12014
|
})), t = await _n);
|
|
11569
12015
|
const n = [];
|
|
11570
12016
|
for (let s = 0; s < i.levels.length; s++) {
|
|
11571
12017
|
const c = Math.max(1, i.pixelWidth >> s), A = Math.max(1, i.pixelHeight >> s), a = i.pixelDepth ? Math.max(1, i.pixelDepth >> s) : 0, d = i.levels[s];
|
|
11572
12018
|
let u;
|
|
11573
|
-
if (i.supercompressionScheme ===
|
|
12019
|
+
if (i.supercompressionScheme === tA)
|
|
11574
12020
|
u = d.levelData;
|
|
11575
12021
|
else if (i.supercompressionScheme === Ti)
|
|
11576
12022
|
u = t.decode(d.levelData, d.uncompressedByteLength);
|
|
@@ -11598,7 +12044,7 @@ async function hA(i) {
|
|
|
11598
12044
|
}
|
|
11599
12045
|
const r = i.levelCount === 0 || n.length > 1;
|
|
11600
12046
|
let o;
|
|
11601
|
-
if (
|
|
12047
|
+
if (dA.has(Nn[e]))
|
|
11602
12048
|
o = i.pixelDepth === 0 ? new Pi(n[0].data, i.pixelWidth, i.pixelHeight) : new Zo(n[0].data, i.pixelWidth, i.pixelHeight, i.pixelDepth), o.minFilter = r ? Yi : An, o.magFilter = An, o.generateMipmaps = i.levelCount === 0;
|
|
11603
12049
|
else {
|
|
11604
12050
|
if (i.pixelDepth > 0) throw new Error("THREE.KTX2Loader: Unsupported pixelDepth.");
|
|
@@ -11608,7 +12054,7 @@ async function hA(i) {
|
|
|
11608
12054
|
}
|
|
11609
12055
|
function Ao(i) {
|
|
11610
12056
|
const e = i.dataFormatDescriptor[0];
|
|
11611
|
-
return e.colorPrimaries ===
|
|
12057
|
+
return e.colorPrimaries === rA ? e.transferFunction === vi ? Ze : at : e.colorPrimaries === oA ? e.transferFunction === vi ? uA : hA : e.colorPrimaries === iA ? ai : (console.warn(`THREE.KTX2Loader: Unsupported color primaries, "${e.colorPrimaries}"`), ai);
|
|
11612
12058
|
}
|
|
11613
12059
|
var co = (function() {
|
|
11614
12060
|
var i = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb", e = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb", t = new Uint8Array([
|
|
@@ -11823,21 +12269,21 @@ var co = (function() {
|
|
|
11823
12269
|
}
|
|
11824
12270
|
};
|
|
11825
12271
|
})();
|
|
11826
|
-
function
|
|
12272
|
+
function pA(i) {
|
|
11827
12273
|
return "morphTargetDictionary" in i && i.morphTargetDictionary !== void 0 && "morphTargetInfluences" in i && Array.isArray(i.morphTargetInfluences);
|
|
11828
12274
|
}
|
|
11829
|
-
const
|
|
12275
|
+
const gA = {
|
|
11830
12276
|
draco: "https://unpkg.com/three@0.182/examples/jsm/libs/draco/",
|
|
11831
12277
|
ktx2: "https://unpkg.com/three@0.182.0/examples/jsm/libs/basis/",
|
|
11832
12278
|
meshopt: !0
|
|
11833
12279
|
};
|
|
11834
12280
|
function lo(i = {}) {
|
|
11835
12281
|
const e = {
|
|
11836
|
-
...
|
|
12282
|
+
...gA,
|
|
11837
12283
|
...i
|
|
11838
12284
|
};
|
|
11839
12285
|
let t = new yr();
|
|
11840
|
-
const n = new
|
|
12286
|
+
const n = new Za();
|
|
11841
12287
|
if (n.setDecoderPath(e.draco), t.setDRACOLoader(n), e.renderer) {
|
|
11842
12288
|
const r = new rt();
|
|
11843
12289
|
r.setTranscoderPath(e.ktx2), r.detectSupport(e.renderer), t.setKTX2Loader(r);
|
|
@@ -11851,7 +12297,8 @@ class Dn extends Ar {
|
|
|
11851
12297
|
super(e, t);
|
|
11852
12298
|
}
|
|
11853
12299
|
}
|
|
11854
|
-
class
|
|
12300
|
+
class HA extends Wt {
|
|
12301
|
+
/** 読み込んだ glTF の生データ。Three.js の `GLTF` オブジェクトです。 */
|
|
11855
12302
|
gltf;
|
|
11856
12303
|
constructor(e) {
|
|
11857
12304
|
super(e);
|
|
@@ -11866,7 +12313,7 @@ class UA extends Wt {
|
|
|
11866
12313
|
skeleton: void 0
|
|
11867
12314
|
}, o = {};
|
|
11868
12315
|
this.gltf.scene.traverse((s) => {
|
|
11869
|
-
if (s.userData.a3js = { objectA3: this },
|
|
12316
|
+
if (s.userData.a3js = { objectA3: this }, pA(s)) {
|
|
11870
12317
|
const { morphTargetDictionary: c, morphTargetInfluences: A } = s;
|
|
11871
12318
|
Object.keys(c).forEach((a) => {
|
|
11872
12319
|
const d = s.name + "." + a, u = c[a];
|
|
@@ -11893,21 +12340,30 @@ class UA extends Wt {
|
|
|
11893
12340
|
return this;
|
|
11894
12341
|
}
|
|
11895
12342
|
}
|
|
11896
|
-
const
|
|
12343
|
+
const mA = {
|
|
11897
12344
|
camera: void 0,
|
|
11898
12345
|
antialias: !1,
|
|
11899
12346
|
transparent: !1
|
|
11900
12347
|
};
|
|
11901
|
-
class
|
|
12348
|
+
class EA extends HTMLElement {
|
|
12349
|
+
/** 生成オプション。 */
|
|
11902
12350
|
options;
|
|
11903
12351
|
ro;
|
|
12352
|
+
/** `View` の基本機能を提供する `BaseView`。 */
|
|
11904
12353
|
base;
|
|
12354
|
+
/** 3D レンダリングに使用する Three.js の `THREE.WebGLRenderer`。 */
|
|
11905
12355
|
renderer;
|
|
12356
|
+
/** HTML オーバーレイ(`Html3D` など)を描画する `CSS2DRenderer`。 */
|
|
11906
12357
|
css2DRenderer;
|
|
12358
|
+
/** このビューが表示している `Scene`。 */
|
|
11907
12359
|
scene;
|
|
12360
|
+
/** このビューのカメラ。 */
|
|
11908
12361
|
camera;
|
|
12362
|
+
/** このビューの入力コントローラー。 */
|
|
11909
12363
|
controller;
|
|
12364
|
+
/** 内部で使用している Three.js の `THREE.Camera`。 */
|
|
11910
12365
|
camera3js;
|
|
12366
|
+
/** フレーム間の経過時間を計測する `THREE.Timer`。 */
|
|
11911
12367
|
timer;
|
|
11912
12368
|
_canvas;
|
|
11913
12369
|
_css2DCanvas;
|
|
@@ -11926,7 +12382,7 @@ class gA extends HTMLElement {
|
|
|
11926
12382
|
</style>
|
|
11927
12383
|
<slot></slot>
|
|
11928
12384
|
`, this.options = {
|
|
11929
|
-
...
|
|
12385
|
+
...mA,
|
|
11930
12386
|
...e
|
|
11931
12387
|
}, this.options.camera)
|
|
11932
12388
|
this.camera3js = this.options.camera.camera, this.camera = this.options.camera;
|
|
@@ -11975,7 +12431,7 @@ class gA extends HTMLElement {
|
|
|
11975
12431
|
connectedCallback() {
|
|
11976
12432
|
this.ro = new ResizeObserver((e) => {
|
|
11977
12433
|
const t = e[0], n = t.contentRect.width, r = t.contentRect.height;
|
|
11978
|
-
n === 0 || r === 0 || (this.renderer.setSize(n, r, !0), this.css2DRenderer.setSize(n, r),
|
|
12434
|
+
n === 0 || r === 0 || (this.renderer.setSize(n, r, !0), this.css2DRenderer.setSize(n, r), IA(this.camera3js) ? (this.camera3js.aspect = n / r, this.camera3js.updateProjectionMatrix()) : bA(this.camera3js) && this.camera3js.updateProjectionMatrix());
|
|
11979
12435
|
}), this.ro.observe(this);
|
|
11980
12436
|
}
|
|
11981
12437
|
disconnectedCallback() {
|
|
@@ -12043,6 +12499,13 @@ class gA extends HTMLElement {
|
|
|
12043
12499
|
}), A.length > 0 && await A[0].a3js.clicked(), this.dispatchEvent(new CustomEvent("click3d", { detail: { value: A } }));
|
|
12044
12500
|
}
|
|
12045
12501
|
};
|
|
12502
|
+
/**
|
|
12503
|
+
* キャンバス内にアラートダイアログを表示します。
|
|
12504
|
+
* ユーザーが「OK」ボタンをクリックするまで処理を待機します。
|
|
12505
|
+
* @param message 表示するメッセージ
|
|
12506
|
+
* @param func OK ボタンクリック時に呼ばれる関数(省略可)
|
|
12507
|
+
* @returns OK ボタンがクリックされたら解決する `Promise`
|
|
12508
|
+
*/
|
|
12046
12509
|
alert(e, t) {
|
|
12047
12510
|
return new Promise((n) => {
|
|
12048
12511
|
const r = document.createElement("div");
|
|
@@ -12055,6 +12518,13 @@ class gA extends HTMLElement {
|
|
|
12055
12518
|
});
|
|
12056
12519
|
});
|
|
12057
12520
|
}
|
|
12521
|
+
/**
|
|
12522
|
+
* キャンバス内にテキスト入力ダイアログを表示します。
|
|
12523
|
+
* ユーザーが「OK」ボタンをクリックするまで処理を待機し、入力値を返します。
|
|
12524
|
+
* @param message 表示するメッセージ
|
|
12525
|
+
* @param func OK ボタンクリック時に呼ばれる関数(省略可)
|
|
12526
|
+
* @returns ユーザーが入力したテキストを値に持つ `Promise`
|
|
12527
|
+
*/
|
|
12058
12528
|
prompt(e, t) {
|
|
12059
12529
|
return new Promise((n) => {
|
|
12060
12530
|
const r = document.createElement("div");
|
|
@@ -12070,19 +12540,19 @@ class gA extends HTMLElement {
|
|
|
12070
12540
|
});
|
|
12071
12541
|
}
|
|
12072
12542
|
}
|
|
12073
|
-
customElements.define("canvas-a3",
|
|
12074
|
-
function
|
|
12543
|
+
customElements.define("canvas-a3", EA);
|
|
12544
|
+
function IA(i) {
|
|
12075
12545
|
return i.isPerspectiveCamera === !0;
|
|
12076
12546
|
}
|
|
12077
|
-
function
|
|
12547
|
+
function bA(i) {
|
|
12078
12548
|
return i.isOrthographicCamera === !0;
|
|
12079
12549
|
}
|
|
12080
|
-
const
|
|
12550
|
+
const CA = {
|
|
12081
12551
|
width: 600,
|
|
12082
12552
|
height: 300,
|
|
12083
12553
|
camera: void 0
|
|
12084
12554
|
};
|
|
12085
|
-
class
|
|
12555
|
+
class yA extends HTMLElement {
|
|
12086
12556
|
// ########## WebComponent関係のセットアップ ##########
|
|
12087
12557
|
_resizeObserver;
|
|
12088
12558
|
_dragging = !1;
|
|
@@ -12101,18 +12571,27 @@ class bA extends HTMLElement {
|
|
|
12101
12571
|
_titleBar = null;
|
|
12102
12572
|
_closeBtn = null;
|
|
12103
12573
|
// ########## WebComponent関係のセットアップ終り ##########
|
|
12574
|
+
/** 生成オプション。 */
|
|
12104
12575
|
options;
|
|
12576
|
+
/** `View` の基本機能を提供する `BaseView`。 */
|
|
12105
12577
|
base;
|
|
12578
|
+
/** 3D レンダリングに使用する Three.js の `THREE.WebGLRenderer`。 */
|
|
12106
12579
|
renderer;
|
|
12580
|
+
/** HTML オーバーレイ(`Html3D` など)を描画する `CSS2DRenderer`。 */
|
|
12107
12581
|
css2DRenderer;
|
|
12582
|
+
/** このビューが表示している `Scene`。 */
|
|
12108
12583
|
scene;
|
|
12584
|
+
/** このビューのカメラ。 */
|
|
12109
12585
|
camera;
|
|
12586
|
+
/** このビューの入力コントローラー。 */
|
|
12110
12587
|
controller;
|
|
12588
|
+
/** 内部で使用している Three.js の `THREE.Camera`。 */
|
|
12111
12589
|
camera3js;
|
|
12590
|
+
/** フレーム間の経過時間を計測する `THREE.Timer`。 */
|
|
12112
12591
|
timer;
|
|
12113
12592
|
constructor(e = 600, t = 300, n = {}) {
|
|
12114
12593
|
if (super(), this.options = {
|
|
12115
|
-
...
|
|
12594
|
+
...CA,
|
|
12116
12595
|
...n,
|
|
12117
12596
|
width: e,
|
|
12118
12597
|
height: t
|
|
@@ -12209,7 +12688,7 @@ class bA extends HTMLElement {
|
|
|
12209
12688
|
const e = this.shadowRoot.querySelector(".content");
|
|
12210
12689
|
let t = e.clientWidth, n = e.clientHeight;
|
|
12211
12690
|
const r = Math.floor(t), o = Math.floor(n);
|
|
12212
|
-
(this._canvas.width !== r || this._canvas.height !== o) && (this._canvas.width = r, this._canvas.height = o,
|
|
12691
|
+
(this._canvas.width !== r || this._canvas.height !== o) && (this._canvas.width = r, this._canvas.height = o, BA(this.camera3js) ? (this.camera3js.aspect = r / o, this.camera3js.updateProjectionMatrix()) : wA(this.camera3js) && this.camera3js.updateProjectionMatrix(), this.renderer.setSize(r, o), this.css2DRenderer.setSize(r, o));
|
|
12213
12692
|
}
|
|
12214
12693
|
connectedCallback() {
|
|
12215
12694
|
this._titleEl = this.shadowRoot.querySelector(".title"), this._titleEl.textContent = this.getAttribute("title") ?? "Window", this._titleBar = this.shadowRoot.querySelector(".titlebar"), this._closeBtn = this.shadowRoot.querySelector(".close"), this._titleBar.addEventListener("mousedown", this._onDragStart), this._closeBtn.addEventListener("click", () => this.remove()), this.addEventListener("mousemove", this._onHover), this.addEventListener("mousedown", this._onResizeStart), document.addEventListener("mousemove", this._onMouseMove), document.addEventListener("mouseup", this._onMouseUp), this._resizeObserver = new ResizeObserver(() => {
|
|
@@ -12331,6 +12810,13 @@ class bA extends HTMLElement {
|
|
|
12331
12810
|
}), A.length > 0 && await A[0].a3js.clicked(), this.dispatchEvent(new CustomEvent("click3d", { detail: { value: A } }));
|
|
12332
12811
|
}
|
|
12333
12812
|
};
|
|
12813
|
+
/**
|
|
12814
|
+
* ウィンドウ内にアラートダイアログを表示します。
|
|
12815
|
+
* ユーザーが「OK」ボタンをクリックするまで処理を待機します。
|
|
12816
|
+
* @param message 表示するメッセージ
|
|
12817
|
+
* @param func OK ボタンクリック時に呼ばれる関数(省略可)
|
|
12818
|
+
* @returns OK ボタンがクリックされたら解決する `Promise`
|
|
12819
|
+
*/
|
|
12334
12820
|
alert(e, t) {
|
|
12335
12821
|
return new Promise((n) => {
|
|
12336
12822
|
const r = document.createElement("div");
|
|
@@ -12343,6 +12829,13 @@ class bA extends HTMLElement {
|
|
|
12343
12829
|
});
|
|
12344
12830
|
});
|
|
12345
12831
|
}
|
|
12832
|
+
/**
|
|
12833
|
+
* ウィンドウ内にテキスト入力ダイアログを表示します。
|
|
12834
|
+
* ユーザーが「OK」ボタンをクリックするまで処理を待機し、入力値を返します。
|
|
12835
|
+
* @param message 表示するメッセージ
|
|
12836
|
+
* @param func OK ボタンクリック時に呼ばれる関数(省略可)
|
|
12837
|
+
* @returns ユーザーが入力したテキストを値に持つ `Promise`
|
|
12838
|
+
*/
|
|
12346
12839
|
prompt(e, t) {
|
|
12347
12840
|
return new Promise((n) => {
|
|
12348
12841
|
const r = document.createElement("div");
|
|
@@ -12358,14 +12851,14 @@ class bA extends HTMLElement {
|
|
|
12358
12851
|
});
|
|
12359
12852
|
}
|
|
12360
12853
|
}
|
|
12361
|
-
customElements.define("window-a3",
|
|
12362
|
-
function
|
|
12854
|
+
customElements.define("window-a3", yA);
|
|
12855
|
+
function BA(i) {
|
|
12363
12856
|
return i.isPerspectiveCamera === !0;
|
|
12364
12857
|
}
|
|
12365
|
-
function
|
|
12858
|
+
function wA(i) {
|
|
12366
12859
|
return i.isOrthographicCamera === !0;
|
|
12367
12860
|
}
|
|
12368
|
-
const
|
|
12861
|
+
const TA = `
|
|
12369
12862
|
color: white;
|
|
12370
12863
|
padding: 5px 10px;
|
|
12371
12864
|
background: rgba(0, 0, 0, 0.6);
|
|
@@ -12377,7 +12870,7 @@ const BA = `
|
|
|
12377
12870
|
`, ki = {
|
|
12378
12871
|
testMode: !0
|
|
12379
12872
|
};
|
|
12380
|
-
class
|
|
12873
|
+
class jA extends Me {
|
|
12381
12874
|
constructor(e = {}) {
|
|
12382
12875
|
super(e);
|
|
12383
12876
|
const t = {
|
|
@@ -12388,7 +12881,7 @@ class GA extends Me {
|
|
|
12388
12881
|
}
|
|
12389
12882
|
initObject() {
|
|
12390
12883
|
const e = new re.BoxGeometry(), t = new re.MeshStandardMaterial({ color: 65280 }), n = new re.Mesh(e, t), r = document.createElement("div");
|
|
12391
|
-
r.textContent = "Hello Box!", r.style.cssText =
|
|
12884
|
+
r.textContent = "Hello Box!", r.style.cssText = TA;
|
|
12392
12885
|
const o = new br(r);
|
|
12393
12886
|
return o.position.set(0, 0.8, 0), n.add(o), n;
|
|
12394
12887
|
}
|
|
@@ -12407,7 +12900,7 @@ class Si extends cn {
|
|
|
12407
12900
|
super.update(e), this.testMode && (this.rot.add(e, e, e), Qt(this.rot, "ZXY", this.transform.quat));
|
|
12408
12901
|
}
|
|
12409
12902
|
}
|
|
12410
|
-
class
|
|
12903
|
+
class vA extends ht {
|
|
12411
12904
|
/**
|
|
12412
12905
|
* Constructs a new font loader.
|
|
12413
12906
|
*
|
|
@@ -12461,13 +12954,13 @@ class uo {
|
|
|
12461
12954
|
* @return {Array<Shape>} An array of shapes representing the text.
|
|
12462
12955
|
*/
|
|
12463
12956
|
generateShapes(e, t = 100, n = "ltr") {
|
|
12464
|
-
const r = [], o =
|
|
12957
|
+
const r = [], o = RA(e, t, this.data, n);
|
|
12465
12958
|
for (let s = 0, c = o.length; s < c; s++)
|
|
12466
12959
|
r.push(...o[s].toShapes());
|
|
12467
12960
|
return r;
|
|
12468
12961
|
}
|
|
12469
12962
|
}
|
|
12470
|
-
function
|
|
12963
|
+
function RA(i, e, t, n) {
|
|
12471
12964
|
const r = Array.from(i), o = e / t.resolution, s = (t.boundingBox.yMax - t.boundingBox.yMin + t.underlineThickness) * o, c = [];
|
|
12472
12965
|
let A = 0, a = 0;
|
|
12473
12966
|
(n == "rtl" || n == "tb") && r.reverse();
|
|
@@ -12477,13 +12970,13 @@ function TA(i, e, t, n) {
|
|
|
12477
12970
|
`)
|
|
12478
12971
|
A = 0, a -= s;
|
|
12479
12972
|
else {
|
|
12480
|
-
const m =
|
|
12973
|
+
const m = QA(u, o, A, a, t);
|
|
12481
12974
|
n == "tb" ? (A = 0, a += t.ascender * o) : A += m.offsetX, c.push(m.path);
|
|
12482
12975
|
}
|
|
12483
12976
|
}
|
|
12484
12977
|
return c;
|
|
12485
12978
|
}
|
|
12486
|
-
function
|
|
12979
|
+
function QA(i, e, t, n, r) {
|
|
12487
12980
|
const o = r.glyphs[i] || r.glyphs["?"];
|
|
12488
12981
|
if (!o) {
|
|
12489
12982
|
console.error('THREE.Font: character "' + i + '" does not exists in font family ' + r.familyName + ".");
|
|
@@ -12511,7 +13004,7 @@ function vA(i, e, t, n, r) {
|
|
|
12511
13004
|
}
|
|
12512
13005
|
return { offsetX: o.ha * e, path: s };
|
|
12513
13006
|
}
|
|
12514
|
-
class
|
|
13007
|
+
class kA extends rs {
|
|
12515
13008
|
/**
|
|
12516
13009
|
* Constructs a new text geometry.
|
|
12517
13010
|
*
|
|
@@ -12530,30 +13023,30 @@ class RA extends rs {
|
|
|
12530
13023
|
}
|
|
12531
13024
|
}
|
|
12532
13025
|
let dn = null;
|
|
12533
|
-
async function
|
|
13026
|
+
async function qA(i) {
|
|
12534
13027
|
if (i.match(/.zip$/i)) {
|
|
12535
13028
|
let e = i.substring(i.lastIndexOf("/"));
|
|
12536
13029
|
e = e.substring(0, e.length - 4);
|
|
12537
13030
|
const t = await ar(i), n = un(t, e);
|
|
12538
13031
|
dn = new uo(JSON.parse(n));
|
|
12539
13032
|
} else
|
|
12540
|
-
dn = await new
|
|
13033
|
+
dn = await new vA().loadAsync(i);
|
|
12541
13034
|
}
|
|
12542
|
-
class
|
|
13035
|
+
class zA extends Me {
|
|
12543
13036
|
initObject(e) {
|
|
12544
13037
|
let t;
|
|
12545
13038
|
if (or(e) ? t = e : t = "ERROR", dn == null) {
|
|
12546
13039
|
const n = new re.BoxGeometry(), r = new re.MeshStandardMaterial({ color: 16711680 });
|
|
12547
13040
|
return new re.Mesh(n, r);
|
|
12548
13041
|
} else {
|
|
12549
|
-
const n = { font: dn, size: 1, depth: 0.5, curveSegments: 12 }, r = new
|
|
13042
|
+
const n = { font: dn, size: 1, depth: 0.5, curveSegments: 12 }, r = new kA(t, n);
|
|
12550
13043
|
r.center();
|
|
12551
13044
|
const o = new re.MeshStandardMaterial({ color: 65280 });
|
|
12552
13045
|
return new re.Mesh(r, o);
|
|
12553
13046
|
}
|
|
12554
13047
|
}
|
|
12555
13048
|
}
|
|
12556
|
-
class
|
|
13049
|
+
class KA extends Me {
|
|
12557
13050
|
constructor(e) {
|
|
12558
13051
|
super(e);
|
|
12559
13052
|
}
|
|
@@ -12561,7 +13054,7 @@ class qA extends Me {
|
|
|
12561
13054
|
return e;
|
|
12562
13055
|
}
|
|
12563
13056
|
}
|
|
12564
|
-
class
|
|
13057
|
+
class VA extends Me {
|
|
12565
13058
|
constructor(...e) {
|
|
12566
13059
|
super(e);
|
|
12567
13060
|
}
|
|
@@ -12571,7 +13064,7 @@ class zA extends Me {
|
|
|
12571
13064
|
return new re.Mesh(r, s);
|
|
12572
13065
|
}
|
|
12573
13066
|
}
|
|
12574
|
-
class
|
|
13067
|
+
class WA extends Me {
|
|
12575
13068
|
constructor(...e) {
|
|
12576
13069
|
super(e);
|
|
12577
13070
|
}
|
|
@@ -12581,7 +13074,7 @@ class KA extends Me {
|
|
|
12581
13074
|
return new re.Mesh(r, s);
|
|
12582
13075
|
}
|
|
12583
13076
|
}
|
|
12584
|
-
class
|
|
13077
|
+
class YA extends Me {
|
|
12585
13078
|
constructor() {
|
|
12586
13079
|
super();
|
|
12587
13080
|
}
|
|
@@ -12592,7 +13085,7 @@ class VA extends Me {
|
|
|
12592
13085
|
return e.add(n), e;
|
|
12593
13086
|
}
|
|
12594
13087
|
}
|
|
12595
|
-
class
|
|
13088
|
+
class JA extends Me {
|
|
12596
13089
|
constructor(e) {
|
|
12597
13090
|
super(e);
|
|
12598
13091
|
}
|
|
@@ -12602,44 +13095,58 @@ class WA extends Me {
|
|
|
12602
13095
|
return new re.Mesh(t, r);
|
|
12603
13096
|
}
|
|
12604
13097
|
}
|
|
12605
|
-
class
|
|
13098
|
+
class XA extends Me {
|
|
12606
13099
|
constructor(e) {
|
|
12607
13100
|
super(e);
|
|
13101
|
+
const t = this.object3D.children[0];
|
|
13102
|
+
this.object3D.addEventListener("removed", () => {
|
|
13103
|
+
t.element.remove();
|
|
13104
|
+
});
|
|
12608
13105
|
}
|
|
12609
13106
|
// 引数が上とあってなさそうだけど、こうするのが正解
|
|
12610
13107
|
initObject(e) {
|
|
12611
13108
|
return new br(e);
|
|
12612
13109
|
}
|
|
12613
13110
|
}
|
|
12614
|
-
const
|
|
12615
|
-
// スマホかPCかの判定をタッチデバイスの数で判定
|
|
13111
|
+
const SA = {
|
|
12616
13112
|
touchDevice: navigator.maxTouchPoints > 0
|
|
12617
13113
|
};
|
|
12618
|
-
class
|
|
13114
|
+
class xA extends HTMLElement {
|
|
13115
|
+
/** 生成オプション。 */
|
|
12619
13116
|
options;
|
|
13117
|
+
/** 内部で使用している `Canvas`。 */
|
|
12620
13118
|
canvas;
|
|
13119
|
+
/** このビューが表示している `Scene`。 */
|
|
12621
13120
|
scene;
|
|
13121
|
+
/** このビューのカメラ。 */
|
|
12622
13122
|
camera;
|
|
13123
|
+
/** このビューの入力コントローラー。 */
|
|
12623
13124
|
controller;
|
|
12624
|
-
// 以下ジョイスティック用情報
|
|
12625
13125
|
_maxDistance;
|
|
12626
|
-
// 左ジョイスティック用
|
|
12627
13126
|
_leftActive;
|
|
12628
13127
|
_leftCenter;
|
|
13128
|
+
/**
|
|
13129
|
+
* 左ジョイスティックの現在の入力値です。
|
|
13130
|
+
* `x`・`y` ともに -1 〜 1 の範囲で、中央が `0`、最大傾きが `±1` です。
|
|
13131
|
+
*/
|
|
12629
13132
|
leftJoystick;
|
|
12630
|
-
// 右ジョイスティック用
|
|
12631
13133
|
_rightActive;
|
|
12632
13134
|
_rightCenter;
|
|
13135
|
+
/**
|
|
13136
|
+
* 右ジョイスティックの現在の入力値です。
|
|
13137
|
+
* `x`・`y` ともに -1 〜 1 の範囲で、中央が `0`、最大傾きが `±1` です。
|
|
13138
|
+
*/
|
|
12633
13139
|
rightJoystick;
|
|
12634
|
-
|
|
13140
|
+
/** 左ボタンが押されているとき `true`(PC では Space キーに対応)。 */
|
|
12635
13141
|
leftButton;
|
|
13142
|
+
/** 右ボタンが押されているとき `true`(PC では Enter キーに対応)。 */
|
|
12636
13143
|
rightButton;
|
|
12637
|
-
|
|
13144
|
+
/** 現在押下中のキーコードの集合。 */
|
|
12638
13145
|
keys;
|
|
12639
13146
|
_ro;
|
|
12640
13147
|
constructor(e = {}) {
|
|
12641
13148
|
super(), this.options = {
|
|
12642
|
-
...
|
|
13149
|
+
...SA,
|
|
12643
13150
|
...e
|
|
12644
13151
|
}, this.attachShadow({ mode: "open" }), this.shadowRoot.innerHTML = `
|
|
12645
13152
|
<style>
|
|
@@ -12841,8 +13348,8 @@ class kA extends HTMLElement {
|
|
|
12841
13348
|
return this.canvas.prompt(e, t);
|
|
12842
13349
|
}
|
|
12843
13350
|
}
|
|
12844
|
-
customElements.define("game-canvas-a3",
|
|
12845
|
-
const
|
|
13351
|
+
customElements.define("game-canvas-a3", xA);
|
|
13352
|
+
const LA = {
|
|
12846
13353
|
mass: 10,
|
|
12847
13354
|
// ブレーキが弱いのでこうするしかない
|
|
12848
13355
|
defaultLocation: { x: 0, y: 1, z: 0 },
|
|
@@ -12882,36 +13389,48 @@ const SA = {
|
|
|
12882
13389
|
wheelRearMaxSuspensionTravel: 0.25,
|
|
12883
13390
|
aerodynamicDrag: 0
|
|
12884
13391
|
};
|
|
12885
|
-
class
|
|
13392
|
+
class ZA {
|
|
12886
13393
|
opt;
|
|
12887
13394
|
trans;
|
|
12888
13395
|
motion;
|
|
12889
13396
|
constructor(e) {
|
|
12890
13397
|
this.opt = {
|
|
12891
|
-
...
|
|
13398
|
+
...LA,
|
|
12892
13399
|
...e
|
|
12893
|
-
}, this.trans = new
|
|
13400
|
+
}, this.trans = new _A(this), this.motion = new NA(this);
|
|
12894
13401
|
}
|
|
13402
|
+
/**
|
|
13403
|
+
* ハンドルを操作します。
|
|
13404
|
+
* @param angle ステアリング角度(ラジアン)。正の値で右方向に曲がります。
|
|
13405
|
+
*/
|
|
12895
13406
|
steer(e) {
|
|
12896
13407
|
this.trans.controller && (this.trans.controller.setWheelSteering(0, e), this.trans.controller.setWheelSteering(1, e));
|
|
12897
13408
|
}
|
|
13409
|
+
/**
|
|
13410
|
+
* アクセルを操作します。全4輪にエンジン力を加えます。
|
|
13411
|
+
* @param value エンジン力(ニュートン)。正の値で前進、負の値で後退します。
|
|
13412
|
+
*/
|
|
12898
13413
|
accelerate(e) {
|
|
12899
13414
|
this.trans.controller && (this.trans.controller.setWheelEngineForce(0, e), this.trans.controller.setWheelEngineForce(1, e), this.trans.controller.setWheelEngineForce(2, e), this.trans.controller.setWheelEngineForce(3, e));
|
|
12900
13415
|
}
|
|
12901
|
-
|
|
12902
|
-
|
|
12903
|
-
|
|
12904
|
-
|
|
12905
|
-
// 試しに10kgぐらいにしたら、調整で上手くいきそうな
|
|
12906
|
-
// 感じになった。DynamicRayCastVehicleController。
|
|
13416
|
+
/**
|
|
13417
|
+
* ブレーキを操作します。全4輪にブレーキ力を加えます。
|
|
13418
|
+
* @param b ブレーキ力(大きいほど強くブレーキがかかります)。`0` でブレーキ解除。
|
|
13419
|
+
*/
|
|
12907
13420
|
brake(e) {
|
|
12908
13421
|
this.trans.controller && (this.trans.controller.setWheelBrake(0, e), this.trans.controller.setWheelBrake(1, e), this.trans.controller.setWheelBrake(2, e), this.trans.controller.setWheelBrake(3, e));
|
|
12909
13422
|
}
|
|
13423
|
+
/**
|
|
13424
|
+
* 車をリセットします。指定した位置・回転に車体を瞬間移動させ、速度をゼロにします。
|
|
13425
|
+
* 省略時は `defaultLocation` / `defaultQuat` に戻します。
|
|
13426
|
+
* @param loc リセット先の位置。省略時は初期位置。
|
|
13427
|
+
* @param quat リセット先の回転。省略時は初期回転。
|
|
13428
|
+
*/
|
|
12910
13429
|
reset(e, t) {
|
|
12911
13430
|
this.trans.chassisBody && (e ? this.trans.chassisBody.setTranslation({ x: e.x, y: e.y, z: e.z }, !0) : this.trans.chassisBody.setTranslation(this.opt.defaultLocation, !0), t ? this.trans.chassisBody.setRotation({ x: t.x, y: t.y, z: t.z, w: t.w }, !0) : this.trans.chassisBody.setRotation(this.opt.defaultQuat, !0), this.trans.chassisBody.setLinvel({ x: 0, y: 0, z: 0 }, !0), this.trans.chassisBody.setAngvel({ x: 0, y: 0, z: 0 }, !0));
|
|
12912
13431
|
}
|
|
12913
13432
|
}
|
|
12914
|
-
class
|
|
13433
|
+
class _A {
|
|
12915
13434
|
cc;
|
|
12916
13435
|
transform;
|
|
12917
13436
|
objectA3;
|
|
@@ -13021,7 +13540,7 @@ class xA {
|
|
|
13021
13540
|
this.controller?.updateVehicle(e), this.chassisBody && this.transform.loc.set(this.chassisBody.translation()), this.chassisBody && this.transform.quat.set(this.chassisBody.rotation());
|
|
13022
13541
|
}
|
|
13023
13542
|
}
|
|
13024
|
-
class
|
|
13543
|
+
class NA {
|
|
13025
13544
|
cm;
|
|
13026
13545
|
name;
|
|
13027
13546
|
playCount;
|
|
@@ -13098,64 +13617,64 @@ class LA {
|
|
|
13098
13617
|
}
|
|
13099
13618
|
}
|
|
13100
13619
|
export {
|
|
13101
|
-
|
|
13620
|
+
ha as Acerola3D,
|
|
13102
13621
|
Ar as Action,
|
|
13103
13622
|
Wt as ActionObject,
|
|
13104
|
-
|
|
13105
|
-
|
|
13623
|
+
UA as AvatarPositionController,
|
|
13624
|
+
GA as AvatarVelocityController,
|
|
13106
13625
|
ni as BaseController,
|
|
13107
13626
|
Ir as BaseView,
|
|
13108
|
-
|
|
13109
|
-
|
|
13110
|
-
|
|
13111
|
-
|
|
13112
|
-
|
|
13113
|
-
|
|
13114
|
-
|
|
13627
|
+
ls as BillboardTransformer,
|
|
13628
|
+
VA as Box,
|
|
13629
|
+
fa as Camera,
|
|
13630
|
+
EA as Canvas,
|
|
13631
|
+
ZA as CarControl,
|
|
13632
|
+
NA as CarMotion,
|
|
13633
|
+
_A as CarTransformer,
|
|
13115
13634
|
mr as ClipMotion,
|
|
13116
13635
|
cn as DefaultTransformer,
|
|
13117
|
-
|
|
13118
|
-
|
|
13119
|
-
|
|
13120
|
-
|
|
13121
|
-
|
|
13122
|
-
|
|
13123
|
-
|
|
13636
|
+
xs as DynamicCharacterTransformer,
|
|
13637
|
+
fs as FollowTransformer,
|
|
13638
|
+
HA as GLTF,
|
|
13639
|
+
xA as GameCanvas,
|
|
13640
|
+
XA as Html3D,
|
|
13641
|
+
JA as ImagePlane,
|
|
13642
|
+
ks as KinematicCharacterTransformer,
|
|
13124
13643
|
Me as ObjectA3,
|
|
13125
|
-
|
|
13644
|
+
pa as OrbitController,
|
|
13126
13645
|
Pe as Quat,
|
|
13127
13646
|
ln as RapierPhysicsEngine,
|
|
13128
13647
|
sr as RapierPhysicsWorld,
|
|
13129
|
-
|
|
13130
|
-
|
|
13131
|
-
|
|
13648
|
+
jA as SampleObject,
|
|
13649
|
+
da as Scene,
|
|
13650
|
+
hs as SmoothBillboardTransformer,
|
|
13132
13651
|
ir as SmoothTransformer,
|
|
13133
13652
|
Ct as Sound,
|
|
13134
|
-
|
|
13135
|
-
|
|
13653
|
+
WA as Sphere,
|
|
13654
|
+
YA as StandardLights,
|
|
13136
13655
|
As as StaticTransformer,
|
|
13137
|
-
|
|
13656
|
+
zA as Text3D,
|
|
13138
13657
|
hn as ThreeCamera,
|
|
13139
|
-
|
|
13658
|
+
KA as ThreeObject,
|
|
13140
13659
|
Ve as Transform,
|
|
13141
13660
|
ae as Vec3,
|
|
13142
|
-
|
|
13143
|
-
|
|
13661
|
+
yA as Window,
|
|
13662
|
+
MA as asyncSleep,
|
|
13144
13663
|
ft as collisionMap,
|
|
13145
13664
|
Xn as deepMerge,
|
|
13146
|
-
|
|
13147
|
-
|
|
13148
|
-
|
|
13149
|
-
|
|
13150
|
-
|
|
13151
|
-
|
|
13665
|
+
mA as defaultCanvasOptions,
|
|
13666
|
+
LA as defaultCarControlOptions,
|
|
13667
|
+
Ss as defaultDynamicCharacterTransformerOptions,
|
|
13668
|
+
ds as defaultFollowTransformerOptions,
|
|
13669
|
+
SA as defaultGameCanvasOptions,
|
|
13670
|
+
Qs as defaultKinematicCharacterTransformerOptions,
|
|
13152
13671
|
ki as defaultSampleObjectOptions,
|
|
13153
|
-
|
|
13672
|
+
CA as defaultWindowOptions,
|
|
13154
13673
|
Qt as eulerToQuaternion,
|
|
13155
13674
|
Bt as getLookAtQuaternion,
|
|
13156
|
-
|
|
13157
|
-
|
|
13158
|
-
|
|
13675
|
+
qA as initFont,
|
|
13676
|
+
OA as initPhysics,
|
|
13677
|
+
PA as initSound,
|
|
13159
13678
|
lo as recreateGLTFLoader
|
|
13160
13679
|
};
|
|
13161
13680
|
//# sourceMappingURL=a3js.es.js.map
|