@realsee/five-webgpu 1.0.0-alpha.8 → 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 +1067 -721
- 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 +12 -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: 2026/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,28 +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) {
|
|
19462
19515
|
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");
|
|
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) {
|
|
19517
|
+
return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
|
|
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
|
|
19749
|
+
var yC = class t {
|
|
19476
19750
|
get colorFormat() {
|
|
19477
19751
|
return this.format;
|
|
19478
19752
|
}
|
|
19479
|
-
constructor(
|
|
19480
|
-
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(
|
|
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 = {
|
|
19481
19755
|
sizeMode: 1,
|
|
19482
19756
|
pointScale: .02,
|
|
19483
19757
|
pointMinPixel: 0,
|
|
@@ -19487,14 +19761,14 @@ var qS = class t {
|
|
|
19487
19761
|
hardPixelMax: 12,
|
|
19488
19762
|
pointShape: 1,
|
|
19489
19763
|
maxDisplayBoost: 1
|
|
19490
|
-
}, this.ready = !1, this.
|
|
19491
|
-
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,
|
|
19492
19766
|
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST
|
|
19493
|
-
}), this.displayParamsBuffer =
|
|
19767
|
+
}), this.displayParamsBuffer = t.createBuffer({
|
|
19494
19768
|
size: 8,
|
|
19495
19769
|
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST
|
|
19496
19770
|
});
|
|
19497
|
-
let
|
|
19771
|
+
let r = new DataView(this.frameUniformScratch), i = new Float32Array([
|
|
19498
19772
|
1,
|
|
19499
19773
|
0,
|
|
19500
19774
|
0,
|
|
@@ -19512,28 +19786,71 @@ var qS = class t {
|
|
|
19512
19786
|
0,
|
|
19513
19787
|
1
|
|
19514
19788
|
]);
|
|
19515
|
-
new Float32Array(this.frameUniformScratch, 0, 16).set(
|
|
19516
|
-
let
|
|
19517
|
-
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({
|
|
19518
19794
|
layout: "auto",
|
|
19519
19795
|
compute: {
|
|
19520
19796
|
module: o,
|
|
19521
19797
|
entryPoint: "main"
|
|
19522
19798
|
}
|
|
19523
|
-
}), this.
|
|
19524
|
-
|
|
19525
|
-
|
|
19526
|
-
|
|
19527
|
-
|
|
19528
|
-
|
|
19529
|
-
|
|
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({
|
|
19530
19847
|
layout: "auto",
|
|
19531
19848
|
vertex: {
|
|
19532
|
-
module:
|
|
19849
|
+
module: s,
|
|
19533
19850
|
entryPoint: "vs_main"
|
|
19534
19851
|
},
|
|
19535
19852
|
fragment: {
|
|
19536
|
-
module:
|
|
19853
|
+
module: s,
|
|
19537
19854
|
entryPoint: "fs_main",
|
|
19538
19855
|
targets: [{ format: this.format }]
|
|
19539
19856
|
},
|
|
@@ -19543,14 +19860,14 @@ var qS = class t {
|
|
|
19543
19860
|
depthWriteEnabled: !0,
|
|
19544
19861
|
depthCompare: "less"
|
|
19545
19862
|
}
|
|
19546
|
-
}), this.fullscreenQuadPipelineAdditive =
|
|
19863
|
+
}), this.fullscreenQuadPipelineAdditive = t.createRenderPipeline({
|
|
19547
19864
|
layout: "auto",
|
|
19548
19865
|
vertex: {
|
|
19549
|
-
module:
|
|
19866
|
+
module: s,
|
|
19550
19867
|
entryPoint: "vs_main"
|
|
19551
19868
|
},
|
|
19552
19869
|
fragment: {
|
|
19553
|
-
module:
|
|
19870
|
+
module: s,
|
|
19554
19871
|
entryPoint: "fs_main",
|
|
19555
19872
|
targets: [{
|
|
19556
19873
|
format: this.format,
|
|
@@ -19574,14 +19891,14 @@ var qS = class t {
|
|
|
19574
19891
|
depthWriteEnabled: !0,
|
|
19575
19892
|
depthCompare: "less"
|
|
19576
19893
|
}
|
|
19577
|
-
}), this.placeholderGradientTexture =
|
|
19894
|
+
}), this.placeholderGradientTexture = t.createTexture({
|
|
19578
19895
|
size: {
|
|
19579
19896
|
width: 1,
|
|
19580
19897
|
height: 1
|
|
19581
19898
|
},
|
|
19582
19899
|
format: "rgba8unorm",
|
|
19583
19900
|
usage: GPUTextureUsage.TEXTURE_BINDING | GPUTextureUsage.COPY_DST
|
|
19584
|
-
}), this.placeholderGradientView = this.placeholderGradientTexture.createView(),
|
|
19901
|
+
}), this.placeholderGradientView = this.placeholderGradientTexture.createView(), t.queue.writeTexture({ texture: this.placeholderGradientTexture }, new Uint8Array([
|
|
19585
19902
|
128,
|
|
19586
19903
|
128,
|
|
19587
19904
|
128,
|
|
@@ -19593,7 +19910,7 @@ var qS = class t {
|
|
|
19593
19910
|
width: 1,
|
|
19594
19911
|
height: 1,
|
|
19595
19912
|
depthOrArrayLayers: 1
|
|
19596
|
-
}), this.gradientSampler =
|
|
19913
|
+
}), this.gradientSampler = t.createSampler({
|
|
19597
19914
|
magFilter: "linear",
|
|
19598
19915
|
minFilter: "linear",
|
|
19599
19916
|
addressModeU: "clamp-to-edge",
|
|
@@ -19616,12 +19933,12 @@ var qS = class t {
|
|
|
19616
19933
|
usage: GPUBufferUsage.STORAGE | GPUBufferUsage.COPY_DST
|
|
19617
19934
|
});
|
|
19618
19935
|
if (this.packedColorScratch.length < r && (this.packedColorScratch = new Uint32Array(r)), n instanceof Uint8Array) for (let e = 0; e < r; e++) {
|
|
19619
|
-
let t = e * 3, r =
|
|
19620
|
-
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);
|
|
19621
19938
|
}
|
|
19622
19939
|
else for (let e = 0; e < r; e++) {
|
|
19623
19940
|
let t = e * 3;
|
|
19624
|
-
this.packedColorScratch[e] =
|
|
19941
|
+
this.packedColorScratch[e] = _C(n[t], n[t + 1], n[t + 2]);
|
|
19625
19942
|
}
|
|
19626
19943
|
this.device.queue.writeBuffer(a, 0, this.packedColorScratch.buffer, 0, r * 4);
|
|
19627
19944
|
let o = this.device.createBuffer({
|
|
@@ -19652,11 +19969,14 @@ var qS = class t {
|
|
|
19652
19969
|
let g = this.ensureTileUniformBuffer(e);
|
|
19653
19970
|
this.bindRasterizeGroup(e, g, m, h), this.ready = !!this.framebuffer && !!this.rasterizeBindGroup;
|
|
19654
19971
|
}
|
|
19655
|
-
|
|
19656
|
-
|
|
19657
|
-
|
|
19658
|
-
|
|
19659
|
-
|
|
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);
|
|
19660
19980
|
}
|
|
19661
19981
|
writeTileUniform(e, t) {
|
|
19662
19982
|
let n = this.ensureTileUniformBuffer(e), r = new DataView(this.tileUniformScratch);
|
|
@@ -19675,19 +19995,20 @@ var qS = class t {
|
|
|
19675
19995
|
let n = 0;
|
|
19676
19996
|
return Hn(e.normals, t) && (n |= 1), e.useAddBlend && (n |= 8), n;
|
|
19677
19997
|
}
|
|
19678
|
-
writePointAttenuationUniforms(e,
|
|
19679
|
-
let
|
|
19680
|
-
e.setFloat32(
|
|
19681
|
-
}
|
|
19682
|
-
writeFrameUniformsDataView(e, n, r
|
|
19683
|
-
var
|
|
19684
|
-
|
|
19685
|
-
|
|
19686
|
-
|
|
19687
|
-
|
|
19688
|
-
|
|
19689
|
-
|
|
19690
|
-
|
|
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);
|
|
19691
20012
|
let f = new Float32Array([
|
|
19692
20013
|
1,
|
|
19693
20014
|
0,
|
|
@@ -19706,44 +20027,50 @@ var qS = class t {
|
|
|
19706
20027
|
0,
|
|
19707
20028
|
1
|
|
19708
20029
|
]);
|
|
19709
|
-
for (let
|
|
19710
|
-
e.setFloat32(
|
|
19711
|
-
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;
|
|
19712
20033
|
if (p.length > 0) {
|
|
19713
|
-
let
|
|
19714
|
-
|
|
19715
|
-
let
|
|
19716
|
-
for (let
|
|
19717
|
-
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);
|
|
19718
20039
|
}
|
|
19719
20040
|
if (p.length > 1) {
|
|
19720
|
-
let
|
|
19721
|
-
|
|
19722
|
-
let
|
|
19723
|
-
for (let
|
|
19724
|
-
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);
|
|
19725
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);
|
|
19726
20053
|
}
|
|
19727
20054
|
writeTileUniformsDataView(e, n, r) {
|
|
19728
|
-
let i = n.matrixWorld.elements;
|
|
19729
|
-
for (let
|
|
19730
|
-
let
|
|
19731
|
-
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);
|
|
19732
20061
|
}
|
|
19733
|
-
resize(e,
|
|
19734
|
-
var
|
|
19735
|
-
e <= 0 ||
|
|
19736
|
-
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,
|
|
19737
20066
|
usage: GPUBufferUsage.STORAGE
|
|
19738
|
-
}), 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());
|
|
19739
20068
|
}
|
|
19740
20069
|
encodeFramebufferClear(e) {
|
|
19741
|
-
!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)));
|
|
19742
20071
|
}
|
|
19743
20072
|
encodeRasterize(e) {
|
|
19744
|
-
|
|
19745
|
-
let t = this.rasterizePipeline;
|
|
19746
|
-
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);
|
|
19747
20074
|
}
|
|
19748
20075
|
encodeFramebufferDisplay(e, t) {
|
|
19749
20076
|
if (!this.displayBindGroup || !this.framebuffer) return;
|
|
@@ -19752,9 +20079,13 @@ var qS = class t {
|
|
|
19752
20079
|
}
|
|
19753
20080
|
submitMergedPointCloudFrame(e, t, n, r) {
|
|
19754
20081
|
var i, a, o;
|
|
19755
|
-
let s =
|
|
19756
|
-
if (
|
|
19757
|
-
|
|
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({
|
|
19758
20089
|
colorAttachments: [{
|
|
19759
20090
|
view: e,
|
|
19760
20091
|
loadOp: "load",
|
|
@@ -19766,12 +20097,13 @@ var qS = class t {
|
|
|
19766
20097
|
depthStoreOp: "store"
|
|
19767
20098
|
}
|
|
19768
20099
|
});
|
|
19769
|
-
this.encodeFramebufferDisplay(n, { additive:
|
|
20100
|
+
this.encodeFramebufferDisplay(n, { additive: u }), n.end();
|
|
19770
20101
|
}
|
|
19771
|
-
this.device.queue.submit([
|
|
20102
|
+
this.device.queue.submit([d.finish()]);
|
|
19772
20103
|
}
|
|
19773
20104
|
dispose() {
|
|
19774
|
-
var e;
|
|
20105
|
+
var e, t;
|
|
20106
|
+
(e = this.binnedCore) == null || e.dispose(), this.binnedCore = null;
|
|
19775
20107
|
for (let [e, t] of this.tileDisposeListeners) try {
|
|
19776
20108
|
e.removeEventListener("dispose", t);
|
|
19777
20109
|
} catch (e) {}
|
|
@@ -19779,7 +20111,7 @@ var qS = class t {
|
|
|
19779
20111
|
for (let e of this.pointCloudCache.values()) e.pointBuffer.destroy(), e.colorBuffer.destroy(), e.normalBuffer.destroy();
|
|
19780
20112
|
this.pointCloudCache.clear();
|
|
19781
20113
|
for (let e of this.tileUniformBufferCache.values()) e.destroy();
|
|
19782
|
-
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;
|
|
19783
20115
|
}
|
|
19784
20116
|
registerTileDisposer(e) {
|
|
19785
20117
|
if (this.tileDisposeListeners.has(e)) return;
|
|
@@ -19825,11 +20157,11 @@ var qS = class t {
|
|
|
19825
20157
|
}), this.ready = !1);
|
|
19826
20158
|
}
|
|
19827
20159
|
ensureTileUniformBuffer(e) {
|
|
19828
|
-
let
|
|
19829
|
-
return
|
|
19830
|
-
size:
|
|
20160
|
+
let t = this.tileUniformBufferCache.get(e);
|
|
20161
|
+
return t || (t = this.device.createBuffer({
|
|
20162
|
+
size: qS.size,
|
|
19831
20163
|
usage: GPUBufferUsage.UNIFORM | GPUBufferUsage.COPY_DST
|
|
19832
|
-
}), this.tileUniformBufferCache.set(e,
|
|
20164
|
+
}), this.tileUniformBufferCache.set(e, t), this.registerTileDisposer(e)), t;
|
|
19833
20165
|
}
|
|
19834
20166
|
bindRasterizeGroup(e, t, n, r) {
|
|
19835
20167
|
if (!this.framebuffer || !this.pointBuffer || !this.colorBuffer) {
|
|
@@ -19842,7 +20174,7 @@ var qS = class t {
|
|
|
19842
20174
|
return;
|
|
19843
20175
|
}
|
|
19844
20176
|
let a = this.device.createBindGroup({
|
|
19845
|
-
layout: this.
|
|
20177
|
+
layout: this.tileBindGroupLayout,
|
|
19846
20178
|
entries: [
|
|
19847
20179
|
{
|
|
19848
20180
|
binding: 0,
|
|
@@ -19887,11 +20219,7 @@ var qS = class t {
|
|
|
19887
20219
|
gradientView: n
|
|
19888
20220
|
}), this.rasterizeBindGroup = a;
|
|
19889
20221
|
}
|
|
19890
|
-
}
|
|
19891
|
-
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;
|
|
19892
|
-
//#endregion
|
|
19893
|
-
//#region build/five/renderer/five-renderer.js
|
|
19894
|
-
var JS = new e.Matrix4(), YS = class {
|
|
20222
|
+
}, bC = new e.Matrix4(), xC = new e.Vector3(), SC = new e.Box3(), CC = class {
|
|
19895
20223
|
constructor(t) {
|
|
19896
20224
|
var n;
|
|
19897
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() };
|
|
@@ -19925,6 +20253,19 @@ var JS = new e.Matrix4(), YS = class {
|
|
|
19925
20253
|
}
|
|
19926
20254
|
this.useComputePointCloud ? this.renderPointCloudCompute(e, t, i, r) : (e.setRenderTarget(this.compositeRenderTarget), e.clear(!0, !0, !0), e.render(t, r));
|
|
19927
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
|
+
}
|
|
19928
20269
|
renderPointCloudCompute(e, t, n, r) {
|
|
19929
20270
|
var i, a, o;
|
|
19930
20271
|
e.setRenderTarget(this.compositeRenderTarget), e.clear(!0, !0, !0);
|
|
@@ -19932,16 +20273,21 @@ var JS = new e.Matrix4(), YS = class {
|
|
|
19932
20273
|
if (c && ((i = this.computeRenderer) == null ? void 0 : i.colorFormat) !== c) try {
|
|
19933
20274
|
let t = e.backend.device;
|
|
19934
20275
|
if (!t) return;
|
|
19935
|
-
(a = this.computeRenderer) == null || a.dispose(), this.computeRenderer = new
|
|
20276
|
+
(a = this.computeRenderer) == null || a.dispose(), this.computeRenderer = new yC(t, c), this.computeRenderer.resize(this.lastWidth, this.lastHeight);
|
|
19936
20277
|
} catch (e) {
|
|
19937
20278
|
this.computeRenderer = null;
|
|
19938
20279
|
return;
|
|
19939
20280
|
}
|
|
19940
20281
|
if (!this.computeRenderer) return;
|
|
19941
|
-
let l = Math.max(.1, r.pixelRatio || e.getPixelRatio()), u = Math.max(1, ((o = r.resolution) == null ? void 0 : o.y) || this.lastHeight), d = [];
|
|
19942
|
-
for (let e of n)
|
|
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
|
+
}
|
|
19943
20288
|
if (s && d.length > 0) {
|
|
19944
|
-
|
|
20289
|
+
this.computeRenderer.prepareFrame(f);
|
|
20290
|
+
let t = d.some((e) => e.useAddBlend), n = d[0], i = this.sortByDistance(d, r);
|
|
19945
20291
|
this.computeRenderer.setPointSizeParams({
|
|
19946
20292
|
sizeMode: n.pointSize,
|
|
19947
20293
|
pointShape: n.pointShape,
|
|
@@ -19952,22 +20298,22 @@ var JS = new e.Matrix4(), YS = class {
|
|
|
19952
20298
|
resolutionY: u,
|
|
19953
20299
|
maxDisplayBoost: n.maxDisplayBoost
|
|
19954
20300
|
}), this.computeRenderer.submitMergedPointCloudFrame(s.colorView, s.depthView, (t) => {
|
|
19955
|
-
var
|
|
19956
|
-
this.computeRenderer.beginPointCloudFrame(r, n,
|
|
19957
|
-
for (let n of
|
|
19958
|
-
let r = Math.max(0, Math.min(n.visiblePointCount, n.numPoints)),
|
|
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;
|
|
19959
20305
|
this.computeRenderer.setPointCloud(n, n.positions, n.colors, r, {
|
|
19960
20306
|
positionsVersion: n.positionVersion,
|
|
19961
20307
|
colorsVersion: n.styleRevision
|
|
19962
|
-
}, { gradientView:
|
|
20308
|
+
}, { gradientView: i }), this.computeRenderer.writeTileUniform(n, r), this.computeRenderer.encodeRasterize(t);
|
|
19963
20309
|
}
|
|
19964
20310
|
}, { displayAdditive: t });
|
|
19965
20311
|
}
|
|
19966
|
-
let
|
|
19967
|
-
for (let e of n) e.visible && (e.visible = !1,
|
|
19968
|
-
let
|
|
19969
|
-
e.autoClear = !1, e.autoClearColor = !1, e.autoClearDepth = !1, e.autoClearStencil = !1, e.setRenderTarget(this.compositeRenderTarget), e.render(t, r), e.autoClear =
|
|
19970
|
-
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;
|
|
19971
20317
|
}
|
|
19972
20318
|
dispose() {
|
|
19973
20319
|
var e, t;
|
|
@@ -19999,7 +20345,7 @@ var JS = new e.Matrix4(), YS = class {
|
|
|
19999
20345
|
return null;
|
|
20000
20346
|
}
|
|
20001
20347
|
}
|
|
20002
|
-
},
|
|
20348
|
+
}, wC, TC = typeof navigator < "u" ? ((wC = navigator == null ? void 0 : navigator.userAgent) == null ? "" : wC).toLowerCase() : "node";
|
|
20003
20349
|
(() => {
|
|
20004
20350
|
try {
|
|
20005
20351
|
let e = document.createElement("canvas");
|
|
@@ -20008,23 +20354,23 @@ var JS = new e.Matrix4(), YS = class {
|
|
|
20008
20354
|
return !1;
|
|
20009
20355
|
}
|
|
20010
20356
|
})();
|
|
20011
|
-
var
|
|
20012
|
-
typeof window < "u" &&
|
|
20013
|
-
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 = [
|
|
20014
20360
|
"trigger",
|
|
20015
20361
|
"grip",
|
|
20016
20362
|
"primary",
|
|
20017
20363
|
"secondary",
|
|
20018
20364
|
"pinch"
|
|
20019
|
-
],
|
|
20020
|
-
function
|
|
20365
|
+
], kC = ["x", "y"];
|
|
20366
|
+
function AC(e) {
|
|
20021
20367
|
for (let t of Object.keys(e)) {
|
|
20022
20368
|
let n = e[t];
|
|
20023
|
-
typeof n == "object" && n && !Object.isFrozen(n) &&
|
|
20369
|
+
typeof n == "object" && n && !Object.isFrozen(n) && AC(n);
|
|
20024
20370
|
}
|
|
20025
20371
|
return Object.freeze(e);
|
|
20026
20372
|
}
|
|
20027
|
-
function
|
|
20373
|
+
function jC() {
|
|
20028
20374
|
return {
|
|
20029
20375
|
buttons: {
|
|
20030
20376
|
trigger: 0,
|
|
@@ -20040,7 +20386,7 @@ function rC() {
|
|
|
20040
20386
|
model: "auto"
|
|
20041
20387
|
};
|
|
20042
20388
|
}
|
|
20043
|
-
function
|
|
20389
|
+
function MC() {
|
|
20044
20390
|
return {
|
|
20045
20391
|
buttons: {
|
|
20046
20392
|
trigger: null,
|
|
@@ -20056,13 +20402,13 @@ function iC() {
|
|
|
20056
20402
|
model: "none"
|
|
20057
20403
|
};
|
|
20058
20404
|
}
|
|
20059
|
-
var
|
|
20060
|
-
Pico:
|
|
20061
|
-
Oculus:
|
|
20062
|
-
Default:
|
|
20063
|
-
VP:
|
|
20405
|
+
var NC = AC({
|
|
20406
|
+
Pico: jC(),
|
|
20407
|
+
Oculus: jC(),
|
|
20408
|
+
Default: jC(),
|
|
20409
|
+
VP: MC()
|
|
20064
20410
|
});
|
|
20065
|
-
function
|
|
20411
|
+
function PC(e, t) {
|
|
20066
20412
|
try {
|
|
20067
20413
|
let n = e === void 0 ? navigator.userAgent : e, r = t === void 0 ? navigator.maxTouchPoints : t;
|
|
20068
20414
|
return typeof n == "string" ? n.includes("PICO") || n.includes("Pico") ? "Pico" : n.includes("Macintosh") && r === 5 ? "VP" : n.includes("Oculus") ? "Oculus" : "Default" : "Default";
|
|
@@ -20070,46 +20416,46 @@ function oC(e, t) {
|
|
|
20070
20416
|
return "Default";
|
|
20071
20417
|
}
|
|
20072
20418
|
}
|
|
20073
|
-
function
|
|
20419
|
+
function FC(e) {
|
|
20074
20420
|
return e === null || typeof e == "number" && Number.isInteger(e) && e >= 0;
|
|
20075
20421
|
}
|
|
20076
|
-
function
|
|
20422
|
+
function IC(e) {
|
|
20077
20423
|
return typeof e == "object" && !!e;
|
|
20078
20424
|
}
|
|
20079
|
-
function
|
|
20425
|
+
function LC(e, t) {
|
|
20080
20426
|
if (e) try {
|
|
20081
20427
|
e(t);
|
|
20082
20428
|
} catch (e) {}
|
|
20083
20429
|
}
|
|
20084
|
-
function
|
|
20430
|
+
function RC(e, t, n) {
|
|
20085
20431
|
var r;
|
|
20086
|
-
let i = (r =
|
|
20432
|
+
let i = (r = NC[e]) == null ? NC.Default : r, a = {
|
|
20087
20433
|
buttons: Object.assign({}, i.buttons),
|
|
20088
20434
|
axes: Object.assign({}, i.axes),
|
|
20089
20435
|
model: i.model
|
|
20090
20436
|
};
|
|
20091
|
-
if (!
|
|
20437
|
+
if (!IC(t)) return a;
|
|
20092
20438
|
let o = t.buttons;
|
|
20093
|
-
if (o !== void 0) if (
|
|
20439
|
+
if (o !== void 0) if (IC(o)) for (let e of OC) {
|
|
20094
20440
|
let t = o[e];
|
|
20095
|
-
t !== void 0 && (
|
|
20441
|
+
t !== void 0 && (FC(t) ? a.buttons[e] = t : LC(n, `buttons.${e}`));
|
|
20096
20442
|
}
|
|
20097
|
-
else
|
|
20443
|
+
else LC(n, "buttons");
|
|
20098
20444
|
let s = t.axes;
|
|
20099
|
-
if (s !== void 0) if (
|
|
20445
|
+
if (s !== void 0) if (IC(s)) for (let e of kC) {
|
|
20100
20446
|
let t = s[e];
|
|
20101
|
-
t !== void 0 && (
|
|
20447
|
+
t !== void 0 && (FC(t) ? a.axes[e] = t : LC(n, `axes.${e}`));
|
|
20102
20448
|
}
|
|
20103
|
-
else
|
|
20449
|
+
else LC(n, "axes");
|
|
20104
20450
|
let c = t.model;
|
|
20105
|
-
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;
|
|
20106
20452
|
}
|
|
20107
|
-
function
|
|
20453
|
+
function zC(e) {
|
|
20108
20454
|
return e === "Default" ? "Pico" : e;
|
|
20109
20455
|
}
|
|
20110
20456
|
//#endregion
|
|
20111
20457
|
//#region build/five/core/webglAsyncReadFix.js
|
|
20112
|
-
function
|
|
20458
|
+
function BC() {
|
|
20113
20459
|
let { gl: e } = this, t = e.fenceSync(e.SYNC_GPU_COMMANDS_COMPLETE, 0);
|
|
20114
20460
|
return e.flush(), new Promise((n, r) => {
|
|
20115
20461
|
function i() {
|
|
@@ -20131,16 +20477,16 @@ function fC() {
|
|
|
20131
20477
|
i();
|
|
20132
20478
|
});
|
|
20133
20479
|
}
|
|
20134
|
-
function
|
|
20135
|
-
if (
|
|
20480
|
+
function VC(e) {
|
|
20481
|
+
if (PC() === "Default") return !1;
|
|
20136
20482
|
let t = e;
|
|
20137
20483
|
if ((t == null ? void 0 : t.isWebGLBackend) !== !0) return !1;
|
|
20138
20484
|
let n = t.utils;
|
|
20139
|
-
return !n || typeof n._clientWaitAsync != "function" ? !1 : (n._clientWaitAsync =
|
|
20485
|
+
return !n || typeof n._clientWaitAsync != "function" ? !1 : (n._clientWaitAsync = BC, !0);
|
|
20140
20486
|
}
|
|
20141
20487
|
//#endregion
|
|
20142
20488
|
//#region build/five/core/internalWebGPURenderer.js
|
|
20143
|
-
var
|
|
20489
|
+
var HC = 1579548, UC = class extends e.WebGPURenderer {
|
|
20144
20490
|
constructor({ antialias: t = !1, logarithmicDepthBuffer: n, outputType: r = e.UnsignedByteType, forceWebGL: i = !1 }) {
|
|
20145
20491
|
var a;
|
|
20146
20492
|
super({
|
|
@@ -20150,7 +20496,7 @@ var mC = 1579548, hC = class extends e.WebGPURenderer {
|
|
|
20150
20496
|
logarithmicDepthBuffer: n,
|
|
20151
20497
|
outputType: r,
|
|
20152
20498
|
forceWebGL: i
|
|
20153
|
-
}), 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);
|
|
20154
20500
|
let o = (a = this.onDeviceLost) == null ? void 0 : a.bind(this);
|
|
20155
20501
|
this.onDeviceLost = (e) => {
|
|
20156
20502
|
var t;
|
|
@@ -20161,7 +20507,7 @@ var mC = 1579548, hC = class extends e.WebGPURenderer {
|
|
|
20161
20507
|
console.error("onDeviceLostCallback error", e);
|
|
20162
20508
|
}
|
|
20163
20509
|
}, this.ready = this.init().then(() => {
|
|
20164
|
-
|
|
20510
|
+
VC(this.backend), this._backendReady = !0;
|
|
20165
20511
|
});
|
|
20166
20512
|
}
|
|
20167
20513
|
get isInitialized() {
|
|
@@ -20180,12 +20526,12 @@ var mC = 1579548, hC = class extends e.WebGPURenderer {
|
|
|
20180
20526
|
console.error("reconfigureContext error", e);
|
|
20181
20527
|
}
|
|
20182
20528
|
}
|
|
20183
|
-
},
|
|
20184
|
-
function
|
|
20529
|
+
}, WC = new e.Matrix4(), GC = new e.Frustum(), KC = new e.Vector2(), qC = /* @__PURE__ */ new WeakMap();
|
|
20530
|
+
function JC(e) {
|
|
20185
20531
|
let t = !1;
|
|
20186
20532
|
return e.needsRender === !0 ? (e.needsRender = !1, t = !0) : e.mixer && e.mixer.stats.actions.inUse > 0 && (t = !0), t;
|
|
20187
20533
|
}
|
|
20188
|
-
var
|
|
20534
|
+
var YC = class extends e.Scene {
|
|
20189
20535
|
constructor() {
|
|
20190
20536
|
super(...arguments), this.needsRender = !1;
|
|
20191
20537
|
}
|
|
@@ -20197,17 +20543,17 @@ var xC = class extends e.Scene {
|
|
|
20197
20543
|
}
|
|
20198
20544
|
update(t, n) {
|
|
20199
20545
|
let r = !1, i;
|
|
20200
|
-
return n instanceof po ? (i = n.time,
|
|
20201
|
-
if (t.setResolution && t.setResolution(
|
|
20202
|
-
let e = t.mixer, n =
|
|
20203
|
-
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());
|
|
20204
20550
|
}
|
|
20205
|
-
(t instanceof e.Mesh || t instanceof e.Line || t instanceof e.Points) && (!t.frustumCulled ||
|
|
20206
|
-
|
|
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);
|
|
20207
20553
|
}));
|
|
20208
20554
|
}), this.needsRender = r, r;
|
|
20209
20555
|
}
|
|
20210
|
-
},
|
|
20556
|
+
}, XC = (e) => e * (2 - e), ZC = (() => {
|
|
20211
20557
|
let t = new Float32Array([
|
|
20212
20558
|
-.18,
|
|
20213
20559
|
0,
|
|
@@ -20239,16 +20585,16 @@ var xC = class extends e.Scene {
|
|
|
20239
20585
|
1
|
|
20240
20586
|
]), i = new e.BufferGeometry();
|
|
20241
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;
|
|
20242
|
-
})(),
|
|
20243
|
-
function
|
|
20244
|
-
let n = D(
|
|
20245
|
-
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);
|
|
20246
20592
|
}
|
|
20247
|
-
function
|
|
20248
|
-
let n = D(
|
|
20249
|
-
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));
|
|
20250
20596
|
}
|
|
20251
|
-
function
|
|
20597
|
+
function nw(t) {
|
|
20252
20598
|
let n = {
|
|
20253
20599
|
baseColor: R(new e.Color(t)),
|
|
20254
20600
|
circleScale: R(1),
|
|
@@ -20265,7 +20611,7 @@ function OC(t) {
|
|
|
20265
20611
|
tapScale: R(1),
|
|
20266
20612
|
tapOpacity: R(1),
|
|
20267
20613
|
disable: R(0)
|
|
20268
|
-
}, 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);
|
|
20269
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);
|
|
20270
20616
|
let S = V(x.xyz.mul(n.baseColor), x.w.mul(n.opacity).mul(n.opacity)), C = new e.NodeMaterial();
|
|
20271
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, {
|
|
@@ -20273,7 +20619,7 @@ function OC(t) {
|
|
|
20273
20619
|
u: n
|
|
20274
20620
|
};
|
|
20275
20621
|
}
|
|
20276
|
-
var
|
|
20622
|
+
var rw = class extends e.Object3D {
|
|
20277
20623
|
constructor(t = {}) {
|
|
20278
20624
|
var n, r;
|
|
20279
20625
|
super();
|
|
@@ -20285,8 +20631,8 @@ var kC = class extends e.Object3D {
|
|
|
20285
20631
|
scale: 1,
|
|
20286
20632
|
opacity: 1
|
|
20287
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 });
|
|
20288
|
-
let { material: o, u: s } =
|
|
20289
|
-
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;
|
|
20290
20636
|
}
|
|
20291
20637
|
setProgress(e) {
|
|
20292
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(() => {
|
|
@@ -20353,14 +20699,14 @@ var kC = class extends e.Object3D {
|
|
|
20353
20699
|
let t = (e - this.currentStartTime - 1500) / 2e3;
|
|
20354
20700
|
if (t % 5 < 2) {
|
|
20355
20701
|
let e = t % 1;
|
|
20356
|
-
this.panoU.expand0.value =
|
|
20702
|
+
this.panoU.expand0.value = XC(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20357
20703
|
}
|
|
20358
20704
|
}
|
|
20359
20705
|
{
|
|
20360
20706
|
let t = (e - this.currentStartTime - 1e3) / 2e3;
|
|
20361
20707
|
if (t % 5 < 2) {
|
|
20362
20708
|
let e = t % 1;
|
|
20363
|
-
this.panoU.expand1.value =
|
|
20709
|
+
this.panoU.expand1.value = XC(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20364
20710
|
}
|
|
20365
20711
|
}
|
|
20366
20712
|
}
|
|
@@ -20382,7 +20728,7 @@ var kC = class extends e.Object3D {
|
|
|
20382
20728
|
dispose() {
|
|
20383
20729
|
this.ringMotion.dispose(), this.tapMotion.dispose(), this.progressMotion.dispose(), this.progressOpacityMotion.dispose(), this.opacityMotion.dispose(), this.currentMotion.dispose(), this.panoMesh.material.dispose();
|
|
20384
20730
|
}
|
|
20385
|
-
},
|
|
20731
|
+
}, iw = (e) => e * (2 - e), aw = (() => {
|
|
20386
20732
|
let t = new Float32Array([
|
|
20387
20733
|
-.18,
|
|
20388
20734
|
0,
|
|
@@ -20414,16 +20760,16 @@ var kC = class extends e.Object3D {
|
|
|
20414
20760
|
1
|
|
20415
20761
|
]), i = new e.BufferGeometry();
|
|
20416
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;
|
|
20417
|
-
})(),
|
|
20418
|
-
function
|
|
20419
|
-
let n = D(
|
|
20420
|
-
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);
|
|
20421
20767
|
}
|
|
20422
|
-
function
|
|
20423
|
-
let n = D(
|
|
20424
|
-
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));
|
|
20425
20771
|
}
|
|
20426
|
-
function
|
|
20772
|
+
function uw(t) {
|
|
20427
20773
|
let n = {
|
|
20428
20774
|
baseColor: R(new e.Color(t)),
|
|
20429
20775
|
circleScale: R(1),
|
|
@@ -20439,7 +20785,7 @@ function IC(t) {
|
|
|
20439
20785
|
tapScale: R(1),
|
|
20440
20786
|
tapOpacity: R(1),
|
|
20441
20787
|
disable: R(0)
|
|
20442
|
-
}, 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);
|
|
20443
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);
|
|
20444
20790
|
let O = V(E.xyz.mul(n.baseColor), E.w.mul(n.opacity).mul(n.opacity)), k = new e.NodeMaterial();
|
|
20445
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, {
|
|
@@ -20447,7 +20793,7 @@ function IC(t) {
|
|
|
20447
20793
|
u: n
|
|
20448
20794
|
};
|
|
20449
20795
|
}
|
|
20450
|
-
var
|
|
20796
|
+
var dw = class extends e.Object3D {
|
|
20451
20797
|
constructor(t = {}) {
|
|
20452
20798
|
var n, r;
|
|
20453
20799
|
super();
|
|
@@ -20456,8 +20802,8 @@ var LC = class extends e.Object3D {
|
|
|
20456
20802
|
scale: 1,
|
|
20457
20803
|
opacity: 1
|
|
20458
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 });
|
|
20459
|
-
let { material: o, u: s } =
|
|
20460
|
-
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;
|
|
20461
20807
|
}
|
|
20462
20808
|
setProgress(e) {
|
|
20463
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(() => {
|
|
@@ -20524,14 +20870,14 @@ var LC = class extends e.Object3D {
|
|
|
20524
20870
|
let t = (e - this.currentStartTime - 1500) / 2e3;
|
|
20525
20871
|
if (t % 5 < 2) {
|
|
20526
20872
|
let e = t % 1;
|
|
20527
|
-
this.panoU.expand0.value =
|
|
20873
|
+
this.panoU.expand0.value = iw(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20528
20874
|
}
|
|
20529
20875
|
}
|
|
20530
20876
|
{
|
|
20531
20877
|
let t = (e - this.currentStartTime - 1e3) / 2e3;
|
|
20532
20878
|
if (t % 5 < 2) {
|
|
20533
20879
|
let e = t % 1;
|
|
20534
|
-
this.panoU.expand1.value =
|
|
20880
|
+
this.panoU.expand1.value = iw(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20535
20881
|
}
|
|
20536
20882
|
}
|
|
20537
20883
|
}
|
|
@@ -20543,7 +20889,7 @@ var LC = class extends e.Object3D {
|
|
|
20543
20889
|
dispose() {
|
|
20544
20890
|
this.tapMotion.dispose(), this.progressMotion.dispose(), this.progressOpacityMotion.dispose(), this.opacityMotion.dispose(), this.currentMotion.dispose(), this.panoMesh.material.dispose();
|
|
20545
20891
|
}
|
|
20546
|
-
},
|
|
20892
|
+
}, fw = (e) => e * (2 - e), pw = (() => {
|
|
20547
20893
|
let t = new Float32Array([
|
|
20548
20894
|
-.18,
|
|
20549
20895
|
0,
|
|
@@ -20575,16 +20921,16 @@ var LC = class extends e.Object3D {
|
|
|
20575
20921
|
1
|
|
20576
20922
|
]), i = new e.BufferGeometry();
|
|
20577
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;
|
|
20578
|
-
})(),
|
|
20579
|
-
function
|
|
20580
|
-
let n = D(
|
|
20581
|
-
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);
|
|
20582
20928
|
}
|
|
20583
|
-
function
|
|
20584
|
-
let n = D(
|
|
20585
|
-
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));
|
|
20586
20932
|
}
|
|
20587
|
-
function
|
|
20933
|
+
function vw(t) {
|
|
20588
20934
|
let n = t.map, r = t.borderWidth > 0, i = {
|
|
20589
20935
|
baseColor: R(new e.Color(t.color)),
|
|
20590
20936
|
circleScale: R(1),
|
|
@@ -20600,18 +20946,18 @@ function WC(t) {
|
|
|
20600
20946
|
tapScale: R(1),
|
|
20601
20947
|
tapOpacity: R(1),
|
|
20602
20948
|
disable: R(0)
|
|
20603
|
-
}, 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;
|
|
20604
20950
|
if (n) {
|
|
20605
20951
|
let e = l.div(.5);
|
|
20606
|
-
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));
|
|
20607
20953
|
} else d = V(i.baseColor, T(1));
|
|
20608
20954
|
let g;
|
|
20609
20955
|
if (t.mapUseReverse) g = V(i.baseColor, T(1).sub(d.a));
|
|
20610
20956
|
else if (r) {
|
|
20611
|
-
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);
|
|
20612
20958
|
g = j(V(s, e.mul(t)), d, d.a);
|
|
20613
20959
|
} else g = d;
|
|
20614
|
-
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));
|
|
20615
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);
|
|
20616
20962
|
let ie = V(P.rgb, P.a.mul(i.opacity)), ae = new e.NodeMaterial();
|
|
20617
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, {
|
|
@@ -20619,7 +20965,7 @@ function WC(t) {
|
|
|
20619
20965
|
u: i
|
|
20620
20966
|
};
|
|
20621
20967
|
}
|
|
20622
|
-
var
|
|
20968
|
+
var yw = class extends e.Object3D {
|
|
20623
20969
|
constructor(t = {}) {
|
|
20624
20970
|
var n, r, i, a, o, s, c;
|
|
20625
20971
|
super();
|
|
@@ -20628,7 +20974,7 @@ var GC = class extends e.Object3D {
|
|
|
20628
20974
|
scale: 1,
|
|
20629
20975
|
opacity: 1
|
|
20630
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 });
|
|
20631
|
-
let { material: d, u: f } =
|
|
20977
|
+
let { material: d, u: f } = vw({
|
|
20632
20978
|
color: l,
|
|
20633
20979
|
map: t.map,
|
|
20634
20980
|
mapAlpha: (i = t.mapAlpha) == null ? 1 : i,
|
|
@@ -20637,7 +20983,7 @@ var GC = class extends e.Object3D {
|
|
|
20637
20983
|
mapUseColor: (s = t.mapUseColor) == null ? !1 : s,
|
|
20638
20984
|
mapUseReverse: (c = t.mapUseReverse) == null ? !1 : c
|
|
20639
20985
|
});
|
|
20640
|
-
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;
|
|
20641
20987
|
}
|
|
20642
20988
|
setProgress(e) {
|
|
20643
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(() => {
|
|
@@ -20697,14 +21043,14 @@ var GC = class extends e.Object3D {
|
|
|
20697
21043
|
let t = (e - this.currentStartTime - 1500) / 2e3;
|
|
20698
21044
|
if (t % 5 < 2) {
|
|
20699
21045
|
let e = t % 1;
|
|
20700
|
-
this.panoU.expand0.value =
|
|
21046
|
+
this.panoU.expand0.value = fw(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20701
21047
|
}
|
|
20702
21048
|
}
|
|
20703
21049
|
{
|
|
20704
21050
|
let t = (e - this.currentStartTime - 1e3) / 2e3;
|
|
20705
21051
|
if (t % 5 < 2) {
|
|
20706
21052
|
let e = t % 1;
|
|
20707
|
-
this.panoU.expand1.value =
|
|
21053
|
+
this.panoU.expand1.value = fw(e) * this.currentMotion.value.progress, this.needsRender = !0;
|
|
20708
21054
|
}
|
|
20709
21055
|
}
|
|
20710
21056
|
}
|
|
@@ -20719,22 +21065,22 @@ var GC = class extends e.Object3D {
|
|
|
20719
21065
|
};
|
|
20720
21066
|
//#endregion
|
|
20721
21067
|
//#region build/five/utils/isSimilar.js
|
|
20722
|
-
function
|
|
21068
|
+
function bw(e, t, n) {
|
|
20723
21069
|
let r = Math.abs(e - t);
|
|
20724
21070
|
return r < .001 || n !== void 0 && Math.abs(n - r) < .001;
|
|
20725
21071
|
}
|
|
20726
|
-
function
|
|
20727
|
-
return !
|
|
21072
|
+
function xw(e, t, n) {
|
|
21073
|
+
return !bw(e, t, n);
|
|
20728
21074
|
}
|
|
20729
|
-
function
|
|
21075
|
+
function Sw(e, t) {
|
|
20730
21076
|
return e.distanceTo(t) < .001;
|
|
20731
21077
|
}
|
|
20732
|
-
function
|
|
20733
|
-
return !
|
|
21078
|
+
function Cw(e, t) {
|
|
21079
|
+
return !Sw(e, t);
|
|
20734
21080
|
}
|
|
20735
21081
|
//#endregion
|
|
20736
21082
|
//#region build/five/utils/isPromise.js
|
|
20737
|
-
function
|
|
21083
|
+
function ww(e) {
|
|
20738
21084
|
return !!e && (typeof e == "object" || typeof e == "function") && typeof e.then == "function";
|
|
20739
21085
|
}
|
|
20740
21086
|
//#endregion
|
|
@@ -20753,32 +21099,32 @@ function $(e, t) {
|
|
|
20753
21099
|
for (let e of Object.keys(t)) e in r || (r[e] = t[e]);
|
|
20754
21100
|
return r;
|
|
20755
21101
|
}
|
|
20756
|
-
var
|
|
20757
|
-
function
|
|
21102
|
+
var Tw = /* @__PURE__ */ new WeakMap();
|
|
21103
|
+
function Ew(e, t) {
|
|
20758
21104
|
let n = $(e, Object.assign(Object.assign({}, t), { waitUntil(e) {
|
|
20759
|
-
let t =
|
|
21105
|
+
let t = Tw.get(n);
|
|
20760
21106
|
t && t.push(e);
|
|
20761
21107
|
} }));
|
|
20762
|
-
return
|
|
21108
|
+
return Tw.set(n, []), n;
|
|
20763
21109
|
}
|
|
20764
|
-
function
|
|
21110
|
+
function Dw(e) {
|
|
20765
21111
|
var t;
|
|
20766
|
-
return Promise.all((t =
|
|
21112
|
+
return Promise.all((t = Tw.get(e)) == null ? [] : t).then(Y);
|
|
20767
21113
|
}
|
|
20768
21114
|
//#endregion
|
|
20769
21115
|
//#region build/five/utils/stateUtils.js
|
|
20770
|
-
function
|
|
21116
|
+
function Ow(e, t) {
|
|
20771
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;
|
|
20772
21118
|
}
|
|
20773
|
-
function
|
|
20774
|
-
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);
|
|
20775
21121
|
}
|
|
20776
21122
|
//#endregion
|
|
20777
21123
|
//#region build/five/utils/poseUtils.js
|
|
20778
|
-
function
|
|
21124
|
+
function Aw(e, t) {
|
|
20779
21125
|
e.longitude = t.longitude, e.latitude = t.latitude, e.fov = t.fov, e.distance = t.distance, e.offset.copy(t.offset);
|
|
20780
21126
|
}
|
|
20781
|
-
function
|
|
21127
|
+
function jw(e) {
|
|
20782
21128
|
return {
|
|
20783
21129
|
longitude: e.longitude,
|
|
20784
21130
|
latitude: e.latitude,
|
|
@@ -20789,14 +21135,14 @@ function rw(e) {
|
|
|
20789
21135
|
}
|
|
20790
21136
|
//#endregion
|
|
20791
21137
|
//#region build/five/application/mode.js
|
|
20792
|
-
function
|
|
21138
|
+
function Mw(e) {
|
|
20793
21139
|
switch (e) {
|
|
20794
21140
|
case "Floorplan": return !0;
|
|
20795
21141
|
case "Mapview": return !0;
|
|
20796
21142
|
default: return !1;
|
|
20797
21143
|
}
|
|
20798
21144
|
}
|
|
20799
|
-
function
|
|
21145
|
+
function Nw(e) {
|
|
20800
21146
|
switch (e) {
|
|
20801
21147
|
case "Panorama": return !0;
|
|
20802
21148
|
case "VRPanorama": return !0;
|
|
@@ -20807,22 +21153,22 @@ function aw(e) {
|
|
|
20807
21153
|
}
|
|
20808
21154
|
//#endregion
|
|
20809
21155
|
//#region build/five/utils/isEmptyObject.js
|
|
20810
|
-
function
|
|
21156
|
+
function Pw(e) {
|
|
20811
21157
|
for (let t in e) return !1;
|
|
20812
21158
|
return !0;
|
|
20813
21159
|
}
|
|
20814
21160
|
//#endregion
|
|
20815
21161
|
//#region build/five/renderer/tools/render-cube-to-equirectangular.js
|
|
20816
|
-
var
|
|
20817
|
-
|
|
20818
|
-
var
|
|
20819
|
-
function
|
|
20820
|
-
|
|
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;
|
|
20821
21167
|
}
|
|
20822
21168
|
//#endregion
|
|
20823
21169
|
//#region build/five/texture/textureData.js
|
|
20824
|
-
var
|
|
20825
|
-
function
|
|
21170
|
+
var qw = new e.Color(), Jw = 0, Yw = 1;
|
|
21171
|
+
function Xw(t, n, r, i) {
|
|
20826
21172
|
return Ti(this, void 0, void 0, function* () {
|
|
20827
21173
|
let a = new e.RenderTarget(i.width, i.height, {
|
|
20828
21174
|
depthBuffer: !1,
|
|
@@ -20831,16 +21177,16 @@ function Sw(t, n, r, i) {
|
|
|
20831
21177
|
magFilter: e.LinearFilter,
|
|
20832
21178
|
minFilter: e.LinearFilter
|
|
20833
21179
|
}), o = t.getRenderTarget();
|
|
20834
|
-
t.getClearColor(
|
|
21180
|
+
t.getClearColor(qw);
|
|
20835
21181
|
let s = t.getClearAlpha(), c = t.autoClear, l = t.autoClearColor, u = t.autoClearDepth, d = t.autoClearStencil;
|
|
20836
|
-
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;
|
|
20837
21183
|
let f = yield t.readRenderTargetPixelsAsync(a, 0, 0, i.width, i.height);
|
|
20838
21184
|
return i.data.set(f), a.dispose(), i;
|
|
20839
21185
|
});
|
|
20840
21186
|
}
|
|
20841
21187
|
//#endregion
|
|
20842
21188
|
//#region build/five/thirdparty/hammer.js
|
|
20843
|
-
var
|
|
21189
|
+
var Zw = (function(e, t, n, r) {
|
|
20844
21190
|
var i = [
|
|
20845
21191
|
"",
|
|
20846
21192
|
"webkit",
|
|
@@ -21669,7 +22015,7 @@ var Cw = (function(e, t, n, r) {
|
|
|
21669
22015
|
})(typeof window < "u" ? window : {}, typeof document < "u" ? document : {}, "Hammer");
|
|
21670
22016
|
//#endregion
|
|
21671
22017
|
//#region build/five/controllers/base.js
|
|
21672
|
-
function
|
|
22018
|
+
function Qw(e, t, n) {
|
|
21673
22019
|
if (n.isPerspectiveCamera) {
|
|
21674
22020
|
e.setFromCamera(t, n);
|
|
21675
22021
|
return;
|
|
@@ -21681,7 +22027,7 @@ function ww(e, t, n) {
|
|
|
21681
22027
|
}
|
|
21682
22028
|
e.setFromCamera(t, n);
|
|
21683
22029
|
}
|
|
21684
|
-
var
|
|
22030
|
+
var $w = class t extends xn {
|
|
21685
22031
|
static parseArgs(e) {
|
|
21686
22032
|
return e instanceof t ? e : Object.assign({}, e);
|
|
21687
22033
|
}
|
|
@@ -21758,7 +22104,7 @@ var Tw = class t extends xn {
|
|
|
21758
22104
|
updateTime(e, t, ...n) {
|
|
21759
22105
|
if (this.destroyed) return;
|
|
21760
22106
|
let r = {};
|
|
21761
|
-
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);
|
|
21762
22108
|
}
|
|
21763
22109
|
render() {
|
|
21764
22110
|
return !1;
|
|
@@ -21809,7 +22155,7 @@ var Tw = class t extends xn {
|
|
|
21809
22155
|
}
|
|
21810
22156
|
setCamera(e = {}) {
|
|
21811
22157
|
var t, n, r, i, a;
|
|
21812
|
-
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);
|
|
21813
22159
|
(f || d || m || p) && (this.camera.setFromPose({
|
|
21814
22160
|
longitude: o,
|
|
21815
22161
|
latitude: s,
|
|
@@ -21865,7 +22211,7 @@ var Tw = class t extends xn {
|
|
|
21865
22211
|
}
|
|
21866
22212
|
createRaycasterFromCamera(t, n) {
|
|
21867
22213
|
let r = new e.Raycaster();
|
|
21868
|
-
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;
|
|
21869
22215
|
}
|
|
21870
22216
|
bindEvents(t) {
|
|
21871
22217
|
let n = (e) => {
|
|
@@ -21878,10 +22224,10 @@ var Tw = class t extends xn {
|
|
|
21878
22224
|
ctrlKey: "ctrlKey" in e ? e.ctrlKey : !1,
|
|
21879
22225
|
altKey: "altKey" in e ? e.altKey : !1,
|
|
21880
22226
|
metaKey: "metaKey" in e ? e.metaKey : !1
|
|
21881
|
-
}), i = new
|
|
22227
|
+
}), i = new Zw.Manager(t), a = (e) => e.session.firstInput || null, o = new Zw.Pan({
|
|
21882
22228
|
threshold: 10,
|
|
21883
22229
|
pointers: 0
|
|
21884
|
-
}), s = new
|
|
22230
|
+
}), s = new Zw.Tap({ interval: 410 }), c = new Zw.Pinch({
|
|
21885
22231
|
threshold: 0,
|
|
21886
22232
|
pointers: 2
|
|
21887
22233
|
});
|
|
@@ -21926,7 +22272,7 @@ var Tw = class t extends xn {
|
|
|
21926
22272
|
overallVelocityX: e.overallVelocityX,
|
|
21927
22273
|
overallVelocityY: e.overallVelocityY,
|
|
21928
22274
|
userAction: !0,
|
|
21929
|
-
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))
|
|
21930
22276
|
});
|
|
21931
22277
|
this.emit("gesture.fire", s), this.onPanGesture(s), v();
|
|
21932
22278
|
}), i.on("tap", (e) => {
|
|
@@ -21968,7 +22314,7 @@ var Tw = class t extends xn {
|
|
|
21968
22314
|
overallVelocityX: e.overallVelocityX,
|
|
21969
22315
|
overallVelocityY: e.overallVelocityY,
|
|
21970
22316
|
userAction: !0,
|
|
21971
|
-
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))
|
|
21972
22318
|
});
|
|
21973
22319
|
this.emit("gesture.fire", s), this.onTapGesture(s), v();
|
|
21974
22320
|
}), i.on("pinchstart pinch pinchend", (t) => {
|
|
@@ -21981,7 +22327,7 @@ var Tw = class t extends xn {
|
|
|
21981
22327
|
pointers: t.pointers.map((t) => {
|
|
21982
22328
|
var n;
|
|
21983
22329
|
let r = this.relativeClientPosition(t), i = new e.Raycaster();
|
|
21984
|
-
return i.params.Points = { threshold: .1 },
|
|
22330
|
+
return i.params.Points = { threshold: .1 }, Qw(i, r, this.camera), Object.assign(Object.assign({
|
|
21985
22331
|
x: t.x,
|
|
21986
22332
|
y: t.y,
|
|
21987
22333
|
delta: (n = t.delta) == null ? 0 : n
|
|
@@ -22009,7 +22355,7 @@ var Tw = class t extends xn {
|
|
|
22009
22355
|
overallVelocityX: t.overallVelocityX,
|
|
22010
22356
|
overallVelocityY: t.overallVelocityY,
|
|
22011
22357
|
userAction: !0,
|
|
22012
|
-
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))
|
|
22013
22359
|
});
|
|
22014
22360
|
this.emit("gesture.fire", c), this.onPinchGesture(c), v();
|
|
22015
22361
|
}), i.on("dbltap", (e) => {
|
|
@@ -22051,7 +22397,7 @@ var Tw = class t extends xn {
|
|
|
22051
22397
|
overallVelocityX: e.overallVelocityX,
|
|
22052
22398
|
overallVelocityY: e.overallVelocityY,
|
|
22053
22399
|
userAction: !0,
|
|
22054
|
-
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))
|
|
22055
22401
|
});
|
|
22056
22402
|
this.emit("gesture.fire", s), this.onDblTapGesture(s), v();
|
|
22057
22403
|
});
|
|
@@ -22077,7 +22423,7 @@ var Tw = class t extends xn {
|
|
|
22077
22423
|
overallVelocityX: 0,
|
|
22078
22424
|
overallVelocityY: 0,
|
|
22079
22425
|
userAction: !0,
|
|
22080
|
-
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))
|
|
22081
22427
|
});
|
|
22082
22428
|
}, f = (e) => {
|
|
22083
22429
|
var t;
|
|
@@ -22117,7 +22463,7 @@ var Tw = class t extends xn {
|
|
|
22117
22463
|
overallVelocityX: 0,
|
|
22118
22464
|
overallVelocityY: 0,
|
|
22119
22465
|
userAction: !0,
|
|
22120
|
-
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))
|
|
22121
22467
|
});
|
|
22122
22468
|
this.emit("gesture.fire", c), this.onMouseWheel(c), this.mouseWheelState && clearTimeout(this.mouseWheelState.timer), this.mouseWheelState = { timer: setTimeout(() => {
|
|
22123
22469
|
this.mouseWheelState = void 0;
|
|
@@ -22135,7 +22481,7 @@ var Tw = class t extends xn {
|
|
|
22135
22481
|
overallVelocityX: 0,
|
|
22136
22482
|
overallVelocityY: 0,
|
|
22137
22483
|
userAction: !0,
|
|
22138
|
-
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))
|
|
22139
22485
|
});
|
|
22140
22486
|
this.emit("gesture.fire", t), this.onMouseWheel(t);
|
|
22141
22487
|
}, 100) };
|
|
@@ -22143,7 +22489,7 @@ var Tw = class t extends xn {
|
|
|
22143
22489
|
v();
|
|
22144
22490
|
}
|
|
22145
22491
|
}, p = (e) => {
|
|
22146
|
-
if (
|
|
22492
|
+
if (DC) return;
|
|
22147
22493
|
if (!n({
|
|
22148
22494
|
x: e.clientX,
|
|
22149
22495
|
y: e.clientY
|
|
@@ -22173,7 +22519,7 @@ var Tw = class t extends xn {
|
|
|
22173
22519
|
overallVelocityX: 0,
|
|
22174
22520
|
overallVelocityY: 0,
|
|
22175
22521
|
userAction: !0,
|
|
22176
|
-
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))
|
|
22177
22523
|
});
|
|
22178
22524
|
this.emit("gesture.fire", c), this.mouseMoveState = {
|
|
22179
22525
|
timeStamp: J(),
|
|
@@ -22227,7 +22573,7 @@ var Tw = class t extends xn {
|
|
|
22227
22573
|
overallVelocityX: 0,
|
|
22228
22574
|
overallVelocityY: 0,
|
|
22229
22575
|
userAction: !0,
|
|
22230
|
-
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))
|
|
22231
22577
|
});
|
|
22232
22578
|
this.emit("gesture.fire", o), h(o);
|
|
22233
22579
|
}, _ = (e) => {
|
|
@@ -22252,7 +22598,7 @@ var Tw = class t extends xn {
|
|
|
22252
22598
|
overallVelocityX: 0,
|
|
22253
22599
|
overallVelocityY: 0,
|
|
22254
22600
|
userAction: !0,
|
|
22255
|
-
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))
|
|
22256
22602
|
});
|
|
22257
22603
|
this.emit("gesture.fire", o), h(o);
|
|
22258
22604
|
}, v = () => {
|
|
@@ -22299,22 +22645,22 @@ var Tw = class t extends xn {
|
|
|
22299
22645
|
overallVelocityX: 0,
|
|
22300
22646
|
overallVelocityY: 0,
|
|
22301
22647
|
userAction: !0,
|
|
22302
|
-
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))
|
|
22303
22649
|
});
|
|
22304
22650
|
}, x = (e) => {
|
|
22305
|
-
if (e.preventDefault(),
|
|
22651
|
+
if (e.preventDefault(), DC) return;
|
|
22306
22652
|
let t = b(e);
|
|
22307
22653
|
this.emit("gesture.fire", t), y = { firstEvent: t };
|
|
22308
22654
|
let r = y.firstEvent;
|
|
22309
22655
|
r && !n(r.center) || this.onPinchGesture(t);
|
|
22310
22656
|
}, S = (e) => {
|
|
22311
|
-
if (e.preventDefault(),
|
|
22657
|
+
if (e.preventDefault(), DC || !y) return;
|
|
22312
22658
|
let t = y.firstEvent;
|
|
22313
22659
|
if (t && !n(t.center)) return;
|
|
22314
22660
|
let r = b(e);
|
|
22315
22661
|
this.emit("gesture.fire", r), this.onPinchGesture(r);
|
|
22316
22662
|
}, C = (e) => {
|
|
22317
|
-
if (e.preventDefault(),
|
|
22663
|
+
if (e.preventDefault(), DC || !y) return;
|
|
22318
22664
|
let t = y.firstEvent;
|
|
22319
22665
|
if (y = null, t && !n(t.center)) return;
|
|
22320
22666
|
let r = b(e);
|
|
@@ -22329,16 +22675,16 @@ var Tw = class t extends xn {
|
|
|
22329
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);
|
|
22330
22676
|
}, { element: t });
|
|
22331
22677
|
}
|
|
22332
|
-
},
|
|
22333
|
-
|
|
22334
|
-
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 {
|
|
22335
22681
|
constructor() {
|
|
22336
|
-
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);
|
|
22337
22683
|
}
|
|
22338
22684
|
dispose() {
|
|
22339
22685
|
this.remove(this.ringMesh);
|
|
22340
22686
|
}
|
|
22341
|
-
},
|
|
22687
|
+
}, mT = new e.Box3(), hT = new e.Vector3(), gT = {
|
|
22342
22688
|
defaultLongitude: Math.PI / 4,
|
|
22343
22689
|
defaultLatitude: Math.PI / 4,
|
|
22344
22690
|
defaultFov: 80,
|
|
@@ -22346,8 +22692,8 @@ var zw = class extends e.Object3D {
|
|
|
22346
22692
|
minFov: 20,
|
|
22347
22693
|
maxLatitude: Math.PI / 2,
|
|
22348
22694
|
minLatitude: -Math.PI / 2,
|
|
22349
|
-
intersectMeshCreator: () => new
|
|
22350
|
-
},
|
|
22695
|
+
intersectMeshCreator: () => new pT()
|
|
22696
|
+
}, _T = class t extends $w {
|
|
22351
22697
|
static distanceFromModel(e, t, n) {
|
|
22352
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);
|
|
22353
22699
|
i = isNaN(i) || !isFinite(i) ? 1 : i;
|
|
@@ -22359,14 +22705,14 @@ var zw = class extends e.Object3D {
|
|
|
22359
22705
|
if (e instanceof t) return e;
|
|
22360
22706
|
let u = super.parseArgs(e);
|
|
22361
22707
|
return Object.assign(Object.assign({}, u), {
|
|
22362
|
-
defaultLongitude: (n = e.defaultLongitude) == null ?
|
|
22363
|
-
defaultLatitude: (r = e.defaultLatitude) == null ?
|
|
22364
|
-
defaultFov: (i = e.defaultFov) == null ?
|
|
22365
|
-
maxFov: (a = e.maxFov) == null ?
|
|
22366
|
-
minFov: (o = e.minFov) == null ?
|
|
22367
|
-
maxLatitude: (s = e.maxLatitude) == null ?
|
|
22368
|
-
minLatitude: (c = e.minLatitude) == null ?
|
|
22369
|
-
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
|
|
22370
22716
|
});
|
|
22371
22717
|
}
|
|
22372
22718
|
static initAnimationEndState(n) {
|
|
@@ -22377,7 +22723,7 @@ var zw = class extends e.Object3D {
|
|
|
22377
22723
|
} : {
|
|
22378
22724
|
workCode: f.workCode,
|
|
22379
22725
|
panoIndex: f.panoIndex
|
|
22380
|
-
}, 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;
|
|
22381
22727
|
return Object.assign(Object.assign({}, p), {
|
|
22382
22728
|
mode: "Floorplan",
|
|
22383
22729
|
longitude: h,
|
|
@@ -22464,7 +22810,7 @@ var zw = class extends e.Object3D {
|
|
|
22464
22810
|
let { pano0: e, pano1: t } = this.modelScene.parameter;
|
|
22465
22811
|
e && e.map !== (t == null ? void 0 : t.map) && e.map.dispose(), i.progress = 1, i.pano0 = i.pano1 = t;
|
|
22466
22812
|
}
|
|
22467
|
-
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) {
|
|
22468
22814
|
let e = q(this.camera.position.distanceTo(this.intersectMesh.position) * (2 * Math.tan(.5 * this.camera.fov / 180 * Math.PI)) / 5, .5);
|
|
22469
22815
|
this.intersectMesh.scale.setScalar(e);
|
|
22470
22816
|
} else this.intersectMesh.scale.setScalar(1);
|
|
@@ -22503,7 +22849,7 @@ var zw = class extends e.Object3D {
|
|
|
22503
22849
|
userAction: this.userAction
|
|
22504
22850
|
}));
|
|
22505
22851
|
}, (e) => {
|
|
22506
|
-
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));
|
|
22507
22853
|
this.emit("initAnimation.end", $("initAnimation.end", {
|
|
22508
22854
|
state: t,
|
|
22509
22855
|
userAction: this.userAction
|
|
@@ -22522,9 +22868,9 @@ var zw = class extends e.Object3D {
|
|
|
22522
22868
|
let n = [];
|
|
22523
22869
|
for (let t of this.works) {
|
|
22524
22870
|
let r = this.modelScene.models.find((e) => e.work === t);
|
|
22525
|
-
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);
|
|
22526
22872
|
}
|
|
22527
|
-
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);
|
|
22528
22874
|
return r && i < Math.max(r.standingPosition.distanceTo(this.camera.position) / 5, 10) ? r : null;
|
|
22529
22875
|
}
|
|
22530
22876
|
coordinatesForOffset(t) {
|
|
@@ -22758,7 +23104,7 @@ var zw = class extends e.Object3D {
|
|
|
22758
23104
|
return;
|
|
22759
23105
|
}
|
|
22760
23106
|
this.pendingTextureId = null, u.name = p;
|
|
22761
|
-
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), _ = {
|
|
22762
23108
|
panoId: o,
|
|
22763
23109
|
map: u,
|
|
22764
23110
|
mapSize: f,
|
|
@@ -22796,7 +23142,7 @@ var zw = class extends e.Object3D {
|
|
|
22796
23142
|
hideIntersectMesh() {
|
|
22797
23143
|
this.intersectMesh.visible = !1, this.needsRender = !0;
|
|
22798
23144
|
}
|
|
22799
|
-
},
|
|
23145
|
+
}, vT = Object.assign(Object.assign({}, Ql(gT, [
|
|
22800
23146
|
"defaultLongitude",
|
|
22801
23147
|
"defaultLatitude",
|
|
22802
23148
|
"maxLatitude",
|
|
@@ -22804,15 +23150,15 @@ var zw = class extends e.Object3D {
|
|
|
22804
23150
|
])), {
|
|
22805
23151
|
defaultLongitude: 0,
|
|
22806
23152
|
defaultLatitude: Math.PI / 2
|
|
22807
|
-
}),
|
|
23153
|
+
}), yT = class t extends _T {
|
|
22808
23154
|
static parseArgs(e) {
|
|
22809
23155
|
var n, r;
|
|
22810
23156
|
if (e instanceof t) return e;
|
|
22811
23157
|
let i = Object.assign(Object.assign({}, e), {
|
|
22812
23158
|
maxLatitude: Math.PI / 2,
|
|
22813
23159
|
minLatitude: -Math.PI / 2,
|
|
22814
|
-
defaultLongitude: (n = e.defaultLongitude) == null ?
|
|
22815
|
-
defaultLatitude: (r = e.defaultLatitude) == null ?
|
|
23160
|
+
defaultLongitude: (n = e.defaultLongitude) == null ? vT.defaultLongitude : n,
|
|
23161
|
+
defaultLatitude: (r = e.defaultLatitude) == null ? vT.defaultLatitude : r
|
|
22816
23162
|
});
|
|
22817
23163
|
return super.parseArgs(i);
|
|
22818
23164
|
}
|
|
@@ -22838,7 +23184,7 @@ var zw = class extends e.Object3D {
|
|
|
22838
23184
|
x: n.x,
|
|
22839
23185
|
y: n.y,
|
|
22840
23186
|
z: n.z,
|
|
22841
|
-
distance:
|
|
23187
|
+
distance: _T.distanceFromModel(this.modelScene, this.defaultFov, this.camera.aspect)
|
|
22842
23188
|
}, 0).catch(Y), this.hideIntersectMesh();
|
|
22843
23189
|
}
|
|
22844
23190
|
updateCamera(e, t, n) {
|
|
@@ -22896,7 +23242,7 @@ var zw = class extends e.Object3D {
|
|
|
22896
23242
|
userAction: this.userAction
|
|
22897
23243
|
}));
|
|
22898
23244
|
}, (e) => {
|
|
22899
|
-
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));
|
|
22900
23246
|
this.emit("initAnimation.end", $("initAnimation.end", {
|
|
22901
23247
|
state: t,
|
|
22902
23248
|
userAction: this.userAction
|
|
@@ -22961,7 +23307,7 @@ var zw = class extends e.Object3D {
|
|
|
22961
23307
|
let t = q(this.cameraMotion.value.fov - e.center.delta, this.minFov, this.maxFov);
|
|
22962
23308
|
e.state.fov = t, this.emit("gesture.mousewheel", e), !e.defaultPrevented && this.cameraMotion.set({ fov: t }, 0).catch(Y);
|
|
22963
23309
|
}
|
|
22964
|
-
},
|
|
23310
|
+
}, bT = {
|
|
22965
23311
|
defaultLatitude: 0,
|
|
22966
23312
|
defaultFov: 90,
|
|
22967
23313
|
maxFov: 120,
|
|
@@ -22969,23 +23315,23 @@ var zw = class extends e.Object3D {
|
|
|
22969
23315
|
maxLatitude: (e) => Math.PI / 2 - e / 2 / 180 * Math.PI,
|
|
22970
23316
|
minLatitude: (e) => -Math.PI / 2 + e / 2 / 180 * Math.PI,
|
|
22971
23317
|
moveSpeed: 3.6,
|
|
22972
|
-
intersectMeshCreator: () => new
|
|
23318
|
+
intersectMeshCreator: () => new pT(),
|
|
22973
23319
|
aerialObserverMinHeight: 5
|
|
22974
|
-
},
|
|
23320
|
+
}, xT = class t extends $w {
|
|
22975
23321
|
static parseArgs(e) {
|
|
22976
23322
|
var n, r, i, a, o, s, c, l, u;
|
|
22977
23323
|
if (e instanceof t) return e;
|
|
22978
23324
|
let d = super.parseArgs(e);
|
|
22979
23325
|
return Object.assign(Object.assign({}, d), {
|
|
22980
|
-
defaultLatitude: (n = e.defaultLatitude) == null ?
|
|
22981
|
-
defaultFov: (r = e.defaultFov) == null ?
|
|
22982
|
-
maxFov: (i = e.maxFov) == null ?
|
|
22983
|
-
minFov: (a = e.minFov) == null ?
|
|
22984
|
-
maxLatitude: (o = e.maxLatitude) == null ?
|
|
22985
|
-
minLatitude: (s = e.minLatitude) == null ?
|
|
22986
|
-
moveSpeed: (c = e.moveSpeed) == null ?
|
|
22987
|
-
intersectMeshCreator: (l = e.intersectMeshCreator) == null ?
|
|
22988
|
-
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
|
|
22989
23335
|
});
|
|
22990
23336
|
}
|
|
22991
23337
|
static initAnimationEndState(t) {
|
|
@@ -22996,7 +23342,7 @@ var zw = class extends e.Object3D {
|
|
|
22996
23342
|
} : {
|
|
22997
23343
|
workCode: d.workCode,
|
|
22998
23344
|
panoIndex: d.panoIndex
|
|
22999
|
-
}, 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();
|
|
23000
23346
|
return p && y.copy(p.position).applyMatrix4(p.work.transform), {
|
|
23001
23347
|
workCode: f.workCode,
|
|
23002
23348
|
panoIndex: f.panoIndex,
|
|
@@ -23208,11 +23554,11 @@ var zw = class extends e.Object3D {
|
|
|
23208
23554
|
let i = Math.max(40 - n * 5, this.minFov, 5), a = i - t < t - this.defaultFov ? i : this.defaultFov;
|
|
23209
23555
|
e.state.fov = a, this.emit("gesture.dbltap", e), !e.defaultPrevented && (this.cameraMotion.set({ fov: a }, 360).catch(Y), this.hideIntersectMesh());
|
|
23210
23556
|
}
|
|
23211
|
-
},
|
|
23212
|
-
function
|
|
23213
|
-
return
|
|
23557
|
+
}, ST = "data:video/mp4;base64,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", CT;
|
|
23558
|
+
function wT() {
|
|
23559
|
+
return CT || (CT = new Promise((e) => {
|
|
23214
23560
|
let t, n = document.createElement("video");
|
|
23215
|
-
n.muted = !0, n.src =
|
|
23561
|
+
n.muted = !0, n.src = ST, n.addEventListener("timeupdate", function r() {
|
|
23216
23562
|
n.removeEventListener("timeupdate", r, !1), clearTimeout(t);
|
|
23217
23563
|
let i = document.createElement("canvas");
|
|
23218
23564
|
i.width = i.height = 1;
|
|
@@ -23231,7 +23577,7 @@ function Xw() {
|
|
|
23231
23577
|
}
|
|
23232
23578
|
//#endregion
|
|
23233
23579
|
//#region build/five/utils/tileCube.js
|
|
23234
|
-
var
|
|
23580
|
+
var TT = [
|
|
23235
23581
|
"right",
|
|
23236
23582
|
"left",
|
|
23237
23583
|
"up",
|
|
@@ -23239,7 +23585,7 @@ var Zw = [
|
|
|
23239
23585
|
"front",
|
|
23240
23586
|
"back"
|
|
23241
23587
|
];
|
|
23242
|
-
function
|
|
23588
|
+
function ET(t, n, r, i) {
|
|
23243
23589
|
let a = new e.Box3();
|
|
23244
23590
|
switch (t) {
|
|
23245
23591
|
case "up":
|
|
@@ -23264,7 +23610,7 @@ function Qw(t, n, r, i) {
|
|
|
23264
23610
|
}
|
|
23265
23611
|
return a.applyMatrix4(new e.Matrix4().makeRotationY(Math.PI));
|
|
23266
23612
|
}
|
|
23267
|
-
var
|
|
23613
|
+
var DT = (t, n) => {
|
|
23268
23614
|
if (t.level >= n) return;
|
|
23269
23615
|
let r = t.level + 1, i = t.size / 2, a = [
|
|
23270
23616
|
new e.Vector2(t.position.x, t.position.y),
|
|
@@ -23278,44 +23624,44 @@ var $w = (t, n) => {
|
|
|
23278
23624
|
level: r,
|
|
23279
23625
|
size: i,
|
|
23280
23626
|
position: e,
|
|
23281
|
-
box:
|
|
23627
|
+
box: ET(t.face, e.x, e.y, i),
|
|
23282
23628
|
parent: t,
|
|
23283
23629
|
children: []
|
|
23284
23630
|
};
|
|
23285
|
-
t.children.push(a),
|
|
23631
|
+
t.children.push(a), DT(a, n);
|
|
23286
23632
|
}
|
|
23287
23633
|
};
|
|
23288
|
-
function
|
|
23634
|
+
function OT(t, n) {
|
|
23289
23635
|
let r = {
|
|
23290
23636
|
level: 0,
|
|
23291
23637
|
face: t,
|
|
23292
23638
|
position: new e.Vector2(0, 0),
|
|
23293
23639
|
size: 1,
|
|
23294
|
-
box:
|
|
23640
|
+
box: ET(t, 0, 0, 1),
|
|
23295
23641
|
parent: null,
|
|
23296
23642
|
children: []
|
|
23297
23643
|
};
|
|
23298
|
-
return
|
|
23644
|
+
return DT(r, n), r;
|
|
23299
23645
|
}
|
|
23300
|
-
function
|
|
23646
|
+
function kT(e) {
|
|
23301
23647
|
return {
|
|
23302
|
-
children:
|
|
23648
|
+
children: TT.map((t) => OT(t, e)),
|
|
23303
23649
|
maxLevel: e
|
|
23304
23650
|
};
|
|
23305
23651
|
}
|
|
23306
|
-
function
|
|
23307
|
-
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);
|
|
23308
23654
|
}
|
|
23309
23655
|
//#endregion
|
|
23310
23656
|
//#region build/five/core/tiling.js
|
|
23311
|
-
var
|
|
23312
|
-
up: new e.Quaternion(
|
|
23313
|
-
down: new e.Quaternion(-
|
|
23314
|
-
left: new e.Quaternion(0,
|
|
23315
|
-
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),
|
|
23316
23662
|
front: new e.Quaternion(0, 0, 0, 1),
|
|
23317
23663
|
back: new e.Quaternion(0, 1, 0, 0)
|
|
23318
|
-
},
|
|
23664
|
+
}, GT = (() => {
|
|
23319
23665
|
let t = new Float32Array([
|
|
23320
23666
|
-.5,
|
|
23321
23667
|
-.5,
|
|
@@ -23347,16 +23693,16 @@ var rT, iT = new e.Vector3(), aT = new e.Quaternion(), oT = new e.Matrix4(), sT
|
|
|
23347
23693
|
2
|
|
23348
23694
|
]), i = new e.BufferGeometry();
|
|
23349
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;
|
|
23350
|
-
})(),
|
|
23351
|
-
function
|
|
23352
|
-
return
|
|
23696
|
+
})(), KT = null;
|
|
23697
|
+
function qT() {
|
|
23698
|
+
return KT || (KT = new e.DataTexture(new Uint8Array([
|
|
23353
23699
|
255,
|
|
23354
23700
|
255,
|
|
23355
23701
|
255,
|
|
23356
23702
|
255
|
|
23357
|
-
]), 1, 1),
|
|
23703
|
+
]), 1, 1), KT.needsUpdate = !0), KT;
|
|
23358
23704
|
}
|
|
23359
|
-
function
|
|
23705
|
+
function JT() {
|
|
23360
23706
|
return {
|
|
23361
23707
|
enabled: R(0),
|
|
23362
23708
|
maxDisplayBoost: R(1),
|
|
@@ -23369,30 +23715,30 @@ function bT() {
|
|
|
23369
23715
|
offsetHdr: R(Sn.offsetHdr)
|
|
23370
23716
|
};
|
|
23371
23717
|
}
|
|
23372
|
-
function
|
|
23718
|
+
function YT(e, t) {
|
|
23373
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);
|
|
23374
23720
|
return se(w(d.x), w(d.y), w(d.z));
|
|
23375
23721
|
}
|
|
23376
|
-
function
|
|
23722
|
+
function XT(e, t, n) {
|
|
23377
23723
|
return se(e).add(n.offsetSdr).mul(t).sub(n.offsetHdr);
|
|
23378
23724
|
}
|
|
23379
|
-
var
|
|
23725
|
+
var ZT = class extends e.NodeMaterial {
|
|
23380
23726
|
constructor(e) {
|
|
23381
|
-
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();
|
|
23382
23728
|
}
|
|
23383
23729
|
setupNode() {
|
|
23384
|
-
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));
|
|
23385
23731
|
this.outputNode = o;
|
|
23386
23732
|
}
|
|
23387
23733
|
setMap(e) {
|
|
23388
|
-
this.map = e, this._mapNode.value = e == null ?
|
|
23734
|
+
this.map = e, this._mapNode.value = e == null ? qT() : e;
|
|
23389
23735
|
}
|
|
23390
23736
|
setGain(e) {
|
|
23391
|
-
this._gainNode.value = e == null ?
|
|
23737
|
+
this._gainNode.value = e == null ? qT() : e;
|
|
23392
23738
|
}
|
|
23393
|
-
},
|
|
23739
|
+
}, QT = class extends e.Mesh {
|
|
23394
23740
|
constructor(t, n, r, i, a) {
|
|
23395
|
-
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]) => {
|
|
23396
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));
|
|
23397
23743
|
}).catch(Y);
|
|
23398
23744
|
}
|
|
@@ -23406,14 +23752,14 @@ var CT = class extends e.NodeMaterial {
|
|
|
23406
23752
|
dispose() {
|
|
23407
23753
|
this.disposed = !0, this.releaseTexture(this.colorTexture), this.releaseTexture(this.gainmapTexture), this.colorTexture = void 0, this.gainmapTexture = void 0, this.releaseMaterial(this.material);
|
|
23408
23754
|
}
|
|
23409
|
-
},
|
|
23410
|
-
|
|
23411
|
-
var
|
|
23755
|
+
}, $T = sb(20, 20, 20);
|
|
23756
|
+
$T.applyMatrix4(new e.Matrix4().makeScale(-1, 1, 1));
|
|
23757
|
+
var eE = class extends e.NodeMaterial {
|
|
23412
23758
|
constructor(t) {
|
|
23413
23759
|
super();
|
|
23414
23760
|
let n = ee(ne), r = se(n.x, n.y, n.z);
|
|
23415
23761
|
this._mapNode = b(new e.CubeTexture(), r), this._gainNode = b(new e.CubeTexture(), r);
|
|
23416
|
-
let i =
|
|
23762
|
+
let i = YT(this._gainNode.rgb, t), a = XT(this._mapNode.rgb, i, t);
|
|
23417
23763
|
this.fragmentNode = V(j(this._mapNode.rgb, a, t.enabled), 1), this.depthTest = !0, this.depthWrite = !0, this.transparent = !1;
|
|
23418
23764
|
}
|
|
23419
23765
|
get map() {
|
|
@@ -23425,9 +23771,9 @@ var ET = class extends e.NodeMaterial {
|
|
|
23425
23771
|
set gainmap(e) {
|
|
23426
23772
|
this._gainNode.value = e == null ? null : e;
|
|
23427
23773
|
}
|
|
23428
|
-
},
|
|
23774
|
+
}, tE = class extends e.Mesh {
|
|
23429
23775
|
constructor(e) {
|
|
23430
|
-
super(
|
|
23776
|
+
super($T, new eE(e)), this.disposed = !1, this.frustumCulled = !1, this.renderOrder = 9999;
|
|
23431
23777
|
}
|
|
23432
23778
|
update(e, t, n) {
|
|
23433
23779
|
if (this.disposed) {
|
|
@@ -23439,11 +23785,11 @@ var ET = class extends e.NodeMaterial {
|
|
|
23439
23785
|
dispose() {
|
|
23440
23786
|
this.disposed = !0, this.material.dispose();
|
|
23441
23787
|
}
|
|
23442
|
-
},
|
|
23788
|
+
}, nE = 64, rE = 32, iE = class {
|
|
23443
23789
|
constructor(t) {
|
|
23444
23790
|
var n;
|
|
23445
23791
|
this.prevHDRKey = "", this.tileMaterialPool = [], this.tileTexturePool = /* @__PURE__ */ new Map(), this.forceRenderWhenNextUpdate = !0, this.releaseTileMaterial = (e) => {
|
|
23446
|
-
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) {
|
|
23447
23793
|
e.dispose();
|
|
23448
23794
|
return;
|
|
23449
23795
|
}
|
|
@@ -23457,12 +23803,12 @@ var ET = class extends e.NodeMaterial {
|
|
|
23457
23803
|
return;
|
|
23458
23804
|
}
|
|
23459
23805
|
let o = `${i}x${a}:${e.colorSpace}`, s = this.tileTexturePool.get(o);
|
|
23460
|
-
if (s || (s = [], this.tileTexturePool.set(o, s)), s.length >=
|
|
23806
|
+
if (s || (s = [], this.tileTexturePool.set(o, s)), s.length >= rE) {
|
|
23461
23807
|
e.dispose();
|
|
23462
23808
|
return;
|
|
23463
23809
|
}
|
|
23464
23810
|
s.push(e);
|
|
23465
|
-
}, 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, {
|
|
23466
23812
|
depthBuffer: !0,
|
|
23467
23813
|
stencilBuffer: !1,
|
|
23468
23814
|
generateMipmaps: !1,
|
|
@@ -23484,7 +23830,7 @@ var ET = class extends e.NodeMaterial {
|
|
|
23484
23830
|
}), this.tileTexturePool.clear(), this.disposed = !0;
|
|
23485
23831
|
}
|
|
23486
23832
|
acquireTileMaterial() {
|
|
23487
|
-
return this.tileMaterialPool.pop() || new
|
|
23833
|
+
return this.tileMaterialPool.pop() || new ZT(this.hdrUniforms);
|
|
23488
23834
|
}
|
|
23489
23835
|
acquireTileTexture(t, n, r) {
|
|
23490
23836
|
let i = this.tileTexturePool.get(`${t}x${n}:${r}`);
|
|
@@ -23508,7 +23854,7 @@ var ET = class extends e.NodeMaterial {
|
|
|
23508
23854
|
if (this.disposed || this.observer === e) return;
|
|
23509
23855
|
this.cleanup(), this.observer = e;
|
|
23510
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;
|
|
23511
|
-
this.tileTree =
|
|
23857
|
+
this.tileTree = kT(a);
|
|
23512
23858
|
}
|
|
23513
23859
|
update(t) {
|
|
23514
23860
|
var n, r, i, a, o, s, c, l, u, d;
|
|
@@ -23531,12 +23877,12 @@ var ET = class extends e.NodeMaterial {
|
|
|
23531
23877
|
this.level = q(w, 0, this.tileTree.maxLevel);
|
|
23532
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;
|
|
23533
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);
|
|
23534
|
-
let N =
|
|
23880
|
+
let N = NT.setFromRotationMatrix(_), ee = PT.compose(this.scene.position, N, this.scene.scale);
|
|
23535
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);
|
|
23536
|
-
let te =
|
|
23537
|
-
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);
|
|
23538
23884
|
let ne = this.frustum.planes[5].normal, re = [];
|
|
23539
|
-
w >= C &&
|
|
23885
|
+
w >= C && AT(this.tileTree, (e) => {
|
|
23540
23886
|
if (!(e.level < C)) {
|
|
23541
23887
|
if (e.level > w || !this.frustum.intersectsBox(e.box)) return !1;
|
|
23542
23888
|
re.push(e);
|
|
@@ -23546,9 +23892,9 @@ var ET = class extends e.NodeMaterial {
|
|
|
23546
23892
|
re.sort((e, t) => {
|
|
23547
23893
|
if (e.level !== t.level) return e.level - t.level;
|
|
23548
23894
|
let n = P.get(e);
|
|
23549
|
-
n === void 0 && (n = e.box.getCenter(
|
|
23895
|
+
n === void 0 && (n = e.box.getCenter(MT).angleTo(ne), P.set(e, n));
|
|
23550
23896
|
let r = P.get(t);
|
|
23551
|
-
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;
|
|
23552
23898
|
});
|
|
23553
23899
|
let ie = /* @__PURE__ */ new WeakSet(), ae = this.observer.images.tiles;
|
|
23554
23900
|
if (ae) for (let t of re) {
|
|
@@ -23601,7 +23947,7 @@ var ET = class extends e.NodeMaterial {
|
|
|
23601
23947
|
generateMipmaps: !1,
|
|
23602
23948
|
fetcher: $y(this.fiveId, this.observer.work)
|
|
23603
23949
|
}).then((e) => this.adoptTileTexture(e.body)) : Promise.resolve(void 0)]);
|
|
23604
|
-
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;
|
|
23605
23951
|
}
|
|
23606
23952
|
let F = [], I = [];
|
|
23607
23953
|
this.tileMeshes.forEach((e, t) => {
|
|
@@ -23612,33 +23958,33 @@ var ET = class extends e.NodeMaterial {
|
|
|
23612
23958
|
let L = I.sort((e, t) => t.activeTime - e.activeTime).slice(Math.max(0, this.maxCacheTile - F.length));
|
|
23613
23959
|
for (let e of L) this.tileMeshes.delete(e.node), this.scene.remove(e), e.dispose(), f = !0;
|
|
23614
23960
|
if (f) {
|
|
23615
|
-
let t = g.getRenderTarget(), n = g.getClearColor(
|
|
23616
|
-
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;
|
|
23617
23963
|
}
|
|
23618
23964
|
return this.forceRenderWhenNextUpdate = !1, f;
|
|
23619
23965
|
}
|
|
23620
|
-
},
|
|
23621
|
-
|
|
23622
|
-
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() {
|
|
23623
23969
|
let t = {
|
|
23624
23970
|
size: R(new e.Vector2()),
|
|
23625
23971
|
mapMatrix: R(new e.Matrix4()),
|
|
23626
23972
|
panoMatrix: R(new e.Matrix4()),
|
|
23627
23973
|
alpha: R(1),
|
|
23628
23974
|
map: L(new e.Texture())
|
|
23629
|
-
}, 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();
|
|
23630
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, {
|
|
23631
23977
|
material: u,
|
|
23632
23978
|
u: t
|
|
23633
23979
|
};
|
|
23634
23980
|
}
|
|
23635
|
-
var
|
|
23981
|
+
var dE = class {
|
|
23636
23982
|
constructor() {
|
|
23637
|
-
let { material: t, u: n } =
|
|
23638
|
-
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;
|
|
23639
23985
|
}
|
|
23640
23986
|
setMaterial(t) {
|
|
23641
|
-
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));
|
|
23642
23988
|
let n = t !== null;
|
|
23643
23989
|
this.active !== n && (this.active = n, this.object.visible = n);
|
|
23644
23990
|
}
|
|
@@ -23648,36 +23994,36 @@ var LT = class {
|
|
|
23648
23994
|
dispose() {
|
|
23649
23995
|
this.material.dispose();
|
|
23650
23996
|
}
|
|
23651
|
-
},
|
|
23652
|
-
function
|
|
23997
|
+
}, fE = new e.Color(0, 0, 0), pE = new e.Color();
|
|
23998
|
+
function mE(e) {
|
|
23653
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));
|
|
23654
24000
|
return V(t, n, r, e.sub(r.mul(1 / 256))).mul(256 / 255);
|
|
23655
24001
|
}
|
|
23656
|
-
var
|
|
23657
|
-
|
|
23658
|
-
function
|
|
23659
|
-
|
|
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);
|
|
23660
24006
|
let i = e.getClearAlpha(), a = t.overrideMaterial;
|
|
23661
|
-
t.overrideMaterial =
|
|
24007
|
+
t.overrideMaterial = _E, e.setClearColor(fE, 0), n.update(e, t), e.setClearColor(pE, i), t.overrideMaterial = a;
|
|
23662
24008
|
}
|
|
23663
24009
|
//#endregion
|
|
23664
24010
|
//#region build/five/utils/error.js
|
|
23665
|
-
function
|
|
24011
|
+
function yE(e) {
|
|
23666
24012
|
if (e instanceof Error) return e;
|
|
23667
24013
|
let t = typeof e;
|
|
23668
24014
|
return Error(t && t === "object" ? JSON.stringify(e) : e);
|
|
23669
24015
|
}
|
|
23670
24016
|
//#endregion
|
|
23671
24017
|
//#region build/five/controllers/panorama.js
|
|
23672
|
-
var
|
|
24018
|
+
var bE = eg, xE = new e.Raycaster(), SE = new e.Vector3(), CE = [
|
|
23673
24019
|
new e.Vector3(0, 0, 0).multiplyScalar(.1),
|
|
23674
24020
|
new e.Vector3(1, 0, 0).multiplyScalar(.1),
|
|
23675
24021
|
new e.Vector3(-.5, 0, -Math.sqrt(3) / 2).multiplyScalar(.1),
|
|
23676
24022
|
new e.Vector3(-.5, 0, Math.sqrt(3) / 2).multiplyScalar(.1)
|
|
23677
|
-
],
|
|
24023
|
+
], wE = Object.assign(Object.assign({}, bT), {
|
|
23678
24024
|
maxAccessibleDistance: 5,
|
|
23679
24025
|
panoTapTriggerRadius: .5,
|
|
23680
|
-
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(),
|
|
23681
24027
|
adjustPanoCircleMeshPositionBasedOnModel: !1,
|
|
23682
24028
|
tileLevelForFov: ((e, t) => {
|
|
23683
24029
|
var n;
|
|
@@ -23687,20 +24033,20 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
23687
24033
|
tileAppearDuration: .5,
|
|
23688
24034
|
tileMaxRequest: 3,
|
|
23689
24035
|
flyEffectUseDepthBuffer: !1
|
|
23690
|
-
}),
|
|
24036
|
+
}), TE = class t extends xT {
|
|
23691
24037
|
static parseArgs(e) {
|
|
23692
24038
|
var n, r, i, a, o, s, c, l;
|
|
23693
24039
|
if (e instanceof t) return e;
|
|
23694
24040
|
let u = super.parseArgs(e);
|
|
23695
24041
|
return Object.assign(Object.assign({}, u), {
|
|
23696
|
-
maxAccessibleDistance: (n = e.maxAccessibleDistance) == null ?
|
|
23697
|
-
panoTapTriggerRadius: (r = e.panoTapTriggerRadius) == null ?
|
|
23698
|
-
panoCircleMeshCreator: (i = e.panoCircleMeshCreator) == null ?
|
|
23699
|
-
adjustPanoCircleMeshPositionBasedOnModel: (a = e.adjustPanoCircleMeshPositionBasedOnModel) == null ?
|
|
23700
|
-
tileLevelForFov: (o = e.tileLevelForFov) == null ?
|
|
23701
|
-
tileAppearDuration: (s = e.tileAppearDuration) == null ?
|
|
23702
|
-
tileMaxRequest: (c = e.tileMaxRequest) == null ?
|
|
23703
|
-
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
|
|
23704
24050
|
});
|
|
23705
24051
|
}
|
|
23706
24052
|
static initAnimationEndState(e) {
|
|
@@ -23721,12 +24067,12 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
23721
24067
|
panoPicture: this.modelScene.parameter.resolveValue().pano1,
|
|
23722
24068
|
position: this.camera.pose.offset.clone(),
|
|
23723
24069
|
effect: "fly",
|
|
23724
|
-
effectEasing:
|
|
24070
|
+
effectEasing: bE,
|
|
23725
24071
|
fixCameraTransform: new e.Matrix4()
|
|
23726
|
-
}, 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({
|
|
23727
24073
|
fiveId: this.fiveId,
|
|
23728
24074
|
enableHDR: this.enableHDR
|
|
23729
|
-
}), this.panoVideo = new
|
|
24075
|
+
}), this.panoVideo = new dE(), this.scene.add(this.panoVideo.object), this.accessibleObserverFloorCheckCount = 0;
|
|
23730
24076
|
}
|
|
23731
24077
|
get tileLevel() {
|
|
23732
24078
|
return this.tiling.level;
|
|
@@ -23839,13 +24185,13 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
23839
24185
|
l !== this.currentPano && (this.currentPano = l, this.accessibleObserverFloorCheckCount = 0), this.emit("pano.moving", $("pano.moving", {
|
|
23840
24186
|
userAction: this.userAction,
|
|
23841
24187
|
prevPano: Qb(y.panoId),
|
|
23842
|
-
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),
|
|
23843
24189
|
options: {},
|
|
23844
24190
|
progress: this.locationMotion.progress,
|
|
23845
24191
|
error: null
|
|
23846
24192
|
}));
|
|
23847
24193
|
}
|
|
23848
|
-
|
|
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);
|
|
23849
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);
|
|
23850
24196
|
if (this.adjustPanoCircleMeshPositionBasedOnModel && this.helper.visible && S) {
|
|
23851
24197
|
let t = [], n = S.work.observers;
|
|
@@ -23866,9 +24212,9 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
23866
24212
|
let t = .3, i = .005, a = n.standingPosition.clone().applyMatrix4(n.work.transform), o = Zb({
|
|
23867
24213
|
panoIndex: n.panoIndex,
|
|
23868
24214
|
workCode: n.work.workCode
|
|
23869
|
-
}), s =
|
|
23870
|
-
|
|
23871
|
-
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);
|
|
23872
24218
|
return o && o.distance - i <= t ? new e.Vector3().copy(a).setY(o.point.y + i) : a;
|
|
23873
24219
|
});
|
|
23874
24220
|
s.sort((e, t) => t.y - e.y);
|
|
@@ -23915,7 +24261,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
23915
24261
|
else {
|
|
23916
24262
|
t.position.copy(r.standingPosition).applyMatrix4(r.work.transform);
|
|
23917
24263
|
let e = this.adjustPanoCircleMeshPositionFix.get(r.panoId);
|
|
23918
|
-
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);
|
|
23919
24265
|
}
|
|
23920
24266
|
let a = this.camera.position.clone().setY(t.position.y), o = new e.Vector3().copy(t.position).sub(a).normalize();
|
|
23921
24267
|
if (n === Zb(this.currentPano)) {
|
|
@@ -24022,9 +24368,9 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24022
24368
|
generateMipmaps: !1
|
|
24023
24369
|
});
|
|
24024
24370
|
let t = new e.CubeCamera(this.camera.near, this.camera.far, this.pano0DepthCubeRenderTarget);
|
|
24025
|
-
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);
|
|
24026
24372
|
let i = new e.CubeCamera(this.camera.near, this.camera.far, this.pano1DepthCubeRenderTarget);
|
|
24027
|
-
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({
|
|
24028
24374
|
pano0Depth: {
|
|
24029
24375
|
panoId: n.panoId,
|
|
24030
24376
|
map: this.pano0DepthCubeRenderTarget.texture,
|
|
@@ -24110,7 +24456,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24110
24456
|
}
|
|
24111
24457
|
let v = "move-to-pano-" + s;
|
|
24112
24458
|
this.pending.add(v);
|
|
24113
|
-
let y =
|
|
24459
|
+
let y = Ew("pano.prepare", {
|
|
24114
24460
|
options: n,
|
|
24115
24461
|
prevMode: this.mode,
|
|
24116
24462
|
prevPano: this.currentPano,
|
|
@@ -24126,7 +24472,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24126
24472
|
let r = {
|
|
24127
24473
|
panoId: s,
|
|
24128
24474
|
effect: b,
|
|
24129
|
-
effectEasing: (o = n.effectEasing) == null ?
|
|
24475
|
+
effectEasing: (o = n.effectEasing) == null ? bE : o,
|
|
24130
24476
|
panoPicture: {
|
|
24131
24477
|
panoId: S.panoId,
|
|
24132
24478
|
map: S.map,
|
|
@@ -24142,13 +24488,13 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24142
24488
|
position: c.position.clone().applyMatrix4(c.work.transform),
|
|
24143
24489
|
fixCameraTransform: new e.Matrix4()
|
|
24144
24490
|
};
|
|
24145
|
-
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(() => {
|
|
24146
24492
|
Bu.shared.add(() => {
|
|
24147
24493
|
this.pending.delete(v), this.doMoveToPano(t, r, n);
|
|
24148
24494
|
}, !0, 1);
|
|
24149
24495
|
}).catch((e) => {
|
|
24150
24496
|
var r;
|
|
24151
|
-
let i =
|
|
24497
|
+
let i = yE(e), a = Object.assign(Object.assign(Object.assign({}, t), { mode: this.mode }), jw(this.camera.pose));
|
|
24152
24498
|
this.emit("pano.error", $("pano.error", {
|
|
24153
24499
|
error: i,
|
|
24154
24500
|
userAction: this.userAction,
|
|
@@ -24176,10 +24522,10 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24176
24522
|
if (this.destroyed) l.dispose();
|
|
24177
24523
|
else {
|
|
24178
24524
|
l.name = _;
|
|
24179
|
-
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 = {
|
|
24180
24526
|
panoId: s,
|
|
24181
24527
|
effect: b,
|
|
24182
|
-
effectEasing: (o = n.effectEasing) == null ?
|
|
24528
|
+
effectEasing: (o = n.effectEasing) == null ? bE : o,
|
|
24183
24529
|
panoPicture: {
|
|
24184
24530
|
panoId: s,
|
|
24185
24531
|
map: l,
|
|
@@ -24196,7 +24542,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24196
24542
|
}
|
|
24197
24543
|
}),
|
|
24198
24544
|
onError: (e) => {
|
|
24199
|
-
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));
|
|
24200
24546
|
this.emit("pano.error", $("pano.error", {
|
|
24201
24547
|
error: e,
|
|
24202
24548
|
userAction: this.userAction,
|
|
@@ -24244,7 +24590,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24244
24590
|
}, void 0, void 0, void 0, this.renderer)]).then(([e, t]) => ({
|
|
24245
24591
|
config: e,
|
|
24246
24592
|
map: t.body
|
|
24247
|
-
})) : 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));
|
|
24248
24594
|
Promise.all([
|
|
24249
24595
|
w,
|
|
24250
24596
|
T,
|
|
@@ -24319,7 +24665,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24319
24665
|
})), this.initAnimationed = !0, e();
|
|
24320
24666
|
},
|
|
24321
24667
|
moveCancelCallback: () => {
|
|
24322
|
-
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));
|
|
24323
24669
|
l === !1 && this.emit("initAnimation.start", $("initAnimation.start", {
|
|
24324
24670
|
state: t,
|
|
24325
24671
|
userAction: this.userAction
|
|
@@ -24481,7 +24827,7 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24481
24827
|
panoMatrix: n.matrix.clone().premultiply(n.work.transform),
|
|
24482
24828
|
alpha: 1
|
|
24483
24829
|
}, t = gn(), r = this.videoTexture.image;
|
|
24484
|
-
r.setAttribute("uuid", t), r.oncanplay = Y, r.ontimeupdate = Y,
|
|
24830
|
+
r.setAttribute("uuid", t), r.oncanplay = Y, r.ontimeupdate = Y, wT().then((i) => {
|
|
24485
24831
|
i && n.images.video && r.getAttribute("uuid") === t && (r.oncanplay = () => {
|
|
24486
24832
|
r.oncanplay = Y, r.play();
|
|
24487
24833
|
}, r.ontimeupdate = () => {
|
|
@@ -24527,9 +24873,9 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24527
24873
|
return Math.abs(i.z) > 1 || Math.abs(i.x) > 1 || Math.abs(i.y) > 1 ? !1 : n.loadable || n.active;
|
|
24528
24874
|
}), u = /* @__PURE__ */ new Map(), d = l.slice().sort((e, t) => {
|
|
24529
24875
|
let n = c[e], r = u.get(n);
|
|
24530
|
-
r === void 0 && (r =
|
|
24876
|
+
r === void 0 && (r = SE.copy(n.standingPosition).applyMatrix4(n.work.transform).distanceTo(a), u.set(n, r));
|
|
24531
24877
|
let i = c[t], o = u.get(i);
|
|
24532
|
-
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;
|
|
24533
24879
|
});
|
|
24534
24880
|
u.clear();
|
|
24535
24881
|
for (let e of [
|
|
@@ -24540,13 +24886,13 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24540
24886
|
]) for (let t of d) {
|
|
24541
24887
|
let n = c[t];
|
|
24542
24888
|
if (n) {
|
|
24543
|
-
let t =
|
|
24889
|
+
let t = SE.copy(n.standingPosition).applyMatrix4(n.work.transform).sub(a);
|
|
24544
24890
|
if (t && t.length() !== 0 && s.angleTo(t) < e) return n;
|
|
24545
24891
|
}
|
|
24546
24892
|
}
|
|
24547
24893
|
let f = null;
|
|
24548
24894
|
if (n) {
|
|
24549
|
-
let e = n.ray.intersectBox(this.modelScene.boundingBox,
|
|
24895
|
+
let e = n.ray.intersectBox(this.modelScene.boundingBox, SE);
|
|
24550
24896
|
e && (e.project(t), Math.abs(e.z) <= 1 && (f = e.clone()));
|
|
24551
24897
|
} else f = new e.Vector3(0, 0, 0);
|
|
24552
24898
|
if (f) {
|
|
@@ -24558,15 +24904,15 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24558
24904
|
return Math.abs(i.z) > 1 || Math.abs(i.x) > 1 || Math.abs(i.y) > 1 ? !1 : n.loadable || n.active;
|
|
24559
24905
|
}), n = /* @__PURE__ */ new Map(), i = e.slice().sort((e, r) => {
|
|
24560
24906
|
let i = c[e], a = n.get(i);
|
|
24561
|
-
a === void 0 && (a =
|
|
24907
|
+
a === void 0 && (a = SE.copy(i.position).applyMatrix4(i.work.transform).distanceTo(t.position), n.set(i, a));
|
|
24562
24908
|
let o = c[r], s = n.get(o);
|
|
24563
|
-
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;
|
|
24564
24910
|
});
|
|
24565
24911
|
n.clear();
|
|
24566
24912
|
for (let e of i) {
|
|
24567
24913
|
let n = c[e];
|
|
24568
24914
|
if (n) {
|
|
24569
|
-
let e =
|
|
24915
|
+
let e = SE.copy(n.position).applyMatrix4(n.work.transform);
|
|
24570
24916
|
if (e.project(t), Math.abs(e.z) > 1) continue;
|
|
24571
24917
|
if (Math.pow(f.x - e.x, 2) + Math.pow(f.y - e.y, 2) < Math.pow(.4, 2)) return n;
|
|
24572
24918
|
}
|
|
@@ -24584,12 +24930,12 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24584
24930
|
let s = o.work.observers, c = o.accessibleNodes.filter((e) => {
|
|
24585
24931
|
if (e === this.currentPano.panoIndex && o.work.workCode === this.currentPano.workCode) return !1;
|
|
24586
24932
|
let t = s[e];
|
|
24587
|
-
return !t ||
|
|
24933
|
+
return !t || SE.copy(t.position).applyMatrix4(t.work.transform).distanceTo(this.camera.position) > this.maxAccessibleDistance ? !1 : t.loadable || t.active;
|
|
24588
24934
|
}), [l] = this.modelScene.intersectRaycaster(r);
|
|
24589
24935
|
if (l) {
|
|
24590
24936
|
let [e, t] = Im(c, (e) => {
|
|
24591
24937
|
let t = s[e];
|
|
24592
|
-
return t ?
|
|
24938
|
+
return t ? SE.copy(t.standingPosition).applyMatrix4(t.work.transform).distanceTo(l.point) : Infinity;
|
|
24593
24939
|
}, !0);
|
|
24594
24940
|
typeof e == "number" && t < this.panoTapTriggerRadius && (a = (n = s[e]) == null ? null : n);
|
|
24595
24941
|
}
|
|
@@ -24641,21 +24987,21 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24641
24987
|
}
|
|
24642
24988
|
}
|
|
24643
24989
|
}
|
|
24644
|
-
},
|
|
24990
|
+
}, EE = Math.PI / 180, DE = 180 / Math.PI, OE = .001, kE = 1, AE = (() => {
|
|
24645
24991
|
let e = typeof navigator < "u" && /iPad|iPhone|iPod/.test(navigator.platform);
|
|
24646
24992
|
return () => e;
|
|
24647
|
-
})(),
|
|
24993
|
+
})(), jE = (() => {
|
|
24648
24994
|
let e = typeof navigator < "u" && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
24649
24995
|
return () => e;
|
|
24650
|
-
})(),
|
|
24996
|
+
})(), ME = (() => {
|
|
24651
24997
|
let e = typeof navigator < "u" && navigator.userAgent.indexOf("Firefox") !== -1 && navigator.userAgent.indexOf("Android") !== -1;
|
|
24652
24998
|
return () => e;
|
|
24653
|
-
})(),
|
|
24999
|
+
})(), NE = (() => {
|
|
24654
25000
|
let e = typeof navigator < "u" ? navigator.userAgent.match(/.*Chrome\/([0-9]+)/) : null, t = e ? parseInt(e[1], 10) : null;
|
|
24655
25001
|
return () => t;
|
|
24656
|
-
})(),
|
|
25002
|
+
})(), PE = (() => {
|
|
24657
25003
|
let e = !1;
|
|
24658
|
-
if (
|
|
25004
|
+
if (NE() === 65) {
|
|
24659
25005
|
let t = typeof navigator < "u" ? navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/) : null;
|
|
24660
25006
|
if (t) {
|
|
24661
25007
|
let [n, r, i, a] = t[1].split(".");
|
|
@@ -24663,41 +25009,41 @@ var KT = eg, qT = new e.Raycaster(), JT = new e.Vector3(), YT = [
|
|
|
24663
25009
|
}
|
|
24664
25010
|
}
|
|
24665
25011
|
return () => e;
|
|
24666
|
-
})(),
|
|
24667
|
-
let e =
|
|
25012
|
+
})(), FE = (() => {
|
|
25013
|
+
let e = AE() && jE() && typeof navigator < "u" && navigator.userAgent.indexOf("13_4") !== -1;
|
|
24668
25014
|
return () => e;
|
|
24669
|
-
})(),
|
|
25015
|
+
})(), IE = (() => {
|
|
24670
25016
|
let e = typeof navigator < "u" && navigator.userAgent.indexOf("R7 Build") !== -1;
|
|
24671
25017
|
return () => e;
|
|
24672
25018
|
})();
|
|
24673
|
-
function
|
|
25019
|
+
function LE() {
|
|
24674
25020
|
let e = typeof window < "u" && (window.orientation == 90 || window.orientation == -90);
|
|
24675
|
-
return
|
|
25021
|
+
return IE() ? !e : e;
|
|
24676
25022
|
}
|
|
24677
|
-
function
|
|
24678
|
-
return !(isNaN(e) || e <=
|
|
25023
|
+
function RE(e) {
|
|
25024
|
+
return !(isNaN(e) || e <= OE || e > kE);
|
|
24679
25025
|
}
|
|
24680
|
-
function
|
|
25026
|
+
function zE(e) {
|
|
24681
25027
|
return e.w > 1 ? 0 : 2 * Math.acos(e.w);
|
|
24682
25028
|
}
|
|
24683
|
-
var
|
|
25029
|
+
var BE = (() => {
|
|
24684
25030
|
let e = {};
|
|
24685
25031
|
return (t, n) => {
|
|
24686
25032
|
e[t] === void 0 && (console.warn("cardboard: " + n), e[t] = !0);
|
|
24687
25033
|
};
|
|
24688
25034
|
})();
|
|
24689
|
-
function
|
|
25035
|
+
function VE(e) {
|
|
24690
25036
|
let t, n = e.indexOf("://");
|
|
24691
25037
|
t = n === -1 ? 0 : n + 3;
|
|
24692
25038
|
let r = e.indexOf("/", t);
|
|
24693
25039
|
return r === -1 && (r = e.length), e.substring(0, r);
|
|
24694
25040
|
}
|
|
24695
|
-
function
|
|
25041
|
+
function HE() {
|
|
24696
25042
|
if (typeof window > "u" || typeof document > "u") return !1;
|
|
24697
|
-
let e = window.self !== window.top, t =
|
|
25043
|
+
let e = window.self !== window.top, t = VE(document.referrer), n = VE(window.location.href);
|
|
24698
25044
|
return e && t !== n;
|
|
24699
25045
|
}
|
|
24700
|
-
var
|
|
25046
|
+
var UE = (() => {
|
|
24701
25047
|
function e(e, t, n) {
|
|
24702
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;
|
|
24703
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;
|
|
@@ -24713,7 +25059,7 @@ var hE = (() => {
|
|
|
24713
25059
|
return (r, i, a) => {
|
|
24714
25060
|
e(r, i), a && t(r, r, a), n(r, r);
|
|
24715
25061
|
};
|
|
24716
|
-
})(),
|
|
25062
|
+
})(), WE = class {
|
|
24717
25063
|
constructor(t = new e.Vector3(), n = 0) {
|
|
24718
25064
|
this.sample = t, this.timestampS = n;
|
|
24719
25065
|
}
|
|
@@ -24723,15 +25069,15 @@ var hE = (() => {
|
|
|
24723
25069
|
copy(e) {
|
|
24724
25070
|
this.set(e.sample, e.timestampS);
|
|
24725
25071
|
}
|
|
24726
|
-
},
|
|
25072
|
+
}, GE = class {
|
|
24727
25073
|
constructor(t, n) {
|
|
24728
|
-
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();
|
|
24729
25075
|
}
|
|
24730
25076
|
addAccelMeasurement(e, t) {
|
|
24731
25077
|
this.currentAccelMeasurement.set(e, t);
|
|
24732
25078
|
}
|
|
24733
25079
|
addGyroMeasurement(e, t) {
|
|
24734
|
-
this.currentGyroMeasurement.set(e, t),
|
|
25080
|
+
this.currentGyroMeasurement.set(e, t), RE(t - this.previousGyroMeasurement.timestampS) && this.run_(), this.previousGyroMeasurement.copy(this.currentGyroMeasurement);
|
|
24735
25081
|
}
|
|
24736
25082
|
getOrientation() {
|
|
24737
25083
|
return this.filterQ;
|
|
@@ -24746,7 +25092,7 @@ var hE = (() => {
|
|
|
24746
25092
|
let r = new e.Quaternion();
|
|
24747
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();
|
|
24748
25094
|
let i = new e.Quaternion();
|
|
24749
|
-
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));
|
|
24750
25096
|
let a = new e.Quaternion();
|
|
24751
25097
|
a.copy(this.filterQ), a.multiply(i), this.filterQ.slerp(a, 1 - this.kFilter), this.previousFilterQ.copy(this.filterQ);
|
|
24752
25098
|
}
|
|
@@ -24760,7 +25106,7 @@ var hE = (() => {
|
|
|
24760
25106
|
let r = new e.Quaternion(), i = new e.Vector3();
|
|
24761
25107
|
return i.copy(t), i.normalize(), r.setFromAxisAngle(i, t.length() * n), r;
|
|
24762
25108
|
}
|
|
24763
|
-
},
|
|
25109
|
+
}, KE = class {
|
|
24764
25110
|
constructor(t, n) {
|
|
24765
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();
|
|
24766
25112
|
}
|
|
@@ -24769,11 +25115,11 @@ var hE = (() => {
|
|
|
24769
25115
|
let i = new e.Vector3();
|
|
24770
25116
|
i.copy(n), i.normalize();
|
|
24771
25117
|
let a = n.length();
|
|
24772
|
-
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;
|
|
24773
25119
|
let o = a * this.predictionTimeS;
|
|
24774
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;
|
|
24775
25121
|
}
|
|
24776
|
-
},
|
|
25122
|
+
}, qE = class {
|
|
24777
25123
|
constructor(e) {
|
|
24778
25124
|
this.coefficients = e;
|
|
24779
25125
|
}
|
|
@@ -24790,15 +25136,15 @@ var hE = (() => {
|
|
|
24790
25136
|
for (let e = 0; e < this.coefficients.length; e++) n = t * (n + this.coefficients[e]);
|
|
24791
25137
|
return (n + 1) * e;
|
|
24792
25138
|
}
|
|
24793
|
-
},
|
|
25139
|
+
}, JE = class {
|
|
24794
25140
|
constructor() {
|
|
24795
25141
|
this.angularAcceleration = null, this.angularVelocity = null, this.linearAcceleration = null, this.linearVelocity = null, this.orientation = null, this.position = null;
|
|
24796
25142
|
}
|
|
24797
|
-
},
|
|
25143
|
+
}, YE = class {
|
|
24798
25144
|
constructor() {
|
|
24799
25145
|
this.leftDegrees = 0, this.rightDegrees = 0, this.upDegrees = 0, this.downDegrees = 0;
|
|
24800
25146
|
}
|
|
24801
|
-
},
|
|
25147
|
+
}, XE = class {
|
|
24802
25148
|
constructor(t, n, r, i) {
|
|
24803
25149
|
this.viewer = {
|
|
24804
25150
|
id: "CardboardV1",
|
|
@@ -24826,11 +25172,11 @@ var hE = (() => {
|
|
|
24826
25172
|
widthMeters: .11,
|
|
24827
25173
|
heightMeters: .062,
|
|
24828
25174
|
bevelMeters: .004
|
|
24829
|
-
}, this.depthNear = .01, this.depthFar = 1e4, this.yawOnly = r, this.accelerometer = new e.Vector3(), this.gyroscope = new e.Vector3(), this.filter = new
|
|
24830
|
-
let a =
|
|
24831
|
-
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();
|
|
24832
25178
|
let o = typeof window < "u" ? -window.orientation * Math.PI / 180 : 0;
|
|
24833
|
-
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();
|
|
24834
25180
|
}
|
|
24835
25181
|
getPosition() {
|
|
24836
25182
|
return null;
|
|
@@ -24855,20 +25201,20 @@ var hE = (() => {
|
|
|
24855
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_;
|
|
24856
25202
|
}
|
|
24857
25203
|
getPose() {
|
|
24858
|
-
let e = new
|
|
25204
|
+
let e = new JE();
|
|
24859
25205
|
return e.orientation = this.getOrientation(), e;
|
|
24860
25206
|
}
|
|
24861
25207
|
resetPose() {
|
|
24862
|
-
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);
|
|
24863
25209
|
}
|
|
24864
25210
|
getFrameData(e) {
|
|
24865
25211
|
let t = this.getOrientation(), n = this.getEyeOffset(), r = this.getEyeProjectionMatrix();
|
|
24866
|
-
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;
|
|
24867
25213
|
}
|
|
24868
25214
|
start() {
|
|
24869
25215
|
if (typeof window > "u") return () => {};
|
|
24870
25216
|
let e = this.onDeviceMotion_.bind(this), t = this.onOrientationChange_.bind(this), n = this.onMessage_.bind(this), r = this.onDeviceOrientation_.bind(this);
|
|
24871
|
-
return
|
|
25217
|
+
return AE() && HE() && window.addEventListener("message", n), window.addEventListener("orientationchange", t), this.isWithoutDeviceMotion ? window.addEventListener("deviceorientation", r) : window.addEventListener("devicemotion", e), () => {
|
|
24872
25218
|
window.removeEventListener("devicemotion", e), window.removeEventListener("deviceorientation", t), window.removeEventListener("orientationchange", t), window.removeEventListener("message", n);
|
|
24873
25219
|
};
|
|
24874
25220
|
}
|
|
@@ -24892,17 +25238,17 @@ var hE = (() => {
|
|
|
24892
25238
|
right: []
|
|
24893
25239
|
};
|
|
24894
25240
|
{
|
|
24895
|
-
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);
|
|
24896
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;
|
|
24897
25243
|
}
|
|
24898
25244
|
{
|
|
24899
|
-
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);
|
|
24900
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;
|
|
24901
25247
|
}
|
|
24902
25248
|
return r;
|
|
24903
25249
|
}
|
|
24904
25250
|
getEyeFieldOfView() {
|
|
24905
|
-
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();
|
|
24906
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, {
|
|
24907
25253
|
left: f,
|
|
24908
25254
|
right: p
|
|
@@ -24919,13 +25265,13 @@ var hE = (() => {
|
|
|
24919
25265
|
updateDeviceMotion_(e) {
|
|
24920
25266
|
let t = e.accelerationIncludingGravity, n = e.rotationRate, r = e.timeStamp / 1e3, i = r - this.previousTimestampS;
|
|
24921
25267
|
if (i < 0) {
|
|
24922
|
-
|
|
25268
|
+
BE("fusion-pose-sensor:invalid:non-monotonic", "Invalid timestamps detected: non-monotonic timestamp from devicemotion"), this.previousTimestampS = r;
|
|
24923
25269
|
return;
|
|
24924
|
-
} else if (i <=
|
|
24925
|
-
|
|
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;
|
|
24926
25272
|
return;
|
|
24927
25273
|
}
|
|
24928
|
-
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;
|
|
24929
25275
|
}
|
|
24930
25276
|
onOrientationChange_() {
|
|
24931
25277
|
this.setScreenTransform_();
|
|
@@ -24947,19 +25293,19 @@ var hE = (() => {
|
|
|
24947
25293
|
}
|
|
24948
25294
|
this.inverseWorldToScreenQ.copy(this.worldToScreenQ), this.inverseWorldToScreenQ.invert();
|
|
24949
25295
|
}
|
|
24950
|
-
},
|
|
25296
|
+
}, ZE = [
|
|
24951
25297
|
0,
|
|
24952
25298
|
0,
|
|
24953
25299
|
.5,
|
|
24954
25300
|
1
|
|
24955
|
-
],
|
|
25301
|
+
], QE = [
|
|
24956
25302
|
.5,
|
|
24957
25303
|
0,
|
|
24958
25304
|
.5,
|
|
24959
25305
|
1
|
|
24960
|
-
],
|
|
25306
|
+
], $E = class {
|
|
24961
25307
|
constructor(t) {
|
|
24962
|
-
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();
|
|
24963
25309
|
let n = this.sensor.start();
|
|
24964
25310
|
this.dispose = () => {
|
|
24965
25311
|
let t = this.renderer.getSize(new e.Vector2());
|
|
@@ -24972,15 +25318,15 @@ var hE = (() => {
|
|
|
24972
25318
|
var i = t.matrixWorldAutoUpdate;
|
|
24973
25319
|
i && (t.updateMatrixWorld(), t.matrixWorldAutoUpdate = !1);
|
|
24974
25320
|
let a = {
|
|
24975
|
-
x: Math.round(r.width *
|
|
24976
|
-
y: Math.round(r.height *
|
|
24977
|
-
width: Math.round(r.width *
|
|
24978
|
-
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])
|
|
24979
25325
|
}, o = {
|
|
24980
|
-
x: Math.round(r.width *
|
|
24981
|
-
y: Math.round(r.height *
|
|
24982
|
-
width: Math.round(r.width *
|
|
24983
|
-
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])
|
|
24984
25330
|
};
|
|
24985
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);
|
|
24986
25332
|
let s = this.sensor.getEyeOffset();
|
|
@@ -24990,7 +25336,7 @@ var hE = (() => {
|
|
|
24990
25336
|
} else this.renderer.render(t, n);
|
|
24991
25337
|
}
|
|
24992
25338
|
dispose() {}
|
|
24993
|
-
}, 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 = {
|
|
24994
25340
|
zh: {
|
|
24995
25341
|
TITLE: "眼镜模式",
|
|
24996
25342
|
HIT: "请将手机横屏放入 VR 眼镜中"
|
|
@@ -25003,7 +25349,7 @@ var hE = (() => {
|
|
|
25003
25349
|
TITLE: "メガネモード",
|
|
25004
25350
|
HIT: "携帯電話をVRメガネに水平に入れてください。"
|
|
25005
25351
|
}
|
|
25006
|
-
},
|
|
25352
|
+
}, iD = typeof navigator < "u" ? (nD = rD[navigator.language.split("-")[0]]) == null ? rD.zh : nD : rD.zh, aD = `
|
|
25007
25353
|
<style>
|
|
25008
25354
|
.$id {
|
|
25009
25355
|
all: initial;
|
|
@@ -25086,7 +25432,7 @@ var hE = (() => {
|
|
|
25086
25432
|
.$id-modal-content-guide-cardboard-image {
|
|
25087
25433
|
width: 100px;
|
|
25088
25434
|
height: 82px;
|
|
25089
|
-
background-image: url(${
|
|
25435
|
+
background-image: url(${eD});
|
|
25090
25436
|
background-size: 100%;
|
|
25091
25437
|
background-repeat: no-repeat;
|
|
25092
25438
|
}
|
|
@@ -25128,7 +25474,7 @@ var hE = (() => {
|
|
|
25128
25474
|
.$id-modal-content-guide-phone-image {
|
|
25129
25475
|
width: 58px;
|
|
25130
25476
|
height: 56px;
|
|
25131
|
-
background-image: url(${
|
|
25477
|
+
background-image: url(${tD});
|
|
25132
25478
|
background-size: 100%;
|
|
25133
25479
|
background-repeat: no-repeat;
|
|
25134
25480
|
}
|
|
@@ -25205,8 +25551,8 @@ Z
|
|
|
25205
25551
|
</div>
|
|
25206
25552
|
</div>
|
|
25207
25553
|
<div class="$id-modal-content">
|
|
25208
|
-
<div class="$id-modal-content-title">${
|
|
25209
|
-
<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>
|
|
25210
25556
|
<div class="$id-modal-content-guide">
|
|
25211
25557
|
<div class="$id-modal-content-guide-phone">
|
|
25212
25558
|
<div class="$id-modal-content-guide-phone-move-x">
|
|
@@ -25265,7 +25611,7 @@ Z
|
|
|
25265
25611
|
</div>
|
|
25266
25612
|
</div>
|
|
25267
25613
|
`;
|
|
25268
|
-
function
|
|
25614
|
+
function oD(e) {
|
|
25269
25615
|
let t = 1, n = document.getElementsByTagName("meta");
|
|
25270
25616
|
for (let e = 0; e < n.length; e++) {
|
|
25271
25617
|
let r = n[e];
|
|
@@ -25275,31 +25621,31 @@ function ME(e) {
|
|
|
25275
25621
|
}
|
|
25276
25622
|
}
|
|
25277
25623
|
let r = (e) => Math.floor(e * t) + "px";
|
|
25278
|
-
return
|
|
25624
|
+
return aD.replace(/\n/g, " ").replace(/\ +/g, " ").replace(/\$id/g, e).replace(/(\d+)px/g, (e, t) => r(Number(t)));
|
|
25279
25625
|
}
|
|
25280
|
-
function
|
|
25281
|
-
let e = "five_vr_helper_" + gn(), t =
|
|
25626
|
+
function sD() {
|
|
25627
|
+
let e = "five_vr_helper_" + gn(), t = oD(e), n = document.createElement("div");
|
|
25282
25628
|
return n.className = e, n.innerHTML = t, n;
|
|
25283
25629
|
}
|
|
25284
25630
|
//#endregion
|
|
25285
25631
|
//#region build/five/meshes/panoSphereMesh.js
|
|
25286
|
-
var
|
|
25287
|
-
function
|
|
25288
|
-
let n = D(
|
|
25289
|
-
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);
|
|
25290
25636
|
}
|
|
25291
|
-
function
|
|
25292
|
-
let n = D(
|
|
25293
|
-
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));
|
|
25294
25640
|
}
|
|
25295
|
-
function
|
|
25296
|
-
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();
|
|
25297
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, {
|
|
25298
25644
|
material: f,
|
|
25299
25645
|
u: t
|
|
25300
25646
|
};
|
|
25301
25647
|
}
|
|
25302
|
-
function
|
|
25648
|
+
function mD() {
|
|
25303
25649
|
let t = {
|
|
25304
25650
|
circleScale: R(1),
|
|
25305
25651
|
circleFade: R(0),
|
|
@@ -25309,8 +25655,8 @@ function BE() {
|
|
|
25309
25655
|
opacity: R(0),
|
|
25310
25656
|
disable: R(0)
|
|
25311
25657
|
}, n = z();
|
|
25312
|
-
D(
|
|
25313
|
-
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);
|
|
25314
25660
|
c = j(c, i, i.w), c = j(c, o, o.w), c = j(c, s, t.disable);
|
|
25315
25661
|
let l = V(c.xyz, c.w.mul(t.opacity)), u = new e.NodeMaterial();
|
|
25316
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, {
|
|
@@ -25318,7 +25664,7 @@ function BE() {
|
|
|
25318
25664
|
u: t
|
|
25319
25665
|
};
|
|
25320
25666
|
}
|
|
25321
|
-
var
|
|
25667
|
+
var hD = class extends e.Object3D {
|
|
25322
25668
|
constructor() {
|
|
25323
25669
|
super(), this.progress = 0, this.opacity = 0, this.loading = !1, this.current = !1, this.disabled = !1, this.currentMotion = new X({
|
|
25324
25670
|
ringScale: 1.1,
|
|
@@ -25326,7 +25672,7 @@ var VE = class extends e.Object3D {
|
|
|
25326
25672
|
circleFade: 0,
|
|
25327
25673
|
circleOpacity: .85,
|
|
25328
25674
|
circleScale: 1
|
|
25329
|
-
}), 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({
|
|
25330
25676
|
blending: e.CustomBlending,
|
|
25331
25677
|
blendSrc: e.SrcAlphaFactor,
|
|
25332
25678
|
blendDst: e.OneMinusSrcAlphaFactor,
|
|
@@ -25337,10 +25683,10 @@ var VE = class extends e.Object3D {
|
|
|
25337
25683
|
color: 0,
|
|
25338
25684
|
opacity: 0
|
|
25339
25685
|
})), this.hitTestMesh.scale.set(1.5, 1.5, 1.5);
|
|
25340
|
-
let { material: t, u: n } =
|
|
25341
|
-
this.ringMesh = new e.Mesh(
|
|
25342
|
-
let { material: r, u: i } =
|
|
25343
|
-
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;
|
|
25344
25690
|
}
|
|
25345
25691
|
setProgress(e) {
|
|
25346
25692
|
this.progress = e, this.setLoading(e > 0);
|
|
@@ -25483,7 +25829,7 @@ var VE = class extends e.Object3D {
|
|
|
25483
25829
|
dispose() {
|
|
25484
25830
|
this.hitTestMesh.material.dispose(), this.ringMesh.material.dispose(), this.panoMesh.material.dispose();
|
|
25485
25831
|
}
|
|
25486
|
-
},
|
|
25832
|
+
}, gD = 1500, _D = Object.assign({}, Ql(wE, ["maxLatitude", "minLatitude"])), vD = class t extends TE {
|
|
25487
25833
|
static parseArgs(e) {
|
|
25488
25834
|
if (e instanceof t) return e;
|
|
25489
25835
|
let n = Object.assign(Object.assign({}, e), {
|
|
@@ -25498,10 +25844,10 @@ var VE = class extends e.Object3D {
|
|
|
25498
25844
|
}
|
|
25499
25845
|
constructor(e) {
|
|
25500
25846
|
let n = t.parseArgs(e);
|
|
25501
|
-
super(n), this.mode = "VRPanorama", this.cardboard = new
|
|
25502
|
-
let r =
|
|
25847
|
+
super(n), this.mode = "VRPanorama", this.cardboard = new $E(this.renderer);
|
|
25848
|
+
let r = sD();
|
|
25503
25849
|
this.helperElement = r;
|
|
25504
|
-
let i = new
|
|
25850
|
+
let i = new Zw(r);
|
|
25505
25851
|
this.element.parentNode && (this.element.parentNode.insertBefore(r, this.element), this.updateHelperElementSize(), i.on("tap", () => this.emit("vr.requestExit", $("vr.requestExit", {})))), this.destroyHelper = () => {
|
|
25506
25852
|
i.destroy(), r.parentNode && r.parentNode.removeChild(r), this.helperElement = void 0;
|
|
25507
25853
|
};
|
|
@@ -25574,17 +25920,17 @@ var VE = class extends e.Object3D {
|
|
|
25574
25920
|
this.currentPano = Qb(_.panoId), this.emit("pano.moving", $("pano.moving", {
|
|
25575
25921
|
userAction: this.userAction,
|
|
25576
25922
|
prevPano: Qb(v.panoId),
|
|
25577
|
-
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),
|
|
25578
25924
|
options: {},
|
|
25579
25925
|
progress: this.locationMotion.progress,
|
|
25580
25926
|
error: null
|
|
25581
25927
|
}));
|
|
25582
25928
|
}
|
|
25583
|
-
|
|
25929
|
+
Pw(u) === !1 && this.modelScene.parameter.set(u), d.offset && this.camera.position.copy(d.offset);
|
|
25584
25930
|
let x = this.camera.pose.longitude, S = this.camera.pose.latitude;
|
|
25585
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", {
|
|
25586
25932
|
userAction: !0,
|
|
25587
|
-
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))
|
|
25588
25934
|
}))), this.works.getObserver(this.currentPano);
|
|
25589
25935
|
let C = this.works.getObserver(g.panoId), w = this.works.getObserver(_.panoId), T = /* @__PURE__ */ new Map();
|
|
25590
25936
|
if (C) for (let e of C.accessibleNodes) {
|
|
@@ -25611,7 +25957,7 @@ var VE = class extends e.Object3D {
|
|
|
25611
25957
|
let n = T.get(t);
|
|
25612
25958
|
n ? (e.position.copy(n.position).applyMatrix4(n.work.transform), T.delete(t)) : (this.helper.remove(e), e.dispose(), this.panoMeshes.delete(t));
|
|
25613
25959
|
}), T.forEach((e, t) => {
|
|
25614
|
-
let n = new
|
|
25960
|
+
let n = new hD();
|
|
25615
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);
|
|
25616
25962
|
}), this.camera.pose.distance > .1 || b ? this.panoMeshes.forEach((e, r) => {
|
|
25617
25963
|
e.setOpacity(0), e.updateTime && e.updateTime(t, n), e.visible = !1;
|
|
@@ -25692,9 +26038,9 @@ var VE = class extends e.Object3D {
|
|
|
25692
26038
|
generateMipmaps: !1
|
|
25693
26039
|
});
|
|
25694
26040
|
let t = new e.CubeCamera(this.camera.near, this.camera.far, this.pano0DepthCubeRenderTarget);
|
|
25695
|
-
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);
|
|
25696
26042
|
let i = new e.CubeCamera(this.camera.near, this.camera.far, this.pano1DepthCubeRenderTarget);
|
|
25697
|
-
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({
|
|
25698
26044
|
pano0Depth: {
|
|
25699
26045
|
panoId: n.panoId,
|
|
25700
26046
|
map: this.pano0DepthCubeRenderTarget.texture,
|
|
@@ -25731,7 +26077,7 @@ var VE = class extends e.Object3D {
|
|
|
25731
26077
|
this.intersectMesh.visible = !1, this.activePanoMesh = void 0, this.activeTime = void 0;
|
|
25732
26078
|
return;
|
|
25733
26079
|
}
|
|
25734
|
-
if (this.activePanoMesh && this.activeTime && t - this.activeTime >
|
|
26080
|
+
if (this.activePanoMesh && this.activeTime && t - this.activeTime > gD) {
|
|
25735
26081
|
let e = this.activePanoMesh, t = null;
|
|
25736
26082
|
return this.panoMeshes.forEach((n, r) => {
|
|
25737
26083
|
n === e && (t = r);
|
|
@@ -25783,13 +26129,13 @@ var VE = class extends e.Object3D {
|
|
|
25783
26129
|
onPinchGesture() {}
|
|
25784
26130
|
onMouseMove() {}
|
|
25785
26131
|
onMouseOut() {}
|
|
25786
|
-
},
|
|
26132
|
+
}, yD = .01, bD = "183", xD = {
|
|
25787
26133
|
isXRRenderTarget: !0,
|
|
25788
26134
|
_hasExternalTextures: !1,
|
|
25789
26135
|
_autoAllocateDepthBuffer: !0,
|
|
25790
26136
|
_isOpaqueFramebuffer: !0
|
|
25791
26137
|
};
|
|
25792
|
-
function
|
|
26138
|
+
function SD(t, n, r, i) {
|
|
25793
26139
|
let a = new e.RenderTarget(n, r, {
|
|
25794
26140
|
format: e.RGBAFormat,
|
|
25795
26141
|
type: e.UnsignedByteType,
|
|
@@ -25798,9 +26144,9 @@ function JE(t, n, r, i) {
|
|
|
25798
26144
|
resolveDepthBuffer: i,
|
|
25799
26145
|
resolveStencilBuffer: i
|
|
25800
26146
|
});
|
|
25801
|
-
return Object.assign(a,
|
|
26147
|
+
return Object.assign(a, xD), a;
|
|
25802
26148
|
}
|
|
25803
|
-
var
|
|
26149
|
+
var CD = class {
|
|
25804
26150
|
constructor(t, n = {}) {
|
|
25805
26151
|
var r;
|
|
25806
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;
|
|
@@ -25811,16 +26157,16 @@ var YE = class {
|
|
|
25811
26157
|
verify() {
|
|
25812
26158
|
let t = this.renderer, n = [], r = t.backend;
|
|
25813
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");
|
|
25814
|
-
let i =
|
|
26160
|
+
let i = SD(this.renderer, 1, 1, !0);
|
|
25815
26161
|
try {
|
|
25816
26162
|
let e = i;
|
|
25817
|
-
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])})`);
|
|
25818
26164
|
for (let t of ["multiview", "resolveDepthBuffer"]) e[t] === void 0 && n.push(`xrRT.${t}`);
|
|
25819
26165
|
} finally {
|
|
25820
26166
|
i.dispose();
|
|
25821
26167
|
}
|
|
25822
26168
|
if (n.length > 0) throw Error(`[RenderTargetBridge] three 内部 API 校验失败(THREE.REVISION=${e.REVISION}),缺失或不符:${n.join("、")}`);
|
|
25823
|
-
e.REVISION !==
|
|
26169
|
+
e.REVISION !== bD && !this.warnedRevision && (this.warnedRevision = !0, console.warn(`[RenderTargetBridge] THREE.REVISION=${e.REVISION},XR 标志位语义仅在 r${bD} 复核过,继续运行`));
|
|
25824
26170
|
}
|
|
25825
26171
|
verifyCameras(t) {
|
|
25826
26172
|
let n = this.renderer.coordinateSystem, r = t.map((e, t) => e.coordinateSystem === n ? null : t).filter((e) => e !== null);
|
|
@@ -25854,7 +26200,7 @@ var YE = class {
|
|
|
25854
26200
|
}
|
|
25855
26201
|
i.setScissorTest(!1), o.setXRTarget(t.framebuffer), i.setRenderTarget(null), a.setOutputRenderTarget(l);
|
|
25856
26202
|
let m = i.getPixelRatio();
|
|
25857
|
-
i.setViewport(0, 0, (d +
|
|
26203
|
+
i.setViewport(0, 0, (d + yD) / m, (f + yD) / m), u.render(i);
|
|
25858
26204
|
} finally {
|
|
25859
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);
|
|
25860
26206
|
}
|
|
@@ -25882,7 +26228,7 @@ var YE = class {
|
|
|
25882
26228
|
generateMipmaps: !1,
|
|
25883
26229
|
minFilter: e.LinearFilter,
|
|
25884
26230
|
magFilter: e.LinearFilter
|
|
25885
|
-
}), a =
|
|
26231
|
+
}), a = SD(this.renderer, n, r, t.ignoreDepthValues === !1), o = new e.NodeMaterial();
|
|
25886
26232
|
o.fragmentNode = V(L(i.texture).rgb, 1), o.depthTest = !1, o.depthWrite = !1;
|
|
25887
26233
|
let s = new e.QuadMesh(o);
|
|
25888
26234
|
return this.resources = {
|
|
@@ -25903,7 +26249,7 @@ var YE = class {
|
|
|
25903
26249
|
let t = (e = this.renderer.backend) == null ? void 0 : e.gl;
|
|
25904
26250
|
return t ? !!t.getExtension("EXT_color_buffer_float") || !!t.getExtension("EXT_color_buffer_half_float") : !1;
|
|
25905
26251
|
}
|
|
25906
|
-
},
|
|
26252
|
+
}, wD = class {
|
|
25907
26253
|
constructor() {
|
|
25908
26254
|
this.root = new e.Group(), this._entries = /* @__PURE__ */ new Map(), this._dir = new e.Vector3();
|
|
25909
26255
|
}
|
|
@@ -25953,8 +26299,8 @@ var YE = class {
|
|
|
25953
26299
|
let { position: r, orientation: i } = t.transform;
|
|
25954
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);
|
|
25955
26301
|
}
|
|
25956
|
-
},
|
|
25957
|
-
function
|
|
26302
|
+
}, TD = 5e3;
|
|
26303
|
+
function ED(e) {
|
|
25958
26304
|
let t = [.../* @__PURE__ */ new Set([
|
|
25959
26305
|
e,
|
|
25960
26306
|
"local",
|
|
@@ -25962,21 +26308,21 @@ function QE(e) {
|
|
|
25962
26308
|
])];
|
|
25963
26309
|
return t.slice(0, t.indexOf("viewer") + 1);
|
|
25964
26310
|
}
|
|
25965
|
-
function
|
|
26311
|
+
function DD() {
|
|
25966
26312
|
let e = /* @__PURE__ */ Error("会话在参考空间解析前已结束");
|
|
25967
26313
|
return e.aborted = !0, e;
|
|
25968
26314
|
}
|
|
25969
|
-
function
|
|
26315
|
+
function OD(e) {
|
|
25970
26316
|
return e.map((e) => `${e.type}(${e.reason})`).join(", ");
|
|
25971
26317
|
}
|
|
25972
|
-
function
|
|
26318
|
+
function kD(e, t) {
|
|
25973
26319
|
return Ti(this, arguments, void 0, function* (e, t, n = {}) {
|
|
25974
26320
|
var r, i, a;
|
|
25975
|
-
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 = [];
|
|
25976
26322
|
for (let n of u) {
|
|
25977
|
-
let r = yield
|
|
25978
|
-
if (s != null && s()) throw
|
|
25979
|
-
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)}`), {
|
|
25980
26326
|
space: r.space,
|
|
25981
26327
|
type: n,
|
|
25982
26328
|
failures: d
|
|
@@ -25986,11 +26332,11 @@ function tD(e, t) {
|
|
|
25986
26332
|
reason: r.reason
|
|
25987
26333
|
});
|
|
25988
26334
|
}
|
|
25989
|
-
let f = /* @__PURE__ */ Error(`所有参考空间均不可用(期望 ${t}):${
|
|
26335
|
+
let f = /* @__PURE__ */ Error(`所有参考空间均不可用(期望 ${t}):${OD(d)}`);
|
|
25990
26336
|
throw f.attempts = d, f;
|
|
25991
26337
|
});
|
|
25992
26338
|
}
|
|
25993
|
-
function
|
|
26339
|
+
function AD(e, t, n, r, i) {
|
|
25994
26340
|
return Ti(this, void 0, void 0, function* () {
|
|
25995
26341
|
let a, o = !1, s = new Promise((n) => {
|
|
25996
26342
|
let r = (e) => {
|
|
@@ -26024,7 +26370,7 @@ function nD(e, t, n, r, i) {
|
|
|
26024
26370
|
}
|
|
26025
26371
|
//#endregion
|
|
26026
26372
|
//#region build/five/webxr/xrManager.js
|
|
26027
|
-
var
|
|
26373
|
+
var jD = 5e3, MD = "会话在进入过程中已结束", ND = class {
|
|
26028
26374
|
static isBackendXRCapable(e) {
|
|
26029
26375
|
let t = e.backend;
|
|
26030
26376
|
return (t == null ? void 0 : t.isWebGPUBackend) !== !0;
|
|
@@ -26046,7 +26392,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26046
26392
|
}
|
|
26047
26393
|
constructor(t, n, r) {
|
|
26048
26394
|
var i;
|
|
26049
|
-
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 = {
|
|
26050
26396
|
time: 0,
|
|
26051
26397
|
hasPose: !1,
|
|
26052
26398
|
headOrientation: new e.Quaternion(),
|
|
@@ -26062,7 +26408,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26062
26408
|
var e;
|
|
26063
26409
|
if (this._session) {
|
|
26064
26410
|
if (!this.entered) {
|
|
26065
|
-
this.endedDuringEnter = !0, (e = this.firstFrameWaiter) == null || e.reject(/* @__PURE__ */ Error(
|
|
26411
|
+
this.endedDuringEnter = !0, (e = this.firstFrameWaiter) == null || e.reject(/* @__PURE__ */ Error(MD));
|
|
26066
26412
|
return;
|
|
26067
26413
|
}
|
|
26068
26414
|
this.teardown();
|
|
@@ -26075,7 +26421,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26075
26421
|
}, this.onSelectEvent = (e) => {
|
|
26076
26422
|
var t, n;
|
|
26077
26423
|
(n = (t = this.callbacks).onSelect) == null || n.call(t, e.inputSource);
|
|
26078
|
-
}, 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) => {
|
|
26079
26425
|
console.warn(`[XR] Device_Profile 字段 ${e} 非法,已回落默认值`);
|
|
26080
26426
|
});
|
|
26081
26427
|
let a = () => {
|
|
@@ -26104,7 +26450,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26104
26450
|
this.layer = a;
|
|
26105
26451
|
let o = this.options.foveation;
|
|
26106
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);
|
|
26107
|
-
let s = yield
|
|
26453
|
+
let s = yield kD(e, (n = this.options.referenceSpaceType) == null ? "local-floor" : n, { isAborted: () => this.endedDuringEnter });
|
|
26108
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;
|
|
26109
26455
|
try {
|
|
26110
26456
|
this.callbacks.onSessionStart(e, this.device);
|
|
@@ -26112,7 +26458,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26112
26458
|
console.error("[XR] onSessionStart 回调抛错", e);
|
|
26113
26459
|
}
|
|
26114
26460
|
} catch (e) {
|
|
26115
|
-
throw this.rollback(), this.endedDuringEnter ? /* @__PURE__ */ Error(
|
|
26461
|
+
throw this.rollback(), this.endedDuringEnter ? /* @__PURE__ */ Error(MD) : e;
|
|
26116
26462
|
}
|
|
26117
26463
|
}
|
|
26118
26464
|
});
|
|
@@ -26131,7 +26477,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26131
26477
|
var e;
|
|
26132
26478
|
let t = this._session;
|
|
26133
26479
|
if (this.entering) {
|
|
26134
|
-
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);
|
|
26135
26481
|
return;
|
|
26136
26482
|
}
|
|
26137
26483
|
this.entered && t && (this.teardown(), this.endQuietly(t));
|
|
@@ -26205,12 +26551,12 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26205
26551
|
this.firstFrameArrived || (this.firstFrameArrived = !0, (e = this.firstFrameWaiter) == null || e.resolve());
|
|
26206
26552
|
}
|
|
26207
26553
|
throwIfEnded() {
|
|
26208
|
-
if (this.endedDuringEnter) throw Error(
|
|
26554
|
+
if (this.endedDuringEnter) throw Error(MD);
|
|
26209
26555
|
}
|
|
26210
26556
|
waitFirstFrame() {
|
|
26211
26557
|
var e;
|
|
26212
26558
|
if (this.firstFrameArrived) return Promise.resolve();
|
|
26213
|
-
let t = (e = this.options.firstFrameTimeoutMs) == null ?
|
|
26559
|
+
let t = (e = this.options.firstFrameTimeoutMs) == null ? jD : e;
|
|
26214
26560
|
return new Promise((e, n) => {
|
|
26215
26561
|
let r = setTimeout(() => {
|
|
26216
26562
|
this.firstFrameWaiter = null, n(/* @__PURE__ */ Error(`等待首帧超时(${t}ms 内未收到首个 XRFrame)`));
|
|
@@ -26270,7 +26616,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26270
26616
|
rollback() {
|
|
26271
26617
|
var e;
|
|
26272
26618
|
let t = this._session;
|
|
26273
|
-
(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;
|
|
26274
26620
|
}
|
|
26275
26621
|
teardown() {
|
|
26276
26622
|
var e, t;
|
|
@@ -26290,7 +26636,7 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26290
26636
|
Promise.resolve(e.end()).catch(() => {});
|
|
26291
26637
|
} catch (e) {}
|
|
26292
26638
|
}
|
|
26293
|
-
},
|
|
26639
|
+
}, PD = {
|
|
26294
26640
|
Handedness: Object.freeze({
|
|
26295
26641
|
NONE: "none",
|
|
26296
26642
|
LEFT: "left",
|
|
@@ -26321,24 +26667,24 @@ var rD = 5e3, iD = "会话在进入过程中已结束", aD = class {
|
|
|
26321
26667
|
VISIBILITY: "visibility"
|
|
26322
26668
|
})
|
|
26323
26669
|
};
|
|
26324
|
-
function
|
|
26670
|
+
function FD(e) {
|
|
26325
26671
|
return Ti(this, void 0, void 0, function* () {
|
|
26326
26672
|
let t = yield fetch(e);
|
|
26327
26673
|
if (t.ok) return t.json();
|
|
26328
26674
|
throw Error(t.statusText);
|
|
26329
26675
|
});
|
|
26330
26676
|
}
|
|
26331
|
-
function
|
|
26677
|
+
function ID(e) {
|
|
26332
26678
|
return Ti(this, void 0, void 0, function* () {
|
|
26333
26679
|
if (!e) throw Error("No basePath supplied");
|
|
26334
|
-
return yield
|
|
26680
|
+
return yield FD(`${e}/profilesList.json`);
|
|
26335
26681
|
});
|
|
26336
26682
|
}
|
|
26337
|
-
function
|
|
26683
|
+
function LD(e, t) {
|
|
26338
26684
|
return Ti(this, arguments, void 0, function* (e, t, n = null, r = !0) {
|
|
26339
26685
|
if (!e) throw Error("No xrInputSource supplied");
|
|
26340
26686
|
if (!t) throw Error("No basePath supplied");
|
|
26341
|
-
let i = yield
|
|
26687
|
+
let i = yield ID(t), a;
|
|
26342
26688
|
if (e.profiles.some((e) => {
|
|
26343
26689
|
let n = i[e];
|
|
26344
26690
|
return n && (a = {
|
|
@@ -26356,7 +26702,7 @@ function lD(e, t) {
|
|
|
26356
26702
|
deprecated: !!e.deprecated
|
|
26357
26703
|
};
|
|
26358
26704
|
}
|
|
26359
|
-
let o = yield
|
|
26705
|
+
let o = yield FD(a.profilePath), s;
|
|
26360
26706
|
if (r) {
|
|
26361
26707
|
let t;
|
|
26362
26708
|
if (t = o.layouts[e.handedness], !t) throw Error(`No matching handedness, ${e.handedness}, in profile ${a.profileId}`);
|
|
@@ -26368,13 +26714,13 @@ function lD(e, t) {
|
|
|
26368
26714
|
};
|
|
26369
26715
|
});
|
|
26370
26716
|
}
|
|
26371
|
-
var
|
|
26717
|
+
var RD = {
|
|
26372
26718
|
xAxis: 0,
|
|
26373
26719
|
yAxis: 0,
|
|
26374
26720
|
button: 0,
|
|
26375
|
-
state:
|
|
26721
|
+
state: PD.ComponentState.DEFAULT
|
|
26376
26722
|
};
|
|
26377
|
-
function
|
|
26723
|
+
function zD(e = 0, t = 0) {
|
|
26378
26724
|
let n = e, r = t;
|
|
26379
26725
|
if (Math.sqrt(e * e + t * t) > 1) {
|
|
26380
26726
|
let i = Math.atan2(t, e);
|
|
@@ -26385,36 +26731,36 @@ function dD(e = 0, t = 0) {
|
|
|
26385
26731
|
normalizedYAxis: r * .5 + .5
|
|
26386
26732
|
};
|
|
26387
26733
|
}
|
|
26388
|
-
var
|
|
26734
|
+
var BD = class {
|
|
26389
26735
|
constructor(e) {
|
|
26390
|
-
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);
|
|
26391
26737
|
}
|
|
26392
26738
|
updateFromComponent({ xAxis: e, yAxis: t, button: n, state: r }) {
|
|
26393
|
-
let { normalizedXAxis: i, normalizedYAxis: a } =
|
|
26739
|
+
let { normalizedXAxis: i, normalizedYAxis: a } = zD(e, t);
|
|
26394
26740
|
switch (this.componentProperty) {
|
|
26395
|
-
case
|
|
26741
|
+
case PD.ComponentProperty.X_AXIS:
|
|
26396
26742
|
this.value = this.states.includes(r) ? i : .5;
|
|
26397
26743
|
break;
|
|
26398
|
-
case
|
|
26744
|
+
case PD.ComponentProperty.Y_AXIS:
|
|
26399
26745
|
this.value = this.states.includes(r) ? a : .5;
|
|
26400
26746
|
break;
|
|
26401
|
-
case
|
|
26747
|
+
case PD.ComponentProperty.BUTTON:
|
|
26402
26748
|
this.value = this.states.includes(r) ? n : 0;
|
|
26403
26749
|
break;
|
|
26404
|
-
case
|
|
26405
|
-
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);
|
|
26406
26752
|
break;
|
|
26407
26753
|
default: throw Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`);
|
|
26408
26754
|
}
|
|
26409
26755
|
}
|
|
26410
|
-
},
|
|
26756
|
+
}, VD = class {
|
|
26411
26757
|
constructor(e, t) {
|
|
26412
26758
|
if (!e || !t || !t.visualResponses || !t.gamepadIndices || Object.keys(t.gamepadIndices).length === 0) throw Error("Invalid arguments supplied");
|
|
26413
26759
|
this.id = e, this.type = t.type, this.rootNodeName = t.rootNodeName, this.touchPointNodeName = t.touchPointNodeName, this.visualResponses = {}, Object.keys(t.visualResponses).forEach((e) => {
|
|
26414
|
-
let n = new
|
|
26760
|
+
let n = new BD(t.visualResponses[e]);
|
|
26415
26761
|
this.visualResponses[e] = n;
|
|
26416
26762
|
}), this.gamepadIndices = Object.assign({}, t.gamepadIndices), this.values = {
|
|
26417
|
-
state:
|
|
26763
|
+
state: PD.ComponentState.DEFAULT,
|
|
26418
26764
|
button: this.gamepadIndices.button === void 0 ? void 0 : 0,
|
|
26419
26765
|
xAxis: this.gamepadIndices.xAxis === void 0 ? void 0 : 0,
|
|
26420
26766
|
yAxis: this.gamepadIndices.yAxis === void 0 ? void 0 : 0
|
|
@@ -26424,21 +26770,21 @@ var fD = class {
|
|
|
26424
26770
|
return Object.assign({ id: this.id }, this.values);
|
|
26425
26771
|
}
|
|
26426
26772
|
updateFromGamepad(e) {
|
|
26427
|
-
if (this.values.state =
|
|
26773
|
+
if (this.values.state = PD.ComponentState.DEFAULT, this.gamepadIndices.button !== void 0 && e.buttons.length > this.gamepadIndices.button) {
|
|
26428
26774
|
let t = e.buttons[this.gamepadIndices.button];
|
|
26429
|
-
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);
|
|
26430
26776
|
}
|
|
26431
|
-
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) => {
|
|
26432
26778
|
e.updateFromComponent(this.values);
|
|
26433
26779
|
});
|
|
26434
26780
|
}
|
|
26435
|
-
},
|
|
26781
|
+
}, HD = class {
|
|
26436
26782
|
constructor(e, t, n) {
|
|
26437
26783
|
if (!e) throw Error("No xrInputSource supplied");
|
|
26438
26784
|
if (!t) throw Error("No profile supplied");
|
|
26439
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) => {
|
|
26440
26786
|
let t = this.layoutDescription.components[e];
|
|
26441
|
-
this.components[e] = new
|
|
26787
|
+
this.components[e] = new VD(e, t);
|
|
26442
26788
|
}), this.updateFromGamepad();
|
|
26443
26789
|
}
|
|
26444
26790
|
get gripSpace() {
|
|
@@ -26458,7 +26804,7 @@ var fD = class {
|
|
|
26458
26804
|
e.updateFromGamepad(this.xrInputSource.gamepad);
|
|
26459
26805
|
});
|
|
26460
26806
|
}
|
|
26461
|
-
},
|
|
26807
|
+
}, UD = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", WD = "generic-trigger", GD = class extends r {
|
|
26462
26808
|
constructor() {
|
|
26463
26809
|
super(), this.motionController = null, this.envMap = null;
|
|
26464
26810
|
}
|
|
@@ -26471,21 +26817,21 @@ var fD = class {
|
|
|
26471
26817
|
super.updateMatrixWorld(e), this.motionController && (this.motionController.updateFromGamepad(), Object.values(this.motionController.components).forEach((e) => {
|
|
26472
26818
|
Object.values(e.visualResponses).forEach((e) => {
|
|
26473
26819
|
let { valueNode: t, minNode: n, maxNode: r, value: i, valueNodeProperty: a } = e;
|
|
26474
|
-
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)));
|
|
26475
26821
|
});
|
|
26476
26822
|
}));
|
|
26477
26823
|
}
|
|
26478
26824
|
};
|
|
26479
|
-
function
|
|
26825
|
+
function KD(e, r) {
|
|
26480
26826
|
Object.values(e.components).forEach((e) => {
|
|
26481
26827
|
let { type: a, touchPointNodeName: o, visualResponses: s } = e;
|
|
26482
|
-
if (a ===
|
|
26828
|
+
if (a === PD.ComponentType.TOUCHPAD) if (e.touchPointNode = r.getObjectByName(o), e.touchPointNode) {
|
|
26483
26829
|
let r = new t(new i(.001), new n({ color: 255 }));
|
|
26484
26830
|
e.touchPointNode.add(r);
|
|
26485
26831
|
} else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);
|
|
26486
26832
|
Object.values(s).forEach((e) => {
|
|
26487
26833
|
let { valueNodeName: t, minNodeName: n, maxNodeName: i, valueNodeProperty: a } = e;
|
|
26488
|
-
if (a ===
|
|
26834
|
+
if (a === PD.VisualResponseProperty.TRANSFORM) {
|
|
26489
26835
|
if (e.minNode = r.getObjectByName(n), e.maxNode = r.getObjectByName(i), !e.minNode) {
|
|
26490
26836
|
console.warn(`Could not find ${n} in the model`);
|
|
26491
26837
|
return;
|
|
@@ -26499,27 +26845,27 @@ function vD(e, r) {
|
|
|
26499
26845
|
});
|
|
26500
26846
|
});
|
|
26501
26847
|
}
|
|
26502
|
-
function
|
|
26503
|
-
|
|
26848
|
+
function qD(t, n) {
|
|
26849
|
+
KD(t.motionController, n), t.envMap && n.traverse((n) => {
|
|
26504
26850
|
n instanceof e.Mesh && n.isMesh && (n.material.envMap = t.envMap, n.material.needsUpdate = !0);
|
|
26505
26851
|
}), t.add(n);
|
|
26506
26852
|
}
|
|
26507
|
-
var
|
|
26853
|
+
var JD = class {
|
|
26508
26854
|
constructor(e = null) {
|
|
26509
|
-
this.gltfLoader = e, this.path =
|
|
26855
|
+
this.gltfLoader = e, this.path = UD, this._assetCache = {};
|
|
26510
26856
|
}
|
|
26511
26857
|
createControllerModel(e) {
|
|
26512
|
-
let t = new
|
|
26858
|
+
let t = new GD(), n = null;
|
|
26513
26859
|
return e.addEventListener("connected", (e) => {
|
|
26514
26860
|
let r = e.data;
|
|
26515
|
-
r.targetRayMode !== "tracked-pointer" || !r.gamepad ||
|
|
26516
|
-
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);
|
|
26517
26863
|
let a = this._assetCache[t.motionController.assetUrl];
|
|
26518
|
-
if (a) n = a.scene.clone(),
|
|
26864
|
+
if (a) n = a.scene.clone(), qD(t, n);
|
|
26519
26865
|
else {
|
|
26520
26866
|
if (!this.gltfLoader) throw Error("GLTFLoader not set.");
|
|
26521
26867
|
this.gltfLoader.load(t.motionController.assetUrl, (e) => {
|
|
26522
|
-
this._assetCache[t.motionController.assetUrl] = e, n = e.scene.clone(),
|
|
26868
|
+
this._assetCache[t.motionController.assetUrl] = e, n = e.scene.clone(), qD(t, n);
|
|
26523
26869
|
});
|
|
26524
26870
|
}
|
|
26525
26871
|
}).catch((e) => {
|
|
@@ -26529,7 +26875,7 @@ var bD = class {
|
|
|
26529
26875
|
t.motionController = null, t.remove(n), n = null;
|
|
26530
26876
|
}), t;
|
|
26531
26877
|
}
|
|
26532
|
-
},
|
|
26878
|
+
}, YD = class {
|
|
26533
26879
|
constructor() {
|
|
26534
26880
|
this.states = /* @__PURE__ */ new Map();
|
|
26535
26881
|
}
|
|
@@ -26619,14 +26965,14 @@ var bD = class {
|
|
|
26619
26965
|
let n = this.states.get(e);
|
|
26620
26966
|
n && (n.delete(t), n.size === 0 && this.states.delete(e));
|
|
26621
26967
|
}
|
|
26622
|
-
},
|
|
26968
|
+
}, XD = Object.assign(Object.assign({}, Ql(wE, ["maxLatitude", "minLatitude"])), {
|
|
26623
26969
|
referenceSpaceType: "local-floor",
|
|
26624
26970
|
foveation: 1,
|
|
26625
26971
|
showControllerModel: !0,
|
|
26626
26972
|
showPointerRay: !0,
|
|
26627
26973
|
deviceProfile: {}
|
|
26628
|
-
}),
|
|
26629
|
-
function
|
|
26974
|
+
}), ZD = 5, QD = 1e-4, $D = 1500;
|
|
26975
|
+
function eO() {
|
|
26630
26976
|
return { load(e, t) {
|
|
26631
26977
|
Xl.ajax(e, { responseType: "arraybuffer" }).then((t) => {
|
|
26632
26978
|
var n;
|
|
@@ -26640,7 +26986,7 @@ function ED() {
|
|
|
26640
26986
|
});
|
|
26641
26987
|
} };
|
|
26642
26988
|
}
|
|
26643
|
-
var
|
|
26989
|
+
var tO = class t extends TE {
|
|
26644
26990
|
static parseArgs(e) {
|
|
26645
26991
|
if (e instanceof t) return e;
|
|
26646
26992
|
let n = Object.assign(Object.assign({}, e), {
|
|
@@ -26659,15 +27005,15 @@ var DD = class t extends ZT {
|
|
|
26659
27005
|
super(s), this.controllerRayFilled = {
|
|
26660
27006
|
left: !1,
|
|
26661
27007
|
right: !1
|
|
26662
|
-
}, 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 = {
|
|
26663
27009
|
left: null,
|
|
26664
27010
|
right: null
|
|
26665
27011
|
}, this.gazeRayPool = null, this.mode = "XRPanorama";
|
|
26666
|
-
let c =
|
|
27012
|
+
let c = XD, l = (n = e.referenceSpaceType) == null ? c.referenceSpaceType : n, u = (r = e.foveation) == null ? c.foveation : r;
|
|
26667
27013
|
this.showControllerModel = (i = e.showControllerModel) == null ? c.showControllerModel : i, this.showPointerRay = (a = e.showPointerRay) == null ? c.showPointerRay : a, this.controllerRaycasters = {
|
|
26668
27014
|
left: this.createPickingRaycaster(),
|
|
26669
27015
|
right: this.createPickingRaycaster()
|
|
26670
|
-
}, this.gazeRaycaster = null, this.xrManager = new
|
|
27016
|
+
}, this.gazeRaycaster = null, this.xrManager = new ND(this.renderer, {
|
|
26671
27017
|
referenceSpaceType: l,
|
|
26672
27018
|
foveation: u,
|
|
26673
27019
|
deviceProfile: (o = e.deviceProfile) == null ? c.deviceProfile : o
|
|
@@ -26675,13 +27021,13 @@ var DD = class t extends ZT {
|
|
|
26675
27021
|
onSessionStart: (e, t) => {
|
|
26676
27022
|
this.emit("xr.session.start", $("xr.session.start", {
|
|
26677
27023
|
session: e,
|
|
26678
|
-
machineType:
|
|
27024
|
+
machineType: zC(t)
|
|
26679
27025
|
}));
|
|
26680
27026
|
},
|
|
26681
27027
|
onSessionEnd: (e) => {
|
|
26682
27028
|
this.emit("xr.session.end", $("xr.session.end", {
|
|
26683
27029
|
session: null,
|
|
26684
|
-
machineType:
|
|
27030
|
+
machineType: zC(e)
|
|
26685
27031
|
}));
|
|
26686
27032
|
},
|
|
26687
27033
|
onSessionEnding: () => {
|
|
@@ -26838,8 +27184,8 @@ var DD = class t extends ZT {
|
|
|
26838
27184
|
}
|
|
26839
27185
|
getControllerModelFactory() {
|
|
26840
27186
|
if (!this.controllerModelFactory) {
|
|
26841
|
-
let e = new
|
|
26842
|
-
e.gltfLoader =
|
|
27187
|
+
let e = new JD();
|
|
27188
|
+
e.gltfLoader = eO(), this.controllerModelFactory = e;
|
|
26843
27189
|
}
|
|
26844
27190
|
return this.controllerModelFactory;
|
|
26845
27191
|
}
|
|
@@ -26873,15 +27219,15 @@ var DD = class t extends ZT {
|
|
|
26873
27219
|
depthWrite: !1,
|
|
26874
27220
|
transparent: !0
|
|
26875
27221
|
}), a = new e.LineSegments(t, i);
|
|
26876
|
-
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;
|
|
26877
27223
|
} else !o && r.ray && (this.disposeRay(r.ray), r.ray = void 0);
|
|
26878
27224
|
}
|
|
26879
27225
|
updatePointerRayLength(e, t) {
|
|
26880
27226
|
for (let [n, r] of this.inputVisuals) {
|
|
26881
27227
|
let i = r.ray;
|
|
26882
27228
|
if (!i) continue;
|
|
26883
|
-
let a = n.handedness === "left" ? "left" : "right", o =
|
|
26884
|
-
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;
|
|
26885
27231
|
let s = i.geometry.getAttribute("position");
|
|
26886
27232
|
s.setZ(1, -o), s.needsUpdate = !0, r.rayLength = o;
|
|
26887
27233
|
}
|
|
@@ -26901,7 +27247,7 @@ var DD = class t extends ZT {
|
|
|
26901
27247
|
let i = $(e, {
|
|
26902
27248
|
session: this.xrManager.session,
|
|
26903
27249
|
buttons: t,
|
|
26904
|
-
machineType:
|
|
27250
|
+
machineType: zC(this.xrManager.device),
|
|
26905
27251
|
isFirst: n,
|
|
26906
27252
|
isFinal: r,
|
|
26907
27253
|
controllers: { raycaster: {
|
|
@@ -26950,7 +27296,7 @@ var DD = class t extends ZT {
|
|
|
26950
27296
|
this.intersectMesh.visible = !1, this.activePanoMesh = void 0, this.activeTime = void 0, this.updatePointerRayLength(null, null);
|
|
26951
27297
|
return;
|
|
26952
27298
|
}
|
|
26953
|
-
if (this.activePanoMesh && this.activeTime && t - this.activeTime >
|
|
27299
|
+
if (this.activePanoMesh && this.activeTime && t - this.activeTime > $D) {
|
|
26954
27300
|
let e = this.activePanoMesh, t = null;
|
|
26955
27301
|
return this.panoMeshes.forEach((n, r) => {
|
|
26956
27302
|
n === e && (t = r);
|
|
@@ -27066,7 +27412,7 @@ var DD = class t extends ZT {
|
|
|
27066
27412
|
onPinchGesture() {}
|
|
27067
27413
|
onMouseMove() {}
|
|
27068
27414
|
onMouseOut() {}
|
|
27069
|
-
},
|
|
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 {
|
|
27070
27416
|
static parseArgs(e) {
|
|
27071
27417
|
return e instanceof t ? e : super.parseArgs(e);
|
|
27072
27418
|
}
|
|
@@ -27078,7 +27424,7 @@ var DD = class t extends ZT {
|
|
|
27078
27424
|
} : {
|
|
27079
27425
|
workCode: d.workCode,
|
|
27080
27426
|
panoIndex: d.panoIndex
|
|
27081
|
-
}, 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();
|
|
27082
27428
|
if (c.initial.state.offset) y.copy(c.initial.state.offset);
|
|
27083
27429
|
else if (p) y.copy(p.position).applyMatrix4(p.work.transform);
|
|
27084
27430
|
else {
|
|
@@ -27174,9 +27520,9 @@ var DD = class t extends ZT {
|
|
|
27174
27520
|
let n = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z), r = [];
|
|
27175
27521
|
for (let e of this.works) {
|
|
27176
27522
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
27177
|
-
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);
|
|
27178
27524
|
}
|
|
27179
|
-
let i = Im(r, (e) =>
|
|
27525
|
+
let i = Im(r, (e) => iO.copy(e.position).applyMatrix4(e.work.transform).distanceTo(n));
|
|
27180
27526
|
this.currentPano = i ? {
|
|
27181
27527
|
workCode: i.work.workCode,
|
|
27182
27528
|
panoIndex: i.panoIndex
|
|
@@ -27185,7 +27531,7 @@ var DD = class t extends ZT {
|
|
|
27185
27531
|
panoIndex: 0
|
|
27186
27532
|
};
|
|
27187
27533
|
}
|
|
27188
|
-
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);
|
|
27189
27535
|
let o = this.works.getObserver(this.currentPano);
|
|
27190
27536
|
if (this.intersectMesh && this.intersectMesh.parent && o && o.position.y - o.standingPosition.y > 10) {
|
|
27191
27537
|
let e = q(this.camera.position.distanceTo(this.intersectMesh.position) * (2 * Math.tan(.5 * this.camera.fov / 180 * Math.PI)) / 5, .5);
|
|
@@ -27269,9 +27615,9 @@ var DD = class t extends ZT {
|
|
|
27269
27615
|
}, g = [];
|
|
27270
27616
|
for (let e of this.works) {
|
|
27271
27617
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
27272
|
-
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);
|
|
27273
27619
|
}
|
|
27274
|
-
let _ = Im(g, (e) =>
|
|
27620
|
+
let _ = Im(g, (e) => iO.copy(e.position).applyMatrix4(e.work.transform).distanceTo(c)), v = _ ? {
|
|
27275
27621
|
workCode: _.work.workCode,
|
|
27276
27622
|
panoIndex: _.panoIndex
|
|
27277
27623
|
} : {
|
|
@@ -27294,7 +27640,7 @@ var DD = class t extends ZT {
|
|
|
27294
27640
|
error: null
|
|
27295
27641
|
})), n.moveStartCallback && n.moveStartCallback(y), this.cameraMotion.set(h, p).catch(Y), this.locationMotion.set(m, p, f).then(() => {
|
|
27296
27642
|
for (let e of this.modelScene.children) e instanceof vb && e.show();
|
|
27297
|
-
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));
|
|
27298
27644
|
this.emit("pano.arrived", $("pano.arrived", {
|
|
27299
27645
|
options: n,
|
|
27300
27646
|
prevPano: b,
|
|
@@ -27328,16 +27674,16 @@ var DD = class t extends ZT {
|
|
|
27328
27674
|
}
|
|
27329
27675
|
}
|
|
27330
27676
|
if (r) {
|
|
27331
|
-
let n = new e.Vector3().copy(r.point).add(
|
|
27677
|
+
let n = new e.Vector3().copy(r.point).add(nO), i = [];
|
|
27332
27678
|
for (let e of this.works) {
|
|
27333
27679
|
let t = this.modelScene.models.find((t) => t.work === e);
|
|
27334
|
-
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);
|
|
27335
27681
|
}
|
|
27336
|
-
let [a, o] = Im(i, (e) =>
|
|
27337
|
-
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);
|
|
27338
27684
|
} else this.emit("gesture.tap", t), t.defaultPrevented || this.cameraBounce();
|
|
27339
27685
|
}
|
|
27340
|
-
},
|
|
27686
|
+
}, sO = new e.Box3(), cO = new e.Vector3(), lO = .5, uO = Math.PI / 7, dO = {
|
|
27341
27687
|
defaultLongitude: Math.PI / 4,
|
|
27342
27688
|
defaultLatitude: Math.PI / 4,
|
|
27343
27689
|
defaultDistance: 150,
|
|
@@ -27345,28 +27691,28 @@ var DD = class t extends ZT {
|
|
|
27345
27691
|
minLatitude: 0,
|
|
27346
27692
|
cameraType: "auto",
|
|
27347
27693
|
cameraFence: null,
|
|
27348
|
-
intersectMeshCreator: () => new
|
|
27349
|
-
},
|
|
27350
|
-
Floorplan:
|
|
27351
|
-
Topview:
|
|
27352
|
-
Panorama:
|
|
27353
|
-
VRPanorama:
|
|
27354
|
-
XRPanorama:
|
|
27355
|
-
Model:
|
|
27356
|
-
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 {
|
|
27357
27703
|
static parseArgs(e) {
|
|
27358
27704
|
var n, r, i, a, o, s, c, l;
|
|
27359
27705
|
if (e instanceof t) return e;
|
|
27360
27706
|
let u = super.parseArgs(e);
|
|
27361
27707
|
return Object.assign(Object.assign({}, u), {
|
|
27362
|
-
defaultLongitude: (n = e.defaultLongitude) == null ?
|
|
27363
|
-
defaultLatitude: (r = e.defaultLatitude) == null ?
|
|
27364
|
-
defaultDistance: (i = e.defaultDistance) == null ?
|
|
27365
|
-
maxLatitude: (a = e.maxLatitude) == null ?
|
|
27366
|
-
minLatitude: (o = e.minLatitude) == null ?
|
|
27367
|
-
cameraType: (s = e.cameraType) == null ?
|
|
27368
|
-
cameraFence: (c = e.cameraFence) == null ?
|
|
27369
|
-
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
|
|
27370
27716
|
});
|
|
27371
27717
|
}
|
|
27372
27718
|
static distanceFromModel(e, t, n) {
|
|
@@ -27383,7 +27729,7 @@ var DD = class t extends ZT {
|
|
|
27383
27729
|
} : {
|
|
27384
27730
|
workCode: m.workCode,
|
|
27385
27731
|
panoIndex: m.panoIndex
|
|
27386
|
-
}, 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;
|
|
27387
27733
|
if (p.offset) x.copy(p.offset);
|
|
27388
27734
|
else {
|
|
27389
27735
|
let e = d.getObserver(h);
|
|
@@ -27492,7 +27838,7 @@ var DD = class t extends ZT {
|
|
|
27492
27838
|
e && e.map !== (t == null ? void 0 : t.map) && e.map.dispose(), r.progress = 1, r.pano0 = r.pano1 = t;
|
|
27493
27839
|
}
|
|
27494
27840
|
let a = 0;
|
|
27495
|
-
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) {
|
|
27496
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));
|
|
27497
27843
|
if (this.cameraFence.distanceToPoint(n) > .01) {
|
|
27498
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), {
|
|
@@ -27550,7 +27896,7 @@ var DD = class t extends ZT {
|
|
|
27550
27896
|
userAction: this.userAction
|
|
27551
27897
|
}));
|
|
27552
27898
|
}, (e) => {
|
|
27553
|
-
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));
|
|
27554
27900
|
this.emit("initAnimation.end", $("initAnimation.end", {
|
|
27555
27901
|
state: t,
|
|
27556
27902
|
userAction: this.userAction
|
|
@@ -27566,9 +27912,9 @@ var DD = class t extends ZT {
|
|
|
27566
27912
|
let n = [];
|
|
27567
27913
|
for (let t of this.works) {
|
|
27568
27914
|
let r = this.modelScene.models.find((e) => e.work === t);
|
|
27569
|
-
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);
|
|
27570
27916
|
}
|
|
27571
|
-
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);
|
|
27572
27918
|
return r && i < Math.max(r.standingPosition.distanceTo(this.camera.position) / 5, 10) ? r : null;
|
|
27573
27919
|
}
|
|
27574
27920
|
coordinatesForOffset(t) {
|
|
@@ -27622,7 +27968,7 @@ var DD = class t extends ZT {
|
|
|
27622
27968
|
fixFinalState(t) {
|
|
27623
27969
|
if (this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho === 1) return;
|
|
27624
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);
|
|
27625
|
-
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;
|
|
27626
27972
|
let a;
|
|
27627
27973
|
if (a = this.modelScene.intersectRaycaster(i)[0], a && a.distance < this.camera.near && (a = void 0), !a) {
|
|
27628
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());
|
|
@@ -27649,7 +27995,7 @@ var DD = class t extends ZT {
|
|
|
27649
27995
|
face: null
|
|
27650
27996
|
};
|
|
27651
27997
|
}
|
|
27652
|
-
a.distance >= this.camera.near &&
|
|
27998
|
+
a.distance >= this.camera.near && xw(t.distance, a.distance) && (t.distance = a.distance, t.offset = a.point);
|
|
27653
27999
|
}
|
|
27654
28000
|
onPanGesture(t) {
|
|
27655
28001
|
this.userAction = t.userAction, this.stopMomentumMovement(), this.hideIntersectMesh();
|
|
@@ -27692,7 +28038,7 @@ var DD = class t extends ZT {
|
|
|
27692
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();
|
|
27693
28039
|
o *= Math.tan(this.camera.pose.fov / 2 * Math.PI / 180);
|
|
27694
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();
|
|
27695
|
-
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);
|
|
27696
28042
|
let d = Object.assign(Object.assign({}, this.currentPano), {
|
|
27697
28043
|
mode: this.mode,
|
|
27698
28044
|
longitude: this.camera.pose.longitude,
|
|
@@ -27713,7 +28059,7 @@ var DD = class t extends ZT {
|
|
|
27713
28059
|
z: d.offset.z
|
|
27714
28060
|
}, 0).catch(Y)), t.isFinal) {
|
|
27715
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();
|
|
27716
|
-
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, {
|
|
27717
28063
|
longitude: 0,
|
|
27718
28064
|
latitude: 0,
|
|
27719
28065
|
x: s.x,
|
|
@@ -27772,7 +28118,7 @@ var DD = class t extends ZT {
|
|
|
27772
28118
|
return;
|
|
27773
28119
|
}
|
|
27774
28120
|
if (i === void 0) return;
|
|
27775
|
-
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;
|
|
27776
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)) {
|
|
27777
28123
|
if (!("__fixFinalState" in n)) {
|
|
27778
28124
|
let e = n.state;
|
|
@@ -27838,7 +28184,7 @@ var DD = class t extends ZT {
|
|
|
27838
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());
|
|
27839
28185
|
o && (r += o.distanceTo(i));
|
|
27840
28186
|
let s = Math.max(this.locationMotion.value.distance - this.camera.near, 0), c = n.center.delta / 10 * Math.max(s / 5, .1);
|
|
27841
|
-
if (s <= r || c > 0) if (this.locationMotion.value.distance - c >=
|
|
28187
|
+
if (s <= r || c > 0) if (this.locationMotion.value.distance - c >= lO) {
|
|
27842
28188
|
let e = this.locationMotion.value.distance - c;
|
|
27843
28189
|
n.state.distance = e;
|
|
27844
28190
|
} else {
|
|
@@ -27952,7 +28298,7 @@ var DD = class t extends ZT {
|
|
|
27952
28298
|
return;
|
|
27953
28299
|
}
|
|
27954
28300
|
this.pendingTextureId = null, u.name = p;
|
|
27955
|
-
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), _ = {
|
|
27956
28302
|
panoId: o,
|
|
27957
28303
|
map: u,
|
|
27958
28304
|
mapSize: f,
|
|
@@ -27999,18 +28345,18 @@ var DD = class t extends ZT {
|
|
|
27999
28345
|
this.intersectMesh.visible === !0 && (this.intersectMesh.visible = !1, this.needsRender = !0);
|
|
28000
28346
|
}
|
|
28001
28347
|
}
|
|
28002
|
-
},
|
|
28003
|
-
Floorplan:
|
|
28004
|
-
Topview:
|
|
28005
|
-
Panorama:
|
|
28006
|
-
VRPanorama:
|
|
28007
|
-
XRPanorama:
|
|
28008
|
-
Model:
|
|
28009
|
-
Mapview:
|
|
28010
|
-
},
|
|
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(",");
|
|
28011
28357
|
//#endregion
|
|
28012
28358
|
//#region build/five/application/events-legacy.js
|
|
28013
|
-
function
|
|
28359
|
+
function hO(e) {
|
|
28014
28360
|
e.on("initAnimation.start", (t) => {
|
|
28015
28361
|
e.emit("initAnimationWillStart", t.state.panoIndex, t.state, t.userAction);
|
|
28016
28362
|
}), e.on("initAnimation.end", (t) => {
|
|
@@ -28152,7 +28498,7 @@ function VD(e) {
|
|
|
28152
28498
|
}
|
|
28153
28499
|
//#endregion
|
|
28154
28500
|
//#region build/five/application/generateDefaultVideoElement.js
|
|
28155
|
-
function
|
|
28501
|
+
function gO() {
|
|
28156
28502
|
if (typeof window < "u") {
|
|
28157
28503
|
let e = document.createElement("video");
|
|
28158
28504
|
e.loop = !0, e.autoplay = !0, e.playsInline = !0, e.muted = !0, e.crossOrigin = "";
|
|
@@ -28164,7 +28510,7 @@ function HD() {
|
|
|
28164
28510
|
}
|
|
28165
28511
|
//#endregion
|
|
28166
28512
|
//#region build/five/application/initLights.js
|
|
28167
|
-
function
|
|
28513
|
+
function _O() {
|
|
28168
28514
|
let t = new e.Group();
|
|
28169
28515
|
t.name = "internalLights";
|
|
28170
28516
|
{
|
|
@@ -28187,7 +28533,7 @@ function UD() {
|
|
|
28187
28533
|
}
|
|
28188
28534
|
//#endregion
|
|
28189
28535
|
//#region build/five/application/getViewportScale.js
|
|
28190
|
-
function
|
|
28536
|
+
function vO(e) {
|
|
28191
28537
|
var t, n;
|
|
28192
28538
|
let r = {}, i = e.split(/(\;|\,)/);
|
|
28193
28539
|
for (let e of i) {
|
|
@@ -28196,14 +28542,14 @@ function WD(e) {
|
|
|
28196
28542
|
}
|
|
28197
28543
|
return r;
|
|
28198
28544
|
}
|
|
28199
|
-
function
|
|
28545
|
+
function yO() {
|
|
28200
28546
|
var e;
|
|
28201
28547
|
if (typeof document < "u") {
|
|
28202
28548
|
let t = document.getElementsByTagName("meta");
|
|
28203
28549
|
for (let n = 0; n < t.length; n++) {
|
|
28204
28550
|
let r = t[n];
|
|
28205
28551
|
if (r.getAttribute("name") === "viewport") {
|
|
28206
|
-
let t =
|
|
28552
|
+
let t = vO((e = r.getAttribute("content")) == null ? "" : e), n = Number(t["initial-scale"]);
|
|
28207
28553
|
if (!isNaN(n)) return n;
|
|
28208
28554
|
}
|
|
28209
28555
|
}
|
|
@@ -28212,7 +28558,7 @@ function GD() {
|
|
|
28212
28558
|
}
|
|
28213
28559
|
//#endregion
|
|
28214
28560
|
//#region build/five/utils/requestPermission.js
|
|
28215
|
-
function
|
|
28561
|
+
function bO() {
|
|
28216
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) => {
|
|
28217
28563
|
if (e == "granted") return Promise.resolve();
|
|
28218
28564
|
{
|
|
@@ -28221,7 +28567,7 @@ function KD() {
|
|
|
28221
28567
|
}
|
|
28222
28568
|
}) : Promise.resolve();
|
|
28223
28569
|
}
|
|
28224
|
-
function
|
|
28570
|
+
function xO() {
|
|
28225
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)));
|
|
28226
28572
|
{
|
|
28227
28573
|
let e = /* @__PURE__ */ Error("Request XR Permission denied.");
|
|
@@ -28230,9 +28576,9 @@ function qD() {
|
|
|
28230
28576
|
}
|
|
28231
28577
|
//#endregion
|
|
28232
28578
|
//#region build/five/application/five.js
|
|
28233
|
-
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 {
|
|
28234
28580
|
static get version() {
|
|
28235
|
-
return "1.0.0-alpha.
|
|
28581
|
+
return "1.0.0-alpha.9";
|
|
28236
28582
|
}
|
|
28237
28583
|
static get dracoPath() {
|
|
28238
28584
|
return Uf.decoderPath;
|
|
@@ -28254,7 +28600,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28254
28600
|
}
|
|
28255
28601
|
constructor(t = {}) {
|
|
28256
28602
|
var n, r, i, a, o, s, c, l, u, d, f, p;
|
|
28257
|
-
if (super(), this.pbmGaussianSplattingRenderMesh = null, this.fiveId = gn(),
|
|
28603
|
+
if (super(), this.pbmGaussianSplattingRenderMesh = null, this.fiveId = gn(), NO[this.fiveId] = this, this.currentUpdateArgs = {
|
|
28258
28604
|
time: J(),
|
|
28259
28605
|
args: []
|
|
28260
28606
|
}, this.currentMode = "Panorama", this.pano = {
|
|
@@ -28271,14 +28617,14 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28271
28617
|
}, this.fps = {
|
|
28272
28618
|
testCount: 0,
|
|
28273
28619
|
testTime: J()
|
|
28274
|
-
}, 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;
|
|
28275
28621
|
else try {
|
|
28276
|
-
this.renderer = new
|
|
28622
|
+
this.renderer = new UC({
|
|
28277
28623
|
outputType: this.enableHDR ? e.HalfFloatType : void 0,
|
|
28278
28624
|
logarithmicDepthBuffer: t.logarithmicDepthBuffer,
|
|
28279
28625
|
forceWebGL: (u = t.forceWebGL) == null ? !1 : u
|
|
28280
28626
|
});
|
|
28281
|
-
let n =
|
|
28627
|
+
let n = yO();
|
|
28282
28628
|
this.renderer.setPixelRatio(n === 1 ? window.devicePixelRatio : 1), this.renderer.setSize(512, 512), this.renderer.setClearColor(this.backgroundColor, this.backgroundAlpha);
|
|
28283
28629
|
} catch (e) {
|
|
28284
28630
|
let t = e instanceof Error ? e : Error(String(e));
|
|
@@ -28292,7 +28638,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28292
28638
|
bottom: 0,
|
|
28293
28639
|
width: 1,
|
|
28294
28640
|
height: 1
|
|
28295
|
-
}, 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) => {
|
|
28296
28642
|
var i;
|
|
28297
28643
|
this.emit("network.resource", $("network.resource", {
|
|
28298
28644
|
source: e,
|
|
@@ -28300,17 +28646,17 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28300
28646
|
requestState: n,
|
|
28301
28647
|
detail: r
|
|
28302
28648
|
})), (i = this.analysis) == null || i.network(this.works, e, t, n, r);
|
|
28303
|
-
}), 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) => {
|
|
28304
28650
|
this.bindModel(e.model);
|
|
28305
28651
|
}), this.scene.add(this.modelScene);
|
|
28306
|
-
let [m] = this.modelScene.setModels(
|
|
28652
|
+
let [m] = this.modelScene.setModels(MO, { forceReplaceImmediately: !0 });
|
|
28307
28653
|
Q(m, "loaded", {
|
|
28308
28654
|
get() {
|
|
28309
28655
|
return !1;
|
|
28310
28656
|
},
|
|
28311
28657
|
set(e) {}
|
|
28312
|
-
}), this.videoTexture = new e.VideoTexture(t.videoInstance ||
|
|
28313
|
-
let h =
|
|
28658
|
+
}), this.videoTexture = new e.VideoTexture(t.videoInstance || gO());
|
|
28659
|
+
let h = _O();
|
|
28314
28660
|
this.scene.add(h), this.state = {
|
|
28315
28661
|
mode: this.currentMode,
|
|
28316
28662
|
workCode: this.pano.workCode,
|
|
@@ -28328,16 +28674,16 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28328
28674
|
}, _ = () => {
|
|
28329
28675
|
this.needsRender = !0;
|
|
28330
28676
|
}, v = () => {
|
|
28331
|
-
this.renderer instanceof
|
|
28677
|
+
this.renderer instanceof UC && this.renderer.reconfigureContext(), this.needsRender = !0;
|
|
28332
28678
|
}, y = () => {
|
|
28333
28679
|
typeof document < "u" && document.visibilityState === "visible" && v();
|
|
28334
28680
|
}, b = () => {
|
|
28335
28681
|
v();
|
|
28336
28682
|
};
|
|
28337
|
-
if (this.renderer instanceof
|
|
28683
|
+
if (this.renderer instanceof UC && (this.renderer.onDeviceLostCallback = () => {
|
|
28338
28684
|
v();
|
|
28339
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 = () => {
|
|
28340
|
-
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);
|
|
28341
28687
|
}, this.loadWorkTask = this.prepare(), this.plugins = {}, t.plugins && t.plugins.length) {
|
|
28342
28688
|
for (let e of t.plugins) if (typeof e == "function") e(this);
|
|
28343
28689
|
else if (Array.isArray(e)) {
|
|
@@ -28348,7 +28694,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28348
28694
|
}
|
|
28349
28695
|
}
|
|
28350
28696
|
}
|
|
28351
|
-
|
|
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);
|
|
28352
28698
|
}
|
|
28353
28699
|
get ident() {
|
|
28354
28700
|
return this.fiveId;
|
|
@@ -28362,11 +28708,11 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28362
28708
|
dispose() {
|
|
28363
28709
|
var t;
|
|
28364
28710
|
if (this.destroyed === !0) return;
|
|
28365
|
-
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);
|
|
28366
28712
|
let n = this.getElement();
|
|
28367
28713
|
n && n.parentNode && n.parentNode.removeChild(n);
|
|
28368
28714
|
let r = this.modelScene.parameter;
|
|
28369
|
-
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();
|
|
28370
28716
|
}
|
|
28371
28717
|
setViewport(e) {
|
|
28372
28718
|
Object.assign(this.viewport, e), this.needsRender = !0;
|
|
@@ -28386,7 +28732,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28386
28732
|
}
|
|
28387
28733
|
appendTo(e, t = {}) {
|
|
28388
28734
|
if (!this.renderer) return;
|
|
28389
|
-
if (!(this.renderer instanceof
|
|
28735
|
+
if (!(this.renderer instanceof UC)) {
|
|
28390
28736
|
this.throwError(/* @__PURE__ */ Error("cannot call appendTo method when render a external renderer"));
|
|
28391
28737
|
return;
|
|
28392
28738
|
}
|
|
@@ -28401,7 +28747,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28401
28747
|
if (!this.renderer) return;
|
|
28402
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;
|
|
28403
28749
|
if (l = Math.max(1, l), u = Math.max(1, u), !t) {
|
|
28404
|
-
let e =
|
|
28750
|
+
let e = yO(), n = typeof window < "u" ? window.devicePixelRatio : 1;
|
|
28405
28751
|
if (t = (i = e === 1 ? n : 1) == null ? 1 : i, t > 1) {
|
|
28406
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);
|
|
28407
28753
|
e > n && (t = Math.max(t / e * n, 1), t = Math.floor(t * 100) / 100);
|
|
@@ -28435,7 +28781,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28435
28781
|
return this.controller.updateCameraWithKeyframes(e, t, n);
|
|
28436
28782
|
}
|
|
28437
28783
|
get works() {
|
|
28438
|
-
return
|
|
28784
|
+
return jO.get(this) || MO;
|
|
28439
28785
|
}
|
|
28440
28786
|
get work() {
|
|
28441
28787
|
return this.works[0];
|
|
@@ -28451,7 +28797,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28451
28797
|
}
|
|
28452
28798
|
load(e, t, n, r = !0) {
|
|
28453
28799
|
if (!this.renderer) throw Error("renderer is not initialized");
|
|
28454
|
-
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));
|
|
28455
28801
|
return this.loadWorkTask = i.catch((e) => {
|
|
28456
28802
|
this.throwError(e);
|
|
28457
28803
|
}), i;
|
|
@@ -28459,7 +28805,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28459
28805
|
load_(n, r, i, a = !0) {
|
|
28460
28806
|
var o, s, c, l, u, d, f, p, m, h;
|
|
28461
28807
|
let g = {};
|
|
28462
|
-
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"));
|
|
28463
28809
|
let _ = {};
|
|
28464
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);
|
|
28465
28811
|
let v = [];
|
|
@@ -28473,7 +28819,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28473
28819
|
return this.throwError(e), Promise.reject(e);
|
|
28474
28820
|
}
|
|
28475
28821
|
for (let e of y) this.bindWorkFetcher(e);
|
|
28476
|
-
r === void 0 && (r = "inherit"), r === "inherit" && this.works ===
|
|
28822
|
+
r === void 0 && (r = "inherit"), r === "inherit" && this.works === MO && (r = "initial");
|
|
28477
28823
|
let b = this.currentMode, x = y.initial, S = x.work.observers[0], C = S ? {
|
|
28478
28824
|
workCode: S.work.workCode,
|
|
28479
28825
|
panoIndex: S.panoIndex
|
|
@@ -28544,7 +28890,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28544
28890
|
duration: E,
|
|
28545
28891
|
effect: D,
|
|
28546
28892
|
userAction: a
|
|
28547
|
-
} }, this.commonParams()), this.controllerInits[e]), c =
|
|
28893
|
+
} }, this.commonParams()), this.controllerInits[e]), c = fO[o.mode].initAnimationEndState(s);
|
|
28548
28894
|
if (this.controller && b === e) this.controller.updateWork(y, c, {
|
|
28549
28895
|
effect: D,
|
|
28550
28896
|
duration: E
|
|
@@ -28552,7 +28898,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28552
28898
|
else {
|
|
28553
28899
|
if (this.controller) this.controller.destroy();
|
|
28554
28900
|
else {
|
|
28555
|
-
let t =
|
|
28901
|
+
let t = fO[e].initAnimationEndState(s);
|
|
28556
28902
|
this.camera.setFromPose(t), this.emit("camera.update", $("camera.update", {
|
|
28557
28903
|
state: this.getCurrentState(),
|
|
28558
28904
|
userAction: a
|
|
@@ -28573,10 +28919,10 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28573
28919
|
}
|
|
28574
28920
|
this.state.workCode = this.pano.workCode, this.state.panoIndex = this.pano.panoIndex, this.updateTime(this.currentUpdateArgs.time, 0, ...this.currentUpdateArgs.args);
|
|
28575
28921
|
};
|
|
28576
|
-
|
|
28922
|
+
jO.set(this, y);
|
|
28577
28923
|
let k = Promise.resolve();
|
|
28578
28924
|
if (w === t.Mode.Floorplan || w === t.Mode.Topview || w === t.Mode.Mapview || w === t.Mode.Model) {
|
|
28579
|
-
this.modelScene.loaded === !1 && (this.camera.setFromPose(T),
|
|
28925
|
+
this.modelScene.loaded === !1 && (this.camera.setFromPose(T), Aw(this.state, this.camera.pose));
|
|
28580
28926
|
let e = this.modelScene.setModels(y, _);
|
|
28581
28927
|
k = Promise.all(e.map((e) => e.loadedReady)).then(() => {
|
|
28582
28928
|
this.needsRender = !0, O(w, C, T), this.emit("camera.update", $("camera.update", {
|
|
@@ -28624,12 +28970,12 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28624
28970
|
pano0: null,
|
|
28625
28971
|
pano1: null,
|
|
28626
28972
|
modelAlpha: 1
|
|
28627
|
-
}),
|
|
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 = {
|
|
28628
28974
|
workCode: "",
|
|
28629
28975
|
panoIndex: 0
|
|
28630
28976
|
}, this.camera.setFromPose({
|
|
28631
28977
|
distance: 0,
|
|
28632
|
-
fov:
|
|
28978
|
+
fov: CO,
|
|
28633
28979
|
longitude: 0,
|
|
28634
28980
|
latitude: 0,
|
|
28635
28981
|
offset: new e.Vector3(0, 0, 0)
|
|
@@ -28678,7 +29024,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28678
29024
|
duration: f,
|
|
28679
29025
|
effect: p,
|
|
28680
29026
|
userAction: i
|
|
28681
|
-
} }, this.commonParams()), this.controllerInits[e]), a =
|
|
29027
|
+
} }, this.commonParams()), this.controllerInits[e]), a = fO[e].initAnimationEndState(r), o = $("mode.change.request", {
|
|
28682
29028
|
prevMode: this.currentMode,
|
|
28683
29029
|
mode: e,
|
|
28684
29030
|
state: a,
|
|
@@ -28697,22 +29043,22 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28697
29043
|
}
|
|
28698
29044
|
o();
|
|
28699
29045
|
}, v = Bu.shared.getContext();
|
|
28700
|
-
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) => {
|
|
28701
29047
|
let t = e instanceof Error ? e : Error(String(e));
|
|
28702
29048
|
this.exitFullscreen(), this.throwError(t), s(t);
|
|
28703
29049
|
});
|
|
28704
29050
|
else if (e === t.Mode.XRPanorama) {
|
|
28705
|
-
if (!
|
|
29051
|
+
if (!ND.isBackendXRCapable(this.renderer)) {
|
|
28706
29052
|
let e = /* @__PURE__ */ Error("XRPanorama 需要 WebGL2 回落后端。请在 new Five() 时传入 { forceWebGL: true }。后端在运行时无法切换,设备检测必须发生在 new Five() 之前。");
|
|
28707
29053
|
this.throwError(e), s(e);
|
|
28708
29054
|
return;
|
|
28709
29055
|
}
|
|
28710
|
-
if (!
|
|
29056
|
+
if (!ND.isBrowserXRCapable()) {
|
|
28711
29057
|
let e = /* @__PURE__ */ Error("当前浏览器不支持 WebXR(navigator.xr 不存在)。");
|
|
28712
29058
|
this.throwError(e), s(e);
|
|
28713
29059
|
return;
|
|
28714
29060
|
}
|
|
28715
|
-
|
|
29061
|
+
xO().then((e) => {
|
|
28716
29062
|
Bu.shared.setContext(e), a = !0;
|
|
28717
29063
|
try {
|
|
28718
29064
|
_();
|
|
@@ -28734,10 +29080,10 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28734
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;
|
|
28735
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 : _;
|
|
28736
29082
|
let x = this.helperVisible, S = this.modelScene.parameter.modelAlpha;
|
|
28737
|
-
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);
|
|
28738
29084
|
let C = this.getPixelsRenderTarget;
|
|
28739
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);
|
|
28740
|
-
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();
|
|
28741
29087
|
this.renderer.autoClear = !0, this.renderer.autoClearColor = !0, this.renderer.autoClearDepth = !0, this.renderer.autoClearStencil = !0, this.renderer.setScissorTest(!1);
|
|
28742
29088
|
let j = this.scene.background;
|
|
28743
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);
|
|
@@ -28770,9 +29116,9 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28770
29116
|
if (!t) return;
|
|
28771
29117
|
let n = t.getRenderTarget();
|
|
28772
29118
|
t.setRenderTarget(null);
|
|
28773
|
-
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();
|
|
28774
29120
|
t.autoClear = !0, t.autoClearColor = !0, t.autoClearDepth = !0, t.autoClearStencil = !0;
|
|
28775
|
-
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);
|
|
28776
29122
|
t.setClearColor(this.backgroundColor, this.backgroundAlpha), t.setViewport(p, m, h, g), t.setScissor(p, m, h, g);
|
|
28777
29123
|
let _ = this.viewport.bottom !== 0 || this.viewport.left !== 0 || this.viewport.width !== 1 || this.viewport.height !== 1;
|
|
28778
29124
|
t.setScissorTest(_);
|
|
@@ -28795,8 +29141,8 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28795
29141
|
}, !0, 0, 10);
|
|
28796
29142
|
}
|
|
28797
29143
|
if (this.camera.autoNearFar) {
|
|
28798
|
-
|
|
28799
|
-
let t =
|
|
29144
|
+
EO.makeEmpty(), EO.expandByObject(this.modelScene.boundingMesh);
|
|
29145
|
+
let t = EO.getBoundingSphere(TO), n = t.radius * 2;
|
|
28800
29146
|
t.containsPoint(this.camera.position) || (n = this.camera.position.distanceTo(t.center) + t.radius);
|
|
28801
29147
|
let r = q(n / 500, .001, .1), i = q(n, 800);
|
|
28802
29148
|
this.camera.near !== r && (this.camera.near = r), this.camera.far !== i && (this.camera.far = i), this.camera.updateTime(e);
|
|
@@ -28805,14 +29151,14 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28805
29151
|
let e = this.modelScene.visible;
|
|
28806
29152
|
this.modelScene.visible = !1, this.scene.update(this.renderer, this.camera), this.modelScene.visible = e;
|
|
28807
29153
|
}
|
|
28808
|
-
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;
|
|
28809
29155
|
let r = $("render.prepare", { needsRender: this.needsRender });
|
|
28810
29156
|
this.emit("render.prepare", r), r.defaultPrevented && (this.needsRender = !1);
|
|
28811
29157
|
let i = this.needsRender;
|
|
28812
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));
|
|
28813
29159
|
}
|
|
28814
29160
|
pause() {
|
|
28815
|
-
this.paused = !0, this.renderer && this.renderer instanceof
|
|
29161
|
+
this.paused = !0, this.renderer && this.renderer instanceof UC && this.renderer.clear(!0, !0, !0);
|
|
28816
29162
|
}
|
|
28817
29163
|
play() {
|
|
28818
29164
|
this.needsRender = !0, this.paused = !1;
|
|
@@ -28930,7 +29276,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28930
29276
|
duration: this.modeChangeDuration,
|
|
28931
29277
|
effect: "fly",
|
|
28932
29278
|
userAction: !1
|
|
28933
|
-
} }, this.commonParams()), this.controllerInits[h]), i =
|
|
29279
|
+
} }, this.commonParams()), this.controllerInits[h]), i = fO[h].initAnimationEndState(r);
|
|
28934
29280
|
g = i.longitude, _ = i.latitude, v = i.fov, y = i.offset, b = i.distance;
|
|
28935
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;
|
|
28936
29282
|
let x = {
|
|
@@ -28946,7 +29292,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28946
29292
|
this.emit("state.set", $("state.set", {
|
|
28947
29293
|
userAction: r,
|
|
28948
29294
|
state: x
|
|
28949
|
-
})),
|
|
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", {
|
|
28950
29296
|
userAction: r,
|
|
28951
29297
|
state: this.state
|
|
28952
29298
|
})), (p = this.analysis) == null || p.state(this.works, this.state)));
|
|
@@ -28968,8 +29314,8 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28968
29314
|
return this.changeMode(this.state.mode, e, this.modeChangeDuration, this.controller.userAction), !0;
|
|
28969
29315
|
}
|
|
28970
29316
|
if (!this.controller.isReady()) return !1;
|
|
28971
|
-
if (this.controller instanceof
|
|
28972
|
-
if (
|
|
29317
|
+
if (this.controller instanceof fO.Model) {
|
|
29318
|
+
if (Cw(this.camera.pose.offset, this.state.offset)) {
|
|
28973
29319
|
let e = {
|
|
28974
29320
|
longitude: this.state.longitude,
|
|
28975
29321
|
latitude: this.state.latitude,
|
|
@@ -28994,7 +29340,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
28994
29340
|
return this.controller.moveToPano(e, t, !1), !0;
|
|
28995
29341
|
}
|
|
28996
29342
|
}
|
|
28997
|
-
if (this.controller instanceof
|
|
29343
|
+
if (this.controller instanceof fO.Floorplan || this.controller instanceof fO.Topview || this.controller instanceof fO.Mapview) {
|
|
28998
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 ? {
|
|
28999
29345
|
longitude: this.state.longitude,
|
|
29000
29346
|
latitude: this.state.latitude
|
|
@@ -29005,7 +29351,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29005
29351
|
longitude: this.state.longitude,
|
|
29006
29352
|
latitude: this.state.latitude
|
|
29007
29353
|
}, n);
|
|
29008
|
-
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)) {
|
|
29009
29355
|
let e = {
|
|
29010
29356
|
x: u.x,
|
|
29011
29357
|
y: u.y,
|
|
@@ -29027,7 +29373,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29027
29373
|
longitude: this.state.longitude,
|
|
29028
29374
|
latitude: this.state.latitude
|
|
29029
29375
|
}, t), o = this.state.distance, s = new e.Vector3().copy(this.state.offset);
|
|
29030
|
-
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({
|
|
29031
29377
|
longitude: r,
|
|
29032
29378
|
latitude: a,
|
|
29033
29379
|
fov: n
|
|
@@ -29041,7 +29387,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29041
29387
|
if (!(e === t.Mode.Floorplan || e === t.Mode.Topview || e === t.Mode.Mapview || e === t.Mode.Model) || this.modelScene.loaded) {
|
|
29042
29388
|
let e = this.readyCallbacks.slice();
|
|
29043
29389
|
this.readyCallbacks.length = 0;
|
|
29044
|
-
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();
|
|
29045
29391
|
}
|
|
29046
29392
|
}
|
|
29047
29393
|
return !1;
|
|
@@ -29054,7 +29400,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29054
29400
|
}
|
|
29055
29401
|
requestFullscreen() {
|
|
29056
29402
|
var e;
|
|
29057
|
-
if (
|
|
29403
|
+
if (!DC) return;
|
|
29058
29404
|
let t = (e = this.getElement()) == null ? void 0 : e.parentNode;
|
|
29059
29405
|
t && "requestFullscreen" in t && typeof document < "u" && document.fullscreenElement === null && t.requestFullscreen();
|
|
29060
29406
|
}
|
|
@@ -29142,15 +29488,15 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29142
29488
|
}
|
|
29143
29489
|
applyController(e, n) {
|
|
29144
29490
|
if (!this.renderer) throw Error("renderer is not initialized.");
|
|
29145
|
-
let r =
|
|
29491
|
+
let r = fO[e];
|
|
29146
29492
|
this.currentMode = e;
|
|
29147
29493
|
let i = new r(n);
|
|
29148
|
-
for (let e of
|
|
29494
|
+
for (let e of mO) i.on(e, (...t) => {
|
|
29149
29495
|
if (this.emit(e, ...t)) return !1;
|
|
29150
29496
|
});
|
|
29151
29497
|
{
|
|
29152
|
-
let t =
|
|
29153
|
-
|
|
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", {
|
|
29154
29500
|
userAction: r,
|
|
29155
29501
|
state: this.state
|
|
29156
29502
|
}))), this.emit("currentState.change", $("currentState.change", {
|
|
@@ -29162,7 +29508,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29162
29508
|
var t;
|
|
29163
29509
|
if (this.controller) {
|
|
29164
29510
|
let n = this.controller.getTargetState();
|
|
29165
|
-
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", {
|
|
29166
29512
|
userAction: e.userAction,
|
|
29167
29513
|
state: this.state
|
|
29168
29514
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
@@ -29174,7 +29520,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29174
29520
|
}), i.on("initAnimation.start", (e) => {
|
|
29175
29521
|
var t;
|
|
29176
29522
|
let { state: n, userAction: r } = e;
|
|
29177
|
-
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", {
|
|
29178
29524
|
userAction: r,
|
|
29179
29525
|
state: this.state
|
|
29180
29526
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
@@ -29184,7 +29530,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29184
29530
|
this.pano = {
|
|
29185
29531
|
workCode: n.workCode,
|
|
29186
29532
|
panoIndex: n.panoIndex
|
|
29187
|
-
}, 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", {
|
|
29188
29534
|
userAction: r,
|
|
29189
29535
|
state: this.state
|
|
29190
29536
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
@@ -29194,7 +29540,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29194
29540
|
this.pano = {
|
|
29195
29541
|
workCode: n.workCode,
|
|
29196
29542
|
panoIndex: n.panoIndex
|
|
29197
|
-
}, 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", {
|
|
29198
29544
|
userAction: r,
|
|
29199
29545
|
state: this.state
|
|
29200
29546
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
@@ -29204,14 +29550,14 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29204
29550
|
this.pano = {
|
|
29205
29551
|
workCode: n.workCode,
|
|
29206
29552
|
panoIndex: n.panoIndex
|
|
29207
|
-
}, 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", {
|
|
29208
29554
|
userAction: r,
|
|
29209
29555
|
state: this.state
|
|
29210
29556
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
29211
29557
|
}), i.on("pano.cancel", (e) => {
|
|
29212
29558
|
var t;
|
|
29213
29559
|
let { state: n, userAction: r } = e;
|
|
29214
|
-
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", {
|
|
29215
29561
|
userAction: r,
|
|
29216
29562
|
state: this.state
|
|
29217
29563
|
})), (t = this.analysis) == null || t.state(this.works, this.state));
|
|
@@ -29309,7 +29655,7 @@ var JD = 800, YD = 90, XD = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-
|
|
|
29309
29655
|
this.adaptiveLuminancePass.enabled = e, this.needsRender = !0;
|
|
29310
29656
|
}
|
|
29311
29657
|
};
|
|
29312
|
-
|
|
29658
|
+
PO.Mode = {
|
|
29313
29659
|
Panorama: "Panorama",
|
|
29314
29660
|
Model: "Model",
|
|
29315
29661
|
Floorplan: "Floorplan",
|
|
@@ -29319,12 +29665,12 @@ oO.Mode = {
|
|
|
29319
29665
|
XRPanorama: "XRPanorama"
|
|
29320
29666
|
}, typeof window < "u" && Object.assign(window, { __FIVE_DEBUG__: {
|
|
29321
29667
|
THREE: e,
|
|
29322
|
-
constructor:
|
|
29323
|
-
instances:
|
|
29668
|
+
constructor: PO,
|
|
29669
|
+
instances: NO
|
|
29324
29670
|
} });
|
|
29325
29671
|
//#endregion
|
|
29326
29672
|
//#region build/five/webxr/xrButton.js
|
|
29327
|
-
var
|
|
29673
|
+
var FO = class {
|
|
29328
29674
|
static createButton(e) {
|
|
29329
29675
|
let t = document.createElement("button"), n = "ENTER VR", r = "calc(50% - 50px)", i = "100px", a;
|
|
29330
29676
|
function o() {
|
|
@@ -29369,4 +29715,4 @@ var sO = class {
|
|
|
29369
29715
|
}
|
|
29370
29716
|
};
|
|
29371
29717
|
//#endregion
|
|
29372
|
-
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 };
|