@realsee/five-webgpu 1.0.0-alpha.7 → 1.0.0-alpha.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/classes/index.FiveRenderer.html +2 -2
- package/five/index.js +111 -37
- package/five/index.mjs +1082 -729
- package/five/renderer/compute-renderers/binned/binned-core.d.ts +46 -0
- package/five/renderer/compute-renderers/binned/binned-pipelines.d.ts +10 -0
- package/five/renderer/compute-renderers/binned/shaders/classify.d.ts +2 -0
- package/five/renderer/compute-renderers/binned/shaders/coop.d.ts +2 -0
- package/five/renderer/compute-renderers/pointcloud-compute-renderer.d.ts +14 -38
- package/five/renderer/compute-renderers/shaders/lib/color.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/lib/cull.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/lib/encode.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/lib/point-setup.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/lib/point-size.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/lib/raster.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/lib/size-class.d.ts +2 -0
- package/five/renderer/compute-renderers/shaders/lib/tile-bindings.d.ts +2 -0
- package/five/renderer/compute-renderers/uniform-layout.d.ts +23 -0
- package/five/renderer/five-renderer.d.ts +2 -0
- package/gltf-loader/index.js +3 -3
- package/gltf-loader/index.mjs +3 -3
- package/line/index.js +3 -3
- package/line/index.mjs +3 -3
- package/package.json +1 -1
- package/plugins/index.js +2 -2
- package/plugins/index.mjs +2 -2
- package/react/index.js +2 -2
- package/react/index.mjs +2 -2
- package/sticker/index.js +3 -3
- package/sticker/index.mjs +3 -3
- package/umd/five-gltf-loader.js +3 -3
- package/umd/five-line.js +3 -3
- package/umd/five-plugins.js +2 -2
- package/umd/five-react.js +2 -2
- package/umd/five-sticker.js +3 -3
- package/umd/five-vfx.js +2 -2
- package/umd/five.js +131 -57
- package/vfx/index.js +2 -2
- package/vfx/index.mjs +2 -2
- package/work-downloader/index.js +2 -2
- package/work-downloader/index.mjs +2 -2
- /package/five/renderer/compute-renderers/{shaders/rasterize.d.ts → binned/shaders/args-builder.d.ts} +0 -0
package/five/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 10/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/10/21
|
|
5
|
+
* Version: 1.0.0-alpha.9
|
|
6
6
|
* Terms:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
* Update: July 28, 2021
|
|
@@ -19456,25 +19456,302 @@ var OS = class extends Kx {
|
|
|
19456
19456
|
}
|
|
19457
19457
|
}, HS = function(...e) {
|
|
19458
19458
|
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19459
|
-
}("
|
|
19459
|
+
}("Mt|}5=6-Mov{qv{t5=6-nI|ntr9-rnqlvrK-snzrossrG-nn\bIn|zvpI@?KKHMt|}5=6-Mov{qv{t5>6-nI{vs|zK-snzrG-Snzrb{vs|zHMp|z}r-M|xt|}lv r5?BC6s{-znv{5Movyv{5ty|onylv{|pnv|{lvq6-tvqG-rp@I@?K6-\n--yr-vq\x07-J-tvq;\x07H--yr-|ny]v\x07ry-J-snzr;prr{V{s|;\x07-7-snzr;prr{V{s|;\bH--vs-5vq\x07-KJ-|ny]v\x07ry6-\n----r{H--\f--n|zvp`|r53snzrossrhvq\x07j9-=\x07SSSSSSSS6H\f"), US = function(...e) {
|
|
19460
19460
|
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19461
|
-
}("p-crr\x07\\}-\n--Movyv{5}|vv|{6-}|vv|{G-rpAIs@?K9--My|pnv|{5=6-G-rp?Is@?K9\fHMrr\x07s{-lznv{5Movyv{5rr\x07lv{qr\x076-vqG-@?6-:K-crr\x07\\}-\n--<<-Syyprr{-vn{tyrG-@-rvpr-p|r-ur-r{vr-prr{--yr-\x07-J-s@?5vq-3->6-7-A;=-:->;=H--yr-\b-J-s@?55vq-KK->6-3->6-7-A;=-:->;=H--n-|G-crr\x07\\}H--|;}|vv|{-J-rpAIs@?K5\x079-\b9-=;=9->;=6H--|;-J-rp?Is@?K5\x07-7-=;B-8-=;B9->;=-:-5\b-7-=;B-8-=;B66H--r{-|H\fp-]nnz-\n--prr{dvquG-@?9--prr{UrvtuG-@?9\fHMt|}5=6-Mov{qv{t5=6-nI|ntr9-rnqK-snzrossrG-nn\bI@?KHMt|}5=6-Mov{qv{t5>6-nI{vs|zK-}nnzG-]nnzHp-Snt\\}-\n--My|pnv|{5=6-p|y|G-rpAIs@?K9--Movyv{5sntlqr}u6-qr}uG-s@?9\fHMsntzr{s{-slznv{5Movyv{5}|vv|{6-sntP||qG-rpAIs@?K6-:K-Snt\\}-\n--yr-\x07-J-@?5sntP||q;\x076H--yr-\b-J-@?5sntP||q;\b6H--yr-vq\x07-J-\b-7-}nnz;prr{dvqu-8-\x07H--yr-r{p|qrq-J-snzrossrhvq\x07jH--n-|G-Snt\\}H--<<-Vs-}v\x07ry-n-{rr-vr{-5vyy-pyrnrq-|-=\x07SSSSSSSS69-qvpnq-v--<<-o\b-}uv{t-qr}u-|->;=-n{q-|}v{t-n{}nr{-—-rssrpvry\b-xv}}rq--vs-5r{p|qrq-JJ-=\x07SSSSSSSS6-\n----qvpnqH--\f--<<-Qrp|qr-qr}u-s|z-}}r->C-ov-→-h=9->j--yr-qr}ub>C-J-5r{p|qrq-KK->C6-3-=\x07SSSSH--|;qr}u-J-s@?5qr}ub>C6-<-CBB@B;=H--<<-Qrp|qr-_TOBCB-s|z-y|r->C-ov--yr-toBCB-J-r{p|qrq-3-=\x07SSSSH--yr--J-s@?55toBCB-KK->>6-3-=\x07>S6-<-@>;=H--yr-t-J-s@?55toBCB-KK-B6-3-=\x07@S6-<-C@;=H--yr-o-J-s@?5toBCB-3-=\x07>S6-<-@>;=H--|;p|y|-J-rpAIs@?K59-t9-o9->;=6H--r{-|H\f"), WS =
|
|
19461
|
+
}("p-crr\x07\\}-\n--Movyv{5}|vv|{6-}|vv|{G-rpAIs@?K9--My|pnv|{5=6-G-rp?Is@?K9\fHMrr\x07s{-lznv{5Movyv{5rr\x07lv{qr\x076-vqG-@?6-:K-crr\x07\\}-\n--<<-Syyprr{-vn{tyrG-@-rvpr-p|r-ur-r{vr-prr{--yr-\x07-J-s@?5vq-3->6-7-A;=-:->;=H--yr-\b-J-s@?55vq-KK->6-3->6-7-A;=-:->;=H--n-|G-crr\x07\\}H--|;}|vv|{-J-rpAIs@?K5\x079-\b9-=;=9->;=6H--|;-J-rp?Is@?K5\x07-7-=;B-8-=;B9->;=-:-5\b-7-=;B-8-=;B66H--r{-|H\fp-]nnz-\n--prr{dvquG-@?9--prr{UrvtuG-@?9\fHMt|}5=6-Mov{qv{t5=6-nI|ntr9-rnqK-snzrossrG-nn\bI@?KHMt|}5=6-Mov{qv{t5>6-nI{vs|zK-}nnzG-]nnzHp-Snt\\}-\n--My|pnv|{5=6-p|y|G-rpAIs@?K9--Movyv{5sntlqr}u6-qr}uG-s@?9\fHMsntzr{s{-slznv{5Movyv{5}|vv|{6-sntP||qG-rpAIs@?K6-:K-Snt\\}-\n--yr-\x07-J-@?5sntP||q;\x076H--yr-\b-J-@?5sntP||q;\b6H--yr-vq\x07-J-\b-7-}nnz;prr{dvqu-8-\x07H--yr-r{p|qrq-J-snzrossrhvq\x07jH--n-|G-Snt\\}H--<<-Vs-}v\x07ry-n-{rr-vr{-5vyy-pyrnrq-|-=\x07SSSSSSSS69-qvpnq-v--<<-o\b-}uv{t-qr}u-|->;=-n{q-|}v{t-n{}nr{-—-rssrpvry\b-xv}}rq--vs-5r{p|qrq-JJ-=\x07SSSSSSSS6-\n----qvpnqH--\f--<<-Qrp|qr-qr}u-s|z-}}r->C-ov-→-h=9->j--yr-qr}ub>C-J-5r{p|qrq-KK->C6-3-=\x07SSSSH--|;qr}u-J-s@?5qr}ub>C6-<-CBB@B;=H--<<-Qrp|qr-_TOBCB-s|z-y|r->C-ov--yr-toBCB-J-r{p|qrq-3-=\x07SSSSH--yr--J-s@?55toBCB-KK->>6-3-=\x07>S6-<-@>;=H--yr-t-J-s@?55toBCB-KK-B6-3-=\x07@S6-<-C@;=H--yr-o-J-s@?5toBCB-3-=\x07>S6-<-@>;=H--|;p|y|-J-rpAIs@?K59-t9-o9->;=6H--r{-|H\f"), WS = {
|
|
19462
|
+
"mat4x4<f32>": 64,
|
|
19463
|
+
"vec4<f32>": 16,
|
|
19464
|
+
"vec4<u32>": 16
|
|
19465
|
+
};
|
|
19466
|
+
function GS(e, t) {
|
|
19467
|
+
let n = 0, r = {}, i = [];
|
|
19468
|
+
for (let [e, a] of t) r[e] = n, i.push(` ${e}: ${a},`), n += WS[a];
|
|
19469
|
+
return {
|
|
19470
|
+
offsets: r,
|
|
19471
|
+
size: n,
|
|
19472
|
+
wgsl: `struct ${e} {\n${i.join("\n")}\n};\n`
|
|
19473
|
+
};
|
|
19474
|
+
}
|
|
19475
|
+
var KS = GS("FrameUniforms", [
|
|
19476
|
+
["viewProj", "mat4x4<f32>"],
|
|
19477
|
+
["screenInfo", "vec4<u32>"],
|
|
19478
|
+
["pointAttenPack", "vec4<f32>"],
|
|
19479
|
+
["viewZRow", "vec4<f32>"],
|
|
19480
|
+
["sizeInfo0", "vec4<f32>"],
|
|
19481
|
+
["sizeInfo1", "vec4<u32>"],
|
|
19482
|
+
["cameraWorld", "vec4<f32>"],
|
|
19483
|
+
["cameraForward", "vec4<f32>"],
|
|
19484
|
+
["constantColor", "vec4<f32>"],
|
|
19485
|
+
["colorGain", "vec4<f32>"],
|
|
19486
|
+
["stylePack", "vec4<u32>"],
|
|
19487
|
+
["floorPack", "vec4<f32>"],
|
|
19488
|
+
["clip0Inv", "mat4x4<f32>"],
|
|
19489
|
+
["clip0Meta", "vec4<f32>"],
|
|
19490
|
+
["clip1Inv", "mat4x4<f32>"],
|
|
19491
|
+
["clip1Meta", "vec4<f32>"],
|
|
19492
|
+
["rasterParams", "vec4<f32>"],
|
|
19493
|
+
["binnedInfo", "vec4<u32>"]
|
|
19494
|
+
]), qS = GS("TileUniforms", [
|
|
19495
|
+
["modelMatrix", "mat4x4<f32>"],
|
|
19496
|
+
["bboxMin", "vec4<f32>"],
|
|
19497
|
+
["bboxMax", "vec4<f32>"],
|
|
19498
|
+
["tilePack", "vec4<u32>"],
|
|
19499
|
+
["mvp", "mat4x4<f32>"]
|
|
19500
|
+
]), JS = KS.wgsl + qS.wgsl + "\nconst SUB_BLOCK_SIZE: u32 = 8u;\nconst COOP_WORKGROUP_SIZE: u32 = 64u;\nconst CLASSIFY_WORKGROUP_SIZE: u32 = 256u;\nconst SUB_BLOCK_INVALID: u32 = 0xffffffffu;\nconst SIZE_SMALL: u32 = 0u;\nconst SIZE_MEDIUM: u32 = 1u;\nconst SIZE_LARGE: u32 = 2u;\n", YS = "\nstruct BucketEntry { cx: f32, cy: f32, size: f32, encoded: u32, };\nstruct SubBlockEntry { pointIndex: u32, blockXY: u32, };\nstruct Counters { medium: atomic<u32>, large: atomic<u32>, subBlock: atomic<u32>, overflow: atomic<u32>, };\n", XS = function(...e) {
|
|
19501
|
+
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19502
|
+
}("Mt|}5=6-Mov{qv{t5=6-nI|ntr9-rnqlvrK-snzrossrG-nn\bIn|zvpI@?KKHMt|}5=6-Mov{qv{t5>6-nI{vs|zK-snzrG-Snzrb{vs|zHMt|}5=6-Mov{qv{t5?6-nI|ntr9-rnqK-}|vv|{G-nn\bIs@?KHMt|}5=6-Mov{qv{t5@6-nI|ntr9-rnqK-p|y|G-nn\bI@?KHMt|}5=6-Mov{qv{t5A6-n-tnqvr{ar\x07G-r\x07rl?qIs@?KHMt|}5=6-Mov{qv{t5B6-n-tnqvr{`nz}yrG-nz}yrHMt|}5=6-Mov{qv{t5C6-nI|ntr9-rnqK-}|v{[|znyG-nn\bI@?KHMt|}5=6-Mov{qv{t5D6-nI{vs|zK-vyrG-avyrb{vs|zH"), ZS = function(...e) {
|
|
19503
|
+
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19504
|
+
}("s{-{}npxlvE\x07Al{|zny5}npxrqG-@?6-:K-rp@Is@?K-\n--yr-{\x07-J-s@?55v@?5}npxrq-II-?A66-KK-?A6H--yr-{\b-J-s@?55v@?5}npxrq-II->C66-KK-?A6H--yr-{ -J-s@?55v@?5}npxrq-II--E66-KK-?A6H--r{-rp@Is@?K5{\x079-{\b9-{ 6-7-5>;=-<->?D;=6H\f<<-世界空间法线:{|znyv r5zn@5z|qry6-7-{Y|pny6s{-|yql{|zny5vq\x07G-@?6-:K-rp@Is@?K-\n--yr-{Y|pny-J-{}npxlvE\x07Al{|zny5}|v{[|znyhvq\x07j6H--r{-{|znyv r5zn@\x07@Is@?K5----vyr;z|qryZnv\x07h=j;\x07\b 9----vyr;z|qryZnv\x07h>j;\x07\b 9----vyr;z|qryZnv\x07h?j;\x07\b 9--6-7-{Y|pny6H\fs{-toBCBl|lyv{rn5toBCBG-@?6-:K-rp@Is@?K-\n--yr-B-J-5toBCB-KK->>6-3-=\x07>SH--yr-tC-J-5toBCB-KK-B6-3-=\x07@SH--yr-oB-J-toBCB-3-=\x07>SH--r{-rp@Is@?K5----s@?5B6-<-@>;=9----s@?5tC6-<-C@;=9----s@?5oB6-<-@>;=9--6H\fs{-tol|lu5pG-rp@Is@?K6-:K-rp@Is@?K-\n--yr-X-J-rpAIs@?K5=;=9-:>;=-<-@;=9-?;=-<-@;=9-:>;=6H--yr-}-J-zv\x075----rpAIs@?K5p;o9-p;t9-X;9-X; 69----rpAIs@?K5p;t9-p;o9-X;\x079-X;\b69----s@?5p;o-I-p;t69--6H--yr-\0-J-zv\x075----rpAIs@?K5};\x079-};\b9-};9-p;69----rpAIs@?K5p;9-};\b9-}; 9-};\x0769----s@?5};\x07-I-p;69--6H--yr-q-J-\0;\x07-:-zv{5\0;9-\0;\b6H--yr-r-J->;=r:>=H--r{-rp@Is@?K5----no5\0; -8-5\0;-:-\0;\b6-<-5C;=-7-q-8-r669----q-<-5\0;\x07-8-r69----\0;\x079--6H\fs{-ul|lto5pG-rp@Is@?K6-:K-rp@Is@?K-\n--yr-X-J-rpAIs@?K5>;=9-?;=-<-@;=9->;=-<-@;=9-@;=6H--yr-}-J-no5snp5p;\x07\x07\x07-8-X;\x07\b 6-7-C;=-:-X;6H--r{-p; -7-zv\x075X;\x07\x07\x079-pynz}5}-:-X;\x07\x07\x079-rp@Is@?K5=;=69-rp@Is@?K5>;=669-p;\b6H\fs{-n}}y\blp|y|lnqwzr{5toG-rp@Is@?K9-{d|yqG-rp@Is@?K9-|yq]|G-rp@Is@?K6-:K-rp@Is@?K-\n--n-u-J-tol|lu5to6H--u;\b-8J-snzr;p|y|Tnv{;\x07H--u; -8J-snzr;p|y|Tnv{;\bH--yr-un[-J-yr{tu5{d|yq6-K->r:BH--vs-5un[-33-snzr;p|y|Tnv{; -K-=;=6-\n----yr-pnza|]|v{-J-|yq]|-:-snzr;pnzrnd|yq;\x07\b H----yr-vrQv-J-{|znyv r5pnza|]|v{6H----yr-p|aurn-J-q|5{|znyv r5{d|yq69-vrQv6H----yr-n{tyr-J-np|5pynz}5p|aurn9-:>;=9->;=66H----yr-|yv{rSnp|-J-}|5>;=-:-no5n{tyr-:->;BD=DFC@?CDF6-<->;BD=DFC@?CDF9-B;=6H----u; -8J-snzr;p|y|Tnv{; -7-|yv{rSnp|H----u; -J-pynz}5u; 9-=;=9->;=6H--\f--vs-5un[-33-snzr;p|y|Tnv{;-.J-=;=6-\n----yr-oo|\x07Pr{r-J-5vyr;oo|\x07Zv{;\x07\b -8-vyr;oo|\x07Zn\x07;\x07\b 6-7-=;BH----yr-o|{qv{tYr{tu-J-zn\x075>r:B9-vyr;oo|\x07Zn\x07;\b-:-vyr;oo|\x07Zv{;\b6-7->;BH----yr-pnza|]|v{-J-|yq]|-:-snzr;pnzrnd|yq;\x07\b H----yr-pnzrnQvn{pr-J-yr{tu5pnza|]|v{6H----yr-pnzrnO|{qv{tQvn{pr-J-zn\x075=;=9-yr{tu5snzr;pnzrnd|yq;\x07\b -:-oo|\x07Pr{r6-:-o|{qv{tYr{tu-7-=;B6H----yr-pnzrnQvNqw-J-zn\x075=;=9-pnzrnQvn{pr-:-pnzrnO|{qv{tQvn{pr6H----n-qvn{prSnp|-J-pynz}5pnzrnQvNqw-<-o|{qv{tYr{tu9-=;=9->;=6H----qvn{prSnp|-J-5=;E-:-pynz}5>;=-:-}|5>;=-:-qvn{prSnp|9-@;=69-=;=9->;=66-7->?;=H----yr-p|aurn-J-q|5{|znyv r5{d|yq69-{|znyv r5pnza|]|v{66H----yr-n{tyr-J-np|5pynz}5p|aurn9-:>;=9->;=66H----yr-|yv{rSnp|-J-}|5>;=-:-no5n{tyr-:->;BD=DFC@?CDF6-<->;BD=DFC@?CDF9-B;=6H----u; -8J-zv\x075u; -7-snzr;p|y|Tnv{;-7-qvn{prSnp|9-=;=9-|yv{rSnp|6H----u; -J-pynz}5u; 9-=;=9->;=6H--\f--r{-zn\x075ul|lto5u69-rp@Is@?K5=;=66H\f<<-计算点颜色并编码为-_TOBCBs{-unqrl}|v{5vq\x07G-@?9-|yq]|G-rp@Is@?K9-{d|yqG-rp@Is@?K9-qnxr{G-o||y9-ny}unG-s@?6-:K-@?-\n--yr-p|y|`\byr-J-snzr;\byr]npx;\x07H--n-to-J-toBCBl|lyv{rn5p|y|hvq\x07j-3-=\x07SSSS6H--vs-5p|y|`\byr-JJ-?6-\n----to-J-snzr;p|{n{P|y|;\x07\b H--\f-ryr-vs-5p|y|`\byr-JJ->6-\n----yr-qr{|z-J-zn\x075vyr;oo|\x07Zn\x07;\b-:-vyr;oo|\x07Zv{;\b9->r:C6H----yr-Tnq-J-5|yq]|;\b-:-vyr;oo|\x07Zv{;\b6-<-qr{|zH----to-J-r\x07r`nz}yrYrry5tnqvr{ar\x079-tnqvr{`nz}yr9-rp?Is@?K5pynz}5Tnq9-=;=9->;=69-=;B69-=;=6;toH--\f--vs-5no5snzr;p|y|Tnv{;\x076-K->r:C-\v\v-no5snzr;p|y|Tnv{;\b6-K->r:C-\v\v------snzr;p|y|Tnv{; -K->r:C-\v\v-no5snzr;p|y|Tnv{;6-K->r:C6-\n----to-J-n}}y\blp|y|lnqwzr{5to9-{d|yq9-|yq]|6H--\f--vs-5qnxr{6-\n----to-7J-=;EH--\f--to-7J-ny}unH--to-7J-zn\x075vyr;oo|\x07Zn\x07;9-=;===>6H--yr-B-J-@?5pynz}5to;-7-@>;=9-=;=9-@>;=66H--yr-tC-J-@?5pynz}5to;t-7-C@;=9-=;=9-C@;=66H--yr-oB-J-@?5pynz}5to;o-7-@>;=9-=;=9-@>;=66H--r{-5B-II->>6-\v-5tC-II-B6-\v-oBH\f"), QS = function(...e) {
|
|
19505
|
+
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19506
|
+
}("<<<-与-svr-}ozl}|v{py|q<rr\x07;tyy-一致:用-}|wrpv|{-分量-8-视空间- ,而非-pyv};。s{-}|v{lv rl}v\x07rylnr{nrq5--}|v{`v rZ|qrG-@?9--onr]|v{`v rG-s@?9--r|yv|{fG-s@?9--}|v{Nr{]npxG-rpAIs@?K9--vrg_|G-rpAIs@?K9--|yq]|G-rp@Is@?K96-:K-s@?-\n--n-}|v{`v r]v\x07ry-J-onr]|v{`v rH--vs-5}|v{`v rZ|qr-JJ->6-\n----yr-zg-J-q|5vrg_|;\x07\b 9-|yq]|6-8-vrg_|;H----yr-urvtu-J-}|v{Nr{]npx;\b-7-zv\x075>;=9-zn\x075:zg9->r:B69-}|v{Nr{]npx;\x076H----}|v{`v r]v\x07ry-J-r|yv|{f-7-onr]|v{`v r-<-zn\x075urvtu9->r:B6H--\f--r{-}|v{`v r]v\x07ryH\f<<-基础尺寸-→-nr{nv|{-→-pynz}5zv{9-zn\x076-7-}v\x07ry_nv|-→-NaaR[bNaV\\[-时-zv{5unqZn\x076-→-zn\x075>6s{-p|z}rl}|v{lv rl}\x075|yq]|G-rp@Is@?K6-:K-s@?-\n--yr-}|v{`v rZ|qr-J-snzr;prr{V{s|;H--yr-}|v{`pnyr-J-snzr;v rV{s|=;\x07H--yr-}|v{Zv{]v\x07ry-J-snzr;v rV{s|=;\bH--yr-}|v{Zn\x07]v\x07ry-J-snzr;v rV{s|=; H--yr-}v\x07ry_nv|-J-snzr;v rV{s|=;H--yr-r|yv|{f-J-s@?5snzr;v rV{s|>;\x076H--yr-}|v{]v\x07ryUnqZn\x07-J-s@?5snzr;v rV{s|>;\b6H--yr-onr]|v{`v r-J-}|v{`pnyr-7-}v\x07ry_nv|H--n-}|v{`v r]v\x07ry-J-}|v{lv rl}v\x07rylnr{nrq5----}|v{`v rZ|qr9----onr]|v{`v r9----r|yv|{f9----snzr;}|v{Nr{]npx9----snzr;vrg_|9----|yq]|9--6H--}|v{`v r]v\x07ry-J-pynz}5}|v{`v r]v\x07ry9-}|v{Zv{]v\x07ry-7-}v\x07ry_nv|9-}|v{Zn\x07]v\x07ry-7-}v\x07ry_nv|6H--vs-5}|v{`v rZ|qr-JJ->6-\n----}|v{`v r]v\x07ry-J-zv{5}|v{`v r]v\x07ry9-}|v{]v\x07ryUnqZn\x076H--\f--}|v{`v r]v\x07ry-J-zn\x075}|v{`v r]v\x07ry9->;=6H--r{-}|v{`v r]v\x07ryH\f"), $S = function(...e) {
|
|
19507
|
+
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19508
|
+
}("<<-当前楼层判断:u|{Sy||-I-:=;=>-表示显示全部楼层s{-vlpr{lsy||56-:K-o||y-\n--yr-sy||Vq\x07-J-snzr;sy||]npx;\x07H--yr-u|{Sy||-J-snzr;sy||]npx;\bH--r{-u|{Sy||-I-:=;=>-\v\v-no5sy||Vq\x07-:-u|{Sy||6-I-=;FFH\f<<-非当前楼层且-sy||`\byr-JJ->-时的半透明系数,其余为->s{-sy||l|}npv\b5vPr{G-o||y6-:K-s@?-\n--n-sy||\\}npv\b-J->;=H--vs-5.vPr{-33-snzr;\byr]npx;\b-JJ->6-\n----sy||\\}npv\b-J-pynz}5=;?-7-zv{5>;=-8-snzr;pnzrnS|nq;\b9->;=69-=;=9->;=6H--\f--r{-sy||\\}npv\bH\fs{-pyv}lr5v{G-znA\x07AIs@?K9-pyv}ZrnG-rpAIs@?K9-|yq]|G-rpAIs@?K9-sy||Vq\x07G-s@?6-:K-o||y-\n--vs-5pyv}Zrn;-I-=;B6-\n----r{-snyrH--\f--yr-pyv}Sy||-J-pyv}Zrn;\x07H--yr-sy||\\x-J-pyv}Sy||-I-:=;B-\v\v-no5sy||Vq\x07-:-pyv}Sy||6-I-=;FFH--vs-5.sy||\\x6-\n----r{-snyrH--\f--yr-}-J-v{-7-|yq]|H--vs-5};\x07-K-:=;B-33-};\x07-I-=;B-33-};\b-K-:=;B-33-};\b-I-=;B-33-}; -K-:=;B-33-}; -I-=;B6-\n----r{-rH--\f--r{-snyrH\f<<-任一-pyv}}r-命中即剔除(先-pyv}=-后-pyv}>)s{-pyv}}rqlo\blpyv}}r5|yq]|AG-rpAIs@?K6-:K-o||y-\n--yr-sy||Vq\x07-J-snzr;sy||]npx;\x07H--vs-5pyv}lr5snzr;pyv}=V{9-snzr;pyv}=Zrn9-|yq]|A9-sy||Vq\x0766-\n----r{-rH--\f--vs-5pyv}lr5snzr;pyv}>V{9-snzr;pyv}>Zrn9-|yq]|A9-sy||Vq\x0766-\n----r{-rH--\f--r{-snyrH\f"), eC = function(...e) {
|
|
19509
|
+
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19510
|
+
}("s{-\0n{v rlqr}u5 =>G-s@?6-:K-@?-\n--r{-@?5 =>-7-CBB@B;=6H\f<<-高->C-位深度、低->C-位-_TOBCB,n|zvpZv{-即深度测试s{-r{p|qrlnyr5qr}ub>CG-@?9-toBCBG-@?6-:K-@?-\n--r{-5qr}ub>C-II->C6-\v-5toBCB-3-=\x07SSSS6H\f"), tC = function(...e) {
|
|
19511
|
+
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19512
|
+
}("<<-点覆盖的像素矩形-5\x07=9-\x07>9-\b=9-\b>6,已裁剪到屏幕,为空时-n-K-r{qs{-}|v{lrp5p\x07G-s@?9-p\bG-s@?9-v rG-s@?9-G-v@?9-uG-v@?6-:K-rpAIv@?K-\n--yr-unys`v r-J-v r-7-=;BH--yr-p\x07\\ss-J-p\x07-:-=;BH--yr-p\b\\ss-J-p\b-:-=;BH--r{-rpAIv@?K5----zn\x075v@?5prvy5p\x07\\ss-:-unys`v r669-=69----zv{5v@?5sy||5p\x07\\ss-8-unys`v r669--:->69----zn\x075v@?5prvy5p\b\\ss-:-unys`v r669-=69----zv{5v@?5sy||5p\b\\ss-8-unys`v r669-u-:->69--6H\fs{-pr{rl}v\x07ry5p\x07G-s@?9-p\bG-s@?6-:K-rp?Iv@?K-\n--r{-rp?Iv@?K5v@?5p\x0769-v@?5p\b66H\f<<-圆形点且尺寸-K-@-时才做圆形遮罩s{-{rrqlpvpyr5v rG-s@?6-:K-o||y-\n--r{-snzr;v rV{s|>; -JJ->-33-v r-K-@;=H\f<<-圆形点在第-}\b-行覆盖的像素区间-h\x079-\x07rjs{-|l}n{5p\x07G-s@?9-p\bG-s@?9-v rG-s@?9-}\bG-v@?9-rpG-rpAIv@?K6-:K-rp?Iv@?K-\n--yr--J-v r-7-=;BH--yr-q\b-J-5s@?5}\b6-8-=;B6-:-p\bH--yr-rz-J--7--:-q\b-7-q\bH--vs-5rz-I-=;=6-\n----r{-rp?Iv@?K5>9-=6H--\f--yr-u-J-\05rz6H--yr-\x07-J-zn\x075v@?5prvy5p\x07-:-=;B-:-u669-rp;\x076H--yr-\x07r-J-zv{5v@?5sy||5p\x07-:-=;B-8-u669-rp;\b6H--r{-rp?Iv@?K5\x079-\x07r6H\f<<-先读后写,被遮挡时跳过原子操作s{-rny\blqr}ulvr5}v\x07ryVq\x07G-@?9-G-@?6-\n--vs-5n|zvpY|nq53snzrossrh}v\x07ryVq\x07j6-K-6-\n----n|zvpZv{53snzrossrh}v\x07ryVq\x07j9-6H--\f\f<<-单线程绘制一个点s{-nrl}|v{lv{tyr5p\x07G-s@?9-p\bG-s@?9-v rG-s@?9-r{p|qrqG-@?6-\n--yr--J-v@?5snzr;prr{V{s|;\x076H--yr-u-J-v@?5snzr;prr{V{s|;\b6H--vs-5v r-IJ->;=6-\n----yr-p-J-pr{rl}v\x07ry5p\x079-p\b6H----vs-5p;\x07-KJ-=-33-p;\x07-I--33-p;\b-KJ-=-33-p;\b-I-u6-\n------rny\blqr}ulvr5@?5p;\b-7--8-p;\x0769-r{p|qrq6H----\f----r{H--\f--yr-rp-J-}|v{lrp5p\x079-p\b9-v r9-9-u6H--yr-pvpyr-J-{rrqlpvpyr5v r6H--s|-5n-}\bG-v@?-J-rp; H-}\b-IJ-rp;H-}\b-J-}\b-8->6-\n----n-\x07-J-rp;\x07H----n-\x07r-J-rp;\bH----vs-5pvpyr6-\n------yr--J-|l}n{5p\x079-p\b9-v r9-}\b9-rp6H------\x07-J-;\x07H------\x07r-J-;\bH----\f----s|-5n-}\x07G-v@?-J-\x07H-}\x07-IJ-\x07rH-}\x07-J-}\x07-8->6-\n------rny\blqr}ulvr5@?5}\b-7--8-}\x0769-r{p|qrq6H----\f--\f\f"), nC = function(...e) {
|
|
19513
|
+
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19514
|
+
}("p-]|v{Tr|-\n--nyvqG-o||y9--p\x07G-s@?9--p\bG-s@?9--v rG-s@?9--qr}ub>CG-@?9--|yq]|G-rp@Is@?K9--{d|yqG-rp@Is@?K9--qnxr{G-o||y9--ny}unG-s@?9\fH<<-带法线且-}|v{Onpx-为-UVQQR[-<-QN_X-时需要做背面判断s{-r}l{rrqlonpxsnprl{|zny56-:K-o||y-\n--yr-un[|zny-J-5vyr;vyr]npx;\b-3->6-.J-=H--yr-}|v{Onpx-J-snzr;\byr]npx; H--r{-un[|zny-33-5}|v{Onpx-JJ->-\v\v-}|v{Onpx-JJ-?6H\f<<-投影与剔除(楼层、pyv}}r、视锥深度、屏幕范围、背面、透明度),被剔除时-nyvq-J-snyrs{-r}l}|v{ltr|zr\b5vq\x07G-@?6-:K-]|v{Tr|-\n--n-tG-]|v{Tr|H--t;nyvq-J-snyrH--yr-vP-J-vlpr{lsy||56H--vs-5snzr;\byr]npx;\b-JJ-=-33-.vP6-\n----r{-tH--\f--yr-onr-J-vq\x07-7-@H--yr-}-J-rpAIs@?K5}|vv|{honrj9-}|vv|{honr-8->j9-}|vv|{honr-8-?j9->;=6H--yr-|yqA-J-vyr;z|qryZnv\x07-7-}H--vs-5pyv}}rqlo\blpyv}}r5|yqA66-\n----r{-tH--\f--yr-pyv}-J-vyr;z}-7-}H--vs-5no5pyv};6-I->r:C6-\n----r{-tH--\f--yr-{qp-J-pyv};\x07\b -<-pyv};H--vs-5{qp; -I-=;=-\v\v-{qp; -K->;=6-\n----r{-tH--\f--yr--J-v@?5snzr;prr{V{s|;\x076H--yr-u-J-v@?5snzr;prr{V{s|;\b6H--yr-p\x07-J-5{qp;\x07-7-=;B-8-=;B6-7-s@?56H--yr-p\b-J-5>;=-:-5{qp;\b-7-=;B-8-=;B66-7-s@?5u6H--yr-v r-J-p|z}rl}|v{lv rl}\x075|yqA;\x07\b 6H--vs-5v r-IJ->;=6-\n----yr-p-J-pr{rl}v\x07ry5p\x079-p\b6H----vs-5p;\x07-I-=-\v\v-p;\x07-KJ--\v\v-p;\b-I-=-\v\v-p;\b-KJ-u6-\n------r{-tH----\f--\f-ryr-\n----yr--J-}|v{lrp5p\x079-p\b9-v r9-9-u6H----vs-5;\x07-K-;\b-\v\v-; -K-;6-\n------r{-tH----\f--\f--n-{d|yq-J-rp@Is@?K5=;=6H--n-qnxr{-J-snyrH--vs-5r}l{rrqlonpxsnprl{|zny566-\n----{d|yq-J-|yql{|zny5vq\x076H----yr-onpx-J-q|5{|znyv r5snzr;pnzrnd|yq;\x07\b -:-|yqA;\x07\b 69-{d|yq6-I-=;=H----vs-5onpx6-\n------vs-5snzr;\byr]npx; -JJ->6-\n--------r{-tH-<<-UVQQR[:背面剔除------\f------qnxr{-J-rH-<<-QN_X:只标记,着色时-×=;E----\f--\f--yr-ny}un-J-pynz}5snzr;sy||]npx;-7-sy||l|}npv\b5vP69-=;=9->;=6H--vs-5ny}un-I->r:A6-\n----r{-tH--\f--t;p\x07-J-p\x07H--t;p\b-J-p\bH--t;v r-J-v rH--t;qr}ub>C-J-\0n{v rlqr}u5{qp; 6H--t;|yq]|-J-|yqA;\x07\b H--t;{d|yq-J-{d|yqH--t;qnxr{-J-qnxr{H--t;ny}un-J-ny}unH--t;nyvq-J-rH--r{-tH\f<<-颜色调整需要法线且-r}-未解码时补解码s{-r{rlunqv{tl{|zny5vq\x07G-@?9-tG-}Is{pv|{9-]|v{Tr|K6-\n--yr-un[|zny-J-5vyr;vyr]npx;\b-3->6-.J-=H--vs-5.un[|zny-\v\v-r}l{rrqlonpxsnprl{|zny566-\n----r{H--\f--vs-5snzr;p|y|Tnv{; -K-=;=-\v\v-snzr;p|y|Tnv{;-.J-=;=6-\n----57t6;{d|yq-J-|yql{|zny5vq\x076H--\f\f"), rC = function(...e) {
|
|
19515
|
+
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19516
|
+
}("s{-v rlpyn5v rG-s@?6-:K-@?-\n--vs-5v r-IJ-snzr;nr]nnz;\x076-\n----r{-`VgRl`ZNYYH--\f--vs-5v r-IJ-snzr;nr]nnz;\b6-\n----r{-`VgRlZRQVbZH--\f--r{-`VgRlYN_TRH\f"), iC = function(...e) {
|
|
19462
19517
|
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19463
|
-
}("p-Snzrb{vs|z-\n--vr]|wG-znA\x07AIs@?K9--prr{V{s|G-rpAI@?K9--}|v{Nr{]npxG-rpAIs@?K9--vrg_|G-rpAIs@?K9--v rV{s|=G-rpAIs@?K9--v rV{s|>G-rpAI@?K9--pnzrnd|yqG-rpAIs@?K9--pnzrnS|nqG-rpAIs@?K9--p|{n{P|y|G-rpAIs@?K9--p|y|Tnv{G-rpAIs@?K9--\byr]npxG-rpAI@?K9--sy||]npxG-rpAIs@?K9--pyv}=V{G-znA\x07AIs@?K9--pyv}=ZrnG-rpAIs@?K9--pyv}>V{G-znA\x07AIs@?K9--pyv}>ZrnG-rpAIs@?K9\fHp-avyrb{vs|z-\n--z|qryZnv\x07G-znA\x07AIs@?K9--oo|\x07Zv{G-rpAIs@?K9--oo|\x07Zn\x07G-rpAIs@?K9--vyr]npxG-rpAI@?K9\fHMt|}5=6-Mov{qv{t5=6-nI|ntr9-rnqlvrK-snzrossrG-nn\bIn|zvpI@?KKHMt|}5=6-Mov{qv{t5>6-nI{vs|zK-snzrG-Snzrb{vs|zHMt|}5=6-Mov{qv{t5?6-nI|ntr9-rnqK-}|vv|{G-nn\bIs@?KHMt|}5=6-Mov{qv{t5@6-nI|ntr9-rnqK-p|y|G-nn\bI@?KHMt|}5=6-Mov{qv{t5A6-n-tnqvr{ar\x07G-r\x07rl?qIs@?KHMt|}5=6-Mov{qv{t5B6-n-tnqvr{`nz}yrG-nz}yrHMt|}5=6-Mov{qv{t5C6-nI|ntr9-rnqK-}|v{[|znyG-nn\bI@?KHMt|}5=6-Mov{qv{t5D6-nI{vs|zK-vyrG-avyrb{vs|zHs{-{}npxlvE\x07Al{|zny5}npxrqG-@?6-:K-rp@Is@?K-\n--yr-{\x07-J-s@?55v@?5}npxrq-II-?A66-KK-?A6H--yr-{\b-J-s@?55v@?5}npxrq-II->C66-KK-?A6H--yr-{ -J-s@?55v@?5}npxrq-II--E66-KK-?A6H--r{-rp@Is@?K5{\x079-{\b9-{ 6-7-5>;=-<->?D;=6H\fs{-toBCBl|lyv{rn5toBCBG-@?6-:K-rp@Is@?K-\n--yr-B-J-5toBCB-KK->>6-3-=\x07>SH--yr-tC-J-5toBCB-KK-B6-3-=\x07@SH--yr-oB-J-toBCB-3-=\x07>SH--r{-rp@Is@?K5----s@?5B6-<-@>;=9----s@?5tC6-<-C@;=9----s@?5oB6-<-@>;=9--6H\fs{-tol|lu5pG-rp@Is@?K6-:K-rp@Is@?K-\n--yr-X-J-rpAIs@?K5=;=9-:>;=-<-@;=9-?;=-<-@;=9-:>;=6H--yr-}-J-zv\x075----rpAIs@?K5p;o9-p;t9-X;9-X; 69----rpAIs@?K5p;t9-p;o9-X;\x079-X;\b69----s@?5p;o-I-p;t69--6H--yr-\0-J-zv\x075----rpAIs@?K5};\x079-};\b9-};9-p;69----rpAIs@?K5p;9-};\b9-}; 9-};\x0769----s@?5};\x07-I-p;69--6H--yr-q-J-\0;\x07-:-zv{5\0;9-\0;\b6H--yr-r-J->;=r:>=H--r{-rp@Is@?K5----no5\0; -8-5\0;-:-\0;\b6-<-5C;=-7-q-8-r669----q-<-5\0;\x07-8-r69----\0;\x079--6H\fs{-ul|lto5pG-rp@Is@?K6-:K-rp@Is@?K-\n--yr-X-J-rpAIs@?K5>;=9-?;=-<-@;=9->;=-<-@;=9-@;=6H--yr-}-J-no5snp5p;\x07\x07\x07-8-X;\x07\b 6-7-C;=-:-X;6H--r{-p; -7-zv\x075X;\x07\x07\x079-pynz}5}-:-X;\x07\x07\x079-rp@Is@?K5=;=69-rp@Is@?K5>;=669-p;\b6H\fs{-n}}y\blp|y|lnqwzr{5toG-rp@Is@?K9-{d|yqG-rp@Is@?K9-|yq]|G-rp@Is@?K6-:K-rp@Is@?K-\n--n-u-J-tol|lu5to6H--u;\b-8J-snzr;p|y|Tnv{;\x07H--u; -8J-snzr;p|y|Tnv{;\bH--yr-un[-J-yr{tu5{d|yq6-K->r:BH--vs-5un[-33-snzr;p|y|Tnv{; -K-=;=6-\n----yr-pnza|]|v{-J-|yq]|-:-snzr;pnzrnd|yq;\x07\b H----yr-vrQv-J-{|znyv r5pnza|]|v{6H----yr-p|aurn-J-q|5{|znyv r5{d|yq69-vrQv6H----yr-n{tyr-J-np|5pynz}5p|aurn9-:>;=9->;=66H----yr-|yv{rSnp|-J-}|5>;=-:-no5n{tyr-:->;BD=DFC@?CDF6-<->;BD=DFC@?CDF9-B;=6H----u; -8J-snzr;p|y|Tnv{; -7-|yv{rSnp|H----u; -J-pynz}5u; 9-=;=9->;=6H--\f--vs-5un[-33-snzr;p|y|Tnv{;-.J-=;=6-\n----yr-oo|\x07Pr{r-J-5vyr;oo|\x07Zv{;\x07\b -8-vyr;oo|\x07Zn\x07;\x07\b 6-7-=;BH----yr-o|{qv{tYr{tu-J-zn\x075>r:B9-vyr;oo|\x07Zn\x07;\b-:-vyr;oo|\x07Zv{;\b6-7->;BH----yr-pnza|]|v{-J-|yq]|-:-snzr;pnzrnd|yq;\x07\b H----yr-pnzrnQvn{pr-J-yr{tu5pnza|]|v{6H----yr-pnzrnO|{qv{tQvn{pr-J-zn\x075=;=9-yr{tu5snzr;pnzrnd|yq;\x07\b -:-oo|\x07Pr{r6-:-o|{qv{tYr{tu-7-=;B6H----yr-pnzrnQvNqw-J-zn\x075=;=9-pnzrnQvn{pr-:-pnzrnO|{qv{tQvn{pr6H----n-qvn{prSnp|-J-pynz}5pnzrnQvNqw-<-o|{qv{tYr{tu9-=;=9->;=6H----qvn{prSnp|-J-5=;E-:-pynz}5>;=-:-}|5>;=-:-qvn{prSnp|9-@;=69-=;=9->;=66-7->?;=H----yr-p|aurn-J-q|5{|znyv r5{d|yq69-{|znyv r5pnza|]|v{66H----yr-n{tyr-J-np|5pynz}5p|aurn9-:>;=9->;=66H----yr-|yv{rSnp|-J-}|5>;=-:-no5n{tyr-:->;BD=DFC@?CDF6-<->;BD=DFC@?CDF9-B;=6H----u; -8J-zv\x075u; -7-snzr;p|y|Tnv{;-7-qvn{prSnp|9-=;=9-|yv{rSnp|6H----u; -J-pynz}5u; 9-=;=9->;=6H--\f--r{-zn\x075ul|lto5u69-rp@Is@?K5=;=66H\f<<<-与-svr-}ozl}|v{py|q<rr\x07;tyy-一致:用-}|wrpv|{-分量-8-视空间- ,而非-pyv};。s{-}|v{lv rl}v\x07rylnr{nrq5--}|v{`v rZ|qrG-@?9--onr]|v{`v rG-s@?9--r|yv|{fG-s@?9--}|v{Nr{]npxG-rpAIs@?K9--vrg_|G-rpAIs@?K9--|yq]|G-rp@Is@?K96-:K-s@?-\n--n-}|v{`v r]v\x07ry-J-onr]|v{`v rH--vs-5}|v{`v rZ|qr-JJ->6-\n----yr-zg-J-q|5vrg_|;\x07\b 9-|yq]|6-8-vrg_|;H----yr-urvtu-J-}|v{Nr{]npx;\b-7-zv\x075>;=9-zn\x075:zg9->r:B69-}|v{Nr{]npx;\x076H----}|v{`v r]v\x07ry-J-r|yv|{f-7-onr]|v{`v r-<-zn\x075urvtu9->r:B6H--\f--r{-}|v{`v r]v\x07ryH\fs{-pyv}lr5v{G-znA\x07AIs@?K9-pyv}ZrnG-rpAIs@?K9-|yq]|G-rpAIs@?K9-sy||Vq\x07G-s@?6-:K-o||y-\n--vs-5pyv}Zrn;-I-=;B6-\n----r{-snyrH--\f--yr-pyv}Sy||-J-pyv}Zrn;\x07H--yr-sy||\\x-J-pyv}Sy||-I-:=;B-\v\v-no5sy||Vq\x07-:-pyv}Sy||6-I-=;FFH--vs-5.sy||\\x6-\n----r{-snyrH--\f--yr-}-J-v{-7-|yq]|H--vs-5};\x07-K-:=;B-33-};\x07-I-=;B-33-};\b-K-:=;B-33-};\b-I-=;B-33-}; -K-:=;B-33-}; -I-=;B6-\n----r{-rH--\f--r{-snyrH\fMp|z}r-M|xt|}lv r5?BC6s{-znv{5Movyv{5ty|onylv{|pnv|{lvq6-tvqG-rp@I@?K6-\n--yr-vq\x07-J-tvq;\x07H--yr-prr{dvqu-J-snzr;prr{V{s|;\x07H--yr-prr{Urvtu-J-snzr;prr{V{s|;\bH--yr-}|v{P|{-J-vyr;vyr]npx;\x07H--yr-}|v{`v rZ|qr-J-snzr;prr{V{s|;H--yr-}|v{`pnyr-J-snzr;v rV{s|=;\x07H--yr-}|v{Zv{]v\x07ry-J-snzr;v rV{s|=;\bH--yr-}|v{Zn\x07]v\x07ry-J-snzr;v rV{s|=; H--yr-}v\x07ry_nv|-J-snzr;v rV{s|=;H--yr-r|yv|{f-J-s@?5snzr;v rV{s|>;\x076H--yr-}|v{]v\x07ryUnqZn\x07-J-s@?5snzr;v rV{s|>;\b6H--yr-}|v{`un}r-J-snzr;v rV{s|>; H--yr-p|y|`\byr-J-snzr;\byr]npx;\x07H--yr-sy||`\byr-J-snzr;\byr]npx;\bH--yr-}|v{Onpx-J-snzr;\byr]npx; H--yr-synt-J-vyr;vyr]npx;\bH--yr-un[|zny-J-5synt-3->6-.J-=H--yr-sy||Vq\x07-J-snzr;sy||]npx;\x07H--yr-u|{Sy||-J-snzr;sy||]npx;\bH--yr-z|qryNy}un-J-snzr;sy||]npx;H--vs-5vq\x07-KJ-}|v{P|{6-\n----r{H--\f--yr-onr-J-vq\x07-7-@H--yr-}|-J-rp@Is@?K5}|vv|{honrj9-}|vv|{honr-8->j9-}|vv|{honr-8-?j6H--yr-|yq]|A-J-vyr;z|qryZnv\x07-7-rpAIs@?K5}|9->;=6H--yr-|yq]|-J-|yq]|A;\x07\b H--n-{d|yq-J-rp@Is@?K5=;=6H--vs-5un[|zny6-\n----yr-{Y|pny-J-{}npxlvE\x07Al{|zny5}|v{[|znyhvq\x07j6H----{d|yq-J-{|znyv r5zn@\x07@Is@?K5------vyr;z|qryZnv\x07h=j;\x07\b 9------vyr;z|qryZnv\x07h>j;\x07\b 9------vyr;z|qryZnv\x07h?j;\x07\b 9----6-7-{Y|pny6H--\f--yr-vPr{Sy||-J-u|{Sy||-I-:=;=>-\v\v-no5sy||Vq\x07-:-u|{Sy||6-I-=;FFH--vs-5sy||`\byr-JJ-=-33-.vPr{Sy||6-\n----r{H--\f--vs-5pyv}lr5snzr;pyv}=V{9-snzr;pyv}=Zrn9-|yq]|A9-sy||Vq\x0766-\n----r{H--\f--vs-5pyv}lr5snzr;pyv}>V{9-snzr;pyv}>Zrn9-|yq]|A9-sy||Vq\x0766-\n----r{H--\f--n-sy||\\}npv\b-J->;=H--vs-5.vPr{Sy||-33-sy||`\byr-JJ->6-\n----sy||\\}npv\b-J-pynz}5=;?-7-zv{5>;=-8-snzr;pnzrnS|nq;\b9->;=69-=;=9->;=6H--\f--yr-pyv}-J-snzr;vr]|w-7-vyr;z|qryZnv\x07-7-rpAIs@?K5}|9->;=6H--vs-5no5pyv};6-I->r:C6-\n----r{H--\f--n-{qp-J-pyv};\x07\b -<-pyv};H--yr-p\x07s-J-5{qp;\x07-7-=;B-8-=;B6-7-s@?5prr{dvqu6H--yr-p\bs-J-5>;=-:-5{qp;\b-7-=;B-8-=;B66-7-s@?5prr{Urvtu6H--yr-p\x07-J-v@?5p\x07s6H--yr-p\b-J-v@?5p\bs6H--n-qr}u=>-J-pynz}5{qp; 9-=;=9->;=6H--yr-qr}ub>C-J-@?5qr}u=>-7-CBB@B;=6H--n-to-J-toBCBl|lyv{rn5p|y|hvq\x07j-3-=\x07SSSS6H--vs-5p|y|`\byr-JJ-?6-\n----to-J-snzr;p|{n{P|y|;\x07\b H--\f-ryr-vs-5p|y|`\byr-JJ->6-\n----yr-qr{|z-J-zn\x075vyr;oo|\x07Zn\x07;\b-:-vyr;oo|\x07Zv{;\b9->r:C6H----yr-Tnq-J-5|yq]|;\b-:-vyr;oo|\x07Zv{;\b6-<-qr{|zH----to-J-r\x07r`nz}yrYrry5tnqvr{ar\x079-tnqvr{`nz}yr9-rp?Is@?K5pynz}5Tnq9-=;=9->;=69-=;B69-=;=6;toH--\f--vs-5no5snzr;p|y|Tnv{;\x076-K->r:C-\v\v-no5snzr;p|y|Tnv{;\b6-K->r:C-\v\v------snzr;p|y|Tnv{; -K->r:C-\v\v-no5snzr;p|y|Tnv{;6-K->r:C6-\n----to-J-n}}y\blp|y|lnqwzr{5to9-{d|yq9-|yq]|6H--\f--vs-5un[|zny-33-}|v{Onpx-JJ->6-\n----yr-pnzQv-J-{|znyv r5snzr;pnzrnd|yq;\x07\b -:-|yq]|6H----vs-5q|5pnzQv9-{d|yq6-I-=;=6-\n------r{H----\f--\f-ryr-vs-5un[|zny-33-}|v{Onpx-JJ-?6-\n----yr-pnzQv-J-{|znyv r5snzr;pnzrnd|yq;\x07\b -:-|yq]|6H----vs-5q|5pnzQv9-{d|yq6-I-=;=6-\n------to-7J-=;EH----\f--\f--yr-ny}un-J-pynz}5z|qryNy}un-7-sy||\\}npv\b9-=;=9->;=6H--vs-5ny}un-I->r:A6-\n----r{H--\f--to-7J-ny}unH--to-7J-zn\x075vyr;oo|\x07Zn\x07;9-=;===>6H--yr-B-J-@?5pynz}5to;-7-@>;=9-=;=9-@>;=66H--yr-tC-J-@?5pynz}5to;t-7-C@;=9-=;=9-C@;=66H--yr-oB-J-@?5pynz}5to;o-7-@>;=9-=;=9-@>;=66H--yr-p|y|]npxrq-J-5B-II->>6-\v-5tC-II-B6-\v-oBH--yr-r{p|qrq-J-5qr}ub>C-II->C6-\v-5p|y|]npxrq-3-=\x07SSSS6H--yr-onr]|v{`v r-J-}|v{`pnyr-7-}v\x07ry_nv|H--n-}|v{`v r]v\x07ry-J-}|v{lv rl}v\x07rylnr{nrq5----}|v{`v rZ|qr9----onr]|v{`v r9----r|yv|{f9----snzr;}|v{Nr{]npx9----snzr;vrg_|9----|yq]|9--6H--}|v{`v r]v\x07ry-J-pynz}5}|v{`v r]v\x07ry9-}|v{Zv{]v\x07ry-7-}v\x07ry_nv|9-}|v{Zn\x07]v\x07ry-7-}v\x07ry_nv|6H--vs-5}|v{`v rZ|qr-JJ->6-\n----}|v{`v r]v\x07ry-J-zv{5}|v{`v r]v\x07ry9-}|v{]v\x07ryUnqZn\x076H--\f--}|v{`v r]v\x07ry-J-zn\x075}|v{`v r]v\x07ry9->;=6H--yr--J-v@?5prr{dvqu6H--yr-u-J-v@?5prr{Urvtu6H--vs-5}|v{`v r]v\x07ry-IJ->;=6-\n----vs-5p\x07-KJ-=-33-p\x07-I--33-p\b-KJ-=-33-p\b-I-u6-\n------yr-}v\x07ryVq\x07-J-@?5p\b6-7-prr{dvqu-8-@?5p\x076H------n|zvpZv{53snzrossrh}v\x07ryVq\x07j9-r{p|qrq6H----\f----r{H--\f--yr-unys`v r-J-}|v{`v r]v\x07ry-7-=;BH--yr-p\x07\\ss-J-p\x07s-:-=;BH--yr-p\b\\ss-J-p\bs-:-=;BH--yr-}\x07`n-J-zn\x075v@?5prvy5p\x07\\ss-:-unys`v r669-=6H--yr-}\x07R{q-J-zv{5v@?5sy||5p\x07\\ss-8-unys`v r669--:->6H--yr-}\b`n-J-zn\x075v@?5prvy5p\b\\ss-:-unys`v r669-=6H--yr-}\bR{q-J-zv{5v@?5sy||5p\b\\ss-8-unys`v r669-u-:->6H--yr-{rrqPvpyrZnx-J-}|v{`un}r-JJ->-33-}|v{`v r]v\x07ry-K-@;=H--yr-nqv`\0-J-unys`v r-7-unys`v rH--s|-5n-}\bG-v@?-J-}\b`nH-}\b-IJ-}\bR{qH-}\b-J-}\b-8->6-\n----s|-5n-}\x07G-v@?-J-}\x07`nH-}\x07-IJ-}\x07R{qH-}\x07-J-}\x07-8->6-\n------vs-5{rrqPvpyrZnx6-\n--------yr-qq\x07-J-5s@?5}\x076-8-=;B6-:-p\x07sH--------yr-qq\b-J-5s@?5}\b6-8-=;B6-:-p\bsH--------vs-5qq\x07-7-qq\x07-8-qq\b-7-qq\b-K-nqv`\x006-\n----------p|{v{rH--------\f------\f------yr-}v\x07ryVq\x07-J-@?5}\b6-7-prr{dvqu-8-@?5}\x076H------n|zvpZv{53snzrossrh}v\x07ryVq\x07j9-r{p|qrq6H----\f--\f\f");
|
|
19518
|
+
}("<<-每线程一个点:`znyy-直接绘制;Zrqvz-入桶;Yntr-入桶并拆成-E×E-子块。桶满时退回单线程绘制。Mt|}5>6-Mov{qv{t5=6-nI|ntr9-rnqlvrK-opxrG-nn\bIOpxrR{\bKHMt|}5>6-Mov{qv{t5>6-nI|ntr9-rnqlvrK-oOy|pxG-nn\bI`oOy|pxR{\bKHMt|}5>6-Mov{qv{t5?6-nI|ntr9-rnqlvrK-p|{rG-P|{rHMp|z}r-M|xt|}lv r5PYN``VSfld\\_XT_\\b]l`VgR6s{-znv{5Movyv{5ty|onylv{|pnv|{lvq6-tvqG-rp@I@?K6-\n--yr-vq\x07-J-tvq;\x07H--vs-5vq\x07-KJ-vyr;vyr]npx;\x076-\n----r{H--\f--n-t-J-r}l}|v{ltr|zr\b5vq\x076H--vs-5.t;nyvq6-\n----r{H--\f--r{rlunqv{tl{|zny5vq\x079-3t6H--yr-r{p|qrq-J-r{p|qrlnyr5t;qr}ub>C9-unqrl}|v{5vq\x079-t;|yq]|9-t;{d|yq9-t;qnxr{9-t;ny}un66H--yr-py-J-v rlpyn5t;v r6H--vs-5py-JJ-`VgRl`ZNYY6-\n----nrl}|v{lv{tyr5t;p\x079-t;p\b9-t;v r9-r{p|qrq6H----r{H--\f--yr-pn}-J-snzr;ov{{rqV{s|;\x07H--vs-5py-JJ-`VgRlZRQVbZ6-\n----yr-y|-J-n|zvpNqq53p|{r;zrqvz9->6H----vs-5y|-I-pn}6-\n------opxrhy|j-J-OpxrR{\b5t;p\x079-t;p\b9-t;v r9-r{p|qrq6H------r{H----\f----n|zvp`|r53p|{r;|rsy|9->6H----nrl}|v{lv{tyr5t;p\x079-t;p\b9-t;v r9-r{p|qrq6H----r{H--\f--<<-Yntr-段位于-hpn}9-?-×-pn}6--yr-y|-J-n|zvpNqq53p|{r;yntr9->6H--vs-5y|-KJ-pn}6-\n----n|zvp`|r53p|{r;|rsy|9->6H----nrl}|v{lv{tyr5t;p\x079-t;p\b9-t;v r9-r{p|qrq6H----r{H--\f--opxrhpn}-8-y|j-J-OpxrR{\b5t;p\x079-t;p\b9-t;v r9-r{p|qrq6H--yr--J-}|v{lrp5t;p\x079-t;p\b9-t;v r9-v@?5snzr;prr{V{s|;\x0769-v@?5snzr;prr{V{s|;\b66H--yr-o\x07=-J-@?5;\x076-<-`bOlOY\\PXl`VgRH--yr-o\b=-J-@?5; 6-<-`bOlOY\\PXl`VgRH--yr-o-J-@?5;\b6-<-`bOlOY\\PXl`VgR-:-o\x07=-8->H--yr-ou-J-@?5;6-<-`bOlOY\\PXl`VgR-:-o\b=-8->H--yr-x-J-o-7-ouH--yr-onr-J-n|zvpNqq53p|{r;oOy|px9-x6H--yr-oPn}-J-snzr;ov{{rqV{s|;\bH--vs-5onr-8-x-K-oPn}6-\n----<<-已预留但放不下的槽位标记为无效,p||}lyntr-会跳过----s|-5n-vG-@?-J-onrH-v-I-zv{5onr-8-x9-oPn}6H-v-J-v-8->6-\n------oOy|pxhvj-J-`oOy|pxR{\b5`bOlOY\\PXlV[cNYVQ9-=6H----\f----n|zvp`|r53p|{r;|rsy|9->6H----nrl}|v{lv{tyr5t;p\x079-t;p\b9-t;v r9-r{p|qrq6H----r{H--\f--s|-5n-wG-@?-J-=H-w-I-xH-w-J-w-8->6-\n----oOy|pxhonr-8-wj-J-`oOy|pxR{\b5y|9-55o\b=-8-w-<-o6-II->C6-\v-5o\x07=-8-w-2-o66H--\f\f"), aC = function(...e) {
|
|
19519
|
+
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19520
|
+
}("<<-把本帧计数钳制到容量,写入-p||}lzrqvz-<-p||}lyntr-的-v{qvrp-参数Mt|}5=6-Mov{qv{t5=6-nI{vs|zK-snzrG-Snzrb{vs|zHMt|}5=6-Mov{qv{t5>6-nI|ntr9-rnqlvrK-p|{rG-P|{rHMt|}5=6-Mov{qv{t5?6-nI|ntr9-rnqlvrK-ntG-nn\bI@?9-EKH<<-{-个-|xt|}-拆成二维:5zv{5{9-q69-prvy5{-<-q69->6s{-}yvlqv}npu5{G-@?9-qG-@?6-:K-rp@I@?K-\n--vs-5{-IJ-q6-\n----r{-rp@I@?K5{9->9->6H--\f--r{-rp@I@?K5q9-5{-:->6-<-q-8->9->6H\fMp|z}r-M|xt|}lv r5>6s{-znv{56-\n--yr-{Z-J-zv{5n|zvpY|nq53p|{r;zrqvz69-snzr;ov{{rqV{s|;\x076H--yr-{Y-J-zv{5n|zvpY|nq53p|{r;oOy|px69-snzr;ov{{rqV{s|;\b6H--yr-q-J-snzr;ov{{rqV{s|; H--yr-n-J-}yvlqv}npu5{Z9-q6H--yr-o-J-}yvlqv}npu5{Y9-q6H--nth=j-J-n;\x07H--nth>j-J-n;\bH--nth?j-J-n; H--nth@j-J-o;\x07H--nthAj-J-o;\bH--nthBj-J-o; H--nthCj-J-{ZH--nthDj-J-{YH\f"), oC = function(...e) {
|
|
19521
|
+
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
19522
|
+
}("Mt|}5=6-Mov{qv{t5=6-nI|ntr9-rnqlvrK-snzrossrG-nn\bIn|zvpI@?KKHMt|}5=6-Mov{qv{t5>6-nI{vs|zK-snzrG-Snzrb{vs|zHMt|}5=6-Mov{qv{t5?6-nI|ntr9-rnqK-opxrG-nn\bIOpxrR{\bKHMt|}5=6-Mov{qv{t5@6-nI|ntr9-rnqK-oOy|pxG-nn\bI`oOy|pxR{\bKHMt|}5=6-Mov{qv{t5A6-nI|ntr9-rnqK-ntG-nn\bI@?9-EKH<<-一个-|xt|}-绘制一个-Zrqvz-点,线程按步长分摊像素Mp|z}r-M|xt|}lv r5P\\\\]ld\\_XT_\\b]l`VgR6s{-p||}lzrqvz5--Movyv{5|xt|}lvq6-vqG-rp@I@?K9--Movyv{5{zl|xt|}6-{tG-rp@I@?K9--Movyv{5y|pnylv{|pnv|{lv{qr\x076-G-@?96-\n--yr-yv{rn-J-vq;\b-7-{t;\x07-8-vq;\x07H--vs-5yv{rn-KJ-nthCj6-\n----r{H--\f--yr-r-J-opxrhyv{rnjH--yr--J-v@?5snzr;prr{V{s|;\x076H--yr-rp-J-}|v{lrp5r;p\x079-r;p\b9-r;v r9-9-v@?5snzr;prr{V{s|;\b66H--yr-d-J-rp;\b-:-rp;\x07-8->H--yr-U-J-rp;-:-rp; -8->H--vs-5d-IJ-=-\v\v-U-IJ-=6-\n----r{H--\f--yr-|ny-J-@?5d-7-U6H--yr--J-@?5d6H--yr-pvpyr-J-{rrqlpvpyr5r;v r6H--s|-5n-vG-@?-J-H-v-I-|nyH-v-J-v-8-P\\\\]ld\\_XT_\\b]l`VgR6-\n----yr-}\x07-J-rp;\x07-8-v@?5v-2-6H----yr-}\b-J-rp; -8-v@?5v-<-6H----vs-5pvpyr6-\n------yr--J-|l}n{5r;p\x079-r;p\b9-r;v r9-}\b9-rp6H------vs-5}\x07-I-;\x07-\v\v-}\x07-K-;\b6-\n--------p|{v{rH------\f----\f----rny\blqr}ulvr5@?5}\b-7--8-}\x0769-r;r{p|qrq6H--\f\f<<-一个-|xt|}-绘制-Yntr-点的一个-E×E-子块,每线程一个像素Mp|z}r-M|xt|}lv r5P\\\\]ld\\_XT_\\b]l`VgR6s{-p||}lyntr5--Movyv{5|xt|}lvq6-vqG-rp@I@?K9--Movyv{5{zl|xt|}6-{tG-rp@I@?K9--Movyv{5y|pnylv{|pnv|{lv{qr\x076-G-@?96-\n--yr-yv{rn-J-vq;\b-7-{t;\x07-8-vq;\x07H--vs-5yv{rn-KJ-nthDj6-\n----r{H--\f--yr-o-J-oOy|pxhyv{rnjH--vs-5o;}|v{V{qr\x07-JJ-`bOlOY\\PXlV[cNYVQ6-\n----r{H--\f--yr-r-J-opxrhsnzr;ov{{rqV{s|;\x07-8-o;}|v{V{qr\x07jH--yr--J-v@?5snzr;prr{V{s|;\x076H--yr-rp-J-}|v{lrp5r;p\x079-r;p\b9-r;v r9-9-v@?5snzr;prr{V{s|;\b66H--yr-}\x07-J-v@?55o;oy|pxef-3-=\x07SSSS6-7-`bOlOY\\PXl`VgR-8--2-`bOlOY\\PXl`VgR6H--yr-}\b-J-v@?55o;oy|pxef-KK->C6-7-`bOlOY\\PXl`VgR-8--<-`bOlOY\\PXl`VgR6H--vs-5}\x07-I-rp;\x07-\v\v-}\x07-K-rp;\b-\v\v-}\b-I-rp; -\v\v-}\b-K-rp;6-\n----r{H--\f--vs-5{rrqlpvpyr5r;v r66-\n----yr--J-|l}n{5r;p\x079-r;p\b9-r;v r9-}\b9-rp6H----vs-5}\x07-I-;\x07-\v\v-}\x07-K-;\b6-\n------r{H----\f--\f--rny\blqr}ulvr5@?5}\b-7--8-}\x0769-r;r{p|qrq6H\f"), sC = [
|
|
19523
|
+
JS,
|
|
19524
|
+
YS,
|
|
19525
|
+
XS,
|
|
19526
|
+
ZS,
|
|
19527
|
+
QS,
|
|
19528
|
+
$S,
|
|
19529
|
+
eC,
|
|
19530
|
+
tC,
|
|
19531
|
+
nC,
|
|
19532
|
+
rC,
|
|
19533
|
+
iC
|
|
19534
|
+
].join("\n"), cC = [
|
|
19535
|
+
JS,
|
|
19536
|
+
YS,
|
|
19537
|
+
aC
|
|
19538
|
+
].join("\n"), lC = [
|
|
19539
|
+
JS,
|
|
19540
|
+
YS,
|
|
19541
|
+
eC,
|
|
19542
|
+
tC,
|
|
19543
|
+
oC
|
|
19544
|
+
].join("\n");
|
|
19545
|
+
function uC(e, t) {
|
|
19546
|
+
return {
|
|
19547
|
+
binding: e,
|
|
19548
|
+
visibility: GPUShaderStage.COMPUTE,
|
|
19549
|
+
buffer: { type: t }
|
|
19550
|
+
};
|
|
19551
|
+
}
|
|
19552
|
+
function dC(e, t) {
|
|
19553
|
+
let n = e.createBindGroupLayout({
|
|
19554
|
+
label: "pointcloud-binned-classify-bgl",
|
|
19555
|
+
entries: [
|
|
19556
|
+
uC(0, "storage"),
|
|
19557
|
+
uC(1, "storage"),
|
|
19558
|
+
uC(2, "storage")
|
|
19559
|
+
]
|
|
19560
|
+
}), r = e.createBindGroupLayout({
|
|
19561
|
+
label: "pointcloud-binned-args-bgl",
|
|
19562
|
+
entries: [
|
|
19563
|
+
uC(0, "uniform"),
|
|
19564
|
+
uC(1, "storage"),
|
|
19565
|
+
uC(2, "storage")
|
|
19566
|
+
]
|
|
19567
|
+
}), i = e.createBindGroupLayout({
|
|
19568
|
+
label: "pointcloud-binned-coop-bgl",
|
|
19569
|
+
entries: [
|
|
19570
|
+
uC(0, "storage"),
|
|
19571
|
+
uC(1, "uniform"),
|
|
19572
|
+
uC(2, "read-only-storage"),
|
|
19573
|
+
uC(3, "read-only-storage"),
|
|
19574
|
+
uC(4, "read-only-storage")
|
|
19575
|
+
]
|
|
19576
|
+
}), a = e.createComputePipeline({
|
|
19577
|
+
label: "pointcloud-binned-classify",
|
|
19578
|
+
layout: e.createPipelineLayout({ bindGroupLayouts: [t, n] }),
|
|
19579
|
+
compute: {
|
|
19580
|
+
module: e.createShaderModule({ code: sC }),
|
|
19581
|
+
entryPoint: "main"
|
|
19582
|
+
}
|
|
19583
|
+
}), o = e.createComputePipeline({
|
|
19584
|
+
label: "pointcloud-binned-args-builder",
|
|
19585
|
+
layout: e.createPipelineLayout({ bindGroupLayouts: [r] }),
|
|
19586
|
+
compute: {
|
|
19587
|
+
module: e.createShaderModule({ code: cC }),
|
|
19588
|
+
entryPoint: "main"
|
|
19589
|
+
}
|
|
19590
|
+
}), s = e.createPipelineLayout({ bindGroupLayouts: [i] }), c = e.createShaderModule({ code: lC });
|
|
19591
|
+
return {
|
|
19592
|
+
classifyBGL: n,
|
|
19593
|
+
argsBGL: r,
|
|
19594
|
+
coopBGL: i,
|
|
19595
|
+
classifier: a,
|
|
19596
|
+
argsBuilder: o,
|
|
19597
|
+
coopMedium: e.createComputePipeline({
|
|
19598
|
+
label: "pointcloud-binned-coop-medium",
|
|
19599
|
+
layout: s,
|
|
19600
|
+
compute: {
|
|
19601
|
+
module: c,
|
|
19602
|
+
entryPoint: "coop_medium"
|
|
19603
|
+
}
|
|
19604
|
+
}),
|
|
19605
|
+
coopLarge: e.createComputePipeline({
|
|
19606
|
+
label: "pointcloud-binned-coop-large",
|
|
19607
|
+
layout: s,
|
|
19608
|
+
compute: {
|
|
19609
|
+
module: c,
|
|
19610
|
+
entryPoint: "coop_large"
|
|
19611
|
+
}
|
|
19612
|
+
})
|
|
19613
|
+
};
|
|
19614
|
+
}
|
|
19615
|
+
//#endregion
|
|
19616
|
+
//#region build/five/renderer/compute-renderers/binned/binned-core.js
|
|
19617
|
+
var fC = {
|
|
19618
|
+
smallThreshold: 8,
|
|
19619
|
+
largeThreshold: 16,
|
|
19620
|
+
bucketRatio: .125,
|
|
19621
|
+
bucketMin: 16384,
|
|
19622
|
+
bucketMax: Math.pow(2, 21),
|
|
19623
|
+
subBlockRatio: .02,
|
|
19624
|
+
subBlockMin: 169 * 256,
|
|
19625
|
+
subBlockMax: Math.pow(2, 23)
|
|
19626
|
+
}, pC = 16, mC = 32;
|
|
19627
|
+
function hC(e, t, n) {
|
|
19628
|
+
return Math.max(1, Math.min(Math.max(e, t), n));
|
|
19629
|
+
}
|
|
19630
|
+
var gC = class {
|
|
19631
|
+
constructor(e, t, n) {
|
|
19632
|
+
this.buckets = null, this.subBlocks = null, this.bucketCap = 0, this.subBlockCap = 0, this.classifyBG = null, this.argsBG = null, this.coopBG = null, this.boundFramebuffer = null, this.device = e, this.frameUniformBuffer = n, this.pipes = dC(e, t), this.counters = e.createBuffer({
|
|
19633
|
+
label: "pointcloud-binned-counters",
|
|
19634
|
+
size: pC,
|
|
19635
|
+
usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST
|
|
19636
|
+
}), this.args = e.createBuffer({
|
|
19637
|
+
label: "pointcloud-binned-args",
|
|
19638
|
+
size: mC,
|
|
19639
|
+
usage: GPUBufferUsage.INDIRECT | GPUBufferUsage.STORAGE
|
|
19640
|
+
});
|
|
19641
|
+
}
|
|
19642
|
+
get bucketCapacity() {
|
|
19643
|
+
return this.bucketCap;
|
|
19644
|
+
}
|
|
19645
|
+
get subBlockCapacity() {
|
|
19646
|
+
return this.subBlockCap;
|
|
19647
|
+
}
|
|
19648
|
+
prepare(e, t) {
|
|
19649
|
+
let n = fC, r = this.device.limits, i = Math.min(r.maxStorageBufferBindingSize, r.maxBufferSize), a = Math.pow(r.maxComputeWorkgroupsPerDimension, 2), o = Math.min(n.bucketMax, Math.floor(i / 2 / 16), a), s = Math.min(n.subBlockMax, Math.floor(i / 8), a), c = Math.max(this.bucketCap, hC(Math.ceil(e * n.bucketRatio), n.bucketMin, o)), l = Math.max(this.subBlockCap, hC(Math.ceil(c * 169 * n.subBlockRatio), n.subBlockMin, s));
|
|
19650
|
+
(c !== this.bucketCap || l !== this.subBlockCap) && this.allocate(c, l), (this.classifyBG === null || this.boundFramebuffer !== t) && this.createBindGroups(t);
|
|
19651
|
+
}
|
|
19652
|
+
encodeClearCounters(e) {
|
|
19653
|
+
e.clearBuffer(this.counters, 0, pC);
|
|
19654
|
+
}
|
|
19655
|
+
encodeClassify(e, t, n) {
|
|
19656
|
+
e.setPipeline(this.pipes.classifier), e.setBindGroup(0, t), e.setBindGroup(1, this.classifyBG), e.dispatchWorkgroups(Math.ceil(n / 256));
|
|
19657
|
+
}
|
|
19658
|
+
encodeCoop(e) {
|
|
19659
|
+
e.setPipeline(this.pipes.argsBuilder), e.setBindGroup(0, this.argsBG), e.dispatchWorkgroups(1), e.setPipeline(this.pipes.coopMedium), e.setBindGroup(0, this.coopBG), e.dispatchWorkgroupsIndirect(this.args, 0), e.setPipeline(this.pipes.coopLarge), e.dispatchWorkgroupsIndirect(this.args, 12);
|
|
19660
|
+
}
|
|
19661
|
+
dispose() {
|
|
19662
|
+
var e, t;
|
|
19663
|
+
(e = this.buckets) == null || e.destroy(), (t = this.subBlocks) == null || t.destroy(), this.counters.destroy(), this.args.destroy(), this.buckets = null, this.subBlocks = null, this.classifyBG = null, this.argsBG = null, this.coopBG = null;
|
|
19664
|
+
}
|
|
19665
|
+
allocate(e, t) {
|
|
19666
|
+
var n, r;
|
|
19667
|
+
(n = this.buckets) == null || n.destroy(), (r = this.subBlocks) == null || r.destroy(), this.buckets = this.device.createBuffer({
|
|
19668
|
+
label: "pointcloud-binned-buckets",
|
|
19669
|
+
size: 2 * e * 16,
|
|
19670
|
+
usage: GPUBufferUsage.STORAGE
|
|
19671
|
+
}), this.subBlocks = this.device.createBuffer({
|
|
19672
|
+
label: "pointcloud-binned-sub-blocks",
|
|
19673
|
+
size: t * 8,
|
|
19674
|
+
usage: GPUBufferUsage.STORAGE
|
|
19675
|
+
}), this.bucketCap = e, this.subBlockCap = t, this.classifyBG = null;
|
|
19676
|
+
}
|
|
19677
|
+
createBindGroups(e) {
|
|
19678
|
+
let t = this.buckets, n = this.subBlocks;
|
|
19679
|
+
this.classifyBG = this.device.createBindGroup({
|
|
19680
|
+
layout: this.pipes.classifyBGL,
|
|
19681
|
+
entries: [
|
|
19682
|
+
{
|
|
19683
|
+
binding: 0,
|
|
19684
|
+
resource: { buffer: t }
|
|
19685
|
+
},
|
|
19686
|
+
{
|
|
19687
|
+
binding: 1,
|
|
19688
|
+
resource: { buffer: n }
|
|
19689
|
+
},
|
|
19690
|
+
{
|
|
19691
|
+
binding: 2,
|
|
19692
|
+
resource: { buffer: this.counters }
|
|
19693
|
+
}
|
|
19694
|
+
]
|
|
19695
|
+
}), this.argsBG = this.device.createBindGroup({
|
|
19696
|
+
layout: this.pipes.argsBGL,
|
|
19697
|
+
entries: [
|
|
19698
|
+
{
|
|
19699
|
+
binding: 0,
|
|
19700
|
+
resource: { buffer: this.frameUniformBuffer }
|
|
19701
|
+
},
|
|
19702
|
+
{
|
|
19703
|
+
binding: 1,
|
|
19704
|
+
resource: { buffer: this.counters }
|
|
19705
|
+
},
|
|
19706
|
+
{
|
|
19707
|
+
binding: 2,
|
|
19708
|
+
resource: { buffer: this.args }
|
|
19709
|
+
}
|
|
19710
|
+
]
|
|
19711
|
+
}), this.coopBG = this.device.createBindGroup({
|
|
19712
|
+
layout: this.pipes.coopBGL,
|
|
19713
|
+
entries: [
|
|
19714
|
+
{
|
|
19715
|
+
binding: 0,
|
|
19716
|
+
resource: { buffer: e }
|
|
19717
|
+
},
|
|
19718
|
+
{
|
|
19719
|
+
binding: 1,
|
|
19720
|
+
resource: { buffer: this.frameUniformBuffer }
|
|
19721
|
+
},
|
|
19722
|
+
{
|
|
19723
|
+
binding: 2,
|
|
19724
|
+
resource: { buffer: t }
|
|
19725
|
+
},
|
|
19726
|
+
{
|
|
19727
|
+
binding: 3,
|
|
19728
|
+
resource: { buffer: n }
|
|
19729
|
+
},
|
|
19730
|
+
{
|
|
19731
|
+
binding: 4,
|
|
19732
|
+
resource: { buffer: this.args }
|
|
19733
|
+
}
|
|
19734
|
+
]
|
|
19735
|
+
}), this.boundFramebuffer = e;
|
|
19736
|
+
}
|
|
19737
|
+
};
|
|
19464
19738
|
//#endregion
|
|
19465
19739
|
//#region build/five/renderer/compute-renderers/rgb565.js
|
|
19466
|
-
function
|
|
19740
|
+
function _C(e, t, n) {
|
|
19467
19741
|
let r = Math.round(e * 31) & 31, i = Math.round(t * 63) & 63, a = Math.round(n * 31) & 31;
|
|
19468
19742
|
return r << 11 | i << 5 | a;
|
|
19469
19743
|
}
|
|
19470
19744
|
//#endregion
|
|
19471
19745
|
//#region build/five/renderer/compute-renderers/pointcloud-compute-renderer.js
|
|
19472
|
-
function
|
|
19746
|
+
function vC(e) {
|
|
19473
19747
|
return e <= .04045 ? e / 12.92 : Math.pow((e + .055) / 1.055, 2.4);
|
|
19474
19748
|
}
|
|
19475
|
-
var
|
|
19476
|
-
|
|
19477
|
-
|
|
19749
|
+
var yC = class t {
|
|
19750
|
+
get colorFormat() {
|
|
19751
|
+
return this.format;
|
|
19752
|
+
}
|
|
19753
|
+
constructor(t, n) {
|
|
19754
|
+
this.width = 0, this.height = 0, this.pointBuffer = null, this.colorBuffer = null, this.normalBuffer = null, this.framebuffer = null, this.clearBindGroup = null, this.rasterizeBindGroup = null, this.displayBindGroup = null, this.pointCount = 0, this.frameUniformScratch = new ArrayBuffer(KS.size), this.tileUniformScratch = new ArrayBuffer(qS.size), this.pointSizeUniformState = {
|
|
19478
19755
|
sizeMode: 1,
|
|
19479
19756
|
pointScale: .02,
|
|
19480
19757
|
pointMinPixel: 0,
|
|
@@ -19484,14 +19761,14 @@ var qS = class t {
|
|
|
19484
19761
|
hardPixelMax: 12,
|
|
19485
19762
|
pointShape: 1,
|
|
19486
19763
|
maxDisplayBoost: 1
|
|
19487
|
-
}, this.ready = !1, this.
|
|
19488
|
-
size:
|
|
19764
|
+
}, this.ready = !1, this.binnedCore = null, this.frameViewProj = new e.Matrix4(), this.tileMvpScratch = new e.Matrix4(), this.pointCloudCache = /* @__PURE__ */ new Map(), this.rasterizeBindGroupCache = /* @__PURE__ */ new Map(), this.tileUniformBufferCache = /* @__PURE__ */ new Map(), this.tileDisposeListeners = /* @__PURE__ */ new Map(), this.packedColorScratch = /* @__PURE__ */ new Uint32Array(), this.packedNormalScratch = /* @__PURE__ */ new Uint32Array(), this.tmpVec3a = new e.Vector3(), this.tmpVec3b = new e.Vector3(), this.tmpVec3c = new e.Vector3(), this.tmpVec3d = new e.Vector3(), this.device = t, this.format = n, this.frameUniformBuffer = t.createBuffer({
|
|
19765
|
+
size: KS.size,
|
|
19489
19766
|
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST
|
|
19490
|
-
}), this.displayParamsBuffer =
|
|
19767
|
+
}), this.displayParamsBuffer = t.createBuffer({
|
|
19491
19768
|
size: 8,
|
|
19492
19769
|
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST
|
|
19493
19770
|
});
|
|
19494
|
-
let
|
|
19771
|
+
let r = new DataView(this.frameUniformScratch), i = new Float32Array([
|
|
19495
19772
|
1,
|
|
19496
19773
|
0,
|
|
19497
19774
|
0,
|
|
@@ -19509,28 +19786,71 @@ var qS = class t {
|
|
|
19509
19786
|
0,
|
|
19510
19787
|
1
|
|
19511
19788
|
]);
|
|
19512
|
-
new Float32Array(this.frameUniformScratch, 0, 16).set(
|
|
19513
|
-
let
|
|
19514
|
-
this.
|
|
19789
|
+
new Float32Array(this.frameUniformScratch, 0, 16).set(i);
|
|
19790
|
+
let a = KS.offsets;
|
|
19791
|
+
r.setUint32(a.screenInfo, 0, !0), r.setUint32(a.screenInfo + 4, 0, !0), r.setUint32(a.screenInfo + 12, this.pointSizeUniformState.sizeMode, !0), r.setFloat32(a.sizeInfo0, this.pointSizeUniformState.pointScale, !0), r.setFloat32(a.sizeInfo0 + 4, this.pointSizeUniformState.pointMinPixel, !0), r.setFloat32(a.sizeInfo0 + 8, this.pointSizeUniformState.pointMaxPixel, !0), r.setFloat32(a.sizeInfo0 + 12, this.pointSizeUniformState.pixelRatio, !0), r.setUint32(a.sizeInfo1, Math.round(this.pointSizeUniformState.resolutionY), !0), r.setUint32(a.sizeInfo1 + 4, Math.round(this.pointSizeUniformState.hardPixelMax), !0), r.setUint32(a.sizeInfo1 + 8, this.pointSizeUniformState.pointShape, !0), t.queue.writeBuffer(this.frameUniformBuffer, 0, this.frameUniformScratch);
|
|
19792
|
+
let o = t.createShaderModule({ code: JS + HS }), s = t.createShaderModule({ code: US });
|
|
19793
|
+
this.clearPipeline = t.createComputePipeline({
|
|
19515
19794
|
layout: "auto",
|
|
19516
19795
|
compute: {
|
|
19517
19796
|
module: o,
|
|
19518
19797
|
entryPoint: "main"
|
|
19519
19798
|
}
|
|
19520
|
-
}), this.
|
|
19521
|
-
|
|
19522
|
-
|
|
19523
|
-
|
|
19524
|
-
|
|
19525
|
-
|
|
19526
|
-
|
|
19799
|
+
}), this.tileBindGroupLayout = t.createBindGroupLayout({
|
|
19800
|
+
label: "pointcloud-tile-bgl",
|
|
19801
|
+
entries: [
|
|
19802
|
+
{
|
|
19803
|
+
binding: 0,
|
|
19804
|
+
visibility: GPUShaderStage.COMPUTE,
|
|
19805
|
+
buffer: { type: "storage" }
|
|
19806
|
+
},
|
|
19807
|
+
{
|
|
19808
|
+
binding: 1,
|
|
19809
|
+
visibility: GPUShaderStage.COMPUTE,
|
|
19810
|
+
buffer: { type: "uniform" }
|
|
19811
|
+
},
|
|
19812
|
+
{
|
|
19813
|
+
binding: 2,
|
|
19814
|
+
visibility: GPUShaderStage.COMPUTE,
|
|
19815
|
+
buffer: { type: "read-only-storage" }
|
|
19816
|
+
},
|
|
19817
|
+
{
|
|
19818
|
+
binding: 3,
|
|
19819
|
+
visibility: GPUShaderStage.COMPUTE,
|
|
19820
|
+
buffer: { type: "read-only-storage" }
|
|
19821
|
+
},
|
|
19822
|
+
{
|
|
19823
|
+
binding: 4,
|
|
19824
|
+
visibility: GPUShaderStage.COMPUTE,
|
|
19825
|
+
texture: {
|
|
19826
|
+
sampleType: "float",
|
|
19827
|
+
viewDimension: "2d"
|
|
19828
|
+
}
|
|
19829
|
+
},
|
|
19830
|
+
{
|
|
19831
|
+
binding: 5,
|
|
19832
|
+
visibility: GPUShaderStage.COMPUTE,
|
|
19833
|
+
sampler: { type: "filtering" }
|
|
19834
|
+
},
|
|
19835
|
+
{
|
|
19836
|
+
binding: 6,
|
|
19837
|
+
visibility: GPUShaderStage.COMPUTE,
|
|
19838
|
+
buffer: { type: "read-only-storage" }
|
|
19839
|
+
},
|
|
19840
|
+
{
|
|
19841
|
+
binding: 7,
|
|
19842
|
+
visibility: GPUShaderStage.COMPUTE,
|
|
19843
|
+
buffer: { type: "uniform" }
|
|
19844
|
+
}
|
|
19845
|
+
]
|
|
19846
|
+
}), this.fullscreenQuadPipeline = t.createRenderPipeline({
|
|
19527
19847
|
layout: "auto",
|
|
19528
19848
|
vertex: {
|
|
19529
|
-
module:
|
|
19849
|
+
module: s,
|
|
19530
19850
|
entryPoint: "vs_main"
|
|
19531
19851
|
},
|
|
19532
19852
|
fragment: {
|
|
19533
|
-
module:
|
|
19853
|
+
module: s,
|
|
19534
19854
|
entryPoint: "fs_main",
|
|
19535
19855
|
targets: [{ format: this.format }]
|
|
19536
19856
|
},
|
|
@@ -19540,14 +19860,14 @@ var qS = class t {
|
|
|
19540
19860
|
depthWriteEnabled: !0,
|
|
19541
19861
|
depthCompare: "less"
|
|
19542
19862
|
}
|
|
19543
|
-
}), this.fullscreenQuadPipelineAdditive =
|
|
19863
|
+
}), this.fullscreenQuadPipelineAdditive = t.createRenderPipeline({
|
|
19544
19864
|
layout: "auto",
|
|
19545
19865
|
vertex: {
|
|
19546
|
-
module:
|
|
19866
|
+
module: s,
|
|
19547
19867
|
entryPoint: "vs_main"
|
|
19548
19868
|
},
|
|
19549
19869
|
fragment: {
|
|
19550
|
-
module:
|
|
19870
|
+
module: s,
|
|
19551
19871
|
entryPoint: "fs_main",
|
|
19552
19872
|
targets: [{
|
|
19553
19873
|
format: this.format,
|
|
@@ -19571,14 +19891,14 @@ var qS = class t {
|
|
|
19571
19891
|
depthWriteEnabled: !0,
|
|
19572
19892
|
depthCompare: "less"
|
|
19573
19893
|
}
|
|
19574
|
-
}), this.placeholderGradientTexture =
|
|
19894
|
+
}), this.placeholderGradientTexture = t.createTexture({
|
|
19575
19895
|
size: {
|
|
19576
19896
|
width: 1,
|
|
19577
19897
|
height: 1
|
|
19578
19898
|
},
|
|
19579
19899
|
format: "rgba8unorm",
|
|
19580
19900
|
usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST
|
|
19581
|
-
}), this.placeholderGradientView = this.placeholderGradientTexture.createView(),
|
|
19901
|
+
}), this.placeholderGradientView = this.placeholderGradientTexture.createView(), t.queue.writeTexture({ texture: this.placeholderGradientTexture }, new Uint8Array([
|
|
19582
19902
|
128,
|
|
19583
19903
|
128,
|
|
19584
19904
|
128,
|
|
@@ -19590,7 +19910,7 @@ var qS = class t {
|
|
|
19590
19910
|
width: 1,
|
|
19591
19911
|
height: 1,
|
|
19592
19912
|
depthOrArrayLayers: 1
|
|
19593
|
-
}), this.gradientSampler =
|
|
19913
|
+
}), this.gradientSampler = t.createSampler({
|
|
19594
19914
|
magFilter: "linear",
|
|
19595
19915
|
minFilter: "linear",
|
|
19596
19916
|
addressModeU: "clamp-to-edge",
|
|
@@ -19613,12 +19933,12 @@ var qS = class t {
|
|
|
19613
19933
|
usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST
|
|
19614
19934
|
});
|
|
19615
19935
|
if (this.packedColorScratch.length < r && (this.packedColorScratch = new Uint32Array(r)), n instanceof Uint8Array) for (let e = 0; e < r; e++) {
|
|
19616
|
-
let t = e * 3, r =
|
|
19617
|
-
this.packedColorScratch[e] =
|
|
19936
|
+
let t = e * 3, r = vC(n[t] / 255), i = vC(n[t + 1] / 255), a = vC(n[t + 2] / 255);
|
|
19937
|
+
this.packedColorScratch[e] = _C(r, i, a);
|
|
19618
19938
|
}
|
|
19619
19939
|
else for (let e = 0; e < r; e++) {
|
|
19620
19940
|
let t = e * 3;
|
|
19621
|
-
this.packedColorScratch[e] =
|
|
19941
|
+
this.packedColorScratch[e] = _C(n[t], n[t + 1], n[t + 2]);
|
|
19622
19942
|
}
|
|
19623
19943
|
this.device.queue.writeBuffer(a, 0, this.packedColorScratch.buffer, 0, r * 4);
|
|
19624
19944
|
let o = this.device.createBuffer({
|
|
@@ -19649,11 +19969,14 @@ var qS = class t {
|
|
|
19649
19969
|
let g = this.ensureTileUniformBuffer(e);
|
|
19650
19970
|
this.bindRasterizeGroup(e, g, m, h), this.ready = !!this.framebuffer && !!this.rasterizeBindGroup;
|
|
19651
19971
|
}
|
|
19652
|
-
|
|
19653
|
-
|
|
19654
|
-
|
|
19655
|
-
|
|
19656
|
-
|
|
19972
|
+
prepareFrame(e) {
|
|
19973
|
+
this.framebuffer && (this.binnedCore || (this.binnedCore = new gC(this.device, this.tileBindGroupLayout, this.frameUniformBuffer)), this.binnedCore.prepare(e, this.framebuffer));
|
|
19974
|
+
}
|
|
19975
|
+
beginPointCloudFrame(e, t, n) {
|
|
19976
|
+
n.multiplyMatrices(e.projectionMatrix, e.matrixWorldInverse), this.frameViewProj.copy(n);
|
|
19977
|
+
let r = this.frameViewProj.elements, i = new DataView(this.frameUniformScratch);
|
|
19978
|
+
for (let e = 0; e < 16; e++) i.setFloat32(KS.offsets.viewProj + e * 4, r[e], !0);
|
|
19979
|
+
this.writeFrameUniformsDataView(i, t, e, n), this.device.queue.writeBuffer(this.frameUniformBuffer, 0, this.frameUniformScratch);
|
|
19657
19980
|
}
|
|
19658
19981
|
writeTileUniform(e, t) {
|
|
19659
19982
|
let n = this.ensureTileUniformBuffer(e), r = new DataView(this.tileUniformScratch);
|
|
@@ -19672,19 +19995,20 @@ var qS = class t {
|
|
|
19672
19995
|
let n = 0;
|
|
19673
19996
|
return Hn(e.normals, t) && (n |= 1), e.useAddBlend && (n |= 8), n;
|
|
19674
19997
|
}
|
|
19675
|
-
writePointAttenuationUniforms(e,
|
|
19676
|
-
let
|
|
19677
|
-
e.setFloat32(
|
|
19678
|
-
}
|
|
19679
|
-
writeFrameUniformsDataView(e, n, r
|
|
19680
|
-
var
|
|
19681
|
-
|
|
19682
|
-
|
|
19683
|
-
|
|
19684
|
-
|
|
19685
|
-
|
|
19686
|
-
|
|
19687
|
-
|
|
19998
|
+
writePointAttenuationUniforms(e, t) {
|
|
19999
|
+
let n = t.projectionMatrix.elements, r = t.matrixWorldInverse.elements, i = KS.offsets;
|
|
20000
|
+
e.setFloat32(i.pointAttenPack, -n[11], !0), e.setFloat32(i.pointAttenPack + 4, 2 / n[5], !0), e.setFloat32(i.pointAttenPack + 8, 0, !0), e.setFloat32(i.pointAttenPack + 12, 0, !0), e.setFloat32(i.viewZRow, r[2], !0), e.setFloat32(i.viewZRow + 4, r[6], !0), e.setFloat32(i.viewZRow + 8, r[10], !0), e.setFloat32(i.viewZRow + 12, r[14], !0);
|
|
20001
|
+
}
|
|
20002
|
+
writeFrameUniformsDataView(e, t, n, r) {
|
|
20003
|
+
var i, a;
|
|
20004
|
+
let o = KS.offsets;
|
|
20005
|
+
e.setUint32(o.screenInfo, this.width, !0), e.setUint32(o.screenInfo + 4, this.height, !0), e.setUint32(o.screenInfo + 8, 0, !0), this.writePointAttenuationUniforms(e, n), e.setUint32(o.screenInfo + 12, this.pointSizeUniformState.sizeMode, !0), e.setFloat32(o.sizeInfo0, this.pointSizeUniformState.pointScale, !0), e.setFloat32(o.sizeInfo0 + 4, this.pointSizeUniformState.pointMinPixel, !0), e.setFloat32(o.sizeInfo0 + 8, this.pointSizeUniformState.pointMaxPixel, !0), e.setFloat32(o.sizeInfo0 + 12, this.pointSizeUniformState.pixelRatio, !0), e.setUint32(o.sizeInfo1, Math.round(this.pointSizeUniformState.resolutionY), !0), e.setUint32(o.sizeInfo1 + 4, Math.round(this.pointSizeUniformState.hardPixelMax), !0), e.setUint32(o.sizeInfo1 + 8, this.pointSizeUniformState.pointShape, !0);
|
|
20006
|
+
let s = t.colorStyle === "ALTITUDE" ? 1 : t.colorStyle === "CONSTANT" ? 2 : 0, c = +(t.floorStyle === "OPACITY"), l = t.pointBack === "HIDDEN" ? 1 : t.pointBack === "DARK" ? 2 : 0;
|
|
20007
|
+
n.updateMatrixWorld(!0);
|
|
20008
|
+
let u = n.getWorldPosition(this.tmpVec3c);
|
|
20009
|
+
e.setFloat32(o.cameraWorld, u.x, !0), e.setFloat32(o.cameraWorld + 4, u.y, !0), e.setFloat32(o.cameraWorld + 8, u.z, !0), e.setFloat32(o.cameraWorld + 12, 0, !0);
|
|
20010
|
+
let d = this.tmpVec3d.set(0, 0, -1).applyQuaternion(n.quaternion);
|
|
20011
|
+
e.setFloat32(o.cameraForward, d.x, !0), e.setFloat32(o.cameraForward + 4, d.y, !0), e.setFloat32(o.cameraForward + 8, d.z, !0), e.setFloat32(o.cameraForward + 12, 0, !0), e.setFloat32(o.constantColor, t.constantColor.x, !0), e.setFloat32(o.constantColor + 4, t.constantColor.y, !0), e.setFloat32(o.constantColor + 8, t.constantColor.z, !0), e.setFloat32(o.constantColor + 12, 1, !0), e.setFloat32(o.colorGain, t.colorSaturation, !0), e.setFloat32(o.colorGain + 4, t.colorBrightness, !0), e.setFloat32(o.colorGain + 8, t.outlineGain, !0), e.setFloat32(o.colorGain + 12, t.distanceGain, !0), e.setUint32(o.stylePack, s, !0), e.setUint32(o.stylePack + 4, c, !0), e.setUint32(o.stylePack + 8, l, !0), e.setUint32(o.stylePack + 12, 0, !0), e.setFloat32(o.floorPack, t.floorIndex, !0), e.setFloat32(o.floorPack + 4, t.shownFloorIndex, !0), e.setFloat32(o.floorPack + 8, t.opacity, !0), e.setFloat32(o.floorPack + 12, t.modelAlpha, !0);
|
|
19688
20012
|
let f = new Float32Array([
|
|
19689
20013
|
1,
|
|
19690
20014
|
0,
|
|
@@ -19703,44 +20027,50 @@ var qS = class t {
|
|
|
19703
20027
|
0,
|
|
19704
20028
|
1
|
|
19705
20029
|
]);
|
|
19706
|
-
for (let
|
|
19707
|
-
e.setFloat32(
|
|
19708
|
-
let p =
|
|
20030
|
+
for (let t = 0; t < 16; t++) e.setFloat32(o.clip0Inv + t * 4, f[t], !0), e.setFloat32(o.clip1Inv + t * 4, f[t], !0);
|
|
20031
|
+
e.setFloat32(o.clip0Meta + 12, 0, !0), e.setFloat32(o.clip1Meta + 12, 0, !0);
|
|
20032
|
+
let p = t.clippers;
|
|
19709
20033
|
if (p.length > 0) {
|
|
19710
|
-
let
|
|
19711
|
-
|
|
19712
|
-
let
|
|
19713
|
-
for (let
|
|
19714
|
-
e.setFloat32(
|
|
20034
|
+
let t = p[0];
|
|
20035
|
+
r.copy(t.clippingBoxMatrix).invert();
|
|
20036
|
+
let n = r.elements;
|
|
20037
|
+
for (let t = 0; t < 16; t++) e.setFloat32(o.clip0Inv + t * 4, n[t], !0);
|
|
20038
|
+
e.setFloat32(o.clip0Meta, (i = t.floorIndex) == null ? -1 : i, !0), e.setFloat32(o.clip0Meta + 12, 1, !0);
|
|
19715
20039
|
}
|
|
19716
20040
|
if (p.length > 1) {
|
|
19717
|
-
let
|
|
19718
|
-
|
|
19719
|
-
let
|
|
19720
|
-
for (let
|
|
19721
|
-
e.setFloat32(
|
|
20041
|
+
let t = p[1];
|
|
20042
|
+
r.copy(t.clippingBoxMatrix).invert();
|
|
20043
|
+
let n = r.elements;
|
|
20044
|
+
for (let t = 0; t < 16; t++) e.setFloat32(o.clip1Inv + t * 4, n[t], !0);
|
|
20045
|
+
e.setFloat32(o.clip1Meta, (a = t.floorIndex) == null ? -1 : a, !0), e.setFloat32(o.clip1Meta + 12, 1, !0);
|
|
19722
20046
|
}
|
|
20047
|
+
this.writeRasterUniforms(e);
|
|
20048
|
+
}
|
|
20049
|
+
writeRasterUniforms(e) {
|
|
20050
|
+
var t, n, r, i;
|
|
20051
|
+
let a = KS.offsets;
|
|
20052
|
+
e.setFloat32(a.rasterParams, fC.smallThreshold, !0), e.setFloat32(a.rasterParams + 4, fC.largeThreshold, !0), e.setFloat32(a.rasterParams + 8, 0, !0), e.setFloat32(a.rasterParams + 12, 0, !0), e.setUint32(a.binnedInfo, (n = (t = this.binnedCore) == null ? void 0 : t.bucketCapacity) == null ? 0 : n, !0), e.setUint32(a.binnedInfo + 4, (i = (r = this.binnedCore) == null ? void 0 : r.subBlockCapacity) == null ? 0 : i, !0), e.setUint32(a.binnedInfo + 8, this.device.limits.maxComputeWorkgroupsPerDimension, !0), e.setUint32(a.binnedInfo + 12, 0, !0);
|
|
19723
20053
|
}
|
|
19724
20054
|
writeTileUniformsDataView(e, n, r) {
|
|
19725
|
-
let i = n.matrixWorld.elements;
|
|
19726
|
-
for (let
|
|
19727
|
-
let
|
|
19728
|
-
e.setFloat32(
|
|
20055
|
+
let i = qS.offsets, a = n.matrixWorld.elements;
|
|
20056
|
+
for (let t = 0; t < 16; t++) e.setFloat32(i.modelMatrix + t * 4, a[t], !0);
|
|
20057
|
+
let o = this.tmpVec3a.copy(n.modelBoundingMin), s = this.tmpVec3b.copy(n.modelBoundingMax);
|
|
20058
|
+
e.setFloat32(i.bboxMin, o.x, !0), e.setFloat32(i.bboxMin + 4, o.y, !0), e.setFloat32(i.bboxMin + 8, o.z, !0), e.setFloat32(i.bboxMin + 12, 0, !0), e.setFloat32(i.bboxMax, s.x, !0), e.setFloat32(i.bboxMax + 4, s.y, !0), e.setFloat32(i.bboxMax + 8, s.z, !0), e.setFloat32(i.bboxMax + 12, n.brightness, !0), e.setUint32(i.tilePack, r, !0), e.setUint32(i.tilePack + 4, t.tileFlags(n, r), !0);
|
|
20059
|
+
let c = this.tileMvpScratch.multiplyMatrices(this.frameViewProj, n.matrixWorld).elements;
|
|
20060
|
+
for (let t = 0; t < 16; t++) e.setFloat32(i.mvp + t * 4, c[t], !0);
|
|
19729
20061
|
}
|
|
19730
|
-
resize(e,
|
|
19731
|
-
var
|
|
19732
|
-
e <= 0 ||
|
|
19733
|
-
size: e *
|
|
20062
|
+
resize(e, t) {
|
|
20063
|
+
var n;
|
|
20064
|
+
e <= 0 || t <= 0 || (this.width = e, this.height = t, (n = this.framebuffer) == null || n.destroy(), this.framebuffer = this.device.createBuffer({
|
|
20065
|
+
size: e * t * 4,
|
|
19734
20066
|
usage: GPUBufferUsage.STORAGE
|
|
19735
|
-
}), this.device.queue.writeBuffer(this.displayParamsBuffer, 0, new Uint32Array([e,
|
|
20067
|
+
}), this.device.queue.writeBuffer(this.displayParamsBuffer, 0, new Uint32Array([e, t])), this.device.queue.writeBuffer(this.frameUniformBuffer, KS.offsets.screenInfo, new Uint32Array([e, t])), this.rasterizeBindGroupCache.clear(), this.rasterizeBindGroup = null, this.ready = !1, this.recreateBindGroups());
|
|
19736
20068
|
}
|
|
19737
20069
|
encodeFramebufferClear(e) {
|
|
19738
|
-
!this.clearBindGroup || !this.framebuffer || (e.setPipeline(this.clearPipeline),
|
|
20070
|
+
!this.clearBindGroup || !this.framebuffer || (e.setPipeline(this.clearPipeline), e.setBindGroup(0, this.clearBindGroup), e.dispatchWorkgroups(Math.ceil(this.width * this.height / 256)));
|
|
19739
20071
|
}
|
|
19740
20072
|
encodeRasterize(e) {
|
|
19741
|
-
|
|
19742
|
-
let t = this.rasterizePipeline;
|
|
19743
|
-
this.lastBoundComputePipeline !== t && (e.setPipeline(t), this.lastBoundComputePipeline = t), e.setBindGroup(0, this.rasterizeBindGroup), e.dispatchWorkgroups(Math.ceil(this.pointCount / 256));
|
|
20073
|
+
!this.binnedCore || !this.ready || !this.rasterizeBindGroup || this.pointCount <= 0 || this.binnedCore.encodeClassify(e, this.rasterizeBindGroup, this.pointCount);
|
|
19744
20074
|
}
|
|
19745
20075
|
encodeFramebufferDisplay(e, t) {
|
|
19746
20076
|
if (!this.displayBindGroup || !this.framebuffer) return;
|
|
@@ -19749,9 +20079,13 @@ var qS = class t {
|
|
|
19749
20079
|
}
|
|
19750
20080
|
submitMergedPointCloudFrame(e, t, n, r) {
|
|
19751
20081
|
var i, a, o;
|
|
19752
|
-
let s =
|
|
19753
|
-
if (
|
|
19754
|
-
|
|
20082
|
+
let s = this.binnedCore;
|
|
20083
|
+
if (!s) return;
|
|
20084
|
+
let c = (i = r == null ? void 0 : r.clear) == null ? !0 : i, l = (a = r == null ? void 0 : r.display) == null ? !0 : a, u = (o = r == null ? void 0 : r.displayAdditive) == null ? !1 : o, d = this.device.createCommandEncoder();
|
|
20085
|
+
s.encodeClearCounters(d);
|
|
20086
|
+
let f = d.beginComputePass();
|
|
20087
|
+
if (c && this.encodeFramebufferClear(f), n(f), s.encodeCoop(f), f.end(), l) {
|
|
20088
|
+
let n = d.beginRenderPass({
|
|
19755
20089
|
colorAttachments: [{
|
|
19756
20090
|
view: e,
|
|
19757
20091
|
loadOp: "load",
|
|
@@ -19763,12 +20097,13 @@ var qS = class t {
|
|
|
19763
20097
|
depthStoreOp: "store"
|
|
19764
20098
|
}
|
|
19765
20099
|
});
|
|
19766
|
-
this.encodeFramebufferDisplay(n, { additive:
|
|
20100
|
+
this.encodeFramebufferDisplay(n, { additive: u }), n.end();
|
|
19767
20101
|
}
|
|
19768
|
-
this.device.queue.submit([
|
|
20102
|
+
this.device.queue.submit([d.finish()]);
|
|
19769
20103
|
}
|
|
19770
20104
|
dispose() {
|
|
19771
|
-
var e;
|
|
20105
|
+
var e, t;
|
|
20106
|
+
(e = this.binnedCore) == null || e.dispose(), this.binnedCore = null;
|
|
19772
20107
|
for (let [e, t] of this.tileDisposeListeners) try {
|
|
19773
20108
|
e.removeEventListener("dispose", t);
|
|
19774
20109
|
} catch (e) {}
|
|
@@ -19776,7 +20111,7 @@ var qS = class t {
|
|
|
19776
20111
|
for (let e of this.pointCloudCache.values()) e.pointBuffer.destroy(), e.colorBuffer.destroy(), e.normalBuffer.destroy();
|
|
19777
20112
|
this.pointCloudCache.clear();
|
|
19778
20113
|
for (let e of this.tileUniformBufferCache.values()) e.destroy();
|
|
19779
|
-
this.tileUniformBufferCache.clear(), this.rasterizeBindGroupCache.clear(), (
|
|
20114
|
+
this.tileUniformBufferCache.clear(), this.rasterizeBindGroupCache.clear(), (t = this.framebuffer) == null || t.destroy(), this.frameUniformBuffer.destroy(), this.displayParamsBuffer.destroy(), this.placeholderGradientTexture.destroy(), this.pointBuffer = null, this.colorBuffer = null, this.normalBuffer = null, this.framebuffer = null, this.clearBindGroup = null, this.rasterizeBindGroup = null, this.displayBindGroup = null, this.ready = !1;
|
|
19780
20115
|
}
|
|
19781
20116
|
registerTileDisposer(e) {
|
|
19782
20117
|
if (this.tileDisposeListeners.has(e)) return;
|
|
@@ -19822,11 +20157,11 @@ var qS = class t {
|
|
|
19822
20157
|
}), this.ready = !1);
|
|
19823
20158
|
}
|
|
19824
20159
|
ensureTileUniformBuffer(e) {
|
|
19825
|
-
let
|
|
19826
|
-
return
|
|
19827
|
-
size:
|
|
20160
|
+
let t = this.tileUniformBufferCache.get(e);
|
|
20161
|
+
return t || (t = this.device.createBuffer({
|
|
20162
|
+
size: qS.size,
|
|
19828
20163
|
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST
|
|
19829
|
-
}), this.tileUniformBufferCache.set(e,
|
|
20164
|
+
}), this.tileUniformBufferCache.set(e, t), this.registerTileDisposer(e)), t;
|
|
19830
20165
|
}
|
|
19831
20166
|
bindRasterizeGroup(e, t, n, r) {
|
|
19832
20167
|
if (!this.framebuffer || !this.pointBuffer || !this.colorBuffer) {
|
|
@@ -19839,7 +20174,7 @@ var qS = class t {
|
|
|
19839
20174
|
return;
|
|
19840
20175
|
}
|
|
19841
20176
|
let a = this.device.createBindGroup({
|
|
19842
|
-
layout: this.
|
|
20177
|
+
layout: this.tileBindGroupLayout,
|
|
19843
20178
|
entries: [
|
|
19844
20179
|
{
|
|
19845
20180
|
binding: 0,
|
|
@@ -19884,11 +20219,7 @@ var qS = class t {
|
|
|
19884
20219
|
gradientView: n
|
|
19885
20220
|
}), this.rasterizeBindGroup = a;
|
|
19886
20221
|
}
|
|
19887
|
-
}
|
|
19888
|
-
qS.FRAME_UNIFORM_SIZE = 512, qS.TILE_UNIFORM_SIZE = 256, qS.OFFSET_VIEW_PROJ = 0, qS.OFFSET_SCREEN_WIDTH = 64, qS.OFFSET_SCREEN_HEIGHT = 68, qS.OFFSET_POINT_SIZE_MODE = 76, qS.OFFSET_POINT_ATTEN_PACK = 80, qS.OFFSET_VIEW_Z_ROW = 96, qS.OFFSET_POINT_SCALE = 112, qS.OFFSET_POINT_MIN_PIXEL = 116, qS.OFFSET_POINT_MAX_PIXEL = 120, qS.OFFSET_PIXEL_RATIO = 124, qS.OFFSET_RESOLUTION_Y = 128, qS.OFFSET_POINT_PIXEL_HARD_MAX = 132, qS.OFFSET_POINT_SHAPE = 136, qS.OFFSET_CAMERA_WORLD = 144, qS.OFFSET_CAMERA_FORWARD = 160, qS.OFFSET_CONSTANT_COLOR = 176, qS.OFFSET_COLOR_GAIN = 192, qS.OFFSET_STYLE_PACK = 208, qS.OFFSET_FLOOR_PACK = 224, qS.OFFSET_CLIP0_INV = 240, qS.OFFSET_CLIP0_META = 304, qS.OFFSET_CLIP1_INV = 320, qS.OFFSET_CLIP1_META = 384, qS.OFFSET_TILE_MODEL = 0, qS.OFFSET_TILE_BBOX_MIN = 64, qS.OFFSET_TILE_BBOX_MAX = 80, qS.OFFSET_TILE_PACK = 96;
|
|
19889
|
-
//#endregion
|
|
19890
|
-
//#region build/five/renderer/five-renderer.js
|
|
19891
|
-
var JS = new e.Matrix4(), YS = class {
|
|
20222
|
+
}, bC = new e.Matrix4(), xC = new e.Vector3(), SC = new e.Box3(), CC = class {
|
|
19892
20223
|
constructor(t) {
|
|
19893
20224
|
var n;
|
|
19894
20225
|
this.renderMode = "default", this.computeRenderer = null, this.useComputePointCloud = null, this.compositeRenderTarget = null, this.lastWidth = 0, this.lastHeight = 0, this.gpuTextureViewCache = /* @__PURE__ */ new WeakMap(), this.outputType = (n = t == null ? void 0 : t.outputType) == null ? e.UnsignedByteType : n, this.composer = new Wx(t), this.composerVersion = "", this.renderMode = "default", this.sceneRenders = { default: new VS() };
|
|
@@ -19922,46 +20253,67 @@ var JS = new e.Matrix4(), YS = class {
|
|
|
19922
20253
|
}
|
|
19923
20254
|
this.useComputePointCloud ? this.renderPointCloudCompute(e, t, i, r) : (e.setRenderTarget(this.compositeRenderTarget), e.clear(!0, !0, !0), e.render(t, r));
|
|
19924
20255
|
}
|
|
20256
|
+
sortByDistance(e, t) {
|
|
20257
|
+
t.getWorldPosition(xC);
|
|
20258
|
+
let n = /* @__PURE__ */ new Map();
|
|
20259
|
+
for (let t of e) {
|
|
20260
|
+
let e = t.getLocalBoundingBoxExtents();
|
|
20261
|
+
if (!e) {
|
|
20262
|
+
n.set(t, Number.MAX_VALUE);
|
|
20263
|
+
continue;
|
|
20264
|
+
}
|
|
20265
|
+
SC.min.set(e[0], e[1], e[2]), SC.max.set(e[3], e[4], e[5]), SC.applyMatrix4(t.matrixWorld), n.set(t, SC.distanceToPoint(xC));
|
|
20266
|
+
}
|
|
20267
|
+
return e.slice().sort((e, t) => n.get(e) - n.get(t));
|
|
20268
|
+
}
|
|
19925
20269
|
renderPointCloudCompute(e, t, n, r) {
|
|
19926
|
-
var i;
|
|
19927
|
-
|
|
20270
|
+
var i, a, o;
|
|
20271
|
+
e.setRenderTarget(this.compositeRenderTarget), e.clear(!0, !0, !0);
|
|
20272
|
+
let s = this.getCompositeTargetViews(e), c = s == null ? void 0 : s.colorFormat;
|
|
20273
|
+
if (c && ((i = this.computeRenderer) == null ? void 0 : i.colorFormat) !== c) try {
|
|
19928
20274
|
let t = e.backend.device;
|
|
19929
20275
|
if (!t) return;
|
|
19930
|
-
this.computeRenderer = new
|
|
20276
|
+
(a = this.computeRenderer) == null || a.dispose(), this.computeRenderer = new yC(t, c), this.computeRenderer.resize(this.lastWidth, this.lastHeight);
|
|
19931
20277
|
} catch (e) {
|
|
20278
|
+
this.computeRenderer = null;
|
|
19932
20279
|
return;
|
|
19933
20280
|
}
|
|
19934
|
-
|
|
19935
|
-
let
|
|
19936
|
-
for (let e of n)
|
|
19937
|
-
|
|
19938
|
-
let t =
|
|
20281
|
+
if (!this.computeRenderer) return;
|
|
20282
|
+
let l = Math.max(.1, r.pixelRatio || e.getPixelRatio()), u = Math.max(1, ((o = r.resolution) == null ? void 0 : o.y) || this.lastHeight), d = [], f = 0;
|
|
20283
|
+
for (let e of n) {
|
|
20284
|
+
if (!e.visible || !e.layers.test(r.layers)) continue;
|
|
20285
|
+
let t = Math.max(0, Math.min(e.visiblePointCount, e.numPoints));
|
|
20286
|
+
t !== 0 && (d.push(e), f += t);
|
|
20287
|
+
}
|
|
20288
|
+
if (s && d.length > 0) {
|
|
20289
|
+
this.computeRenderer.prepareFrame(f);
|
|
20290
|
+
let t = d.some((e) => e.useAddBlend), n = d[0], i = this.sortByDistance(d, r);
|
|
19939
20291
|
this.computeRenderer.setPointSizeParams({
|
|
19940
20292
|
sizeMode: n.pointSize,
|
|
19941
20293
|
pointShape: n.pointShape,
|
|
19942
20294
|
pointScale: n.pointScale,
|
|
19943
20295
|
pointMinPixel: n.pointMinPixel,
|
|
19944
20296
|
pointMaxPixel: n.pointMaxPixel,
|
|
19945
|
-
pixelRatio:
|
|
19946
|
-
resolutionY:
|
|
20297
|
+
pixelRatio: l,
|
|
20298
|
+
resolutionY: u,
|
|
19947
20299
|
maxDisplayBoost: n.maxDisplayBoost
|
|
19948
|
-
}), this.computeRenderer.submitMergedPointCloudFrame(
|
|
19949
|
-
var
|
|
19950
|
-
this.computeRenderer.beginPointCloudFrame(r, n,
|
|
19951
|
-
for (let n of
|
|
19952
|
-
let r = Math.max(0, Math.min(n.visiblePointCount, n.numPoints)),
|
|
20300
|
+
}), this.computeRenderer.submitMergedPointCloudFrame(s.colorView, s.depthView, (t) => {
|
|
20301
|
+
var a;
|
|
20302
|
+
this.computeRenderer.beginPointCloudFrame(r, n, bC);
|
|
20303
|
+
for (let n of i) {
|
|
20304
|
+
let r = Math.max(0, Math.min(n.visiblePointCount, n.numPoints)), i = (a = this.getCachedGpuTextureView(e, n.gradientTexture)) == null ? this.computeRenderer.getPlaceholderGradientView() : a;
|
|
19953
20305
|
this.computeRenderer.setPointCloud(n, n.positions, n.colors, r, {
|
|
19954
20306
|
positionsVersion: n.positionVersion,
|
|
19955
20307
|
colorsVersion: n.styleRevision
|
|
19956
|
-
}, { gradientView:
|
|
20308
|
+
}, { gradientView: i }), this.computeRenderer.writeTileUniform(n, r), this.computeRenderer.encodeRasterize(t);
|
|
19957
20309
|
}
|
|
19958
20310
|
}, { displayAdditive: t });
|
|
19959
20311
|
}
|
|
19960
|
-
let
|
|
19961
|
-
for (let e of n) e.visible && (e.visible = !1,
|
|
19962
|
-
let
|
|
19963
|
-
e.autoClear = !1, e.autoClearColor = !1, e.autoClearDepth = !1, e.autoClearStencil = !1, e.setRenderTarget(this.compositeRenderTarget), e.render(t, r), e.autoClear =
|
|
19964
|
-
for (let e of
|
|
20312
|
+
let p = [];
|
|
20313
|
+
for (let e of n) e.visible && (e.visible = !1, p.push(e));
|
|
20314
|
+
let m = e.autoClear, h = e.autoClearColor, g = e.autoClearDepth, _ = e.autoClearStencil;
|
|
20315
|
+
e.autoClear = !1, e.autoClearColor = !1, e.autoClearDepth = !1, e.autoClearStencil = !1, e.setRenderTarget(this.compositeRenderTarget), e.render(t, r), e.autoClear = m, e.autoClearColor = h, e.autoClearDepth = g, e.autoClearStencil = _;
|
|
20316
|
+
for (let e of p) e.visible = !0;
|
|
19965
20317
|
}
|
|
19966
20318
|
dispose() {
|
|
19967
20319
|
var e, t;
|
|
@@ -19974,7 +20326,8 @@ var JS = new e.Matrix4(), YS = class {
|
|
|
19974
20326
|
let t = e.backend, n = t.get(this.compositeRenderTarget.texture), r = t.get(this.compositeRenderTarget.depthTexture), i = n == null ? void 0 : n.texture, a = r == null ? void 0 : r.texture;
|
|
19975
20327
|
return !i || !a ? null : {
|
|
19976
20328
|
colorView: i.createView(),
|
|
19977
|
-
depthView: a.createView()
|
|
20329
|
+
depthView: a.createView(),
|
|
20330
|
+
colorFormat: i.format
|
|
19978
20331
|
};
|
|
19979
20332
|
} catch (e) {
|
|
19980
20333
|
return null;
|
|
@@ -19992,7 +20345,7 @@ var JS = new e.Matrix4(), YS = class {
|
|
|
19992
20345
|
return null;
|
|
19993
20346
|
}
|
|
19994
20347
|
}
|
|
19995
|
-
},
|
|
20348
|
+
}, wC, TC = typeof navigator < "u" ? ((wC = navigator == null ? void 0 : navigator.userAgent) == null ? "" : wC).toLowerCase() : "node";
|
|
19996
20349
|
(() => {
|
|
19997
20350
|
try {
|
|
19998
20351
|
let e = document.createElement("canvas");
|
|
@@ -20001,23 +20354,23 @@ var JS = new e.Matrix4(), YS = class {
|
|
|
20001
20354
|
return !1;
|
|
20002
20355
|
}
|
|
20003
20356
|
})();
|
|
20004
|
-
var
|
|
20005
|
-
typeof window < "u" &&
|
|
20006
|
-
var
|
|
20357
|
+
var EC = typeof navigator < "u" && navigator.gpu !== void 0;
|
|
20358
|
+
typeof window < "u" && EC ? navigator.gpu.requestAdapter().then((e) => (e || (EC = !1), EC)).catch(() => (EC = !1, EC)) : Promise.resolve(EC), typeof history < "u" && "pushState" in history && "replaceState" in history && "state" in history;
|
|
20359
|
+
var DC = /android/i.test(TC) || /webos/i.test(TC) || /ipad|iphone|ipod/i.test(TC) || /iemobile/i.test(TC) || /opera mini/i.test(TC) || /blackberry/i.test(TC) || /windows phone/i.test(TC), OC = [
|
|
20007
20360
|
"trigger",
|
|
20008
20361
|
"grip",
|
|
20009
20362
|
"primary",
|
|
20010
20363
|
"secondary",
|
|
20011
20364
|
"pinch"
|
|
20012
|
-
],
|
|
20013
|
-
function
|
|
20365
|
+
], kC = ["x", "y"];
|
|
20366
|
+
function AC(e) {
|
|
20014
20367
|
for (let t of Object.keys(e)) {
|
|
20015
20368
|
let n = e[t];
|
|
20016
|
-
typeof n == "object" && n && !Object.isFrozen(n) &&
|
|
20369
|
+
typeof n == "object" && n && !Object.isFrozen(n) && AC(n);
|
|
20017
20370
|
}
|
|
20018
20371
|
return Object.freeze(e);
|
|
20019
20372
|
}
|
|
20020
|
-
function
|
|
20373
|
+
function jC() {
|
|
20021
20374
|
return {
|
|
20022
20375
|
buttons: {
|
|
20023
20376
|
trigger: 0,
|
|
@@ -20033,7 +20386,7 @@ function rC() {
|
|
|
20033
20386
|
model: "auto"
|
|
20034
20387
|
};
|
|
20035
20388
|
}
|
|
20036
|
-
function
|
|
20389
|
+
function MC() {
|
|
20037
20390
|
return {
|
|
20038
20391
|
buttons: {
|
|
20039
20392
|
trigger: null,
|
|
@@ -20049,13 +20402,13 @@ function iC() {
|
|
|
20049
20402
|
model: "none"
|
|
20050
20403
|
};
|
|
20051
20404
|
}
|
|
20052
|
-
var
|
|
20053
|
-
Pico:
|
|
20054
|
-
Oculus:
|
|
20055
|
-
Default:
|
|
20056
|
-
VP:
|
|
20405
|
+
var NC = AC({
|
|
20406
|
+
Pico: jC(),
|
|
20407
|
+
Oculus: jC(),
|
|
20408
|
+
Default: jC(),
|
|
20409
|
+
VP: MC()
|
|
20057
20410
|
});
|
|
20058
|
-
function
|
|
20411
|
+
function PC(e, t) {
|
|
20059
20412
|
try {
|
|
20060
20413
|
let n = e === void 0 ? navigator.userAgent : e, r = t === void 0 ? navigator.maxTouchPoints : t;
|
|
20061
20414
|
return typeof n == "string" ? n.includes("PICO") || n.includes("Pico") ? "Pico" : n.includes("Macintosh") && r === 5 ? "VP" : n.includes("Oculus") ? "Oculus" : "Default" : "Default";
|
|
@@ -20063,46 +20416,46 @@ function oC(e, t) {
|
|
|
20063
20416
|
return "Default";
|
|
20064
20417
|
}
|
|
20065
20418
|
}
|
|
20066
|
-
function
|
|
20419
|
+
function FC(e) {
|
|
20067
20420
|
return e === null || typeof e == "number" && Number.isInteger(e) && e >= 0;
|
|
20068
20421
|
}
|
|
20069
|
-
function
|
|
20422
|
+
function IC(e) {
|
|
20070
20423
|
return typeof e == "object" && !!e;
|
|
20071
20424
|
}
|
|
20072
|
-
function
|
|
20425
|
+
function LC(e, t) {
|
|
20073
20426
|
if (e) try {
|
|
20074
20427
|
e(t);
|
|
20075
20428
|
} catch (e) {}
|
|
20076
20429
|
}
|
|
20077
|
-
function
|
|
20430
|
+
function RC(e, t, n) {
|
|
20078
20431
|
var r;
|
|
20079
|
-
let i = (r =
|
|
20432
|
+
let i = (r = NC[e]) == null ? NC.Default : r, a = {
|
|
20080
20433
|
buttons: Object.assign({}, i.buttons),
|
|
20081
20434
|
axes: Object.assign({}, i.axes),
|
|
20082
20435
|
model: i.model
|
|
20083
20436
|
};
|
|
20084
|
-
if (!
|
|
20437
|
+
if (!IC(t)) return a;
|
|
20085
20438
|
let o = t.buttons;
|
|
20086
|
-
if (o !== void 0) if (
|
|
20439
|
+
if (o !== void 0) if (IC(o)) for (let e of OC) {
|
|
20087
20440
|
let t = o[e];
|
|
20088
|
-
t !== void 0 && (
|
|
20441
|
+
t !== void 0 && (FC(t) ? a.buttons[e] = t : LC(n, `buttons.${e}`));
|
|
20089
20442
|
}
|
|
20090
|
-
else
|
|
20443
|
+
else LC(n, "buttons");
|
|
20091
20444
|
let s = t.axes;
|
|
20092
|
-
if (s !== void 0) if (
|
|
20445
|
+
if (s !== void 0) if (IC(s)) for (let e of kC) {
|
|
20093
20446
|
let t = s[e];
|
|
20094
|
-
t !== void 0 && (
|
|
20447
|
+
t !== void 0 && (FC(t) ? a.axes[e] = t : LC(n, `axes.${e}`));
|
|
20095
20448
|
}
|
|
20096
|
-
else
|
|
20449
|
+
else LC(n, "axes");
|
|
20097
20450
|
let c = t.model;
|
|
20098
|
-
return c !== void 0 && (c === "auto" || c === "none" ? a.model = c :
|
|
20451
|
+
return c !== void 0 && (c === "auto" || c === "none" ? a.model = c : LC(n, "model")), a;
|
|
20099
20452
|
}
|
|
20100
|
-
function
|
|
20453
|
+
function zC(e) {
|
|
20101
20454
|
return e === "Default" ? "Pico" : e;
|
|
20102
20455
|
}
|
|
20103
20456
|
//#endregion
|
|
20104
20457
|
//#region build/five/core/webglAsyncReadFix.js
|
|
20105
|
-
function
|
|
20458
|
+
function BC() {
|
|
20106
20459
|
let { gl: e } = this, t = e.fenceSync(e.SYNC_GPU_COMMANDS_COMPLETE, 0);
|
|
20107
20460
|
return e.flush(), new Promise((n, r) => {
|
|
20108
20461
|
function i() {
|
|
@@ -20124,16 +20477,16 @@ function fC() {
|
|
|
20124
20477
|
i();
|
|
20125
20478
|
});
|
|
20126
20479
|
}
|
|
20127
|
-
function
|
|
20128
|
-
if (
|
|
20480
|
+
function VC(e) {
|
|
20481
|
+
if (PC() === "Default") return !1;
|
|
20129
20482
|
let t = e;
|
|
20130
20483
|
if ((t == null ? void 0 : t.isWebGLBackend) !== !0) return !1;
|
|
20131
20484
|
let n = t.utils;
|
|
20132
|
-
return !n || typeof n._clientWaitAsync != "function" ? !1 : (n._clientWaitAsync =
|
|
20485
|
+
return !n || typeof n._clientWaitAsync != "function" ? !1 : (n._clientWaitAsync = BC, !0);
|
|
20133
20486
|
}
|
|
20134
20487
|
//#endregion
|
|
20135
20488
|
//#region build/five/core/internalWebGPURenderer.js
|
|
20136
|
-
var
|
|
20489
|
+
var HC = 1579548, UC = class extends e.WebGPURenderer {
|
|
20137
20490
|
constructor({ antialias: t = !1, logarithmicDepthBuffer: n, outputType: r = e.UnsignedByteType, forceWebGL: i = !1 }) {
|
|
20138
20491
|
var a;
|
|
20139
20492
|
super({
|
|
@@ -20143,7 +20496,7 @@ var mC = 1579548, hC = class extends e.WebGPURenderer {
|
|
|
20143
20496
|
logarithmicDepthBuffer: n,
|
|
20144
20497
|
outputType: r,
|
|
20145
20498
|
forceWebGL: i
|
|
20146
|
-
}), this._backendReady = !1, this.forceWebGL = i, i === !1 &&
|
|
20499
|
+
}), this._backendReady = !1, this.forceWebGL = i, i === !1 && EC === !1 && console.warn("设备不支持开启 WEBGPU"), this.outputColorSpace = e.SRGBColorSpace, this.setClearColor(HC, 1);
|
|
20147
20500
|
let o = (a = this.onDeviceLost) == null ? void 0 : a.bind(this);
|
|
20148
20501
|
this.onDeviceLost = (e) => {
|
|
20149
20502
|
var t;
|
|
@@ -20154,7 +20507,7 @@ var mC = 1579548, hC = class extends e.WebGPURenderer {
|
|
|
20154
20507
|
console.error("onDeviceLostCallback error", e);
|
|
20155
20508
|
}
|
|
20156
20509
|
}, this.ready = this.init().then(() => {
|
|
20157
|
-
|
|
20510
|
+
VC(this.backend), this._backendReady = !0;
|
|
20158
20511
|
});
|
|
20159
20512
|
}
|
|
20160
20513
|
get isInitialized() {
|
|
@@ -20173,12 +20526,12 @@ var mC = 1579548, hC = class extends e.WebGPURenderer {
|
|
|
20173
20526
|
console.error("reconfigureContext error", e);
|
|
20174
20527
|
}
|
|
20175
20528
|
}
|
|
20176
|
-
},
|
|
20177
|
-
function
|
|
20529
|
+
}, WC = new e.Matrix4(), GC = new e.Frustum(), KC = new e.Vector2(), qC = /* @__PURE__ */ new WeakMap();
|
|
20530
|
+
function JC(e) {
|
|
20178
20531
|
let t = !1;
|
|
20179
20532
|
return e.needsRender === !0 ? (e.needsRender = !1, t = !0) : e.mixer && e.mixer.stats.actions.inUse > 0 && (t = !0), t;
|
|
20180
20533
|
}
|
|
20181
|
-
var
|
|
20534
|
+
var YC = class extends e.Scene {
|
|
20182
20535
|
constructor() {
|
|
20183
20536
|
super(...arguments), this.needsRender = !1;
|
|
20184
20537
|
}
|
|
@@ -20190,17 +20543,17 @@ var xC = class extends e.Scene {
|
|
|
20190
20543
|
}
|
|
20191
20544
|
update(t, n) {
|
|
20192
20545
|
let r = !1, i;
|
|
20193
|
-
return n instanceof po ? (i = n.time,
|
|
20194
|
-
if (t.setResolution && t.setResolution(
|
|
20195
|
-
let e = t.mixer, n =
|
|
20196
|
-
n || (n = new Ux(),
|
|
20546
|
+
return n instanceof po ? (i = n.time, KC.copy(n.resolution)) : (i = J(), t.getSize(KC)), WC.multiplyMatrices(n.projectionMatrix, n.matrixWorldInverse), GC.setFromProjectionMatrix(WC), this.traverseVisible((t) => {
|
|
20547
|
+
if (t.setResolution && t.setResolution(KC.x, KC.y), t.setTime && t.setTime(i), t.mixer instanceof e.AnimationMixer) {
|
|
20548
|
+
let e = t.mixer, n = qC.get(e);
|
|
20549
|
+
n || (n = new Ux(), qC.set(e, n)), n.update(i), e.update(n.getDelta());
|
|
20197
20550
|
}
|
|
20198
|
-
(t instanceof e.Mesh || t instanceof e.Line || t instanceof e.Points) && (!t.frustumCulled ||
|
|
20199
|
-
|
|
20551
|
+
(t instanceof e.Mesh || t instanceof e.Line || t instanceof e.Points) && (!t.frustumCulled || GC.intersectsObject(t)) && (JC(t) && (r = !0), t.traverseAncestors((e) => {
|
|
20552
|
+
JC(e) && (r = !0);
|
|
20200
20553
|
}));
|
|
20201
20554
|
}), this.needsRender = r, r;
|
|
20202
20555
|
}
|
|
20203
|
-
},
|
|
20556
|
+
}, XC = (e) => e * (2 - e), ZC = (() => {
|
|
20204
20557
|
let t = new Float32Array([
|
|
20205
20558
|
-.18,
|
|
20206
20559
|
0,
|
|
@@ -20232,16 +20585,16 @@ var xC = class extends e.Scene {
|
|
|
20232
20585
|
1
|
|
20233
20586
|
]), i = new e.BufferGeometry();
|
|
20234
20587
|
return i.setAttribute("position", new e.BufferAttribute(t, 3)), i.setAttribute("uv", new e.BufferAttribute(n, 2)), i.setIndex(new e.BufferAttribute(r, 1)), i;
|
|
20235
|
-
})(),
|
|
20236
|
-
function
|
|
20237
|
-
let n = D(
|
|
20238
|
-
return F(t, t.add(
|
|
20588
|
+
})(), QC = oe(.5, .5), $C = T(.017);
|
|
20589
|
+
function ew(e, t) {
|
|
20590
|
+
let n = D(QC.sub(e));
|
|
20591
|
+
return F(t, t.add($C), n);
|
|
20239
20592
|
}
|
|
20240
|
-
function
|
|
20241
|
-
let n = D(
|
|
20242
|
-
return T(1).sub(F(t.sub(
|
|
20593
|
+
function tw(e, t) {
|
|
20594
|
+
let n = D(QC.sub(e));
|
|
20595
|
+
return T(1).sub(F(t.sub($C), t, n));
|
|
20243
20596
|
}
|
|
20244
|
-
function
|
|
20597
|
+
function nw(t) {
|
|
20245
20598
|
let n = {
|
|
20246
20599
|
baseColor: R(new e.Color(t)),
|
|
20247
20600
|
circleScale: R(1),
|
|
@@ -20258,7 +20611,7 @@ function OC(t) {
|
|
|
20258
20611
|
tapScale: R(1),
|
|
20259
20612
|
tapOpacity: R(1),
|
|
20260
20613
|
disable: R(0)
|
|
20261
|
-
}, r = z(), i = V(1, 1, 1, T(.8).add(m(ee(oe(1, -1)).dot(r.sub(
|
|
20614
|
+
}, r = z(), i = V(1, 1, 1, T(.8).add(m(ee(oe(1, -1)).dot(r.sub(QC))).mul(1.5)).clamp(0, 1).mul(n.tapOpacity).mul(ew(r, T(.15).mul(n.circleScale).mul(n.tapScale))).mul(tw(r, T(.234).mul(n.circleScale).mul(n.tapScale)))), a = V(1, 1, 1, T(.5).add(m(ee(oe(1, 1)).dot(r.sub(QC)))).clamp(0, 1).mul(n.tapOpacity).mul(n.ringOpacity).mul(ew(r, T(.27).mul(n.ringScale).mul(n.tapScale))).mul(tw(r, T(.32).mul(n.ringScale).mul(n.tapScale)))), o = M(f.sub(h(QC.x.sub(r.x), QC.y.sub(r.y))).add(n.loadingAngle), p), s = V(1, 1, 1, T(1).sub(F(T(0), p, o)).mul(.4).add(.1).mul(n.tapOpacity).mul(n.loadingOpacity).mul(ew(r, T(.208).mul(n.circleScale).mul(n.tapScale))).mul(tw(r, T(.3).mul(n.circleScale).mul(n.tapScale)))), c = f.add(h(QC.x.sub(r.x), QC.y.sub(r.y))), l = V(1, 1, 1, T(1).sub(I(n.progress.mul(p), c)).mul(.5).mul(n.tapOpacity).mul(n.progressOpacity).mul(ew(r, T(.208).mul(n.circleScale).mul(n.tapScale))).mul(tw(r, T(.3).mul(n.circleScale).mul(n.tapScale)))), u = T(.2).add(T(.23).mul(n.expand0)), d = D(QC.sub(r)), g = V(1, 1, 1, T(1).sub(u.sub(d).div(.2).clamp(0, 1)).mul(.8).mul(T(1).sub(m(n.expand0.sub(.5)).mul(2)).mul(1.2).clamp(0, 1)).mul(n.expandOpacity).mul(tw(r, u))), _ = T(.2).add(T(.23).mul(n.expand1)), v = D(QC.sub(r)), y = V(1, 1, 1, T(1).sub(_.sub(v).div(.2).clamp(0, 1)).mul(.8).mul(T(1).sub(m(n.expand1.sub(.5)).mul(2)).mul(1.2).clamp(0, 1)).mul(n.expandOpacity).mul(tw(r, _))), b = V(1, 1, 1, T(.5).mul(tw(r, T(.32).mul(n.circleScale).mul(n.tapScale)))), x = V(1, 1, 1, 0);
|
|
20262
20615
|
x = j(x, y, y.w), x = j(x, g, g.w), x = j(x, l, l.w), x = j(x, s, s.w), x = j(x, i, i.w), x = j(x, a, a.w), x = j(x, b, n.disable);
|
|
20263
20616
|
let S = V(x.xyz.mul(n.baseColor), x.w.mul(n.opacity).mul(n.opacity)), C = new e.NodeMaterial();
|
|
20264
20617
|
return C.fragmentNode = S, C.blending = e.CustomBlending, C.blendSrc = e.SrcAlphaFactor, C.blendDst = e.OneMinusSrcAlphaFactor, C.blendSrcAlpha = e.OneFactor, C.blendDstAlpha = e.OneMinusSrcAlphaFactor, C.depthWrite = !1, C.transparent = !0, {
|
|
@@ -20266,7 +20619,7 @@ function OC(t) {
|
|
|
20266
20619
|
u: n
|
|
20267
20620
|
};
|
|
20268
20621
|
}
|
|
20269
|
-
var
|
|
20622
|
+
var rw = class extends e.Object3D {
|
|
20270
20623
|
constructor(t = {}) {
|
|
20271
20624
|
var n, r;
|
|
20272
20625
|
super();
|
|
@@ -20278,8 +20631,8 @@ var kC = class extends e.Object3D {
|
|
|
20278
20631
|
scale: 1,
|
|
20279
20632
|
opacity: 1
|
|
20280
20633
|
}), this.loadingOpacityMotion = new X({ opacity: 0 }), this.progressMotion = new X({ progress: 0 }), this.progressOpacityMotion = new X({ opacity: 0 }), this.opacityMotion = new X({ opacity: 0 }), this.disableMotion = new X({ progress: 0 });
|
|
20281
|
-
let { material: o, u: s } =
|
|
20282
|
-
this.panoU = s, this.panoMesh = new e.Mesh(
|
|
20634
|
+
let { material: o, u: s } = nw(i);
|
|
20635
|
+
this.panoU = s, this.panoMesh = new e.Mesh(ZC, o), this.renderOrder = -2, this.panoMesh.renderOrder = -2, this.panoMesh.position.y = .004, this.panoMesh.scale.set(a, 1, a), this.add(this.panoMesh), this.currentStartTime = J(), this.needsRender = !0;
|
|
20283
20636
|
}
|
|
20284
20637
|
setProgress(e) {
|
|
20285
20638
|
this.setDisabled(!1), this.setLoading(!1), this.progress !== e && (e = q(e, 0, 1), this.tapMotion.ended && (this.progress === 0 && this.progressOpacityMotion.set({ opacity: 1 }, 500).catch(Y), e === 0 ? this.progressOpacityMotion.set({ opacity: 0 }, 500).catch(Y).then(() => {
|
|
@@ -20346,14 +20699,14 @@ var kC = class extends e.Object3D {
|
|
|
20346
20699
|
let t = (e - this.currentStartTime - 1500) / 2e3;
|
|
20347
20700
|
if (t % 5 < 2) {
|
|
20348
20701
|
let e = t % 1;
|
|
20349
|
-
this.panoU.expand0.value =
|
|
20702
|
+
this.panoU.expand0.value = XC(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20350
20703
|
}
|
|
20351
20704
|
}
|
|
20352
20705
|
{
|
|
20353
20706
|
let t = (e - this.currentStartTime - 1e3) / 2e3;
|
|
20354
20707
|
if (t % 5 < 2) {
|
|
20355
20708
|
let e = t % 1;
|
|
20356
|
-
this.panoU.expand1.value =
|
|
20709
|
+
this.panoU.expand1.value = XC(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20357
20710
|
}
|
|
20358
20711
|
}
|
|
20359
20712
|
}
|
|
@@ -20375,7 +20728,7 @@ var kC = class extends e.Object3D {
|
|
|
20375
20728
|
dispose() {
|
|
20376
20729
|
this.ringMotion.dispose(), this.tapMotion.dispose(), this.progressMotion.dispose(), this.progressOpacityMotion.dispose(), this.opacityMotion.dispose(), this.currentMotion.dispose(), this.panoMesh.material.dispose();
|
|
20377
20730
|
}
|
|
20378
|
-
},
|
|
20731
|
+
}, iw = (e) => e * (2 - e), aw = (() => {
|
|
20379
20732
|
let t = new Float32Array([
|
|
20380
20733
|
-.18,
|
|
20381
20734
|
0,
|
|
@@ -20407,16 +20760,16 @@ var kC = class extends e.Object3D {
|
|
|
20407
20760
|
1
|
|
20408
20761
|
]), i = new e.BufferGeometry();
|
|
20409
20762
|
return i.setAttribute("position", new e.BufferAttribute(t, 3)), i.setAttribute("uv", new e.BufferAttribute(n, 2)), i.setIndex(new e.BufferAttribute(r, 1)), i;
|
|
20410
|
-
})(),
|
|
20411
|
-
function
|
|
20412
|
-
let n = D(
|
|
20413
|
-
return F(t, t.add(
|
|
20763
|
+
})(), ow = oe(.5, .5), sw = T(.017);
|
|
20764
|
+
function cw(e, t) {
|
|
20765
|
+
let n = D(ow.sub(e));
|
|
20766
|
+
return F(t, t.add(sw), n);
|
|
20414
20767
|
}
|
|
20415
|
-
function
|
|
20416
|
-
let n = D(
|
|
20417
|
-
return T(1).sub(F(t.sub(
|
|
20768
|
+
function lw(e, t) {
|
|
20769
|
+
let n = D(ow.sub(e));
|
|
20770
|
+
return T(1).sub(F(t.sub(sw), t, n));
|
|
20418
20771
|
}
|
|
20419
|
-
function
|
|
20772
|
+
function uw(t) {
|
|
20420
20773
|
let n = {
|
|
20421
20774
|
baseColor: R(new e.Color(t)),
|
|
20422
20775
|
circleScale: R(1),
|
|
@@ -20432,7 +20785,7 @@ function IC(t) {
|
|
|
20432
20785
|
tapScale: R(1),
|
|
20433
20786
|
tapOpacity: R(1),
|
|
20434
20787
|
disable: R(0)
|
|
20435
|
-
}, r = z(), i = V(1, 1, 1, T(.8).add(m(ee(oe(1, -1)).dot(r.sub(
|
|
20788
|
+
}, r = z(), i = V(1, 1, 1, T(.8).add(m(ee(oe(1, -1)).dot(r.sub(ow))).mul(1.5)).clamp(0, 1).mul(I(n.progress, T(0))).mul(n.tapOpacity).mul(cw(r, T(.2).mul(n.circleScale).mul(n.tapScale))).mul(lw(r, T(.3).mul(n.circleScale).mul(n.tapScale)))), a = M(f.sub(h(ow.x.sub(r.x), ow.y.sub(r.y))).add(n.loadingAngle), p), o = V(1, 1, 1, T(1).sub(F(T(0), p, a)).mul(.9).add(.1).mul(n.tapOpacity).mul(n.loadingOpacity).mul(cw(r, T(.2).mul(n.circleScale).mul(n.tapScale))).mul(lw(r, T(.3).mul(n.circleScale).mul(n.tapScale)))), s = f.add(h(ow.x.sub(r.x), ow.y.sub(r.y))), c = T(1).sub(I(n.progress.mul(p), s)), l = T(.04), u = n.progress.mul(p), d = I(D(oe(ow.x.add(T(0).sin().mul(.25)), ow.y.add(T(0).cos().mul(.25))).sub(r)), l), g = I(D(oe(ow.x.add(u.sin().mul(.25)), ow.y.add(u.cos().mul(.25))).sub(r)), l), _ = V(1, 1, 1, c.add(d).add(g).clamp(0, 1).mul(.9).mul(n.tapOpacity).mul(n.progressOpacity).mul(cw(r, T(.2).mul(n.circleScale).mul(n.tapScale))).mul(lw(r, T(.3).mul(n.circleScale).mul(n.tapScale)))), v = T(.25).add(T(.25).mul(n.expand0)), y = D(ow.sub(r)), b = V(1, 1, 1, T(1).sub(v.sub(y).div(.2).clamp(0, 1)).mul(.8).mul(T(1).sub(m(n.expand0.sub(.5)).mul(2)).mul(1.2).clamp(0, 1)).mul(n.expandOpacity).mul(lw(r, v))), x = T(.25).add(T(.23).mul(n.expand1)), S = D(ow.sub(r)), C = V(1, 1, 1, T(1).sub(x.sub(S).div(.2).clamp(0, 1)).mul(.8).mul(T(1).sub(m(n.expand1.sub(.5)).mul(2)).mul(1.2).clamp(0, 1)).mul(n.expandOpacity).mul(lw(r, x))), w = V(1, 1, 1, T(.5).mul(n.tapOpacity).mul(lw(r, T(.32).mul(n.circleScale).mul(n.tapScale)))), E = V(1, 1, 1, 0);
|
|
20436
20789
|
E = j(E, C, C.w), E = j(E, b, b.w), E = j(E, i, i.w), E = j(E, _, _.w), E = j(E, o, o.w), E = j(E, w, n.disable);
|
|
20437
20790
|
let O = V(E.xyz.mul(n.baseColor), E.w.mul(n.opacity).mul(n.opacity)), k = new e.NodeMaterial();
|
|
20438
20791
|
return k.fragmentNode = O, k.blending = e.CustomBlending, k.blendSrc = e.SrcAlphaFactor, k.blendDst = e.OneMinusSrcAlphaFactor, k.blendSrcAlpha = e.OneFactor, k.blendDstAlpha = e.OneMinusSrcAlphaFactor, k.depthWrite = !1, k.transparent = !0, {
|
|
@@ -20440,7 +20793,7 @@ function IC(t) {
|
|
|
20440
20793
|
u: n
|
|
20441
20794
|
};
|
|
20442
20795
|
}
|
|
20443
|
-
var
|
|
20796
|
+
var dw = class extends e.Object3D {
|
|
20444
20797
|
constructor(t = {}) {
|
|
20445
20798
|
var n, r;
|
|
20446
20799
|
super();
|
|
@@ -20449,8 +20802,8 @@ var LC = class extends e.Object3D {
|
|
|
20449
20802
|
scale: 1,
|
|
20450
20803
|
opacity: 1
|
|
20451
20804
|
}), this.loadingOpacityMotion = new X({ opacity: 0 }), this.progressMotion = new X({ progress: 0 }), this.progressOpacityMotion = new X({ opacity: 0 }), this.opacityMotion = new X({ opacity: 0 }), this.disableMotion = new X({ progress: 0 });
|
|
20452
|
-
let { material: o, u: s } =
|
|
20453
|
-
this.panoU = s, this.panoMesh = new e.Mesh(
|
|
20805
|
+
let { material: o, u: s } = uw(i);
|
|
20806
|
+
this.panoU = s, this.panoMesh = new e.Mesh(aw, o), this.renderOrder = -2, this.panoMesh.renderOrder = -2, this.panoMesh.position.y = .004, this.panoMesh.scale.set(a, 1, a), this.add(this.panoMesh), this.currentStartTime = J(), this.needsRender = !0;
|
|
20454
20807
|
}
|
|
20455
20808
|
setProgress(e) {
|
|
20456
20809
|
this.setDisabled(!1), this.setLoading(!1), this.progress !== e && (e = q(e, 0, 1), this.tapMotion.ended && (this.progress === 0 && this.progressOpacityMotion.set({ opacity: 1 }, 500).catch(Y), e === 0 ? this.progressOpacityMotion.set({ opacity: 0 }, 500).catch(Y).then(() => {
|
|
@@ -20517,14 +20870,14 @@ var LC = class extends e.Object3D {
|
|
|
20517
20870
|
let t = (e - this.currentStartTime - 1500) / 2e3;
|
|
20518
20871
|
if (t % 5 < 2) {
|
|
20519
20872
|
let e = t % 1;
|
|
20520
|
-
this.panoU.expand0.value =
|
|
20873
|
+
this.panoU.expand0.value = iw(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20521
20874
|
}
|
|
20522
20875
|
}
|
|
20523
20876
|
{
|
|
20524
20877
|
let t = (e - this.currentStartTime - 1e3) / 2e3;
|
|
20525
20878
|
if (t % 5 < 2) {
|
|
20526
20879
|
let e = t % 1;
|
|
20527
|
-
this.panoU.expand1.value =
|
|
20880
|
+
this.panoU.expand1.value = iw(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20528
20881
|
}
|
|
20529
20882
|
}
|
|
20530
20883
|
}
|
|
@@ -20536,7 +20889,7 @@ var LC = class extends e.Object3D {
|
|
|
20536
20889
|
dispose() {
|
|
20537
20890
|
this.tapMotion.dispose(), this.progressMotion.dispose(), this.progressOpacityMotion.dispose(), this.opacityMotion.dispose(), this.currentMotion.dispose(), this.panoMesh.material.dispose();
|
|
20538
20891
|
}
|
|
20539
|
-
},
|
|
20892
|
+
}, fw = (e) => e * (2 - e), pw = (() => {
|
|
20540
20893
|
let t = new Float32Array([
|
|
20541
20894
|
-.18,
|
|
20542
20895
|
0,
|
|
@@ -20568,16 +20921,16 @@ var LC = class extends e.Object3D {
|
|
|
20568
20921
|
1
|
|
20569
20922
|
]), i = new e.BufferGeometry();
|
|
20570
20923
|
return i.setAttribute("position", new e.BufferAttribute(t, 3)), i.setAttribute("uv", new e.BufferAttribute(n, 2)), i.setIndex(new e.BufferAttribute(r, 1)), i;
|
|
20571
|
-
})(),
|
|
20572
|
-
function
|
|
20573
|
-
let n = D(
|
|
20574
|
-
return F(t, t.add(
|
|
20924
|
+
})(), mw = oe(.5, .5), hw = T(.017);
|
|
20925
|
+
function gw(e, t) {
|
|
20926
|
+
let n = D(mw.sub(e));
|
|
20927
|
+
return F(t, t.add(hw), n);
|
|
20575
20928
|
}
|
|
20576
|
-
function
|
|
20577
|
-
let n = D(
|
|
20578
|
-
return T(1).sub(F(t.sub(
|
|
20929
|
+
function _w(e, t) {
|
|
20930
|
+
let n = D(mw.sub(e));
|
|
20931
|
+
return T(1).sub(F(t.sub(hw), t, n));
|
|
20579
20932
|
}
|
|
20580
|
-
function
|
|
20933
|
+
function vw(t) {
|
|
20581
20934
|
let n = t.map, r = t.borderWidth > 0, i = {
|
|
20582
20935
|
baseColor: R(new e.Color(t.color)),
|
|
20583
20936
|
circleScale: R(1),
|
|
@@ -20593,18 +20946,18 @@ function WC(t) {
|
|
|
20593
20946
|
tapScale: R(1),
|
|
20594
20947
|
tapOpacity: R(1),
|
|
20595
20948
|
disable: R(0)
|
|
20596
|
-
}, a = R(t.mapAlpha), o = R(t.borderWidth), s = R(new e.Color(t.borderColor)), c = z(), l = T(.3).mul(i.circleScale).mul(i.tapScale), u = r ?
|
|
20949
|
+
}, a = R(t.mapAlpha), o = R(t.borderWidth), s = R(new e.Color(t.borderColor)), c = z(), l = T(.3).mul(i.circleScale).mul(i.tapScale), u = r ? gw(c, l.sub(o.clamp(0, 1).mul(l))) : gw(c, l.sub(T(.2).mul(l))), d;
|
|
20597
20950
|
if (n) {
|
|
20598
20951
|
let e = l.div(.5);
|
|
20599
|
-
d = L(n, c.sub(
|
|
20952
|
+
d = L(n, c.sub(mw).div(e).add(mw)), d = V(d.rgb, d.a.mul(a)), t.mapUseColor && (d = V(i.baseColor, T(1)).mul(d));
|
|
20600
20953
|
} else d = V(i.baseColor, T(1));
|
|
20601
20954
|
let g;
|
|
20602
20955
|
if (t.mapUseReverse) g = V(i.baseColor, T(1).sub(d.a));
|
|
20603
20956
|
else if (r) {
|
|
20604
|
-
let e =
|
|
20957
|
+
let e = gw(c, l.sub(o.clamp(0, 1).mul(l))), t = o.mul(2).add(m(ee(oe(1, -1)).dot(c.sub(mw)))).clamp(0, 1);
|
|
20605
20958
|
g = j(V(s, e.mul(t)), d, d.a);
|
|
20606
20959
|
} else g = d;
|
|
20607
|
-
let _ = V(g.rgb, g.a.mul(i.circleOpacity).mul(i.tapOpacity).mul(
|
|
20960
|
+
let _ = V(g.rgb, g.a.mul(i.circleOpacity).mul(i.tapOpacity).mul(_w(c, l))), v = V(i.baseColor, T(.5).mul(i.tapOpacity).mul(_w(c, T(.32).mul(i.circleScale).mul(i.tapScale)))), y = M(f.sub(h(mw.x.sub(c.x), mw.y.sub(c.y))).add(i.loadingAngle), p), b = T(1).sub(F(T(0), p, y)).mul(.9).add(.1), x = V(i.baseColor, b.mul(i.tapOpacity).mul(i.loadingOpacity).mul(u).mul(_w(c, l))), S = f.add(h(mw.x.sub(c.x), mw.y.sub(c.y))), C = T(1).sub(I(i.progress.mul(p), S)).mul(.7), w = V(i.baseColor, C.mul(i.tapOpacity).mul(i.progressOpacity).mul(u).mul(_w(c, l))), E = T(.25).add(T(.25).mul(i.expand0)), O = D(mw.sub(c)), k = T(1).sub(E.sub(O).div(.2).clamp(0, 1)).mul(.8).mul(T(1).sub(m(i.expand0.sub(.5)).mul(2)).mul(1.2).clamp(0, 1)), A = V(i.baseColor, k.mul(i.expandOpacity).mul(_w(c, E))), N = T(.25).add(T(.23).mul(i.expand1)), te = D(mw.sub(c)), ne = T(1).sub(N.sub(te).div(.2).clamp(0, 1)).mul(.8).mul(T(1).sub(m(i.expand1.sub(.5)).mul(2)).mul(1.2).clamp(0, 1)), re = V(i.baseColor, ne.mul(i.expandOpacity).mul(_w(c, N))), P = V(i.baseColor, T(0));
|
|
20608
20961
|
P = j(P, re, re.w), P = j(P, A, A.w), P = j(P, _, _.w), P = j(P, w, w.w), P = j(P, x, x.w), P = j(P, v, i.disable);
|
|
20609
20962
|
let ie = V(P.rgb, P.a.mul(i.opacity)), ae = new e.NodeMaterial();
|
|
20610
20963
|
return ae.fragmentNode = ie, ae.blending = e.CustomBlending, ae.blendSrc = e.SrcAlphaFactor, ae.blendDst = e.OneMinusSrcAlphaFactor, ae.blendSrcAlpha = e.OneFactor, ae.blendDstAlpha = e.OneMinusSrcAlphaFactor, ae.depthWrite = !1, ae.transparent = !0, {
|
|
@@ -20612,7 +20965,7 @@ function WC(t) {
|
|
|
20612
20965
|
u: i
|
|
20613
20966
|
};
|
|
20614
20967
|
}
|
|
20615
|
-
var
|
|
20968
|
+
var yw = class extends e.Object3D {
|
|
20616
20969
|
constructor(t = {}) {
|
|
20617
20970
|
var n, r, i, a, o, s, c;
|
|
20618
20971
|
super();
|
|
@@ -20621,7 +20974,7 @@ var GC = class extends e.Object3D {
|
|
|
20621
20974
|
scale: 1,
|
|
20622
20975
|
opacity: 1
|
|
20623
20976
|
}), this.loadingOpacityMotion = new X({ opacity: 0 }), this.progressMotion = new X({ progress: 0 }), this.progressOpacityMotion = new X({ opacity: 0 }), this.opacityMotion = new X({ opacity: 0 }), this.disableMotion = new X({ progress: 0 });
|
|
20624
|
-
let { material: d, u: f } =
|
|
20977
|
+
let { material: d, u: f } = vw({
|
|
20625
20978
|
color: l,
|
|
20626
20979
|
map: t.map,
|
|
20627
20980
|
mapAlpha: (i = t.mapAlpha) == null ? 1 : i,
|
|
@@ -20630,7 +20983,7 @@ var GC = class extends e.Object3D {
|
|
|
20630
20983
|
mapUseColor: (s = t.mapUseColor) == null ? !1 : s,
|
|
20631
20984
|
mapUseReverse: (c = t.mapUseReverse) == null ? !1 : c
|
|
20632
20985
|
});
|
|
20633
|
-
this.panoU = f, this.panoMesh = new e.Mesh(
|
|
20986
|
+
this.panoU = f, this.panoMesh = new e.Mesh(pw, d), this.renderOrder = -2, this.panoMesh.renderOrder = -2, this.panoMesh.position.y = .004, this.panoMesh.scale.set(u, 1, u), this.add(this.panoMesh), this.currentStartTime = J(), this.needsRender = !0;
|
|
20634
20987
|
}
|
|
20635
20988
|
setProgress(e) {
|
|
20636
20989
|
this.setDisabled(!1), this.setLoading(!1), this.progress !== e && (e = q(e, 0, 1), this.tapMotion.ended && (this.progress === 0 && this.progressOpacityMotion.set({ opacity: 1 }, 500).catch(Y), e === 0 ? this.progressOpacityMotion.set({ opacity: 0 }, 500).catch(Y).then(() => {
|
|
@@ -20690,14 +21043,14 @@ var GC = class extends e.Object3D {
|
|
|
20690
21043
|
let t = (e - this.currentStartTime - 1500) / 2e3;
|
|
20691
21044
|
if (t % 5 < 2) {
|
|
20692
21045
|
let e = t % 1;
|
|
20693
|
-
this.panoU.expand0.value =
|
|
21046
|
+
this.panoU.expand0.value = fw(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20694
21047
|
}
|
|
20695
21048
|
}
|
|
20696
21049
|
{
|
|
20697
21050
|
let t = (e - this.currentStartTime - 1e3) / 2e3;
|
|
20698
21051
|
if (t % 5 < 2) {
|
|
20699
21052
|
let e = t % 1;
|
|
20700
|
-
this.panoU.expand1.value =
|
|
21053
|
+
this.panoU.expand1.value = fw(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20701
21054
|
}
|
|
20702
21055
|
}
|
|
20703
21056
|
}
|
|
@@ -20712,22 +21065,22 @@ var GC = class extends e.Object3D {
|
|
|
20712
21065
|
};
|
|
20713
21066
|
//#endregion
|
|
20714
21067
|
//#region build/five/utils/isSimilar.js
|
|
20715
|
-
function
|
|
21068
|
+
function bw(e, t, n) {
|
|
20716
21069
|
let r = Math.abs(e - t);
|
|
20717
21070
|
return r < .001 || n !== void 0 && Math.abs(n - r) < .001;
|
|
20718
21071
|
}
|
|
20719
|
-
function
|
|
20720
|
-
return !
|
|
21072
|
+
function xw(e, t, n) {
|
|
21073
|
+
return !bw(e, t, n);
|
|
20721
21074
|
}
|
|
20722
|
-
function
|
|
21075
|
+
function Sw(e, t) {
|
|
20723
21076
|
return e.distanceTo(t) < .001;
|
|
20724
21077
|
}
|
|
20725
|
-
function
|
|
20726
|
-
return !
|
|
21078
|
+
function Cw(e, t) {
|
|
21079
|
+
return !Sw(e, t);
|
|
20727
21080
|
}
|
|
20728
21081
|
//#endregion
|
|
20729
21082
|
//#region build/five/utils/isPromise.js
|
|
20730
|
-
function
|
|
21083
|
+
function ww(e) {
|
|
20731
21084
|
return !!e && (typeof e == "object" || typeof e == "function") && typeof e.then == "function";
|
|
20732
21085
|
}
|
|
20733
21086
|
//#endregion
|
|
@@ -20746,32 +21099,32 @@ function $(e, t) {
|
|
|
20746
21099
|
for (let e of Object.keys(t)) e in r || (r[e] = t[e]);
|
|
20747
21100
|
return r;
|
|
20748
21101
|
}
|
|
20749
|
-
var
|
|
20750
|
-
function
|
|
21102
|
+
var Tw = /* @__PURE__ */ new WeakMap();
|
|
21103
|
+
function Ew(e, t) {
|
|
20751
21104
|
let n = $(e, Object.assign(Object.assign({}, t), { waitUntil(e) {
|
|
20752
|
-
let t =
|
|
21105
|
+
let t = Tw.get(n);
|
|
20753
21106
|
t && t.push(e);
|
|
20754
21107
|
} }));
|
|
20755
|
-
return
|
|
21108
|
+
return Tw.set(n, []), n;
|
|
20756
21109
|
}
|
|
20757
|
-
function
|
|
21110
|
+
function Dw(e) {
|
|
20758
21111
|
var t;
|
|
20759
|
-
return Promise.all((t =
|
|
21112
|
+
return Promise.all((t = Tw.get(e)) == null ? [] : t).then(Y);
|
|
20760
21113
|
}
|
|
20761
21114
|
//#endregion
|
|
20762
21115
|
//#region build/five/utils/stateUtils.js
|
|
20763
|
-
function
|
|
21116
|
+
function Ow(e, t) {
|
|
20764
21117
|
e.mode = t.mode, e.workCode = t.workCode, e.panoIndex = t.panoIndex, e.longitude = t.longitude, e.latitude = t.latitude, e.fov = t.fov, e.offset.copy(t.offset), e.distance = t.distance;
|
|
20765
21118
|
}
|
|
20766
|
-
function
|
|
20767
|
-
return e.workCode === t.workCode && e.mode === t.mode && e.panoIndex === t.panoIndex &&
|
|
21119
|
+
function kw(e, t) {
|
|
21120
|
+
return e.workCode === t.workCode && e.mode === t.mode && e.panoIndex === t.panoIndex && bw(e.longitude, t.longitude, Math.PI * 2) && bw(e.latitude, t.latitude) && bw(e.fov, t.fov) && Sw(e.offset, t.offset) && bw(e.distance, t.distance);
|
|
20768
21121
|
}
|
|
20769
21122
|
//#endregion
|
|
20770
21123
|
//#region build/five/utils/poseUtils.js
|
|
20771
|
-
function
|
|
21124
|
+
function Aw(e, t) {
|
|
20772
21125
|
e.longitude = t.longitude, e.latitude = t.latitude, e.fov = t.fov, e.distance = t.distance, e.offset.copy(t.offset);
|
|
20773
21126
|
}
|
|
20774
|
-
function
|
|
21127
|
+
function jw(e) {
|
|
20775
21128
|
return {
|
|
20776
21129
|
longitude: e.longitude,
|
|
20777
21130
|
latitude: e.latitude,
|
|
@@ -20782,14 +21135,14 @@ function rw(e) {
|
|
|
20782
21135
|
}
|
|
20783
21136
|
//#endregion
|
|
20784
21137
|
//#region build/five/application/mode.js
|
|
20785
|
-
function
|
|
21138
|
+
function Mw(e) {
|
|
20786
21139
|
switch (e) {
|
|
20787
21140
|
case "Floorplan": return !0;
|
|
20788
21141
|
case "Mapview": return !0;
|
|
20789
21142
|
default: return !1;
|
|
20790
21143
|
}
|
|
20791
21144
|
}
|
|
20792
|
-
function
|
|
21145
|
+
function Nw(e) {
|
|
20793
21146
|
switch (e) {
|
|
20794
21147
|
case "Panorama": return !0;
|
|
20795
21148
|
case "VRPanorama": return !0;
|
|
@@ -20800,22 +21153,22 @@ function aw(e) {
|
|
|
20800
21153
|
}
|
|
20801
21154
|
//#endregion
|
|
20802
21155
|
//#region build/five/utils/isEmptyObject.js
|
|
20803
|
-
function
|
|
21156
|
+
function Pw(e) {
|
|
20804
21157
|
for (let t in e) return !1;
|
|
20805
21158
|
return !0;
|
|
20806
21159
|
}
|
|
20807
21160
|
//#endregion
|
|
20808
21161
|
//#region build/five/renderer/tools/render-cube-to-equirectangular.js
|
|
20809
|
-
var
|
|
20810
|
-
|
|
20811
|
-
var
|
|
20812
|
-
function
|
|
20813
|
-
|
|
21162
|
+
var Fw = R(1), Iw = z(), Lw = T(6.2831852), Rw = T(3.1415926), zw = Lw.mul(Iw.x), Bw = Rw.mul(Iw.y.sub(.5)), Vw = Bw.cos().abs(), Hw = ee(se(zw.sin().negate().mul(Vw), Bw.sin().mul(Fw), zw.cos().negate().mul(Vw))), Uw = b(new e.CubeTexture(), Hw), Ww = new e.NodeMaterial();
|
|
21163
|
+
Ww.fragmentNode = Uw, Ww.transparent = !0, Ww.depthTest = !1, Ww.depthWrite = !1;
|
|
21164
|
+
var Gw = new Gx(Ww);
|
|
21165
|
+
function Kw(e, t, n) {
|
|
21166
|
+
Uw.value = t, Fw.value = n ? -1 : 1, Gw.render(e), Uw.value = null;
|
|
20814
21167
|
}
|
|
20815
21168
|
//#endregion
|
|
20816
21169
|
//#region build/five/texture/textureData.js
|
|
20817
|
-
var
|
|
20818
|
-
function
|
|
21170
|
+
var qw = new e.Color(), Jw = 0, Yw = 1;
|
|
21171
|
+
function Xw(t, n, r, i) {
|
|
20819
21172
|
return Ti(this, void 0, void 0, function* () {
|
|
20820
21173
|
let a = new e.RenderTarget(i.width, i.height, {
|
|
20821
21174
|
depthBuffer: !1,
|
|
@@ -20824,16 +21177,16 @@ function Sw(t, n, r, i) {
|
|
|
20824
21177
|
magFilter: e.LinearFilter,
|
|
20825
21178
|
minFilter: e.LinearFilter
|
|
20826
21179
|
}), o = t.getRenderTarget();
|
|
20827
|
-
t.getClearColor(
|
|
21180
|
+
t.getClearColor(qw);
|
|
20828
21181
|
let s = t.getClearAlpha(), c = t.autoClear, l = t.autoClearColor, u = t.autoClearDepth, d = t.autoClearStencil;
|
|
20829
|
-
t.autoClear = !0, t.autoClearColor = !0, t.autoClearDepth = !0, t.autoClearStencil = !0, t.setRenderTarget(a), t.setClearColor(
|
|
21182
|
+
t.autoClear = !0, t.autoClearColor = !0, t.autoClearDepth = !0, t.autoClearStencil = !0, t.setRenderTarget(a), t.setClearColor(Jw, Yw), Kw(t, n, r), t.setRenderTarget(o), t.setClearColor(qw, s), t.autoClear = c, t.autoClearColor = l, t.autoClearDepth = u, t.autoClearStencil = d;
|
|
20830
21183
|
let f = yield t.readRenderTargetPixelsAsync(a, 0, 0, i.width, i.height);
|
|
20831
21184
|
return i.data.set(f), a.dispose(), i;
|
|
20832
21185
|
});
|
|
20833
21186
|
}
|
|
20834
21187
|
//#endregion
|
|
20835
21188
|
//#region build/five/thirdparty/hammer.js
|
|
20836
|
-
var
|
|
21189
|
+
var Zw = (function(e, t, n, r) {
|
|
20837
21190
|
var i = [
|
|
20838
21191
|
"",
|
|
20839
21192
|
"webkit",
|
|
@@ -21662,7 +22015,7 @@ var Cw = (function(e, t, n, r) {
|
|
|
21662
22015
|
})(typeof window < "u" ? window : {}, typeof document < "u" ? document : {}, "Hammer");
|
|
21663
22016
|
//#endregion
|
|
21664
22017
|
//#region build/five/controllers/base.js
|
|
21665
|
-
function
|
|
22018
|
+
function Qw(e, t, n) {
|
|
21666
22019
|
if (n.isPerspectiveCamera) {
|
|
21667
22020
|
e.setFromCamera(t, n);
|
|
21668
22021
|
return;
|
|
@@ -21674,7 +22027,7 @@ function ww(e, t, n) {
|
|
|
21674
22027
|
}
|
|
21675
22028
|
e.setFromCamera(t, n);
|
|
21676
22029
|
}
|
|
21677
|
-
var
|
|
22030
|
+
var $w = class t extends xn {
|
|
21678
22031
|
static parseArgs(e) {
|
|
21679
22032
|
return e instanceof t ? e : Object.assign({}, e);
|
|
21680
22033
|
}
|
|
@@ -21751,7 +22104,7 @@ var Tw = class t extends xn {
|
|
|
21751
22104
|
updateTime(e, t, ...n) {
|
|
21752
22105
|
if (this.destroyed) return;
|
|
21753
22106
|
let r = {};
|
|
21754
|
-
this.cameraMotion.ended && (this.cameraMotion.update(e), r.longitude = this.cameraMotion.value.longitude, r.latitude = this.cameraMotion.value.latitude, r.fov = this.cameraMotion.value.fov),
|
|
22107
|
+
this.cameraMotion.ended && (this.cameraMotion.update(e), r.longitude = this.cameraMotion.value.longitude, r.latitude = this.cameraMotion.value.latitude, r.fov = this.cameraMotion.value.fov), Pw(r) && this.setCamera(r);
|
|
21755
22108
|
}
|
|
21756
22109
|
render() {
|
|
21757
22110
|
return !1;
|
|
@@ -21802,7 +22155,7 @@ var Tw = class t extends xn {
|
|
|
21802
22155
|
}
|
|
21803
22156
|
setCamera(e = {}) {
|
|
21804
22157
|
var t, n, r, i, a;
|
|
21805
|
-
let o = (t = e.longitude) == null ? this.camera.pose.longitude : t, s = (n = e.latitude) == null ? this.camera.pose.latitude : n, c = (r = e.fov) == null ? this.camera.pose.fov : r, l = (i = e.distance) == null ? this.camera.pose.distance : i, u = (a = e.offset) == null ? this.camera.pose.offset : a, d =
|
|
22158
|
+
let o = (t = e.longitude) == null ? this.camera.pose.longitude : t, s = (n = e.latitude) == null ? this.camera.pose.latitude : n, c = (r = e.fov) == null ? this.camera.pose.fov : r, l = (i = e.distance) == null ? this.camera.pose.distance : i, u = (a = e.offset) == null ? this.camera.pose.offset : a, d = xw(o, this.camera.pose.longitude, Math.PI * 2) || xw(s, this.camera.pose.latitude), f = xw(c, this.camera.pose.fov), p = xw(l, this.camera.pose.distance), m = Cw(u, this.camera.pose.offset);
|
|
21806
22159
|
(f || d || m || p) && (this.camera.setFromPose({
|
|
21807
22160
|
longitude: o,
|
|
21808
22161
|
latitude: s,
|
|
@@ -21858,7 +22211,7 @@ var Tw = class t extends xn {
|
|
|
21858
22211
|
}
|
|
21859
22212
|
createRaycasterFromCamera(t, n) {
|
|
21860
22213
|
let r = new e.Raycaster();
|
|
21861
|
-
return r.params.Points = { threshold: .1 }, r.firstHitOnly = !0, r.near = n.near, r.far = n.far,
|
|
22214
|
+
return r.params.Points = { threshold: .1 }, r.firstHitOnly = !0, r.near = n.near, r.far = n.far, Qw(r, t, n), r;
|
|
21862
22215
|
}
|
|
21863
22216
|
bindEvents(t) {
|
|
21864
22217
|
let n = (e) => {
|
|
@@ -21871,10 +22224,10 @@ var Tw = class t extends xn {
|
|
|
21871
22224
|
ctrlKey: "ctrlKey" in e ? e.ctrlKey : !1,
|
|
21872
22225
|
altKey: "altKey" in e ? e.altKey : !1,
|
|
21873
22226
|
metaKey: "metaKey" in e ? e.metaKey : !1
|
|
21874
|
-
}), i = new
|
|
22227
|
+
}), i = new Zw.Manager(t), a = (e) => e.session.firstInput || null, o = new Zw.Pan({
|
|
21875
22228
|
threshold: 10,
|
|
21876
22229
|
pointers: 0
|
|
21877
|
-
}), s = new
|
|
22230
|
+
}), s = new Zw.Tap({ interval: 410 }), c = new Zw.Pinch({
|
|
21878
22231
|
threshold: 0,
|
|
21879
22232
|
pointers: 2
|
|
21880
22233
|
});
|
|
@@ -21919,7 +22272,7 @@ var Tw = class t extends xn {
|
|
|
21919
22272
|
overallVelocityX: e.overallVelocityX,
|
|
21920
22273
|
overallVelocityY: e.overallVelocityY,
|
|
21921
22274
|
userAction: !0,
|
|
21922
|
-
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano),
|
|
22275
|
+
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano), jw(this.camera.pose))
|
|
21923
22276
|
});
|
|
21924
22277
|
this.emit("gesture.fire", s), this.onPanGesture(s), v();
|
|
21925
22278
|
}), i.on("tap", (e) => {
|
|
@@ -21961,7 +22314,7 @@ var Tw = class t extends xn {
|
|
|
21961
22314
|
overallVelocityX: e.overallVelocityX,
|
|
21962
22315
|
overallVelocityY: e.overallVelocityY,
|
|
21963
22316
|
userAction: !0,
|
|
21964
|
-
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano),
|
|
22317
|
+
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano), jw(this.camera.pose))
|
|
21965
22318
|
});
|
|
21966
22319
|
this.emit("gesture.fire", s), this.onTapGesture(s), v();
|
|
21967
22320
|
}), i.on("pinchstart pinch pinchend", (t) => {
|
|
@@ -21974,7 +22327,7 @@ var Tw = class t extends xn {
|
|
|
21974
22327
|
pointers: t.pointers.map((t) => {
|
|
21975
22328
|
var n;
|
|
21976
22329
|
let r = this.relativeClientPosition(t), i = new e.Raycaster();
|
|
21977
|
-
return i.params.Points = { threshold: .1 },
|
|
22330
|
+
return i.params.Points = { threshold: .1 }, Qw(i, r, this.camera), Object.assign(Object.assign({
|
|
21978
22331
|
x: t.x,
|
|
21979
22332
|
y: t.y,
|
|
21980
22333
|
delta: (n = t.delta) == null ? 0 : n
|
|
@@ -22002,7 +22355,7 @@ var Tw = class t extends xn {
|
|
|
22002
22355
|
overallVelocityX: t.overallVelocityX,
|
|
22003
22356
|
overallVelocityY: t.overallVelocityY,
|
|
22004
22357
|
userAction: !0,
|
|
22005
|
-
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano),
|
|
22358
|
+
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano), jw(this.camera.pose))
|
|
22006
22359
|
});
|
|
22007
22360
|
this.emit("gesture.fire", c), this.onPinchGesture(c), v();
|
|
22008
22361
|
}), i.on("dbltap", (e) => {
|
|
@@ -22044,7 +22397,7 @@ var Tw = class t extends xn {
|
|
|
22044
22397
|
overallVelocityX: e.overallVelocityX,
|
|
22045
22398
|
overallVelocityY: e.overallVelocityY,
|
|
22046
22399
|
userAction: !0,
|
|
22047
|
-
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano),
|
|
22400
|
+
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano), jw(this.camera.pose))
|
|
22048
22401
|
});
|
|
22049
22402
|
this.emit("gesture.fire", s), this.onDblTapGesture(s), v();
|
|
22050
22403
|
});
|
|
@@ -22070,7 +22423,7 @@ var Tw = class t extends xn {
|
|
|
22070
22423
|
overallVelocityX: 0,
|
|
22071
22424
|
overallVelocityY: 0,
|
|
22072
22425
|
userAction: !0,
|
|
22073
|
-
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano),
|
|
22426
|
+
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano), jw(this.camera.pose))
|
|
22074
22427
|
});
|
|
22075
22428
|
}, f = (e) => {
|
|
22076
22429
|
var t;
|
|
@@ -22110,7 +22463,7 @@ var Tw = class t extends xn {
|
|
|
22110
22463
|
overallVelocityX: 0,
|
|
22111
22464
|
overallVelocityY: 0,
|
|
22112
22465
|
userAction: !0,
|
|
22113
|
-
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano),
|
|
22466
|
+
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano), jw(this.camera.pose))
|
|
22114
22467
|
});
|
|
22115
22468
|
this.emit("gesture.fire", c), this.onMouseWheel(c), this.mouseWheelState && clearTimeout(this.mouseWheelState.timer), this.mouseWheelState = { timer: setTimeout(() => {
|
|
22116
22469
|
this.mouseWheelState = void 0;
|
|
@@ -22128,7 +22481,7 @@ var Tw = class t extends xn {
|
|
|
22128
22481
|
overallVelocityX: 0,
|
|
22129
22482
|
overallVelocityY: 0,
|
|
22130
22483
|
userAction: !0,
|
|
22131
|
-
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano),
|
|
22484
|
+
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano), jw(this.camera.pose))
|
|
22132
22485
|
});
|
|
22133
22486
|
this.emit("gesture.fire", t), this.onMouseWheel(t);
|
|
22134
22487
|
}, 100) };
|
|
@@ -22136,7 +22489,7 @@ var Tw = class t extends xn {
|
|
|
22136
22489
|
v();
|
|
22137
22490
|
}
|
|
22138
22491
|
}, p = (e) => {
|
|
22139
|
-
if (
|
|
22492
|
+
if (DC) return;
|
|
22140
22493
|
if (!n({
|
|
22141
22494
|
x: e.clientX,
|
|
22142
22495
|
y: e.clientY
|
|
@@ -22166,7 +22519,7 @@ var Tw = class t extends xn {
|
|
|
22166
22519
|
overallVelocityX: 0,
|
|
22167
22520
|
overallVelocityY: 0,
|
|
22168
22521
|
userAction: !0,
|
|
22169
|
-
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano),
|
|
22522
|
+
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano), jw(this.camera.pose))
|
|
22170
22523
|
});
|
|
22171
22524
|
this.emit("gesture.fire", c), this.mouseMoveState = {
|
|
22172
22525
|
timeStamp: J(),
|
|
@@ -22220,7 +22573,7 @@ var Tw = class t extends xn {
|
|
|
22220
22573
|
overallVelocityX: 0,
|
|
22221
22574
|
overallVelocityY: 0,
|
|
22222
22575
|
userAction: !0,
|
|
22223
|
-
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano),
|
|
22576
|
+
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano), jw(this.camera.pose))
|
|
22224
22577
|
});
|
|
22225
22578
|
this.emit("gesture.fire", o), h(o);
|
|
22226
22579
|
}, _ = (e) => {
|
|
@@ -22245,7 +22598,7 @@ var Tw = class t extends xn {
|
|
|
22245
22598
|
overallVelocityX: 0,
|
|
22246
22599
|
overallVelocityY: 0,
|
|
22247
22600
|
userAction: !0,
|
|
22248
|
-
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano),
|
|
22601
|
+
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano), jw(this.camera.pose))
|
|
22249
22602
|
});
|
|
22250
22603
|
this.emit("gesture.fire", o), h(o);
|
|
22251
22604
|
}, v = () => {
|
|
@@ -22292,22 +22645,22 @@ var Tw = class t extends xn {
|
|
|
22292
22645
|
overallVelocityX: 0,
|
|
22293
22646
|
overallVelocityY: 0,
|
|
22294
22647
|
userAction: !0,
|
|
22295
|
-
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano),
|
|
22648
|
+
state: Object.assign(Object.assign({ mode: this.mode }, this.currentPano), jw(this.camera.pose))
|
|
22296
22649
|
});
|
|
22297
22650
|
}, x = (e) => {
|
|
22298
|
-
if (e.preventDefault(),
|
|
22651
|
+
if (e.preventDefault(), DC) return;
|
|
22299
22652
|
let t = b(e);
|
|
22300
22653
|
this.emit("gesture.fire", t), y = { firstEvent: t };
|
|
22301
22654
|
let r = y.firstEvent;
|
|
22302
22655
|
r && !n(r.center) || this.onPinchGesture(t);
|
|
22303
22656
|
}, S = (e) => {
|
|
22304
|
-
if (e.preventDefault(),
|
|
22657
|
+
if (e.preventDefault(), DC || !y) return;
|
|
22305
22658
|
let t = y.firstEvent;
|
|
22306
22659
|
if (t && !n(t.center)) return;
|
|
22307
22660
|
let r = b(e);
|
|
22308
22661
|
this.emit("gesture.fire", r), this.onPinchGesture(r);
|
|
22309
22662
|
}, C = (e) => {
|
|
22310
|
-
if (e.preventDefault(),
|
|
22663
|
+
if (e.preventDefault(), DC || !y) return;
|
|
22311
22664
|
let t = y.firstEvent;
|
|
22312
22665
|
if (y = null, t && !n(t.center)) return;
|
|
22313
22666
|
let r = b(e);
|
|
@@ -22322,16 +22675,16 @@ var Tw = class t extends xn {
|
|
|
22322
22675
|
i.destroy(), t.removeEventListener("wheel", f, !1), t.removeEventListener("mousemove", p, !1), t.removeEventListener("mouseout", m, !1), t.removeEventListener("touchstart", g, !1), t.removeEventListener("touchend", v, !1), t.removeEventListener("touchcancel", v, !1), t.removeEventListener("mousedown", _, !1), t.removeEventListener("mouseup", v, !1), t.removeEventListener("gesturestart", x, !1), t.removeEventListener("gesturechange", S, !1), t.removeEventListener("gestureend", C, !1), t.removeEventListener("touchstart", w, !1), t.removeEventListener("contextmenu", w, !1);
|
|
22323
22676
|
}, { element: t });
|
|
22324
22677
|
}
|
|
22325
|
-
},
|
|
22326
|
-
|
|
22327
|
-
var
|
|
22678
|
+
}, eT = new e.CircleGeometry(.1, 16), tT = z(), nT = oe(.5, .5).sub(tT).length(), rT = T(.01), iT = T(.49), aT = T(.29), oT = T(1).sub(F(iT.sub(rT), iT, nT)), sT = F(aT, aT.add(rT), nT), cT = V(.576, .635, 1, .3), lT = V(1, 1, 1, m(nT.sub(iT.add(aT).div(2))).div(iT.sub(aT)).mul(1.5).add(.1).clamp(0, 1)), uT = j(cT, lT, lT.w), dT = V(uT.xyz, uT.w.mul(oT).mul(sT)), fT = new e.NodeMaterial();
|
|
22679
|
+
fT.fragmentNode = dT, fT.side = e.DoubleSide, fT.blending = e.CustomBlending, fT.blendSrc = e.SrcAlphaFactor, fT.blendDst = e.OneMinusSrcAlphaFactor, fT.blendSrcAlpha = e.OneFactor, fT.blendDstAlpha = e.OneMinusSrcAlphaFactor, fT.depthWrite = !1, fT.transparent = !0;
|
|
22680
|
+
var pT = class extends e.Object3D {
|
|
22328
22681
|
constructor() {
|
|
22329
|
-
super(), this.ringMesh = new e.Mesh(
|
|
22682
|
+
super(), this.ringMesh = new e.Mesh(eT, fT), this.ringMesh.position.z = .01, this.ringMesh.renderOrder = 9999999999, this.add(this.ringMesh);
|
|
22330
22683
|
}
|
|
22331
22684
|
dispose() {
|
|
22332
22685
|
this.remove(this.ringMesh);
|
|
22333
22686
|
}
|
|
22334
|
-
},
|
|
22687
|
+
}, mT = new e.Box3(), hT = new e.Vector3(), gT = {
|
|
22335
22688
|
defaultLongitude: Math.PI / 4,
|
|
22336
22689
|
defaultLatitude: Math.PI / 4,
|
|
22337
22690
|
defaultFov: 80,
|
|
@@ -22339,8 +22692,8 @@ var zw = class extends e.Object3D {
|
|
|
22339
22692
|
minFov: 20,
|
|
22340
22693
|
maxLatitude: Math.PI / 2,
|
|
22341
22694
|
minLatitude: -Math.PI / 2,
|
|
22342
|
-
intersectMeshCreator: () => new
|
|
22343
|
-
},
|
|
22695
|
+
intersectMeshCreator: () => new pT()
|
|
22696
|
+
}, _T = class t extends $w {
|
|
22344
22697
|
static distanceFromModel(e, t, n) {
|
|
22345
22698
|
let r = e.boundingBox, i = r.isEmpty() ? 10 : Math.pow(Math.pow(r.max.x - r.min.x + 1, 2) + Math.pow(r.max.y - r.min.y + 1, 2) + Math.pow(r.max.z - r.min.z + 1, 2), 1 / 2);
|
|
22346
22699
|
i = isNaN(i) || !isFinite(i) ? 1 : i;
|
|
@@ -22352,14 +22705,14 @@ var zw = class extends e.Object3D {
|
|
|
22352
22705
|
if (e instanceof t) return e;
|
|
22353
22706
|
let u = super.parseArgs(e);
|
|
22354
22707
|
return Object.assign(Object.assign({}, u), {
|
|
22355
|
-
defaultLongitude: (n = e.defaultLongitude) == null ?
|
|
22356
|
-
defaultLatitude: (r = e.defaultLatitude) == null ?
|
|
22357
|
-
defaultFov: (i = e.defaultFov) == null ?
|
|
22358
|
-
maxFov: (a = e.maxFov) == null ?
|
|
22359
|
-
minFov: (o = e.minFov) == null ?
|
|
22360
|
-
maxLatitude: (s = e.maxLatitude) == null ?
|
|
22361
|
-
minLatitude: (c = e.minLatitude) == null ?
|
|
22362
|
-
intersectMeshCreator: (l = e.intersectMeshCreator) == null ?
|
|
22708
|
+
defaultLongitude: (n = e.defaultLongitude) == null ? gT.defaultLongitude : n,
|
|
22709
|
+
defaultLatitude: (r = e.defaultLatitude) == null ? gT.defaultLatitude : r,
|
|
22710
|
+
defaultFov: (i = e.defaultFov) == null ? gT.defaultFov : i,
|
|
22711
|
+
maxFov: (a = e.maxFov) == null ? gT.maxFov : a,
|
|
22712
|
+
minFov: (o = e.minFov) == null ? gT.minFov : o,
|
|
22713
|
+
maxLatitude: (s = e.maxLatitude) == null ? gT.maxLatitude : s,
|
|
22714
|
+
minLatitude: (c = e.minLatitude) == null ? gT.minLatitude : c,
|
|
22715
|
+
intersectMeshCreator: (l = e.intersectMeshCreator) == null ? gT.intersectMeshCreator : l
|
|
22363
22716
|
});
|
|
22364
22717
|
}
|
|
22365
22718
|
static initAnimationEndState(n) {
|
|
@@ -22370,7 +22723,7 @@ var zw = class extends e.Object3D {
|
|
|
22370
22723
|
} : {
|
|
22371
22724
|
workCode: f.workCode,
|
|
22372
22725
|
panoIndex: f.panoIndex
|
|
22373
|
-
}, m = (o = d.fov) == null ? u.defaultFov : o, h = (s = d.longitude) == null ?
|
|
22726
|
+
}, m = (o = d.fov) == null ? u.defaultFov : o, h = (s = d.longitude) == null ? Mw(f.mode) ? f.longitude : u.defaultLongitude : s, g = q(typeof u.minLatitude == "function" ? u.minLatitude(m) : u.minLatitude, -Math.PI / 2, Math.PI / 2), _ = q(typeof u.maxLatitude == "function" ? u.maxLatitude(m) : u.maxLatitude, -Math.PI / 2, Math.PI / 2), v = q((c = d.latitude) == null ? f.mode === "Floorplan" ? f.latitude : u.defaultLatitude : c, g, _), y = d.offset ? d.offset.clone() : n.modelScene.boundingBox.getCenter(new e.Vector3()), b = (l = d.distance) == null ? t.distanceFromModel(u.modelScene, u.defaultFov, u.camera.aspect) : l;
|
|
22374
22727
|
return Object.assign(Object.assign({}, p), {
|
|
22375
22728
|
mode: "Floorplan",
|
|
22376
22729
|
longitude: h,
|
|
@@ -22457,7 +22810,7 @@ var zw = class extends e.Object3D {
|
|
|
22457
22810
|
let { pano0: e, pano1: t } = this.modelScene.parameter;
|
|
22458
22811
|
e && e.map !== (t == null ? void 0 : t.map) && e.map.dispose(), i.progress = 1, i.pano0 = i.pano1 = t;
|
|
22459
22812
|
}
|
|
22460
|
-
if (this.perspToOrthoMotion.ended || (this.perspToOrthoMotion.update(t), this.camera.perspToOrtho.setScalar(q(this.perspToOrthoMotion.value.perspToOrtho, 0, 1))), this.locationMotion.ended || (this.locationMotion.update(t), a.distance = this.locationMotion.value.distance, a.offset = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z)), this.cameraMotion.ended || (this.cameraMotion.update(t), a.longitude = this.cameraMotion.value.longitude, a.latitude = this.cameraMotion.value.latitude, a.fov = this.cameraMotion.value.fov),
|
|
22813
|
+
if (this.perspToOrthoMotion.ended || (this.perspToOrthoMotion.update(t), this.camera.perspToOrtho.setScalar(q(this.perspToOrthoMotion.value.perspToOrtho, 0, 1))), this.locationMotion.ended || (this.locationMotion.update(t), a.distance = this.locationMotion.value.distance, a.offset = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z)), this.cameraMotion.ended || (this.cameraMotion.update(t), a.longitude = this.cameraMotion.value.longitude, a.latitude = this.cameraMotion.value.latitude, a.fov = this.cameraMotion.value.fov), Pw(i) || this.modelScene.parameter.set(i), Pw(a) || this.setCamera(a), this.intersectMesh && this.intersectMesh.parent) {
|
|
22461
22814
|
let e = q(this.camera.position.distanceTo(this.intersectMesh.position) * (2 * Math.tan(.5 * this.camera.fov / 180 * Math.PI)) / 5, .5);
|
|
22462
22815
|
this.intersectMesh.scale.setScalar(e);
|
|
22463
22816
|
} else this.intersectMesh.scale.setScalar(1);
|
|
@@ -22496,7 +22849,7 @@ var zw = class extends e.Object3D {
|
|
|
22496
22849
|
userAction: this.userAction
|
|
22497
22850
|
}));
|
|
22498
22851
|
}, (e) => {
|
|
22499
|
-
let t = Object.assign(Object.assign(Object.assign({}, this.currentPano), { mode: this.mode }),
|
|
22852
|
+
let t = Object.assign(Object.assign(Object.assign({}, this.currentPano), { mode: this.mode }), jw(this.camera.pose));
|
|
22500
22853
|
this.emit("initAnimation.end", $("initAnimation.end", {
|
|
22501
22854
|
state: t,
|
|
22502
22855
|
userAction: this.userAction
|
|
@@ -22515,9 +22868,9 @@ var zw = class extends e.Object3D {
|
|
|
22515
22868
|
let n = [];
|
|
22516
22869
|
for (let t of this.works) {
|
|
22517
22870
|
let r = this.modelScene.models.find((e) => e.work === t);
|
|
22518
|
-
if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (
|
|
22871
|
+
if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (mT.copy(t.observerBox).expandByScalar(10).applyMatrix4(t.transform), mT.containsPoint(e.ray.origin) || e.ray.intersectsBox(mT))) for (let e of t.observers) n.push(e);
|
|
22519
22872
|
}
|
|
22520
|
-
let [r, i] = Im(n, (e) =>
|
|
22873
|
+
let [r, i] = Im(n, (e) => hT.copy(e.standingPosition).applyMatrix4(e.work.transform).distanceTo(t.point), !0);
|
|
22521
22874
|
return r && i < Math.max(r.standingPosition.distanceTo(this.camera.position) / 5, 10) ? r : null;
|
|
22522
22875
|
}
|
|
22523
22876
|
coordinatesForOffset(t) {
|
|
@@ -22751,7 +23104,7 @@ var zw = class extends e.Object3D {
|
|
|
22751
23104
|
return;
|
|
22752
23105
|
}
|
|
22753
23106
|
this.pendingTextureId = null, u.name = p;
|
|
22754
|
-
let d = Array.isArray(u.image) ? u.image[0] : u.image, f = (c = d == null ? void 0 : d.width) == null ? 2048 : c, h = yield
|
|
23107
|
+
let d = Array.isArray(u.image) ? u.image[0] : u.image, f = (c = d == null ? void 0 : d.width) == null ? 2048 : c, h = yield Xw(this.renderer, u, !0, cS), g = new fS().formPixels(h.data), _ = {
|
|
22755
23108
|
panoId: o,
|
|
22756
23109
|
map: u,
|
|
22757
23110
|
mapSize: f,
|
|
@@ -22789,7 +23142,7 @@ var zw = class extends e.Object3D {
|
|
|
22789
23142
|
hideIntersectMesh() {
|
|
22790
23143
|
this.intersectMesh.visible = !1, this.needsRender = !0;
|
|
22791
23144
|
}
|
|
22792
|
-
},
|
|
23145
|
+
}, vT = Object.assign(Object.assign({}, Ql(gT, [
|
|
22793
23146
|
"defaultLongitude",
|
|
22794
23147
|
"defaultLatitude",
|
|
22795
23148
|
"maxLatitude",
|
|
@@ -22797,15 +23150,15 @@ var zw = class extends e.Object3D {
|
|
|
22797
23150
|
])), {
|
|
22798
23151
|
defaultLongitude: 0,
|
|
22799
23152
|
defaultLatitude: Math.PI / 2
|
|
22800
|
-
}),
|
|
23153
|
+
}), yT = class t extends _T {
|
|
22801
23154
|
static parseArgs(e) {
|
|
22802
23155
|
var n, r;
|
|
22803
23156
|
if (e instanceof t) return e;
|
|
22804
23157
|
let i = Object.assign(Object.assign({}, e), {
|
|
22805
23158
|
maxLatitude: Math.PI / 2,
|
|
22806
23159
|
minLatitude: -Math.PI / 2,
|
|
22807
|
-
defaultLongitude: (n = e.defaultLongitude) == null ?
|
|
22808
|
-
defaultLatitude: (r = e.defaultLatitude) == null ?
|
|
23160
|
+
defaultLongitude: (n = e.defaultLongitude) == null ? vT.defaultLongitude : n,
|
|
23161
|
+
defaultLatitude: (r = e.defaultLatitude) == null ? vT.defaultLatitude : r
|
|
22809
23162
|
});
|
|
22810
23163
|
return super.parseArgs(i);
|
|
22811
23164
|
}
|
|
@@ -22831,7 +23184,7 @@ var zw = class extends e.Object3D {
|
|
|
22831
23184
|
x: n.x,
|
|
22832
23185
|
y: n.y,
|
|
22833
23186
|
z: n.z,
|
|
22834
|
-
distance:
|
|
23187
|
+
distance: _T.distanceFromModel(this.modelScene, this.defaultFov, this.camera.aspect)
|
|
22835
23188
|
}, 0).catch(Y), this.hideIntersectMesh();
|
|
22836
23189
|
}
|
|
22837
23190
|
updateCamera(e, t, n) {
|
|
@@ -22889,7 +23242,7 @@ var zw = class extends e.Object3D {
|
|
|
22889
23242
|
userAction: this.userAction
|
|
22890
23243
|
}));
|
|
22891
23244
|
}, (e) => {
|
|
22892
|
-
let t = Object.assign(Object.assign(Object.assign({}, this.currentPano), { mode: this.mode }),
|
|
23245
|
+
let t = Object.assign(Object.assign(Object.assign({}, this.currentPano), { mode: this.mode }), jw(this.camera.pose));
|
|
22893
23246
|
this.emit("initAnimation.end", $("initAnimation.end", {
|
|
22894
23247
|
state: t,
|
|
22895
23248
|
userAction: this.userAction
|
|
@@ -22954,7 +23307,7 @@ var zw = class extends e.Object3D {
|
|
|
22954
23307
|
let t = q(this.cameraMotion.value.fov - e.center.delta, this.minFov, this.maxFov);
|
|
22955
23308
|
e.state.fov = t, this.emit("gesture.mousewheel", e), !e.defaultPrevented && this.cameraMotion.set({ fov: t }, 0).catch(Y);
|
|
22956
23309
|
}
|
|
22957
|
-
},
|
|
23310
|
+
}, bT = {
|
|
22958
23311
|
defaultLatitude: 0,
|
|
22959
23312
|
defaultFov: 90,
|
|
22960
23313
|
maxFov: 120,
|
|
@@ -22962,23 +23315,23 @@ var zw = class extends e.Object3D {
|
|
|
22962
23315
|
maxLatitude: (e) => Math.PI / 2 - e / 2 / 180 * Math.PI,
|
|
22963
23316
|
minLatitude: (e) => -Math.PI / 2 + e / 2 / 180 * Math.PI,
|
|
22964
23317
|
moveSpeed: 3.6,
|
|
22965
|
-
intersectMeshCreator: () => new
|
|
23318
|
+
intersectMeshCreator: () => new pT(),
|
|
22966
23319
|
aerialObserverMinHeight: 5
|
|
22967
|
-
},
|
|
23320
|
+
}, xT = class t extends $w {
|
|
22968
23321
|
static parseArgs(e) {
|
|
22969
23322
|
var n, r, i, a, o, s, c, l, u;
|
|
22970
23323
|
if (e instanceof t) return e;
|
|
22971
23324
|
let d = super.parseArgs(e);
|
|
22972
23325
|
return Object.assign(Object.assign({}, d), {
|
|
22973
|
-
defaultLatitude: (n = e.defaultLatitude) == null ?
|
|
22974
|
-
defaultFov: (r = e.defaultFov) == null ?
|
|
22975
|
-
maxFov: (i = e.maxFov) == null ?
|
|
22976
|
-
minFov: (a = e.minFov) == null ?
|
|
22977
|
-
maxLatitude: (o = e.maxLatitude) == null ?
|
|
22978
|
-
minLatitude: (s = e.minLatitude) == null ?
|
|
22979
|
-
moveSpeed: (c = e.moveSpeed) == null ?
|
|
22980
|
-
intersectMeshCreator: (l = e.intersectMeshCreator) == null ?
|
|
22981
|
-
aerialObserverMinHeight: (u = e.aerialObserverMinHeight) == null ?
|
|
23326
|
+
defaultLatitude: (n = e.defaultLatitude) == null ? bT.defaultLatitude : n,
|
|
23327
|
+
defaultFov: (r = e.defaultFov) == null ? bT.defaultFov : r,
|
|
23328
|
+
maxFov: (i = e.maxFov) == null ? bT.maxFov : i,
|
|
23329
|
+
minFov: (a = e.minFov) == null ? bT.minFov : a,
|
|
23330
|
+
maxLatitude: (o = e.maxLatitude) == null ? bT.maxLatitude : o,
|
|
23331
|
+
minLatitude: (s = e.minLatitude) == null ? bT.minLatitude : s,
|
|
23332
|
+
moveSpeed: (c = e.moveSpeed) == null ? bT.moveSpeed : c,
|
|
23333
|
+
intersectMeshCreator: (l = e.intersectMeshCreator) == null ? bT.intersectMeshCreator : l,
|
|
23334
|
+
aerialObserverMinHeight: (u = e.aerialObserverMinHeight) == null ? bT.aerialObserverMinHeight : u
|
|
22982
23335
|
});
|
|
22983
23336
|
}
|
|
22984
23337
|
static initAnimationEndState(t) {
|
|
@@ -22989,7 +23342,7 @@ var zw = class extends e.Object3D {
|
|
|
22989
23342
|
} : {
|
|
22990
23343
|
workCode: d.workCode,
|
|
22991
23344
|
panoIndex: d.panoIndex
|
|
22992
|
-
}, p = l.getObserver(f), m = q((a = u.fov) == null ?
|
|
23345
|
+
}, p = l.getObserver(f), m = q((a = u.fov) == null ? Nw(d.mode) ? d.fov : c.defaultFov : a, c.minFov, c.maxFov), h = (o = u.longitude) == null ? d.longitude : o, g = q(typeof c.minLatitude == "function" ? c.minLatitude(m) : c.minLatitude, -Math.PI / 2, Math.PI / 2), _ = q(typeof c.maxLatitude == "function" ? c.maxLatitude(m) : c.maxLatitude, -Math.PI / 2, Math.PI / 2), v = q((s = u.latitude) == null ? Nw(d.mode) ? d.latitude : c.defaultLatitude : s, g, _), y = new e.Vector3();
|
|
22993
23346
|
return p && y.copy(p.position).applyMatrix4(p.work.transform), {
|
|
22994
23347
|
workCode: f.workCode,
|
|
22995
23348
|
panoIndex: f.panoIndex,
|
|
@@ -23201,11 +23554,11 @@ var zw = class extends e.Object3D {
|
|
|
23201
23554
|
let i = Math.max(40 - n * 5, this.minFov, 5), a = i - t < t - this.defaultFov ? i : this.defaultFov;
|
|
23202
23555
|
e.state.fov = a, this.emit("gesture.dbltap", e), !e.defaultPrevented && (this.cameraMotion.set({ fov: a }, 360).catch(Y), this.hideIntersectMesh());
|
|
23203
23556
|
}
|
|
23204
|
-
},
|
|
23205
|
-
function
|
|
23206
|
-
return
|
|
23557
|
+
}, ST = "data:video/mp4;base64,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", CT;
|
|
23558
|
+
function wT() {
|
|
23559
|
+
return CT || (CT = new Promise((e) => {
|
|
23207
23560
|
let t, n = document.createElement("video");
|
|
23208
|
-
n.muted = !0, n.src =
|
|
23561
|
+
n.muted = !0, n.src = ST, n.addEventListener("timeupdate", function r() {
|
|
23209
23562
|
n.removeEventListener("timeupdate", r, !1), clearTimeout(t);
|
|
23210
23563
|
let i = document.createElement("canvas");
|
|
23211
23564
|
i.width = i.height = 1;
|
|
@@ -23224,7 +23577,7 @@ function Xw() {
|
|
|
23224
23577
|
}
|
|
23225
23578
|
//#endregion
|
|
23226
23579
|
//#region build/five/utils/tileCube.js
|
|
23227
|
-
var
|
|
23580
|
+
var TT = [
|
|
23228
23581
|
"right",
|
|
23229
23582
|
"left",
|
|
23230
23583
|
"up",
|
|
@@ -23232,7 +23585,7 @@ var Zw = [
|
|
|
23232
23585
|
"front",
|
|
23233
23586
|
"back"
|
|
23234
23587
|
];
|
|
23235
|
-
function
|
|
23588
|
+
function ET(t, n, r, i) {
|
|
23236
23589
|
let a = new e.Box3();
|
|
23237
23590
|
switch (t) {
|
|
23238
23591
|
case "up":
|
|
@@ -23257,7 +23610,7 @@ function Qw(t, n, r, i) {
|
|
|
23257
23610
|
}
|
|
23258
23611
|
return a.applyMatrix4(new e.Matrix4().makeRotationY(Math.PI));
|
|
23259
23612
|
}
|
|
23260
|
-
var
|
|
23613
|
+
var DT = (t, n) => {
|
|
23261
23614
|
if (t.level >= n) return;
|
|
23262
23615
|
let r = t.level + 1, i = t.size / 2, a = [
|
|
23263
23616
|
new e.Vector2(t.position.x, t.position.y),
|
|
@@ -23271,44 +23624,44 @@ var $w = (t, n) => {
|
|
|
23271
23624
|
level: r,
|
|
23272
23625
|
size: i,
|
|
23273
23626
|
position: e,
|
|
23274
|
-
box:
|
|
23627
|
+
box: ET(t.face, e.x, e.y, i),
|
|
23275
23628
|
parent: t,
|
|
23276
23629
|
children: []
|
|
23277
23630
|
};
|
|
23278
|
-
t.children.push(a),
|
|
23631
|
+
t.children.push(a), DT(a, n);
|
|
23279
23632
|
}
|
|
23280
23633
|
};
|
|
23281
|
-
function
|
|
23634
|
+
function OT(t, n) {
|
|
23282
23635
|
let r = {
|
|
23283
23636
|
level: 0,
|
|
23284
23637
|
face: t,
|
|
23285
23638
|
position: new e.Vector2(0, 0),
|
|
23286
23639
|
size: 1,
|
|
23287
|
-
box:
|
|
23640
|
+
box: ET(t, 0, 0, 1),
|
|
23288
23641
|
parent: null,
|
|
23289
23642
|
children: []
|
|
23290
23643
|
};
|
|
23291
|
-
return
|
|
23644
|
+
return DT(r, n), r;
|
|
23292
23645
|
}
|
|
23293
|
-
function
|
|
23646
|
+
function kT(e) {
|
|
23294
23647
|
return {
|
|
23295
|
-
children:
|
|
23648
|
+
children: TT.map((t) => OT(t, e)),
|
|
23296
23649
|
maxLevel: e
|
|
23297
23650
|
};
|
|
23298
23651
|
}
|
|
23299
|
-
function
|
|
23300
|
-
for (let n of e.children) t(n) !== !1 &&
|
|
23652
|
+
function AT(e, t) {
|
|
23653
|
+
for (let n of e.children) t(n) !== !1 && AT(n, t);
|
|
23301
23654
|
}
|
|
23302
23655
|
//#endregion
|
|
23303
23656
|
//#region build/five/core/tiling.js
|
|
23304
|
-
var
|
|
23305
|
-
up: new e.Quaternion(
|
|
23306
|
-
down: new e.Quaternion(-
|
|
23307
|
-
left: new e.Quaternion(0,
|
|
23308
|
-
right: new e.Quaternion(0, -
|
|
23657
|
+
var jT, MT = new e.Vector3(), NT = new e.Quaternion(), PT = new e.Matrix4(), FT = new e.Matrix4(), IT = new e.Matrix4(), LT = new e.Matrix4(), RT = new e.Matrix4(), zT = new e.Quaternion(), BT = new e.Matrix4(), VT = 0, HT = new e.Color(), UT = (jT = Math.SQRT1_2) == null ? Math.sqrt(2) : jT, WT = {
|
|
23658
|
+
up: new e.Quaternion(UT, 0, 0, UT),
|
|
23659
|
+
down: new e.Quaternion(-UT, 0, 0, UT),
|
|
23660
|
+
left: new e.Quaternion(0, UT, 0, UT),
|
|
23661
|
+
right: new e.Quaternion(0, -UT, 0, UT),
|
|
23309
23662
|
front: new e.Quaternion(0, 0, 0, 1),
|
|
23310
23663
|
back: new e.Quaternion(0, 1, 0, 0)
|
|
23311
|
-
},
|
|
23664
|
+
}, GT = (() => {
|
|
23312
23665
|
let t = new Float32Array([
|
|
23313
23666
|
-.5,
|
|
23314
23667
|
-.5,
|
|
@@ -23340,16 +23693,16 @@ var rT, iT = new e.Vector3(), aT = new e.Quaternion(), oT = new e.Matrix4(), sT
|
|
|
23340
23693
|
2
|
|
23341
23694
|
]), i = new e.BufferGeometry();
|
|
23342
23695
|
return i.setAttribute("position", new e.BufferAttribute(t, 3)), i.setAttribute("uv", new e.BufferAttribute(n, 2)), i.setIndex(new e.BufferAttribute(r, 1)), i.computeBoundingBox(), i;
|
|
23343
|
-
})(),
|
|
23344
|
-
function
|
|
23345
|
-
return
|
|
23696
|
+
})(), KT = null;
|
|
23697
|
+
function qT() {
|
|
23698
|
+
return KT || (KT = new e.DataTexture(new Uint8Array([
|
|
23346
23699
|
255,
|
|
23347
23700
|
255,
|
|
23348
23701
|
255,
|
|
23349
23702
|
255
|
|
23350
|
-
]), 1, 1),
|
|
23703
|
+
]), 1, 1), KT.needsUpdate = !0), KT;
|
|
23351
23704
|
}
|
|
23352
|
-
function
|
|
23705
|
+
function JT() {
|
|
23353
23706
|
return {
|
|
23354
23707
|
enabled: R(0),
|
|
23355
23708
|
maxDisplayBoost: R(1),
|
|
@@ -23362,30 +23715,30 @@ function bT() {
|
|
|
23362
23715
|
offsetHdr: R(Sn.offsetHdr)
|
|
23363
23716
|
};
|
|
23364
23717
|
}
|
|
23365
|
-
function
|
|
23718
|
+
function YT(e, t) {
|
|
23366
23719
|
let n = se(v(e.r, T(0), T(1)), v(e.g, T(0), T(1)), v(e.b, T(0), T(1))), r = T(1).div(A(t.gamma, T(1e-6))), i = se(P(n.r, r), P(n.g, r), P(n.b, r)), a = O(A(t.maxDisplayBoost, T(1))), o = O(A(t.hdrCapacityMin, T(1e-6))), s = O(A(t.hdrCapacityMax, T(1e-6))).sub(o), c = v(a.sub(o).div(A(s, T(1e-6))), T(0), T(1)).mul(I(T(1e-6), s)), l = O(A(t.minContentBoost, T(1e-6))), u = O(A(t.maxContentBoost, T(1e-6))), d = se(l).add(i.mul(se(u.sub(l)))).mul(c);
|
|
23367
23720
|
return se(w(d.x), w(d.y), w(d.z));
|
|
23368
23721
|
}
|
|
23369
|
-
function
|
|
23722
|
+
function XT(e, t, n) {
|
|
23370
23723
|
return se(e).add(n.offsetSdr).mul(t).sub(n.offsetHdr);
|
|
23371
23724
|
}
|
|
23372
|
-
var
|
|
23725
|
+
var ZT = class extends e.NodeMaterial {
|
|
23373
23726
|
constructor(e) {
|
|
23374
|
-
super(), this.map = null, this.flipY = !0, this.level = -1, this._hdr = e, this._mapNode = L(
|
|
23727
|
+
super(), this.map = null, this.flipY = !0, this.level = -1, this._hdr = e, this._mapNode = L(qT()), this._gainNode = L(qT()), this.depthTest = !0, this.depthWrite = !1, this.transparent = !0, this.setupNode();
|
|
23375
23728
|
}
|
|
23376
23729
|
setupNode() {
|
|
23377
|
-
let e = z(), t = se(e.x, e.y, 0), n = k("opacity", "float"), r = this._mapNode.sample(t.xy), i =
|
|
23730
|
+
let e = z(), t = se(e.x, e.y, 0), n = k("opacity", "float"), r = this._mapNode.sample(t.xy), i = YT(this._gainNode.sample(t.xy).rgb, this._hdr), a = XT(r.rgb, i, this._hdr), o = V(j(r.rgb, a, this._hdr.enabled), r.a.mul(n));
|
|
23378
23731
|
this.outputNode = o;
|
|
23379
23732
|
}
|
|
23380
23733
|
setMap(e) {
|
|
23381
|
-
this.map = e, this._mapNode.value = e == null ?
|
|
23734
|
+
this.map = e, this._mapNode.value = e == null ? qT() : e;
|
|
23382
23735
|
}
|
|
23383
23736
|
setGain(e) {
|
|
23384
|
-
this._gainNode.value = e == null ?
|
|
23737
|
+
this._gainNode.value = e == null ? qT() : e;
|
|
23385
23738
|
}
|
|
23386
|
-
},
|
|
23739
|
+
}, QT = class extends e.Mesh {
|
|
23387
23740
|
constructor(t, n, r, i, a) {
|
|
23388
|
-
super(
|
|
23741
|
+
super(GT, r), this.disposed = !1, this.releaseMaterial = i, this.releaseTexture = a, t.box.getCenter(this.position), this.quaternion.multiplyQuaternions(new e.Quaternion().setFromAxisAngle(new e.Vector3(0, 1, 0), -Math.PI), WT[t.face]), this.scale.setScalar(t.size), this.node = t, this.name = "tiling:tile", this.material.level = t.level, this.material.visible = !1, this.material.polygonOffset = !0, this.material.polygonOffsetFactor = -t.level, this.material.polygonOffsetUnits = -t.level, this.activeTime = -1, this.frustumCulled = !1, this.renderOrder = t.level, this.appearDuration = 0, this.appearMotion = new X({ appear: 0 }), n.then(([e, t]) => {
|
|
23389
23742
|
this.colorTexture = e, this.gainmapTexture = t, this.disposed ? (this.releaseTexture(e), this.releaseTexture(t), this.colorTexture = void 0, this.gainmapTexture = void 0) : (this.material.setMap(e == null ? null : e), this.material.setGain(t), this.material.visible = !0, this.appearMotion.set({ appear: 1 }, this.appearDuration * 1e3).catch(Y));
|
|
23390
23743
|
}).catch(Y);
|
|
23391
23744
|
}
|
|
@@ -23399,14 +23752,14 @@ var CT = class extends e.NodeMaterial {
|
|
|
23399
23752
|
dispose() {
|
|
23400
23753
|
this.disposed = !0, this.releaseTexture(this.colorTexture), this.releaseTexture(this.gainmapTexture), this.colorTexture = void 0, this.gainmapTexture = void 0, this.releaseMaterial(this.material);
|
|
23401
23754
|
}
|
|
23402
|
-
},
|
|
23403
|
-
|
|
23404
|
-
var
|
|
23755
|
+
}, $T = sb(20, 20, 20);
|
|
23756
|
+
$T.applyMatrix4(new e.Matrix4().makeScale(-1, 1, 1));
|
|
23757
|
+
var eE = class extends e.NodeMaterial {
|
|
23405
23758
|
constructor(t) {
|
|
23406
23759
|
super();
|
|
23407
23760
|
let n = ee(ne), r = se(n.x, n.y, n.z);
|
|
23408
23761
|
this._mapNode = b(new e.CubeTexture(), r), this._gainNode = b(new e.CubeTexture(), r);
|
|
23409
|
-
let i =
|
|
23762
|
+
let i = YT(this._gainNode.rgb, t), a = XT(this._mapNode.rgb, i, t);
|
|
23410
23763
|
this.fragmentNode = V(j(this._mapNode.rgb, a, t.enabled), 1), this.depthTest = !0, this.depthWrite = !0, this.transparent = !1;
|
|
23411
23764
|
}
|
|
23412
23765
|
get map() {
|
|
@@ -23418,9 +23771,9 @@ var ET = class extends e.NodeMaterial {
|
|
|
23418
23771
|
set gainmap(e) {
|
|
23419
23772
|
this._gainNode.value = e == null ? null : e;
|
|
23420
23773
|
}
|
|
23421
|
-
},
|
|
23774
|
+
}, tE = class extends e.Mesh {
|
|
23422
23775
|
constructor(e) {
|
|
23423
|
-
super(
|
|
23776
|
+
super($T, new eE(e)), this.disposed = !1, this.frustumCulled = !1, this.renderOrder = 9999;
|
|
23424
23777
|
}
|
|
23425
23778
|
update(e, t, n) {
|
|
23426
23779
|
if (this.disposed) {
|
|
@@ -23432,11 +23785,11 @@ var ET = class extends e.NodeMaterial {
|
|
|
23432
23785
|
dispose() {
|
|
23433
23786
|
this.disposed = !0, this.material.dispose();
|
|
23434
23787
|
}
|
|
23435
|
-
},
|
|
23788
|
+
}, nE = 64, rE = 32, iE = class {
|
|
23436
23789
|
constructor(t) {
|
|
23437
23790
|
var n;
|
|
23438
23791
|
this.prevHDRKey = "", this.tileMaterialPool = [], this.tileTexturePool = /* @__PURE__ */ new Map(), this.forceRenderWhenNextUpdate = !0, this.releaseTileMaterial = (e) => {
|
|
23439
|
-
if (e.setMap(null), e.setGain(null), e.opacity = 0, e.visible = !1, this.disposed || this.tileMaterialPool.length >=
|
|
23792
|
+
if (e.setMap(null), e.setGain(null), e.opacity = 0, e.visible = !1, this.disposed || this.tileMaterialPool.length >= nE) {
|
|
23440
23793
|
e.dispose();
|
|
23441
23794
|
return;
|
|
23442
23795
|
}
|
|
@@ -23450,12 +23803,12 @@ var ET = class extends e.NodeMaterial {
|
|
|
23450
23803
|
return;
|
|
23451
23804
|
}
|
|
23452
23805
|
let o = `${i}x${a}:${e.colorSpace}`, s = this.tileTexturePool.get(o);
|
|
23453
|
-
if (s || (s = [], this.tileTexturePool.set(o, s)), s.length >=
|
|
23806
|
+
if (s || (s = [], this.tileTexturePool.set(o, s)), s.length >= rE) {
|
|
23454
23807
|
e.dispose();
|
|
23455
23808
|
return;
|
|
23456
23809
|
}
|
|
23457
23810
|
s.push(e);
|
|
23458
|
-
}, this.fiveId = t.fiveId, this.enableHDR = (n = t.enableHDR) == null ? !1 : n, this.disposed = !1, this.level = 0, this.pedding = 0, this.maxRequest = 1, this.appearDuration = .5, this.maxCacheTile = 48, this.imageOptions = {}, this.hdrUniforms =
|
|
23811
|
+
}, this.fiveId = t.fiveId, this.enableHDR = (n = t.enableHDR) == null ? !1 : n, this.disposed = !1, this.level = 0, this.pedding = 0, this.maxRequest = 1, this.appearDuration = .5, this.maxCacheTile = 48, this.imageOptions = {}, this.hdrUniforms = JT(), this.boundingMesh = new tE(this.hdrUniforms), this.boundingMesh.frustumCulled = !1, this.textureLoader = new Qu(), this.observer = null, this.tileTree = kT(0), this.tileMeshes = /* @__PURE__ */ new Map(), this.frustum = new e.Frustum(), this.scene = new e.Scene(), this.camera = new e.PerspectiveCamera(90, 1, .1, 100), this.scene.add(this.boundingMesh), this.renderTarget = new e.RenderTarget(1, 1, {
|
|
23459
23812
|
depthBuffer: !0,
|
|
23460
23813
|
stencilBuffer: !1,
|
|
23461
23814
|
generateMipmaps: !1,
|
|
@@ -23477,7 +23830,7 @@ var ET = class extends e.NodeMaterial {
|
|
|
23477
23830
|
}), this.tileTexturePool.clear(), this.disposed = !0;
|
|
23478
23831
|
}
|
|
23479
23832
|
acquireTileMaterial() {
|
|
23480
|
-
return this.tileMaterialPool.pop() || new
|
|
23833
|
+
return this.tileMaterialPool.pop() || new ZT(this.hdrUniforms);
|
|
23481
23834
|
}
|
|
23482
23835
|
acquireTileTexture(t, n, r) {
|
|
23483
23836
|
let i = this.tileTexturePool.get(`${t}x${n}:${r}`);
|
|
@@ -23501,7 +23854,7 @@ var ET = class extends e.NodeMaterial {
|
|
|
23501
23854
|
if (this.disposed || this.observer === e) return;
|
|
23502
23855
|
this.cleanup(), this.observer = e;
|
|
23503
23856
|
let a = (i = (r = (n = (t = this.observer) == null ? void 0 : t.images.tiles) == null ? void 0 : n.slice().sort((e, t) => t.level - e.level)[0]) == null ? void 0 : r.level) == null ? 0 : i;
|
|
23504
|
-
this.tileTree =
|
|
23857
|
+
this.tileTree = kT(a);
|
|
23505
23858
|
}
|
|
23506
23859
|
update(t) {
|
|
23507
23860
|
var n, r, i, a, o, s, c, l, u, d;
|
|
@@ -23524,12 +23877,12 @@ var ET = class extends e.NodeMaterial {
|
|
|
23524
23877
|
this.level = q(w, 0, this.tileTree.maxLevel);
|
|
23525
23878
|
let k = Math.floor(m.width * h), A = Math.floor(m.height * h), j = Math.max(k, A), M = (d = (u = (l = g.backend.device) == null ? void 0 : l.limits) == null ? void 0 : u.maxTextureDimension2D) == null ? 8192 : d;
|
|
23526
23879
|
j > M && (k = Math.floor(k / j * M), A = Math.floor(A / j * M)), (this.renderTarget.width !== k || this.renderTarget.height !== A) && this.renderTarget.setSize(k, A), this.scene.matrix.equals(x) || (this.scene.matrix.copy(x), this.scene.matrixWorld.copy(this.scene.matrix), this.scene.matrix.decompose(this.scene.position, this.scene.quaternion, this.scene.scale), this.scene.matrixAutoUpdate = !1, f = !0);
|
|
23527
|
-
let N =
|
|
23880
|
+
let N = NT.setFromRotationMatrix(_), ee = PT.compose(this.scene.position, N, this.scene.scale);
|
|
23528
23881
|
this.camera.matrix.equals(ee) || (this.camera.matrix.copy(ee), this.camera.matrixWorld.copy(this.camera.matrix), this.camera.position.copy(this.scene.position), this.camera.quaternion.copy(N), this.camera.scale.copy(this.scene.scale), f = !0);
|
|
23529
|
-
let te =
|
|
23530
|
-
te.elements[0] *= S, te.elements[5] *= S, this.camera.projectionMatrix.equals(te) || (this.camera.projectionMatrix.copy(te), this.camera.projectionMatrixInverse.copy(this.camera.projectionMatrix).invert(), f = !0),
|
|
23882
|
+
let te = FT.copy(v);
|
|
23883
|
+
te.elements[0] *= S, te.elements[5] *= S, this.camera.projectionMatrix.equals(te) || (this.camera.projectionMatrix.copy(te), this.camera.projectionMatrixInverse.copy(this.camera.projectionMatrix).invert(), f = !0), zT.copy(this.scene.quaternion).invert(), BT.makeRotationFromQuaternion(zT), IT.copy(this.camera.matrix), IT.setPosition(0, 0, 0), IT.premultiply(BT), LT.copy(IT).invert(), RT.multiplyMatrices(this.camera.projectionMatrix, LT), this.frustum.setFromProjectionMatrix(RT);
|
|
23531
23884
|
let ne = this.frustum.planes[5].normal, re = [];
|
|
23532
|
-
w >= C &&
|
|
23885
|
+
w >= C && AT(this.tileTree, (e) => {
|
|
23533
23886
|
if (!(e.level < C)) {
|
|
23534
23887
|
if (e.level > w || !this.frustum.intersectsBox(e.box)) return !1;
|
|
23535
23888
|
re.push(e);
|
|
@@ -23539,9 +23892,9 @@ var ET = class extends e.NodeMaterial {
|
|
|
23539
23892
|
re.sort((e, t) => {
|
|
23540
23893
|
if (e.level !== t.level) return e.level - t.level;
|
|
23541
23894
|
let n = P.get(e);
|
|
23542
|
-
n === void 0 && (n = e.box.getCenter(
|
|
23895
|
+
n === void 0 && (n = e.box.getCenter(MT).angleTo(ne), P.set(e, n));
|
|
23543
23896
|
let r = P.get(t);
|
|
23544
|
-
return r === void 0 && (r = t.box.getCenter(
|
|
23897
|
+
return r === void 0 && (r = t.box.getCenter(MT).angleTo(ne), P.set(t, r)), n - r;
|
|
23545
23898
|
});
|
|
23546
23899
|
let ie = /* @__PURE__ */ new WeakSet(), ae = this.observer.images.tiles;
|
|
23547
23900
|
if (ae) for (let t of re) {
|
|
@@ -23594,7 +23947,7 @@ var ET = class extends e.NodeMaterial {
|
|
|
23594
23947
|
generateMipmaps: !1,
|
|
23595
23948
|
fetcher: $y(this.fiveId, this.observer.work)
|
|
23596
23949
|
}).then((e) => this.adoptTileTexture(e.body)) : Promise.resolve(void 0)]);
|
|
23597
|
-
m.then(([e, t]) => Promise.all([e ? jg(e, g) : Promise.resolve(), t ? jg(t, g) : Promise.resolve()])).then((e) => (this.pedding--, e), (e) => (this.pedding--, Promise.reject(e))), r = new
|
|
23950
|
+
m.then(([e, t]) => Promise.all([e ? jg(e, g) : Promise.resolve(), t ? jg(t, g) : Promise.resolve()])).then((e) => (this.pedding--, e), (e) => (this.pedding--, Promise.reject(e))), r = new QT(t, m, this.acquireTileMaterial(), this.releaseTileMaterial, this.releaseTileTexture), r.name = `tiling:tile-${o}`, r.visible = !1, r.appearDuration = this.appearDuration, this.tileMeshes.set(t, r), this.scene.add(r), r.updateTime(p), f = !0;
|
|
23598
23951
|
}
|
|
23599
23952
|
let F = [], I = [];
|
|
23600
23953
|
this.tileMeshes.forEach((e, t) => {
|
|
@@ -23605,33 +23958,33 @@ var ET = class extends e.NodeMaterial {
|
|
|
23605
23958
|
let L = I.sort((e, t) => t.activeTime - e.activeTime).slice(Math.max(0, this.maxCacheTile - F.length));
|
|
23606
23959
|
for (let e of L) this.tileMeshes.delete(e.node), this.scene.remove(e), e.dispose(), f = !0;
|
|
23607
23960
|
if (f) {
|
|
23608
|
-
let t = g.getRenderTarget(), n = g.getClearColor(
|
|
23609
|
-
g.autoClear = !0, g.autoClearColor = !0, g.autoClearDepth = !0, g.autoClearStencil = !0, g.setRenderTarget(this.renderTarget), g.setClearColor(new e.Color(0, 0, 0),
|
|
23961
|
+
let t = g.getRenderTarget(), n = g.getClearColor(HT), r = g.getClearAlpha(), i = g.autoClear, a = g.autoClearColor, o = g.autoClearDepth, s = g.autoClearStencil;
|
|
23962
|
+
g.autoClear = !0, g.autoClearColor = !0, g.autoClearDepth = !0, g.autoClearStencil = !0, g.setRenderTarget(this.renderTarget), g.setClearColor(new e.Color(0, 0, 0), VT), g.render(this.scene, this.camera), g.setRenderTarget(t), g.setClearColor(n, r), g.autoClear = i, g.autoClearColor = a, g.autoClearDepth = o, g.autoClearStencil = s;
|
|
23610
23963
|
}
|
|
23611
23964
|
return this.forceRenderWhenNextUpdate = !1, f;
|
|
23612
23965
|
}
|
|
23613
|
-
},
|
|
23614
|
-
|
|
23615
|
-
function
|
|
23966
|
+
}, aE = new e.Matrix4().makeRotationAxis(new e.Vector3(0, 1, 0), Math.PI), oE = new e.Matrix4(), sE = T(-1), cE = oe(.5, .5), lE = sb(2, 2, 2);
|
|
23967
|
+
lE.applyMatrix4(new e.Matrix4().makeScale(-1, 1, 1));
|
|
23968
|
+
function uE() {
|
|
23616
23969
|
let t = {
|
|
23617
23970
|
size: R(new e.Vector2()),
|
|
23618
23971
|
mapMatrix: R(new e.Matrix4()),
|
|
23619
23972
|
panoMatrix: R(new e.Matrix4()),
|
|
23620
23973
|
alpha: R(1),
|
|
23621
23974
|
map: L(new e.Texture())
|
|
23622
|
-
}, n = re.sub(_).normalize().toVar("cameraToVertex"), r = t.panoMatrix.toMat3().transpose().mul(n).toVar("panoDirection"), i = se(r.x.mul(
|
|
23975
|
+
}, n = re.sub(_).normalize().toVar("cameraToVertex"), r = t.panoMatrix.toMat3().transpose().mul(n).toVar("panoDirection"), i = se(r.x.mul(sE), r.y, r.z), a = t.mapMatrix.mul(V(i, 1)).toVar("mapCoods"), o = oe(T(.5).add(a.x.div(a.z).div(t.size.x)), T(.5).sub(a.y.div(a.z).div(t.size.y))).toVar("videoUv"), s = L(t.map, o), c = T(1).sub(I(T(0), a.z)).mul(T(1).sub(I(T(.5), m(o.x.sub(.5))))).mul(T(1).sub(I(T(.5), m(o.y.sub(.5))))), l = T(5).mul(T(1).sub(x(o, cE).div(.55).clamp(0, 1))).clamp(0, 1), u = new e.NodeMaterial();
|
|
23623
23976
|
return u.fragmentNode = V(s.rgb, c.mul(l).mul(t.alpha)), u.depthTest = !1, u.depthWrite = !1, u.fog = !1, u.blending = e.CustomBlending, u.blendSrc = e.SrcAlphaFactor, u.blendDst = e.OneMinusSrcAlphaFactor, u.blendSrcAlpha = e.OneFactor, u.blendDstAlpha = e.OneMinusSrcAlphaFactor, {
|
|
23624
23977
|
material: u,
|
|
23625
23978
|
u: t
|
|
23626
23979
|
};
|
|
23627
23980
|
}
|
|
23628
|
-
var
|
|
23981
|
+
var dE = class {
|
|
23629
23982
|
constructor() {
|
|
23630
|
-
let { material: t, u: n } =
|
|
23631
|
-
this.material = t, this.u = n, this.object = new e.Mesh(
|
|
23983
|
+
let { material: t, u: n } = uE();
|
|
23984
|
+
this.material = t, this.u = n, this.object = new e.Mesh(lE, this.material), this.object.visible = !1, this.object.renderOrder = -1, this.object.frustumCulled = !1, this.object.name = "pano-video", this.alphaMotion = new X({ alpha: 0 }), this.active = !1;
|
|
23632
23985
|
}
|
|
23633
23986
|
setMaterial(t) {
|
|
23634
|
-
t ? (this.u.size.value.copy(t.size), this.u.mapMatrix.value.copy(
|
|
23987
|
+
t ? (this.u.size.value.copy(t.size), this.u.mapMatrix.value.copy(oE.multiplyMatrices(aE, t.matrix).transpose()), this.u.panoMatrix.value.copy(t.panoMatrix), t.map.colorSpace = e.SRGBColorSpace, this.u.map.value = t.map, this.alphaMotion.set({ alpha: t.alpha }, 500).catch(Y)) : (this.u.size.value.setScalar(0), this.u.mapMatrix.value.identity(), this.u.panoMatrix.value.identity(), this.u.map.value = null, this.u.alpha.value = 0, this.alphaMotion.set({ alpha: 0 }, 0).catch(Y));
|
|
23635
23988
|
let n = t !== null;
|
|
23636
23989
|
this.active !== n && (this.active = n, this.object.visible = n);
|
|
23637
23990
|
}
|
|
@@ -23641,36 +23994,36 @@ var LT = class {
|
|
|
23641
23994
|
dispose() {
|
|
23642
23995
|
this.material.dispose();
|
|
23643
23996
|
}
|
|
23644
|
-
},
|
|
23645
|
-
function
|
|
23997
|
+
}, fE = new e.Color(0, 0, 0), pE = new e.Color();
|
|
23998
|
+
function mE(e) {
|
|
23646
23999
|
let t = e.mul(256 * 256 * 256).fract(), n = e.mul(256 * 256).fract().sub(t.mul(1 / 256)), r = e.mul(256).fract().sub(n.mul(1 / 256));
|
|
23647
24000
|
return V(t, n, r, e.sub(r.mul(1 / 256))).mul(256 / 255);
|
|
23648
24001
|
}
|
|
23649
|
-
var
|
|
23650
|
-
|
|
23651
|
-
function
|
|
23652
|
-
|
|
24002
|
+
var hE = R(0), gE = mE(v(D(re.sub(_)).div(hE), 0, 1)), _E = new e.NodeMaterial();
|
|
24003
|
+
_E.fragmentNode = gE, _E.fog = !1;
|
|
24004
|
+
function vE(e, t, n, r = 1e3) {
|
|
24005
|
+
hE.value = r, e.getClearColor(pE);
|
|
23653
24006
|
let i = e.getClearAlpha(), a = t.overrideMaterial;
|
|
23654
|
-
t.overrideMaterial =
|
|
24007
|
+
t.overrideMaterial = _E, e.setClearColor(fE, 0), n.update(e, t), e.setClearColor(pE, i), t.overrideMaterial = a;
|
|
23655
24008
|
}
|
|
23656
24009
|
//#endregion
|
|
23657
24010
|
//#region build/five/utils/error.js
|
|
23658
|
-
function
|
|
24011
|
+
function yE(e) {
|
|
23659
24012
|
if (e instanceof Error) return e;
|
|
23660
24013
|
let t = typeof e;
|
|
23661
24014
|
return Error(t && t === "object" ? JSON.stringify(e) : e);
|
|
23662
24015
|
}
|
|
23663
24016
|
//#endregion
|
|
23664
24017
|
//#region build/five/controllers/panorama.js
|
|
23665
|
-
var
|
|
24018
|
+
var bE = eg, xE = new e.Raycaster(), SE = new e.Vector3(), CE = [
|
|
23666
24019
|
new e.Vector3(0, 0, 0).multiplyScalar(.1),
|
|
23667
24020
|
new e.Vector3(1, 0, 0).multiplyScalar(.1),
|
|
23668
24021
|
new e.Vector3(-.5, 0, -Math.sqrt(3) / 2).multiplyScalar(.1),
|
|
23669
24022
|
new e.Vector3(-.5, 0, Math.sqrt(3) / 2).multiplyScalar(.1)
|
|
23670
|
-
],
|
|
24023
|
+
], wE = Object.assign(Object.assign({}, bT), {
|
|
23671
24024
|
maxAccessibleDistance: 5,
|
|
23672
24025
|
panoTapTriggerRadius: .5,
|
|
23673
|
-
panoCircleMeshCreator: (e, t) => e.position.distanceTo(e.standingPosition) > t.aerialObserverMinHeight ? new
|
|
24026
|
+
panoCircleMeshCreator: (e, t) => e.position.distanceTo(e.standingPosition) > t.aerialObserverMinHeight ? new dw() : new rw(),
|
|
23674
24027
|
adjustPanoCircleMeshPositionBasedOnModel: !1,
|
|
23675
24028
|
tileLevelForFov: ((e, t) => {
|
|
23676
24029
|
var n;
|
|
@@ -23680,20 +24033,20 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
23680
24033
|
tileAppearDuration: .5,
|
|
23681
24034
|
tileMaxRequest: 3,
|
|
23682
24035
|
flyEffectUseDepthBuffer: !1
|
|
23683
|
-
}),
|
|
24036
|
+
}), TE = class t extends xT {
|
|
23684
24037
|
static parseArgs(e) {
|
|
23685
24038
|
var n, r, i, a, o, s, c, l;
|
|
23686
24039
|
if (e instanceof t) return e;
|
|
23687
24040
|
let u = super.parseArgs(e);
|
|
23688
24041
|
return Object.assign(Object.assign({}, u), {
|
|
23689
|
-
maxAccessibleDistance: (n = e.maxAccessibleDistance) == null ?
|
|
23690
|
-
panoTapTriggerRadius: (r = e.panoTapTriggerRadius) == null ?
|
|
23691
|
-
panoCircleMeshCreator: (i = e.panoCircleMeshCreator) == null ?
|
|
23692
|
-
adjustPanoCircleMeshPositionBasedOnModel: (a = e.adjustPanoCircleMeshPositionBasedOnModel) == null ?
|
|
23693
|
-
tileLevelForFov: (o = e.tileLevelForFov) == null ?
|
|
23694
|
-
tileAppearDuration: (s = e.tileAppearDuration) == null ?
|
|
23695
|
-
tileMaxRequest: (c = e.tileMaxRequest) == null ?
|
|
23696
|
-
flyEffectUseDepthBuffer: (l = e.flyEffectUseDepthBuffer) == null ?
|
|
24042
|
+
maxAccessibleDistance: (n = e.maxAccessibleDistance) == null ? wE.maxAccessibleDistance : n,
|
|
24043
|
+
panoTapTriggerRadius: (r = e.panoTapTriggerRadius) == null ? wE.panoTapTriggerRadius : r,
|
|
24044
|
+
panoCircleMeshCreator: (i = e.panoCircleMeshCreator) == null ? wE.panoCircleMeshCreator : i,
|
|
24045
|
+
adjustPanoCircleMeshPositionBasedOnModel: (a = e.adjustPanoCircleMeshPositionBasedOnModel) == null ? wE.adjustPanoCircleMeshPositionBasedOnModel : a,
|
|
24046
|
+
tileLevelForFov: (o = e.tileLevelForFov) == null ? wE.tileLevelForFov : o,
|
|
24047
|
+
tileAppearDuration: (s = e.tileAppearDuration) == null ? wE.tileAppearDuration : s,
|
|
24048
|
+
tileMaxRequest: (c = e.tileMaxRequest) == null ? wE.tileMaxRequest : c,
|
|
24049
|
+
flyEffectUseDepthBuffer: (l = e.flyEffectUseDepthBuffer) == null ? wE.flyEffectUseDepthBuffer : l
|
|
23697
24050
|
});
|
|
23698
24051
|
}
|
|
23699
24052
|
static initAnimationEndState(e) {
|
|
@@ -23714,12 +24067,12 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
23714
24067
|
panoPicture: this.modelScene.parameter.resolveValue().pano1,
|
|
23715
24068
|
position: this.camera.pose.offset.clone(),
|
|
23716
24069
|
effect: "fly",
|
|
23717
|
-
effectEasing:
|
|
24070
|
+
effectEasing: bE,
|
|
23718
24071
|
fixCameraTransform: new e.Matrix4()
|
|
23719
|
-
}, this.panoPictureObserverMap = /* @__PURE__ */ new WeakMap(), this.textureLoader = new Qu(), this.tiling = new
|
|
24072
|
+
}, this.panoPictureObserverMap = /* @__PURE__ */ new WeakMap(), this.textureLoader = new Qu(), this.tiling = new iE({
|
|
23720
24073
|
fiveId: this.fiveId,
|
|
23721
24074
|
enableHDR: this.enableHDR
|
|
23722
|
-
}), this.panoVideo = new
|
|
24075
|
+
}), this.panoVideo = new dE(), this.scene.add(this.panoVideo.object), this.accessibleObserverFloorCheckCount = 0;
|
|
23723
24076
|
}
|
|
23724
24077
|
get tileLevel() {
|
|
23725
24078
|
return this.tiling.level;
|
|
@@ -23832,13 +24185,13 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
23832
24185
|
l !== this.currentPano && (this.currentPano = l, this.accessibleObserverFloorCheckCount = 0), this.emit("pano.moving", $("pano.moving", {
|
|
23833
24186
|
userAction: this.userAction,
|
|
23834
24187
|
prevPano: Qb(y.panoId),
|
|
23835
|
-
state: Object.assign(Object.assign(Object.assign(Object.assign({}, Qb(b.panoId)), { mode: this.mode }),
|
|
24188
|
+
state: Object.assign(Object.assign(Object.assign(Object.assign({}, Qb(b.panoId)), { mode: this.mode }), jw(this.camera.pose)), d),
|
|
23836
24189
|
options: {},
|
|
23837
24190
|
progress: this.locationMotion.progress,
|
|
23838
24191
|
error: null
|
|
23839
24192
|
}));
|
|
23840
24193
|
}
|
|
23841
|
-
|
|
24194
|
+
Pw(u) === !1 && this.modelScene.parameter.set(u), !this.modelScene.parameter.pano0 && this.modelScene.parameter.pano1 && this.modelScene.parameter.set("pano0", this.modelScene.parameter.pano1), Pw(d) === !1 && this.setCamera(d);
|
|
23842
24195
|
let S = this.works.getObserver(this.currentPano), C = this.locationMotion.ended ? this.getForwardObserverOrNot(this.camera) : null, w = this.works.getObserver(_.panoId), T = this.works.getObserver(v.panoId);
|
|
23843
24196
|
if (this.adjustPanoCircleMeshPositionBasedOnModel && this.helper.visible && S) {
|
|
23844
24197
|
let t = [], n = S.work.observers;
|
|
@@ -23859,9 +24212,9 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
23859
24212
|
let t = .3, i = .005, a = n.standingPosition.clone().applyMatrix4(n.work.transform), o = Zb({
|
|
23860
24213
|
panoIndex: n.panoIndex,
|
|
23861
24214
|
workCode: n.work.workCode
|
|
23862
|
-
}), s =
|
|
23863
|
-
|
|
23864
|
-
let [o] = r.intersectRaycaster(
|
|
24215
|
+
}), s = CE.map((n) => {
|
|
24216
|
+
xE.ray.origin.copy(a), xE.ray.origin.add(SE.copy(n).setY(t)), xE.ray.direction.set(0, -1, 0), xE.firstHitOnly = !0, xE.floorIndex = -1;
|
|
24217
|
+
let [o] = r.intersectRaycaster(xE);
|
|
23865
24218
|
return o && o.distance - i <= t ? new e.Vector3().copy(a).setY(o.point.y + i) : a;
|
|
23866
24219
|
});
|
|
23867
24220
|
s.sort((e, t) => t.y - e.y);
|
|
@@ -23908,7 +24261,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
23908
24261
|
else {
|
|
23909
24262
|
t.position.copy(r.standingPosition).applyMatrix4(r.work.transform);
|
|
23910
24263
|
let e = this.adjustPanoCircleMeshPositionFix.get(r.panoId);
|
|
23911
|
-
e && (
|
|
24264
|
+
e && (SE.set(e.x, e.y, e.z), SE.equals(t.position) && (t.position.y += e.w)), t.scale.setScalar(1.2);
|
|
23912
24265
|
}
|
|
23913
24266
|
let a = this.camera.position.clone().setY(t.position.y), o = new e.Vector3().copy(t.position).sub(a).normalize();
|
|
23914
24267
|
if (n === Zb(this.currentPano)) {
|
|
@@ -24015,9 +24368,9 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24015
24368
|
generateMipmaps: !1
|
|
24016
24369
|
});
|
|
24017
24370
|
let t = new e.CubeCamera(this.camera.near, this.camera.far, this.pano0DepthCubeRenderTarget);
|
|
24018
|
-
t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1,
|
|
24371
|
+
t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1, vE(this.renderer, this.modelScene, t, 500);
|
|
24019
24372
|
let i = new e.CubeCamera(this.camera.near, this.camera.far, this.pano1DepthCubeRenderTarget);
|
|
24020
|
-
i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1,
|
|
24373
|
+
i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1, vE(this.renderer, this.modelScene, i, 500), this.modelScene.parameter.set({
|
|
24021
24374
|
pano0Depth: {
|
|
24022
24375
|
panoId: n.panoId,
|
|
24023
24376
|
map: this.pano0DepthCubeRenderTarget.texture,
|
|
@@ -24103,7 +24456,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24103
24456
|
}
|
|
24104
24457
|
let v = "move-to-pano-" + s;
|
|
24105
24458
|
this.pending.add(v);
|
|
24106
|
-
let y =
|
|
24459
|
+
let y = Ew("pano.prepare", {
|
|
24107
24460
|
options: n,
|
|
24108
24461
|
prevMode: this.mode,
|
|
24109
24462
|
prevPano: this.currentPano,
|
|
@@ -24119,7 +24472,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24119
24472
|
let r = {
|
|
24120
24473
|
panoId: s,
|
|
24121
24474
|
effect: b,
|
|
24122
|
-
effectEasing: (o = n.effectEasing) == null ?
|
|
24475
|
+
effectEasing: (o = n.effectEasing) == null ? bE : o,
|
|
24123
24476
|
panoPicture: {
|
|
24124
24477
|
panoId: S.panoId,
|
|
24125
24478
|
map: S.map,
|
|
@@ -24135,13 +24488,13 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24135
24488
|
position: c.position.clone().applyMatrix4(c.work.transform),
|
|
24136
24489
|
fixCameraTransform: new e.Matrix4()
|
|
24137
24490
|
};
|
|
24138
|
-
r.panoPicture && this.panoPictureObserverMap.set(r.panoPicture, c), this.pendingTextureTask = void 0, Promise.resolve().then(() =>
|
|
24491
|
+
r.panoPicture && this.panoPictureObserverMap.set(r.panoPicture, c), this.pendingTextureTask = void 0, Promise.resolve().then(() => Dw(y)).then(() => {
|
|
24139
24492
|
Bu.shared.add(() => {
|
|
24140
24493
|
this.pending.delete(v), this.doMoveToPano(t, r, n);
|
|
24141
24494
|
}, !0, 1);
|
|
24142
24495
|
}).catch((e) => {
|
|
24143
24496
|
var r;
|
|
24144
|
-
let i =
|
|
24497
|
+
let i = yE(e), a = Object.assign(Object.assign(Object.assign({}, t), { mode: this.mode }), jw(this.camera.pose));
|
|
24145
24498
|
this.emit("pano.error", $("pano.error", {
|
|
24146
24499
|
error: i,
|
|
24147
24500
|
userAction: this.userAction,
|
|
@@ -24169,10 +24522,10 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24169
24522
|
if (this.destroyed) l.dispose();
|
|
24170
24523
|
else {
|
|
24171
24524
|
l.name = _;
|
|
24172
|
-
let r = Array.isArray(l.image) ? l.image[0] : l.image, u = (a = r == null ? void 0 : r.width) == null ? 2048 : a, { data: d } = yield
|
|
24525
|
+
let r = Array.isArray(l.image) ? l.image[0] : l.image, u = (a = r == null ? void 0 : r.width) == null ? 2048 : a, { data: d } = yield Xw(this.renderer, l, !0, cS), f = new fS().formPixels(d), p = {
|
|
24173
24526
|
panoId: s,
|
|
24174
24527
|
effect: b,
|
|
24175
|
-
effectEasing: (o = n.effectEasing) == null ?
|
|
24528
|
+
effectEasing: (o = n.effectEasing) == null ? bE : o,
|
|
24176
24529
|
panoPicture: {
|
|
24177
24530
|
panoId: s,
|
|
24178
24531
|
map: l,
|
|
@@ -24189,7 +24542,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24189
24542
|
}
|
|
24190
24543
|
}),
|
|
24191
24544
|
onError: (e) => {
|
|
24192
|
-
let r = Object.assign(Object.assign(Object.assign({}, t), { mode: this.mode }),
|
|
24545
|
+
let r = Object.assign(Object.assign(Object.assign({}, t), { mode: this.mode }), jw(this.camera.pose));
|
|
24193
24546
|
this.emit("pano.error", $("pano.error", {
|
|
24194
24547
|
error: e,
|
|
24195
24548
|
userAction: this.userAction,
|
|
@@ -24237,7 +24590,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24237
24590
|
}, void 0, void 0, void 0, this.renderer)]).then(([e, t]) => ({
|
|
24238
24591
|
config: e,
|
|
24239
24592
|
map: t.body
|
|
24240
|
-
})) : Promise.resolve(void 0), E = Promise.resolve().then(() =>
|
|
24593
|
+
})) : Promise.resolve(void 0), E = Promise.resolve().then(() => Dw(y)).then(() => null).catch((e) => yE(e));
|
|
24241
24594
|
Promise.all([
|
|
24242
24595
|
w,
|
|
24243
24596
|
T,
|
|
@@ -24312,7 +24665,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24312
24665
|
})), this.initAnimationed = !0, e();
|
|
24313
24666
|
},
|
|
24314
24667
|
moveCancelCallback: () => {
|
|
24315
|
-
let t = Object.assign(Object.assign(Object.assign({}, o), { mode: this.mode }),
|
|
24668
|
+
let t = Object.assign(Object.assign(Object.assign({}, o), { mode: this.mode }), jw(this.camera.pose));
|
|
24316
24669
|
l === !1 && this.emit("initAnimation.start", $("initAnimation.start", {
|
|
24317
24670
|
state: t,
|
|
24318
24671
|
userAction: this.userAction
|
|
@@ -24474,7 +24827,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24474
24827
|
panoMatrix: n.matrix.clone().premultiply(n.work.transform),
|
|
24475
24828
|
alpha: 1
|
|
24476
24829
|
}, t = gn(), r = this.videoTexture.image;
|
|
24477
|
-
r.setAttribute("uuid", t), r.oncanplay = Y, r.ontimeupdate = Y,
|
|
24830
|
+
r.setAttribute("uuid", t), r.oncanplay = Y, r.ontimeupdate = Y, wT().then((i) => {
|
|
24478
24831
|
i && n.images.video && r.getAttribute("uuid") === t && (r.oncanplay = () => {
|
|
24479
24832
|
r.oncanplay = Y, r.play();
|
|
24480
24833
|
}, r.ontimeupdate = () => {
|
|
@@ -24520,9 +24873,9 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24520
24873
|
return Math.abs(i.z) > 1 || Math.abs(i.x) > 1 || Math.abs(i.y) > 1 ? !1 : n.loadable || n.active;
|
|
24521
24874
|
}), u = /* @__PURE__ */ new Map(), d = l.slice().sort((e, t) => {
|
|
24522
24875
|
let n = c[e], r = u.get(n);
|
|
24523
|
-
r === void 0 && (r =
|
|
24876
|
+
r === void 0 && (r = SE.copy(n.standingPosition).applyMatrix4(n.work.transform).distanceTo(a), u.set(n, r));
|
|
24524
24877
|
let i = c[t], o = u.get(i);
|
|
24525
|
-
return o === void 0 && (o =
|
|
24878
|
+
return o === void 0 && (o = SE.copy(i.standingPosition).applyMatrix4(i.work.transform).distanceTo(a), u.set(i, o)), r - o;
|
|
24526
24879
|
});
|
|
24527
24880
|
u.clear();
|
|
24528
24881
|
for (let e of [
|
|
@@ -24533,13 +24886,13 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24533
24886
|
]) for (let t of d) {
|
|
24534
24887
|
let n = c[t];
|
|
24535
24888
|
if (n) {
|
|
24536
|
-
let t =
|
|
24889
|
+
let t = SE.copy(n.standingPosition).applyMatrix4(n.work.transform).sub(a);
|
|
24537
24890
|
if (t && t.length() !== 0 && s.angleTo(t) < e) return n;
|
|
24538
24891
|
}
|
|
24539
24892
|
}
|
|
24540
24893
|
let f = null;
|
|
24541
24894
|
if (n) {
|
|
24542
|
-
let e = n.ray.intersectBox(this.modelScene.boundingBox,
|
|
24895
|
+
let e = n.ray.intersectBox(this.modelScene.boundingBox, SE);
|
|
24543
24896
|
e && (e.project(t), Math.abs(e.z) <= 1 && (f = e.clone()));
|
|
24544
24897
|
} else f = new e.Vector3(0, 0, 0);
|
|
24545
24898
|
if (f) {
|
|
@@ -24551,15 +24904,15 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24551
24904
|
return Math.abs(i.z) > 1 || Math.abs(i.x) > 1 || Math.abs(i.y) > 1 ? !1 : n.loadable || n.active;
|
|
24552
24905
|
}), n = /* @__PURE__ */ new Map(), i = e.slice().sort((e, r) => {
|
|
24553
24906
|
let i = c[e], a = n.get(i);
|
|
24554
|
-
a === void 0 && (a =
|
|
24907
|
+
a === void 0 && (a = SE.copy(i.position).applyMatrix4(i.work.transform).distanceTo(t.position), n.set(i, a));
|
|
24555
24908
|
let o = c[r], s = n.get(o);
|
|
24556
|
-
return s === void 0 && (s =
|
|
24909
|
+
return s === void 0 && (s = SE.copy(o.position).applyMatrix4(o.work.transform).distanceTo(t.position), n.set(o, s)), a - s;
|
|
24557
24910
|
});
|
|
24558
24911
|
n.clear();
|
|
24559
24912
|
for (let e of i) {
|
|
24560
24913
|
let n = c[e];
|
|
24561
24914
|
if (n) {
|
|
24562
|
-
let e =
|
|
24915
|
+
let e = SE.copy(n.position).applyMatrix4(n.work.transform);
|
|
24563
24916
|
if (e.project(t), Math.abs(e.z) > 1) continue;
|
|
24564
24917
|
if (Math.pow(f.x - e.x, 2) + Math.pow(f.y - e.y, 2) < Math.pow(.4, 2)) return n;
|
|
24565
24918
|
}
|
|
@@ -24577,12 +24930,12 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24577
24930
|
let s = o.work.observers, c = o.accessibleNodes.filter((e) => {
|
|
24578
24931
|
if (e === this.currentPano.panoIndex && o.work.workCode === this.currentPano.workCode) return !1;
|
|
24579
24932
|
let t = s[e];
|
|
24580
|
-
return !t ||
|
|
24933
|
+
return !t || SE.copy(t.position).applyMatrix4(t.work.transform).distanceTo(this.camera.position) > this.maxAccessibleDistance ? !1 : t.loadable || t.active;
|
|
24581
24934
|
}), [l] = this.modelScene.intersectRaycaster(r);
|
|
24582
24935
|
if (l) {
|
|
24583
24936
|
let [e, t] = Im(c, (e) => {
|
|
24584
24937
|
let t = s[e];
|
|
24585
|
-
return t ?
|
|
24938
|
+
return t ? SE.copy(t.standingPosition).applyMatrix4(t.work.transform).distanceTo(l.point) : Infinity;
|
|
24586
24939
|
}, !0);
|
|
24587
24940
|
typeof e == "number" && t < this.panoTapTriggerRadius && (a = (n = s[e]) == null ? null : n);
|
|
24588
24941
|
}
|
|
@@ -24634,21 +24987,21 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24634
24987
|
}
|
|
24635
24988
|
}
|
|
24636
24989
|
}
|
|
24637
|
-
},
|
|
24990
|
+
}, EE = Math.PI / 180, DE = 180 / Math.PI, OE = .001, kE = 1, AE = (() => {
|
|
24638
24991
|
let e = typeof navigator < "u" && /iPad|iPhone|iPod/.test(navigator.platform);
|
|
24639
24992
|
return () => e;
|
|
24640
|
-
})(),
|
|
24993
|
+
})(), jE = (() => {
|
|
24641
24994
|
let e = typeof navigator < "u" && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
24642
24995
|
return () => e;
|
|
24643
|
-
})(),
|
|
24996
|
+
})(), ME = (() => {
|
|
24644
24997
|
let e = typeof navigator < "u" && navigator.userAgent.indexOf("Firefox") !== -1 && navigator.userAgent.indexOf("Android") !== -1;
|
|
24645
24998
|
return () => e;
|
|
24646
|
-
})(),
|
|
24999
|
+
})(), NE = (() => {
|
|
24647
25000
|
let e = typeof navigator < "u" ? navigator.userAgent.match(/.*Chrome\/([0-9]+)/) : null, t = e ? parseInt(e[1], 10) : null;
|
|
24648
25001
|
return () => t;
|
|
24649
|
-
})(),
|
|
25002
|
+
})(), PE = (() => {
|
|
24650
25003
|
let e = !1;
|
|
24651
|
-
if (
|
|
25004
|
+
if (NE() === 65) {
|
|
24652
25005
|
let t = typeof navigator < "u" ? navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/) : null;
|
|
24653
25006
|
if (t) {
|
|
24654
25007
|
let [n, r, i, a] = t[1].split(".");
|
|
@@ -24656,41 +25009,41 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24656
25009
|
}
|
|
24657
25010
|
}
|
|
24658
25011
|
return () => e;
|
|
24659
|
-
})(),
|
|
24660
|
-
let e =
|
|
25012
|
+
})(), FE = (() => {
|
|
25013
|
+
let e = AE() && jE() && typeof navigator < "u" && navigator.userAgent.indexOf("13_4") !== -1;
|
|
24661
25014
|
return () => e;
|
|
24662
|
-
})(),
|
|
25015
|
+
})(), IE = (() => {
|
|
24663
25016
|
let e = typeof navigator < "u" && navigator.userAgent.indexOf("R7 Build") !== -1;
|
|
24664
25017
|
return () => e;
|
|
24665
25018
|
})();
|
|
24666
|
-
function
|
|
25019
|
+
function LE() {
|
|
24667
25020
|
let e = typeof window < "u" && (window.orientation == 90 || window.orientation == -90);
|
|
24668
|
-
return
|
|
25021
|
+
return IE() ? !e : e;
|
|
24669
25022
|
}
|
|
24670
|
-
function
|
|
24671
|
-
return !(isNaN(e) || e <=
|
|
25023
|
+
function RE(e) {
|
|
25024
|
+
return !(isNaN(e) || e <= OE || e > kE);
|
|
24672
25025
|
}
|
|
24673
|
-
function
|
|
25026
|
+
function zE(e) {
|
|
24674
25027
|
return e.w > 1 ? 0 : 2 * Math.acos(e.w);
|
|
24675
25028
|
}
|
|
24676
|
-
var
|
|
25029
|
+
var BE = (() => {
|
|
24677
25030
|
let e = {};
|
|
24678
25031
|
return (t, n) => {
|
|
24679
25032
|
e[t] === void 0 && (console.warn("cardboard: " + n), e[t] = !0);
|
|
24680
25033
|
};
|
|
24681
25034
|
})();
|
|
24682
|
-
function
|
|
25035
|
+
function VE(e) {
|
|
24683
25036
|
let t, n = e.indexOf("://");
|
|
24684
25037
|
t = n === -1 ? 0 : n + 3;
|
|
24685
25038
|
let r = e.indexOf("/", t);
|
|
24686
25039
|
return r === -1 && (r = e.length), e.substring(0, r);
|
|
24687
25040
|
}
|
|
24688
|
-
function
|
|
25041
|
+
function HE() {
|
|
24689
25042
|
if (typeof window > "u" || typeof document > "u") return !1;
|
|
24690
|
-
let e = window.self !== window.top, t =
|
|
25043
|
+
let e = window.self !== window.top, t = VE(document.referrer), n = VE(window.location.href);
|
|
24691
25044
|
return e && t !== n;
|
|
24692
25045
|
}
|
|
24693
|
-
var
|
|
25046
|
+
var UE = (() => {
|
|
24694
25047
|
function e(e, t, n) {
|
|
24695
25048
|
let r = t ? t[0] : 0, i = t ? t[1] : 0, a = t ? t[2] : 0, o = t ? t[3] : 1, s = r + r, c = i + i, l = a + a, u = r * s, d = r * c, f = r * l, p = i * c, m = i * l, h = a * l, g = o * s, _ = o * c, v = o * l;
|
|
24696
25049
|
return e[0] = 1 - (p + h), e[1] = d + v, e[2] = f - _, e[3] = 0, e[4] = d - v, e[5] = 1 - (u + h), e[6] = m + g, e[7] = 0, e[8] = f + _, e[9] = m - g, e[10] = 1 - (u + p), e[11] = 0, e[12] = n ? n[0] : 0, e[13] = n ? n[1] : 0, e[14] = n ? n[2] : 0, e[15] = 1, e;
|
|
@@ -24706,7 +25059,7 @@ var hE = (() => {
|
|
|
24706
25059
|
return (r, i, a) => {
|
|
24707
25060
|
e(r, i), a && t(r, r, a), n(r, r);
|
|
24708
25061
|
};
|
|
24709
|
-
})(),
|
|
25062
|
+
})(), WE = class {
|
|
24710
25063
|
constructor(t = new e.Vector3(), n = 0) {
|
|
24711
25064
|
this.sample = t, this.timestampS = n;
|
|
24712
25065
|
}
|
|
@@ -24716,15 +25069,15 @@ var hE = (() => {
|
|
|
24716
25069
|
copy(e) {
|
|
24717
25070
|
this.set(e.sample, e.timestampS);
|
|
24718
25071
|
}
|
|
24719
|
-
},
|
|
25072
|
+
}, GE = class {
|
|
24720
25073
|
constructor(t, n) {
|
|
24721
|
-
this.kFilter = t, this.isDebug = n, this.currentAccelMeasurement = new
|
|
25074
|
+
this.kFilter = t, this.isDebug = n, this.currentAccelMeasurement = new WE(), this.currentGyroMeasurement = new WE(), this.previousGyroMeasurement = new WE(), AE() ? this.filterQ = new e.Quaternion(-1, 0, 0, 1) : this.filterQ = new e.Quaternion(1, 0, 0, 1), this.previousFilterQ = new e.Quaternion(), this.previousFilterQ.copy(this.filterQ), this.accelQ = new e.Quaternion(), this.isOrientationInitialized = !1, this.estimatedGravity = new e.Vector3(), this.measuredGravity = new e.Vector3(), this.gyroIntegralQ = new e.Quaternion();
|
|
24722
25075
|
}
|
|
24723
25076
|
addAccelMeasurement(e, t) {
|
|
24724
25077
|
this.currentAccelMeasurement.set(e, t);
|
|
24725
25078
|
}
|
|
24726
25079
|
addGyroMeasurement(e, t) {
|
|
24727
|
-
this.currentGyroMeasurement.set(e, t),
|
|
25080
|
+
this.currentGyroMeasurement.set(e, t), RE(t - this.previousGyroMeasurement.timestampS) && this.run_(), this.previousGyroMeasurement.copy(this.currentGyroMeasurement);
|
|
24728
25081
|
}
|
|
24729
25082
|
getOrientation() {
|
|
24730
25083
|
return this.filterQ;
|
|
@@ -24739,7 +25092,7 @@ var hE = (() => {
|
|
|
24739
25092
|
let r = new e.Quaternion();
|
|
24740
25093
|
r.copy(this.filterQ), r.invert(), this.estimatedGravity.set(0, 0, -1), this.estimatedGravity.applyQuaternion(r), this.estimatedGravity.normalize(), this.measuredGravity.copy(this.currentAccelMeasurement.sample), this.measuredGravity.normalize();
|
|
24741
25094
|
let i = new e.Quaternion();
|
|
24742
|
-
i.setFromUnitVectors(this.estimatedGravity, this.measuredGravity), i.invert(), this.isDebug && console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)",
|
|
25095
|
+
i.setFromUnitVectors(this.estimatedGravity, this.measuredGravity), i.invert(), this.isDebug && console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)", DE * zE(i), this.estimatedGravity.x.toFixed(1), this.estimatedGravity.y.toFixed(1), this.estimatedGravity.z.toFixed(1), this.measuredGravity.x.toFixed(1), this.measuredGravity.y.toFixed(1), this.measuredGravity.z.toFixed(1));
|
|
24743
25096
|
let a = new e.Quaternion();
|
|
24744
25097
|
a.copy(this.filterQ), a.multiply(i), this.filterQ.slerp(a, 1 - this.kFilter), this.previousFilterQ.copy(this.filterQ);
|
|
24745
25098
|
}
|
|
@@ -24753,7 +25106,7 @@ var hE = (() => {
|
|
|
24753
25106
|
let r = new e.Quaternion(), i = new e.Vector3();
|
|
24754
25107
|
return i.copy(t), i.normalize(), r.setFromAxisAngle(i, t.length() * n), r;
|
|
24755
25108
|
}
|
|
24756
|
-
},
|
|
25109
|
+
}, KE = class {
|
|
24757
25110
|
constructor(t, n) {
|
|
24758
25111
|
this.predictionTimeS = t, this.isDebug = n, this.previousQ = new e.Quaternion(), this.previousTimestampS = null, this.deltaQ = new e.Quaternion(), this.outQ = new e.Quaternion();
|
|
24759
25112
|
}
|
|
@@ -24762,11 +25115,11 @@ var hE = (() => {
|
|
|
24762
25115
|
let i = new e.Vector3();
|
|
24763
25116
|
i.copy(n), i.normalize();
|
|
24764
25117
|
let a = n.length();
|
|
24765
|
-
if (a <
|
|
25118
|
+
if (a < EE * 20) return this.isDebug && console.log("Moving slowly, at %s deg/s: no prediction", (DE * a).toFixed(1)), this.outQ.copy(t), this.previousQ.copy(t), this.outQ;
|
|
24766
25119
|
let o = a * this.predictionTimeS;
|
|
24767
25120
|
return this.deltaQ.setFromAxisAngle(i, o), this.outQ.copy(this.previousQ), this.outQ.multiply(this.deltaQ), this.previousQ.copy(t), this.previousTimestampS = r, this.outQ;
|
|
24768
25121
|
}
|
|
24769
|
-
},
|
|
25122
|
+
}, qE = class {
|
|
24770
25123
|
constructor(e) {
|
|
24771
25124
|
this.coefficients = e;
|
|
24772
25125
|
}
|
|
@@ -24783,15 +25136,15 @@ var hE = (() => {
|
|
|
24783
25136
|
for (let e = 0; e < this.coefficients.length; e++) n = t * (n + this.coefficients[e]);
|
|
24784
25137
|
return (n + 1) * e;
|
|
24785
25138
|
}
|
|
24786
|
-
},
|
|
25139
|
+
}, JE = class {
|
|
24787
25140
|
constructor() {
|
|
24788
25141
|
this.angularAcceleration = null, this.angularVelocity = null, this.linearAcceleration = null, this.linearVelocity = null, this.orientation = null, this.position = null;
|
|
24789
25142
|
}
|
|
24790
|
-
},
|
|
25143
|
+
}, YE = class {
|
|
24791
25144
|
constructor() {
|
|
24792
25145
|
this.leftDegrees = 0, this.rightDegrees = 0, this.upDegrees = 0, this.downDegrees = 0;
|
|
24793
25146
|
}
|
|
24794
|
-
},
|
|
25147
|
+
}, XE = class {
|
|
24795
25148
|
constructor(t, n, r, i) {
|
|
24796
25149
|
this.viewer = {
|
|
24797
25150
|
id: "CardboardV1",
|
|
@@ -24819,11 +25172,11 @@ var hE = (() => {
|
|
|
24819
25172
|
widthMeters: .11,
|
|
24820
25173
|
heightMeters: .062,
|
|
24821
25174
|
bevelMeters: .004
|
|
24822
|
-
}, this.depthNear = .01, this.depthFar = 1e4, this.yawOnly = r, this.accelerometer = new e.Vector3(), this.gyroscope = new e.Vector3(), this.filter = new
|
|
24823
|
-
let a =
|
|
24824
|
-
this.isDeviceMotionInRadians = !this.isIOS && a !== null && a < 66, this.isWithoutDeviceMotion =
|
|
25175
|
+
}, this.depthNear = .01, this.depthFar = 1e4, this.yawOnly = r, this.accelerometer = new e.Vector3(), this.gyroscope = new e.Vector3(), this.filter = new GE(t, i), this.posePredictor = new KE(n, i), this.isFirefoxAndroid = ME(), this.isIOS = AE();
|
|
25176
|
+
let a = NE();
|
|
25177
|
+
this.isDeviceMotionInRadians = !this.isIOS && a !== null && a < 66, this.isWithoutDeviceMotion = PE() || FE(), this.filterToWorldQ = new e.Quaternion(), AE() ? this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1, 0, 0), Math.PI / 2) : this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1, 0, 0), -Math.PI / 2), this.inverseWorldToScreenQ = new e.Quaternion(), this.worldToScreenQ = new e.Quaternion(), this.originalPoseAdjustQ = new e.Quaternion();
|
|
24825
25178
|
let o = typeof window < "u" ? -window.orientation * Math.PI / 180 : 0;
|
|
24826
|
-
this.originalPoseAdjustQ.setFromAxisAngle(new e.Vector3(0, 0, 1), o), this.setScreenTransform_(),
|
|
25179
|
+
this.originalPoseAdjustQ.setFromAxisAngle(new e.Vector3(0, 0, 1), o), this.setScreenTransform_(), LE() && this.filterToWorldQ.multiply(this.inverseWorldToScreenQ), this.resetQ = new e.Quaternion(), this.orientationOut_ = /* @__PURE__ */ new Float32Array(4), this.previousTimestampS = Date.now();
|
|
24827
25180
|
}
|
|
24828
25181
|
getPosition() {
|
|
24829
25182
|
return null;
|
|
@@ -24848,20 +25201,20 @@ var hE = (() => {
|
|
|
24848
25201
|
return n.copy(this.filterToWorldQ), n.multiply(this.resetQ), n.multiply(t), n.multiply(this.worldToScreenQ), this.yawOnly && (n.x = 0, n.z = 0, n.normalize()), this.orientationOut_[0] = n.x, this.orientationOut_[1] = n.y, this.orientationOut_[2] = n.z, this.orientationOut_[3] = n.w, this.orientationOut_;
|
|
24849
25202
|
}
|
|
24850
25203
|
getPose() {
|
|
24851
|
-
let e = new
|
|
25204
|
+
let e = new JE();
|
|
24852
25205
|
return e.orientation = this.getOrientation(), e;
|
|
24853
25206
|
}
|
|
24854
25207
|
resetPose() {
|
|
24855
|
-
this.resetQ.copy(this.filter.getOrientation()), this.resetQ.x = 0, this.resetQ.y = 0, this.resetQ.z *= -1, this.resetQ.normalize(),
|
|
25208
|
+
this.resetQ.copy(this.filter.getOrientation()), this.resetQ.x = 0, this.resetQ.y = 0, this.resetQ.z *= -1, this.resetQ.normalize(), LE() && this.resetQ.multiply(this.inverseWorldToScreenQ), this.resetQ.multiply(this.originalPoseAdjustQ);
|
|
24856
25209
|
}
|
|
24857
25210
|
getFrameData(e) {
|
|
24858
25211
|
let t = this.getOrientation(), n = this.getEyeOffset(), r = this.getEyeProjectionMatrix();
|
|
24859
|
-
return e.pose.angularAcceleration = null, e.pose.angularVelocity = null, e.pose.linearAcceleration = null, e.pose.linearVelocity = null, e.pose.orientation = t, e.pose.position = null, e.timestamp = this.previousTimestampS, e.leftProjectionMatrix.set(r.left), e.rightProjectionMatrix.set(r.right),
|
|
25212
|
+
return e.pose.angularAcceleration = null, e.pose.angularVelocity = null, e.pose.linearAcceleration = null, e.pose.linearVelocity = null, e.pose.orientation = t, e.pose.position = null, e.timestamp = this.previousTimestampS, e.leftProjectionMatrix.set(r.left), e.rightProjectionMatrix.set(r.right), UE(e.leftViewMatrix, t, n.left), UE(e.rightViewMatrix, t, n.right), e;
|
|
24860
25213
|
}
|
|
24861
25214
|
start() {
|
|
24862
25215
|
if (typeof window > "u") return () => {};
|
|
24863
25216
|
let e = this.onDeviceMotion_.bind(this), t = this.onOrientationChange_.bind(this), n = this.onMessage_.bind(this), r = this.onDeviceOrientation_.bind(this);
|
|
24864
|
-
return
|
|
25217
|
+
return AE() && HE() && window.addEventListener("message", n), window.addEventListener("orientationchange", t), this.isWithoutDeviceMotion ? window.addEventListener("deviceorientation", r) : window.addEventListener("devicemotion", e), () => {
|
|
24865
25218
|
window.removeEventListener("devicemotion", e), window.removeEventListener("deviceorientation", t), window.removeEventListener("orientationchange", t), window.removeEventListener("message", n);
|
|
24866
25219
|
};
|
|
24867
25220
|
}
|
|
@@ -24885,17 +25238,17 @@ var hE = (() => {
|
|
|
24885
25238
|
right: []
|
|
24886
25239
|
};
|
|
24887
25240
|
{
|
|
24888
|
-
let i = e.left.upDegrees *
|
|
25241
|
+
let i = e.left.upDegrees * EE, a = e.left.downDegrees * EE, o = e.left.leftDegrees * EE, s = e.left.rightDegrees * EE, c = 2 / (o + s), l = 2 / (i + a);
|
|
24889
25242
|
r.left[0] = c, r.left[1] = 0, r.left[2] = 0, r.left[3] = 0, r.left[4] = 0, r.left[5] = l, r.left[6] = 0, r.left[7] = 0, r.left[8] = -((o - s) * c * .5), r.left[9] = (i - a) * l * .5, r.left[10] = n / (t - n), r.left[11] = -1, r.left[12] = 0, r.left[13] = 0, r.left[14] = n * t / (t - n), r.left[15] = 0;
|
|
24890
25243
|
}
|
|
24891
25244
|
{
|
|
24892
|
-
let i = e.right.upDegrees *
|
|
25245
|
+
let i = e.right.upDegrees * EE, a = e.right.downDegrees * EE, o = e.right.leftDegrees * EE, s = e.right.rightDegrees * EE, c = 2 / (o + s), l = 2 / (i + a);
|
|
24893
25246
|
r.right[0] = c, r.right[1] = 0, r.right[2] = 0, r.right[3] = 0, r.right[4] = 0, r.right[5] = l, r.right[6] = 0, r.right[7] = 0, r.right[8] = -((o - s) * c * .5), r.right[9] = (i - a) * l * .5, r.right[10] = n / (t - n), r.right[11] = -1, r.right[12] = 0, r.right[13] = 0, r.right[14] = n * t / (t - n), r.right[15] = 0;
|
|
24894
25247
|
}
|
|
24895
25248
|
return r;
|
|
24896
25249
|
}
|
|
24897
25250
|
getEyeFieldOfView() {
|
|
24898
|
-
let e = this.viewer, t = this.device, n = new
|
|
25251
|
+
let e = this.viewer, t = this.device, n = new qE(e.distortionCoefficients), r = e.screenLensDistance, i = (t.widthMeters - e.interLensDistance) / 2, a = e.interLensDistance / 2, o = e.baselineLensDistance - t.bevelMeters, s = t.heightMeters - o, c = DE * Math.atan(n.distort(i / r)), l = DE * Math.atan(n.distort(a / r)), u = DE * Math.atan(n.distort(o / r)), d = DE * Math.atan(n.distort(s / r)), f = new YE(), p = new YE();
|
|
24899
25252
|
return f.leftDegrees = Math.min(c, e.fov), f.rightDegrees = Math.min(l, e.fov), f.downDegrees = Math.min(u, e.fov), f.upDegrees = Math.min(d, e.fov), p.leftDegrees = f.rightDegrees, p.rightDegrees = f.leftDegrees, p.upDegrees = f.upDegrees, p.downDegrees = f.downDegrees, {
|
|
24900
25253
|
left: f,
|
|
24901
25254
|
right: p
|
|
@@ -24912,13 +25265,13 @@ var hE = (() => {
|
|
|
24912
25265
|
updateDeviceMotion_(e) {
|
|
24913
25266
|
let t = e.accelerationIncludingGravity, n = e.rotationRate, r = e.timeStamp / 1e3, i = r - this.previousTimestampS;
|
|
24914
25267
|
if (i < 0) {
|
|
24915
|
-
|
|
25268
|
+
BE("fusion-pose-sensor:invalid:non-monotonic", "Invalid timestamps detected: non-monotonic timestamp from devicemotion"), this.previousTimestampS = r;
|
|
24916
25269
|
return;
|
|
24917
|
-
} else if (i <=
|
|
24918
|
-
|
|
25270
|
+
} else if (i <= OE || i > kE) {
|
|
25271
|
+
BE("fusion-pose-sensor:invalid:outside-threshold", "Invalid timestamps detected: Timestamp from devicemotion outside expected range."), this.previousTimestampS = r;
|
|
24919
25272
|
return;
|
|
24920
25273
|
}
|
|
24921
|
-
t && (this.accelerometer.set(-t.x, -t.y, -t.z), n && (
|
|
25274
|
+
t && (this.accelerometer.set(-t.x, -t.y, -t.z), n && (IE() ? this.gyroscope.set(-n.beta, n.alpha, n.gamma) : this.gyroscope.set(n.alpha, n.beta, n.gamma), this.isDeviceMotionInRadians || this.gyroscope.multiplyScalar(Math.PI / 180), this.filter.addGyroMeasurement(this.gyroscope, r)), this.filter.addAccelMeasurement(this.accelerometer, r)), this.previousTimestampS = r;
|
|
24922
25275
|
}
|
|
24923
25276
|
onOrientationChange_() {
|
|
24924
25277
|
this.setScreenTransform_();
|
|
@@ -24940,19 +25293,19 @@ var hE = (() => {
|
|
|
24940
25293
|
}
|
|
24941
25294
|
this.inverseWorldToScreenQ.copy(this.worldToScreenQ), this.inverseWorldToScreenQ.invert();
|
|
24942
25295
|
}
|
|
24943
|
-
},
|
|
25296
|
+
}, ZE = [
|
|
24944
25297
|
0,
|
|
24945
25298
|
0,
|
|
24946
25299
|
.5,
|
|
24947
25300
|
1
|
|
24948
|
-
],
|
|
25301
|
+
], QE = [
|
|
24949
25302
|
.5,
|
|
24950
25303
|
0,
|
|
24951
25304
|
.5,
|
|
24952
25305
|
1
|
|
24953
|
-
],
|
|
25306
|
+
], $E = class {
|
|
24954
25307
|
constructor(t) {
|
|
24955
|
-
this.renderer = t, this.sensor = new
|
|
25308
|
+
this.renderer = t, this.sensor = new XE(.98, .04, !1, !1), this.scale = 1, this.cameraL = new e.PerspectiveCamera(), this.cameraR = new e.PerspectiveCamera();
|
|
24956
25309
|
let n = this.sensor.start();
|
|
24957
25310
|
this.dispose = () => {
|
|
24958
25311
|
let t = this.renderer.getSize(new e.Vector2());
|
|
@@ -24965,15 +25318,15 @@ var hE = (() => {
|
|
|
24965
25318
|
var i = t.matrixWorldAutoUpdate;
|
|
24966
25319
|
i && (t.updateMatrixWorld(), t.matrixWorldAutoUpdate = !1);
|
|
24967
25320
|
let a = {
|
|
24968
|
-
x: Math.round(r.width *
|
|
24969
|
-
y: Math.round(r.height *
|
|
24970
|
-
width: Math.round(r.width *
|
|
24971
|
-
height: Math.round(r.height *
|
|
25321
|
+
x: Math.round(r.width * ZE[0]),
|
|
25322
|
+
y: Math.round(r.height * ZE[1]),
|
|
25323
|
+
width: Math.round(r.width * ZE[2]),
|
|
25324
|
+
height: Math.round(r.height * ZE[3])
|
|
24972
25325
|
}, o = {
|
|
24973
|
-
x: Math.round(r.width *
|
|
24974
|
-
y: Math.round(r.height *
|
|
24975
|
-
width: Math.round(r.width *
|
|
24976
|
-
height: Math.round(r.height *
|
|
25326
|
+
x: Math.round(r.width * QE[0]),
|
|
25327
|
+
y: Math.round(r.height * QE[1]),
|
|
25328
|
+
width: Math.round(r.width * QE[2]),
|
|
25329
|
+
height: Math.round(r.height * QE[3])
|
|
24977
25330
|
};
|
|
24978
25331
|
this.renderer.setScissorTest(!0), this.renderer.autoClear && this.renderer.clear(), n.parent === null && n.updateMatrixWorld(), n.matrixWorld.decompose(this.cameraL.position, this.cameraL.quaternion, this.cameraL.scale), n.matrixWorld.decompose(this.cameraR.position, this.cameraR.quaternion, this.cameraR.scale);
|
|
24979
25332
|
let s = this.sensor.getEyeOffset();
|
|
@@ -24983,7 +25336,7 @@ var hE = (() => {
|
|
|
24983
25336
|
} else this.renderer.render(t, n);
|
|
24984
25337
|
}
|
|
24985
25338
|
dispose() {}
|
|
24986
|
-
}, EE = "data:image/png;base64,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", DE = "data:image/png;base64,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", OE, kE = {
|
|
25339
|
+
}, eD = "data:image/png;base64,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", tD = "data:image/png;base64,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", nD, rD = {
|
|
24987
25340
|
zh: {
|
|
24988
25341
|
TITLE: "眼镜模式",
|
|
24989
25342
|
HIT: "请将手机横屏放入 VR 眼镜中"
|
|
@@ -24996,7 +25349,7 @@ var hE = (() => {
|
|
|
24996
25349
|
TITLE: "メガネモード",
|
|
24997
25350
|
HIT: "携帯電話をVRメガネに水平に入れてください。"
|
|
24998
25351
|
}
|
|
24999
|
-
},
|
|
25352
|
+
}, iD = typeof navigator < "u" ? (nD = rD[navigator.language.split("-")[0]]) == null ? rD.zh : nD : rD.zh, aD = `
|
|
25000
25353
|
<style>
|
|
25001
25354
|
.$id {
|
|
25002
25355
|
all: initial;
|
|
@@ -25079,7 +25432,7 @@ var hE = (() => {
|
|
|
25079
25432
|
.$id-modal-content-guide-cardboard-image {
|
|
25080
25433
|
width: 100px;
|
|
25081
25434
|
height: 82px;
|
|
25082
|
-
background-image: url(${
|
|
25435
|
+
background-image: url(${eD});
|
|
25083
25436
|
background-size: 100%;
|
|
25084
25437
|
background-repeat: no-repeat;
|
|
25085
25438
|
}
|
|
@@ -25121,7 +25474,7 @@ var hE = (() => {
|
|
|
25121
25474
|
.$id-modal-content-guide-phone-image {
|
|
25122
25475
|
width: 58px;
|
|
25123
25476
|
height: 56px;
|
|
25124
|
-
background-image: url(${
|
|
25477
|
+
background-image: url(${tD});
|
|
25125
25478
|
background-size: 100%;
|
|
25126
25479
|
background-repeat: no-repeat;
|
|
25127
25480
|
}
|
|
@@ -25198,8 +25551,8 @@ Z
|
|
|
25198
25551
|
</div>
|
|
25199
25552
|
</div>
|
|
25200
25553
|
<div class="$id-modal-content">
|
|
25201
|
-
<div class="$id-modal-content-title">${
|
|
25202
|
-
<div class="$id-modal-content-hit">${
|
|
25554
|
+
<div class="$id-modal-content-title">${iD.TITLE}</div>
|
|
25555
|
+
<div class="$id-modal-content-hit">${iD.HIT}</div>
|
|
25203
25556
|
<div class="$id-modal-content-guide">
|
|
25204
25557
|
<div class="$id-modal-content-guide-phone">
|
|
25205
25558
|
<div class="$id-modal-content-guide-phone-move-x">
|
|
@@ -25258,7 +25611,7 @@ Z
|
|
|
25258
25611
|
</div>
|
|
25259
25612
|
</div>
|
|
25260
25613
|
`;
|
|
25261
|
-
function
|
|
25614
|
+
function oD(e) {
|
|
25262
25615
|
let t = 1, n = document.getElementsByTagName("meta");
|
|
25263
25616
|
for (let e = 0; e < n.length; e++) {
|
|
25264
25617
|
let r = n[e];
|
|
@@ -25268,31 +25621,31 @@ function ME(e) {
|
|
|
25268
25621
|
}
|
|
25269
25622
|
}
|
|
25270
25623
|
let r = (e) => Math.floor(e * t) + "px";
|
|
25271
|
-
return
|
|
25624
|
+
return aD.replace(/\n/g, " ").replace(/\ +/g, " ").replace(/\$id/g, e).replace(/(\d+)px/g, (e, t) => r(Number(t)));
|
|
25272
25625
|
}
|
|
25273
|
-
function
|
|
25274
|
-
let e = "five_vr_helper_" + gn(), t =
|
|
25626
|
+
function sD() {
|
|
25627
|
+
let e = "five_vr_helper_" + gn(), t = oD(e), n = document.createElement("div");
|
|
25275
25628
|
return n.className = e, n.innerHTML = t, n;
|
|
25276
25629
|
}
|
|
25277
25630
|
//#endregion
|
|
25278
25631
|
//#region build/five/meshes/panoSphereMesh.js
|
|
25279
|
-
var
|
|
25280
|
-
function
|
|
25281
|
-
let n = D(
|
|
25282
|
-
return F(t, t.add(
|
|
25632
|
+
var cD = new e.CircleGeometry(.12, 16), lD = oe(.5, .5), uD = T(.017);
|
|
25633
|
+
function dD(e, t) {
|
|
25634
|
+
let n = D(lD.sub(e));
|
|
25635
|
+
return F(t, t.add(uD), n);
|
|
25283
25636
|
}
|
|
25284
|
-
function
|
|
25285
|
-
let n = D(
|
|
25286
|
-
return T(1).sub(F(t.sub(
|
|
25637
|
+
function fD(e, t) {
|
|
25638
|
+
let n = D(lD.sub(e));
|
|
25639
|
+
return T(1).sub(F(t.sub(uD), t, n));
|
|
25287
25640
|
}
|
|
25288
|
-
function
|
|
25289
|
-
let t = { opacity: R(0) }, n = z(), r = D(
|
|
25641
|
+
function pD() {
|
|
25642
|
+
let t = { opacity: R(0) }, n = z(), r = D(lD.sub(n)), i = T(.01), a = T(.49), o = T(.29), s = T(1).sub(F(a.sub(i), a, r)), c = F(o, o.add(i), r), l = V(.576, .635, 1, .3), u = V(1, 1, 1, m(r.sub(a.add(o).div(2))).div(a.sub(o)).mul(1.5).add(.1).clamp(0, 1)), d = j(l, u, u.w), f = new e.NodeMaterial();
|
|
25290
25643
|
return f.fragmentNode = V(d.xyz, d.w.mul(t.opacity).mul(s).mul(c)), f.blending = e.CustomBlending, f.blendSrc = e.SrcAlphaFactor, f.blendDst = e.OneMinusSrcAlphaFactor, f.blendSrcAlpha = e.OneFactor, f.blendDstAlpha = e.OneMinusSrcAlphaFactor, f.depthWrite = !1, f.transparent = !0, {
|
|
25291
25644
|
material: f,
|
|
25292
25645
|
u: t
|
|
25293
25646
|
};
|
|
25294
25647
|
}
|
|
25295
|
-
function
|
|
25648
|
+
function mD() {
|
|
25296
25649
|
let t = {
|
|
25297
25650
|
circleScale: R(1),
|
|
25298
25651
|
circleFade: R(0),
|
|
@@ -25302,8 +25655,8 @@ function BE() {
|
|
|
25302
25655
|
opacity: R(0),
|
|
25303
25656
|
disable: R(0)
|
|
25304
25657
|
}, n = z();
|
|
25305
|
-
D(
|
|
25306
|
-
let r = T(.98).add(m(ee(oe(1, -1)).dot(n.sub(
|
|
25658
|
+
D(lD.sub(n));
|
|
25659
|
+
let r = T(.98).add(m(ee(oe(1, -1)).dot(n.sub(lD))).mul(2)).clamp(0, 1), i = V(j(V(.576, .635, 1, 1).xyz, V(1, 1, 1, 1).xyz, t.circleFade.mul(.5)), r.mul(t.circleOpacity).mul(fD(n, T(.3).mul(t.circleScale)))), a = M(f.sub(h(lD.x.sub(n.x), lD.y.sub(n.y))).add(t.loadingAngle), p), o = V(1, 1, 1, T(1).sub(F(T(0), p, a)).mul(.9).add(.1).mul(t.loadingOpacity).mul(dD(n, T(.2).mul(t.circleScale))).mul(fD(n, T(.25).mul(t.circleScale)))), s = V(1, 1, 1, T(.5).mul(fD(n, T(.32).mul(t.circleScale)))), c = V(1, 1, 1, 0);
|
|
25307
25660
|
c = j(c, i, i.w), c = j(c, o, o.w), c = j(c, s, t.disable);
|
|
25308
25661
|
let l = V(c.xyz, c.w.mul(t.opacity)), u = new e.NodeMaterial();
|
|
25309
25662
|
return u.fragmentNode = l, u.blending = e.CustomBlending, u.blendSrc = e.SrcAlphaFactor, u.blendDst = e.OneMinusSrcAlphaFactor, u.blendSrcAlpha = e.OneFactor, u.blendDstAlpha = e.OneMinusSrcAlphaFactor, u.depthWrite = !1, u.transparent = !0, {
|
|
@@ -25311,7 +25664,7 @@ function BE() {
|
|
|
25311
25664
|
u: t
|
|
25312
25665
|
};
|
|
25313
25666
|
}
|
|
25314
|
-
var
|
|
25667
|
+
var hD = class extends e.Object3D {
|
|
25315
25668
|
constructor() {
|
|
25316
25669
|
super(), this.progress = 0, this.opacity = 0, this.loading = !1, this.current = !1, this.disabled = !1, this.currentMotion = new X({
|
|
25317
25670
|
ringScale: 1.1,
|
|
@@ -25319,7 +25672,7 @@ var VE = class extends e.Object3D {
|
|
|
25319
25672
|
circleFade: 0,
|
|
25320
25673
|
circleOpacity: .85,
|
|
25321
25674
|
circleScale: 1
|
|
25322
|
-
}), this.opacityMotion = new X({ opacity: 0 }), this.loadingMotion = new X({ opacity: 0 }), this.disableMotion = new X({ opacity: 0 }), this.hitTestMesh = new e.Mesh(
|
|
25675
|
+
}), this.opacityMotion = new X({ opacity: 0 }), this.loadingMotion = new X({ opacity: 0 }), this.disableMotion = new X({ opacity: 0 }), this.hitTestMesh = new e.Mesh(cD, new e.MeshBasicMaterial({
|
|
25323
25676
|
blending: e.CustomBlending,
|
|
25324
25677
|
blendSrc: e.SrcAlphaFactor,
|
|
25325
25678
|
blendDst: e.OneMinusSrcAlphaFactor,
|
|
@@ -25330,10 +25683,10 @@ var VE = class extends e.Object3D {
|
|
|
25330
25683
|
color: 0,
|
|
25331
25684
|
opacity: 0
|
|
25332
25685
|
})), this.hitTestMesh.scale.set(1.5, 1.5, 1.5);
|
|
25333
|
-
let { material: t, u: n } =
|
|
25334
|
-
this.ringMesh = new e.Mesh(
|
|
25335
|
-
let { material: r, u: i } =
|
|
25336
|
-
this.panoMesh = new e.Mesh(
|
|
25686
|
+
let { material: t, u: n } = pD();
|
|
25687
|
+
this.ringMesh = new e.Mesh(cD, t), this.ringU = n;
|
|
25688
|
+
let { material: r, u: i } = mD();
|
|
25689
|
+
this.panoMesh = new e.Mesh(cD, r), this.panoU = i, this.add(this.hitTestMesh), this.add(this.ringMesh), this.add(this.panoMesh), this.renderOrder = 1e4, this.needsRender = !0;
|
|
25337
25690
|
}
|
|
25338
25691
|
setProgress(e) {
|
|
25339
25692
|
this.progress = e, this.setLoading(e > 0);
|
|
@@ -25476,7 +25829,7 @@ var VE = class extends e.Object3D {
|
|
|
25476
25829
|
dispose() {
|
|
25477
25830
|
this.hitTestMesh.material.dispose(), this.ringMesh.material.dispose(), this.panoMesh.material.dispose();
|
|
25478
25831
|
}
|
|
25479
|
-
},
|
|
25832
|
+
}, gD = 1500, _D = Object.assign({}, Ql(wE, ["maxLatitude", "minLatitude"])), vD = class t extends TE {
|
|
25480
25833
|
static parseArgs(e) {
|
|
25481
25834
|
if (e instanceof t) return e;
|
|
25482
25835
|
let n = Object.assign(Object.assign({}, e), {
|
|
@@ -25491,10 +25844,10 @@ var VE = class extends e.Object3D {
|
|
|
25491
25844
|
}
|
|
25492
25845
|
constructor(e) {
|
|
25493
25846
|
let n = t.parseArgs(e);
|
|
25494
|
-
super(n), this.mode = "VRPanorama", this.cardboard = new
|
|
25495
|
-
let r =
|
|
25847
|
+
super(n), this.mode = "VRPanorama", this.cardboard = new $E(this.renderer);
|
|
25848
|
+
let r = sD();
|
|
25496
25849
|
this.helperElement = r;
|
|
25497
|
-
let i = new
|
|
25850
|
+
let i = new Zw(r);
|
|
25498
25851
|
this.element.parentNode && (this.element.parentNode.insertBefore(r, this.element), this.updateHelperElementSize(), i.on("tap", () => this.emit("vr.requestExit", $("vr.requestExit", {})))), this.destroyHelper = () => {
|
|
25499
25852
|
i.destroy(), r.parentNode && r.parentNode.removeChild(r), this.helperElement = void 0;
|
|
25500
25853
|
};
|
|
@@ -25567,17 +25920,17 @@ var VE = class extends e.Object3D {
|
|
|
25567
25920
|
this.currentPano = Qb(_.panoId), this.emit("pano.moving", $("pano.moving", {
|
|
25568
25921
|
userAction: this.userAction,
|
|
25569
25922
|
prevPano: Qb(v.panoId),
|
|
25570
|
-
state: Object.assign(Object.assign(Object.assign(Object.assign({}, Qb(y.panoId)), { mode: this.mode }),
|
|
25923
|
+
state: Object.assign(Object.assign(Object.assign(Object.assign({}, Qb(y.panoId)), { mode: this.mode }), jw(this.camera.pose)), d),
|
|
25571
25924
|
options: {},
|
|
25572
25925
|
progress: this.locationMotion.progress,
|
|
25573
25926
|
error: null
|
|
25574
25927
|
}));
|
|
25575
25928
|
}
|
|
25576
|
-
|
|
25929
|
+
Pw(u) === !1 && this.modelScene.parameter.set(u), d.offset && this.camera.position.copy(d.offset);
|
|
25577
25930
|
let x = this.camera.pose.longitude, S = this.camera.pose.latitude;
|
|
25578
25931
|
this.camera.quaternion.fromArray(this.cardboard.sensor.getOrientation()), this.camera.computePose(), (x !== this.camera.pose.longitude || S !== this.camera.pose.latitude) && (this.cameraMotion.set(Zl(this.camera.pose, ["longitude", "latitude"]), 0).catch(Y), this.emit("camera.update", $("camera.update", {
|
|
25579
25932
|
userAction: !0,
|
|
25580
|
-
state: Object.assign(Object.assign(Object.assign({}, this.currentPano), { mode: this.mode }),
|
|
25933
|
+
state: Object.assign(Object.assign(Object.assign({}, this.currentPano), { mode: this.mode }), jw(this.camera.pose))
|
|
25581
25934
|
}))), this.works.getObserver(this.currentPano);
|
|
25582
25935
|
let C = this.works.getObserver(g.panoId), w = this.works.getObserver(_.panoId), T = /* @__PURE__ */ new Map();
|
|
25583
25936
|
if (C) for (let e of C.accessibleNodes) {
|
|
@@ -25604,7 +25957,7 @@ var VE = class extends e.Object3D {
|
|
|
25604
25957
|
let n = T.get(t);
|
|
25605
25958
|
n ? (e.position.copy(n.position).applyMatrix4(n.work.transform), T.delete(t)) : (this.helper.remove(e), e.dispose(), this.panoMeshes.delete(t));
|
|
25606
25959
|
}), T.forEach((e, t) => {
|
|
25607
|
-
let n = new
|
|
25960
|
+
let n = new hD();
|
|
25608
25961
|
n.position.copy(e.position).applyMatrix4(e.work.transform), e.position.distanceTo(e.standingPosition) > this.aerialObserverMinHeight ? n.scale.setScalar(15) : n.scale.setScalar(1), this.panoMeshes.set(t, n), this.helper.add(n), T.delete(t);
|
|
25609
25962
|
}), this.camera.pose.distance > .1 || b ? this.panoMeshes.forEach((e, r) => {
|
|
25610
25963
|
e.setOpacity(0), e.updateTime && e.updateTime(t, n), e.visible = !1;
|
|
@@ -25685,9 +26038,9 @@ var VE = class extends e.Object3D {
|
|
|
25685
26038
|
generateMipmaps: !1
|
|
25686
26039
|
});
|
|
25687
26040
|
let t = new e.CubeCamera(this.camera.near, this.camera.far, this.pano0DepthCubeRenderTarget);
|
|
25688
|
-
t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1,
|
|
26041
|
+
t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1, vE(this.renderer, this.modelScene, t, 500);
|
|
25689
26042
|
let i = new e.CubeCamera(this.camera.near, this.camera.far, this.pano1DepthCubeRenderTarget);
|
|
25690
|
-
i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1,
|
|
26043
|
+
i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1, vE(this.renderer, this.modelScene, i, 500), this.modelScene.parameter.set({
|
|
25691
26044
|
pano0Depth: {
|
|
25692
26045
|
panoId: n.panoId,
|
|
25693
26046
|
map: this.pano0DepthCubeRenderTarget.texture,
|
|
@@ -25724,7 +26077,7 @@ var VE = class extends e.Object3D {
|
|
|
25724
26077
|
this.intersectMesh.visible = !1, this.activePanoMesh = void 0, this.activeTime = void 0;
|
|
25725
26078
|
return;
|
|
25726
26079
|
}
|
|
25727
|
-
if (this.activePanoMesh && this.activeTime && t - this.activeTime >
|
|
26080
|
+
if (this.activePanoMesh && this.activeTime && t - this.activeTime > gD) {
|
|
25728
26081
|
let e = this.activePanoMesh, t = null;
|
|
25729
26082
|
return this.panoMeshes.forEach((n, r) => {
|
|
25730
26083
|
n === e && (t = r);
|
|
@@ -25776,13 +26129,13 @@ var VE = class extends e.Object3D {
|
|
|
25776
26129
|
onPinchGesture() {}
|
|
25777
26130
|
onMouseMove() {}
|
|
25778
26131
|
onMouseOut() {}
|
|
25779
|
-
},
|
|
26132
|
+
}, yD = .01, bD = "183", xD = {
|
|
25780
26133
|
isXRRenderTarget: !0,
|
|
25781
26134
|
_hasExternalTextures: !1,
|
|
25782
26135
|
_autoAllocateDepthBuffer: !0,
|
|
25783
26136
|
_isOpaqueFramebuffer: !0
|
|
25784
26137
|
};
|
|
25785
|
-
function
|
|
26138
|
+
function SD(t, n, r, i) {
|
|
25786
26139
|
let a = new e.RenderTarget(n, r, {
|
|
25787
26140
|
format: e.RGBAFormat,
|
|
25788
26141
|
type: e.UnsignedByteType,
|
|
@@ -25791,9 +26144,9 @@ function JE(t, n, r, i) {
|
|
|
25791
26144
|
resolveDepthBuffer: i,
|
|
25792
26145
|
resolveStencilBuffer: i
|
|
25793
26146
|
});
|
|
25794
|
-
return Object.assign(a,
|
|
26147
|
+
return Object.assign(a, xD), a;
|
|
25795
26148
|
}
|
|
25796
|
-
var
|
|
26149
|
+
var CD = class {
|
|
25797
26150
|
constructor(t, n = {}) {
|
|
25798
26151
|
var r;
|
|
25799
26152
|
this.resources = null, this.warnedRevision = !1, this._outputBufferType = null, this.clearColorScratch = new e.Color(), this.viewportScratch = new e.Vector4(), this.renderer = t, this.atlasSamples = (r = n.atlasSamples) == null ? 0 : r;
|
|
@@ -25804,16 +26157,16 @@ var YE = class {
|
|
|
25804
26157
|
verify() {
|
|
25805
26158
|
let t = this.renderer, n = [], r = t.backend;
|
|
25806
26159
|
r ? (r.isWebGLBackend !== !0 && n.push("backend.isWebGLBackend"), typeof r.setXRTarget != "function" && n.push("backend.setXRTarget")) : n.push("renderer.backend"), typeof t.setOutputRenderTarget != "function" && n.push("renderer.setOutputRenderTarget"), typeof t.getOutputRenderTarget != "function" && n.push("renderer.getOutputRenderTarget");
|
|
25807
|
-
let i =
|
|
26160
|
+
let i = SD(this.renderer, 1, 1, !0);
|
|
25808
26161
|
try {
|
|
25809
26162
|
let e = i;
|
|
25810
|
-
for (let [t, r] of Object.entries(
|
|
26163
|
+
for (let [t, r] of Object.entries(xD)) e[t] !== r && n.push(`xrRT.${t}(期望 ${String(r)},实际 ${String(e[t])})`);
|
|
25811
26164
|
for (let t of ["multiview", "resolveDepthBuffer"]) e[t] === void 0 && n.push(`xrRT.${t}`);
|
|
25812
26165
|
} finally {
|
|
25813
26166
|
i.dispose();
|
|
25814
26167
|
}
|
|
25815
26168
|
if (n.length > 0) throw Error(`[RenderTargetBridge] three 内部 API 校验失败(THREE.REVISION=${e.REVISION}),缺失或不符:${n.join("、")}`);
|
|
25816
|
-
e.REVISION !==
|
|
26169
|
+
e.REVISION !== bD && !this.warnedRevision && (this.warnedRevision = !0, console.warn(`[RenderTargetBridge] THREE.REVISION=${e.REVISION},XR 标志位语义仅在 r${bD} 复核过,继续运行`));
|
|
25817
26170
|
}
|
|
25818
26171
|
verifyCameras(t) {
|
|
25819
26172
|
let n = this.renderer.coordinateSystem, r = t.map((e, t) => e.coordinateSystem === n ? null : t).filter((e) => e !== null);
|
|
@@ -25847,7 +26200,7 @@ var YE = class {
|
|
|
25847
26200
|
}
|
|
25848
26201
|
i.setScissorTest(!1), o.setXRTarget(t.framebuffer), i.setRenderTarget(null), a.setOutputRenderTarget(l);
|
|
25849
26202
|
let m = i.getPixelRatio();
|
|
25850
|
-
i.setViewport(0, 0, (d +
|
|
26203
|
+
i.setViewport(0, 0, (d + yD) / m, (f + yD) / m), u.render(i);
|
|
25851
26204
|
} finally {
|
|
25852
26205
|
a.setOutputRenderTarget(s.output), o.setXRTarget(null), i.setRenderTarget(s.rt), i.autoClear = s.autoClear, i.autoClearColor = s.autoClearColor, i.autoClearDepth = s.autoClearDepth, i.autoClearStencil = s.autoClearStencil, i.setScissorTest(s.scissorTest), i.setViewport(s.viewport), i.setClearColor(s.clearColor, s.clearAlpha);
|
|
25853
26206
|
}
|
|
@@ -25875,7 +26228,7 @@ var YE = class {
|
|
|
25875
26228
|
generateMipmaps: !1,
|
|
25876
26229
|
minFilter: e.LinearFilter,
|
|
25877
26230
|
magFilter: e.LinearFilter
|
|
25878
|
-
}), a =
|
|
26231
|
+
}), a = SD(this.renderer, n, r, t.ignoreDepthValues === !1), o = new e.NodeMaterial();
|
|
25879
26232
|
o.fragmentNode = V(L(i.texture).rgb, 1), o.depthTest = !1, o.depthWrite = !1;
|
|
25880
26233
|
let s = new e.QuadMesh(o);
|
|
25881
26234
|
return this.resources = {
|
|
@@ -25896,7 +26249,7 @@ var YE = class {
|
|
|
25896
26249
|
let t = (e = this.renderer.backend) == null ? void 0 : e.gl;
|
|
25897
26250
|
return t ? !!t.getExtension("EXT_color_buffer_float") || !!t.getExtension("EXT_color_buffer_half_float") : !1;
|
|
25898
26251
|
}
|
|
25899
|
-
},
|
|
26252
|
+
}, wD = class {
|
|
25900
26253
|
constructor() {
|
|
25901
26254
|
this.root = new e.Group(), this._entries = /* @__PURE__ */ new Map(), this._dir = new e.Vector3();
|
|
25902
26255
|
}
|
|
@@ -25946,8 +26299,8 @@ var YE = class {
|
|
|
25946
26299
|
let { position: r, orientation: i } = t.transform;
|
|
25947
26300
|
e.position.set(n.x + r.x, n.y + r.y, n.z + r.z), e.quaternion.set(i.x, i.y, i.z, i.w), e.visible = !0, e.updateMatrixWorld(!0);
|
|
25948
26301
|
}
|
|
25949
|
-
},
|
|
25950
|
-
function
|
|
26302
|
+
}, TD = 5e3;
|
|
26303
|
+
function ED(e) {
|
|
25951
26304
|
let t = [.../* @__PURE__ */ new Set([
|
|
25952
26305
|
e,
|
|
25953
26306
|
"local",
|
|
@@ -25955,21 +26308,21 @@ function QE(e) {
|
|
|
25955
26308
|
])];
|
|
25956
26309
|
return t.slice(0, t.indexOf("viewer") + 1);
|
|
25957
26310
|
}
|
|
25958
|
-
function
|
|
26311
|
+
function DD() {
|
|
25959
26312
|
let e = /* @__PURE__ */ Error("会话在参考空间解析前已结束");
|
|
25960
26313
|
return e.aborted = !0, e;
|
|
25961
26314
|
}
|
|
25962
|
-
function
|
|
26315
|
+
function OD(e) {
|
|
25963
26316
|
return e.map((e) => `${e.type}(${e.reason})`).join(", ");
|
|
25964
26317
|
}
|
|
25965
|
-
function
|
|
26318
|
+
function kD(e, t) {
|
|
25966
26319
|
return Ti(this, arguments, void 0, function* (e, t, n = {}) {
|
|
25967
26320
|
var r, i, a;
|
|
25968
|
-
let o = (r = n.timeoutMs) == null ?
|
|
26321
|
+
let o = (r = n.timeoutMs) == null ? TD : r, s = n.isAborted, c = (i = n.schedule) == null ? ((e, t) => setTimeout(e, t)) : i, l = (a = n.clear) == null ? ((e) => clearTimeout(e)) : a, u = ED(t), d = [];
|
|
25969
26322
|
for (let n of u) {
|
|
25970
|
-
let r = yield
|
|
25971
|
-
if (s != null && s()) throw
|
|
25972
|
-
if (r.ok) return n !== t && console.warn(`[XR] 参考空间降级:期望 ${t},实际采用 ${n};失败:${
|
|
26323
|
+
let r = yield AD(e, n, o, c, l);
|
|
26324
|
+
if (s != null && s()) throw DD();
|
|
26325
|
+
if (r.ok) return n !== t && console.warn(`[XR] 参考空间降级:期望 ${t},实际采用 ${n};失败:${OD(d)}`), {
|
|
25973
26326
|
space: r.space,
|
|
25974
26327
|
type: n,
|
|
25975
26328
|
failures: d
|
|
@@ -25979,11 +26332,11 @@ function tD(e, t) {
|
|
|
25979
26332
|
reason: r.reason
|
|
25980
26333
|
});
|
|
25981
26334
|
}
|
|
25982
|
-
let f = /* @__PURE__ */ Error(`所有参考空间均不可用(期望 ${t}):${
|
|
26335
|
+
let f = /* @__PURE__ */ Error(`所有参考空间均不可用(期望 ${t}):${OD(d)}`);
|
|
25983
26336
|
throw f.attempts = d, f;
|
|
25984
26337
|
});
|
|
25985
26338
|
}
|
|
25986
|
-
function
|
|
26339
|
+
function AD(e, t, n, r, i) {
|
|
25987
26340
|
return Ti(this, void 0, void 0, function* () {
|
|
25988
26341
|
let a, o = !1, s = new Promise((n) => {
|
|
25989
26342
|
let r = (e) => {
|
|
@@ -26017,7 +26370,7 @@ function nD(e, t, n, r, i) {
|
|
|
26017
26370
|
}
|
|
26018
26371
|
//#endregion
|
|
26019
26372
|
//#region build/five/webxr/xrManager.js
|
|
26020
|
-
var
|
|
26373
|
+
var jD = 5e3, MD = "会话在进入过程中已结束", ND = class {
|
|
26021
26374
|
static isBackendXRCapable(e) {
|
|
26022
26375
|
let t = e.backend;
|
|
26023
26376
|
return (t == null ? void 0 : t.isWebGPUBackend) !== !0;
|
|
@@ -26039,7 +26392,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26039
26392
|
}
|
|
26040
26393
|
constructor(t, n, r) {
|
|
26041
26394
|
var i;
|
|
26042
|
-
this.inputs = new
|
|
26395
|
+
this.inputs = new wD(), this._isPresenting = !1, this._session = null, this._frame = null, this._referenceSpaceType = null, this.refSpace = null, this.layer = null, this.entering = !1, this.entered = !1, this.endedDuringEnter = !1, this.snapshot = null, this.listeners = [], this.firstFrameArrived = !1, this.firstFrameWaiter = null, this.frameNo = 0, this.submittedNear = NaN, this.submittedFar = NaN, this.offset = new e.Vector3(), this.info = {
|
|
26043
26396
|
time: 0,
|
|
26044
26397
|
hasPose: !1,
|
|
26045
26398
|
headOrientation: new e.Quaternion(),
|
|
@@ -26055,7 +26408,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26055
26408
|
var e;
|
|
26056
26409
|
if (this._session) {
|
|
26057
26410
|
if (!this.entered) {
|
|
26058
|
-
this.endedDuringEnter = !0, (e = this.firstFrameWaiter) == null || e.reject(/* @__PURE__ */ Error(
|
|
26411
|
+
this.endedDuringEnter = !0, (e = this.firstFrameWaiter) == null || e.reject(/* @__PURE__ */ Error(MD));
|
|
26059
26412
|
return;
|
|
26060
26413
|
}
|
|
26061
26414
|
this.teardown();
|
|
@@ -26068,7 +26421,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26068
26421
|
}, this.onSelectEvent = (e) => {
|
|
26069
26422
|
var t, n;
|
|
26070
26423
|
(n = (t = this.callbacks).onSelect) == null || n.call(t, e.inputSource);
|
|
26071
|
-
}, this.onReferenceSpaceReset = () => {}, this.renderer = t, this.options = n == null ? {} : n, this.callbacks = r, this.bridge = new
|
|
26424
|
+
}, this.onReferenceSpaceReset = () => {}, this.renderer = t, this.options = n == null ? {} : n, this.callbacks = r, this.bridge = new CD(t, { atlasSamples: (i = this.options.atlasSamples) == null ? 0 : i }), this.device = PC(), this.profile = RC(this.device, this.options.deviceProfile, (e) => {
|
|
26072
26425
|
console.warn(`[XR] Device_Profile 字段 ${e} 非法,已回落默认值`);
|
|
26073
26426
|
});
|
|
26074
26427
|
let a = () => {
|
|
@@ -26097,7 +26450,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26097
26450
|
this.layer = a;
|
|
26098
26451
|
let o = this.options.foveation;
|
|
26099
26452
|
o !== void 0 && "fixedFoveation" in a && (a.fixedFoveation = q(o, 0, 1)), e.updateRenderState({ baseLayer: a }), this.submittedNear = e.renderState.depthNear, this.submittedFar = e.renderState.depthFar, this.bridge.init(a);
|
|
26100
|
-
let s = yield
|
|
26453
|
+
let s = yield kD(e, (n = this.options.referenceSpaceType) == null ? "local-floor" : n, { isAborted: () => this.endedDuringEnter });
|
|
26101
26454
|
this.throwIfEnded(), this.refSpace = s.space, this._referenceSpaceType = s.type, this.listen(s.space, "reset", this.onReferenceSpaceReset), Bu.shared.setContext(e), yield this.waitFirstFrame(), this.throwIfEnded(), this.syncExistingInputSources(e), this.entering = !1, this.entered = !0, this._isPresenting = !0;
|
|
26102
26455
|
try {
|
|
26103
26456
|
this.callbacks.onSessionStart(e, this.device);
|
|
@@ -26105,7 +26458,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26105
26458
|
console.error("[XR] onSessionStart 回调抛错", e);
|
|
26106
26459
|
}
|
|
26107
26460
|
} catch (e) {
|
|
26108
|
-
throw this.rollback(), this.endedDuringEnter ? /* @__PURE__ */ Error(
|
|
26461
|
+
throw this.rollback(), this.endedDuringEnter ? /* @__PURE__ */ Error(MD) : e;
|
|
26109
26462
|
}
|
|
26110
26463
|
}
|
|
26111
26464
|
});
|
|
@@ -26124,7 +26477,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26124
26477
|
var e;
|
|
26125
26478
|
let t = this._session;
|
|
26126
26479
|
if (this.entering) {
|
|
26127
|
-
this.endedDuringEnter = !0, (e = this.firstFrameWaiter) == null || e.reject(/* @__PURE__ */ Error(
|
|
26480
|
+
this.endedDuringEnter = !0, (e = this.firstFrameWaiter) == null || e.reject(/* @__PURE__ */ Error(MD)), t && this.endQuietly(t);
|
|
26128
26481
|
return;
|
|
26129
26482
|
}
|
|
26130
26483
|
this.entered && t && (this.teardown(), this.endQuietly(t));
|
|
@@ -26198,12 +26551,12 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26198
26551
|
this.firstFrameArrived || (this.firstFrameArrived = !0, (e = this.firstFrameWaiter) == null || e.resolve());
|
|
26199
26552
|
}
|
|
26200
26553
|
throwIfEnded() {
|
|
26201
|
-
if (this.endedDuringEnter) throw Error(
|
|
26554
|
+
if (this.endedDuringEnter) throw Error(MD);
|
|
26202
26555
|
}
|
|
26203
26556
|
waitFirstFrame() {
|
|
26204
26557
|
var e;
|
|
26205
26558
|
if (this.firstFrameArrived) return Promise.resolve();
|
|
26206
|
-
let t = (e = this.options.firstFrameTimeoutMs) == null ?
|
|
26559
|
+
let t = (e = this.options.firstFrameTimeoutMs) == null ? jD : e;
|
|
26207
26560
|
return new Promise((e, n) => {
|
|
26208
26561
|
let r = setTimeout(() => {
|
|
26209
26562
|
this.firstFrameWaiter = null, n(/* @__PURE__ */ Error(`等待首帧超时(${t}ms 内未收到首个 XRFrame)`));
|
|
@@ -26263,7 +26616,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26263
26616
|
rollback() {
|
|
26264
26617
|
var e;
|
|
26265
26618
|
let t = this._session;
|
|
26266
|
-
(e = this.firstFrameWaiter) == null || e.reject(/* @__PURE__ */ Error(
|
|
26619
|
+
(e = this.firstFrameWaiter) == null || e.reject(/* @__PURE__ */ Error(MD)), this.removeListeners(), this.inputs.clear(), this.bridge.dispose(), this.releaseFrameSource(t), this.restoreRendererState(), this.clearReferences(), this._isPresenting = !1, this.entering = !1, this.entered = !1;
|
|
26267
26620
|
}
|
|
26268
26621
|
teardown() {
|
|
26269
26622
|
var e, t;
|
|
@@ -26283,7 +26636,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26283
26636
|
Promise.resolve(e.end()).catch(() => {});
|
|
26284
26637
|
} catch (e) {}
|
|
26285
26638
|
}
|
|
26286
|
-
},
|
|
26639
|
+
}, PD = {
|
|
26287
26640
|
Handedness: Object.freeze({
|
|
26288
26641
|
NONE: "none",
|
|
26289
26642
|
LEFT: "left",
|
|
@@ -26314,24 +26667,24 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26314
26667
|
VISIBILITY: "visibility"
|
|
26315
26668
|
})
|
|
26316
26669
|
};
|
|
26317
|
-
function
|
|
26670
|
+
function FD(e) {
|
|
26318
26671
|
return Ti(this, void 0, void 0, function* () {
|
|
26319
26672
|
let t = yield fetch(e);
|
|
26320
26673
|
if (t.ok) return t.json();
|
|
26321
26674
|
throw Error(t.statusText);
|
|
26322
26675
|
});
|
|
26323
26676
|
}
|
|
26324
|
-
function
|
|
26677
|
+
function ID(e) {
|
|
26325
26678
|
return Ti(this, void 0, void 0, function* () {
|
|
26326
26679
|
if (!e) throw Error("No basePath supplied");
|
|
26327
|
-
return yield
|
|
26680
|
+
return yield FD(`${e}/profilesList.json`);
|
|
26328
26681
|
});
|
|
26329
26682
|
}
|
|
26330
|
-
function
|
|
26683
|
+
function LD(e, t) {
|
|
26331
26684
|
return Ti(this, arguments, void 0, function* (e, t, n = null, r = !0) {
|
|
26332
26685
|
if (!e) throw Error("No xrInputSource supplied");
|
|
26333
26686
|
if (!t) throw Error("No basePath supplied");
|
|
26334
|
-
let i = yield
|
|
26687
|
+
let i = yield ID(t), a;
|
|
26335
26688
|
if (e.profiles.some((e) => {
|
|
26336
26689
|
let n = i[e];
|
|
26337
26690
|
return n && (a = {
|
|
@@ -26349,7 +26702,7 @@ function lD(e, t) {
|
|
|
26349
26702
|
deprecated: !!e.deprecated
|
|
26350
26703
|
};
|
|
26351
26704
|
}
|
|
26352
|
-
let o = yield
|
|
26705
|
+
let o = yield FD(a.profilePath), s;
|
|
26353
26706
|
if (r) {
|
|
26354
26707
|
let t;
|
|
26355
26708
|
if (t = o.layouts[e.handedness], !t) throw Error(`No matching handedness, ${e.handedness}, in profile ${a.profileId}`);
|
|
@@ -26361,13 +26714,13 @@ function lD(e, t) {
|
|
|
26361
26714
|
};
|
|
26362
26715
|
});
|
|
26363
26716
|
}
|
|
26364
|
-
var
|
|
26717
|
+
var RD = {
|
|
26365
26718
|
xAxis: 0,
|
|
26366
26719
|
yAxis: 0,
|
|
26367
26720
|
button: 0,
|
|
26368
|
-
state:
|
|
26721
|
+
state: PD.ComponentState.DEFAULT
|
|
26369
26722
|
};
|
|
26370
|
-
function
|
|
26723
|
+
function zD(e = 0, t = 0) {
|
|
26371
26724
|
let n = e, r = t;
|
|
26372
26725
|
if (Math.sqrt(e * e + t * t) > 1) {
|
|
26373
26726
|
let i = Math.atan2(t, e);
|
|
@@ -26378,36 +26731,36 @@ function dD(e = 0, t = 0) {
|
|
|
26378
26731
|
normalizedYAxis: r * .5 + .5
|
|
26379
26732
|
};
|
|
26380
26733
|
}
|
|
26381
|
-
var
|
|
26734
|
+
var BD = class {
|
|
26382
26735
|
constructor(e) {
|
|
26383
|
-
this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty ===
|
|
26736
|
+
this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty === PD.VisualResponseProperty.TRANSFORM && (this.minNodeName = e.minNodeName, this.maxNodeName = e.maxNodeName), this.value = 0, this.updateFromComponent(RD);
|
|
26384
26737
|
}
|
|
26385
26738
|
updateFromComponent({ xAxis: e, yAxis: t, button: n, state: r }) {
|
|
26386
|
-
let { normalizedXAxis: i, normalizedYAxis: a } =
|
|
26739
|
+
let { normalizedXAxis: i, normalizedYAxis: a } = zD(e, t);
|
|
26387
26740
|
switch (this.componentProperty) {
|
|
26388
|
-
case
|
|
26741
|
+
case PD.ComponentProperty.X_AXIS:
|
|
26389
26742
|
this.value = this.states.includes(r) ? i : .5;
|
|
26390
26743
|
break;
|
|
26391
|
-
case
|
|
26744
|
+
case PD.ComponentProperty.Y_AXIS:
|
|
26392
26745
|
this.value = this.states.includes(r) ? a : .5;
|
|
26393
26746
|
break;
|
|
26394
|
-
case
|
|
26747
|
+
case PD.ComponentProperty.BUTTON:
|
|
26395
26748
|
this.value = this.states.includes(r) ? n : 0;
|
|
26396
26749
|
break;
|
|
26397
|
-
case
|
|
26398
|
-
this.valueNodeProperty ===
|
|
26750
|
+
case PD.ComponentProperty.STATE:
|
|
26751
|
+
this.valueNodeProperty === PD.VisualResponseProperty.VISIBILITY ? this.value = this.states.includes(r) : this.value = +!!this.states.includes(r);
|
|
26399
26752
|
break;
|
|
26400
26753
|
default: throw Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`);
|
|
26401
26754
|
}
|
|
26402
26755
|
}
|
|
26403
|
-
},
|
|
26756
|
+
}, VD = class {
|
|
26404
26757
|
constructor(e, t) {
|
|
26405
26758
|
if (!e || !t || !t.visualResponses || !t.gamepadIndices || Object.keys(t.gamepadIndices).length === 0) throw Error("Invalid arguments supplied");
|
|
26406
26759
|
this.id = e, this.type = t.type, this.rootNodeName = t.rootNodeName, this.touchPointNodeName = t.touchPointNodeName, this.visualResponses = {}, Object.keys(t.visualResponses).forEach((e) => {
|
|
26407
|
-
let n = new
|
|
26760
|
+
let n = new BD(t.visualResponses[e]);
|
|
26408
26761
|
this.visualResponses[e] = n;
|
|
26409
26762
|
}), this.gamepadIndices = Object.assign({}, t.gamepadIndices), this.values = {
|
|
26410
|
-
state:
|
|
26763
|
+
state: PD.ComponentState.DEFAULT,
|
|
26411
26764
|
button: this.gamepadIndices.button === void 0 ? void 0 : 0,
|
|
26412
26765
|
xAxis: this.gamepadIndices.xAxis === void 0 ? void 0 : 0,
|
|
26413
26766
|
yAxis: this.gamepadIndices.yAxis === void 0 ? void 0 : 0
|
|
@@ -26417,21 +26770,21 @@ var fD = class {
|
|
|
26417
26770
|
return Object.assign({ id: this.id }, this.values);
|
|
26418
26771
|
}
|
|
26419
26772
|
updateFromGamepad(e) {
|
|
26420
|
-
if (this.values.state =
|
|
26773
|
+
if (this.values.state = PD.ComponentState.DEFAULT, this.gamepadIndices.button !== void 0 && e.buttons.length > this.gamepadIndices.button) {
|
|
26421
26774
|
let t = e.buttons[this.gamepadIndices.button];
|
|
26422
|
-
this.values.button = t.value, this.values.button = this.values.button < 0 ? 0 : this.values.button, this.values.button = this.values.button > 1 ? 1 : this.values.button, t.pressed || this.values.button === 1 ? this.values.state =
|
|
26775
|
+
this.values.button = t.value, this.values.button = this.values.button < 0 ? 0 : this.values.button, this.values.button = this.values.button > 1 ? 1 : this.values.button, t.pressed || this.values.button === 1 ? this.values.state = PD.ComponentState.PRESSED : (t.touched || this.values.button > PD.ButtonTouchThreshold) && (this.values.state = PD.ComponentState.TOUCHED);
|
|
26423
26776
|
}
|
|
26424
|
-
this.gamepadIndices.xAxis !== void 0 && e.axes.length > this.gamepadIndices.xAxis && (this.values.xAxis = e.axes[this.gamepadIndices.xAxis], this.values.xAxis = this.values.xAxis < -1 ? -1 : this.values.xAxis, this.values.xAxis = this.values.xAxis > 1 ? 1 : this.values.xAxis, this.values.state ===
|
|
26777
|
+
this.gamepadIndices.xAxis !== void 0 && e.axes.length > this.gamepadIndices.xAxis && (this.values.xAxis = e.axes[this.gamepadIndices.xAxis], this.values.xAxis = this.values.xAxis < -1 ? -1 : this.values.xAxis, this.values.xAxis = this.values.xAxis > 1 ? 1 : this.values.xAxis, this.values.state === PD.ComponentState.DEFAULT && Math.abs(this.values.xAxis) > PD.AxisTouchThreshold && (this.values.state = PD.ComponentState.TOUCHED)), this.gamepadIndices.yAxis !== void 0 && e.axes.length > this.gamepadIndices.yAxis && (this.values.yAxis = e.axes[this.gamepadIndices.yAxis], this.values.yAxis = this.values.yAxis < -1 ? -1 : this.values.yAxis, this.values.yAxis = this.values.yAxis > 1 ? 1 : this.values.yAxis, this.values.state === PD.ComponentState.DEFAULT && Math.abs(this.values.yAxis) > PD.AxisTouchThreshold && (this.values.state = PD.ComponentState.TOUCHED)), Object.values(this.visualResponses).forEach((e) => {
|
|
26425
26778
|
e.updateFromComponent(this.values);
|
|
26426
26779
|
});
|
|
26427
26780
|
}
|
|
26428
|
-
},
|
|
26781
|
+
}, HD = class {
|
|
26429
26782
|
constructor(e, t, n) {
|
|
26430
26783
|
if (!e) throw Error("No xrInputSource supplied");
|
|
26431
26784
|
if (!t) throw Error("No profile supplied");
|
|
26432
26785
|
this.xrInputSource = e, this.assetUrl = n, this.id = t.profileId, this.layoutDescription = t.layouts[e.handedness], this.components = {}, Object.keys(this.layoutDescription.components).forEach((e) => {
|
|
26433
26786
|
let t = this.layoutDescription.components[e];
|
|
26434
|
-
this.components[e] = new
|
|
26787
|
+
this.components[e] = new VD(e, t);
|
|
26435
26788
|
}), this.updateFromGamepad();
|
|
26436
26789
|
}
|
|
26437
26790
|
get gripSpace() {
|
|
@@ -26451,7 +26804,7 @@ var fD = class {
|
|
|
26451
26804
|
e.updateFromGamepad(this.xrInputSource.gamepad);
|
|
26452
26805
|
});
|
|
26453
26806
|
}
|
|
26454
|
-
},
|
|
26807
|
+
}, UD = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", WD = "generic-trigger", GD = class extends r {
|
|
26455
26808
|
constructor() {
|
|
26456
26809
|
super(), this.motionController = null, this.envMap = null;
|
|
26457
26810
|
}
|
|
@@ -26464,21 +26817,21 @@ var fD = class {
|
|
|
26464
26817
|
super.updateMatrixWorld(e), this.motionController && (this.motionController.updateFromGamepad(), Object.values(this.motionController.components).forEach((e) => {
|
|
26465
26818
|
Object.values(e.visualResponses).forEach((e) => {
|
|
26466
26819
|
let { valueNode: t, minNode: n, maxNode: r, value: i, valueNodeProperty: a } = e;
|
|
26467
|
-
t && (a ===
|
|
26820
|
+
t && (a === PD.VisualResponseProperty.VISIBILITY ? t.visible = i : a === PD.VisualResponseProperty.TRANSFORM && (t.quaternion.copy(n.quaternion).slerp(r.quaternion, i), t.position.lerpVectors(n.position, r.position, i)));
|
|
26468
26821
|
});
|
|
26469
26822
|
}));
|
|
26470
26823
|
}
|
|
26471
26824
|
};
|
|
26472
|
-
function
|
|
26825
|
+
function KD(e, r) {
|
|
26473
26826
|
Object.values(e.components).forEach((e) => {
|
|
26474
26827
|
let { type: a, touchPointNodeName: o, visualResponses: s } = e;
|
|
26475
|
-
if (a ===
|
|
26828
|
+
if (a === PD.ComponentType.TOUCHPAD) if (e.touchPointNode = r.getObjectByName(o), e.touchPointNode) {
|
|
26476
26829
|
let r = new t(new i(.001), new n({ color: 255 }));
|
|
26477
26830
|
e.touchPointNode.add(r);
|
|
26478
26831
|
} else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);
|
|
26479
26832
|
Object.values(s).forEach((e) => {
|
|
26480
26833
|
let { valueNodeName: t, minNodeName: n, maxNodeName: i, valueNodeProperty: a } = e;
|
|
26481
|
-
if (a ===
|
|
26834
|
+
if (a === PD.VisualResponseProperty.TRANSFORM) {
|
|
26482
26835
|
if (e.minNode = r.getObjectByName(n), e.maxNode = r.getObjectByName(i), !e.minNode) {
|
|
26483
26836
|
console.warn(`Could not find ${n} in the model`);
|
|
26484
26837
|
return;
|
|
@@ -26492,27 +26845,27 @@ function vD(e, r) {
|
|
|
26492
26845
|
});
|
|
26493
26846
|
});
|
|
26494
26847
|
}
|
|
26495
|
-
function
|
|
26496
|
-
|
|
26848
|
+
function qD(t, n) {
|
|
26849
|
+
KD(t.motionController, n), t.envMap && n.traverse((n) => {
|
|
26497
26850
|
n instanceof e.Mesh && n.isMesh && (n.material.envMap = t.envMap, n.material.needsUpdate = !0);
|
|
26498
26851
|
}), t.add(n);
|
|
26499
26852
|
}
|
|
26500
|
-
var
|
|
26853
|
+
var JD = class {
|
|
26501
26854
|
constructor(e = null) {
|
|
26502
|
-
this.gltfLoader = e, this.path =
|
|
26855
|
+
this.gltfLoader = e, this.path = UD, this._assetCache = {};
|
|
26503
26856
|
}
|
|
26504
26857
|
createControllerModel(e) {
|
|
26505
|
-
let t = new
|
|
26858
|
+
let t = new GD(), n = null;
|
|
26506
26859
|
return e.addEventListener("connected", (e) => {
|
|
26507
26860
|
let r = e.data;
|
|
26508
|
-
r.targetRayMode !== "tracked-pointer" || !r.gamepad ||
|
|
26509
|
-
t.motionController = new
|
|
26861
|
+
r.targetRayMode !== "tracked-pointer" || !r.gamepad || LD(r, this.path, WD).then(({ profile: e, assetPath: i }) => {
|
|
26862
|
+
t.motionController = new HD(r, e, i);
|
|
26510
26863
|
let a = this._assetCache[t.motionController.assetUrl];
|
|
26511
|
-
if (a) n = a.scene.clone(),
|
|
26864
|
+
if (a) n = a.scene.clone(), qD(t, n);
|
|
26512
26865
|
else {
|
|
26513
26866
|
if (!this.gltfLoader) throw Error("GLTFLoader not set.");
|
|
26514
26867
|
this.gltfLoader.load(t.motionController.assetUrl, (e) => {
|
|
26515
|
-
this._assetCache[t.motionController.assetUrl] = e, n = e.scene.clone(),
|
|
26868
|
+
this._assetCache[t.motionController.assetUrl] = e, n = e.scene.clone(), qD(t, n);
|
|
26516
26869
|
});
|
|
26517
26870
|
}
|
|
26518
26871
|
}).catch((e) => {
|
|
@@ -26522,7 +26875,7 @@ var bD = class {
|
|
|
26522
26875
|
t.motionController = null, t.remove(n), n = null;
|
|
26523
26876
|
}), t;
|
|
26524
26877
|
}
|
|
26525
|
-
},
|
|
26878
|
+
}, YD = class {
|
|
26526
26879
|
constructor() {
|
|
26527
26880
|
this.states = /* @__PURE__ */ new Map();
|
|
26528
26881
|
}
|
|
@@ -26612,14 +26965,14 @@ var bD = class {
|
|
|
26612
26965
|
let n = this.states.get(e);
|
|
26613
26966
|
n && (n.delete(t), n.size === 0 && this.states.delete(e));
|
|
26614
26967
|
}
|
|
26615
|
-
},
|
|
26968
|
+
}, XD = Object.assign(Object.assign({}, Ql(wE, ["maxLatitude", "minLatitude"])), {
|
|
26616
26969
|
referenceSpaceType: "local-floor",
|
|
26617
26970
|
foveation: 1,
|
|
26618
26971
|
showControllerModel: !0,
|
|
26619
26972
|
showPointerRay: !0,
|
|
26620
26973
|
deviceProfile: {}
|
|
26621
|
-
}),
|
|
26622
|
-
function
|
|
26974
|
+
}), ZD = 5, QD = 1e-4, $D = 1500;
|
|
26975
|
+
function eO() {
|
|
26623
26976
|
return { load(e, t) {
|
|
26624
26977
|
Xl.ajax(e, { responseType: "arraybuffer" }).then((t) => {
|
|
26625
26978
|
var n;
|
|
@@ -26633,7 +26986,7 @@ function ED() {
|
|
|
26633
26986
|
});
|
|
26634
26987
|
} };
|
|
26635
26988
|
}
|
|
26636
|
-
var
|
|
26989
|
+
var tO = class t extends TE {
|
|
26637
26990
|
static parseArgs(e) {
|
|
26638
26991
|
if (e instanceof t) return e;
|
|
26639
26992
|
let n = Object.assign(Object.assign({}, e), {
|
|
@@ -26652,15 +27005,15 @@ var DD = class t extends ZT {
|
|
|
26652
27005
|
super(s), this.controllerRayFilled = {
|
|
26653
27006
|
left: !1,
|
|
26654
27007
|
right: !1
|
|
26655
|
-
}, this.controllerModelFactory = null, this.buttonStateMachine = new
|
|
27008
|
+
}, this.controllerModelFactory = null, this.buttonStateMachine = new YD(), this.inputVisuals = /* @__PURE__ */ new Map(), this.inputsDirty = !1, this.walkedThisFrame = !1, this.lastFrameTime = 0, this.walkSources = {
|
|
26656
27009
|
left: null,
|
|
26657
27010
|
right: null
|
|
26658
27011
|
}, this.gazeRayPool = null, this.mode = "XRPanorama";
|
|
26659
|
-
let c =
|
|
27012
|
+
let c = XD, l = (n = e.referenceSpaceType) == null ? c.referenceSpaceType : n, u = (r = e.foveation) == null ? c.foveation : r;
|
|
26660
27013
|
this.showControllerModel = (i = e.showControllerModel) == null ? c.showControllerModel : i, this.showPointerRay = (a = e.showPointerRay) == null ? c.showPointerRay : a, this.controllerRaycasters = {
|
|
26661
27014
|
left: this.createPickingRaycaster(),
|
|
26662
27015
|
right: this.createPickingRaycaster()
|
|
26663
|
-
}, this.gazeRaycaster = null, this.xrManager = new
|
|
27016
|
+
}, this.gazeRaycaster = null, this.xrManager = new ND(this.renderer, {
|
|
26664
27017
|
referenceSpaceType: l,
|
|
26665
27018
|
foveation: u,
|
|
26666
27019
|
deviceProfile: (o = e.deviceProfile) == null ? c.deviceProfile : o
|
|
@@ -26668,13 +27021,13 @@ var DD = class t extends ZT {
|
|
|
26668
27021
|
onSessionStart: (e, t) => {
|
|
26669
27022
|
this.emit("xr.session.start", $("xr.session.start", {
|
|
26670
27023
|
session: e,
|
|
26671
|
-
machineType:
|
|
27024
|
+
machineType: zC(t)
|
|
26672
27025
|
}));
|
|
26673
27026
|
},
|
|
26674
27027
|
onSessionEnd: (e) => {
|
|
26675
27028
|
this.emit("xr.session.end", $("xr.session.end", {
|
|
26676
27029
|
session: null,
|
|
26677
|
-
machineType:
|
|
27030
|
+
machineType: zC(e)
|
|
26678
27031
|
}));
|
|
26679
27032
|
},
|
|
26680
27033
|
onSessionEnding: () => {
|
|
@@ -26831,8 +27184,8 @@ var DD = class t extends ZT {
|
|
|
26831
27184
|
}
|
|
26832
27185
|
getControllerModelFactory() {
|
|
26833
27186
|
if (!this.controllerModelFactory) {
|
|
26834
|
-
let e = new
|
|
26835
|
-
e.gltfLoader =
|
|
27187
|
+
let e = new JD();
|
|
27188
|
+
e.gltfLoader = eO(), this.controllerModelFactory = e;
|
|
26836
27189
|
}
|
|
26837
27190
|
return this.controllerModelFactory;
|
|
26838
27191
|
}
|
|
@@ -26866,15 +27219,15 @@ var DD = class t extends ZT {
|
|
|
26866
27219
|
depthWrite: !1,
|
|
26867
27220
|
transparent: !0
|
|
26868
27221
|
}), a = new e.LineSegments(t, i);
|
|
26869
|
-
a.renderOrder = 999, a.frustumCulled = !1, n.targetRay.add(a), r.ray = a, r.rayLength =
|
|
27222
|
+
a.renderOrder = 999, a.frustumCulled = !1, n.targetRay.add(a), r.ray = a, r.rayLength = ZD;
|
|
26870
27223
|
} else !o && r.ray && (this.disposeRay(r.ray), r.ray = void 0);
|
|
26871
27224
|
}
|
|
26872
27225
|
updatePointerRayLength(e, t) {
|
|
26873
27226
|
for (let [n, r] of this.inputVisuals) {
|
|
26874
27227
|
let i = r.ray;
|
|
26875
27228
|
if (!i) continue;
|
|
26876
|
-
let a = n.handedness === "left" ? "left" : "right", o =
|
|
26877
|
-
if (e && t && e === this.controllerRaycasters[a] && (o = Math.min(e.ray.origin.distanceTo(t),
|
|
27229
|
+
let a = n.handedness === "left" ? "left" : "right", o = ZD;
|
|
27230
|
+
if (e && t && e === this.controllerRaycasters[a] && (o = Math.min(e.ray.origin.distanceTo(t), ZD)), r.rayLength !== void 0 && Math.abs(r.rayLength - o) < QD) continue;
|
|
26878
27231
|
let s = i.geometry.getAttribute("position");
|
|
26879
27232
|
s.setZ(1, -o), s.needsUpdate = !0, r.rayLength = o;
|
|
26880
27233
|
}
|
|
@@ -26894,7 +27247,7 @@ var DD = class t extends ZT {
|
|
|
26894
27247
|
let i = $(e, {
|
|
26895
27248
|
session: this.xrManager.session,
|
|
26896
27249
|
buttons: t,
|
|
26897
|
-
machineType:
|
|
27250
|
+
machineType: zC(this.xrManager.device),
|
|
26898
27251
|
isFirst: n,
|
|
26899
27252
|
isFinal: r,
|
|
26900
27253
|
controllers: { raycaster: {
|
|
@@ -26943,7 +27296,7 @@ var DD = class t extends ZT {
|
|
|
26943
27296
|
this.intersectMesh.visible = !1, this.activePanoMesh = void 0, this.activeTime = void 0, this.updatePointerRayLength(null, null);
|
|
26944
27297
|
return;
|
|
26945
27298
|
}
|
|
26946
|
-
if (this.activePanoMesh && this.activeTime && t - this.activeTime >
|
|
27299
|
+
if (this.activePanoMesh && this.activeTime && t - this.activeTime > $D) {
|
|
26947
27300
|
let e = this.activePanoMesh, t = null;
|
|
26948
27301
|
return this.panoMeshes.forEach((n, r) => {
|
|
26949
27302
|
n === e && (t = r);
|
|
@@ -27059,7 +27412,7 @@ var DD = class t extends ZT {
|
|
|
27059
27412
|
onPinchGesture() {}
|
|
27060
27413
|
onMouseMove() {}
|
|
27061
27414
|
onMouseOut() {}
|
|
27062
|
-
},
|
|
27415
|
+
}, nO = new e.Vector3(0, 1.6, 0), rO = new e.Box3(), iO = new e.Vector3(), aO = Object.assign({}, bT), oO = class t extends xT {
|
|
27063
27416
|
static parseArgs(e) {
|
|
27064
27417
|
return e instanceof t ? e : super.parseArgs(e);
|
|
27065
27418
|
}
|
|
@@ -27071,7 +27424,7 @@ var DD = class t extends ZT {
|
|
|
27071
27424
|
} : {
|
|
27072
27425
|
workCode: d.workCode,
|
|
27073
27426
|
panoIndex: d.panoIndex
|
|
27074
|
-
}, p = l.getObserver(f), m = q((a = u.fov) == null ? !p ||
|
|
27427
|
+
}, p = l.getObserver(f), m = q((a = u.fov) == null ? !p || Nw(d.mode) ? d.fov : c.defaultFov : a, c.minFov, c.maxFov), h = (o = u.longitude) == null ? d.longitude : o, g = q(typeof c.minLatitude == "function" ? c.minLatitude(m) : c.minLatitude, -Math.PI / 2, Math.PI / 2), _ = q(typeof c.maxLatitude == "function" ? c.maxLatitude(m) : c.maxLatitude, -Math.PI / 2, Math.PI / 2), v = q((s = u.latitude) == null ? !p || Nw(d.mode) ? d.latitude : c.defaultLatitude : s, g, _), y = new e.Vector3();
|
|
27075
27428
|
if (c.initial.state.offset) y.copy(c.initial.state.offset);
|
|
27076
27429
|
else if (p) y.copy(p.position).applyMatrix4(p.work.transform);
|
|
27077
27430
|
else {
|
|
@@ -27167,9 +27520,9 @@ var DD = class t extends ZT {
|
|
|
27167
27520
|
let n = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z), r = [];
|
|
27168
27521
|
for (let e of this.works) {
|
|
27169
27522
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
27170
|
-
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (
|
|
27523
|
+
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (rO.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), rO.containsPoint(n))) for (let t of e.observers) r.push(t);
|
|
27171
27524
|
}
|
|
27172
|
-
let i = Im(r, (e) =>
|
|
27525
|
+
let i = Im(r, (e) => iO.copy(e.position).applyMatrix4(e.work.transform).distanceTo(n));
|
|
27173
27526
|
this.currentPano = i ? {
|
|
27174
27527
|
workCode: i.work.workCode,
|
|
27175
27528
|
panoIndex: i.panoIndex
|
|
@@ -27178,7 +27531,7 @@ var DD = class t extends ZT {
|
|
|
27178
27531
|
panoIndex: 0
|
|
27179
27532
|
};
|
|
27180
27533
|
}
|
|
27181
|
-
this.cameraMotion.ended || (this.cameraMotion.update(t), a.longitude = this.cameraMotion.value.longitude, a.latitude = this.cameraMotion.value.latitude, a.fov = this.cameraMotion.value.fov),
|
|
27534
|
+
this.cameraMotion.ended || (this.cameraMotion.update(t), a.longitude = this.cameraMotion.value.longitude, a.latitude = this.cameraMotion.value.latitude, a.fov = this.cameraMotion.value.fov), Pw(i) || this.modelScene.parameter.set(i), Pw(a) || this.setCamera(a);
|
|
27182
27535
|
let o = this.works.getObserver(this.currentPano);
|
|
27183
27536
|
if (this.intersectMesh && this.intersectMesh.parent && o && o.position.y - o.standingPosition.y > 10) {
|
|
27184
27537
|
let e = q(this.camera.position.distanceTo(this.intersectMesh.position) * (2 * Math.tan(.5 * this.camera.fov / 180 * Math.PI)) / 5, .5);
|
|
@@ -27262,9 +27615,9 @@ var DD = class t extends ZT {
|
|
|
27262
27615
|
}, g = [];
|
|
27263
27616
|
for (let e of this.works) {
|
|
27264
27617
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
27265
|
-
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (
|
|
27618
|
+
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (rO.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), rO.containsPoint(c))) for (let t of e.observers) g.push(t);
|
|
27266
27619
|
}
|
|
27267
|
-
let _ = Im(g, (e) =>
|
|
27620
|
+
let _ = Im(g, (e) => iO.copy(e.position).applyMatrix4(e.work.transform).distanceTo(c)), v = _ ? {
|
|
27268
27621
|
workCode: _.work.workCode,
|
|
27269
27622
|
panoIndex: _.panoIndex
|
|
27270
27623
|
} : {
|
|
@@ -27287,7 +27640,7 @@ var DD = class t extends ZT {
|
|
|
27287
27640
|
error: null
|
|
27288
27641
|
})), n.moveStartCallback && n.moveStartCallback(y), this.cameraMotion.set(h, p).catch(Y), this.locationMotion.set(m, p, f).then(() => {
|
|
27289
27642
|
for (let e of this.modelScene.children) e instanceof vb && e.show();
|
|
27290
|
-
let e = Object.assign(Object.assign(Object.assign({}, v), { mode: this.mode }),
|
|
27643
|
+
let e = Object.assign(Object.assign(Object.assign({}, v), { mode: this.mode }), jw(this.camera.pose));
|
|
27291
27644
|
this.emit("pano.arrived", $("pano.arrived", {
|
|
27292
27645
|
options: n,
|
|
27293
27646
|
prevPano: b,
|
|
@@ -27321,16 +27674,16 @@ var DD = class t extends ZT {
|
|
|
27321
27674
|
}
|
|
27322
27675
|
}
|
|
27323
27676
|
if (r) {
|
|
27324
|
-
let n = new e.Vector3().copy(r.point).add(
|
|
27677
|
+
let n = new e.Vector3().copy(r.point).add(nO), i = [];
|
|
27325
27678
|
for (let e of this.works) {
|
|
27326
27679
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
27327
|
-
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (
|
|
27680
|
+
if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (rO.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), rO.containsPoint(n))) for (let t of e.observers) i.push(t);
|
|
27328
27681
|
}
|
|
27329
|
-
let [a, o] = Im(i, (e) =>
|
|
27330
|
-
a && o < 5 && (n.y =
|
|
27682
|
+
let [a, o] = Im(i, (e) => iO.copy(e.position).applyMatrix4(e.work.transform).distanceTo(n), !0);
|
|
27683
|
+
a && o < 5 && (n.y = iO.copy(a.position).applyMatrix4(a.work.transform).y), t.state.offset.copy(n), t.state.distance = 0, this.emit("gesture.tap", t), t.defaultPrevented || this.moveToPosition(n, {}, !0);
|
|
27331
27684
|
} else this.emit("gesture.tap", t), t.defaultPrevented || this.cameraBounce();
|
|
27332
27685
|
}
|
|
27333
|
-
},
|
|
27686
|
+
}, sO = new e.Box3(), cO = new e.Vector3(), lO = .5, uO = Math.PI / 7, dO = {
|
|
27334
27687
|
defaultLongitude: Math.PI / 4,
|
|
27335
27688
|
defaultLatitude: Math.PI / 4,
|
|
27336
27689
|
defaultDistance: 150,
|
|
@@ -27338,28 +27691,28 @@ var DD = class t extends ZT {
|
|
|
27338
27691
|
minLatitude: 0,
|
|
27339
27692
|
cameraType: "auto",
|
|
27340
27693
|
cameraFence: null,
|
|
27341
|
-
intersectMeshCreator: () => new
|
|
27342
|
-
},
|
|
27343
|
-
Floorplan:
|
|
27344
|
-
Topview:
|
|
27345
|
-
Panorama:
|
|
27346
|
-
VRPanorama:
|
|
27347
|
-
XRPanorama:
|
|
27348
|
-
Model:
|
|
27349
|
-
Mapview: class t extends
|
|
27694
|
+
intersectMeshCreator: () => new pT()
|
|
27695
|
+
}, fO = {
|
|
27696
|
+
Floorplan: _T,
|
|
27697
|
+
Topview: yT,
|
|
27698
|
+
Panorama: TE,
|
|
27699
|
+
VRPanorama: vD,
|
|
27700
|
+
XRPanorama: tO,
|
|
27701
|
+
Model: oO,
|
|
27702
|
+
Mapview: class t extends $w {
|
|
27350
27703
|
static parseArgs(e) {
|
|
27351
27704
|
var n, r, i, a, o, s, c, l;
|
|
27352
27705
|
if (e instanceof t) return e;
|
|
27353
27706
|
let u = super.parseArgs(e);
|
|
27354
27707
|
return Object.assign(Object.assign({}, u), {
|
|
27355
|
-
defaultLongitude: (n = e.defaultLongitude) == null ?
|
|
27356
|
-
defaultLatitude: (r = e.defaultLatitude) == null ?
|
|
27357
|
-
defaultDistance: (i = e.defaultDistance) == null ?
|
|
27358
|
-
maxLatitude: (a = e.maxLatitude) == null ?
|
|
27359
|
-
minLatitude: (o = e.minLatitude) == null ?
|
|
27360
|
-
cameraType: (s = e.cameraType) == null ?
|
|
27361
|
-
cameraFence: (c = e.cameraFence) == null ?
|
|
27362
|
-
intersectMeshCreator: (l = e.intersectMeshCreator) == null ?
|
|
27708
|
+
defaultLongitude: (n = e.defaultLongitude) == null ? dO.defaultLongitude : n,
|
|
27709
|
+
defaultLatitude: (r = e.defaultLatitude) == null ? dO.defaultLatitude : r,
|
|
27710
|
+
defaultDistance: (i = e.defaultDistance) == null ? dO.defaultDistance : i,
|
|
27711
|
+
maxLatitude: (a = e.maxLatitude) == null ? dO.maxLatitude : a,
|
|
27712
|
+
minLatitude: (o = e.minLatitude) == null ? dO.minLatitude : o,
|
|
27713
|
+
cameraType: (s = e.cameraType) == null ? dO.cameraType : s,
|
|
27714
|
+
cameraFence: (c = e.cameraFence) == null ? dO.cameraFence : c,
|
|
27715
|
+
intersectMeshCreator: (l = e.intersectMeshCreator) == null ? dO.intersectMeshCreator : l
|
|
27363
27716
|
});
|
|
27364
27717
|
}
|
|
27365
27718
|
static distanceFromModel(e, t, n) {
|
|
@@ -27376,7 +27729,7 @@ var DD = class t extends ZT {
|
|
|
27376
27729
|
} : {
|
|
27377
27730
|
workCode: m.workCode,
|
|
27378
27731
|
panoIndex: m.panoIndex
|
|
27379
|
-
}, g = (o = p.fov) == null ? 60 : o, _ = q(typeof u.minLatitude == "function" ? u.minLatitude(g) : u.minLatitude, -Math.PI / 2, Math.PI / 2), v = q(typeof u.maxLatitude == "function" ? u.maxLatitude(g) : u.maxLatitude, -Math.PI / 2, Math.PI / 2), y = q((s = p.latitude) == null ?
|
|
27732
|
+
}, g = (o = p.fov) == null ? 60 : o, _ = q(typeof u.minLatitude == "function" ? u.minLatitude(g) : u.minLatitude, -Math.PI / 2, Math.PI / 2), v = q(typeof u.maxLatitude == "function" ? u.maxLatitude(g) : u.maxLatitude, -Math.PI / 2, Math.PI / 2), y = q((s = p.latitude) == null ? Mw(m.mode) ? m.latitude : u.defaultLatitude : s, _, v), b = t.distanceFromModel(u.modelScene, g, u.camera.aspect), x = new e.Vector3(), S = (c = p.distance) == null ? Math.min(u.defaultDistance, b) : c, C = (l = p.longitude) == null ? Mw(m.mode) ? m.longitude : u.defaultLongitude : l;
|
|
27380
27733
|
if (p.offset) x.copy(p.offset);
|
|
27381
27734
|
else {
|
|
27382
27735
|
let e = d.getObserver(h);
|
|
@@ -27485,7 +27838,7 @@ var DD = class t extends ZT {
|
|
|
27485
27838
|
e && e.map !== (t == null ? void 0 : t.map) && e.map.dispose(), r.progress = 1, r.pano0 = r.pano1 = t;
|
|
27486
27839
|
}
|
|
27487
27840
|
let a = 0;
|
|
27488
|
-
if (this.cameraType === "auto" ? a = +(Math.abs(Math.PI / 2 - this.cameraMotion.value.latitude) < .02 || Math.abs(-Math.PI / 2 - this.cameraMotion.value.latitude) < .02) : this.cameraType === "perspective" ? a = 0 : this.cameraType === "orthographic" && (a = 1), this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho !== a && this.perspToOrthoMotion.set({ perspToOrtho: a }, 500).catch(Y), this.perspToOrthoMotion.ended || (this.perspToOrthoMotion.update(t), this.camera.perspToOrtho.setScalar(q(this.perspToOrthoMotion.value.perspToOrtho, 0, 1))),
|
|
27841
|
+
if (this.cameraType === "auto" ? a = +(Math.abs(Math.PI / 2 - this.cameraMotion.value.latitude) < .02 || Math.abs(-Math.PI / 2 - this.cameraMotion.value.latitude) < .02) : this.cameraType === "perspective" ? a = 0 : this.cameraType === "orthographic" && (a = 1), this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho !== a && this.perspToOrthoMotion.set({ perspToOrtho: a }, 500).catch(Y), this.perspToOrthoMotion.ended || (this.perspToOrthoMotion.update(t), this.camera.perspToOrtho.setScalar(q(this.perspToOrthoMotion.value.perspToOrtho, 0, 1))), Pw(r) || this.modelScene.parameter.set(r), Pw(i) || this.setCamera(i), this.cameraFence && !this.panState && !this.pinchState && !this.mouseWheelState && !this.inMomentumMovement && this.locationMotion.ended && this.perspToOrthoMotion.ended && this.cameraMotion.ended) {
|
|
27489
27842
|
let t = $a(this.camera.pose, new e.Vector3()), n = new e.Vector3().copy(this.camera.pose.offset).sub(t.clone().multiplyScalar(this.camera.pose.distance));
|
|
27490
27843
|
if (this.cameraFence.distanceToPoint(n) > .01) {
|
|
27491
27844
|
let t = this.cameraFence.clampPoint(n, new e.Vector3()), r = this.camera.pose.offset.clone().add(t).sub(n), i = Object.assign(Object.assign({}, this.currentPano), {
|
|
@@ -27543,7 +27896,7 @@ var DD = class t extends ZT {
|
|
|
27543
27896
|
userAction: this.userAction
|
|
27544
27897
|
}));
|
|
27545
27898
|
}, (e) => {
|
|
27546
|
-
let t = Object.assign(Object.assign(Object.assign({}, this.currentPano), { mode: this.mode }),
|
|
27899
|
+
let t = Object.assign(Object.assign(Object.assign({}, this.currentPano), { mode: this.mode }), jw(this.camera.pose));
|
|
27547
27900
|
this.emit("initAnimation.end", $("initAnimation.end", {
|
|
27548
27901
|
state: t,
|
|
27549
27902
|
userAction: this.userAction
|
|
@@ -27559,9 +27912,9 @@ var DD = class t extends ZT {
|
|
|
27559
27912
|
let n = [];
|
|
27560
27913
|
for (let t of this.works) {
|
|
27561
27914
|
let r = this.modelScene.models.find((e) => e.work === t);
|
|
27562
|
-
if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (
|
|
27915
|
+
if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (sO.copy(t.observerBox).expandByScalar(10).applyMatrix4(t.transform), sO.containsPoint(e.ray.origin) || e.ray.intersectsBox(sO))) for (let e of t.observers) n.push(e);
|
|
27563
27916
|
}
|
|
27564
|
-
let [r, i] = Im(n, (e) =>
|
|
27917
|
+
let [r, i] = Im(n, (e) => cO.copy(e.standingPosition).applyMatrix4(e.work.transform).distanceTo(t.point), !0);
|
|
27565
27918
|
return r && i < Math.max(r.standingPosition.distanceTo(this.camera.position) / 5, 10) ? r : null;
|
|
27566
27919
|
}
|
|
27567
27920
|
coordinatesForOffset(t) {
|
|
@@ -27615,7 +27968,7 @@ var DD = class t extends ZT {
|
|
|
27615
27968
|
fixFinalState(t) {
|
|
27616
27969
|
if (this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho === 1) return;
|
|
27617
27970
|
let n = $a(t, new e.Vector3()), r = new e.Vector3().copy(t.offset).sub(n.clone().setLength(t.distance)), i = new e.Raycaster(r, n);
|
|
27618
|
-
i.params.Points = { threshold: .1 }, i.firstHitOnly = !0, i.hitFilter = (e) => e.distance >
|
|
27971
|
+
i.params.Points = { threshold: .1 }, i.firstHitOnly = !0, i.hitFilter = (e) => e.distance > lO + i.near, i.near = this.camera.near, i.far = this.camera.far;
|
|
27619
27972
|
let a;
|
|
27620
27973
|
if (a = this.modelScene.intersectRaycaster(i)[0], a && a.distance < this.camera.near && (a = void 0), !a) {
|
|
27621
27974
|
let t = new e.Plane(new e.Vector3(0, 1, 0), -this.modelScene.boundingBox.min.y), n = i.ray.intersectPlane(t, new e.Vector3());
|
|
@@ -27642,7 +27995,7 @@ var DD = class t extends ZT {
|
|
|
27642
27995
|
face: null
|
|
27643
27996
|
};
|
|
27644
27997
|
}
|
|
27645
|
-
a.distance >= this.camera.near &&
|
|
27998
|
+
a.distance >= this.camera.near && xw(t.distance, a.distance) && (t.distance = a.distance, t.offset = a.point);
|
|
27646
27999
|
}
|
|
27647
28000
|
onPanGesture(t) {
|
|
27648
28001
|
this.userAction = t.userAction, this.stopMomentumMovement(), this.hideIntersectMesh();
|
|
@@ -27685,7 +28038,7 @@ var DD = class t extends ZT {
|
|
|
27685
28038
|
}, i = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z), a = $a(this.cameraMotion.value).setLength(this.locationMotion.value.distance).add(i), o = new e.Vector3().copy(a).sub(r.target).length();
|
|
27686
28039
|
o *= Math.tan(this.camera.pose.fov / 2 * Math.PI / 180);
|
|
27687
28040
|
let s = this.renderer.getSize(new e.Vector2()), c = 2 * n.x * o / s.y, l = 2 * n.y * o / s.y, u = new e.Vector3();
|
|
27688
|
-
u.setFromMatrixColumn(this.camera.matrix, 0), u.multiplyScalar(-c), i.add(u), this.camera.pose.latitude <
|
|
28041
|
+
u.setFromMatrixColumn(this.camera.matrix, 0), u.multiplyScalar(-c), i.add(u), this.camera.pose.latitude < uO ? u.setFromMatrixColumn(this.camera.matrix, 1) : (u.setFromMatrixColumn(this.camera.matrix, 0), u.crossVectors(this.camera.up, u)), u.multiplyScalar(l), i.add(u);
|
|
27689
28042
|
let d = Object.assign(Object.assign({}, this.currentPano), {
|
|
27690
28043
|
mode: this.mode,
|
|
27691
28044
|
longitude: this.camera.pose.longitude,
|
|
@@ -27706,7 +28059,7 @@ var DD = class t extends ZT {
|
|
|
27706
28059
|
z: d.offset.z
|
|
27707
28060
|
}, 0).catch(Y)), t.isFinal) {
|
|
27708
28061
|
let n = this.renderer.getSize(new e.Vector2()), r = 2 * t.velocityX * o / n.y, i = 2 * t.velocityY * o / n.y, a = new e.Vector3(), s = new e.Vector3();
|
|
27709
|
-
a.setFromMatrixColumn(this.camera.matrix, 0), a.multiplyScalar(-r), s.add(a), this.camera.pose.latitude <
|
|
28062
|
+
a.setFromMatrixColumn(this.camera.matrix, 0), a.multiplyScalar(-r), s.add(a), this.camera.pose.latitude < uO ? a.setFromMatrixColumn(this.camera.matrix, 1) : (a.setFromMatrixColumn(this.camera.matrix, 0), a.crossVectors(this.camera.up, a)), a.multiplyScalar(i), s.add(a), this.inMomentumMovement = { uuid: gn() }, this.requestMomentumMovement(t, !0, {
|
|
27710
28063
|
longitude: 0,
|
|
27711
28064
|
latitude: 0,
|
|
27712
28065
|
x: s.x,
|
|
@@ -27765,7 +28118,7 @@ var DD = class t extends ZT {
|
|
|
27765
28118
|
return;
|
|
27766
28119
|
}
|
|
27767
28120
|
if (i === void 0) return;
|
|
27768
|
-
let a = this.modelScene.boundingBox.getCenter(new e.Vector3()), o = t.distanceFromModel(this.modelScene, this.cameraMotion.value.fov, this.camera.aspect), s = q(i / n.scale,
|
|
28121
|
+
let a = this.modelScene.boundingBox.getCenter(new e.Vector3()), o = t.distanceFromModel(this.modelScene, this.cameraMotion.value.fov, this.camera.aspect), s = q(i / n.scale, lO, Infinity), c = n.state.offset.clone().sub($a(n.state).setLength(s)), l = this.modelScene.boundingBox.containsPoint(c), u;
|
|
27769
28122
|
if (!l && this.pinchState && this.pinchState.scale > n.scale && a.distanceTo(c) > o ? u = n.state.distance : (u = s, this.pinchState && (this.pinchState.scale = n.scale)), n.state.distance = u, this.emit("gesture.pinch", n), !n.defaultPrevented && (this.locationMotion.set({ distance: n.state.distance }, 0).catch(Y), n.pointerType !== "mouse" && (n.type = "gesture.pan", this.onPanGesture(n)), n.isFinal)) {
|
|
27770
28123
|
if (!("__fixFinalState" in n)) {
|
|
27771
28124
|
let e = n.state;
|
|
@@ -27831,7 +28184,7 @@ var DD = class t extends ZT {
|
|
|
27831
28184
|
let r = t.distanceFromModel(this.modelScene, this.cameraMotion.value.fov, this.camera.aspect), i = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z), a = $a(this.cameraMotion.value, new e.Vector3()).negate(), o = new e.Ray(i, a).intersectBox(this.modelScene.boundingBox, new e.Vector3());
|
|
27832
28185
|
o && (r += o.distanceTo(i));
|
|
27833
28186
|
let s = Math.max(this.locationMotion.value.distance - this.camera.near, 0), c = n.center.delta / 10 * Math.max(s / 5, .1);
|
|
27834
|
-
if (s <= r || c > 0) if (this.locationMotion.value.distance - c >=
|
|
28187
|
+
if (s <= r || c > 0) if (this.locationMotion.value.distance - c >= lO) {
|
|
27835
28188
|
let e = this.locationMotion.value.distance - c;
|
|
27836
28189
|
n.state.distance = e;
|
|
27837
28190
|
} else {
|
|
@@ -27945,7 +28298,7 @@ var DD = class t extends ZT {
|
|
|
27945
28298
|
return;
|
|
27946
28299
|
}
|
|
27947
28300
|
this.pendingTextureId = null, u.name = p;
|
|
27948
|
-
let d = Array.isArray(u.image) ? u.image[0] : u.image, f = (c = d == null ? void 0 : d.width) == null ? 2048 : c, h = yield
|
|
28301
|
+
let d = Array.isArray(u.image) ? u.image[0] : u.image, f = (c = d == null ? void 0 : d.width) == null ? 2048 : c, h = yield Xw(this.renderer, u, !0, cS), g = new fS().formPixels(h.data), _ = {
|
|
27949
28302
|
panoId: o,
|
|
27950
28303
|
map: u,
|
|
27951
28304
|
mapSize: f,
|
|
@@ -27992,18 +28345,18 @@ var DD = class t extends ZT {
|
|
|
27992
28345
|
this.intersectMesh.visible === !0 && (this.intersectMesh.visible = !1, this.needsRender = !0);
|
|
27993
28346
|
}
|
|
27994
28347
|
}
|
|
27995
|
-
},
|
|
27996
|
-
Floorplan:
|
|
27997
|
-
Topview:
|
|
27998
|
-
Panorama:
|
|
27999
|
-
VRPanorama:
|
|
28000
|
-
XRPanorama:
|
|
28001
|
-
Model:
|
|
28002
|
-
Mapview:
|
|
28003
|
-
},
|
|
28348
|
+
}, pO = {
|
|
28349
|
+
Floorplan: gT,
|
|
28350
|
+
Topview: vT,
|
|
28351
|
+
Panorama: wE,
|
|
28352
|
+
VRPanorama: _D,
|
|
28353
|
+
XRPanorama: XD,
|
|
28354
|
+
Model: aO,
|
|
28355
|
+
Mapview: dO
|
|
28356
|
+
}, mO = /* @__PURE__ */ "gesture.pan,gesture.tap,gesture.dbltap,gesture.press,gesture.pinch,gesture.mousewheel,gesture.mousemove,gesture.momentum,gesture.fire,initAnimation.start,initAnimation.end,camera.update,intersect.update,pano.select,pano.moveTo,pano.moving,pano.arrived,pano.cancel,pano.error,pano.prepare,pano.texture.load,pano.texture.progress,pano.texture.success,pano.texture.error,pano.texture.abort,xr.session.start,xr.session.end,xr.gesture.tap,xr.gesture.press,xr.gesture.buttonUp,xr.gesture.buttonDown,xr.controller.update".split(",");
|
|
28004
28357
|
//#endregion
|
|
28005
28358
|
//#region build/five/application/events-legacy.js
|
|
28006
|
-
function
|
|
28359
|
+
function hO(e) {
|
|
28007
28360
|
e.on("initAnimation.start", (t) => {
|
|
28008
28361
|
e.emit("initAnimationWillStart", t.state.panoIndex, t.state, t.userAction);
|
|
28009
28362
|
}), e.on("initAnimation.end", (t) => {
|
|
@@ -28145,7 +28498,7 @@ function VD(e) {
|
|
|
28145
28498
|
}
|
|
28146
28499
|
//#endregion
|
|
28147
28500
|
//#region build/five/application/generateDefaultVideoElement.js
|
|
28148
|
-
function
|
|
28501
|
+
function gO() {
|
|
28149
28502
|
if (typeof window < "u") {
|
|
28150
28503
|
let e = document.createElement("video");
|
|
28151
28504
|
e.loop = !0, e.autoplay = !0, e.playsInline = !0, e.muted = !0, e.crossOrigin = "";
|
|
@@ -28157,7 +28510,7 @@ function HD() {
|
|
|
28157
28510
|
}
|
|
28158
28511
|
//#endregion
|
|
28159
28512
|
//#region build/five/application/initLights.js
|
|
28160
|
-
function
|
|
28513
|
+
function _O() {
|
|
28161
28514
|
let t = new e.Group();
|
|
28162
28515
|
t.name = "internalLights";
|
|
28163
28516
|
{
|
|
@@ -28180,7 +28533,7 @@ function UD() {
|
|
|
28180
28533
|
}
|
|
28181
28534
|
//#endregion
|
|
28182
28535
|
//#region build/five/application/getViewportScale.js
|
|
28183
|
-
function
|
|
28536
|
+
function vO(e) {
|
|
28184
28537
|
var t, n;
|
|
28185
28538
|
let r = {}, i = e.split(/(\;|\,)/);
|
|
28186
28539
|
for (let e of i) {
|
|
@@ -28189,14 +28542,14 @@ function WD(e) {
|
|
|
28189
28542
|
}
|
|
28190
28543
|
return r;
|
|
28191
28544
|
}
|
|
28192
|
-
function
|
|
28545
|
+
function yO() {
|
|
28193
28546
|
var e;
|
|
28194
28547
|
if (typeof document < "u") {
|
|
28195
28548
|
let t = document.getElementsByTagName("meta");
|
|
28196
28549
|
for (let n = 0; n < t.length; n++) {
|
|
28197
28550
|
let r = t[n];
|
|
28198
28551
|
if (r.getAttribute("name") === "viewport") {
|
|
28199
|
-
let t =
|
|
28552
|
+
let t = vO((e = r.getAttribute("content")) == null ? "" : e), n = Number(t["initial-scale"]);
|
|
28200
28553
|
if (!isNaN(n)) return n;
|
|
28201
28554
|
}
|
|
28202
28555
|
}
|
|
@@ -28205,7 +28558,7 @@ function GD() {
|
|
|
28205
28558
|
}
|
|
28206
28559
|
//#endregion
|
|
28207
28560
|
//#region build/five/utils/requestPermission.js
|
|
28208
|
-
function
|
|
28561
|
+
function bO() {
|
|
28209
28562
|
return typeof location > "u" || location.protocol !== "https:" ? Promise.reject(/* @__PURE__ */ Error("Request DeviceOrientation Permission denied.")) : typeof DeviceOrientationEvent < "u" && typeof DeviceOrientationEvent.requestPermission == "function" ? DeviceOrientationEvent.requestPermission().then((e) => {
|
|
28210
28563
|
if (e == "granted") return Promise.resolve();
|
|
28211
28564
|
{
|
|
@@ -28214,7 +28567,7 @@ function KD() {
|
|
|
28214
28567
|
}
|
|
28215
28568
|
}) : Promise.resolve();
|
|
28216
28569
|
}
|
|
28217
|
-
function
|
|
28570
|
+
function xO() {
|
|
28218
28571
|
if ("xr" in navigator) return navigator.xr.isSessionSupported("immersive-vr").then((e) => e ? Promise.resolve() : Promise.reject()).then(() => navigator.xr.requestSession("immersive-vr", { optionalFeatures: ["local-floor"] }).then((e) => Promise.resolve(e)));
|
|
28219
28572
|
{
|
|
28220
28573
|
let e = /* @__PURE__ */ Error("Request XR Permission denied.");
|
|
@@ -28223,9 +28576,9 @@ function qD() {
|
|
|
28223
28576
|
}
|
|
28224
28577
|
//#endregion
|
|
28225
28578
|
//#region build/five/application/five.js
|
|
28226
|
-
var
|
|
28579
|
+
var SO = 800, CO = 90, wO = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-public.realsee-cdn.cn/").replace("//vrlab-image4.ljcdn.com/", "//vr-image-4.realsee-cdn.cn/").replace("//vrlab-image3.ljcdn.com/", "//vr-image-3.realsee-cdn.cn/").replace("//vrlab-image2.ljcdn.com/", "//vr-image-2.realsee-cdn.cn/").replace("//vrlab-image1.ljcdn.com/", "//vr-image-1.realsee-cdn.cn/"), TO = new e.Sphere(), EO = new e.Box3(), DO = new e.Vector4(), OO = new e.Vector4(), kO = new e.Color(), AO = new e.Vector2(), jO = /* @__PURE__ */ new WeakMap(), MO = Hx([zx(null)]), NO = {}, PO = class t extends xn {
|
|
28227
28580
|
static get version() {
|
|
28228
|
-
return "1.0.0-alpha.
|
|
28581
|
+
return "1.0.0-alpha.9";
|
|
28229
28582
|
}
|
|
28230
28583
|
static get dracoPath() {
|
|
28231
28584
|
return Uf.decoderPath;
|
|
@@ -28247,7 +28600,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28247
28600
|
}
|
|
28248
28601
|
constructor(t = {}) {
|
|
28249
28602
|
var n, r, i, a, o, s, c, l, u, d, f, p;
|
|
28250
|
-
if (super(), this.pbmGaussianSplattingRenderMesh = null, this.fiveId = gn(),
|
|
28603
|
+
if (super(), this.pbmGaussianSplattingRenderMesh = null, this.fiveId = gn(), NO[this.fiveId] = this, this.currentUpdateArgs = {
|
|
28251
28604
|
time: J(),
|
|
28252
28605
|
args: []
|
|
28253
28606
|
}, this.currentMode = "Panorama", this.pano = {
|
|
@@ -28264,14 +28617,14 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28264
28617
|
}, this.fps = {
|
|
28265
28618
|
testCount: 0,
|
|
28266
28619
|
testTime: J()
|
|
28267
|
-
}, this.modeChangeDuration = (c = t.modeChangeDuration) == null ?
|
|
28620
|
+
}, this.modeChangeDuration = (c = t.modeChangeDuration) == null ? SO : c, this.enableWheel = (l = t.enableWheel) == null ? !0 : l, this.enableHDR = !!t.enableHDR && EC && !t.forceWebGL, typeof window < "u") if ("renderer" in t) t.renderer instanceof UC && this.throwError(/* @__PURE__ */ Error("cannot render a internal renderer")), this.renderer = t.renderer;
|
|
28268
28621
|
else try {
|
|
28269
|
-
this.renderer = new
|
|
28622
|
+
this.renderer = new UC({
|
|
28270
28623
|
outputType: this.enableHDR ? e.HalfFloatType : void 0,
|
|
28271
28624
|
logarithmicDepthBuffer: t.logarithmicDepthBuffer,
|
|
28272
28625
|
forceWebGL: (u = t.forceWebGL) == null ? !1 : u
|
|
28273
28626
|
});
|
|
28274
|
-
let n =
|
|
28627
|
+
let n = yO();
|
|
28275
28628
|
this.renderer.setPixelRatio(n === 1 ? window.devicePixelRatio : 1), this.renderer.setSize(512, 512), this.renderer.setClearColor(this.backgroundColor, this.backgroundAlpha);
|
|
28276
28629
|
} catch (e) {
|
|
28277
28630
|
let t = e instanceof Error ? e : Error(String(e));
|
|
@@ -28285,7 +28638,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28285
28638
|
bottom: 0,
|
|
28286
28639
|
width: 1,
|
|
28287
28640
|
height: 1
|
|
28288
|
-
}, t.viewport), this.camera = new po(
|
|
28641
|
+
}, t.viewport), this.camera = new po(CO), this.scene = new YC(), this.scene.background = this.backgroundColor, this.xrCustomObjectsScene = new e.Scene(), this.scene.add(this.xrCustomObjectsScene), this.scene.matrixAutoUpdate = !1, this.requestProxy = (p = t.requestProxy) == null ? wO : p, this.networkSubscribe = new Wl(), this.networkSubscribe.on("network", (e, t, n, r) => {
|
|
28289
28642
|
var i;
|
|
28290
28643
|
this.emit("network.resource", $("network.resource", {
|
|
28291
28644
|
source: e,
|
|
@@ -28293,17 +28646,17 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28293
28646
|
requestState: n,
|
|
28294
28647
|
detail: r
|
|
28295
28648
|
})), (i = this.analysis) == null || i.network(this.works, e, t, n, r);
|
|
28296
|
-
}), this.readyCallbacks = [], this.syncingState = !1, this.helperGroup = new e.Group(), this.helperGroup.name = "helper", this.helperGroup.matrixAutoUpdate = !1, this.scene.add(this.helperGroup),
|
|
28649
|
+
}), this.readyCallbacks = [], this.syncingState = !1, this.helperGroup = new e.Group(), this.helperGroup.name = "helper", this.helperGroup.matrixAutoUpdate = !1, this.scene.add(this.helperGroup), jO.set(this, MO), this.modelScene = new kb({ fiveId: this.fiveId }), this.modelScene.addEventListener("model.create", (e) => {
|
|
28297
28650
|
this.bindModel(e.model);
|
|
28298
28651
|
}), this.scene.add(this.modelScene);
|
|
28299
|
-
let [m] = this.modelScene.setModels(
|
|
28652
|
+
let [m] = this.modelScene.setModels(MO, { forceReplaceImmediately: !0 });
|
|
28300
28653
|
Q(m, "loaded", {
|
|
28301
28654
|
get() {
|
|
28302
28655
|
return !1;
|
|
28303
28656
|
},
|
|
28304
28657
|
set(e) {}
|
|
28305
|
-
}), this.videoTexture = new e.VideoTexture(t.videoInstance ||
|
|
28306
|
-
let h =
|
|
28658
|
+
}), this.videoTexture = new e.VideoTexture(t.videoInstance || gO());
|
|
28659
|
+
let h = _O();
|
|
28307
28660
|
this.scene.add(h), this.state = {
|
|
28308
28661
|
mode: this.currentMode,
|
|
28309
28662
|
workCode: this.pano.workCode,
|
|
@@ -28321,16 +28674,16 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28321
28674
|
}, _ = () => {
|
|
28322
28675
|
this.needsRender = !0;
|
|
28323
28676
|
}, v = () => {
|
|
28324
|
-
this.renderer instanceof
|
|
28677
|
+
this.renderer instanceof UC && this.renderer.reconfigureContext(), this.needsRender = !0;
|
|
28325
28678
|
}, y = () => {
|
|
28326
28679
|
typeof document < "u" && document.visibilityState === "visible" && v();
|
|
28327
28680
|
}, b = () => {
|
|
28328
28681
|
v();
|
|
28329
28682
|
};
|
|
28330
|
-
if (this.renderer instanceof
|
|
28683
|
+
if (this.renderer instanceof UC && (this.renderer.onDeviceLostCallback = () => {
|
|
28331
28684
|
v();
|
|
28332
28685
|
}), typeof document < "u" && (document.addEventListener("visibilitychange", y, !1), document.addEventListener("fullscreenchange", g, !1)), typeof window < "u" && window.addEventListener("pageshow", b, !1), this.renderer && this.renderer.domElement.addEventListener("webglcontextrestored", _, !1), this.removeEventListeners = () => {
|
|
28333
|
-
typeof document < "u" && (document.removeEventListener("visibilitychange", y, !1), document.removeEventListener("fullscreenchange", g, !1)), typeof window < "u" && window.removeEventListener("pageshow", b, !1), this.renderer instanceof
|
|
28686
|
+
typeof document < "u" && (document.removeEventListener("visibilitychange", y, !1), document.removeEventListener("fullscreenchange", g, !1)), typeof window < "u" && window.removeEventListener("pageshow", b, !1), this.renderer instanceof UC && (this.renderer.onDeviceLostCallback = void 0), this.renderer && this.renderer.domElement.removeEventListener("webglcontextrestored", _, !1);
|
|
28334
28687
|
}, this.loadWorkTask = this.prepare(), this.plugins = {}, t.plugins && t.plugins.length) {
|
|
28335
28688
|
for (let e of t.plugins) if (typeof e == "function") e(this);
|
|
28336
28689
|
else if (Array.isArray(e)) {
|
|
@@ -28341,7 +28694,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28341
28694
|
}
|
|
28342
28695
|
}
|
|
28343
28696
|
}
|
|
28344
|
-
|
|
28697
|
+
hO(this), this.fiveRenderer = new CC({ outputType: this.enableHDR ? e.HalfFloatType : void 0 }), this.adaptiveLuminancePass = new OS(), this.adaptiveLuminancePass.enabled = !1, this.fiveRenderer.composer.addPass(this.adaptiveLuminancePass), this.eyeDomeLightingPass = new AS(this.camera), this.eyeDomeLightingPass.enabled = !1, this.fiveRenderer.composer.addPass(this.eyeDomeLightingPass), this.pbmGaussianSplattingRenderMesh = new la(), this.scene.add(this.pbmGaussianSplattingRenderMesh);
|
|
28345
28698
|
}
|
|
28346
28699
|
get ident() {
|
|
28347
28700
|
return this.fiveId;
|
|
@@ -28355,11 +28708,11 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28355
28708
|
dispose() {
|
|
28356
28709
|
var t;
|
|
28357
28710
|
if (this.destroyed === !0) return;
|
|
28358
|
-
delete
|
|
28711
|
+
delete NO[this.fiveId], this.emit("dispose"), this.destroyed = !0, this.pause(), this.stopAnimationLoop && (this.stopAnimationLoop(), this.stopAnimationLoop = void 0), this.off(), this.networkSubscribe.off(), this.controller && (this.controller.destroy(), this.controller = void 0);
|
|
28359
28712
|
let n = this.getElement();
|
|
28360
28713
|
n && n.parentNode && n.parentNode.removeChild(n);
|
|
28361
28714
|
let r = this.modelScene.parameter;
|
|
28362
|
-
r.pano0 && r.pano0.map.dispose(), r.pano1 && r.pano1.map !== ((t = r.pano0) == null ? void 0 : t.map) && r.pano1.map.dispose(), r.reset("pano0", "pano1"), this.modelScene.dispose(),
|
|
28715
|
+
r.pano0 && r.pano0.map.dispose(), r.pano1 && r.pano1.map !== ((t = r.pano0) == null ? void 0 : t.map) && r.pano1.map.dispose(), r.reset("pano0", "pano1"), this.modelScene.dispose(), jO.set(this, MO), this.renderer && (!(this.renderer instanceof UC) || this.renderer.isInitialized) && this.renderer.render(new e.Scene(), new e.PerspectiveCamera()), this.fiveRenderer.dispose(), this.renderer instanceof UC && this.renderer.dispose();
|
|
28363
28716
|
}
|
|
28364
28717
|
setViewport(e) {
|
|
28365
28718
|
Object.assign(this.viewport, e), this.needsRender = !0;
|
|
@@ -28379,7 +28732,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28379
28732
|
}
|
|
28380
28733
|
appendTo(e, t = {}) {
|
|
28381
28734
|
if (!this.renderer) return;
|
|
28382
|
-
if (!(this.renderer instanceof
|
|
28735
|
+
if (!(this.renderer instanceof UC)) {
|
|
28383
28736
|
this.throwError(/* @__PURE__ */ Error("cannot call appendTo method when render a external renderer"));
|
|
28384
28737
|
return;
|
|
28385
28738
|
}
|
|
@@ -28394,7 +28747,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28394
28747
|
if (!this.renderer) return;
|
|
28395
28748
|
let c = this.renderer.domElement.parentNode, { width: l = (n = c == null ? void 0 : c.offsetWidth) == null ? 512 : n, height: u = (r = c == null ? void 0 : c.offsetHeight) == null ? 512 : r } = e;
|
|
28396
28749
|
if (l = Math.max(1, l), u = Math.max(1, u), !t) {
|
|
28397
|
-
let e =
|
|
28750
|
+
let e = yO(), n = typeof window < "u" ? window.devicePixelRatio : 1;
|
|
28398
28751
|
if (t = (i = e === 1 ? n : 1) == null ? 1 : i, t > 1) {
|
|
28399
28752
|
let e = Math.max(l, u) * t, n = Math.min((s = (o = (a = this.renderer.backend.device) == null ? void 0 : a.limits) == null ? void 0 : o.maxTextureDimension2D) == null ? 8192 : s, 4096);
|
|
28400
28753
|
e > n && (t = Math.max(t / e * n, 1), t = Math.floor(t * 100) / 100);
|
|
@@ -28428,7 +28781,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28428
28781
|
return this.controller.updateCameraWithKeyframes(e, t, n);
|
|
28429
28782
|
}
|
|
28430
28783
|
get works() {
|
|
28431
|
-
return
|
|
28784
|
+
return jO.get(this) || MO;
|
|
28432
28785
|
}
|
|
28433
28786
|
get work() {
|
|
28434
28787
|
return this.works[0];
|
|
@@ -28444,7 +28797,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28444
28797
|
}
|
|
28445
28798
|
load(e, t, n, r = !0) {
|
|
28446
28799
|
if (!this.renderer) throw Error("renderer is not initialized");
|
|
28447
|
-
let i = this.loadWorkTask.then(() =>
|
|
28800
|
+
let i = this.loadWorkTask.then(() => ww(e) ? e.then((e) => this.load_(e, t, n, r)) : this.load_(e, t, n, r));
|
|
28448
28801
|
return this.loadWorkTask = i.catch((e) => {
|
|
28449
28802
|
this.throwError(e);
|
|
28450
28803
|
}), i;
|
|
@@ -28452,7 +28805,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28452
28805
|
load_(n, r, i, a = !0) {
|
|
28453
28806
|
var o, s, c, l, u, d, f, p, m, h;
|
|
28454
28807
|
let g = {};
|
|
28455
|
-
typeof i == "number" ? g.duration = i : typeof i == "object" && Object.assign(g, i), this.works ===
|
|
28808
|
+
typeof i == "number" ? g.duration = i : typeof i == "object" && Object.assign(g, i), this.works === MO && (g.duration === void 0 && (g.duration = 0), g.effect === void 0 && (g.effect = "instant"));
|
|
28456
28809
|
let _ = {};
|
|
28457
28810
|
Object.assign(_, g.model), !_["3d-tiles"] && g["3d-tiles"] && (_["3d-tiles"] = g["3d-tiles"]), !_.textureOptions && g.textureOptions && (_.textureOptions = g.textureOptions), !_.textureOptions && this.textureOptions && (_.textureOptions = this.textureOptions);
|
|
28458
28811
|
let v = [];
|
|
@@ -28466,7 +28819,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28466
28819
|
return this.throwError(e), Promise.reject(e);
|
|
28467
28820
|
}
|
|
28468
28821
|
for (let e of y) this.bindWorkFetcher(e);
|
|
28469
|
-
r === void 0 && (r = "inherit"), r === "inherit" && this.works ===
|
|
28822
|
+
r === void 0 && (r = "inherit"), r === "inherit" && this.works === MO && (r = "initial");
|
|
28470
28823
|
let b = this.currentMode, x = y.initial, S = x.work.observers[0], C = S ? {
|
|
28471
28824
|
workCode: S.work.workCode,
|
|
28472
28825
|
panoIndex: S.panoIndex
|
|
@@ -28537,7 +28890,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28537
28890
|
duration: E,
|
|
28538
28891
|
effect: D,
|
|
28539
28892
|
userAction: a
|
|
28540
|
-
} }, this.commonParams()), this.controllerInits[e]), c =
|
|
28893
|
+
} }, this.commonParams()), this.controllerInits[e]), c = fO[o.mode].initAnimationEndState(s);
|
|
28541
28894
|
if (this.controller && b === e) this.controller.updateWork(y, c, {
|
|
28542
28895
|
effect: D,
|
|
28543
28896
|
duration: E
|
|
@@ -28545,7 +28898,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28545
28898
|
else {
|
|
28546
28899
|
if (this.controller) this.controller.destroy();
|
|
28547
28900
|
else {
|
|
28548
|
-
let t =
|
|
28901
|
+
let t = fO[e].initAnimationEndState(s);
|
|
28549
28902
|
this.camera.setFromPose(t), this.emit("camera.update", $("camera.update", {
|
|
28550
28903
|
state: this.getCurrentState(),
|
|
28551
28904
|
userAction: a
|
|
@@ -28566,10 +28919,10 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28566
28919
|
}
|
|
28567
28920
|
this.state.workCode = this.pano.workCode, this.state.panoIndex = this.pano.panoIndex, this.updateTime(this.currentUpdateArgs.time, 0, ...this.currentUpdateArgs.args);
|
|
28568
28921
|
};
|
|
28569
|
-
|
|
28922
|
+
jO.set(this, y);
|
|
28570
28923
|
let k = Promise.resolve();
|
|
28571
28924
|
if (w === t.Mode.Floorplan || w === t.Mode.Topview || w === t.Mode.Mapview || w === t.Mode.Model) {
|
|
28572
|
-
this.modelScene.loaded === !1 && (this.camera.setFromPose(T),
|
|
28925
|
+
this.modelScene.loaded === !1 && (this.camera.setFromPose(T), Aw(this.state, this.camera.pose));
|
|
28573
28926
|
let e = this.modelScene.setModels(y, _);
|
|
28574
28927
|
k = Promise.all(e.map((e) => e.loadedReady)).then(() => {
|
|
28575
28928
|
this.needsRender = !0, O(w, C, T), this.emit("camera.update", $("camera.update", {
|
|
@@ -28617,12 +28970,12 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28617
28970
|
pano0: null,
|
|
28618
28971
|
pano1: null,
|
|
28619
28972
|
modelAlpha: 1
|
|
28620
|
-
}),
|
|
28973
|
+
}), jO.set(this, MO), this.modelScene.setModels(MO, { forceReplaceImmediately: !0 }), this.renderer && this.modelScene.update(this.renderer, this.camera), this.needsRender = !0, this.currentMode = "Panorama", this.pano = {
|
|
28621
28974
|
workCode: "",
|
|
28622
28975
|
panoIndex: 0
|
|
28623
28976
|
}, this.camera.setFromPose({
|
|
28624
28977
|
distance: 0,
|
|
28625
|
-
fov:
|
|
28978
|
+
fov: CO,
|
|
28626
28979
|
longitude: 0,
|
|
28627
28980
|
latitude: 0,
|
|
28628
28981
|
offset: new e.Vector3(0, 0, 0)
|
|
@@ -28671,7 +29024,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28671
29024
|
duration: f,
|
|
28672
29025
|
effect: p,
|
|
28673
29026
|
userAction: i
|
|
28674
|
-
} }, this.commonParams()), this.controllerInits[e]), a =
|
|
29027
|
+
} }, this.commonParams()), this.controllerInits[e]), a = fO[e].initAnimationEndState(r), o = $("mode.change.request", {
|
|
28675
29028
|
prevMode: this.currentMode,
|
|
28676
29029
|
mode: e,
|
|
28677
29030
|
state: a,
|
|
@@ -28690,22 +29043,22 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28690
29043
|
}
|
|
28691
29044
|
o();
|
|
28692
29045
|
}, v = Bu.shared.getContext();
|
|
28693
|
-
if (v && (typeof XRSession < "u" && v instanceof XRSession && v.end(), Bu.shared.setContext(null)), e === t.Mode.VRPanorama) this.requestFullscreen(),
|
|
29046
|
+
if (v && (typeof XRSession < "u" && v instanceof XRSession && v.end(), Bu.shared.setContext(null)), e === t.Mode.VRPanorama) this.requestFullscreen(), bO().then(() => _()).catch((e) => {
|
|
28694
29047
|
let t = e instanceof Error ? e : Error(String(e));
|
|
28695
29048
|
this.exitFullscreen(), this.throwError(t), s(t);
|
|
28696
29049
|
});
|
|
28697
29050
|
else if (e === t.Mode.XRPanorama) {
|
|
28698
|
-
if (!
|
|
29051
|
+
if (!ND.isBackendXRCapable(this.renderer)) {
|
|
28699
29052
|
let e = /* @__PURE__ */ Error("XRPanorama 需要 WebGL2 回落后端。请在 new Five() 时传入 { forceWebGL: true }。后端在运行时无法切换,设备检测必须发生在 new Five() 之前。");
|
|
28700
29053
|
this.throwError(e), s(e);
|
|
28701
29054
|
return;
|
|
28702
29055
|
}
|
|
28703
|
-
if (!
|
|
29056
|
+
if (!ND.isBrowserXRCapable()) {
|
|
28704
29057
|
let e = /* @__PURE__ */ Error("当前浏览器不支持 WebXR(navigator.xr 不存在)。");
|
|
28705
29058
|
this.throwError(e), s(e);
|
|
28706
29059
|
return;
|
|
28707
29060
|
}
|
|
28708
|
-
|
|
29061
|
+
xO().then((e) => {
|
|
28709
29062
|
Bu.shared.setContext(e), a = !0;
|
|
28710
29063
|
try {
|
|
28711
29064
|
_();
|
|
@@ -28727,10 +29080,10 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28727
29080
|
let c = J(), l = this.renderer.getPixelRatio(), u = this.renderer.getRenderTarget(), d = this.getSize(new e.Vector2()), f = 0, p = 0, m = 1, h = 1, g, _, v, y, b;
|
|
28728
29081
|
typeof t == "number" ? (f = t, typeof n == "number" && (p = n), typeof r == "number" && (m = r), typeof i == "number" && (h = i), g = a, _ = o, b = s) : (f = t.x, p = t.y, m = t.width, h = t.height, g = t.pixelRatio, _ = t.flipY, v = t.helperVisible, y = t.skipPanorama, b = t.buffer), f = Math.floor(f), p = Math.floor(p), m = Math.floor(m), h = Math.floor(h), g = Math.floor(g == null ? l : g), _ = _ == null ? !1 : _;
|
|
28729
29082
|
let x = this.helperVisible, S = this.modelScene.parameter.modelAlpha;
|
|
28730
|
-
this.helperVisible = v == null ? this.helperVisible : v, y && (this.controller instanceof
|
|
29083
|
+
this.helperVisible = v == null ? this.helperVisible : v, y && (this.controller instanceof fO.Panorama || this.controller instanceof fO.VRPanorama || this.controller instanceof fO.XRPanorama) && y === !0 && this.modelScene.parameter.set("modelAlpha", 1), this.modelScene.update(this.renderer, this.camera);
|
|
28731
29084
|
let C = this.getPixelsRenderTarget;
|
|
28732
29085
|
C.setSize(m * g, h * g), this.renderer.setRenderTarget(C), this.camera.pixelRatio = g, this.camera.resolution.set(m, h), this.camera.setViewOffset(d.width, d.height, f, d.height - p - h, m, h), this.camera.aspect = d.width / d.height, this.camera.updateTime(c), this.scene.update(this.renderer, this.camera);
|
|
28733
|
-
let w = this.renderer.autoClear, T = this.renderer.autoClearColor, E = this.renderer.autoClearDepth, D = this.renderer.autoClearStencil, O = this.renderer.getClearColor(
|
|
29086
|
+
let w = this.renderer.autoClear, T = this.renderer.autoClearColor, E = this.renderer.autoClearDepth, D = this.renderer.autoClearStencil, O = this.renderer.getClearColor(kO), k = this.renderer.getClearAlpha(), A = this.renderer.getScissorTest();
|
|
28734
29087
|
this.renderer.autoClear = !0, this.renderer.autoClearColor = !0, this.renderer.autoClearDepth = !0, this.renderer.autoClearStencil = !0, this.renderer.setScissorTest(!1);
|
|
28735
29088
|
let j = this.scene.background;
|
|
28736
29089
|
this.scene.background = this.camera.isOrthographicCamera || this.backgroundAlpha < 1 ? null : j, this.renderer.render(this.scene, this.camera), this.scene.background = j, this.renderer.autoClear = w, this.renderer.autoClearColor = T, this.renderer.autoClearDepth = E, this.renderer.autoClearStencil = D, this.renderer.setClearColor(O, k), this.renderer.setScissorTest(A), this.helperVisible = x, S === void 0 ? this.modelScene.parameter.reset("modelAlpha") : this.modelScene.parameter.set("modelAlpha", S), this.renderer.setRenderTarget(u), this.camera.clearViewOffset(), this.camera.pixelRatio = l, this.camera.resolution.copy(d), this.camera.aspect = this.camera.resolution.width / this.camera.resolution.height, this.camera.updateTime(c), this.modelScene.update(this.renderer, this.camera), this.scene.update(this.renderer, this.camera);
|
|
@@ -28763,9 +29116,9 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28763
29116
|
if (!t) return;
|
|
28764
29117
|
let n = t.getRenderTarget();
|
|
28765
29118
|
t.setRenderTarget(null);
|
|
28766
|
-
let r = t.autoClear, i = t.autoClearColor, a = t.autoClearDepth, o = t.autoClearStencil, s = t.getClearColor(
|
|
29119
|
+
let r = t.autoClear, i = t.autoClearColor, a = t.autoClearDepth, o = t.autoClearStencil, s = t.getClearColor(kO), c = t.getClearAlpha(), l = t.getViewport(DO), u = t.getScissor(OO), d = t.getScissorTest();
|
|
28767
29120
|
t.autoClear = !0, t.autoClearColor = !0, t.autoClearDepth = !0, t.autoClearStencil = !0;
|
|
28768
|
-
let f = t.getSize(
|
|
29121
|
+
let f = t.getSize(AO), p = Math.floor(f.x * this.viewport.left), m = Math.floor(f.y * this.viewport.bottom), h = Math.floor(f.x * this.viewport.width), g = Math.floor(f.y * this.viewport.height);
|
|
28769
29122
|
t.setClearColor(this.backgroundColor, this.backgroundAlpha), t.setViewport(p, m, h, g), t.setScissor(p, m, h, g);
|
|
28770
29123
|
let _ = this.viewport.bottom !== 0 || this.viewport.left !== 0 || this.viewport.width !== 1 || this.viewport.height !== 1;
|
|
28771
29124
|
t.setScissorTest(_);
|
|
@@ -28788,8 +29141,8 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28788
29141
|
}, !0, 0, 10);
|
|
28789
29142
|
}
|
|
28790
29143
|
if (this.camera.autoNearFar) {
|
|
28791
|
-
|
|
28792
|
-
let t =
|
|
29144
|
+
EO.makeEmpty(), EO.expandByObject(this.modelScene.boundingMesh);
|
|
29145
|
+
let t = EO.getBoundingSphere(TO), n = t.radius * 2;
|
|
28793
29146
|
t.containsPoint(this.camera.position) || (n = this.camera.position.distanceTo(t.center) + t.radius);
|
|
28794
29147
|
let r = q(n / 500, .001, .1), i = q(n, 800);
|
|
28795
29148
|
this.camera.near !== r && (this.camera.near = r), this.camera.far !== i && (this.camera.far = i), this.camera.updateTime(e);
|
|
@@ -28798,14 +29151,14 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28798
29151
|
let e = this.modelScene.visible;
|
|
28799
29152
|
this.modelScene.visible = !1, this.scene.update(this.renderer, this.camera), this.modelScene.visible = e;
|
|
28800
29153
|
}
|
|
28801
|
-
if (this.syncingState = !1, this.controller && this.controller.needsRender === !0 && (this.controller.needsRender = !1, this.needsRender = !0), this.camera.needsRender === !0 && (this.camera.needsRender = !1, this.needsRender = !0), this.modelScene.needsRender === !0 && (this.modelScene.needsRender = !1, this.needsRender = !0), this.scene.needsRender === !0 && (this.scene.needsRender = !1, this.needsRender = !0), this.pbmGaussianSplattingRenderMesh && this.pbmGaussianSplattingRenderMesh.needsRender === !0 && (this.pbmGaussianSplattingRenderMesh.needsRender = !1, this.needsRender = !0), this.onlyRenderIfNeeds !== !0 && (this.needsRender = !0), this.paused === !0 || this.renderer instanceof
|
|
29154
|
+
if (this.syncingState = !1, this.controller && this.controller.needsRender === !0 && (this.controller.needsRender = !1, this.needsRender = !0), this.camera.needsRender === !0 && (this.camera.needsRender = !1, this.needsRender = !0), this.modelScene.needsRender === !0 && (this.modelScene.needsRender = !1, this.needsRender = !0), this.scene.needsRender === !0 && (this.scene.needsRender = !1, this.needsRender = !0), this.pbmGaussianSplattingRenderMesh && this.pbmGaussianSplattingRenderMesh.needsRender === !0 && (this.pbmGaussianSplattingRenderMesh.needsRender = !1, this.needsRender = !0), this.onlyRenderIfNeeds !== !0 && (this.needsRender = !0), this.paused === !0 || this.renderer instanceof UC && !this.renderer.isInitialized) return;
|
|
28802
29155
|
let r = $("render.prepare", { needsRender: this.needsRender });
|
|
28803
29156
|
this.emit("render.prepare", r), r.defaultPrevented && (this.needsRender = !1);
|
|
28804
29157
|
let i = this.needsRender;
|
|
28805
29158
|
this.render(), this.needsRender = !1, this.emit("render", $("render", { needsRender: i })), this.hasListener("fps") && (this.fps.testTime && e - this.fps.testTime < 1e3 ? this.fps.testCount++ : (this.emit("fps", this.fps.testCount), this.fps.testTime = e, this.fps.testCount = 0));
|
|
28806
29159
|
}
|
|
28807
29160
|
pause() {
|
|
28808
|
-
this.paused = !0, this.renderer && this.renderer instanceof
|
|
29161
|
+
this.paused = !0, this.renderer && this.renderer instanceof UC && this.renderer.clear(!0, !0, !0);
|
|
28809
29162
|
}
|
|
28810
29163
|
play() {
|
|
28811
29164
|
this.needsRender = !0, this.paused = !1;
|
|
@@ -28923,7 +29276,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28923
29276
|
duration: this.modeChangeDuration,
|
|
28924
29277
|
effect: "fly",
|
|
28925
29278
|
userAction: !1
|
|
28926
|
-
} }, this.commonParams()), this.controllerInits[h]), i =
|
|
29279
|
+
} }, this.commonParams()), this.controllerInits[h]), i = fO[h].initAnimationEndState(r);
|
|
28927
29280
|
g = i.longitude, _ = i.latitude, v = i.fov, y = i.offset, b = i.distance;
|
|
28928
29281
|
} else g = (s = t.longitude) == null ? this.state.longitude : s, _ = (c = t.latitude) == null ? this.state.latitude : c, v = (l = t.fov) == null ? this.state.fov : l, y = (u = t.offset) == null ? this.state.offset : u, b = (d = t.distance) == null ? this.state.distance : d;
|
|
28929
29282
|
let x = {
|
|
@@ -28939,7 +29292,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28939
29292
|
this.emit("state.set", $("state.set", {
|
|
28940
29293
|
userAction: r,
|
|
28941
29294
|
state: x
|
|
28942
|
-
})),
|
|
29295
|
+
})), kw(this.state, x) || (this.controller && x.mode === "VRPanorama" && x.mode !== this.state.mode ? (Ow(this.state, x), this.changeMode("VRPanorama")) : this.controller && x.mode === "XRPanorama" && x.mode !== this.state.mode ? (Ow(this.state, x), this.changeMode("XRPanorama")) : (Ow(this.state, x), this.controller && r && (this.controller.userAction = !1), n && this.state.mode === x.mode && (this.syncingState = this.syncState(J(), 0, n), this.syncingState && ((f = this.controller) == null || f.updateTime(J(), 0), this.syncingState = !1)), this.emit("state.change", $("state.change", {
|
|
28943
29296
|
userAction: r,
|
|
28944
29297
|
state: this.state
|
|
28945
29298
|
})), (p = this.analysis) == null || p.state(this.works, this.state)));
|
|
@@ -28961,8 +29314,8 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28961
29314
|
return this.changeMode(this.state.mode, e, this.modeChangeDuration, this.controller.userAction), !0;
|
|
28962
29315
|
}
|
|
28963
29316
|
if (!this.controller.isReady()) return !1;
|
|
28964
|
-
if (this.controller instanceof
|
|
28965
|
-
if (
|
|
29317
|
+
if (this.controller instanceof fO.Model) {
|
|
29318
|
+
if (Cw(this.camera.pose.offset, this.state.offset)) {
|
|
28966
29319
|
let e = {
|
|
28967
29320
|
longitude: this.state.longitude,
|
|
28968
29321
|
latitude: this.state.latitude,
|
|
@@ -28987,7 +29340,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28987
29340
|
return this.controller.moveToPano(e, t, !1), !0;
|
|
28988
29341
|
}
|
|
28989
29342
|
}
|
|
28990
|
-
if (this.controller instanceof
|
|
29343
|
+
if (this.controller instanceof fO.Floorplan || this.controller instanceof fO.Topview || this.controller instanceof fO.Mapview) {
|
|
28991
29344
|
let t = .2, n = Math.PI / 45, r = i ? this.state.fov : hS(this.camera.pose.fov, this.state.fov, 1), a = Math.abs(this.camera.pose.distance - this.state.distance), o = a > t * 15 ? a / 15 : .2, s = i ? this.state.distance : hS(this.camera.pose.distance, this.state.distance, o), c = this.camera.pose.offset.distanceTo(this.state.offset), l = c > t * 15 ? c / 15 : t, u = i ? new e.Vector3().copy(this.state.offset) : gS(this.camera.pose.offset, this.state.offset, l), { longitude: d, latitude: f } = i ? {
|
|
28992
29345
|
longitude: this.state.longitude,
|
|
28993
29346
|
latitude: this.state.latitude
|
|
@@ -28998,7 +29351,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28998
29351
|
longitude: this.state.longitude,
|
|
28999
29352
|
latitude: this.state.latitude
|
|
29000
29353
|
}, n);
|
|
29001
|
-
if (
|
|
29354
|
+
if (xw(r, this.camera.pose.fov) || Cw(u, this.camera.pose.offset) || xw(s, this.camera.pose.distance) || xw(d, this.camera.pose.longitude, Math.PI * 2) || xw(f, this.camera.pose.latitude)) {
|
|
29002
29355
|
let e = {
|
|
29003
29356
|
x: u.x,
|
|
29004
29357
|
y: u.y,
|
|
@@ -29020,7 +29373,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29020
29373
|
longitude: this.state.longitude,
|
|
29021
29374
|
latitude: this.state.latitude
|
|
29022
29375
|
}, t), o = this.state.distance, s = new e.Vector3().copy(this.state.offset);
|
|
29023
|
-
if (
|
|
29376
|
+
if (xw(o, this.camera.pose.distance) && (this.state.distance = this.camera.pose.distance), Cw(s, this.camera.pose.offset) && (this.state.offset = this.camera.pose.offset.clone()), xw(r, this.camera.pose.longitude, Math.PI * 2) || xw(a, this.camera.pose.latitude) || xw(n, this.camera.pose.fov)) return this.controller.stopMomentumMovement(), this.controller.cameraMotion.set({
|
|
29024
29377
|
longitude: r,
|
|
29025
29378
|
latitude: a,
|
|
29026
29379
|
fov: n
|
|
@@ -29034,7 +29387,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29034
29387
|
if (!(e === t.Mode.Floorplan || e === t.Mode.Topview || e === t.Mode.Mapview || e === t.Mode.Model) || this.modelScene.loaded) {
|
|
29035
29388
|
let e = this.readyCallbacks.slice();
|
|
29036
29389
|
this.readyCallbacks.length = 0;
|
|
29037
|
-
for (let t of e) this.controller instanceof
|
|
29390
|
+
for (let t of e) this.controller instanceof fO.Panorama && t.tile === !0 ? this.readyCallbacks.push(t) : t();
|
|
29038
29391
|
}
|
|
29039
29392
|
}
|
|
29040
29393
|
return !1;
|
|
@@ -29047,7 +29400,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29047
29400
|
}
|
|
29048
29401
|
requestFullscreen() {
|
|
29049
29402
|
var e;
|
|
29050
|
-
if (
|
|
29403
|
+
if (!DC) return;
|
|
29051
29404
|
let t = (e = this.getElement()) == null ? void 0 : e.parentNode;
|
|
29052
29405
|
t && "requestFullscreen" in t && typeof document < "u" && document.fullscreenElement === null && t.requestFullscreen();
|
|
29053
29406
|
}
|
|
@@ -29135,15 +29488,15 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29135
29488
|
}
|
|
29136
29489
|
applyController(e, n) {
|
|
29137
29490
|
if (!this.renderer) throw Error("renderer is not initialized.");
|
|
29138
|
-
let r =
|
|
29491
|
+
let r = fO[e];
|
|
29139
29492
|
this.currentMode = e;
|
|
29140
29493
|
let i = new r(n);
|
|
29141
|
-
for (let e of
|
|
29494
|
+
for (let e of mO) i.on(e, (...t) => {
|
|
29142
29495
|
if (this.emit(e, ...t)) return !1;
|
|
29143
29496
|
});
|
|
29144
29497
|
{
|
|
29145
|
-
let t =
|
|
29146
|
-
|
|
29498
|
+
let t = fO[e].initAnimationEndState(n), r = n.initial.userAction;
|
|
29499
|
+
kw(this.state, t) || (Ow(this.state, t), this.emit("state.change", $("state.change", {
|
|
29147
29500
|
userAction: r,
|
|
29148
29501
|
state: this.state
|
|
29149
29502
|
}))), this.emit("currentState.change", $("currentState.change", {
|
|
@@ -29155,7 +29508,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29155
29508
|
var t;
|
|
29156
29509
|
if (this.controller) {
|
|
29157
29510
|
let n = this.controller.getTargetState();
|
|
29158
|
-
e.userAction && this.syncingState === !1 && this.state.mode === n.mode && !
|
|
29511
|
+
e.userAction && this.syncingState === !1 && this.state.mode === n.mode && !kw(this.state, n) && (Ow(this.state, n), this.emit("state.change", $("state.change", {
|
|
29159
29512
|
userAction: e.userAction,
|
|
29160
29513
|
state: this.state
|
|
29161
29514
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
@@ -29167,7 +29520,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29167
29520
|
}), i.on("initAnimation.start", (e) => {
|
|
29168
29521
|
var t;
|
|
29169
29522
|
let { state: n, userAction: r } = e;
|
|
29170
|
-
r && this.state.mode === n.mode && !
|
|
29523
|
+
r && this.state.mode === n.mode && !kw(this.state, n) && (Ow(this.state, n), this.emit("state.change", $("state.change", {
|
|
29171
29524
|
userAction: r,
|
|
29172
29525
|
state: this.state
|
|
29173
29526
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
@@ -29177,7 +29530,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29177
29530
|
this.pano = {
|
|
29178
29531
|
workCode: n.workCode,
|
|
29179
29532
|
panoIndex: n.panoIndex
|
|
29180
|
-
}, r && this.state.mode === n.mode && !
|
|
29533
|
+
}, r && this.state.mode === n.mode && !kw(this.state, n) && (Ow(this.state, n), this.emit("state.change", $("state.change", {
|
|
29181
29534
|
userAction: r,
|
|
29182
29535
|
state: this.state
|
|
29183
29536
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
@@ -29187,7 +29540,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29187
29540
|
this.pano = {
|
|
29188
29541
|
workCode: n.workCode,
|
|
29189
29542
|
panoIndex: n.panoIndex
|
|
29190
|
-
}, r && this.state.mode === n.mode && !
|
|
29543
|
+
}, r && this.state.mode === n.mode && !kw(this.state, n) && (Ow(this.state, n), this.emit("state.change", $("state.change", {
|
|
29191
29544
|
userAction: r,
|
|
29192
29545
|
state: this.state
|
|
29193
29546
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
@@ -29197,14 +29550,14 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29197
29550
|
this.pano = {
|
|
29198
29551
|
workCode: n.workCode,
|
|
29199
29552
|
panoIndex: n.panoIndex
|
|
29200
|
-
}, r && this.state.mode === n.mode && !
|
|
29553
|
+
}, r && this.state.mode === n.mode && !kw(this.state, n) && (Ow(this.state, n), this.emit("state.change", $("state.change", {
|
|
29201
29554
|
userAction: r,
|
|
29202
29555
|
state: this.state
|
|
29203
29556
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
29204
29557
|
}), i.on("pano.cancel", (e) => {
|
|
29205
29558
|
var t;
|
|
29206
29559
|
let { state: n, userAction: r } = e;
|
|
29207
|
-
r && this.state.mode === n.mode && !
|
|
29560
|
+
r && this.state.mode === n.mode && !kw(this.state, n) && (Ow(this.state, n), this.emit("state.change", $("state.change", {
|
|
29208
29561
|
userAction: r,
|
|
29209
29562
|
state: this.state
|
|
29210
29563
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
@@ -29302,7 +29655,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29302
29655
|
this.adaptiveLuminancePass.enabled = e, this.needsRender = !0;
|
|
29303
29656
|
}
|
|
29304
29657
|
};
|
|
29305
|
-
|
|
29658
|
+
PO.Mode = {
|
|
29306
29659
|
Panorama: "Panorama",
|
|
29307
29660
|
Model: "Model",
|
|
29308
29661
|
Floorplan: "Floorplan",
|
|
@@ -29312,12 +29665,12 @@ oO.Mode = {
|
|
|
29312
29665
|
XRPanorama: "XRPanorama"
|
|
29313
29666
|
}, typeof window < "u" && Object.assign(window, { __FIVE_DEBUG__: {
|
|
29314
29667
|
THREE: e,
|
|
29315
|
-
constructor:
|
|
29316
|
-
instances:
|
|
29668
|
+
constructor: PO,
|
|
29669
|
+
instances: NO
|
|
29317
29670
|
} });
|
|
29318
29671
|
//#endregion
|
|
29319
29672
|
//#region build/five/webxr/xrButton.js
|
|
29320
|
-
var
|
|
29673
|
+
var FO = class {
|
|
29321
29674
|
static createButton(e) {
|
|
29322
29675
|
let t = document.createElement("button"), n = "ENTER VR", r = "calc(50% - 50px)", i = "100px", a;
|
|
29323
29676
|
function o() {
|
|
@@ -29362,4 +29715,4 @@ var sO = class {
|
|
|
29362
29715
|
}
|
|
29363
29716
|
};
|
|
29364
29717
|
//#endregion
|
|
29365
|
-
export { OS as AdaptiveLuminancePass, Bu as AnimationFrameLoop, Db as BoundingMesh, po as Camera, Wx as EffectComposer, AS as EyeDomeLightingPass, Yl as Fetcher,
|
|
29718
|
+
export { OS as AdaptiveLuminancePass, Bu as AnimationFrameLoop, Db as BoundingMesh, po as Camera, Wx as EffectComposer, AS as EyeDomeLightingPass, Yl as Fetcher, PO as Five, Kx as FivePass, CC as FiveRenderer, BS as FlowingFireworks3DPass, PS as FlowingLight2DPass, MS as FlowingLight3DPass, Gx as FullScreenQuad, ta as GSPLAT_PIPELINE_AUTO, na as GSPLAT_PIPELINE_RASTER_CPU_SORT, ra as GSPLAT_PIPELINE_RASTER_GPU_SORT, jS as GaussianBlurPass, fS as Histogram, UC as InternalWebGPURenderer, vb as Model, kb as ModelScene, X as Motion, Wl as NetworkSubscribe, On as PBMCustomNode, pn as PBMGSObject, pn as PBMGaussianSplattingObject, Zr as PBMGaussianSplattingNodeMaterial, la as PBMGaussianSplattingRenderMesh, an as PBMGroup, un as PBMMesh, ua as PBMMeshBasicMaterial, Cl as PBMMeshBasicNodeMaterial, da as PBMMeshPanoOnlyMaterial, kl as PBMMeshPanoOnlyNodeMaterial, fa as PBMMeshPhongMaterial, Tl as PBMMeshPhongNodeMaterial, pa as PBMMeshPhysicalMaterial, Dl as PBMMeshPhysicalNodeMaterial, An as PBMPanoFilter, qn as PBMPointCloud, Vn as PBMPointCloudMaterial, dn as PBMSkinnedMesh, Dn as PBMUpdateable, En as PBMVertexMarkFlag, mO as PROXY_CONTROLLER_EVENT_NAMES, rw as PanoCircleMesh, yw as PanoCircleMeshCustom, dw as PanoCircleMeshSolid, Ry as Parameter, YC as Scene, xn as Subscribe, Qu as TextureLoader, Pm as Tile, Zy as Tile3D, Zy as Tile3DModel, vg as TileCache, sg as TileNode, hg as TileRequestScheduler, wg as Tileset, dg as Trajectory, fg as TrajectoryNode, Rx as Work, Vx as WorkResolvedObserver, FO as XRButton, pO as controllersDefaultInitArgs, $a as coordinatesToVector, km as createDebugBoundingMesh, Hx as createWorks, kn as customNodesCacheKey, ku as defaultImageURLTransform, Uf as draco, yO as getViewportScale, no as headingToLongitude, fu as imageSupport, wm as isBoundingVolume, ex as isPanoId, zd as loadAt3d, Wd as loadDome, Zd as loadDomez, rm as loadGltf, _d as loadPbm, tf as loadPly, to as longitudeToHeading, Tm as makeBoundingVolume, $b as panoEqual, Qb as panoParse, Zb as panoStringify, zx as parseWork, Ml as registerPBMMaterials, eo as vectorToCoordinates, Pb as workToJson };
|