@realsee/five 6.4.0-alpha.13 → 6.4.0-alpha.15
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/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/five.Model.html +2 -2
- package/docs/functions/five.loadGltf.html +1 -0
- package/docs/modules/five.html +1 -1
- package/docs/types/five.ModelMaterialValues.html +1 -1
- package/docs/types/five.Models.html +5 -5
- package/docs/types/five.ParsedResultType.html +1 -1
- package/five/index.d.ts +2 -2
- package/five/index.js +15 -15
- package/five/index.mjs +123 -106
- 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/shader-lib/index.js +2 -2
- package/shader-lib/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-shader-lib.js +2 -2
- package/umd/five-sticker.js +3 -3
- package/umd/five-vfx.js +2 -2
- package/umd/five-vue.js +2 -2
- package/umd/five.js +9 -9
- package/vfx/index.js +2 -2
- package/vfx/index.mjs +2 -2
- package/vue/index.js +2 -2
- package/vue/index.mjs +2 -2
- package/docs/functions/five.loadGlb.html +0 -1
package/umd/five.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five
|
|
4
|
-
* Generated: 1/
|
|
5
|
-
* Version: 6.4.0-alpha.
|
|
4
|
+
* Generated: 1/16/2025
|
|
5
|
+
* Version: 6.4.0-alpha.15
|
|
6
6
|
* Terms:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
* Update: July 28, 2021
|
|
@@ -880,7 +880,7 @@ void main() {
|
|
|
880
880
|
return ( value & ( value - 1 ) ) === 0 && value !== 0;
|
|
881
881
|
|
|
882
882
|
}
|
|
883
|
-
`,EXTENSION_NAME$4="KHR_texture_basisu",KHR_texture_basisu=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadTexture=function(e,r){var o=r.json.textures[e];if(!o.extensions||!o.extensions[EXTENSION_NAME$4])return null;var s=o.extensions[EXTENSION_NAME$4],u=r.json.images[s.source],l=null;if(u.bufferView!==void 0)l=r.loadBufferView(u.bufferView).then(function(c){return ktx2.parse(c)});else if(u.uri)l=r.options.fetcher.ajax(r.resolveResouce(u.uri),{responseType:"arraybuffer"}).then(function(c){return ktx2.parse(c.body)});else throw new Error("glTF: Invalid image defs.");return l},t}(BaseExtension),EXTENSION_NAME$3="KHR_texture_transform",KHR_texture_transform=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.extendTexture=function(e,r,o){var s=r.extensions!==void 0?r.extensions[EXTENSION_NAME$3]:void 0;return s?(s.texCoord!==void 0&&console.warn('glTF: Custom UV sets in "'+EXTENSION_NAME$3+'" extension not yet supported.'),s.offset===void 0&&s.rotation===void 0&&s.scale===void 0||(e=e.clone(),e.needsUpdate=!0,s.offset!==void 0&&e.offset.fromArray(s.offset),s.rotation!==void 0&&(e.rotation=s.rotation),s.scale!==void 0&&e.repeat.fromArray(s.scale)),e):null},t}(BaseExtension),KHR_mesh_quantization=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t}(BaseExtension),KHR_materials_unlit=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t}(BaseExtension),meshoptDecoder=function(){var n="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:78Yqdbk:qzezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhlaicefhodnadTmbalc;WFbGglcjdalcjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxdndndndnalc9WGgmTmbcbhPcehsawcjdfhzaohHinaraH9Rax6midnaraHaxfgo9RcK6mbczhlinalgic9Wfglawcj;cbffhOdndndndndnaHalco4fRbbalci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOaoRblaoRbbgAco4glalciSgCE86bbawcj;cbfaifglcGfaoclfaCfgORbbaAcl4ciGgCaCciSgCE86bbalcVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbalc7faOaCfgORbbaAciGgAaAciSgAE86bbalctfaOaAfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkaOaoRbwaoRbbgAcl4glalcsSgCE86bbawcj;cbfaifglcGfaocwfaCfgORbbaAcsGgAaAcsSgAE86bbalcVfaOaAfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekaOao8Pbb83bbaOcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaiczfhlarao9RcL0mekkaiam6miaoTmidnakTmbawaPfRbbhOawcj;cbfhlazhiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkkazcefhzaPcefgPad6hsaohHaPad9hmexvkkcbhoasceGmdxikaoaxad2fhPdnakTmbcbhmcehsawcjdfhCinarao9Rax6miaoTmdaoaxfhoawamfRbbhOawcj;cbfhlaChiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkaCcefhCamcefgmad6hsamad9hmbkaPhoxikcbhlcehsinarao9Rax6mdaoTmeaoaxfhoalcefglad6hsadal9hmbkaPhoxdkcbhoasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekcbc99arao9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;xzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj;8ifcjjj98G::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;a9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;d8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgAclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;tzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbadczfhdaeclfgeav6mbkkdnaval9pmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb",e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),r=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=WebAssembly.validate(e)?t:n,s,u=WebAssembly.instantiate(l(o),{}).then(function(A){s=A.instance,s.exports.__wasm_call_ctors()});function l(A){for(var E=new Uint8Array(A.length),b=0;b<A.length;++b){var T=A.charCodeAt(b);E[b]=T>96?T-97:T>64?T-39:T+4}for(var _=0,b=0;b<A.length;++b)E[_++]=E[b]<60?r[E[b]]:(E[b]-60)*64+E[++b];return E.buffer.slice(0,_)}function c(A,E,b,T,_,R){var S=s.exports.sbrk,M=b+3&-4,B=S(M*T),H=S(_.length),w=new Uint8Array(s.exports.memory.buffer);w.set(_,H);var C=A(B,b,T,H,_.length);if(C==0&&R&&R(B,M,T),E.set(w.subarray(B,B+b*T)),S(B-S(0)),C!=0)throw new Error("Malformed buffer data: "+C)}var f={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},d={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},p=[],v=0;function g(A){var E={object:new Worker(A),pending:0,requests:{}};return E.object.onmessage=function(b){var T=b.data;E.pending-=T.count,E.requests[T.id][T.action](T.value),delete E.requests[T.id]},E}function h(A){for(var E="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(l(o))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+c.toString()+y.toString(),b=new Blob([E],{type:"text/javascript"}),T=URL.createObjectURL(b),_=0;_<A;++_)p[_]=g(T);URL.revokeObjectURL(T)}function m(A,E,b,T,_){for(var R=p[0],S=1;S<p.length;++S)p[S].pending<R.pending&&(R=p[S]);return new Promise(function(M,B){var H=new Uint8Array(b),w=v++;R.pending+=A,R.requests[w]={resolve:M,reject:B},R.object.postMessage({id:w,count:A,size:E,source:H,mode:T,filter:_},[H.buffer])})}function y(A){u.then(function(){var E=A.data;try{var b=new Uint8Array(E.count*E.size);c(s.exports[E.mode],b,E.count,E.size,E.source,s.exports[E.filter]),self.postMessage({id:E.id,count:E.count,action:"resolve",value:b},[b.buffer])}catch(T){self.postMessage({id:E.id,count:E.count,action:"reject",value:T})}})}return{ready:u,supported:!0,useWorkers:function(A){h(A)},decodeVertexBuffer:function(A,E,b,T,_){c(s.exports.meshopt_decodeVertexBuffer,A,E,b,T,s.exports[f[_]])},decodeIndexBuffer:function(A,E,b,T){c(s.exports.meshopt_decodeIndexBuffer,A,E,b,T)},decodeIndexSequence:function(A,E,b,T){c(s.exports.meshopt_decodeIndexSequence,A,E,b,T)},decodeGltfBuffer:function(A,E,b,T,_,R){c(s.exports[d[_]],A,E,b,T,s.exports[f[R]])},decodeGltfBufferAsync:function(A,E,b,T,_){return p.length>0?m(A,E,b,d[T],f[_]):u.then(function(){var R=new Uint8Array(A*E);return c(s.exports[d[T]],R,A,E,b,s.exports[f[_]]),R})}}}(),EXTENSION_NAME$2="EXT_meshopt_compression",EXT_meshopt_compression=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadBufferView=function(e,r){var o=r.json,s=o.bufferViews[e];if(s.extensions&&s.extensions[EXTENSION_NAME$2]){var u=s.extensions[EXTENSION_NAME$2],l=r.loadBuffer(u.buffer);if(!meshoptDecoder.supported){if(o.extensionsRequired&&o.extensionsRequired.indexOf(EXTENSION_NAME$2)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([l,meshoptDecoder.ready]).then(function(c){var f=c[0],d=u.byteOffset||0,p=u.byteLength||0,v=u.count,g=u.byteStride,h=new ArrayBuffer(v*g),m=new Uint8Array(f,d,p);return meshoptDecoder.decodeGltfBuffer(new Uint8Array(h),v,g,m,u.mode,u.filter),h})}else return null},t}(BaseExtension),EXTENSION_NAME$1="EXT_texture_webp",EXT_texture_webp=function(n){__extends(t,n);function t(){var e=n!==null&&n.apply(this,arguments)||this;return e.supportsWep=!1,e}return t.prototype.prepare=function(e){var r=this;return imageSupport().then(function(o){r.supportsWep=o.webp})},t.prototype.loadTexture=function(e,r){var o=r.json,s=o.textures[e];if(!s.extensions||!s.extensions[EXTENSION_NAME$1]||!this.supportsWep)return null;var u=s.extensions[EXTENSION_NAME$1];return r.loadImage(u.source).then(function(l){var c=new THREE__namespace.Texture(l);c.needsUpdate=!0,c.flipY=!1,s.name&&(c.name=s.name);var f=r.json.samplers||{},d=f[s.sampler]||{};return c.magFilter=WEBGL_FILTERS[d.magFilter]||THREE__namespace.LinearFilter,c.minFilter=WEBGL_FILTERS[d.minFilter]||THREE__namespace.LinearMipmapLinearFilter,c.wrapS=WEBGL_WRAPPINGS[d.wrapS]||THREE__namespace.RepeatWrapping,c.wrapT=WEBGL_WRAPPINGS[d.wrapT]||THREE__namespace.RepeatWrapping,c.onUpdate=function(){l.close()},c})},t}(BaseExtension),EXTENSION_NAME="CESIUM_RTC",CESIUM_RTC=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.emitResult=function(e,r){if(r.json.extensions[EXTENSION_NAME]&&r.json.extensions[EXTENSION_NAME].center){var o=r.json.extensions[EXTENSION_NAME].center;e.CESIUM_RTC={center:new THREE__namespace.Vector3().fromArray(o)}}},t}(BaseExtension),PBM_mesh=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadMesh=function(e,r){var o=this,s=r.json.meshes[e],u=s.primitives,l=Promise.all(u.map(function(d){return r.loadGeometry(d)})),c=Promise.all(u.map(function(d){return o.loadPBMMaterial(d,r)})),f=Promise.all([l,c]).then(function(d){for(var p=d[0],v=d[1],g=[],h=0;h<u.length;h++){var m=u[h],y=p[h],A=v[h];y.attributes.normal===void 0&&(A.flatShading=!0),y.attributes.tangent===void 0&&A.normalScale&&(A.normalScale.y*=-1);var E=m.mode||WEBGL_CONSTANTS.TRIANGLES,b=void 0;if(E===WEBGL_CONSTANTS.TRIANGLES||E===WEBGL_CONSTANTS.TRIANGLE_STRIP||E===WEBGL_CONSTANTS.TRIANGLE_FAN)if(E===WEBGL_CONSTANTS.TRIANGLE_STRIP?y=r.toGeometryTrianglesDrawMode(y,THREE__namespace.TriangleStripDrawMode):E===WEBGL_CONSTANTS.TRIANGLE_FAN&&(y=r.toGeometryTrianglesDrawMode(y,THREE__namespace.TriangleFanDrawMode)),y.clearGroups(),y.addGroup(0,y.index?y.index.count:y.attributes.position.count,0),r.disposeSet.add(y),s.isSkinnedMesh){var T=new PBMSkinnedMesh(y,[A]);y.attributes.skinWeight.normalized||T.normalizeSkinWeights(),b=T}else b=new PBMMesh(y,[A]);else if(E===WEBGL_CONSTANTS.POINTS)b=new PBMPointCloud(y,A);else throw new Error("glTF: Primitive mode unsupported: "+E);b.name=r.createUniqueName(s.name||"mesh_"+e),g.push(b)}if(g.length===1)return g[0];for(var _=new THREE__namespace.Group,R=0,S=g;R<S.length;R++){var b=S[R];_.add(b)}return _});return f},t.prototype.loadPBMMaterial=function(e,r){var o,s=(o=e.mode)!==null&&o!==void 0?o:WEBGL_CONSTANTS.TRIANGLES,u=null;if(s===WEBGL_CONSTANTS.TRIANGLES||s===WEBGL_CONSTANTS.TRIANGLE_STRIP||s===WEBGL_CONSTANTS.TRIANGLE_FAN)u=this.loadPBMMeshMaterial(e,r);else if(s===WEBGL_CONSTANTS.POINTS)u=this.loadPBMPointCloudMaterial(e,r);else throw new Error("glTF: Primitive mode unsupported: "+s);return u},t.prototype.extendTexture=function(e,r,o){return e.minFilter=THREE__namespace.LinearFilter,e.magFilter=THREE__namespace.LinearFilter,e.generateMipmaps=!1,e},t.prototype.loadPBMPointCloudMaterial=function(e,r){var o=new PBMPointCloudMaterial;return Object.keys(e.attributes).filter(function(s){return ATTRIBUTES[s]==="normal"}).length>0&&(o.defines.USE_POINT_NORMAL=!0),r.disposeSet.add(o),Promise.resolve(o)},t.prototype.loadPBMMeshMaterial=function(e,r){var o=[],s=new PBMMeshMaterial("basic");if(s.color=new THREE__namespace.Color(1,1,1),Object.keys(e.attributes).filter(function(d){return ATTRIBUTES[d]==="color"}).length>0&&(s.vertexColors=!0),e.material!==void 0){var u=r.json.materials[e.material];u.name&&(s.name=u.name);var l=u.pbrMetallicRoughness||{};if(Array.isArray(l.baseColorFactor)){var c=l.baseColorFactor;s.color=new THREE__namespace.Color().fromArray(c)}if(l.baseColorTexture!==void 0&&o.push(r.createMaterialTexture(l.baseColorTexture).then(function(d){r.disposeSet.add(d),d.encoding=THREE__namespace.sRGBEncoding,s.map=d})),u.doubleSided===!0&&(s.side=THREE__namespace.DoubleSide),u.normalTexture!==void 0&&(o.push(r.createMaterialTexture(u.normalTexture).then(function(d){r.disposeSet.add(d),s.normalMap=d})),s.normalScale=new THREE__namespace.Vector2(1,1),u.normalTexture.scale!==void 0)){var f=u.normalTexture.scale;s.normalScale.set(f,f)}}return r.disposeSet.add(s),s.refreshUniforms(),Promise.all(o).then(function(){return s})},t}(BaseExtension),EXTENSIONS={KHR_binary_glTF,KHR_draco_mesh_compression,KHR_texture_basisu,KHR_texture_transform,KHR_mesh_quantization,KHR_materials_unlit,EXT_meshopt_compression,EXT_texture_webp,CESIUM_RTC,PBM_mesh};function parseGltf(n,t){var e,r,o,s={};if(t.addonExtensions)for(var u=0,l=t.addonExtensions;u<l.length;u++){var c=l[u];c in EXTENSIONS&&(s[c]=new EXTENSIONS[c])}var f,d;if(typeof n=="string")d=n;else{var p=EXTENSIONS.KHR_binary_glTF.getMagic(n);if(p===EXTENSIONS.KHR_binary_glTF.HEADER_MAGIC){f=new EXTENSIONS.KHR_binary_glTF;try{f.loadGlbBinary(n)}catch(A){return Promise.reject(A)}s.KHR_binary_glTF=f,d=f.content}else d=decodeText(new Uint8Array(n))}var v=JSON.parse(d);if(v.asset===void 0||Number(v.asset.version[0])<2)return Promise.reject(new Error("glTF: Unsupported asset. glTF versions >=2.0 are supported."));if(v.extensionsUsed)for(var g=v.extensionsRequired||[],h=0;h<v.extensionsUsed.length;h++){var m=v.extensionsUsed[h];s[m]||(EXTENSIONS[m]?s[m]=new EXTENSIONS[m]:g.indexOf(m)>=0&&console.warn('glTF: Unknown extension "'+m+'".'))}var y=new Parser(v,s,{copyUV2:(e=t.copyUV2)!==null&&e!==void 0?e:!0,resourcePath:(r=t.resourcePath)!==null&&r!==void 0?r:"",search:(o=t.search)!==null&&o!==void 0?o:"",fetcher:t.fetcher});return y.parse().then(function(A){return f&&f.clear(),A})}var ROTATE_X_MATRIX$6=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadB3dm(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Y",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u={uri:n,gltfUpAxis:o};return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return l.body})}).then(function(l){return Promise.resolve(0).then(function(c){return parseHeader$1(u,l,c)}).then(function(c){return parseTable(u,l,c)}).then(function(c){return parseGlTFArrayBuffer(u,l,c)})}).then(function(){var l;return parseGltf(u.gltfArrayBuffer,{copyUV2:!1,addonExtensions:["PBM_mesh"],resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(l=n.split("?")[1])!==null&&l!==void 0?l:"",fetcher:s}).then(function(c){var f=new THREE__namespace.Matrix4;o==="Y"&&f.premultiply(ROTATE_X_MATRIX$6);var d=new THREE__namespace.Matrix4().setPosition(u.rtcCenter[0],u.rtcCenter[1],u.rtcCenter[2]);if(f.premultiply(d),c.CESIUM_RTC){var p=new THREE__namespace.Matrix4().setPosition(c.CESIUM_RTC.center);f.premultiply(p)}var v=c.scene;return v.applyMatrix4(f),delete u.featureTableBinary,delete u.batchTableBinary,delete u.gltfArrayBuffer,{type:"b3dm",upAxis:"Z",uri:u.uri,byteLength:u.byteLength,scene:v,textures:c.textures,dispose:function(){return c.dispose()}}})})}const encodedJs="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoYSl7b25tZXNzYWdlPWZ1bmN0aW9uKHIpe1Byb21pc2UucmVzb2x2ZShyLmRhdGEpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIGEobil9KS50aGVuKGZ1bmN0aW9uKG4pe3ZhciBlPW4ub3V0cHV0LHQ9bi50cmFuc2ZlcjtyZXR1cm4gcG9zdE1lc3NhZ2UoZSx0KX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3JldHVybiBwb3N0TWVzc2FnZSh7JCRlcnJvcjpufSl9KX19dmFyIHUseTsoZnVuY3Rpb24oYSl7YVthLkJZVEU9NTEyMF09IkJZVEUiLGFbYS5VTlNJR05FRF9CWVRFPTUxMjFdPSJVTlNJR05FRF9CWVRFIixhW2EuU0hPUlQ9NTEyMl09IlNIT1JUIixhW2EuVU5TSUdORURfU0hPUlQ9NTEyM109IlVOU0lHTkVEX1NIT1JUIixhW2EuSU5UPTUxMjRdPSJJTlQiLGFbYS5VTlNJR05FRF9JTlQ9NTEyNV09IlVOU0lHTkVEX0lOVCIsYVthLkZMT0FUPTUxMjZdPSJGTE9BVCIsYVthLkRPVUJMRT01MTMwXT0iRE9VQkxFIn0pKHl8fCh5PXt9KSk7dmFyIGM9KHU9e30sdVt5LkRPVUJMRV09RmxvYXQ2NEFycmF5LHVbeS5GTE9BVF09RmxvYXQzMkFycmF5LHVbeS5VTlNJR05FRF9TSE9SVF09VWludDE2QXJyYXksdVt5LlVOU0lHTkVEX0lOVF09VWludDMyQXJyYXksdVt5LlVOU0lHTkVEX0JZVEVdPVVpbnQ4QXJyYXksdVt5LkJZVEVdPUludDhBcnJheSx1W3kuU0hPUlRdPUludDE2QXJyYXksdVt5LklOVF09SW50MzJBcnJheSx1KSxGPXtET1VCTEU6eS5ET1VCTEUsRkxPQVQ6eS5GTE9BVCxVTlNJR05FRF9TSE9SVDp5LlVOU0lHTkVEX1NIT1JULFVOU0lHTkVEX0lOVDp5LlVOU0lHTkVEX0lOVCxVTlNJR05FRF9CWVRFOnkuVU5TSUdORURfQllURSxCWVRFOnkuQllURSxTSE9SVDp5LlNIT1JULElOVDp5LklOVH07ZnVuY3Rpb24gTyhhKXt2YXIgcj1jW2FdO2lmKCFyKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGNvbnZlcnQgR0wgdHlwZSIpO3JldHVybiByfWZ1bmN0aW9uIHAoYSl7dmFyIHI9TyhhKTtyZXR1cm4gci5CWVRFU19QRVJfRUxFTUVOVH1mdW5jdGlvbiBfKGEscixuLGUpe249PT12b2lkIDAmJihuPTApO3ZhciB0PU8oYSk7aWYobiVwKGEpIT09MCl7dmFyIGk9ZT9yLnNsaWNlKG4sbitlKnAoYSkpOnIuc2xpY2Uobik7cmV0dXJuIG5ldyB0KGkpfWVsc2UgcmV0dXJuIG5ldyB0KHIsbixlIT1udWxsP2U6KHIuYnl0ZUxlbmd0aC1uKS9wKGEpKX1mdW5jdGlvbiBsKGEpe3ZhciByPUZbYV07aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gY29udmVydCBHTCB0eXBlIik7cmV0dXJuIHJ9dmFyIFI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKHIsbil7dGhpcy5mZWF0dXJlc0xlbmd0aD0wLHRoaXMuY2FjaGVkVHlwZWRBcnJheXM9e30sdGhpcy5qc29uPXIsdGhpcy5idWZmZXI9bjt2YXIgZT10aGlzLmdldEdsb2JhbFByb3BlcnR5KCJQT0lOVFNfTEVOR1RIIix5LlVOU0lHTkVEX0lOVCwxKTtlJiZlLmxlbmd0aCYmKHRoaXMuZmVhdHVyZXNMZW5ndGg9ZVswXSl9cmV0dXJuIGEucHJvdG90eXBlLmdldEV4dGVuc2lvbj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5qc29uLmV4dGVuc2lvbnMmJnRoaXMuanNvbi5leHRlbnNpb25zW3JdfSxhLnByb3RvdHlwZS5oYXNQcm9wZXJ0eT1mdW5jdGlvbihyKXtyZXR1cm4hIXRoaXMuanNvbltyXX0sYS5wcm90b3R5cGUuZ2V0R2xvYmFsUHJvcGVydHk9ZnVuY3Rpb24ocixuLGUpe3ZhciB0PXRoaXMuanNvbltyXTtpZih0eXBlb2YgdD09Im51bWJlciIpe3ZhciBpPU8obik7cmV0dXJuIG5ldyBpKFt0XSl9ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgaT1PKG4pO3JldHVybiBuZXcgaSh0KX1lbHNlIGlmKHQmJk51bWJlci5pc0Zpbml0ZSh0LmJ5dGVPZmZzZXQpKXJldHVybiB0aGlzLmdldFR5cGVkQXJyYXlGcm9tQmluYXJ5KHIsbixlLDEsdC5ieXRlT2Zmc2V0KTtyZXR1cm4gbnVsbH0sYS5wcm90b3R5cGUuZ2V0UHJvcGVydHlBcnJheT1mdW5jdGlvbihyLG4sZSl7dmFyIHQ9dGhpcy5qc29uW3JdO3JldHVybiB0JiZOdW1iZXIuaXNGaW5pdGUodC5ieXRlT2Zmc2V0KT8oImNvbXBvbmVudFR5cGUiaW4gdCYmKG49bCh0LmNvbXBvbmVudFR5cGUpKSx0aGlzLmdldFR5cGVkQXJyYXlGcm9tQmluYXJ5KHIsbixlLHRoaXMuZmVhdHVyZXNMZW5ndGgsdC5ieXRlT2Zmc2V0KSk6dGhpcy5nZXRUeXBlZEFycmF5RnJvbUFycmF5KHIsbix0KX0sYS5wcm90b3R5cGUuZ2V0UHJvcGVydHk9ZnVuY3Rpb24ocixuLGUsdCxpKXt2YXIgbz10aGlzLmpzb25bcl07aWYoIW8pcmV0dXJuIG51bGw7dmFyIHY9dGhpcy5nZXRQcm9wZXJ0eUFycmF5KHIsbixlKTtpZihlPT09MSlyZXR1cm4gaVswXT12W3RdLGk7Zm9yKHZhciBBPTA7QTxlOysrQSlpW0FdPXZbZSp0K0FdO3JldHVybiBpfSxhLnByb3RvdHlwZS5nZXRUeXBlZEFycmF5RnJvbUJpbmFyeT1mdW5jdGlvbihyLG4sZSx0LGkpe3ZhciBvPXRoaXMuY2FjaGVkVHlwZWRBcnJheXMsdj1vW3JdO3JldHVybiB2fHwodj1fKG4sdGhpcy5idWZmZXIuYnVmZmVyLHRoaXMuYnVmZmVyLmJ5dGVPZmZzZXQraSx0KmUpLG9bcl09diksdn0sYS5wcm90b3R5cGUuZ2V0VHlwZWRBcnJheUZyb21BcnJheT1mdW5jdGlvbihyLG4sZSl7dmFyIHQ9dGhpcy5jYWNoZWRUeXBlZEFycmF5cyxpPXRbcl07cmV0dXJuIGl8fChpPV8obixlKSx0W3JdPWkpLGl9LGF9KCk7QihmdW5jdGlvbihhKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGEpLnRoZW4oZnVuY3Rpb24ocil7dmFyIG49bmV3IFIoci5mZWF0dXJlVGFibGVKc29uLHIuZmVhdHVyZVRhYmxlQmluYXJ5KSxlPWQobiksdD1nKG4pLGk9UChuKSxvPVtdO3JldHVybiBlJiZvLnB1c2goZS5hcnJheS5idWZmZXIpLHQmJm8ucHVzaCh0LmFycmF5LmJ1ZmZlciksaSYmby5wdXNoKGkuYXJyYXkuYnVmZmVyKSx7b3V0cHV0Ontwb3NpdGlvbjplLGNvbG9yOnQsbm9ybWFsOml9LHRyYW5zZmVyOm99fSl9KTt2YXIgVT02NTUzNTtmdW5jdGlvbiBkKGEpe2lmKGEuaGFzUHJvcGVydHkoIlBPU0lUSU9OIikpe3ZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUE9TSVRJT04iLHkuRkxPQVQsMyk7cmV0dXJue2FycmF5OnIsaXRlbVNpemU6Myxub3JtYWxpemVkOiExfX1lbHNlIGlmKGEuaGFzUHJvcGVydHkoIlBPU0lUSU9OX1FVQU5USVpFRCIpKXt2YXIgbj1hLmdldFByb3BlcnR5QXJyYXkoIlBPU0lUSU9OX1FVQU5USVpFRCIseS5VTlNJR05FRF9TSE9SVCwzKSxlPWEuZ2V0R2xvYmFsUHJvcGVydHkoIlFVQU5USVpFRF9WT0xVTUVfU0NBTEUiLHkuRkxPQVQsMyksdD1hLmdldEdsb2JhbFByb3BlcnR5KCJRVUFOVElaRURfVk9MVU1FX09GRlNFVCIseS5GTE9BVCwzKTtpZighZXx8IXQpdGhyb3cgbmV3IEVycm9yKCJRVUFOVElaRURfVk9MVU1FX1NDQUxFIG9yIFFVQU5USVpFRF9WT0xVTUVfT0ZGU0VUIG5ldmVyIGZvdW5kLiIpO2Zvcih2YXIgaT1uZXcgRmxvYXQzMkFycmF5KG4ubGVuZ3RoKSxvPW4ubGVuZ3RoLzMsdj1lWzBdL1UsQT1lWzFdL1UsTj1lWzJdL1UsRT10WzBdLFM9dFsxXSxzPXRbMl0sVD0wLEk9dm9pZCAwO1Q8bztUKyspST1UKjMsaVtJXT1uW0ldKnYrRSxpWysrSV09bltJXSpBK1MsaVsrK0ldPW5bSV0qTitzO3JldHVybnthcnJheTppLGl0ZW1TaXplOjMsbm9ybWFsaXplZDohMX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gZyhhKXtpZihhLmhhc1Byb3BlcnR5KCJSR0IiKSl7Zm9yKHZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCIix5LlVOU0lHTkVEX0JZVEUsMyksbj1yLmxlbmd0aC8zLGU9bmV3IFVpbnQ4QXJyYXkobio0KSx0PTAsaT12b2lkIDAsbz12b2lkIDA7dDxuO3QrKylvPXQqNCxpPXQqMyxlW29dPXJbaV0sZVsrK29dPXJbKytpXSxlWysrb109clsrK2ldO3JldHVybnthcnJheTplLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19ZWxzZSBpZihhLmhhc1Byb3BlcnR5KCJSR0JBIikpe3ZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCQSIseS5VTlNJR05FRF9CWVRFLDQpO3JldHVybnthcnJheTpyLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19ZWxzZSBpZihhLmhhc1Byb3BlcnR5KCJSR0I1NjUiKSl7Zm9yKHZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCNTY1Iix5LlVOU0lHTkVEX1NIT1JULDEpLG49ci5sZW5ndGgsZT1uZXcgVWludDhBcnJheShuKjQpLHQ9MCx2PXZvaWQgMCxBPXZvaWQgMDt0PG47dCsrKUE9clt0XSx2PXQqNCxlW3ZdPShBPj4xMSYzMSk8PDMsZVsrK3ZdPShBPj41JjYzKTw8MixlWysrdl09KEEmMzEpPDwzO3JldHVybnthcnJheTplLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19cmV0dXJuIG51bGx9dmFyIEc9MjU1LGg9MTI3LEQ9Mi9HO2Z1bmN0aW9uIFAoYSl7aWYoYS5oYXNQcm9wZXJ0eSgiTk9STUFMIikpe2Zvcih2YXIgcj1hLmdldFByb3BlcnR5QXJyYXkoIk5PUk1BTCIseS5GTE9BVCwzKSxuPXIubGVuZ3RoLzMsZT1uZXcgSW50OEFycmF5KG4qNCksdD0wLGk9dm9pZCAwLG89dm9pZCAwO3Q8bjt0Kyspbz10KjQsaT10KjMsZVtvXT1yW2ldKmgsZVsrK29dPXJbKytpXSpoLGVbKytvXT1yWysraV0qaDtyZXR1cm57YXJyYXk6ZSxpdGVtU2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9fWVsc2UgaWYoYS5oYXNQcm9wZXJ0eSgiTk9STUFMX09DVDE2UCIpKXtmb3IodmFyIHI9YS5nZXRQcm9wZXJ0eUFycmF5KCJOT1JNQUxfT0NUMTZQIix5LlVOU0lHTkVEX0JZVEUsMiksbj1yLmxlbmd0aC8yLGU9bmV3IEludDhBcnJheShuKjQpLHQ9MCx2PXZvaWQgMCxBPXZvaWQgMCxOPXZvaWQgMCxFPXZvaWQgMCxTPXZvaWQgMCxzPXZvaWQgMCxUPXZvaWQgMDt0PG47dCsrKXY9dCoyLEE9clt2XSpELTEsTj1yWysrdl0qRC0xLFM9QTwwPy1BOkEscz1OPDA/LU46TixFPTEtKFMrcyksRTwwJiYoQT0oMS1zKSooQTwwPy0xOjEpLE49KDEtUykqKE48MD8tMToxKSksVD1NYXRoLnNxcnQoQSpBK04qTitFKkUpLHY9dCo0LGVbdl09QS9UKmgsZVsrK3ZdPU4vVCpoLGVbKyt2XT1FL1QqaDtyZXR1cm57YXJyYXk6ZSxpdGVtU2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9fXJldHVybiBudWxsfX0pKCk7Cg==",decodeBase64=n=>Uint8Array.from(atob(n),t=>t.charCodeAt(0)),blob$1=typeof self!="undefined"&&self.Blob&&new Blob([decodeBase64(encodedJs)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(n){let t;try{if(t=blob$1&&(self.URL||self.webkitURL).createObjectURL(blob$1),!t)throw"";const e=new Worker(t,{name:n==null?void 0:n.name});return e.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),e}catch(e){return new Worker("data:text/javascript;base64,"+encodedJs,{name:n==null?void 0:n.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}var attributeWorkerPool=new WorkerPool$1(function(){return new WorkerWrapper},2);function parsePointCloud(n,t,e){var r=new FeatureTable(n.featureTableJson,n.featureTableBinary);return Promise.resolve().then(function(){var o=r.getExtension("3DTILES_draco_point_compression");return o?parseDraco(o,r):attributeWorkerPool.postMessage({featureTableBinary:r.buffer,featureTableJson:r.json},[r.buffer.buffer])}).then(function(o){return n.attributes=o,e})}function parseDraco(n,t){return __awaiter(this,void 0,void 0,function(){var e,r,o,s,u,l;return __generator(this,function(c){if(e=n.properties||{},r=n.byteOffset,o=n.byteLength,!e||!Number.isFinite(r)||!o)throw new Error("Draco properties, byteOffset, and byteLength must be defined");return s=t.buffer.slice(r,r+o),u=n.properties,l={POSITION:"Float32Array",NORMAL:"Float32Array",RGB:"Uint8Array",RGBA:"Uint8Array"},[2,draco.decodeGeometry(s.buffer,{attributeIDs:u,attributeTypes:l,useUniqueIDs:!0}).then(function(f){var d=f.getAttribute("POSITION"),p=f.getAttribute("RGB"),v=f.getAttribute("RGBA"),g=f.getAttribute("NORMAL"),h;if(v)h=v;else if(p){for(var m=p.count,y=p.array,A=new Uint8Array(m*4),E=0,b=void 0,T=void 0;E<m;E++)T=E*4,b=E*3,A[T]=y[b],A[++T]=y[++b],A[++T]=y[++b];h=new THREE__namespace.BufferAttribute(A,4,p.normalized)}return{position:d?{array:d.array,itemSize:d.itemSize,normalized:d.normalized}:null,color:h?{array:h.array,itemSize:h.itemSize,normalized:h.normalized}:null,normal:g?{array:g.array,itemSize:g.itemSize,normalized:g.normalized}:null}})]})})}function loadPnts(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={uri:n};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"}).then(function(s){return s.body})}).then(function(s){return Promise.resolve(0).then(function(u){return parseHeader$1(o,s,u)}).then(function(u){return parseTable(o,s,u)}).then(function(u){return parsePointCloud(o,s,u)})}).then(function(){var s;return createPoints(o.attributes,{computeBoundingBox:(s=t.computeBoundingBox)!==null&&s!==void 0?s:!0})}).then(function(s){var u=new THREE__namespace.Matrix4,l=new THREE__namespace.Matrix4().setPosition(o.rtcCenter[0],o.rtcCenter[1],o.rtcCenter[2]);return u.premultiply(l),s.object.applyMatrix4(u),delete o.gltfArrayBuffer,delete o.featureTableBinary,delete o.batchTableBinary,{type:"pnts",upAxis:"Z",uri:o.uri,byteLength:o.byteLength,scene:s.object,textures:[],dispose:function(){return s.dispose()}}})}function createPoints(n,t){var e=new Set,r=new THREE__namespace.BufferGeometry;e.add(r);var o=new PBMPointCloudMaterial;e.add(o),n.position&&r.setAttribute("position",new THREE__namespace.BufferAttribute(n.position.array,n.position.itemSize,n.position.normalized)),n.color&&r.setAttribute("color",new THREE__namespace.BufferAttribute(n.color.array,n.color.itemSize,n.color.normalized)),n.normal&&(r.setAttribute("normal",new THREE__namespace.BufferAttribute(n.normal.array,n.normal.itemSize,n.normal.normalized)),o.defines.USE_POINT_NORMAL=!0),t.computeBoundingBox&&r.computeBoundingBox();var s=new PBMPointCloud(r,o);return s.matrix.compose(s.position,s.quaternion,s.scale),s.matrixAutoUpdate=!1,s.frustumCulled=!1,Promise.resolve({object:s,dispose:function(){e.forEach(function(u){u.dispose()}),e.clear()}})}function createLZMA(){var n={};return n.OutWindow=function(){this._windowSize=0},n.OutWindow.prototype.create=function(t){(!this._buffer||this._windowSize!==t)&&(this._buffer=[]),this._windowSize=t,this._pos=0,this._streamPos=0},n.OutWindow.prototype.flush=function(){var t=this._pos-this._streamPos;if(t!==0){for(;t--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},n.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},n.OutWindow.prototype.setStream=function(t){this.releaseStream(),this._stream=t},n.OutWindow.prototype.init=function(t){t||(this._streamPos=0,this._pos=0)},n.OutWindow.prototype.copyBlock=function(t,e){var r=this._pos-t-1;for(r<0&&(r+=this._windowSize);e--;)r>=this._windowSize&&(r=0),this._buffer[this._pos++]=this._buffer[r++],this._pos>=this._windowSize&&this.flush()},n.OutWindow.prototype.putByte=function(t){this._buffer[this._pos++]=t,this._pos>=this._windowSize&&this.flush()},n.OutWindow.prototype.getByte=function(t){var e=this._pos-t-1;return e<0&&(e+=this._windowSize),this._buffer[e]},n.RangeDecoder=function(){},n.RangeDecoder.prototype.setStream=function(t){this._stream=t},n.RangeDecoder.prototype.releaseStream=function(){this._stream=null},n.RangeDecoder.prototype.init=function(){var t=5;for(this._code=0,this._range=-1;t--;)this._code=this._code<<8|this._stream.readByte()},n.RangeDecoder.prototype.decodeDirectBits=function(t){for(var e=0,r=t,o;r--;)this._range>>>=1,o=this._code-this._range>>>31,this._code-=this._range&o-1,e=e<<1|1-o,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return e},n.RangeDecoder.prototype.decodeBit=function(t,e){var r=t[e],o=(this._range>>>11)*r;return(this._code^2147483648)<(o^2147483648)?(this._range=o,t[e]+=2048-r>>>5,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=o,this._code-=o,t[e]-=r>>>5,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},n.initBitModels=function(t,e){for(;e--;)t[e]=1024},n.BitTreeDecoder=function(t){this._models=[],this._numBitLevels=t},n.BitTreeDecoder.prototype.init=function(){n.initBitModels(this._models,1<<this._numBitLevels)},n.BitTreeDecoder.prototype.decode=function(t){for(var e=1,r=this._numBitLevels;r--;)e=e<<1|t.decodeBit(this._models,e);return e-(1<<this._numBitLevels)},n.BitTreeDecoder.prototype.reverseDecode=function(t){for(var e=1,r=0,o=0,s;o<this._numBitLevels;++o)s=t.decodeBit(this._models,e),e=e<<1|s,r|=s<<o;return r},n.reverseDecode2=function(t,e,r,o){for(var s=1,u=0,l=0,c;l<o;++l)c=r.decodeBit(t,e+s),s=s<<1|c,u|=c<<l;return u},n.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new n.BitTreeDecoder(8),this._numPosStates=0},n.LenDecoder.prototype.create=function(t){for(;this._numPosStates<t;++this._numPosStates)this._lowCoder[this._numPosStates]=new n.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new n.BitTreeDecoder(3)},n.LenDecoder.prototype.init=function(){var t=this._numPosStates;for(n.initBitModels(this._choice,2);t--;)this._lowCoder[t].init(),this._midCoder[t].init();this._highCoder.init()},n.LenDecoder.prototype.decode=function(t,e){return t.decodeBit(this._choice,0)===0?this._lowCoder[e].decode(t):t.decodeBit(this._choice,1)===0?8+this._midCoder[e].decode(t):16+this._highCoder.decode(t)},n.Decoder2=function(){this._decoders=[]},n.Decoder2.prototype.init=function(){n.initBitModels(this._decoders,768)},n.Decoder2.prototype.decodeNormal=function(t){var e=1;do e=e<<1|t.decodeBit(this._decoders,e);while(e<256);return e&255},n.Decoder2.prototype.decodeWithMatchByte=function(t,e){var r=1,o,s;do if(o=e>>7&1,e<<=1,s=t.decodeBit(this._decoders,(1+o<<8)+r),r=r<<1|s,o!==s){for(;r<256;)r=r<<1|t.decodeBit(this._decoders,r);break}while(r<256);return r&255},n.LiteralDecoder=function(){},n.LiteralDecoder.prototype.create=function(t,e){var r;if(!(this._coders&&this._numPrevBits===e&&this._numPosBits===t))for(this._numPosBits=t,this._posMask=(1<<t)-1,this._numPrevBits=e,this._coders=[],r=1<<this._numPrevBits+this._numPosBits;r--;)this._coders[r]=new n.Decoder2},n.LiteralDecoder.prototype.init=function(){for(var t=1<<this._numPrevBits+this._numPosBits;t--;)this._coders[t].init()},n.LiteralDecoder.prototype.getDecoder=function(t,e){return this._coders[((t&this._posMask)<<this._numPrevBits)+((e&255)>>>8-this._numPrevBits)]},n.Decoder=function(){this._outWindow=new n.OutWindow,this._rangeDecoder=new n.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new n.BitTreeDecoder(4),this._lenDecoder=new n.LenDecoder,this._repLenDecoder=new n.LenDecoder,this._literalDecoder=new n.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new n.BitTreeDecoder(6),this._posSlotDecoder[1]=new n.BitTreeDecoder(6),this._posSlotDecoder[2]=new n.BitTreeDecoder(6),this._posSlotDecoder[3]=new n.BitTreeDecoder(6)},n.Decoder.prototype.setDictionarySize=function(t){return t<0?!1:(this._dictionarySize!==t&&(this._dictionarySize=t,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),!0)},n.Decoder.prototype.setLcLpPb=function(t,e,r){var o=1<<r;return t>8||e>4||r>4?!1:(this._literalDecoder.create(e,t),this._lenDecoder.create(o),this._repLenDecoder.create(o),this._posStateMask=o-1,!0)},n.Decoder.prototype.init=function(){var t=4;for(this._outWindow.init(!1),n.initBitModels(this._isMatchDecoders,192),n.initBitModels(this._isRep0LongDecoders,192),n.initBitModels(this._isRepDecoders,12),n.initBitModels(this._isRepG0Decoders,12),n.initBitModels(this._isRepG1Decoders,12),n.initBitModels(this._isRepG2Decoders,12),n.initBitModels(this._posDecoders,114),this._literalDecoder.init();t--;)this._posSlotDecoder[t].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},n.Decoder.prototype.decode=function(t,e,r){var o=0,s=0,u=0,l=0,c=0,f=0,d=0,p,v,g,h,m,y;for(this._rangeDecoder.setStream(t),this._outWindow.setStream(e),this.init();r<0||f<r;)if(p=f&this._posStateMask,this._rangeDecoder.decodeBit(this._isMatchDecoders,(o<<4)+p)===0)v=this._literalDecoder.getDecoder(f++,d),o>=7?d=v.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(s)):d=v.decodeNormal(this._rangeDecoder),this._outWindow.putByte(d),o=o<4?0:o-(o<10?3:6);else{if(this._rangeDecoder.decodeBit(this._isRepDecoders,o)===1)g=0,this._rangeDecoder.decodeBit(this._isRepG0Decoders,o)===0?this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(o<<4)+p)===0&&(o=o<7?9:11,g=1):(this._rangeDecoder.decodeBit(this._isRepG1Decoders,o)===0?h=u:(this._rangeDecoder.decodeBit(this._isRepG2Decoders,o)===0?h=l:(h=c,c=l),l=u),u=s,s=h),g===0&&(g=2+this._repLenDecoder.decode(this._rangeDecoder,p),o=o<7?8:11);else if(c=l,l=u,u=s,g=2+this._lenDecoder.decode(this._rangeDecoder,p),o=o<7?7:10,m=this._posSlotDecoder[g<=5?g-2:3].decode(this._rangeDecoder),m>=4){if(y=(m>>1)-1,s=(2|m&1)<<y,m<14)s+=n.reverseDecode2(this._posDecoders,s-m-1,this._rangeDecoder,y);else if(s+=this._rangeDecoder.decodeDirectBits(y-4)<<4,s+=this._posAlignDecoder.reverseDecode(this._rangeDecoder),s<0){if(s===-1)break;return!1}}else s=m;if(s>=f||s>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(s,g),f+=g,d=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},n.Decoder.prototype.setDecoderProperties=function(t){var e,r,o,s,u;return t.size<5||(e=t.readByte(),r=e%9,e=~~(e/9),o=e%5,s=~~(e/5),!this.setLcLpPb(r,o,s))?!1:(u=t.readByte(),u|=t.readByte()<<8,u|=t.readByte()<<16,u+=t.readByte()*16777216,this.setDictionarySize(u))},n.decompress=function(t,e,r,o){var s=new n.Decoder;if(!s.setDecoderProperties(t))throw"Incorrect stream properties";if(!s.decode(e,r,o))throw"Error in data stream";return!0},n.decompressFile=function(t,e){var r=new n.Decoder,o;if(!r.setDecoderProperties(t))throw"Incorrect stream properties";if(o=t.readByte(),o|=t.readByte()<<8,o|=t.readByte()<<16,o+=t.readByte()*16777216,t.readByte(),t.readByte(),t.readByte(),t.readByte(),!r.decode(t,e,o))throw"Error in data stream";return!0},n}var LZMA=createLZMA();function createWASM(){function n(e){for(var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=new Uint8Array(256),s=0;s<r.length;s++)o[r.charCodeAt(s)]=s;var u=e.length*.75,l=e.length,c,f=0,d,p,v,g;e[e.length-1]==="="&&(u--,e[e.length-2]==="="&&u--);var h=new ArrayBuffer(u),m=new Uint8Array(h);for(c=0;c<l;c+=4)d=o[e.charCodeAt(c)],p=o[e.charCodeAt(c+1)],v=o[e.charCodeAt(c+2)],g=o[e.charCodeAt(c+3)],m[f++]=d<<2|p>>4,m[f++]=(p&15)<<4|v>>2,m[f++]=(v&3)<<6|g&63;return h}var t="AGFzbQEAAAABSg1gAABgAX8Bf2ACf38Bf2AEf39/fwBgA39/fwBgAX8AYAJ/fwBgA39/fwF/YAR/f39/AX9gAn9/AGABfwF/YAABf2AEf39/fwF/AhsCA2VudgVhYm9ydAADA2VudgZtZW1vcnkCAAEDJiUBAQkKAgoKCwsLCwsAAgoBAgQKAQYFCAoFBQQEBwgCBwwCAQAABAQBcAABBhoFfwFBAAt/AUEAC38BQQALfwFBAAt/AUEACwc9BgZtZW1vcnkCAAV0YWJsZQEABXJlc2V0AA0KbmV3VThBcnJheQAQCnVucGFja1NpemUAFAZkZWNvZGUAIwgBJAkHAQBBAAsBJQqAViVoAQN/IABBgICAgARLBEAACyMBIgEgAEEBIABBAUsbakEHakF4cSICPwAiA0EQdEsEQCADIAIgAWtB//8DakGAgHxxQRB2IgAgAyAAShtAAEEASARAIABAAEEASARAAAsLCyACJAEgAQsbAQF/QQFBICAAQQdqZ2t0EAEiASAANgIAIAELkQMBAX8gAUUEQA8LIABBADoAACAAIAFqQQFrQQA6AAAgAUECTQRADwsgAEEBakEAOgAAIABBAmpBADoAACAAIAFqIgJBAmtBADoAACACQQNrQQA6AAAgAUEGTQRADwsgAEEDakEAOgAAIAAgAWpBBGtBADoAACABQQhNBEAPC0EAIABrQQNxIgIgAGoiAEEANgIAIAEgAmtBfHEiASAAakEEa0EANgIAIAFBCE0EQA8LIABBBGpBADYCACAAQQhqQQA2AgAgACABaiICQQxrQQA2AgAgAkEIa0EANgIAIAFBGE0EQA8LIABBDGpBADYCACAAQRBqQQA2AgAgAEEUakEANgIAIABBGGpBADYCACAAIAFqIgJBHGtBADYCACACQRhrQQA2AgAgAkEUa0EANgIAIAJBEGtBADYCACAAQQRxQRhqIgIgAGohACABIAJrIQEDQCABQSBPBEAgAEIANwMAIABBCGpCADcDACAAQRBqQgA3AwAgAEEYakIANwMAIAFBIGshASAAQSBqIQAMAQsLC1EBA38gAEH+////AEsEQEEAQSBBLUEnEAAACyAAQQJ0IgMQAiECQQgQASIBQQA2AgAgAUEANgIEIAEgAjYCACABIAA2AgQgAkEIaiADEAMgAQtmAQF/IAFB/P///wFLBEBBAEHAAEEXQSIQAAALIAFBAXQiARACIgJBCGogARADIABFBEBBDBABIQALIABBADYCACAAQQA2AgQgAEEANgIIIAAgAjYCACAAQQA2AgQgACABNgIIIAALCgBBDBABIAAQBQsuAQF/QQgQASIBQQA2AgAgAUEANgIEIAEgADYCBCABQQEgASgCBHQQBjYCACABC6EBAQR/QRAQASIBQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgxBEBAEIQIDQCAAQRBIBEBBAxAHIQMgAigCACAAQQJ0aiADNgIIIABBAWohAAwBCwsgASACNgIEQRAQBCECQQAhAANAIABBEEgEQEEDEAchAyACKAIAIABBAnRqIAM2AgggAEEBaiEADAELCyABIAI2AgggAUEIEAc2AgwgAQs0AQF/QRQQASIAQQA2AgAgAEEAOgAEIABBADYCCCAAQQA2AgwgAEEANgIQIABBDTYCCCAAC0IBAX9BGRABIgBBADYCACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEANgIUIABBADoAGCAAQQA2AhAgAAu1AgEEf0HQABABIgBBADoAACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEAOgAUIABBADYCGCAAQQA2AhwgAEEANgIgIABBADYCJCAAQQA2AiggAEEANgIsIABBADYCMCAAQQA2AjQgAEEANgI4IABBADYCPCAAQQA2AkAgAEEANgJEIABBADYCSCAAQQA2AkxBBBAEIQIDQCABQQRIBEBBBhAHIQMgAigCACABQQJ0aiADNgIIIAFBAWohAQwBCwsgACACNgIkIABBBBAHNgIoIABB8wAQBjYCLCAAQcABEAY2AjAgAEEMEAY2AjQgAEEMEAY2AjggAEEMEAY2AjwgAEEMEAY2AkAgAEHAARAGNgJEIAAQCDYCSCAAEAg2AkwgABAJNgIEIAAQCjYCCCAACx8BAX9BCBABIgBBADYCACAAQQA2AgQgABALNgIAIAALCgAjACQBEAwkAwthAQF/IAFB+P///wNLBEBBAEHAAEEXQSIQAAALIAEQAiICQQhqIAEQAyAARQRAQQwQASEACyAAQQA2AgAgAEEANgIEIABBADYCCCAAIAI2AgAgAEEANgIEIAAgATYCCCAACwoAQQwQASAAEA4LBgAgABAPCyoAIAEgACgCCE8EQEEAQcAAQSdBPxAAAAsgACgCBCABIAAoAgBqai0ACAssACABIAAoAghPBEBBAEHAAEEyQT8QAAALIAAoAgQgASAAKAIAamogAjoACAtkAQJ/QQ0QDyECA0AgAUENSARAIAIgASAAIAEQEUH/AXEQEiABQQFqIQEMAQsLQQAhAEEAIQEDQCABQQhIBEAgAiABQQVqEBFB/wFxIAFBA3R0IAByIQAgAUEBaiEBDAELCyAACwYAIAAQEwsnACAAIAEQDzYCCCAAQQA2AgwgACABNgIUIABBADoAGCAAQQA2AgALJAAgACgCCCAAKAIYEBUgAEGABiAAKAIMIAAtABRqdBAGNgIgC5UBAQR/IAEhBSAAIgYoAgAhASAAKAIEIQcgACgCCEEBdiEEIAJBAEgEfyACIARqIgBBACAAQQBKGwUgAiIAIAQgACAESBsLIQIgA0EASAR/IAMgBGoiAEEAIABBAEobBSADIgAgBCAAIARIGwshAwNAIAIgA05FBEAgAkEBdCABaiAHaiAFOwEIIAJBAWohAgwBCwsgBgssAQF/AkACQAJAIwRBAWsOAwEBAgALAAtB/////wchAQsgAEGACEEAIAEQFwvBAQECfyAAQQIQBjYCACAAKAIAIgEoAgAgASgCBGpBgAg7AQggACgCACICKAIAIQEgAigCBCABQQJqakGACDsBCCAAKAIMKAIAQQEkBBAYGkEAIQIDQCACQRBIBEAgAiAAKAIEKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAiAAKAIIKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAkEBaiECDAELCwuHAgEFfyAAIQJBgAYgACgCDCAALQAUanQhAQNAIAMgAUgEQCACKAIgIgQoAgAhBSAEKAIEIANBAXQgBWpqQYAIOwEIIANBAWohAwwBCwsgAiEBQQAhAgNAIAJBBEkEQCACIAEoAiQoAgAiAygCAEECdkkEfyACQQJ0IANqKAIIBQALKAIAQQEkBBAYGiACQQFqIQIMAQsLIAEoAigoAgBBASQEEBgaIAEoAixBASQEEBgaIAAoAjBBASQEEBgaIAAoAjRBASQEEBgaIAAoAjhBASQEEBgaIAAoAjxBASQEEBgaIAAoAkBBASQEEBgaIAAoAkRBASQEEBgaIAAoAkgQGSAAKAJMEBkLyAwBA38DQCABQQNxIAIgAhsEQCAAIgRBAWohACABIgNBAWohASAEIAMtAAA6AAAgAkEBayECDAELCyAAQQNxRQRAA0AgAkEQTwRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAEEIaiABQQhqKAIANgIAIABBDGogAUEMaigCADYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsgAkEIcQRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAUEIaiEBIABBCGohAAsgAkEEcQRAIAAgASgCADYCACABQQRqIQEgAEEEaiEACyACQQJxBEAgACABLwEAOwEAIAFBAmohASAAQQJqIQALIAJBAXEEQCAAIAEtAAA6AAALDwsgAkEgTwRAAkACQAJAIABBA3EiA0EBRwRAIANBAkYNASADQQNGDQIMAwsgASgCACEFIAAgASIDLQAAOgAAIABBAWoiASABIANBAWoiAS0AADoAAEEBaiIEQQFqIQAgAUEBaiIDQQFqIQEgBCADLQAAOgAAIAJBA2shAgNAIAJBEU8EQCAAIAFBAWooAgAiA0EIdCAFQRh2cjYCACAAQQRqIAFBBWooAgAiBUEIdCADQRh2cjYCACAAQQhqIAFBCWooAgAiA0EIdCAFQRh2cjYCACAAQQxqIAFBDWooAgAiBUEIdCADQRh2cjYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsMAgsgASgCACEFIAAgAS0AADoAACAAQQFqIgRBAWohACABQQFqIgNBAWohASAEIAMtAAA6AAAgAkECayECA0AgAkESTwRAIAAgAUECaigCACIDQRB0IAVBEHZyNgIAIABBBGogAUEGaigCACIFQRB0IANBEHZyNgIAIABBCGogAUEKaigCACIDQRB0IAVBEHZyNgIAIABBDGogAUEOaigCACIFQRB0IANBEHZyNgIAIAFBEGohASAAQRBqIQAgAkEQayECDAELCwwBCyABKAIAIQUgACIEQQFqIQAgASIDQQFqIQEgBCADLQAAOgAAIAJBAWshAgNAIAJBE08EQCAAIAFBA2ooAgAiA0EYdCAFQQh2cjYCACAAQQRqIAFBB2ooAgAiBUEYdCADQQh2cjYCACAAQQhqIAFBC2ooAgAiA0EY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";return n(t)}function decodeLZMA(n,t,e){try{var r={data:t,offset:0,readByte:function(){return this.data[this.offset++]}},o=r.data.length,s={data:[],offset:0,writeByte:function(c){var f=Math.floor(this.offset/o);this.data[f]||(this.data[f]=new Uint8Array(o)),this.data[f][this.offset%o]=c,this.offset++}};n.decompressFile(r,s);for(var u=new Uint8Array(s.offset),l=0;l<s.offset;l++)u[l]=s.data[Math.floor(l/o)][l%o];e(null,u)}catch(c){e(c)}}function decodeLZMAWithWASM(n,t,e){var r=24;try{var o=new WebAssembly.Memory({initial:16}),s=new WebAssembly.Module(n),u=new WebAssembly.Instance(s,{env:{memory:o,abort:function(){e(new Error("webAssembly abort"))}}}),l=u.exports,c=l.newU8Array(t.length),f=new Uint8Array(o.buffer,c+r,t.length);f.set(t);var d=l.decode(c),p=new Uint32Array(o.buffer,d,4),v=p[0],g=p[2],h=p[3];v?e(null,new Uint8Array(o.buffer,h+r,g).slice(0,g)):e(new Error("lzma deocder error"))}catch(m){e(m)}}var lzmaWorkerSource=`
|
|
883
|
+
`,EXTENSION_NAME$4="KHR_texture_basisu",KHR_texture_basisu=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadTexture=function(e,r){var o=r.json.textures[e];if(!o.extensions||!o.extensions[EXTENSION_NAME$4])return null;var s=o.extensions[EXTENSION_NAME$4],u=r.json.images[s.source],l=null;if(u.bufferView!==void 0)l=r.loadBufferView(u.bufferView).then(function(c){return ktx2.parse(c)});else if(u.uri)l=r.options.fetcher.ajax(r.resolveResouce(u.uri),{responseType:"arraybuffer"}).then(function(c){return ktx2.parse(c.body)});else throw new Error("glTF: Invalid image defs.");return l},t}(BaseExtension),EXTENSION_NAME$3="KHR_texture_transform",KHR_texture_transform=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.extendTexture=function(e,r,o){var s=r.extensions!==void 0?r.extensions[EXTENSION_NAME$3]:void 0;return s?(s.texCoord!==void 0&&console.warn('glTF: Custom UV sets in "'+EXTENSION_NAME$3+'" extension not yet supported.'),s.offset===void 0&&s.rotation===void 0&&s.scale===void 0||(e=e.clone(),e.needsUpdate=!0,s.offset!==void 0&&e.offset.fromArray(s.offset),s.rotation!==void 0&&(e.rotation=s.rotation),s.scale!==void 0&&e.repeat.fromArray(s.scale)),e):null},t}(BaseExtension),KHR_mesh_quantization=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t}(BaseExtension),KHR_materials_unlit=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t}(BaseExtension),meshoptDecoder=function(){var n="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:78Yqdbk:qzezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhlaicefhodnadTmbalc;WFbGglcjdalcjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxdndndndnalc9WGgmTmbcbhPcehsawcjdfhzaohHinaraH9Rax6midnaraHaxfgo9RcK6mbczhlinalgic9Wfglawcj;cbffhOdndndndndnaHalco4fRbbalci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOaoRblaoRbbgAco4glalciSgCE86bbawcj;cbfaifglcGfaoclfaCfgORbbaAcl4ciGgCaCciSgCE86bbalcVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbalc7faOaCfgORbbaAciGgAaAciSgAE86bbalctfaOaAfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkaOaoRbwaoRbbgAcl4glalcsSgCE86bbawcj;cbfaifglcGfaocwfaCfgORbbaAcsGgAaAcsSgAE86bbalcVfaOaAfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekaOao8Pbb83bbaOcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaiczfhlarao9RcL0mekkaiam6miaoTmidnakTmbawaPfRbbhOawcj;cbfhlazhiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkkazcefhzaPcefgPad6hsaohHaPad9hmexvkkcbhoasceGmdxikaoaxad2fhPdnakTmbcbhmcehsawcjdfhCinarao9Rax6miaoTmdaoaxfhoawamfRbbhOawcj;cbfhlaChiakhHinaialRbbgAce4cbaAceG9R7aOfgO86bbaiadfhialcefhlaHcufgHmbkaCcefhCamcefgmad6hsamad9hmbkaPhoxikcbhlcehsinarao9Rax6mdaoTmeaoaxfhoalcefglad6hsadal9hmbkaPhoxdkcbhoasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekcbc99arao9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;xzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj;8ifcjjj98G::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;a9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;d8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgAclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;tzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhrcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgDc;Ve0mbavc;abfalaDcu7gPcl4fcsGcitfgsydlhzasydbhHdnaDcsGgDak9pmbavaiaPfcsGcdtfydbaxaDEhsaDThDdndnadcd9hmbabarcetfgPaH87ebaPcdfaz87ebaPclfas87ebxekabarcdtfgPaHBdbaPclfazBdbaPcwfasBdbkaxaDfhxavc;abfalcitfgPasBdbaPazBdlavaicdtfasBdbavc;abfalcefcsGglcitfgPaHBdbaPasBdlaiaDfhialcefhlxdkdndnaDcsSmbamaDfaDc987fcefhmxekaocefhDao8SbbgscFeGhPdndnascu9mmbaDhoxekaocvfhoaPcFbGhPcrhsdninaD8SbbgOcFbGastaPVhPaOcu9kmeaDcefhDascrfgsc8J9hmbxdkkaDcefhokaPce4cbaPceG9R7amfhmkdndnadcd9hmbabarcetfgDaH87ebaDcdfaz87ebaDclfam87ebxekabarcdtfgDaHBdbaDclfazBdbaDcwfamBdbkavc;abfalcitfgDamBdbaDazBdlavaicdtfamBdbavc;abfalcefcsGglcitfgDaHBdbaDamBdlaicefhialcefhlxekdnaDcpe0mbaxcefgOavaiaqaDcsGfRbbgscl49RcsGcdtfydbascz6gPEhDavaias9RcsGcdtfydbaOaPfgzascsGgOEhsaOThOdndnadcd9hmbabarcetfgHax87ebaHcdfaD87ebaHclfas87ebxekabarcdtfgHaxBdbaHclfaDBdbaHcwfasBdbkavaicdtfaxBdbavc;abfalcitfgHaDBdbaHaxBdlavaicefgicsGcdtfaDBdbavc;abfalcefcsGcitfgHasBdbaHaDBdlavaiaPfcsGgicdtfasBdbavc;abfalcdfcsGglcitfgDaxBdbaDasBdlalcefhlaiaOfhiazaOfhxxekaxcbaoRbbgHEgAaDc;:eSgDfhzaHcsGhCaHcl4hXdndnaHcs0mbazcefhOxekazhOavaiaX9RcsGcdtfydbhzkdndnaCmbaOcefhxxekaOhxavaiaH9RcsGcdtfydbhOkdndnaDTmbaocefhDxekaocdfhDao8SbegPcFeGhsdnaPcu9kmbaocofhAascFbGhscrhodninaD8SbbgPcFbGaotasVhsaPcu9kmeaDcefhDaocrfgoc8J9hmbkaAhDxekaDcefhDkasce4cbasceG9R7amfgmhAkdndnaXcsSmbaDhsxekaDcefhsaD8SbbgocFeGhPdnaocu9kmbaDcvfhzaPcFbGhPcrhodninas8SbbgDcFbGaotaPVhPaDcu9kmeascefhsaocrfgoc8J9hmbkazhsxekascefhskaPce4cbaPceG9R7amfgmhzkdndnaCcsSmbashoxekascefhoas8SbbgDcFeGhPdnaDcu9kmbascvfhOaPcFbGhPcrhDdninao8SbbgscFbGaDtaPVhPascu9kmeaocefhoaDcrfgDc8J9hmbkaOhoxekaocefhokaPce4cbaPceG9R7amfgmhOkdndnadcd9hmbabarcetfgDaA87ebaDcdfaz87ebaDclfaO87ebxekabarcdtfgDaABdbaDclfazBdbaDcwfaOBdbkavc;abfalcitfgDazBdbaDaABdlavaicdtfaABdbavc;abfalcefcsGcitfgDaOBdbaDazBdlavaicefgicsGcdtfazBdbavc;abfalcdfcsGcitfgDaABdbaDaOBdlavaiaHcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiarcifgrae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbadczfhdaeclfgeav6mbkkdnaval9pmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb",e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),r=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=WebAssembly.validate(e)?t:n,s,u=WebAssembly.instantiate(l(o),{}).then(function(A){s=A.instance,s.exports.__wasm_call_ctors()});function l(A){for(var E=new Uint8Array(A.length),b=0;b<A.length;++b){var T=A.charCodeAt(b);E[b]=T>96?T-97:T>64?T-39:T+4}for(var _=0,b=0;b<A.length;++b)E[_++]=E[b]<60?r[E[b]]:(E[b]-60)*64+E[++b];return E.buffer.slice(0,_)}function c(A,E,b,T,_,R){var S=s.exports.sbrk,M=b+3&-4,B=S(M*T),H=S(_.length),w=new Uint8Array(s.exports.memory.buffer);w.set(_,H);var C=A(B,b,T,H,_.length);if(C==0&&R&&R(B,M,T),E.set(w.subarray(B,B+b*T)),S(B-S(0)),C!=0)throw new Error("Malformed buffer data: "+C)}var f={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},d={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},p=[],v=0;function g(A){var E={object:new Worker(A),pending:0,requests:{}};return E.object.onmessage=function(b){var T=b.data;E.pending-=T.count,E.requests[T.id][T.action](T.value),delete E.requests[T.id]},E}function h(A){for(var E="var instance; var ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(l(o))+"]), {}).then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });self.onmessage = workerProcess;"+c.toString()+y.toString(),b=new Blob([E],{type:"text/javascript"}),T=URL.createObjectURL(b),_=0;_<A;++_)p[_]=g(T);URL.revokeObjectURL(T)}function m(A,E,b,T,_){for(var R=p[0],S=1;S<p.length;++S)p[S].pending<R.pending&&(R=p[S]);return new Promise(function(M,B){var H=new Uint8Array(b),w=v++;R.pending+=A,R.requests[w]={resolve:M,reject:B},R.object.postMessage({id:w,count:A,size:E,source:H,mode:T,filter:_},[H.buffer])})}function y(A){u.then(function(){var E=A.data;try{var b=new Uint8Array(E.count*E.size);c(s.exports[E.mode],b,E.count,E.size,E.source,s.exports[E.filter]),self.postMessage({id:E.id,count:E.count,action:"resolve",value:b},[b.buffer])}catch(T){self.postMessage({id:E.id,count:E.count,action:"reject",value:T})}})}return{ready:u,supported:!0,useWorkers:function(A){h(A)},decodeVertexBuffer:function(A,E,b,T,_){c(s.exports.meshopt_decodeVertexBuffer,A,E,b,T,s.exports[f[_]])},decodeIndexBuffer:function(A,E,b,T){c(s.exports.meshopt_decodeIndexBuffer,A,E,b,T)},decodeIndexSequence:function(A,E,b,T){c(s.exports.meshopt_decodeIndexSequence,A,E,b,T)},decodeGltfBuffer:function(A,E,b,T,_,R){c(s.exports[d[_]],A,E,b,T,s.exports[f[R]])},decodeGltfBufferAsync:function(A,E,b,T,_){return p.length>0?m(A,E,b,d[T],f[_]):u.then(function(){var R=new Uint8Array(A*E);return c(s.exports[d[T]],R,A,E,b,s.exports[f[_]]),R})}}}(),EXTENSION_NAME$2="EXT_meshopt_compression",EXT_meshopt_compression=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadBufferView=function(e,r){var o=r.json,s=o.bufferViews[e];if(s.extensions&&s.extensions[EXTENSION_NAME$2]){var u=s.extensions[EXTENSION_NAME$2],l=r.loadBuffer(u.buffer);if(!meshoptDecoder.supported){if(o.extensionsRequired&&o.extensionsRequired.indexOf(EXTENSION_NAME$2)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return Promise.all([l,meshoptDecoder.ready]).then(function(c){var f=c[0],d=u.byteOffset||0,p=u.byteLength||0,v=u.count,g=u.byteStride,h=new ArrayBuffer(v*g),m=new Uint8Array(f,d,p);return meshoptDecoder.decodeGltfBuffer(new Uint8Array(h),v,g,m,u.mode,u.filter),h})}else return null},t}(BaseExtension),EXTENSION_NAME$1="EXT_texture_webp",EXT_texture_webp=function(n){__extends(t,n);function t(){var e=n!==null&&n.apply(this,arguments)||this;return e.supportsWep=!1,e}return t.prototype.prepare=function(e){var r=this;return imageSupport().then(function(o){r.supportsWep=o.webp})},t.prototype.loadTexture=function(e,r){var o=r.json,s=o.textures[e];if(!s.extensions||!s.extensions[EXTENSION_NAME$1]||!this.supportsWep)return null;var u=s.extensions[EXTENSION_NAME$1];return r.loadImage(u.source).then(function(l){var c=new THREE__namespace.Texture(l);c.needsUpdate=!0,c.flipY=!1,s.name&&(c.name=s.name);var f=r.json.samplers||{},d=f[s.sampler]||{};return c.magFilter=WEBGL_FILTERS[d.magFilter]||THREE__namespace.LinearFilter,c.minFilter=WEBGL_FILTERS[d.minFilter]||THREE__namespace.LinearMipmapLinearFilter,c.wrapS=WEBGL_WRAPPINGS[d.wrapS]||THREE__namespace.RepeatWrapping,c.wrapT=WEBGL_WRAPPINGS[d.wrapT]||THREE__namespace.RepeatWrapping,c.onUpdate=function(){l.close()},c})},t}(BaseExtension),EXTENSION_NAME="CESIUM_RTC",CESIUM_RTC=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.emitResult=function(e,r){if(r.json.extensions[EXTENSION_NAME]&&r.json.extensions[EXTENSION_NAME].center){var o=r.json.extensions[EXTENSION_NAME].center;e.CESIUM_RTC={center:new THREE__namespace.Vector3().fromArray(o)}}},t}(BaseExtension),PBM_mesh=function(n){__extends(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.loadMesh=function(e,r){var o=this,s=r.json.meshes[e],u=s.primitives,l=Promise.all(u.map(function(d){return r.loadGeometry(d)})),c=Promise.all(u.map(function(d){return o.loadPBMMaterial(d,r)})),f=Promise.all([l,c]).then(function(d){for(var p=d[0],v=d[1],g=[],h=0;h<u.length;h++){var m=u[h],y=p[h],A=v[h];y.attributes.normal===void 0&&(A.flatShading=!0),y.attributes.tangent===void 0&&A.normalScale&&(A.normalScale.y*=-1);var E=m.mode||WEBGL_CONSTANTS.TRIANGLES,b=void 0;if(E===WEBGL_CONSTANTS.TRIANGLES||E===WEBGL_CONSTANTS.TRIANGLE_STRIP||E===WEBGL_CONSTANTS.TRIANGLE_FAN)if(E===WEBGL_CONSTANTS.TRIANGLE_STRIP?y=r.toGeometryTrianglesDrawMode(y,THREE__namespace.TriangleStripDrawMode):E===WEBGL_CONSTANTS.TRIANGLE_FAN&&(y=r.toGeometryTrianglesDrawMode(y,THREE__namespace.TriangleFanDrawMode)),y.clearGroups(),y.addGroup(0,y.index?y.index.count:y.attributes.position.count,0),r.disposeSet.add(y),s.isSkinnedMesh){var T=new PBMSkinnedMesh(y,[A]);y.attributes.skinWeight.normalized||T.normalizeSkinWeights(),b=T}else b=new PBMMesh(y,[A]);else if(E===WEBGL_CONSTANTS.POINTS)b=new PBMPointCloud(y,A);else throw new Error("glTF: Primitive mode unsupported: "+E);if(Object.keys(y.morphAttributes).length>0){if(s.weights!==void 0)for(var _=0,R=s.weights.length;_<R;_++)b.morphTargetInfluences[_]=s.weights[_];if(s.extras&&Array.isArray(s.extras.targetNames)){var S=s.extras.targetNames;if(b.morphTargetInfluences.length===S.length){b.morphTargetDictionary={};for(var _=0,R=S.length;_<R;_++)b.morphTargetDictionary[S[_]]=_}else console.warn("glTF: Invalid extras.targetNames length. Ignoring names.")}}b.name=r.createUniqueName(s.name||"mesh_"+e),g.push(b)}if(g.length===1)return g[0];for(var M=new THREE__namespace.Group,B=0,H=g;B<H.length;B++){var b=H[B];M.add(b)}return M});return f},t.prototype.loadPBMMaterial=function(e,r){var o,s=(o=e.mode)!==null&&o!==void 0?o:WEBGL_CONSTANTS.TRIANGLES,u=null;if(s===WEBGL_CONSTANTS.TRIANGLES||s===WEBGL_CONSTANTS.TRIANGLE_STRIP||s===WEBGL_CONSTANTS.TRIANGLE_FAN)u=this.loadPBMMeshMaterial(e,r);else if(s===WEBGL_CONSTANTS.POINTS)u=this.loadPBMPointCloudMaterial(e,r);else throw new Error("glTF: Primitive mode unsupported: "+s);return u},t.prototype.extendTexture=function(e,r,o){return e.minFilter=THREE__namespace.LinearFilter,e.magFilter=THREE__namespace.LinearFilter,e.generateMipmaps=!1,e},t.prototype.loadPBMPointCloudMaterial=function(e,r){var o=new PBMPointCloudMaterial;return Object.keys(e.attributes).filter(function(s){return ATTRIBUTES[s]==="normal"}).length>0&&(o.defines.USE_POINT_NORMAL=!0),r.disposeSet.add(o),Promise.resolve(o)},t.prototype.loadPBMMeshMaterial=function(e,r){var o=[],s=new PBMMeshMaterial("basic");if(s.color=new THREE__namespace.Color(1,1,1),Object.keys(e.attributes).filter(function(d){return ATTRIBUTES[d]==="color"}).length>0&&(s.vertexColors=!0),Object.keys(e.attributes).filter(function(d){return ATTRIBUTES[d]==="tangent"}).length===0&&(s.normalScale&&(s.normalScale.y*=-1),s.clearcoatNormalScale&&(s.clearcoatNormalScale.y*=-1)),e.material!==void 0){var u=r.json.materials[e.material];u.name&&(s.name=u.name);var l=u.pbrMetallicRoughness||{};if(Array.isArray(l.baseColorFactor)){var c=l.baseColorFactor;s.color=new THREE__namespace.Color().fromArray(c)}if(l.baseColorTexture!==void 0&&o.push(r.createMaterialTexture(l.baseColorTexture).then(function(d){r.disposeSet.add(d),d.encoding=THREE__namespace.sRGBEncoding,s.map=d})),u.doubleSided===!0&&(s.side=THREE__namespace.DoubleSide),u.normalTexture!==void 0&&(o.push(r.createMaterialTexture(u.normalTexture).then(function(d){r.disposeSet.add(d),s.normalMap=d})),s.normalScale=new THREE__namespace.Vector2(1,1),u.normalTexture.scale!==void 0)){var f=u.normalTexture.scale;s.normalScale.set(f,f)}}return r.disposeSet.add(s),Promise.all(o).then(function(){return s.refreshUniforms(),s})},t}(BaseExtension),EXTENSIONS={KHR_binary_glTF,KHR_draco_mesh_compression,KHR_texture_basisu,KHR_texture_transform,KHR_mesh_quantization,KHR_materials_unlit,EXT_meshopt_compression,EXT_texture_webp,CESIUM_RTC,PBM_mesh};function parseGltf(n,t){var e,r,o,s={};if(t.addonExtensions)for(var u=0,l=t.addonExtensions;u<l.length;u++){var c=l[u];c in EXTENSIONS&&(s[c]=new EXTENSIONS[c])}var f,d;if(typeof n=="string")d=n;else{var p=EXTENSIONS.KHR_binary_glTF.getMagic(n);if(p===EXTENSIONS.KHR_binary_glTF.HEADER_MAGIC){f=new EXTENSIONS.KHR_binary_glTF;try{f.loadGlbBinary(n)}catch(A){return Promise.reject(A)}s.KHR_binary_glTF=f,d=f.content}else d=decodeText(new Uint8Array(n))}var v=JSON.parse(d);if(v.asset===void 0||Number(v.asset.version[0])<2)return Promise.reject(new Error("glTF: Unsupported asset. glTF versions >=2.0 are supported."));if(v.extensionsUsed)for(var g=v.extensionsRequired||[],h=0;h<v.extensionsUsed.length;h++){var m=v.extensionsUsed[h];s[m]||(EXTENSIONS[m]?s[m]=new EXTENSIONS[m]:g.indexOf(m)>=0&&console.warn('glTF: Unknown extension "'+m+'".'))}var y=new Parser(v,s,{copyUV2:(e=t.copyUV2)!==null&&e!==void 0?e:!0,resourcePath:(r=t.resourcePath)!==null&&r!==void 0?r:"",search:(o=t.search)!==null&&o!==void 0?o:"",fetcher:t.fetcher});return y.parse().then(function(A){return f&&f.clear(),A})}var ROTATE_X_MATRIX$6=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadB3dm(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Y",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u={uri:n,gltfUpAxis:o};return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return l.body})}).then(function(l){return Promise.resolve(0).then(function(c){return parseHeader$1(u,l,c)}).then(function(c){return parseTable(u,l,c)}).then(function(c){return parseGlTFArrayBuffer(u,l,c)})}).then(function(){var l;return parseGltf(u.gltfArrayBuffer,{copyUV2:!1,addonExtensions:["PBM_mesh"],resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(l=n.split("?")[1])!==null&&l!==void 0?l:"",fetcher:s}).then(function(c){var f=new THREE__namespace.Matrix4;o==="Y"&&f.premultiply(ROTATE_X_MATRIX$6);var d=new THREE__namespace.Matrix4().setPosition(u.rtcCenter[0],u.rtcCenter[1],u.rtcCenter[2]);if(f.premultiply(d),c.CESIUM_RTC){var p=new THREE__namespace.Matrix4().setPosition(c.CESIUM_RTC.center);f.premultiply(p)}var v=c.scene;return v.applyMatrix4(f),delete u.featureTableBinary,delete u.batchTableBinary,delete u.gltfArrayBuffer,{type:"b3dm",upAxis:"Z",uri:u.uri,byteLength:u.byteLength,scene:v,textures:c.textures,dispose:function(){return c.dispose()}}})})}const encodedJs="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoYSl7b25tZXNzYWdlPWZ1bmN0aW9uKHIpe1Byb21pc2UucmVzb2x2ZShyLmRhdGEpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIGEobil9KS50aGVuKGZ1bmN0aW9uKG4pe3ZhciBlPW4ub3V0cHV0LHQ9bi50cmFuc2ZlcjtyZXR1cm4gcG9zdE1lc3NhZ2UoZSx0KX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3JldHVybiBwb3N0TWVzc2FnZSh7JCRlcnJvcjpufSl9KX19dmFyIHUseTsoZnVuY3Rpb24oYSl7YVthLkJZVEU9NTEyMF09IkJZVEUiLGFbYS5VTlNJR05FRF9CWVRFPTUxMjFdPSJVTlNJR05FRF9CWVRFIixhW2EuU0hPUlQ9NTEyMl09IlNIT1JUIixhW2EuVU5TSUdORURfU0hPUlQ9NTEyM109IlVOU0lHTkVEX1NIT1JUIixhW2EuSU5UPTUxMjRdPSJJTlQiLGFbYS5VTlNJR05FRF9JTlQ9NTEyNV09IlVOU0lHTkVEX0lOVCIsYVthLkZMT0FUPTUxMjZdPSJGTE9BVCIsYVthLkRPVUJMRT01MTMwXT0iRE9VQkxFIn0pKHl8fCh5PXt9KSk7dmFyIGM9KHU9e30sdVt5LkRPVUJMRV09RmxvYXQ2NEFycmF5LHVbeS5GTE9BVF09RmxvYXQzMkFycmF5LHVbeS5VTlNJR05FRF9TSE9SVF09VWludDE2QXJyYXksdVt5LlVOU0lHTkVEX0lOVF09VWludDMyQXJyYXksdVt5LlVOU0lHTkVEX0JZVEVdPVVpbnQ4QXJyYXksdVt5LkJZVEVdPUludDhBcnJheSx1W3kuU0hPUlRdPUludDE2QXJyYXksdVt5LklOVF09SW50MzJBcnJheSx1KSxGPXtET1VCTEU6eS5ET1VCTEUsRkxPQVQ6eS5GTE9BVCxVTlNJR05FRF9TSE9SVDp5LlVOU0lHTkVEX1NIT1JULFVOU0lHTkVEX0lOVDp5LlVOU0lHTkVEX0lOVCxVTlNJR05FRF9CWVRFOnkuVU5TSUdORURfQllURSxCWVRFOnkuQllURSxTSE9SVDp5LlNIT1JULElOVDp5LklOVH07ZnVuY3Rpb24gTyhhKXt2YXIgcj1jW2FdO2lmKCFyKXRocm93IG5ldyBFcnJvcigiRmFpbGVkIHRvIGNvbnZlcnQgR0wgdHlwZSIpO3JldHVybiByfWZ1bmN0aW9uIHAoYSl7dmFyIHI9TyhhKTtyZXR1cm4gci5CWVRFU19QRVJfRUxFTUVOVH1mdW5jdGlvbiBfKGEscixuLGUpe249PT12b2lkIDAmJihuPTApO3ZhciB0PU8oYSk7aWYobiVwKGEpIT09MCl7dmFyIGk9ZT9yLnNsaWNlKG4sbitlKnAoYSkpOnIuc2xpY2Uobik7cmV0dXJuIG5ldyB0KGkpfWVsc2UgcmV0dXJuIG5ldyB0KHIsbixlIT1udWxsP2U6KHIuYnl0ZUxlbmd0aC1uKS9wKGEpKX1mdW5jdGlvbiBsKGEpe3ZhciByPUZbYV07aWYoIXIpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gY29udmVydCBHTCB0eXBlIik7cmV0dXJuIHJ9dmFyIFI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKHIsbil7dGhpcy5mZWF0dXJlc0xlbmd0aD0wLHRoaXMuY2FjaGVkVHlwZWRBcnJheXM9e30sdGhpcy5qc29uPXIsdGhpcy5idWZmZXI9bjt2YXIgZT10aGlzLmdldEdsb2JhbFByb3BlcnR5KCJQT0lOVFNfTEVOR1RIIix5LlVOU0lHTkVEX0lOVCwxKTtlJiZlLmxlbmd0aCYmKHRoaXMuZmVhdHVyZXNMZW5ndGg9ZVswXSl9cmV0dXJuIGEucHJvdG90eXBlLmdldEV4dGVuc2lvbj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5qc29uLmV4dGVuc2lvbnMmJnRoaXMuanNvbi5leHRlbnNpb25zW3JdfSxhLnByb3RvdHlwZS5oYXNQcm9wZXJ0eT1mdW5jdGlvbihyKXtyZXR1cm4hIXRoaXMuanNvbltyXX0sYS5wcm90b3R5cGUuZ2V0R2xvYmFsUHJvcGVydHk9ZnVuY3Rpb24ocixuLGUpe3ZhciB0PXRoaXMuanNvbltyXTtpZih0eXBlb2YgdD09Im51bWJlciIpe3ZhciBpPU8obik7cmV0dXJuIG5ldyBpKFt0XSl9ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgaT1PKG4pO3JldHVybiBuZXcgaSh0KX1lbHNlIGlmKHQmJk51bWJlci5pc0Zpbml0ZSh0LmJ5dGVPZmZzZXQpKXJldHVybiB0aGlzLmdldFR5cGVkQXJyYXlGcm9tQmluYXJ5KHIsbixlLDEsdC5ieXRlT2Zmc2V0KTtyZXR1cm4gbnVsbH0sYS5wcm90b3R5cGUuZ2V0UHJvcGVydHlBcnJheT1mdW5jdGlvbihyLG4sZSl7dmFyIHQ9dGhpcy5qc29uW3JdO3JldHVybiB0JiZOdW1iZXIuaXNGaW5pdGUodC5ieXRlT2Zmc2V0KT8oImNvbXBvbmVudFR5cGUiaW4gdCYmKG49bCh0LmNvbXBvbmVudFR5cGUpKSx0aGlzLmdldFR5cGVkQXJyYXlGcm9tQmluYXJ5KHIsbixlLHRoaXMuZmVhdHVyZXNMZW5ndGgsdC5ieXRlT2Zmc2V0KSk6dGhpcy5nZXRUeXBlZEFycmF5RnJvbUFycmF5KHIsbix0KX0sYS5wcm90b3R5cGUuZ2V0UHJvcGVydHk9ZnVuY3Rpb24ocixuLGUsdCxpKXt2YXIgbz10aGlzLmpzb25bcl07aWYoIW8pcmV0dXJuIG51bGw7dmFyIHY9dGhpcy5nZXRQcm9wZXJ0eUFycmF5KHIsbixlKTtpZihlPT09MSlyZXR1cm4gaVswXT12W3RdLGk7Zm9yKHZhciBBPTA7QTxlOysrQSlpW0FdPXZbZSp0K0FdO3JldHVybiBpfSxhLnByb3RvdHlwZS5nZXRUeXBlZEFycmF5RnJvbUJpbmFyeT1mdW5jdGlvbihyLG4sZSx0LGkpe3ZhciBvPXRoaXMuY2FjaGVkVHlwZWRBcnJheXMsdj1vW3JdO3JldHVybiB2fHwodj1fKG4sdGhpcy5idWZmZXIuYnVmZmVyLHRoaXMuYnVmZmVyLmJ5dGVPZmZzZXQraSx0KmUpLG9bcl09diksdn0sYS5wcm90b3R5cGUuZ2V0VHlwZWRBcnJheUZyb21BcnJheT1mdW5jdGlvbihyLG4sZSl7dmFyIHQ9dGhpcy5jYWNoZWRUeXBlZEFycmF5cyxpPXRbcl07cmV0dXJuIGl8fChpPV8obixlKSx0W3JdPWkpLGl9LGF9KCk7QihmdW5jdGlvbihhKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGEpLnRoZW4oZnVuY3Rpb24ocil7dmFyIG49bmV3IFIoci5mZWF0dXJlVGFibGVKc29uLHIuZmVhdHVyZVRhYmxlQmluYXJ5KSxlPWQobiksdD1nKG4pLGk9UChuKSxvPVtdO3JldHVybiBlJiZvLnB1c2goZS5hcnJheS5idWZmZXIpLHQmJm8ucHVzaCh0LmFycmF5LmJ1ZmZlciksaSYmby5wdXNoKGkuYXJyYXkuYnVmZmVyKSx7b3V0cHV0Ontwb3NpdGlvbjplLGNvbG9yOnQsbm9ybWFsOml9LHRyYW5zZmVyOm99fSl9KTt2YXIgVT02NTUzNTtmdW5jdGlvbiBkKGEpe2lmKGEuaGFzUHJvcGVydHkoIlBPU0lUSU9OIikpe3ZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUE9TSVRJT04iLHkuRkxPQVQsMyk7cmV0dXJue2FycmF5OnIsaXRlbVNpemU6Myxub3JtYWxpemVkOiExfX1lbHNlIGlmKGEuaGFzUHJvcGVydHkoIlBPU0lUSU9OX1FVQU5USVpFRCIpKXt2YXIgbj1hLmdldFByb3BlcnR5QXJyYXkoIlBPU0lUSU9OX1FVQU5USVpFRCIseS5VTlNJR05FRF9TSE9SVCwzKSxlPWEuZ2V0R2xvYmFsUHJvcGVydHkoIlFVQU5USVpFRF9WT0xVTUVfU0NBTEUiLHkuRkxPQVQsMyksdD1hLmdldEdsb2JhbFByb3BlcnR5KCJRVUFOVElaRURfVk9MVU1FX09GRlNFVCIseS5GTE9BVCwzKTtpZighZXx8IXQpdGhyb3cgbmV3IEVycm9yKCJRVUFOVElaRURfVk9MVU1FX1NDQUxFIG9yIFFVQU5USVpFRF9WT0xVTUVfT0ZGU0VUIG5ldmVyIGZvdW5kLiIpO2Zvcih2YXIgaT1uZXcgRmxvYXQzMkFycmF5KG4ubGVuZ3RoKSxvPW4ubGVuZ3RoLzMsdj1lWzBdL1UsQT1lWzFdL1UsTj1lWzJdL1UsRT10WzBdLFM9dFsxXSxzPXRbMl0sVD0wLEk9dm9pZCAwO1Q8bztUKyspST1UKjMsaVtJXT1uW0ldKnYrRSxpWysrSV09bltJXSpBK1MsaVsrK0ldPW5bSV0qTitzO3JldHVybnthcnJheTppLGl0ZW1TaXplOjMsbm9ybWFsaXplZDohMX19cmV0dXJuIG51bGx9ZnVuY3Rpb24gZyhhKXtpZihhLmhhc1Byb3BlcnR5KCJSR0IiKSl7Zm9yKHZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCIix5LlVOU0lHTkVEX0JZVEUsMyksbj1yLmxlbmd0aC8zLGU9bmV3IFVpbnQ4QXJyYXkobio0KSx0PTAsaT12b2lkIDAsbz12b2lkIDA7dDxuO3QrKylvPXQqNCxpPXQqMyxlW29dPXJbaV0sZVsrK29dPXJbKytpXSxlWysrb109clsrK2ldO3JldHVybnthcnJheTplLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19ZWxzZSBpZihhLmhhc1Byb3BlcnR5KCJSR0JBIikpe3ZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCQSIseS5VTlNJR05FRF9CWVRFLDQpO3JldHVybnthcnJheTpyLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19ZWxzZSBpZihhLmhhc1Byb3BlcnR5KCJSR0I1NjUiKSl7Zm9yKHZhciByPWEuZ2V0UHJvcGVydHlBcnJheSgiUkdCNTY1Iix5LlVOU0lHTkVEX1NIT1JULDEpLG49ci5sZW5ndGgsZT1uZXcgVWludDhBcnJheShuKjQpLHQ9MCx2PXZvaWQgMCxBPXZvaWQgMDt0PG47dCsrKUE9clt0XSx2PXQqNCxlW3ZdPShBPj4xMSYzMSk8PDMsZVsrK3ZdPShBPj41JjYzKTw8MixlWysrdl09KEEmMzEpPDwzO3JldHVybnthcnJheTplLGl0ZW1TaXplOjQsbm9ybWFsaXplZDohMH19cmV0dXJuIG51bGx9dmFyIEc9MjU1LGg9MTI3LEQ9Mi9HO2Z1bmN0aW9uIFAoYSl7aWYoYS5oYXNQcm9wZXJ0eSgiTk9STUFMIikpe2Zvcih2YXIgcj1hLmdldFByb3BlcnR5QXJyYXkoIk5PUk1BTCIseS5GTE9BVCwzKSxuPXIubGVuZ3RoLzMsZT1uZXcgSW50OEFycmF5KG4qNCksdD0wLGk9dm9pZCAwLG89dm9pZCAwO3Q8bjt0Kyspbz10KjQsaT10KjMsZVtvXT1yW2ldKmgsZVsrK29dPXJbKytpXSpoLGVbKytvXT1yWysraV0qaDtyZXR1cm57YXJyYXk6ZSxpdGVtU2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9fWVsc2UgaWYoYS5oYXNQcm9wZXJ0eSgiTk9STUFMX09DVDE2UCIpKXtmb3IodmFyIHI9YS5nZXRQcm9wZXJ0eUFycmF5KCJOT1JNQUxfT0NUMTZQIix5LlVOU0lHTkVEX0JZVEUsMiksbj1yLmxlbmd0aC8yLGU9bmV3IEludDhBcnJheShuKjQpLHQ9MCx2PXZvaWQgMCxBPXZvaWQgMCxOPXZvaWQgMCxFPXZvaWQgMCxTPXZvaWQgMCxzPXZvaWQgMCxUPXZvaWQgMDt0PG47dCsrKXY9dCoyLEE9clt2XSpELTEsTj1yWysrdl0qRC0xLFM9QTwwPy1BOkEscz1OPDA/LU46TixFPTEtKFMrcyksRTwwJiYoQT0oMS1zKSooQTwwPy0xOjEpLE49KDEtUykqKE48MD8tMToxKSksVD1NYXRoLnNxcnQoQSpBK04qTitFKkUpLHY9dCo0LGVbdl09QS9UKmgsZVsrK3ZdPU4vVCpoLGVbKyt2XT1FL1QqaDtyZXR1cm57YXJyYXk6ZSxpdGVtU2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9fXJldHVybiBudWxsfX0pKCk7Cg==",decodeBase64=n=>Uint8Array.from(atob(n),t=>t.charCodeAt(0)),blob$1=typeof self!="undefined"&&self.Blob&&new Blob([decodeBase64(encodedJs)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(n){let t;try{if(t=blob$1&&(self.URL||self.webkitURL).createObjectURL(blob$1),!t)throw"";const e=new Worker(t,{name:n==null?void 0:n.name});return e.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(t)}),e}catch(e){return new Worker("data:text/javascript;base64,"+encodedJs,{name:n==null?void 0:n.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}var attributeWorkerPool=new WorkerPool$1(function(){return new WorkerWrapper},2);function parsePointCloud(n,t,e){var r=new FeatureTable(n.featureTableJson,n.featureTableBinary);return Promise.resolve().then(function(){var o=r.getExtension("3DTILES_draco_point_compression");return o?parseDraco(o,r):attributeWorkerPool.postMessage({featureTableBinary:r.buffer,featureTableJson:r.json},[r.buffer.buffer])}).then(function(o){return n.attributes=o,e})}function parseDraco(n,t){return __awaiter(this,void 0,void 0,function(){var e,r,o,s,u,l;return __generator(this,function(c){if(e=n.properties||{},r=n.byteOffset,o=n.byteLength,!e||!Number.isFinite(r)||!o)throw new Error("Draco properties, byteOffset, and byteLength must be defined");return s=t.buffer.slice(r,r+o),u=n.properties,l={POSITION:"Float32Array",NORMAL:"Float32Array",RGB:"Uint8Array",RGBA:"Uint8Array"},[2,draco.decodeGeometry(s.buffer,{attributeIDs:u,attributeTypes:l,useUniqueIDs:!0}).then(function(f){var d=f.getAttribute("POSITION"),p=f.getAttribute("RGB"),v=f.getAttribute("RGBA"),g=f.getAttribute("NORMAL"),h;if(v)h=v;else if(p){for(var m=p.count,y=p.array,A=new Uint8Array(m*4),E=0,b=void 0,T=void 0;E<m;E++)T=E*4,b=E*3,A[T]=y[b],A[++T]=y[++b],A[++T]=y[++b];h=new THREE__namespace.BufferAttribute(A,4,p.normalized)}return{position:d?{array:d.array,itemSize:d.itemSize,normalized:d.normalized}:null,color:h?{array:h.array,itemSize:h.itemSize,normalized:h.normalized}:null,normal:g?{array:g.array,itemSize:g.itemSize,normalized:g.normalized}:null}})]})})}function loadPnts(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={uri:n};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"}).then(function(s){return s.body})}).then(function(s){return Promise.resolve(0).then(function(u){return parseHeader$1(o,s,u)}).then(function(u){return parseTable(o,s,u)}).then(function(u){return parsePointCloud(o,s,u)})}).then(function(){var s;return createPoints(o.attributes,{computeBoundingBox:(s=t.computeBoundingBox)!==null&&s!==void 0?s:!0})}).then(function(s){var u=new THREE__namespace.Matrix4,l=new THREE__namespace.Matrix4().setPosition(o.rtcCenter[0],o.rtcCenter[1],o.rtcCenter[2]);return u.premultiply(l),s.object.applyMatrix4(u),delete o.gltfArrayBuffer,delete o.featureTableBinary,delete o.batchTableBinary,{type:"pnts",upAxis:"Z",uri:o.uri,byteLength:o.byteLength,scene:s.object,textures:[],dispose:function(){return s.dispose()}}})}function createPoints(n,t){var e=new Set,r=new THREE__namespace.BufferGeometry;e.add(r);var o=new PBMPointCloudMaterial;e.add(o),n.position&&r.setAttribute("position",new THREE__namespace.BufferAttribute(n.position.array,n.position.itemSize,n.position.normalized)),n.color&&r.setAttribute("color",new THREE__namespace.BufferAttribute(n.color.array,n.color.itemSize,n.color.normalized)),n.normal&&(r.setAttribute("normal",new THREE__namespace.BufferAttribute(n.normal.array,n.normal.itemSize,n.normal.normalized)),o.defines.USE_POINT_NORMAL=!0),t.computeBoundingBox&&r.computeBoundingBox();var s=new PBMPointCloud(r,o);return s.matrix.compose(s.position,s.quaternion,s.scale),s.matrixAutoUpdate=!1,s.frustumCulled=!1,Promise.resolve({object:s,dispose:function(){e.forEach(function(u){u.dispose()}),e.clear()}})}function createLZMA(){var n={};return n.OutWindow=function(){this._windowSize=0},n.OutWindow.prototype.create=function(t){(!this._buffer||this._windowSize!==t)&&(this._buffer=[]),this._windowSize=t,this._pos=0,this._streamPos=0},n.OutWindow.prototype.flush=function(){var t=this._pos-this._streamPos;if(t!==0){for(;t--;)this._stream.writeByte(this._buffer[this._streamPos++]);this._pos>=this._windowSize&&(this._pos=0),this._streamPos=this._pos}},n.OutWindow.prototype.releaseStream=function(){this.flush(),this._stream=null},n.OutWindow.prototype.setStream=function(t){this.releaseStream(),this._stream=t},n.OutWindow.prototype.init=function(t){t||(this._streamPos=0,this._pos=0)},n.OutWindow.prototype.copyBlock=function(t,e){var r=this._pos-t-1;for(r<0&&(r+=this._windowSize);e--;)r>=this._windowSize&&(r=0),this._buffer[this._pos++]=this._buffer[r++],this._pos>=this._windowSize&&this.flush()},n.OutWindow.prototype.putByte=function(t){this._buffer[this._pos++]=t,this._pos>=this._windowSize&&this.flush()},n.OutWindow.prototype.getByte=function(t){var e=this._pos-t-1;return e<0&&(e+=this._windowSize),this._buffer[e]},n.RangeDecoder=function(){},n.RangeDecoder.prototype.setStream=function(t){this._stream=t},n.RangeDecoder.prototype.releaseStream=function(){this._stream=null},n.RangeDecoder.prototype.init=function(){var t=5;for(this._code=0,this._range=-1;t--;)this._code=this._code<<8|this._stream.readByte()},n.RangeDecoder.prototype.decodeDirectBits=function(t){for(var e=0,r=t,o;r--;)this._range>>>=1,o=this._code-this._range>>>31,this._code-=this._range&o-1,e=e<<1|1-o,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8);return e},n.RangeDecoder.prototype.decodeBit=function(t,e){var r=t[e],o=(this._range>>>11)*r;return(this._code^2147483648)<(o^2147483648)?(this._range=o,t[e]+=2048-r>>>5,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),0):(this._range-=o,this._code-=o,t[e]-=r>>>5,this._range&4278190080||(this._code=this._code<<8|this._stream.readByte(),this._range<<=8),1)},n.initBitModels=function(t,e){for(;e--;)t[e]=1024},n.BitTreeDecoder=function(t){this._models=[],this._numBitLevels=t},n.BitTreeDecoder.prototype.init=function(){n.initBitModels(this._models,1<<this._numBitLevels)},n.BitTreeDecoder.prototype.decode=function(t){for(var e=1,r=this._numBitLevels;r--;)e=e<<1|t.decodeBit(this._models,e);return e-(1<<this._numBitLevels)},n.BitTreeDecoder.prototype.reverseDecode=function(t){for(var e=1,r=0,o=0,s;o<this._numBitLevels;++o)s=t.decodeBit(this._models,e),e=e<<1|s,r|=s<<o;return r},n.reverseDecode2=function(t,e,r,o){for(var s=1,u=0,l=0,c;l<o;++l)c=r.decodeBit(t,e+s),s=s<<1|c,u|=c<<l;return u},n.LenDecoder=function(){this._choice=[],this._lowCoder=[],this._midCoder=[],this._highCoder=new n.BitTreeDecoder(8),this._numPosStates=0},n.LenDecoder.prototype.create=function(t){for(;this._numPosStates<t;++this._numPosStates)this._lowCoder[this._numPosStates]=new n.BitTreeDecoder(3),this._midCoder[this._numPosStates]=new n.BitTreeDecoder(3)},n.LenDecoder.prototype.init=function(){var t=this._numPosStates;for(n.initBitModels(this._choice,2);t--;)this._lowCoder[t].init(),this._midCoder[t].init();this._highCoder.init()},n.LenDecoder.prototype.decode=function(t,e){return t.decodeBit(this._choice,0)===0?this._lowCoder[e].decode(t):t.decodeBit(this._choice,1)===0?8+this._midCoder[e].decode(t):16+this._highCoder.decode(t)},n.Decoder2=function(){this._decoders=[]},n.Decoder2.prototype.init=function(){n.initBitModels(this._decoders,768)},n.Decoder2.prototype.decodeNormal=function(t){var e=1;do e=e<<1|t.decodeBit(this._decoders,e);while(e<256);return e&255},n.Decoder2.prototype.decodeWithMatchByte=function(t,e){var r=1,o,s;do if(o=e>>7&1,e<<=1,s=t.decodeBit(this._decoders,(1+o<<8)+r),r=r<<1|s,o!==s){for(;r<256;)r=r<<1|t.decodeBit(this._decoders,r);break}while(r<256);return r&255},n.LiteralDecoder=function(){},n.LiteralDecoder.prototype.create=function(t,e){var r;if(!(this._coders&&this._numPrevBits===e&&this._numPosBits===t))for(this._numPosBits=t,this._posMask=(1<<t)-1,this._numPrevBits=e,this._coders=[],r=1<<this._numPrevBits+this._numPosBits;r--;)this._coders[r]=new n.Decoder2},n.LiteralDecoder.prototype.init=function(){for(var t=1<<this._numPrevBits+this._numPosBits;t--;)this._coders[t].init()},n.LiteralDecoder.prototype.getDecoder=function(t,e){return this._coders[((t&this._posMask)<<this._numPrevBits)+((e&255)>>>8-this._numPrevBits)]},n.Decoder=function(){this._outWindow=new n.OutWindow,this._rangeDecoder=new n.RangeDecoder,this._isMatchDecoders=[],this._isRepDecoders=[],this._isRepG0Decoders=[],this._isRepG1Decoders=[],this._isRepG2Decoders=[],this._isRep0LongDecoders=[],this._posSlotDecoder=[],this._posDecoders=[],this._posAlignDecoder=new n.BitTreeDecoder(4),this._lenDecoder=new n.LenDecoder,this._repLenDecoder=new n.LenDecoder,this._literalDecoder=new n.LiteralDecoder,this._dictionarySize=-1,this._dictionarySizeCheck=-1,this._posSlotDecoder[0]=new n.BitTreeDecoder(6),this._posSlotDecoder[1]=new n.BitTreeDecoder(6),this._posSlotDecoder[2]=new n.BitTreeDecoder(6),this._posSlotDecoder[3]=new n.BitTreeDecoder(6)},n.Decoder.prototype.setDictionarySize=function(t){return t<0?!1:(this._dictionarySize!==t&&(this._dictionarySize=t,this._dictionarySizeCheck=Math.max(this._dictionarySize,1),this._outWindow.create(Math.max(this._dictionarySizeCheck,4096))),!0)},n.Decoder.prototype.setLcLpPb=function(t,e,r){var o=1<<r;return t>8||e>4||r>4?!1:(this._literalDecoder.create(e,t),this._lenDecoder.create(o),this._repLenDecoder.create(o),this._posStateMask=o-1,!0)},n.Decoder.prototype.init=function(){var t=4;for(this._outWindow.init(!1),n.initBitModels(this._isMatchDecoders,192),n.initBitModels(this._isRep0LongDecoders,192),n.initBitModels(this._isRepDecoders,12),n.initBitModels(this._isRepG0Decoders,12),n.initBitModels(this._isRepG1Decoders,12),n.initBitModels(this._isRepG2Decoders,12),n.initBitModels(this._posDecoders,114),this._literalDecoder.init();t--;)this._posSlotDecoder[t].init();this._lenDecoder.init(),this._repLenDecoder.init(),this._posAlignDecoder.init(),this._rangeDecoder.init()},n.Decoder.prototype.decode=function(t,e,r){var o=0,s=0,u=0,l=0,c=0,f=0,d=0,p,v,g,h,m,y;for(this._rangeDecoder.setStream(t),this._outWindow.setStream(e),this.init();r<0||f<r;)if(p=f&this._posStateMask,this._rangeDecoder.decodeBit(this._isMatchDecoders,(o<<4)+p)===0)v=this._literalDecoder.getDecoder(f++,d),o>=7?d=v.decodeWithMatchByte(this._rangeDecoder,this._outWindow.getByte(s)):d=v.decodeNormal(this._rangeDecoder),this._outWindow.putByte(d),o=o<4?0:o-(o<10?3:6);else{if(this._rangeDecoder.decodeBit(this._isRepDecoders,o)===1)g=0,this._rangeDecoder.decodeBit(this._isRepG0Decoders,o)===0?this._rangeDecoder.decodeBit(this._isRep0LongDecoders,(o<<4)+p)===0&&(o=o<7?9:11,g=1):(this._rangeDecoder.decodeBit(this._isRepG1Decoders,o)===0?h=u:(this._rangeDecoder.decodeBit(this._isRepG2Decoders,o)===0?h=l:(h=c,c=l),l=u),u=s,s=h),g===0&&(g=2+this._repLenDecoder.decode(this._rangeDecoder,p),o=o<7?8:11);else if(c=l,l=u,u=s,g=2+this._lenDecoder.decode(this._rangeDecoder,p),o=o<7?7:10,m=this._posSlotDecoder[g<=5?g-2:3].decode(this._rangeDecoder),m>=4){if(y=(m>>1)-1,s=(2|m&1)<<y,m<14)s+=n.reverseDecode2(this._posDecoders,s-m-1,this._rangeDecoder,y);else if(s+=this._rangeDecoder.decodeDirectBits(y-4)<<4,s+=this._posAlignDecoder.reverseDecode(this._rangeDecoder),s<0){if(s===-1)break;return!1}}else s=m;if(s>=f||s>=this._dictionarySizeCheck)return!1;this._outWindow.copyBlock(s,g),f+=g,d=this._outWindow.getByte(0)}return this._outWindow.flush(),this._outWindow.releaseStream(),this._rangeDecoder.releaseStream(),!0},n.Decoder.prototype.setDecoderProperties=function(t){var e,r,o,s,u;return t.size<5||(e=t.readByte(),r=e%9,e=~~(e/9),o=e%5,s=~~(e/5),!this.setLcLpPb(r,o,s))?!1:(u=t.readByte(),u|=t.readByte()<<8,u|=t.readByte()<<16,u+=t.readByte()*16777216,this.setDictionarySize(u))},n.decompress=function(t,e,r,o){var s=new n.Decoder;if(!s.setDecoderProperties(t))throw"Incorrect stream properties";if(!s.decode(e,r,o))throw"Error in data stream";return!0},n.decompressFile=function(t,e){var r=new n.Decoder,o;if(!r.setDecoderProperties(t))throw"Incorrect stream properties";if(o=t.readByte(),o|=t.readByte()<<8,o|=t.readByte()<<16,o+=t.readByte()*16777216,t.readByte(),t.readByte(),t.readByte(),t.readByte(),!r.decode(t,e,o))throw"Error in data stream";return!0},n}var LZMA=createLZMA();function createWASM(){function n(e){for(var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=new Uint8Array(256),s=0;s<r.length;s++)o[r.charCodeAt(s)]=s;var u=e.length*.75,l=e.length,c,f=0,d,p,v,g;e[e.length-1]==="="&&(u--,e[e.length-2]==="="&&u--);var h=new ArrayBuffer(u),m=new Uint8Array(h);for(c=0;c<l;c+=4)d=o[e.charCodeAt(c)],p=o[e.charCodeAt(c+1)],v=o[e.charCodeAt(c+2)],g=o[e.charCodeAt(c+3)],m[f++]=d<<2|p>>4,m[f++]=(p&15)<<4|v>>2,m[f++]=(v&3)<<6|g&63;return h}var t="AGFzbQEAAAABSg1gAABgAX8Bf2ACf38Bf2AEf39/fwBgA39/fwBgAX8AYAJ/fwBgA39/fwF/YAR/f39/AX9gAn9/AGABfwF/YAABf2AEf39/fwF/AhsCA2VudgVhYm9ydAADA2VudgZtZW1vcnkCAAEDJiUBAQkKAgoKCwsLCwsAAgoBAgQKAQYFCAoFBQQEBwgCBwwCAQAABAQBcAABBhoFfwFBAAt/AUEAC38BQQALfwFBAAt/AUEACwc9BgZtZW1vcnkCAAV0YWJsZQEABXJlc2V0AA0KbmV3VThBcnJheQAQCnVucGFja1NpemUAFAZkZWNvZGUAIwgBJAkHAQBBAAsBJQqAViVoAQN/IABBgICAgARLBEAACyMBIgEgAEEBIABBAUsbakEHakF4cSICPwAiA0EQdEsEQCADIAIgAWtB//8DakGAgHxxQRB2IgAgAyAAShtAAEEASARAIABAAEEASARAAAsLCyACJAEgAQsbAQF/QQFBICAAQQdqZ2t0EAEiASAANgIAIAELkQMBAX8gAUUEQA8LIABBADoAACAAIAFqQQFrQQA6AAAgAUECTQRADwsgAEEBakEAOgAAIABBAmpBADoAACAAIAFqIgJBAmtBADoAACACQQNrQQA6AAAgAUEGTQRADwsgAEEDakEAOgAAIAAgAWpBBGtBADoAACABQQhNBEAPC0EAIABrQQNxIgIgAGoiAEEANgIAIAEgAmtBfHEiASAAakEEa0EANgIAIAFBCE0EQA8LIABBBGpBADYCACAAQQhqQQA2AgAgACABaiICQQxrQQA2AgAgAkEIa0EANgIAIAFBGE0EQA8LIABBDGpBADYCACAAQRBqQQA2AgAgAEEUakEANgIAIABBGGpBADYCACAAIAFqIgJBHGtBADYCACACQRhrQQA2AgAgAkEUa0EANgIAIAJBEGtBADYCACAAQQRxQRhqIgIgAGohACABIAJrIQEDQCABQSBPBEAgAEIANwMAIABBCGpCADcDACAAQRBqQgA3AwAgAEEYakIANwMAIAFBIGshASAAQSBqIQAMAQsLC1EBA38gAEH+////AEsEQEEAQSBBLUEnEAAACyAAQQJ0IgMQAiECQQgQASIBQQA2AgAgAUEANgIEIAEgAjYCACABIAA2AgQgAkEIaiADEAMgAQtmAQF/IAFB/P///wFLBEBBAEHAAEEXQSIQAAALIAFBAXQiARACIgJBCGogARADIABFBEBBDBABIQALIABBADYCACAAQQA2AgQgAEEANgIIIAAgAjYCACAAQQA2AgQgACABNgIIIAALCgBBDBABIAAQBQsuAQF/QQgQASIBQQA2AgAgAUEANgIEIAEgADYCBCABQQEgASgCBHQQBjYCACABC6EBAQR/QRAQASIBQQA2AgAgAUEANgIEIAFBADYCCCABQQA2AgxBEBAEIQIDQCAAQRBIBEBBAxAHIQMgAigCACAAQQJ0aiADNgIIIABBAWohAAwBCwsgASACNgIEQRAQBCECQQAhAANAIABBEEgEQEEDEAchAyACKAIAIABBAnRqIAM2AgggAEEBaiEADAELCyABIAI2AgggAUEIEAc2AgwgAQs0AQF/QRQQASIAQQA2AgAgAEEAOgAEIABBADYCCCAAQQA2AgwgAEEANgIQIABBDTYCCCAAC0IBAX9BGRABIgBBADYCACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEANgIUIABBADoAGCAAQQA2AhAgAAu1AgEEf0HQABABIgBBADoAACAAQQA2AgQgAEEANgIIIABBADYCDCAAQQA2AhAgAEEAOgAUIABBADYCGCAAQQA2AhwgAEEANgIgIABBADYCJCAAQQA2AiggAEEANgIsIABBADYCMCAAQQA2AjQgAEEANgI4IABBADYCPCAAQQA2AkAgAEEANgJEIABBADYCSCAAQQA2AkxBBBAEIQIDQCABQQRIBEBBBhAHIQMgAigCACABQQJ0aiADNgIIIAFBAWohAQwBCwsgACACNgIkIABBBBAHNgIoIABB8wAQBjYCLCAAQcABEAY2AjAgAEEMEAY2AjQgAEEMEAY2AjggAEEMEAY2AjwgAEEMEAY2AkAgAEHAARAGNgJEIAAQCDYCSCAAEAg2AkwgABAJNgIEIAAQCjYCCCAACx8BAX9BCBABIgBBADYCACAAQQA2AgQgABALNgIAIAALCgAjACQBEAwkAwthAQF/IAFB+P///wNLBEBBAEHAAEEXQSIQAAALIAEQAiICQQhqIAEQAyAARQRAQQwQASEACyAAQQA2AgAgAEEANgIEIABBADYCCCAAIAI2AgAgAEEANgIEIAAgATYCCCAACwoAQQwQASAAEA4LBgAgABAPCyoAIAEgACgCCE8EQEEAQcAAQSdBPxAAAAsgACgCBCABIAAoAgBqai0ACAssACABIAAoAghPBEBBAEHAAEEyQT8QAAALIAAoAgQgASAAKAIAamogAjoACAtkAQJ/QQ0QDyECA0AgAUENSARAIAIgASAAIAEQEUH/AXEQEiABQQFqIQEMAQsLQQAhAEEAIQEDQCABQQhIBEAgAiABQQVqEBFB/wFxIAFBA3R0IAByIQAgAUEBaiEBDAELCyAACwYAIAAQEwsnACAAIAEQDzYCCCAAQQA2AgwgACABNgIUIABBADoAGCAAQQA2AgALJAAgACgCCCAAKAIYEBUgAEGABiAAKAIMIAAtABRqdBAGNgIgC5UBAQR/IAEhBSAAIgYoAgAhASAAKAIEIQcgACgCCEEBdiEEIAJBAEgEfyACIARqIgBBACAAQQBKGwUgAiIAIAQgACAESBsLIQIgA0EASAR/IAMgBGoiAEEAIABBAEobBSADIgAgBCAAIARIGwshAwNAIAIgA05FBEAgAkEBdCABaiAHaiAFOwEIIAJBAWohAgwBCwsgBgssAQF/AkACQAJAIwRBAWsOAwEBAgALAAtB/////wchAQsgAEGACEEAIAEQFwvBAQECfyAAQQIQBjYCACAAKAIAIgEoAgAgASgCBGpBgAg7AQggACgCACICKAIAIQEgAigCBCABQQJqakGACDsBCCAAKAIMKAIAQQEkBBAYGkEAIQIDQCACQRBIBEAgAiAAKAIEKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAiAAKAIIKAIAIgEoAgBBAnZJBH8gAkECdCABaigCCAUACygCAEEBJAQQGBogAkEBaiECDAELCwuHAgEFfyAAIQJBgAYgACgCDCAALQAUanQhAQNAIAMgAUgEQCACKAIgIgQoAgAhBSAEKAIEIANBAXQgBWpqQYAIOwEIIANBAWohAwwBCwsgAiEBQQAhAgNAIAJBBEkEQCACIAEoAiQoAgAiAygCAEECdkkEfyACQQJ0IANqKAIIBQALKAIAQQEkBBAYGiACQQFqIQIMAQsLIAEoAigoAgBBASQEEBgaIAEoAixBASQEEBgaIAAoAjBBASQEEBgaIAAoAjRBASQEEBgaIAAoAjhBASQEEBgaIAAoAjxBASQEEBgaIAAoAkBBASQEEBgaIAAoAkRBASQEEBgaIAAoAkgQGSAAKAJMEBkLyAwBA38DQCABQQNxIAIgAhsEQCAAIgRBAWohACABIgNBAWohASAEIAMtAAA6AAAgAkEBayECDAELCyAAQQNxRQRAA0AgAkEQTwRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAEEIaiABQQhqKAIANgIAIABBDGogAUEMaigCADYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsgAkEIcQRAIAAgASgCADYCACAAQQRqIAFBBGooAgA2AgAgAUEIaiEBIABBCGohAAsgAkEEcQRAIAAgASgCADYCACABQQRqIQEgAEEEaiEACyACQQJxBEAgACABLwEAOwEAIAFBAmohASAAQQJqIQALIAJBAXEEQCAAIAEtAAA6AAALDwsgAkEgTwRAAkACQAJAIABBA3EiA0EBRwRAIANBAkYNASADQQNGDQIMAwsgASgCACEFIAAgASIDLQAAOgAAIABBAWoiASABIANBAWoiAS0AADoAAEEBaiIEQQFqIQAgAUEBaiIDQQFqIQEgBCADLQAAOgAAIAJBA2shAgNAIAJBEU8EQCAAIAFBAWooAgAiA0EIdCAFQRh2cjYCACAAQQRqIAFBBWooAgAiBUEIdCADQRh2cjYCACAAQQhqIAFBCWooAgAiA0EIdCAFQRh2cjYCACAAQQxqIAFBDWooAgAiBUEIdCADQRh2cjYCACABQRBqIQEgAEEQaiEAIAJBEGshAgwBCwsMAgsgASgCACEFIAAgAS0AADoAACAAQQFqIgRBAWohACABQQFqIgNBAWohASAEIAMtAAA6AAAgAkECayECA0AgAkESTwRAIAAgAUECaigCACIDQRB0IAVBEHZyNgIAIABBBGogAUEGaigCACIFQRB0IANBEHZyNgIAIABBCGogAUEKaigCACIDQRB0IAVBEHZyNgIAIABBDGogAUEOaigCACIFQRB0IANBEHZyNgIAIAFBEGohASAAQRBqIQAgAkEQayECDAELCwwBCyABKAIAIQUgACIEQQFqIQAgASIDQQFqIQEgBCADLQAAOgAAIAJBAWshAgNAIAJBE08EQCAAIAFBA2ooAgAiA0EYdCAFQQh2cjYCACAAQQRqIAFBB2ooAgAiBUEYdCADQQh2cjYCACAAQQhqIAFBC2ooAgAiA0EY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";return n(t)}function decodeLZMA(n,t,e){try{var r={data:t,offset:0,readByte:function(){return this.data[this.offset++]}},o=r.data.length,s={data:[],offset:0,writeByte:function(c){var f=Math.floor(this.offset/o);this.data[f]||(this.data[f]=new Uint8Array(o)),this.data[f][this.offset%o]=c,this.offset++}};n.decompressFile(r,s);for(var u=new Uint8Array(s.offset),l=0;l<s.offset;l++)u[l]=s.data[Math.floor(l/o)][l%o];e(null,u)}catch(c){e(c)}}function decodeLZMAWithWASM(n,t,e){var r=24;try{var o=new WebAssembly.Memory({initial:16}),s=new WebAssembly.Module(n),u=new WebAssembly.Instance(s,{env:{memory:o,abort:function(){e(new Error("webAssembly abort"))}}}),l=u.exports,c=l.newU8Array(t.length),f=new Uint8Array(o.buffer,c+r,t.length);f.set(t);var d=l.decode(c),p=new Uint32Array(o.buffer,d,4),v=p[0],g=p[2],h=p[3];v?e(null,new Uint8Array(o.buffer,h+r,g).slice(0,g)):e(new Error("lzma deocder error"))}catch(m){e(m)}}var lzmaWorkerSource=`
|
|
884
884
|
var decodeLZMA = (function() {
|
|
885
885
|
var LZMA = (`.concat(createLZMA.toString(),`)();
|
|
886
886
|
return function(data, callback) {
|
|
@@ -925,13 +925,13 @@ self.onmessage = function(event) {
|
|
|
925
925
|
}
|
|
926
926
|
postMessage({ id: packet.id, error: "type never matched." });
|
|
927
927
|
};
|
|
928
|
-
`),support=typeof Worker!="undefined"&&typeof Blob!="undefined",lzmaWorkerURL="";if(support)try{var blob=new Blob([lzmaWorkerSource],{type:"text/javascript"});lzmaWorkerURL=URL.createObjectURL(blob)}catch(n){}var LZMAWorker=function(){function n(){var t=this;if(!support)throw new Error("LZMAWorker cannot work in this broswer.");this.callCounter=0,this.requests={};var e=this.worker=new Worker(lzmaWorkerURL);e.onmessage=function(r){var o=r.data,s=o.id,u=o.result,l=o.error,c=t.getKey(s);t.requests[c]&&(l?t.requests[c](new Error(l)):t.requests[c](null,u),delete t.requests[c])},e.onerror=function(r){return console.error(r)}}return n.prototype.getKey=function(t){return"key_"+String(t)},n.prototype.decompress=function(t,e){var r=++this.callCounter;this.requests[this.getKey(r)]=e,this.worker.postMessage({type:"decompress",id:r,data:t},[t.buffer])},n.prototype.terminate=function(){this.worker.terminate()},n.support=support,n}();function readUint32(n){return Array.prototype.reduce.call(n,function(t,e,r){return t|e<<r*8},0)}function binaryArrays(n){for(var t=[],e=n.length,r=function(u){var l={data:n[u],offset:0,readByte:function(){return this.data[this.offset++]}},c=l.data.length,f={data:[],offset:0,writeByte:function(p){var v=Math.floor(this.offset/c);this.data[v]||(this.data[v]=new Uint8Array(c)),this.data[v][this.offset%c]=p,this.offset++}};LZMA.decompressFile(l,f),o=new Uint8Array(f.offset);for(var d=0;d<f.offset;d++)o[d]=f.data[Math.floor(d/c)][d%c];t.push(o)},o,s=0;s<e;s++)r(s);return t}function binaryArraysWithWorker(n){for(var t=[],e=n.length,r=function(s){t.push(new Promise(function(u,l){var c=new LZMAWorker;c.decompress(n[s],function(f,d){if(c.terminate(),f)return l(f);u(d)})}))},o=0;o<e;o++)r(o);return Promise.all(t)}function lzma(n){var t=new Uint8Array(n),e=readUint32(t.slice(0,4));if(e>10)return Promise.reject(new Error("LZMA got too many sub chunks."));for(var r=[],o=[],s=4+e*4,u=0;u<e;u++)o[u]=readUint32(t.slice(4+u*4,8+u*4)),u===e-1?r[u]=t.subarray(s,s+o[u]):r[u]=t.slice(s,s+o[u]),s+=o[u];return LZMAWorker.support?binaryArraysWithWorker(r):Promise.resolve(binaryArrays(r))}var dequeuing=!1,queue=[];function dequeue(n){if(n===void 0&&(n=!1),!(!n&&dequeuing)){dequeuing=!0;var t=queue.shift();if(t){try{t()}catch(e){}AnimationFrameLoop.shared.add(function(){return dequeue(!0)},!0,2,-100)}else dequeuing=!1}}function delay(n){return new Promise(function(t,e){var r=function(){try{t(n())}catch(o){e(o)}};queue.push(r),AnimationFrameLoop.shared.add(function(){return dequeue()},!0,2,-100)})}function pick(n,t){for(var e={},r=0,o=t;r<o.length;r++){var s=o[r];s in n&&(e[s]=n[s])}return e}function omit(n,t){for(var e=__assign({},n),r=0,o=t;r<o.length;r++){var s=o[r];s in e&&delete e[s]}return e}var commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},indexMinimal={},minimal$1={},aspromise=asPromise;function asPromise(n,t){for(var e=new Array(arguments.length-1),r=0,o=2,s=!0;o<arguments.length;)e[r++]=arguments[o++];return new Promise(function(l,c){e[r]=function(d){if(s)if(s=!1,d)c(d);else{for(var p=new Array(arguments.length-1),v=0;v<p.length;)p[v++]=arguments[v];l.apply(null,p)}};try{n.apply(t||null,e)}catch(f){s&&(s=!1,c(f))}})}var base64$1={};(function(n){var t=n;t.length=function(l){var c=l.length;if(!c)return 0;for(var f=0;--c%4>1&&l.charAt(c)==="=";)++f;return Math.ceil(l.length*3)/4-f};for(var e=new Array(64),r=new Array(123),o=0;o<64;)r[e[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;t.encode=function(l,c,f){for(var d=null,p=[],v=0,g=0,h;c<f;){var m=l[c++];switch(g){case 0:p[v++]=e[m>>2],h=(m&3)<<4,g=1;break;case 1:p[v++]=e[h|m>>4],h=(m&15)<<2,g=2;break;case 2:p[v++]=e[h|m>>6],p[v++]=e[m&63],g=0;break}v>8191&&((d||(d=[])).push(String.fromCharCode.apply(String,p)),v=0)}return g&&(p[v++]=e[h],p[v++]=61,g===1&&(p[v++]=61)),d?(v&&d.push(String.fromCharCode.apply(String,p.slice(0,v))),d.join("")):String.fromCharCode.apply(String,p.slice(0,v))};var s="invalid encoding";t.decode=function(l,c,f){for(var d=f,p=0,v,g=0;g<l.length;){var h=l.charCodeAt(g++);if(h===61&&p>1)break;if((h=r[h])===void 0)throw Error(s);switch(p){case 0:v=h,p=1;break;case 1:c[f++]=v<<2|(h&48)>>4,v=h,p=2;break;case 2:c[f++]=(v&15)<<4|(h&60)>>2,v=h,p=3;break;case 3:c[f++]=(v&3)<<6|h,p=0;break}}if(p===1)throw Error(s);return f-d},t.test=function(l){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(l)}})(base64$1);var eventemitter=EventEmitter;function EventEmitter(){this._listeners={}}EventEmitter.prototype.on=function(t,e,r){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:r||this}),this},EventEmitter.prototype.off=function(t,e){if(t===void 0)this._listeners={};else if(e===void 0)this._listeners[t]=[];else for(var r=this._listeners[t],o=0;o<r.length;)r[o].fn===e?r.splice(o,1):++o;return this},EventEmitter.prototype.emit=function(t){var e=this._listeners[t];if(e){for(var r=[],o=1;o<arguments.length;)r.push(arguments[o++]);for(o=0;o<e.length;)e[o].fn.apply(e[o++].ctx,r)}return this};var float=factory(factory);function factory(n){return typeof Float32Array!="undefined"?function(){var t=new Float32Array([-0]),e=new Uint8Array(t.buffer),r=e[3]===128;function o(c,f,d){t[0]=c,f[d]=e[0],f[d+1]=e[1],f[d+2]=e[2],f[d+3]=e[3]}function s(c,f,d){t[0]=c,f[d]=e[3],f[d+1]=e[2],f[d+2]=e[1],f[d+3]=e[0]}n.writeFloatLE=r?o:s,n.writeFloatBE=r?s:o;function u(c,f){return e[0]=c[f],e[1]=c[f+1],e[2]=c[f+2],e[3]=c[f+3],t[0]}function l(c,f){return e[3]=c[f],e[2]=c[f+1],e[1]=c[f+2],e[0]=c[f+3],t[0]}n.readFloatLE=r?u:l,n.readFloatBE=r?l:u}():function(){function t(r,o,s,u){var l=o<0?1:0;if(l&&(o=-o),o===0)r(1/o>0?0:2147483648,s,u);else if(isNaN(o))r(2143289344,s,u);else if(o>34028234663852886e22)r((l<<31|2139095040)>>>0,s,u);else if(o<11754943508222875e-54)r((l<<31|Math.round(o/1401298464324817e-60))>>>0,s,u);else{var c=Math.floor(Math.log(o)/Math.LN2),f=Math.round(o*Math.pow(2,-c)*8388608)&8388607;r((l<<31|c+127<<23|f)>>>0,s,u)}}n.writeFloatLE=t.bind(null,writeUintLE),n.writeFloatBE=t.bind(null,writeUintBE);function e(r,o,s){var u=r(o,s),l=(u>>31)*2+1,c=u>>>23&255,f=u&8388607;return c===255?f?NaN:l*(1/0):c===0?l*1401298464324817e-60*f:l*Math.pow(2,c-150)*(f+8388608)}n.readFloatLE=e.bind(null,readUintLE),n.readFloatBE=e.bind(null,readUintBE)}(),typeof Float64Array!="undefined"?function(){var t=new Float64Array([-0]),e=new Uint8Array(t.buffer),r=e[7]===128;function o(c,f,d){t[0]=c,f[d]=e[0],f[d+1]=e[1],f[d+2]=e[2],f[d+3]=e[3],f[d+4]=e[4],f[d+5]=e[5],f[d+6]=e[6],f[d+7]=e[7]}function s(c,f,d){t[0]=c,f[d]=e[7],f[d+1]=e[6],f[d+2]=e[5],f[d+3]=e[4],f[d+4]=e[3],f[d+5]=e[2],f[d+6]=e[1],f[d+7]=e[0]}n.writeDoubleLE=r?o:s,n.writeDoubleBE=r?s:o;function u(c,f){return e[0]=c[f],e[1]=c[f+1],e[2]=c[f+2],e[3]=c[f+3],e[4]=c[f+4],e[5]=c[f+5],e[6]=c[f+6],e[7]=c[f+7],t[0]}function l(c,f){return e[7]=c[f],e[6]=c[f+1],e[5]=c[f+2],e[4]=c[f+3],e[3]=c[f+4],e[2]=c[f+5],e[1]=c[f+6],e[0]=c[f+7],t[0]}n.readDoubleLE=r?u:l,n.readDoubleBE=r?l:u}():function(){function t(r,o,s,u,l,c){var f=u<0?1:0;if(f&&(u=-u),u===0)r(0,l,c+o),r(1/u>0?0:2147483648,l,c+s);else if(isNaN(u))r(0,l,c+o),r(2146959360,l,c+s);else if(u>17976931348623157e292)r(0,l,c+o),r((f<<31|2146435072)>>>0,l,c+s);else{var d;if(u<22250738585072014e-324)d=u/5e-324,r(d>>>0,l,c+o),r((f<<31|d/4294967296)>>>0,l,c+s);else{var p=Math.floor(Math.log(u)/Math.LN2);p===1024&&(p=1023),d=u*Math.pow(2,-p),r(d*4503599627370496>>>0,l,c+o),r((f<<31|p+1023<<20|d*1048576&1048575)>>>0,l,c+s)}}}n.writeDoubleLE=t.bind(null,writeUintLE,0,4),n.writeDoubleBE=t.bind(null,writeUintBE,4,0);function e(r,o,s,u,l){var c=r(u,l+o),f=r(u,l+s),d=(f>>31)*2+1,p=f>>>20&2047,v=4294967296*(f&1048575)+c;return p===2047?v?NaN:d*(1/0):p===0?d*5e-324*v:d*Math.pow(2,p-1075)*(v+4503599627370496)}n.readDoubleLE=e.bind(null,readUintLE,0,4),n.readDoubleBE=e.bind(null,readUintBE,4,0)}(),n}function writeUintLE(n,t,e){t[e]=n&255,t[e+1]=n>>>8&255,t[e+2]=n>>>16&255,t[e+3]=n>>>24}function writeUintBE(n,t,e){t[e]=n>>>24,t[e+1]=n>>>16&255,t[e+2]=n>>>8&255,t[e+3]=n&255}function readUintLE(n,t){return(n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24)>>>0}function readUintBE(n,t){return(n[t]<<24|n[t+1]<<16|n[t+2]<<8|n[t+3])>>>0}var inquire_1=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(n){}return null}var utf8$2={};(function(n){var t=n;t.length=function(r){for(var o=0,s=0,u=0;u<r.length;++u)s=r.charCodeAt(u),s<128?o+=1:s<2048?o+=2:(s&64512)===55296&&(r.charCodeAt(u+1)&64512)===56320?(++u,o+=4):o+=3;return o},t.read=function(r,o,s){var u=s-o;if(u<1)return"";for(var l=null,c=[],f=0,d;o<s;)d=r[o++],d<128?c[f++]=d:d>191&&d<224?c[f++]=(d&31)<<6|r[o++]&63:d>239&&d<365?(d=((d&7)<<18|(r[o++]&63)<<12|(r[o++]&63)<<6|r[o++]&63)-65536,c[f++]=55296+(d>>10),c[f++]=56320+(d&1023)):c[f++]=(d&15)<<12|(r[o++]&63)<<6|r[o++]&63,f>8191&&((l||(l=[])).push(String.fromCharCode.apply(String,c)),f=0);return l?(f&&l.push(String.fromCharCode.apply(String,c.slice(0,f))),l.join("")):String.fromCharCode.apply(String,c.slice(0,f))},t.write=function(r,o,s){for(var u=s,l,c,f=0;f<r.length;++f)l=r.charCodeAt(f),l<128?o[s++]=l:l<2048?(o[s++]=l>>6|192,o[s++]=l&63|128):(l&64512)===55296&&((c=r.charCodeAt(f+1))&64512)===56320?(l=65536+((l&1023)<<10)+(c&1023),++f,o[s++]=l>>18|240,o[s++]=l>>12&63|128,o[s++]=l>>6&63|128,o[s++]=l&63|128):(o[s++]=l>>12|224,o[s++]=l>>6&63|128,o[s++]=l&63|128);return s-u}})(utf8$2);var pool_1=pool;function pool(n,t,e){var r=e||8192,o=r>>>1,s=null,u=r;return function(c){if(c<1||c>o)return n(c);u+c>r&&(s=n(r),u=0);var f=t.call(s,u,u+=c);return u&7&&(u=(u|7)+1),f}}var longbits,hasRequiredLongbits;function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=t;var n=requireMinimal();function t(s,u){this.lo=s>>>0,this.hi=u>>>0}var e=t.zero=new t(0,0);e.toNumber=function(){return 0},e.zzEncode=e.zzDecode=function(){return this},e.length=function(){return 1};var r=t.zeroHash="\0\0\0\0\0\0\0\0";t.fromNumber=function(u){if(u===0)return e;var l=u<0;l&&(u=-u);var c=u>>>0,f=(u-c)/4294967296>>>0;return l&&(f=~f>>>0,c=~c>>>0,++c>4294967295&&(c=0,++f>4294967295&&(f=0))),new t(c,f)},t.from=function(u){if(typeof u=="number")return t.fromNumber(u);if(n.isString(u))if(n.Long)u=n.Long.fromString(u);else return t.fromNumber(parseInt(u,10));return u.low||u.high?new t(u.low>>>0,u.high>>>0):e},t.prototype.toNumber=function(u){if(!u&&this.hi>>>31){var l=~this.lo+1>>>0,c=~this.hi>>>0;return l||(c=c+1>>>0),-(l+c*4294967296)}return this.lo+this.hi*4294967296},t.prototype.toLong=function(u){return n.Long?new n.Long(this.lo|0,this.hi|0,!!u):{low:this.lo|0,high:this.hi|0,unsigned:!!u}};var o=String.prototype.charCodeAt;return t.fromHash=function(u){return u===r?e:new t((o.call(u,0)|o.call(u,1)<<8|o.call(u,2)<<16|o.call(u,3)<<24)>>>0,(o.call(u,4)|o.call(u,5)<<8|o.call(u,6)<<16|o.call(u,7)<<24)>>>0)},t.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},t.prototype.zzEncode=function(){var u=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^u)>>>0,this.lo=(this.lo<<1^u)>>>0,this},t.prototype.zzDecode=function(){var u=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^u)>>>0,this.hi=(this.hi>>>1^u)>>>0,this},t.prototype.length=function(){var u=this.lo,l=(this.lo>>>28|this.hi<<4)>>>0,c=this.hi>>>24;return c===0?l===0?u<16384?u<128?1:2:u<2097152?3:4:l<16384?l<128?5:6:l<2097152?7:8:c<128?9:10},longbits}var hasRequiredMinimal;function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,function(n){var t=n;t.asPromise=aspromise,t.base64=base64$1,t.EventEmitter=eventemitter,t.float=float,t.inquire=inquire_1,t.utf8=utf8$2,t.pool=pool_1,t.LongBits=requireLongbits(),t.isNode=!!(typeof commonjsGlobal!="undefined"&&commonjsGlobal&&commonjsGlobal.process&&commonjsGlobal.process.versions&&commonjsGlobal.process.versions.node),t.global=t.isNode&&commonjsGlobal||typeof window!="undefined"&&window||typeof self!="undefined"&&self||commonjsGlobal,t.emptyArray=Object.freeze?Object.freeze([]):[],t.emptyObject=Object.freeze?Object.freeze({}):{},t.isInteger=Number.isInteger||function(s){return typeof s=="number"&&isFinite(s)&&Math.floor(s)===s},t.isString=function(s){return typeof s=="string"||s instanceof String},t.isObject=function(s){return s&&typeof s=="object"},t.isset=t.isSet=function(s,u){var l=s[u];return l!=null&&s.hasOwnProperty(u)?typeof l!="object"||(Array.isArray(l)?l.length:Object.keys(l).length)>0:!1},t.Buffer=function(){try{var o=t.inquire("buffer").Buffer;return o.prototype.utf8Write?o:null}catch(s){return null}}(),t._Buffer_from=null,t._Buffer_allocUnsafe=null,t.newBuffer=function(s){return typeof s=="number"?t.Buffer?t._Buffer_allocUnsafe(s):new t.Array(s):t.Buffer?t._Buffer_from(s):typeof Uint8Array=="undefined"?s:new Uint8Array(s)},t.Array=typeof Uint8Array!="undefined"?Uint8Array:Array,t.Long=t.global.dcodeIO&&t.global.dcodeIO.Long||t.global.Long||t.inquire("long"),t.key2Re=/^true|false|0|1$/,t.key32Re=/^-?(?:0|[1-9][0-9]*)$/,t.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,t.longToHash=function(s){return s?t.LongBits.from(s).toHash():t.LongBits.zeroHash},t.longFromHash=function(s,u){var l=t.LongBits.fromHash(s);return t.Long?t.Long.fromBits(l.lo,l.hi,u):l.toNumber(!!u)};function e(o,s,u){for(var l=Object.keys(s),c=0;c<l.length;++c)(o[l[c]]===void 0||!u)&&(o[l[c]]=s[l[c]]);return o}t.merge=e,t.lcFirst=function(s){return s.charAt(0).toLowerCase()+s.substring(1)};function r(o){function s(u,l){if(!(this instanceof s))return new s(u,l);Object.defineProperty(this,"message",{get:function(){return u}}),Error.captureStackTrace?Error.captureStackTrace(this,s):Object.defineProperty(this,"stack",{value:new Error().stack||""}),l&&e(this,l)}return s.prototype=Object.create(Error.prototype,{constructor:{value:s,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return o},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),s}t.newError=r,t.ProtocolError=r("ProtocolError"),t.oneOfGetter=function(s){for(var u={},l=0;l<s.length;++l)u[s[l]]=1;return function(){for(var c=Object.keys(this),f=c.length-1;f>-1;--f)if(u[c[f]]===1&&this[c[f]]!==void 0&&this[c[f]]!==null)return c[f]}},t.oneOfSetter=function(s){return function(u){for(var l=0;l<s.length;++l)s[l]!==u&&delete this[s[l]]}},t.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},t._configure=function(){var o=t.Buffer;if(!o){t._Buffer_from=t._Buffer_allocUnsafe=null;return}t._Buffer_from=o.from!==Uint8Array.from&&o.from||function(u,l){return new o(u,l)},t._Buffer_allocUnsafe=o.allocUnsafe||function(u){return new o(u)}}}(minimal$1)),minimal$1}var writer=Writer$1,util$4=requireMinimal(),BufferWriter$1,LongBits$1=util$4.LongBits,base64=util$4.base64,utf8$1=util$4.utf8;function Op(n,t,e){this.fn=n,this.len=t,this.next=void 0,this.val=e}function noop(){}function State(n){this.head=n.head,this.tail=n.tail,this.len=n.len,this.next=n.states}function Writer$1(){this.len=0,this.head=new Op(noop,0,0),this.tail=this.head,this.states=null}var create$1=function n(){return util$4.Buffer?function(){return(Writer$1.create=function(){return new BufferWriter$1})()}:function(){return new Writer$1}};Writer$1.create=create$1(),Writer$1.alloc=function n(t){return new util$4.Array(t)},util$4.Array!==Array&&(Writer$1.alloc=util$4.pool(Writer$1.alloc,util$4.Array.prototype.subarray)),Writer$1.prototype._push=function n(t,e,r){return this.tail=this.tail.next=new Op(t,e,r),this.len+=e,this};function writeByte(n,t,e){t[e]=n&255}function writeVarint32(n,t,e){for(;n>127;)t[e++]=n&127|128,n>>>=7;t[e]=n}function VarintOp(n,t){this.len=n,this.next=void 0,this.val=t}VarintOp.prototype=Object.create(Op.prototype),VarintOp.prototype.fn=writeVarint32,Writer$1.prototype.uint32=function n(t){return this.len+=(this.tail=this.tail.next=new VarintOp((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this},Writer$1.prototype.int32=function n(t){return t<0?this._push(writeVarint64,10,LongBits$1.fromNumber(t)):this.uint32(t)},Writer$1.prototype.sint32=function n(t){return this.uint32((t<<1^t>>31)>>>0)};function writeVarint64(n,t,e){for(;n.hi;)t[e++]=n.lo&127|128,n.lo=(n.lo>>>7|n.hi<<25)>>>0,n.hi>>>=7;for(;n.lo>127;)t[e++]=n.lo&127|128,n.lo=n.lo>>>7;t[e++]=n.lo}Writer$1.prototype.uint64=function n(t){var e=LongBits$1.from(t);return this._push(writeVarint64,e.length(),e)},Writer$1.prototype.int64=Writer$1.prototype.uint64,Writer$1.prototype.sint64=function n(t){var e=LongBits$1.from(t).zzEncode();return this._push(writeVarint64,e.length(),e)},Writer$1.prototype.bool=function n(t){return this._push(writeByte,1,t?1:0)};function writeFixed32(n,t,e){t[e]=n&255,t[e+1]=n>>>8&255,t[e+2]=n>>>16&255,t[e+3]=n>>>24}Writer$1.prototype.fixed32=function n(t){return this._push(writeFixed32,4,t>>>0)},Writer$1.prototype.sfixed32=Writer$1.prototype.fixed32,Writer$1.prototype.fixed64=function n(t){var e=LongBits$1.from(t);return this._push(writeFixed32,4,e.lo)._push(writeFixed32,4,e.hi)},Writer$1.prototype.sfixed64=Writer$1.prototype.fixed64,Writer$1.prototype.float=function n(t){return this._push(util$4.float.writeFloatLE,4,t)},Writer$1.prototype.double=function n(t){return this._push(util$4.float.writeDoubleLE,8,t)};var writeBytes=util$4.Array.prototype.set?function n(t,e,r){e.set(t,r)}:function n(t,e,r){for(var o=0;o<t.length;++o)e[r+o]=t[o]};Writer$1.prototype.bytes=function n(t){var e=t.length>>>0;if(!e)return this._push(writeByte,1,0);if(util$4.isString(t)){var r=Writer$1.alloc(e=base64.length(t));base64.decode(t,r,0),t=r}return this.uint32(e)._push(writeBytes,e,t)},Writer$1.prototype.string=function n(t){var e=utf8$1.length(t);return e?this.uint32(e)._push(utf8$1.write,e,t):this._push(writeByte,1,0)},Writer$1.prototype.fork=function n(){return this.states=new State(this),this.head=this.tail=new Op(noop,0,0),this.len=0,this},Writer$1.prototype.reset=function n(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op(noop,0,0),this.len=0),this},Writer$1.prototype.ldelim=function n(){var t=this.head,e=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=t.next,this.tail=e,this.len+=r),this},Writer$1.prototype.finish=function n(){for(var t=this.head.next,e=this.constructor.alloc(this.len),r=0;t;)t.fn(t.val,e,r),r+=t.len,t=t.next;return e},Writer$1._configure=function(n){BufferWriter$1=n,Writer$1.create=create$1(),BufferWriter$1._configure()};var writer_buffer=BufferWriter,Writer=writer;(BufferWriter.prototype=Object.create(Writer.prototype)).constructor=BufferWriter;var util$3=requireMinimal();function BufferWriter(){Writer.call(this)}BufferWriter._configure=function(){BufferWriter.alloc=util$3._Buffer_allocUnsafe,BufferWriter.writeBytesBuffer=util$3.Buffer&&util$3.Buffer.prototype instanceof Uint8Array&&util$3.Buffer.prototype.set.name==="set"?function(t,e,r){e.set(t,r)}:function(t,e,r){if(t.copy)t.copy(e,r,0,t.length);else for(var o=0;o<t.length;)e[r++]=t[o++]}},BufferWriter.prototype.bytes=function n(t){util$3.isString(t)&&(t=util$3._Buffer_from(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this._push(BufferWriter.writeBytesBuffer,e,t),this};function writeStringBuffer(n,t,e){n.length<40?util$3.utf8.write(n,t,e):t.utf8Write?t.utf8Write(n,e):t.write(n,e)}BufferWriter.prototype.string=function n(t){var e=util$3.Buffer.byteLength(t);return this.uint32(e),e&&this._push(writeStringBuffer,e,t),this},BufferWriter._configure();var reader=Reader$1,util$2=requireMinimal(),BufferReader$1,LongBits=util$2.LongBits,utf8=util$2.utf8;function indexOutOfRange(n,t){return RangeError("index out of range: "+n.pos+" + "+(t||1)+" > "+n.len)}function Reader$1(n){this.buf=n,this.pos=0,this.len=n.length}var create_array=typeof Uint8Array!="undefined"?function n(t){if(t instanceof Uint8Array||Array.isArray(t))return new Reader$1(t);throw Error("illegal buffer")}:function n(t){if(Array.isArray(t))return new Reader$1(t);throw Error("illegal buffer")},create=function n(){return util$2.Buffer?function(e){return(Reader$1.create=function(o){return util$2.Buffer.isBuffer(o)?new BufferReader$1(o):create_array(o)})(e)}:create_array};Reader$1.create=create(),Reader$1.prototype._slice=util$2.Array.prototype.subarray||util$2.Array.prototype.slice,Reader$1.prototype.uint32=function n(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange(this,10);return t}}(),Reader$1.prototype.int32=function n(){return this.uint32()|0},Reader$1.prototype.sint32=function n(){var t=this.uint32();return t>>>1^-(t&1)|0};function readLongVarint(){var n=new LongBits(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(n.lo=(n.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return n;if(n.lo=(n.lo|(this.buf[this.pos]&127)<<28)>>>0,n.hi=(n.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return n;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.lo=(n.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return n}return n.lo=(n.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,n}if(this.len-this.pos>4){for(;t<5;++t)if(n.hi=(n.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return n}else for(;t<5;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.hi=(n.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return n}throw Error("invalid varint encoding")}Reader$1.prototype.bool=function n(){return this.uint32()!==0};function readFixed32_end(n,t){return(n[t-4]|n[t-3]<<8|n[t-2]<<16|n[t-1]<<24)>>>0}Reader$1.prototype.fixed32=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)},Reader$1.prototype.sfixed32=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)|0};function readFixed64(){if(this.pos+8>this.len)throw indexOutOfRange(this,8);return new LongBits(readFixed32_end(this.buf,this.pos+=4),readFixed32_end(this.buf,this.pos+=4))}Reader$1.prototype.float=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);var t=util$2.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t},Reader$1.prototype.double=function n(){if(this.pos+8>this.len)throw indexOutOfRange(this,4);var t=util$2.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t},Reader$1.prototype.bytes=function n(){var t=this.uint32(),e=this.pos,r=this.pos+t;if(r>this.len)throw indexOutOfRange(this,t);if(this.pos+=t,Array.isArray(this.buf))return this.buf.slice(e,r);if(e===r){var o=util$2.Buffer;return o?o.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,e,r)},Reader$1.prototype.string=function n(){var t=this.bytes();return utf8.read(t,0,t.length)},Reader$1.prototype.skip=function n(t){if(typeof t=="number"){if(this.pos+t>this.len)throw indexOutOfRange(this,t);this.pos+=t}else do if(this.pos>=this.len)throw indexOutOfRange(this);while(this.buf[this.pos++]&128);return this},Reader$1.prototype.skipType=function(n){switch(n){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(n=this.uint32()&7)!==4;)this.skipType(n);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+n+" at offset "+this.pos)}return this},Reader$1._configure=function(n){BufferReader$1=n,Reader$1.create=create(),BufferReader$1._configure();var t=util$2.Long?"toLong":"toNumber";util$2.merge(Reader$1.prototype,{int64:function(){return readLongVarint.call(this)[t](!1)},uint64:function(){return readLongVarint.call(this)[t](!0)},sint64:function(){return readLongVarint.call(this).zzDecode()[t](!1)},fixed64:function(){return readFixed64.call(this)[t](!0)},sfixed64:function(){return readFixed64.call(this)[t](!1)}})};var reader_buffer=BufferReader,Reader=reader;(BufferReader.prototype=Object.create(Reader.prototype)).constructor=BufferReader;var util$1=requireMinimal();function BufferReader(n){Reader.call(this,n)}BufferReader._configure=function(){util$1.Buffer&&(BufferReader.prototype._slice=util$1.Buffer.prototype.slice)},BufferReader.prototype.string=function n(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))},BufferReader._configure();var rpc={},service=Service,util=requireMinimal();(Service.prototype=Object.create(util.EventEmitter.prototype)).constructor=Service;function Service(n,t,e){if(typeof n!="function")throw TypeError("rpcImpl must be a function");util.EventEmitter.call(this),this.rpcImpl=n,this.requestDelimited=!!t,this.responseDelimited=!!e}Service.prototype.rpcCall=function n(t,e,r,o,s){if(!o)throw TypeError("request must be specified");var u=this;if(!s)return util.asPromise(n,u,t,e,r,o);if(!u.rpcImpl){setTimeout(function(){s(Error("already ended"))},0);return}try{return u.rpcImpl(t,e[u.requestDelimited?"encodeDelimited":"encode"](o).finish(),function(c,f){if(c)return u.emit("error",c,t),s(c);if(f===null){u.end(!0);return}if(!(f instanceof r))try{f=r[u.responseDelimited?"decodeDelimited":"decode"](f)}catch(d){return u.emit("error",d,t),s(d)}return u.emit("data",f,t),s(null,f)})}catch(l){u.emit("error",l,t),setTimeout(function(){s(l)},0);return}},Service.prototype.end=function n(t){return this.rpcImpl&&(t||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this},function(n){var t=n;t.Service=service}(rpc);var roots={};(function(n){var t=n;t.build="minimal",t.Writer=writer,t.BufferWriter=writer_buffer,t.Reader=reader,t.BufferReader=reader_buffer,t.util=requireMinimal(),t.rpc=rpc,t.roots=roots,t.configure=e;function e(){t.util._configure(),t.Writer._configure(t.BufferWriter),t.Reader._configure(t.BufferReader)}e()})(indexMinimal);var minimal=indexMinimal;const $Reader$1=minimal.Reader,$util$1=minimal.util,$root$1=minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/pbm.proto"]||(minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/pbm.proto"]={}),Model$2=$root$1.Model=(()=>{function n(t){if(this.chunks=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.chunks=$util$1.emptyArray,n.prototype.createAt=$util$1.Long?$util$1.Long.fromBits(0,0,!0):0,n.prototype.description="",n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Model;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.chunks&&s.chunks.length||(s.chunks=[]),s.chunks.push($root$1.Chunk.decode(e,e.uint32()));break}case 2:{s.createAt=e.uint64();break}case 3:{s.description=e.string();break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Model"},n})();$root$1.Chunk=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.vertices=null,n.prototype.faces=null,n.prototype.name="",n.prototype.texture="",n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Chunk;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.vertices=$root$1.Vertices.decode(e,e.uint32());break}case 2:{s.faces=$root$1.Faces.decode(e,e.uint32());break}case 3:{s.name=e.string();break}case 4:{s.texture=e.string();break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("vertices"))throw $util$1.ProtocolError("missing required 'vertices'",{instance:s});if(!s.hasOwnProperty("faces"))throw $util$1.ProtocolError("missing required 'faces'",{instance:s});if(!s.hasOwnProperty("name"))throw $util$1.ProtocolError("missing required 'name'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Chunk"},n})(),$root$1.Vertices=(()=>{function n(t){if(this.xyz=[],this.uvs=[],this.marks=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.xyz=$util$1.emptyArray,n.prototype.uvs=$util$1.emptyArray,n.prototype.marks=$util$1.emptyArray,n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Vertices;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.xyz&&s.xyz.length||(s.xyz=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.xyz.push(e.float())}else s.xyz.push(e.float());break}case 2:{if(s.uvs&&s.uvs.length||(s.uvs=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.uvs.push(e.float())}else s.uvs.push(e.float());break}case 3:{if(s.marks&&s.marks.length||(s.marks=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.marks.push(e.int32())}else s.marks.push(e.int32());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Vertices"},n})(),$root$1.Faces=(()=>{function n(t){if(this.indices=[],this.normals=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.indices=$util$1.emptyArray,n.prototype.normals=$util$1.emptyArray,n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Faces;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.indices&&s.indices.length||(s.indices=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.indices.push(e.uint32())}else s.indices.push(e.uint32());break}case 2:{if(s.normals&&s.normals.length||(s.normals=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.normals.push(e.float())}else s.normals.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Faces"},n})(),$root$1.VertexMark=(()=>{const n={},t=Object.create(n);return t[n[0]="VERTEX_MARK_UNSPECIFIED"]=0,t[n[1]="VERTEX_MARK_ROOF"]=1,t})();function loadPbm(n,t){var e,r,o,s;t===void 0&&(t={});var u=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),l={byteLength:0},c=autoRestImageOptionsByTextureLength((r=t.textureOptions)!==null&&r!==void 0?r:{},(s=(o=t.textureArray)===null||o===void 0?void 0:o.length)!==null&&s!==void 0?s:0),f={};if(t.textureArray)for(var d=0,p=t.textureArray;d<p.length;d++){var v=p[d];f[v]=loadTexture$1(v,c,u)}return Promise.resolve().then(function(){return u.ajax(n,{responseType:"arraybuffer"})}).then(function(g){return l.byteLength=g.body.byteLength,delay(function(){var h=new Uint8Array(g.body);return Model$2.decode(h)})}).then(function(g){return delay(function(){var h,m;return parse$4(g,(h=t.textureBaseUri)!==null&&h!==void 0?h:function(){var y=n.lastIndexOf("/");if(y>=0){var A=n.slice(0,y)+"/";return/\/model\/$/.test(A)&&(A=A.replace(/\/model\/$/,"/materials/")),A}return""}(),((m=t.textureArray)!==null&&m!==void 0?m:[]).slice(),c,f,u)})}).then(function(g){var h=new THREE__namespace.Group;h.matrixAutoUpdate=!1,h.matrix.compose(h.position,h.quaternion,h.scale),h.name=n;for(var m=0,y=g.objects;m<y.length;m++){var A=y[m];h.add(A)}return{type:"pbm",upAxis:"Z",uri:n,byteLength:l.byteLength,scene:h,textures:g.textures,dispose:function(){return g.dispose()}}})}function parseFloorName(n){var t=n.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function parseChunkName(n){var t=n.match(/(chunk)-?(\d+)/);return t?parseInt(t[2],10):0}function parseSubName(n){var t=n.match(/(sub)-?(\d+)/);return t?parseInt(t[2],10):0}function chunkOrder(n){var t=parseFloorName(n.name),e=parseChunkName(n.name),r=parseSubName(n.name);return t*1e6+e*1e3+r}function parsePBMModel(n){for(var t,e,r,o=typeof n.createAt=="number"?n.createAt:0,s=(t=n.description)!==null&&t!==void 0?t:"",u=[],l=!0,c=!0,f=0,d=n.chunks;f<d.length;f++){var p=d[f];if(!p.vertices.marks||p.vertices.marks.length===0){c=!1;break}}for(var v=0,g=n.chunks;v<g.length;v++){var p=g[v];if(!p.faces.normals||p.faces.normals.length===0){l=!1;break}}for(var h=n.chunks.sort(function(ne,pe){return chunkOrder(ne)-chunkOrder(pe)}),m=[],y=0,A=h;y<A.length;y++){var p=A[y],E=parseFloorName(p.name);m[E]||(m[E]=[]),m[E].push(p)}for(var b=0;b<m.length;b++){var T=m[b];if(T)if(l){for(var _=0,R=0;R<T.length;R++){var p=T[R];_+=p.faces.indices.length}for(var S=new Float32Array(_*3),M=new Float32Array(_*2),B=new Float32Array(_*3),H=c?new Float32Array(_):void 0,w=[],C=[1/0,1/0,1/0,-1/0,-1/0,-1/0],F=0,I=0;I<T.length;I++){for(var L=[1/0,1/0,1/0,-1/0,-1/0,-1/0],p=T[I],k=p.vertices.xyz,N=p.vertices.uvs,D=p.faces.indices,U=p.faces.normals,z=p.vertices.marks,q=D.length,R=0;R<q;R++){var G=D[R],J=S[F*3+R*3]=k[G*3],X=S[F*3+R*3+1]=k[G*3+1],j=S[F*3+R*3+2]=k[G*3+2];H&&(H[F+R]=z[G]),M[F*2+R*2]=N[G*2],M[F*2+R*2+1]=N[G*2+1];var Y=Math.floor(R/3)*3;B[F*3+R*3]=U[Y],B[F*3+R*3+1]=U[Y+1],B[F*3+R*3+2]=U[Y+2],J<L[0]&&(L[0]=J),X<L[1]&&(L[1]=X),j<L[2]&&(L[2]=j),J>L[3]&&(L[3]=J),X>L[4]&&(L[4]=X),j>L[5]&&(L[5]=j)}L[0]<C[0]&&(C[0]=L[0]),L[1]<C[1]&&(C[1]=L[1]),L[2]<C[2]&&(C[2]=L[2]),L[3]>C[3]&&(C[3]=L[3]),L[4]>C[4]&&(C[4]=L[4]),L[5]>C[5]&&(C[5]=L[5]),w.push({materialIndex:I,name:p.name,chunkName:parseChunkName(p.name),start:F,count:p.faces.indices.length,texture:(e=p.texture)!==null&&e!==void 0?e:void 0}),F+=q}var Z={createAt:o,description:s,vertices:S,uvs:M,normals:B,masks:H,indices:null,floorIndex:b,groups:w,extents:C};u.push(Z)}else{for(var _=0,W=0,R=0;R<T.length;R++){var p=T[R];W+=p.vertices.xyz.length/3,_+=p.faces.indices.length}for(var S=new Float32Array(W*3),M=new Float32Array(W*2),B=void 0,ae=new Float32Array(W),re=new Uint32Array(_),H=c?new Float32Array(_):void 0,w=[],C=[1/0,1/0,1/0,-1/0,-1/0,-1/0],se=0,F=0,I=0;I<T.length;I++){for(var L=[1/0,1/0,1/0,-1/0,-1/0,-1/0],p=T[I],k=p.vertices.xyz,ie=p.vertices.marks,N=p.vertices.uvs,D=p.faces.indices,fe=k.length/3,q=D.length,R=0;R<fe;R++){var J=S[F*3+R*3]=k[R*3],X=S[F*3+R*3+1]=k[R*3+1],j=S[F*3+R*3+2]=k[R*3+2];H&&(H[F+R]=ie[R]),M[F*2+R*2]=N[R*2],M[F*2+R*2+1]=N[R*2+1],ae[F+R]=b,J<L[0]&&(L[0]=J),X<L[1]&&(L[1]=X),j<L[2]&&(L[2]=j),J>L[3]&&(L[3]=J),X>L[4]&&(L[4]=X),j>L[5]&&(L[5]=j)}L[0]<C[0]&&(C[0]=L[0]),L[1]<C[1]&&(C[1]=L[1]),L[2]<C[2]&&(C[2]=L[2]),L[3]>C[3]&&(C[3]=L[3]),L[4]>C[4]&&(C[4]=L[4]),L[5]>C[5]&&(C[5]=L[5]);for(var R=0;R<q;R++)re[se+R]=F+D[R];w.push({materialIndex:I,name:p.name,chunkName:parseChunkName(p.name),start:se,count:p.faces.indices.length,texture:(r=p.texture)!==null&&r!==void 0?r:void 0}),F+=fe,se+=q}var Z={createAt:o,description:s,vertices:S,uvs:M,normals:B,masks:H,indices:re,floorIndex:b,groups:w,extents:C};u.push(Z)}}return u}function loadTexture$1(n,t,e){var r=__assign({key:"texture.pbm"},pick(t,["format","quality","size","sharpen","mappings"])),o=new TextureLoader,s=o.loadTexture(n,{imageURL:{transform:t.transform,options:r},encoding:THREE__namespace.sRGBEncoding,wrapS:THREE__namespace.ClampToEdgeWrapping,wrapT:THREE__namespace.ClampToEdgeWrapping,minFilter:THREE__namespace.LinearFilter,maxSize:typeof r.size=="number"?new THREE__namespace.Vector2(r.size,r.size):void 0,fetcher:e}).then(function(u){var l=u.body;return l.needsUpdate=!0,l});return Object.assign(s,{url:n,textureOptions:t})}function parse$4(n,t,e,r,o,s){o===void 0&&(o={});for(var u=parsePBMModel(n),l=0,c="",f=[],d={},p=new Set,v=0,g=u;v<g.length;v++){var h=g[v],m=h.createAt,y=h.description,A=h.vertices,E=h.masks,b=h.uvs,T=h.normals,_=h.indices,R=h.floorIndex,S=h.groups,M=h.extents,B=new THREE__namespace.Box3;B.min.x=M[0],B.min.y=M[1],B.min.z=M[2],B.max.x=M[3],B.max.y=M[4],B.max.z=M[5];var H=new THREE__namespace.BufferGeometry;H.setAttribute("position",new THREE__namespace.BufferAttribute(A,3)),H.setAttribute("uv",new THREE__namespace.BufferAttribute(b,2)),T&&H.setAttribute("normal",new THREE__namespace.BufferAttribute(T,3)),E&&H.setAttribute("mask",new THREE__namespace.BufferAttribute(E,1)),_&&H.setIndex(new THREE__namespace.BufferAttribute(_,1)),H.boundingBox=B,H.boundingSphere=B.getBoundingSphere(new THREE__namespace.Sphere);for(var w=0,C=S;w<C.length;w++){var F=C[w];H.addGroup(F.start,F.count,F.materialIndex)}p.add(H);for(var I=[],L=0,k=S;L<k.length;L++){var F=k[L],N=e[F.chunkName]||(F.texture?pathJoin(t||"",F.texture):void 0),D=new PBMMeshMaterial("basic");D.floor=R,H.attributes.normal===void 0&&(D.flatShading=!0),H.attributes.mask&&(D.defines.USE_VERTEX_MARK=!0),I.push(D),N?d[N]?d[N].push(D):d[N]=[D]:D.color=new THREE__namespace.Color(16777215),p.add(D),D.refreshUniforms()}var U=new PBMMesh(H,I);U.name="model_floor_"+R,U.userData.createAt=m,U.userData.description=y,U.matrix.compose(U.position,U.quaternion,U.scale),U.matrixAutoUpdate=!1,U.frustumCulled=!1,l=m,c=y,f.push(U)}var z=function(q){q=autoRestImageOptionsByTextureLength(q,e.length);for(var G=[],J=function(Z){var W=null;Z in o&&(W=o[Z]),W||(W=loadTexture$1(Z,q,s)),G.push(W.then(function(ae){for(var re=0,se=d[Z];re<se.length;re++){var ie=se[re];ie.map&&(p.delete(ie.map),ie.map.dispose()),ie.map=ae,ie.refreshUniforms(),p.add(ae)}return ae}).catch(function(){for(var ae=0,re=d[Z];ae<re.length;ae++){var se=re[ae];se.map&&(p.delete(se.map),se.map.dispose()),se.map=null,se.color=new THREE__namespace.Color(16777215),se.refreshUniforms()}return null}))},X=0,j=Object.keys(d);X<j.length;X++){var Y=j[X];J(Y)}for(var Y in o)delete o[Y];return Promise.all(G).then(function(Z){return Z.filter(function(W){return W})})};return z(r).then(function(q){return{createAt:l,description:c,objects:f,textures:q,dispose:function(){p.forEach(function(G){G.dispose()}),p.clear()}}})}function autoRestImageOptionsByTextureLength(n,t){return n=Object.assign({},n),n.autoResize!==!1&&(t>96?n.size=Math.min(n.size||1/0,100):t>48?n.size=Math.min(n.size||1/0,200):t>24?n.size=Math.min(n.size||1/0,400):t>22?n.size=Math.min(n.size||1/0,800):t>5&&(n.size=Math.min(n.size||1/0,1024))),n}function loadAt3d(n,t){var e,r,o,s;t===void 0&&(t={});var u=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),l={byteLength:0},c=autoRestImageOptionsByTextureLength((r=t.textureOptions)!==null&&r!==void 0?r:{},(s=(o=t.textureArray)===null||o===void 0?void 0:o.length)!==null&&s!==void 0?s:0),f={};if(t.textureArray)for(var d=0,p=t.textureArray;d<p.length;d++){var v=p[d];f[v]=loadTexture$1(v,c,u)}return Promise.resolve().then(function(){return u.ajax(n,{responseType:"arraybuffer"})}).then(function(g){return lzma(g.body)}).then(function(g){return delay(function(){for(var h,m={chunks:[],createAt:void 0,description:void 0},y=0,A=g;y<A.length;y++){var E=A[y],b=Model$2.decode(E);b.chunks.length&&((h=m.chunks).push.apply(h,b.chunks),m.createAt=b.createAt,m.description=b.description)}return m})}).then(function(g){return delay(function(){var h,m,y;return parse$4(g,(h=t.textureBaseUri)!==null&&h!==void 0?h:function(){var A=n.lastIndexOf("/");if(A>=0){var E=n.slice(0,A)+"/";return/\/model\/$/.test(E)&&(E=E.replace(/\/model\/$/,"/materials/")),E}return""}(),((m=t.textureArray)!==null&&m!==void 0?m:[]).slice(),(y=t.textureOptions)!==null&&y!==void 0?y:{},f,u)})}).then(function(g){var h=new THREE__namespace.Group;h.name=n;for(var m=0,y=g.objects;m<y.length;m++){var A=y[m];h.add(A)}return{type:"at3d",upAxis:"Z",uri:n,byteLength:l.byteLength,scene:h,textures:g.textures,dispose:function(){return g.dispose()}}})}const $Reader=minimal.Reader,$util=minimal.util,$root=minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/dome.proto"]||(minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/dome.proto"]={}),Model$1=$root.Model=(()=>{function n(t){if(this.meshes=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.meshes=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Model;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.meshes&&s.meshes.length||(s.meshes=[]),s.meshes.push($root.Mesh.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Model"},n})();$root.Mesh=(()=>{function n(t){if(this.chunks=[],this.matrix=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.name="",n.prototype.chunks=$util.emptyArray,n.prototype.matrix=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Mesh;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.name=e.string();break}case 2:{s.chunks&&s.chunks.length||(s.chunks=[]),s.chunks.push($root.Chunk.decode(e,e.uint32()));break}case 3:{s.matrix&&s.matrix.length||(s.matrix=[]),s.matrix.push($root.Matrix.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("name"))throw $util.ProtocolError("missing required 'name'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Mesh"},n})(),$root.Matrix=(()=>{function n(t){if(this.elements=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.elements=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Matrix;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.elements&&s.elements.length||(s.elements=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.elements.push(e.float())}else s.elements.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Matrix"},n})(),$root.Chunk=(()=>{function n(t){if(this.material=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.geometry=null,n.prototype.material=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Chunk;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 2:{s.geometry=$root.Geometry.decode(e,e.uint32());break}case 3:{s.material&&s.material.length||(s.material=[]),s.material.push($root.Material.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("geometry"))throw $util.ProtocolError("missing required 'geometry'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Chunk"},n})(),$root.Geometry=(()=>{function n(t){if(this.groups=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.position=null,n.prototype.uv=null,n.prototype.uv2=null,n.prototype.normal=null,n.prototype.groups=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Geometry;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.position=$root.Position.decode(e,e.uint32());break}case 2:{s.uv=$root.UV.decode(e,e.uint32());break}case 3:{s.uv2=$root.UV.decode(e,e.uint32());break}case 4:{s.normal=$root.Normal.decode(e,e.uint32());break}case 5:{s.groups&&s.groups.length||(s.groups=[]),s.groups.push($root.Group.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("position"))throw $util.ProtocolError("missing required 'position'",{instance:s});if(!s.hasOwnProperty("normal"))throw $util.ProtocolError("missing required 'normal'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Geometry"},n})(),$root.Position=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Position;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Position"},n})(),$root.UV=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.UV;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UV"},n})(),$root.Normal=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Normal;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Normal"},n})(),$root.Group=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.start=0,n.prototype.count=0,n.prototype.materialIndex=0,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Group;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.start=e.uint32();break}case 2:{s.count=e.uint32();break}case 3:{s.materialIndex=e.uint32();break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("start"))throw $util.ProtocolError("missing required 'start'",{instance:s});if(!s.hasOwnProperty("count"))throw $util.ProtocolError("missing required 'count'",{instance:s});if(!s.hasOwnProperty("materialIndex"))throw $util.ProtocolError("missing required 'materialIndex'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Group"},n})(),$root.Material=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.kd=null,n.prototype.ks=null,n.prototype.ke=null,n.prototype.mapkd="",n.prototype.mapks="",n.prototype.mapke="",n.prototype.norm="",n.prototype.mapbump="",n.prototype.bump="",n.prototype.mapd="",n.prototype.ns=0,n.prototype.d=0,n.prototype.tr=0,n.prototype.mapkdrepeat="",n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Material;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.kd=$root.Color.decode(e,e.uint32());break}case 2:{s.ks=$root.Color.decode(e,e.uint32());break}case 3:{s.ke=$root.Color.decode(e,e.uint32());break}case 4:{s.mapkd=e.string();break}case 5:{s.mapks=e.string();break}case 6:{s.mapke=e.string();break}case 7:{s.norm=e.string();break}case 8:{s.mapbump=e.string();break}case 9:{s.bump=e.string();break}case 10:{s.mapd=e.string();break}case 11:{s.ns=e.float();break}case 12:{s.d=e.float();break}case 13:{s.tr=e.float();break}case 14:{s.mapkdrepeat=e.string();break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Material"},n})(),$root.Color=(()=>{function n(t){if(this.rgb=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.rgb=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Color;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.rgb&&s.rgb.length||(s.rgb=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.rgb.push(e.float())}else s.rgb.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Color"},n})();var ROTATE_X_MATRIX$5=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadDome(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){var u;return o.byteLength=s.body.byteLength,parse$3(new Uint8Array(s.body),t.textureBaseUri||"",(u=t.textureOptions)!==null&&u!==void 0?u:{},r)}).then(function(s){var u=new THREE__namespace.Group;u.matrixAutoUpdate=!1,u.applyMatrix4(ROTATE_X_MATRIX$5),u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n;for(var l=0,c=s.objects;l<c.length;l++){var f=c[l];u.add(f)}return{type:"dome",upAxis:"Z",uri:n,byteLength:o.byteLength,scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}function flipBufferGeometryNormals(n){for(var t=[0,0,0],e=0;e<n.attributes.normal.array.length/9;e++)t[0]=n.attributes.normal.array[e*9],t[1]=n.attributes.normal.array[e*9+1],t[2]=n.attributes.normal.array[e*9+2],n.attributes.normal.array[e*9]=n.attributes.normal.array[e*9+6],n.attributes.normal.array[e*9+1]=n.attributes.normal.array[e*9+7],n.attributes.normal.array[e*9+2]=n.attributes.normal.array[e*9+8],n.attributes.normal.array[e*9+6]=t[0],n.attributes.normal.array[e*9+7]=t[1],n.attributes.normal.array[e*9+8]=t[2];for(var e=0;e<n.attributes.position.array.length/9;e++)t[0]=n.attributes.position.array[e*9],t[1]=n.attributes.position.array[e*9+1],t[2]=n.attributes.position.array[e*9+2],n.attributes.position.array[e*9]=n.attributes.position.array[e*9+6],n.attributes.position.array[e*9+1]=n.attributes.position.array[e*9+7],n.attributes.position.array[e*9+2]=n.attributes.position.array[e*9+8],n.attributes.position.array[e*9+6]=t[0],n.attributes.position.array[e*9+7]=t[1],n.attributes.position.array[e*9+8]=t[2];for(var e=0;e<n.attributes.uv.array.length/6;e++)t[0]=n.attributes.uv.array[e*6],t[1]=n.attributes.uv.array[e*6+1],n.attributes.uv.array[e*6]=n.attributes.uv.array[e*6+4],n.attributes.uv.array[e*6+1]=n.attributes.uv.array[e*6+5],n.attributes.uv.array[e*6+4]=t[0],n.attributes.uv.array[e*6+5]=t[1];n.attributes.normal.needsUpdate=!0,n.attributes.position.needsUpdate=!0,n.attributes.uv.needsUpdate=!0}function parseGeometry(n){var t=n.position,e=n.normal,r=n.uv,o=n.uv2,s=n.groups,u=new THREE__namespace.BufferGeometry;u.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(t.array),3)),e&&u.setAttribute("normal",new THREE__namespace.BufferAttribute(new Float32Array(e.array),3)),r&&u.setAttribute("uv",new THREE__namespace.BufferAttribute(new Float32Array(r.array),2)),o&&u.setAttribute("uv2",new THREE__namespace.BufferAttribute(new Float32Array(o.array),2));for(var l=0,c=s;l<c.length;l++){var f=c[l];u.addGroup(f.start,f.count,f.materialIndex)}return u}function loadTexture(n,t,e,r,o,s,u){if(u.hasOwnProperty(n))return u[n];n=n.split("?")[0],isAbsoluteURL(n)||(n=pathJoin(t,n)),n=n.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/"),n.indexOf("//")===0&&(n="https:"+n);var l=__assign({key:"texture.dome",size:64},pick(e,["quality","format","sharpen","mappings"])),c=u[n]=o.loadTexture(n,{imageURL:{transform:e.transform,options:l},wrapS:THREE__namespace.RepeatWrapping,wrapT:THREE__namespace.RepeatWrapping,fetcher:s}).then(function(f){var d=f.body;return r&&d.repeat.copy(r),d.needsUpdate=!0,d.updateMatrix(),d});return c}function parseMaterial(n,t,e,r,o,s,u,l){var c=[],f=new PBMMeshMaterial("phong");if(u.add(f),n.kd&&(f.color=new THREE__namespace.Color().fromArray(n.kd.rgb).convertLinearToSRGB()),n.mapkd){var d=null;if(n.mapkdrepeat){var p=n.mapkdrepeat.split(/\s+/).map(function(m){return Number(m)}),v=p[0],g=p[1];d=new THREE__namespace.Vector2(v,g)}c.push(loadTexture(n.mapkd,t,e,d,r,o,s).then(function(m){m.encoding=THREE__namespace.sRGBEncoding,f.map=m,u.add(m),l.add(m),f.needsUpdate=!0}).catch(noop$1))}if(n.ks&&(f.specular=new THREE__namespace.Color().fromArray(n.ks.rgb).convertLinearToSRGB()),n.mapks&&c.push(loadTexture(n.mapks,t,e,null,r,o,s).then(function(m){f.specularMap=m,u.add(m),l.add(m)}).catch(noop$1)),n.ke&&(f.emissive=new THREE__namespace.Color().fromArray(n.ke.rgb).convertLinearToSRGB()),n.mapke&&c.push(loadTexture(n.mapke,t,e,null,r,o,s).then(function(m){m.encoding=THREE__namespace.sRGBEncoding,f.emissiveMap=m,u.add(m),l.add(m)}).catch(noop$1)),n.norm&&c.push(loadTexture(n.norm,t,e,null,r,o,s).then(function(m){f.normalMap=m,u.add(m),l.add(m)}).catch(noop$1)),n.mapbump&&c.push(loadTexture(n.mapbump,t,e,null,r,o,s).then(function(m){f.bumpMap=m,u.add(m),l.add(m)}).catch(noop$1)),n.bump&&c.push(loadTexture(n.bump,t,e,null,r,o,s).then(function(m){f.bumpMap=m,u.add(m),l.add(m)}).catch(noop$1)),typeof n.ns=="number"&&(f.shininess=n.ns),typeof n.d=="number"){var h=n.d;h>0&&h<1&&(f.opacity=h)}return f.floor=0,f.refreshUniforms(),{material:f,textureReady:Promise.all(c).then(noop$1)}}function fromProtoBuf(n){return Model$1.decode(n).meshes}function parse$3(n,t,e,r){for(var o=[],s=[],u=new Set,l=fromProtoBuf(n),c=new TextureLoader,f=new THREE__namespace.Matrix4,d=new THREE__namespace.Vector3,p=new THREE__namespace.Quaternion,v=new THREE__namespace.Vector3,g={},h=new Set,m=0,y=l;m<y.length;m++){var A=y[m],E=A.name,b=A.chunks,T=A.matrix;if(!(E==="Ceiling"||E==="CeilingDrop"))for(var _=0,R=T;_<R.length;_++){var S=R[_];f.elements=S.elements;for(var M=new THREE__namespace.Group,B=0;B<b.length;B++){var H=parseGeometry(b[B].geometry);H.applyMatrix4(f),f.decompose(d,p,v),v.x*v.y*v.z<0&&H.attributes.normal&&H.attributes.position&&H.attributes.uv&&flipBufferGeometryNormals(H),u.add(H);for(var w=[],C=0,F=b[B].material;C<F.length;C++){var I=F[C],L=parseMaterial(I,t||"",e,c,r,g,u,h),k=L.material,N=L.textureReady;s.push(N),w.push(k)}var D=new PBMMesh(H,w);D.name="chunk_"+B,D.matrix.compose(D.position,D.quaternion,D.scale),D.matrixAutoUpdate=!1,D.frustumCulled=!1,M.add(D)}M.name=E,o.push(M)}}return Promise.all(s).catch(noop$1).then(function(){return{createAt:0,description:"",objects:o,textures:Array.from(h),dispose:function(){u.forEach(function(U){U.dispose()}),u.clear()}}})}var ROTATE_X_MATRIX$4=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadDomez(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){return o.byteLength=s.body.byteLength,lzma(s.body)}).then(function(s){var u=s.reduce(function(f,d){return f+d.length},0),l=new Uint8Array(u),c=0;return s.forEach(function(f){l.set(f,c),c+=f.length}),l}).then(function(s){var u;return parse$3(s,t.textureBaseUri||"",(u=t.textureOptions)!==null&&u!==void 0?u:{},r)}).then(function(s){var u=new THREE__namespace.Group;u.matrixAutoUpdate=!1,u.applyMatrix4(ROTATE_X_MATRIX$4),u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n;for(var l=0,c=s.objects;l<c.length;l++){var f=c[l];u.add(f)}return{type:"domez",upAxis:"Z",uri:n,byteLength:o.byteLength,scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}var ROTATE_X_MATRIX$3=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadGlb(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Y",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u=0;return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return u=l.body.byteLength,l.body})}).then(function(l){var c;return parseGltf(l,{copyUV2:!1,addonExtensions:["PBM_mesh"],resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(c=n.split("?")[1])!==null&&c!==void 0?c:"",fetcher:s})}).then(function(l){var c=new THREE__namespace.Matrix4;if(o==="Y"&&c.premultiply(ROTATE_X_MATRIX$3),l.CESIUM_RTC){var f=new THREE__namespace.Matrix4().setPosition(l.CESIUM_RTC.center);c.premultiply(f)}var d=l.scene;return d.applyMatrix4(c),{type:"glb",upAxis:"Z",uri:n,byteLength:u,scene:d,textures:l.textures,dispose:function(){return l.dispose()}}})}var ROTATE_X_MATRIX$2=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]),scratchColor=new THREE__namespace.Color;function loadPly(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Z",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u=0;return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return u=l.body.byteLength,l.body})}).then(function(l){var c,f;return parsePly(l,{propertyNameMapping:(c=t.propertyNameMapping)!==null&&c!==void 0?c:{},customPropertyMapping:(f=t.customPropertyMapping)!==null&&f!==void 0?f:{}})}).then(function(l){var c=l.geometry;switch(t.type){case"geometry":{var f=c;return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,scene:f,meta:{},textures:[],dispose:function(){c.dispose()}}}case"mesh":{var d="color"in c.attributes,p=new THREE__namespace.MeshBasicMaterial({vertexColors:d}),f=new THREE__namespace.Mesh(c,p);return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,scene:f,meta:{},textures:[],dispose:function(){c.dispose(),p.dispose()}}}case"line":{var d="color"in c.attributes,v=new THREE__namespace.LineBasicMaterial({vertexColors:d}),f=new THREE__namespace.Line(c,v);return f.computeLineDistances(),o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,scene:f,meta:{},textures:[],dispose:function(){c.dispose(),v.dispose()}}}case"points":{var g=new THREE__namespace.PointsMaterial({}),f=new THREE__namespace.Points(c,g);return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,scene:f,meta:{},textures:[],dispose:function(){c.dispose(),g.dispose()}}}case"pbmPointCloud":{var h=new PBMPointCloudMaterial,f=new PBMPointCloud(c,h);return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,scene:f,meta:{},textures:[],dispose:function(){c.dispose(),h.dispose()}}}}throw new Error("Invalid Type: ".concat(t.type))})}function parsePly(n,t){var e=new Uint8Array(n),r=extractHeaderText(e),o=r.headerText,s=r.headerLength,u=parseHeader(o,s,t);if(u.format==="ascii"){var l=new TextDecoder().decode(e);return{header:u,geometry:parseASCII(l,u,t)}}else return{header:u,geometry:parseBinary(n,u,t)}}function makePlyElementProperty(n,t){var e={name:"",type:n[0]};return e.type==="list"?(e.name=n[3],e.countType=n[1],e.itemType=n[2]):e.name=n[1],e.name in t.propertyNameMapping&&(e.name=t.propertyNameMapping[e.name]),e}function parseHeader(n,t,e){t===void 0&&(t=0);var r=/^ply([\s\S]*)end_header(\r\n|\r|\n)/,o="",s=r.exec(n);s!==null&&(o=s[1]);for(var u={format:"",version:"",comments:[],elements:[],headerLength:t,objInfo:""},l=o.split(/\r\n|\r|\n/),c=null,f=0;f<l.length;f++){var d=l[f];if(d=d.trim(),d!==""){var p=d.split(/\s+/),v=p.shift();switch(d=p.join(" "),v){case"format":u.format=p[0],u.version=p[1];break;case"comment":u.comments.push(d);break;case"element":c&&u.elements.push(c),c={name:p[0],count:parseInt(p[1]),properties:[]};break;case"property":c&&c.properties.push(makePlyElementProperty(p,e));break;case"obj_info":u.objInfo=d;break;default:console.log("unhandled",v,p)}}}return c&&u.elements.push(c),u}function parseASCIINumber(n,t){switch(t){case"char":case"uchar":case"short":case"ushort":case"int":case"uint":case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":return parseInt(n);case"float":case"double":case"float32":case"float64":return parseFloat(n);default:throw new Error("unspport type: "+t)}}function parseASCIIElement(n,t){for(var e={},r=0;r<n.length;r++){if(t.empty())return null;if(n[r].type==="list"){for(var o=[],s=parseASCIINumber(t.next(),n[r].countType),u=0;u<s;u++){if(t.empty())return null;o.push(parseASCIINumber(t.next(),n[r].itemType))}e[n[r].name]=o}else e[n[r].name]=parseASCIINumber(t.next(),n[r].type)}return e}function createBuffer(n){for(var t={indices:[],vertices:[],normals:[],uvs:[],faceVertexUvs:[],colors:[],faceVertexColors:[]},e=0,r=Object.keys(n.customPropertyMapping);e<r.length;e++){var o=r[e];t[o]=[]}return t}function mapElementAttributes(n){var t=n.map(function(r){return r.name});function e(r){for(var o=0,s=r.length;o<s;o++){var u=r[o];if(t.includes(u))return u}return null}return{attrX:e(["x","px","posx"])||"x",attrY:e(["y","py","posy"])||"y",attrZ:e(["z","pz","posz"])||"z",attrNX:e(["nx","normalx"]),attrNY:e(["ny","normaly"]),attrNZ:e(["nz","normalz"]),attrS:e(["s","u","texture_u","tx"]),attrT:e(["t","v","texture_v","ty"]),attrR:e(["red","diffuse_red","r","diffuse_r"]),attrG:e(["green","diffuse_green","g","diffuse_g"]),attrB:e(["blue","diffuse_blue","b","diffuse_b"])}}function parseASCII(n,t,e){var r=createBuffer(e),o=/end_header\s+(\S[\s\S]*\S|\S)\s*$/,s,u=null;(u=o.exec(n))!==null?s=u[1].split(/\s+/):s=[];var l=new ArrayStream(s);e:for(var c=0;c<t.elements.length;c++)for(var f=t.elements[c],d=mapElementAttributes(f.properties),p=0;p<f.count;p++){var v=parseASCIIElement(f.properties,l);if(!v)break e;handleElement(r,f.name,v,d,e)}return postProcess(r,e)}function postProcess(n,t){var e=new THREE__namespace.BufferGeometry;n.indices.length>0&&e.setIndex(n.indices),e.setAttribute("position",new THREE__namespace.Float32BufferAttribute(n.vertices,3)),n.normals.length>0&&e.setAttribute("normal",new THREE__namespace.Float32BufferAttribute(n.normals,3)),n.uvs.length>0&&e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(n.uvs,2)),n.colors.length>0&&e.setAttribute("color",new THREE__namespace.Float32BufferAttribute(n.colors,3)),(n.faceVertexUvs.length>0||n.faceVertexColors.length>0)&&(e=e.toNonIndexed(),n.faceVertexUvs.length>0&&e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(n.faceVertexUvs,2)),n.faceVertexColors.length>0&&e.setAttribute("color",new THREE__namespace.Float32BufferAttribute(n.faceVertexColors,3)));for(var r=0,o=Object.keys(t.customPropertyMapping);r<o.length;r++){var s=o[r];if(n[s].length>0){var u=t.customPropertyMapping[s],l=u.itemType,c=u.itemNames,f=u.normalized,d=c.length,p=void 0;switch(l){case"float32":p=new THREE__namespace.Float32BufferAttribute(n[s],d,f);break;case"uint32":p=new THREE__namespace.Uint32BufferAttribute(n[s],d,f);break;case"int32":p=new THREE__namespace.Int32BufferAttribute(n[s],d,f);break;case"uint16":p=new THREE__namespace.Uint16BufferAttribute(n[s],d,f);break;case"int16":p=new THREE__namespace.Int16BufferAttribute(n[s],d,f);break;case"uint8":p=new THREE__namespace.Uint8BufferAttribute(n[s],d,f);break;case"int8":p=new THREE__namespace.Int8BufferAttribute(n[s],d,f);break;default:p=new THREE__namespace.Float32BufferAttribute(n[s],d,f);break}e.setAttribute(s,p)}}return e.computeBoundingSphere(),e}function handleElement(n,t,e,r,o){if(t==="vertex"){r.attrX!==null&&r.attrY!==null&&r.attrZ!==null&&n.vertices.push(e[r.attrX],e[r.attrY],e[r.attrZ]),r.attrNX!==null&&r.attrNY!==null&&r.attrNZ!==null&&n.normals.push(e[r.attrNX],e[r.attrNY],e[r.attrNZ]),r.attrS!==null&&r.attrT!==null&&n.uvs.push(e[r.attrS],e[r.attrT]),r.attrR!==null&&r.attrG!==null&&r.attrB!==null&&(scratchColor.setRGB(e[r.attrR]/255,e[r.attrG]/255,e[r.attrB]/255),n.colors.push(scratchColor.r,scratchColor.g,scratchColor.b));for(var s=0,u=Object.keys(o.customPropertyMapping);s<u.length;s++)for(var l=u[s],c=0,f=o.customPropertyMapping[l].itemNames;c<f.length;c++){var d=f[c];n[l].push(e[d])}}else if(t==="face"){var p=e.vertex_indices||e.vertex_index,v=e.texcoord;p.length===3?(n.indices.push(p[0],p[1],p[2]),v&&v.length===6&&(n.faceVertexUvs.push(v[0],v[1]),n.faceVertexUvs.push(v[2],v[3]),n.faceVertexUvs.push(v[4],v[5]))):p.length===4&&(n.indices.push(p[0],p[1],p[3]),n.indices.push(p[1],p[2],p[3])),r.attrR!==null&&r.attrG!==null&&r.attrB!==null&&(scratchColor.setRGB(e[r.attrR]/255,e[r.attrG]/255,e[r.attrB]/255),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b))}}function binaryReadElement(n,t){for(var e={},r=0,o=0;o<t.length;o++){var s=t[o],u=s.valueReader;if(s.type==="list"){var l=[],c=s.countReader.read(n+r);r+=s.countReader.size;for(var f=0;f<c;f++)l.push(u.read(n+r)),r+=u.size;e[s.name]=l}else e[s.name]=u.read(n+r),r+=u.size}return[e,r]}function setPropertyBinaryReaders(n,t,e){function r(l,c,f){switch(c){case"int8":case"char":return{read:function(d){return l.getInt8(d)},size:1};case"uint8":case"uchar":return{read:function(d){return l.getUint8(d)},size:1};case"int16":case"short":return{read:function(d){return l.getInt16(d,f)},size:2};case"uint16":case"ushort":return{read:function(d){return l.getUint16(d,f)},size:2};case"int32":case"int":return{read:function(d){return l.getInt32(d,f)},size:4};case"uint32":case"uint":return{read:function(d){return l.getUint32(d,f)},size:4};case"float32":case"float":return{read:function(d){return l.getFloat32(d,f)},size:4};case"float64":case"double":return{read:function(d){return l.getFloat64(d,f)},size:8};default:throw new Error("not support type: "+c)}}for(var o=0,s=n.length;o<s;o++){var u=n[o];u.type==="list"?(u.countReader=r(t,u.countType,e),u.valueReader=r(t,u.itemType,e)):u.valueReader=r(t,u.type,e)}}function parseBinary(n,t,e){for(var r=createBuffer(e),o=t.format==="binary_little_endian",s=new DataView(n,t.headerLength),u,l=0,c=0;c<t.elements.length;c++){var f=t.elements[c],d=f.properties,p=mapElementAttributes(d);setPropertyBinaryReaders(d,s,o);for(var v=0;v<f.count;v++){u=binaryReadElement(l,d),l+=u[1];var g=u[0];handleElement(r,f.name,g,p,e)}}return postProcess(r,e)}function extractHeaderText(n){var t=0,e=!0,r="",o=[],s=new TextDecoder().decode(n.subarray(0,5)),u=/^ply\r\n/.test(s);do{var l=String.fromCharCode(n[t++]);l!==`
|
|
928
|
+
`),support=typeof Worker!="undefined"&&typeof Blob!="undefined",lzmaWorkerURL="";if(support)try{var blob=new Blob([lzmaWorkerSource],{type:"text/javascript"});lzmaWorkerURL=URL.createObjectURL(blob)}catch(n){}var LZMAWorker=function(){function n(){var t=this;if(!support)throw new Error("LZMAWorker cannot work in this broswer.");this.callCounter=0,this.requests={};var e=this.worker=new Worker(lzmaWorkerURL);e.onmessage=function(r){var o=r.data,s=o.id,u=o.result,l=o.error,c=t.getKey(s);t.requests[c]&&(l?t.requests[c](new Error(l)):t.requests[c](null,u),delete t.requests[c])},e.onerror=function(r){return console.error(r)}}return n.prototype.getKey=function(t){return"key_"+String(t)},n.prototype.decompress=function(t,e){var r=++this.callCounter;this.requests[this.getKey(r)]=e,this.worker.postMessage({type:"decompress",id:r,data:t},[t.buffer])},n.prototype.terminate=function(){this.worker.terminate()},n.support=support,n}();function readUint32(n){return Array.prototype.reduce.call(n,function(t,e,r){return t|e<<r*8},0)}function binaryArrays(n){for(var t=[],e=n.length,r=function(u){var l={data:n[u],offset:0,readByte:function(){return this.data[this.offset++]}},c=l.data.length,f={data:[],offset:0,writeByte:function(p){var v=Math.floor(this.offset/c);this.data[v]||(this.data[v]=new Uint8Array(c)),this.data[v][this.offset%c]=p,this.offset++}};LZMA.decompressFile(l,f),o=new Uint8Array(f.offset);for(var d=0;d<f.offset;d++)o[d]=f.data[Math.floor(d/c)][d%c];t.push(o)},o,s=0;s<e;s++)r(s);return t}function binaryArraysWithWorker(n){for(var t=[],e=n.length,r=function(s){t.push(new Promise(function(u,l){var c=new LZMAWorker;c.decompress(n[s],function(f,d){if(c.terminate(),f)return l(f);u(d)})}))},o=0;o<e;o++)r(o);return Promise.all(t)}function lzma(n){var t=new Uint8Array(n),e=readUint32(t.slice(0,4));if(e>10)return Promise.reject(new Error("LZMA got too many sub chunks."));for(var r=[],o=[],s=4+e*4,u=0;u<e;u++)o[u]=readUint32(t.slice(4+u*4,8+u*4)),u===e-1?r[u]=t.subarray(s,s+o[u]):r[u]=t.slice(s,s+o[u]),s+=o[u];return LZMAWorker.support?binaryArraysWithWorker(r):Promise.resolve(binaryArrays(r))}var dequeuing=!1,queue=[];function dequeue(n){if(n===void 0&&(n=!1),!(!n&&dequeuing)){dequeuing=!0;var t=queue.shift();if(t){try{t()}catch(e){}AnimationFrameLoop.shared.add(function(){return dequeue(!0)},!0,2,-100)}else dequeuing=!1}}function delay(n){return new Promise(function(t,e){var r=function(){try{t(n())}catch(o){e(o)}};queue.push(r),AnimationFrameLoop.shared.add(function(){return dequeue()},!0,2,-100)})}function pick(n,t){for(var e={},r=0,o=t;r<o.length;r++){var s=o[r];s in n&&(e[s]=n[s])}return e}function omit(n,t){for(var e=__assign({},n),r=0,o=t;r<o.length;r++){var s=o[r];s in e&&delete e[s]}return e}var commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},indexMinimal={},minimal$1={},aspromise=asPromise;function asPromise(n,t){for(var e=new Array(arguments.length-1),r=0,o=2,s=!0;o<arguments.length;)e[r++]=arguments[o++];return new Promise(function(l,c){e[r]=function(d){if(s)if(s=!1,d)c(d);else{for(var p=new Array(arguments.length-1),v=0;v<p.length;)p[v++]=arguments[v];l.apply(null,p)}};try{n.apply(t||null,e)}catch(f){s&&(s=!1,c(f))}})}var base64$1={};(function(n){var t=n;t.length=function(l){var c=l.length;if(!c)return 0;for(var f=0;--c%4>1&&l.charAt(c)==="=";)++f;return Math.ceil(l.length*3)/4-f};for(var e=new Array(64),r=new Array(123),o=0;o<64;)r[e[o]=o<26?o+65:o<52?o+71:o<62?o-4:o-59|43]=o++;t.encode=function(l,c,f){for(var d=null,p=[],v=0,g=0,h;c<f;){var m=l[c++];switch(g){case 0:p[v++]=e[m>>2],h=(m&3)<<4,g=1;break;case 1:p[v++]=e[h|m>>4],h=(m&15)<<2,g=2;break;case 2:p[v++]=e[h|m>>6],p[v++]=e[m&63],g=0;break}v>8191&&((d||(d=[])).push(String.fromCharCode.apply(String,p)),v=0)}return g&&(p[v++]=e[h],p[v++]=61,g===1&&(p[v++]=61)),d?(v&&d.push(String.fromCharCode.apply(String,p.slice(0,v))),d.join("")):String.fromCharCode.apply(String,p.slice(0,v))};var s="invalid encoding";t.decode=function(l,c,f){for(var d=f,p=0,v,g=0;g<l.length;){var h=l.charCodeAt(g++);if(h===61&&p>1)break;if((h=r[h])===void 0)throw Error(s);switch(p){case 0:v=h,p=1;break;case 1:c[f++]=v<<2|(h&48)>>4,v=h,p=2;break;case 2:c[f++]=(v&15)<<4|(h&60)>>2,v=h,p=3;break;case 3:c[f++]=(v&3)<<6|h,p=0;break}}if(p===1)throw Error(s);return f-d},t.test=function(l){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(l)}})(base64$1);var eventemitter=EventEmitter;function EventEmitter(){this._listeners={}}EventEmitter.prototype.on=function(t,e,r){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:r||this}),this},EventEmitter.prototype.off=function(t,e){if(t===void 0)this._listeners={};else if(e===void 0)this._listeners[t]=[];else for(var r=this._listeners[t],o=0;o<r.length;)r[o].fn===e?r.splice(o,1):++o;return this},EventEmitter.prototype.emit=function(t){var e=this._listeners[t];if(e){for(var r=[],o=1;o<arguments.length;)r.push(arguments[o++]);for(o=0;o<e.length;)e[o].fn.apply(e[o++].ctx,r)}return this};var float=factory(factory);function factory(n){return typeof Float32Array!="undefined"?function(){var t=new Float32Array([-0]),e=new Uint8Array(t.buffer),r=e[3]===128;function o(c,f,d){t[0]=c,f[d]=e[0],f[d+1]=e[1],f[d+2]=e[2],f[d+3]=e[3]}function s(c,f,d){t[0]=c,f[d]=e[3],f[d+1]=e[2],f[d+2]=e[1],f[d+3]=e[0]}n.writeFloatLE=r?o:s,n.writeFloatBE=r?s:o;function u(c,f){return e[0]=c[f],e[1]=c[f+1],e[2]=c[f+2],e[3]=c[f+3],t[0]}function l(c,f){return e[3]=c[f],e[2]=c[f+1],e[1]=c[f+2],e[0]=c[f+3],t[0]}n.readFloatLE=r?u:l,n.readFloatBE=r?l:u}():function(){function t(r,o,s,u){var l=o<0?1:0;if(l&&(o=-o),o===0)r(1/o>0?0:2147483648,s,u);else if(isNaN(o))r(2143289344,s,u);else if(o>34028234663852886e22)r((l<<31|2139095040)>>>0,s,u);else if(o<11754943508222875e-54)r((l<<31|Math.round(o/1401298464324817e-60))>>>0,s,u);else{var c=Math.floor(Math.log(o)/Math.LN2),f=Math.round(o*Math.pow(2,-c)*8388608)&8388607;r((l<<31|c+127<<23|f)>>>0,s,u)}}n.writeFloatLE=t.bind(null,writeUintLE),n.writeFloatBE=t.bind(null,writeUintBE);function e(r,o,s){var u=r(o,s),l=(u>>31)*2+1,c=u>>>23&255,f=u&8388607;return c===255?f?NaN:l*(1/0):c===0?l*1401298464324817e-60*f:l*Math.pow(2,c-150)*(f+8388608)}n.readFloatLE=e.bind(null,readUintLE),n.readFloatBE=e.bind(null,readUintBE)}(),typeof Float64Array!="undefined"?function(){var t=new Float64Array([-0]),e=new Uint8Array(t.buffer),r=e[7]===128;function o(c,f,d){t[0]=c,f[d]=e[0],f[d+1]=e[1],f[d+2]=e[2],f[d+3]=e[3],f[d+4]=e[4],f[d+5]=e[5],f[d+6]=e[6],f[d+7]=e[7]}function s(c,f,d){t[0]=c,f[d]=e[7],f[d+1]=e[6],f[d+2]=e[5],f[d+3]=e[4],f[d+4]=e[3],f[d+5]=e[2],f[d+6]=e[1],f[d+7]=e[0]}n.writeDoubleLE=r?o:s,n.writeDoubleBE=r?s:o;function u(c,f){return e[0]=c[f],e[1]=c[f+1],e[2]=c[f+2],e[3]=c[f+3],e[4]=c[f+4],e[5]=c[f+5],e[6]=c[f+6],e[7]=c[f+7],t[0]}function l(c,f){return e[7]=c[f],e[6]=c[f+1],e[5]=c[f+2],e[4]=c[f+3],e[3]=c[f+4],e[2]=c[f+5],e[1]=c[f+6],e[0]=c[f+7],t[0]}n.readDoubleLE=r?u:l,n.readDoubleBE=r?l:u}():function(){function t(r,o,s,u,l,c){var f=u<0?1:0;if(f&&(u=-u),u===0)r(0,l,c+o),r(1/u>0?0:2147483648,l,c+s);else if(isNaN(u))r(0,l,c+o),r(2146959360,l,c+s);else if(u>17976931348623157e292)r(0,l,c+o),r((f<<31|2146435072)>>>0,l,c+s);else{var d;if(u<22250738585072014e-324)d=u/5e-324,r(d>>>0,l,c+o),r((f<<31|d/4294967296)>>>0,l,c+s);else{var p=Math.floor(Math.log(u)/Math.LN2);p===1024&&(p=1023),d=u*Math.pow(2,-p),r(d*4503599627370496>>>0,l,c+o),r((f<<31|p+1023<<20|d*1048576&1048575)>>>0,l,c+s)}}}n.writeDoubleLE=t.bind(null,writeUintLE,0,4),n.writeDoubleBE=t.bind(null,writeUintBE,4,0);function e(r,o,s,u,l){var c=r(u,l+o),f=r(u,l+s),d=(f>>31)*2+1,p=f>>>20&2047,v=4294967296*(f&1048575)+c;return p===2047?v?NaN:d*(1/0):p===0?d*5e-324*v:d*Math.pow(2,p-1075)*(v+4503599627370496)}n.readDoubleLE=e.bind(null,readUintLE,0,4),n.readDoubleBE=e.bind(null,readUintBE,4,0)}(),n}function writeUintLE(n,t,e){t[e]=n&255,t[e+1]=n>>>8&255,t[e+2]=n>>>16&255,t[e+3]=n>>>24}function writeUintBE(n,t,e){t[e]=n>>>24,t[e+1]=n>>>16&255,t[e+2]=n>>>8&255,t[e+3]=n&255}function readUintLE(n,t){return(n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24)>>>0}function readUintBE(n,t){return(n[t]<<24|n[t+1]<<16|n[t+2]<<8|n[t+3])>>>0}var inquire_1=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(n){}return null}var utf8$2={};(function(n){var t=n;t.length=function(r){for(var o=0,s=0,u=0;u<r.length;++u)s=r.charCodeAt(u),s<128?o+=1:s<2048?o+=2:(s&64512)===55296&&(r.charCodeAt(u+1)&64512)===56320?(++u,o+=4):o+=3;return o},t.read=function(r,o,s){var u=s-o;if(u<1)return"";for(var l=null,c=[],f=0,d;o<s;)d=r[o++],d<128?c[f++]=d:d>191&&d<224?c[f++]=(d&31)<<6|r[o++]&63:d>239&&d<365?(d=((d&7)<<18|(r[o++]&63)<<12|(r[o++]&63)<<6|r[o++]&63)-65536,c[f++]=55296+(d>>10),c[f++]=56320+(d&1023)):c[f++]=(d&15)<<12|(r[o++]&63)<<6|r[o++]&63,f>8191&&((l||(l=[])).push(String.fromCharCode.apply(String,c)),f=0);return l?(f&&l.push(String.fromCharCode.apply(String,c.slice(0,f))),l.join("")):String.fromCharCode.apply(String,c.slice(0,f))},t.write=function(r,o,s){for(var u=s,l,c,f=0;f<r.length;++f)l=r.charCodeAt(f),l<128?o[s++]=l:l<2048?(o[s++]=l>>6|192,o[s++]=l&63|128):(l&64512)===55296&&((c=r.charCodeAt(f+1))&64512)===56320?(l=65536+((l&1023)<<10)+(c&1023),++f,o[s++]=l>>18|240,o[s++]=l>>12&63|128,o[s++]=l>>6&63|128,o[s++]=l&63|128):(o[s++]=l>>12|224,o[s++]=l>>6&63|128,o[s++]=l&63|128);return s-u}})(utf8$2);var pool_1=pool;function pool(n,t,e){var r=e||8192,o=r>>>1,s=null,u=r;return function(c){if(c<1||c>o)return n(c);u+c>r&&(s=n(r),u=0);var f=t.call(s,u,u+=c);return u&7&&(u=(u|7)+1),f}}var longbits,hasRequiredLongbits;function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=t;var n=requireMinimal();function t(s,u){this.lo=s>>>0,this.hi=u>>>0}var e=t.zero=new t(0,0);e.toNumber=function(){return 0},e.zzEncode=e.zzDecode=function(){return this},e.length=function(){return 1};var r=t.zeroHash="\0\0\0\0\0\0\0\0";t.fromNumber=function(u){if(u===0)return e;var l=u<0;l&&(u=-u);var c=u>>>0,f=(u-c)/4294967296>>>0;return l&&(f=~f>>>0,c=~c>>>0,++c>4294967295&&(c=0,++f>4294967295&&(f=0))),new t(c,f)},t.from=function(u){if(typeof u=="number")return t.fromNumber(u);if(n.isString(u))if(n.Long)u=n.Long.fromString(u);else return t.fromNumber(parseInt(u,10));return u.low||u.high?new t(u.low>>>0,u.high>>>0):e},t.prototype.toNumber=function(u){if(!u&&this.hi>>>31){var l=~this.lo+1>>>0,c=~this.hi>>>0;return l||(c=c+1>>>0),-(l+c*4294967296)}return this.lo+this.hi*4294967296},t.prototype.toLong=function(u){return n.Long?new n.Long(this.lo|0,this.hi|0,!!u):{low:this.lo|0,high:this.hi|0,unsigned:!!u}};var o=String.prototype.charCodeAt;return t.fromHash=function(u){return u===r?e:new t((o.call(u,0)|o.call(u,1)<<8|o.call(u,2)<<16|o.call(u,3)<<24)>>>0,(o.call(u,4)|o.call(u,5)<<8|o.call(u,6)<<16|o.call(u,7)<<24)>>>0)},t.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},t.prototype.zzEncode=function(){var u=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^u)>>>0,this.lo=(this.lo<<1^u)>>>0,this},t.prototype.zzDecode=function(){var u=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^u)>>>0,this.hi=(this.hi>>>1^u)>>>0,this},t.prototype.length=function(){var u=this.lo,l=(this.lo>>>28|this.hi<<4)>>>0,c=this.hi>>>24;return c===0?l===0?u<16384?u<128?1:2:u<2097152?3:4:l<16384?l<128?5:6:l<2097152?7:8:c<128?9:10},longbits}var hasRequiredMinimal;function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,function(n){var t=n;t.asPromise=aspromise,t.base64=base64$1,t.EventEmitter=eventemitter,t.float=float,t.inquire=inquire_1,t.utf8=utf8$2,t.pool=pool_1,t.LongBits=requireLongbits(),t.isNode=!!(typeof commonjsGlobal!="undefined"&&commonjsGlobal&&commonjsGlobal.process&&commonjsGlobal.process.versions&&commonjsGlobal.process.versions.node),t.global=t.isNode&&commonjsGlobal||typeof window!="undefined"&&window||typeof self!="undefined"&&self||commonjsGlobal,t.emptyArray=Object.freeze?Object.freeze([]):[],t.emptyObject=Object.freeze?Object.freeze({}):{},t.isInteger=Number.isInteger||function(s){return typeof s=="number"&&isFinite(s)&&Math.floor(s)===s},t.isString=function(s){return typeof s=="string"||s instanceof String},t.isObject=function(s){return s&&typeof s=="object"},t.isset=t.isSet=function(s,u){var l=s[u];return l!=null&&s.hasOwnProperty(u)?typeof l!="object"||(Array.isArray(l)?l.length:Object.keys(l).length)>0:!1},t.Buffer=function(){try{var o=t.inquire("buffer").Buffer;return o.prototype.utf8Write?o:null}catch(s){return null}}(),t._Buffer_from=null,t._Buffer_allocUnsafe=null,t.newBuffer=function(s){return typeof s=="number"?t.Buffer?t._Buffer_allocUnsafe(s):new t.Array(s):t.Buffer?t._Buffer_from(s):typeof Uint8Array=="undefined"?s:new Uint8Array(s)},t.Array=typeof Uint8Array!="undefined"?Uint8Array:Array,t.Long=t.global.dcodeIO&&t.global.dcodeIO.Long||t.global.Long||t.inquire("long"),t.key2Re=/^true|false|0|1$/,t.key32Re=/^-?(?:0|[1-9][0-9]*)$/,t.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,t.longToHash=function(s){return s?t.LongBits.from(s).toHash():t.LongBits.zeroHash},t.longFromHash=function(s,u){var l=t.LongBits.fromHash(s);return t.Long?t.Long.fromBits(l.lo,l.hi,u):l.toNumber(!!u)};function e(o,s,u){for(var l=Object.keys(s),c=0;c<l.length;++c)(o[l[c]]===void 0||!u)&&(o[l[c]]=s[l[c]]);return o}t.merge=e,t.lcFirst=function(s){return s.charAt(0).toLowerCase()+s.substring(1)};function r(o){function s(u,l){if(!(this instanceof s))return new s(u,l);Object.defineProperty(this,"message",{get:function(){return u}}),Error.captureStackTrace?Error.captureStackTrace(this,s):Object.defineProperty(this,"stack",{value:new Error().stack||""}),l&&e(this,l)}return s.prototype=Object.create(Error.prototype,{constructor:{value:s,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return o},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),s}t.newError=r,t.ProtocolError=r("ProtocolError"),t.oneOfGetter=function(s){for(var u={},l=0;l<s.length;++l)u[s[l]]=1;return function(){for(var c=Object.keys(this),f=c.length-1;f>-1;--f)if(u[c[f]]===1&&this[c[f]]!==void 0&&this[c[f]]!==null)return c[f]}},t.oneOfSetter=function(s){return function(u){for(var l=0;l<s.length;++l)s[l]!==u&&delete this[s[l]]}},t.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},t._configure=function(){var o=t.Buffer;if(!o){t._Buffer_from=t._Buffer_allocUnsafe=null;return}t._Buffer_from=o.from!==Uint8Array.from&&o.from||function(u,l){return new o(u,l)},t._Buffer_allocUnsafe=o.allocUnsafe||function(u){return new o(u)}}}(minimal$1)),minimal$1}var writer=Writer$1,util$4=requireMinimal(),BufferWriter$1,LongBits$1=util$4.LongBits,base64=util$4.base64,utf8$1=util$4.utf8;function Op(n,t,e){this.fn=n,this.len=t,this.next=void 0,this.val=e}function noop(){}function State(n){this.head=n.head,this.tail=n.tail,this.len=n.len,this.next=n.states}function Writer$1(){this.len=0,this.head=new Op(noop,0,0),this.tail=this.head,this.states=null}var create$1=function n(){return util$4.Buffer?function(){return(Writer$1.create=function(){return new BufferWriter$1})()}:function(){return new Writer$1}};Writer$1.create=create$1(),Writer$1.alloc=function n(t){return new util$4.Array(t)},util$4.Array!==Array&&(Writer$1.alloc=util$4.pool(Writer$1.alloc,util$4.Array.prototype.subarray)),Writer$1.prototype._push=function n(t,e,r){return this.tail=this.tail.next=new Op(t,e,r),this.len+=e,this};function writeByte(n,t,e){t[e]=n&255}function writeVarint32(n,t,e){for(;n>127;)t[e++]=n&127|128,n>>>=7;t[e]=n}function VarintOp(n,t){this.len=n,this.next=void 0,this.val=t}VarintOp.prototype=Object.create(Op.prototype),VarintOp.prototype.fn=writeVarint32,Writer$1.prototype.uint32=function n(t){return this.len+=(this.tail=this.tail.next=new VarintOp((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this},Writer$1.prototype.int32=function n(t){return t<0?this._push(writeVarint64,10,LongBits$1.fromNumber(t)):this.uint32(t)},Writer$1.prototype.sint32=function n(t){return this.uint32((t<<1^t>>31)>>>0)};function writeVarint64(n,t,e){for(;n.hi;)t[e++]=n.lo&127|128,n.lo=(n.lo>>>7|n.hi<<25)>>>0,n.hi>>>=7;for(;n.lo>127;)t[e++]=n.lo&127|128,n.lo=n.lo>>>7;t[e++]=n.lo}Writer$1.prototype.uint64=function n(t){var e=LongBits$1.from(t);return this._push(writeVarint64,e.length(),e)},Writer$1.prototype.int64=Writer$1.prototype.uint64,Writer$1.prototype.sint64=function n(t){var e=LongBits$1.from(t).zzEncode();return this._push(writeVarint64,e.length(),e)},Writer$1.prototype.bool=function n(t){return this._push(writeByte,1,t?1:0)};function writeFixed32(n,t,e){t[e]=n&255,t[e+1]=n>>>8&255,t[e+2]=n>>>16&255,t[e+3]=n>>>24}Writer$1.prototype.fixed32=function n(t){return this._push(writeFixed32,4,t>>>0)},Writer$1.prototype.sfixed32=Writer$1.prototype.fixed32,Writer$1.prototype.fixed64=function n(t){var e=LongBits$1.from(t);return this._push(writeFixed32,4,e.lo)._push(writeFixed32,4,e.hi)},Writer$1.prototype.sfixed64=Writer$1.prototype.fixed64,Writer$1.prototype.float=function n(t){return this._push(util$4.float.writeFloatLE,4,t)},Writer$1.prototype.double=function n(t){return this._push(util$4.float.writeDoubleLE,8,t)};var writeBytes=util$4.Array.prototype.set?function n(t,e,r){e.set(t,r)}:function n(t,e,r){for(var o=0;o<t.length;++o)e[r+o]=t[o]};Writer$1.prototype.bytes=function n(t){var e=t.length>>>0;if(!e)return this._push(writeByte,1,0);if(util$4.isString(t)){var r=Writer$1.alloc(e=base64.length(t));base64.decode(t,r,0),t=r}return this.uint32(e)._push(writeBytes,e,t)},Writer$1.prototype.string=function n(t){var e=utf8$1.length(t);return e?this.uint32(e)._push(utf8$1.write,e,t):this._push(writeByte,1,0)},Writer$1.prototype.fork=function n(){return this.states=new State(this),this.head=this.tail=new Op(noop,0,0),this.len=0,this},Writer$1.prototype.reset=function n(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op(noop,0,0),this.len=0),this},Writer$1.prototype.ldelim=function n(){var t=this.head,e=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=t.next,this.tail=e,this.len+=r),this},Writer$1.prototype.finish=function n(){for(var t=this.head.next,e=this.constructor.alloc(this.len),r=0;t;)t.fn(t.val,e,r),r+=t.len,t=t.next;return e},Writer$1._configure=function(n){BufferWriter$1=n,Writer$1.create=create$1(),BufferWriter$1._configure()};var writer_buffer=BufferWriter,Writer=writer;(BufferWriter.prototype=Object.create(Writer.prototype)).constructor=BufferWriter;var util$3=requireMinimal();function BufferWriter(){Writer.call(this)}BufferWriter._configure=function(){BufferWriter.alloc=util$3._Buffer_allocUnsafe,BufferWriter.writeBytesBuffer=util$3.Buffer&&util$3.Buffer.prototype instanceof Uint8Array&&util$3.Buffer.prototype.set.name==="set"?function(t,e,r){e.set(t,r)}:function(t,e,r){if(t.copy)t.copy(e,r,0,t.length);else for(var o=0;o<t.length;)e[r++]=t[o++]}},BufferWriter.prototype.bytes=function n(t){util$3.isString(t)&&(t=util$3._Buffer_from(t,"base64"));var e=t.length>>>0;return this.uint32(e),e&&this._push(BufferWriter.writeBytesBuffer,e,t),this};function writeStringBuffer(n,t,e){n.length<40?util$3.utf8.write(n,t,e):t.utf8Write?t.utf8Write(n,e):t.write(n,e)}BufferWriter.prototype.string=function n(t){var e=util$3.Buffer.byteLength(t);return this.uint32(e),e&&this._push(writeStringBuffer,e,t),this},BufferWriter._configure();var reader=Reader$1,util$2=requireMinimal(),BufferReader$1,LongBits=util$2.LongBits,utf8=util$2.utf8;function indexOutOfRange(n,t){return RangeError("index out of range: "+n.pos+" + "+(t||1)+" > "+n.len)}function Reader$1(n){this.buf=n,this.pos=0,this.len=n.length}var create_array=typeof Uint8Array!="undefined"?function n(t){if(t instanceof Uint8Array||Array.isArray(t))return new Reader$1(t);throw Error("illegal buffer")}:function n(t){if(Array.isArray(t))return new Reader$1(t);throw Error("illegal buffer")},create=function n(){return util$2.Buffer?function(e){return(Reader$1.create=function(o){return util$2.Buffer.isBuffer(o)?new BufferReader$1(o):create_array(o)})(e)}:create_array};Reader$1.create=create(),Reader$1.prototype._slice=util$2.Array.prototype.subarray||util$2.Array.prototype.slice,Reader$1.prototype.uint32=function n(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange(this,10);return t}}(),Reader$1.prototype.int32=function n(){return this.uint32()|0},Reader$1.prototype.sint32=function n(){var t=this.uint32();return t>>>1^-(t&1)|0};function readLongVarint(){var n=new LongBits(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(n.lo=(n.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return n;if(n.lo=(n.lo|(this.buf[this.pos]&127)<<28)>>>0,n.hi=(n.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return n;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.lo=(n.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return n}return n.lo=(n.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,n}if(this.len-this.pos>4){for(;t<5;++t)if(n.hi=(n.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return n}else for(;t<5;++t){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.hi=(n.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return n}throw Error("invalid varint encoding")}Reader$1.prototype.bool=function n(){return this.uint32()!==0};function readFixed32_end(n,t){return(n[t-4]|n[t-3]<<8|n[t-2]<<16|n[t-1]<<24)>>>0}Reader$1.prototype.fixed32=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)},Reader$1.prototype.sfixed32=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)|0};function readFixed64(){if(this.pos+8>this.len)throw indexOutOfRange(this,8);return new LongBits(readFixed32_end(this.buf,this.pos+=4),readFixed32_end(this.buf,this.pos+=4))}Reader$1.prototype.float=function n(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);var t=util$2.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t},Reader$1.prototype.double=function n(){if(this.pos+8>this.len)throw indexOutOfRange(this,4);var t=util$2.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t},Reader$1.prototype.bytes=function n(){var t=this.uint32(),e=this.pos,r=this.pos+t;if(r>this.len)throw indexOutOfRange(this,t);if(this.pos+=t,Array.isArray(this.buf))return this.buf.slice(e,r);if(e===r){var o=util$2.Buffer;return o?o.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,e,r)},Reader$1.prototype.string=function n(){var t=this.bytes();return utf8.read(t,0,t.length)},Reader$1.prototype.skip=function n(t){if(typeof t=="number"){if(this.pos+t>this.len)throw indexOutOfRange(this,t);this.pos+=t}else do if(this.pos>=this.len)throw indexOutOfRange(this);while(this.buf[this.pos++]&128);return this},Reader$1.prototype.skipType=function(n){switch(n){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(n=this.uint32()&7)!==4;)this.skipType(n);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+n+" at offset "+this.pos)}return this},Reader$1._configure=function(n){BufferReader$1=n,Reader$1.create=create(),BufferReader$1._configure();var t=util$2.Long?"toLong":"toNumber";util$2.merge(Reader$1.prototype,{int64:function(){return readLongVarint.call(this)[t](!1)},uint64:function(){return readLongVarint.call(this)[t](!0)},sint64:function(){return readLongVarint.call(this).zzDecode()[t](!1)},fixed64:function(){return readFixed64.call(this)[t](!0)},sfixed64:function(){return readFixed64.call(this)[t](!1)}})};var reader_buffer=BufferReader,Reader=reader;(BufferReader.prototype=Object.create(Reader.prototype)).constructor=BufferReader;var util$1=requireMinimal();function BufferReader(n){Reader.call(this,n)}BufferReader._configure=function(){util$1.Buffer&&(BufferReader.prototype._slice=util$1.Buffer.prototype.slice)},BufferReader.prototype.string=function n(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))},BufferReader._configure();var rpc={},service=Service,util=requireMinimal();(Service.prototype=Object.create(util.EventEmitter.prototype)).constructor=Service;function Service(n,t,e){if(typeof n!="function")throw TypeError("rpcImpl must be a function");util.EventEmitter.call(this),this.rpcImpl=n,this.requestDelimited=!!t,this.responseDelimited=!!e}Service.prototype.rpcCall=function n(t,e,r,o,s){if(!o)throw TypeError("request must be specified");var u=this;if(!s)return util.asPromise(n,u,t,e,r,o);if(!u.rpcImpl){setTimeout(function(){s(Error("already ended"))},0);return}try{return u.rpcImpl(t,e[u.requestDelimited?"encodeDelimited":"encode"](o).finish(),function(c,f){if(c)return u.emit("error",c,t),s(c);if(f===null){u.end(!0);return}if(!(f instanceof r))try{f=r[u.responseDelimited?"decodeDelimited":"decode"](f)}catch(d){return u.emit("error",d,t),s(d)}return u.emit("data",f,t),s(null,f)})}catch(l){u.emit("error",l,t),setTimeout(function(){s(l)},0);return}},Service.prototype.end=function n(t){return this.rpcImpl&&(t||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this},function(n){var t=n;t.Service=service}(rpc);var roots={};(function(n){var t=n;t.build="minimal",t.Writer=writer,t.BufferWriter=writer_buffer,t.Reader=reader,t.BufferReader=reader_buffer,t.util=requireMinimal(),t.rpc=rpc,t.roots=roots,t.configure=e;function e(){t.util._configure(),t.Writer._configure(t.BufferWriter),t.Reader._configure(t.BufferReader)}e()})(indexMinimal);var minimal=indexMinimal;const $Reader$1=minimal.Reader,$util$1=minimal.util,$root$1=minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/pbm.proto"]||(minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/pbm.proto"]={}),Model$2=$root$1.Model=(()=>{function n(t){if(this.chunks=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.chunks=$util$1.emptyArray,n.prototype.createAt=$util$1.Long?$util$1.Long.fromBits(0,0,!0):0,n.prototype.description="",n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Model;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.chunks&&s.chunks.length||(s.chunks=[]),s.chunks.push($root$1.Chunk.decode(e,e.uint32()));break}case 2:{s.createAt=e.uint64();break}case 3:{s.description=e.string();break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Model"},n})();$root$1.Chunk=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.vertices=null,n.prototype.faces=null,n.prototype.name="",n.prototype.texture="",n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Chunk;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.vertices=$root$1.Vertices.decode(e,e.uint32());break}case 2:{s.faces=$root$1.Faces.decode(e,e.uint32());break}case 3:{s.name=e.string();break}case 4:{s.texture=e.string();break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("vertices"))throw $util$1.ProtocolError("missing required 'vertices'",{instance:s});if(!s.hasOwnProperty("faces"))throw $util$1.ProtocolError("missing required 'faces'",{instance:s});if(!s.hasOwnProperty("name"))throw $util$1.ProtocolError("missing required 'name'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Chunk"},n})(),$root$1.Vertices=(()=>{function n(t){if(this.xyz=[],this.uvs=[],this.marks=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.xyz=$util$1.emptyArray,n.prototype.uvs=$util$1.emptyArray,n.prototype.marks=$util$1.emptyArray,n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Vertices;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.xyz&&s.xyz.length||(s.xyz=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.xyz.push(e.float())}else s.xyz.push(e.float());break}case 2:{if(s.uvs&&s.uvs.length||(s.uvs=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.uvs.push(e.float())}else s.uvs.push(e.float());break}case 3:{if(s.marks&&s.marks.length||(s.marks=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.marks.push(e.int32())}else s.marks.push(e.int32());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Vertices"},n})(),$root$1.Faces=(()=>{function n(t){if(this.indices=[],this.normals=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.indices=$util$1.emptyArray,n.prototype.normals=$util$1.emptyArray,n.decode=function(e,r){e instanceof $Reader$1||(e=$Reader$1.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root$1.Faces;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.indices&&s.indices.length||(s.indices=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.indices.push(e.uint32())}else s.indices.push(e.uint32());break}case 2:{if(s.normals&&s.normals.length||(s.normals=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.normals.push(e.float())}else s.normals.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Faces"},n})(),$root$1.VertexMark=(()=>{const n={},t=Object.create(n);return t[n[0]="VERTEX_MARK_UNSPECIFIED"]=0,t[n[1]="VERTEX_MARK_ROOF"]=1,t})();function loadPbm(n,t){var e,r,o,s;t===void 0&&(t={});var u=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),l={byteLength:0},c=autoRestImageOptionsByTextureLength((r=t.textureOptions)!==null&&r!==void 0?r:{},(s=(o=t.textureArray)===null||o===void 0?void 0:o.length)!==null&&s!==void 0?s:0),f={};if(t.textureArray)for(var d=0,p=t.textureArray;d<p.length;d++){var v=p[d];f[v]=loadTexture$1(v,c,u)}return Promise.resolve().then(function(){return u.ajax(n,{responseType:"arraybuffer"})}).then(function(g){return l.byteLength=g.body.byteLength,delay(function(){var h=new Uint8Array(g.body);return Model$2.decode(h)})}).then(function(g){return delay(function(){var h,m;return parse$4(g,(h=t.textureBaseUri)!==null&&h!==void 0?h:function(){var y=n.lastIndexOf("/");if(y>=0){var A=n.slice(0,y)+"/";return/\/model\/$/.test(A)&&(A=A.replace(/\/model\/$/,"/materials/")),A}return""}(),((m=t.textureArray)!==null&&m!==void 0?m:[]).slice(),c,f,u)})}).then(function(g){var h=new THREE__namespace.Group;h.matrixAutoUpdate=!1,h.matrix.compose(h.position,h.quaternion,h.scale),h.name=n;for(var m=0,y=g.objects;m<y.length;m++){var A=y[m];h.add(A)}return{type:"pbm",upAxis:"Z",uri:n,byteLength:l.byteLength,scene:h,textures:g.textures,dispose:function(){return g.dispose()}}})}function parseFloorName(n){var t=n.match(/(group|floor)-?(\d+)/);return t?parseInt(t[2],10):0}function parseChunkName(n){var t=n.match(/(chunk)-?(\d+)/);return t?parseInt(t[2],10):0}function parseSubName(n){var t=n.match(/(sub)-?(\d+)/);return t?parseInt(t[2],10):0}function chunkOrder(n){var t=parseFloorName(n.name),e=parseChunkName(n.name),r=parseSubName(n.name);return t*1e6+e*1e3+r}function parsePBMModel(n){for(var t,e,r,o=typeof n.createAt=="number"?n.createAt:0,s=(t=n.description)!==null&&t!==void 0?t:"",u=[],l=!0,c=!0,f=0,d=n.chunks;f<d.length;f++){var p=d[f];if(!p.vertices.marks||p.vertices.marks.length===0){c=!1;break}}for(var v=0,g=n.chunks;v<g.length;v++){var p=g[v];if(!p.faces.normals||p.faces.normals.length===0){l=!1;break}}for(var h=n.chunks.sort(function(ne,pe){return chunkOrder(ne)-chunkOrder(pe)}),m=[],y=0,A=h;y<A.length;y++){var p=A[y],E=parseFloorName(p.name);m[E]||(m[E]=[]),m[E].push(p)}for(var b=0;b<m.length;b++){var T=m[b];if(T)if(l){for(var _=0,R=0;R<T.length;R++){var p=T[R];_+=p.faces.indices.length}for(var S=new Float32Array(_*3),M=new Float32Array(_*2),B=new Float32Array(_*3),H=c?new Float32Array(_):void 0,w=[],C=[1/0,1/0,1/0,-1/0,-1/0,-1/0],F=0,I=0;I<T.length;I++){for(var L=[1/0,1/0,1/0,-1/0,-1/0,-1/0],p=T[I],k=p.vertices.xyz,N=p.vertices.uvs,D=p.faces.indices,U=p.faces.normals,z=p.vertices.marks,q=D.length,R=0;R<q;R++){var G=D[R],J=S[F*3+R*3]=k[G*3],X=S[F*3+R*3+1]=k[G*3+1],j=S[F*3+R*3+2]=k[G*3+2];H&&(H[F+R]=z[G]),M[F*2+R*2]=N[G*2],M[F*2+R*2+1]=N[G*2+1];var Y=Math.floor(R/3)*3;B[F*3+R*3]=U[Y],B[F*3+R*3+1]=U[Y+1],B[F*3+R*3+2]=U[Y+2],J<L[0]&&(L[0]=J),X<L[1]&&(L[1]=X),j<L[2]&&(L[2]=j),J>L[3]&&(L[3]=J),X>L[4]&&(L[4]=X),j>L[5]&&(L[5]=j)}L[0]<C[0]&&(C[0]=L[0]),L[1]<C[1]&&(C[1]=L[1]),L[2]<C[2]&&(C[2]=L[2]),L[3]>C[3]&&(C[3]=L[3]),L[4]>C[4]&&(C[4]=L[4]),L[5]>C[5]&&(C[5]=L[5]),w.push({materialIndex:I,name:p.name,chunkName:parseChunkName(p.name),start:F,count:p.faces.indices.length,texture:(e=p.texture)!==null&&e!==void 0?e:void 0}),F+=q}var Z={createAt:o,description:s,vertices:S,uvs:M,normals:B,masks:H,indices:null,floorIndex:b,groups:w,extents:C};u.push(Z)}else{for(var _=0,W=0,R=0;R<T.length;R++){var p=T[R];W+=p.vertices.xyz.length/3,_+=p.faces.indices.length}for(var S=new Float32Array(W*3),M=new Float32Array(W*2),B=void 0,ae=new Float32Array(W),re=new Uint32Array(_),H=c?new Float32Array(_):void 0,w=[],C=[1/0,1/0,1/0,-1/0,-1/0,-1/0],se=0,F=0,I=0;I<T.length;I++){for(var L=[1/0,1/0,1/0,-1/0,-1/0,-1/0],p=T[I],k=p.vertices.xyz,ie=p.vertices.marks,N=p.vertices.uvs,D=p.faces.indices,fe=k.length/3,q=D.length,R=0;R<fe;R++){var J=S[F*3+R*3]=k[R*3],X=S[F*3+R*3+1]=k[R*3+1],j=S[F*3+R*3+2]=k[R*3+2];H&&(H[F+R]=ie[R]),M[F*2+R*2]=N[R*2],M[F*2+R*2+1]=N[R*2+1],ae[F+R]=b,J<L[0]&&(L[0]=J),X<L[1]&&(L[1]=X),j<L[2]&&(L[2]=j),J>L[3]&&(L[3]=J),X>L[4]&&(L[4]=X),j>L[5]&&(L[5]=j)}L[0]<C[0]&&(C[0]=L[0]),L[1]<C[1]&&(C[1]=L[1]),L[2]<C[2]&&(C[2]=L[2]),L[3]>C[3]&&(C[3]=L[3]),L[4]>C[4]&&(C[4]=L[4]),L[5]>C[5]&&(C[5]=L[5]);for(var R=0;R<q;R++)re[se+R]=F+D[R];w.push({materialIndex:I,name:p.name,chunkName:parseChunkName(p.name),start:se,count:p.faces.indices.length,texture:(r=p.texture)!==null&&r!==void 0?r:void 0}),F+=fe,se+=q}var Z={createAt:o,description:s,vertices:S,uvs:M,normals:B,masks:H,indices:re,floorIndex:b,groups:w,extents:C};u.push(Z)}}return u}function loadTexture$1(n,t,e){var r=__assign({key:"texture.pbm"},pick(t,["format","quality","size","sharpen","mappings"])),o=new TextureLoader,s=o.loadTexture(n,{imageURL:{transform:t.transform,options:r},encoding:THREE__namespace.sRGBEncoding,wrapS:THREE__namespace.ClampToEdgeWrapping,wrapT:THREE__namespace.ClampToEdgeWrapping,minFilter:THREE__namespace.LinearFilter,maxSize:typeof r.size=="number"?new THREE__namespace.Vector2(r.size,r.size):void 0,fetcher:e}).then(function(u){var l=u.body;return l.needsUpdate=!0,l});return Object.assign(s,{url:n,textureOptions:t})}function parse$4(n,t,e,r,o,s){o===void 0&&(o={});for(var u=parsePBMModel(n),l=0,c="",f=[],d={},p=new Set,v=0,g=u;v<g.length;v++){var h=g[v],m=h.createAt,y=h.description,A=h.vertices,E=h.masks,b=h.uvs,T=h.normals,_=h.indices,R=h.floorIndex,S=h.groups,M=h.extents,B=new THREE__namespace.Box3;B.min.x=M[0],B.min.y=M[1],B.min.z=M[2],B.max.x=M[3],B.max.y=M[4],B.max.z=M[5];var H=new THREE__namespace.BufferGeometry;H.setAttribute("position",new THREE__namespace.BufferAttribute(A,3)),H.setAttribute("uv",new THREE__namespace.BufferAttribute(b,2)),T&&H.setAttribute("normal",new THREE__namespace.BufferAttribute(T,3)),E&&H.setAttribute("mask",new THREE__namespace.BufferAttribute(E,1)),_&&H.setIndex(new THREE__namespace.BufferAttribute(_,1)),H.boundingBox=B,H.boundingSphere=B.getBoundingSphere(new THREE__namespace.Sphere);for(var w=0,C=S;w<C.length;w++){var F=C[w];H.addGroup(F.start,F.count,F.materialIndex)}p.add(H);for(var I=[],L=0,k=S;L<k.length;L++){var F=k[L],N=e[F.chunkName]||(F.texture?pathJoin(t||"",F.texture):void 0),D=new PBMMeshMaterial("basic");D.floor=R,H.attributes.normal===void 0&&(D.flatShading=!0),H.attributes.mask&&(D.defines.USE_VERTEX_MARK=!0),I.push(D),N?d[N]?d[N].push(D):d[N]=[D]:D.color=new THREE__namespace.Color(16777215),p.add(D),D.refreshUniforms()}var U=new PBMMesh(H,I);U.name="model_floor_"+R,U.userData.createAt=m,U.userData.description=y,U.matrix.compose(U.position,U.quaternion,U.scale),U.matrixAutoUpdate=!1,U.frustumCulled=!1,l=m,c=y,f.push(U)}var z=function(q){q=autoRestImageOptionsByTextureLength(q,e.length);for(var G=[],J=function(Z){var W=null;Z in o&&(W=o[Z]),W||(W=loadTexture$1(Z,q,s)),G.push(W.then(function(ae){for(var re=0,se=d[Z];re<se.length;re++){var ie=se[re];ie.map&&(p.delete(ie.map),ie.map.dispose()),ie.map=ae,ie.refreshUniforms(),p.add(ae)}return ae}).catch(function(){for(var ae=0,re=d[Z];ae<re.length;ae++){var se=re[ae];se.map&&(p.delete(se.map),se.map.dispose()),se.map=null,se.color=new THREE__namespace.Color(16777215),se.refreshUniforms()}return null}))},X=0,j=Object.keys(d);X<j.length;X++){var Y=j[X];J(Y)}for(var Y in o)delete o[Y];return Promise.all(G).then(function(Z){return Z.filter(function(W){return W})})};return z(r).then(function(q){return{createAt:l,description:c,objects:f,textures:q,dispose:function(){p.forEach(function(G){G.dispose()}),p.clear()}}})}function autoRestImageOptionsByTextureLength(n,t){return n=Object.assign({},n),n.autoResize!==!1&&(t>96?n.size=Math.min(n.size||1/0,100):t>48?n.size=Math.min(n.size||1/0,200):t>24?n.size=Math.min(n.size||1/0,400):t>22?n.size=Math.min(n.size||1/0,800):t>5&&(n.size=Math.min(n.size||1/0,1024))),n}function loadAt3d(n,t){var e,r,o,s;t===void 0&&(t={});var u=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),l={byteLength:0},c=autoRestImageOptionsByTextureLength((r=t.textureOptions)!==null&&r!==void 0?r:{},(s=(o=t.textureArray)===null||o===void 0?void 0:o.length)!==null&&s!==void 0?s:0),f={};if(t.textureArray)for(var d=0,p=t.textureArray;d<p.length;d++){var v=p[d];f[v]=loadTexture$1(v,c,u)}return Promise.resolve().then(function(){return u.ajax(n,{responseType:"arraybuffer"})}).then(function(g){return lzma(g.body)}).then(function(g){return delay(function(){for(var h,m={chunks:[],createAt:void 0,description:void 0},y=0,A=g;y<A.length;y++){var E=A[y],b=Model$2.decode(E);b.chunks.length&&((h=m.chunks).push.apply(h,b.chunks),m.createAt=b.createAt,m.description=b.description)}return m})}).then(function(g){return delay(function(){var h,m,y;return parse$4(g,(h=t.textureBaseUri)!==null&&h!==void 0?h:function(){var A=n.lastIndexOf("/");if(A>=0){var E=n.slice(0,A)+"/";return/\/model\/$/.test(E)&&(E=E.replace(/\/model\/$/,"/materials/")),E}return""}(),((m=t.textureArray)!==null&&m!==void 0?m:[]).slice(),(y=t.textureOptions)!==null&&y!==void 0?y:{},f,u)})}).then(function(g){var h=new THREE__namespace.Group;h.name=n;for(var m=0,y=g.objects;m<y.length;m++){var A=y[m];h.add(A)}return{type:"at3d",upAxis:"Z",uri:n,byteLength:l.byteLength,scene:h,textures:g.textures,dispose:function(){return g.dispose()}}})}const $Reader=minimal.Reader,$util=minimal.util,$root=minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/dome.proto"]||(minimal.roots["@REALSEE/FIVE:five/loaders/model/parsers/protobuf/dome.proto"]={}),Model$1=$root.Model=(()=>{function n(t){if(this.meshes=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.meshes=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Model;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.meshes&&s.meshes.length||(s.meshes=[]),s.meshes.push($root.Mesh.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Model"},n})();$root.Mesh=(()=>{function n(t){if(this.chunks=[],this.matrix=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.name="",n.prototype.chunks=$util.emptyArray,n.prototype.matrix=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Mesh;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.name=e.string();break}case 2:{s.chunks&&s.chunks.length||(s.chunks=[]),s.chunks.push($root.Chunk.decode(e,e.uint32()));break}case 3:{s.matrix&&s.matrix.length||(s.matrix=[]),s.matrix.push($root.Matrix.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("name"))throw $util.ProtocolError("missing required 'name'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Mesh"},n})(),$root.Matrix=(()=>{function n(t){if(this.elements=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.elements=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Matrix;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.elements&&s.elements.length||(s.elements=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.elements.push(e.float())}else s.elements.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Matrix"},n})(),$root.Chunk=(()=>{function n(t){if(this.material=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.geometry=null,n.prototype.material=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Chunk;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 2:{s.geometry=$root.Geometry.decode(e,e.uint32());break}case 3:{s.material&&s.material.length||(s.material=[]),s.material.push($root.Material.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("geometry"))throw $util.ProtocolError("missing required 'geometry'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Chunk"},n})(),$root.Geometry=(()=>{function n(t){if(this.groups=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.position=null,n.prototype.uv=null,n.prototype.uv2=null,n.prototype.normal=null,n.prototype.groups=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Geometry;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.position=$root.Position.decode(e,e.uint32());break}case 2:{s.uv=$root.UV.decode(e,e.uint32());break}case 3:{s.uv2=$root.UV.decode(e,e.uint32());break}case 4:{s.normal=$root.Normal.decode(e,e.uint32());break}case 5:{s.groups&&s.groups.length||(s.groups=[]),s.groups.push($root.Group.decode(e,e.uint32()));break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("position"))throw $util.ProtocolError("missing required 'position'",{instance:s});if(!s.hasOwnProperty("normal"))throw $util.ProtocolError("missing required 'normal'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Geometry"},n})(),$root.Position=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Position;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Position"},n})(),$root.UV=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.UV;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UV"},n})(),$root.Normal=(()=>{function n(t){if(this.array=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.array=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Normal;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.array&&s.array.length||(s.array=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.array.push(e.float())}else s.array.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Normal"},n})(),$root.Group=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.start=0,n.prototype.count=0,n.prototype.materialIndex=0,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Group;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.start=e.uint32();break}case 2:{s.count=e.uint32();break}case 3:{s.materialIndex=e.uint32();break}default:e.skipType(u&7);break}}if(!s.hasOwnProperty("start"))throw $util.ProtocolError("missing required 'start'",{instance:s});if(!s.hasOwnProperty("count"))throw $util.ProtocolError("missing required 'count'",{instance:s});if(!s.hasOwnProperty("materialIndex"))throw $util.ProtocolError("missing required 'materialIndex'",{instance:s});return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Group"},n})(),$root.Material=(()=>{function n(t){if(t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.kd=null,n.prototype.ks=null,n.prototype.ke=null,n.prototype.mapkd="",n.prototype.mapks="",n.prototype.mapke="",n.prototype.norm="",n.prototype.mapbump="",n.prototype.bump="",n.prototype.mapd="",n.prototype.ns=0,n.prototype.d=0,n.prototype.tr=0,n.prototype.mapkdrepeat="",n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Material;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{s.kd=$root.Color.decode(e,e.uint32());break}case 2:{s.ks=$root.Color.decode(e,e.uint32());break}case 3:{s.ke=$root.Color.decode(e,e.uint32());break}case 4:{s.mapkd=e.string();break}case 5:{s.mapks=e.string();break}case 6:{s.mapke=e.string();break}case 7:{s.norm=e.string();break}case 8:{s.mapbump=e.string();break}case 9:{s.bump=e.string();break}case 10:{s.mapd=e.string();break}case 11:{s.ns=e.float();break}case 12:{s.d=e.float();break}case 13:{s.tr=e.float();break}case 14:{s.mapkdrepeat=e.string();break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Material"},n})(),$root.Color=(()=>{function n(t){if(this.rgb=[],t)for(let e=Object.keys(t),r=0;r<e.length;++r)t[e[r]]!=null&&(this[e[r]]=t[e[r]])}return n.prototype.rgb=$util.emptyArray,n.decode=function(e,r){e instanceof $Reader||(e=$Reader.create(e));let o=r===void 0?e.len:e.pos+r,s=new $root.Color;for(;e.pos<o;){let u=e.uint32();switch(u>>>3){case 1:{if(s.rgb&&s.rgb.length||(s.rgb=[]),(u&7)===2){let l=e.uint32()+e.pos;for(;e.pos<l;)s.rgb.push(e.float())}else s.rgb.push(e.float());break}default:e.skipType(u&7);break}}return s},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Color"},n})();var ROTATE_X_MATRIX$5=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadDome(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){var u;return o.byteLength=s.body.byteLength,parse$3(new Uint8Array(s.body),t.textureBaseUri||"",(u=t.textureOptions)!==null&&u!==void 0?u:{},r)}).then(function(s){var u=new THREE__namespace.Group;u.matrixAutoUpdate=!1,u.applyMatrix4(ROTATE_X_MATRIX$5),u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n;for(var l=0,c=s.objects;l<c.length;l++){var f=c[l];u.add(f)}return{type:"dome",upAxis:"Z",uri:n,byteLength:o.byteLength,scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}function flipBufferGeometryNormals(n){for(var t=[0,0,0],e=0;e<n.attributes.normal.array.length/9;e++)t[0]=n.attributes.normal.array[e*9],t[1]=n.attributes.normal.array[e*9+1],t[2]=n.attributes.normal.array[e*9+2],n.attributes.normal.array[e*9]=n.attributes.normal.array[e*9+6],n.attributes.normal.array[e*9+1]=n.attributes.normal.array[e*9+7],n.attributes.normal.array[e*9+2]=n.attributes.normal.array[e*9+8],n.attributes.normal.array[e*9+6]=t[0],n.attributes.normal.array[e*9+7]=t[1],n.attributes.normal.array[e*9+8]=t[2];for(var e=0;e<n.attributes.position.array.length/9;e++)t[0]=n.attributes.position.array[e*9],t[1]=n.attributes.position.array[e*9+1],t[2]=n.attributes.position.array[e*9+2],n.attributes.position.array[e*9]=n.attributes.position.array[e*9+6],n.attributes.position.array[e*9+1]=n.attributes.position.array[e*9+7],n.attributes.position.array[e*9+2]=n.attributes.position.array[e*9+8],n.attributes.position.array[e*9+6]=t[0],n.attributes.position.array[e*9+7]=t[1],n.attributes.position.array[e*9+8]=t[2];for(var e=0;e<n.attributes.uv.array.length/6;e++)t[0]=n.attributes.uv.array[e*6],t[1]=n.attributes.uv.array[e*6+1],n.attributes.uv.array[e*6]=n.attributes.uv.array[e*6+4],n.attributes.uv.array[e*6+1]=n.attributes.uv.array[e*6+5],n.attributes.uv.array[e*6+4]=t[0],n.attributes.uv.array[e*6+5]=t[1];n.attributes.normal.needsUpdate=!0,n.attributes.position.needsUpdate=!0,n.attributes.uv.needsUpdate=!0}function parseGeometry(n){var t=n.position,e=n.normal,r=n.uv,o=n.uv2,s=n.groups,u=new THREE__namespace.BufferGeometry;u.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(t.array),3)),e&&u.setAttribute("normal",new THREE__namespace.BufferAttribute(new Float32Array(e.array),3)),r&&u.setAttribute("uv",new THREE__namespace.BufferAttribute(new Float32Array(r.array),2)),o&&u.setAttribute("uv2",new THREE__namespace.BufferAttribute(new Float32Array(o.array),2));for(var l=0,c=s;l<c.length;l++){var f=c[l];u.addGroup(f.start,f.count,f.materialIndex)}return u}function loadTexture(n,t,e,r,o,s,u){if(u.hasOwnProperty(n))return u[n];n=n.split("?")[0],isAbsoluteURL(n)||(n=pathJoin(t,n)),n=n.replace(/\/\/vrlab-image\d*.ljcdn.com\//,"//vrlab-public.ljcdn.com/"),n.indexOf("//")===0&&(n="https:"+n);var l=__assign({key:"texture.dome",size:64},pick(e,["quality","format","sharpen","mappings"])),c=u[n]=o.loadTexture(n,{imageURL:{transform:e.transform,options:l},wrapS:THREE__namespace.RepeatWrapping,wrapT:THREE__namespace.RepeatWrapping,fetcher:s}).then(function(f){var d=f.body;return r&&d.repeat.copy(r),d.needsUpdate=!0,d.updateMatrix(),d});return c}function parseMaterial(n,t,e,r,o,s,u,l){var c=[],f=new PBMMeshMaterial("phong");if(u.add(f),n.kd&&(f.color=new THREE__namespace.Color().fromArray(n.kd.rgb).convertLinearToSRGB()),n.mapkd){var d=null;if(n.mapkdrepeat){var p=n.mapkdrepeat.split(/\s+/).map(function(m){return Number(m)}),v=p[0],g=p[1];d=new THREE__namespace.Vector2(v,g)}c.push(loadTexture(n.mapkd,t,e,d,r,o,s).then(function(m){m.encoding=THREE__namespace.sRGBEncoding,f.map=m,u.add(m),l.add(m),f.needsUpdate=!0}).catch(noop$1))}if(n.ks&&(f.specular=new THREE__namespace.Color().fromArray(n.ks.rgb).convertLinearToSRGB()),n.mapks&&c.push(loadTexture(n.mapks,t,e,null,r,o,s).then(function(m){f.specularMap=m,u.add(m),l.add(m)}).catch(noop$1)),n.ke&&(f.emissive=new THREE__namespace.Color().fromArray(n.ke.rgb).convertLinearToSRGB()),n.mapke&&c.push(loadTexture(n.mapke,t,e,null,r,o,s).then(function(m){m.encoding=THREE__namespace.sRGBEncoding,f.emissiveMap=m,u.add(m),l.add(m)}).catch(noop$1)),n.norm&&c.push(loadTexture(n.norm,t,e,null,r,o,s).then(function(m){f.normalMap=m,u.add(m),l.add(m)}).catch(noop$1)),n.mapbump&&c.push(loadTexture(n.mapbump,t,e,null,r,o,s).then(function(m){f.bumpMap=m,u.add(m),l.add(m)}).catch(noop$1)),n.bump&&c.push(loadTexture(n.bump,t,e,null,r,o,s).then(function(m){f.bumpMap=m,u.add(m),l.add(m)}).catch(noop$1)),typeof n.ns=="number"&&(f.shininess=n.ns),typeof n.d=="number"){var h=n.d;h>0&&h<1&&(f.opacity=h)}return f.floor=0,f.refreshUniforms(),{material:f,textureReady:Promise.all(c).then(function(){return f.refreshUniforms()}).then(noop$1)}}function fromProtoBuf(n){return Model$1.decode(n).meshes}function parse$3(n,t,e,r){for(var o=[],s=[],u=new Set,l=fromProtoBuf(n),c=new TextureLoader,f=new THREE__namespace.Matrix4,d=new THREE__namespace.Vector3,p=new THREE__namespace.Quaternion,v=new THREE__namespace.Vector3,g={},h=new Set,m=0,y=l;m<y.length;m++){var A=y[m],E=A.name,b=A.chunks,T=A.matrix;if(!(E==="Ceiling"||E==="CeilingDrop"))for(var _=0,R=T;_<R.length;_++){var S=R[_];f.elements=S.elements;for(var M=new THREE__namespace.Group,B=0;B<b.length;B++){var H=parseGeometry(b[B].geometry);H.applyMatrix4(f),f.decompose(d,p,v),v.x*v.y*v.z<0&&H.attributes.normal&&H.attributes.position&&H.attributes.uv&&flipBufferGeometryNormals(H),u.add(H);for(var w=[],C=0,F=b[B].material;C<F.length;C++){var I=F[C],L=parseMaterial(I,t||"",e,c,r,g,u,h),k=L.material,N=L.textureReady;s.push(N),w.push(k)}var D=new PBMMesh(H,w);D.name="chunk_"+B,D.matrix.compose(D.position,D.quaternion,D.scale),D.matrixAutoUpdate=!1,D.frustumCulled=!1,M.add(D)}M.name=E,o.push(M)}}return Promise.all(s).catch(noop$1).then(function(){return{createAt:0,description:"",objects:o,textures:Array.from(h),dispose:function(){u.forEach(function(U){U.dispose()}),u.clear()}}})}var ROTATE_X_MATRIX$4=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadDomez(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){return o.byteLength=s.body.byteLength,lzma(s.body)}).then(function(s){var u=s.reduce(function(f,d){return f+d.length},0),l=new Uint8Array(u),c=0;return s.forEach(function(f){l.set(f,c),c+=f.length}),l}).then(function(s){var u;return parse$3(s,t.textureBaseUri||"",(u=t.textureOptions)!==null&&u!==void 0?u:{},r)}).then(function(s){var u=new THREE__namespace.Group;u.matrixAutoUpdate=!1,u.applyMatrix4(ROTATE_X_MATRIX$4),u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n;for(var l=0,c=s.objects;l<c.length;l++){var f=c[l];u.add(f)}return{type:"domez",upAxis:"Z",uri:n,byteLength:o.byteLength,scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}var ROTATE_X_MATRIX$3=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadGltf(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Y",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u=0;return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return u=l.body.byteLength,l.body})}).then(function(l){var c;return parseGltf(l,{copyUV2:!1,addonExtensions:["PBM_mesh"],resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(c=n.split("?")[1])!==null&&c!==void 0?c:"",fetcher:s})}).then(function(l){var c=new THREE__namespace.Matrix4;if(o==="Y"&&c.premultiply(ROTATE_X_MATRIX$3),l.CESIUM_RTC){var f=new THREE__namespace.Matrix4().setPosition(l.CESIUM_RTC.center);c.premultiply(f)}var d=l.scene;return d.applyMatrix4(c),{type:"gltf",upAxis:"Z",uri:n,byteLength:u,scene:d,textures:l.textures,dispose:function(){return l.dispose()}}})}var ROTATE_X_MATRIX$2=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]),scratchColor=new THREE__namespace.Color;function loadPly(n,t){var e,r;t===void 0&&(t={});var o=(e=t.upAxis)!==null&&e!==void 0?e:"Z",s=(r=t.fetcher)!==null&&r!==void 0?r:new Fetcher({allowHosts:["*"]}),u=0;return Promise.resolve().then(function(){return s.ajax(n,{responseType:"arraybuffer"}).then(function(l){return u=l.body.byteLength,l.body})}).then(function(l){var c,f;return parsePly(l,{propertyNameMapping:(c=t.propertyNameMapping)!==null&&c!==void 0?c:{},customPropertyMapping:(f=t.customPropertyMapping)!==null&&f!==void 0?f:{}})}).then(function(l){var c=l.geometry;switch(t.type){case"geometry":{var f=c;return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,scene:f,meta:{},textures:[],dispose:function(){c.dispose()}}}case"mesh":{var d="color"in c.attributes,p=new THREE__namespace.MeshBasicMaterial({vertexColors:d}),f=new THREE__namespace.Mesh(c,p);return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,scene:f,meta:{},textures:[],dispose:function(){c.dispose(),p.dispose()}}}case"line":{var d="color"in c.attributes,v=new THREE__namespace.LineBasicMaterial({vertexColors:d}),f=new THREE__namespace.Line(c,v);return f.computeLineDistances(),o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,scene:f,meta:{},textures:[],dispose:function(){c.dispose(),v.dispose()}}}case"points":{var g=new THREE__namespace.PointsMaterial({}),f=new THREE__namespace.Points(c,g);return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,scene:f,meta:{},textures:[],dispose:function(){c.dispose(),g.dispose()}}}case"pbmPointCloud":{var h=new PBMPointCloudMaterial,f=new PBMPointCloud(c,h);return o==="Y"&&f.applyMatrix4(ROTATE_X_MATRIX$2),{type:"ply",upAxis:"Z",uri:n,byteLength:u,scene:f,meta:{},textures:[],dispose:function(){c.dispose(),h.dispose()}}}}throw new Error("Invalid Type: ".concat(t.type))})}function parsePly(n,t){var e=new Uint8Array(n),r=extractHeaderText(e),o=r.headerText,s=r.headerLength,u=parseHeader(o,s,t);if(u.format==="ascii"){var l=new TextDecoder().decode(e);return{header:u,geometry:parseASCII(l,u,t)}}else return{header:u,geometry:parseBinary(n,u,t)}}function makePlyElementProperty(n,t){var e={name:"",type:n[0]};return e.type==="list"?(e.name=n[3],e.countType=n[1],e.itemType=n[2]):e.name=n[1],e.name in t.propertyNameMapping&&(e.name=t.propertyNameMapping[e.name]),e}function parseHeader(n,t,e){t===void 0&&(t=0);var r=/^ply([\s\S]*)end_header(\r\n|\r|\n)/,o="",s=r.exec(n);s!==null&&(o=s[1]);for(var u={format:"",version:"",comments:[],elements:[],headerLength:t,objInfo:""},l=o.split(/\r\n|\r|\n/),c=null,f=0;f<l.length;f++){var d=l[f];if(d=d.trim(),d!==""){var p=d.split(/\s+/),v=p.shift();switch(d=p.join(" "),v){case"format":u.format=p[0],u.version=p[1];break;case"comment":u.comments.push(d);break;case"element":c&&u.elements.push(c),c={name:p[0],count:parseInt(p[1]),properties:[]};break;case"property":c&&c.properties.push(makePlyElementProperty(p,e));break;case"obj_info":u.objInfo=d;break;default:console.log("unhandled",v,p)}}}return c&&u.elements.push(c),u}function parseASCIINumber(n,t){switch(t){case"char":case"uchar":case"short":case"ushort":case"int":case"uint":case"int8":case"uint8":case"int16":case"uint16":case"int32":case"uint32":return parseInt(n);case"float":case"double":case"float32":case"float64":return parseFloat(n);default:throw new Error("unspport type: "+t)}}function parseASCIIElement(n,t){for(var e={},r=0;r<n.length;r++){if(t.empty())return null;if(n[r].type==="list"){for(var o=[],s=parseASCIINumber(t.next(),n[r].countType),u=0;u<s;u++){if(t.empty())return null;o.push(parseASCIINumber(t.next(),n[r].itemType))}e[n[r].name]=o}else e[n[r].name]=parseASCIINumber(t.next(),n[r].type)}return e}function createBuffer(n){for(var t={indices:[],vertices:[],normals:[],uvs:[],faceVertexUvs:[],colors:[],faceVertexColors:[]},e=0,r=Object.keys(n.customPropertyMapping);e<r.length;e++){var o=r[e];t[o]=[]}return t}function mapElementAttributes(n){var t=n.map(function(r){return r.name});function e(r){for(var o=0,s=r.length;o<s;o++){var u=r[o];if(t.includes(u))return u}return null}return{attrX:e(["x","px","posx"])||"x",attrY:e(["y","py","posy"])||"y",attrZ:e(["z","pz","posz"])||"z",attrNX:e(["nx","normalx"]),attrNY:e(["ny","normaly"]),attrNZ:e(["nz","normalz"]),attrS:e(["s","u","texture_u","tx"]),attrT:e(["t","v","texture_v","ty"]),attrR:e(["red","diffuse_red","r","diffuse_r"]),attrG:e(["green","diffuse_green","g","diffuse_g"]),attrB:e(["blue","diffuse_blue","b","diffuse_b"])}}function parseASCII(n,t,e){var r=createBuffer(e),o=/end_header\s+(\S[\s\S]*\S|\S)\s*$/,s,u=null;(u=o.exec(n))!==null?s=u[1].split(/\s+/):s=[];var l=new ArrayStream(s);e:for(var c=0;c<t.elements.length;c++)for(var f=t.elements[c],d=mapElementAttributes(f.properties),p=0;p<f.count;p++){var v=parseASCIIElement(f.properties,l);if(!v)break e;handleElement(r,f.name,v,d,e)}return postProcess(r,e)}function postProcess(n,t){var e=new THREE__namespace.BufferGeometry;n.indices.length>0&&e.setIndex(n.indices),e.setAttribute("position",new THREE__namespace.Float32BufferAttribute(n.vertices,3)),n.normals.length>0&&e.setAttribute("normal",new THREE__namespace.Float32BufferAttribute(n.normals,3)),n.uvs.length>0&&e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(n.uvs,2)),n.colors.length>0&&e.setAttribute("color",new THREE__namespace.Float32BufferAttribute(n.colors,3)),(n.faceVertexUvs.length>0||n.faceVertexColors.length>0)&&(e=e.toNonIndexed(),n.faceVertexUvs.length>0&&e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(n.faceVertexUvs,2)),n.faceVertexColors.length>0&&e.setAttribute("color",new THREE__namespace.Float32BufferAttribute(n.faceVertexColors,3)));for(var r=0,o=Object.keys(t.customPropertyMapping);r<o.length;r++){var s=o[r];if(n[s].length>0){var u=t.customPropertyMapping[s],l=u.itemType,c=u.itemNames,f=u.normalized,d=c.length,p=void 0;switch(l){case"float32":p=new THREE__namespace.Float32BufferAttribute(n[s],d,f);break;case"uint32":p=new THREE__namespace.Uint32BufferAttribute(n[s],d,f);break;case"int32":p=new THREE__namespace.Int32BufferAttribute(n[s],d,f);break;case"uint16":p=new THREE__namespace.Uint16BufferAttribute(n[s],d,f);break;case"int16":p=new THREE__namespace.Int16BufferAttribute(n[s],d,f);break;case"uint8":p=new THREE__namespace.Uint8BufferAttribute(n[s],d,f);break;case"int8":p=new THREE__namespace.Int8BufferAttribute(n[s],d,f);break;default:p=new THREE__namespace.Float32BufferAttribute(n[s],d,f);break}e.setAttribute(s,p)}}return e.computeBoundingSphere(),e}function handleElement(n,t,e,r,o){if(t==="vertex"){r.attrX!==null&&r.attrY!==null&&r.attrZ!==null&&n.vertices.push(e[r.attrX],e[r.attrY],e[r.attrZ]),r.attrNX!==null&&r.attrNY!==null&&r.attrNZ!==null&&n.normals.push(e[r.attrNX],e[r.attrNY],e[r.attrNZ]),r.attrS!==null&&r.attrT!==null&&n.uvs.push(e[r.attrS],e[r.attrT]),r.attrR!==null&&r.attrG!==null&&r.attrB!==null&&(scratchColor.setRGB(e[r.attrR]/255,e[r.attrG]/255,e[r.attrB]/255),n.colors.push(scratchColor.r,scratchColor.g,scratchColor.b));for(var s=0,u=Object.keys(o.customPropertyMapping);s<u.length;s++)for(var l=u[s],c=0,f=o.customPropertyMapping[l].itemNames;c<f.length;c++){var d=f[c];n[l].push(e[d])}}else if(t==="face"){var p=e.vertex_indices||e.vertex_index,v=e.texcoord;p.length===3?(n.indices.push(p[0],p[1],p[2]),v&&v.length===6&&(n.faceVertexUvs.push(v[0],v[1]),n.faceVertexUvs.push(v[2],v[3]),n.faceVertexUvs.push(v[4],v[5]))):p.length===4&&(n.indices.push(p[0],p[1],p[3]),n.indices.push(p[1],p[2],p[3])),r.attrR!==null&&r.attrG!==null&&r.attrB!==null&&(scratchColor.setRGB(e[r.attrR]/255,e[r.attrG]/255,e[r.attrB]/255),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b),n.faceVertexColors.push(scratchColor.r,scratchColor.g,scratchColor.b))}}function binaryReadElement(n,t){for(var e={},r=0,o=0;o<t.length;o++){var s=t[o],u=s.valueReader;if(s.type==="list"){var l=[],c=s.countReader.read(n+r);r+=s.countReader.size;for(var f=0;f<c;f++)l.push(u.read(n+r)),r+=u.size;e[s.name]=l}else e[s.name]=u.read(n+r),r+=u.size}return[e,r]}function setPropertyBinaryReaders(n,t,e){function r(l,c,f){switch(c){case"int8":case"char":return{read:function(d){return l.getInt8(d)},size:1};case"uint8":case"uchar":return{read:function(d){return l.getUint8(d)},size:1};case"int16":case"short":return{read:function(d){return l.getInt16(d,f)},size:2};case"uint16":case"ushort":return{read:function(d){return l.getUint16(d,f)},size:2};case"int32":case"int":return{read:function(d){return l.getInt32(d,f)},size:4};case"uint32":case"uint":return{read:function(d){return l.getUint32(d,f)},size:4};case"float32":case"float":return{read:function(d){return l.getFloat32(d,f)},size:4};case"float64":case"double":return{read:function(d){return l.getFloat64(d,f)},size:8};default:throw new Error("not support type: "+c)}}for(var o=0,s=n.length;o<s;o++){var u=n[o];u.type==="list"?(u.countReader=r(t,u.countType,e),u.valueReader=r(t,u.itemType,e)):u.valueReader=r(t,u.type,e)}}function parseBinary(n,t,e){for(var r=createBuffer(e),o=t.format==="binary_little_endian",s=new DataView(n,t.headerLength),u,l=0,c=0;c<t.elements.length;c++){var f=t.elements[c],d=f.properties,p=mapElementAttributes(d);setPropertyBinaryReaders(d,s,o);for(var v=0;v<f.count;v++){u=binaryReadElement(l,d),l+=u[1];var g=u[0];handleElement(r,f.name,g,p,e)}}return postProcess(r,e)}function extractHeaderText(n){var t=0,e=!0,r="",o=[],s=new TextDecoder().decode(n.subarray(0,5)),u=/^ply\r\n/.test(s);do{var l=String.fromCharCode(n[t++]);l!==`
|
|
929
929
|
`&&l!=="\r"?r+=l:(r==="end_header"&&(e=!1),r!==""&&(o.push(r),r=""))}while(e&&t<n.length);return u===!0&&t++,{headerText:o.join("\r")+"\r",headerLength:t}}var ArrayStream=function(){function n(t){this.arr=t,this.i=0}return n.prototype.empty=function(){return this.i>=this.arr.length},n.prototype.next=function(){return this.arr[this.i++]},n}(),ROTATE_X_MATRIX$1=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]),_object_pattern=/^[og]\s*(.+)?/,_material_library_pattern=/^mtllib /,_material_use_pattern=/^usemtl /,_map_use_pattern=/^usemap /,_face_vertex_data_separator_pattern=/\s+/,_color=new THREE__namespace.Color,ObjState=function(){function n(){this.objects=[],this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.materials={},this.materialLibraries=[],this.startObject("",!1)}return n.prototype.startObject=function(t,e){if(this.object&&this.object.fromDeclaration===!1){this.object.name=t,this.object.fromDeclaration=e!==!1;return}var r=this.object&&typeof this.object.currentMaterial=="function"?this.object.currentMaterial():void 0;if(this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0),this.object={name:t||"",fromDeclaration:e!==!1,geometry:{vertices:[],hasNormal:!0,normals:[],hasColor:!0,colors:[],hasUV:!0,uvs:[],index:[],indexMap:{}},materials:[],smooth:!0,startMaterial:function(s,u){var l,c,f=this._finalize(!1);f&&(f.inherited||((l=f.groupCount)!==null&&l!==void 0?l:0)<=0)&&this.materials.splice((c=f.index)!==null&&c!==void 0?c:0,1);var d={index:this.materials.length,name:s||"",mtllib:Array.isArray(u)&&u.length>0?u[u.length-1]:"",smooth:f!==void 0?f.smooth:this.smooth,groupStart:f!==void 0?f.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(p){var v={index:typeof p=="number"?p:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(){return this}};return v.clone=this.clone.bind(v),v}};return this.materials.push(d),d},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(s){var u,l,c=this.currentMaterial();if(c&&c.groupEnd===-1&&(c.groupEnd=this.geometry.index.length,c.groupCount=c.groupEnd-((u=c.groupStart)!==null&&u!==void 0?u:0),c.inherited=!1),s&&this.materials.length>1)for(var f=this.materials.length-1;f>=0;f--)((l=this.materials[f].groupCount)!==null&&l!==void 0?l:0)<=0&&this.materials.splice(f,1);return s&&this.materials.length===0&&this.materials.push({name:"",smooth:this.smooth}),c}},r&&r.name&&typeof r.clone=="function"){var o=r.clone(0);o.inherited=!0,this.object.materials.push(o)}this.objects.push(this.object)},n.prototype.finalize=function(){this.object&&typeof this.object._finalize=="function"&&this.object._finalize(!0)},n.prototype.parseVertexIndex=function(t,e){var r=parseInt(t,10);return(r>=0?r-1:r+e/3)*3},n.prototype.parseNormalIndex=function(t,e){var r=parseInt(t,10);return(r>=0?r-1:r+e/3)*3},n.prototype.parseUVIndex=function(t,e){var r=parseInt(t,10);return(r>=0?r-1:r+e/2)*2},n.prototype.addFace=function(t,e,r,o,s,u,l,c,f){var d=this.object.geometry,p=this.vertices.length,v=this.normals.length,g=this.uvs.length,h=this.parseVertexIndex(t,p),m=this.parseVertexIndex(e,p),y=this.parseVertexIndex(r,p),A=l!==void 0?this.parseNormalIndex(l,v):void 0,E=c!==void 0?this.parseNormalIndex(c,v):void 0,b=f!==void 0?this.parseNormalIndex(f,v):void 0,T=o!==void 0?this.parseUVIndex(o,g):void 0,_=s!==void 0?this.parseUVIndex(s,g):void 0,R=u!==void 0?this.parseUVIndex(u,g):void 0;(d.hasNormal===!0&&A===void 0||E===void 0||b===void 0)&&(d.hasNormal=!1),(d.hasUV===!0&&T===void 0||_===void 0||R===void 0)&&(d.hasUV=!1);var S=[h,T,A].join(":"),M=d.indexMap[S];M===void 0&&(M=d.vertices.length/3,d.indexMap[S]=M,d.vertices.push(this.vertices[h+0],this.vertices[h+1],this.vertices[h+2]),d.hasColor&&(this.colors[h]===void 0?d.hasColor=!1:d.colors.push(this.colors[h+0],this.colors[h+1],this.colors[h+2])),d.hasNormal&&d.normals.push(this.normals[h+0],this.normals[h+1],this.normals[h+2]),d.hasUV&&d.uvs.push(this.uvs[T+0],this.uvs[T+1])),d.index.push(M);var B=[m,_,E].join(":"),H=d.indexMap[B];H===void 0&&(H=d.vertices.length/3,d.indexMap[B]=H,d.vertices.push(this.vertices[m+0],this.vertices[m+1],this.vertices[m+2]),d.hasColor&&(this.colors[m]===void 0?d.hasColor=!1:d.colors.push(this.colors[m+0],this.colors[m+1],this.colors[m+2])),d.hasNormal&&d.normals.push(this.normals[m+0],this.normals[m+1],this.normals[m+2]),d.hasUV&&d.uvs.push(this.uvs[_+0],this.uvs[_+1])),d.index.push(H);var w=[y,R,b].join(":"),C=d.indexMap[w];C===void 0&&(C=d.vertices.length/3,d.indexMap[w]=C,d.vertices.push(this.vertices[y+0],this.vertices[y+1],this.vertices[y+2]),d.hasColor&&(this.colors[y]===void 0?d.hasColor=!1:d.colors.push(this.colors[y+0],this.colors[y+1],this.colors[y+2])),d.hasNormal&&d.normals.push(this.normals[y+0],this.normals[y+1],this.normals[y+2]),d.hasUV&&d.uvs.push(this.uvs[R+0],this.uvs[R+1])),d.index.push(C)},n}();function parseObj(n){var t=new ObjState;n.indexOf(`\r
|
|
930
930
|
`)!==-1&&(n=n.replace(/\r\n/g,`
|
|
931
931
|
`)),n.indexOf(`\\
|
|
932
932
|
`)!==-1&&(n=n.replace(/\\\n/g,""));for(var e=n.split(`
|
|
933
933
|
`),r=[],o=0,s=e.length;o<s;o++){var u=e[o].trimStart();if(u.length!==0){var l=u.charAt(0);if(l!=="#"){if(l==="v"){var c=u.split(_face_vertex_data_separator_pattern);switch(c[0]){case"v":t.vertices.push(parseFloat(c[1]),parseFloat(c[2]),parseFloat(c[3])),c.length>=7?(_color.setRGB(parseFloat(c[4]),parseFloat(c[5]),parseFloat(c[6])),_color.convertSRGBToLinear(),t.colors.push(_color.r,_color.g,_color.b)):t.colors.push(void 0,void 0,void 0);break;case"vn":t.normals.push(parseFloat(c[1]),parseFloat(c[2]),parseFloat(c[3]));break;case"vt":t.uvs.push(parseFloat(c[1]),parseFloat(c[2]));break}}else if(l==="f"){for(var f=u.slice(1).trim(),d=f.split(_face_vertex_data_separator_pattern),p=[],v=0,g=d.length;v<g;v++){var h=d[v];if(h.length>0){var m=h.split("/");p.push(m)}}for(var y=p[0],v=1,g=p.length-1;v<g;v++){var A=p[v],E=p[v+1];t.addFace(y[0],A[0],E[0],y[1],A[1],E[1],y[2],A[2],E[2])}}else if(l!=="l"){if(l!=="p")if((r=_object_pattern.exec(u))!==null){var b=(" "+r[0].slice(1).trim()).slice(1);t.startObject(b)}else if(_material_use_pattern.test(u))t.object.startMaterial(u.substring(7).trim(),t.materialLibraries);else if(_material_library_pattern.test(u))t.materialLibraries.push(u.substring(7).trim());else if(_map_use_pattern.test(u))console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');else if(l==="s"){if(r=u.split(" "),r.length>1){var T=r[1].trim().toLowerCase();t.object.smooth=T!=="0"&&T!=="off"}else t.object.smooth=!0;var _=t.object.currentMaterial();_&&(_.smooth=t.object.smooth)}else{if(u==="\0")continue;console.warn('THREE.OBJLoader: Unexpected line: "'+u+'"')}}}}}return t.finalize(),t}function parseMtl(n,t,e){for(var r=new TextureLoader,o=t.split(`
|
|
934
|
-
`),s={name:""},u=/\s+/,l={},c=0;c<o.length;c++){var f=o[c];if(f=f.trim(),!(f.length===0||f.charAt(0)==="#")){var d=f.indexOf(" "),p=d>=0?f.substring(0,d):f;p=p.toLowerCase();var v=d>=0?f.substring(d+1):"";if(v=v.trim(),p==="newmtl")s={name:v},l[v]=s;else if(p==="ka"||p==="kd"||p==="ks"||p==="ke"){var g=v.split(u,3);s[p]=[parseFloat(g[0]),parseFloat(g[1]),parseFloat(g[2])]}else(p==="map_kd"||p==="map_ks"||p==="map_ke"||p==="norm"||p==="map_bump"||p==="bump"||p==="map_d"||p==="ns"||p==="d"||p==="tr")&&(s[p]=v)}}function h(y){var A={url:"",scale:new THREE__namespace.Vector2(1,1),offset:new THREE__namespace.Vector2(0,0),bumpScale:1},E=y.split(/\s+/),b;return b=E.indexOf("-bm"),b>=0&&(A.bumpScale=parseFloat(E[b+1]),E.splice(b,2)),b=E.indexOf("-s"),b>=0&&(A.scale.set(parseFloat(E[b+1]),parseFloat(E[b+2])),E.splice(b,4)),b=E.indexOf("-o"),b>=0&&(A.offset.set(parseFloat(E[b+1]),parseFloat(E[b+2])),E.splice(b,4)),A.url=E.join(" ").trim(),A}function m(y,A,E){var b=h(E),T=pathJoin(e.path,b.url);return r.loadTexture(T,{fetcher:e.fetcher,encoding:A==="map"||A==="emissiveMap"?THREE__namespace.sRGBEncoding:THREE__namespace.LinearEncoding,minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,wrapS:THREE__namespace.RepeatWrapping,wrapT:THREE__namespace.RepeatWrapping}).then(function(_){var R=_.body;return R.repeat.copy(b.scale),R.offset.copy(b.offset),y.bumpScale=b.bumpScale,y[A]=R,R})}return{name:n,create:function(y){var A=new PBMMeshMaterial(e.materialType),E=[],b=l[y];if(b){if(b.kd!==void 0&&A.color.fromArray(b.kd),b.ks!==void 0&&A.specular.fromArray(b.ks),b.ke!==void 0&&A.emissive.fromArray(b.ke),b.map_kd!==void 0&&E.push(m(A,"map",b.map_kd)),b.map_ks!==void 0&&E.push(m(A,"specularMap",b.map_ks)),b.map_ke!==void 0&&E.push(m(A,"emissiveMap",b.map_ke)),b.norm!==void 0&&E.push(m(A,"normalMap",b.norm)),b.map_bump!==void 0&&E.push(m(A,"bumpMap",b.map_bump)),b.bump!==void 0&&E.push(m(A,"bumpMap",b.bump)),b.map_d!==void 0&&E.push(m(A,"alphaMap",b.map_d)),b.ns!==void 0&&(A.shininess=parseFloat(b.ns)),b.d!==void 0){var T=parseFloat(b.d);T<1&&(A.opacity=T,A.transparent=!0)}if(b.tr!==void 0){var T=parseFloat(b.tr);T>0&&(A.opacity=1-T,A.transparent=!0)}}var _=Promise.all(E).then(function(R){return A.refreshUniforms(),R});return[A,_]}}}function build(n,t){for(var e,r,o=[],s=[],u=new THREE__namespace.Group,l=function(d,p){var v=n.objects[d],g=v.geometry,h=v.materials,m=!1;if(g.vertices.length===0)return"continue";var y=new THREE__namespace.BufferGeometry;s.push(function(){return y.dispose()}),y.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(g.vertices),3)),g.normals.length>0&&y.setAttribute("normal",new THREE__namespace.BufferAttribute(new Float32Array(g.normals),3)),g.colors.length>0&&(m=!0,y.setAttribute("color",new THREE__namespace.BufferAttribute(new Float32Array(g.colors),3))),g.uvs.length>0&&y.setAttribute("uv",new THREE__namespace.BufferAttribute(new Float32Array(g.uvs),2)),g.index.length>0&&y.setIndex(new THREE__namespace.BufferAttribute(new Uint32Array(g.index),1)),y.computeBoundingBox(),y.computeBoundingSphere();for(var A=[],E=function(S,M){var B=h[S],H=B.name+"_"+B.smooth+"_"+m,w=n.materials[H];if(!w){for(var C=null,F=0,I=t;F<I.length;F++){var L=I[F],k=L.name,N=L.create;k===B.mtllib&&(C=N(B.name))}if(!C){var D=new PBMMeshMaterial;D.refreshUniforms(),C=[D,Promise.resolve([])]}w=C[0],w.name=B.name,w.flatShading=!(B.smooth||y.attributes.normal),w.vertexColors=m,n.materials[H]=w;var U=C[1];o.push(U),s.push(function(){return w.dispose()})}A.push(w)},b=0,T=h.length;b<T;b++)E(b);for(var b=0,T=h.length;b<T;b++){var _=h[b];y.addGroup((e=_.groupStart)!==null&&e!==void 0?e:0,(r=_.groupCount)!==null&&r!==void 0?r:0,b)}var R=new PBMMesh(y,A);R.name=v.name,u.add(R)},c=0,f=n.objects.length;c<f;c++)l(c);return Promise.all(o).then(function(d){for(var p=[],v=0,g=d;v<g.length;v++){var h=g[v];p=p.concat(h)}return{scene:u,textures:p,dispose:function(){return s.forEach(function(m){return m()})}}})}function loadObj(n,t){var e,r,o;t===void 0&&(t={});var s=(e=t.upAxis)!==null&&e!==void 0?e:"Z",u=(r=t.materialType)!==null&&r!==void 0?r:"basic",l=(o=t.fetcher)!==null&&o!==void 0?o:new Fetcher({allowHosts:["*"]}),c=n.slice(0,n.lastIndexOf("/")+1),f=0,d;return Promise.resolve().then(function(){return l.ajax(n,{responseType:"arraybuffer"})}).then(function(p){f=p.body.byteLength;var v=new TextDecoder;return v.decode(p.body)}).then(function(p){return d=parseObj(p),Promise.all(d.materialLibraries.map(function(v){var g=pathJoin(c,v),h=g.slice(0,g.lastIndexOf("/")+1);return l.ajax(g,{responseType:"text"}).then(function(m){return parseMtl(v,m.body,{path:h,materialType:u,fetcher:l})})}))}).then(function(p){return build(d,p)}).then(function(p){var v=new THREE__namespace.Matrix4;return s==="Y"&&v.premultiply(ROTATE_X_MATRIX$1),p.scene.applyMatrix4(v),{type:"obj",upAxis:"Z",uri:n,byteLength:f,scene:p.scene,textures:p.textures,dispose:function(){return p.dispose()}}})}var u8=Uint8Array,u16=Uint16Array,i32=Int32Array,fleb=new u8([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),fdeb=new u8([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),clim=new u8([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),freb=function(n,t){for(var e=new u16(31),r=0;r<31;++r)e[r]=t+=1<<n[r-1];for(var o=new i32(e[30]),r=1;r<30;++r)for(var s=e[r];s<e[r+1];++s)o[s]=s-e[r]<<5|r;return{b:e,r:o}},_a$3=freb(fleb,2),fl=_a$3.b,revfl=_a$3.r;fl[28]=258,revfl[258]=28;for(var _b=freb(fdeb,0),fd=_b.b,rev=new u16(32768),i=0;i<32768;++i){var x=(i&43690)>>1|(i&21845)<<1;x=(x&52428)>>2|(x&13107)<<2,x=(x&61680)>>4|(x&3855)<<4,rev[i]=((x&65280)>>8|(x&255)<<8)>>1}for(var hMap=function(n,t,e){for(var r=n.length,o=0,s=new u16(t);o<r;++o)n[o]&&++s[n[o]-1];var u=new u16(t);for(o=1;o<t;++o)u[o]=u[o-1]+s[o-1]<<1;var l;if(e){l=new u16(1<<t);var c=15-t;for(o=0;o<r;++o)if(n[o])for(var f=o<<4|n[o],d=t-n[o],p=u[n[o]-1]++<<d,v=p|(1<<d)-1;p<=v;++p)l[rev[p]>>c]=f}else for(l=new u16(r),o=0;o<r;++o)n[o]&&(l[o]=rev[u[n[o]-1]++]>>15-n[o]);return l},flt=new u8(288),i=0;i<144;++i)flt[i]=8;for(var i=144;i<256;++i)flt[i]=9;for(var i=256;i<280;++i)flt[i]=7;for(var i=280;i<288;++i)flt[i]=8;for(var fdt=new u8(32),i=0;i<32;++i)fdt[i]=5;var flrm=hMap(flt,9,1),fdrm=hMap(fdt,5,1),max=function(n){for(var t=n[0],e=1;e<n.length;++e)n[e]>t&&(t=n[e]);return t},bits=function(n,t,e){var r=t/8|0;return(n[r]|n[r+1]<<8)>>(t&7)&e},bits16=function(n,t){var e=t/8|0;return(n[e]|n[e+1]<<8|n[e+2]<<16)>>(t&7)},shft=function(n){return(n+7)/8|0},slc=function(n,t,e){return(t==null||t<0)&&(t=0),(e==null||e>n.length)&&(e=n.length),new u8(n.subarray(t,e))},ec=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],err=function(n,t,e){var r=new Error(t||ec[n]);if(r.code=n,Error.captureStackTrace&&Error.captureStackTrace(r,err),!e)throw r;return r},inflt=function(n,t,e,r){var o=n.length,s=r?r.length:0;if(!o||t.f&&!t.l)return e||new u8(0);var u=!e,l=u||t.i!=2,c=t.i;u&&(e=new u8(o*3));var f=function(se){var ie=e.length;if(se>ie){var fe=new u8(Math.max(ie*2,se));fe.set(e),e=fe}},d=t.f||0,p=t.p||0,v=t.b||0,g=t.l,h=t.d,m=t.m,y=t.n,A=o*8;do{if(!g){d=bits(n,p,1);var E=bits(n,p+1,3);if(p+=3,E)if(E==1)g=flrm,h=fdrm,m=9,y=5;else if(E==2){var R=bits(n,p,31)+257,S=bits(n,p+10,15)+4,M=R+bits(n,p+5,31)+1;p+=14;for(var B=new u8(M),H=new u8(19),w=0;w<S;++w)H[clim[w]]=bits(n,p+w*3,7);p+=S*3;for(var C=max(H),F=(1<<C)-1,I=hMap(H,C,1),w=0;w<M;){var L=I[bits(n,p,F)];p+=L&15;var b=L>>4;if(b<16)B[w++]=b;else{var k=0,N=0;for(b==16?(N=3+bits(n,p,3),p+=2,k=B[w-1]):b==17?(N=3+bits(n,p,7),p+=3):b==18&&(N=11+bits(n,p,127),p+=7);N--;)B[w++]=k}}var D=B.subarray(0,R),U=B.subarray(R);m=max(D),y=max(U),g=hMap(D,m,1),h=hMap(U,y,1)}else err(1);else{var b=shft(p)+4,T=n[b-4]|n[b-3]<<8,_=b+T;if(_>o){c&&err(0);break}l&&f(v+T),e.set(n.subarray(b,_),v),t.b=v+=T,t.p=p=_*8,t.f=d;continue}if(p>A){c&&err(0);break}}l&&f(v+131072);for(var z=(1<<m)-1,q=(1<<y)-1,G=p;;G=p){var k=g[bits16(n,p)&z],J=k>>4;if(p+=k&15,p>A){c&&err(0);break}if(k||err(2),J<256)e[v++]=J;else if(J==256){G=p,g=null;break}else{var X=J-254;if(J>264){var w=J-257,j=fleb[w];X=bits(n,p,(1<<j)-1)+fl[w],p+=j}var Y=h[bits16(n,p)&q],Z=Y>>4;Y||err(3),p+=Y&15;var U=fd[Z];if(Z>3){var j=fdeb[Z];U+=bits16(n,p)&(1<<j)-1,p+=j}if(p>A){c&&err(0);break}l&&f(v+131072);var W=v+X;if(v<U){var ae=s-U,re=Math.min(U,W);for(ae+v<0&&err(3);v<re;++v)e[v]=r[ae+v]}for(;v<W;++v)e[v]=e[v-U]}}t.l=g,t.p=G,t.b=v,t.f=d,g&&(d=1,t.m=m,t.d=h,t.n=y)}while(!d);return v!=e.length&&u?slc(e,0,v):e.subarray(0,v)},et=new u8(0),b2=function(n,t){return n[t]|n[t+1]<<8},b4=function(n,t){return(n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24)>>>0},b8=function(n,t){return b4(n,t)+b4(n,t+4)*4294967296},zls=function(n,t){return((n[0]&15)!=8||n[0]>>4>7||(n[0]<<8|n[1])%31)&&err(6,"invalid zlib data"),(n[1]>>5&1)==+!t&&err(6,"invalid zlib data: "+(n[1]&32?"need":"unexpected")+" dictionary"),(n[1]>>3&4)+2};function inflateSync(n,t){return inflt(n,{i:2},t&&t.out,t&&t.dictionary)}function unzlibSync(n,t){return inflt(n.subarray(zls(n,t),-4),{i:2},t,t)}var td=typeof TextDecoder!="undefined"&&new TextDecoder,tds=0;try{td.decode(et,{stream:!0}),tds=1}catch(n){}var dutf8=function(n){for(var t="",e=0;;){var r=n[e++],o=(r>127)+(r>223)+(r>239);if(e+o>n.length)return{s:t,r:slc(n,e-1)};o?o==3?(r=((r&15)<<18|(n[e++]&63)<<12|(n[e++]&63)<<6|n[e++]&63)-65536,t+=String.fromCharCode(55296|r>>10,56320|r&1023)):o&1?t+=String.fromCharCode((r&31)<<6|n[e++]&63):t+=String.fromCharCode((r&15)<<12|(n[e++]&63)<<6|n[e++]&63):t+=String.fromCharCode(r)}};function strFromU8(n,t){if(t){for(var e="",r=0;r<n.length;r+=16384)e+=String.fromCharCode.apply(null,n.subarray(r,r+16384));return e}else{if(td)return td.decode(n);var o=dutf8(n),s=o.s,e=o.r;return e.length&&err(8),s}}var slzh=function(n,t){return t+30+b2(n,t+26)+b2(n,t+28)},zh=function(n,t,e){var r=b2(n,t+28),o=strFromU8(n.subarray(t+46,t+46+r),!(b2(n,t+8)&2048)),s=t+46+r,u=b4(n,t+20),l=e&&u==4294967295?z64e(n,s):[u,b4(n,t+24),b4(n,t+42)],c=l[0],f=l[1],d=l[2];return[b2(n,t+10),c,f,o,s+b2(n,t+30)+b2(n,t+32),d]},z64e=function(n,t){for(;b2(n,t)!=1;t+=4+b2(n,t+2));return[b8(n,t+12),b8(n,t+4),b8(n,t+20)]};function unzipSync(n,t){for(var e={},r=n.length-22;b4(n,r)!=101010256;--r)(!r||n.length-r>65558)&&err(13);var o=b2(n,r+8);if(!o)return{};var s=b4(n,r+16),u=s==4294967295||o==65535;if(u){var l=b4(n,r-12);u=b4(n,l)==101075792,u&&(o=b4(n,l+32),s=b4(n,l+48))}for(var c=0;c<o;++c){var f=zh(n,s,u),d=f[0],p=f[1],v=f[2],g=f[3],h=f[4],m=f[5],y=slzh(n,m);s=h,d?d==8?e[g]=inflateSync(n.subarray(y,y+p),{out:new u8(v)}):err(14,"unknown compression type "+d):e[g]=slc(n,y,y+p)}return e}var ROTATE_X_MATRIX=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadFbx(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o=0;return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"}).then(function(s){return o=s.body.byteLength,s.body})}).then(function(s){var u;return parse$2(s,{materialType:t.materialType,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(u=n.split("?")[1])!==null&&u!==void 0?u:"",fetcher:r})}).then(function(s){var u=s.scene,l=s.unitScale/100,c=new THREE__namespace.Matrix4;return c.makeScale(l,l,l),s.upAxis==="Y"&&c.premultiply(ROTATE_X_MATRIX),u.applyMatrix4(c),{type:"fbx",upAxis:"Z",uri:n,byteLength:o,scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}function parse$2(n,t){var e;if(isFbxFormatBinary(n))e=new BinaryParser().parse(n);else{var r=convertArrayBufferToString(n);if(!isFbxFormatASCII(r))throw new Error("THREE.FBXLoader: Unknown format.");if(getFbxVersion(r)<7e3)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+getFbxVersion(r));e=new TextParser().parse(r)}return new FBXTreeParser(t).parse(e)}var FBXTreeParser=function(){function n(t){var e,r,o;this.materialType=(e=t.materialType)!==null&&e!==void 0?e:"phong",this.resourcePath=(r=t.resourcePath)!==null&&r!==void 0?r:"",this.search=(o=t.search)!==null&&o!==void 0?o:"",this.fetcher=t.fetcher}return n.prototype.parse=function(t){var e,r,o,s,u,l,c=this.parseConnections(t),f=new THREE__namespace.Group,d=[],p=this.parseImages(t),v=this.parseTextures(t,p,c,d),g=this.parseMaterials(t,v,c),h=this.parseDeformers(t,c),m=new GeometryParser().parse(t,h,c);this.parseScene(t,h,m,g,c,f);var y=(r=(e=t.GlobalSettings.UpAxis)===null||e===void 0?void 0:e.value)!==null&&r!==void 0?r:1,A=(s=(o=t.GlobalSettings.FrontAxis)===null||o===void 0?void 0:o.value)!==null&&s!==void 0?s:2,E=(l=(u=t.GlobalSettings.UnitScaleFactor)===null||u===void 0?void 0:u.value)!==null&&l!==void 0?l:1,b;if(t.GlobalSettings.AmbientColor){var T=t.GlobalSettings.AmbientColor.value,_=T[0],R=T[1],S=T[2];if(_!==0||R!==0||S!==0){var M=new THREE__namespace.Color().setRGB(_,R,S);b=new THREE__namespace.AmbientLight(M,1)}}return Promise.all(d).then(function(B){return{scene:f,textures:B,ambientLight:b,upAxis:["X","Y","Z"][y],frontAxis:["X","Y","Z"][A],unitScale:E,dispose:function(){B.forEach(function(H){return H.dispose()}),g.forEach(function(H){return H.dispose()}),m.forEach(function(H){return H.dispose()})}}})},n.prototype.parseConnections=function(t){var e=new Map;if("Connections"in t){var r=t.Connections.connections;r.forEach(function(o){var s=o[0],u=o[1],l=o[2];e.has(s)||e.set(s,{parents:[],children:[]});var c={ID:u,relationship:l};e.get(s).parents.push(c),e.has(u)||e.set(u,{parents:[],children:[]});var f={ID:s,relationship:l};e.get(u).children.push(f)})}return e},n.prototype.parseImages=function(t){var e={},r={};if("Video"in t.Objects){var o=t.Objects.Video;for(var s in o){var u=o[s],l=parseInt(s);if(e[l]=u.RelativeFilename||u.Filename,"Content"in u){var c=u.Content instanceof ArrayBuffer&&u.Content.byteLength>0,f=typeof u.Content=="string"&&u.Content!=="";if(c||f){var d=this.parseImage(o[s]);r[u.RelativeFilename||u.Filename]=d}}}}for(var l in e){var p=e[l];r[p]!==void 0?e[l]=r[p]:e[l]=e[l].split("\\").pop()}return e},n.prototype.parseImage=function(t){var e=t.Content,r=t.RelativeFilename||t.Filename,o=r.slice(r.lastIndexOf(".")+1).toLowerCase(),s;switch(o){case"bmp":s="image/bmp";break;case"jpg":case"jpeg":s="image/jpeg";break;case"png":s="image/png";break;case"tif":s="image/tiff";break;case"tga":s="image/tga";break;default:return}if(typeof e=="string")return"data:"+s+";base64,"+e;var u=new Uint8Array(e);return window.URL.createObjectURL(new Blob([u],{type:s}))},n.prototype.parseTextures=function(t,e,r,o){var s=new Map;if("Texture"in t.Objects){var u=t.Objects.Texture;for(var l in u){var c=this.parseTexture(u[l],e,r,o);s.set(parseInt(l),c)}}return s},n.prototype.parseTexture=function(t,e,r,o){var s=this.loadTexture(t,e,r,o);s.ID=t.id,s.name=t.attrName;var u=t.WrapModeU,l=t.WrapModeV,c=u!==void 0?u.value:0,f=l!==void 0?l.value:0;if(s.wrapS=c===0?THREE__namespace.RepeatWrapping:THREE__namespace.ClampToEdgeWrapping,s.wrapT=f===0?THREE__namespace.RepeatWrapping:THREE__namespace.ClampToEdgeWrapping,t.Scaling){var d=t.Scaling.value;s.repeat.x=d[0],s.repeat.y=d[1]}if(t.Translation){var d=t.Translation.value;s.offset.x=d[0],s.offset.y=d[1]}return s},n.prototype.loadTexture=function(t,e,r,o){var s=r.get(t.id).children,u="";s!==void 0&&s.length>0&&e[s[0].ID]!==void 0&&(u=e[s[0].ID]),u=pathJoin(this.resourcePath,appendSearch(u,this.search));var l=Object.assign(new THREE__namespace.Texture,{ID:0}),c;c=this.fetcher.loadImage(u,{},void 0,void 0,void 0,createImageBitmapLikeImage()).then(function(d){return d.body});var f=c.then(function(d){return l.image=d,l.needsUpdate=!0,l});return o.push(f),l},n.prototype.parseMaterials=function(t,e,r){var o=new Map;if("Material"in t.Objects){var s=t.Objects.Material;for(var u in s){var l=this.parseMaterial(t,s[u],e,r);l!==null&&o.set(parseInt(u),l)}}return o},n.prototype.parseMaterial=function(t,e,r,o){var s=e.id;e.attrName;var u=e.ShadingModel;if(typeof u=="object"&&(u=u.value),u=u.toLowerCase(),!o.has(s))return null;var l=new PBMMeshMaterial(this.materialType);e.BumpFactor&&(l.bumpScale=e.BumpFactor.value),e.Diffuse?l.color=new THREE__namespace.Color().fromArray(e.Diffuse.value):e.DiffuseColor&&(e.DiffuseColor.type==="Color"||e.DiffuseColor.type==="ColorRGB")&&(l.color=new THREE__namespace.Color().fromArray(e.DiffuseColor.value)),e.DisplacementFactor&&(l.displacementScale=e.DisplacementFactor.value),e.Emissive?l.emissive=new THREE__namespace.Color().fromArray(e.Emissive.value):e.EmissiveColor&&(e.EmissiveColor.type==="Color"||e.EmissiveColor.type==="ColorRGB")&&(l.emissive=new THREE__namespace.Color().fromArray(e.EmissiveColor.value)),e.EmissiveFactor&&(l.emissiveIntensity=parseFloat(e.EmissiveFactor.value));var c=1-(e.TransparencyFactor?parseFloat(e.TransparencyFactor.value):0);(c===1||c===0)&&(c=e.Opacity?parseFloat(e.Opacity.value):null,c===null&&(c=1-(e.TransparentColor?parseFloat(e.TransparentColor.value[0]):0))),l.opacity=c,l.opacity<1&&(l.transparent=!0),e.ReflectionFactor&&(l.reflectivity=e.ReflectionFactor.value),e.Shininess&&(l.shininess=e.Shininess.value),e.Specular?l.specular=new THREE__namespace.Color().fromArray(e.Specular.value):e.SpecularColor&&e.SpecularColor.type==="Color"&&(l.specular=new THREE__namespace.Color().fromArray(e.SpecularColor.value));var f=this;return o.get(s).children.forEach(function(d){var p=d.relationship;switch(p){case"Bump":l.bumpMap=f.getTexture(t,r,d.ID,o);break;case"Maya|TEX_ao_map":l.aoMap=f.getTexture(t,r,d.ID,o);break;case"DiffuseColor":case"Maya|TEX_color_map":l.map=f.getTexture(t,r,d.ID,o),l.map!==void 0&&(l.map.encoding=THREE__namespace.sRGBEncoding);break;case"DisplacementColor":l.displacementMap=f.getTexture(t,r,d.ID,o);break;case"EmissiveColor":l.emissiveMap=f.getTexture(t,r,d.ID,o),l.emissiveMap!==void 0&&(l.emissiveMap.encoding=THREE__namespace.sRGBEncoding);break;case"NormalMap":case"Maya|TEX_normal_map":l.normalMap=f.getTexture(t,r,d.ID,o);break;case"ReflectionColor":l.envMap=f.getTexture(t,r,d.ID,o),l.envMap!==void 0&&(l.envMap.mapping=THREE__namespace.EquirectangularReflectionMapping,l.envMap.encoding=THREE__namespace.sRGBEncoding);break;case"SpecularColor":l.specularMap=f.getTexture(t,r,d.ID,o),l.specularMap!==void 0&&(l.specularMap.encoding=THREE__namespace.sRGBEncoding);break;case"TransparentColor":case"TransparencyFactor":l.alphaMap=f.getTexture(t,r,d.ID,o),l.transparent=!0;break;case"AmbientColor":case"ShininessExponent":case"SpecularFactor":case"VectorDisplacementColor":default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",p);break}}),l.refreshUniforms(),l},n.prototype.getTexture=function(t,e,r,o){return t.Objects.LayeredTexture&&r in t.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),r=o.get(r).children[0].ID),e.get(r)},n.prototype.parseDeformers=function(t,e){var r={},o={};if("Deformer"in t.Objects){var s=t.Objects.Deformer;for(var u in s){var l=s[u],c=e.get(parseInt(u));if(l.attrType==="Skin"){var f=this.parseSkeleton(c,s);f.ID=u,c.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),f.geometryID=c.parents[0].ID,r[u]=f}else if(l.attrType==="BlendShape"){var d={id:u};d.rawTargets=this.parseMorphTargets(c,s,e),d.id=u,c.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),o[u]=d}}}return{skeletons:r,morphTargets:o}},n.prototype.parseSkeleton=function(t,e){var r=[];return t.children.forEach(function(o){var s=e[o.ID];if(s.attrType==="Cluster"){var u={ID:o.ID,indices:[],weights:[],transformLink:new THREE__namespace.Matrix4().fromArray(s.TransformLink.a)};s.Indexes&&(u.indices=s.Indexes.a,u.weights=s.Weights.a),r.push(u)}}),{ID:"",geometryID:0,rawBones:r,bones:[]}},n.prototype.parseMorphTargets=function(t,e,r){for(var o=[],s=0;s<t.children.length;s++){var u=t.children[s],l=e[u.ID],c={name:l.attrName,initialWeight:l.DeformPercent,id:l.id,fullWeights:l.FullWeights.a,geoID:0};if(l.attrType!=="BlendShapeChannel")return;c.geoID=r.get(parseInt(u.ID)).children.filter(function(f){return f.relationship===void 0})[0].ID,o.push(c)}return o},n.prototype.parseScene=function(t,e,r,o,s,u){var l=this.parseModels(t,e.skeletons,r,o,s),c=t.Objects.Model,f=this;l.forEach(function(p){var v=c[p.ID];f.setLookAtProperties(t,p,v,s,u);var g=s.get(p.ID).parents;g.forEach(function(h){var m=l.get(h.ID);m!==void 0&&m.add(p)}),p.parent===null&&u.add(p)}),this.bindSkeleton(t,e.skeletons,r,l,s),u.traverse(function(p){if(p.userData.transformData){p.parent&&(p.userData.transformData.parentMatrix=p.parent.matrix,p.userData.transformData.parentMatrixWorld=p.parent.matrixWorld);var v=generateTransform(p.userData.transformData);p.applyMatrix4(v),p.updateWorldMatrix(!0,!0)}});var d=new AnimationParser().parse(t,s,u);u.children.length===1&&u.children[0]instanceof THREE__namespace.Group&&(u.children[0].animations=d,u=u.children[0]),u.animations=d},n.prototype.parseModels=function(t,e,r,o,s){var u=new Map,l=t.Objects.Model;for(var c in l){var f=parseInt(c),d=l[c],p=s.get(f),v=this.buildSkeleton(p,e,f,d.attrName);if(!v){switch(d.attrType){case"Camera":v=this.createCamera(t,p);break;case"Light":v=this.createLight(t,p);break;case"Mesh":v=this.createMesh(p,r,o);break;case"NurbsCurve":case"LimbNode":case"Root":v=new THREE__namespace.Bone;break;case"Null":default:v=new THREE__namespace.Group;break}v.name=d.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(d.attrName):"",v.userData.originalName=d.attrName,v.ID=f}this.getTransformData(v,d),u.set(f,v)}return u},n.prototype.buildSkeleton=function(t,e,r,o){var s=null;return t.parents.forEach(function(u){var l=function(f){var d=e[f];d.rawBones.forEach(function(p,v){if(p.ID===u.ID){var g=s;s=new THREE__namespace.Bone,s.matrixWorld.copy(p.transformLink),s.name=o?THREE__namespace.PropertyBinding.sanitizeNodeName(o):"",s.userData.originalName=o,s.ID=r,d.bones[v]=s,g!==null&&s.add(g)}})};for(var c in e)l(c)}),s},n.prototype.createCamera=function(t,e){var r,o;if(e.children.forEach(function(g){var h=t.Objects.NodeAttribute[g.ID];h!==void 0&&(o=h)}),o===void 0)r=new THREE__namespace.Object3D;else{var s=0;o.CameraProjectionType!==void 0&&o.CameraProjectionType.value===1&&(s=1);var u=1;o.NearPlane!==void 0&&(u=o.NearPlane.value/1e3);var l=1e3;o.FarPlane!==void 0&&(l=o.FarPlane.value/1e3);var c=window.innerWidth,f=window.innerHeight;o.AspectWidth!==void 0&&o.AspectHeight!==void 0&&(c=o.AspectWidth.value,f=o.AspectHeight.value);var d=c/f,p=45;o.FieldOfView!==void 0&&(p=o.FieldOfView.value);var v=o.FocalLength?o.FocalLength.value:null;switch(s){case 0:r=new THREE__namespace.PerspectiveCamera(p,d,u,l),v!==null&&r.setFocalLength(v);break;case 1:console.warn("THREE.FBXLoader: Orthographic cameras not supported yet."),r=new THREE__namespace.Object3D;break;default:console.warn("THREE.FBXLoader: Unknown camera type "+s+"."),r=new THREE__namespace.Object3D;break}}return r},n.prototype.createLight=function(t,e){var r,o;if(e.children.forEach(function(v){var g=t.Objects.NodeAttribute[v.ID];g!==void 0&&(o=g)}),o===void 0)r=new THREE__namespace.Object3D;else{var s=void 0;o.LightType===void 0?s=0:s=o.LightType.value;var u=new THREE__namespace.Color(16777215);o.Color!==void 0&&(u=new THREE__namespace.Color().fromArray(o.Color.value));var l=o.Intensity===void 0?1:o.Intensity.value/100;o.CastLightOnObject!==void 0&&o.CastLightOnObject.value===0&&(l=0);var c=0;o.FarAttenuationEnd!==void 0&&(o.EnableFarAttenuation!==void 0&&o.EnableFarAttenuation.value===0?c=0:c=o.FarAttenuationEnd.value);var f=1;switch(s){case 0:r=new THREE__namespace.PointLight(u,l,c,f);break;case 1:r=new THREE__namespace.DirectionalLight(u,l);break;case 2:var d=Math.PI/3;o.InnerAngle!==void 0&&(d=THREE__namespace.MathUtils.degToRad(o.InnerAngle.value));var p=0;o.OuterAngle!==void 0&&(p=THREE__namespace.MathUtils.degToRad(o.OuterAngle.value),p=Math.max(p,1)),r=new THREE__namespace.SpotLight(u,l,c,d,p,f);break;default:console.warn("THREE.FBXLoader: Unknown light type "+o.LightType.value+", defaulting to a PointLight."),r=new THREE__namespace.PointLight(u,l);break}o.CastShadows!==void 0&&o.CastShadows.value===1&&(r.castShadow=!0)}return r},n.prototype.createMesh=function(t,e,r){var o,s=null,u=[];if(t.children.forEach(function(c){e.has(c.ID)&&(s=e.get(c.ID)),r.has(c.ID)&&u.push(r.get(c.ID))}),u.length===0){var l=new PBMMeshMaterial(this.materialType);l.color=new THREE__namespace.Color(13421772),u.push(l)}return"color"in s.attributes&&u.forEach(function(c){c.vertexColors=!0}),(!s.groups||s.groups.length===0)&&s.addGroup(0,s.index?s.index.count:s.attributes.position.count,0),s.FBX_Deformer?(o=new PBMSkinnedMesh(s,u),o.normalizeSkinWeights()):o=new PBMMesh(s,u),o},n.prototype.createCurve=function(t,e){var r=t.children.reduce(function(s,u){return e.has(u.ID)&&(s=e.get(u.ID)),s},null),o=new THREE__namespace.LineBasicMaterial({name:"",color:3342591,linewidth:1});return new THREE__namespace.Line(r,o)},n.prototype.getTransformData=function(t,e){var r={};e.InheritType&&(r.inheritType=parseInt(e.InheritType.value)),e.RotationOrder?r.eulerOrder=getEulerOrder(e.RotationOrder.value):r.eulerOrder=getEulerOrder(0),e.Lcl_Translation&&(r.translation=e.Lcl_Translation.value),e.PreRotation&&(r.preRotation=e.PreRotation.value),e.Lcl_Rotation&&(r.rotation=e.Lcl_Rotation.value),e.PostRotation&&(r.postRotation=e.PostRotation.value),e.Lcl_Scaling&&(r.scale=e.Lcl_Scaling.value),e.ScalingOffset&&(r.scalingOffset=e.ScalingOffset.value),e.ScalingPivot&&(r.scalingPivot=e.ScalingPivot.value),e.RotationOffset&&(r.rotationOffset=e.RotationOffset.value),e.RotationPivot&&(r.rotationPivot=e.RotationPivot.value),t.userData.transformData=r},n.prototype.setLookAtProperties=function(t,e,r,o,s){if("LookAtProperty"in r){var u=o.get(e.ID).children;u.forEach(function(l){if(l.relationship==="LookAtProperty"){var c=t.Objects.Model[l.ID];if(c.Lcl_Translation){var f=c.Lcl_Translation.value;"target"in e&&e.target instanceof THREE__namespace.Object3D?(e.target.position.fromArray(f),s.add(e.target)):e.lookAt(new THREE__namespace.Vector3().fromArray(f))}}})}},n.prototype.bindSkeleton=function(t,e,r,o,s){var u=this.parsePoseNodes(t),l=function(f){var d=e[f],p=s.get(parseInt(d.ID)).parents;p.forEach(function(v){if(r.has(v.ID)){var g=v.ID,h=s.get(g);h.parents.forEach(function(m){if(o.has(m.ID)){var y=o.get(m.ID);y instanceof THREE__namespace.SkinnedMesh&&y.bind(new THREE__namespace.Skeleton(d.bones),u[m.ID])}})}})};for(var c in e)l(c)},n.prototype.parsePoseNodes=function(t){var e={};if(t.Objects.Pose){var r=t.Objects.Pose;for(var o in r)if(r[o].attrType==="BindPose"&&r[o].NbPoseNodes>0){var s=r[o].PoseNode;Array.isArray(s)?s.forEach(function(u){e[u.Node]=new THREE__namespace.Matrix4().fromArray(u.Matrix.a)}):e[s.Node]=new THREE__namespace.Matrix4().fromArray(s.Matrix.a)}}return e},n}(),GeometryParser=function(){function n(){this.negativeMaterialIndices=!1}return n.prototype.parse=function(t,e,r){var o=new Map;if("Geometry"in t.Objects){var s=t.Objects.Geometry;for(var u in s){var l=r.get(parseInt(u)),c=this.parseGeometry(t,l,s[u],e);o.set(parseInt(u),c)}}return this.negativeMaterialIndices===!0&&console.warn("THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected."),o},n.prototype.parseGeometry=function(t,e,r,o){switch(r.attrType){case"Mesh":return this.parseMeshGeometry(t,e,r,o);case"NurbsCurve":return this.parseNurbsGeometry(r)}},n.prototype.parseMeshGeometry=function(t,e,r,o){var s=o.skeletons,u=[],l=e.parents.map(function(v){return t.Objects.Model[v.ID]});if(l.length!==0){var c=e.children.reduce(function(v,g){return s[g.ID]!==void 0&&(v=s[g.ID]),v},null);e.children.forEach(function(v){o.morphTargets[v.ID]!==void 0&&u.push(o.morphTargets[v.ID])});var f=l[0],d={};f.RotationOrder&&(d.eulerOrder=getEulerOrder(f.RotationOrder.value)),f.InheritType&&(d.inheritType=parseInt(f.InheritType.value)),f.GeometricTranslation&&(d.translation=f.GeometricTranslation.value),f.GeometricRotation&&(d.rotation=f.GeometricRotation.value),f.GeometricScaling&&(d.scale=f.GeometricScaling.value);var p=generateTransform(d);return this.genGeometry(t,r,c,u,p)}},n.prototype.genGeometry=function(t,e,r,o,s){var u=new THREE__namespace.BufferGeometry;e.attrName&&(u.name=e.attrName);var l=this.parseGeoNode(e,r),c=this.genBuffers(l),f=new THREE__namespace.Float32BufferAttribute(c.vertex,3);if(f.applyMatrix4(s),u.setAttribute("position",f),c.colors.length>0&&u.setAttribute("color",new THREE__namespace.Float32BufferAttribute(c.colors,3)),r&&(u.setAttribute("skinIndex",new THREE__namespace.Uint16BufferAttribute(c.weightsIndices,4)),u.setAttribute("skinWeight",new THREE__namespace.Float32BufferAttribute(c.vertexWeights,4)),u.FBX_Deformer=r),c.normal.length>0){var d=new THREE__namespace.Matrix3().getNormalMatrix(s),p=new THREE__namespace.Float32BufferAttribute(c.normal,3);p.applyNormalMatrix(d),u.setAttribute("normal",p)}if(c.uvs.forEach(function(y,A){var E=A===0?"uv":"uv".concat(A+1);u.setAttribute(E,new THREE__namespace.Float32BufferAttribute(c.uvs[A],2))}),l.material&&l.material.mappingType!=="AllSame"){var v=c.materialIndex[0],g=0;if(c.materialIndex.forEach(function(y,A){y!==v&&(u.addGroup(g,A-g,v),v=y,g=A)}),u.groups.length>0){var h=u.groups[u.groups.length-1],m=h.start+h.count;m!==c.materialIndex.length&&u.addGroup(m,c.materialIndex.length-m,v)}u.groups.length===0&&u.addGroup(0,c.materialIndex.length,c.materialIndex[0])}return this.addMorphTargets(t,u,e,o,s),u},n.prototype.parseGeoNode=function(t,e){var r={};if(r.vertexPositions=t.Vertices!==void 0?t.Vertices.a:[],r.vertexIndices=t.PolygonVertexIndex!==void 0?t.PolygonVertexIndex.a:[],t.LayerElementColor&&(r.color=this.parseVertexColors(t.LayerElementColor[0])),t.LayerElementMaterial&&(r.material=this.parseMaterialIndices(t.LayerElementMaterial[0])),t.LayerElementNormal&&(r.normal=this.parseNormals(t.LayerElementNormal[0])),t.LayerElementUV){r.uv=[];for(var o=0;t.LayerElementUV[o];)t.LayerElementUV[o].UV&&r.uv.push(this.parseUVs(t.LayerElementUV[o])),o++}return r.weightTable={},e!==null&&(r.skeleton=e,e.rawBones.forEach(function(s,u){s.indices.forEach(function(l,c){r.weightTable[l]===void 0&&(r.weightTable[l]=[]),r.weightTable[l].push({id:u,weight:s.weights[c]})})})),r},n.prototype.genBuffers=function(t){var e={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},r=0,o=0,s=!1,u=[],l=[],c=[],f=[],d=[],p=[],v=this;return t.vertexIndices.forEach(function(g,h){var m=0,y=!1;g<0&&(g=g^-1,y=!0);var A=[],E=[];if(u.push(g*3,g*3+1,g*3+2),t.color){var b=getData(h,r,g,t.color);c.push(b[0],b[1],b[2])}if(t.skeleton){if(t.weightTable[g]!==void 0&&t.weightTable[g].forEach(function(S){E.push(S.weight),A.push(S.id)}),E.length>4){s||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),s=!0);var T=[0,0,0,0],_=[0,0,0,0];E.forEach(function(S,M){var B=S,H=A[M];_.forEach(function(w,C,F){if(B>w){F[C]=B,B=w;var I=T[C];T[C]=H,H=I}})}),A=T,E=_}for(;E.length<4;)E.push(0),A.push(0);for(var R=0;R<4;++R)d.push(E[R]),p.push(A[R])}if(t.normal){var b=getData(h,r,g,t.normal);l.push(b[0],b[1],b[2])}t.material&&t.material.mappingType!=="AllSame"&&(m=getData(h,r,g,t.material)[0],m<0&&(v.negativeMaterialIndices=!0,m=0)),t.uv&&t.uv.forEach(function(S,M){var B=getData(h,r,g,S);f[M]===void 0&&(f[M]=[]),f[M].push(B[0]),f[M].push(B[1])}),o++,y&&(v.genFace(e,t,u,m,l,c,f,d,p,o),r++,o=0,u=[],l=[],c=[],f=[],d=[],p=[])}),e},n.prototype.getNormalNewell=function(t){for(var e=new THREE__namespace.Vector3(0,0,0),r=0;r<t.length;r++){var o=t[r],s=t[(r+1)%t.length];e.x+=(o.y-s.y)*(o.z+s.z),e.y+=(o.z-s.z)*(o.x+s.x),e.z+=(o.x-s.x)*(o.y+s.y)}return e.normalize(),e},n.prototype.getNormalTangentAndBitangent=function(t){var e=this.getNormalNewell(t),r=Math.abs(e.z)>.5?new THREE__namespace.Vector3(0,1,0):new THREE__namespace.Vector3(0,0,1),o=r.cross(e).normalize(),s=e.clone().cross(o).normalize();return{normal:e,tangent:o,bitangent:s}},n.prototype.flattenVertex=function(t,e,r){return new THREE__namespace.Vector2(t.dot(e),t.dot(r))},n.prototype.genFace=function(t,e,r,o,s,u,l,c,f,d){var p;if(d>3){for(var v=[],g=e.baseVertexPositions||e.vertexPositions,h=0;h<r.length;h+=3)v.push(new THREE__namespace.Vector3(g[r[h]],g[r[h+1]],g[r[h+2]]));for(var m=this.getNormalTangentAndBitangent(v),y=m.tangent,A=m.bitangent,E=[],b=0,T=v;b<T.length;b++){var _=T[b];E.push(this.flattenVertex(_,y,A))}p=THREE__namespace.ShapeUtils.triangulateShape(E,[])}else p=[[0,1,2]];for(var R=function(F,I,L){t.vertex.push(e.vertexPositions[r[F*3]]),t.vertex.push(e.vertexPositions[r[F*3+1]]),t.vertex.push(e.vertexPositions[r[F*3+2]]),t.vertex.push(e.vertexPositions[r[I*3]]),t.vertex.push(e.vertexPositions[r[I*3+1]]),t.vertex.push(e.vertexPositions[r[I*3+2]]),t.vertex.push(e.vertexPositions[r[L*3]]),t.vertex.push(e.vertexPositions[r[L*3+1]]),t.vertex.push(e.vertexPositions[r[L*3+2]]),e.skeleton&&(t.vertexWeights.push(c[F*4]),t.vertexWeights.push(c[F*4+1]),t.vertexWeights.push(c[F*4+2]),t.vertexWeights.push(c[F*4+3]),t.vertexWeights.push(c[I*4]),t.vertexWeights.push(c[I*4+1]),t.vertexWeights.push(c[I*4+2]),t.vertexWeights.push(c[I*4+3]),t.vertexWeights.push(c[L*4]),t.vertexWeights.push(c[L*4+1]),t.vertexWeights.push(c[L*4+2]),t.vertexWeights.push(c[L*4+3]),t.weightsIndices.push(f[F*4]),t.weightsIndices.push(f[F*4+1]),t.weightsIndices.push(f[F*4+2]),t.weightsIndices.push(f[F*4+3]),t.weightsIndices.push(f[I*4]),t.weightsIndices.push(f[I*4+1]),t.weightsIndices.push(f[I*4+2]),t.weightsIndices.push(f[I*4+3]),t.weightsIndices.push(f[L*4]),t.weightsIndices.push(f[L*4+1]),t.weightsIndices.push(f[L*4+2]),t.weightsIndices.push(f[L*4+3])),e.color&&(t.colors.push(u[F*3]),t.colors.push(u[F*3+1]),t.colors.push(u[F*3+2]),t.colors.push(u[I*3]),t.colors.push(u[I*3+1]),t.colors.push(u[I*3+2]),t.colors.push(u[L*3]),t.colors.push(u[L*3+1]),t.colors.push(u[L*3+2])),e.material&&e.material.mappingType!=="AllSame"&&(t.materialIndex.push(o),t.materialIndex.push(o),t.materialIndex.push(o)),e.normal&&(t.normal.push(s[F*3]),t.normal.push(s[F*3+1]),t.normal.push(s[F*3+2]),t.normal.push(s[I*3]),t.normal.push(s[I*3+1]),t.normal.push(s[I*3+2]),t.normal.push(s[L*3]),t.normal.push(s[L*3+1]),t.normal.push(s[L*3+2])),e.uv&&e.uv.forEach(function(k,N){t.uvs[N]===void 0&&(t.uvs[N]=[]),t.uvs[N].push(l[N][F*2]),t.uvs[N].push(l[N][F*2+1]),t.uvs[N].push(l[N][I*2]),t.uvs[N].push(l[N][I*2+1]),t.uvs[N].push(l[N][L*2]),t.uvs[N].push(l[N][L*2+1])})},S=0,M=p;S<M.length;S++){var B=M[S],H=B[0],w=B[1],C=B[2];R(H,w,C)}},n.prototype.addMorphTargets=function(t,e,r,o,s){if(o.length!==0){e.morphTargetsRelative=!0,e.morphAttributes.position=[];var u=this;o.forEach(function(l){l.rawTargets.forEach(function(c){var f=t.Objects.Geometry[c.geoID];f!==void 0&&u.genMorphGeometry(e,r,f,s,c.name)})})}},n.prototype.genMorphGeometry=function(t,e,r,o,s){for(var u=e.Vertices!==void 0?e.Vertices.a:[],l=e.PolygonVertexIndex!==void 0?e.PolygonVertexIndex.a:[],c=r.Vertices!==void 0?r.Vertices.a:[],f=r.Indexes?r.Indexes.a:[],d=t.attributes.position.count*3,p=new Float32Array(d),v=0;v<f.length;v++){var g=f[v]*3;p[g]=c[v*3],p[g+1]=c[v*3+1],p[g+2]=c[v*3+2]}var h={vertexIndices:l,vertexPositions:p,baseVertexPositions:u},m=this.genBuffers(h),y=new THREE__namespace.Float32BufferAttribute(m.vertex,3);y.name=s||r.attrName,y.applyMatrix4(o),t.morphAttributes.position.push(y)},n.prototype.parseNormals=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.Normals.a,s=[];return r==="IndexToDirect"&&(t.NormalIndex?s=t.NormalIndex.a:t.NormalsIndex&&(s=t.NormalsIndex.a)),{dataSize:3,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseUVs=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.UV.a,s=[];return r==="IndexToDirect"&&(s=t.UVIndex.a),{dataSize:2,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseVertexColors=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.Colors.a,s=[];r==="IndexToDirect"&&(s=t.ColorIndex.a);for(var u=0,l=new THREE__namespace.Color;u<o.length;u+=4)l.fromArray(o,u),l.toArray(o,u);return{dataSize:4,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseMaterialIndices=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType;if(e==="NoMappingInformation")return{dataSize:1,buffer:[0],indices:[0],mappingType:"AllSame",referenceType:r};for(var o=t.Materials.a,s=[],u=0;u<o.length;++u)s.push(u);return{dataSize:1,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseNurbsGeometry=function(t){var e=parseInt(t.Order);if(isNaN(e))return console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s",t.Order,t.id),new THREE__namespace.BufferGeometry;for(var r=e-1,o=t.KnotVector.a,s=[],u=t.Points.a,l=0,c=u.length;l<c;l+=4)s.push(new THREE__namespace.Vector4().fromArray(u,l));var f,d;if(t.Form==="Closed")s.push(s[0]);else if(t.Form==="Periodic"){f=r,d=o.length-1-f;for(var l=0;l<r;++l)s.push(s[l])}var p=new NURBSCurve(r,o,s,f,d),v=p.getPoints(s.length*12);return new THREE__namespace.BufferGeometry().setFromPoints(v)},n}(),AnimationParser=function(){function n(){}return n.prototype.parse=function(t,e,r){var o=[],s=this.parseClips(t,e,r);if(s!==void 0)for(var u in s){var l=s[u],c=this.addClip(l,r);o.push(c)}return o},n.prototype.parseClips=function(t,e,r){if(t.Objects.AnimationCurve!==void 0){var o=this.parseAnimationCurveNodes(t);this.parseAnimationCurves(t,o,e);var s=this.parseAnimationLayers(t,o,e,r),u=this.parseAnimStacks(t,s,e);return u}},n.prototype.parseAnimationCurveNodes=function(t){var e=t.Objects.AnimationCurveNode,r=new Map;for(var o in e){var s=e[o];if(s.attrName.match(/S|R|T|DeformPercent/)!==null){var u={id:s.id,attr:s.attrName,curves:{}};r.set(u.id,u)}}return r},n.prototype.parseAnimationCurves=function(t,e,r){var o=t.Objects.AnimationCurve;for(var s in o){var u={id:o[s].id,times:o[s].KeyTime.a.map(convertFBXTimeToSeconds),values:o[s].KeyValueFloat.a},l=r.get(u.id);if(l!==void 0){var c=l.parents[0].ID,f=l.parents[0].relationship,d=e.get(c);d&&(f.match(/X/)?d.curves.x=u:f.match(/Y/)?d.curves.y=u:f.match(/Z/)?d.curves.z=u:f.match(/DeformPercent/)&&e.has(c)&&(d.curves.morph=u))}}},n.prototype.parseAnimationLayers=function(t,e,r,o){var s=t.Objects.AnimationLayer,u=new Map,l=function(f){var d=[],p=r.get(parseInt(f));if(p!==void 0){var v=p.children;v.forEach(function(g,h){if(e.has(g.ID)){var m=e.get(g.ID);if(m.curves.x!==void 0||m.curves.y!==void 0||m.curves.z!==void 0){if(d[h]===void 0){var y=r.get(g.ID).parents.filter(function(M){return M.relationship!==void 0})[0].ID;if(y!==void 0){var A=t.Objects.Model[y.toString()];if(A===void 0){console.warn("THREE.FBXLoader: Encountered a unused curve.",g);return}var E={modelName:A.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(A.attrName):"",ID:A.id,initialPosition:[0,0,0],initialRotation:[0,0,0],initialScale:[1,1,1],transform:new THREE__namespace.Matrix4,eulerOrder:"",preRotation:[0,0,0],postRotation:[0,0,0]};o.traverse(function(M){M.ID===A.id&&(E.transform=M.matrix,M.userData.transformData&&(E.eulerOrder=M.userData.transformData.eulerOrder))}),E.transform||(E.transform=new THREE__namespace.Matrix4),A.PreRotation&&(E.preRotation=A.PreRotation.value),A.PostRotation&&(E.postRotation=A.PostRotation.value),d[h]=E}}d[h]&&(d[h][m.attr]=m)}else if(m.curves.morph!==void 0){if(d[h]===void 0){var b=r.get(g.ID).parents.filter(function(B){return B.relationship!==void 0})[0].ID,T=r.get(b).parents[0].ID,_=r.get(T).parents[0].ID,y=r.get(_).parents[0].ID,R=t.Objects.Model[y],S={modelName:R.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(R.attrName):"",morphName:t.Objects.Deformer[b].attrName};d[h]=S}d[h][m.attr]=m}}}),u.set(parseInt(f),d)}};for(var c in s)l(c);return u},n.prototype.parseAnimStacks=function(t,e,r){var o=t.Objects.AnimationStack,s={};for(var u in o){var l=r.get(parseInt(u)).children;l.length>1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");var c=e.get(l[0].ID);s[u]={name:o[u].attrName,layer:c}}return s},n.prototype.addClip=function(t,e){var r=[],o=this;return t.layer.forEach(function(s){r=r.concat(o.generateTracks(s,e))}),new THREE__namespace.AnimationClip(t.name,-1,r)},n.prototype.generateTracks=function(t,e){var r=[],o=new THREE__namespace.Vector3,s=new THREE__namespace.Vector3;t.transform&&t.transform.decompose(o,new THREE__namespace.Quaternion,s);var u=o.toArray(),l=s.toArray();if(t.T!==void 0&&Object.keys(t.T.curves).length>0){var c=this.generateVectorTrack(t.modelName,t.T.curves,u,"position");c!==void 0&&r.push(c)}if(t.R!==void 0&&Object.keys(t.R.curves).length>0){var f=this.generateRotationTrack(t.modelName,t.R.curves,t.preRotation,t.postRotation,t.eulerOrder);f!==void 0&&r.push(f)}if(t.S!==void 0&&Object.keys(t.S.curves).length>0){var d=this.generateVectorTrack(t.modelName,t.S.curves,l,"scale");d!==void 0&&r.push(d)}if(t.DeformPercent!==void 0){var p=this.generateMorphTrack(t,e);p!==void 0&&r.push(p)}return r},n.prototype.generateVectorTrack=function(t,e,r,o){var s=this.getTimesForAllAxes(e),u=this.getKeyframeTrackValues(s,e,r);return new THREE__namespace.VectorKeyframeTrack(t+"."+o,s,u)},n.prototype.generateRotationTrack=function(t,e,r,o,s){var u,l;if(e.x!==void 0&&e.y!==void 0&&e.z!==void 0){var c=this.interpolateRotations(e.x,e.y,e.z,s);u=c[0],l=c[1]}var f=getEulerOrder(0),d=new THREE__namespace.Quaternion,p=new THREE__namespace.Quaternion;r!==void 0&&(r=r.map(THREE__namespace.MathUtils.degToRad),r.push(f),d.setFromEuler(new THREE__namespace.Euler().fromArray(r))),o!==void 0&&(o=o.map(THREE__namespace.MathUtils.degToRad),o.push(f),p.setFromEuler(new THREE__namespace.Euler().fromArray(o)),p.inverse());var v=new THREE__namespace.Quaternion,g=new THREE__namespace.Euler,h=[];if(!l||!u)return new THREE__namespace.QuaternionKeyframeTrack(t+".quaternion",[0],[0]);for(var m=0;m<l.length;m+=3){if(g.set(l[m],l[m+1],l[m+2],s),v.setFromEuler(g),v.premultiply(d),v.multiply(p),m>2){var y=new THREE__namespace.Quaternion().fromArray(h,(m-3)/3*4);y.dot(v)<0&&v.set(-v.x,-v.y,-v.z,-v.w)}v.toArray(h,m/3*4)}return new THREE__namespace.QuaternionKeyframeTrack(t+".quaternion",u,h)},n.prototype.generateMorphTrack=function(t,e){var r=t.DeformPercent.curves.morph,o=r.values.map(function(u){return u/100}),s=e.getObjectByName(t.modelName).morphTargetDictionary[t.morphName];return new THREE__namespace.NumberKeyframeTrack(t.modelName+".morphTargetInfluences["+s+"]",r.times,o)},n.prototype.getTimesForAllAxes=function(t){var e=[];if(t.x!==void 0&&(e=e.concat(t.x.times)),t.y!==void 0&&(e=e.concat(t.y.times)),t.z!==void 0&&(e=e.concat(t.z.times)),e=e.sort(function(l,c){return l-c}),e.length>1){for(var r=1,o=e[0],s=1;s<e.length;s++){var u=e[s];u!==o&&(e[r]=u,o=u,r++)}e=e.slice(0,r)}return e},n.prototype.getKeyframeTrackValues=function(t,e,r){var o=r,s=[],u=-1,l=-1,c=-1;return t.forEach(function(f){if(e.x&&(u=e.x.times.indexOf(f)),e.y&&(l=e.y.times.indexOf(f)),e.z&&(c=e.z.times.indexOf(f)),u!==-1){var d=e.x.values[u];s.push(d),o[0]=d}else s.push(o[0]);if(l!==-1){var p=e.y.values[l];s.push(p),o[1]=p}else s.push(o[1]);if(c!==-1){var v=e.z.values[c];s.push(v),o[2]=v}else s.push(o[2])}),s},n.prototype.interpolateRotations=function(t,e,r,o){var s=[],u=[];s.push(t.times[0]),u.push(THREE__namespace.MathUtils.degToRad(t.values[0])),u.push(THREE__namespace.MathUtils.degToRad(e.values[0])),u.push(THREE__namespace.MathUtils.degToRad(r.values[0]));for(var l=1;l<t.values.length;l++){var c=[t.values[l-1],e.values[l-1],r.values[l-1]];if(!(isNaN(c[0])||isNaN(c[1])||isNaN(c[2]))){var f=c.map(THREE__namespace.MathUtils.degToRad),d=[t.values[l],e.values[l],r.values[l]];if(!(isNaN(d[0])||isNaN(d[1])||isNaN(d[2]))){d.map(THREE__namespace.MathUtils.degToRad);var p=[d[0]-c[0],d[1]-c[1],d[2]-c[2]],v=[Math.abs(p[0]),Math.abs(p[1]),Math.abs(p[2])];if(v[0]>=180||v[1]>=180||v[2]>=180){var g=Math.max.apply(Math,v),h=g/180,m=new THREE__namespace.Euler(f[0],f[1],f[2],o),y=new THREE__namespace.Euler(f[0],f[1],f[2],o),A=new THREE__namespace.Quaternion().setFromEuler(m),E=new THREE__namespace.Quaternion().setFromEuler(y);A.dot(E)&&E.set(-E.x,-E.y,-E.z,-E.w);for(var b=t.times[l-1],T=t.times[l]-b,_=new THREE__namespace.Quaternion,R=new THREE__namespace.Euler,S=0;S<1;S+=1/h)_.copy(A.clone().slerp(E.clone(),S)),s.push(b+S*T),R.setFromQuaternion(_,o),u.push(R.x),u.push(R.y),u.push(R.z)}else s.push(t.times[l]),u.push(THREE__namespace.MathUtils.degToRad(t.values[l])),u.push(THREE__namespace.MathUtils.degToRad(e.values[l])),u.push(THREE__namespace.MathUtils.degToRad(r.values[l]))}}}return[s,u]},n}(),TextParser=function(){function n(){this.allNodes=new FBXTree,this.nodeStack=[],this.currentIndent=0,this.currentPropName=""}return n.prototype.getPrevNode=function(){return this.nodeStack[this.currentIndent-2]},n.prototype.getCurrentNode=function(){return this.nodeStack[this.currentIndent-1]},n.prototype.getCurrentProp=function(){return this.currentProp},n.prototype.pushStack=function(t){this.nodeStack.push(t),this.currentIndent+=1},n.prototype.popStack=function(){this.nodeStack.pop(),this.currentIndent-=1},n.prototype.setCurrentProp=function(t,e){this.currentProp=t,this.currentPropName=e},n.prototype.parse=function(t){this.currentIndent=0,this.allNodes=new FBXTree,this.nodeStack=[],this.currentProp=[],this.currentPropName="";var e=this,r=t.split(/[\r\n]+/);return r.forEach(function(o,s){var u=o.match(/^[\s\t]*;/),l=o.match(/^[\s\t]*$/);if(!(u||l)){var c=o.match("^\\t{"+e.currentIndent+"}(\\w+):(.*){"),f=o.match("^\\t{"+e.currentIndent+"}(\\w+):[\\s\\t\\r\\n](.*)"),d=o.match("^\\t{"+(e.currentIndent-1)+"}}");c?e.parseNodeBegin(o,c):f?e.parseNodeProperty(o,f,r[++s]):d?e.popStack():o.match(/^[^\s\t}]/)&&e.parseNodePropertyContinued(o)}}),this.allNodes},n.prototype.parseNodeBegin=function(t,e){var r=e[1].trim().replace(/^"/,"").replace(/"$/,""),o=e[2].split(",").map(function(c){return c.trim().replace(/^"/,"").replace(/"$/,"")}),s={name:r},u=this.parseNodeAttr(o),l=this.getCurrentNode();this.currentIndent===0?this.allNodes.add(r,s):r in l?(r==="PoseNode"?l.PoseNode.push(s):l[r].id!==void 0&&(l[r]={},l[r][l[r].id]=l[r]),u.id!==""&&(l[r][u.id]=s)):typeof u.id=="number"?(l[r]={},l[r][u.id]=s):r!=="Properties70"&&(r==="PoseNode"?l[r]=[s]:l[r]=s),typeof u.id=="number"&&(s.id=u.id),u.name!==""&&(s.attrName=u.name),u.type!==""&&(s.attrType=u.type),this.pushStack(s)},n.prototype.parseNodeAttr=function(t){var e=t[0];t[0]!==""&&(e=parseInt(t[0]),isNaN(e)&&(e=t[0]));var r="",o="";return t.length>1&&(r=t[1].replace(/^(\w+)::/,""),o=t[2]),{id:e,name:r,type:o}},n.prototype.parseNodeProperty=function(t,e,r){var o=e[1].replace(/^"/,"").replace(/"$/,"").trim(),s=e[2].replace(/^"/,"").replace(/"$/,"").trim();o==="Content"&&s===","&&(s=r.replace(/"/g,"").replace(/,$/,"").trim());var u=this.getCurrentNode(),l=u.name;if(l==="Properties70"){this.parseNodeSpecialProperty(t,o,s);return}if(o==="C"){var c=s.split(",").slice(1),f=parseInt(c[0]),d=parseInt(c[1]),p=s.split(",").slice(3);p=p.map(function(v){return v.trim().replace(/^"/,"")}),o="connections",s=[f,d],append(s,p),u[o]===void 0&&(u[o]=[])}o==="Node"&&(u.id=s),o in u&&Array.isArray(u[o])?u[o].push(s):o!=="a"?u[o]=s:u.a=s,this.setCurrentProp(u,o),o==="a"&&s.slice(-1)!==","&&(u.a=parseNumberArray(s))},n.prototype.parseNodePropertyContinued=function(t){var e=this.getCurrentNode();e.a+=t,t.slice(-1)!==","&&(e.a=parseNumberArray(e.a))},n.prototype.parseNodeSpecialProperty=function(t,e,r){var o=r.split('",').map(function(d){return d.trim().replace(/^\"/,"").replace(/\s/,"_")}),s=o[0],u=o[1],l=o[2],c=o[3],f=o[4];switch(u){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":f=parseFloat(f);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":f=parseNumberArray(f);break}this.getPrevNode()[s]={type:u,type2:l,flag:c,value:f},this.setCurrentProp(this.getPrevNode(),s)},n}(),BinaryParser=function(){function n(){}return n.prototype.parse=function(t){var e=new BinaryReader(t);e.skip(23);var r=e.getUint32();if(r<6400)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+r);for(var o=new FBXTree;!this.endOfContent(e);){var s=this.parseNode(e,r);s!==null&&o.add(s.name,s)}return o},n.prototype.endOfContent=function(t){return t.size()%16===0?(t.getOffset()+160+16&-16)>=t.size():t.getOffset()+160+16>=t.size()},n.prototype.parseNode=function(t,e){var r={},o=e>=7500?t.getUint64():t.getUint32(),s=e>=7500?t.getUint64():t.getUint32();e>=7500?t.getUint64():t.getUint32();var u=t.getUint8(),l=t.getString(u);if(o===0)return null;for(var c=[],f=0;f<s;f++)c.push(this.parseProperty(t));var d=c.length>0?c[0]:"",p=c.length>1?c[1]:"",v=c.length>2?c[2]:"";for(r.singleProperty=s===1&&t.getOffset()===o;o>t.getOffset();){var g=this.parseNode(t,e);g!==null&&this.parseSubNode(l,r,g)}return r.propertyList=c,typeof d=="number"&&(r.id=d),p!==""&&(r.attrName=p),v!==""&&(r.attrType=v),l!==""&&(r.name=l),r},n.prototype.parseSubNode=function(t,e,r){if(r.singleProperty===!0){var o=r.propertyList[0];Array.isArray(o)?(e[r.name]=r,r.a=o):e[r.name]=o}else if(t==="Connections"&&r.name==="C"){var s=[];r.propertyList.forEach(function(v,g){g!==0&&s.push(v)}),e.connections===void 0&&(e.connections=[]),e.connections.push(s)}else if(r.name==="Properties70"){var u=Object.keys(r);u.forEach(function(v){e[v]=r[v]})}else if(t==="Properties70"&&r.name==="P"){var l=r.propertyList[0],c=r.propertyList[1],f=r.propertyList[2],d=r.propertyList[3],p=void 0;l.indexOf("Lcl ")===0&&(l=l.replace("Lcl ","Lcl_")),c.indexOf("Lcl ")===0&&(c=c.replace("Lcl ","Lcl_")),c==="Color"||c==="ColorRGB"||c==="Vector"||c==="Vector3D"||c.indexOf("Lcl_")===0?p=[r.propertyList[4],r.propertyList[5],r.propertyList[6]]:p=r.propertyList[4],e[l]={type:c,type2:f,flag:d,value:p}}else e[r.name]===void 0?typeof r.id=="number"?(e[r.name]={},e[r.name][r.id]=r):e[r.name]=r:r.name==="PoseNode"?(Array.isArray(e[r.name])||(e[r.name]=[e[r.name]]),e[r.name].push(r)):e[r.name][r.id]===void 0&&(e[r.name][r.id]=r)},n.prototype.parseProperty=function(t){var e=t.getString(1),r;switch(e){case"C":return t.getBoolean();case"D":return t.getFloat64();case"F":return t.getFloat32();case"I":return t.getInt32();case"L":return t.getInt64();case"R":return r=t.getUint32(),t.getArrayBuffer(r);case"S":return r=t.getUint32(),t.getString(r);case"Y":return t.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":var o=t.getUint32(),s=t.getUint32(),u=t.getUint32();if(s===0)switch(e){case"b":case"c":return t.getBooleanArray(o);case"d":return t.getFloat64Array(o);case"f":return t.getFloat32Array(o);case"i":return t.getInt32Array(o);case"l":return t.getInt64Array(o)}var l=unzlibSync(new Uint8Array(t.getArrayBuffer(u))),c=new BinaryReader(l.buffer);switch(e){case"b":case"c":return c.getBooleanArray(o);case"d":return c.getFloat64Array(o);case"f":return c.getFloat32Array(o);case"i":return c.getInt32Array(o);case"l":return c.getInt64Array(o)}break;default:throw new Error("THREE.FBXLoader: Unknown property type "+e)}},n}(),BinaryReader=function(){function n(t,e){this.dv=new DataView(t),this.offset=0,this.littleEndian=e!==void 0?e:!0,this._textDecoder=new TextDecoder}return n.prototype.getOffset=function(){return this.offset},n.prototype.size=function(){return this.dv.buffer.byteLength},n.prototype.skip=function(t){this.offset+=t},n.prototype.getBoolean=function(){return(this.getUint8()&1)===1},n.prototype.getBooleanArray=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getBoolean());return e},n.prototype.getUint8=function(){var t=this.dv.getUint8(this.offset);return this.offset+=1,t},n.prototype.getInt16=function(){var t=this.dv.getInt16(this.offset,this.littleEndian);return this.offset+=2,t},n.prototype.getInt32=function(){var t=this.dv.getInt32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getInt32Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getInt32());return e},n.prototype.getUint32=function(){var t=this.dv.getUint32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getInt64=function(){var t,e;return this.littleEndian?(t=this.getUint32(),e=this.getUint32()):(e=this.getUint32(),t=this.getUint32()),e&2147483648?(e=~e&4294967295,t=~t&4294967295,t===4294967295&&(e=e+1&4294967295),t=t+1&4294967295,-(e*4294967296+t)):e*4294967296+t},n.prototype.getInt64Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getInt64());return e},n.prototype.getUint64=function(){var t,e;return this.littleEndian?(t=this.getUint32(),e=this.getUint32()):(e=this.getUint32(),t=this.getUint32()),e*4294967296+t},n.prototype.getFloat32=function(){var t=this.dv.getFloat32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getFloat32Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getFloat32());return e},n.prototype.getFloat64=function(){var t=this.dv.getFloat64(this.offset,this.littleEndian);return this.offset+=8,t},n.prototype.getFloat64Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getFloat64());return e},n.prototype.getArrayBuffer=function(t){var e=this.dv.buffer.slice(this.offset,this.offset+t);return this.offset+=t,e},n.prototype.getString=function(t){var e=this.offset,r=new Uint8Array(this.dv.buffer,e,t);this.skip(t);var o=r.indexOf(0);return o>=0&&(r=new Uint8Array(this.dv.buffer,e,o)),this._textDecoder.decode(r)},n}(),FBXTree=function(){function n(){this.Connections={connections:[]},this.Objects={Model:{},NodeAttribute:{},Geometry:{}},this.GlobalSettings={}}return n.prototype.add=function(t,e){this[t]=e},n}();function isFbxFormatBinary(n){var t="Kaydara FBX Binary \0";return n.byteLength>=t.length&&t===convertArrayBufferToString(n,0,t.length)}function isFbxFormatASCII(n){var t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"],e=0;function r(u){var l=n[u-1];return n=n.slice(e+u),e++,l}for(var o=0;o<t.length;++o){var s=r(1);if(s===t[o])return!1}return!0}function getFbxVersion(n){var t=/FBXVersion: (\d+)/,e=n.match(t);if(e){var r=parseInt(e[1]);return r}throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.")}function convertFBXTimeToSeconds(n){return n/46186158e3}var dataArray=[];function getData(n,t,e,r){var o;switch(r.mappingType){case"ByPolygonVertex":o=n;break;case"ByPolygon":o=t;break;case"ByVertice":o=e;break;case"AllSame":o=r.indices[0];break;default:console.warn("THREE.FBXLoader: unknown attribute mapping type "+r.mappingType),o=0}r.referenceType==="IndexToDirect"&&(o=r.indices[o]);var s=o*r.dataSize,u=s+r.dataSize;return slice(dataArray,r.buffer,s,u)}var tempEuler=new THREE__namespace.Euler,tempVec=new THREE__namespace.Vector3;function generateTransform(n){var t=new THREE__namespace.Matrix4,e=new THREE__namespace.Matrix4,r=new THREE__namespace.Matrix4,o=new THREE__namespace.Matrix4,s=new THREE__namespace.Matrix4,u=new THREE__namespace.Matrix4,l=new THREE__namespace.Matrix4,c=new THREE__namespace.Matrix4,f=new THREE__namespace.Matrix4,d=new THREE__namespace.Matrix4,p=new THREE__namespace.Matrix4,v=new THREE__namespace.Matrix4,g=n.inheritType?n.inheritType:0;n.translation&&t.setPosition(tempVec.fromArray(n.translation));var h=getEulerOrder(0);if(n.preRotation){var m=n.preRotation.map(THREE__namespace.MathUtils.degToRad);m.push(h),e.makeRotationFromEuler(tempEuler.fromArray(m))}if(n.rotation){var m=n.rotation.map(THREE__namespace.MathUtils.degToRad);m.push(n.eulerOrder||h),r.makeRotationFromEuler(tempEuler.fromArray(m))}if(n.postRotation){var m=n.postRotation.map(THREE__namespace.MathUtils.degToRad);m.push(h),o.makeRotationFromEuler(tempEuler.fromArray(m)),o.copy(new THREE__namespace.Matrix4().getInverse(o))}n.scale&&s.scale(tempVec.fromArray(n.scale)),n.scalingOffset&&l.setPosition(tempVec.fromArray(n.scalingOffset)),n.scalingPivot&&u.setPosition(tempVec.fromArray(n.scalingPivot)),n.rotationOffset&&c.setPosition(tempVec.fromArray(n.rotationOffset)),n.rotationPivot&&f.setPosition(tempVec.fromArray(n.rotationPivot)),n.parentMatrixWorld&&(p.copy(n.parentMatrix),d.copy(n.parentMatrixWorld));var y=e.clone().multiply(r).multiply(o),A=new THREE__namespace.Matrix4;A.extractRotation(d);var E=new THREE__namespace.Matrix4;E.copyPosition(d);var b=new THREE__namespace.Matrix4().getInverse(E).multiply(d),T=new THREE__namespace.Matrix4().getInverse(A).multiply(b),_=s,R=new THREE__namespace.Matrix4;if(g===0)R.copy(A).multiply(y).multiply(T).multiply(_);else if(g===1)R.copy(A).multiply(T).multiply(y).multiply(_);else{var S=new THREE__namespace.Matrix4().scale(new THREE__namespace.Vector3().setFromMatrixScale(p)),M=new THREE__namespace.Matrix4().getInverse(S),B=T.clone().multiply(M);R.copy(A).multiply(y).multiply(B).multiply(_)}var H=new THREE__namespace.Matrix4().getInverse(f),w=new THREE__namespace.Matrix4().getInverse(u),C=t.clone().multiply(c).multiply(f).multiply(e).multiply(r).multiply(o).multiply(H).multiply(l).multiply(u).multiply(s).multiply(w),F=new THREE__namespace.Matrix4().copyPosition(C),I=d.clone().multiply(F);return v.copyPosition(I),C=v.clone().multiply(R),C.premultiply(new THREE__namespace.Matrix4().getInverse(d)),C}function getEulerOrder(n){n=n||0;var t=["ZYX","YZX","XZY","ZXY","YXZ","XYZ"];return n===6?(console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."),t[0]):t[n]}function parseNumberArray(n){var t=n.split(",").map(function(e){return parseFloat(e)});return t}function convertArrayBufferToString(n,t,e){return t===void 0&&(t=0),e===void 0&&(e=n.byteLength),new TextDecoder().decode(new Uint8Array(n,t,e))}function append(n,t){for(var e=0,r=n.length,o=t.length;e<o;e++,r++)n[r]=t[e]}function slice(n,t,e,r){for(var o=e,s=0;o<r;o++,s++)n[s]=t[o];return n}var NURBSCurve=function(n){__extends(t,n);function t(e,r,o,s,u){var l=n.call(this)||this,c=r?r.length-1:0,f=o?o.length:0;l.degree=e,l.knots=r,l.controlPoints=[],l.startKnot=s||0,l.endKnot=u||c;for(var d=0;d<f;++d){var p=o[d];l.controlPoints[d]=new THREE__namespace.Vector4(p.x,p.y,p.z,p.w)}return l}return t.prototype.getPoint=function(e,r){r===void 0&&(r=new THREE__namespace.Vector3);var o=r,s=this.knots[this.startKnot]+e*(this.knots[this.endKnot]-this.knots[this.startKnot]),u=calcBSplinePoint(this.degree,this.knots,this.controlPoints,s);return u.w!==1&&u.divideScalar(u.w),o.set(u.x,u.y,u.z)},t.prototype.getTangent=function(e,r){r===void 0&&(r=new THREE__namespace.Vector3);var o=r,s=this.knots[0]+e*(this.knots[this.knots.length-1]-this.knots[0]),u=calcNURBSDerivatives(this.degree,this.knots,this.controlPoints,s,1);return o.copy(u[1]).normalize(),o},t.prototype.toJSON=function(){var e=n.prototype.toJSON.call(this);return e.degree=this.degree,e.knots=__spreadArray([],this.knots,!0),e.controlPoints=this.controlPoints.map(function(r){return r.toArray()}),e.startKnot=this.startKnot,e.endKnot=this.endKnot,e},t.prototype.fromJSON=function(e){return n.prototype.fromJSON.call(this,e),this.degree=e.degree,this.knots=__spreadArray([],e.knots,!0),this.controlPoints=e.controlPoints.map(function(r){return new THREE__namespace.Vector4(r[0],r[1],r[2],r[3])}),this.startKnot=e.startKnot,this.endKnot=e.endKnot,this},t}(THREE__namespace.Curve);function findSpan(n,t,e){var r=e.length-n-1;if(t>=e[r])return r-1;if(t<=e[n])return n;for(var o=n,s=r,u=Math.floor((o+s)/2);t<e[u]||t>=e[u+1];)t<e[u]?s=u:o=u,u=Math.floor((o+s)/2);return u}function calcBasisFunctions(n,t,e,r){var o=[],s=[],u=[];o[0]=1;for(var l=1;l<=e;++l){s[l]=t-r[n+1-l],u[l]=r[n+l]-t;for(var c=0,f=0;f<l;++f){var d=u[f+1],p=s[l-f],v=o[f]/(d+p);o[f]=c+d*v,c=p*v}o[l]=c}return o}function calcBSplinePoint(n,t,e,r){for(var o=findSpan(n,r,t),s=calcBasisFunctions(o,r,n,t),u=new THREE__namespace.Vector4(0,0,0,0),l=0;l<=n;++l){var c=e[o-n+l],f=s[l],d=c.w*f;u.x+=c.x*d,u.y+=c.y*d,u.z+=c.z*d,u.w+=c.w*f}return u}function calcBasisFunctionDerivatives(n,t,e,r,o){for(var s=[],u=0;u<=e;++u)s[u]=0;for(var l=[],u=0;u<=r;++u)l[u]=s.slice(0);for(var c=[],u=0;u<=e;++u)c[u]=s.slice(0);c[0][0]=1;for(var f=s.slice(0),d=s.slice(0),p=1;p<=e;++p){f[p]=t-o[n+1-p],d[p]=o[n+p]-t;for(var v=0,g=0;g<p;++g){var h=d[g+1],m=f[p-g];c[p][g]=h+m;var y=c[g][p-1]/c[p][g];c[g][p]=v+h*y,v=m*y}c[p][p]=v}for(var p=0;p<=e;++p)l[0][p]=c[p][e];for(var A=0;A<=e;++A){for(var E=0,b=1,T=[],u=0;u<=e;++u)T[u]=s.slice(0);T[0][0]=1;for(var _=1;_<=r;++_){var R=0,S=A-_,M=e-_;A>=_&&(T[b][0]=T[E][0]/c[M+1][S],R=T[b][0]*c[S][M]);for(var B=S>=-1?1:-S,H=A-1<=M?_-1:e-A,w=B;w<=H;++w)T[b][w]=(T[E][w]-T[E][w-1])/c[M+1][S+w],R+=T[b][w]*c[S+w][M];A<=M&&(T[b][_]=-T[E][_-1]/c[M+1][A],R+=T[b][_]*c[A][M]),l[_][A]=R;var p=E;E=b,b=p}}for(var C=e,_=1;_<=r;++_){for(var p=0;p<=e;++p)l[_][p]*=C;C*=e-_}return l}function calcBSplineDerivatives(n,t,e,r,o){for(var s=o<n?o:n,u=[],l=findSpan(n,r,t),c=calcBasisFunctionDerivatives(l,r,n,s,t),f=[],d=0;d<e.length;++d){var p=e[d].clone(),v=p.w;p.x*=v,p.y*=v,p.z*=v,f[d]=p}for(var g=0;g<=s;++g){for(var p=f[l-n].clone().multiplyScalar(c[g][0]),h=1;h<=n;++h)p.add(f[l-n+h].clone().multiplyScalar(c[g][h]));u[g]=p}for(var g=s+1;g<=o+1;++g)u[g]=new THREE__namespace.Vector4(0,0,0);return u}function calcKoverI(n,t){for(var e=1,r=2;r<=n;++r)e*=r;for(var o=1,r=2;r<=t;++r)o*=r;for(var r=2;r<=n-t;++r)o*=r;return e/o}function calcRationalCurveDerivatives(n){for(var t=n.length,e=[],r=[],o=0;o<t;++o){var s=n[o];e[o]=new THREE__namespace.Vector3(s.x,s.y,s.z),r[o]=s.w}for(var u=[],l=0;l<t;++l){for(var c=e[l].clone(),o=1;o<=l;++o)c.sub(u[l-o].clone().multiplyScalar(calcKoverI(l,o)*r[o]));u[l]=c.divideScalar(r[0])}return u}function calcNURBSDerivatives(n,t,e,r,o){var s=calcBSplineDerivatives(n,t,e,r,o);return calcRationalCurveDerivatives(s)}var _vector=new THREE__namespace.Vector3;function getPointArray(n,t){switch(t){case"D":return new Float64Array(n);case"F":return new Float32Array(n);case"L":return new Int32Array(n);case"I":return new Int16Array(n);default:return new Uint8Array(n)}}function loadX3p(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){var u;return o.byteLength=s.body.byteLength,parse$1(new Uint8Array(s.body),{materialType:t.materialType,color:t.color,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(u=n.split("?")[1])!==null&&u!==void 0?u:"",fetcher:r})}).then(function(s){var u=new THREE__namespace.Group;return u.matrixAutoUpdate=!1,u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n,u.add(s.object),{type:"x3p",upAxis:"Z",uri:n,byteLength:o.byteLength,scene:u,textures:[],dispose:function(){return s.dispose()}}})}function parse$1(n,t){for(var e,r,o,s,u,l,c,f,d,p,v,g,h,m,y,A,E,b,T,_,R,S,M,B,H,w,C,F,I,L,k,N,D,U,z,q,G,J,X,j,Y,Z,W,ae,re,se,ie,fe,ne,pe,_e,me,xe,$,te,Q=unzipSync(n),be="",ye=null,Ae=0,Me=Object.keys(Q);Ae<Me.length;Ae++){var ge=Me[Ae];/(^|\/)main\.xml$/i.test(ge)&&(ye=Q[ge],be=ge.slice(0,ge.lastIndexOf("/")+1))}if(!ye)throw new Error("X3p: main.xml not found.");if(typeof DOMParser=="undefined")throw new Error("X3p: DOMParser not found.");var he=(e=t.materialType)!==null&&e!==void 0?e:"phong",de=(r=t.color)!==null&&r!==void 0?r:new THREE__namespace.Color(10066329),ce=new DOMParser,le=decodeText(ye),we=ce.parseFromString(le,"text/xml"),ue=we.querySelector("Record1 Axes"),ve={x:{type:(u=(s=(o=ue==null?void 0:ue.querySelector("CX AxisType"))===null||o===void 0?void 0:o.textContent)===null||s===void 0?void 0:s.toUpperCase())!==null&&u!==void 0?u:"I",dataType:(f=(c=(l=ue==null?void 0:ue.querySelector("CX DataType"))===null||l===void 0?void 0:l.textContent)===null||c===void 0?void 0:c.toUpperCase())!==null&&f!==void 0?f:"D",increment:Number((p=(d=ue==null?void 0:ue.querySelector("CX Increment"))===null||d===void 0?void 0:d.textContent)!==null&&p!==void 0?p:"1"),offset:Number((g=(v=ue==null?void 0:ue.querySelector("CX Offset"))===null||v===void 0?void 0:v.textContent)!==null&&g!==void 0?g:"0")},y:{type:(y=(m=(h=ue==null?void 0:ue.querySelector("CY AxisType"))===null||h===void 0?void 0:h.textContent)===null||m===void 0?void 0:m.toUpperCase())!==null&&y!==void 0?y:"I",dataType:(b=(E=(A=ue==null?void 0:ue.querySelector("CY DataType"))===null||A===void 0?void 0:A.textContent)===null||E===void 0?void 0:E.toUpperCase())!==null&&b!==void 0?b:"D",increment:Number((_=(T=ue==null?void 0:ue.querySelector("CY Increment"))===null||T===void 0?void 0:T.textContent)!==null&&_!==void 0?_:"1"),offset:Number((S=(R=ue==null?void 0:ue.querySelector("CY Offset"))===null||R===void 0?void 0:R.textContent)!==null&&S!==void 0?S:"0")},z:{type:(H=(B=(M=ue==null?void 0:ue.querySelector("CZ AxisType"))===null||M===void 0?void 0:M.textContent)===null||B===void 0?void 0:B.toUpperCase())!==null&&H!==void 0?H:"A",dataType:(F=(C=(w=ue==null?void 0:ue.querySelector("CZ DataType"))===null||w===void 0?void 0:w.textContent)===null||C===void 0?void 0:C.toUpperCase())!==null&&F!==void 0?F:"D",increment:Number((L=(I=ue==null?void 0:ue.querySelector("CZ Increment"))===null||I===void 0?void 0:I.textContent)!==null&&L!==void 0?L:"1"),offset:Number((N=(k=ue==null?void 0:ue.querySelector("CZ Offset"))===null||k===void 0?void 0:k.textContent)!==null&&N!==void 0?N:"0")}},qe=null,Ee=we.querySelector("Record1 Axes Rotation");Ee&&(qe=new THREE__namespace.Matrix3,qe.set(Number((U=(D=Ee.querySelector("r11"))===null||D===void 0?void 0:D.textContent)!==null&&U!==void 0?U:0),Number((q=(z=Ee.querySelector("r12"))===null||z===void 0?void 0:z.textContent)!==null&&q!==void 0?q:0),Number((J=(G=Ee.querySelector("r13"))===null||G===void 0?void 0:G.textContent)!==null&&J!==void 0?J:0),Number((j=(X=Ee.querySelector("r21"))===null||X===void 0?void 0:X.textContent)!==null&&j!==void 0?j:0),Number((Z=(Y=Ee.querySelector("r22"))===null||Y===void 0?void 0:Y.textContent)!==null&&Z!==void 0?Z:0),Number((ae=(W=Ee.querySelector("r23"))===null||W===void 0?void 0:W.textContent)!==null&&ae!==void 0?ae:0),Number((se=(re=Ee.querySelector("r31"))===null||re===void 0?void 0:re.textContent)!==null&&se!==void 0?se:0),Number((fe=(ie=Ee.querySelector("r32"))===null||ie===void 0?void 0:ie.textContent)!==null&&fe!==void 0?fe:0),Number((pe=(ne=Ee.querySelector("r33"))===null||ne===void 0?void 0:ne.textContent)!==null&&pe!==void 0?pe:0)));var Ie=(_e=we.querySelector("Record3 DataLink PointDataLink"))===null||_e===void 0?void 0:_e.textContent;if(typeof Ie!="string")throw new Error("X3p: PointDataLink not found.");Ie=pathJoin(be,Ie);var Oe=Q[Ie];if(!Oe)throw new Error("X3p: ".concat(Oe," not found."));for(var $e=getPointArray(Oe.buffer,ve.z.dataType),pt=Number((xe=(me=we.querySelector("Record3 MatrixDimension SizeX"))===null||me===void 0?void 0:me.textContent)!==null&&xe!==void 0?xe:"0"),tt=Number((te=($=we.querySelector("Record3 MatrixDimension SizeY"))===null||$===void 0?void 0:$.textContent)!==null&&te!==void 0?te:"0"),Ne=Math.floor(pt-1),Ge=Math.floor(tt-1),Ve=Ne+1,Ke=Ge+1,Je=new Float32Array(Ve*Ke*3),Xe=new Float32Array(Ve*Ke*2),Pe=new Uint32Array(Ne*Ge*6),Se=new THREE__namespace.Box3,Be=0;Be<Ke;Be++)for(var De=Be*ve.y.increment+ve.y.offset,He=0;He<Ve;He++){var Ue=Be*Ve+He,Ye=He*ve.x.increment+ve.x.offset,ze=$e[Ue],rt=!isNaN(ze),ot=rt?ze:NaN;_vector.set(Ye,-De,ot),qe&&_vector.applyMatrix3(qe),rt&&Se.expandByPoint(_vector),Je[Ue*3+0]=_vector.x,Je[Ue*3+1]=_vector.y,Je[Ue*3+2]=_vector.z,Xe[Ue*2+0]=He/Ne,Xe[Ue*2+1]=1-Be/Ge}for(var Be=0;Be<Ge;Be++)for(var He=0;He<Ne;He++){var ht=He+Ve*Be,st=He+Ve*(Be+1),ct=He+1+Ve*(Be+1),We=He+1+Ve*Be,Ce=(Be*Ne+He)*6;Pe[Ce+0]=ht,Pe[Ce+1]=st,Pe[Ce+2]=We,Pe[Ce+3]=st,Pe[Ce+4]=ct,Pe[Ce+5]=We}var Re=new THREE__namespace.BufferGeometry;Re.setAttribute("position",new THREE__namespace.BufferAttribute(Je,3)),Re.setAttribute("uv",new THREE__namespace.BufferAttribute(Xe,2)),Re.setIndex(new THREE__namespace.BufferAttribute(Pe,1)),(!Re.groups||Re.groups.length===0)&&Re.addGroup(0,Re.index?Re.index.count:Re.attributes.position.count,0),Re.boundingBox=Se;var Le=new PBMMeshMaterial(he);Le.flatShading=!0,Le.color.copy(de),Le.refreshUniforms();var Qe=new PBMMesh(Re,[Le]);return{object:Qe,dispose:function(){Re.dispose(),Le.dispose()}}}var scratchMatrix4$3=new THREE__namespace.Matrix4,MAX_RETRY_DELAY$1=5e3,RETRY_DELAY_STEP$1=1e3;function attachTileAttributes(n,t){n.name=t.id;var e=t.tileset.properties.floorInfo;n.traverse(function(r){if("floor"in t.extras){if(r instanceof THREE__namespace.Mesh||r instanceof THREE__namespace.Points)for(var o=Array.isArray(r.material)?r.material:r.material?[r.material]:[],s=0,u=o;s<u.length;s++){var l=u[s];(l instanceof PBMMeshMaterial||l instanceof PBMPointCloudMaterial)&&(l.floor=t.extras.floor)}}else if(!(r instanceof PBMPointCloud)){if(r instanceof PBMMesh&&e){for(var c=new THREE__namespace.Box3().expandByObject(r),f=c.getCenter(new THREE__namespace.Vector3),d=0,p=0;p<e.length;p++){var v=e[p],g=v.ground,h=v.height;if(f.y<g+h){d=p;break}}t.floor=d,t.tileset.floorLength=Math.max(t.tileset.floorLength,t.floor+1),r.material.forEach(function(m){return m.floor=d})}}})}function loadTileContent(n,t){if(!n.content)return Promise.resolve(n);var e=n.content,r=appendSearch(e.uri,t.search);if(n.type==="TILESET"){var o=imageURL(r,{key:"model.".concat(n.siblingIndex)});return e.loadState="LOADING",e.loadStateUpdateTime=now(),t.fetcher.ajax(o,{responseType:"text"}).then(function(s){return s.body}).then(function(s){var u=r.slice(0,r.lastIndexOf("/")+1);return normalizeTilesetHeader(JSON.parse(s),u)}).then(function(s){e.loadState="READY",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=0,n.children.length===0&&(n.children=[new Tile("".concat(n.id,".0"),s.root,n.tileset,n)])}).then(function(){return n}).catch(function(s){return e.loadState="FAILED",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=Math.min(e.loadfailRetryDelay+1e3,5e3),Promise.reject(s)})}if(n.type==="SCENEGRAPH")return e.loadState="LOADING",e.loadStateUpdateTime=now(),Promise.resolve().then(function(){var s,u,l,c,f,d,p,v,g,h,m="",y=r.split("#"),A=y[0],E=y[1],b=(E||A).split("?")[0].match(/\.([0-9a-zA-Z]+)$/);if(b&&(m=b[1]),m==="b3dm"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadB3dm(T,{upAxis:n.tileset.asset.gltfUpAxis,fetcher:t.fetcher}).then(function(_){return _.scene.applyMatrix4(n.transform),_.scene.updateWorldMatrix(!1,!0),_.scene.matrixAutoUpdate=!1,attachTileAttributes(_.scene,n),_})}if(m==="pnts"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPnts(T,{computeBoundingBox:!1,fetcher:t.fetcher}).then(function(R){if(R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,n.boundingVolume){var S=n.boundingVolume;R.scene.traverse(function(M){if(M instanceof PBMPointCloud){scratchMatrix4$3.getInverse(M.matrixWorld);var B=new THREE__namespace.Box3;S.getBoundingBox(B),B.applyMatrix4(scratchMatrix4$3),M.geometry.boundingBox=B}})}return attachTileAttributes(R.scene,n),R})}if(m==="glb"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadGlb(T,{upAxis:n.tileset.asset.gltfUpAxis,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,attachTileAttributes(R.scene,n),R})}if(m==="at3d"){var T=n.extras.at3d?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadAt3d(T,{textureBaseUri:(s=n.extras.at3d)===null||s===void 0?void 0:s.textureBaseUri,textureArray:(u=n.extras.at3d)===null||u===void 0?void 0:u.textureArray,textureOptions:(l=n.extras.at3d)===null||l===void 0?void 0:l.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="pbm"){var T=n.extras.pbm?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPbm(T,{textureBaseUri:(c=n.extras.pbm)===null||c===void 0?void 0:c.textureBaseUri,textureArray:(f=n.extras.pbm)===null||f===void 0?void 0:f.textureArray,textureOptions:(d=n.extras.pbm)===null||d===void 0?void 0:d.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="dome"){var T=n.extras.dome?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadDome(T,{textureBaseUri:(p=n.extras.dome)===null||p===void 0?void 0:p.textureBaseUri,textureOptions:(v=n.extras.dome)===null||v===void 0?void 0:v.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="domez"){var T=n.extras.domez?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadDomez(T,{textureBaseUri:(g=n.extras.domez)===null||g===void 0?void 0:g.textureBaseUri,textureOptions:(h=n.extras.domez)===null||h===void 0?void 0:h.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="ply"){var T=n.extras.ply?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPly(T,{type:"pbmPointCloud",upAxis:"Z",fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="obj"){var T=n.extras.obj?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadObj(T,{upAxis:"Z",fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="fbx"){var T=n.extras.obj?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadFbx(T,{fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="x3p"){var T=n.extras.x3p?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadX3p(T,{fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}throw new Error("Invalid Tile content: ".concat(r))}).then(function(s){s.scene.traverse(function(l){if(l instanceof PBMPointCloud)l.material.uniforms.geometricError.value=n.geometricError;else if(l instanceof PBMMesh)for(var c=0,f=l.material;c<f.length;c++){var d=f[c];d.uniforms.geometricError.value=n.geometricError}});var u={type:s.type,uri:s.uri,byteLength:s.byteLength,object:new TileNode(n.id,s.scene,s.dispose)};return Promise.resolve().then(function(){return Promise.all([u.object.generateBvhTree(),t.renderer&&s.textures.length<16?initTextures(s.textures,t.renderer,1024*1024):null])}).then(function(){return e.loadState="READY",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=0,e.byteLength=u.byteLength,e.data=u,n}).catch(function(l){return unloadTileContent(n),Promise.reject(l)})}).catch(function(s){return e.loadState="FAILED",e.loadStateUpdateTime=now(),s instanceof NetworkResponseError&&s.httpStatus===0||s instanceof NetworkTimeoutError||s instanceof NetworkProxyError?e.loadfailRetryDelay=clamp$1(e.loadfailRetryDelay+RETRY_DELAY_STEP$1,RETRY_DELAY_STEP$1,MAX_RETRY_DELAY$1):e.loadfailRetryDelay=1/0,Promise.reject(s)});throw new Error("Invalid Tile type: ".concat(n.type))}function unloadTileContent(n){n.content&&(n.content.data&&n.content.data.object.dispose(),n.content.data=void 0,n.content.loadState="UNLOADED",n.content.loadStateUpdateTime=now(),n.content.byteLength=0)}var TrajectoryNode=function(n){__extends(t,n);function t(e,r,o){o===void 0&&(o=noop$1);var s=n.call(this)||this;return s.name=e,s.contentObject=r,s.name=e,s.add(r),s.disposers=[o],s}return t.prototype.update=function(e,r,o){var s=this.contentObject.material[2];s.uniforms.dashOffset.value=(s.uniforms.dashOffset.value-.003)%(s.uniforms.dashSize.value.x+s.uniforms.dashSize.value.y),o.needsRender=!0},t.prototype.dispose=function(){for(var e=0,r=this.disposers;e<r.length;e++){var o=r[e];o()}this.disposers.length=0},t.prototype.clone=function(){return new t(this.name,this.contentObject.clone())},t}(THREE__namespace.Object3D),MAX_RETRY_DELAY=5e3,RETRY_DELAY_STEP=1e3,TRAJECTOR_PIPE_SHADER={vertexShader:`
|
|
934
|
+
`),s={name:""},u=/\s+/,l={},c=0;c<o.length;c++){var f=o[c];if(f=f.trim(),!(f.length===0||f.charAt(0)==="#")){var d=f.indexOf(" "),p=d>=0?f.substring(0,d):f;p=p.toLowerCase();var v=d>=0?f.substring(d+1):"";if(v=v.trim(),p==="newmtl")s={name:v},l[v]=s;else if(p==="ka"||p==="kd"||p==="ks"||p==="ke"){var g=v.split(u,3);s[p]=[parseFloat(g[0]),parseFloat(g[1]),parseFloat(g[2])]}else(p==="map_kd"||p==="map_ks"||p==="map_ke"||p==="norm"||p==="map_bump"||p==="bump"||p==="map_d"||p==="ns"||p==="d"||p==="tr")&&(s[p]=v)}}function h(y){var A={url:"",scale:new THREE__namespace.Vector2(1,1),offset:new THREE__namespace.Vector2(0,0),bumpScale:1},E=y.split(/\s+/),b;return b=E.indexOf("-bm"),b>=0&&(A.bumpScale=parseFloat(E[b+1]),E.splice(b,2)),b=E.indexOf("-s"),b>=0&&(A.scale.set(parseFloat(E[b+1]),parseFloat(E[b+2])),E.splice(b,4)),b=E.indexOf("-o"),b>=0&&(A.offset.set(parseFloat(E[b+1]),parseFloat(E[b+2])),E.splice(b,4)),A.url=E.join(" ").trim(),A}function m(y,A,E){var b=h(E),T=pathJoin(e.path,b.url);return r.loadTexture(T,{fetcher:e.fetcher,encoding:A==="map"||A==="emissiveMap"?THREE__namespace.sRGBEncoding:THREE__namespace.LinearEncoding,minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,wrapS:THREE__namespace.RepeatWrapping,wrapT:THREE__namespace.RepeatWrapping}).then(function(_){var R=_.body;return R.repeat.copy(b.scale),R.offset.copy(b.offset),y.bumpScale=b.bumpScale,y[A]=R,R})}return{name:n,create:function(y){var A=new PBMMeshMaterial(e.materialType),E=[],b=l[y];if(b){if(b.kd!==void 0&&A.color.fromArray(b.kd),b.ks!==void 0&&A.specular.fromArray(b.ks),b.ke!==void 0&&A.emissive.fromArray(b.ke),b.map_kd!==void 0&&E.push(m(A,"map",b.map_kd)),b.map_ks!==void 0&&E.push(m(A,"specularMap",b.map_ks)),b.map_ke!==void 0&&E.push(m(A,"emissiveMap",b.map_ke)),b.norm!==void 0&&E.push(m(A,"normalMap",b.norm)),b.map_bump!==void 0&&E.push(m(A,"bumpMap",b.map_bump)),b.bump!==void 0&&E.push(m(A,"bumpMap",b.bump)),b.map_d!==void 0&&E.push(m(A,"alphaMap",b.map_d)),b.ns!==void 0&&(A.shininess=parseFloat(b.ns)),b.d!==void 0){var T=parseFloat(b.d);T<1&&(A.opacity=T,A.transparent=!0)}if(b.tr!==void 0){var T=parseFloat(b.tr);T>0&&(A.opacity=1-T,A.transparent=!0)}}var _=Promise.all(E).then(function(R){return A.refreshUniforms(),R});return[A,_]}}}function build(n,t){for(var e,r,o=[],s=[],u=new THREE__namespace.Group,l=function(d,p){var v=n.objects[d],g=v.geometry,h=v.materials,m=!1;if(g.vertices.length===0)return"continue";var y=new THREE__namespace.BufferGeometry;s.push(function(){return y.dispose()}),y.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(g.vertices),3)),g.normals.length>0&&y.setAttribute("normal",new THREE__namespace.BufferAttribute(new Float32Array(g.normals),3)),g.colors.length>0&&(m=!0,y.setAttribute("color",new THREE__namespace.BufferAttribute(new Float32Array(g.colors),3))),g.uvs.length>0&&y.setAttribute("uv",new THREE__namespace.BufferAttribute(new Float32Array(g.uvs),2)),g.index.length>0&&y.setIndex(new THREE__namespace.BufferAttribute(new Uint32Array(g.index),1)),y.computeBoundingBox(),y.computeBoundingSphere();for(var A=[],E=function(S,M){var B=h[S],H=B.name+"_"+B.smooth+"_"+m,w=n.materials[H];if(!w){for(var C=null,F=0,I=t;F<I.length;F++){var L=I[F],k=L.name,N=L.create;k===B.mtllib&&(C=N(B.name))}if(!C){var D=new PBMMeshMaterial;D.refreshUniforms(),C=[D,Promise.resolve([])]}w=C[0],w.name=B.name,w.flatShading=!(B.smooth||y.attributes.normal),w.vertexColors=m,n.materials[H]=w;var U=C[1];o.push(U),s.push(function(){return w.dispose()})}A.push(w)},b=0,T=h.length;b<T;b++)E(b);for(var b=0,T=h.length;b<T;b++){var _=h[b];y.addGroup((e=_.groupStart)!==null&&e!==void 0?e:0,(r=_.groupCount)!==null&&r!==void 0?r:0,b)}var R=new PBMMesh(y,A);R.name=v.name,u.add(R)},c=0,f=n.objects.length;c<f;c++)l(c);return Promise.all(o).then(function(d){for(var p=[],v=0,g=d;v<g.length;v++){var h=g[v];p=p.concat(h)}return{scene:u,textures:p,dispose:function(){return s.forEach(function(m){return m()})}}})}function loadObj(n,t){var e,r,o;t===void 0&&(t={});var s=(e=t.upAxis)!==null&&e!==void 0?e:"Z",u=(r=t.materialType)!==null&&r!==void 0?r:"basic",l=(o=t.fetcher)!==null&&o!==void 0?o:new Fetcher({allowHosts:["*"]}),c=n.slice(0,n.lastIndexOf("/")+1),f=0,d;return Promise.resolve().then(function(){return l.ajax(n,{responseType:"arraybuffer"})}).then(function(p){f=p.body.byteLength;var v=new TextDecoder;return v.decode(p.body)}).then(function(p){return d=parseObj(p),Promise.all(d.materialLibraries.map(function(v){var g=pathJoin(c,v),h=g.slice(0,g.lastIndexOf("/")+1);return l.ajax(g,{responseType:"text"}).then(function(m){return parseMtl(v,m.body,{path:h,materialType:u,fetcher:l})})}))}).then(function(p){return build(d,p)}).then(function(p){var v=new THREE__namespace.Matrix4;return s==="Y"&&v.premultiply(ROTATE_X_MATRIX$1),p.scene.applyMatrix4(v),{type:"obj",upAxis:"Z",uri:n,byteLength:f,scene:p.scene,textures:p.textures,dispose:function(){return p.dispose()}}})}var u8=Uint8Array,u16=Uint16Array,i32=Int32Array,fleb=new u8([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),fdeb=new u8([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),clim=new u8([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),freb=function(n,t){for(var e=new u16(31),r=0;r<31;++r)e[r]=t+=1<<n[r-1];for(var o=new i32(e[30]),r=1;r<30;++r)for(var s=e[r];s<e[r+1];++s)o[s]=s-e[r]<<5|r;return{b:e,r:o}},_a$3=freb(fleb,2),fl=_a$3.b,revfl=_a$3.r;fl[28]=258,revfl[258]=28;for(var _b=freb(fdeb,0),fd=_b.b,rev=new u16(32768),i=0;i<32768;++i){var x=(i&43690)>>1|(i&21845)<<1;x=(x&52428)>>2|(x&13107)<<2,x=(x&61680)>>4|(x&3855)<<4,rev[i]=((x&65280)>>8|(x&255)<<8)>>1}for(var hMap=function(n,t,e){for(var r=n.length,o=0,s=new u16(t);o<r;++o)n[o]&&++s[n[o]-1];var u=new u16(t);for(o=1;o<t;++o)u[o]=u[o-1]+s[o-1]<<1;var l;if(e){l=new u16(1<<t);var c=15-t;for(o=0;o<r;++o)if(n[o])for(var f=o<<4|n[o],d=t-n[o],p=u[n[o]-1]++<<d,v=p|(1<<d)-1;p<=v;++p)l[rev[p]>>c]=f}else for(l=new u16(r),o=0;o<r;++o)n[o]&&(l[o]=rev[u[n[o]-1]++]>>15-n[o]);return l},flt=new u8(288),i=0;i<144;++i)flt[i]=8;for(var i=144;i<256;++i)flt[i]=9;for(var i=256;i<280;++i)flt[i]=7;for(var i=280;i<288;++i)flt[i]=8;for(var fdt=new u8(32),i=0;i<32;++i)fdt[i]=5;var flrm=hMap(flt,9,1),fdrm=hMap(fdt,5,1),max=function(n){for(var t=n[0],e=1;e<n.length;++e)n[e]>t&&(t=n[e]);return t},bits=function(n,t,e){var r=t/8|0;return(n[r]|n[r+1]<<8)>>(t&7)&e},bits16=function(n,t){var e=t/8|0;return(n[e]|n[e+1]<<8|n[e+2]<<16)>>(t&7)},shft=function(n){return(n+7)/8|0},slc=function(n,t,e){return(t==null||t<0)&&(t=0),(e==null||e>n.length)&&(e=n.length),new u8(n.subarray(t,e))},ec=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],err=function(n,t,e){var r=new Error(t||ec[n]);if(r.code=n,Error.captureStackTrace&&Error.captureStackTrace(r,err),!e)throw r;return r},inflt=function(n,t,e,r){var o=n.length,s=r?r.length:0;if(!o||t.f&&!t.l)return e||new u8(0);var u=!e,l=u||t.i!=2,c=t.i;u&&(e=new u8(o*3));var f=function(se){var ie=e.length;if(se>ie){var fe=new u8(Math.max(ie*2,se));fe.set(e),e=fe}},d=t.f||0,p=t.p||0,v=t.b||0,g=t.l,h=t.d,m=t.m,y=t.n,A=o*8;do{if(!g){d=bits(n,p,1);var E=bits(n,p+1,3);if(p+=3,E)if(E==1)g=flrm,h=fdrm,m=9,y=5;else if(E==2){var R=bits(n,p,31)+257,S=bits(n,p+10,15)+4,M=R+bits(n,p+5,31)+1;p+=14;for(var B=new u8(M),H=new u8(19),w=0;w<S;++w)H[clim[w]]=bits(n,p+w*3,7);p+=S*3;for(var C=max(H),F=(1<<C)-1,I=hMap(H,C,1),w=0;w<M;){var L=I[bits(n,p,F)];p+=L&15;var b=L>>4;if(b<16)B[w++]=b;else{var k=0,N=0;for(b==16?(N=3+bits(n,p,3),p+=2,k=B[w-1]):b==17?(N=3+bits(n,p,7),p+=3):b==18&&(N=11+bits(n,p,127),p+=7);N--;)B[w++]=k}}var D=B.subarray(0,R),U=B.subarray(R);m=max(D),y=max(U),g=hMap(D,m,1),h=hMap(U,y,1)}else err(1);else{var b=shft(p)+4,T=n[b-4]|n[b-3]<<8,_=b+T;if(_>o){c&&err(0);break}l&&f(v+T),e.set(n.subarray(b,_),v),t.b=v+=T,t.p=p=_*8,t.f=d;continue}if(p>A){c&&err(0);break}}l&&f(v+131072);for(var z=(1<<m)-1,q=(1<<y)-1,G=p;;G=p){var k=g[bits16(n,p)&z],J=k>>4;if(p+=k&15,p>A){c&&err(0);break}if(k||err(2),J<256)e[v++]=J;else if(J==256){G=p,g=null;break}else{var X=J-254;if(J>264){var w=J-257,j=fleb[w];X=bits(n,p,(1<<j)-1)+fl[w],p+=j}var Y=h[bits16(n,p)&q],Z=Y>>4;Y||err(3),p+=Y&15;var U=fd[Z];if(Z>3){var j=fdeb[Z];U+=bits16(n,p)&(1<<j)-1,p+=j}if(p>A){c&&err(0);break}l&&f(v+131072);var W=v+X;if(v<U){var ae=s-U,re=Math.min(U,W);for(ae+v<0&&err(3);v<re;++v)e[v]=r[ae+v]}for(;v<W;++v)e[v]=e[v-U]}}t.l=g,t.p=G,t.b=v,t.f=d,g&&(d=1,t.m=m,t.d=h,t.n=y)}while(!d);return v!=e.length&&u?slc(e,0,v):e.subarray(0,v)},et=new u8(0),b2=function(n,t){return n[t]|n[t+1]<<8},b4=function(n,t){return(n[t]|n[t+1]<<8|n[t+2]<<16|n[t+3]<<24)>>>0},b8=function(n,t){return b4(n,t)+b4(n,t+4)*4294967296},zls=function(n,t){return((n[0]&15)!=8||n[0]>>4>7||(n[0]<<8|n[1])%31)&&err(6,"invalid zlib data"),(n[1]>>5&1)==+!t&&err(6,"invalid zlib data: "+(n[1]&32?"need":"unexpected")+" dictionary"),(n[1]>>3&4)+2};function inflateSync(n,t){return inflt(n,{i:2},t&&t.out,t&&t.dictionary)}function unzlibSync(n,t){return inflt(n.subarray(zls(n,t),-4),{i:2},t,t)}var td=typeof TextDecoder!="undefined"&&new TextDecoder,tds=0;try{td.decode(et,{stream:!0}),tds=1}catch(n){}var dutf8=function(n){for(var t="",e=0;;){var r=n[e++],o=(r>127)+(r>223)+(r>239);if(e+o>n.length)return{s:t,r:slc(n,e-1)};o?o==3?(r=((r&15)<<18|(n[e++]&63)<<12|(n[e++]&63)<<6|n[e++]&63)-65536,t+=String.fromCharCode(55296|r>>10,56320|r&1023)):o&1?t+=String.fromCharCode((r&31)<<6|n[e++]&63):t+=String.fromCharCode((r&15)<<12|(n[e++]&63)<<6|n[e++]&63):t+=String.fromCharCode(r)}};function strFromU8(n,t){if(t){for(var e="",r=0;r<n.length;r+=16384)e+=String.fromCharCode.apply(null,n.subarray(r,r+16384));return e}else{if(td)return td.decode(n);var o=dutf8(n),s=o.s,e=o.r;return e.length&&err(8),s}}var slzh=function(n,t){return t+30+b2(n,t+26)+b2(n,t+28)},zh=function(n,t,e){var r=b2(n,t+28),o=strFromU8(n.subarray(t+46,t+46+r),!(b2(n,t+8)&2048)),s=t+46+r,u=b4(n,t+20),l=e&&u==4294967295?z64e(n,s):[u,b4(n,t+24),b4(n,t+42)],c=l[0],f=l[1],d=l[2];return[b2(n,t+10),c,f,o,s+b2(n,t+30)+b2(n,t+32),d]},z64e=function(n,t){for(;b2(n,t)!=1;t+=4+b2(n,t+2));return[b8(n,t+12),b8(n,t+4),b8(n,t+20)]};function unzipSync(n,t){for(var e={},r=n.length-22;b4(n,r)!=101010256;--r)(!r||n.length-r>65558)&&err(13);var o=b2(n,r+8);if(!o)return{};var s=b4(n,r+16),u=s==4294967295||o==65535;if(u){var l=b4(n,r-12);u=b4(n,l)==101075792,u&&(o=b4(n,l+32),s=b4(n,l+48))}for(var c=0;c<o;++c){var f=zh(n,s,u),d=f[0],p=f[1],v=f[2],g=f[3],h=f[4],m=f[5],y=slzh(n,m);s=h,d?d==8?e[g]=inflateSync(n.subarray(y,y+p),{out:new u8(v)}):err(14,"unknown compression type "+d):e[g]=slc(n,y,y+p)}return e}var ROTATE_X_MATRIX=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]);function loadFbx(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o=0;return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"}).then(function(s){return o=s.body.byteLength,s.body})}).then(function(s){var u;return parse$2(s,{materialType:t.materialType,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(u=n.split("?")[1])!==null&&u!==void 0?u:"",fetcher:r})}).then(function(s){var u=s.scene,l=s.unitScale/100,c=new THREE__namespace.Matrix4;return c.makeScale(l,l,l),s.upAxis==="Y"&&c.premultiply(ROTATE_X_MATRIX),u.applyMatrix4(c),{type:"fbx",upAxis:"Z",uri:n,byteLength:o,scene:u,textures:s.textures,dispose:function(){return s.dispose()}}})}function parse$2(n,t){var e;if(isFbxFormatBinary(n))e=new BinaryParser().parse(n);else{var r=convertArrayBufferToString(n);if(!isFbxFormatASCII(r))throw new Error("THREE.FBXLoader: Unknown format.");if(getFbxVersion(r)<7e3)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+getFbxVersion(r));e=new TextParser().parse(r)}return new FBXTreeParser(t).parse(e)}var FBXTreeParser=function(){function n(t){var e,r,o;this.materialType=(e=t.materialType)!==null&&e!==void 0?e:"phong",this.resourcePath=(r=t.resourcePath)!==null&&r!==void 0?r:"",this.search=(o=t.search)!==null&&o!==void 0?o:"",this.fetcher=t.fetcher}return n.prototype.parse=function(t){var e,r,o,s,u,l,c=this.parseConnections(t),f=new THREE__namespace.Group,d=[],p=this.parseImages(t),v=this.parseTextures(t,p,c,d),g=this.parseMaterials(t,v,c),h=this.parseDeformers(t,c),m=new GeometryParser().parse(t,h,c);this.parseScene(t,h,m,g,c,f);var y=(r=(e=t.GlobalSettings.UpAxis)===null||e===void 0?void 0:e.value)!==null&&r!==void 0?r:1,A=(s=(o=t.GlobalSettings.FrontAxis)===null||o===void 0?void 0:o.value)!==null&&s!==void 0?s:2,E=(l=(u=t.GlobalSettings.UnitScaleFactor)===null||u===void 0?void 0:u.value)!==null&&l!==void 0?l:1,b;if(t.GlobalSettings.AmbientColor){var T=t.GlobalSettings.AmbientColor.value,_=T[0],R=T[1],S=T[2];if(_!==0||R!==0||S!==0){var M=new THREE__namespace.Color().setRGB(_,R,S);b=new THREE__namespace.AmbientLight(M,1)}}return Promise.all(d).then(function(B){return{scene:f,textures:B,ambientLight:b,upAxis:["X","Y","Z"][y],frontAxis:["X","Y","Z"][A],unitScale:E,dispose:function(){B.forEach(function(H){return H.dispose()}),g.forEach(function(H){return H.dispose()}),m.forEach(function(H){return H.dispose()})}}})},n.prototype.parseConnections=function(t){var e=new Map;if("Connections"in t){var r=t.Connections.connections;r.forEach(function(o){var s=o[0],u=o[1],l=o[2];e.has(s)||e.set(s,{parents:[],children:[]});var c={ID:u,relationship:l};e.get(s).parents.push(c),e.has(u)||e.set(u,{parents:[],children:[]});var f={ID:s,relationship:l};e.get(u).children.push(f)})}return e},n.prototype.parseImages=function(t){var e={},r={};if("Video"in t.Objects){var o=t.Objects.Video;for(var s in o){var u=o[s],l=parseInt(s);if(e[l]=u.RelativeFilename||u.Filename,"Content"in u){var c=u.Content instanceof ArrayBuffer&&u.Content.byteLength>0,f=typeof u.Content=="string"&&u.Content!=="";if(c||f){var d=this.parseImage(o[s]);r[u.RelativeFilename||u.Filename]=d}}}}for(var l in e){var p=e[l];r[p]!==void 0?e[l]=r[p]:e[l]=e[l].split("\\").pop()}return e},n.prototype.parseImage=function(t){var e=t.Content,r=t.RelativeFilename||t.Filename,o=r.slice(r.lastIndexOf(".")+1).toLowerCase(),s;switch(o){case"bmp":s="image/bmp";break;case"jpg":case"jpeg":s="image/jpeg";break;case"png":s="image/png";break;case"tif":s="image/tiff";break;case"tga":s="image/tga";break;default:return}if(typeof e=="string")return"data:"+s+";base64,"+e;var u=new Uint8Array(e);return window.URL.createObjectURL(new Blob([u],{type:s}))},n.prototype.parseTextures=function(t,e,r,o){var s=new Map;if("Texture"in t.Objects){var u=t.Objects.Texture;for(var l in u){var c=this.parseTexture(u[l],e,r,o);s.set(parseInt(l),c)}}return s},n.prototype.parseTexture=function(t,e,r,o){var s=this.loadTexture(t,e,r,o);s.ID=t.id,s.name=t.attrName;var u=t.WrapModeU,l=t.WrapModeV,c=u!==void 0?u.value:0,f=l!==void 0?l.value:0;if(s.wrapS=c===0?THREE__namespace.RepeatWrapping:THREE__namespace.ClampToEdgeWrapping,s.wrapT=f===0?THREE__namespace.RepeatWrapping:THREE__namespace.ClampToEdgeWrapping,t.Scaling){var d=t.Scaling.value;s.repeat.x=d[0],s.repeat.y=d[1]}if(t.Translation){var d=t.Translation.value;s.offset.x=d[0],s.offset.y=d[1]}return s},n.prototype.loadTexture=function(t,e,r,o){var s=r.get(t.id).children,u="";s!==void 0&&s.length>0&&e[s[0].ID]!==void 0&&(u=e[s[0].ID]),u=pathJoin(this.resourcePath,appendSearch(u,this.search));var l=Object.assign(new THREE__namespace.Texture,{ID:0}),c;c=this.fetcher.loadImage(u,{},void 0,void 0,void 0,createImageBitmapLikeImage()).then(function(d){return d.body});var f=c.then(function(d){return l.image=d,l.needsUpdate=!0,l});return o.push(f),l},n.prototype.parseMaterials=function(t,e,r){var o=new Map;if("Material"in t.Objects){var s=t.Objects.Material;for(var u in s){var l=this.parseMaterial(t,s[u],e,r);l!==null&&o.set(parseInt(u),l)}}return o},n.prototype.parseMaterial=function(t,e,r,o){var s=e.id;e.attrName;var u=e.ShadingModel;if(typeof u=="object"&&(u=u.value),u=u.toLowerCase(),!o.has(s))return null;var l=new PBMMeshMaterial(this.materialType);e.BumpFactor&&(l.bumpScale=e.BumpFactor.value),e.Diffuse?l.color=new THREE__namespace.Color().fromArray(e.Diffuse.value):e.DiffuseColor&&(e.DiffuseColor.type==="Color"||e.DiffuseColor.type==="ColorRGB")&&(l.color=new THREE__namespace.Color().fromArray(e.DiffuseColor.value)),e.DisplacementFactor&&(l.displacementScale=e.DisplacementFactor.value),e.Emissive?l.emissive=new THREE__namespace.Color().fromArray(e.Emissive.value):e.EmissiveColor&&(e.EmissiveColor.type==="Color"||e.EmissiveColor.type==="ColorRGB")&&(l.emissive=new THREE__namespace.Color().fromArray(e.EmissiveColor.value)),e.EmissiveFactor&&(l.emissiveIntensity=parseFloat(e.EmissiveFactor.value));var c=1-(e.TransparencyFactor?parseFloat(e.TransparencyFactor.value):0);(c===1||c===0)&&(c=e.Opacity?parseFloat(e.Opacity.value):null,c===null&&(c=1-(e.TransparentColor?parseFloat(e.TransparentColor.value[0]):0))),l.opacity=c,l.opacity<1&&(l.transparent=!0),e.ReflectionFactor&&(l.reflectivity=e.ReflectionFactor.value),e.Shininess&&(l.shininess=e.Shininess.value),e.Specular?l.specular=new THREE__namespace.Color().fromArray(e.Specular.value):e.SpecularColor&&e.SpecularColor.type==="Color"&&(l.specular=new THREE__namespace.Color().fromArray(e.SpecularColor.value));var f=this;return o.get(s).children.forEach(function(d){var p=d.relationship;switch(p){case"Bump":l.bumpMap=f.getTexture(t,r,d.ID,o);break;case"Maya|TEX_ao_map":l.aoMap=f.getTexture(t,r,d.ID,o);break;case"DiffuseColor":case"Maya|TEX_color_map":l.map=f.getTexture(t,r,d.ID,o),l.map!==void 0&&(l.map.encoding=THREE__namespace.sRGBEncoding);break;case"DisplacementColor":l.displacementMap=f.getTexture(t,r,d.ID,o);break;case"EmissiveColor":l.emissiveMap=f.getTexture(t,r,d.ID,o),l.emissiveMap!==void 0&&(l.emissiveMap.encoding=THREE__namespace.sRGBEncoding);break;case"NormalMap":case"Maya|TEX_normal_map":l.normalMap=f.getTexture(t,r,d.ID,o);break;case"ReflectionColor":l.envMap=f.getTexture(t,r,d.ID,o),l.envMap!==void 0&&(l.envMap.mapping=THREE__namespace.EquirectangularReflectionMapping,l.envMap.encoding=THREE__namespace.sRGBEncoding);break;case"SpecularColor":l.specularMap=f.getTexture(t,r,d.ID,o),l.specularMap!==void 0&&(l.specularMap.encoding=THREE__namespace.sRGBEncoding);break;case"TransparentColor":case"TransparencyFactor":l.alphaMap=f.getTexture(t,r,d.ID,o),l.transparent=!0;break;case"AmbientColor":case"ShininessExponent":case"SpecularFactor":case"VectorDisplacementColor":default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",p);break}}),l.refreshUniforms(),l},n.prototype.getTexture=function(t,e,r,o){return t.Objects.LayeredTexture&&r in t.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),r=o.get(r).children[0].ID),e.get(r)},n.prototype.parseDeformers=function(t,e){var r={},o={};if("Deformer"in t.Objects){var s=t.Objects.Deformer;for(var u in s){var l=s[u],c=e.get(parseInt(u));if(l.attrType==="Skin"){var f=this.parseSkeleton(c,s);f.ID=u,c.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),f.geometryID=c.parents[0].ID,r[u]=f}else if(l.attrType==="BlendShape"){var d={id:u};d.rawTargets=this.parseMorphTargets(c,s,e),d.id=u,c.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),o[u]=d}}}return{skeletons:r,morphTargets:o}},n.prototype.parseSkeleton=function(t,e){var r=[];return t.children.forEach(function(o){var s=e[o.ID];if(s.attrType==="Cluster"){var u={ID:o.ID,indices:[],weights:[],transformLink:new THREE__namespace.Matrix4().fromArray(s.TransformLink.a)};s.Indexes&&(u.indices=s.Indexes.a,u.weights=s.Weights.a),r.push(u)}}),{ID:"",geometryID:0,rawBones:r,bones:[]}},n.prototype.parseMorphTargets=function(t,e,r){for(var o=[],s=0;s<t.children.length;s++){var u=t.children[s],l=e[u.ID],c={name:l.attrName,initialWeight:l.DeformPercent,id:l.id,fullWeights:l.FullWeights.a,geoID:0};if(l.attrType!=="BlendShapeChannel")return;c.geoID=r.get(parseInt(u.ID)).children.filter(function(f){return f.relationship===void 0})[0].ID,o.push(c)}return o},n.prototype.parseScene=function(t,e,r,o,s,u){var l=this.parseModels(t,e.skeletons,r,o,s),c=t.Objects.Model,f=this;l.forEach(function(p){var v=c[p.ID];f.setLookAtProperties(t,p,v,s,u);var g=s.get(p.ID).parents;g.forEach(function(h){var m=l.get(h.ID);m!==void 0&&m.add(p)}),p.parent===null&&u.add(p)}),this.bindSkeleton(t,e.skeletons,r,l,s),u.traverse(function(p){if(p.userData.transformData){p.parent&&(p.userData.transformData.parentMatrix=p.parent.matrix,p.userData.transformData.parentMatrixWorld=p.parent.matrixWorld);var v=generateTransform(p.userData.transformData);p.applyMatrix4(v),p.updateWorldMatrix(!0,!0)}});var d=new AnimationParser().parse(t,s,u);u.children.length===1&&u.children[0]instanceof THREE__namespace.Group&&(u.children[0].animations=d,u=u.children[0]),u.animations=d},n.prototype.parseModels=function(t,e,r,o,s){var u=new Map,l=t.Objects.Model;for(var c in l){var f=parseInt(c),d=l[c],p=s.get(f),v=this.buildSkeleton(p,e,f,d.attrName);if(!v){switch(d.attrType){case"Camera":v=this.createCamera(t,p);break;case"Light":v=this.createLight(t,p);break;case"Mesh":v=this.createMesh(p,r,o);break;case"NurbsCurve":case"LimbNode":case"Root":v=new THREE__namespace.Bone;break;case"Null":default:v=new THREE__namespace.Group;break}v.name=d.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(d.attrName):"",v.userData.originalName=d.attrName,v.ID=f}this.getTransformData(v,d),u.set(f,v)}return u},n.prototype.buildSkeleton=function(t,e,r,o){var s=null;return t.parents.forEach(function(u){var l=function(f){var d=e[f];d.rawBones.forEach(function(p,v){if(p.ID===u.ID){var g=s;s=new THREE__namespace.Bone,s.matrixWorld.copy(p.transformLink),s.name=o?THREE__namespace.PropertyBinding.sanitizeNodeName(o):"",s.userData.originalName=o,s.ID=r,d.bones[v]=s,g!==null&&s.add(g)}})};for(var c in e)l(c)}),s},n.prototype.createCamera=function(t,e){var r,o;if(e.children.forEach(function(g){var h=t.Objects.NodeAttribute[g.ID];h!==void 0&&(o=h)}),o===void 0)r=new THREE__namespace.Object3D;else{var s=0;o.CameraProjectionType!==void 0&&o.CameraProjectionType.value===1&&(s=1);var u=1;o.NearPlane!==void 0&&(u=o.NearPlane.value/1e3);var l=1e3;o.FarPlane!==void 0&&(l=o.FarPlane.value/1e3);var c=window.innerWidth,f=window.innerHeight;o.AspectWidth!==void 0&&o.AspectHeight!==void 0&&(c=o.AspectWidth.value,f=o.AspectHeight.value);var d=c/f,p=45;o.FieldOfView!==void 0&&(p=o.FieldOfView.value);var v=o.FocalLength?o.FocalLength.value:null;switch(s){case 0:r=new THREE__namespace.PerspectiveCamera(p,d,u,l),v!==null&&r.setFocalLength(v);break;case 1:console.warn("THREE.FBXLoader: Orthographic cameras not supported yet."),r=new THREE__namespace.Object3D;break;default:console.warn("THREE.FBXLoader: Unknown camera type "+s+"."),r=new THREE__namespace.Object3D;break}}return r},n.prototype.createLight=function(t,e){var r,o;if(e.children.forEach(function(v){var g=t.Objects.NodeAttribute[v.ID];g!==void 0&&(o=g)}),o===void 0)r=new THREE__namespace.Object3D;else{var s=void 0;o.LightType===void 0?s=0:s=o.LightType.value;var u=new THREE__namespace.Color(16777215);o.Color!==void 0&&(u=new THREE__namespace.Color().fromArray(o.Color.value));var l=o.Intensity===void 0?1:o.Intensity.value/100;o.CastLightOnObject!==void 0&&o.CastLightOnObject.value===0&&(l=0);var c=0;o.FarAttenuationEnd!==void 0&&(o.EnableFarAttenuation!==void 0&&o.EnableFarAttenuation.value===0?c=0:c=o.FarAttenuationEnd.value);var f=1;switch(s){case 0:r=new THREE__namespace.PointLight(u,l,c,f);break;case 1:r=new THREE__namespace.DirectionalLight(u,l);break;case 2:var d=Math.PI/3;o.InnerAngle!==void 0&&(d=THREE__namespace.MathUtils.degToRad(o.InnerAngle.value));var p=0;o.OuterAngle!==void 0&&(p=THREE__namespace.MathUtils.degToRad(o.OuterAngle.value),p=Math.max(p,1)),r=new THREE__namespace.SpotLight(u,l,c,d,p,f);break;default:console.warn("THREE.FBXLoader: Unknown light type "+o.LightType.value+", defaulting to a PointLight."),r=new THREE__namespace.PointLight(u,l);break}o.CastShadows!==void 0&&o.CastShadows.value===1&&(r.castShadow=!0)}return r},n.prototype.createMesh=function(t,e,r){var o,s=null,u=[];if(t.children.forEach(function(c){e.has(c.ID)&&(s=e.get(c.ID)),r.has(c.ID)&&u.push(r.get(c.ID))}),u.length===0){var l=new PBMMeshMaterial(this.materialType);l.color=new THREE__namespace.Color(13421772),u.push(l)}return"color"in s.attributes&&u.forEach(function(c){c.vertexColors=!0}),(!s.groups||s.groups.length===0)&&s.addGroup(0,s.index?s.index.count:s.attributes.position.count,0),s.FBX_Deformer?(o=new PBMSkinnedMesh(s,u),o.normalizeSkinWeights()):o=new PBMMesh(s,u),o},n.prototype.createCurve=function(t,e){var r=t.children.reduce(function(s,u){return e.has(u.ID)&&(s=e.get(u.ID)),s},null),o=new THREE__namespace.LineBasicMaterial({name:"",color:3342591,linewidth:1});return new THREE__namespace.Line(r,o)},n.prototype.getTransformData=function(t,e){var r={};e.InheritType&&(r.inheritType=parseInt(e.InheritType.value)),e.RotationOrder?r.eulerOrder=getEulerOrder(e.RotationOrder.value):r.eulerOrder=getEulerOrder(0),e.Lcl_Translation&&(r.translation=e.Lcl_Translation.value),e.PreRotation&&(r.preRotation=e.PreRotation.value),e.Lcl_Rotation&&(r.rotation=e.Lcl_Rotation.value),e.PostRotation&&(r.postRotation=e.PostRotation.value),e.Lcl_Scaling&&(r.scale=e.Lcl_Scaling.value),e.ScalingOffset&&(r.scalingOffset=e.ScalingOffset.value),e.ScalingPivot&&(r.scalingPivot=e.ScalingPivot.value),e.RotationOffset&&(r.rotationOffset=e.RotationOffset.value),e.RotationPivot&&(r.rotationPivot=e.RotationPivot.value),t.userData.transformData=r},n.prototype.setLookAtProperties=function(t,e,r,o,s){if("LookAtProperty"in r){var u=o.get(e.ID).children;u.forEach(function(l){if(l.relationship==="LookAtProperty"){var c=t.Objects.Model[l.ID];if(c.Lcl_Translation){var f=c.Lcl_Translation.value;"target"in e&&e.target instanceof THREE__namespace.Object3D?(e.target.position.fromArray(f),s.add(e.target)):e.lookAt(new THREE__namespace.Vector3().fromArray(f))}}})}},n.prototype.bindSkeleton=function(t,e,r,o,s){var u=this.parsePoseNodes(t),l=function(f){var d=e[f],p=s.get(parseInt(d.ID)).parents;p.forEach(function(v){if(r.has(v.ID)){var g=v.ID,h=s.get(g);h.parents.forEach(function(m){if(o.has(m.ID)){var y=o.get(m.ID);y instanceof THREE__namespace.SkinnedMesh&&y.bind(new THREE__namespace.Skeleton(d.bones),u[m.ID])}})}})};for(var c in e)l(c)},n.prototype.parsePoseNodes=function(t){var e={};if(t.Objects.Pose){var r=t.Objects.Pose;for(var o in r)if(r[o].attrType==="BindPose"&&r[o].NbPoseNodes>0){var s=r[o].PoseNode;Array.isArray(s)?s.forEach(function(u){e[u.Node]=new THREE__namespace.Matrix4().fromArray(u.Matrix.a)}):e[s.Node]=new THREE__namespace.Matrix4().fromArray(s.Matrix.a)}}return e},n}(),GeometryParser=function(){function n(){this.negativeMaterialIndices=!1}return n.prototype.parse=function(t,e,r){var o=new Map;if("Geometry"in t.Objects){var s=t.Objects.Geometry;for(var u in s){var l=r.get(parseInt(u)),c=this.parseGeometry(t,l,s[u],e);o.set(parseInt(u),c)}}return this.negativeMaterialIndices===!0&&console.warn("THREE.FBXLoader: The FBX file contains invalid (negative) material indices. The asset might not render as expected."),o},n.prototype.parseGeometry=function(t,e,r,o){switch(r.attrType){case"Mesh":return this.parseMeshGeometry(t,e,r,o);case"NurbsCurve":return this.parseNurbsGeometry(r)}},n.prototype.parseMeshGeometry=function(t,e,r,o){var s=o.skeletons,u=[],l=e.parents.map(function(v){return t.Objects.Model[v.ID]});if(l.length!==0){var c=e.children.reduce(function(v,g){return s[g.ID]!==void 0&&(v=s[g.ID]),v},null);e.children.forEach(function(v){o.morphTargets[v.ID]!==void 0&&u.push(o.morphTargets[v.ID])});var f=l[0],d={};f.RotationOrder&&(d.eulerOrder=getEulerOrder(f.RotationOrder.value)),f.InheritType&&(d.inheritType=parseInt(f.InheritType.value)),f.GeometricTranslation&&(d.translation=f.GeometricTranslation.value),f.GeometricRotation&&(d.rotation=f.GeometricRotation.value),f.GeometricScaling&&(d.scale=f.GeometricScaling.value);var p=generateTransform(d);return this.genGeometry(t,r,c,u,p)}},n.prototype.genGeometry=function(t,e,r,o,s){var u=new THREE__namespace.BufferGeometry;e.attrName&&(u.name=e.attrName);var l=this.parseGeoNode(e,r),c=this.genBuffers(l),f=new THREE__namespace.Float32BufferAttribute(c.vertex,3);if(f.applyMatrix4(s),u.setAttribute("position",f),c.colors.length>0&&u.setAttribute("color",new THREE__namespace.Float32BufferAttribute(c.colors,3)),r&&(u.setAttribute("skinIndex",new THREE__namespace.Uint16BufferAttribute(c.weightsIndices,4)),u.setAttribute("skinWeight",new THREE__namespace.Float32BufferAttribute(c.vertexWeights,4)),u.FBX_Deformer=r),c.normal.length>0){var d=new THREE__namespace.Matrix3().getNormalMatrix(s),p=new THREE__namespace.Float32BufferAttribute(c.normal,3);p.applyNormalMatrix(d),u.setAttribute("normal",p)}if(c.uvs.forEach(function(y,A){var E=A===0?"uv":"uv".concat(A+1);u.setAttribute(E,new THREE__namespace.Float32BufferAttribute(c.uvs[A],2))}),l.material&&l.material.mappingType!=="AllSame"){var v=c.materialIndex[0],g=0;if(c.materialIndex.forEach(function(y,A){y!==v&&(u.addGroup(g,A-g,v),v=y,g=A)}),u.groups.length>0){var h=u.groups[u.groups.length-1],m=h.start+h.count;m!==c.materialIndex.length&&u.addGroup(m,c.materialIndex.length-m,v)}u.groups.length===0&&u.addGroup(0,c.materialIndex.length,c.materialIndex[0])}return this.addMorphTargets(t,u,e,o,s),u},n.prototype.parseGeoNode=function(t,e){var r={};if(r.vertexPositions=t.Vertices!==void 0?t.Vertices.a:[],r.vertexIndices=t.PolygonVertexIndex!==void 0?t.PolygonVertexIndex.a:[],t.LayerElementColor&&(r.color=this.parseVertexColors(t.LayerElementColor[0])),t.LayerElementMaterial&&(r.material=this.parseMaterialIndices(t.LayerElementMaterial[0])),t.LayerElementNormal&&(r.normal=this.parseNormals(t.LayerElementNormal[0])),t.LayerElementUV){r.uv=[];for(var o=0;t.LayerElementUV[o];)t.LayerElementUV[o].UV&&r.uv.push(this.parseUVs(t.LayerElementUV[o])),o++}return r.weightTable={},e!==null&&(r.skeleton=e,e.rawBones.forEach(function(s,u){s.indices.forEach(function(l,c){r.weightTable[l]===void 0&&(r.weightTable[l]=[]),r.weightTable[l].push({id:u,weight:s.weights[c]})})})),r},n.prototype.genBuffers=function(t){var e={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]},r=0,o=0,s=!1,u=[],l=[],c=[],f=[],d=[],p=[],v=this;return t.vertexIndices.forEach(function(g,h){var m=0,y=!1;g<0&&(g=g^-1,y=!0);var A=[],E=[];if(u.push(g*3,g*3+1,g*3+2),t.color){var b=getData(h,r,g,t.color);c.push(b[0],b[1],b[2])}if(t.skeleton){if(t.weightTable[g]!==void 0&&t.weightTable[g].forEach(function(S){E.push(S.weight),A.push(S.id)}),E.length>4){s||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),s=!0);var T=[0,0,0,0],_=[0,0,0,0];E.forEach(function(S,M){var B=S,H=A[M];_.forEach(function(w,C,F){if(B>w){F[C]=B,B=w;var I=T[C];T[C]=H,H=I}})}),A=T,E=_}for(;E.length<4;)E.push(0),A.push(0);for(var R=0;R<4;++R)d.push(E[R]),p.push(A[R])}if(t.normal){var b=getData(h,r,g,t.normal);l.push(b[0],b[1],b[2])}t.material&&t.material.mappingType!=="AllSame"&&(m=getData(h,r,g,t.material)[0],m<0&&(v.negativeMaterialIndices=!0,m=0)),t.uv&&t.uv.forEach(function(S,M){var B=getData(h,r,g,S);f[M]===void 0&&(f[M]=[]),f[M].push(B[0]),f[M].push(B[1])}),o++,y&&(v.genFace(e,t,u,m,l,c,f,d,p,o),r++,o=0,u=[],l=[],c=[],f=[],d=[],p=[])}),e},n.prototype.getNormalNewell=function(t){for(var e=new THREE__namespace.Vector3(0,0,0),r=0;r<t.length;r++){var o=t[r],s=t[(r+1)%t.length];e.x+=(o.y-s.y)*(o.z+s.z),e.y+=(o.z-s.z)*(o.x+s.x),e.z+=(o.x-s.x)*(o.y+s.y)}return e.normalize(),e},n.prototype.getNormalTangentAndBitangent=function(t){var e=this.getNormalNewell(t),r=Math.abs(e.z)>.5?new THREE__namespace.Vector3(0,1,0):new THREE__namespace.Vector3(0,0,1),o=r.cross(e).normalize(),s=e.clone().cross(o).normalize();return{normal:e,tangent:o,bitangent:s}},n.prototype.flattenVertex=function(t,e,r){return new THREE__namespace.Vector2(t.dot(e),t.dot(r))},n.prototype.genFace=function(t,e,r,o,s,u,l,c,f,d){var p;if(d>3){for(var v=[],g=e.baseVertexPositions||e.vertexPositions,h=0;h<r.length;h+=3)v.push(new THREE__namespace.Vector3(g[r[h]],g[r[h+1]],g[r[h+2]]));for(var m=this.getNormalTangentAndBitangent(v),y=m.tangent,A=m.bitangent,E=[],b=0,T=v;b<T.length;b++){var _=T[b];E.push(this.flattenVertex(_,y,A))}p=THREE__namespace.ShapeUtils.triangulateShape(E,[])}else p=[[0,1,2]];for(var R=function(F,I,L){t.vertex.push(e.vertexPositions[r[F*3]]),t.vertex.push(e.vertexPositions[r[F*3+1]]),t.vertex.push(e.vertexPositions[r[F*3+2]]),t.vertex.push(e.vertexPositions[r[I*3]]),t.vertex.push(e.vertexPositions[r[I*3+1]]),t.vertex.push(e.vertexPositions[r[I*3+2]]),t.vertex.push(e.vertexPositions[r[L*3]]),t.vertex.push(e.vertexPositions[r[L*3+1]]),t.vertex.push(e.vertexPositions[r[L*3+2]]),e.skeleton&&(t.vertexWeights.push(c[F*4]),t.vertexWeights.push(c[F*4+1]),t.vertexWeights.push(c[F*4+2]),t.vertexWeights.push(c[F*4+3]),t.vertexWeights.push(c[I*4]),t.vertexWeights.push(c[I*4+1]),t.vertexWeights.push(c[I*4+2]),t.vertexWeights.push(c[I*4+3]),t.vertexWeights.push(c[L*4]),t.vertexWeights.push(c[L*4+1]),t.vertexWeights.push(c[L*4+2]),t.vertexWeights.push(c[L*4+3]),t.weightsIndices.push(f[F*4]),t.weightsIndices.push(f[F*4+1]),t.weightsIndices.push(f[F*4+2]),t.weightsIndices.push(f[F*4+3]),t.weightsIndices.push(f[I*4]),t.weightsIndices.push(f[I*4+1]),t.weightsIndices.push(f[I*4+2]),t.weightsIndices.push(f[I*4+3]),t.weightsIndices.push(f[L*4]),t.weightsIndices.push(f[L*4+1]),t.weightsIndices.push(f[L*4+2]),t.weightsIndices.push(f[L*4+3])),e.color&&(t.colors.push(u[F*3]),t.colors.push(u[F*3+1]),t.colors.push(u[F*3+2]),t.colors.push(u[I*3]),t.colors.push(u[I*3+1]),t.colors.push(u[I*3+2]),t.colors.push(u[L*3]),t.colors.push(u[L*3+1]),t.colors.push(u[L*3+2])),e.material&&e.material.mappingType!=="AllSame"&&(t.materialIndex.push(o),t.materialIndex.push(o),t.materialIndex.push(o)),e.normal&&(t.normal.push(s[F*3]),t.normal.push(s[F*3+1]),t.normal.push(s[F*3+2]),t.normal.push(s[I*3]),t.normal.push(s[I*3+1]),t.normal.push(s[I*3+2]),t.normal.push(s[L*3]),t.normal.push(s[L*3+1]),t.normal.push(s[L*3+2])),e.uv&&e.uv.forEach(function(k,N){t.uvs[N]===void 0&&(t.uvs[N]=[]),t.uvs[N].push(l[N][F*2]),t.uvs[N].push(l[N][F*2+1]),t.uvs[N].push(l[N][I*2]),t.uvs[N].push(l[N][I*2+1]),t.uvs[N].push(l[N][L*2]),t.uvs[N].push(l[N][L*2+1])})},S=0,M=p;S<M.length;S++){var B=M[S],H=B[0],w=B[1],C=B[2];R(H,w,C)}},n.prototype.addMorphTargets=function(t,e,r,o,s){if(o.length!==0){e.morphTargetsRelative=!0,e.morphAttributes.position=[];var u=this;o.forEach(function(l){l.rawTargets.forEach(function(c){var f=t.Objects.Geometry[c.geoID];f!==void 0&&u.genMorphGeometry(e,r,f,s,c.name)})})}},n.prototype.genMorphGeometry=function(t,e,r,o,s){for(var u=e.Vertices!==void 0?e.Vertices.a:[],l=e.PolygonVertexIndex!==void 0?e.PolygonVertexIndex.a:[],c=r.Vertices!==void 0?r.Vertices.a:[],f=r.Indexes?r.Indexes.a:[],d=t.attributes.position.count*3,p=new Float32Array(d),v=0;v<f.length;v++){var g=f[v]*3;p[g]=c[v*3],p[g+1]=c[v*3+1],p[g+2]=c[v*3+2]}var h={vertexIndices:l,vertexPositions:p,baseVertexPositions:u},m=this.genBuffers(h),y=new THREE__namespace.Float32BufferAttribute(m.vertex,3);y.name=s||r.attrName,y.applyMatrix4(o),t.morphAttributes.position.push(y)},n.prototype.parseNormals=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.Normals.a,s=[];return r==="IndexToDirect"&&(t.NormalIndex?s=t.NormalIndex.a:t.NormalsIndex&&(s=t.NormalsIndex.a)),{dataSize:3,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseUVs=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.UV.a,s=[];return r==="IndexToDirect"&&(s=t.UVIndex.a),{dataSize:2,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseVertexColors=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType,o=t.Colors.a,s=[];r==="IndexToDirect"&&(s=t.ColorIndex.a);for(var u=0,l=new THREE__namespace.Color;u<o.length;u+=4)l.fromArray(o,u),l.toArray(o,u);return{dataSize:4,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseMaterialIndices=function(t){var e=t.MappingInformationType,r=t.ReferenceInformationType;if(e==="NoMappingInformation")return{dataSize:1,buffer:[0],indices:[0],mappingType:"AllSame",referenceType:r};for(var o=t.Materials.a,s=[],u=0;u<o.length;++u)s.push(u);return{dataSize:1,buffer:o,indices:s,mappingType:e,referenceType:r}},n.prototype.parseNurbsGeometry=function(t){var e=parseInt(t.Order);if(isNaN(e))return console.error("THREE.FBXLoader: Invalid Order %s given for geometry ID: %s",t.Order,t.id),new THREE__namespace.BufferGeometry;for(var r=e-1,o=t.KnotVector.a,s=[],u=t.Points.a,l=0,c=u.length;l<c;l+=4)s.push(new THREE__namespace.Vector4().fromArray(u,l));var f,d;if(t.Form==="Closed")s.push(s[0]);else if(t.Form==="Periodic"){f=r,d=o.length-1-f;for(var l=0;l<r;++l)s.push(s[l])}var p=new NURBSCurve(r,o,s,f,d),v=p.getPoints(s.length*12);return new THREE__namespace.BufferGeometry().setFromPoints(v)},n}(),AnimationParser=function(){function n(){}return n.prototype.parse=function(t,e,r){var o=[],s=this.parseClips(t,e,r);if(s!==void 0)for(var u in s){var l=s[u],c=this.addClip(l,r);o.push(c)}return o},n.prototype.parseClips=function(t,e,r){if(t.Objects.AnimationCurve!==void 0){var o=this.parseAnimationCurveNodes(t);this.parseAnimationCurves(t,o,e);var s=this.parseAnimationLayers(t,o,e,r),u=this.parseAnimStacks(t,s,e);return u}},n.prototype.parseAnimationCurveNodes=function(t){var e=t.Objects.AnimationCurveNode,r=new Map;for(var o in e){var s=e[o];if(s.attrName.match(/S|R|T|DeformPercent/)!==null){var u={id:s.id,attr:s.attrName,curves:{}};r.set(u.id,u)}}return r},n.prototype.parseAnimationCurves=function(t,e,r){var o=t.Objects.AnimationCurve;for(var s in o){var u={id:o[s].id,times:o[s].KeyTime.a.map(convertFBXTimeToSeconds),values:o[s].KeyValueFloat.a},l=r.get(u.id);if(l!==void 0){var c=l.parents[0].ID,f=l.parents[0].relationship,d=e.get(c);d&&(f.match(/X/)?d.curves.x=u:f.match(/Y/)?d.curves.y=u:f.match(/Z/)?d.curves.z=u:f.match(/DeformPercent/)&&e.has(c)&&(d.curves.morph=u))}}},n.prototype.parseAnimationLayers=function(t,e,r,o){var s=t.Objects.AnimationLayer,u=new Map,l=function(f){var d=[],p=r.get(parseInt(f));if(p!==void 0){var v=p.children;v.forEach(function(g,h){if(e.has(g.ID)){var m=e.get(g.ID);if(m.curves.x!==void 0||m.curves.y!==void 0||m.curves.z!==void 0){if(d[h]===void 0){var y=r.get(g.ID).parents.filter(function(M){return M.relationship!==void 0})[0].ID;if(y!==void 0){var A=t.Objects.Model[y.toString()];if(A===void 0){console.warn("THREE.FBXLoader: Encountered a unused curve.",g);return}var E={modelName:A.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(A.attrName):"",ID:A.id,initialPosition:[0,0,0],initialRotation:[0,0,0],initialScale:[1,1,1],transform:new THREE__namespace.Matrix4,eulerOrder:"",preRotation:[0,0,0],postRotation:[0,0,0]};o.traverse(function(M){M.ID===A.id&&(E.transform=M.matrix,M.userData.transformData&&(E.eulerOrder=M.userData.transformData.eulerOrder))}),E.transform||(E.transform=new THREE__namespace.Matrix4),A.PreRotation&&(E.preRotation=A.PreRotation.value),A.PostRotation&&(E.postRotation=A.PostRotation.value),d[h]=E}}d[h]&&(d[h][m.attr]=m)}else if(m.curves.morph!==void 0){if(d[h]===void 0){var b=r.get(g.ID).parents.filter(function(B){return B.relationship!==void 0})[0].ID,T=r.get(b).parents[0].ID,_=r.get(T).parents[0].ID,y=r.get(_).parents[0].ID,R=t.Objects.Model[y],S={modelName:R.attrName?THREE__namespace.PropertyBinding.sanitizeNodeName(R.attrName):"",morphName:t.Objects.Deformer[b].attrName};d[h]=S}d[h][m.attr]=m}}}),u.set(parseInt(f),d)}};for(var c in s)l(c);return u},n.prototype.parseAnimStacks=function(t,e,r){var o=t.Objects.AnimationStack,s={};for(var u in o){var l=r.get(parseInt(u)).children;l.length>1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");var c=e.get(l[0].ID);s[u]={name:o[u].attrName,layer:c}}return s},n.prototype.addClip=function(t,e){var r=[],o=this;return t.layer.forEach(function(s){r=r.concat(o.generateTracks(s,e))}),new THREE__namespace.AnimationClip(t.name,-1,r)},n.prototype.generateTracks=function(t,e){var r=[],o=new THREE__namespace.Vector3,s=new THREE__namespace.Vector3;t.transform&&t.transform.decompose(o,new THREE__namespace.Quaternion,s);var u=o.toArray(),l=s.toArray();if(t.T!==void 0&&Object.keys(t.T.curves).length>0){var c=this.generateVectorTrack(t.modelName,t.T.curves,u,"position");c!==void 0&&r.push(c)}if(t.R!==void 0&&Object.keys(t.R.curves).length>0){var f=this.generateRotationTrack(t.modelName,t.R.curves,t.preRotation,t.postRotation,t.eulerOrder);f!==void 0&&r.push(f)}if(t.S!==void 0&&Object.keys(t.S.curves).length>0){var d=this.generateVectorTrack(t.modelName,t.S.curves,l,"scale");d!==void 0&&r.push(d)}if(t.DeformPercent!==void 0){var p=this.generateMorphTrack(t,e);p!==void 0&&r.push(p)}return r},n.prototype.generateVectorTrack=function(t,e,r,o){var s=this.getTimesForAllAxes(e),u=this.getKeyframeTrackValues(s,e,r);return new THREE__namespace.VectorKeyframeTrack(t+"."+o,s,u)},n.prototype.generateRotationTrack=function(t,e,r,o,s){var u,l;if(e.x!==void 0&&e.y!==void 0&&e.z!==void 0){var c=this.interpolateRotations(e.x,e.y,e.z,s);u=c[0],l=c[1]}var f=getEulerOrder(0),d=new THREE__namespace.Quaternion,p=new THREE__namespace.Quaternion;r!==void 0&&(r=r.map(THREE__namespace.MathUtils.degToRad),r.push(f),d.setFromEuler(new THREE__namespace.Euler().fromArray(r))),o!==void 0&&(o=o.map(THREE__namespace.MathUtils.degToRad),o.push(f),p.setFromEuler(new THREE__namespace.Euler().fromArray(o)),p.inverse());var v=new THREE__namespace.Quaternion,g=new THREE__namespace.Euler,h=[];if(!l||!u)return new THREE__namespace.QuaternionKeyframeTrack(t+".quaternion",[0],[0]);for(var m=0;m<l.length;m+=3){if(g.set(l[m],l[m+1],l[m+2],s),v.setFromEuler(g),v.premultiply(d),v.multiply(p),m>2){var y=new THREE__namespace.Quaternion().fromArray(h,(m-3)/3*4);y.dot(v)<0&&v.set(-v.x,-v.y,-v.z,-v.w)}v.toArray(h,m/3*4)}return new THREE__namespace.QuaternionKeyframeTrack(t+".quaternion",u,h)},n.prototype.generateMorphTrack=function(t,e){var r=t.DeformPercent.curves.morph,o=r.values.map(function(u){return u/100}),s=e.getObjectByName(t.modelName).morphTargetDictionary[t.morphName];return new THREE__namespace.NumberKeyframeTrack(t.modelName+".morphTargetInfluences["+s+"]",r.times,o)},n.prototype.getTimesForAllAxes=function(t){var e=[];if(t.x!==void 0&&(e=e.concat(t.x.times)),t.y!==void 0&&(e=e.concat(t.y.times)),t.z!==void 0&&(e=e.concat(t.z.times)),e=e.sort(function(l,c){return l-c}),e.length>1){for(var r=1,o=e[0],s=1;s<e.length;s++){var u=e[s];u!==o&&(e[r]=u,o=u,r++)}e=e.slice(0,r)}return e},n.prototype.getKeyframeTrackValues=function(t,e,r){var o=r,s=[],u=-1,l=-1,c=-1;return t.forEach(function(f){if(e.x&&(u=e.x.times.indexOf(f)),e.y&&(l=e.y.times.indexOf(f)),e.z&&(c=e.z.times.indexOf(f)),u!==-1){var d=e.x.values[u];s.push(d),o[0]=d}else s.push(o[0]);if(l!==-1){var p=e.y.values[l];s.push(p),o[1]=p}else s.push(o[1]);if(c!==-1){var v=e.z.values[c];s.push(v),o[2]=v}else s.push(o[2])}),s},n.prototype.interpolateRotations=function(t,e,r,o){var s=[],u=[];s.push(t.times[0]),u.push(THREE__namespace.MathUtils.degToRad(t.values[0])),u.push(THREE__namespace.MathUtils.degToRad(e.values[0])),u.push(THREE__namespace.MathUtils.degToRad(r.values[0]));for(var l=1;l<t.values.length;l++){var c=[t.values[l-1],e.values[l-1],r.values[l-1]];if(!(isNaN(c[0])||isNaN(c[1])||isNaN(c[2]))){var f=c.map(THREE__namespace.MathUtils.degToRad),d=[t.values[l],e.values[l],r.values[l]];if(!(isNaN(d[0])||isNaN(d[1])||isNaN(d[2]))){d.map(THREE__namespace.MathUtils.degToRad);var p=[d[0]-c[0],d[1]-c[1],d[2]-c[2]],v=[Math.abs(p[0]),Math.abs(p[1]),Math.abs(p[2])];if(v[0]>=180||v[1]>=180||v[2]>=180){var g=Math.max.apply(Math,v),h=g/180,m=new THREE__namespace.Euler(f[0],f[1],f[2],o),y=new THREE__namespace.Euler(f[0],f[1],f[2],o),A=new THREE__namespace.Quaternion().setFromEuler(m),E=new THREE__namespace.Quaternion().setFromEuler(y);A.dot(E)&&E.set(-E.x,-E.y,-E.z,-E.w);for(var b=t.times[l-1],T=t.times[l]-b,_=new THREE__namespace.Quaternion,R=new THREE__namespace.Euler,S=0;S<1;S+=1/h)_.copy(A.clone().slerp(E.clone(),S)),s.push(b+S*T),R.setFromQuaternion(_,o),u.push(R.x),u.push(R.y),u.push(R.z)}else s.push(t.times[l]),u.push(THREE__namespace.MathUtils.degToRad(t.values[l])),u.push(THREE__namespace.MathUtils.degToRad(e.values[l])),u.push(THREE__namespace.MathUtils.degToRad(r.values[l]))}}}return[s,u]},n}(),TextParser=function(){function n(){this.allNodes=new FBXTree,this.nodeStack=[],this.currentIndent=0,this.currentPropName=""}return n.prototype.getPrevNode=function(){return this.nodeStack[this.currentIndent-2]},n.prototype.getCurrentNode=function(){return this.nodeStack[this.currentIndent-1]},n.prototype.getCurrentProp=function(){return this.currentProp},n.prototype.pushStack=function(t){this.nodeStack.push(t),this.currentIndent+=1},n.prototype.popStack=function(){this.nodeStack.pop(),this.currentIndent-=1},n.prototype.setCurrentProp=function(t,e){this.currentProp=t,this.currentPropName=e},n.prototype.parse=function(t){this.currentIndent=0,this.allNodes=new FBXTree,this.nodeStack=[],this.currentProp=[],this.currentPropName="";var e=this,r=t.split(/[\r\n]+/);return r.forEach(function(o,s){var u=o.match(/^[\s\t]*;/),l=o.match(/^[\s\t]*$/);if(!(u||l)){var c=o.match("^\\t{"+e.currentIndent+"}(\\w+):(.*){"),f=o.match("^\\t{"+e.currentIndent+"}(\\w+):[\\s\\t\\r\\n](.*)"),d=o.match("^\\t{"+(e.currentIndent-1)+"}}");c?e.parseNodeBegin(o,c):f?e.parseNodeProperty(o,f,r[++s]):d?e.popStack():o.match(/^[^\s\t}]/)&&e.parseNodePropertyContinued(o)}}),this.allNodes},n.prototype.parseNodeBegin=function(t,e){var r=e[1].trim().replace(/^"/,"").replace(/"$/,""),o=e[2].split(",").map(function(c){return c.trim().replace(/^"/,"").replace(/"$/,"")}),s={name:r},u=this.parseNodeAttr(o),l=this.getCurrentNode();this.currentIndent===0?this.allNodes.add(r,s):r in l?(r==="PoseNode"?l.PoseNode.push(s):l[r].id!==void 0&&(l[r]={},l[r][l[r].id]=l[r]),u.id!==""&&(l[r][u.id]=s)):typeof u.id=="number"?(l[r]={},l[r][u.id]=s):r!=="Properties70"&&(r==="PoseNode"?l[r]=[s]:l[r]=s),typeof u.id=="number"&&(s.id=u.id),u.name!==""&&(s.attrName=u.name),u.type!==""&&(s.attrType=u.type),this.pushStack(s)},n.prototype.parseNodeAttr=function(t){var e=t[0];t[0]!==""&&(e=parseInt(t[0]),isNaN(e)&&(e=t[0]));var r="",o="";return t.length>1&&(r=t[1].replace(/^(\w+)::/,""),o=t[2]),{id:e,name:r,type:o}},n.prototype.parseNodeProperty=function(t,e,r){var o=e[1].replace(/^"/,"").replace(/"$/,"").trim(),s=e[2].replace(/^"/,"").replace(/"$/,"").trim();o==="Content"&&s===","&&(s=r.replace(/"/g,"").replace(/,$/,"").trim());var u=this.getCurrentNode(),l=u.name;if(l==="Properties70"){this.parseNodeSpecialProperty(t,o,s);return}if(o==="C"){var c=s.split(",").slice(1),f=parseInt(c[0]),d=parseInt(c[1]),p=s.split(",").slice(3);p=p.map(function(v){return v.trim().replace(/^"/,"")}),o="connections",s=[f,d],append(s,p),u[o]===void 0&&(u[o]=[])}o==="Node"&&(u.id=s),o in u&&Array.isArray(u[o])?u[o].push(s):o!=="a"?u[o]=s:u.a=s,this.setCurrentProp(u,o),o==="a"&&s.slice(-1)!==","&&(u.a=parseNumberArray(s))},n.prototype.parseNodePropertyContinued=function(t){var e=this.getCurrentNode();e.a+=t,t.slice(-1)!==","&&(e.a=parseNumberArray(e.a))},n.prototype.parseNodeSpecialProperty=function(t,e,r){var o=r.split('",').map(function(d){return d.trim().replace(/^\"/,"").replace(/\s/,"_")}),s=o[0],u=o[1],l=o[2],c=o[3],f=o[4];switch(u){case"int":case"enum":case"bool":case"ULongLong":case"double":case"Number":case"FieldOfView":f=parseFloat(f);break;case"Color":case"ColorRGB":case"Vector3D":case"Lcl_Translation":case"Lcl_Rotation":case"Lcl_Scaling":f=parseNumberArray(f);break}this.getPrevNode()[s]={type:u,type2:l,flag:c,value:f},this.setCurrentProp(this.getPrevNode(),s)},n}(),BinaryParser=function(){function n(){}return n.prototype.parse=function(t){var e=new BinaryReader(t);e.skip(23);var r=e.getUint32();if(r<6400)throw new Error("THREE.FBXLoader: FBX version not supported, FileVersion: "+r);for(var o=new FBXTree;!this.endOfContent(e);){var s=this.parseNode(e,r);s!==null&&o.add(s.name,s)}return o},n.prototype.endOfContent=function(t){return t.size()%16===0?(t.getOffset()+160+16&-16)>=t.size():t.getOffset()+160+16>=t.size()},n.prototype.parseNode=function(t,e){var r={},o=e>=7500?t.getUint64():t.getUint32(),s=e>=7500?t.getUint64():t.getUint32();e>=7500?t.getUint64():t.getUint32();var u=t.getUint8(),l=t.getString(u);if(o===0)return null;for(var c=[],f=0;f<s;f++)c.push(this.parseProperty(t));var d=c.length>0?c[0]:"",p=c.length>1?c[1]:"",v=c.length>2?c[2]:"";for(r.singleProperty=s===1&&t.getOffset()===o;o>t.getOffset();){var g=this.parseNode(t,e);g!==null&&this.parseSubNode(l,r,g)}return r.propertyList=c,typeof d=="number"&&(r.id=d),p!==""&&(r.attrName=p),v!==""&&(r.attrType=v),l!==""&&(r.name=l),r},n.prototype.parseSubNode=function(t,e,r){if(r.singleProperty===!0){var o=r.propertyList[0];Array.isArray(o)?(e[r.name]=r,r.a=o):e[r.name]=o}else if(t==="Connections"&&r.name==="C"){var s=[];r.propertyList.forEach(function(v,g){g!==0&&s.push(v)}),e.connections===void 0&&(e.connections=[]),e.connections.push(s)}else if(r.name==="Properties70"){var u=Object.keys(r);u.forEach(function(v){e[v]=r[v]})}else if(t==="Properties70"&&r.name==="P"){var l=r.propertyList[0],c=r.propertyList[1],f=r.propertyList[2],d=r.propertyList[3],p=void 0;l.indexOf("Lcl ")===0&&(l=l.replace("Lcl ","Lcl_")),c.indexOf("Lcl ")===0&&(c=c.replace("Lcl ","Lcl_")),c==="Color"||c==="ColorRGB"||c==="Vector"||c==="Vector3D"||c.indexOf("Lcl_")===0?p=[r.propertyList[4],r.propertyList[5],r.propertyList[6]]:p=r.propertyList[4],e[l]={type:c,type2:f,flag:d,value:p}}else e[r.name]===void 0?typeof r.id=="number"?(e[r.name]={},e[r.name][r.id]=r):e[r.name]=r:r.name==="PoseNode"?(Array.isArray(e[r.name])||(e[r.name]=[e[r.name]]),e[r.name].push(r)):e[r.name][r.id]===void 0&&(e[r.name][r.id]=r)},n.prototype.parseProperty=function(t){var e=t.getString(1),r;switch(e){case"C":return t.getBoolean();case"D":return t.getFloat64();case"F":return t.getFloat32();case"I":return t.getInt32();case"L":return t.getInt64();case"R":return r=t.getUint32(),t.getArrayBuffer(r);case"S":return r=t.getUint32(),t.getString(r);case"Y":return t.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":var o=t.getUint32(),s=t.getUint32(),u=t.getUint32();if(s===0)switch(e){case"b":case"c":return t.getBooleanArray(o);case"d":return t.getFloat64Array(o);case"f":return t.getFloat32Array(o);case"i":return t.getInt32Array(o);case"l":return t.getInt64Array(o)}var l=unzlibSync(new Uint8Array(t.getArrayBuffer(u))),c=new BinaryReader(l.buffer);switch(e){case"b":case"c":return c.getBooleanArray(o);case"d":return c.getFloat64Array(o);case"f":return c.getFloat32Array(o);case"i":return c.getInt32Array(o);case"l":return c.getInt64Array(o)}break;default:throw new Error("THREE.FBXLoader: Unknown property type "+e)}},n}(),BinaryReader=function(){function n(t,e){this.dv=new DataView(t),this.offset=0,this.littleEndian=e!==void 0?e:!0,this._textDecoder=new TextDecoder}return n.prototype.getOffset=function(){return this.offset},n.prototype.size=function(){return this.dv.buffer.byteLength},n.prototype.skip=function(t){this.offset+=t},n.prototype.getBoolean=function(){return(this.getUint8()&1)===1},n.prototype.getBooleanArray=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getBoolean());return e},n.prototype.getUint8=function(){var t=this.dv.getUint8(this.offset);return this.offset+=1,t},n.prototype.getInt16=function(){var t=this.dv.getInt16(this.offset,this.littleEndian);return this.offset+=2,t},n.prototype.getInt32=function(){var t=this.dv.getInt32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getInt32Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getInt32());return e},n.prototype.getUint32=function(){var t=this.dv.getUint32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getInt64=function(){var t,e;return this.littleEndian?(t=this.getUint32(),e=this.getUint32()):(e=this.getUint32(),t=this.getUint32()),e&2147483648?(e=~e&4294967295,t=~t&4294967295,t===4294967295&&(e=e+1&4294967295),t=t+1&4294967295,-(e*4294967296+t)):e*4294967296+t},n.prototype.getInt64Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getInt64());return e},n.prototype.getUint64=function(){var t,e;return this.littleEndian?(t=this.getUint32(),e=this.getUint32()):(e=this.getUint32(),t=this.getUint32()),e*4294967296+t},n.prototype.getFloat32=function(){var t=this.dv.getFloat32(this.offset,this.littleEndian);return this.offset+=4,t},n.prototype.getFloat32Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getFloat32());return e},n.prototype.getFloat64=function(){var t=this.dv.getFloat64(this.offset,this.littleEndian);return this.offset+=8,t},n.prototype.getFloat64Array=function(t){for(var e=[],r=0;r<t;r++)e.push(this.getFloat64());return e},n.prototype.getArrayBuffer=function(t){var e=this.dv.buffer.slice(this.offset,this.offset+t);return this.offset+=t,e},n.prototype.getString=function(t){var e=this.offset,r=new Uint8Array(this.dv.buffer,e,t);this.skip(t);var o=r.indexOf(0);return o>=0&&(r=new Uint8Array(this.dv.buffer,e,o)),this._textDecoder.decode(r)},n}(),FBXTree=function(){function n(){this.Connections={connections:[]},this.Objects={Model:{},NodeAttribute:{},Geometry:{}},this.GlobalSettings={}}return n.prototype.add=function(t,e){this[t]=e},n}();function isFbxFormatBinary(n){var t="Kaydara FBX Binary \0";return n.byteLength>=t.length&&t===convertArrayBufferToString(n,0,t.length)}function isFbxFormatASCII(n){var t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"],e=0;function r(u){var l=n[u-1];return n=n.slice(e+u),e++,l}for(var o=0;o<t.length;++o){var s=r(1);if(s===t[o])return!1}return!0}function getFbxVersion(n){var t=/FBXVersion: (\d+)/,e=n.match(t);if(e){var r=parseInt(e[1]);return r}throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.")}function convertFBXTimeToSeconds(n){return n/46186158e3}var dataArray=[];function getData(n,t,e,r){var o;switch(r.mappingType){case"ByPolygonVertex":o=n;break;case"ByPolygon":o=t;break;case"ByVertice":o=e;break;case"AllSame":o=r.indices[0];break;default:console.warn("THREE.FBXLoader: unknown attribute mapping type "+r.mappingType),o=0}r.referenceType==="IndexToDirect"&&(o=r.indices[o]);var s=o*r.dataSize,u=s+r.dataSize;return slice(dataArray,r.buffer,s,u)}var tempEuler=new THREE__namespace.Euler,tempVec=new THREE__namespace.Vector3;function generateTransform(n){var t=new THREE__namespace.Matrix4,e=new THREE__namespace.Matrix4,r=new THREE__namespace.Matrix4,o=new THREE__namespace.Matrix4,s=new THREE__namespace.Matrix4,u=new THREE__namespace.Matrix4,l=new THREE__namespace.Matrix4,c=new THREE__namespace.Matrix4,f=new THREE__namespace.Matrix4,d=new THREE__namespace.Matrix4,p=new THREE__namespace.Matrix4,v=new THREE__namespace.Matrix4,g=n.inheritType?n.inheritType:0;n.translation&&t.setPosition(tempVec.fromArray(n.translation));var h=getEulerOrder(0);if(n.preRotation){var m=n.preRotation.map(THREE__namespace.MathUtils.degToRad);m.push(h),e.makeRotationFromEuler(tempEuler.fromArray(m))}if(n.rotation){var m=n.rotation.map(THREE__namespace.MathUtils.degToRad);m.push(n.eulerOrder||h),r.makeRotationFromEuler(tempEuler.fromArray(m))}if(n.postRotation){var m=n.postRotation.map(THREE__namespace.MathUtils.degToRad);m.push(h),o.makeRotationFromEuler(tempEuler.fromArray(m)),o.copy(new THREE__namespace.Matrix4().getInverse(o))}n.scale&&s.scale(tempVec.fromArray(n.scale)),n.scalingOffset&&l.setPosition(tempVec.fromArray(n.scalingOffset)),n.scalingPivot&&u.setPosition(tempVec.fromArray(n.scalingPivot)),n.rotationOffset&&c.setPosition(tempVec.fromArray(n.rotationOffset)),n.rotationPivot&&f.setPosition(tempVec.fromArray(n.rotationPivot)),n.parentMatrixWorld&&(p.copy(n.parentMatrix),d.copy(n.parentMatrixWorld));var y=e.clone().multiply(r).multiply(o),A=new THREE__namespace.Matrix4;A.extractRotation(d);var E=new THREE__namespace.Matrix4;E.copyPosition(d);var b=new THREE__namespace.Matrix4().getInverse(E).multiply(d),T=new THREE__namespace.Matrix4().getInverse(A).multiply(b),_=s,R=new THREE__namespace.Matrix4;if(g===0)R.copy(A).multiply(y).multiply(T).multiply(_);else if(g===1)R.copy(A).multiply(T).multiply(y).multiply(_);else{var S=new THREE__namespace.Matrix4().scale(new THREE__namespace.Vector3().setFromMatrixScale(p)),M=new THREE__namespace.Matrix4().getInverse(S),B=T.clone().multiply(M);R.copy(A).multiply(y).multiply(B).multiply(_)}var H=new THREE__namespace.Matrix4().getInverse(f),w=new THREE__namespace.Matrix4().getInverse(u),C=t.clone().multiply(c).multiply(f).multiply(e).multiply(r).multiply(o).multiply(H).multiply(l).multiply(u).multiply(s).multiply(w),F=new THREE__namespace.Matrix4().copyPosition(C),I=d.clone().multiply(F);return v.copyPosition(I),C=v.clone().multiply(R),C.premultiply(new THREE__namespace.Matrix4().getInverse(d)),C}function getEulerOrder(n){n=n||0;var t=["ZYX","YZX","XZY","ZXY","YXZ","XYZ"];return n===6?(console.warn("THREE.FBXLoader: unsupported Euler Order: Spherical XYZ. Animations and rotations may be incorrect."),t[0]):t[n]}function parseNumberArray(n){var t=n.split(",").map(function(e){return parseFloat(e)});return t}function convertArrayBufferToString(n,t,e){return t===void 0&&(t=0),e===void 0&&(e=n.byteLength),new TextDecoder().decode(new Uint8Array(n,t,e))}function append(n,t){for(var e=0,r=n.length,o=t.length;e<o;e++,r++)n[r]=t[e]}function slice(n,t,e,r){for(var o=e,s=0;o<r;o++,s++)n[s]=t[o];return n}var NURBSCurve=function(n){__extends(t,n);function t(e,r,o,s,u){var l=n.call(this)||this,c=r?r.length-1:0,f=o?o.length:0;l.degree=e,l.knots=r,l.controlPoints=[],l.startKnot=s||0,l.endKnot=u||c;for(var d=0;d<f;++d){var p=o[d];l.controlPoints[d]=new THREE__namespace.Vector4(p.x,p.y,p.z,p.w)}return l}return t.prototype.getPoint=function(e,r){r===void 0&&(r=new THREE__namespace.Vector3);var o=r,s=this.knots[this.startKnot]+e*(this.knots[this.endKnot]-this.knots[this.startKnot]),u=calcBSplinePoint(this.degree,this.knots,this.controlPoints,s);return u.w!==1&&u.divideScalar(u.w),o.set(u.x,u.y,u.z)},t.prototype.getTangent=function(e,r){r===void 0&&(r=new THREE__namespace.Vector3);var o=r,s=this.knots[0]+e*(this.knots[this.knots.length-1]-this.knots[0]),u=calcNURBSDerivatives(this.degree,this.knots,this.controlPoints,s,1);return o.copy(u[1]).normalize(),o},t.prototype.toJSON=function(){var e=n.prototype.toJSON.call(this);return e.degree=this.degree,e.knots=__spreadArray([],this.knots,!0),e.controlPoints=this.controlPoints.map(function(r){return r.toArray()}),e.startKnot=this.startKnot,e.endKnot=this.endKnot,e},t.prototype.fromJSON=function(e){return n.prototype.fromJSON.call(this,e),this.degree=e.degree,this.knots=__spreadArray([],e.knots,!0),this.controlPoints=e.controlPoints.map(function(r){return new THREE__namespace.Vector4(r[0],r[1],r[2],r[3])}),this.startKnot=e.startKnot,this.endKnot=e.endKnot,this},t}(THREE__namespace.Curve);function findSpan(n,t,e){var r=e.length-n-1;if(t>=e[r])return r-1;if(t<=e[n])return n;for(var o=n,s=r,u=Math.floor((o+s)/2);t<e[u]||t>=e[u+1];)t<e[u]?s=u:o=u,u=Math.floor((o+s)/2);return u}function calcBasisFunctions(n,t,e,r){var o=[],s=[],u=[];o[0]=1;for(var l=1;l<=e;++l){s[l]=t-r[n+1-l],u[l]=r[n+l]-t;for(var c=0,f=0;f<l;++f){var d=u[f+1],p=s[l-f],v=o[f]/(d+p);o[f]=c+d*v,c=p*v}o[l]=c}return o}function calcBSplinePoint(n,t,e,r){for(var o=findSpan(n,r,t),s=calcBasisFunctions(o,r,n,t),u=new THREE__namespace.Vector4(0,0,0,0),l=0;l<=n;++l){var c=e[o-n+l],f=s[l],d=c.w*f;u.x+=c.x*d,u.y+=c.y*d,u.z+=c.z*d,u.w+=c.w*f}return u}function calcBasisFunctionDerivatives(n,t,e,r,o){for(var s=[],u=0;u<=e;++u)s[u]=0;for(var l=[],u=0;u<=r;++u)l[u]=s.slice(0);for(var c=[],u=0;u<=e;++u)c[u]=s.slice(0);c[0][0]=1;for(var f=s.slice(0),d=s.slice(0),p=1;p<=e;++p){f[p]=t-o[n+1-p],d[p]=o[n+p]-t;for(var v=0,g=0;g<p;++g){var h=d[g+1],m=f[p-g];c[p][g]=h+m;var y=c[g][p-1]/c[p][g];c[g][p]=v+h*y,v=m*y}c[p][p]=v}for(var p=0;p<=e;++p)l[0][p]=c[p][e];for(var A=0;A<=e;++A){for(var E=0,b=1,T=[],u=0;u<=e;++u)T[u]=s.slice(0);T[0][0]=1;for(var _=1;_<=r;++_){var R=0,S=A-_,M=e-_;A>=_&&(T[b][0]=T[E][0]/c[M+1][S],R=T[b][0]*c[S][M]);for(var B=S>=-1?1:-S,H=A-1<=M?_-1:e-A,w=B;w<=H;++w)T[b][w]=(T[E][w]-T[E][w-1])/c[M+1][S+w],R+=T[b][w]*c[S+w][M];A<=M&&(T[b][_]=-T[E][_-1]/c[M+1][A],R+=T[b][_]*c[A][M]),l[_][A]=R;var p=E;E=b,b=p}}for(var C=e,_=1;_<=r;++_){for(var p=0;p<=e;++p)l[_][p]*=C;C*=e-_}return l}function calcBSplineDerivatives(n,t,e,r,o){for(var s=o<n?o:n,u=[],l=findSpan(n,r,t),c=calcBasisFunctionDerivatives(l,r,n,s,t),f=[],d=0;d<e.length;++d){var p=e[d].clone(),v=p.w;p.x*=v,p.y*=v,p.z*=v,f[d]=p}for(var g=0;g<=s;++g){for(var p=f[l-n].clone().multiplyScalar(c[g][0]),h=1;h<=n;++h)p.add(f[l-n+h].clone().multiplyScalar(c[g][h]));u[g]=p}for(var g=s+1;g<=o+1;++g)u[g]=new THREE__namespace.Vector4(0,0,0);return u}function calcKoverI(n,t){for(var e=1,r=2;r<=n;++r)e*=r;for(var o=1,r=2;r<=t;++r)o*=r;for(var r=2;r<=n-t;++r)o*=r;return e/o}function calcRationalCurveDerivatives(n){for(var t=n.length,e=[],r=[],o=0;o<t;++o){var s=n[o];e[o]=new THREE__namespace.Vector3(s.x,s.y,s.z),r[o]=s.w}for(var u=[],l=0;l<t;++l){for(var c=e[l].clone(),o=1;o<=l;++o)c.sub(u[l-o].clone().multiplyScalar(calcKoverI(l,o)*r[o]));u[l]=c.divideScalar(r[0])}return u}function calcNURBSDerivatives(n,t,e,r,o){var s=calcBSplineDerivatives(n,t,e,r,o);return calcRationalCurveDerivatives(s)}var _vector=new THREE__namespace.Vector3;function getPointArray(n,t){switch(t){case"D":return new Float64Array(n);case"F":return new Float32Array(n);case"L":return new Int32Array(n);case"I":return new Int16Array(n);default:return new Uint8Array(n)}}function loadX3p(n,t){var e;t===void 0&&(t={});var r=(e=t.fetcher)!==null&&e!==void 0?e:new Fetcher({allowHosts:["*"]}),o={byteLength:0};return Promise.resolve().then(function(){return r.ajax(n,{responseType:"arraybuffer"})}).then(function(s){var u;return o.byteLength=s.body.byteLength,parse$1(new Uint8Array(s.body),{materialType:t.materialType,color:t.color,resourcePath:n.slice(0,n.lastIndexOf("/")+1),search:(u=n.split("?")[1])!==null&&u!==void 0?u:"",fetcher:r})}).then(function(s){var u=new THREE__namespace.Group;return u.matrixAutoUpdate=!1,u.matrix.compose(u.position,u.quaternion,u.scale),u.name=n,u.add(s.object),{type:"x3p",upAxis:"Z",uri:n,byteLength:o.byteLength,scene:u,textures:[],dispose:function(){return s.dispose()}}})}function parse$1(n,t){for(var e,r,o,s,u,l,c,f,d,p,v,g,h,m,y,A,E,b,T,_,R,S,M,B,H,w,C,F,I,L,k,N,D,U,z,q,G,J,X,j,Y,Z,W,ae,re,se,ie,fe,ne,pe,_e,me,xe,$,te,Q=unzipSync(n),be="",ye=null,Ae=0,Me=Object.keys(Q);Ae<Me.length;Ae++){var ge=Me[Ae];/(^|\/)main\.xml$/i.test(ge)&&(ye=Q[ge],be=ge.slice(0,ge.lastIndexOf("/")+1))}if(!ye)throw new Error("X3p: main.xml not found.");if(typeof DOMParser=="undefined")throw new Error("X3p: DOMParser not found.");var he=(e=t.materialType)!==null&&e!==void 0?e:"phong",de=(r=t.color)!==null&&r!==void 0?r:new THREE__namespace.Color(10066329),ce=new DOMParser,le=decodeText(ye),we=ce.parseFromString(le,"text/xml"),ue=we.querySelector("Record1 Axes"),ve={x:{type:(u=(s=(o=ue==null?void 0:ue.querySelector("CX AxisType"))===null||o===void 0?void 0:o.textContent)===null||s===void 0?void 0:s.toUpperCase())!==null&&u!==void 0?u:"I",dataType:(f=(c=(l=ue==null?void 0:ue.querySelector("CX DataType"))===null||l===void 0?void 0:l.textContent)===null||c===void 0?void 0:c.toUpperCase())!==null&&f!==void 0?f:"D",increment:Number((p=(d=ue==null?void 0:ue.querySelector("CX Increment"))===null||d===void 0?void 0:d.textContent)!==null&&p!==void 0?p:"1"),offset:Number((g=(v=ue==null?void 0:ue.querySelector("CX Offset"))===null||v===void 0?void 0:v.textContent)!==null&&g!==void 0?g:"0")},y:{type:(y=(m=(h=ue==null?void 0:ue.querySelector("CY AxisType"))===null||h===void 0?void 0:h.textContent)===null||m===void 0?void 0:m.toUpperCase())!==null&&y!==void 0?y:"I",dataType:(b=(E=(A=ue==null?void 0:ue.querySelector("CY DataType"))===null||A===void 0?void 0:A.textContent)===null||E===void 0?void 0:E.toUpperCase())!==null&&b!==void 0?b:"D",increment:Number((_=(T=ue==null?void 0:ue.querySelector("CY Increment"))===null||T===void 0?void 0:T.textContent)!==null&&_!==void 0?_:"1"),offset:Number((S=(R=ue==null?void 0:ue.querySelector("CY Offset"))===null||R===void 0?void 0:R.textContent)!==null&&S!==void 0?S:"0")},z:{type:(H=(B=(M=ue==null?void 0:ue.querySelector("CZ AxisType"))===null||M===void 0?void 0:M.textContent)===null||B===void 0?void 0:B.toUpperCase())!==null&&H!==void 0?H:"A",dataType:(F=(C=(w=ue==null?void 0:ue.querySelector("CZ DataType"))===null||w===void 0?void 0:w.textContent)===null||C===void 0?void 0:C.toUpperCase())!==null&&F!==void 0?F:"D",increment:Number((L=(I=ue==null?void 0:ue.querySelector("CZ Increment"))===null||I===void 0?void 0:I.textContent)!==null&&L!==void 0?L:"1"),offset:Number((N=(k=ue==null?void 0:ue.querySelector("CZ Offset"))===null||k===void 0?void 0:k.textContent)!==null&&N!==void 0?N:"0")}},qe=null,Ee=we.querySelector("Record1 Axes Rotation");Ee&&(qe=new THREE__namespace.Matrix3,qe.set(Number((U=(D=Ee.querySelector("r11"))===null||D===void 0?void 0:D.textContent)!==null&&U!==void 0?U:0),Number((q=(z=Ee.querySelector("r12"))===null||z===void 0?void 0:z.textContent)!==null&&q!==void 0?q:0),Number((J=(G=Ee.querySelector("r13"))===null||G===void 0?void 0:G.textContent)!==null&&J!==void 0?J:0),Number((j=(X=Ee.querySelector("r21"))===null||X===void 0?void 0:X.textContent)!==null&&j!==void 0?j:0),Number((Z=(Y=Ee.querySelector("r22"))===null||Y===void 0?void 0:Y.textContent)!==null&&Z!==void 0?Z:0),Number((ae=(W=Ee.querySelector("r23"))===null||W===void 0?void 0:W.textContent)!==null&&ae!==void 0?ae:0),Number((se=(re=Ee.querySelector("r31"))===null||re===void 0?void 0:re.textContent)!==null&&se!==void 0?se:0),Number((fe=(ie=Ee.querySelector("r32"))===null||ie===void 0?void 0:ie.textContent)!==null&&fe!==void 0?fe:0),Number((pe=(ne=Ee.querySelector("r33"))===null||ne===void 0?void 0:ne.textContent)!==null&&pe!==void 0?pe:0)));var Ie=(_e=we.querySelector("Record3 DataLink PointDataLink"))===null||_e===void 0?void 0:_e.textContent;if(typeof Ie!="string")throw new Error("X3p: PointDataLink not found.");Ie=pathJoin(be,Ie);var Oe=Q[Ie];if(!Oe)throw new Error("X3p: ".concat(Oe," not found."));for(var $e=getPointArray(Oe.buffer,ve.z.dataType),pt=Number((xe=(me=we.querySelector("Record3 MatrixDimension SizeX"))===null||me===void 0?void 0:me.textContent)!==null&&xe!==void 0?xe:"0"),tt=Number((te=($=we.querySelector("Record3 MatrixDimension SizeY"))===null||$===void 0?void 0:$.textContent)!==null&&te!==void 0?te:"0"),Ne=Math.floor(pt-1),Ge=Math.floor(tt-1),Ve=Ne+1,Ke=Ge+1,Je=new Float32Array(Ve*Ke*3),Xe=new Float32Array(Ve*Ke*2),Pe=new Uint32Array(Ne*Ge*6),Se=new THREE__namespace.Box3,Be=0;Be<Ke;Be++)for(var De=Be*ve.y.increment+ve.y.offset,He=0;He<Ve;He++){var Ue=Be*Ve+He,Ye=He*ve.x.increment+ve.x.offset,ze=$e[Ue],rt=!isNaN(ze),ot=rt?ze:NaN;_vector.set(Ye,-De,ot),qe&&_vector.applyMatrix3(qe),rt&&Se.expandByPoint(_vector),Je[Ue*3+0]=_vector.x,Je[Ue*3+1]=_vector.y,Je[Ue*3+2]=_vector.z,Xe[Ue*2+0]=He/Ne,Xe[Ue*2+1]=1-Be/Ge}for(var Be=0;Be<Ge;Be++)for(var He=0;He<Ne;He++){var ht=He+Ve*Be,st=He+Ve*(Be+1),ct=He+1+Ve*(Be+1),We=He+1+Ve*Be,Ce=(Be*Ne+He)*6;Pe[Ce+0]=ht,Pe[Ce+1]=st,Pe[Ce+2]=We,Pe[Ce+3]=st,Pe[Ce+4]=ct,Pe[Ce+5]=We}var Re=new THREE__namespace.BufferGeometry;Re.setAttribute("position",new THREE__namespace.BufferAttribute(Je,3)),Re.setAttribute("uv",new THREE__namespace.BufferAttribute(Xe,2)),Re.setIndex(new THREE__namespace.BufferAttribute(Pe,1)),(!Re.groups||Re.groups.length===0)&&Re.addGroup(0,Re.index?Re.index.count:Re.attributes.position.count,0),Re.boundingBox=Se;var Le=new PBMMeshMaterial(he);Le.flatShading=!0,Le.color.copy(de),Le.refreshUniforms();var Qe=new PBMMesh(Re,[Le]);return{object:Qe,dispose:function(){Re.dispose(),Le.dispose()}}}var scratchMatrix4$3=new THREE__namespace.Matrix4,MAX_RETRY_DELAY$1=5e3,RETRY_DELAY_STEP$1=1e3;function attachTileAttributes(n,t){n.name=t.id;var e=t.tileset.properties.floorInfo;n.traverse(function(r){if("floor"in t.extras){if(r instanceof THREE__namespace.Mesh||r instanceof THREE__namespace.Points)for(var o=Array.isArray(r.material)?r.material:r.material?[r.material]:[],s=0,u=o;s<u.length;s++){var l=u[s];(l instanceof PBMMeshMaterial||l instanceof PBMPointCloudMaterial)&&(l.floor=t.extras.floor)}}else if(!(r instanceof PBMPointCloud)){if(r instanceof PBMMesh&&e){for(var c=new THREE__namespace.Box3().expandByObject(r),f=c.getCenter(new THREE__namespace.Vector3),d=0,p=0;p<e.length;p++){var v=e[p],g=v.ground,h=v.height;if(f.y<g+h){d=p;break}}t.floor=d,t.tileset.floorLength=Math.max(t.tileset.floorLength,t.floor+1),r.material.forEach(function(m){return m.floor=d})}}})}function loadTileContent(n,t){if(!n.content)return Promise.resolve(n);var e=n.content,r=appendSearch(e.uri,t.search);if(n.type==="TILESET"){var o=imageURL(r,{key:"model.".concat(n.siblingIndex)});return e.loadState="LOADING",e.loadStateUpdateTime=now(),t.fetcher.ajax(o,{responseType:"text"}).then(function(s){return s.body}).then(function(s){var u=r.slice(0,r.lastIndexOf("/")+1);return normalizeTilesetHeader(JSON.parse(s),u)}).then(function(s){e.loadState="READY",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=0,n.children.length===0&&(n.children=[new Tile("".concat(n.id,".0"),s.root,n.tileset,n)])}).then(function(){return n}).catch(function(s){return e.loadState="FAILED",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=Math.min(e.loadfailRetryDelay+1e3,5e3),Promise.reject(s)})}if(n.type==="SCENEGRAPH")return e.loadState="LOADING",e.loadStateUpdateTime=now(),Promise.resolve().then(function(){var s,u,l,c,f,d,p,v,g,h,m="",y=r.split("#"),A=y[0],E=y[1],b=(E||A).split("?")[0].match(/\.([0-9a-zA-Z]+)$/);if(b&&(m=b[1]),m==="b3dm"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadB3dm(T,{upAxis:n.tileset.asset.gltfUpAxis,fetcher:t.fetcher}).then(function(_){return _.scene.applyMatrix4(n.transform),_.scene.updateWorldMatrix(!1,!0),_.scene.matrixAutoUpdate=!1,attachTileAttributes(_.scene,n),_})}if(m==="pnts"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPnts(T,{computeBoundingBox:!1,fetcher:t.fetcher}).then(function(R){if(R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,n.boundingVolume){var S=n.boundingVolume;R.scene.traverse(function(M){if(M instanceof PBMPointCloud){scratchMatrix4$3.getInverse(M.matrixWorld);var B=new THREE__namespace.Box3;S.getBoundingBox(B),B.applyMatrix4(scratchMatrix4$3),M.geometry.boundingBox=B}})}return attachTileAttributes(R.scene,n),R})}if(m==="glb"||m==="gltf"){var T=imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadGltf(T,{upAxis:n.tileset.asset.gltfUpAxis,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,attachTileAttributes(R.scene,n),R})}if(m==="at3d"){var T=n.extras.at3d?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadAt3d(T,{textureBaseUri:(s=n.extras.at3d)===null||s===void 0?void 0:s.textureBaseUri,textureArray:(u=n.extras.at3d)===null||u===void 0?void 0:u.textureArray,textureOptions:(l=n.extras.at3d)===null||l===void 0?void 0:l.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="pbm"){var T=n.extras.pbm?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPbm(T,{textureBaseUri:(c=n.extras.pbm)===null||c===void 0?void 0:c.textureBaseUri,textureArray:(f=n.extras.pbm)===null||f===void 0?void 0:f.textureArray,textureOptions:(d=n.extras.pbm)===null||d===void 0?void 0:d.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="dome"){var T=n.extras.dome?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadDome(T,{textureBaseUri:(p=n.extras.dome)===null||p===void 0?void 0:p.textureBaseUri,textureOptions:(v=n.extras.dome)===null||v===void 0?void 0:v.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="domez"){var T=n.extras.domez?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadDomez(T,{textureBaseUri:(g=n.extras.domez)===null||g===void 0?void 0:g.textureBaseUri,textureOptions:(h=n.extras.domez)===null||h===void 0?void 0:h.textureOptions,fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="ply"){var T=n.extras.ply?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadPly(T,{type:"pbmPointCloud",upAxis:"Z",fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="obj"){var T=n.extras.obj?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadObj(T,{upAxis:"Z",fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="fbx"){var T=n.extras.obj?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadFbx(T,{fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}if(m==="x3p"){var T=n.extras.x3p?r:imageURL(r,{key:"model.".concat(n.siblingIndex)});return loadX3p(T,{fetcher:t.fetcher}).then(function(R){return R.scene.applyMatrix4(n.transform),R.scene.updateWorldMatrix(!1,!0),R.scene.matrixAutoUpdate=!1,R})}throw new Error("Invalid Tile content: ".concat(r))}).then(function(s){s.scene.traverse(function(l){if(l instanceof PBMPointCloud)l.material.uniforms.geometricError.value=n.geometricError;else if(l instanceof PBMMesh)for(var c=0,f=l.material;c<f.length;c++){var d=f[c];d.uniforms.geometricError.value=n.geometricError}});var u={type:s.type,uri:s.uri,byteLength:s.byteLength,object:new TileNode(n.id,s.scene,s.dispose)};return Promise.resolve().then(function(){return Promise.all([u.object.generateBvhTree(),t.renderer&&s.textures.length<16?initTextures(s.textures,t.renderer,1024*1024):null])}).then(function(){return e.loadState="READY",e.loadStateUpdateTime=now(),e.loadfailRetryDelay=0,e.byteLength=u.byteLength,e.data=u,n}).catch(function(l){return unloadTileContent(n),Promise.reject(l)})}).catch(function(s){return e.loadState="FAILED",e.loadStateUpdateTime=now(),s instanceof NetworkResponseError&&s.httpStatus===0||s instanceof NetworkTimeoutError||s instanceof NetworkProxyError?e.loadfailRetryDelay=clamp$1(e.loadfailRetryDelay+RETRY_DELAY_STEP$1,RETRY_DELAY_STEP$1,MAX_RETRY_DELAY$1):e.loadfailRetryDelay=1/0,Promise.reject(s)});throw new Error("Invalid Tile type: ".concat(n.type))}function unloadTileContent(n){n.content&&(n.content.data&&n.content.data.object.dispose(),n.content.data=void 0,n.content.loadState="UNLOADED",n.content.loadStateUpdateTime=now(),n.content.byteLength=0)}var TrajectoryNode=function(n){__extends(t,n);function t(e,r,o){o===void 0&&(o=noop$1);var s=n.call(this)||this;return s.name=e,s.contentObject=r,s.name=e,s.add(r),s.disposers=[o],s}return t.prototype.update=function(e,r,o){var s=this.contentObject.material[2];s.uniforms.dashOffset.value=(s.uniforms.dashOffset.value-.003)%(s.uniforms.dashSize.value.x+s.uniforms.dashSize.value.y),o.needsRender=!0},t.prototype.dispose=function(){for(var e=0,r=this.disposers;e<r.length;e++){var o=r[e];o()}this.disposers.length=0},t.prototype.clone=function(){return new t(this.name,this.contentObject.clone())},t}(THREE__namespace.Object3D),MAX_RETRY_DELAY=5e3,RETRY_DELAY_STEP=1e3,TRAJECTOR_PIPE_SHADER={vertexShader:`
|
|
935
935
|
varying vec2 vUv;
|
|
936
936
|
uniform float displacementScalar;
|
|
937
937
|
#include <common>
|
|
@@ -1037,7 +1037,7 @@ void main() {
|
|
|
1037
1037
|
Error work input:
|
|
1038
1038
|
`+JSON.stringify(t))}else parseNull(t,this)}return n.prototype.toJSON=function(){return this.raw},n.parse=parseWork,n}();function getType(n){return n==null?"null":Array.isArray(n)?"array":typeof n=="object"?"dict":"value"}function deepMerge(n,t){var e=getType(n),r=getType(t);if(r==="null")return n;if(r==="value")return t;if(r!==e)return JSON.parse(JSON.stringify(t));if(r==="array")for(var o=0;o<t.length;o++)n[o]=deepMerge(n[o],t[o]);else if(r==="dict")for(var s in t)n[s]=deepMerge(n[s],t[s]);return n}function startWithString(n,t){return n.indexOf(t)===0}function urlWithParseOptions(n,t,e,r){var o,s=t;if(r.jsonp===!0){s=t.replace(/([\?\#].*)?$/i,"");var u=sha256("".concat(s)).slice(0,7);s="".concat(s,".").concat(u,".jsonp")}if(r.shortPath===!0){var l=s.replace(n,"").split("."),c=(o=l.shift())!==null&&o!==void 0?o:"",f=l.join(".");s=pathJoin(n,sha256(c))+(f?"."+f:"")}var d=s.replace(n,"");return r.baseURL&&(s=pathJoin(r.baseURL,d)),r.traverseResource&&r.traverseResource({origin:t,absolute:s,relative:d,type:e}),s}function panoURL(n,t,e,r,o){var s=e;return isAbsoluteURL(e)||(t&&(t=pathJoin(t,String(r))),s=pathJoin(t,s)),isAbsoluteURL(s)||(s=pathJoin(n,s)),startWithString(s,n)||console.warn("".concat(s," is not start with base_url(").concat(n,").")),urlWithParseOptions(n,s,"panorama",o)}function fileURL(n,t,e){var r=t;return isAbsoluteURL(r)||(r=pathJoin(n,t)),startWithString(r,n)||console.warn("".concat(r," is not start with base_url(").concat(n,").")),urlWithParseOptions(n,r,"model",e)}function textureURL$1(n,t,e,r){var o=t;return isAbsoluteURL(o)||(o=pathJoin(e,o)),isAbsoluteURL(o)||(o=pathJoin(n,o)),startWithString(o,n)||console.warn("".concat(o," is not start with base_url(").concat(n,").")),urlWithParseOptions(n,o,"texture",r)}var getTileLevel=function(n){for(var t=10;t>=0;t--){var e=512*Math.pow(2,t);if(e<=n)return t}return null},sortTile=function(n){n=n.slice().sort(function(u,l){return u.level-l.level});for(var t=[],e=0,r=n;e<r.length;e++){var o=r[e];if(t.length===0){t.push(o);continue}var s=t[t.length-1];if(o.level>s.level){t.push(o);continue}if(o.size>s.size){t[t.length-1]=o;continue}}return t};function parse(n,t,e){for(var r,o,s,u,l,c,f,d,p,v,g,h,m,y,A,E,b,T,_,R=JSON.stringify(t),S=[],M=0,B=[].concat(n);M<B.length;M++){var H=B[M];H instanceof Work?S.push.apply(S,H.raw.works):typeof H=="string"?S.push(H):S.push(JSON.stringify(H))}var w=verify(S);if(w instanceof Error)return w;Array.isArray(t.transform)?e.transform.fromArray(t.transform):t.transform&&e.transform.copy(t.transform),n=S.map(function($){return JSON.parse($)}).reduce(function($,te){return deepMerge($,te)}),Object.defineProperty(e,"raw",{configurable:!1,get:function(){return{works:S,options:R}}});{var C;if(t.workCode&&(typeof t.workCode=="string"?C=t.workCode:typeof t.workCode=="function"&&(C=t.workCode(n))),typeof C=="undefined"&&(C=String(n.resource_code||n.basic_code||n.vr_code||n.code||n.project_id||n.work_code||n.workCode)),typeof C=="undefined")return new Error("WorkCode never matched.");Object.defineProperty(e,"workCode",{configurable:!1,get:function(){return C}})}{var F=String(n.name);Object.defineProperty(e,"name",{configurable:!1,get:function(){return F}})}if(w instanceof Error)return w;Object.defineProperty(e,"issuer",{configurable:!1,get:function(){return w.issuer}}),Object.defineProperty(e,"expire",{configurable:!1,get:function(){return w.expire}}),Object.defineProperty(e,"allowHosts",{configurable:!1,get:function(){return w.allowHosts}});var I=(r=n.base_url)!==null&&r!==void 0?r:"";if(I&&I[I.length-1]!=="/"&&(I+="/"),w instanceof Error)return w;if(n.model){var L={work:e,layers:[]},k;n.model.file?k=fileURL(I,n.model.file,t):n.model.file_url&&(k=fileURL(I,n.model.file_url,t)),Object.defineProperty(L,"file",{configurable:!1,get:function(){return k}});var N;n.model.textureBase?N=textureURL$1(I,"",n.model.textureBase,t):n.model.material_base_url?N=textureURL$1(I,"",n.model.material_base_url,t):L.file&&(N=L.file.split("/").slice(0,-1).join("/").replace("/model/","/materials/")),Object.defineProperty(L,"textureBase",{configurable:!1,get:function(){return N}});var D;Array.isArray(n.model.textures)?(D=n.model.textures.map(function($){var te,Q;return textureURL$1(I,$,(Q=(te=n.model.textureBase)!==null&&te!==void 0?te:n.model.material_base_url)!==null&&Q!==void 0?Q:"",t)}),Object.freeze(D)):Array.isArray(n.model.material_textures)&&(D=n.model.material_textures.map(function($){var te,Q;return textureURL$1(I,$,(Q=(te=n.model.textureBase)!==null&&te!==void 0?te:n.model.material_base_url)!==null&&Q!==void 0?Q:"",t)}),Object.freeze(D)),Object.defineProperty(L,"textures",{configurable:!1,get:function(){return D}});var U=[];if(Array.isArray(n.model.tiles))for(var z=0,q=n.model.tiles;z<q.length;z++){var G=q[z];G&&(G.tileset||G.tileset_url)&&U.push(Object.freeze({type:(o=G.type)!==null&&o!==void 0?o:"mesh",name:(s=G.name)!==null&&s!==void 0?s:"",upAxis:(l=(u=G.upAxis)!==null&&u!==void 0?u:G.up_axis)!==null&&l!==void 0?l:"-Y",tileset:fileURL(I,G.tileset||G.tileset_url,t)}))}else n.model.tiles&&(n.model.tiles.tileset||n.model.tiles.tileset_url)&&U.push(Object.freeze({type:(c=n.model.tiles.type)!==null&&c!==void 0?c:"mesh",name:(f=n.model.tiles.name)!==null&&f!==void 0?f:"lod",upAxis:(p=(d=n.model.tiles.upAxis)!==null&&d!==void 0?d:n.model.tiles.up_axis)!==null&&p!==void 0?p:"-Y",tileset:fileURL(I,n.model.tiles.tileset||n.model.tiles.tileset_url,t)}));if(Array.isArray(n.model.layers))for(var J=0,X=n.model.layers;J<X.length;J++){var j=X[J];j&&(j.tileset||j.tileset_url)&&U.push(Object.freeze({type:(v=j.type)!==null&&v!==void 0?v:"mesh",name:(g=j.name)!==null&&g!==void 0?g:"",upAxis:(h=j.upAxis)!==null&&h!==void 0?h:j.up_axis,tileset:fileURL(I,j.tileset||j.tileset_url,t)}))}Object.freeze(U),Object.defineProperty(L,"layers",{configurable:!1,get:function(){return U}}),Object.defineProperty(e,"model",{configurable:!1,get:function(){if(L.file||L.layers.length)return L}})}if(w instanceof Error)return w;var Y=new Set,Z=new Set;{var W=[];if(n.observers&&Array.isArray(n.observers)){var ae=[];n.panorama&&(Array.isArray(n.panorama)?ae=n.panorama:Array.isArray(n.panorama.list)?ae=n.panorama.list:Array.isArray(n.panorama.info)&&(ae=n.panorama.info));for(var re=function($){var te={},Q=n.observers[$];if(!Q)return"break";var be=ae[$];if(!be)return"break";Q=Object.assign({},Q,be,{active:Q.active!==!1&&be.active!==!1}),Object.defineProperty(te,"work",{configurable:!1,get:function(){return e}}),Object.defineProperty(te,"index",{configurable:!1,get:function(){return $}}),Z.add($),Object.defineProperty(te,"panoIndex",{configurable:!1,get:function(){return $}});var ye=panoStringify({workCode:e.workCode,panoIndex:$});Y.add(ye),Object.defineProperty(te,"panoId",{configurable:!1,get:function(){return ye}});var Ae=Object.freeze({workCode:e.workCode,panoIndex:$});Object.defineProperty(te,"pano",{configurable:!1,get:function(){return Ae}});var Me=Q.active!==!1;Object.defineProperty(te,"active",{configurable:!1,get:function(){return Me}});var ge=Q.loadable===!0;Object.defineProperty(te,"loadable",{configurable:!1,get:function(){return ge}});var he=Q.derived_id;Object.defineProperty(te,"derivedId",{configurable:!1,get:function(){return he}});var de=Q.derived_id_str;Object.defineProperty(te,"derivedIdStr",{configurable:!1,get:function(){return de}});var ce=(T=(E=(y=(m=n.panorama)===null||m===void 0?void 0:m.pano_high_cube_base_url)!==null&&y!==void 0?y:(A=n.panorama)===null||A===void 0?void 0:A.pano_cube_base_url)!==null&&E!==void 0?E:(b=n.panorama)===null||b===void 0?void 0:b.base_url)!==null&&T!==void 0?T:"",le={up:panoURL(I,ce,Q.images?Q.images.up:Q.up,$,t),down:panoURL(I,ce,Q.images?Q.images.down:Q.down,$,t),right:panoURL(I,ce,Q.images?Q.images.right:Q.right,$,t),left:panoURL(I,ce,Q.images?Q.images.left:Q.left,$,t),front:panoURL(I,ce,Q.images?Q.images.front:Q.front,$,t),back:panoURL(I,ce,Q.images?Q.images.back:Q.back,$,t)};if(Q.size_list)le.sizeList=Q.size_list.slice();else{var we=getImageSizeFromURL(le.up);if(we&&(le.sizeList=[we],Q.tiles))for(var ue=Q.tiles.slice().sort(function(Re,Le){return Re-Le}).map(function(Re){return 512*Math.pow(2,Re)}),ve=0,qe=ue;ve<qe.length;ve++){var Ee=qe[ve];Ee>we&&le.sizeList.push(Ee)}}var Ie=Q.images?Q.images.luminance:Q.luminance;Ie&&(le.luminance=Object.freeze({up:panoURL(I,ce,Ie.up,$,t),down:panoURL(I,ce,Ie.down,$,t),right:panoURL(I,ce,Ie.right,$,t),left:panoURL(I,ce,Ie.left,$,t),front:panoURL(I,ce,Ie.front,$,t),back:panoURL(I,ce,Ie.back,$,t)}));var Oe=void 0;if(Q.images)Oe=Q.images.tiles;else if(Array.isArray(Q.size_list)){var $e=Q.size_list.slice().sort(function(Re,Le){return Re-Le});if($e[0]){var pt=getTileLevel($e[0]);if(pt)for(var tt=pt-1;tt>=0;tt--)$e.unshift(512*Math.pow(2,tt));Oe=$e}}else Array.isArray(Q.tiles)&&(Oe=Q.tiles.slice(),typeof Oe[0]=="number"&&(Oe=Oe.sort(function(Re,Le){return Re-Le}).map(function(Re){return 512*Math.pow(2,Re)})));if(Oe){for(var Ne=[],Ge=0,Ve=Oe;Ge<Ve.length;Ge++){var Ee=Ve[Ge];if(typeof Ee=="number"){var Ke=getTileLevel(Ee);if(typeof Ke!="number")continue;var Je=getImageSizeFromURL(le.front);if(!Je)continue;if(Ee>Je){var Xe=replaceImageSize(le.up,Ee),Pe=replaceImageSize(le.down,Ee),Se=replaceImageSize(le.right,Ee),Be=replaceImageSize(le.left,Ee),De=replaceImageSize(le.front,Ee),He=replaceImageSize(le.back,Ee);Ne.push(Object.freeze({level:Ke,size:Ee,scale:1,up:Xe,down:Pe,right:Se,left:Be,front:De,back:He}))}else{var Xe=le.up,Pe=le.down,Se=le.right,Be=le.left,De=le.front,He=le.back;Ne.push(Object.freeze({level:Ke,size:Je,scale:Ee/Je,up:Xe,down:Pe,right:Se,left:Be,front:De,back:He}))}}else{var Ke=Ee.level;if(typeof Ke!="number")continue;var we=Ee.size;if(typeof we!="number")continue;var Xe=panoURL(I,ce,Ee.up,$,t),Pe=panoURL(I,ce,Ee.down,$,t),Se=panoURL(I,ce,Ee.right,$,t),Be=panoURL(I,ce,Ee.left,$,t),De=panoURL(I,ce,Ee.front,$,t),He=panoURL(I,ce,Ee.back,$,t);Ne.push(Object.freeze({level:Ke,size:we,scale:(_=Ee.scale)!==null&&_!==void 0?_:1,up:Xe,down:Pe,right:Se,left:Be,front:De,back:He}))}}Ne=sortTile(Ne),Object.freeze(Ne),Object.defineProperty(le,"tiles",{configurable:!1,get:function(){return Ne}})}Object.freeze(le),Object.defineProperty(te,"images",{configurable:!1,get:function(){return le}});var Ue=new THREE__namespace.Vector3;if(Q.position instanceof THREE__namespace.Vector3)Ue.copy(Q.position);else if(Array.isArray(Q.position))Ue.fromArray(Q.position);else return"break";Object.freeze(Ue),Object.defineProperty(te,"position",{configurable:!1,get:function(){return Ue}});var Ye=new THREE__namespace.Vector3;if(Q.standingPosition instanceof THREE__namespace.Vector3)Ye.copy(Q.standingPosition);else if(Array.isArray(Q.standingPosition))Ye.fromArray(Q.standingPosition);else if(Q.standing_position instanceof THREE__namespace.Vector3)Ye.copy(Q.standing_position);else if(Array.isArray(Q.standing_position))Ye.fromArray(Q.standing_position);else return"break";Object.freeze(Ye),Object.defineProperty(te,"standingPosition",{configurable:!1,get:function(){return Ye}});var ze=new THREE__namespace.Quaternion;if(Q.quaternion instanceof THREE__namespace.Quaternion)ze.copy(Q.quaternion);else if(Array.isArray(Q.quaternion))ze.fromArray(Q.quaternion);else if(Q.quaternion){var rt=Q.quaternion,ot=rt.x,ht=rt.y,st=rt.z,ct=rt.w;ze.set(ot,ht,st,ct)}else return"break";Object.freeze(ze),Object.defineProperty(te,"quaternion",{configurable:!1,get:function(){return ze}});var We=0;isNumber(Q.floorIndex)?We=Q.floorIndex:isNumber(Q.floor_index)?We=Q.floor_index:isNumber(Q.floor)&&(We=Q.floor),Object.defineProperty(te,"floorIndex",{configurable:!1,get:function(){return We}});var Ce;Q.video&&(Ce={},typeof Q.video.source=="string"&&(Ce.source=Q.video.source),Q.video.matrix instanceof THREE__namespace.Matrix4?Ce.matrix=Q.video.matrix.clone():Array.isArray(Q.video.matrix)&&(Ce.matrix=new THREE__namespace.Matrix4().fromArray(Q.video.matrix)),Q.video.size instanceof THREE__namespace.Vector2?Ce.size=Q.video.size.clone():Array.isArray(Q.video.size)&&(Ce.size=new THREE__namespace.Vector2().fromArray(Q.video.size)),Ce.source&&Ce.matrix&&Ce.size&&(te.video=Ce)),Object.freeze(Ce),Object.defineProperty(te,"video",{configurable:!1,get:function(){return Ce}}),Array.isArray(Q.accessibleNodes)?(te.accessibleNodes=Q.accessibleNodes.slice(),te.accessibleIds=Q.accessibleNodes.map(function(Re){return panoStringify({workCode:e.workCode,panoIndex:Re})})):Array.isArray(Q.accessible_nodes)&&(te.accessibleNodes=Q.accessible_nodes.slice(),te.accessibleIds=Q.accessible_nodes.map(function(Re){return panoStringify({workCode:e.workCode,panoIndex:Re})})),Array.isArray(Q.visibleNodes)?(te.visibleNodes=Q.visibleNodes.slice(),te.visibleIds=Q.visibleNodes.map(function(Re){return panoStringify({workCode:e.workCode,panoIndex:Re})})):Array.isArray(Q.visible_nodes)&&(te.visibleNodes=Q.visible_nodes.slice(),te.visibleIds=Q.visible_nodes.map(function(Re){return panoStringify({workCode:e.workCode,panoIndex:Re})})),W[$]=te},se=0;se<n.observers.length;se++){var ie=re(se);if(ie==="break")break}}for(var fe=function($){if($.accessibleIds){var be=$.accessibleIds.filter(function(ce){return Y.has(ce)});Object.freeze(be),Object.defineProperty($,"accessibleIds",{configurable:!1,get:function(){return be}})}else{for(var te=[],Q=0;Q<W.length;Q++)W[Q]!==$&&(Math.abs(W[Q].position.y-$.position.y)>3||W[Q].position.distanceTo($.position)>10||te.push(W[Q].panoId));Object.freeze(te),Object.defineProperty($,"accessibleIds",{configurable:!1,get:function(){return te}})}if($.accessibleNodes){var Ae=$.accessibleNodes.filter(function(ce){return Z.has(ce)});Object.freeze(Ae),Object.defineProperty($,"accessibleNodes",{configurable:!1,get:function(){return Ae}})}else{for(var ye=[],Q=0;Q<W.length;Q++)W[Q]!==$&&(Math.abs(W[Q].position.y-$.position.y)>3||W[Q].position.distanceTo($.position)>10||ye.push(W[Q].panoIndex));Object.freeze(ye),Object.defineProperty($,"accessibleNodes",{configurable:!1,get:function(){return ye}})}if($.visibleIds){var ge=$.visibleIds.filter(function(ce){return Y.has(ce)});Object.freeze(ge),Object.defineProperty($,"visibleIds",{configurable:!1,get:function(){return ge}})}else{var Me=$.accessibleIds.slice();Object.freeze(Me),Object.defineProperty($,"visibleIds",{configurable:!1,get:function(){return Me}})}if($.visibleNodes){var de=$.visibleNodes.filter(function(ce){return Z.has(ce)});Object.freeze(de),Object.defineProperty($,"visibleNodes",{configurable:!1,get:function(){return de}})}else{var he=$.accessibleNodes.slice();Object.freeze(he),Object.defineProperty($,"visibleNodes",{configurable:!1,get:function(){return he}})}},ne=0,pe=W;ne<pe.length;ne++){var _e=pe[ne];fe(_e)}Object.freeze(W),Object.defineProperty(e,"observers",{configurable:!1,get:function(){return W}})}if(w instanceof Error)return w;if(n.initial){if((n.initial.mode==="Panorama"&&e.observers.length===0||n.initial.mode==="Floorplan"||n.initial.mode==="Topview"||n.initial.mode==="Model"||n.initial.mode==="Mapview"||n.initial.mode==="DepthPanorama")&&(e.initial.mode=n.initial.mode),isNumber(n.initial.latitude)&&(e.initial.latitude=n.initial.latitude),isNumber(n.initial.longitude)?e.initial.longitude=n.initial.longitude:isNumber(n.initial.heading)&&(e.initial.longitude=headingToLongitude(n.initial.heading)),isNumber(n.initial.fov)&&(e.initial.fov=n.initial.fov),e.observers.length>0){var me=void 0;isNumber(n.initial.panoIndex)?me=n.initial.panoIndex:isNumber(n.initial.pano_index)?me=n.initial.pano_index:isNumber(n.initial.pano)&&(me=n.initial.pano),typeof me=="number"&&(me=clamp$1(me,0,e.observers.length-1),e.initial.panoIndex=me)}if(isNumber(n.initial.distance)&&(e.initial.distance=n.initial.distance),Array.isArray(n.initial.offset)){var xe=[0,0,0].map(function($,te){var Q=Number(n.initial.offset[te]);return isNaN(Q)||!isFinite(Q)?0:Q});e.initial.offset=new THREE__namespace.Vector3().fromArray(xe)}!e.initial.mode&&typeof e.initial.panoIndex=="number"&&(e.initial.mode="Panorama")}return w instanceof Error?w:(workRawMapping.set(e,{works:S,options:R}),e)}function parseNull(n,t){return t.issuer="null",deepFreeze(t),workRawMapping.set(t,{works:["null"],options:"{}"}),t}function parseWork(n,t){typeof n=="string"&&n.trim()[0]==="{"&&(n=JSON.parse(n));var e=workRawMapping.get(n);if(e){if(t&&!equal(JSON.parse(e.options),t))throw new Error("[PARSE FAILED]: work is parsed with different options.");return n}else try{return new Work(n,t!=null?t:{})}catch(r){throw new Error("[PARSE FAILED]: "+r.message+`
|
|
1039
1039
|
Error work input:
|
|
1040
|
-
`+JSON.stringify(n))}}function createWorks(n){for(var t={},e=[],r={},o=0,s=n;o<s.length;o++){var u=s[o],l=t[u.workCode];l||(l=t[u.workCode]=new THREE__namespace.Matrix4().copy(u.transform));for(var c=0,f=u.observers;c<f.length;c++){var d=f[c],p={isResolved:!0,active:d.active,accessibleIds:d.accessibleIds,visibleIds:d.visibleIds,accessibleNodes:d.accessibleNodes,visibleNodes:d.visibleNodes,floorIndex:d.floorIndex,images:d.images,index:d.index,panoIndex:d.panoIndex,loadable:d.loadable,panoId:d.panoId,pano:d.pano,work:d.work,derivedId:d.derivedId,video:d.video,position:new THREE__namespace.Vector3().copy(d.position).applyMatrix4(l),standingPosition:new THREE__namespace.Vector3().copy(d.standingPosition).applyMatrix4(l),quaternion:new THREE__namespace.Quaternion().setFromRotationMatrix(scratchMatrix4$1.makeRotationFromQuaternion(d.quaternion).premultiply(l))};Object.freeze(p),e.push(p),r[p.panoId]=p}}Object.freeze(e);for(var v=n.slice(),g={},h=0,m=v;h<m.length;h++){var u=m[h];g[u.workCode]=u}return Object.freeze(Object.assign(v,{get initial(){return v.length>0?v[0].initial:{work:{}}},get resolvedObservers(){return e},getWork:function(y){return g[y]},getResolvedObserver:function(y){var A,E;return isPanoId(y)?r[y]:typeof y=="number"?r[panoStringify({workCode:(E=(A=n[0])===null||A===void 0?void 0:A.workCode)!==null&&E!==void 0?E:"",panoIndex:y})]:r[panoStringify(y)]},update:function(){for(var y=0,A=v;y<A.length;y++){var E=A[y],b=E.transform,T=t[E.workCode];T?T.equals(b)||(T.copy(b),needsUpdateWorkCodeSet.add(E.workCode)):(t[E.workCode]=new THREE__namespace.Matrix4().copy(b),needsUpdateWorkCodeSet.add(E.workCode))}if(needsUpdateWorkCodeSet.size>0){for(var _=0,R=e;_<R.length;_++){var S=R[_];if(needsUpdateWorkCodeSet.has(S.work.workCode)){var M=S.work.observers[S.index],B=S.work.transform;S.position.copy(M.position).applyMatrix4(B),S.standingPosition.copy(M.standingPosition).applyMatrix4(B),S.quaternion.setFromRotationMatrix(scratchMatrix4$1.makeRotationFromQuaternion(M.quaternion).premultiply(B))}}needsUpdateWorkCodeSet.clear()}}}))}var fetcherMap=new Map;function getFetcher(n){var t=fetcherMap.get(n);if(t)return t;throw new Error("fetcher never registered.")}function registerFetcher(n,t){return fetcherMap.set(n,t)}var BufferGeometryUtils={computeTangents:function(n){var t=n.index,e=n.attributes;if(t===null||e.position===void 0||e.normal===void 0||e.uv===void 0){console.warn("THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");return}var r=t.array,o=e.position.array,s=e.normal.array,u=e.uv.array,l=o.length/3;e.tangent===void 0&&n.setAttribute("tangent",new THREE__namespace.BufferAttribute(new Float32Array(4*l),4));for(var c=e.tangent.array,f=[],d=[],p=0;p<l;p++)f[p]=new THREE__namespace.Vector3,d[p]=new THREE__namespace.Vector3;var v=new THREE__namespace.Vector3,g=new THREE__namespace.Vector3,h=new THREE__namespace.Vector3,m=new THREE__namespace.Vector2,y=new THREE__namespace.Vector2,A=new THREE__namespace.Vector2,E=new THREE__namespace.Vector3,b=new THREE__namespace.Vector3;function T(z,q,G){v.fromArray(o,z*3),g.fromArray(o,q*3),h.fromArray(o,G*3),m.fromArray(u,z*2),y.fromArray(u,q*2),A.fromArray(u,G*2);var J=g.x-v.x,X=h.x-v.x,j=g.y-v.y,Y=h.y-v.y,Z=g.z-v.z,W=h.z-v.z,ae=y.x-m.x,re=A.x-m.x,se=y.y-m.y,ie=A.y-m.y,fe=1/(ae*ie-re*se);E.set((ie*J-se*X)*fe,(ie*j-se*Y)*fe,(ie*Z-se*W)*fe),b.set((ae*X-re*J)*fe,(ae*Y-re*j)*fe,(ae*W-re*Z)*fe),f[z].add(E),f[q].add(E),f[G].add(E),d[z].add(b),d[q].add(b),d[G].add(b)}var _=n.groups;_.length===0&&(_=[{start:0,count:r.length}]);for(var p=0,R=_.length;p<R;++p)for(var S=_[p],M=S.start,B=S.count,H=M,w=M+B;H<w;H+=3)T(r[H+0],r[H+1],r[H+2]);var C=new THREE__namespace.Vector3,F=new THREE__namespace.Vector3,I=new THREE__namespace.Vector3,L=new THREE__namespace.Vector3,k,N,D;function U(z){I.fromArray(s,z*3),L.copy(I),N=f[z],C.copy(N),C.sub(I.multiplyScalar(I.dot(N))).normalize(),F.crossVectors(L,N),D=F.dot(d[z]),k=D<0?-1:1,c[z*4]=C.x,c[z*4+1]=C.y,c[z*4+2]=C.z,c[z*4+3]=k}for(var p=0,R=_.length;p<R;++p)for(var S=_[p],M=S.start,B=S.count,H=M,w=M+B;H<w;H+=3)U(r[H+0]),U(r[H+1]),U(r[H+2])},mergeBufferGeometries:function(n,t){for(var e=n[0].index!==null,r=new Set(Object.keys(n[0].attributes)),o=new Set(Object.keys(n[0].morphAttributes)),s={},u={},l=new THREE__namespace.BufferGeometry,c=0,f=0;f<n.length;++f){var d=n[f];if(e!==(d.index!==null))return null;for(var p in d.attributes){if(!r.has(p))return null;s[p]===void 0&&(s[p]=[]),s[p].push(d.attributes[p])}for(var p in d.morphAttributes){if(!o.has(p))return null;u[p]===void 0&&(u[p]=[]),u[p].push(d.morphAttributes[p])}if(l.userData.mergedUserData=l.userData.mergedUserData||[],l.userData.mergedUserData.push(d.userData),t){var v;if(e)v=d.index.count;else if(d.attributes.position!==void 0)v=d.attributes.position.count;else return null;l.addGroup(c,v,f),c+=v}}if(e){for(var g=0,h=[],f=0;f<n.length;++f){for(var m=n[f].index,y=0;y<m.count;++y)h.push(m.getX(y)+g);g+=n[f].attributes.position.count}l.setIndex(h)}for(var p in s){var A=this.mergeBufferAttributes(s[p]);if(!A)return null;l.setAttribute(p,A)}for(var p in u){var E=u[p][0].length;if(E===0)break;l.morphAttributes=l.morphAttributes||{},l.morphAttributes[p]=[];for(var f=0;f<E;++f){for(var b=[],y=0;y<u[p].length;++y)b.push(u[p][y][f]);var T=this.mergeBufferAttributes(b);if(!T)return null;l.morphAttributes[p].push(T)}}return l},mergeBufferAttributes:function(n){for(var t,e,r,o=0,s=0;s<n.length;++s){var u=n[s];if(u.isInterleavedBufferAttribute||(t===void 0&&(t=u.array.constructor),t!==u.array.constructor)||(e===void 0&&(e=u.itemSize),e!==u.itemSize)||(r===void 0&&(r=u.normalized),r!==u.normalized))return null;o+=u.array.length}for(var l=new t(o),c=0,s=0;s<n.length;++s)l.set(n[s].array,c),c+=n[s].array.length;return new THREE__namespace.BufferAttribute(l,e,r)},interleaveAttributes:function(n){for(var t,e=0,r=0,o=0,s=n.length;o<s;++o){var u=n[o];if(t===void 0&&(t=u.array.constructor),t!==u.array.constructor)return console.warn("AttributeBuffers of different types cannot be interleaved"),null;e+=u.array.length,r+=u.itemSize}for(var l=new THREE__namespace.InterleavedBuffer(new t(e),r),c=0,f=[],d=["getX","getY","getZ","getW"],p=["setX","setY","setZ","setW"],v=0,s=n.length;v<s;v++){var u=n[v],g=u.itemSize,h=u.count,m=new THREE__namespace.InterleavedBufferAttribute(l,g,c,u.normalized);f.push(m),c+=g;for(var y=0;y<h;y++)for(var A=0;A<g;A++)m[p[A]](y,u[d[A]](y))}return f},estimateBytesUsed:function(n){var t=0;for(var e in n.attributes){var r=n.getAttribute(e);t+=r.count*r.itemSize*r.array.BYTES_PER_ELEMENT}var o=n.getIndex();return t+=o?o.count*o.itemSize*o.array.BYTES_PER_ELEMENT:0,t},mergeVertices:function(n,t){t===void 0&&(t=1e-4),t=Math.max(t,Number.EPSILON);for(var e={},r=n.getIndex(),o=n.getAttribute("position"),s=r?r.count:o.count,u=0,l=Object.keys(n.attributes),c={},f={},d=[],p=["getX","getY","getZ","getW"],v=0,g=l.length;v<g;v++){var h=l[v];c[h]=[];var m=n.morphAttributes[h];m&&(f[h]=new Array(m.length).fill().map(function(){return[]}))}for(var y=Math.log10(1/t),A=Math.pow(10,y),v=0;v<s;v++){for(var E=r?r.getX(v):v,b="",T=0,g=l.length;T<g;T++)for(var h=l[T],_=n.getAttribute(h),R=_.itemSize,S=0;S<R;S++)b+="".concat(~~(_[p[S]](E)*A),",");if(b in e)d.push(e[b]);else{for(var T=0,g=l.length;T<g;T++)for(var h=l[T],_=n.getAttribute(h),m=n.morphAttributes[h],R=_.itemSize,M=c[h],B=f[h],S=0;S<R;S++){var H=p[S];if(M.push(_[H](E)),m)for(var w=0,C=m.length;w<C;w++)B[w].push(m[w][H](E))}e[b]=u,d.push(u),u++}}for(var F=n.clone(),v=0,g=l.length;v<g;v++){var h=l[v],I=n.getAttribute(h),L=new I.array.constructor(c[h]),_=new THREE__namespace.BufferAttribute(L,I.itemSize,I.normalized);if(F.setAttribute(h,_),h in f)for(var T=0;T<f[h].length;T++){var k=n.morphAttributes[h][T],L=new k.array.constructor(f[h][T]),N=new THREE__namespace.BufferAttribute(L,k.itemSize,k.normalized);F.morphAttributes[h][T]=N}}return F.setIndex(d),F}};function isThirdPersonMode(n){switch(n){case"Floorplan":return!0;case"Mapview":return!0;default:return!1}}function isFristPersonMode(n){switch(n){case"Panorama":return!0;case"VRPanorama":return!0;case"XRPanorama":return!0;case"Model":return!0;default:return!1}}var scratchVector3=new THREE__namespace.Vector3,scratchSphere=new THREE__namespace.Sphere,scratchMatrix4=new THREE__namespace.Matrix4,scratchMatrix4Inverse=new THREE__namespace.Matrix4,scratchBoundingBox=new THREE__namespace.Box3,ROTATE_X_90_MATRIX=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1]),ROTATE_X_90_MATRIX_INVERSE=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]),DEFAULT_BOUNDING=new THREE__namespace.Box3(new THREE__namespace.Vector3(-.5,-.5,-.5),new THREE__namespace.Vector3(.5,.5,.5));function getEcefToEnuMatrixFromUpAxis(n,t,e){switch(n){case"Z":break;case"Y":e.copy(ROTATE_X_90_MATRIX_INVERSE);break;case"-Y":e.copy(ROTATE_X_90_MATRIX);break;case"WGS84":case"GCJ02":case"BD09":getEcefToEnuMatrix(t,e);break;default:e.identity();break}return e}function getExt(n){var t=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(n);if(t){var e=String(t[1]).trim().split(".").slice(1).reverse()[0];if(e)return e}return""}var ModelViewLayer=function(){function n(t,e){this.scene=t,this.error=e,t.viewLayer=this}return Object.defineProperty(n.prototype,"name",{get:function(){return this.scene.name},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"type",{get:function(){return this.scene.type},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"upAxis",{get:function(){return this.scene.upAxis},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"groundHeight",{get:function(){return this.scene.groundHeight},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"model",{get:function(){return this.scene.model},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"coordinates",{get:function(){scratchVector3.setScalar(0);var t=this.scene.localToLla(scratchVector3),e=t.x,r=t.y;return[e,r].map(function(o){return(o/Math.PI*180).toFixed(6)}).join(",")},enumerable:!1,configurable:!0}),n.prototype.getTransformMatrix4=function(t){return t===void 0&&(t=new THREE__namespace.Matrix4),t.copy(this.scene.coordinateTransform.ecefToLocalMatrix),this.scene&&t.premultiply(this.scene.matrixWorld),t},n.prototype.coordinatesToWorldPoint=function(t){var e=new THREE__namespace.Vector3(t.latitude,t.longitude,t.altitude);return this.scene.llaToWorld(e)},n.prototype.worldPointToCoordinates=function(t){return scratchVector3.copy(t),this.scene.worldToLla(scratchVector3),{latitude:scratchVector3.x,longitude:scratchVector3.y,altitude:scratchVector3.z}},n}(),Model=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,o,s,u=n.call(this)||this;return u.name="",u.onError=(r=e.onError)!==null&&r!==void 0?r:noop$1,u.onShownFloorChange=(o=e.onShownFloorChange)!==null&&o!==void 0?o:noop$1,u.onLoad=(s=e.onLoad)!==null&&s!==void 0?s:noop$1,u.work=null,u.viewLayers=[],u.bounding=new THREE__namespace.Box3(new THREE__namespace.Vector3,new THREE__namespace.Vector3),u.floorLength=0,u.textureOptions={},u.refined=!1,u.refineProgress=[0,0],u.loaded=!1,u.matrixAutoUpdate=!1,u.needsRender=!0,u.autoRefine=!0,u.materialVersion=0,u.materialParameters=__assign({},defaultPbmParameters),u.cacheCameras=[],u.disposed=!1,u}return Object.defineProperty(t.prototype,"empty",{get:function(){return this.viewLayers.length===0},enumerable:!1,configurable:!0}),t.prototype.getMaterial=function(){return __assign({},this.materialParameters)},t.prototype.setMaterial=function(e){var r=this.materialParameters.shownFloorIndex,o=updatePBMParameters(this.materialParameters,e);if(o){var s=this.materialParameters.shownFloorIndex;r!==s&&this.onShownFloorChange(s),this.materialVersion++,this.needsRender=!0}},Object.defineProperty(t.prototype,"brightness",{get:function(){return this.materialParameters.brightness},set:function(e){this.setMaterial({brightness:typeof e=="number"?e:1})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shownFloorIndex",{get:function(){return this.materialParameters.shownFloorIndex},set:function(e){this.setMaterial({shownFloorIndex:e})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shownFloor",{get:function(){return this.shownFloorIndex===-1?null:this.shownFloorIndex},set:function(e){this.shownFloorIndex=e===null?-1:e},enumerable:!1,configurable:!0}),t.prototype.show=function(e){this.shownFloor=e!=null?e:null},Object.defineProperty(t.prototype,"clippers",{get:function(){return this.materialParameters.clippers},set:function(e){this.setMaterial({clippers:e})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"customShaders",{get:function(){return this.materialParameters.customShaders},set:function(e){this.setMaterial({customShaders:e})},enumerable:!1,configurable:!0}),t.prototype.getEdgesBySphere=function(e,r){r===void 0&&(r=30/180*Math.PI);for(var o=Math.cos(r),s=[],u=0,l=this.children;u<l.length;u++){var c=l[u];c instanceof Tile3DModel&&c.tileset.selectedTiles.forEach(function(f){var d,p,v;if(!(f.boundingVolume&&f.boundingVolume.distanceToPoint(e.center)>e.radius)){var g=(p=(d=f.content)===null||d===void 0?void 0:d.data)===null||p===void 0?void 0:p.object;if(g&&g.visible){var h=[];if(g.traverseVisible(function(G){if(G instanceof THREE__namespace.Mesh){var J=bvhMeshMap.get(G);if(J){scratchMatrix4.copy(G.matrixWorld),scratchMatrix4Inverse.getInverse(scratchMatrix4),scratchSphere.copy(e).applyMatrix4(scratchMatrix4Inverse);var X=J.trianglesInSphere(scratchSphere.center,scratchSphere.radius),j=new THREE__namespace.BufferGeometry;j.setAttribute("position",new THREE__namespace.BufferAttribute(X,3)),j.applyMatrix4(G.matrixWorld),j=BufferGeometryUtils.mergeVertices(j,.01),h.push(j)}}}),h.length===0)return;for(var m=["a","b","c"],y=BufferGeometryUtils.mergeBufferGeometries(h,!1),A=y.getAttribute("position").array,E=((v=y.getIndex())===null||v===void 0?void 0:v.array)||[],b=[],T=[],_=0,R=A.length;_<R;_+=3){var S=new THREE__namespace.Vector3(A[_],A[_+1],A[_+2]);b.push(S)}for(var _=0,R=E.length;_<R;_+=3){var M=E[_],B=E[_+1],H=E[_+2],w=new THREE__namespace.Vector3().crossVectors(b[B].clone().sub(b[M]),b[H].clone().sub(b[M])).normalize();T.push({a:M,b:B,c:H,normal:w})}for(var C={},_=0,R=T.length;_<R;_++)for(var F=T[_],I=0;I<3;I++){var L=F[m[I]],k=F[m[(I+1)%3]],N=[Math.min(L,k),Math.max(L,k)],D=N[0]+"-"+N[1];C[D]===void 0?C[D]={index1:N[0],index2:N[1],face1:_}:C[D].face2=_}for(var D in C){var U=C[D];if(U.face2===void 0||T[U.face1].normal.dot(T[U.face2].normal)<=o){var z=b[U.index1],q=b[U.index2];s.push(new THREE__namespace.Line3(z,q))}}b.length=0,T.length=0}}})}return s},t.prototype.intersectRaycaster=function(e,r,o){r===void 0&&(r=null),o===void 0&&(o=!0);for(var s=[],u=0,l=this.children.length;u<l;u++){var c=this.children[u];c.visible&&c instanceof Tile3DModel&&c.intersectRaycaster(e,!1,s)}return r!=null&&(s=s.filter(function(f){return f.floor===r})),this.getMaterial().pointBack==="HIDDEN"&&(s=s.filter(function(f){return!(f.object instanceof PBMPointCloud&&f.face&&f.face.normal.angleTo(e.ray.direction)<Math.PI/2)})),o&&s.sort(function(f,d){return f.distance-d.distance}),s},t.prototype.load=function(e,r){var o,s=this,u,l,c,f;if(r===void 0&&(r={}),this.work=e,this.name=this.work.workCode,!e.model)return Promise.resolve();for(var d=e.model,p=0,v=0,g=e.observers;v<g.length;v++){var h=g[v];p=Math.max(p,h.floorIndex)}this.floorLength=p+1;for(var m=!1,y=[],A=function(j){var Y=j.tileset,Z=j.upAxis,W=j.name,ae=j.type;ae==="mesh"&&(m=!0);var re=Y.split("#"),se=re[0],ie=re[1],fe=(u=(ie||se).split("?")[1])!==null&&u!==void 0?u:"",ne=typeof r["3d-tiles"]=="function"?r["3d-tiles"](j):(l=r["3d-tiles"])!==null&&l!==void 0?l:{},pe=getFetcher(e).ajax(Y,{responseType:"text"}).then(function(_e){var me,xe=Y?Y.slice(0,Y.lastIndexOf("/")+1):"",$=normalizeTilesetHeader(JSON.parse(_e.body),xe),te=$.root,Q=$.rootMeta,be=Q===void 0?{}:Q;be.upAxis&&be.upAxis!==Z&&(Z=be.upAxis),"lodVersion"in $&&(Z="-Y","floorInfo"in $&&($.properties=$.properties||{},$.properties.floorInfo=$.floorInfo.map(function(qe){return{ground:-qe.ground,height:qe.height}}),delete $.floorInfo),$.asset.tilesetVersion=String($.lodVersion),delete $.lodVersion);var ye=te.boundingVolume?makeBoundingVolume(te.boundingVolume):void 0;ye&&te.transform&&ye.applyMatrix4(scratchMatrix4.fromArray(te.transform));var Ae=null,Me=new THREE__namespace.Matrix4,ge=new THREE__namespace.Matrix4;be.coordinate?(Ae=be.coordinate.ground_height,Me.fromArray(be.coordinate.pose_ecef_to_enu),ge.fromArray(be.coordinate.pose_enu_to_ecef)):(ye?ye.getCenter(scratchVector3):scratchVector3.setScalar(0),getEcefToEnuMatrixFromUpAxis(Z,scratchVector3,Me),ge.getInverse(Me));var he=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),de=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE),ce=new THREE__namespace.Matrix4().premultiply(Me).premultiply(he),le=new THREE__namespace.Matrix4().getInverse(ce),we;if(ne.viewerRequestVolume){var ue=isBoundingVolume(ne.viewerRequestVolume)?ne.viewerRequestVolume:makeBoundingVolume(ne.viewerRequestVolume);ue.applyMatrix4(le),we=ue.toJson()}$.root={refine:(me=te.refine)!==null&&me!==void 0?me:"REPLACE",geometricError:te.geometricError,transform:ce.toArray(),boundingVolume:ye?ye.toJson():void 0,viewerRequestVolume:we,children:[te]};var ve=new Tile3DModel(s,$,{name:W,type:ae,upAxis:Z,url:Y,referer:Y,search:fe,fetcher:getFetcher(e),groundHeight:Ae,coordinateTransform:{localToEnuMatrix:de,enuToLocalMatrix:he,enuToEcefMatrix:ge,ecefToEnuMatrix:Me,localToEcefMatrix:le,ecefToLocalMatrix:ce}});return ve.matrix.copy(e.transform),ve.matrix.decompose(ve.position,ve.quaternion,ve.scale),ve.matrixWorldNeedsUpdate=!0,Object.assign(ve.maxMemoryUsage,ve.getRecommendProps()),typeof ne.debug!="undefined"&&(ve.debug=ne.debug),typeof ne.minLevelOfDetail!="undefined"&&(ve.minLevelOfDetail=ne.minLevelOfDetail),typeof ne.maxLevelOfDetail!="undefined"&&(ve.maxLevelOfDetail=ne.maxLevelOfDetail),typeof ne.skipLevelOfDetail!="undefined"&&(ve.skipLevelOfDetail=ne.skipLevelOfDetail),typeof ne.mostDetail!="undefined"&&(ve.mostDetail=ne.mostDetail),typeof ne.loadSiblings!="undefined"&&(ve.loadSiblings=ne.loadSiblings),typeof ne.loadAll!="undefined"&&(ve.loadAll=ne.loadAll),typeof ne.maxMemoryUsage!="undefined"&&(ve.maxMemoryUsage=ne.maxMemoryUsage),typeof ne.maxRequests!="undefined"&&(ve.maxRequests=ne.maxRequests),typeof ne.requestOrder!="undefined"&&(ve.requestOrder=ne.requestOrder),typeof ne.maxScreenSpaceError!="undefined"&&(ve.maxScreenSpaceError=ne.maxScreenSpaceError),(ne.showLayers===!1||Array.isArray(ne.showLayers)&&ne.showLayers.indexOf(W)===-1)&&(ve.visible=!1),new ModelViewLayer(ve,null)});y.push(pe.catch(function(_e){s.onError(_e);var me=new THREE__namespace.Matrix4,xe=new THREE__namespace.Matrix4,$=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),te=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE),Q=new THREE__namespace.Matrix4().premultiply(me).premultiply($),be=new THREE__namespace.Matrix4().getInverse(Q),ye=Y?Y.slice(0,Y.lastIndexOf("/")+1):"",Ae;if(ne.viewerRequestVolume){var Me=isBoundingVolume(ne.viewerRequestVolume)?ne.viewerRequestVolume:makeBoundingVolume(ne.viewerRequestVolume);Me.applyMatrix4(be),Ae=Me.toJson()}var ge=normalizeTilesetHeader({asset:{version:"0.0"},geometricError:0,viewerRequestVolume:Ae,root:{geometricError:0}},ye),he=new Tile3DModel(s,ge,{name:W,type:ae,upAxis:Z,url:Y,referer:Y,search:fe,fetcher:getFetcher(e),groundHeight:null,coordinateTransform:{localToEnuMatrix:te,enuToLocalMatrix:$,enuToEcefMatrix:xe,ecefToEnuMatrix:me,localToEcefMatrix:be,ecefToLocalMatrix:Q},onError:s.onError});return he.matrix.copy(e.transform),he.matrix.decompose(he.position,he.quaternion,he.scale),he.matrixWorldNeedsUpdate=!0,(ne.showLayers===!1||Array.isArray(ne.showLayers)&&ne.showLayers.indexOf(W)===-1)&&(he.visible=!1),new ModelViewLayer(he,_e)}))},E=0,b=d.layers;E<b.length;E++){var T=b[E];A(T)}if(!m&&d.file){var _=d.file,R=d.textureBase,S=d.textures,M="fallback",B="mesh",H="Z",w="",T={name:M,type:B,upAxis:H,tileset:w},C=typeof r["3d-tiles"]=="function"?r["3d-tiles"](T):(c=r["3d-tiles"])!==null&&c!==void 0?c:{},F=getExt(_)||"at3d",I=new THREE__namespace.Matrix4,L=new THREE__namespace.Matrix4,k=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),N=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE);getEcefToEnuMatrixFromUpAxis(H,scratchVector3.setScalar(0),I),L.getInverse(I);var D=new THREE__namespace.Matrix4().premultiply(I).premultiply(k),U=new THREE__namespace.Matrix4().getInverse(D),z=void 0;if(C.viewerRequestVolume){var q=isBoundingVolume(C.viewerRequestVolume)?C.viewerRequestVolume:makeBoundingVolume(C.viewerRequestVolume);q.applyMatrix4(U),z=q.toJson()}var G=normalizeTilesetHeader({asset:{gltfUpAxis:"Z",version:"0.0"},geometricError:0,root:{refine:"REPLACE",geometricError:0,transform:D.toArray(),viewerRequestVolume:z,content:{uri:_},extras:(o={},o[F]={textureBaseUri:R,textureArray:S,textureOptions:(f=r.textureOptions)!==null&&f!==void 0?f:{}},o)}},""),J=new Tile3DModel(this,G,{name:M,type:B,upAxis:H,url:w,referer:_,fetcher:getFetcher(e),groundHeight:null,coordinateTransform:{localToEnuMatrix:N,enuToLocalMatrix:k,enuToEcefMatrix:L,ecefToEnuMatrix:I,localToEcefMatrix:U,ecefToLocalMatrix:D},onError:this.onError});J.matrix.copy(e.transform),J.matrix.decompose(J.position,J.quaternion,J.scale),J.matrixWorldNeedsUpdate=!0,(C.showLayers===!1||Array.isArray(C.showLayers)&&C.showLayers.indexOf(M)===-1)&&(J.visible=!1);var X=new ModelViewLayer(J,null);y.push(Promise.resolve(X))}return Promise.all(y).then(function(j){for(var Y=0,Z=j;Y<Z.length;Y++){var W=Z[Y];if(s.disposed){W.scene.dispose();continue}s.viewLayers.push(W),s.add(W.scene)}})},t.prototype.update=function(e,r,o){if(this.children.length){var s=this.loaded;this.refined=this.work!==null,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=this.work!==null;for(var u=0,l=this.viewLayers;u<l.length;u++){var c=l[u],f=c.scene;f&&(this.work&&(f.cacheCameras=this.cacheCameras,this.autoRefine===!1?f.needsRefined=!1:isFristPersonMode(o)?f.needsRefined=this.materialParameters.modelAlpha===0||this.materialParameters.modelAlpha===1:f.needsRefined=!0,this.work.transform.equals(f.matrix)||(f.matrix.copy(this.work.transform),f.matrix.decompose(f.position,f.quaternion,f.scale),f.matrixWorldNeedsUpdate=!0)),f.update(e,r,o),f.needsRender===!0&&(f.needsRender=!1,this.needsRender=!0),f.refined===!1&&(this.refined=!1),this.refineProgress[0]+=f.refineProgress[0],this.refineProgress[1]+=f.refineProgress[1],f.loaded===!1&&(this.loaded=!1))}this.bounding.makeEmpty();for(var d=0,p=this.viewLayers;d<p.length;d++){var c=p[d],f=c.scene;f&&(f.boundingBox.isEmpty()||(scratchBoundingBox.copy(f.boundingBox).applyMatrix4(f.matrix),this.bounding.union(scratchBoundingBox)))}this.bounding.isEmpty()&&this.bounding.copy(DEFAULT_BOUNDING),s===!1&&this.loaded===!0&&this.onLoad()}else this.work&&!this.work.model?(this.refined=!0,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=!0):(this.refined=!1,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=!1),this.bounding.set(new THREE__namespace.Vector3,new THREE__namespace.Vector3)},t.prototype.dispose=function(){this.disposed=!0;for(var e;e=this.children[0];)e instanceof Tile3DModel&&e.dispose(),this.remove(e)},t}(THREE__namespace.Object3D);function createModels(){var n=new THREE__namespace.Box3,t=omit(defaultPbmParameters,["clippers","shownFloorIndex","brightness","customShaders"]),e=Object.assign([],{bounding:n,needsRender:!1,refined:!1,refineProgress:[0,0],loaded:!1,materialVersion:0,cacheCameras:[],autoUpdate:!0,intersectRaycaster:function(r,o,s){s===void 0&&(s=!0);var u;if(e.length===1)u=e[0].intersectRaycaster(r,o,s);else if(e.length===0)u=[];else{u=[];for(var l=0,c=e;l<c.length;l++){var f=c[l];if(f.visible){var d=f.intersectRaycaster(r,o,!1);d.length&&u.push.apply(u,d)}}s&&u.sort(function(p,v){return p.distance-v.distance})}return u},setMaterial:function(r){var o=updatePBMParameters(t,r);o&&(e.materialVersion++,e.needsRender=!0)},getMaterial:function(){return __assign({},t)},resetBrightness:function(){for(var r=0,o=e;r<o.length;r++){var s=o[r];s.setMaterial({brightness:1})}},update:function(r,o,s){e.refined=e.length>0,e.loaded=e.length>0,e.refineProgress[0]=0,e.refineProgress[1]=0,n.makeEmpty();for(var u=0,l=e.cacheCameras;u<l.length;u++){var c=l[u];c.updateMatrixWorld(!0),c.updateProjectionMatrix()}for(var f=0,d=0,p=e;d<p.length;d++){for(var v=p[d],g=0,h=v.viewLayers;g<h.length;g++){var m=h[g];m.scene.modelIndex=f++}v.setMaterial(t),v.cacheCameras=e.cacheCameras,v.autoRefine=this.autoUpdate,v.update(r,o,s),v.needsRender===!0&&(e.needsRender=!0,v.needsRender=!1),v.refined===!1&&(e.refined=!1),e.refineProgress[0]+=v.refineProgress[0],e.refineProgress[1]+=v.refineProgress[1],v.loaded===!1&&(e.loaded=!1),n.union(v.bounding)}for(var y=0,A=e;y<A.length;y++)for(var v=A[y],E=0,b=v.viewLayers;E<b.length;E++){var m=b[E];m.scene.modelsLoaded=e.loaded}n.isEmpty()&&n.copy(DEFAULT_BOUNDING)}});return e}var easeOut$2=function(n){return n*(2-n)},sharedGeometry2$2=function(){var n=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),t=new Float32Array([1,0,0,0,1,1,0,1]),e=new Uint8Array([0,2,1,2,3,1]),r=new THREE__namespace.BufferGeometry;return r.setAttribute("position",new THREE__namespace.BufferAttribute(n,3)),r.setAttribute("uv",new THREE__namespace.BufferAttribute(t,2)),r.setIndex(new THREE__namespace.BufferAttribute(e,1)),r}(),vertexShader$4=`
|
|
1040
|
+
`+JSON.stringify(n))}}function createWorks(n){for(var t={},e=[],r={},o=0,s=n;o<s.length;o++){var u=s[o],l=t[u.workCode];l||(l=t[u.workCode]=new THREE__namespace.Matrix4().copy(u.transform));for(var c=0,f=u.observers;c<f.length;c++){var d=f[c],p={isResolved:!0,active:d.active,accessibleIds:d.accessibleIds,visibleIds:d.visibleIds,accessibleNodes:d.accessibleNodes,visibleNodes:d.visibleNodes,floorIndex:d.floorIndex,images:d.images,index:d.index,panoIndex:d.panoIndex,loadable:d.loadable,panoId:d.panoId,pano:d.pano,work:d.work,derivedId:d.derivedId,video:d.video,position:new THREE__namespace.Vector3().copy(d.position).applyMatrix4(l),standingPosition:new THREE__namespace.Vector3().copy(d.standingPosition).applyMatrix4(l),quaternion:new THREE__namespace.Quaternion().setFromRotationMatrix(scratchMatrix4$1.makeRotationFromQuaternion(d.quaternion).premultiply(l))};Object.freeze(p),e.push(p),r[p.panoId]=p}}Object.freeze(e);for(var v=n.slice(),g={},h=0,m=v;h<m.length;h++){var u=m[h];g[u.workCode]=u}return Object.freeze(Object.assign(v,{get initial(){return v.length>0?v[0].initial:{work:{}}},get resolvedObservers(){return e},getWork:function(y){return g[y]},getResolvedObserver:function(y){var A,E;return isPanoId(y)?r[y]:typeof y=="number"?r[panoStringify({workCode:(E=(A=n[0])===null||A===void 0?void 0:A.workCode)!==null&&E!==void 0?E:"",panoIndex:y})]:r[panoStringify(y)]},update:function(){for(var y=0,A=v;y<A.length;y++){var E=A[y],b=E.transform,T=t[E.workCode];T?T.equals(b)||(T.copy(b),needsUpdateWorkCodeSet.add(E.workCode)):(t[E.workCode]=new THREE__namespace.Matrix4().copy(b),needsUpdateWorkCodeSet.add(E.workCode))}if(needsUpdateWorkCodeSet.size>0){for(var _=0,R=e;_<R.length;_++){var S=R[_];if(needsUpdateWorkCodeSet.has(S.work.workCode)){var M=S.work.observers[S.index],B=S.work.transform;S.position.copy(M.position).applyMatrix4(B),S.standingPosition.copy(M.standingPosition).applyMatrix4(B),S.quaternion.setFromRotationMatrix(scratchMatrix4$1.makeRotationFromQuaternion(M.quaternion).premultiply(B))}}needsUpdateWorkCodeSet.clear()}}}))}var fetcherMap=new Map;function getFetcher(n){var t=fetcherMap.get(n);if(t)return t;throw new Error("fetcher never registered.")}function registerFetcher(n,t){return fetcherMap.set(n,t)}var BufferGeometryUtils={computeTangents:function(n){var t=n.index,e=n.attributes;if(t===null||e.position===void 0||e.normal===void 0||e.uv===void 0){console.warn("THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");return}var r=t.array,o=e.position.array,s=e.normal.array,u=e.uv.array,l=o.length/3;e.tangent===void 0&&n.setAttribute("tangent",new THREE__namespace.BufferAttribute(new Float32Array(4*l),4));for(var c=e.tangent.array,f=[],d=[],p=0;p<l;p++)f[p]=new THREE__namespace.Vector3,d[p]=new THREE__namespace.Vector3;var v=new THREE__namespace.Vector3,g=new THREE__namespace.Vector3,h=new THREE__namespace.Vector3,m=new THREE__namespace.Vector2,y=new THREE__namespace.Vector2,A=new THREE__namespace.Vector2,E=new THREE__namespace.Vector3,b=new THREE__namespace.Vector3;function T(z,q,G){v.fromArray(o,z*3),g.fromArray(o,q*3),h.fromArray(o,G*3),m.fromArray(u,z*2),y.fromArray(u,q*2),A.fromArray(u,G*2);var J=g.x-v.x,X=h.x-v.x,j=g.y-v.y,Y=h.y-v.y,Z=g.z-v.z,W=h.z-v.z,ae=y.x-m.x,re=A.x-m.x,se=y.y-m.y,ie=A.y-m.y,fe=1/(ae*ie-re*se);E.set((ie*J-se*X)*fe,(ie*j-se*Y)*fe,(ie*Z-se*W)*fe),b.set((ae*X-re*J)*fe,(ae*Y-re*j)*fe,(ae*W-re*Z)*fe),f[z].add(E),f[q].add(E),f[G].add(E),d[z].add(b),d[q].add(b),d[G].add(b)}var _=n.groups;_.length===0&&(_=[{start:0,count:r.length}]);for(var p=0,R=_.length;p<R;++p)for(var S=_[p],M=S.start,B=S.count,H=M,w=M+B;H<w;H+=3)T(r[H+0],r[H+1],r[H+2]);var C=new THREE__namespace.Vector3,F=new THREE__namespace.Vector3,I=new THREE__namespace.Vector3,L=new THREE__namespace.Vector3,k,N,D;function U(z){I.fromArray(s,z*3),L.copy(I),N=f[z],C.copy(N),C.sub(I.multiplyScalar(I.dot(N))).normalize(),F.crossVectors(L,N),D=F.dot(d[z]),k=D<0?-1:1,c[z*4]=C.x,c[z*4+1]=C.y,c[z*4+2]=C.z,c[z*4+3]=k}for(var p=0,R=_.length;p<R;++p)for(var S=_[p],M=S.start,B=S.count,H=M,w=M+B;H<w;H+=3)U(r[H+0]),U(r[H+1]),U(r[H+2])},mergeBufferGeometries:function(n,t){for(var e=n[0].index!==null,r=new Set(Object.keys(n[0].attributes)),o=new Set(Object.keys(n[0].morphAttributes)),s={},u={},l=new THREE__namespace.BufferGeometry,c=0,f=0;f<n.length;++f){var d=n[f];if(e!==(d.index!==null))return null;for(var p in d.attributes){if(!r.has(p))return null;s[p]===void 0&&(s[p]=[]),s[p].push(d.attributes[p])}for(var p in d.morphAttributes){if(!o.has(p))return null;u[p]===void 0&&(u[p]=[]),u[p].push(d.morphAttributes[p])}if(l.userData.mergedUserData=l.userData.mergedUserData||[],l.userData.mergedUserData.push(d.userData),t){var v;if(e)v=d.index.count;else if(d.attributes.position!==void 0)v=d.attributes.position.count;else return null;l.addGroup(c,v,f),c+=v}}if(e){for(var g=0,h=[],f=0;f<n.length;++f){for(var m=n[f].index,y=0;y<m.count;++y)h.push(m.getX(y)+g);g+=n[f].attributes.position.count}l.setIndex(h)}for(var p in s){var A=this.mergeBufferAttributes(s[p]);if(!A)return null;l.setAttribute(p,A)}for(var p in u){var E=u[p][0].length;if(E===0)break;l.morphAttributes=l.morphAttributes||{},l.morphAttributes[p]=[];for(var f=0;f<E;++f){for(var b=[],y=0;y<u[p].length;++y)b.push(u[p][y][f]);var T=this.mergeBufferAttributes(b);if(!T)return null;l.morphAttributes[p].push(T)}}return l},mergeBufferAttributes:function(n){for(var t,e,r,o=0,s=0;s<n.length;++s){var u=n[s];if(u.isInterleavedBufferAttribute||(t===void 0&&(t=u.array.constructor),t!==u.array.constructor)||(e===void 0&&(e=u.itemSize),e!==u.itemSize)||(r===void 0&&(r=u.normalized),r!==u.normalized))return null;o+=u.array.length}for(var l=new t(o),c=0,s=0;s<n.length;++s)l.set(n[s].array,c),c+=n[s].array.length;return new THREE__namespace.BufferAttribute(l,e,r)},interleaveAttributes:function(n){for(var t,e=0,r=0,o=0,s=n.length;o<s;++o){var u=n[o];if(t===void 0&&(t=u.array.constructor),t!==u.array.constructor)return console.warn("AttributeBuffers of different types cannot be interleaved"),null;e+=u.array.length,r+=u.itemSize}for(var l=new THREE__namespace.InterleavedBuffer(new t(e),r),c=0,f=[],d=["getX","getY","getZ","getW"],p=["setX","setY","setZ","setW"],v=0,s=n.length;v<s;v++){var u=n[v],g=u.itemSize,h=u.count,m=new THREE__namespace.InterleavedBufferAttribute(l,g,c,u.normalized);f.push(m),c+=g;for(var y=0;y<h;y++)for(var A=0;A<g;A++)m[p[A]](y,u[d[A]](y))}return f},estimateBytesUsed:function(n){var t=0;for(var e in n.attributes){var r=n.getAttribute(e);t+=r.count*r.itemSize*r.array.BYTES_PER_ELEMENT}var o=n.getIndex();return t+=o?o.count*o.itemSize*o.array.BYTES_PER_ELEMENT:0,t},mergeVertices:function(n,t){t===void 0&&(t=1e-4),t=Math.max(t,Number.EPSILON);for(var e={},r=n.getIndex(),o=n.getAttribute("position"),s=r?r.count:o.count,u=0,l=Object.keys(n.attributes),c={},f={},d=[],p=["getX","getY","getZ","getW"],v=0,g=l.length;v<g;v++){var h=l[v];c[h]=[];var m=n.morphAttributes[h];m&&(f[h]=new Array(m.length).fill().map(function(){return[]}))}for(var y=Math.log10(1/t),A=Math.pow(10,y),v=0;v<s;v++){for(var E=r?r.getX(v):v,b="",T=0,g=l.length;T<g;T++)for(var h=l[T],_=n.getAttribute(h),R=_.itemSize,S=0;S<R;S++)b+="".concat(~~(_[p[S]](E)*A),",");if(b in e)d.push(e[b]);else{for(var T=0,g=l.length;T<g;T++)for(var h=l[T],_=n.getAttribute(h),m=n.morphAttributes[h],R=_.itemSize,M=c[h],B=f[h],S=0;S<R;S++){var H=p[S];if(M.push(_[H](E)),m)for(var w=0,C=m.length;w<C;w++)B[w].push(m[w][H](E))}e[b]=u,d.push(u),u++}}for(var F=n.clone(),v=0,g=l.length;v<g;v++){var h=l[v],I=n.getAttribute(h),L=new I.array.constructor(c[h]),_=new THREE__namespace.BufferAttribute(L,I.itemSize,I.normalized);if(F.setAttribute(h,_),h in f)for(var T=0;T<f[h].length;T++){var k=n.morphAttributes[h][T],L=new k.array.constructor(f[h][T]),N=new THREE__namespace.BufferAttribute(L,k.itemSize,k.normalized);F.morphAttributes[h][T]=N}}return F.setIndex(d),F}};function isThirdPersonMode(n){switch(n){case"Floorplan":return!0;case"Mapview":return!0;default:return!1}}function isFristPersonMode(n){switch(n){case"Panorama":return!0;case"VRPanorama":return!0;case"XRPanorama":return!0;case"Model":return!0;default:return!1}}var scratchVector3=new THREE__namespace.Vector3,scratchSphere=new THREE__namespace.Sphere,scratchMatrix4=new THREE__namespace.Matrix4,scratchMatrix4Inverse=new THREE__namespace.Matrix4,scratchBoundingBox=new THREE__namespace.Box3,ROTATE_X_90_MATRIX=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1]),ROTATE_X_90_MATRIX_INVERSE=new THREE__namespace.Matrix4().fromArray([1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1]),DEFAULT_BOUNDING=new THREE__namespace.Box3(new THREE__namespace.Vector3(-.5,-.5,-.5),new THREE__namespace.Vector3(.5,.5,.5));function getEcefToEnuMatrixFromUpAxis(n,t,e){switch(n){case"Z":break;case"Y":e.copy(ROTATE_X_90_MATRIX_INVERSE);break;case"-Y":e.copy(ROTATE_X_90_MATRIX);break;case"WGS84":case"GCJ02":case"BD09":getEcefToEnuMatrix(t,e);break;default:e.identity();break}return e}function getExt(n){var t=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(n);if(t){var e=String(t[1]).trim().split(".").slice(1).reverse()[0];if(e)return e}return""}var ModelViewLayer=function(){function n(t,e){this.scene=t,this.error=e,t.viewLayer=this}return Object.defineProperty(n.prototype,"name",{get:function(){return this.scene.name},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"type",{get:function(){return this.scene.type},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"upAxis",{get:function(){return this.scene.upAxis},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"groundHeight",{get:function(){return this.scene.groundHeight},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"model",{get:function(){return this.scene.model},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"coordinates",{get:function(){scratchVector3.setScalar(0);var t=this.scene.localToLla(scratchVector3),e=t.x,r=t.y;return[e,r].map(function(o){return(o/Math.PI*180).toFixed(6)}).join(",")},enumerable:!1,configurable:!0}),n.prototype.getTransformMatrix4=function(t){return t===void 0&&(t=new THREE__namespace.Matrix4),t.copy(this.scene.coordinateTransform.ecefToLocalMatrix),this.scene&&t.premultiply(this.scene.matrixWorld),t},n.prototype.coordinatesToWorldPoint=function(t){var e=new THREE__namespace.Vector3(t.latitude,t.longitude,t.altitude);return this.scene.llaToWorld(e)},n.prototype.worldPointToCoordinates=function(t){return scratchVector3.copy(t),this.scene.worldToLla(scratchVector3),{latitude:scratchVector3.x,longitude:scratchVector3.y,altitude:scratchVector3.z}},n}(),Model=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,o,s,u=n.call(this)||this;return u.name="",u.onError=(r=e.onError)!==null&&r!==void 0?r:noop$1,u.onShownFloorChange=(o=e.onShownFloorChange)!==null&&o!==void 0?o:noop$1,u.onLoad=(s=e.onLoad)!==null&&s!==void 0?s:noop$1,u.work=null,u.viewLayers=[],u.bounding=new THREE__namespace.Box3(new THREE__namespace.Vector3,new THREE__namespace.Vector3),u.floorLength=0,u.textureOptions={},u.refined=!1,u.refineProgress=[0,0],u.loaded=!1,u.matrixAutoUpdate=!1,u.needsRender=!0,u.autoRefine=!0,u.materialVersion=0,u.materialParameters=__assign({},defaultPbmParameters),u.cacheCameras=[],u.disposed=!1,u}return Object.defineProperty(t.prototype,"empty",{get:function(){return this.viewLayers.length===0},enumerable:!1,configurable:!0}),t.prototype.getMaterial=function(){return __assign({},this.materialParameters)},t.prototype.setMaterial=function(e){var r=this.materialParameters.shownFloorIndex,o=updatePBMParameters(this.materialParameters,e);if(o){var s=this.materialParameters.shownFloorIndex;r!==s&&this.onShownFloorChange(s),this.materialVersion++,this.needsRender=!0}},Object.defineProperty(t.prototype,"brightness",{get:function(){return this.materialParameters.brightness},set:function(e){this.setMaterial({brightness:typeof e=="number"?e:1})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shownFloorIndex",{get:function(){return this.materialParameters.shownFloorIndex},set:function(e){this.setMaterial({shownFloorIndex:e})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shownFloor",{get:function(){return this.shownFloorIndex===-1?null:this.shownFloorIndex},set:function(e){this.shownFloorIndex=e===null?-1:e},enumerable:!1,configurable:!0}),t.prototype.show=function(e){this.shownFloor=e!=null?e:null},Object.defineProperty(t.prototype,"clippers",{get:function(){return this.materialParameters.clippers},set:function(e){this.setMaterial({clippers:e})},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"customShaders",{get:function(){return this.materialParameters.customShaders},set:function(e){this.setMaterial({customShaders:e})},enumerable:!1,configurable:!0}),t.prototype.getEdgesBySphere=function(e,r){r===void 0&&(r=30/180*Math.PI);for(var o=Math.cos(r),s=[],u=0,l=this.children;u<l.length;u++){var c=l[u];c instanceof Tile3DModel&&c.tileset.selectedTiles.forEach(function(f){var d,p,v;if(!(f.boundingVolume&&f.boundingVolume.distanceToPoint(e.center)>e.radius)){var g=(p=(d=f.content)===null||d===void 0?void 0:d.data)===null||p===void 0?void 0:p.object;if(g&&g.visible){var h=[];if(g.traverseVisible(function(G){if(G instanceof THREE__namespace.Mesh){var J=bvhMeshMap.get(G);if(J){scratchMatrix4.copy(G.matrixWorld),scratchMatrix4Inverse.getInverse(scratchMatrix4),scratchSphere.copy(e).applyMatrix4(scratchMatrix4Inverse);var X=J.trianglesInSphere(scratchSphere.center,scratchSphere.radius),j=new THREE__namespace.BufferGeometry;j.setAttribute("position",new THREE__namespace.BufferAttribute(X,3)),j.applyMatrix4(G.matrixWorld),j=BufferGeometryUtils.mergeVertices(j,.01),h.push(j)}}}),h.length===0)return;for(var m=["a","b","c"],y=BufferGeometryUtils.mergeBufferGeometries(h,!1),A=y.getAttribute("position").array,E=((v=y.getIndex())===null||v===void 0?void 0:v.array)||[],b=[],T=[],_=0,R=A.length;_<R;_+=3){var S=new THREE__namespace.Vector3(A[_],A[_+1],A[_+2]);b.push(S)}for(var _=0,R=E.length;_<R;_+=3){var M=E[_],B=E[_+1],H=E[_+2],w=new THREE__namespace.Vector3().crossVectors(b[B].clone().sub(b[M]),b[H].clone().sub(b[M])).normalize();T.push({a:M,b:B,c:H,normal:w})}for(var C={},_=0,R=T.length;_<R;_++)for(var F=T[_],I=0;I<3;I++){var L=F[m[I]],k=F[m[(I+1)%3]],N=[Math.min(L,k),Math.max(L,k)],D=N[0]+"-"+N[1];C[D]===void 0?C[D]={index1:N[0],index2:N[1],face1:_}:C[D].face2=_}for(var D in C){var U=C[D];if(U.face2===void 0||T[U.face1].normal.dot(T[U.face2].normal)<=o){var z=b[U.index1],q=b[U.index2];s.push(new THREE__namespace.Line3(z,q))}}b.length=0,T.length=0}}})}return s},t.prototype.intersectRaycaster=function(e,r,o){r===void 0&&(r=null),o===void 0&&(o=!0);for(var s=[],u=0,l=this.children.length;u<l;u++){var c=this.children[u];c.visible&&c instanceof Tile3DModel&&c.intersectRaycaster(e,!1,s)}return r!=null&&(s=s.filter(function(f){return f.floor===r})),this.getMaterial().pointBack==="HIDDEN"&&(s=s.filter(function(f){return!(f.object instanceof PBMPointCloud&&f.face&&f.face.normal.angleTo(e.ray.direction)<Math.PI/2)})),o&&s.sort(function(f,d){return f.distance-d.distance}),s},t.prototype.load=function(e,r){var o,s=this,u,l,c,f;if(r===void 0&&(r={}),this.work=e,this.name=this.work.workCode,!e.model)return Promise.resolve();for(var d=e.model,p=0,v=0,g=e.observers;v<g.length;v++){var h=g[v];p=Math.max(p,h.floorIndex)}this.floorLength=p+1;for(var m=!1,y=[],A=function(j){var Y=j.tileset,Z=j.upAxis,W=j.name,ae=j.type;ae==="mesh"&&(m=!0);var re=Y.split("#"),se=re[0],ie=re[1],fe=(u=(ie||se).split("?")[1])!==null&&u!==void 0?u:"",ne=typeof r["3d-tiles"]=="function"?r["3d-tiles"](j):(l=r["3d-tiles"])!==null&&l!==void 0?l:{},pe=getFetcher(e).ajax(Y,{responseType:"text"}).then(function(_e){var me,xe=Y?Y.slice(0,Y.lastIndexOf("/")+1):"",$=normalizeTilesetHeader(JSON.parse(_e.body),xe),te=$.root,Q=$.rootMeta,be=Q===void 0?{}:Q;be.upAxis&&be.upAxis!==Z&&(Z=be.upAxis),"lodVersion"in $&&(Z="-Y","floorInfo"in $&&($.properties=$.properties||{},$.properties.floorInfo=$.floorInfo.map(function(qe){return{ground:-qe.ground,height:qe.height}}),delete $.floorInfo),$.asset.tilesetVersion=String($.lodVersion),delete $.lodVersion);var ye=te.boundingVolume?makeBoundingVolume(te.boundingVolume):void 0;ye&&te.transform&&ye.applyMatrix4(scratchMatrix4.fromArray(te.transform));var Ae=null,Me=new THREE__namespace.Matrix4,ge=new THREE__namespace.Matrix4;be.coordinate?(Ae=be.coordinate.ground_height,Me.fromArray(be.coordinate.pose_ecef_to_enu),ge.fromArray(be.coordinate.pose_enu_to_ecef)):(ye?ye.getCenter(scratchVector3):scratchVector3.setScalar(0),getEcefToEnuMatrixFromUpAxis(Z,scratchVector3,Me),ge.getInverse(Me));var he=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),de=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE),ce=new THREE__namespace.Matrix4().premultiply(Me).premultiply(he),le=new THREE__namespace.Matrix4().getInverse(ce),we;if(ne.viewerRequestVolume){var ue=isBoundingVolume(ne.viewerRequestVolume)?ne.viewerRequestVolume:makeBoundingVolume(ne.viewerRequestVolume);ue.applyMatrix4(le),we=ue.toJson()}$.root={refine:(me=te.refine)!==null&&me!==void 0?me:"REPLACE",geometricError:te.geometricError,transform:ce.toArray(),boundingVolume:ye?ye.toJson():void 0,viewerRequestVolume:we,children:[te]};var ve=new Tile3DModel(s,$,{name:W,type:ae,upAxis:Z,url:Y,referer:Y,search:fe,fetcher:getFetcher(e),groundHeight:Ae,coordinateTransform:{localToEnuMatrix:de,enuToLocalMatrix:he,enuToEcefMatrix:ge,ecefToEnuMatrix:Me,localToEcefMatrix:le,ecefToLocalMatrix:ce}});return ve.matrix.copy(e.transform),ve.matrix.decompose(ve.position,ve.quaternion,ve.scale),ve.matrixWorldNeedsUpdate=!0,Object.assign(ve.maxMemoryUsage,ve.getRecommendProps()),typeof ne.debug!="undefined"&&(ve.debug=ne.debug),typeof ne.minLevelOfDetail!="undefined"&&(ve.minLevelOfDetail=ne.minLevelOfDetail),typeof ne.maxLevelOfDetail!="undefined"&&(ve.maxLevelOfDetail=ne.maxLevelOfDetail),typeof ne.skipLevelOfDetail!="undefined"&&(ve.skipLevelOfDetail=ne.skipLevelOfDetail),typeof ne.mostDetail!="undefined"&&(ve.mostDetail=ne.mostDetail),typeof ne.loadSiblings!="undefined"&&(ve.loadSiblings=ne.loadSiblings),typeof ne.loadAll!="undefined"&&(ve.loadAll=ne.loadAll),typeof ne.maxMemoryUsage!="undefined"&&(ve.maxMemoryUsage=ne.maxMemoryUsage),typeof ne.maxRequests!="undefined"&&(ve.maxRequests=ne.maxRequests),typeof ne.requestOrder!="undefined"&&(ve.requestOrder=ne.requestOrder),typeof ne.maxScreenSpaceError!="undefined"&&(ve.maxScreenSpaceError=ne.maxScreenSpaceError),(ne.showLayers===!1||Array.isArray(ne.showLayers)&&ne.showLayers.indexOf(W)===-1)&&(ve.visible=!1),new ModelViewLayer(ve,null)});y.push(pe.catch(function(_e){s.onError(_e);var me=new THREE__namespace.Matrix4,xe=new THREE__namespace.Matrix4,$=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),te=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE),Q=new THREE__namespace.Matrix4().premultiply(me).premultiply($),be=new THREE__namespace.Matrix4().getInverse(Q),ye=Y?Y.slice(0,Y.lastIndexOf("/")+1):"",Ae;if(ne.viewerRequestVolume){var Me=isBoundingVolume(ne.viewerRequestVolume)?ne.viewerRequestVolume:makeBoundingVolume(ne.viewerRequestVolume);Me.applyMatrix4(be),Ae=Me.toJson()}var ge=normalizeTilesetHeader({asset:{version:"0.0"},geometricError:0,viewerRequestVolume:Ae,root:{geometricError:0}},ye),he=new Tile3DModel(s,ge,{name:W,type:ae,upAxis:Z,url:Y,referer:Y,search:fe,fetcher:getFetcher(e),groundHeight:null,coordinateTransform:{localToEnuMatrix:te,enuToLocalMatrix:$,enuToEcefMatrix:xe,ecefToEnuMatrix:me,localToEcefMatrix:be,ecefToLocalMatrix:Q},onError:s.onError});return he.matrix.copy(e.transform),he.matrix.decompose(he.position,he.quaternion,he.scale),he.matrixWorldNeedsUpdate=!0,(ne.showLayers===!1||Array.isArray(ne.showLayers)&&ne.showLayers.indexOf(W)===-1)&&(he.visible=!1),new ModelViewLayer(he,_e)}))},E=0,b=d.layers;E<b.length;E++){var T=b[E];A(T)}if(!m&&d.file){var _=d.file,R=d.textureBase,S=d.textures,M="fallback",B="mesh",H="Z",w="",T={name:M,type:B,upAxis:H,tileset:w},C=typeof r["3d-tiles"]=="function"?r["3d-tiles"](T):(c=r["3d-tiles"])!==null&&c!==void 0?c:{},F=getExt(_)||"at3d",I=new THREE__namespace.Matrix4,L=new THREE__namespace.Matrix4,k=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX),N=new THREE__namespace.Matrix4().copy(ROTATE_X_90_MATRIX_INVERSE);getEcefToEnuMatrixFromUpAxis(H,scratchVector3.setScalar(0),I),L.getInverse(I);var D=new THREE__namespace.Matrix4().premultiply(I).premultiply(k),U=new THREE__namespace.Matrix4().getInverse(D),z=void 0;if(C.viewerRequestVolume){var q=isBoundingVolume(C.viewerRequestVolume)?C.viewerRequestVolume:makeBoundingVolume(C.viewerRequestVolume);q.applyMatrix4(U),z=q.toJson()}var G=normalizeTilesetHeader({asset:{version:"0.0"},geometricError:0,root:{refine:"REPLACE",geometricError:0,transform:D.toArray(),viewerRequestVolume:z,content:{uri:_},extras:(o={},o[F]={textureBaseUri:R,textureArray:S,textureOptions:(f=r.textureOptions)!==null&&f!==void 0?f:{}},o)}},""),J=new Tile3DModel(this,G,{name:M,type:B,upAxis:H,url:w,referer:_,fetcher:getFetcher(e),groundHeight:null,coordinateTransform:{localToEnuMatrix:N,enuToLocalMatrix:k,enuToEcefMatrix:L,ecefToEnuMatrix:I,localToEcefMatrix:U,ecefToLocalMatrix:D},onError:this.onError});J.matrix.copy(e.transform),J.matrix.decompose(J.position,J.quaternion,J.scale),J.matrixWorldNeedsUpdate=!0,(C.showLayers===!1||Array.isArray(C.showLayers)&&C.showLayers.indexOf(M)===-1)&&(J.visible=!1);var X=new ModelViewLayer(J,null);y.push(Promise.resolve(X))}return Promise.all(y).then(function(j){for(var Y=0,Z=j;Y<Z.length;Y++){var W=Z[Y];if(s.disposed){W.scene.dispose();continue}s.viewLayers.push(W),s.add(W.scene)}})},t.prototype.update=function(e,r,o){if(this.children.length){var s=this.loaded;this.refined=this.work!==null,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=this.work!==null;for(var u=0,l=this.viewLayers;u<l.length;u++){var c=l[u],f=c.scene;f&&(this.work&&(f.cacheCameras=this.cacheCameras,this.autoRefine===!1?f.needsRefined=!1:isFristPersonMode(o)?f.needsRefined=this.materialParameters.modelAlpha===0||this.materialParameters.modelAlpha===1:f.needsRefined=!0,this.work.transform.equals(f.matrix)||(f.matrix.copy(this.work.transform),f.matrix.decompose(f.position,f.quaternion,f.scale),f.matrixWorldNeedsUpdate=!0)),f.update(e,r,o),f.needsRender===!0&&(f.needsRender=!1,this.needsRender=!0),f.refined===!1&&(this.refined=!1),this.refineProgress[0]+=f.refineProgress[0],this.refineProgress[1]+=f.refineProgress[1],f.loaded===!1&&(this.loaded=!1))}this.bounding.makeEmpty();for(var d=0,p=this.viewLayers;d<p.length;d++){var c=p[d],f=c.scene;f&&(f.boundingBox.isEmpty()||(scratchBoundingBox.copy(f.boundingBox).applyMatrix4(f.matrix),this.bounding.union(scratchBoundingBox)))}this.bounding.isEmpty()&&this.bounding.copy(DEFAULT_BOUNDING),s===!1&&this.loaded===!0&&this.onLoad()}else this.work&&!this.work.model?(this.refined=!0,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=!0):(this.refined=!1,this.refineProgress[0]=0,this.refineProgress[1]=0,this.loaded=!1),this.bounding.set(new THREE__namespace.Vector3,new THREE__namespace.Vector3)},t.prototype.dispose=function(){this.disposed=!0;for(var e;e=this.children[0];)e instanceof Tile3DModel&&e.dispose(),this.remove(e)},t}(THREE__namespace.Object3D);function createModels(){var n=new THREE__namespace.Box3,t=omit(defaultPbmParameters,["clippers","shownFloorIndex","brightness","customShaders"]),e=Object.assign([],{bounding:n,needsRender:!1,refined:!1,refineProgress:[0,0],loaded:!1,materialVersion:0,cacheCameras:[],autoUpdate:!0,intersectRaycaster:function(r,o,s){s===void 0&&(s=!0);var u;if(e.length===1)u=e[0].intersectRaycaster(r,o,s);else if(e.length===0)u=[];else{u=[];for(var l=0,c=e;l<c.length;l++){var f=c[l];if(f.visible){var d=f.intersectRaycaster(r,o,!1);d.length&&u.push.apply(u,d)}}s&&u.sort(function(p,v){return p.distance-v.distance})}return u},setMaterial:function(r){var o=updatePBMParameters(t,r);o&&(e.materialVersion++,e.needsRender=!0)},getMaterial:function(){return __assign({},t)},resetBrightness:function(){for(var r=0,o=e;r<o.length;r++){var s=o[r];s.setMaterial({brightness:1})}},update:function(r,o,s){e.refined=e.length>0,e.loaded=e.length>0,e.refineProgress[0]=0,e.refineProgress[1]=0,n.makeEmpty();for(var u=0,l=e.cacheCameras;u<l.length;u++){var c=l[u];c.updateMatrixWorld(!0),c.updateProjectionMatrix()}for(var f=0,d=0,p=e;d<p.length;d++){for(var v=p[d],g=0,h=v.viewLayers;g<h.length;g++){var m=h[g];m.scene.modelIndex=f++}v.setMaterial(t),v.cacheCameras=e.cacheCameras,v.autoRefine=this.autoUpdate,v.update(r,o,s),v.needsRender===!0&&(e.needsRender=!0,v.needsRender=!1),v.refined===!1&&(e.refined=!1),e.refineProgress[0]+=v.refineProgress[0],e.refineProgress[1]+=v.refineProgress[1],v.loaded===!1&&(e.loaded=!1),n.union(v.bounding)}for(var y=0,A=e;y<A.length;y++)for(var v=A[y],E=0,b=v.viewLayers;E<b.length;E++){var m=b[E];m.scene.modelsLoaded=e.loaded}n.isEmpty()&&n.copy(DEFAULT_BOUNDING)}});return e}var easeOut$2=function(n){return n*(2-n)},sharedGeometry2$2=function(){var n=new Float32Array([-.18,0,-.18,.18,0,-.18,-.18,0,.18,.18,0,.18]),t=new Float32Array([1,0,0,0,1,1,0,1]),e=new Uint8Array([0,2,1,2,3,1]),r=new THREE__namespace.BufferGeometry;return r.setAttribute("position",new THREE__namespace.BufferAttribute(n,3)),r.setAttribute("uv",new THREE__namespace.BufferAttribute(t,2)),r.setIndex(new THREE__namespace.BufferAttribute(e,1)),r}(),vertexShader$4=`
|
|
1041
1041
|
varying vec2 vUv;
|
|
1042
1042
|
#include <common>
|
|
1043
1043
|
#include <logdepthbuf_pars_vertex>
|
|
@@ -1967,7 +1967,7 @@ void main() {
|
|
|
1967
1967
|
`,e},t.prototype.updateShaderSource=function(){var e=this.getDefines()+edlVertexShader,r=this.getDefines()+edlFragmentShader;this.setValues({vertexShader:e,fragmentShader:r}),this.needsUpdate=!0},__decorate([uniform$1("screenWidth"),__metadata("design:type",Number)],t.prototype,"screenWidth",void 0),__decorate([uniform$1("screenHeight"),__metadata("design:type",Number)],t.prototype,"screenHeight",void 0),__decorate([uniform$1("edlStrength"),__metadata("design:type",Number)],t.prototype,"edlStrength",void 0),__decorate([uniform$1("uNear"),__metadata("design:type",Number)],t.prototype,"uNear",void 0),__decorate([uniform$1("uFar"),__metadata("design:type",Number)],t.prototype,"uFar",void 0),__decorate([uniform$1("radius"),__metadata("design:type",Number)],t.prototype,"radius",void 0),__decorate([uniform$1("neighbours",!0),__metadata("design:type",Float32Array)],t.prototype,"neighbours",void 0),__decorate([uniform$1("depthMap"),__metadata("design:type",THREE__namespace.Texture)],t.prototype,"depthMap",void 0),__decorate([uniform$1("uEDLColor"),__metadata("design:type",THREE__namespace.Texture)],t.prototype,"uEDLColor",void 0),__decorate([uniform$1("uEDLDepth"),__metadata("design:type",THREE__namespace.Texture)],t.prototype,"uEDLDepth",void 0),__decorate([uniform$1("uProj"),__metadata("design:type",Array)],t.prototype,"uProj",void 0),t}(THREE__namespace.RawShaderMaterial);function makeUniform$1(n,t){return{type:n,value:t}}function uniform$1(n,t){return t===void 0&&(t=!1),function(e,r){Object.defineProperty(e,r,{get:function(){return this.getUniform(n)},set:function(o){o!==this.getUniform(n)&&(this.setUniform(n,o),t&&this.updateShaderSource())}})}}var passCamera$1=new THREE__namespace.OrthographicCamera(-1,1,1,-1,0,1),geometry$2=new THREE__namespace.BufferGeometry;geometry$2.setAttribute("position",new THREE__namespace.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),geometry$2.setAttribute("uv",new THREE__namespace.Float32BufferAttribute([0,2,0,0,2,0],2));var mesh$2=new THREE__namespace.Mesh(geometry$2),edlEffectScene=new THREE__namespace.Scene;edlEffectScene.add(mesh$2);var EDLEffect=function(n){__extends(t,n);function t(e,r,o,s){var u=n.call(this,e,r,o,s)||this;return u.sharedV2=new THREE__namespace.Vector2,u.renderer=e,u.material=new EDLMaterial,mesh$2.material=u.material,u.material.needsUpdate=!0,u}return t.prototype.render=function(e){this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0,this.renderer.setRenderTarget(e[0]),this.renderer.render(this.scene,this.camera);var r=this.camera,o=this.material.uniforms,s=this.renderer.getSize(this.sharedV2);o.screenWidth.value=s.x,o.screenHeight.value=s.y;var u=r.projectionMatrix,l=new Float32Array(16);l.set(u.elements);for(var c=new Float32Array(this.material.neighbourCount*2),f=0;f<this.material.neighbourCount;f++)c[2*f+0]=Math.cos(2*f*Math.PI/this.material.neighbourCount),c[2*f+1]=Math.sin(2*f*Math.PI/this.material.neighbourCount);o.neighbours.value=c,o.uNear.value=r.near,o.uFar.value=r.far,o.uEDLColor.value=e[0].texture,o.uProj.value=l,o.edlStrength.value=.5,o.radius.value=1,o.opacity.value=1,this.renderer.setRenderTarget(e[1]),this.renderer.render(edlEffectScene,passCamera$1)},t.prototype.dispose=function(){this.copyPass.dispose()},t}(Effect);const fragment=function n(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}(`}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{H{vs|z-nz}yr?Q-drvtuZn}H{vs|z-nz}yr?Q-Qr}uZn}Hn\bv{t-rp?-bH|vq-znv{56-
|
|
1968
1968
|
sy|n-qr}u-J-r\x07r?Q5Qr}uZn}9-b6;Hvs5qr}u-KJ->;=6
|
|
1969
1969
|
qvpnqH\frpA-p|y|-J-r\x07r?Q5drvtuZn}9-b6H-p|y|-J-p|y|-<-p|y|;HtylSntP|y|-J-rpA5p|y|;\x07\b 9->;=6H-\f`),vertex=function n(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=113,o=126,s=0,u="";return t[s].split(u).map(function(l){return l.charCodeAt(s)>o?l:String.fromCharCode((l.charCodeAt(s)+r)%o)}).join(u)}(`}rpvv|{-zrqvz}-sy|nH}rpvv|{-zrqvz}-v{Hnvor-rp@-}|vv|{Hnvor-rp?-H{vs|z-znA-}|wrpv|{Znv\x07H{vs|z-znA-z|qrycvrZnv\x07Hn\bv{t-rp?-bH|vq-znv{56-
|
|
1970
|
-
b-J-Htyl]|vv|{-J-}|wrpv|{Znv\x07-7-z|qrycvrZnv\x07-7-rpA5}|vv|{9>;=6H\f`);var HQMaterial=function(n){__extends(t,n);function t(e){var r=n.call(this,{vertexShader:vertex,fragmentShader:fragment})||this;return r.uniforms={uDepthMap:makeUniform("t",null),uWeightMap:makeUniform("t",null)},r.depthTest=!0,r.depthWrite=!0,r.opacity=1,r}return t.prototype.getUniform=function(e){return this.uniforms===void 0?void 0:this.uniforms[e].value},t.prototype.setUniform=function(e,r){if(this.uniforms!==void 0){var o=this.uniforms[e];o.value=r}},__decorate([uniform("uDepthMap"),__metadata("design:type",Number)],t.prototype,"uDepthMap",void 0),__decorate([uniform("uWeightMap"),__metadata("design:type",Number)],t.prototype,"uWeightMap",void 0),t}(THREE__namespace.RawShaderMaterial);function makeUniform(n,t){return{type:n,value:t}}function uniform(n,t){return t===void 0&&(t=!1),function(e,r){Object.defineProperty(e,r,{get:function(){return this.getUniform(n)},set:function(o){o!==this.getUniform(n)&&(this.setUniform(n,o),t&&this.updateShaderSource())}})}}var passCamera=new THREE__namespace.OrthographicCamera(-1,1,1,-1,0,1),geometry$1=new THREE__namespace.BufferGeometry;geometry$1.setAttribute("position",new THREE__namespace.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),geometry$1.setAttribute("uv",new THREE__namespace.Float32BufferAttribute([0,2,0,0,2,0],2));var mesh$1=new THREE__namespace.Mesh(geometry$1),hqScene=new THREE__namespace.Scene;hqScene.add(mesh$1);var HQEffect=function(n){__extends(t,n);function t(e,r,o,s){var u=n.call(this,e,r,o,s)||this;return u.sharedV2=new THREE__namespace.Vector2,u.renderer=e,u.material=new HQMaterial,u.camera=o,mesh$1.material=u.material,u}return t.prototype.render=function(e){this.models.setMaterial({useHQDepth:!0,useHQWeight:!1}),this.models.update(this.renderer,this.camera,"Mapview"),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0,this.renderer.setRenderTarget(e[0]),this.renderer.render(this.scene,this.camera),this.models.setMaterial({useHQWeight:!0,useHQDepth:!1}),this.models.update(this.renderer,this.camera,"Mapview"),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!0,this.renderer.setClearColor(new THREE__namespace.Color(0,0,0)),this.renderer.setClearAlpha(0),this.renderer.setRenderTarget(e[1]),this.renderer.render(this.scene,this.camera),this.material.uniforms.uWeightMap.value=e[1].texture,this.material.uniforms.uDepthMap.value=e[0].depthTexture,this.renderer.autoClearDepth=!0,this.renderer.autoClearColor=!0,this.renderer.setClearColor(new THREE__namespace.Color(0,0,0)),this.renderer.setClearAlpha(1),this.renderer.setRenderTarget(e[2]),this.renderer.render(hqScene,passCamera)},t.prototype.dispose=function(){this.copyPass.dispose()},t}(Effect),RAYCASTER_NEAR=.5,minDistance=.5,PANGESTURE_FORWARD_ANGLE=Math.PI/7,MapviewController=function(n){__extends(t,n);function t(e){var r=this,o,s=t.parseArgs(e);return r=n.call(this,s)||this,r.mode="Mapview",r.defaultLongitude=s.defaultLongitude,r.defaultLatitude=s.defaultLatitude,r.defaultDistance=s.defaultDistance,r.maxLatitude=s.maxLatitude,r.minLatitude=s.minLatitude,r.cameraType=s.cameraType,r.modelInScreen=s.modelInScreen,r.locationMotion=new Motion({x:r.camera.pose.offset.x,y:r.camera.pose.offset.y,z:r.camera.pose.offset.z,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Motion({modelAlpha:(o=r.models.getMaterial().modelAlpha)!==null&&o!==void 0?o:0}),r.perspToOrthoMotion=new Motion({perspToOrtho:r.camera.perspToOrtho.x}),r.intersectMeshCreator=s.intersectMeshCreator,r.intersectMesh=r.intersectMeshCreator(),r.intersectMesh.name="intersect",r.intersectMesh.visible=!1,r.currentTapId=null,r.helper.add(r.intersectMesh),r.edlTarget=new THREE__namespace.WebGLRenderTarget(1024,1024,{generateMipmaps:!1,minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,format:THREE__namespace.RGBAFormat,type:THREE__namespace.FloatType,depthTexture:new THREE__namespace.DepthTexture(1024,1024,THREE__namespace.UnsignedIntType)}),r.edlEffect=new EDLEffect(r.renderer,r.modelScene,r.camera,r.models),r.hqEffect=new HQEffect(r.renderer,r.modelScene,r.camera,r.models),r}return t.parseArgs=function(e){var r,o,s,u,l,c,f,d;if(e instanceof t)return e;var p=n.parseArgs.call(this,e);return __assign(__assign({},p),{defaultLongitude:(r=e.defaultLongitude)!==null&&r!==void 0?r:Math.PI/4,defaultLatitude:(o=e.defaultLatitude)!==null&&o!==void 0?o:Math.PI/4,defaultDistance:(s=e.defaultDistance)!==null&&s!==void 0?s:150,maxLatitude:(u=e.maxLatitude)!==null&&u!==void 0?u:+Math.PI/2,minLatitude:(l=e.minLatitude)!==null&&l!==void 0?l:0,cameraType:(c=e.cameraType)!==null&&c!==void 0?c:"auto",modelInScreen:(f=e.modelInScreen)!==null&&f!==void 0?f:"boundingbox-center",intersectMeshCreator:(d=e.intersectMeshCreator)!==null&&d!==void 0?d:function(){return new IntersectMesh}})},t.distanceFromModel=function(e,r,o){var s=e.bounding,u=Math.pow(Math.pow(s.max.x-s.min.x+1,2)+Math.pow(s.max.y-s.min.y+1,2)+Math.pow(s.max.z-s.min.z+1,2),1/2),l=u/2/Math.tan(Math.PI*r/360);return o<1&&(l=l/o),isNaN(l)?u:l},t.initAnimationEndState=function(e){var r,o,s,u,l,c,f,d=this.parseArgs(e),p=d.works,v=d.models,g=e.initial,h=g.state,m=g.currentState,y=typeof h.panoIndex=="number"?{workCode:(s=(r=h.workCode)!==null&&r!==void 0?r:(o=d.works[0])===null||o===void 0?void 0:o.workCode)!==null&&s!==void 0?s:"",panoIndex:h.panoIndex}:{workCode:m.workCode,panoIndex:m.panoIndex},A=p.getResolvedObserver(y),E=(u=h.fov)!==null&&u!==void 0?u:60,b=clamp$1((l=h.latitude)!==null&&l!==void 0?l:isThirdPersonMode(m.mode)?m.latitude:d.defaultLatitude,d.minLatitude,d.maxLatitude),T=t.distanceFromModel(d.models,E,d.camera.aspect),_=new THREE__namespace.Vector3,R=(c=h.distance)!==null&&c!==void 0?c:Math.min(d.defaultDistance,T),S=(f=h.longitude)!==null&&f!==void 0?f:isThirdPersonMode(m.mode)?m.longitude:d.defaultLongitude;return h.offset?_.copy(h.offset):d.defaultDistance<T&&A?(_.copy(A.position),h.longitude===void 0&&(S=m.longitude)):(v.bounding.getCenter(_),R=T/2),__assign(__assign({},y),{mode:"Mapview",longitude:S,latitude:b,fov:E,offset:_,distance:R})},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},t.prototype.isReady=function(){return this.locationMotion.ended===!1?!1:n.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,o,s){this.userAction=s,this.works=e;var u=t.initAnimationEndState(__assign(__assign({},this),{initial:{currentState:__assign(__assign({},this.currentPano),this.camera.pose),duration:o.duration,effect:o.effect,state:r,userAction:s}}));this.currentPano={workCode:u.workCode,panoIndex:u.panoIndex};var l={longitude:u.longitude,latitude:u.latitude,fov:u.fov},c={x:u.offset.x,y:u.offset.y,z:u.offset.z,distance:u.distance,orthoDistance:u.distance};return this.locationMotion.set(c,o.duration).catch(noop$1),this.cameraMotion.set(l,o.duration).catch(noop$1),!0},t.prototype.updateModel=function(e){n.prototype.updateModel.call(this,e);var r=e.bounding.getCenter(new THREE__namespace.Vector3),o=t.distanceFromModel(e,this.cameraMotion.value.fov,this.camera.aspect);this.updateCamera({offset:r,distance:o},0,!0)},t.prototype.updateCamera=function(e,r,o){var s=this;return this.initAnimationReady.then(function(){s.userAction=o,s.stopMomentumMovement();var u={},l={};return e.distance!==void 0&&(u.distance=e.distance),e.offset!==void 0&&(u.x=e.offset.x,u.y=e.offset.y,u.z=e.offset.z),e.longitude!==void 0&&(l.longitude=e.longitude),e.latitude!==void 0&&(l.latitude=e.latitude),e.fov!==void 0&&(l.fov=e.fov),s.locationMotion.set(u,r).catch(noop$1),s.cameraMotion.set(l,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,o){var s=this;return this.initAnimationReady.then(function(){s.userAction=o,s.stopMomentumMovement();for(var u=[],l=[],c=0,f=e;c<f.length;c++){var d=f[c];u.push({key:d.key,progress:d.progress,value:{distance:d.value.distance,x:d.value.offset.x,y:d.value.offset.x,z:d.value.offset.x}}),l.push({key:d.key,progress:d.progress,value:{longitude:d.value.longitude,latitude:d.value.latitude,fov:d.value.fov}})}return s.locationMotion.setKeyframes(u,r).catch(noop$1),s.cameraMotion.setKeyframes(e,r)})},t.prototype.updateTime=function(e,r){if(!this.destroyed){var o={},s={};this.locationMotion.ended||(this.locationMotion.update(e),s.distance=this.locationMotion.value.distance,s.offset=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(e),s.longitude=this.cameraMotion.value.longitude,s.latitude=this.cameraMotion.value.latitude,s.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended||(this.modelAlphaMotion.update(e),o.modelAlpha=this.modelAlphaMotion.value.modelAlpha);var u=0;this.cameraType==="auto"?u=Math.abs(Math.PI/2-this.cameraMotion.value.latitude)<.02||Math.abs(-Math.PI/2-this.cameraMotion.value.latitude)<.02?1:0:this.cameraType==="perspective"?u=0:this.cameraType==="orthographic"&&(u=1),this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho!==u&&this.perspToOrthoMotion.set({perspToOrtho:u},500).catch(noop$1),this.perspToOrthoMotion.ended||(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),isEmptyObject(o)||this.models.setMaterial(o),isEmptyObject(s)||this.setCamera(s)}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1],r=this.locationMotion.getKeyFrameSegment(now())[1];return __assign(__assign({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,distance:r.value.distance,offset:new THREE__namespace.Vector3(r.value.x,r.value.y,r.value.z)})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var o=e.initial;o.state,o.currentState;var s=o.duration,u=o.userAction;e.userAction=u;var l=t.initAnimationEndState(e),c={longitude:l.longitude,latitude:l.latitude,fov:l.fov},f={x:l.offset.x,y:l.offset.y,z:l.offset.z,distance:l.distance},d={modelAlpha:1},p={perspToOrtho:0};e.emit("initAnimation.start",createEvent("initAnimation.start",{state:l,userAction:e.userAction})),e.perspToOrthoMotion.set(p,s).catch(noop$1),e.modelAlphaMotion.set(d,s/3).catch(noop$1),e.cameraMotion.set(c,s).catch(noop$1),e.locationMotion.set(f,s).then(function(){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:l,userAction:e.userAction}))},function(v){var g=__assign(__assign(__assign({},e.currentPano),{mode:e.mode}),clonePose(e.camera.pose));e.emit("initAnimation.end",createEvent("initAnimation.end",{state:g,userAction:e.userAction}))}).then(function(){r()})})},t.prototype.getForwardObserverOrNot=function(e){var r=this,o=this.models.intersectRaycaster(e)[0];if(!o)return null;var s=this.works.resolvedObservers.filter(function(f){for(var d,p=0,v=r.models;p<v.length;p++){var g=v[p];if(g.visible&&((d=g.work)===null||d===void 0?void 0:d.workCode)===f.work.workCode)return!0}return!1}),u=arrayMin(s,function(f){return f.standingPosition.distanceTo(o.point)},!0),l=u[0],c=u[1];return l&&c<10?l:null},t.prototype.coordinatesForOffset=function(e){var r=this.renderer.getSize(new THREE__namespace.Vector2);return{longitude:-2*e.x/(r.x*this.scissor.width),latitude:2*e.y/(r.y*this.scissor.height)}},t.prototype.requestMomentumMovement=function(e,r,o,s){var u=this;if(this.inMomentumMovement!==null){for(var l=__assign({},o),c={longitude:0,latitude:0,x:0,y:0,z:0},f=0;f<s;f++)l.longitude*=.996,l.latitude*=.996*.998,l.x*=.99,l.y*=.99,l.z*=.99,c.longitude+=l.longitude,c.latitude+=l.latitude,c.x+=l.x,c.y+=l.y,c.z+=l.z;var d=formatRad(this.cameraMotion.value.longitude+c.longitude),p=clamp$1(this.cameraMotion.value.latitude+c.latitude,this.minLatitude,this.maxLatitude),v=new THREE__namespace.Vector3(this.locationMotion.value.x+c.x,this.locationMotion.value.y+c.y,this.locationMotion.value.z+c.z),g=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:d,latitude:p,offset:v,fov:this.cameraMotion.value.fov,distance:this.camera.pose.distance}),h=!(Math.abs(l.longitude)>1e-4||Math.abs(l.latitude)>1e-4||Math.abs(l.x)>1e-4||Math.abs(l.y)>1e-4||Math.abs(l.z)>1e-4),m=createEvent("gesture.momentum",__assign(__assign({},e),{isFirst:r,isFinal:h,state:g}));if(this.inMomentumMovement.event=m,this.emit("gesture.momentum",m),e.defaultPrevented){this.inMomentumMovement=null;return}this.inMomentumMovement&&(this.cameraMotion.set({longitude:d,latitude:p},0).catch(noop$1),this.locationMotion.set({x:g.offset.x,y:g.offset.y,z:g.offset.z},0).catch(noop$1),h?this.inMomentumMovement=null:AnimationFrameLoop.shared.add(function(y,A){u.requestMomentumMovement(e,!1,l,A|0)},!0,1))}},t.prototype.fixFinalState=function(e){if(this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho!==1){var r=coordinatesToVector(e,new THREE__namespace.Vector3),o=new THREE__namespace.Vector3().copy(e.offset).sub(r.clone().multiplyScalar(e.distance)),s=new THREE__namespace.Raycaster(o,r);s.params.Points={threshold:.1},s.near=RAYCASTER_NEAR;var u;if(s.ray.direction.y<-.3&&(u=this.models.intersectRaycaster(s).filter(function(p){var v,g=(v=p.face)===null||v===void 0?void 0:v.normal;return g&&s.ray.direction.dot(g)>=0?!1:p.distance>minDistance+s.near})[0],!u)){var l=new THREE__namespace.Plane(new THREE__namespace.Vector3(0,1,0),-this.models.bounding.min.y),c=s.ray.intersectPlane(l,new THREE__namespace.Vector3);if(c){var f=c.distanceTo(s.ray.origin);f<1e4&&f>=s.near&&(u={distance:f,floor:0,point:c,object:this.scene,face:null})}}if(!u){var d=Math.max(e.distance,3);u={distance:d,floor:0,point:s.ray.direction.clone().setLength(d).add(s.ray.origin),object:this.scene,face:null}}u&&(e.distance=clamp$1(u.distance,0,1/0),e.offset.copy(o).add(r.clone().multiplyScalar(e.distance)))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=e.pointers.length,o=this.panState,s=0;e.pointerType==="mouse"&&(s=e.srcEvent.buttons),o&&s===0&&o.buttons!==0&&(s=o.buttons);var u=o==null?void 0:o.target;if(!u){var l=this.relativeClientPosition(e.center),c=new THREE__namespace.Raycaster;c.params.Points={threshold:.1},c.setFromCamera(l,this.camera),c.near=RAYCASTER_NEAR,u=new THREE__namespace.Vector3().copy(c.ray.direction).multiplyScalar(3).add(c.ray.origin);var f=this.models.intersectRaycaster(c)[0];if(!f&&c.ray.direction.y<-.3){var d=new THREE__namespace.Plane(new THREE__namespace.Vector3(0,1,0),0),p=c.ray.intersectPlane(d,new THREE__namespace.Vector3);if(p){var v=p.distanceTo(c.ray.origin);v<1e4&&v>=c.near&&(f={distance:v,floor:0,point:p,object:this.scene})}}if(f)u.copy(f.point);else{var g=new THREE__namespace.Vector3().copy(this.camera.pose.offset).sub(this.camera.position).normalize(),d=new THREE__namespace.Plane().setFromNormalAndCoplanarPoint(g,this.camera.pose.offset);c.ray.intersectPlane(d,u)}}if(e.isFinal?delete this.panState:this.panState={target:u,buttons:s,pointerLength:r,x:e.center.x,y:e.center.y},!(typeof o=="undefined"||o.pointerLength!==r)){var h=r>1||s===2;if(h){var m={x:e.center.x-o.x,y:e.center.y-o.y},y=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),A=coordinatesToVector(this.cameraMotion.value).setLength(this.locationMotion.value.distance).add(y),E=new THREE__namespace.Vector3().copy(A).sub(o.target).length();E*=Math.tan(this.camera.pose.fov/2*Math.PI/180);var b=this.renderer.getSize(new THREE__namespace.Vector2),T=2*m.x*E/b.y,_=2*m.y*E/b.y,R=new THREE__namespace.Vector3;if(R.setFromMatrixColumn(this.camera.matrix,0),R.multiplyScalar(-T),y.add(R),this.camera.pose.latitude<PANGESTURE_FORWARD_ANGLE?R.setFromMatrixColumn(this.camera.matrix,1):(R.setFromMatrixColumn(this.camera.matrix,0),R.crossVectors(this.camera.up,R)),R.multiplyScalar(_),y.add(R),this.modelInScreen==="boundingbox-center"){var S=this.models.bounding.clone();S.expandByScalar(this.camera.pose.distance),y.clamp(S.min,S.max)}var M=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:y,distance:this.camera.pose.distance});if(e.state=M,this.emit("gesture.pan",e),e.defaultPrevented)return;if(this.locationMotion.set({x:M.offset.x,y:M.offset.y,z:M.offset.z},0).catch(noop$1),e.isFinal&&(this.fixFinalState(M),Object.assign(e,{__fixFinalState:!0}),this.locationMotion.set({distance:M.distance,x:M.offset.x,y:M.offset.y,z:M.offset.z},0).catch(noop$1)),e.isFinal){var B=this.renderer.getSize(new THREE__namespace.Vector2),H=2*e.velocityX*E/B.y,w=2*e.velocityY*E/B.y,C=new THREE__namespace.Vector3,F=new THREE__namespace.Vector3;C.setFromMatrixColumn(this.camera.matrix,0),C.multiplyScalar(-H),F.add(C),this.camera.pose.latitude<PANGESTURE_FORWARD_ANGLE?C.setFromMatrixColumn(this.camera.matrix,1):(C.setFromMatrixColumn(this.camera.matrix,0),C.crossVectors(this.camera.up,C)),C.multiplyScalar(w),F.add(C),this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,{longitude:0,latitude:0,x:F.x,y:F.y,z:F.z},0)}}else{var m={x:e.center.x-o.x,y:e.center.y-o.y},I=this.coordinatesForOffset(m),L=formatRad(this.cameraMotion.value.longitude+I.longitude),k=clamp$1(this.cameraMotion.value.latitude+I.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(k=this.cameraMotion.value.latitude);var M=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:L,latitude:k,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance});if(e.isFinal&&Object.assign(e,{__fixFinalState:!0}),e.state=M,this.emit("gesture.pan",e),e.defaultPrevented)return;if(e.isFinal?this.locationMotion.set({distance:M.distance,x:M.offset.x,y:M.offset.y,z:M.offset.z},0).catch(noop$1):this.cameraMotion.set({longitude:M.longitude,latitude:M.latitude},0).catch(noop$1),e.isFinal){var N=e.velocityX,D=e.velocityY;this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,__assign(__assign({},this.coordinatesForOffset({x:N,y:D})),{x:0,y:0,z:0}),0)}}}},t.prototype.onPinchGesture=function(e){var r;if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var o=(r=this.pinchState)===null||r===void 0?void 0:r.distance;if(e.isFirst){this.pinchState={x:e.center.x,y:e.center.y,scale:1,distance:this.locationMotion.value.distance};return}if(typeof o!="undefined"){var s=this.models.bounding.getCenter(new THREE__namespace.Vector3),u=t.distanceFromModel(this.models,this.cameraMotion.value.fov,this.camera.aspect),l=clamp$1(o/e.scale,minDistance,1/0),c=e.state.offset.clone().sub(coordinatesToVector(e.state).setLength(l)),f=this.models.bounding.containsPoint(c),d;if(!f&&this.pinchState&&this.pinchState.scale>e.scale&&s.distanceTo(c)>u?d=e.state.distance:(d=l,this.pinchState&&(this.pinchState.scale=e.scale)),e.state.distance=d,this.emit("gesture.pinch",e),!e.defaultPrevented&&(this.locationMotion.set({distance:e.state.distance},0).catch(noop$1),e.pointerType!=="mouse"&&(e.type="gesture.pan",this.onPanGesture(e)),e.isFinal)){if(!("__fixFinalState"in e)){var p=e.state;this.fixFinalState(e.state);var v={x:p.offset.x,y:p.offset.y,z:p.offset.z,distance:p.distance};this.locationMotion.set(v,0).catch(noop$1)}delete this.panState,delete this.pinchState}}}},t.prototype.onMouseMove=function(e){var r,o;if(this.intersectMesh.parent&&!this.panState&&!this.pinchState&&!this.mouseWheelState&&(this.emit("gesture.mousemove",e),!e.defaultPrevented)){var s=e.center.raycaster;if(s.near=RAYCASTER_NEAR,s.far=500,e.isFinal&&this.intersectMesh.parent&&this.intersectMesh.visible===!0){this.hideIntersectMesh();return}var u=this.models.intersectRaycaster(s)[0],l=createEvent("intersect.update",{raycaster:s,intersection:u!=null?u:null,object:this.intersectMesh});if(this.emit("intersect.update",l),l.defaultPrevented){this.hideIntersectMesh();return}if(u){var c=(o=(r=u.face)===null||r===void 0?void 0:r.normal)!==null&&o!==void 0?o:new THREE__namespace.Vector3().copy(s.ray.direction).multiplyScalar(-1),f=c.clone(),d=u.point.clone();this.intersectMesh.position.copy(d);var p=s.ray.origin.distanceTo(d),v=2*Math.tan(.5*this.camera.fov/180*Math.PI),g=Math.max(p*v/10,1);this.intersectMesh.scale.set(g,g,g);var h=d.clone().add(f);if(this.intersectMesh.lookAt(h),Math.abs(c.y)>.99){var m=this.camera.position.clone().sub(d);this.intersectMesh.rotation.z=-Math.atan2(m.z,m.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}},t.prototype.onMouseWheel=function(e){if(this.initAnimationIsReady)if(this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh(),e.isFinal){var r=e.state;if(this.fixFinalState(r),this.emit("gesture.mousewheel",e),e.defaultPrevented)return;var o={x:r.offset.x,y:r.offset.y,z:r.offset.z,distance:r.distance};this.locationMotion.set(o,0).catch(noop$1)}else{var s=e.center.delta/2*Math.max(Math.log(this.locationMotion.value.distance),1);if(this.locationMotion.value.distance-s>=minDistance){var u=this.locationMotion.value.distance-s;e.state.distance=u}else{var l=coordinatesToVector(this.cameraMotion.value);l.setLength(s),e.state.offset.add(l),this.modelInScreen==="boundingbox-center"&&e.state.offset.clamp(this.models.bounding.min,this.models.bounding.max)}if(this.emit("gesture.mousewheel",e),e.defaultPrevented)return;this.locationMotion.set({distance:e.state.distance,x:e.state.offset.x,y:e.state.offset.y,z:e.state.offset.z},0).catch(noop$1)}},t.prototype.onTapGesture=function(e){var r=this;this.userAction=e.userAction,this.stopMomentumMovement();var o=e.center.raycaster,s=this.getForwardObserverOrNot(o);if(!s)this.emit("gesture.tap",e);else{var u={longitude:this.camera.pose.longitude,latitude:0},l=__assign(__assign({},e.state),{mode:"Panorama",workCode:s.pano.workCode,panoIndex:s.pano.panoIndex,longitude:u.longitude,latitude:u.latitude,offset:s?s.position.clone():new THREE__namespace.Vector3,distance:0});if(e.state=l,this.emit("gesture.tap",e),!e.defaultPrevented&&(this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:l,userAction:e.userAction,options:u,progress:0,error:null})),s&&s.active)){var c=this.currentTapId=createUuid();this.preloadPano(s.pano).then(function(f){r.currentTapId===c&&r.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:r.currentPano,progress:0,state:l,options:u,error:null}))})}}},t.prototype.onDblTapGesture=function(e){if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=e.state,o=e.center.raycaster,s=o.ray.origin.clone().add(o.ray.direction.clone().setLength(3)),u=1,l=3,c=u,f=this.models.intersectRaycaster(o)[0];if(f&&(s=f.point.clone(),f.distance>(u+l)/2?c=u:c=l),e.state.distance=c,e.state.offset=s,this.emit("gesture.dbltap",e),!e.defaultPrevented){var d={x:r.offset.x,y:r.offset.y,z:r.offset.z,distance:r.distance};this.locationMotion.set(d,360).catch(noop$1),this.hideIntersectMesh()}}},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t.prototype.render=function(e,r){var o=this.renderer.getRenderTarget();this.updateScreenBuffer(r),e&&(r==="edl"?this.edlEffect.render(this.screenBuffers):r==="hq"?this.hqEffect.render(this.screenBuffers):(this.renderer.setRenderTarget(this.modelRenderTarget),this.renderer.render(this.modelScene,this.camera))),this.depthCopyPass.render(this.modelRenderTarget.depthTexture,o),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!0,this.copyPass.render(this.modelRenderTarget,o),this.renderer.setRenderTarget(o),this.renderer.autoClearColor=!1,this.renderer.autoClearDepth=!1,this.renderer.render(this.scene,this.camera),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0},t}(BaseController);function isNil(n){return n==null}var _moveEvent={type:"move"},XRController=function(){function n(){this._targetRay=null,this._grip=null,this._hand=null,this._axes=[0,0]}return n.prototype.getHandSpace=function(){return this._hand===null&&(this._hand=new THREE__namespace.Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},n.prototype.getTargetRaySpace=function(){return this._targetRay===null&&(this._targetRay=new THREE__namespace.Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new THREE__namespace.Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new THREE__namespace.Vector3),this._targetRay},n.prototype.getGripSpace=function(){return this._grip===null&&(this._grip=new THREE__namespace.Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new THREE__namespace.Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new THREE__namespace.Vector3),this._grip},n.prototype.dispatchEvent=function(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this},n.prototype.disconnect=function(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this},n.prototype.getAxes=function(){return this._axes},n.prototype.update=function(t,e,r){var o=null,s=null,u=null,l=this._targetRay,c=this._grip,f=this._hand;if(t&&t.gamepad&&t.gamepad.axes&&(this._axes=[t.gamepad.axes[2],t.gamepad.axes[3]]),t&&e.session.visibilityState!=="visible-blurred")if(l!==null&&(o=e.getPose(t.targetRaySpace,r),o!==null&&(l.matrix.fromArray(o.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),o.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(o.linearVelocity)):l.hasLinearVelocity=!1,o.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(o.angularVelocity)):l.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent))),f&&t.hand){u=!0;for(var d=0,p=t.hand.values();d<p.length;d++){var v=p[d],g=e.getJointPose(v,r);if(f.joints[v.jointName]===void 0){var h=new THREE__namespace.Group;h.matrixAutoUpdate=!1,h.visible=!1,f.joints[v.jointName]=h,f.add(h)}var m=f.joints[v.jointName];g!==null&&(m.matrix.fromArray(g.transform.matrix),m.matrix.decompose(m.position,m.rotation,m.scale),m.jointRadius=g.radius),m.visible=g!==null}var y=f.joints["index-finger-tip"],A=f.joints["thumb-tip"],E=y.position.distanceTo(A.position),b=.02,T=.005;f.inputState.pinching&&E>b+T?(f.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!f.inputState.pinching&&E<=b-T&&(f.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else c!==null&&t.gripSpace&&(s=e.getPose(t.gripSpace,r),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));return l!==null&&(l.visible=o!==null),c!==null&&(c.visible=s!==null),f!==null&&(f.visible=u!==null),this},n}(),framebufferScaleFactor=1,XRManager=function(){function n(t,e,r){var o,s,u,l,c;this.isPanorama=(o=r==null?void 0:r.isPanorama)!==null&&o!==void 0?o:!0;var f=navigator.userAgent.toLowerCase(),d;f.includes("pico")?d="Pico":f.includes("oculus")?d="Oculus":d="VP",this.machineType=(s=r==null?void 0:r.machineType)!==null&&s!==void 0?s:d,this.renderer=t,this.gl=e,this.enabled=!1,this.session=null,this.referenceSpaceType=(u=r==null?void 0:r.referenceSpaceType)!==null&&u!==void 0?u:"local-floor",this.referenceSpace=null,this.onSessionStartCallback=(l=r==null?void 0:r.onSessionStart)!==null&&l!==void 0?l:noop$1,this.onSessionEndCallback=(c=r==null?void 0:r.onSessionEnd)!==null&&c!==void 0?c:noop$1,this.controllers=[new XRController,new XRController],this.inputSourcesMap=new Map,this.cameraVR=new THREE__namespace.ArrayCamera,this.cameraL=new THREE__namespace.PerspectiveCamera,this.cameraR=new THREE__namespace.PerspectiveCamera,this.cameraL.viewport=new THREE__namespace.Vector4,this.cameraR.viewport=new THREE__namespace.Vector4,this.cameraL.layers.enable(1),this.cameraR.layers.enable(2),this.cameraVR.layers.enable(1),this.cameraVR.layers.enable(2),this.isPresenting=!1,this.currentDepthNear=null,this.currentDepthFar=null,this.cameraLPos=new THREE__namespace.Vector3,this.cameraRPos=new THREE__namespace.Vector3}return n.prototype.getController=function(t){var e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getRightController=function(){if(!this.session)return null;var t=this.session.inputSources[0].handedness==="right"?0:1,e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getLeftController=function(){if(!this.session)return null;var t=this.session.inputSources[0].handedness==="left"?0:1,e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getControllerGrip=function(t){var e=this.controllers[t];return e||console.warn("no controller find"),e.getGripSpace()},n.prototype.getCameras=function(){return{cameraL:this.cameraL,cameraR:this.cameraR,cameraVR:this.cameraVR}},n.prototype.updateCamera=function(t,e){e===null?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.getInverse(t.matrixWorld)},n.prototype.setProjectionFromUnion=function(t,e,r){this.cameraLPos.setFromMatrixPosition(e.matrixWorld),this.cameraRPos.setFromMatrixPosition(r.matrixWorld);var o=this.cameraLPos.distanceTo(this.cameraRPos),s=e.projectionMatrix.elements,u=r.projectionMatrix.elements,l=s[14]/(s[10]-1),c=s[14]/(s[10]+1),f=(s[9]+1)/s[5],d=(s[9]-1)/s[5],p=(s[8]-1)/s[0],v=(u[8]+1)/u[0],g=l*p,h=l*v,m=o/(-p+v),y=m*-p;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(y),t.translateZ(m),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.getInverse(t.matrixWorld);var A=l+m,E=c+m,b=g-y,T=h+(o-y),_=f*c/E*A,R=d*c/E*A;t.projectionMatrix.makePerspective(b,T,_,R,A,E)},n.prototype.getCamera=function(t){this.cameraVR.near=this.cameraR.near=this.cameraL.near=t.near,this.cameraVR.far=this.cameraR.far=this.cameraL.far=t.far,this.session&&(this.currentDepthNear!==this.cameraVR.near||this.currentDepthFar!==this.cameraVR.far)&&(this.session.updateRenderState({depthNear:this.cameraVR.near,depthFar:this.cameraVR.far}),this.currentDepthNear=this.cameraVR.near,this.currentDepthFar=this.cameraVR.far);var e=t.parent,r=this.cameraVR.cameras;this.updateCamera(this.cameraVR,e);for(var o=0;o<r.length;o++)this.updateCamera(r[o],e);t.matrixWorld.copy(this.cameraVR.matrixWorld);for(var s=t.children,o=0,u=s.length;o<u;o++)s[o].updateMatrixWorld(!0);return r.length===2?this.setProjectionFromUnion(this.cameraVR,this.cameraL,this.cameraR):this.cameraVR.projectionMatrix.copy(this.cameraL.projectionMatrix),this.cameraVR},n.prototype.updateInputSources=function(t){if(!this.session){console.warn("session is lose!");return}for(var e=this.session.inputSources,r=0;r<this.controllers.length;r++)this.inputSourcesMap.set(e[r],this.controllers[r]);for(var r=0;r<t.removed.length;r++){var o=t.removed[r],s=this.inputSourcesMap.get(o);s&&(s.dispatchEvent({type:"disconnected",data:o}),this.inputSourcesMap.delete(o))}for(var r=0;r<t.added.length;r++){var o=t.added[r],s=this.inputSourcesMap.get(o);s&&s.dispatchEvent({type:"connected",data:o})}},n.prototype.onSessionEvent=function(t){var e=this.inputSourcesMap.get(t.inputSource);e&&e.dispatchEvent({type:t.type})},n.prototype.onSessionEnd=function(){this.inputSourcesMap.forEach(function(t,e){t.disconnect(e)}),this.inputSourcesMap.clear(),this.renderer.setFramebuffer(null),this.renderer.setRenderTarget(this.renderer.getRenderTarget()),this.isPresenting=!1,this.session=null,AnimationFrameLoop.shared.setContext(null),this.onSessionEndCallback()},n.prototype.onRequestReferenceSpace=function(t){this.referenceSpace=t,this.isPresenting=!0,this.session&&this.onSessionStartCallback(this.session)},n.prototype.setSession=function(t){var e=this;if(this.session=t,this.session){this.session.addEventListener("select",function(o){e.onSessionEvent(o)}),this.session.addEventListener("selectstart",function(o){e.onSessionEvent(o)}),this.session.addEventListener("selectend",function(o){e.onSessionEvent(o)}),this.session.addEventListener("squeeze",function(o){e.onSessionEvent(o)}),this.session.addEventListener("squeezestart",function(o){e.onSessionEvent(o)}),this.session.addEventListener("squeezeend",function(o){e.onSessionEvent(o)}),this.session.addEventListener("end",function(o){e.onSessionEnd()});var r=this.gl.getContextAttributes();this.gl.makeXRCompatible().then(function(){var o={antialias:r==null?void 0:r.antialias,alpha:r==null?void 0:r.alpha,depth:r==null?void 0:r.depth,stencil:r==null?void 0:r.stencil,framebufferScaleFactor};if(!e.session){console.error("session is lose while set session!");return}switch(e.machineType){case"Pico":case"VP":e.session.updateRenderState({baseLayer:new XRWebGLLayer(e.session,e.gl,o)});break;case"Oculus":e.session.updateRenderState({baseLayer:new XRWebGLLayer(e.session,e.gl,o)});break;default:e.machineType;break}e.session.requestReferenceSpace(e.referenceSpaceType).then(function(s){e.onRequestReferenceSpace(s)}),e.session.addEventListener("inputsourceschange",function(s){e.updateInputSources(s)})})}},n}(),LineSegmentsGeometry=function(n){__extends(t,n);function t(){var e=n.call(this)||this;e.type="LineSegmentsGeometry";var r=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],o=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],s=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];return e.setIndex(s),e.setAttribute("position",new THREE__namespace.Float32BufferAttribute(r,3)),e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(o,2)),e}return t.prototype.applyMatrix4=function(e){var r=this.attributes.instanceStart,o=this.attributes.instanceEnd;return r!==void 0&&(r.applyMatrix4(e),o.applyMatrix4(e),r.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this},t.prototype.setPositions=function(e){var r;e instanceof Float32Array?r=e:Array.isArray(e)?r=new Float32Array(e):r=new Float32Array;var o=new THREE__namespace.InstancedInterleavedBuffer(r,6,1);return this.setAttribute("instanceStart",new THREE__namespace.InterleavedBufferAttribute(o,3,0)),this.setAttribute("instanceEnd",new THREE__namespace.InterleavedBufferAttribute(o,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this},t.prototype.setColors=function(e){var r;e instanceof Float32Array?r=e:Array.isArray(e)?r=new Float32Array(e):r=new Float32Array;var o=new THREE__namespace.InstancedInterleavedBuffer(r,6,1);return this.setAttribute("instanceColorStart",new THREE__namespace.InterleavedBufferAttribute(o,3,0)),this.setAttribute("instanceColorEnd",new THREE__namespace.InterleavedBufferAttribute(o,3,3)),this},t.prototype.fromWireframeGeometry=function(e){return this.setPositions(e.attributes.position.array),this},t.prototype.fromEdgesGeometry=function(e){return this.setPositions(e.attributes.position.array),this},t.prototype.fromMesh=function(e){return this.fromWireframeGeometry(new THREE__namespace.WireframeGeometry(e.geometry)),this},t.prototype.fromLineSegments=function(e){var r=e.geometry;if(r instanceof THREE__namespace.Geometry){var o=new THREE__namespace.BufferGeometry().fromGeometry(r);this.setPositions(o.attributes.position.array)}else r instanceof THREE__namespace.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.computeBoundingBox=function(){this.boundingBox===null&&(this.boundingBox=new THREE__namespace.Box3);var e=this.attributes.instanceStart,r=this.attributes.instanceEnd;if(e!==void 0&&r!==void 0){var o=new THREE__namespace.Box3;this.boundingBox.setFromBufferAttribute(e),o.setFromBufferAttribute(r),this.boundingBox.union(o)}},t.prototype.computeBoundingSphere=function(){this.boundingSphere===null&&(this.boundingSphere=new THREE__namespace.Sphere),this.boundingBox===null&&this.computeBoundingBox();var e=this.attributes.instanceStart,r=this.attributes.instanceEnd;if(e!==void 0&&r!==void 0){var o=this.boundingSphere.center;this.boundingBox.getCenter(o);for(var s=0,u=new THREE__namespace.Vector3,l=0,c=e.count;l<c;l++)u.fromBufferAttribute(e,l),s=Math.max(s,o.distanceToSquared(u)),u.fromBufferAttribute(r,l),s=Math.max(s,o.distanceToSquared(u));this.boundingSphere.radius=Math.sqrt(s),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}},t.prototype.toJSON=function(){},t}(THREE__namespace.InstancedBufferGeometry);Object.assign(LineSegmentsGeometry.prototype,{isLineSegmentsGeometry:!0});var lineShader={uniforms:THREE__namespace.UniformsUtils.merge([THREE__namespace.UniformsLib.common,THREE__namespace.UniformsLib.fog,{linewidth:{value:1},resolution:{value:new THREE__namespace.Vector2(1,1)},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1},opacity:{value:1}}]),vertexShader:`
|
|
1970
|
+
b-J-Htyl]|vv|{-J-}|wrpv|{Znv\x07-7-z|qrycvrZnv\x07-7-rpA5}|vv|{9>;=6H\f`);var HQMaterial=function(n){__extends(t,n);function t(e){var r=n.call(this,{vertexShader:vertex,fragmentShader:fragment})||this;return r.uniforms={uDepthMap:makeUniform("t",null),uWeightMap:makeUniform("t",null)},r.depthTest=!0,r.depthWrite=!0,r.opacity=1,r}return t.prototype.getUniform=function(e){return this.uniforms===void 0?void 0:this.uniforms[e].value},t.prototype.setUniform=function(e,r){if(this.uniforms!==void 0){var o=this.uniforms[e];o.value=r}},__decorate([uniform("uDepthMap"),__metadata("design:type",Number)],t.prototype,"uDepthMap",void 0),__decorate([uniform("uWeightMap"),__metadata("design:type",Number)],t.prototype,"uWeightMap",void 0),t}(THREE__namespace.RawShaderMaterial);function makeUniform(n,t){return{type:n,value:t}}function uniform(n,t){return t===void 0&&(t=!1),function(e,r){Object.defineProperty(e,r,{get:function(){return this.getUniform(n)},set:function(o){o!==this.getUniform(n)&&(this.setUniform(n,o),t&&this.updateShaderSource())}})}}var passCamera=new THREE__namespace.OrthographicCamera(-1,1,1,-1,0,1),geometry$1=new THREE__namespace.BufferGeometry;geometry$1.setAttribute("position",new THREE__namespace.Float32BufferAttribute([-1,3,0,-1,-1,0,3,-1,0],3)),geometry$1.setAttribute("uv",new THREE__namespace.Float32BufferAttribute([0,2,0,0,2,0],2));var mesh$1=new THREE__namespace.Mesh(geometry$1),hqScene=new THREE__namespace.Scene;hqScene.add(mesh$1);var HQEffect=function(n){__extends(t,n);function t(e,r,o,s){var u=n.call(this,e,r,o,s)||this;return u.sharedV2=new THREE__namespace.Vector2,u.renderer=e,u.material=new HQMaterial,u.camera=o,mesh$1.material=u.material,u}return t.prototype.render=function(e){this.models.setMaterial({useHQDepth:!0,useHQWeight:!1}),this.models.update(this.renderer,this.camera,"Mapview"),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0,this.renderer.setRenderTarget(e[0]),this.renderer.render(this.scene,this.camera),this.models.setMaterial({useHQWeight:!0,useHQDepth:!1}),this.models.update(this.renderer,this.camera,"Mapview"),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!0,this.renderer.setClearColor(new THREE__namespace.Color(0,0,0)),this.renderer.setClearAlpha(0),this.renderer.setRenderTarget(e[1]),this.renderer.render(this.scene,this.camera),this.material.uniforms.uWeightMap.value=e[1].texture,this.material.uniforms.uDepthMap.value=e[0].depthTexture,this.renderer.autoClearDepth=!0,this.renderer.autoClearColor=!0,this.renderer.setClearColor(new THREE__namespace.Color(0,0,0)),this.renderer.setClearAlpha(1),this.renderer.setRenderTarget(e[2]),this.renderer.render(hqScene,passCamera)},t.prototype.dispose=function(){this.copyPass.dispose()},t}(Effect),RAYCASTER_NEAR=.5,minDistance=.5,PANGESTURE_FORWARD_ANGLE=Math.PI/7,MapviewController=function(n){__extends(t,n);function t(e){var r=this,o,s=t.parseArgs(e);return r=n.call(this,s)||this,r.mode="Mapview",r.defaultLongitude=s.defaultLongitude,r.defaultLatitude=s.defaultLatitude,r.defaultDistance=s.defaultDistance,r.maxLatitude=s.maxLatitude,r.minLatitude=s.minLatitude,r.cameraType=s.cameraType,r.modelInScreen=s.modelInScreen,r.locationMotion=new Motion({x:r.camera.pose.offset.x,y:r.camera.pose.offset.y,z:r.camera.pose.offset.z,distance:r.camera.pose.distance}),r.modelAlphaMotion=new Motion({modelAlpha:(o=r.models.getMaterial().modelAlpha)!==null&&o!==void 0?o:0}),r.perspToOrthoMotion=new Motion({perspToOrtho:r.camera.perspToOrtho.x}),r.intersectMeshCreator=s.intersectMeshCreator,r.intersectMesh=r.intersectMeshCreator(),r.intersectMesh.name="intersect",r.intersectMesh.visible=!1,r.currentTapId=null,r.helper.add(r.intersectMesh),r.edlTarget=new THREE__namespace.WebGLRenderTarget(1024,1024,{generateMipmaps:!1,minFilter:THREE__namespace.NearestFilter,magFilter:THREE__namespace.NearestFilter,format:THREE__namespace.RGBAFormat,type:THREE__namespace.FloatType,depthTexture:new THREE__namespace.DepthTexture(1024,1024,THREE__namespace.UnsignedIntType)}),r.edlEffect=new EDLEffect(r.renderer,r.modelScene,r.camera,r.models),r.hqEffect=new HQEffect(r.renderer,r.modelScene,r.camera,r.models),r}return t.parseArgs=function(e){var r,o,s,u,l,c,f,d;if(e instanceof t)return e;var p=n.parseArgs.call(this,e);return __assign(__assign({},p),{defaultLongitude:(r=e.defaultLongitude)!==null&&r!==void 0?r:Math.PI/4,defaultLatitude:(o=e.defaultLatitude)!==null&&o!==void 0?o:Math.PI/4,defaultDistance:(s=e.defaultDistance)!==null&&s!==void 0?s:150,maxLatitude:(u=e.maxLatitude)!==null&&u!==void 0?u:+Math.PI/2,minLatitude:(l=e.minLatitude)!==null&&l!==void 0?l:0,cameraType:(c=e.cameraType)!==null&&c!==void 0?c:"auto",modelInScreen:(f=e.modelInScreen)!==null&&f!==void 0?f:"boundingbox-center",intersectMeshCreator:(d=e.intersectMeshCreator)!==null&&d!==void 0?d:function(){return new IntersectMesh}})},t.distanceFromModel=function(e,r,o){var s=e.bounding,u=Math.pow(Math.pow(s.max.x-s.min.x+1,2)+Math.pow(s.max.y-s.min.y+1,2)+Math.pow(s.max.z-s.min.z+1,2),1/2),l=u/2/Math.tan(Math.PI*r/360);return o<1&&(l=l/o),isNaN(l)?u:l},t.initAnimationEndState=function(e){var r,o,s,u,l,c,f,d=this.parseArgs(e),p=d.works,v=d.models,g=e.initial,h=g.state,m=g.currentState,y=typeof h.panoIndex=="number"?{workCode:(s=(r=h.workCode)!==null&&r!==void 0?r:(o=d.works[0])===null||o===void 0?void 0:o.workCode)!==null&&s!==void 0?s:"",panoIndex:h.panoIndex}:{workCode:m.workCode,panoIndex:m.panoIndex},A=p.getResolvedObserver(y),E=(u=h.fov)!==null&&u!==void 0?u:60,b=clamp$1((l=h.latitude)!==null&&l!==void 0?l:isThirdPersonMode(m.mode)?m.latitude:d.defaultLatitude,d.minLatitude,d.maxLatitude),T=t.distanceFromModel(d.models,E,d.camera.aspect),_=new THREE__namespace.Vector3,R=(c=h.distance)!==null&&c!==void 0?c:Math.min(d.defaultDistance,T),S=(f=h.longitude)!==null&&f!==void 0?f:isThirdPersonMode(m.mode)?m.longitude:d.defaultLongitude;return h.offset?_.copy(h.offset):d.defaultDistance<T&&A?(_.copy(A.position),h.longitude===void 0&&(S=m.longitude)):(v.bounding.getCenter(_),R=T),__assign(__assign({},y),{mode:"Mapview",longitude:S,latitude:b,fov:E,offset:_,distance:R})},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.locationMotion.dispose(),delete this.panState,this.intersectMesh.dispose(),this.helper.remove(this.intersectMesh)},t.prototype.isReady=function(){return this.locationMotion.ended===!1?!1:n.prototype.isReady.call(this)},t.prototype.updateWork=function(e,r,o,s){this.userAction=s,this.works=e;var u=t.initAnimationEndState(__assign(__assign({},this),{initial:{currentState:__assign(__assign({},this.currentPano),this.camera.pose),duration:o.duration,effect:o.effect,state:r,userAction:s}}));this.currentPano={workCode:u.workCode,panoIndex:u.panoIndex};var l={longitude:u.longitude,latitude:u.latitude,fov:u.fov},c={x:u.offset.x,y:u.offset.y,z:u.offset.z,distance:u.distance,orthoDistance:u.distance};return this.locationMotion.set(c,o.duration).catch(noop$1),this.cameraMotion.set(l,o.duration).catch(noop$1),!0},t.prototype.updateModel=function(e){n.prototype.updateModel.call(this,e);var r=e.bounding.getCenter(new THREE__namespace.Vector3),o=t.distanceFromModel(e,this.cameraMotion.value.fov,this.camera.aspect);this.updateCamera({offset:r,distance:o},0,!0)},t.prototype.updateCamera=function(e,r,o){var s=this;return this.initAnimationReady.then(function(){s.userAction=o,s.stopMomentumMovement();var u={},l={};return e.distance!==void 0&&(u.distance=e.distance),e.offset!==void 0&&(u.x=e.offset.x,u.y=e.offset.y,u.z=e.offset.z),e.longitude!==void 0&&(l.longitude=e.longitude),e.latitude!==void 0&&(l.latitude=e.latitude),e.fov!==void 0&&(l.fov=e.fov),s.locationMotion.set(u,r).catch(noop$1),s.cameraMotion.set(l,r).catch(noop$1)})},t.prototype.updateCameraWithKeyframes=function(e,r,o){var s=this;return this.initAnimationReady.then(function(){s.userAction=o,s.stopMomentumMovement();for(var u=[],l=[],c=0,f=e;c<f.length;c++){var d=f[c];u.push({key:d.key,progress:d.progress,value:{distance:d.value.distance,x:d.value.offset.x,y:d.value.offset.x,z:d.value.offset.x}}),l.push({key:d.key,progress:d.progress,value:{longitude:d.value.longitude,latitude:d.value.latitude,fov:d.value.fov}})}return s.locationMotion.setKeyframes(u,r).catch(noop$1),s.cameraMotion.setKeyframes(e,r)})},t.prototype.updateTime=function(e,r){if(!this.destroyed){var o={},s={};this.locationMotion.ended||(this.locationMotion.update(e),s.distance=this.locationMotion.value.distance,s.offset=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z)),this.cameraMotion.ended||(this.cameraMotion.update(e),s.longitude=this.cameraMotion.value.longitude,s.latitude=this.cameraMotion.value.latitude,s.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended||(this.modelAlphaMotion.update(e),o.modelAlpha=this.modelAlphaMotion.value.modelAlpha);var u=0;this.cameraType==="auto"?u=Math.abs(Math.PI/2-this.cameraMotion.value.latitude)<.02||Math.abs(-Math.PI/2-this.cameraMotion.value.latitude)<.02?1:0:this.cameraType==="perspective"?u=0:this.cameraType==="orthographic"&&(u=1),this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho!==u&&this.perspToOrthoMotion.set({perspToOrtho:u},500).catch(noop$1),this.perspToOrthoMotion.ended||(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),isEmptyObject(o)||this.models.setMaterial(o),isEmptyObject(s)||this.setCamera(s)}},t.prototype.getTargetState=function(){var e=this.cameraMotion.getKeyFrameSegment(now())[1],r=this.locationMotion.getKeyFrameSegment(now())[1];return __assign(__assign({},this.currentPano),{mode:this.mode,longitude:e.value.longitude,latitude:e.value.latitude,fov:e.value.fov,distance:r.value.distance,offset:new THREE__namespace.Vector3(r.value.x,r.value.y,r.value.z)})},t.prototype.initAnimation=function(){var e=this;return this.destroyed?Promise.resolve():new Promise(function(r){var o=e.initial;o.state,o.currentState;var s=o.duration,u=o.userAction;e.userAction=u;var l=t.initAnimationEndState(e),c={longitude:l.longitude,latitude:l.latitude,fov:l.fov},f={x:l.offset.x,y:l.offset.y,z:l.offset.z,distance:l.distance},d={modelAlpha:1},p={perspToOrtho:0};e.emit("initAnimation.start",createEvent("initAnimation.start",{state:l,userAction:e.userAction})),e.perspToOrthoMotion.set(p,s).catch(noop$1),e.modelAlphaMotion.set(d,s/3).catch(noop$1),e.cameraMotion.set(c,s).catch(noop$1),e.locationMotion.set(f,s).then(function(){e.emit("initAnimation.end",createEvent("initAnimation.end",{state:l,userAction:e.userAction}))},function(v){var g=__assign(__assign(__assign({},e.currentPano),{mode:e.mode}),clonePose(e.camera.pose));e.emit("initAnimation.end",createEvent("initAnimation.end",{state:g,userAction:e.userAction}))}).then(function(){r()})})},t.prototype.getForwardObserverOrNot=function(e){var r=this,o=this.models.intersectRaycaster(e)[0];if(!o)return null;var s=this.works.resolvedObservers.filter(function(f){for(var d,p=0,v=r.models;p<v.length;p++){var g=v[p];if(g.visible&&((d=g.work)===null||d===void 0?void 0:d.workCode)===f.work.workCode)return!0}return!1}),u=arrayMin(s,function(f){return f.standingPosition.distanceTo(o.point)},!0),l=u[0],c=u[1];return l&&c<10?l:null},t.prototype.coordinatesForOffset=function(e){var r=this.renderer.getSize(new THREE__namespace.Vector2);return{longitude:-2*e.x/(r.x*this.scissor.width),latitude:2*e.y/(r.y*this.scissor.height)}},t.prototype.requestMomentumMovement=function(e,r,o,s){var u=this;if(this.inMomentumMovement!==null){for(var l=__assign({},o),c={longitude:0,latitude:0,x:0,y:0,z:0},f=0;f<s;f++)l.longitude*=.996,l.latitude*=.996*.998,l.x*=.99,l.y*=.99,l.z*=.99,c.longitude+=l.longitude,c.latitude+=l.latitude,c.x+=l.x,c.y+=l.y,c.z+=l.z;var d=formatRad(this.cameraMotion.value.longitude+c.longitude),p=clamp$1(this.cameraMotion.value.latitude+c.latitude,this.minLatitude,this.maxLatitude),v=new THREE__namespace.Vector3(this.locationMotion.value.x+c.x,this.locationMotion.value.y+c.y,this.locationMotion.value.z+c.z),g=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:d,latitude:p,offset:v,fov:this.cameraMotion.value.fov,distance:this.camera.pose.distance}),h=!(Math.abs(l.longitude)>1e-4||Math.abs(l.latitude)>1e-4||Math.abs(l.x)>1e-4||Math.abs(l.y)>1e-4||Math.abs(l.z)>1e-4),m=createEvent("gesture.momentum",__assign(__assign({},e),{isFirst:r,isFinal:h,state:g}));if(this.inMomentumMovement.event=m,this.emit("gesture.momentum",m),e.defaultPrevented){this.inMomentumMovement=null;return}this.inMomentumMovement&&(this.cameraMotion.set({longitude:d,latitude:p},0).catch(noop$1),this.locationMotion.set({x:g.offset.x,y:g.offset.y,z:g.offset.z},0).catch(noop$1),h?this.inMomentumMovement=null:AnimationFrameLoop.shared.add(function(y,A){u.requestMomentumMovement(e,!1,l,A|0)},!0,1))}},t.prototype.fixFinalState=function(e){if(this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho!==1){var r=coordinatesToVector(e,new THREE__namespace.Vector3),o=new THREE__namespace.Vector3().copy(e.offset).sub(r.clone().multiplyScalar(e.distance)),s=new THREE__namespace.Raycaster(o,r);s.params.Points={threshold:.1},s.near=RAYCASTER_NEAR;var u;if(s.ray.direction.y<-.3&&(u=this.models.intersectRaycaster(s).filter(function(p){var v,g=(v=p.face)===null||v===void 0?void 0:v.normal;return g&&s.ray.direction.dot(g)>=0?!1:p.distance>minDistance+s.near})[0],!u)){var l=new THREE__namespace.Plane(new THREE__namespace.Vector3(0,1,0),-this.models.bounding.min.y),c=s.ray.intersectPlane(l,new THREE__namespace.Vector3);if(c){var f=c.distanceTo(s.ray.origin);f<1e4&&f>=s.near&&(u={distance:f,floor:0,point:c,object:this.scene,face:null})}}if(!u){var d=Math.max(e.distance,3);u={distance:d,floor:0,point:s.ray.direction.clone().setLength(d).add(s.ray.origin),object:this.scene,face:null}}u&&(e.distance=clamp$1(u.distance,0,1/0),e.offset.copy(o).add(r.clone().multiplyScalar(e.distance)))}},t.prototype.onPanGesture=function(e){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=e.pointers.length,o=this.panState,s=0;e.pointerType==="mouse"&&(s=e.srcEvent.buttons),o&&s===0&&o.buttons!==0&&(s=o.buttons);var u=o==null?void 0:o.target;if(!u){var l=this.relativeClientPosition(e.center),c=new THREE__namespace.Raycaster;c.params.Points={threshold:.1},c.setFromCamera(l,this.camera),c.near=RAYCASTER_NEAR,u=new THREE__namespace.Vector3().copy(c.ray.direction).multiplyScalar(3).add(c.ray.origin);var f=this.models.intersectRaycaster(c)[0];if(!f&&c.ray.direction.y<-.3){var d=new THREE__namespace.Plane(new THREE__namespace.Vector3(0,1,0),0),p=c.ray.intersectPlane(d,new THREE__namespace.Vector3);if(p){var v=p.distanceTo(c.ray.origin);v<1e4&&v>=c.near&&(f={distance:v,floor:0,point:p,object:this.scene})}}if(f)u.copy(f.point);else{var g=new THREE__namespace.Vector3().copy(this.camera.pose.offset).sub(this.camera.position).normalize(),d=new THREE__namespace.Plane().setFromNormalAndCoplanarPoint(g,this.camera.pose.offset);c.ray.intersectPlane(d,u)}}if(e.isFinal?delete this.panState:this.panState={target:u,buttons:s,pointerLength:r,x:e.center.x,y:e.center.y},!(typeof o=="undefined"||o.pointerLength!==r)){var h=r>1||s===2;if(h){var m={x:e.center.x-o.x,y:e.center.y-o.y},y=new THREE__namespace.Vector3(this.locationMotion.value.x,this.locationMotion.value.y,this.locationMotion.value.z),A=coordinatesToVector(this.cameraMotion.value).setLength(this.locationMotion.value.distance).add(y),E=new THREE__namespace.Vector3().copy(A).sub(o.target).length();E*=Math.tan(this.camera.pose.fov/2*Math.PI/180);var b=this.renderer.getSize(new THREE__namespace.Vector2),T=2*m.x*E/b.y,_=2*m.y*E/b.y,R=new THREE__namespace.Vector3;if(R.setFromMatrixColumn(this.camera.matrix,0),R.multiplyScalar(-T),y.add(R),this.camera.pose.latitude<PANGESTURE_FORWARD_ANGLE?R.setFromMatrixColumn(this.camera.matrix,1):(R.setFromMatrixColumn(this.camera.matrix,0),R.crossVectors(this.camera.up,R)),R.multiplyScalar(_),y.add(R),this.modelInScreen==="boundingbox-center"){var S=this.models.bounding.clone();S.expandByScalar(this.camera.pose.distance),y.clamp(S.min,S.max)}var M=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,offset:y,distance:this.camera.pose.distance});if(e.state=M,this.emit("gesture.pan",e),e.defaultPrevented)return;if(this.locationMotion.set({x:M.offset.x,y:M.offset.y,z:M.offset.z},0).catch(noop$1),e.isFinal&&(this.fixFinalState(M),Object.assign(e,{__fixFinalState:!0}),this.locationMotion.set({distance:M.distance,x:M.offset.x,y:M.offset.y,z:M.offset.z},0).catch(noop$1)),e.isFinal){var B=this.renderer.getSize(new THREE__namespace.Vector2),H=2*e.velocityX*E/B.y,w=2*e.velocityY*E/B.y,C=new THREE__namespace.Vector3,F=new THREE__namespace.Vector3;C.setFromMatrixColumn(this.camera.matrix,0),C.multiplyScalar(-H),F.add(C),this.camera.pose.latitude<PANGESTURE_FORWARD_ANGLE?C.setFromMatrixColumn(this.camera.matrix,1):(C.setFromMatrixColumn(this.camera.matrix,0),C.crossVectors(this.camera.up,C)),C.multiplyScalar(w),F.add(C),this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,{longitude:0,latitude:0,x:F.x,y:F.y,z:F.z},0)}}else{var m={x:e.center.x-o.x,y:e.center.y-o.y},I=this.coordinatesForOffset(m),L=formatRad(this.cameraMotion.value.longitude+I.longitude),k=clamp$1(this.cameraMotion.value.latitude+I.latitude,this.minLatitude,this.maxLatitude);this.camera.aspect<1&&Math.abs(e.overallVelocityX)>.2&&Math.atan2(Math.abs(e.overallVelocityY),Math.abs(e.overallVelocityX))<Math.PI/6.923&&(k=this.cameraMotion.value.latitude);var M=__assign(__assign({},this.currentPano),{mode:this.mode,longitude:L,latitude:k,fov:this.camera.pose.fov,offset:this.camera.pose.offset,distance:this.camera.pose.distance});if(e.isFinal&&Object.assign(e,{__fixFinalState:!0}),e.state=M,this.emit("gesture.pan",e),e.defaultPrevented)return;if(e.isFinal?this.locationMotion.set({distance:M.distance,x:M.offset.x,y:M.offset.y,z:M.offset.z},0).catch(noop$1):this.cameraMotion.set({longitude:M.longitude,latitude:M.latitude},0).catch(noop$1),e.isFinal){var N=e.velocityX,D=e.velocityY;this.inMomentumMovement={uuid:createUuid()},this.requestMomentumMovement(e,!0,__assign(__assign({},this.coordinatesForOffset({x:N,y:D})),{x:0,y:0,z:0}),0)}}}},t.prototype.onPinchGesture=function(e){var r;if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var o=(r=this.pinchState)===null||r===void 0?void 0:r.distance;if(e.isFirst){this.pinchState={x:e.center.x,y:e.center.y,scale:1,distance:this.locationMotion.value.distance};return}if(typeof o!="undefined"){var s=this.models.bounding.getCenter(new THREE__namespace.Vector3),u=t.distanceFromModel(this.models,this.cameraMotion.value.fov,this.camera.aspect),l=clamp$1(o/e.scale,minDistance,1/0),c=e.state.offset.clone().sub(coordinatesToVector(e.state).setLength(l)),f=this.models.bounding.containsPoint(c),d;if(!f&&this.pinchState&&this.pinchState.scale>e.scale&&s.distanceTo(c)>u?d=e.state.distance:(d=l,this.pinchState&&(this.pinchState.scale=e.scale)),e.state.distance=d,this.emit("gesture.pinch",e),!e.defaultPrevented&&(this.locationMotion.set({distance:e.state.distance},0).catch(noop$1),e.pointerType!=="mouse"&&(e.type="gesture.pan",this.onPanGesture(e)),e.isFinal)){if(!("__fixFinalState"in e)){var p=e.state;this.fixFinalState(e.state);var v={x:p.offset.x,y:p.offset.y,z:p.offset.z,distance:p.distance};this.locationMotion.set(v,0).catch(noop$1)}delete this.panState,delete this.pinchState}}}},t.prototype.onMouseMove=function(e){var r,o;if(this.intersectMesh.parent&&!this.panState&&!this.pinchState&&!this.mouseWheelState&&(this.emit("gesture.mousemove",e),!e.defaultPrevented)){var s=e.center.raycaster;if(s.near=RAYCASTER_NEAR,s.far=500,e.isFinal&&this.intersectMesh.parent&&this.intersectMesh.visible===!0){this.hideIntersectMesh();return}var u=this.models.intersectRaycaster(s)[0],l=createEvent("intersect.update",{raycaster:s,intersection:u!=null?u:null,object:this.intersectMesh});if(this.emit("intersect.update",l),l.defaultPrevented){this.hideIntersectMesh();return}if(u){var c=(o=(r=u.face)===null||r===void 0?void 0:r.normal)!==null&&o!==void 0?o:new THREE__namespace.Vector3().copy(s.ray.direction).multiplyScalar(-1),f=c.clone(),d=u.point.clone();this.intersectMesh.position.copy(d);var p=s.ray.origin.distanceTo(d),v=2*Math.tan(.5*this.camera.fov/180*Math.PI),g=Math.max(p*v/10,1);this.intersectMesh.scale.set(g,g,g);var h=d.clone().add(f);if(this.intersectMesh.lookAt(h),Math.abs(c.y)>.99){var m=this.camera.position.clone().sub(d);this.intersectMesh.rotation.z=-Math.atan2(m.z,m.x)}this.intersectMesh.visible=!0,this.needsRender=!0}else this.hideIntersectMesh()}},t.prototype.onMouseWheel=function(e){if(this.initAnimationIsReady)if(this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh(),e.isFinal){var r=e.state;if(this.fixFinalState(r),this.emit("gesture.mousewheel",e),e.defaultPrevented)return;var o={x:r.offset.x,y:r.offset.y,z:r.offset.z,distance:r.distance};this.locationMotion.set(o,0).catch(noop$1)}else{var s=e.center.delta/2*Math.max(Math.log(this.locationMotion.value.distance),1);if(this.locationMotion.value.distance-s>=minDistance){var u=this.locationMotion.value.distance-s;e.state.distance=u}else{var l=coordinatesToVector(this.cameraMotion.value);l.setLength(s),e.state.offset.add(l),this.modelInScreen==="boundingbox-center"&&e.state.offset.clamp(this.models.bounding.min,this.models.bounding.max)}if(this.emit("gesture.mousewheel",e),e.defaultPrevented)return;this.locationMotion.set({distance:e.state.distance,x:e.state.offset.x,y:e.state.offset.y,z:e.state.offset.z},0).catch(noop$1)}},t.prototype.onTapGesture=function(e){var r=this;this.userAction=e.userAction,this.stopMomentumMovement();var o=e.center.raycaster,s=this.getForwardObserverOrNot(o);if(!s)this.emit("gesture.tap",e);else{var u={longitude:this.camera.pose.longitude,latitude:0},l=__assign(__assign({},e.state),{mode:"Panorama",workCode:s.pano.workCode,panoIndex:s.pano.panoIndex,longitude:u.longitude,latitude:u.latitude,offset:s?s.position.clone():new THREE__namespace.Vector3,distance:0});if(e.state=l,this.emit("gesture.tap",e),!e.defaultPrevented&&(this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:l,userAction:e.userAction,options:u,progress:0,error:null})),s&&s.active)){var c=this.currentTapId=createUuid();this.preloadPano(s.pano).then(function(f){r.currentTapId===c&&r.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:r.currentPano,progress:0,state:l,options:u,error:null}))})}}},t.prototype.onDblTapGesture=function(e){if(this.initAnimationIsReady){this.userAction=e.userAction,this.stopMomentumMovement(),this.hideIntersectMesh();var r=e.state,o=e.center.raycaster,s=o.ray.origin.clone().add(o.ray.direction.clone().setLength(3)),u=1,l=3,c=u,f=this.models.intersectRaycaster(o)[0];if(f&&(s=f.point.clone(),f.distance>(u+l)/2?c=u:c=l),e.state.distance=c,e.state.offset=s,this.emit("gesture.dbltap",e),!e.defaultPrevented){var d={x:r.offset.x,y:r.offset.y,z:r.offset.z,distance:r.distance};this.locationMotion.set(d,360).catch(noop$1),this.hideIntersectMesh()}}},t.prototype.hideIntersectMesh=function(){this.intersectMesh.visible=!1,this.needsRender=!0},t.prototype.render=function(e,r){var o=this.renderer.getRenderTarget();this.updateScreenBuffer(r),e&&(r==="edl"?this.edlEffect.render(this.screenBuffers):r==="hq"?this.hqEffect.render(this.screenBuffers):(this.renderer.setRenderTarget(this.modelRenderTarget),this.renderer.render(this.modelScene,this.camera))),this.depthCopyPass.render(this.modelRenderTarget.depthTexture,o),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!0,this.copyPass.render(this.modelRenderTarget,o),this.renderer.setRenderTarget(o),this.renderer.autoClearColor=!1,this.renderer.autoClearDepth=!1,this.renderer.render(this.scene,this.camera),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0},t}(BaseController);function isNil(n){return n==null}var _moveEvent={type:"move"},XRController=function(){function n(){this._targetRay=null,this._grip=null,this._hand=null,this._axes=[0,0]}return n.prototype.getHandSpace=function(){return this._hand===null&&(this._hand=new THREE__namespace.Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand},n.prototype.getTargetRaySpace=function(){return this._targetRay===null&&(this._targetRay=new THREE__namespace.Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new THREE__namespace.Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new THREE__namespace.Vector3),this._targetRay},n.prototype.getGripSpace=function(){return this._grip===null&&(this._grip=new THREE__namespace.Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new THREE__namespace.Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new THREE__namespace.Vector3),this._grip},n.prototype.dispatchEvent=function(t){return this._targetRay!==null&&this._targetRay.dispatchEvent(t),this._grip!==null&&this._grip.dispatchEvent(t),this._hand!==null&&this._hand.dispatchEvent(t),this},n.prototype.disconnect=function(t){return this.dispatchEvent({type:"disconnected",data:t}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this},n.prototype.getAxes=function(){return this._axes},n.prototype.update=function(t,e,r){var o=null,s=null,u=null,l=this._targetRay,c=this._grip,f=this._hand;if(t&&t.gamepad&&t.gamepad.axes&&(this._axes=[t.gamepad.axes[2],t.gamepad.axes[3]]),t&&e.session.visibilityState!=="visible-blurred")if(l!==null&&(o=e.getPose(t.targetRaySpace,r),o!==null&&(l.matrix.fromArray(o.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),o.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(o.linearVelocity)):l.hasLinearVelocity=!1,o.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(o.angularVelocity)):l.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent))),f&&t.hand){u=!0;for(var d=0,p=t.hand.values();d<p.length;d++){var v=p[d],g=e.getJointPose(v,r);if(f.joints[v.jointName]===void 0){var h=new THREE__namespace.Group;h.matrixAutoUpdate=!1,h.visible=!1,f.joints[v.jointName]=h,f.add(h)}var m=f.joints[v.jointName];g!==null&&(m.matrix.fromArray(g.transform.matrix),m.matrix.decompose(m.position,m.rotation,m.scale),m.jointRadius=g.radius),m.visible=g!==null}var y=f.joints["index-finger-tip"],A=f.joints["thumb-tip"],E=y.position.distanceTo(A.position),b=.02,T=.005;f.inputState.pinching&&E>b+T?(f.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:t.handedness,target:this})):!f.inputState.pinching&&E<=b-T&&(f.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:t.handedness,target:this}))}else c!==null&&t.gripSpace&&(s=e.getPose(t.gripSpace,r),s!==null&&(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));return l!==null&&(l.visible=o!==null),c!==null&&(c.visible=s!==null),f!==null&&(f.visible=u!==null),this},n}(),framebufferScaleFactor=1,XRManager=function(){function n(t,e,r){var o,s,u,l,c;this.isPanorama=(o=r==null?void 0:r.isPanorama)!==null&&o!==void 0?o:!0;var f=navigator.userAgent.toLowerCase(),d;f.includes("pico")?d="Pico":f.includes("oculus")?d="Oculus":d="VP",this.machineType=(s=r==null?void 0:r.machineType)!==null&&s!==void 0?s:d,this.renderer=t,this.gl=e,this.enabled=!1,this.session=null,this.referenceSpaceType=(u=r==null?void 0:r.referenceSpaceType)!==null&&u!==void 0?u:"local-floor",this.referenceSpace=null,this.onSessionStartCallback=(l=r==null?void 0:r.onSessionStart)!==null&&l!==void 0?l:noop$1,this.onSessionEndCallback=(c=r==null?void 0:r.onSessionEnd)!==null&&c!==void 0?c:noop$1,this.controllers=[new XRController,new XRController],this.inputSourcesMap=new Map,this.cameraVR=new THREE__namespace.ArrayCamera,this.cameraL=new THREE__namespace.PerspectiveCamera,this.cameraR=new THREE__namespace.PerspectiveCamera,this.cameraL.viewport=new THREE__namespace.Vector4,this.cameraR.viewport=new THREE__namespace.Vector4,this.cameraL.layers.enable(1),this.cameraR.layers.enable(2),this.cameraVR.layers.enable(1),this.cameraVR.layers.enable(2),this.isPresenting=!1,this.currentDepthNear=null,this.currentDepthFar=null,this.cameraLPos=new THREE__namespace.Vector3,this.cameraRPos=new THREE__namespace.Vector3}return n.prototype.getController=function(t){var e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getRightController=function(){if(!this.session)return null;var t=this.session.inputSources[0].handedness==="right"?0:1,e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getLeftController=function(){if(!this.session)return null;var t=this.session.inputSources[0].handedness==="left"?0:1,e=this.controllers[t];return e||console.warn("no controller find"),e.getTargetRaySpace()},n.prototype.getControllerGrip=function(t){var e=this.controllers[t];return e||console.warn("no controller find"),e.getGripSpace()},n.prototype.getCameras=function(){return{cameraL:this.cameraL,cameraR:this.cameraR,cameraVR:this.cameraVR}},n.prototype.updateCamera=function(t,e){e===null?t.matrixWorld.copy(t.matrix):t.matrixWorld.multiplyMatrices(e.matrixWorld,t.matrix),t.matrixWorldInverse.getInverse(t.matrixWorld)},n.prototype.setProjectionFromUnion=function(t,e,r){this.cameraLPos.setFromMatrixPosition(e.matrixWorld),this.cameraRPos.setFromMatrixPosition(r.matrixWorld);var o=this.cameraLPos.distanceTo(this.cameraRPos),s=e.projectionMatrix.elements,u=r.projectionMatrix.elements,l=s[14]/(s[10]-1),c=s[14]/(s[10]+1),f=(s[9]+1)/s[5],d=(s[9]-1)/s[5],p=(s[8]-1)/s[0],v=(u[8]+1)/u[0],g=l*p,h=l*v,m=o/(-p+v),y=m*-p;e.matrixWorld.decompose(t.position,t.quaternion,t.scale),t.translateX(y),t.translateZ(m),t.matrixWorld.compose(t.position,t.quaternion,t.scale),t.matrixWorldInverse.getInverse(t.matrixWorld);var A=l+m,E=c+m,b=g-y,T=h+(o-y),_=f*c/E*A,R=d*c/E*A;t.projectionMatrix.makePerspective(b,T,_,R,A,E)},n.prototype.getCamera=function(t){this.cameraVR.near=this.cameraR.near=this.cameraL.near=t.near,this.cameraVR.far=this.cameraR.far=this.cameraL.far=t.far,this.session&&(this.currentDepthNear!==this.cameraVR.near||this.currentDepthFar!==this.cameraVR.far)&&(this.session.updateRenderState({depthNear:this.cameraVR.near,depthFar:this.cameraVR.far}),this.currentDepthNear=this.cameraVR.near,this.currentDepthFar=this.cameraVR.far);var e=t.parent,r=this.cameraVR.cameras;this.updateCamera(this.cameraVR,e);for(var o=0;o<r.length;o++)this.updateCamera(r[o],e);t.matrixWorld.copy(this.cameraVR.matrixWorld);for(var s=t.children,o=0,u=s.length;o<u;o++)s[o].updateMatrixWorld(!0);return r.length===2?this.setProjectionFromUnion(this.cameraVR,this.cameraL,this.cameraR):this.cameraVR.projectionMatrix.copy(this.cameraL.projectionMatrix),this.cameraVR},n.prototype.updateInputSources=function(t){if(!this.session){console.warn("session is lose!");return}for(var e=this.session.inputSources,r=0;r<this.controllers.length;r++)this.inputSourcesMap.set(e[r],this.controllers[r]);for(var r=0;r<t.removed.length;r++){var o=t.removed[r],s=this.inputSourcesMap.get(o);s&&(s.dispatchEvent({type:"disconnected",data:o}),this.inputSourcesMap.delete(o))}for(var r=0;r<t.added.length;r++){var o=t.added[r],s=this.inputSourcesMap.get(o);s&&s.dispatchEvent({type:"connected",data:o})}},n.prototype.onSessionEvent=function(t){var e=this.inputSourcesMap.get(t.inputSource);e&&e.dispatchEvent({type:t.type})},n.prototype.onSessionEnd=function(){this.inputSourcesMap.forEach(function(t,e){t.disconnect(e)}),this.inputSourcesMap.clear(),this.renderer.setFramebuffer(null),this.renderer.setRenderTarget(this.renderer.getRenderTarget()),this.isPresenting=!1,this.session=null,AnimationFrameLoop.shared.setContext(null),this.onSessionEndCallback()},n.prototype.onRequestReferenceSpace=function(t){this.referenceSpace=t,this.isPresenting=!0,this.session&&this.onSessionStartCallback(this.session)},n.prototype.setSession=function(t){var e=this;if(this.session=t,this.session){this.session.addEventListener("select",function(o){e.onSessionEvent(o)}),this.session.addEventListener("selectstart",function(o){e.onSessionEvent(o)}),this.session.addEventListener("selectend",function(o){e.onSessionEvent(o)}),this.session.addEventListener("squeeze",function(o){e.onSessionEvent(o)}),this.session.addEventListener("squeezestart",function(o){e.onSessionEvent(o)}),this.session.addEventListener("squeezeend",function(o){e.onSessionEvent(o)}),this.session.addEventListener("end",function(o){e.onSessionEnd()});var r=this.gl.getContextAttributes();this.gl.makeXRCompatible().then(function(){var o={antialias:r==null?void 0:r.antialias,alpha:r==null?void 0:r.alpha,depth:r==null?void 0:r.depth,stencil:r==null?void 0:r.stencil,framebufferScaleFactor};if(!e.session){console.error("session is lose while set session!");return}switch(e.machineType){case"Pico":case"VP":e.session.updateRenderState({baseLayer:new XRWebGLLayer(e.session,e.gl,o)});break;case"Oculus":e.session.updateRenderState({baseLayer:new XRWebGLLayer(e.session,e.gl,o)});break;default:e.machineType;break}e.session.requestReferenceSpace(e.referenceSpaceType).then(function(s){e.onRequestReferenceSpace(s)}),e.session.addEventListener("inputsourceschange",function(s){e.updateInputSources(s)})})}},n}(),LineSegmentsGeometry=function(n){__extends(t,n);function t(){var e=n.call(this)||this;e.type="LineSegmentsGeometry";var r=[-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],o=[-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],s=[0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5];return e.setIndex(s),e.setAttribute("position",new THREE__namespace.Float32BufferAttribute(r,3)),e.setAttribute("uv",new THREE__namespace.Float32BufferAttribute(o,2)),e}return t.prototype.applyMatrix4=function(e){var r=this.attributes.instanceStart,o=this.attributes.instanceEnd;return r!==void 0&&(r.applyMatrix4(e),o.applyMatrix4(e),r.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this},t.prototype.setPositions=function(e){var r;e instanceof Float32Array?r=e:Array.isArray(e)?r=new Float32Array(e):r=new Float32Array;var o=new THREE__namespace.InstancedInterleavedBuffer(r,6,1);return this.setAttribute("instanceStart",new THREE__namespace.InterleavedBufferAttribute(o,3,0)),this.setAttribute("instanceEnd",new THREE__namespace.InterleavedBufferAttribute(o,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this},t.prototype.setColors=function(e){var r;e instanceof Float32Array?r=e:Array.isArray(e)?r=new Float32Array(e):r=new Float32Array;var o=new THREE__namespace.InstancedInterleavedBuffer(r,6,1);return this.setAttribute("instanceColorStart",new THREE__namespace.InterleavedBufferAttribute(o,3,0)),this.setAttribute("instanceColorEnd",new THREE__namespace.InterleavedBufferAttribute(o,3,3)),this},t.prototype.fromWireframeGeometry=function(e){return this.setPositions(e.attributes.position.array),this},t.prototype.fromEdgesGeometry=function(e){return this.setPositions(e.attributes.position.array),this},t.prototype.fromMesh=function(e){return this.fromWireframeGeometry(new THREE__namespace.WireframeGeometry(e.geometry)),this},t.prototype.fromLineSegments=function(e){var r=e.geometry;if(r instanceof THREE__namespace.Geometry){var o=new THREE__namespace.BufferGeometry().fromGeometry(r);this.setPositions(o.attributes.position.array)}else r instanceof THREE__namespace.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.computeBoundingBox=function(){this.boundingBox===null&&(this.boundingBox=new THREE__namespace.Box3);var e=this.attributes.instanceStart,r=this.attributes.instanceEnd;if(e!==void 0&&r!==void 0){var o=new THREE__namespace.Box3;this.boundingBox.setFromBufferAttribute(e),o.setFromBufferAttribute(r),this.boundingBox.union(o)}},t.prototype.computeBoundingSphere=function(){this.boundingSphere===null&&(this.boundingSphere=new THREE__namespace.Sphere),this.boundingBox===null&&this.computeBoundingBox();var e=this.attributes.instanceStart,r=this.attributes.instanceEnd;if(e!==void 0&&r!==void 0){var o=this.boundingSphere.center;this.boundingBox.getCenter(o);for(var s=0,u=new THREE__namespace.Vector3,l=0,c=e.count;l<c;l++)u.fromBufferAttribute(e,l),s=Math.max(s,o.distanceToSquared(u)),u.fromBufferAttribute(r,l),s=Math.max(s,o.distanceToSquared(u));this.boundingSphere.radius=Math.sqrt(s),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}},t.prototype.toJSON=function(){},t}(THREE__namespace.InstancedBufferGeometry);Object.assign(LineSegmentsGeometry.prototype,{isLineSegmentsGeometry:!0});var lineShader={uniforms:THREE__namespace.UniformsUtils.merge([THREE__namespace.UniformsLib.common,THREE__namespace.UniformsLib.fog,{linewidth:{value:1},resolution:{value:new THREE__namespace.Vector2(1,1)},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1},opacity:{value:1}}]),vertexShader:`
|
|
1971
1971
|
#include <common>
|
|
1972
1972
|
#include <color_pars_vertex>
|
|
1973
1973
|
#include <fog_pars_vertex>
|
|
@@ -2166,7 +2166,7 @@ void main() {
|
|
|
2166
2166
|
#include <premultiplied_alpha_fragment>
|
|
2167
2167
|
|
|
2168
2168
|
}
|
|
2169
|
-
`},LineMaterial=function(n){__extends(t,n);function t(e){var r=n.call(this,{uniforms:THREE__namespace.UniformsUtils.clone(lineShader.uniforms),vertexShader:lineShader.vertexShader,fragmentShader:lineShader.fragmentShader,clipping:!0})||this;return r.type="LineMaterial",r.dashed=!1,Object.defineProperties(r,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(o){this.uniforms.diffuse.value=o}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(o){this.uniforms.linewidth.value=o}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(o){this.uniforms.dashScale.value=o}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(o){this.uniforms.dashSize.value=o}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(o){this.uniforms.gapSize.value=o}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(o){this.uniforms.opacity.value=o}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(o){this.uniforms.resolution.value.copy(o)}}}),r.setValues(e),r}return t}(THREE__namespace.ShaderMaterial);Object.assign(LineMaterial.prototype,{isLineMaterial:!0});var LineSegments2=function(n){__extends(t,n);function t(e,r){var o=n.call(this)||this;return o.type="LineSegments2",o.geometry=e!==void 0?e:new LineSegmentsGeometry,o.material=r!==void 0?r:new LineMaterial({color:Math.random()*16777215}),o}return t.prototype.computeLineDistances=function(){for(var e=this.geometry,r=e.attributes.instanceStart,o=e.attributes.instanceEnd,s=new Float32Array(2*r.count),u=new THREE__namespace.Vector3,l=new THREE__namespace.Vector3,c=0,f=0,d=r.count;c<d;c++,f+=2)u.fromBufferAttribute(r,c),l.fromBufferAttribute(o,c),s[f]=f===0?0:s[f-1],s[f+1]=s[f]+u.distanceTo(l);var p=new THREE__namespace.InstancedInterleavedBuffer(s,2,1);return e.setAttribute("instanceDistanceStart",new THREE__namespace.InterleavedBufferAttribute(p,1,0)),e.setAttribute("instanceDistanceEnd",new THREE__namespace.InterleavedBufferAttribute(p,1,1)),this},t.prototype.raycast=function(e,r){e.camera===null&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var o=e.ray,s=e.camera,u=s.projectionMatrix,l=this.geometry,c=this.material,f=c.resolution,d=c.linewidth,p=l.attributes.instanceStart,v=l.attributes.instanceEnd,g=new THREE__namespace.Vector4,h=new THREE__namespace.Vector4,m=new THREE__namespace.Vector4,y=new THREE__namespace.Vector3,A=new THREE__namespace.Matrix4,E=new THREE__namespace.Line3,b=new THREE__namespace.Vector3;o.at(1,m),m.w=1,m.applyMatrix4(s.matrixWorldInverse),m.applyMatrix4(u),m.multiplyScalar(1/m.w),m.x*=f.x/2,m.y*=f.y/2,m.z=0,y.copy(m);var T=this.matrixWorld;A.multiplyMatrices(s.matrixWorldInverse,T);for(var _=0,R=p.count;_<R;_++){g.fromBufferAttribute(p,_),h.fromBufferAttribute(v,_),g.w=1,h.w=1,g.applyMatrix4(A),h.applyMatrix4(A),g.applyMatrix4(u),h.applyMatrix4(u),g.multiplyScalar(1/g.w),h.multiplyScalar(1/h.w);var S=g.z<-1&&h.z<-1,M=g.z>1&&h.z>1;if(!(S||M)){g.x*=f.x/2,g.y*=f.y/2,h.x*=f.x/2,h.y*=f.y/2,E.start.copy(g),E.start.z=0,E.end.copy(h),E.end.z=0;var B=E.closestPointToPointParameter(y,!0);E.at(B,b);var H=THREE__namespace.MathUtils.lerp(g.z,h.z,B),w=H>=-1&&H<=1,C=y.distanceTo(b)<d*.5;if(w&&C){E.start.fromBufferAttribute(p,_),E.end.fromBufferAttribute(v,_),E.start.applyMatrix4(T),E.end.applyMatrix4(T);var F=new THREE__namespace.Vector3,I=new THREE__namespace.Vector3;o.distanceSqToSegment(E.start,E.end,I,F),r.push({point:I,pointOnLine:F,distance:o.origin.distanceTo(I),object:this,faceIndex:_})}}}},t}(THREE__namespace.Mesh);Object.assign(LineSegments2.prototype,{isLineSegments2:!0});var Line2=function(n){__extends(t,n);function t(e,r){var o=n.call(this,e,r)||this;return o.type="Line2",o}return t}(LineSegments2);Object.assign(Line2.prototype,{isLine2:!0});var LineGeometry=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.type="LineGeometry",e}return t.prototype.setPositions=function(e){for(var r=e.length-3,o=new Float32Array(2*r),s=0;s<r;s+=3)o[2*s]=e[s],o[2*s+1]=e[s+1],o[2*s+2]=e[s+2],o[2*s+3]=e[s+3],o[2*s+4]=e[s+4],o[2*s+5]=e[s+5];return n.prototype.setPositions.call(this,o),this},t.prototype.setColors=function(e){for(var r=e.length-3,o=new Float32Array(2*r),s=0;s<r;s+=3)o[2*s]=e[s],o[2*s+1]=e[s+1],o[2*s+2]=e[s+2],o[2*s+3]=e[s+3],o[2*s+4]=e[s+4],o[2*s+5]=e[s+5];return n.prototype.setColors.call(this,o),this},t.prototype.fromLine=function(e){var r=e.geometry;if(r instanceof THREE__namespace.Geometry){var o=new THREE__namespace.BufferGeometry().fromGeometry(r);this.setPositions(o.attributes.position.array)}else r instanceof THREE__namespace.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.copy=function(){return this},t}(LineSegmentsGeometry);Object.assign(LineGeometry.prototype,{isLineGeometry:!0});var circleImageURL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==",DEFAULT_COLOR=14467195,POINT_SIZE=8,DEFAULT_LINEWIDTH=2,DEFAULT_DASHSCALE=20,sharedCircleTexture=null,FiveLine=function(n){__extends(t,n);function t(e,r){e===void 0&&(e=new THREE__namespace.Vector3),r===void 0&&(r=new THREE__namespace.Vector3);var o=n.call(this)||this;o.type="FiveLine",o.needsRender=!0;var s=new LineGeometry,u=new LineMaterial({color:DEFAULT_COLOR,linewidth:DEFAULT_LINEWIDTH,dashScale:DEFAULT_DASHSCALE,dashed:!1});o.line=new Line2(s,u);var l=new THREE__namespace.BufferGeometry,c=new THREE__namespace.PointsMaterial({color:DEFAULT_COLOR,size:POINT_SIZE,map:sharedCircleTexture||(sharedCircleTexture=new THREE__namespace.TextureLoader().load(circleImageURL)),sizeAttenuation:!1,transparent:!0});return o.points=new THREE__namespace.Points(l,c),o.points.renderOrder=11,o.points.frustumCulled=!1,o.setPoints(e,r),o.add(o.line,o.points),o}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.13"},enumerable:!1,configurable:!0}),t.prototype.setPoints=function(e,r){var o=[].concat(e.toArray(),r.toArray());this.points.geometry.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(o),3)),this.line.geometry.setPositions(o),this.line.computeLineDistances(),this.needsRender=!0},t.prototype.getPoints=function(){var e=this.points.geometry.attributes.position.array;return[new THREE__namespace.Vector3(e[0],e[1],e[2]),new THREE__namespace.Vector3(e[3],e[4],e[5])]},t.prototype.setMaterial=function(e){var r=this.line.material;for(var o in e)if(e.hasOwnProperty(o)){var s=e[o];o==="dashed"?(r.dashed=s,s?r.defines.USE_DASH="":delete r.defines.USE_DASH,r.needsUpdate=!0):r[o]=e[o]}this.needsRender=!0},t.prototype.setResolution=function(e,r){var o=this.line.material.resolution;(o.x!==e||o.y!==r)&&(o.set(e,r),this.needsRender=!0)},t}(THREE__namespace.Object3D);Object.assign(FiveLine.prototype,{isFiveLine:!0});var Constants={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};function fetchJsonFile(n){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,fetch(n)];case 1:if(t=e.sent(),t.ok)return[2,t.json()];throw new Error(t.statusText)}})})}function fetchProfilesList(n){return __awaiter(this,void 0,void 0,function(){var t,e;return __generator(this,function(r){switch(r.label){case 0:if(!n)throw new Error("No basePath supplied");return t="profilesList.json",[4,fetchJsonFile("".concat(n,"/").concat(t))];case 1:return e=r.sent(),[2,e]}})})}function fetchProfile(n,t){return __awaiter(this,arguments,void 0,function(e,r,o,s){var u,l,c,f,d,p;return o===void 0&&(o=null),s===void 0&&(s=!0),__generator(this,function(v){switch(v.label){case 0:if(!e)throw new Error("No xrInputSource supplied");if(!r)throw new Error("No basePath supplied");return[4,fetchProfilesList(r)];case 1:if(u=v.sent(),e.profiles.some(function(g){var h=u[g];return h&&(l={profileId:g,profilePath:"".concat(r,"/").concat(h.path),deprecated:!!h.deprecated}),!!l}),!l){if(!o)throw new Error("No matching profile name found");if(c=u[o],!c)throw new Error('No matching profile name found and default profile "'.concat(o,'" missing.'));l={profileId:o,profilePath:"".concat(r,"/").concat(c.path),deprecated:!!c.deprecated}}return[4,fetchJsonFile(l.profilePath)];case 2:if(f=v.sent(),s){if(p=void 0,p=f.layouts[e.handedness],!p)throw new Error("No matching handedness, ".concat(e.handedness,", in profile ").concat(l.profileId));p.assetPath&&(d=l.profilePath.replace("profile.json",p.assetPath))}return[2,{profile:f,assetPath:d}]}})})}var defaultComponentValues={xAxis:0,yAxis:0,button:0,state:Constants.ComponentState.DEFAULT};function normalizeAxes(n,t){n===void 0&&(n=0),t===void 0&&(t=0);var e=n,r=t,o=Math.sqrt(n*n+t*t);if(o>1){var s=Math.atan2(t,n);e=Math.cos(s),r=Math.sin(s)}var u={normalizedXAxis:e*.5+.5,normalizedYAxis:r*.5+.5};return u}var VisualResponse=function(){function n(t){this.componentProperty=t.componentProperty,this.states=t.states,this.valueNodeName=t.valueNodeName,this.valueNodeProperty=t.valueNodeProperty,this.valueNodeProperty===Constants.VisualResponseProperty.TRANSFORM&&(this.minNodeName=t.minNodeName,this.maxNodeName=t.maxNodeName),this.value=0,this.updateFromComponent(defaultComponentValues)}return n.prototype.updateFromComponent=function(t){var e=t.xAxis,r=t.yAxis,o=t.button,s=t.state,u=normalizeAxes(e,r),l=u.normalizedXAxis,c=u.normalizedYAxis;switch(this.componentProperty){case Constants.ComponentProperty.X_AXIS:this.value=this.states.includes(s)?l:.5;break;case Constants.ComponentProperty.Y_AXIS:this.value=this.states.includes(s)?c:.5;break;case Constants.ComponentProperty.BUTTON:this.value=this.states.includes(s)?o:0;break;case Constants.ComponentProperty.STATE:this.valueNodeProperty===Constants.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(s):this.value=this.states.includes(s)?1:0;break;default:throw new Error("Unexpected visualResponse componentProperty ".concat(this.componentProperty))}},n}(),Component=function(){function n(t,e){var r=this;if(!t||!e||!e.visualResponses||!e.gamepadIndices||Object.keys(e.gamepadIndices).length===0)throw new Error("Invalid arguments supplied");this.id=t,this.type=e.type,this.rootNodeName=e.rootNodeName,this.touchPointNodeName=e.touchPointNodeName,this.visualResponses={},Object.keys(e.visualResponses).forEach(function(o){var s=new VisualResponse(e.visualResponses[o]);r.visualResponses[o]=s}),this.gamepadIndices=Object.assign({},e.gamepadIndices),this.values={state:Constants.ComponentState.DEFAULT,button:this.gamepadIndices.button!==void 0?0:void 0,xAxis:this.gamepadIndices.xAxis!==void 0?0:void 0,yAxis:this.gamepadIndices.yAxis!==void 0?0:void 0}}return Object.defineProperty(n.prototype,"data",{get:function(){var t=__assign({id:this.id},this.values);return t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(t){var e=this;if(this.values.state=Constants.ComponentState.DEFAULT,this.gamepadIndices.button!==void 0&&t.buttons.length>this.gamepadIndices.button){var r=t.buttons[this.gamepadIndices.button];this.values.button=r.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,r.pressed||this.values.button===1?this.values.state=Constants.ComponentState.PRESSED:(r.touched||this.values.button>Constants.ButtonTouchThreshold)&&(this.values.state=Constants.ComponentState.TOUCHED)}this.gamepadIndices.xAxis!==void 0&&t.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=t.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===Constants.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),this.gamepadIndices.yAxis!==void 0&&t.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=t.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===Constants.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach(function(o){o.updateFromComponent(e.values)})},n}(),MotionController=function(){function n(t,e,r){var o=this;if(!t)throw new Error("No xrInputSource supplied");if(!e)throw new Error("No profile supplied");this.xrInputSource=t,this.assetUrl=r,this.id=e.profileId,this.layoutDescription=e.layouts[t.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach(function(s){var u=o.layoutDescription.components[s];o.components[s]=new Component(s,u)}),this.updateFromGamepad()}return Object.defineProperty(n.prototype,"gripSpace",{get:function(){return this.xrInputSource.gripSpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"targetRaySpace",{get:function(){return this.xrInputSource.targetRaySpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"data",{get:function(){var t=[];return Object.values(this.components).forEach(function(e){t.push(e.data)}),t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(){var t=this;Object.values(this.components).forEach(function(e){e.updateFromGamepad(t.xrInputSource.gamepad)})},n}(),DEFAULT_PROFILES_PATH="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",DEFAULT_PROFILE="generic-trigger",XRControllerModel=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.motionController=null,e.envMap=null,e}return t.prototype.setEnvironmentMap=function(e){var r=this;return this.envMap==e?this:(this.envMap=e,this.traverse(function(o){o instanceof THREE__namespace.Mesh&&o.isMesh&&(o.material.envMap=r.envMap,o.material.needsUpdate=!0)}),this)},t.prototype.updateMatrixWorld=function(e){n.prototype.updateMatrixWorld.call(this,e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach(function(r){Object.values(r.visualResponses).forEach(function(o){var s=o.valueNode,u=o.minNode,l=o.maxNode,c=o.value,f=o.valueNodeProperty;s&&(f===Constants.VisualResponseProperty.VISIBILITY?s.visible=c:f===Constants.VisualResponseProperty.TRANSFORM&&(s.quaternion.copy(u.quaternion).slerp(l.quaternion,c),s.position.lerpVectors(u.position,l.position,c)))})}))},t}(THREE.Object3D);function findNodes(n,t){Object.values(n.components).forEach(function(e){var r=e.type,o=e.touchPointNodeName,s=e.visualResponses;if(r===Constants.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(o),e.touchPointNode){var u=new THREE.SphereGeometry(.001),l=new THREE.MeshBasicMaterial({color:255}),c=new THREE.Mesh(u,l);e.touchPointNode.add(c)}else console.warn("Could not find touch dot, ".concat(e.touchPointNodeName,", in touchpad component ").concat(e.id));Object.values(s).forEach(function(f){var d=f.valueNodeName,p=f.minNodeName,v=f.maxNodeName,g=f.valueNodeProperty;if(g===Constants.VisualResponseProperty.TRANSFORM){if(f.minNode=t.getObjectByName(p),f.maxNode=t.getObjectByName(v),!f.minNode){console.warn("Could not find ".concat(p," in the model"));return}if(!f.maxNode){console.warn("Could not find ".concat(v," in the model"));return}}f.valueNode=t.getObjectByName(d),f.valueNode||console.warn("Could not find ".concat(d," in the model"))})})}function addAssetSceneToControllerModel(n,t){findNodes(n.motionController,t),n.envMap&&t.traverse(function(e){e instanceof THREE__namespace.Mesh&&e.isMesh&&(e.material.envMap=n.envMap,e.material.needsUpdate=!0)}),n.add(t)}var XRControllerModelFactory=function(){function n(t){t===void 0&&(t=null),this.gltfLoader=t,this.path=DEFAULT_PROFILES_PATH,this._assetCache={}}return n.prototype.createControllerModel=function(t){var e=this,r=new XRControllerModel,o=null;return t.addEventListener("connected",function(s){var u=s.data;u.targetRayMode!=="tracked-pointer"||!u.gamepad||fetchProfile(u,e.path,DEFAULT_PROFILE).then(function(l){var c=l.profile,f=l.assetPath;r.motionController=new MotionController(u,c,f);var d=e._assetCache[r.motionController.assetUrl];if(d)o=d.scene.clone(),addAssetSceneToControllerModel(r,o);else{if(!e.gltfLoader)throw new Error("GLTFLoader not set.");e.gltfLoader.load(r.motionController.assetUrl,function(p){e._assetCache[r.motionController.assetUrl]=p,o=p.scene.clone(),addAssetSceneToControllerModel(r,o)})}}).catch(function(l){console.warn(l)})}),t.addEventListener("disconnected",function(){r.motionController=null,r.remove(o),o=null}),r},n}();function mapPanoResource(n,t){return n}var CONTROLLER_EVNET_DELTA_TIME=300,ROTATE_Y_PI_MATRIX=new THREE__namespace.Matrix4().makeRotationAxis(new THREE__namespace.Vector3(0,1,0),Math.PI),PANO_TEXTURE_SCALE=new THREE__namespace.Vector3(-1,1,1),XRPanoramaController=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;r.xrManager=new XRManager(r.renderer,r.renderer.getContext(),{onSessionStart:function(c){r.emit("xr.session.start",createEvent("xr.session.start",{session:c,machineType:r.xrManager.machineType}))},onSessionEnd:function(){r.emit("xr.session.end",createEvent("xr.session.end",{session:null,machineType:r.xrManager.machineType}))}}),r.xrControllerRay={left:new THREE__namespace.Raycaster,right:new THREE__namespace.Raycaster},r.xrControllerRay.left.params.Points={threshold:.1},r.xrControllerRay.right.params.Points={threshold:.1},r.gazeRay=null,r.pointerLines={left:new FiveLine,right:new FiveLine},r.pointerLines.left.visible=!1,r.pointerLines.right.visible=!0,r.pointerLines.left.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.left.points.material.depthTest=!1,r.pointerLines.right.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.right.points.material.depthTest=!1,r.controllerWrappers=[new THREE__namespace.Group,new THREE__namespace.Group];var o=r.xrManager.getController(0);r.controllerWrappers[0].add(o);var s=r.xrManager.getController(1);r.controllerWrappers[1].add(s);var u=new XRControllerModelFactory;u.gltfLoader={load:function(c,f){internalFetcher.ajax(c,{responseType:"arraybuffer"}).then(function(d){var p;return parseGltf(d.body,{resourcePath:c.slice(0,c.lastIndexOf("/")+1),search:(p=c.split("?")[1])!==null&&p!==void 0?p:"",fetcher:internalFetcher})}).then(function(d){return f(d)})}},(r.xrManager.machineType==="Oculus"||r.xrManager.machineType==="Pico")&&r.scene.add(r.pointerLines.left,r.pointerLines.right,r.controllerWrappers[0],r.controllerWrappers[1]),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=createUuid()]={panoId:panoStringify(r.currentPano),leftPanoPicture:null,position:r.camera.pose.offset.clone(),effect:"fade",fixCameraTransform:new THREE__namespace.Matrix4},r.parallaxCameraMatrixs=[];var l=AnimationFrameLoop.shared.getContext();return l?(r.on("xr.session.end",function(){r.scene.remove(r.pointerLines.left,r.pointerLines.right)}),r.xrManager.setSession(l),r.on("xr.session.start",function(){var c=r.xrManager.getControllerGrip(0);c.add(u.createControllerModel(c)),r.controllerWrappers[0].add(c);var f=r.xrManager.getControllerGrip(1);f.add(u.createControllerModel(f)),r.controllerWrappers[1].add(f)}),r.xrHandleState={LeftAxesUp:{touchStartTime:0,touchStart:!1},LeftAxesDown:{touchStartTime:0,touchStart:!1},LeftAxesLeft:{touchStartTime:0,touchStart:!1},LeftAxesRight:{touchStartTime:0,touchStart:!1},LeftTrigger:{touchStartTime:0,touchStart:!1},LeftPinch:{touchStartTime:0,touchStart:!1},RightAxesUp:{touchStartTime:0,touchStart:!1},RightAxesDown:{touchStartTime:0,touchStart:!1},RightAxesLeft:{touchStartTime:0,touchStart:!1},RightAxesRight:{touchStartTime:0,touchStart:!1},RightTrigger:{touchStartTime:0,touchStart:!1},RightPinch:{touchStartTime:0,touchStart:!1},Y:{touchStartTime:0,touchStart:!1},X:{touchStartTime:0,touchStart:!1},A:{touchStartTime:0,touchStart:!1},B:{touchStartTime:0,touchStart:!1}},r.xrManager.machineType==="VP"&&r.initHandEvent(),r):(console.error("获取session失败,请退出重试"),r)}return t.parseArgs=function(e){if(e instanceof t)return e;var r=__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return n.parseArgs.call(this,r)},t.initAnimationEndState=function(e){var r=this.parseArgs(e),o=n.initAnimationEndState.call(this,r);return __assign(__assign({},o),{mode:"XRPanorama"})},t.prototype.moveToPano=function(e,r,o){var s=this,u,l,c,f,d=(u=r.effect)!==null&&u!==void 0?u:"fade";this.userAction=o,this.stopMomentumMovement();var p=this.works.getResolvedObserver(e);if(!p)throw new Error("Invalid PanoIndex");var v=getImageSizeFromURL(p.images.up),g=this.imageOptions.size;typeof g=="undefined"&&p&&v&&(g=Number(v)),typeof g=="undefined"&&(g=2048);var h=this.imageOptions.transform,m=function(w,C){return mapPanoResource(applyImageURLOptions(w,h,C))},y=__assign({key:"pano.".concat(p.panoId)},pick(this.imageOptions,["format","size","quality"])),A=p.images,E=(c=(l=p.images.tiles)===null||l===void 0?void 0:l.filter(function(w){return w.size>g}))!==null&&c!==void 0?c:null,b="pano:"+jsonHash([A,y,h]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===b)return;var T=this.pendingTextureTask.panoId;(f=this.panoMeshes[T])===null||f===void 0||f.setProgress(0),this.emit("pano.texture.abort",createEvent("pano.texture.abort",{error:null,progress:0,meta:null,pano:p.pano}))}var _=this.models.getMaterial()||{},R=_.pano0,S=_.pano1,M;if((R==null?void 0:R.map.name)===b?M=R:(S==null?void 0:S.map.name)===b&&(M=S),M){var B={panoId:p.panoId,effect:d,leftPanoPicture:{zoom:1,map:M.map,luminanceMap:M.luminanceMap,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};this.doMoveToPano(p.pano,B,r);return}var H="move-to-pano-"+p.panoId;this.pending.add(H),this.pendingTextureTask={panoId:p.panoId,hash:b,onLoad:function(w){if(s.pending.delete(H),s.destroyed)w.body.dispose();else{w.body.name=b;var C={panoId:p.panoId,effect:d,leftPanoPicture:{zoom:1,map:w.body,luminanceMap:null,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};s.doMoveToPano(p.pano,C,r)}},onError:function(w){s.pending.delete(H);var C=__assign(__assign(__assign({},p.pano),{mode:s.mode}),clonePose(s.camera.pose));s.emit("pano.error",createEvent("pano.error",{error:w,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:C})),s.emit("pano.cancel",createEvent("pano.cancel",{error:null,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:C})),r.moveCancelCallback&&r.moveCancelCallback()}},Promise.all([this.tileLevelForFov&&E&&E.length?this.textureLoader.loadTiledCubeTexture(A,E,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:m,options:y},format:THREE__namespace.RGBAFormat,minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,generateMipmaps:!1,viaAjax:!0,fetcher:getFetcher(p.work)},void 0,void 0,function(w){var C,F;s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:w,meta:null,pano:p.pano})),((C=s.pendingTextureTask)===null||C===void 0?void 0:C.hash)===b&&((F=s.panoMeshes[p.panoId])===null||F===void 0||F.setProgress(w))},this.renderer):this.textureLoader.loadCubeTexture(A,{imageURL:{transform:m,options:y},format:THREE__namespace.RGBAFormat,fetcher:getFetcher(p.work)},void 0,void 0,function(w){var C,F;((C=s.pendingTextureTask)===null||C===void 0?void 0:C.hash)===b&&((F=s.panoMeshes[p.panoId])===null||F===void 0||F.setProgress(w)),s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:w,meta:null,pano:p.pano}))},this.renderer)]).then(function(w){var C,F,I=w[0];((C=s.pendingTextureTask)===null||C===void 0?void 0:C.hash)===b?(s.pendingTextureTask.onLoad(I),(F=s.panoMeshes[p.panoId])===null||F===void 0||F.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.success",createEvent("pano.texture.success",{error:null,progress:1,meta:I.meta,pano:p.pano}))):I.body.dispose()}).catch(function(w){var C,F;((C=s.pendingTextureTask)===null||C===void 0?void 0:C.hash)===b&&(s.pendingTextureTask.onError(w),(F=s.panoMeshes[p.panoId])===null||F===void 0||F.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.error",createEvent("pano.texture.error",{error:w,progress:0,meta:null,pano:p.pano})),s.emit("error",w))}),this.emit("pano.texture.load",createEvent("pano.texture.load",{error:null,progress:0,meta:null,pano:p.pano}))},t.prototype.doMoveToPano=function(e,r,o){var s=this,u,l,c,f,d,p,v,g,h,m;o===void 0&&(o={});var y=now(),A=createUuid();this.panoResources[A]=r;var E=1,b,T,_;if(this.locationMotion.ended){var R=this.locationMotion.getKeyFrameSegment(y);R[0];var S=R[1],M=this.locationMotion.value,B=this.panoResourceFromLocationMotionKeyframe(S).position,H=r.position;b=Math.max(B.distanceTo(H),E),T=[{key:S.key,progress:0,value:__assign(__assign({},M),{count:0})},{key:A,progress:1,value:{distance:0,count:1}}],_=0}else{var w=this.locationMotion.getKeyFrameSegment(y),C=w[0],S=w[1],M=this.locationMotion.value,F=this.panoResourceFromLocationMotionKeyframe(C).position,B=this.panoResourceFromLocationMotionKeyframe(S).position,H=r.position,I=S.value.count-M.count,L=Math.max(F.distanceTo(B),E)*I,k=Math.max(B.distanceTo(H),E);b=L+k,T=[{key:C.key,progress:0,value:__assign({},M)},{key:S.key,progress:L/b,value:S.value},{key:A,progress:1,value:{count:S.value.count+1,distance:0}}];var N=this.locationMotionKeyframesLength(this.locationMotion.keyframes),D=this.locationMotionKeyframesLength(T);_=this.locationMotion.getProgressVelocity(y)*N/D}var U=r.effect==="instant"?0:this.calculateMovingDuration(o.duration,r.effect==="fly"?b:0),z={longitude:o.longitude,latitude:o.latitude,fov:o.fov},q=__assign(__assign({},e),{mode:this.mode,longitude:(u=z.longitude)!==null&&u!==void 0?u:this.camera.pose.longitude,latitude:(l=z.latitude)!==null&&l!==void 0?l:this.camera.pose.latitude,fov:(c=z.fov)!==null&&c!==void 0?c:this.camera.pose.fov,offset:r.position.clone(),distance:0}),G=this.currentPano;if(this.emit("pano.moveTo",createEvent("pano.moveTo",{options:o,prevPano:G,progress:0,state:q,userAction:this.userAction,error:null})),o.moveStartCallback&&o.moveStartCallback(q),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=noop$1,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(z,U).catch(noop$1);else{var J=coordinatesToVector({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),X=coordinatesToVector({longitude:(f=z.longitude)!==null&&f!==void 0?f:this.cameraMotion.value.longitude,latitude:(d=z.latitude)!==null&&d!==void 0?d:this.cameraMotion.value.latitude}),j=new THREE__namespace.Object3D;j.lookAt(J);var Y=new THREE__namespace.Matrix4().makeRotationFromQuaternion(j.quaternion);j.lookAt(X);var Z=new THREE__namespace.Matrix4().makeRotationFromQuaternion(j.quaternion),W=new THREE__namespace.Matrix4().getInverse(Y).premultiply(Z),ae=this.cameraMotion.value.fov,re=(p=z.fov)!==null&&p!==void 0?p:this.cameraMotion.value.fov,se=1;r.effect==="zoomin"?se=1.5:r.effect==="zoomout"&&(se=.4);for(var ie=re*se,fe=0;fe<T.length-1;fe++){var ne=T[fe].key;if(ne){var pe=this.panoResources[ne];pe&&(pe.fixCameraTransform.copy(W),pe.leftPanoPicture&&(pe.leftPanoPicture.zoom=Math.tan(ae/2/180*Math.PI)/Math.tan(ie/2/180*Math.PI)))}}this.cameraMotion.setKeyframes([{progress:0,value:{longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:this.cameraMotion.value.fov}},{progress:0,value:{longitude:(v=z.longitude)!==null&&v!==void 0?v:this.cameraMotion.value.longitude,latitude:(g=z.latitude)!==null&&g!==void 0?g:this.cameraMotion.value.latitude,fov:ie}},{progress:1,value:{longitude:(h=z.longitude)!==null&&h!==void 0?h:this.cameraMotion.value.longitude,latitude:(m=z.latitude)!==null&&m!==void 0?m:this.cameraMotion.value.latitude,fov:re}}],U).catch(noop$1)}var _e=this.locationMotion.setKeyframes(T,U,_);_e.then(function(){for(var me,xe,$,te=0,Q=s.models;te<Q.length;te++){var be=Q[te];be.show()}var ye=__assign(__assign({},e),{mode:s.mode,longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:0});s.emit("pano.arrived",createEvent("pano.arrived",{options:o,prevPano:G,progress:1,state:ye,userAction:s.userAction,error:null})),o.moveEndCallback&&o.moveEndCallback(ye);var Ae=s.works.getResolvedObserver(s.currentPano);if(Ae&&Ae.video&&s.videoTexture&&s.videoTexture.image instanceof HTMLVideoElement){var Me=ROTATE_Y_PI_MATRIX.clone().multiply(($=(xe=(me=s.models.getMaterial())===null||me===void 0?void 0:me.pano1)===null||xe===void 0?void 0:xe.matrix)!==null&&$!==void 0?$:new THREE__namespace.Matrix4).multiply(Ae.video.matrix),ge={map:s.videoTexture,size:Ae.video.size,matrix:Me,alpha:1},he=createUuid(),de=s.videoTexture.image;de.setAttribute("uuid",he),canplayVideo().then(function(ce){ce&&Ae.video&&de.getAttribute("uuid")===he&&(de.oncanplay=function(){de.oncanplay=noop$1,de.play()},de.ontimeupdate=function(){de.currentTime>.5&&(de.ontimeupdate=noop$1,s.panoVideo.setMaterial(ge))},de.src=Ae.video.source)}).catch(function(){de.removeAttribute("uuid")})}},function(){s.emit("pano.cancel",createEvent("pano.cancel",{options:o,prevPano:G,progress:0,state:q,userAction:s.userAction,error:null})),o.moveCancelCallback&&o.moveCancelCallback()})},t.prototype.checkSelectedPano=function(e){var r=this,o,s,u,l;this.stopMomentumMovement();var c=this.camera.getDirection(new THREE__namespace.Vector3).setY(0),f=null,d=this.works.getResolvedObserver(this.currentPano);if(!d)return null;var p=d.accessibleIds.filter(function(X){var j=panoParse(X);if(panoEqual(j,r.currentPano))return!1;var Y=r.works.getResolvedObserver(j);return!Y||Y.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:Y.loadable||Y.active}),v=this.models.intersectRaycaster(e)[0];if(v){var g=arrayMin(p,function(X){var j=r.works.getResolvedObserver(X);if(!j)return 1/0;var Y=j.standingPosition.clone();return Y.distanceTo(v.point)},!0),h=g[0],m=g[1];h&&m<this.panoTapTriggerRadius&&(f=(o=this.works.getResolvedObserver(h))!==null&&o!==void 0?o:null)}if(isNil(f)){var y=this.getForwardObserverOrNot(e);y&&(f=y)}for(var A=0,E=this.locationMotion.keyframes;A<E.length;A++){var b=E[A],T=this.panoResourceFromLocationMotionKeyframe(b);if(!(b.progress<this.locationMotion.progress)&&f&&T.panoId===f.panoId){f=null;break}}if(isNil(f))return this.locationMotion.ended===!0&&this.cameraBounce(),null;if(f&&!f.active){var _=f.panoId;this.panoMeshes[_]&&(this.panoMeshes[_].setDisabled(!1),this.panoMeshes[_].setLoading(!0))}var R={};if(f){for(var S=Math.PI/6,M=Math.PI/12,B=new THREE__namespace.Vector3(0,1,0),H=f.position.clone().setY(0).sub(d.position.clone().setY(0)).normalize(),w=H.clone().applyAxisAngle(B,S),C=H.clone().applyAxisAngle(B,-S),F=[],I=[],L=[],k=0,N=f.accessibleIds;k<N.length;k++){var h=N[k],D=panoParse(h);if(!(panoEqual(D,this.currentPano)||panoEqual(D,f.pano))){var U=this.works.getResolvedObserver(h);if(U){var z=U.position.clone().sub(f.position).setY(0);H.angleTo(z)<S?L.push(z):w.angleTo(z)<S?F.push(z):C.angleTo(z)<S&&I.push(z)}}}var q=L.length>0?L:__spreadArray(__spreadArray([],F,!0),I,!0),G=q.slice().sort(function(X,j){return X.angleTo(H)-j.angleTo(H)})[0];G&&G.angleTo(c)>M&&(R.longitude=Math.atan2(-G.x,-G.z))}this.cameraMotion.value.latitude<-Math.PI/4&&(R.latitude=clamp$1(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(R.fov=this.defaultFov);var J={workCode:f.pano.workCode,panoIndex:f.pano.panoIndex,mode:this.mode,longitude:(s=R.longitude)!==null&&s!==void 0?s:this.camera.pose.longitude,latitude:(u=R.latitude)!==null&&u!==void 0?u:this.camera.pose.latitude,fov:(l=R.fov)!==null&&l!==void 0?l:this.camera.pose.fov,distance:0,offset:f?f.position.clone():new THREE__namespace.Vector3};return this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:J,userAction:!0,options:R,progress:0,error:null})),f&&f.active?(this.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:J,options:R,error:null})),f.pano):null},t.prototype.destroy=function(){n.prototype.destroy.call(this)},t.prototype.isReady=function(){return!1},t.prototype.updateCamera=function(e,r,o){return Promise.resolve()},t.prototype.updateCameraWithKeyframes=function(e,r,o){return Promise.resolve()},t.prototype.updateTime=function(e,r){for(var o=this,s,u,l,c,f,d,p,v,g=[],h=2;h<arguments.length;h++)g[h-2]=arguments[h];this.userAction=!0;var m={},y={},A=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),E=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),b=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),y.longitude=this.cameraMotion.value.longitude,y.latitude=this.cameraMotion.value.latitude,y.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),m.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var T=this.locationMotion.getKeyFrameSegment(e),_=T[0],R=T[1],S=this.panoResourceFromLocationMotionKeyframe(_),M=this.panoResourceFromLocationMotionKeyframe(R),B=new THREE__namespace.Vector3().copy(S.position),H=new THREE__namespace.Vector3().copy(M.position),w=this.locationMotion.value.count-R.value.count+1;m.progress=w,M.leftPanoPicture&&(w<1?S.leftPanoPicture&&(m.pano0=S.leftPanoPicture):m.pano0=M.leftPanoPicture,m.pano1=M.leftPanoPicture),M.effect==="montage"?m.transition="BLACK":M.effect==="spread"?m.transition="SPREAD":m.transition="FADE",(M.effect==="zoomin"||M.effect==="zoomout")&&(m.progress=Math.pow(w,3)),w<1&&M.effect!=="fly"&&(m.pano0&&S.leftPanoPicture&&(m.pano0={map:m.pano0.map,zoom:m.pano0.zoom,luminanceMap:m.pano0.luminanceMap,matrix:S.leftPanoPicture.matrix.clone().setPosition(M.position)}),B.copy(H),b=!0),y.distance=this.locationMotion.value.distance,y.offset=new THREE__namespace.Vector3(B.x+(H.x-B.x)*w,B.y+(H.y-B.y)*w,B.z+(H.z-B.z)*w);for(var C=[],F=[],I=0,L=this.locationMotion.keyframes;I<L.length;I++){var k=L[I],N=k.key,D=k.progress;N!==void 0&&(C.push(N),D>this.locationMotion.progress&&F.push(N))}for(var U=0,z=Object.keys(this.panoResources);U<z.length;U++){var q=z[U];if(!(F.indexOf(q)>=0)){var G=this.panoResources[q];if(G.leftPanoPicture){var J=G.leftPanoPicture.map;if(J){if(J===((s=m.pano0)===null||s===void 0?void 0:s.map)||J===((u=m.pano1)===null||u===void 0?void 0:u.map))continue;J instanceof TileCubeTextureTarget&&J.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(J.cubeRenderTarget),J.dispose(),G.leftPanoPicture=null}}C.indexOf(q)>=0||delete this.panoResources[q]}}this.currentPano=panoParse(M.panoId),this.emit("pano.moving",createEvent("pano.moving",{userAction:this.userAction,prevPano:panoParse(A.panoId),state:__assign(__assign(__assign(__assign({},panoParse(E.panoId)),{mode:this.mode}),clonePose(this.camera.pose)),y),options:{},progress:this.locationMotion.progress,error:null}))}isEmptyObject(m)===!1&&(!((l=m.pano0)===null||l===void 0)&&l.map&&m.pano0.map instanceof TileCubeTextureTarget&&!m.pano0.map.cubeRenderTarget&&(m.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=m.pano1)===null||c===void 0)&&c.map&&m.pano1.map instanceof TileCubeTextureTarget&&!m.pano1.map.cubeRenderTarget&&(m.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.models.setMaterial(m)),isEmptyObject(y)===!1&&this.setCamera(y);var X=this.works.getResolvedObserver(this.currentPano),j=g[1];if(!j){console.error("xrFrame丢失,请重试");return}if(!this.xrManager.session){console.error("session丢失,请重试");return}var Y=this.xrManager.referenceSpace;if(Y){var Z=this.xrManager.cameraVR,W=this.xrManager.cameraL,ae=this.xrManager.cameraR,re=[W,ae],se=j.getViewerPose(Y),ie=new THREE__namespace.Vector3(0,0,0);if(se){var fe;fe=this.xrManager.session.renderState.baseLayer;var ne=se.views;if(!fe){console.error("no layer found");return}this.renderer.setFramebuffer(fe.framebuffer);var pe=!1;ne.length!==Z.cameras.length&&(Z.cameras.length=0,pe=!0),this.parallaxCameraMatrixs=[];var _e=new THREE__namespace.Vector3,me=new THREE__namespace.Vector3;new THREE__namespace.Matrix4().fromArray(ne[0].transform.matrix).decompose(_e,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),new THREE__namespace.Matrix4().fromArray(ne[1].transform.matrix).decompose(me,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),me.clone().sub(_e).normalize();var xe=new THREE__namespace.Vector3,$=new THREE__namespace.Quaternion,te=new THREE__namespace.Vector3;this.camera.matrix.decompose(xe,$,te);for(var Q=0;Q<ne.length;Q++){var be=ne[Q],ye=fe.getViewport(be),Ae=re[Q];Ae.matrix.fromArray(be.transform.matrix);var Me=new THREE__namespace.Vector3,ge=new THREE__namespace.Quaternion,he=new THREE__namespace.Vector3;Ae.matrix.decompose(Me,ge,he),ie.copy(xe),Ae.position.copy(xe),Ae.quaternion.copy(ge),Ae.scale.copy(he),Ae.updateMatrix(),Ae.projectionMatrix.fromArray(be.projectionMatrix),Ae.viewport.set(ye.x,ye.y,ye.width,ye.height),pe===!0&&Z.cameras.push(Ae)}if(this.xrManager.session&&this.xrManager.session.inputSources){for(var Q=0;Q<this.xrManager.session.inputSources.length;Q++)if(this.xrManager.session.inputSources[Q]&&this.xrManager.session.inputSources[Q].targetRayMode==="transient-pointer"){var de=j.getPose(this.xrManager.session.inputSources[Q].targetRaySpace,Y);if(de){var ce=new THREE__namespace.Vector3(0,0,-1).applyQuaternion(de.transform.orientation),le=new THREE__namespace.Raycaster(this.camera.position,ce);this.gazeRay=le}}}if(this.xrManager.machineType==="Oculus"||this.xrManager.machineType==="Pico"){for(var we=this.xrManager.session.inputSources,Q=0;Q<we.length;Q++){var ue=this.xrManager.controllers[Q],ve=we[Q];if(ve){ue&&ue.update(ve,j,Y);var le=this.xrManager.getController(Q),qe=new THREE__namespace.Vector3(0,1.2,0),Ee=le.position.clone().add(ie).sub(qe);ve.handedness==="left"?this.xrControllerRay.left.set(Ee,new THREE__namespace.Vector3(0,0,-1).applyEuler(le.rotation)):ve.handedness==="right"&&this.xrControllerRay.right.set(Ee,new THREE__namespace.Vector3(0,0,-1).applyEuler(le.rotation)),this.controllerWrappers[Q].position.copy(new THREE__namespace.Vector3(0,0,0).add(ie).sub(qe));var Ie=this.models.intersectRaycaster(this.xrControllerRay.right);if(Ie.length===0&&(Ie=this.xrControllerRay.right.intersectObject(this.boundingMesh,!0).map(function(vt){var At;return __assign({floor:(At=X==null?void 0:X.floorIndex)!==null&&At!==void 0?At:0},vt)})),Ie.length>=1&&Ie[0].face)if(ve.handedness==="right"){var Oe=this.xrControllerRay.right.intersectObject(this.xrCustomObjectsScene,!0),$e=Ie[0].face.normal,pt=$e.clone(),tt=Ie[0].point.clone();this.intersectMesh.position.copy(tt);var Ne=tt.clone().add(pt);if(this.intersectMesh.lookAt(Ne),Math.abs($e.y)>.99){var Ge=this.camera.position.clone().sub(tt);this.intersectMesh.rotation.z=-Math.atan2(Ge.z,Ge.x)}this.intersectMesh.visible=!0,this.needsRender=!0,Oe.length>0?(this.pointerLines.right.setPoints(Ee,Oe[0].point),this.pointerLines.right.points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines.right.points.visible=!1,this.pointerLines.right.setPoints(Ee,Ie[0].point));var Ve=Ie[0],Ke=createEvent("intersect.update",{raycaster:(f=this.xrControllerRay.right)!==null&&f!==void 0?f:null,intersection:Ve!=null?Ve:null,object:this.intersectMesh});if(this.emit("intersect.update",Ke),Ke.defaultPrevented){this.hideIntersectMesh();return}}else this.pointerLines.left.setPoints(Ee,Ie[0].point)}}this.updateControllerHelper(we,e,r)}if(this.camera.pose.distance>.1||b)for(var Je=0,Xe=Object.keys(this.panoMeshes);Je<Xe.length;Je++){var Pe=Xe[Je],Se=this.panoMeshes[Pe];Se.setOpacity(0),Se.setCurrent(!1),Se.updateTime&&Se.updateTime(e,r),Se.visible=!1}else if(X){var Be=arrayMin(X.visibleIds,function(je){var at=o.works.getResolvedObserver(je);return at?X.standingPosition.distanceTo(at.standingPosition):1/0},!0),De=Be[1];De=clamp$1(De,2.5,1/0);for(var He=X.visibleIds.concat(panoStringify(this.currentPano)),Ue=this.getForwardObserverOrNot(),Ye=this.camera.getDirection(new THREE__namespace.Vector3),ze=0,rt=Object.keys(this.panoMeshes);ze<rt.length;ze++){var Pe=rt[ze],Se=this.panoMeshes[Pe],ot=this.works.getResolvedObserver(Pe);if(He.indexOf(Pe)===-1)Se.setCurrent(!1),Se.setOpacity(0);else if(!ot)Se.setCurrent(!1),Se.setOpacity(0);else if(!ot.loadable&&!ot.active)Se.setCurrent(!1),Se.setOpacity(0);else{var ht=Se.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);Se.setCurrent(!Se.loading&&Se.progress===0&&Ue!==null&&Ue.panoId===Pe),Se.setOpacity(ht<.01?0:clamp$1(De/ht*1.2,.65,.98));var st=this.camera.position.clone().setY(Se.position.y),ce=new THREE__namespace.Vector3().copy(Se.position).sub(st).normalize();if(Pe===panoStringify(this.currentPano)){var ct=clamp$1((.5-st.distanceTo(Se.position))/.5,0,1);ce.multiplyScalar(1-ct).add(Ye.clone().multiplyScalar(ct))}ce.length()>0&&Se.quaternion.setFromEuler(new THREE__namespace.Euler(0,Math.atan2(ce.x,ce.z),0))}Se.updateTime&&Se.updateTime(e,r)}}var We=function(){return 4}(),Ce=function(){var je=new THREE__namespace.PerspectiveCamera;je.applyMatrix4(Z.matrix),je.position.set(0,0,0);var at=o.works.getResolvedObserver(E.panoId),vt=at!=null?at:X;vt&&je.quaternion.premultiply(vt.quaternion.clone().inverse()),je.updateProjectionMatrix(),je.updateMatrixWorld(!0);var At=new THREE__namespace.Frustum().setFromProjectionMatrix(new THREE__namespace.Matrix4().multiplyMatrices(je.projectionMatrix,je.matrixWorldInverse));return At}();E.panoId===panoStringify(this.currentPano)&&((d=E.leftPanoPicture)===null||d===void 0?void 0:d.map)instanceof TileCubeTextureTarget&&(E.leftPanoPicture.map.maxRequest=this.tileMaxRequest,E.leftPanoPicture.map.update(Ce,We),E.leftPanoPicture.map.needsRender===!0&&(this.needsRender=!0,this.modelSceneNeedsRender=!0));{var Re=this.tiling.object.visible;if(this.initAnimationed){var Le=E.panoId,Qe=this.works.getResolvedObserver(Le);Qe?isSimilarVector3(this.camera.position,Qe.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==Le&&this.tiling.cleanup(),this.tiling.panoId=Le,this.tiling.setResource((v=(p=Qe.images)===null||p===void 0?void 0:p.tiles)!==null&&v!==void 0?v:[],this.enableIOSEDR&&Qe.images.luminance?Qe.images.luminance:null),this.tiling.setFetcher(getFetcher(Qe.work)),this.tiling.setRotation(Qe.quaternion),this.tiling.setPosition(Qe.position),this.tiling.maxRequest=this.tileMaxRequest,We>this.TILED_CUBE_TEXTURE_LEVEL?this.tiling.update(Ce,We,e):this.tiling.update(Ce,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;Re!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0,this.modelSceneNeedsRender=!0)}this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e)}}},t.prototype.render=function(){var e=this.xrManager.getCamera(this.camera);this.renderer.render(this.modelScene,e),this.renderer.autoClearColor=!1,this.renderer.autoClearDepth=!1,this.renderer.render(this.scene,e),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0},t.prototype.onPanGesture=function(){},t.prototype.onTapGesture=function(){},t.prototype.onPinchGesture=function(){},t.prototype.onMouseMove=function(){},t.prototype.onMouseOut=function(){},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.updateControllerHelper=function(e,r,o){var s=this.xrControllerRay.left,u=this.xrControllerRay.right;if(!(!e||e.length===0)){for(var l={buttons:{X:!1,Y:!1,LeftTrigger:!1,LeftPinch:!1,A:!1,B:!1,RightTrigger:!1,RightPinch:!1}},c=0;c<e.length;c++){var f=e[c].handedness,d=e[c].gamepad;switch(f){case"left":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"LeftAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"LeftAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"LeftAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"LeftAxesDown",r)),d!=null&&d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"X",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"Y",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"LeftTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"LeftPinch",r));var p={raycaster:s,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:o};l.buttons.X=d.buttons&&d.buttons[4]?d.buttons[4].pressed:!1,l.buttons.Y=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,l.buttons.LeftTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,l.buttons.LeftPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1,l.left=p;break;case"right":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"RightAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"RightAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"RightAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"RightAxesDown",r)),d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"A",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"B",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"RightTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"RightPinch",r));var v={raycaster:u,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:o};l.right=v,l.buttons.A=d.buttons&&d.buttons[4]?d==null?void 0:d.buttons[4].pressed:!1,l.buttons.B=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,l.buttons.RightTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,l.buttons.RightPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1;break}}this.emit("xr.controller.update",createEvent("xr.controller.update",l))}},t.prototype.emitHandleEvent=function(e,r,o){var s=this.xrControllerRay.left,u=this.xrControllerRay.right;if(e)if(this.xrHandleState[r].touchStart===!1)this.xrHandleState[r].touchStartTime=o,this.xrHandleState[r].touchStart=!0,this.emit("xr.gesture.buttonDown",createEvent("xr.gesture.buttonDown",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!1,isFirst:!0,controllers:{raycaster:{leftRay:s,rightRay:u}}}));else{var l=o-this.xrHandleState[r].touchStartTime;l>CONTROLLER_EVNET_DELTA_TIME&&this.emit("xr.gesture.press",createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!0,controllers:{raycaster:{leftRay:s,rightRay:u}}}))}else if(this.xrHandleState[r].touchStart===!0){this.emit("xr.gesture.buttonUp",createEvent("xr.gesture.buttonUp",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:s,rightRay:u}}}));var l=o-this.xrHandleState[r].touchStartTime;if(l<=CONTROLLER_EVNET_DELTA_TIME){var c=createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:s,rightRay:u}}}),f=this.emit("xr.gesture.tap",c);!f&&!c.defaultPrevented&&r==="RightTrigger"&&this.checkSelectedPano(this.xrControllerRay.right)}this.xrHandleState[r].touchStart=!1,this.xrHandleState[r].touchStartTime=0}},t.prototype.initHandEvent=function(){var e=this;if(!this.xrManager.session)throw new Error("初始化失败");this.xrManager.session.addEventListener("select",function(r){e.gazeRay&&e.checkSelectedPano(e.gazeRay)})},t}(PanoramaController),Controllers={Floorplan:FloorplanController,Topview:TopviewController,Panorama:PanoramaController,VRPanorama:VRPanoramaController,Model:ModelController,Mapview:MapviewController,XRPanorama:XRPanoramaController},PROXY_CONTROLLER_EVENT_NAMES=["gesture.pan","gesture.tap","gesture.dbltap","gesture.press","gesture.pinch","gesture.mousewheel","gesture.mousemove","gesture.momentum","initAnimation.start","initAnimation.end","camera.update","intersect.update","pano.select","pano.moveTo","pano.moving","pano.arrived","pano.cancel","pano.error","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"];function initLegacyEvent(n){n.on("initAnimation.start",function(t){n.emit("initAnimationWillStart",t.state.panoIndex,t.state,t.userAction)}),n.on("initAnimation.end",function(t){n.emit("initAnimationEnded",t.state.panoIndex,t.state,t.userAction)}),n.on("gesture.pan",function(t){var e=!1;e=n.emit("wantsGesture","pan",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPanGesture",t.state,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pan",t.pointers,t.isFinal),n.emit("panGesture",t.state,t.isFinal))}),n.on("gesture.tap",function(t){var e=!1;e=n.emit("wantsGesture","tap",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsTapGesture",t.center.raycaster,t.center.coords,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","tap",t.pointers,t.isFinal),n.emit("tapGesture",t.center.raycaster,t.center.coords,t.isFinal))}),n.on("gesture.dbltap",function(t){var e=!1;e=n.emit("wantsGesture","dbltap",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsDblTapGesture",t.center.raycaster,t.center.coords,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","dbltap",t.pointers,t.isFinal),n.emit("dblTapGesture",t.center.raycaster,t.center.coords,t.isFinal))}),n.on("gesture.press",function(t){var e=!1;e=n.emit("wantsGesture","press",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","press",t.pointers,t.isFinal),n.emit("pressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal))}),n.on("gesture.pinch",function(t){var e=!1;e=n.emit("wantsGesture","pinch",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPinchGesture",t.scale,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pinch",t.pointers,t.isFinal),n.emit("pinchGesture",t.scale,t.state.fov,t.isFinal))}),n.on("gesture.mousewheel",function(t){var e=!1;e=n.emit("wantsGesture","mouseWheel",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsMouseWheel",t.center.delta,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseWheel",t.pointers,t.isFinal),n.emit("mouseWheel",t.center.delta,t.state.fov,t.isFinal))}),n.on("gesture.mousemove",function(t){var e=!1;e=n.emit("wantsGesture","mouseMove",t.pointers,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseMove",t.pointers,t.isFinal),e=n.emit("wantsChangeCameraFov",t.state.fov),e&&t.preventDefault())}),n.on("gesture.momentum",function(t){var e=!1;e=n.emit("wantsInteriaPan",t.state),e&&t.preventDefault(),t.defaultPrevented||n.emit("interiaPan",t.state,t.isFinal)}),n.on("camera.update",function(t){n.emit("cameraFovUpdate",t.state.fov,t.userAction),n.emit("cameraDirectionUpdate",t.state,t.userAction);var e=coordinatesToVector(t.state);e.setLength(t.state.distance);var r=t.state.offset.clone().sub(e);n.emit("cameraPositionUpdate",r,t.userAction),n.emit("cameraUpdate",t.state,t.userAction)}),n.on("intersect.update",function(t){if(t.intersection){var e=!1;e=n.emit("wantsShowIntersectionOnModel",t.raycaster),e&&t.preventDefault(),t.defaultPrevented||n.emit("intersectionOnModelUpdate",t.intersection,t.object)}else n.emit("intersectionHidden")}),n.on("pano.request",function(t){var e=n.emit("wantsMoveToPano",t.state.panoIndex,t.options,t.userAction);e||(e=n.emit("wantsToMoveToPano",t.state.panoIndex,t.options,t.userAction)),e&&t.preventDefault(),t.defaultPrevented||n.emit("panoWillLoad",t.state.panoIndex)}),n.on("pano.select",function(t){n.emit("panoSelected",t.state.panoIndex)}),n.on("pano.moveTo",function(t){n.emit("panoLoaded",t.state.panoIndex),n.emit("moveToPano",t.state.panoIndex,t.userAction),n.emit("panoWillArrive",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.moving",function(t){n.emit("movingToPano",t.state.panoIndex,t.prevPano.panoIndex,t.progress)}),n.on("pano.arrived",function(t){n.emit("panoArrived",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.cancel",function(t){n.emit("moveToPanoCanceled",t.state.panoIndex)}),n.on("pano.error",function(t){n.emit("panoLoadError",t.error,t.state.panoIndex)}),n.on("pano.texture.load",function(t){n.emit("textureStartLoad",t.pano.panoIndex)}),n.on("pano.texture.success",function(t){n.emit("textureLoaded",t.pano.panoIndex,t.meta)}),n.on("pano.texture.error",function(t){n.emit("textureError",t.error,t.pano.panoIndex)}),n.on("pano.texture.abort",function(t){n.emit("textureAbort",t.pano.panoIndex)}),n.on("pano.texture.progress",function(t){n.emit("textureLoading",t.progress,t.pano.panoIndex)}),n.on("xr.session.start",function(t){n.emit("webXRSessionStart")}),n.on("xr.session.end",function(t){n.emit("webXRSessionEnd")}),n.on("xr.gesture.tap",function(t){n.emit("webXRControllerEvent","tap",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.press",function(t){n.emit("webXRControllerEvent","press",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonUp",function(t){n.emit("webXRControllerEvent","buttonUp",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonDown",function(t){n.emit("webXRControllerEvent","buttonDown",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.controller.update",function(t){n.emit("webXRControllerRayUpdate",{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0}),t.left&&n.emit("webXRAxesUpdate","left",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.left.axes.up,down:t.left.axes.down,left:t.left.axes.left,right:t.left.axes.right},deltaTime:t.left.deltaTime}),t.right&&n.emit("webXRAxesUpdate","right",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.right.axes.up,down:t.right.axes.down,left:t.right.axes.left,right:t.right.axes.right},deltaTime:t.right.deltaTime})}),n.on("works.request",function(t){n.emit("willLoad",t.input,t.works[0],t.state)}),n.on("works.load",function(t){n.emit("load",t.input,t.works[0],t.state)}),n.on("works.ready",function(t){n.emit("loaded",t.input,t.works[0])}),n.on("state.change",function(t){n.emit("stateChange",t.state,t.userAction)}),n.on("currentState.change",function(t){n.emit("currentStateChange",t.state,t.userAction)}),n.on("state.set",function(t){n.emit("setState",t.state)}),n.on("state.synced",function(t){n.emit("stateSynced",t.state)}),n.on("model.request",function(t){n.emit("modelWillLoad",t.work.model)}),n.on("model.error",function(t){n.emit("modelLoadError",t.error,t.model)}),n.on("model.load",function(t){n.emit("modelLoaded",t.model)}),n.on("model.changeShownFloor",function(t){n.emit("modelShownFloorChange",t.model.shownFloor,t.model.floorLength)}),n.on("render",function(t){n.emit("renderFrame",t.needsRender)}),n.on("mode.change.request",function(t){n.emit("wantsChangeMode",t.mode,t.prevMode)}),n.on("mode.change",function(t){n.emit("modeChange",t.mode,t.prevMode,t.state.panoIndex,t.state,t.userAction)}),n.on("helpers.visible",function(t){n.emit("helpersVisibleChange",t.object.visible)}),n.on("network.resource",function(t){n.emit("network",t.source,t.requestType,t.requestState,t.detail)})}function generateDefaultVideoElement(){if(typeof window!="undefined"){var n=document.createElement("video");n.loop=!0,n.autoplay=!0,n.playsInline=!0,n.muted=!0,n.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),n.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),n}else return{}}function initLights(n){var t=new THREE__namespace.Group;t.name="internalLights";{var e=new THREE__namespace.DirectionalLight(16777215,.3);e.position.copy(new THREE__namespace.Vector3(1,1,1)),t.add(e)}{var e=new THREE__namespace.DirectionalLight(16777215,.1);e.position.copy(new THREE__namespace.Vector3(-1,-1,-1)),t.add(e)}{var e=new THREE__namespace.DirectionalLight(16777215,.1);t.add(e)}{var e=new THREE__namespace.AmbientLight(16777215,.6);t.add(e)}n.add(t)}function parseKeyValue(n){for(var t,e,r={},o=n.split(/(\;|\,)/),s=0,u=o;s<u.length;s++){var l=u[s],c=l.split("="),f=(t=c[0])===null||t===void 0?void 0:t.trim(),d=(e=c[1])===null||e===void 0?void 0:e.trim();f&&d&&(r[f]=d)}return r}function getViewportScale(){var n;if(typeof document!="undefined")for(var t=document.getElementsByTagName("meta"),e=0;e<t.length;e++){var r=t[e];if(r.getAttribute("name")==="viewport"){var o=parseKeyValue((n=r.getAttribute("content"))!==null&&n!==void 0?n:""),s=Number(o["initial-scale"]);if(!isNaN(s))return s}}return 1}const textureURL="data:image/png;base64,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";var imageSize=[351,63],imageOffset=[20,20],vertices=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),uvs=new Float32Array([0,0,1,0,0,1,1,1]),index=new Uint8Array([0,1,2,1,3,2]),geometry=new THREE__namespace.BufferGeometry;geometry.setAttribute("position",new THREE__namespace.BufferAttribute(vertices,3)),geometry.setAttribute("uv",new THREE__namespace.BufferAttribute(uvs,2)),geometry.setIndex(new THREE__namespace.BufferAttribute(index,1));var material=new THREE__namespace.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),mesh=new THREE__namespace.Mesh(geometry,material);mesh.matrixAutoUpdate=!1;var scene=new THREE__namespace.Scene;scene.add(mesh),scene.matrixAutoUpdate=!1;var camera=new THREE__namespace.OrthographicCamera(-.5,.5,.5,-.5,.1,1);camera.position.set(0,0,.5),camera.lookAt(0,0,0),camera.updateMatrixWorld(!0),camera.matrixAutoUpdate=!1;var prevViewport=new THREE__namespace.Vector4,prevScissor=new THREE__namespace.Vector4;function renderPoweredByRealsee(n){if(material.map){var r=n.getViewport(prevViewport),o=n.getScissor(prevScissor),s=n.getScissorTest(),u=n.autoClear,l=o.x+imageOffset[0]/3,c=o.y+imageOffset[1]/3,f=imageSize[0]/3,d=imageSize[1]/3;n.setViewport(l,c,f,d),n.setScissor(l,c,f,d),n.setScissorTest(!0),n.autoClear=!1,n.render(scene,camera),n.setViewport(r),n.setScissor(o),n.setScissorTest(s),n.autoClear=u}else{var t=new THREE__namespace.Texture,e=new Image;e.onload=function(){t.image=e,t.wrapS=THREE__namespace.ClampToEdgeWrapping,t.wrapT=THREE__namespace.ClampToEdgeWrapping,t.minFilter=THREE__namespace.LinearFilter,t.needsUpdate=!0,t.generateMipmaps=!1,material.needsUpdate=!0,e.onload=noop$1},e.src=textureURL,material.map=t}}var DEFAULT_MODE_CHANGE_DURATION=800,DEFAULT_CAMERA_FOV=90,DEFAULT_REQUEST_PROXY=function(n){return n.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/")},sharedVector2=new THREE__namespace.Vector2,sharedSphere=new THREE__namespace.Sphere,sharedFrustum=new THREE__namespace.Frustum,sharedProjScreenMatrix=new THREE__namespace.Matrix4,clockForMixer=new WeakMap,worksMap=new WeakMap,emptyWorks=createWorks([]),Five=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,o,s,u,l,c,f,d,p,v,g,h=n.call(this)||this;if(h.ident=createUuid(),typeof window!="undefined"&&(__FIVE_DEBUG__.instances[h.ident]=h),h.renderSwitch01=0,h.currentMode="Panorama",h.pano={workCode:"",panoIndex:0},h.needsRender=!1,h.modelSceneNeedsRender=!1,h.onlyRenderIfNeeds=(r=e.onlyRenderIfNeeds)!==null&&r!==void 0?r:!0,h.imageOptions=__assign({},(o=e.imageOptions)!==null&&o!==void 0?o:{}),h.textureOptions=__assign({},(s=e.textureOptions)!==null&&s!==void 0?s:{}),h.poweredByRealsee=(u=e.poweredByRealsee)!==null&&u!==void 0?u:!0,h.extraElements=[],h.controllerInits={Panorama:Object.assign({},e.panorama),Model:Object.assign({},e.model),Floorplan:Object.assign({},e.floorplan),Topview:Object.assign({},e.topview),Mapview:Object.assign({},e.mapview),VRPanorama:Object.assign({},e.vrPanorama),XRPanorama:Object.assign({},e.xrPanorama)},h.fps={testCount:0,testTime:now()},h.info=null,h.modeChangeDuration=(l=e.modeChangeDuration)!==null&&l!==void 0?l:DEFAULT_MODE_CHANGE_DURATION,h.enableWheel=(c=e.enableWheel)!==null&&c!==void 0?c:!0,typeof window!="undefined")if("renderer"in e)e.renderer instanceof InternalWebGLRenderer&&h.throwError(new Error("cannot render a internal renderer")),h.renderer=e.renderer;else try{h.renderer=new InternalWebGLRenderer({preserveDrawingBuffer:e.preserveDrawingBuffer,backgroundColor:e.backgroundColor,backgroundAlpha:e.backgroundAlpha,antialias:e.antialias,webgl2:e.webgl2,logarithmicDepthBuffer:e.logarithmicDepthBuffer,precision:e.precision,powerPreference:e.powerPreference});var m=getViewportScale();h.renderer.setPixelRatio(m===1?window.devicePixelRatio:1),h.renderer.setSize(512,512)}catch(H){H instanceof Error&&h.throwError(H)}h.getPixelsRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(d=(f=h.renderer)===null||f===void 0?void 0:f.outputEncoding)!==null&&d!==void 0?d:THREE__namespace.sRGBEncoding,generateMipmaps:!1});var y=new THREE__namespace.DepthTexture(1,1);y.generateMipmaps=!1,y.format=THREE__namespace.DepthStencilFormat,y.type=THREE__namespace.UnsignedInt248Type,h.modelRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(v=(p=h.renderer)===null||p===void 0?void 0:p.outputEncoding)!==null&&v!==void 0?v:THREE__namespace.sRGBEncoding,depthTexture:y,generateMipmaps:!1,depthBuffer:!0,stencilBuffer:!0}),h.scissor=Object.assign({left:0,bottom:0,width:1,height:1},e.scissor),h.camera=new Camera(DEFAULT_CAMERA_FOV),h.scene=new Scene,h.xrCustomObjectsScene=new THREE__namespace.Scene,h.scene.add(h.xrCustomObjectsScene),h.scene.matrixAutoUpdate=!1,h.lastLoadWorkTask=Promise.resolve(),h.requestProxy=(g=e.requestProxy)!==null&&g!==void 0?g:DEFAULT_REQUEST_PROXY,h.networkSubscribe=new NetworkSubscribe,h.networkSubscribe.on("network",function(H,w,C,F){var I;h.emit("network.resource",createEvent("network.resource",{source:H,requestType:w,requestState:C,detail:F})),(I=h.analysis)===null||I===void 0||I.network(h.works,H,w,C,F)}),h.boundingMesh=generateBoundingMesh(new THREE__namespace.Box3(new THREE__namespace.Vector3(-.5,-.5,-.5),new THREE__namespace.Vector3(.5,.5,.5))),h.boundingMesh.name="bounding",h.models=createModels(),h.models.push(new Model),h.lastModels=createModels(),h.lastWorks=createWorks([]),h.readyCallbacks=[],h.syncingState=!1,h.helperGroup=new THREE__namespace.Group,h.helperGroup.name="helper",h.helperGroup.matrixAutoUpdate=!1,h.scene.add(h.helperGroup),h.modelGroup=new THREE__namespace.Group,h.modelGroup.visible=!1,h.modelGroup.name="model",h.modelGroup.matrixAutoUpdate=!1,h.modelScene=new THREE__namespace.Scene,h.modelScene.add(h.modelGroup),h.modelScene.add(h.boundingMesh),h.modelScene.matrixAutoUpdate=!1,h.videoTexture=new THREE__namespace.VideoTexture(e.videoInstance||generateDefaultVideoElement()),initLights(h.scene),initLights(h.modelScene),h.state={mode:h.currentMode,workCode:h.pano.workCode,panoIndex:h.pano.panoIndex,longitude:h.camera.pose.longitude,latitude:h.camera.pose.latitude,fov:h.camera.pose.fov,offset:h.camera.pose.offset.clone(),distance:h.camera.pose.distance},h.stateSynced=!1,h._enablePostProcessing=!1,h._enableIOSEDR=!1,h._enableEDL=!1,h._enableHQ=!1,h.destroyed=!1,h.paused=!0,typeof window!="undefined"&&(e.play!==!1&&h.play(),h.stopAnimationLoop=AnimationFrameLoop.shared.add(function(H,w){for(var C=[],F=2;F<arguments.length;F++)C[F-2]=arguments[F];h.updateTime.apply(h,__spreadArray([H,w],C,!1))},!1,0,10));var A=function(){typeof document!="undefined"&&document.fullscreenElement===null&&h.currentMode==="VRPanorama"&&h.controller.emit("vr.requestExit",createEvent("vr.requestExit",{}))},E=function(){h.needsRender=!0,h.modelSceneNeedsRender=!0};if(typeof document!="undefined"&&document.addEventListener("fullscreenchange",A,!1),h.renderer&&h.renderer.domElement.addEventListener("webglcontextrestored",E,!1),h.removeEventListeners=function(){typeof document!="undefined"&&document.removeEventListener("fullscreenchange",A,!1),h.renderer&&h.renderer.domElement.removeEventListener("webglcontextrestored",E,!1)},h.plugins={},e.plugins&&e.plugins.length)for(var b=0,T=e.plugins;b<T.length;b++){var _=T[b];if(typeof _=="function")_(h);else if(Array.isArray(_)){var R=_[0],S=_[1],M=_[2];if(typeof R=="function"){var B=R(h,M);typeof S=="string"&&(h.plugins[S]?h.throwError(new Error("plugin name ".concat(S," is exists."))):h.plugins[S]=B)}}}return h.gpuPickingRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{generateMipmaps:!1}),h.meshReplaceMaterialMap=new Map,h.meshOriginMaterialMap=new Map,initLegacyEvent(h),h}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.13"},enumerable:!1,configurable:!0}),Object.defineProperty(t,"dracoPath",{get:function(){return draco.decoderPath},set:function(e){draco.setDecoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t,"ktx2Path",{get:function(){return ktx2.transcoderPath},set:function(e){ktx2.setTranscoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"panoIndex",{get:function(){return this.pano.panoIndex},enumerable:!1,configurable:!0}),t.prototype.getGPUPicking=function(e,r,o,s,u){var l=this;if(s===void 0&&(s=1),u===void 0&&(u=new THREE__namespace.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");var c=this.models.getMaterial(),f=c.constantColor,d=c.colorStyle;this.models.setMaterial({colorStyle:"CONSTANT",constantColor:u}),this.scene.traverse(function(h){if(!(!(h instanceof THREE__namespace.Mesh)||h instanceof PBMMesh)){var m=Object.keys(o).filter(function(A){return A===h.uuid})[0];if(m)if(l.meshOriginMaterialMap.set(m,h.material),l.meshReplaceMaterialMap.get(m))h.material=l.meshReplaceMaterialMap.get(m);else{var y=new THREE__namespace.ShaderMaterial({uniforms:{color:{value:o[m]}},vertexShader:`
|
|
2169
|
+
`},LineMaterial=function(n){__extends(t,n);function t(e){var r=n.call(this,{uniforms:THREE__namespace.UniformsUtils.clone(lineShader.uniforms),vertexShader:lineShader.vertexShader,fragmentShader:lineShader.fragmentShader,clipping:!0})||this;return r.type="LineMaterial",r.dashed=!1,Object.defineProperties(r,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(o){this.uniforms.diffuse.value=o}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(o){this.uniforms.linewidth.value=o}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(o){this.uniforms.dashScale.value=o}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(o){this.uniforms.dashSize.value=o}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(o){this.uniforms.gapSize.value=o}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(o){this.uniforms.opacity.value=o}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(o){this.uniforms.resolution.value.copy(o)}}}),r.setValues(e),r}return t}(THREE__namespace.ShaderMaterial);Object.assign(LineMaterial.prototype,{isLineMaterial:!0});var LineSegments2=function(n){__extends(t,n);function t(e,r){var o=n.call(this)||this;return o.type="LineSegments2",o.geometry=e!==void 0?e:new LineSegmentsGeometry,o.material=r!==void 0?r:new LineMaterial({color:Math.random()*16777215}),o}return t.prototype.computeLineDistances=function(){for(var e=this.geometry,r=e.attributes.instanceStart,o=e.attributes.instanceEnd,s=new Float32Array(2*r.count),u=new THREE__namespace.Vector3,l=new THREE__namespace.Vector3,c=0,f=0,d=r.count;c<d;c++,f+=2)u.fromBufferAttribute(r,c),l.fromBufferAttribute(o,c),s[f]=f===0?0:s[f-1],s[f+1]=s[f]+u.distanceTo(l);var p=new THREE__namespace.InstancedInterleavedBuffer(s,2,1);return e.setAttribute("instanceDistanceStart",new THREE__namespace.InterleavedBufferAttribute(p,1,0)),e.setAttribute("instanceDistanceEnd",new THREE__namespace.InterleavedBufferAttribute(p,1,1)),this},t.prototype.raycast=function(e,r){e.camera===null&&console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2.');var o=e.ray,s=e.camera,u=s.projectionMatrix,l=this.geometry,c=this.material,f=c.resolution,d=c.linewidth,p=l.attributes.instanceStart,v=l.attributes.instanceEnd,g=new THREE__namespace.Vector4,h=new THREE__namespace.Vector4,m=new THREE__namespace.Vector4,y=new THREE__namespace.Vector3,A=new THREE__namespace.Matrix4,E=new THREE__namespace.Line3,b=new THREE__namespace.Vector3;o.at(1,m),m.w=1,m.applyMatrix4(s.matrixWorldInverse),m.applyMatrix4(u),m.multiplyScalar(1/m.w),m.x*=f.x/2,m.y*=f.y/2,m.z=0,y.copy(m);var T=this.matrixWorld;A.multiplyMatrices(s.matrixWorldInverse,T);for(var _=0,R=p.count;_<R;_++){g.fromBufferAttribute(p,_),h.fromBufferAttribute(v,_),g.w=1,h.w=1,g.applyMatrix4(A),h.applyMatrix4(A),g.applyMatrix4(u),h.applyMatrix4(u),g.multiplyScalar(1/g.w),h.multiplyScalar(1/h.w);var S=g.z<-1&&h.z<-1,M=g.z>1&&h.z>1;if(!(S||M)){g.x*=f.x/2,g.y*=f.y/2,h.x*=f.x/2,h.y*=f.y/2,E.start.copy(g),E.start.z=0,E.end.copy(h),E.end.z=0;var B=E.closestPointToPointParameter(y,!0);E.at(B,b);var H=THREE__namespace.MathUtils.lerp(g.z,h.z,B),w=H>=-1&&H<=1,C=y.distanceTo(b)<d*.5;if(w&&C){E.start.fromBufferAttribute(p,_),E.end.fromBufferAttribute(v,_),E.start.applyMatrix4(T),E.end.applyMatrix4(T);var F=new THREE__namespace.Vector3,I=new THREE__namespace.Vector3;o.distanceSqToSegment(E.start,E.end,I,F),r.push({point:I,pointOnLine:F,distance:o.origin.distanceTo(I),object:this,faceIndex:_})}}}},t}(THREE__namespace.Mesh);Object.assign(LineSegments2.prototype,{isLineSegments2:!0});var Line2=function(n){__extends(t,n);function t(e,r){var o=n.call(this,e,r)||this;return o.type="Line2",o}return t}(LineSegments2);Object.assign(Line2.prototype,{isLine2:!0});var LineGeometry=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.type="LineGeometry",e}return t.prototype.setPositions=function(e){for(var r=e.length-3,o=new Float32Array(2*r),s=0;s<r;s+=3)o[2*s]=e[s],o[2*s+1]=e[s+1],o[2*s+2]=e[s+2],o[2*s+3]=e[s+3],o[2*s+4]=e[s+4],o[2*s+5]=e[s+5];return n.prototype.setPositions.call(this,o),this},t.prototype.setColors=function(e){for(var r=e.length-3,o=new Float32Array(2*r),s=0;s<r;s+=3)o[2*s]=e[s],o[2*s+1]=e[s+1],o[2*s+2]=e[s+2],o[2*s+3]=e[s+3],o[2*s+4]=e[s+4],o[2*s+5]=e[s+5];return n.prototype.setColors.call(this,o),this},t.prototype.fromLine=function(e){var r=e.geometry;if(r instanceof THREE__namespace.Geometry){var o=new THREE__namespace.BufferGeometry().fromGeometry(r);this.setPositions(o.attributes.position.array)}else r instanceof THREE__namespace.BufferGeometry&&this.setPositions(r.attributes.position.array);return this},t.prototype.copy=function(){return this},t}(LineSegmentsGeometry);Object.assign(LineGeometry.prototype,{isLineGeometry:!0});var circleImageURL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==",DEFAULT_COLOR=14467195,POINT_SIZE=8,DEFAULT_LINEWIDTH=2,DEFAULT_DASHSCALE=20,sharedCircleTexture=null,FiveLine=function(n){__extends(t,n);function t(e,r){e===void 0&&(e=new THREE__namespace.Vector3),r===void 0&&(r=new THREE__namespace.Vector3);var o=n.call(this)||this;o.type="FiveLine",o.needsRender=!0;var s=new LineGeometry,u=new LineMaterial({color:DEFAULT_COLOR,linewidth:DEFAULT_LINEWIDTH,dashScale:DEFAULT_DASHSCALE,dashed:!1});o.line=new Line2(s,u);var l=new THREE__namespace.BufferGeometry,c=new THREE__namespace.PointsMaterial({color:DEFAULT_COLOR,size:POINT_SIZE,map:sharedCircleTexture||(sharedCircleTexture=new THREE__namespace.TextureLoader().load(circleImageURL)),sizeAttenuation:!1,transparent:!0});return o.points=new THREE__namespace.Points(l,c),o.points.renderOrder=11,o.points.frustumCulled=!1,o.setPoints(e,r),o.add(o.line,o.points),o}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.15"},enumerable:!1,configurable:!0}),t.prototype.setPoints=function(e,r){var o=[].concat(e.toArray(),r.toArray());this.points.geometry.setAttribute("position",new THREE__namespace.BufferAttribute(new Float32Array(o),3)),this.line.geometry.setPositions(o),this.line.computeLineDistances(),this.needsRender=!0},t.prototype.getPoints=function(){var e=this.points.geometry.attributes.position.array;return[new THREE__namespace.Vector3(e[0],e[1],e[2]),new THREE__namespace.Vector3(e[3],e[4],e[5])]},t.prototype.setMaterial=function(e){var r=this.line.material;for(var o in e)if(e.hasOwnProperty(o)){var s=e[o];o==="dashed"?(r.dashed=s,s?r.defines.USE_DASH="":delete r.defines.USE_DASH,r.needsUpdate=!0):r[o]=e[o]}this.needsRender=!0},t.prototype.setResolution=function(e,r){var o=this.line.material.resolution;(o.x!==e||o.y!==r)&&(o.set(e,r),this.needsRender=!0)},t}(THREE__namespace.Object3D);Object.assign(FiveLine.prototype,{isFiveLine:!0});var Constants={Handedness:Object.freeze({NONE:"none",LEFT:"left",RIGHT:"right"}),ComponentState:Object.freeze({DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"}),ComponentProperty:Object.freeze({BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"}),ComponentType:Object.freeze({TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"}),ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:Object.freeze({TRANSFORM:"transform",VISIBILITY:"visibility"})};function fetchJsonFile(n){return __awaiter(this,void 0,void 0,function(){var t;return __generator(this,function(e){switch(e.label){case 0:return[4,fetch(n)];case 1:if(t=e.sent(),t.ok)return[2,t.json()];throw new Error(t.statusText)}})})}function fetchProfilesList(n){return __awaiter(this,void 0,void 0,function(){var t,e;return __generator(this,function(r){switch(r.label){case 0:if(!n)throw new Error("No basePath supplied");return t="profilesList.json",[4,fetchJsonFile("".concat(n,"/").concat(t))];case 1:return e=r.sent(),[2,e]}})})}function fetchProfile(n,t){return __awaiter(this,arguments,void 0,function(e,r,o,s){var u,l,c,f,d,p;return o===void 0&&(o=null),s===void 0&&(s=!0),__generator(this,function(v){switch(v.label){case 0:if(!e)throw new Error("No xrInputSource supplied");if(!r)throw new Error("No basePath supplied");return[4,fetchProfilesList(r)];case 1:if(u=v.sent(),e.profiles.some(function(g){var h=u[g];return h&&(l={profileId:g,profilePath:"".concat(r,"/").concat(h.path),deprecated:!!h.deprecated}),!!l}),!l){if(!o)throw new Error("No matching profile name found");if(c=u[o],!c)throw new Error('No matching profile name found and default profile "'.concat(o,'" missing.'));l={profileId:o,profilePath:"".concat(r,"/").concat(c.path),deprecated:!!c.deprecated}}return[4,fetchJsonFile(l.profilePath)];case 2:if(f=v.sent(),s){if(p=void 0,p=f.layouts[e.handedness],!p)throw new Error("No matching handedness, ".concat(e.handedness,", in profile ").concat(l.profileId));p.assetPath&&(d=l.profilePath.replace("profile.json",p.assetPath))}return[2,{profile:f,assetPath:d}]}})})}var defaultComponentValues={xAxis:0,yAxis:0,button:0,state:Constants.ComponentState.DEFAULT};function normalizeAxes(n,t){n===void 0&&(n=0),t===void 0&&(t=0);var e=n,r=t,o=Math.sqrt(n*n+t*t);if(o>1){var s=Math.atan2(t,n);e=Math.cos(s),r=Math.sin(s)}var u={normalizedXAxis:e*.5+.5,normalizedYAxis:r*.5+.5};return u}var VisualResponse=function(){function n(t){this.componentProperty=t.componentProperty,this.states=t.states,this.valueNodeName=t.valueNodeName,this.valueNodeProperty=t.valueNodeProperty,this.valueNodeProperty===Constants.VisualResponseProperty.TRANSFORM&&(this.minNodeName=t.minNodeName,this.maxNodeName=t.maxNodeName),this.value=0,this.updateFromComponent(defaultComponentValues)}return n.prototype.updateFromComponent=function(t){var e=t.xAxis,r=t.yAxis,o=t.button,s=t.state,u=normalizeAxes(e,r),l=u.normalizedXAxis,c=u.normalizedYAxis;switch(this.componentProperty){case Constants.ComponentProperty.X_AXIS:this.value=this.states.includes(s)?l:.5;break;case Constants.ComponentProperty.Y_AXIS:this.value=this.states.includes(s)?c:.5;break;case Constants.ComponentProperty.BUTTON:this.value=this.states.includes(s)?o:0;break;case Constants.ComponentProperty.STATE:this.valueNodeProperty===Constants.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(s):this.value=this.states.includes(s)?1:0;break;default:throw new Error("Unexpected visualResponse componentProperty ".concat(this.componentProperty))}},n}(),Component=function(){function n(t,e){var r=this;if(!t||!e||!e.visualResponses||!e.gamepadIndices||Object.keys(e.gamepadIndices).length===0)throw new Error("Invalid arguments supplied");this.id=t,this.type=e.type,this.rootNodeName=e.rootNodeName,this.touchPointNodeName=e.touchPointNodeName,this.visualResponses={},Object.keys(e.visualResponses).forEach(function(o){var s=new VisualResponse(e.visualResponses[o]);r.visualResponses[o]=s}),this.gamepadIndices=Object.assign({},e.gamepadIndices),this.values={state:Constants.ComponentState.DEFAULT,button:this.gamepadIndices.button!==void 0?0:void 0,xAxis:this.gamepadIndices.xAxis!==void 0?0:void 0,yAxis:this.gamepadIndices.yAxis!==void 0?0:void 0}}return Object.defineProperty(n.prototype,"data",{get:function(){var t=__assign({id:this.id},this.values);return t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(t){var e=this;if(this.values.state=Constants.ComponentState.DEFAULT,this.gamepadIndices.button!==void 0&&t.buttons.length>this.gamepadIndices.button){var r=t.buttons[this.gamepadIndices.button];this.values.button=r.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,r.pressed||this.values.button===1?this.values.state=Constants.ComponentState.PRESSED:(r.touched||this.values.button>Constants.ButtonTouchThreshold)&&(this.values.state=Constants.ComponentState.TOUCHED)}this.gamepadIndices.xAxis!==void 0&&t.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=t.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===Constants.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),this.gamepadIndices.yAxis!==void 0&&t.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=t.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===Constants.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>Constants.AxisTouchThreshold&&(this.values.state=Constants.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach(function(o){o.updateFromComponent(e.values)})},n}(),MotionController=function(){function n(t,e,r){var o=this;if(!t)throw new Error("No xrInputSource supplied");if(!e)throw new Error("No profile supplied");this.xrInputSource=t,this.assetUrl=r,this.id=e.profileId,this.layoutDescription=e.layouts[t.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach(function(s){var u=o.layoutDescription.components[s];o.components[s]=new Component(s,u)}),this.updateFromGamepad()}return Object.defineProperty(n.prototype,"gripSpace",{get:function(){return this.xrInputSource.gripSpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"targetRaySpace",{get:function(){return this.xrInputSource.targetRaySpace},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"data",{get:function(){var t=[];return Object.values(this.components).forEach(function(e){t.push(e.data)}),t},enumerable:!1,configurable:!0}),n.prototype.updateFromGamepad=function(){var t=this;Object.values(this.components).forEach(function(e){e.updateFromGamepad(t.xrInputSource.gamepad)})},n}(),DEFAULT_PROFILES_PATH="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",DEFAULT_PROFILE="generic-trigger",XRControllerModel=function(n){__extends(t,n);function t(){var e=n.call(this)||this;return e.motionController=null,e.envMap=null,e}return t.prototype.setEnvironmentMap=function(e){var r=this;return this.envMap==e?this:(this.envMap=e,this.traverse(function(o){o instanceof THREE__namespace.Mesh&&o.isMesh&&(o.material.envMap=r.envMap,o.material.needsUpdate=!0)}),this)},t.prototype.updateMatrixWorld=function(e){n.prototype.updateMatrixWorld.call(this,e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach(function(r){Object.values(r.visualResponses).forEach(function(o){var s=o.valueNode,u=o.minNode,l=o.maxNode,c=o.value,f=o.valueNodeProperty;s&&(f===Constants.VisualResponseProperty.VISIBILITY?s.visible=c:f===Constants.VisualResponseProperty.TRANSFORM&&(s.quaternion.copy(u.quaternion).slerp(l.quaternion,c),s.position.lerpVectors(u.position,l.position,c)))})}))},t}(THREE.Object3D);function findNodes(n,t){Object.values(n.components).forEach(function(e){var r=e.type,o=e.touchPointNodeName,s=e.visualResponses;if(r===Constants.ComponentType.TOUCHPAD)if(e.touchPointNode=t.getObjectByName(o),e.touchPointNode){var u=new THREE.SphereGeometry(.001),l=new THREE.MeshBasicMaterial({color:255}),c=new THREE.Mesh(u,l);e.touchPointNode.add(c)}else console.warn("Could not find touch dot, ".concat(e.touchPointNodeName,", in touchpad component ").concat(e.id));Object.values(s).forEach(function(f){var d=f.valueNodeName,p=f.minNodeName,v=f.maxNodeName,g=f.valueNodeProperty;if(g===Constants.VisualResponseProperty.TRANSFORM){if(f.minNode=t.getObjectByName(p),f.maxNode=t.getObjectByName(v),!f.minNode){console.warn("Could not find ".concat(p," in the model"));return}if(!f.maxNode){console.warn("Could not find ".concat(v," in the model"));return}}f.valueNode=t.getObjectByName(d),f.valueNode||console.warn("Could not find ".concat(d," in the model"))})})}function addAssetSceneToControllerModel(n,t){findNodes(n.motionController,t),n.envMap&&t.traverse(function(e){e instanceof THREE__namespace.Mesh&&e.isMesh&&(e.material.envMap=n.envMap,e.material.needsUpdate=!0)}),n.add(t)}var XRControllerModelFactory=function(){function n(t){t===void 0&&(t=null),this.gltfLoader=t,this.path=DEFAULT_PROFILES_PATH,this._assetCache={}}return n.prototype.createControllerModel=function(t){var e=this,r=new XRControllerModel,o=null;return t.addEventListener("connected",function(s){var u=s.data;u.targetRayMode!=="tracked-pointer"||!u.gamepad||fetchProfile(u,e.path,DEFAULT_PROFILE).then(function(l){var c=l.profile,f=l.assetPath;r.motionController=new MotionController(u,c,f);var d=e._assetCache[r.motionController.assetUrl];if(d)o=d.scene.clone(),addAssetSceneToControllerModel(r,o);else{if(!e.gltfLoader)throw new Error("GLTFLoader not set.");e.gltfLoader.load(r.motionController.assetUrl,function(p){e._assetCache[r.motionController.assetUrl]=p,o=p.scene.clone(),addAssetSceneToControllerModel(r,o)})}}).catch(function(l){console.warn(l)})}),t.addEventListener("disconnected",function(){r.motionController=null,r.remove(o),o=null}),r},n}();function mapPanoResource(n,t){return n}var CONTROLLER_EVNET_DELTA_TIME=300,ROTATE_Y_PI_MATRIX=new THREE__namespace.Matrix4().makeRotationAxis(new THREE__namespace.Vector3(0,1,0),Math.PI),PANO_TEXTURE_SCALE=new THREE__namespace.Vector3(-1,1,1),XRPanoramaController=function(n){__extends(t,n);function t(e){var r=n.call(this,e)||this;r.xrManager=new XRManager(r.renderer,r.renderer.getContext(),{onSessionStart:function(c){r.emit("xr.session.start",createEvent("xr.session.start",{session:c,machineType:r.xrManager.machineType}))},onSessionEnd:function(){r.emit("xr.session.end",createEvent("xr.session.end",{session:null,machineType:r.xrManager.machineType}))}}),r.xrControllerRay={left:new THREE__namespace.Raycaster,right:new THREE__namespace.Raycaster},r.xrControllerRay.left.params.Points={threshold:.1},r.xrControllerRay.right.params.Points={threshold:.1},r.gazeRay=null,r.pointerLines={left:new FiveLine,right:new FiveLine},r.pointerLines.left.visible=!1,r.pointerLines.right.visible=!0,r.pointerLines.left.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.left.points.material.depthTest=!1,r.pointerLines.right.setMaterial({color:new THREE__namespace.Vector3(1,1,1)}),r.pointerLines.right.points.material.depthTest=!1,r.controllerWrappers=[new THREE__namespace.Group,new THREE__namespace.Group];var o=r.xrManager.getController(0);r.controllerWrappers[0].add(o);var s=r.xrManager.getController(1);r.controllerWrappers[1].add(s);var u=new XRControllerModelFactory;u.gltfLoader={load:function(c,f){internalFetcher.ajax(c,{responseType:"arraybuffer"}).then(function(d){var p;return parseGltf(d.body,{resourcePath:c.slice(0,c.lastIndexOf("/")+1),search:(p=c.split("?")[1])!==null&&p!==void 0?p:"",fetcher:internalFetcher})}).then(function(d){return f(d)})}},(r.xrManager.machineType==="Oculus"||r.xrManager.machineType==="Pico")&&r.scene.add(r.pointerLines.left,r.pointerLines.right,r.controllerWrappers[0],r.controllerWrappers[1]),r.panoResources={},r.panoResources[r.locationMotion.keyframes[0].key=r.locationMotion.keyframes[1].key=createUuid()]={panoId:panoStringify(r.currentPano),leftPanoPicture:null,position:r.camera.pose.offset.clone(),effect:"fade",fixCameraTransform:new THREE__namespace.Matrix4},r.parallaxCameraMatrixs=[];var l=AnimationFrameLoop.shared.getContext();return l?(r.on("xr.session.end",function(){r.scene.remove(r.pointerLines.left,r.pointerLines.right)}),r.xrManager.setSession(l),r.on("xr.session.start",function(){var c=r.xrManager.getControllerGrip(0);c.add(u.createControllerModel(c)),r.controllerWrappers[0].add(c);var f=r.xrManager.getControllerGrip(1);f.add(u.createControllerModel(f)),r.controllerWrappers[1].add(f)}),r.xrHandleState={LeftAxesUp:{touchStartTime:0,touchStart:!1},LeftAxesDown:{touchStartTime:0,touchStart:!1},LeftAxesLeft:{touchStartTime:0,touchStart:!1},LeftAxesRight:{touchStartTime:0,touchStart:!1},LeftTrigger:{touchStartTime:0,touchStart:!1},LeftPinch:{touchStartTime:0,touchStart:!1},RightAxesUp:{touchStartTime:0,touchStart:!1},RightAxesDown:{touchStartTime:0,touchStart:!1},RightAxesLeft:{touchStartTime:0,touchStart:!1},RightAxesRight:{touchStartTime:0,touchStart:!1},RightTrigger:{touchStartTime:0,touchStart:!1},RightPinch:{touchStartTime:0,touchStart:!1},Y:{touchStartTime:0,touchStart:!1},X:{touchStartTime:0,touchStart:!1},A:{touchStartTime:0,touchStart:!1},B:{touchStartTime:0,touchStart:!1}},r.xrManager.machineType==="VP"&&r.initHandEvent(),r):(console.error("获取session失败,请退出重试"),r)}return t.parseArgs=function(e){if(e instanceof t)return e;var r=__assign(__assign({},e),{maxLatitude:Math.PI/2,minLatitude:-Math.PI/2});return n.parseArgs.call(this,r)},t.initAnimationEndState=function(e){var r=this.parseArgs(e),o=n.initAnimationEndState.call(this,r);return __assign(__assign({},o),{mode:"XRPanorama"})},t.prototype.moveToPano=function(e,r,o){var s=this,u,l,c,f,d=(u=r.effect)!==null&&u!==void 0?u:"fade";this.userAction=o,this.stopMomentumMovement();var p=this.works.getResolvedObserver(e);if(!p)throw new Error("Invalid PanoIndex");var v=getImageSizeFromURL(p.images.up),g=this.imageOptions.size;typeof g=="undefined"&&p&&v&&(g=Number(v)),typeof g=="undefined"&&(g=2048);var h=this.imageOptions.transform,m=function(w,C){return mapPanoResource(applyImageURLOptions(w,h,C))},y=__assign({key:"pano.".concat(p.panoId)},pick(this.imageOptions,["format","size","quality"])),A=p.images,E=(c=(l=p.images.tiles)===null||l===void 0?void 0:l.filter(function(w){return w.size>g}))!==null&&c!==void 0?c:null,b="pano:"+jsonHash([A,y,h]);if(this.pendingTextureTask){if(this.pendingTextureTask.hash===b)return;var T=this.pendingTextureTask.panoId;(f=this.panoMeshes[T])===null||f===void 0||f.setProgress(0),this.emit("pano.texture.abort",createEvent("pano.texture.abort",{error:null,progress:0,meta:null,pano:p.pano}))}var _=this.models.getMaterial()||{},R=_.pano0,S=_.pano1,M;if((R==null?void 0:R.map.name)===b?M=R:(S==null?void 0:S.map.name)===b&&(M=S),M){var B={panoId:p.panoId,effect:d,leftPanoPicture:{zoom:1,map:M.map,luminanceMap:M.luminanceMap,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};this.doMoveToPano(p.pano,B,r);return}var H="move-to-pano-"+p.panoId;this.pending.add(H),this.pendingTextureTask={panoId:p.panoId,hash:b,onLoad:function(w){if(s.pending.delete(H),s.destroyed)w.body.dispose();else{w.body.name=b;var C={panoId:p.panoId,effect:d,leftPanoPicture:{zoom:1,map:w.body,luminanceMap:null,matrix:new THREE__namespace.Matrix4().compose(p.position,p.quaternion,PANO_TEXTURE_SCALE)},position:p.position.clone(),fixCameraTransform:new THREE__namespace.Matrix4};s.doMoveToPano(p.pano,C,r)}},onError:function(w){s.pending.delete(H);var C=__assign(__assign(__assign({},p.pano),{mode:s.mode}),clonePose(s.camera.pose));s.emit("pano.error",createEvent("pano.error",{error:w,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:C})),s.emit("pano.cancel",createEvent("pano.cancel",{error:null,userAction:s.userAction,options:r,prevPano:s.currentPano,progress:0,state:C})),r.moveCancelCallback&&r.moveCancelCallback()}},Promise.all([this.tileLevelForFov&&E&&E.length?this.textureLoader.loadTiledCubeTexture(A,E,{tileMaxLevel:this.TILED_CUBE_TEXTURE_LEVEL,imageURL:{transform:m,options:y},format:THREE__namespace.RGBAFormat,minFilter:THREE__namespace.LinearFilter,magFilter:THREE__namespace.LinearFilter,generateMipmaps:!1,viaAjax:!0,fetcher:getFetcher(p.work)},void 0,void 0,function(w){var C,F;s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:w,meta:null,pano:p.pano})),((C=s.pendingTextureTask)===null||C===void 0?void 0:C.hash)===b&&((F=s.panoMeshes[p.panoId])===null||F===void 0||F.setProgress(w))},this.renderer):this.textureLoader.loadCubeTexture(A,{imageURL:{transform:m,options:y},format:THREE__namespace.RGBAFormat,fetcher:getFetcher(p.work)},void 0,void 0,function(w){var C,F;((C=s.pendingTextureTask)===null||C===void 0?void 0:C.hash)===b&&((F=s.panoMeshes[p.panoId])===null||F===void 0||F.setProgress(w)),s.emit("pano.texture.progress",createEvent("pano.texture.progress",{error:null,progress:w,meta:null,pano:p.pano}))},this.renderer)]).then(function(w){var C,F,I=w[0];((C=s.pendingTextureTask)===null||C===void 0?void 0:C.hash)===b?(s.pendingTextureTask.onLoad(I),(F=s.panoMeshes[p.panoId])===null||F===void 0||F.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.success",createEvent("pano.texture.success",{error:null,progress:1,meta:I.meta,pano:p.pano}))):I.body.dispose()}).catch(function(w){var C,F;((C=s.pendingTextureTask)===null||C===void 0?void 0:C.hash)===b&&(s.pendingTextureTask.onError(w),(F=s.panoMeshes[p.panoId])===null||F===void 0||F.setProgress(0),delete s.pendingTextureTask,s.emit("pano.texture.error",createEvent("pano.texture.error",{error:w,progress:0,meta:null,pano:p.pano})),s.emit("error",w))}),this.emit("pano.texture.load",createEvent("pano.texture.load",{error:null,progress:0,meta:null,pano:p.pano}))},t.prototype.doMoveToPano=function(e,r,o){var s=this,u,l,c,f,d,p,v,g,h,m;o===void 0&&(o={});var y=now(),A=createUuid();this.panoResources[A]=r;var E=1,b,T,_;if(this.locationMotion.ended){var R=this.locationMotion.getKeyFrameSegment(y);R[0];var S=R[1],M=this.locationMotion.value,B=this.panoResourceFromLocationMotionKeyframe(S).position,H=r.position;b=Math.max(B.distanceTo(H),E),T=[{key:S.key,progress:0,value:__assign(__assign({},M),{count:0})},{key:A,progress:1,value:{distance:0,count:1}}],_=0}else{var w=this.locationMotion.getKeyFrameSegment(y),C=w[0],S=w[1],M=this.locationMotion.value,F=this.panoResourceFromLocationMotionKeyframe(C).position,B=this.panoResourceFromLocationMotionKeyframe(S).position,H=r.position,I=S.value.count-M.count,L=Math.max(F.distanceTo(B),E)*I,k=Math.max(B.distanceTo(H),E);b=L+k,T=[{key:C.key,progress:0,value:__assign({},M)},{key:S.key,progress:L/b,value:S.value},{key:A,progress:1,value:{count:S.value.count+1,distance:0}}];var N=this.locationMotionKeyframesLength(this.locationMotion.keyframes),D=this.locationMotionKeyframesLength(T);_=this.locationMotion.getProgressVelocity(y)*N/D}var U=r.effect==="instant"?0:this.calculateMovingDuration(o.duration,r.effect==="fly"?b:0),z={longitude:o.longitude,latitude:o.latitude,fov:o.fov},q=__assign(__assign({},e),{mode:this.mode,longitude:(u=z.longitude)!==null&&u!==void 0?u:this.camera.pose.longitude,latitude:(l=z.latitude)!==null&&l!==void 0?l:this.camera.pose.latitude,fov:(c=z.fov)!==null&&c!==void 0?c:this.camera.pose.fov,offset:r.position.clone(),distance:0}),G=this.currentPano;if(this.emit("pano.moveTo",createEvent("pano.moveTo",{options:o,prevPano:G,progress:0,state:q,userAction:this.userAction,error:null})),o.moveStartCallback&&o.moveStartCallback(q),this.videoTexture&&this.videoTexture.image instanceof HTMLVideoElement&&this.videoTexture.image.getAttribute("src")&&(this.videoTexture.image.pause(),this.videoTexture.image.removeAttribute("uuid"),this.videoTexture.image.removeAttribute("src"),this.videoTexture.image.oncanplay=noop$1,this.videoTexture.needsUpdate=!0),this.panoVideo.setMaterial(null),r.effect==="fly")this.cameraMotion.set(z,U).catch(noop$1);else{var J=coordinatesToVector({longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude}),X=coordinatesToVector({longitude:(f=z.longitude)!==null&&f!==void 0?f:this.cameraMotion.value.longitude,latitude:(d=z.latitude)!==null&&d!==void 0?d:this.cameraMotion.value.latitude}),j=new THREE__namespace.Object3D;j.lookAt(J);var Y=new THREE__namespace.Matrix4().makeRotationFromQuaternion(j.quaternion);j.lookAt(X);var Z=new THREE__namespace.Matrix4().makeRotationFromQuaternion(j.quaternion),W=new THREE__namespace.Matrix4().getInverse(Y).premultiply(Z),ae=this.cameraMotion.value.fov,re=(p=z.fov)!==null&&p!==void 0?p:this.cameraMotion.value.fov,se=1;r.effect==="zoomin"?se=1.5:r.effect==="zoomout"&&(se=.4);for(var ie=re*se,fe=0;fe<T.length-1;fe++){var ne=T[fe].key;if(ne){var pe=this.panoResources[ne];pe&&(pe.fixCameraTransform.copy(W),pe.leftPanoPicture&&(pe.leftPanoPicture.zoom=Math.tan(ae/2/180*Math.PI)/Math.tan(ie/2/180*Math.PI)))}}this.cameraMotion.setKeyframes([{progress:0,value:{longitude:this.cameraMotion.value.longitude,latitude:this.cameraMotion.value.latitude,fov:this.cameraMotion.value.fov}},{progress:0,value:{longitude:(v=z.longitude)!==null&&v!==void 0?v:this.cameraMotion.value.longitude,latitude:(g=z.latitude)!==null&&g!==void 0?g:this.cameraMotion.value.latitude,fov:ie}},{progress:1,value:{longitude:(h=z.longitude)!==null&&h!==void 0?h:this.cameraMotion.value.longitude,latitude:(m=z.latitude)!==null&&m!==void 0?m:this.cameraMotion.value.latitude,fov:re}}],U).catch(noop$1)}var _e=this.locationMotion.setKeyframes(T,U,_);_e.then(function(){for(var me,xe,$,te=0,Q=s.models;te<Q.length;te++){var be=Q[te];be.show()}var ye=__assign(__assign({},e),{mode:s.mode,longitude:s.camera.pose.longitude,latitude:s.camera.pose.latitude,fov:s.camera.pose.fov,offset:s.camera.pose.offset.clone(),distance:0});s.emit("pano.arrived",createEvent("pano.arrived",{options:o,prevPano:G,progress:1,state:ye,userAction:s.userAction,error:null})),o.moveEndCallback&&o.moveEndCallback(ye);var Ae=s.works.getResolvedObserver(s.currentPano);if(Ae&&Ae.video&&s.videoTexture&&s.videoTexture.image instanceof HTMLVideoElement){var Me=ROTATE_Y_PI_MATRIX.clone().multiply(($=(xe=(me=s.models.getMaterial())===null||me===void 0?void 0:me.pano1)===null||xe===void 0?void 0:xe.matrix)!==null&&$!==void 0?$:new THREE__namespace.Matrix4).multiply(Ae.video.matrix),ge={map:s.videoTexture,size:Ae.video.size,matrix:Me,alpha:1},he=createUuid(),de=s.videoTexture.image;de.setAttribute("uuid",he),canplayVideo().then(function(ce){ce&&Ae.video&&de.getAttribute("uuid")===he&&(de.oncanplay=function(){de.oncanplay=noop$1,de.play()},de.ontimeupdate=function(){de.currentTime>.5&&(de.ontimeupdate=noop$1,s.panoVideo.setMaterial(ge))},de.src=Ae.video.source)}).catch(function(){de.removeAttribute("uuid")})}},function(){s.emit("pano.cancel",createEvent("pano.cancel",{options:o,prevPano:G,progress:0,state:q,userAction:s.userAction,error:null})),o.moveCancelCallback&&o.moveCancelCallback()})},t.prototype.checkSelectedPano=function(e){var r=this,o,s,u,l;this.stopMomentumMovement();var c=this.camera.getDirection(new THREE__namespace.Vector3).setY(0),f=null,d=this.works.getResolvedObserver(this.currentPano);if(!d)return null;var p=d.accessibleIds.filter(function(X){var j=panoParse(X);if(panoEqual(j,r.currentPano))return!1;var Y=r.works.getResolvedObserver(j);return!Y||Y.position.distanceTo(r.camera.position)>r.maxAccessibleDistance?!1:Y.loadable||Y.active}),v=this.models.intersectRaycaster(e)[0];if(v){var g=arrayMin(p,function(X){var j=r.works.getResolvedObserver(X);if(!j)return 1/0;var Y=j.standingPosition.clone();return Y.distanceTo(v.point)},!0),h=g[0],m=g[1];h&&m<this.panoTapTriggerRadius&&(f=(o=this.works.getResolvedObserver(h))!==null&&o!==void 0?o:null)}if(isNil(f)){var y=this.getForwardObserverOrNot(e);y&&(f=y)}for(var A=0,E=this.locationMotion.keyframes;A<E.length;A++){var b=E[A],T=this.panoResourceFromLocationMotionKeyframe(b);if(!(b.progress<this.locationMotion.progress)&&f&&T.panoId===f.panoId){f=null;break}}if(isNil(f))return this.locationMotion.ended===!0&&this.cameraBounce(),null;if(f&&!f.active){var _=f.panoId;this.panoMeshes[_]&&(this.panoMeshes[_].setDisabled(!1),this.panoMeshes[_].setLoading(!0))}var R={};if(f){for(var S=Math.PI/6,M=Math.PI/12,B=new THREE__namespace.Vector3(0,1,0),H=f.position.clone().setY(0).sub(d.position.clone().setY(0)).normalize(),w=H.clone().applyAxisAngle(B,S),C=H.clone().applyAxisAngle(B,-S),F=[],I=[],L=[],k=0,N=f.accessibleIds;k<N.length;k++){var h=N[k],D=panoParse(h);if(!(panoEqual(D,this.currentPano)||panoEqual(D,f.pano))){var U=this.works.getResolvedObserver(h);if(U){var z=U.position.clone().sub(f.position).setY(0);H.angleTo(z)<S?L.push(z):w.angleTo(z)<S?F.push(z):C.angleTo(z)<S&&I.push(z)}}}var q=L.length>0?L:__spreadArray(__spreadArray([],F,!0),I,!0),G=q.slice().sort(function(X,j){return X.angleTo(H)-j.angleTo(H)})[0];G&&G.angleTo(c)>M&&(R.longitude=Math.atan2(-G.x,-G.z))}this.cameraMotion.value.latitude<-Math.PI/4&&(R.latitude=clamp$1(0,this.minLatitude,this.maxLatitude)),this.cameraMotion.value.fov<60&&(R.fov=this.defaultFov);var J={workCode:f.pano.workCode,panoIndex:f.pano.panoIndex,mode:this.mode,longitude:(s=R.longitude)!==null&&s!==void 0?s:this.camera.pose.longitude,latitude:(u=R.latitude)!==null&&u!==void 0?u:this.camera.pose.latitude,fov:(l=R.fov)!==null&&l!==void 0?l:this.camera.pose.fov,distance:0,offset:f?f.position.clone():new THREE__namespace.Vector3};return this.emit("pano.select",createEvent("pano.select",{prevPano:this.currentPano,state:J,userAction:!0,options:R,progress:0,error:null})),f&&f.active?(this.emit("pano.request",createEvent("pano.request",{userAction:!0,prevPano:this.currentPano,progress:0,state:J,options:R,error:null})),f.pano):null},t.prototype.destroy=function(){n.prototype.destroy.call(this)},t.prototype.isReady=function(){return!1},t.prototype.updateCamera=function(e,r,o){return Promise.resolve()},t.prototype.updateCameraWithKeyframes=function(e,r,o){return Promise.resolve()},t.prototype.updateTime=function(e,r){for(var o=this,s,u,l,c,f,d,p,v,g=[],h=2;h<arguments.length;h++)g[h-2]=arguments[h];this.userAction=!0;var m={},y={},A=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[0]),E=this.panoResourceFromLocationMotionKeyframe(this.locationMotion.keyframes[this.locationMotion.keyframes.length-1]),b=!1;if(this.cameraMotion.ended===!1&&(this.cameraMotion.update(e),y.longitude=this.cameraMotion.value.longitude,y.latitude=this.cameraMotion.value.latitude,y.fov=this.cameraMotion.value.fov),this.modelAlphaMotion.ended===!1&&(this.modelAlphaMotion.update(e),m.modelAlpha=this.modelAlphaMotion.value.modelAlpha),this.perspToOrthoMotion.ended===!1&&(this.perspToOrthoMotion.update(e),this.camera.perspToOrtho.setScalar(clamp$1(this.perspToOrthoMotion.value.perspToOrtho,0,1))),this.locationMotion.ended===!1){this.locationMotion.update(e);var T=this.locationMotion.getKeyFrameSegment(e),_=T[0],R=T[1],S=this.panoResourceFromLocationMotionKeyframe(_),M=this.panoResourceFromLocationMotionKeyframe(R),B=new THREE__namespace.Vector3().copy(S.position),H=new THREE__namespace.Vector3().copy(M.position),w=this.locationMotion.value.count-R.value.count+1;m.progress=w,M.leftPanoPicture&&(w<1?S.leftPanoPicture&&(m.pano0=S.leftPanoPicture):m.pano0=M.leftPanoPicture,m.pano1=M.leftPanoPicture),M.effect==="montage"?m.transition="BLACK":M.effect==="spread"?m.transition="SPREAD":m.transition="FADE",(M.effect==="zoomin"||M.effect==="zoomout")&&(m.progress=Math.pow(w,3)),w<1&&M.effect!=="fly"&&(m.pano0&&S.leftPanoPicture&&(m.pano0={map:m.pano0.map,zoom:m.pano0.zoom,luminanceMap:m.pano0.luminanceMap,matrix:S.leftPanoPicture.matrix.clone().setPosition(M.position)}),B.copy(H),b=!0),y.distance=this.locationMotion.value.distance,y.offset=new THREE__namespace.Vector3(B.x+(H.x-B.x)*w,B.y+(H.y-B.y)*w,B.z+(H.z-B.z)*w);for(var C=[],F=[],I=0,L=this.locationMotion.keyframes;I<L.length;I++){var k=L[I],N=k.key,D=k.progress;N!==void 0&&(C.push(N),D>this.locationMotion.progress&&F.push(N))}for(var U=0,z=Object.keys(this.panoResources);U<z.length;U++){var q=z[U];if(!(F.indexOf(q)>=0)){var G=this.panoResources[q];if(G.leftPanoPicture){var J=G.leftPanoPicture.map;if(J){if(J===((s=m.pano0)===null||s===void 0?void 0:s.map)||J===((u=m.pano1)===null||u===void 0?void 0:u.map))continue;J instanceof TileCubeTextureTarget&&J.cubeRenderTarget&&this.colorCubeRenderTargetPool.push(J.cubeRenderTarget),J.dispose(),G.leftPanoPicture=null}}C.indexOf(q)>=0||delete this.panoResources[q]}}this.currentPano=panoParse(M.panoId),this.emit("pano.moving",createEvent("pano.moving",{userAction:this.userAction,prevPano:panoParse(A.panoId),state:__assign(__assign(__assign(__assign({},panoParse(E.panoId)),{mode:this.mode}),clonePose(this.camera.pose)),y),options:{},progress:this.locationMotion.progress,error:null}))}isEmptyObject(m)===!1&&(!((l=m.pano0)===null||l===void 0)&&l.map&&m.pano0.map instanceof TileCubeTextureTarget&&!m.pano0.map.cubeRenderTarget&&(m.pano0.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),!((c=m.pano1)===null||c===void 0)&&c.map&&m.pano1.map instanceof TileCubeTextureTarget&&!m.pano1.map.cubeRenderTarget&&(m.pano1.map.cubeRenderTarget=this.colorCubeRenderTargetPool.pop()),this.models.setMaterial(m)),isEmptyObject(y)===!1&&this.setCamera(y);var X=this.works.getResolvedObserver(this.currentPano),j=g[1];if(!j){console.error("xrFrame丢失,请重试");return}if(!this.xrManager.session){console.error("session丢失,请重试");return}var Y=this.xrManager.referenceSpace;if(Y){var Z=this.xrManager.cameraVR,W=this.xrManager.cameraL,ae=this.xrManager.cameraR,re=[W,ae],se=j.getViewerPose(Y),ie=new THREE__namespace.Vector3(0,0,0);if(se){var fe;fe=this.xrManager.session.renderState.baseLayer;var ne=se.views;if(!fe){console.error("no layer found");return}this.renderer.setFramebuffer(fe.framebuffer);var pe=!1;ne.length!==Z.cameras.length&&(Z.cameras.length=0,pe=!0),this.parallaxCameraMatrixs=[];var _e=new THREE__namespace.Vector3,me=new THREE__namespace.Vector3;new THREE__namespace.Matrix4().fromArray(ne[0].transform.matrix).decompose(_e,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),new THREE__namespace.Matrix4().fromArray(ne[1].transform.matrix).decompose(me,new THREE__namespace.Quaternion,new THREE__namespace.Vector3),me.clone().sub(_e).normalize();var xe=new THREE__namespace.Vector3,$=new THREE__namespace.Quaternion,te=new THREE__namespace.Vector3;this.camera.matrix.decompose(xe,$,te);for(var Q=0;Q<ne.length;Q++){var be=ne[Q],ye=fe.getViewport(be),Ae=re[Q];Ae.matrix.fromArray(be.transform.matrix);var Me=new THREE__namespace.Vector3,ge=new THREE__namespace.Quaternion,he=new THREE__namespace.Vector3;Ae.matrix.decompose(Me,ge,he),ie.copy(xe),Ae.position.copy(xe),Ae.quaternion.copy(ge),Ae.scale.copy(he),Ae.updateMatrix(),Ae.projectionMatrix.fromArray(be.projectionMatrix),Ae.viewport.set(ye.x,ye.y,ye.width,ye.height),pe===!0&&Z.cameras.push(Ae)}if(this.xrManager.session&&this.xrManager.session.inputSources){for(var Q=0;Q<this.xrManager.session.inputSources.length;Q++)if(this.xrManager.session.inputSources[Q]&&this.xrManager.session.inputSources[Q].targetRayMode==="transient-pointer"){var de=j.getPose(this.xrManager.session.inputSources[Q].targetRaySpace,Y);if(de){var ce=new THREE__namespace.Vector3(0,0,-1).applyQuaternion(de.transform.orientation),le=new THREE__namespace.Raycaster(this.camera.position,ce);this.gazeRay=le}}}if(this.xrManager.machineType==="Oculus"||this.xrManager.machineType==="Pico"){for(var we=this.xrManager.session.inputSources,Q=0;Q<we.length;Q++){var ue=this.xrManager.controllers[Q],ve=we[Q];if(ve){ue&&ue.update(ve,j,Y);var le=this.xrManager.getController(Q),qe=new THREE__namespace.Vector3(0,1.2,0),Ee=le.position.clone().add(ie).sub(qe);ve.handedness==="left"?this.xrControllerRay.left.set(Ee,new THREE__namespace.Vector3(0,0,-1).applyEuler(le.rotation)):ve.handedness==="right"&&this.xrControllerRay.right.set(Ee,new THREE__namespace.Vector3(0,0,-1).applyEuler(le.rotation)),this.controllerWrappers[Q].position.copy(new THREE__namespace.Vector3(0,0,0).add(ie).sub(qe));var Ie=this.models.intersectRaycaster(this.xrControllerRay.right);if(Ie.length===0&&(Ie=this.xrControllerRay.right.intersectObject(this.boundingMesh,!0).map(function(vt){var At;return __assign({floor:(At=X==null?void 0:X.floorIndex)!==null&&At!==void 0?At:0},vt)})),Ie.length>=1&&Ie[0].face)if(ve.handedness==="right"){var Oe=this.xrControllerRay.right.intersectObject(this.xrCustomObjectsScene,!0),$e=Ie[0].face.normal,pt=$e.clone(),tt=Ie[0].point.clone();this.intersectMesh.position.copy(tt);var Ne=tt.clone().add(pt);if(this.intersectMesh.lookAt(Ne),Math.abs($e.y)>.99){var Ge=this.camera.position.clone().sub(tt);this.intersectMesh.rotation.z=-Math.atan2(Ge.z,Ge.x)}this.intersectMesh.visible=!0,this.needsRender=!0,Oe.length>0?(this.pointerLines.right.setPoints(Ee,Oe[0].point),this.pointerLines.right.points.visible=!0,this.intersectMesh.visible=!1):(this.pointerLines.right.points.visible=!1,this.pointerLines.right.setPoints(Ee,Ie[0].point));var Ve=Ie[0],Ke=createEvent("intersect.update",{raycaster:(f=this.xrControllerRay.right)!==null&&f!==void 0?f:null,intersection:Ve!=null?Ve:null,object:this.intersectMesh});if(this.emit("intersect.update",Ke),Ke.defaultPrevented){this.hideIntersectMesh();return}}else this.pointerLines.left.setPoints(Ee,Ie[0].point)}}this.updateControllerHelper(we,e,r)}if(this.camera.pose.distance>.1||b)for(var Je=0,Xe=Object.keys(this.panoMeshes);Je<Xe.length;Je++){var Pe=Xe[Je],Se=this.panoMeshes[Pe];Se.setOpacity(0),Se.setCurrent(!1),Se.updateTime&&Se.updateTime(e,r),Se.visible=!1}else if(X){var Be=arrayMin(X.visibleIds,function(je){var at=o.works.getResolvedObserver(je);return at?X.standingPosition.distanceTo(at.standingPosition):1/0},!0),De=Be[1];De=clamp$1(De,2.5,1/0);for(var He=X.visibleIds.concat(panoStringify(this.currentPano)),Ue=this.getForwardObserverOrNot(),Ye=this.camera.getDirection(new THREE__namespace.Vector3),ze=0,rt=Object.keys(this.panoMeshes);ze<rt.length;ze++){var Pe=rt[ze],Se=this.panoMeshes[Pe],ot=this.works.getResolvedObserver(Pe);if(He.indexOf(Pe)===-1)Se.setCurrent(!1),Se.setOpacity(0);else if(!ot)Se.setCurrent(!1),Se.setOpacity(0);else if(!ot.loadable&&!ot.active)Se.setCurrent(!1),Se.setOpacity(0);else{var ht=Se.position.clone().setY(this.camera.position.y).distanceTo(this.camera.position);Se.setCurrent(!Se.loading&&Se.progress===0&&Ue!==null&&Ue.panoId===Pe),Se.setOpacity(ht<.01?0:clamp$1(De/ht*1.2,.65,.98));var st=this.camera.position.clone().setY(Se.position.y),ce=new THREE__namespace.Vector3().copy(Se.position).sub(st).normalize();if(Pe===panoStringify(this.currentPano)){var ct=clamp$1((.5-st.distanceTo(Se.position))/.5,0,1);ce.multiplyScalar(1-ct).add(Ye.clone().multiplyScalar(ct))}ce.length()>0&&Se.quaternion.setFromEuler(new THREE__namespace.Euler(0,Math.atan2(ce.x,ce.z),0))}Se.updateTime&&Se.updateTime(e,r)}}var We=function(){return 4}(),Ce=function(){var je=new THREE__namespace.PerspectiveCamera;je.applyMatrix4(Z.matrix),je.position.set(0,0,0);var at=o.works.getResolvedObserver(E.panoId),vt=at!=null?at:X;vt&&je.quaternion.premultiply(vt.quaternion.clone().inverse()),je.updateProjectionMatrix(),je.updateMatrixWorld(!0);var At=new THREE__namespace.Frustum().setFromProjectionMatrix(new THREE__namespace.Matrix4().multiplyMatrices(je.projectionMatrix,je.matrixWorldInverse));return At}();E.panoId===panoStringify(this.currentPano)&&((d=E.leftPanoPicture)===null||d===void 0?void 0:d.map)instanceof TileCubeTextureTarget&&(E.leftPanoPicture.map.maxRequest=this.tileMaxRequest,E.leftPanoPicture.map.update(Ce,We),E.leftPanoPicture.map.needsRender===!0&&(this.needsRender=!0,this.modelSceneNeedsRender=!0));{var Re=this.tiling.object.visible;if(this.initAnimationed){var Le=E.panoId,Qe=this.works.getResolvedObserver(Le);Qe?isSimilarVector3(this.camera.position,Qe.position)&&this.locationMotion.ended?(this.tiling.object.visible=!0,this.tiling.panoId!==Le&&this.tiling.cleanup(),this.tiling.panoId=Le,this.tiling.setResource((v=(p=Qe.images)===null||p===void 0?void 0:p.tiles)!==null&&v!==void 0?v:[],this.enableIOSEDR&&Qe.images.luminance?Qe.images.luminance:null),this.tiling.setFetcher(getFetcher(Qe.work)),this.tiling.setRotation(Qe.quaternion),this.tiling.setPosition(Qe.position),this.tiling.maxRequest=this.tileMaxRequest,We>this.TILED_CUBE_TEXTURE_LEVEL?this.tiling.update(Ce,We,e):this.tiling.update(Ce,0,e)):this.tiling.object.visible=!1:this.tiling.object.visible=!1}else this.tiling.object.visible=!1;Re!==this.tiling.object.visible&&(this.tiling.object.needsRender=!0,this.modelSceneNeedsRender=!0)}this.panoVideo.object.position.copy(this.camera.position),this.panoVideo.updateTime(e)}}},t.prototype.render=function(){var e=this.xrManager.getCamera(this.camera);this.renderer.render(this.modelScene,e),this.renderer.autoClearColor=!1,this.renderer.autoClearDepth=!1,this.renderer.render(this.scene,e),this.renderer.autoClearColor=!0,this.renderer.autoClearDepth=!0},t.prototype.onPanGesture=function(){},t.prototype.onTapGesture=function(){},t.prototype.onPinchGesture=function(){},t.prototype.onMouseMove=function(){},t.prototype.onMouseOut=function(){},t.prototype.panoResourceFromLocationMotionKeyframe=function(e){return this.panoResources[e.key]},t.prototype.updateControllerHelper=function(e,r,o){var s=this.xrControllerRay.left,u=this.xrControllerRay.right;if(!(!e||e.length===0)){for(var l={buttons:{X:!1,Y:!1,LeftTrigger:!1,LeftPinch:!1,A:!1,B:!1,RightTrigger:!1,RightPinch:!1}},c=0;c<e.length;c++){var f=e[c].handedness,d=e[c].gamepad;switch(f){case"left":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"LeftAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"LeftAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"LeftAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"LeftAxesDown",r)),d!=null&&d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"X",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"Y",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"LeftTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"LeftPinch",r));var p={raycaster:s,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:o};l.buttons.X=d.buttons&&d.buttons[4]?d.buttons[4].pressed:!1,l.buttons.Y=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,l.buttons.LeftTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,l.buttons.LeftPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1,l.left=p;break;case"right":d.axes&&(this.emitHandleEvent(d.axes[2]===-1,"RightAxesLeft",r),this.emitHandleEvent(d.axes[2]===1,"RightAxesRight",r),this.emitHandleEvent(d.axes[3]===-1,"RightAxesUp",r),this.emitHandleEvent(d.axes[3]===1,"RightAxesDown",r)),d.buttons&&(d.buttons[4]&&this.emitHandleEvent(d.buttons[4].pressed,"A",r),d.buttons[5]&&this.emitHandleEvent(d.buttons[5].pressed,"B",r),d.buttons[0]&&this.emitHandleEvent(d.buttons[0].pressed,"RightTrigger",r),d.buttons[1]&&this.emitHandleEvent(d.buttons[1].pressed,"RightPinch",r));var v={raycaster:u,axes:{up:d.axes&&d.axes[3]<0?Math.abs(d.axes[3]):0,down:d.axes&&d.axes[3]<0?0:Math.abs(d.axes[3]),left:d.axes&&d.axes[2]<0?Math.abs(d.axes[2]):0,right:d.axes&&d.axes[2]<0?0:Math.abs(d.axes[2])},deltaTime:o};l.right=v,l.buttons.A=d.buttons&&d.buttons[4]?d==null?void 0:d.buttons[4].pressed:!1,l.buttons.B=d.buttons&&d.buttons[5]?d==null?void 0:d.buttons[5].pressed:!1,l.buttons.RightTrigger=d.buttons&&d.buttons[0]?d==null?void 0:d.buttons[0].pressed:!1,l.buttons.RightPinch=d.buttons&&d.buttons[1]?d==null?void 0:d.buttons[1].pressed:!1;break}}this.emit("xr.controller.update",createEvent("xr.controller.update",l))}},t.prototype.emitHandleEvent=function(e,r,o){var s=this.xrControllerRay.left,u=this.xrControllerRay.right;if(e)if(this.xrHandleState[r].touchStart===!1)this.xrHandleState[r].touchStartTime=o,this.xrHandleState[r].touchStart=!0,this.emit("xr.gesture.buttonDown",createEvent("xr.gesture.buttonDown",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!1,isFirst:!0,controllers:{raycaster:{leftRay:s,rightRay:u}}}));else{var l=o-this.xrHandleState[r].touchStartTime;l>CONTROLLER_EVNET_DELTA_TIME&&this.emit("xr.gesture.press",createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!0,controllers:{raycaster:{leftRay:s,rightRay:u}}}))}else if(this.xrHandleState[r].touchStart===!0){this.emit("xr.gesture.buttonUp",createEvent("xr.gesture.buttonUp",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:s,rightRay:u}}}));var l=o-this.xrHandleState[r].touchStartTime;if(l<=CONTROLLER_EVNET_DELTA_TIME){var c=createEvent("xr.gesture.tap",{session:this.xrManager.session,machineType:this.xrManager.machineType,buttons:r,isFinal:!0,isFirst:!1,controllers:{raycaster:{leftRay:s,rightRay:u}}}),f=this.emit("xr.gesture.tap",c);!f&&!c.defaultPrevented&&r==="RightTrigger"&&this.checkSelectedPano(this.xrControllerRay.right)}this.xrHandleState[r].touchStart=!1,this.xrHandleState[r].touchStartTime=0}},t.prototype.initHandEvent=function(){var e=this;if(!this.xrManager.session)throw new Error("初始化失败");this.xrManager.session.addEventListener("select",function(r){e.gazeRay&&e.checkSelectedPano(e.gazeRay)})},t}(PanoramaController),Controllers={Floorplan:FloorplanController,Topview:TopviewController,Panorama:PanoramaController,VRPanorama:VRPanoramaController,Model:ModelController,Mapview:MapviewController,XRPanorama:XRPanoramaController},PROXY_CONTROLLER_EVENT_NAMES=["gesture.pan","gesture.tap","gesture.dbltap","gesture.press","gesture.pinch","gesture.mousewheel","gesture.mousemove","gesture.momentum","initAnimation.start","initAnimation.end","camera.update","intersect.update","pano.select","pano.moveTo","pano.moving","pano.arrived","pano.cancel","pano.error","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"];function initLegacyEvent(n){n.on("initAnimation.start",function(t){n.emit("initAnimationWillStart",t.state.panoIndex,t.state,t.userAction)}),n.on("initAnimation.end",function(t){n.emit("initAnimationEnded",t.state.panoIndex,t.state,t.userAction)}),n.on("gesture.pan",function(t){var e=!1;e=n.emit("wantsGesture","pan",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPanGesture",t.state,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pan",t.pointers,t.isFinal),n.emit("panGesture",t.state,t.isFinal))}),n.on("gesture.tap",function(t){var e=!1;e=n.emit("wantsGesture","tap",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsTapGesture",t.center.raycaster,t.center.coords,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","tap",t.pointers,t.isFinal),n.emit("tapGesture",t.center.raycaster,t.center.coords,t.isFinal))}),n.on("gesture.dbltap",function(t){var e=!1;e=n.emit("wantsGesture","dbltap",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsDblTapGesture",t.center.raycaster,t.center.coords,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","dbltap",t.pointers,t.isFinal),n.emit("dblTapGesture",t.center.raycaster,t.center.coords,t.isFinal))}),n.on("gesture.press",function(t){var e=!1;e=n.emit("wantsGesture","press",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","press",t.pointers,t.isFinal),n.emit("pressGesture",t.center.raycaster,t.center.coords,t.center.delta,t.isFinal))}),n.on("gesture.pinch",function(t){var e=!1;e=n.emit("wantsGesture","pinch",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsPinchGesture",t.scale,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","pinch",t.pointers,t.isFinal),n.emit("pinchGesture",t.scale,t.state.fov,t.isFinal))}),n.on("gesture.mousewheel",function(t){var e=!1;e=n.emit("wantsGesture","mouseWheel",t.pointers,t.isFinal),e&&t.preventDefault(),e=n.emit("wantsMouseWheel",t.center.delta,t.state.fov,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseWheel",t.pointers,t.isFinal),n.emit("mouseWheel",t.center.delta,t.state.fov,t.isFinal))}),n.on("gesture.mousemove",function(t){var e=!1;e=n.emit("wantsGesture","mouseMove",t.pointers,t.isFinal),e&&t.preventDefault(),t.defaultPrevented||(n.emit("gesture","mouseMove",t.pointers,t.isFinal),e=n.emit("wantsChangeCameraFov",t.state.fov),e&&t.preventDefault())}),n.on("gesture.momentum",function(t){var e=!1;e=n.emit("wantsInteriaPan",t.state),e&&t.preventDefault(),t.defaultPrevented||n.emit("interiaPan",t.state,t.isFinal)}),n.on("camera.update",function(t){n.emit("cameraFovUpdate",t.state.fov,t.userAction),n.emit("cameraDirectionUpdate",t.state,t.userAction);var e=coordinatesToVector(t.state);e.setLength(t.state.distance);var r=t.state.offset.clone().sub(e);n.emit("cameraPositionUpdate",r,t.userAction),n.emit("cameraUpdate",t.state,t.userAction)}),n.on("intersect.update",function(t){if(t.intersection){var e=!1;e=n.emit("wantsShowIntersectionOnModel",t.raycaster),e&&t.preventDefault(),t.defaultPrevented||n.emit("intersectionOnModelUpdate",t.intersection,t.object)}else n.emit("intersectionHidden")}),n.on("pano.request",function(t){var e=n.emit("wantsMoveToPano",t.state.panoIndex,t.options,t.userAction);e||(e=n.emit("wantsToMoveToPano",t.state.panoIndex,t.options,t.userAction)),e&&t.preventDefault(),t.defaultPrevented||n.emit("panoWillLoad",t.state.panoIndex)}),n.on("pano.select",function(t){n.emit("panoSelected",t.state.panoIndex)}),n.on("pano.moveTo",function(t){n.emit("panoLoaded",t.state.panoIndex),n.emit("moveToPano",t.state.panoIndex,t.userAction),n.emit("panoWillArrive",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.moving",function(t){n.emit("movingToPano",t.state.panoIndex,t.prevPano.panoIndex,t.progress)}),n.on("pano.arrived",function(t){n.emit("panoArrived",t.state.panoIndex,t.state,t.userAction)}),n.on("pano.cancel",function(t){n.emit("moveToPanoCanceled",t.state.panoIndex)}),n.on("pano.error",function(t){n.emit("panoLoadError",t.error,t.state.panoIndex)}),n.on("pano.texture.load",function(t){n.emit("textureStartLoad",t.pano.panoIndex)}),n.on("pano.texture.success",function(t){n.emit("textureLoaded",t.pano.panoIndex,t.meta)}),n.on("pano.texture.error",function(t){n.emit("textureError",t.error,t.pano.panoIndex)}),n.on("pano.texture.abort",function(t){n.emit("textureAbort",t.pano.panoIndex)}),n.on("pano.texture.progress",function(t){n.emit("textureLoading",t.progress,t.pano.panoIndex)}),n.on("xr.session.start",function(t){n.emit("webXRSessionStart")}),n.on("xr.session.end",function(t){n.emit("webXRSessionEnd")}),n.on("xr.gesture.tap",function(t){n.emit("webXRControllerEvent","tap",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.press",function(t){n.emit("webXRControllerEvent","press",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonUp",function(t){n.emit("webXRControllerEvent","buttonUp",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.gesture.buttonDown",function(t){n.emit("webXRControllerEvent","buttonDown",t.buttons,{raycaster:t.controllers.raycaster})}),n.on("xr.controller.update",function(t){n.emit("webXRControllerRayUpdate",{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0}),t.left&&n.emit("webXRAxesUpdate","left",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.left.axes.up,down:t.left.axes.down,left:t.left.axes.left,right:t.left.axes.right},deltaTime:t.left.deltaTime}),t.right&&n.emit("webXRAxesUpdate","right",{raycaster:{leftRay:t.left?t.left.raycaster:void 0,rightRay:t.right?t.right.raycaster:void 0},axesState:{up:t.right.axes.up,down:t.right.axes.down,left:t.right.axes.left,right:t.right.axes.right},deltaTime:t.right.deltaTime})}),n.on("works.request",function(t){n.emit("willLoad",t.input,t.works[0],t.state)}),n.on("works.load",function(t){n.emit("load",t.input,t.works[0],t.state)}),n.on("works.ready",function(t){n.emit("loaded",t.input,t.works[0])}),n.on("state.change",function(t){n.emit("stateChange",t.state,t.userAction)}),n.on("currentState.change",function(t){n.emit("currentStateChange",t.state,t.userAction)}),n.on("state.set",function(t){n.emit("setState",t.state)}),n.on("state.synced",function(t){n.emit("stateSynced",t.state)}),n.on("model.request",function(t){n.emit("modelWillLoad",t.work.model)}),n.on("model.error",function(t){n.emit("modelLoadError",t.error,t.model)}),n.on("model.load",function(t){n.emit("modelLoaded",t.model)}),n.on("model.changeShownFloor",function(t){n.emit("modelShownFloorChange",t.model.shownFloor,t.model.floorLength)}),n.on("render",function(t){n.emit("renderFrame",t.needsRender)}),n.on("mode.change.request",function(t){n.emit("wantsChangeMode",t.mode,t.prevMode)}),n.on("mode.change",function(t){n.emit("modeChange",t.mode,t.prevMode,t.state.panoIndex,t.state,t.userAction)}),n.on("helpers.visible",function(t){n.emit("helpersVisibleChange",t.object.visible)}),n.on("network.resource",function(t){n.emit("network",t.source,t.requestType,t.requestState,t.detail)})}function generateDefaultVideoElement(){if(typeof window!="undefined"){var n=document.createElement("video");n.loop=!0,n.autoplay=!0,n.playsInline=!0,n.muted=!0,n.crossOrigin="";var t=function(){document.removeEventListener("touchstart",t,!1),document.removeEventListener("mousedown",t,!1),n.muted=!1};return document.addEventListener("touchstart",t,!1),document.addEventListener("mousedown",t,!1),n}else return{}}function initLights(n){var t=new THREE__namespace.Group;t.name="internalLights";{var e=new THREE__namespace.DirectionalLight(16777215,.3);e.position.copy(new THREE__namespace.Vector3(1,1,1)),t.add(e)}{var e=new THREE__namespace.DirectionalLight(16777215,.1);e.position.copy(new THREE__namespace.Vector3(-1,-1,-1)),t.add(e)}{var e=new THREE__namespace.DirectionalLight(16777215,.1);t.add(e)}{var e=new THREE__namespace.AmbientLight(16777215,.6);t.add(e)}n.add(t)}function parseKeyValue(n){for(var t,e,r={},o=n.split(/(\;|\,)/),s=0,u=o;s<u.length;s++){var l=u[s],c=l.split("="),f=(t=c[0])===null||t===void 0?void 0:t.trim(),d=(e=c[1])===null||e===void 0?void 0:e.trim();f&&d&&(r[f]=d)}return r}function getViewportScale(){var n;if(typeof document!="undefined")for(var t=document.getElementsByTagName("meta"),e=0;e<t.length;e++){var r=t[e];if(r.getAttribute("name")==="viewport"){var o=parseKeyValue((n=r.getAttribute("content"))!==null&&n!==void 0?n:""),s=Number(o["initial-scale"]);if(!isNaN(s))return s}}return 1}const textureURL="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAA/CAQAAADtPwPkAAAR+0lEQVR4AezYg3LEQACH8d1cbdu23Q5qG9G47z/TN/h6tn2b/H+TUTLc7yjcOXV46OUAnUs6EbUp022ZBXc1NhoZYYd7fjDRvdcHAwrlK2QBVJ4sgoqONmY45RUT23sZ6H42F2hK5CtkMbjhZlDmUUcvq1zyieUVyjbE4I1GBfItwxG56YaUZTQwyh4P6NgJ4YYYvCuQb5kOyI03pORjiqe4Lwpq5pt1vJqfUwKWJVbSMYfppYconG+maNNQOWBZuwHTzicGel75NtFOkxr5apmV8cikcko0DrDQs863AeGl0cE0+1xy573m0/wf0cEKW6H7BWtggiMG8sy3oHRDpJMw4NWb6am/bv9znkqEzjd61t5oo5clTrjhwevO75EJRBKSRt745Z16ZEjcM73sccZplBPm8PyTcxZAkSRdHm/acJ0Z3JZhHB0BxqDHgWFZFmm0ZbCw87twI/zc3e/Cz93vPneXtU/WdQS3oTviXdY/q5PsJKfoGuQjZuO/0in1qsj85cuXrxqeAOJpGqdJOqrUutgVl2Qb0BWqp/RE8AWWVB7t2KrIzY2Wx2fWKl7yfswgxqj8lYummYa3hfwF9MuQRmbfQE4ocPDjtUWQ6Tq1M2w7gC2EcrMGtWS6xlpGKEDDcb1vUQ25zT4lrC2s0dU4gFPppKkbeIYr7NMpqjStuFg5rNU9epGyt8PXyfX4DE1bKLhR/1XPxwJhp5DAV67T9ZPwFdovhBMIGUYoRBN4wim6S3eoXVEHXdLgmwY0x6BQnO4xPJ0Ar5OVxhQF0L9UslRM4yaQQfQImnBegi8vhY2A1k6YLlrj61TwDdNQnIISwiPvpD7TwYQTssZXK47vg8y9Gp2nxRcATkozOEmdCeObSt3IIo+xf/00IDRKAaZ89PBTkHqpkA5LagKeNZKlIhqX8RcQ95GHtdYA62Y6rOg5LLsOSnoyvk4V38hFhytef+V9/3DER1P48W89o1GxE9o5vns2Mk+F7yiftafEN4nhmUv9DKEeyqI0U+l0CQg+B//sZ5+6lOuqKaTgm0LH41RHw/CsLZRk4huiYxrvP2SNr1OSS+Dr1ulBMR+K9SqHa58Oec49VgL3mXHvDr7QfuM7LMNrH1/IS30Moe64SLYBuFVJ+MbnJY7L+GrVQkFcl4ISx/fEll4ZWnz18DpcSzUCX602LqD9svDLzmdaLkP28P1+VsJjsx/4hmh6x/gmm/i6pbrGneCL9iCOg0dQUvF1UwEdVvG19r2uTXxXLz0J37eLjfZoF++tTtPnU/cWp5e8n3An0m/G+U7qjiy4PpHyV16HKx5flCxAV/H9A88nUnZ7l7KN78SBxPcQgzLAepxEScU3l7pZ6fL2+Dot8fXECfj+QRoGYAwlAfBSPrXQXQri0Pd85NJKcVw8XUdt1LZapk7YRhO1RdpmFJwW8ozekYvx2/fjM5Hr5MfQ95HvcY2a/9hoNK4yEntL+dEuGseTdNmxIPqd5v2YRjeaX8pQ8IW2ohuP7+dTN87RMK4aitx8XPsH0r2oBqNRqrv7+gmjjY7uIr6TBxBfL2MlxNRKSVp8S5CTuGgHXxfkFvh69Pq3LD4pkkd2bdRvHaSNC3/l2sQXAccdlIS+lc57qhPJwxPybT7XSxnUrdqnXuHlJHS+mjZfJfUZR9s2FuQR+EQKdSi9Am8UTnsEvlYS+L6TFwW6kl74Vjr6AFHsX89rgg8njRltK0XPOL7NyDL0IurV4VtMwafB1709vu9X4OjWHoP3z1Ii7eaQdG00Lx5n8HXyDSva/dU0Pq2vZnKYxHYMYRo1WY5ov1G7Vh4r3y+kMdgbilxeOrV0aqOFenFl8GGJig7rG0bbPRqiSRpP2AL0w+yon9dHbi43zFetnKcuw9ZLeSa+7kTw/TDfuFu0Z7Vp/uhyHfPkAZ5ufP9wLIfD49E3clR818rR089Lzyy+VRREPneICnYLX9cT8PVKQs36TbQ3i6NcCwYkxEAQ3phN4CjAvC4mFr5vrlKe7AizBKj8cu33s7i9GbeY7BHYujTjjd3Bx54SSyT4m8mxOoYOAGX/DtwvnGE1M+5v5Bgt1hbkJRW9Cxv9X81GL2i5jqaoJ4avBcCsLYp+Ru+VC5sWPpFhXt8/EPvJL2F/alJDEeIjUhcrP5P45rDeATPj+wKl7gBf1fcq+HpVnfHO1vEf//UCHgt/OxfDE3onj5UkfTaThrg3NCGoBUCtZjvgMnwQB0bG5XENeraJ5XEWvtiHkqSVRqN+uQ4lEx2o+69SeY1dC++Wcsj+LCW+H0ZE4KtDWHkGwCtrxstbFqr51e9wbz42E2fpjRQsqEn50PnM4eumO9IbujCi393Hd+3q72TI+p9DPyyfraF+c3rOx0KJyB2z7Fa1yCO8HoHzlDFhPiWD8XoB3aPppRrUQdRp1D8qE9exdgr+Zbpqf8BLfmZ/bMYbh87k58VCSswCjQoLPPw4Jnp4uFi/YQlfKB5eBd/gr6aqB973zbDAF+v5PN+NZEvm+84bSkhxUPE9C9wqbeJ7Hi+gA9Jr5ZM7x9el4mulyK0Bb2xiMTj3/iBtK77Tnii27H/MlCfsjcJY+2oTg2/U4TYWQERE0r+aCouBcx5zEZzEYrqui8JXsQW/X8FLHJ3IVbWXhQV3zAJCjFQst1F25y1arlXwhRR4Bb4rZ3VPy5d+bHEtHIPF27K16ItYuKXM5kHD10M9DKFeSpbqLlOYAlRiC99yCiDmbUf0206jPPO7b/iud71avBkHf+kQP0OrWHBFrhmt75ZyPzbLg5KmWK9oH4Oq1eFZOm0c6n48mdfer46HcLUZU3pGB8R9IDBbJ+N7v1q0J2xhudZ45tcL8PN16vq9WizwtRLwFQtKER+NDypj4QQOdJNY3NC7GEsaGtiSmDsA+CZhyx+hXFHjYrgGGXpZNvDNpn5gWWuiWkUtyEB0UcrO8Y2L9KI9K+cXLmxqruGd6pcKfycj/ij3URVgu6bPUaycN1qXTHD+KoOmjGORnH57q8rh+e9sTHk5r1+7zpEXk36bp7iiXRrBW61e5k/D0fn+EXF/OxYEypFW3ZH1HzPt4Pv5PN2Rd7VJLDZeboGnbpSPwPDcBw5f6AIysadFOR9Hr7vksoFvE91jdbdYvzpYqyIvdQPU87uKL45u3u213CA8qkYPT6H1YgwIfkz7RI5xJdomfjoV4PXjfjgaRkNGhHwG1mNt1oq0y/j+SaZ5pV0LnrlG89Dl1YkmEsc3nKKzMKskJD+fx6NhlFiohdTe5EsZIig5WPgWUYCC9Dx5TG/sA5x15LCBbzXDtx/+uh74VmMZjLDamh8JvhzQtSsoeVTNNXB/Euv96LRR/qjO+By5xTxxJ683/FB00Pj0fZz9F2GPa70Ld2hbbVptWmjWabbGCl/ZAiTsbJa5hQ9OK/eWFE4xva9nG3z1zwCtnFXjYr6c3ykxPn9QiYWEWPhA4uuiDnzBpt4EMcg0QOm28M0gP76hJuELbIdZi4PqaILpJI+RYz4ZV42y+q49wBcxIbyXTmtXgevRWPl3MmjSSJU5vB3J0TA2Uu8mtP+R5/Au4iiF6NrUUiuCieOiJpnJq8gSXzwFLFiLP8X6bV0bYvzt8TXj75eLtKPRauY1RM1HR7GwEHpFbonIWAPwjxpfqJSCyBVUsk/DFOChhC18kyiPHFvwdVGh6XFbmfLx+RRi4jaqYiCnUDO1wc4u4ovo7pfS+XFD32e9GzndwxJiHcbQ/Vz6JrBMDGYyYK5l7YOsfkS2MVePfGkLsNXLGl9hIVbWXAv9fQ5i/j6UFL1RaQffB9qlwn3tS4WxMhaxETCMz6T9ZTqCk5FznoOKL9SEXMMIUwAZW6dNfCEVX61azdxwmIbg4aHdwtcj5KVBeNiqrb2+g5M8hTskSB6exHZ5bMEIF/wCoOT128zvdXziMLbvuDu/Usmh0oG7doMmafKNSmt8hQWUnmzhjJf/RskXCzQL8aYNfLG/QPGLY5KjKtcuNPGsyGytmj0/kPi6qdXwwJCPvOTYI3zTaICCNEh9FGSWM54OX4+A1UI80RV98czWKceJf65ervsleJm164/7ganACHHn+IPz8Nby1ptcnRztRWbipArvp4/gRchodbIFvsBSWPBaW+CHtzWfauFfcmnKRuyr+Fiu1WbzGKtCPWWMHjIgU1/Mgn2B74GKfbkajHwtVIHy3uBbh0Ocj9oplCC+kIJvYuKvI9bbkUUQ2+JaG7AeknwvhLd0YUxx+SZIf4XkGeqHUCNt9N8sQdvYlwtl9H4hMzqI5dHosMIX2taCl2s6LRowaubPyld/IgcvHBJPnKGnHDLh0ArfqzlYtkv5D8++4RsAvPbwTaJzgDcIDzxIRXuEbx4NIsYupjt7gi/6idL3j1AIqPY+OPH5PGO67x/jUS9NvF6hTte7x2kaCvtSZJiMlxjxMSqEtqXr3GPMn/9y4cXUypS/ymPxbIAvmurtYl9o7dqmBV9KdbLOgsik4B3d6xW/lO7w/kfe+yfx7bFuGkwY3/C6sURDj8584rCxJH5QtnYFVrFQVL35HNoQgO0jvt228XVRC4WQPLtANyiEzb1gD/BNoy5kHa5QEnUmiq/uG2fubeXh+kwuNj8IRxAoOqiLIqfTaNw84SfLWsDmqo08k30prHVKbHuYDo7ez6U7EsLX0oJX1ltV2AOg2KfoMPPA/sTx/ZPMqF9YiN11AsHLFrHgaAT3GBvw7hO+U9TH4bX10rgVx7YgMr0p7Pow4tL8XcY3l1kJMfVQmsA3fa/wFQh3JK9eivtV+tCaD4cUjdZvIRI9BfDUDd6PkkbfKhVbOJf/jUpuQcXXlgVNv68ejr4gTflk5AZ71+jR4AvEdPg6PDNpaz6a2AQm2otoWKvVS+LVTyL4OnaE7wSNUjfdpnZb+KbQdcA7Jr5ek0od8MD9dNjiN43t4etk1v0ITfyw6gS+Q4l5XwGwbXli+u/sj6pWGu9XfyYXx75d18+lf6t0tnau/pXKv8+xzorIkltn0l4r2dYCXlO8XDRbu9xw/9g/Zko2FXSFtKPxOxn3q+caluteK5lJsboXwVP/S27cPVz28X3i3/Ll/v8eDVMPDmzwvDbwddMt+NoROhq3yXcC4D7KpmTyA+XnqEzSFQrawDeLrsNemHrEL2+24r7NlENZUMa2vyxkH2DIs628e669ubdsR4VXC7C9u79eIVJtOwgdgO/dOICHGK6jQHaIwdXN4Lwt0LWHr4d6kX8tV+ozqAs+uYCSmO2w+jd4zGNeUYL4nqZxeN5WKVgooSAClmEaYhqhdit89QC7niSbCEM2sdkBuHYxQg9ri5ZjkuhI6DMP+J7cTvEtokEx0aPscyddoFJKpSZqV7G1GTxcpmEthpnw5058c6GfwqpwzGOtGjXSJI3FLYhc+O+jSr9aGhPWQlRshS8AticLX7wnsgbXxt6gsWCpRBa0vRGQM8oB9dhmP3QAwFX4c079dJNq6Qi5xbuyTmpPSJ1Ur4UtF7GoTtmUL3zxaWqMU8P/k3cXSQ1EQRjHGdzdHTa4u7tzBs7CedhykNwF2/5jq56iU11db6Lv2yTj8hs3JoiU9sZZp5/62J5v1z9NjrDHaSbnbFMf52sHrDUVaidDxNG0o9+uLjfosfdb3jT5d5j757riJgst9NIZQ2Pn+ySZll80vjI6Wz/hQJG4vPG0L/H6poQch/dW3vL3B0u8jl0HvVj5PvHCElEF8DUAFikVYTcvmfBdDzQlvvMXSV5lP5zrXj/fJ54zuWaeeuoqkW8AwCIaqeTZKkmYrpPwR2eqN9X72W7EG57vU67OBeuMV8KXLUzv93UTTj42tvaFS++GVsc5JRyLSLJ8nzO555hFBmiSRCqMr4GwrcmGkib5xSvcwmzFK6e8s7DMa2xH4YZdZumSOwsVzFeBWdr37tpIhOpSwXqONNgZq/2KgvBt54znHN1HzlljTO4oVD5fb+prNIJXQNL1ofDKQisbPLJDv3jNSLq9OkYBEIihKIj3v7S1TRQCX5Kdl1ZQlol7LF+E++fwirfiq2sf4cTXxc6hzxffPuLEeqSWrPGWMF58TWr5viyJAP5/4EV4KePiaSE8eNRgjDy8/tyRW+FZjhS+2tlovNJovtJovNJ0uhK6Wo64SDdxEbM//KesjwAAAABJRU5ErkJggg==";var imageSize=[351,63],imageOffset=[20,20],vertices=new Float32Array([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),uvs=new Float32Array([0,0,1,0,0,1,1,1]),index=new Uint8Array([0,1,2,1,3,2]),geometry=new THREE__namespace.BufferGeometry;geometry.setAttribute("position",new THREE__namespace.BufferAttribute(vertices,3)),geometry.setAttribute("uv",new THREE__namespace.BufferAttribute(uvs,2)),geometry.setIndex(new THREE__namespace.BufferAttribute(index,1));var material=new THREE__namespace.MeshBasicMaterial({transparent:!0,depthTest:!1,depthWrite:!1,stencilWrite:!1,fog:!1}),mesh=new THREE__namespace.Mesh(geometry,material);mesh.matrixAutoUpdate=!1;var scene=new THREE__namespace.Scene;scene.add(mesh),scene.matrixAutoUpdate=!1;var camera=new THREE__namespace.OrthographicCamera(-.5,.5,.5,-.5,.1,1);camera.position.set(0,0,.5),camera.lookAt(0,0,0),camera.updateMatrixWorld(!0),camera.matrixAutoUpdate=!1;var prevViewport=new THREE__namespace.Vector4,prevScissor=new THREE__namespace.Vector4;function renderPoweredByRealsee(n){if(material.map){var r=n.getViewport(prevViewport),o=n.getScissor(prevScissor),s=n.getScissorTest(),u=n.autoClear,l=o.x+imageOffset[0]/3,c=o.y+imageOffset[1]/3,f=imageSize[0]/3,d=imageSize[1]/3;n.setViewport(l,c,f,d),n.setScissor(l,c,f,d),n.setScissorTest(!0),n.autoClear=!1,n.render(scene,camera),n.setViewport(r),n.setScissor(o),n.setScissorTest(s),n.autoClear=u}else{var t=new THREE__namespace.Texture,e=new Image;e.onload=function(){t.image=e,t.wrapS=THREE__namespace.ClampToEdgeWrapping,t.wrapT=THREE__namespace.ClampToEdgeWrapping,t.minFilter=THREE__namespace.LinearFilter,t.needsUpdate=!0,t.generateMipmaps=!1,material.needsUpdate=!0,e.onload=noop$1},e.src=textureURL,material.map=t}}var DEFAULT_MODE_CHANGE_DURATION=800,DEFAULT_CAMERA_FOV=90,DEFAULT_REQUEST_PROXY=function(n){return n.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/")},sharedVector2=new THREE__namespace.Vector2,sharedSphere=new THREE__namespace.Sphere,sharedFrustum=new THREE__namespace.Frustum,sharedProjScreenMatrix=new THREE__namespace.Matrix4,clockForMixer=new WeakMap,worksMap=new WeakMap,emptyWorks=createWorks([]),Five=function(n){__extends(t,n);function t(e){e===void 0&&(e={});var r,o,s,u,l,c,f,d,p,v,g,h=n.call(this)||this;if(h.ident=createUuid(),typeof window!="undefined"&&(__FIVE_DEBUG__.instances[h.ident]=h),h.renderSwitch01=0,h.currentMode="Panorama",h.pano={workCode:"",panoIndex:0},h.needsRender=!1,h.modelSceneNeedsRender=!1,h.onlyRenderIfNeeds=(r=e.onlyRenderIfNeeds)!==null&&r!==void 0?r:!0,h.imageOptions=__assign({},(o=e.imageOptions)!==null&&o!==void 0?o:{}),h.textureOptions=__assign({},(s=e.textureOptions)!==null&&s!==void 0?s:{}),h.poweredByRealsee=(u=e.poweredByRealsee)!==null&&u!==void 0?u:!0,h.extraElements=[],h.controllerInits={Panorama:Object.assign({},e.panorama),Model:Object.assign({},e.model),Floorplan:Object.assign({},e.floorplan),Topview:Object.assign({},e.topview),Mapview:Object.assign({},e.mapview),VRPanorama:Object.assign({},e.vrPanorama),XRPanorama:Object.assign({},e.xrPanorama)},h.fps={testCount:0,testTime:now()},h.info=null,h.modeChangeDuration=(l=e.modeChangeDuration)!==null&&l!==void 0?l:DEFAULT_MODE_CHANGE_DURATION,h.enableWheel=(c=e.enableWheel)!==null&&c!==void 0?c:!0,typeof window!="undefined")if("renderer"in e)e.renderer instanceof InternalWebGLRenderer&&h.throwError(new Error("cannot render a internal renderer")),h.renderer=e.renderer;else try{h.renderer=new InternalWebGLRenderer({preserveDrawingBuffer:e.preserveDrawingBuffer,backgroundColor:e.backgroundColor,backgroundAlpha:e.backgroundAlpha,antialias:e.antialias,webgl2:e.webgl2,logarithmicDepthBuffer:e.logarithmicDepthBuffer,precision:e.precision,powerPreference:e.powerPreference});var m=getViewportScale();h.renderer.setPixelRatio(m===1?window.devicePixelRatio:1),h.renderer.setSize(512,512)}catch(H){H instanceof Error&&h.throwError(H)}h.getPixelsRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(d=(f=h.renderer)===null||f===void 0?void 0:f.outputEncoding)!==null&&d!==void 0?d:THREE__namespace.sRGBEncoding,generateMipmaps:!1});var y=new THREE__namespace.DepthTexture(1,1);y.generateMipmaps=!1,y.format=THREE__namespace.DepthStencilFormat,y.type=THREE__namespace.UnsignedInt248Type,h.modelRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{encoding:(v=(p=h.renderer)===null||p===void 0?void 0:p.outputEncoding)!==null&&v!==void 0?v:THREE__namespace.sRGBEncoding,depthTexture:y,generateMipmaps:!1,depthBuffer:!0,stencilBuffer:!0}),h.scissor=Object.assign({left:0,bottom:0,width:1,height:1},e.scissor),h.camera=new Camera(DEFAULT_CAMERA_FOV),h.scene=new Scene,h.xrCustomObjectsScene=new THREE__namespace.Scene,h.scene.add(h.xrCustomObjectsScene),h.scene.matrixAutoUpdate=!1,h.lastLoadWorkTask=Promise.resolve(),h.requestProxy=(g=e.requestProxy)!==null&&g!==void 0?g:DEFAULT_REQUEST_PROXY,h.networkSubscribe=new NetworkSubscribe,h.networkSubscribe.on("network",function(H,w,C,F){var I;h.emit("network.resource",createEvent("network.resource",{source:H,requestType:w,requestState:C,detail:F})),(I=h.analysis)===null||I===void 0||I.network(h.works,H,w,C,F)}),h.boundingMesh=generateBoundingMesh(new THREE__namespace.Box3(new THREE__namespace.Vector3(-.5,-.5,-.5),new THREE__namespace.Vector3(.5,.5,.5))),h.boundingMesh.name="bounding",h.models=createModels(),h.models.push(new Model),h.lastModels=createModels(),h.lastWorks=createWorks([]),h.readyCallbacks=[],h.syncingState=!1,h.helperGroup=new THREE__namespace.Group,h.helperGroup.name="helper",h.helperGroup.matrixAutoUpdate=!1,h.scene.add(h.helperGroup),h.modelGroup=new THREE__namespace.Group,h.modelGroup.visible=!1,h.modelGroup.name="model",h.modelGroup.matrixAutoUpdate=!1,h.modelScene=new THREE__namespace.Scene,h.modelScene.add(h.modelGroup),h.modelScene.add(h.boundingMesh),h.modelScene.matrixAutoUpdate=!1,h.videoTexture=new THREE__namespace.VideoTexture(e.videoInstance||generateDefaultVideoElement()),initLights(h.scene),initLights(h.modelScene),h.state={mode:h.currentMode,workCode:h.pano.workCode,panoIndex:h.pano.panoIndex,longitude:h.camera.pose.longitude,latitude:h.camera.pose.latitude,fov:h.camera.pose.fov,offset:h.camera.pose.offset.clone(),distance:h.camera.pose.distance},h.stateSynced=!1,h._enablePostProcessing=!1,h._enableIOSEDR=!1,h._enableEDL=!1,h._enableHQ=!1,h.destroyed=!1,h.paused=!0,typeof window!="undefined"&&(e.play!==!1&&h.play(),h.stopAnimationLoop=AnimationFrameLoop.shared.add(function(H,w){for(var C=[],F=2;F<arguments.length;F++)C[F-2]=arguments[F];h.updateTime.apply(h,__spreadArray([H,w],C,!1))},!1,0,10));var A=function(){typeof document!="undefined"&&document.fullscreenElement===null&&h.currentMode==="VRPanorama"&&h.controller.emit("vr.requestExit",createEvent("vr.requestExit",{}))},E=function(){h.needsRender=!0,h.modelSceneNeedsRender=!0};if(typeof document!="undefined"&&document.addEventListener("fullscreenchange",A,!1),h.renderer&&h.renderer.domElement.addEventListener("webglcontextrestored",E,!1),h.removeEventListeners=function(){typeof document!="undefined"&&document.removeEventListener("fullscreenchange",A,!1),h.renderer&&h.renderer.domElement.removeEventListener("webglcontextrestored",E,!1)},h.plugins={},e.plugins&&e.plugins.length)for(var b=0,T=e.plugins;b<T.length;b++){var _=T[b];if(typeof _=="function")_(h);else if(Array.isArray(_)){var R=_[0],S=_[1],M=_[2];if(typeof R=="function"){var B=R(h,M);typeof S=="string"&&(h.plugins[S]?h.throwError(new Error("plugin name ".concat(S," is exists."))):h.plugins[S]=B)}}}return h.gpuPickingRenderTarget=new THREE__namespace.WebGLRenderTarget(1,1,{generateMipmaps:!1}),h.meshReplaceMaterialMap=new Map,h.meshOriginMaterialMap=new Map,initLegacyEvent(h),h}return Object.defineProperty(t,"version",{get:function(){return"6.4.0-alpha.15"},enumerable:!1,configurable:!0}),Object.defineProperty(t,"dracoPath",{get:function(){return draco.decoderPath},set:function(e){draco.setDecoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t,"ktx2Path",{get:function(){return ktx2.transcoderPath},set:function(e){ktx2.setTranscoderPath(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"panoIndex",{get:function(){return this.pano.panoIndex},enumerable:!1,configurable:!0}),t.prototype.getGPUPicking=function(e,r,o,s,u){var l=this;if(s===void 0&&(s=1),u===void 0&&(u=new THREE__namespace.Vector3(0,0,0)),!this.renderer)throw new Error("renderer is not initialized.");var c=this.models.getMaterial(),f=c.constantColor,d=c.colorStyle;this.models.setMaterial({colorStyle:"CONSTANT",constantColor:u}),this.scene.traverse(function(h){if(!(!(h instanceof THREE__namespace.Mesh)||h instanceof PBMMesh)){var m=Object.keys(o).filter(function(A){return A===h.uuid})[0];if(m)if(l.meshOriginMaterialMap.set(m,h.material),l.meshReplaceMaterialMap.get(m))h.material=l.meshReplaceMaterialMap.get(m);else{var y=new THREE__namespace.ShaderMaterial({uniforms:{color:{value:o[m]}},vertexShader:`
|
|
2170
2170
|
void main() {
|
|
2171
2171
|
vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );
|
|
2172
2172
|
gl_Position = projectionMatrix * mvPosition;
|
|
@@ -2176,4 +2176,4 @@ void main() {
|
|
|
2176
2176
|
void main() {
|
|
2177
2177
|
gl_FragColor = vec4( color, 1.0 );
|
|
2178
2178
|
}
|
|
2179
|
-
`});y.depthTest=h.material.depthTest,y.side=h.material.side,l.meshReplaceMaterialMap.set(m,y),h.material=y}}});var p=this.renderer.getSize(new THREE__namespace.Vector2);this.camera.setViewOffset(p.width,p.height,e*s,r*s,1,1),this.renderer.setRenderTarget(this.gpuPickingRenderTarget),this.render();var v=new Uint8Array(4);this.renderer.readRenderTargetPixels(this.gpuPickingRenderTarget,0,0,1,1,v),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),this.scene.traverse(function(h){!(h instanceof THREE__namespace.Mesh)||h instanceof PBMMesh||l.meshOriginMaterialMap.get(h.uuid)&&(h.material=l.meshOriginMaterialMap.get(h.uuid))}),this.models.setMaterial({colorStyle:d,constantColor:f});var g=Object.keys(o).filter(function(h){return o[h].equals(new THREE__namespace.Color().setRGB(v[0]/255,v[1]/255,v[2]/255))})[0];return g||!1},t.prototype.dispose=function(){var e,r;if(this.destroyed!==!0){delete __FIVE_DEBUG__.instances[this.ident],this.emit("dispose"),this.destroyed=!0,this.pause(),this.stopAnimationLoop&&(this.stopAnimationLoop(),delete this.stopAnimationLoop),(e=this.renderer)===null||e===void 0||e.setAnimationLoop(null),this.off(),this.networkSubscribe.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var o=this.getElement();o&&o.parentNode&&o.parentNode.removeChild(o);var s=this.models.getMaterial();s&&(s.pano0&&s.pano0.map.dispose(),s.pano1&&s.pano1.map!==((r=s.pano0)===null||r===void 0?void 0:r.map)&&s.pano1.map.dispose());for(var u=0,l=this.models;u<l.length;u++){var c=l[u];c.dispose()}this.models.length=0,this.models.setMaterial({pano0:null,pano1:null}),this.meshReplaceMaterialMap.forEach(function(f){f.dispose()}),this.meshOriginMaterialMap.forEach(function(f){f.dispose()}),this.renderer instanceof InternalWebGLRenderer&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},t.prototype.setScissor=function(e){var r;if(Object.assign(this.scissor,e),this.controller&&this.controller.updateRenderSize){var o=new THREE__namespace.Vector2;(r=this.renderer)===null||r===void 0||r.getDrawingBufferSize(o),this.controller.updateRenderSize(o)}},Object.defineProperty(t.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpers.visible",createEvent("helpers.visible",{object:this.helperGroup})),this.needsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableIOSEDR",{get:function(){return this._enableIOSEDR},set:function(e){this._enableIOSEDR!==e&&(this._enableIOSEDR=e,this.currentMode&&this.currentMode==="Panorama"&&this.changeMode(this.currentMode,this.getCurrentState(),0,!1,!0))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"postProcessingType",{get:function(){return this.currentMode==="Panorama"&&this.enableIOSEDR&&this.enablePostProcessing?"luminance":this.currentMode==="Mapview"&&this.enableEDL?"edl":this.currentMode==="Mapview"&&this.enableHQ?"hq":null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableEDL",{get:function(){return this._enableEDL},set:function(e){if(e===!0&&this.currentMode!==t.Mode.Mapview)throw new Error("只支持Mapview下开启EDL");this._enableEDL!==e&&(this._enableEDL=e,this.boundingMesh.visible=!e,this.needsRender=!0,this.modelSceneNeedsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableHQ",{get:function(){return this._enableHQ},set:function(e){if(e===!0&&this.currentMode!==t.Mode.Mapview)throw new Error("只支持Mapview下开启HQ");this._enableHQ!==e&&(this._enableHQ=e,this.boundingMesh.visible=!e,this.needsRender=!0,this.modelSceneNeedsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enablePostProcessing",{get:function(){return this._enablePostProcessing},set:function(e){this._enablePostProcessing!==e&&(this._enablePostProcessing=e),this.needsRender=!0,this.modelSceneNeedsRender=!0},enumerable:!1,configurable:!0}),t.prototype.updateConfiguration=function(e,r){r===void 0&&(r=!0);var o=!1;e.panorama&&(Object.assign(this.controllerInits.Panorama,e.panorama),this.currentMode==="Panorama"&&(o=!0)),e.model&&(Object.assign(this.controllerInits.Model,e.model),this.currentMode==="Model"&&(o=!0)),e.floorplan&&(Object.assign(this.controllerInits.Floorplan,e.floorplan),this.currentMode==="Floorplan"&&(o=!0)),e.topview&&(Object.assign(this.controllerInits.Topview,e.topview),this.currentMode==="Topview"&&(o=!0)),e.mapview&&(Object.assign(this.controllerInits.Mapview,e.mapview),this.currentMode==="Mapview"&&(o=!0)),e.vrPanorama&&(Object.assign(this.controllerInits.VRPanorama,e.vrPanorama),this.currentMode==="VRPanorama"&&(o=!0)),e.imageOptions&&(Object.assign(this.imageOptions,e.imageOptions),(this.currentMode==="Panorama"||this.currentMode==="VRPanorama")&&(o=!0)),e.textureOptions&&Object.assign(this.textureOptions,e.textureOptions),r&&o&&this.controller&&this.currentMode&&this.changeMode(this.currentMode,this.getCurrentState(),0,!1,!0)},t.prototype.appendTo=function(e,r){if(r===void 0&&(r={}),!!this.renderer){if(!(this.renderer instanceof InternalWebGLRenderer)){this.throwError(new Error("cannot call appendTo method when render a external renderer"));return}var o=this.getElement();if(o){e.appendChild(o),this.refresh(r);var s=window.getComputedStyle(e).position;s!=="relative"&&s!=="absolute"&&s!=="fixed"&&s!=="sticky"&&(e.style.position="relative")}}},t.prototype.refresh=function(e,r){if(e===void 0&&(e={}),!!this.renderer){var o=this.getElement();if(o){var s=o.parentNode;if(s&&s.nodeName){var u=e.width,l=u===void 0?s.offsetWidth:u,c=e.height,f=c===void 0?s.offsetHeight:c;this.renderer instanceof InternalWebGLRenderer&&(r&&this.renderer.setPixelRatio(r),this.renderer.setSize(l,f))}var d=new THREE__namespace.Vector2;if(this.renderer.getDrawingBufferSize(d),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize(d),this.modelRenderTarget.width!==d.x||this.modelRenderTarget.height!==d.y){this.modelRenderTarget.setSize(d.x,d.y),this.modelRenderTarget.depthTexture.dispose();var p=new THREE__namespace.DepthTexture(d.x,d.y);p.generateMipmaps=!1,p.format=THREE__namespace.DepthStencilFormat,p.type=THREE__namespace.UnsignedInt248Type,this.modelRenderTarget.depthTexture=p,this.modelRenderTarget.depthTexture.needsUpdate=!0}this.needsRender=!0,this.modelSceneNeedsRender=!0,this.render(noop$1,!0)}}},t.prototype.addExtraElement=function(e){var r=this;return this.extraElements.indexOf(e)===-1&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return r.removeExtraElement(e)}},t.prototype.removeExtraElement=function(e){var r=this.extraElements.indexOf(e);r!==-1&&(this.extraElements.splice(r,1),this.controller&&this.controller.unbindExtraElement(e))},t.prototype.getPose=function(){var e=this.camera.copyPose(),r=e.longitude,o=e.latitude,s=e.fov,u=e.offset,l=e.distance;return{longitude:r,latitude:o,fov:s,offset:u.clone(),distance:l}},t.prototype.getSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},t.prototype.getDrawingBufferSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},t.prototype.updateCamera=function(e,r,o){if(o===void 0&&(o=!0),!this.controller)throw new Error("controller is not initialized.");return this.controller.updateCamera(e,r,o)},t.prototype.updateCameraWithKeyframes=function(e,r,o){if(o===void 0&&(o=!0),!this.controller)throw new Error("controller is not initialized.");return this.controller.updateCameraWithKeyframes(e,r,o)},t.prototype.getLongitudeAndLatitude=function(){var e=this.getPose(),r=e.longitude,o=e.latitude;return{longitude:r,latitude:o}},t.prototype.getOffset=function(){return this.getPose().offset},t.prototype.getCameraLocal=function(){if(this.pano.workCode&&this.controller&&this.works){var e=this.works.getResolvedObserver(this.pano);if(e){var r=new THREE__namespace.Object3D;return r.position.copy(e.position),r.quaternion.copy(e.quaternion),r.scale.set(1,1,1),r.matrix.compose(r.position,r.quaternion,r.scale),r.matrixAutoUpdate=!1,cameraWorldToLocal(this.camera,r)}}return null},Object.defineProperty(t.prototype,"works",{get:function(){var e=worksMap.get(this);if(!e)return emptyWorks;for(var r=0,o=e;r<o.length;r++){var s=o[r];if(!workRawMapping.has(s))return emptyWorks}return e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"work",{get:function(){return this.works[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"model",{get:function(){return this.models[0]},enumerable:!1,configurable:!0}),t.prototype.load=function(e,r,o,s){var u=this;if(s===void 0&&(s=!0),!this.renderer)throw new Error("renderer is not initialized");var l=this.lastLoadWorkTask.then(function(){return isPromise(e)?e.then(function(c){return u.load_(c,r,o,s)}):u.load_(e,r,o,s)});return this.lastLoadWorkTask=l.catch(function(c){u.throwError(c)}),l},t.prototype.load_=function(e,r,o,s){var u=this,l,c,f,d,p,v,g,h;s===void 0&&(s=!0);var m={};typeof o=="number"?m.duration=o:typeof o=="object"&&Object.assign(m,o),this.works===emptyWorks&&(m.duration===void 0&&(m.duration=0),m.effect===void 0&&(m.effect="instant"));var y=[];if(Array.isArray(e))for(var A=0,E=e;A<E.length;A++){var b=E[A];typeof b!="string"&&"work"in b?y.push(parseWork(b.work,b)):y.push(parseWork(b))}else y.push(parseWork(e));for(var T=createWorks(y),_=function(X){var j=R,Y=new Fetcher({allowHosts:X.allowHosts,get requestProxy(){return j.requestProxy},get networkSubscribe(){return j.networkSubscribe}});registerFetcher(X,Y)},R=this,S=0,M=T;S<M.length;S++){var B=M[S];_(B)}this.lastWorks=this.works,r===void 0&&(r="inherit"),r==="inherit"&&this.lastWorks.length===0&&(r="initial");var H=T.initial,w=H.work.observers[0],C=w?{workCode:w.work.workCode,panoIndex:w.panoIndex}:{workCode:H.work.workCode,panoIndex:0},F=(l=H.mode)!==null&&l!==void 0?l:w?"Panorama":"Mapview",I={};if(r==="inherit"){F=this.currentMode;var L=T.resolvedObservers[this.panoIndex];L?C={workCode:L.work.workCode,panoIndex:L.panoIndex}:typeof T.initial.panoIndex=="number"?C={workCode:T.initial.work.workCode,panoIndex:T.initial.panoIndex}:(F==="Panorama"||F==="VRPanorama"||F==="XRPanorama")&&(F="Mapview"),I={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,distance:void 0,offset:void 0}}else if(r==="initial")typeof H.panoIndex=="number"&&(C={workCode:H.work.workCode,panoIndex:H.panoIndex}),H.mode&&(F=H.mode),I={longitude:H.longitude,latitude:H.latitude,fov:H.fov,distance:H.distance,offset:(c=H.offset)===null||c===void 0?void 0:c.clone()};else{if(F=(f=r.mode)!==null&&f!==void 0?f:this.currentMode,typeof r.panoIndex=="number"){var L=T.getResolvedObserver({workCode:(p=(d=r.workCode)!==null&&d!==void 0?d:H.work.workCode)!==null&&p!==void 0?p:"",panoIndex:r.panoIndex});L&&(C={workCode:L.work.workCode,panoIndex:L.panoIndex})}I={longitude:r.longitude,latitude:r.latitude,fov:r.fov,distance:r.distance,offset:r.offset}}var k=__assign(__assign(__assign({},C),{mode:F}),I),N=this.getCurrentState(),D=(v=m.duration)!==null&&v!==void 0?v:this.modeChangeDuration;(F==="Floorplan"||F==="Topview"||F==="Mapview")&&this.currentMode===F&&(D=0);var U="fly";(F==="Panorama"||F==="VRPanorama"||F==="XRPanorama")&&this.currentMode===F&&(U=(g=m.effect)!==null&&g!==void 0?g:"fade"),this.emit("works.request",createEvent("works.request",{input:e,works:T,state:k,userAction:s}));var z=function(){u.modelGroup.visible=!0,u.pano=C;var X=__assign(__assign({initial:{state:k,currentState:N,duration:D,effect:U,userAction:s}},u.commonParams()),u.controllerInits[F]),j=Controllers[F].initAnimationEndState(X);if(u.controller&&u.currentMode===F)u.controller.updateWork(T,j,{effect:U,duration:D},s)===!1&&(u.controller.destroy(),u.controller=u.applyController(F,X));else{var Y=u.currentMode;if(u.controller)u.controller.destroy();else{var Z=Controllers[F].initAnimationEndState(X);u.camera.setFromPose(Z),u.emit("camera.update",createEvent("camera.update",{state:u.getCurrentState(),userAction:s}))}u.controller=u.applyController(F,X);var W=createEvent("mode.change",{prevMode:Y,mode:F,state:j,userAction:s});u.emit("mode.change",W)}};worksMap.set(this,T),this.updateConfiguration(m,!1);var q=Promise.resolve();if(F===t.Mode.Floorplan||F===t.Mode.Topview||F===t.Mode.Mapview||F===t.Mode.Model)this.models.loaded===!1&&(this.camera.setFromPose(k),assignPose(this.state,this.camera.pose)),this.controller||(this.currentMode=F),q=this.loadModel(T,m).then(function(){u.needsRender=!0,u.modelSceneNeedsRender=!0,z(),u.emit("camera.update",createEvent("camera.update",{state:u.getCurrentState(),userAction:s}))});else{z();var G=!1,J=function(){u.works===T&&G===!1&&(u.needsRender=!0,u.modelSceneNeedsRender=!0,u.emit("camera.update",createEvent("camera.update",{state:u.getCurrentState(),userAction:s})),u.loadModel(T,m),G=!0)};this.controller.once("pano.arrived",J),this.controller.once("pano.cancel",J),setTimeout(J,((h=m.duration)!==null&&h!==void 0?h:this.modeChangeDuration)+1e3)}return this.emit("works.load",createEvent("works.load",{input:e,state:this.getCurrentState(),userAction:s,works:T})),q.then(function(){return u.ready()}).then(function(){var X;u.emit("works.ready",createEvent("works.ready",{input:e,state:u.getCurrentState(),userAction:s,works:T})),(X=u.analysis)===null||X===void 0||X.work(T)})},t.prototype.reset=function(){var e=this,r=this.lastLoadWorkTask.then(function(){return e.reset_()});return this.lastLoadWorkTask=r.catch(function(o){e.throwError(o)}),r},t.prototype.reset_=function(){var e=this;return new Promise(function(r){var o;e.controller&&(e.controller.destroy(),e.controller=void 0);var s=e.models.getMaterial();s&&(s.pano0&&s.pano0.map.dispose(),s.pano1&&s.pano1.map!==((o=s.pano0)===null||o===void 0?void 0:o.map)&&s.pano1.map.dispose()),e.models.setMaterial({pano0:null,pano1:null,modelAlpha:1}),e.lastModels.setMaterial({pano0:null,pano1:null,modelAlpha:1}),e.renderer&&(e.models.update(e.renderer,e.camera,e.currentMode),e.lastModels.update(e.renderer,e.camera,e.currentMode),e.model&&e.boundingMesh.update(e.renderer,e.camera,e.model));for(var u=0,l=e.models;u<l.length;u++){var c=l[u];e.lastModels.push(c)}if(e.models.length=0,e.lastModels.length>0){for(var f=0,d=e.lastModels;f<d.length;f++){var c=d[f];e.modelGroup.remove(c),c.dispose(),e.needsRender=!0,e.modelSceneNeedsRender=!0}e.lastModels.length=0}e.lastWorks&&delete e.lastWorks,worksMap.delete(e),e.currentMode="Mapview",e.pano={workCode:"",panoIndex:0},e.camera.setFromPose({distance:0,fov:DEFAULT_CAMERA_FOV,longitude:0,latitude:0,offset:new THREE__namespace.Vector3(0,0,0)}),e.state={mode:e.currentMode,workCode:e.pano.workCode,panoIndex:e.pano.panoIndex,longitude:e.camera.pose.longitude,latitude:e.camera.pose.latitude,fov:e.camera.pose.fov,offset:e.camera.pose.offset.clone(),distance:e.camera.pose.distance},e.models.needsRender=!1,e.camera.needsRender=!1,e.needsRender=!1,e.modelSceneNeedsRender=!1,r()})},t.prototype.changeMode=function(e,r,o,s,u){var l=this;return r===void 0&&(r={}),s===void 0&&(s=!0),u===void 0&&(u=!1),new Promise(function(c,f){var d,p,v,g;if(!l.renderer)throw new Error("renderer is not initialized.");r=__assign({},r);var h=0;l.controller&&(typeof o=="number"?h=o:h=(d=o==null?void 0:o.duration)!==null&&d!==void 0?d:l.modeChangeDuration);var m="fly";l.controller&&typeof o=="object"&&o.effect&&(m=o.effect);var y=typeof r.panoIndex=="number"?{workCode:(g=(p=r.workCode)!==null&&p!==void 0?p:(v=l.work)===null||v===void 0?void 0:v.workCode)!==null&&g!==void 0?g:"",panoIndex:r.panoIndex}:l.pano;if(!t.Mode.hasOwnProperty(e)){var A=new Error('mode "'.concat(e,'" is not existed'));l.throwError(A),f(A);return}if((e===t.Mode.Panorama||e===t.Mode.VRPanorama||e===t.Mode.XRPanorama)&&!l.works.getResolvedObserver(y)){var A=new Error("PanoId ".concat(panoStringify(y)," not existed."));l.throwError(A),f(A);return}(e===t.Mode.Floorplan||e===t.Mode.Topview||e===t.Mode.Mapview||e===t.Mode.Model)&&(l.models.loaded||(h=0));var E=l.controller,b=l.currentMode,T=function(){if(l.controller&&l.controller.stopMomentumMovement(),l.controller&&u===!1&&b===e)e===t.Mode.Panorama||e===t.Mode.Model||e===t.Mode.VRPanorama||e===t.Mode.XRPanorama?panoEqual(l.pano,y)&&"moveToPano"in l.controller&&typeof l.controller.moveToPano=="function"?l.controller.moveToPano(y,__assign({duration:h},r),s):l.controller.updateCamera(r,h,s).catch(noop$1):(panoEqual(l.pano,y)||(l.pano=y),l.controller.updateCamera(r,h,s).catch(noop$1));else{var R=__assign(__assign({},r),y),S=__assign(__assign({initial:{state:R,currentState:l.getCurrentState(),duration:h,effect:m,userAction:s}},l.commonParams()),l.controllerInits[e]),M=Controllers[e].initAnimationEndState(S),B=createEvent("mode.change.request",{prevMode:l.currentMode,mode:e,state:M,userAction:s});if(l.emit("mode.change.request",B),!B.defaultPrevented){E&&E.destroy(),l.controller=l.applyController(e,S);var H=createEvent("mode.change",{prevMode:l.currentMode,mode:e,state:M,userAction:s});l.emit("mode.change",H)}}c()};if(e===t.Mode.VRPanorama)l.requestFullscreen(),requestDeviceOrientationPermission().then(function(){return T()}).catch(function(R){R instanceof Error&&(l.exitFullscreen(),l.throwError(R),f(R))});else if(e===t.Mode.XRPanorama){var _=AnimationFrameLoop.shared.getContext();_?_.end():requestXRSessionPermission().then(function(R){AnimationFrameLoop.shared.setContext(R),T()}).catch(function(R){R instanceof Error&&(l.throwError(R),f(R))})}else T()})},t.prototype.getPixels=function(e,r,o,s,u,l,c){if(!this.renderer)throw new Error("renderer is not initialized.");var f=this.renderer.getPixelRatio(),d=this.renderer.getRenderTarget(),p=this.renderer.getSize(new THREE__namespace.Vector2),v=0,g=0,h=1,m=1,y,A,E,b,T;typeof e=="number"?(v=e,typeof r=="number"&&(g=r),typeof o=="number"&&(h=o),typeof s=="number"&&(m=s),y=u,A=l,T=c):(v=e.x,g=e.y,h=e.width,m=e.height,y=e.pixelRatio,A=e.flipY,E=e.helperVisible,b=e.skipPanorama,T=e.buffer),v=Math.ceil(v),g=Math.ceil(g),h=Math.ceil(h),m=Math.ceil(m),y=Math.ceil(y!=null?y:f),A=A!=null?A:!1;var _=this.getPixelsRenderTarget;_.setSize(h*y,m*y),this.renderer.setRenderTarget(_),this.camera.pixelRatio=y,this.camera.resolution.set(h,m),this.camera.setViewOffset(p.width,p.height,v,p.height-g-m,h,m);for(var R=0,S=this.scene.children;R<S.length;R++){var M=S[R];M instanceof THREE__namespace.Object3D&&M.traverseVisible(function(J){J.setResolution&&J.setResolution(h*y/f,m*y/f)})}this.models.autoUpdate=!1;var B=!0,H=0;b&&(this.controller instanceof Controllers.Panorama||this.controller instanceof Controllers.VRPanorama||this.controller instanceof Controllers.XRPanorama)&&(B=this.controller.tiling.object.visible,this.controller.tiling.object.visible=!1,H=this.models.getMaterial().modelAlpha,this.models.setMaterial({modelAlpha:b===!0?1:H}));var w=this.helperVisible;E===!1&&(this.helperVisible=!1),this.models.update(this.renderer,this.camera,this.currentMode),this.controller?(this.controller.updateRenderSize(new THREE__namespace.Vector2(h*y,m*y)),this.controller.render(!0,this.postProcessingType)):(this.renderer.render(this.scene,this.camera),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!1,this.renderer.render(this.modelScene,this.camera),this.renderer.autoClearDepth=!0,this.renderer.autoClearColor=!0),this.helperVisible=w,b&&(this.controller instanceof Controllers.Panorama||this.controller instanceof Controllers.VRPanorama||this.controller instanceof Controllers.XRPanorama)&&(this.controller.tiling.object.visible=B,this.models.setMaterial({modelAlpha:H})),this.models.update(this.renderer,this.camera,this.currentMode),this.models.autoUpdate=!0;var C=h*y,F=m*y,I=C*F,L=I*4,k;try{if(T){if(T.length!==L)throw new Error("buffer length is not equals pixels ".concat(L))}else T=new Uint8Array(L);if(this.renderer.readRenderTargetPixels(_,0,0,h*y,m*y,T),A)for(var N=I/2,D=0,U=0,z=0,q=0;U<N;U++)for(q=(F-Math.floor(U/C)-1)*C+U%C,z=0;z<4;z++)D=T[U*4+z],T[U*4+z]=T[q*4+z],T[q*4+z]=D}catch(J){k=J}if(this.renderer.setRenderTarget(d),this.controller&&this.controller.updateRenderSize){var G=new THREE__namespace.Vector2;this.renderer.getDrawingBufferSize(G),this.controller.updateRenderSize(G)}if(this.camera.clearViewOffset(),this.camera.pixelRatio=f,this.getSize(this.camera.resolution),this.camera.aspect=this.camera.resolution.width/this.camera.resolution.height,k)throw k;return T},t.prototype.getElement=function(){var e;return(e=this.renderer)===null||e===void 0?void 0:e.domElement},Object.defineProperty(t.prototype,"observers",{get:function(){return this.works.resolvedObservers},enumerable:!1,configurable:!0}),t.prototype.render=function(e,r){var o=this;if(r===void 0&&(r=!1),!this.renderer)return null;if(r){var s=this.renderer.getSize(sharedVector2);this.scene.traverseVisible(function(u){u.setResolution&&u.setResolution(s.x,s.y)})}return this.aroundScissor(function(){o.renderer&&(o.controller?(o.controller.render(o.onlyRenderIfNeeds?o.modelSceneNeedsRender:!0,o.postProcessingType),o.info={memory:__assign({},o.controller.renderer.info.memory),render:__assign({},o.controller.renderer.info.render)}):(o.renderer.render(o.scene,o.camera),o.info={memory:__assign({},o.renderer.info.memory),render:__assign({},o.renderer.info.render)}),o.poweredByRealsee&&o.currentMode!=="VRPanorama"&&o.currentMode!=="XRPanorama"&&o.renderer.getRenderTarget()!==o.getPixelsRenderTarget&&renderPoweredByRealsee(o.renderer)),e&&AnimationFrameLoop.shared.add(e,!0)}),null},t.prototype.updateTime=function(e,r){for(var o,s=this,u=[],l=2;l<arguments.length;l++)u[l-2]=arguments[l];if(!this.destroyed){if(this.works.update(),this.syncingState=this.syncState(e,r),this.controller&&(o=this.controller).updateTime.apply(o,__spreadArray([e,r],u,!1)),this.renderer&&(this.camera.pixelRatio=this.renderer.getPixelRatio(),this.getSize(this.camera.resolution),this.camera.aspect=this.camera.resolution.width/this.camera.resolution.height),this.camera.updateTime(e),this.renderer){ktx2.detectSupport(this.renderer);var c=this.models.loaded,f=this.models.refined;if(this.models.update(this.renderer,this.camera,this.currentMode),this.camera.autoNearFar){var d=this.models.bounding.getBoundingSphere(sharedSphere),p=d.radius*2;d.containsPoint(this.camera.position)||(p=this.camera.position.distanceTo(d.center)+d.radius),p=clamp$1(p,800,5e4),this.camera.far!==p&&(this.camera.far=p);var v=p/1e4;v=clamp$1(v,.03,.1),this.camera.near!==v&&(this.camera.near=v)}if(c===!1&&this.models.loaded===!0&&this.emit("models.load",createEvent("models.load",{models:this.models})),f===!1&&this.models.refined===!0&&this.emit("models.refined",createEvent("models.refined",{models:this.models})),this.models.loaded){for(var g=0,h=this.models;g<h.length;g++){var m=h[g];m.parent!==this.modelGroup&&(this.modelGroup.add(m),this.needsRender=!0,this.modelSceneNeedsRender=!0)}if(this.lastModels.length>0){for(var y=0,A=this.lastModels;y<A.length;y++){var m=A[y];this.modelGroup.remove(m),m.dispose(),this.needsRender=!0,this.modelSceneNeedsRender=!0}this.lastModels.length=0}this.lastWorks&&delete this.lastWorks}this.lastModels.setMaterial(this.models.getMaterial()),this.lastModels.materialVersion=this.models.materialVersion,this.lastModels.update(this.renderer,this.camera,this.currentMode)}this.syncingState=!1;var E=new THREE__namespace.Vector2(512,512),b=new THREE__namespace.Vector2(512,512);this.renderer&&(this.renderer.getSize(E),E.x*=this.scissor.width,E.y*=this.scissor.height,this.renderer.getDrawingBufferSize(b),b.x*=this.scissor.width,b.y*=this.scissor.height);{for(var T=new THREE__namespace.Box3,_=new THREE__namespace.Box3,R=new THREE__namespace.Vector3(4,4,4),S=0,M=this.works.resolvedObservers;S<M.length;S++){var B=M[S];_.setFromCenterAndSize(B.position,R),T.union(_)}if(T.union(this.models.bounding),this.lastWorks)for(var H=0,w=this.lastWorks.resolvedObservers;H<w.length;H++){var B=w[H];_.setFromCenterAndSize(B.position,R),T.union(_)}T.union(this.lastModels.bounding),T.getCenter(this.boundingMesh.position),T.getSize(this.boundingMesh.scale),this.boundingMesh.boundingBox.copy(T),this.renderer&&this.model&&this.boundingMesh.update(this.renderer,this.camera,this.model)}var C=createEvent("render.prepare",{needsRender:!0,info:null});if(this.emit("render.prepare",C),!C.defaultPrevented){var F=[];sharedProjScreenMatrix.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),sharedFrustum.setFromProjectionMatrix(sharedProjScreenMatrix);for(var I=0,L=this.scene.children;I<L.length;I++){var k=L[I];k!==this.modelGroup&&k!==this.boundingMesh&&k.traverseVisible(function(G){if(G.setResolution&&G.setResolution(E.x,E.y),G.setTime&&G.setTime(e),G.mixer instanceof THREE__namespace.AnimationMixer){var J=clockForMixer.get(G.mixer);J||(J=new THREE__namespace.Clock,clockForMixer.set(G.mixer,J)),G.mixer.update(J.getDelta())}(G instanceof THREE__namespace.Mesh||G instanceof THREE__namespace.Line||G instanceof THREE__namespace.Points)&&(G instanceof THREE__namespace.ImmediateRenderObject||!G.frustumCulled||sharedFrustum.intersectsObject(G))&&F.push(G)})}if(b.width*b.height>4096*2048?this.renderSwitch01=this.renderSwitch01^1:this.renderSwitch01=0,this.renderer&&this.paused===!1&&this.renderSwitch01===0){var N=void 0;if(this.onlyRenderIfNeeds!==!0)N=this.render();else{if(this.controller&&(this.controller.needsRender===!0&&(this.controller.needsRender=!1,this.needsRender=!0),this.controller.modelSceneNeedsRender===!0&&(this.controller.modelSceneNeedsRender=!1,this.modelSceneNeedsRender=!0)),this.camera.needsRender===!0&&(this.camera.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0),this.models.needsRender===!0&&(this.models.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0),this.needsRender!==!0)for(var D=0,U=F;D<U.length;D++){var z=U[D],q=function(G){G.needsRender===!0?(G.needsRender=!1,s.needsRender=!0):G.mixer&&G.mixer.stats.actions.inUse>0&&(s.needsRender=!0)};q(z),z.traverseAncestors(q)}(this.needsRender!==!1||this.modelSceneNeedsRender!==!1)&&(N=this.render())}this.needsRender=!1,this.modelSceneNeedsRender=!1,this.hasListener("render")&&this.emit("render",createEvent("render",{needsRender:N!==void 0,info:this.info}))}this.needsRender=!1,this.modelSceneNeedsRender=!1}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)}},t.prototype.pause=function(){this.paused=!0,this.renderer&&this.renderer instanceof InternalWebGLRenderer&&this.renderer.clear(!0,!0,!0)},t.prototype.play=function(){this.needsRender=!0,this.modelSceneNeedsRender=!0,this.paused=!1},t.prototype.moveToPano=function(e,r,o){r===void 0&&(r={}),o===void 0&&(o=!0);var s=this,u=s.controller,l=s.renderer;if(!u)return this.throwError(new Error("controller is not initialized.")),Promise.resolve();if(!l)return this.throwError(new Error("renderer is not initialized.")),Promise.resolve();var c=this.works.getResolvedObserver(e);if(!c)return this.throwError(new Error("pano ".concat(JSON.stringify(e)," not existed."))),Promise.resolve();var f={workCode:c.work.workCode,panoIndex:c.panoIndex};return"moveToPano"in u&&typeof u.moveToPano=="function"?u.moveToPano(f,r,o):c&&(this.pano=f,this.once("initAnimation.start",function(d){r.moveStartCallback&&r.moveStartCallback(d.state)}),this.once("initAnimation.end",function(d){r.moveEndCallback&&r.moveEndCallback(d.state)}),this.changeMode(t.Mode.Panorama,r,{effect:r.effect},o)),this.ready()},t.prototype.preloadPano=function(e,r){var o=this;r===void 0&&(r=noop$1);var s=this.works.getResolvedObserver(e);if(!s)return Promise.reject(new Error("Pano ".concat(JSON.stringify(e)," never found")));var u=["right","left","up","down","front","back"],l=now();return Promise.all(u.map(function(c){var f=__assign({key:"pano.".concat(s.panoId,".").concat(c)},pick(o.imageOptions,["size","format","quality","mappings"])),d=s.images[c],p=o.imageOptions.transform?o.imageOptions.transform(d,f):imageURL(d,f);return getFetcher(s.work).preload(p)})).then(function(){var c=now()-l;return r(c),c})},t.prototype.project2d=function(e,r){if(r===void 0&&(r=!1),!this.renderer)return null;if(this.models.length>0&&r){var o=this.camera.position,s=e.clone().sub(o),u=new THREE__namespace.Raycaster(o,s.clone().normalize());u.params.Points={threshold:.1};var l=this.models.intersectRaycaster(u)[0];if(l&&l.distance+.01<s.length())return null}var c=e.clone().project(this.camera);if(Math.abs(c.z)>1)return null;var f=this.renderer.getSize(new THREE__namespace.Vector2),d=f.x*this.scissor.width,p=f.y*this.scissor.height,v=f.x*this.scissor.left+(c.x+1)/2*d,g=f.y*(1-this.scissor.bottom-this.scissor.height)+(-c.y+1)/2*p;return new THREE__namespace.Vector2(v,g)},t.prototype.getRenderObjects=function(e){sharedProjScreenMatrix.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),sharedFrustum.setFromProjectionMatrix(sharedProjScreenMatrix),e||(e=this.scene);var r=[];return e.traverseVisible(function(o){(o instanceof THREE__namespace.Mesh||o instanceof THREE__namespace.Line||o instanceof THREE__namespace.Points)&&(o instanceof THREE__namespace.ImmediateRenderObject||!o.frustumCulled||sharedFrustum.intersectsObject(o))&&r.push(o)}),r},t.prototype.getCurrentState=function(){return __assign(__assign({},this.getPose()),{mode:this.currentMode,workCode:this.pano.workCode,panoIndex:this.pano.panoIndex})},t.prototype.setState=function(e,r,o){var s,u,l,c,f,d,p,v,g,h;r===void 0&&(r=!1),o===void 0&&(o=!0),e=Object.assign({},e),e.offset&&!(e instanceof THREE__namespace.Vector3)&&(e.offset=new THREE__namespace.Vector3(e.offset.x,e.offset.y,e.offset.z));var m;if(typeof e.panoIndex=="number")if(e.workCode)m={workCode:e.workCode,panoIndex:e.panoIndex};else{var y=(u=(s=this.work)===null||s===void 0?void 0:s.workCode)!==null&&u!==void 0?u:"",A=this.state.workCode;this.works.filter(function(C){return C.workCode===A}).length>0&&(y=A),m={workCode:y,panoIndex:e.panoIndex}}var E=(l=e.mode)!==null&&l!==void 0?l:this.state.mode,b,T,_,R,S;if(this.controller&&this.controller.stopMomentumMovement(),this.state.mode!==E){if(E==="VRPanorama"){this.changeMode("VRPanorama",void 0,void 0,!0);return}var M={workCode:m==null?void 0:m.workCode,panoIndex:m==null?void 0:m.panoIndex};typeof e.longitude=="number"&&(M.longitude=e.longitude),typeof e.latitude=="number"&&(M.latitude=e.latitude),typeof e.fov=="number"&&(M.fov=e.fov),typeof e.distance=="number"&&(M.distance=e.distance),e.offset instanceof THREE__namespace.Vector3&&(M.offset=e.offset);var B=__assign(__assign({initial:{state:M,currentState:this.getCurrentState(),duration:this.modeChangeDuration,effect:"fly",userAction:!1}},this.commonParams()),this.controllerInits[E]),H=Controllers[E].initAnimationEndState(B);b=H.longitude,T=H.latitude,_=H.fov,R=H.offset,S=H.distance}else b=(c=e.longitude)!==null&&c!==void 0?c:this.state.longitude,T=(f=e.latitude)!==null&&f!==void 0?f:this.state.latitude,_=(d=e.fov)!==null&&d!==void 0?d:this.state.fov,R=(p=e.offset)!==null&&p!==void 0?p:this.state.offset,S=(v=e.distance)!==null&&v!==void 0?v:this.state.distance;var w={workCode:(m!=null?m:this.pano).workCode,panoIndex:(m!=null?m:this.pano).panoIndex,mode:E,longitude:b,latitude:T,fov:_,offset:R,distance:S};this.emit("state.set",createEvent("state.set",{userAction:o,state:w})),stateEqual(this.state,w)||(this.controller&&w.mode==="VRPanorama"&&w.mode!==this.state.mode?(assignState(this.state,w),this.changeMode("VRPanorama")):this.controller&&w.mode==="XRPanorama"&&w.mode!==this.state.mode?(assignState(this.state,w),this.changeMode("XRPanorama")):(assignState(this.state,w),this.controller&&o&&(this.controller.userAction=!1),r&&this.state.mode===w.mode&&(this.syncingState=this.syncState(now(),0,r),this.syncingState&&((g=this.controller)===null||g===void 0||g.updateTime(now(),0),this.syncingState=!1)),this.emit("state.change",createEvent("state.change",{userAction:o,state:this.state})),(h=this.analysis)===null||h===void 0||h.state(this.works,this.state)))},t.prototype.aroundScissor=function(e){if(this.renderer){if(this.state.mode==="XRPanorama"){e();return}var r=new THREE__namespace.Vector2,o=this.scissor.left!==0||this.scissor.bottom!==0||this.scissor.width!==1||this.scissor.height!==1;if(o){this.renderer.getSize(r);var s=Math.floor(r.x*this.scissor.left),u=Math.floor(r.y*this.scissor.bottom),l=Math.floor(r.x*this.scissor.width),c=Math.floor(r.y*this.scissor.height);this.renderer.setViewport(s,u,l,c),this.renderer.setScissor(s,u,l,c),this.renderer.setScissorTest(!0)}e(),o&&(this.renderer.setViewport(0,0,r.x,r.y),this.renderer.setScissor(0,0,r.x,r.y),this.renderer.setScissorTest(!1))}},t.prototype.syncState=function(e,r,o){o===void 0&&(o=!1);var s=this.stateSynced;if(this.stateSynced=!1,!this.controller)return!1;if(this.state.mode!==this.currentMode){var u={mode:this.state.mode,workCode:this.state.workCode,panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.changeMode(this.state.mode,u,this.modeChangeDuration,this.controller.userAction),!0}if(!this.controller.isReady())return!1;if(this.controller instanceof Controllers.Model){if(notSimilarVector3(this.camera.pose.offset,this.state.offset)){var l={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.controller.moveToPosition(this.state.offset,__assign(__assign({},l),{duration:o?0:void 0}),!1),!0}}else{var c={workCode:this.state.workCode,panoIndex:this.state.panoIndex};if(!panoEqual(c,this.pano)&&"moveToPano"in this.controller&&typeof this.controller.moveToPano=="function"){var l={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.controller.moveToPano(c,l,!1),!0}}if(this.controller instanceof Controllers.Floorplan||this.controller instanceof Controllers.Topview||this.controller instanceof Controllers.Mapview){var f=1,d=.2,p=.2,v=Math.PI/45,g=o?this.state.fov:stepNumber(this.camera.pose.fov,this.state.fov,f),h=Math.abs(this.camera.pose.distance-this.state.distance),m=h>p*15?h/15:d,y=o?this.state.distance:stepNumber(this.camera.pose.distance,this.state.distance,m),A=this.camera.pose.offset.distanceTo(this.state.offset),E=A>p*15?A/15:p,b=o?new THREE__namespace.Vector3().copy(this.state.offset):stepVector(this.camera.pose.offset,this.state.offset,E),T=o?{longitude:this.state.longitude,latitude:this.state.latitude}:stepCoordinates({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},v),_=T.longitude,R=T.latitude;if(notSimilarValue(g,this.camera.pose.fov)||notSimilarVector3(b,this.camera.pose.offset)||notSimilarValue(y,this.camera.pose.distance)||notSimilarValue(_,this.camera.pose.longitude,Math.PI*2)||notSimilarValue(R,this.camera.pose.latitude)){var S={x:b.x,y:b.y,z:b.z},M={fov:g};return Object.assign(S,{distance:y}),Object.assign(M,{longitude:_,latitude:R}),this.controller.stopMomentumMovement(),this.controller.cameraMotion.set(M,0).catch(noop$1),this.controller.locationMotion.set(S,0).catch(noop$1),!0}}else{var B=1,H=Math.PI/45,g=o?this.state.fov:stepNumber(this.camera.pose.fov,this.state.fov,B),w=o?{longitude:this.state.longitude,latitude:this.state.latitude}:stepCoordinates({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},H),_=w.longitude,R=w.latitude,y=this.state.distance,b=new THREE__namespace.Vector3().copy(this.state.offset);if(notSimilarValue(y,this.camera.pose.distance)&&(this.state.distance=this.camera.pose.distance),notSimilarVector3(b,this.camera.pose.offset)&&(this.state.offset=this.camera.pose.offset.clone()),notSimilarValue(_,this.camera.pose.longitude,Math.PI*2)||notSimilarValue(R,this.camera.pose.latitude)||notSimilarValue(g,this.camera.pose.fov))return this.controller.stopMomentumMovement(),this.controller.cameraMotion.set({longitude:_,latitude:R,fov:g},0).catch(noop$1),!0}if(this.stateSynced=!0,s===!1&&this.emit("state.synced",createEvent("state.synced",{userAction:!1,state:this.state})),this.readyCallbacks.length&&this.stateSynced){var C=this.currentMode,F=C===t.Mode.Floorplan||C===t.Mode.Topview||C===t.Mode.Mapview||C===t.Mode.Model;if(!F||this.models.loaded){var I=this.readyCallbacks.slice();this.readyCallbacks.length=0;for(var L=0,k=I;L<k.length;L++){var N=k[L];this.controller instanceof Controllers.Panorama&&N.tile===!0&&!this.controller.isTileReady()?this.readyCallbacks.push(N):N()}}}return!1},t.prototype.ready=function(e){var r=this;return e===void 0&&(e={}),new Promise(function(o){var s;r.readyCallbacks.push(Object.assign(o,{tile:(s=e.tile)!==null&&s!==void 0?s:!1}))})},t.prototype.requestFullscreen=function(){var e;if(isMobile){var r=(e=this.getElement())===null||e===void 0?void 0:e.parentNode;r&&"requestFullscreen"in r&&typeof document!="undefined"&&document.fullscreenElement===null&&r.requestFullscreen()}},t.prototype.exitFullscreen=function(){typeof document!="undefined"&&document.fullscreenElement&&"exitFullscreen"in document&&document.exitFullscreen()},t.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},t.prototype.loadModel=function(e,r){for(var o=this,s=[],u=function(y){var A=l.models.filter(function(b){var T;return((T=b.work)===null||T===void 0?void 0:T.workCode)===y.workCode})[0];if(A)A.work=y,s.push(A);else{var E=new Model({onError:function(b){o.emit("model.error",createEvent("model.error",{work:y,model:E,error:b})),o.throwError(b)},onShownFloorChange:function(b){o.emit("model.changeShownFloor",createEvent("model.changeShownFloor",{work:y,model:E,error:null}))},onLoad:function(){o.emit("model.load",createEvent("model.load",{work:y,model:E,error:null}))}});s.push(E),l.emit("model.request",createEvent("model.request",{work:y,model:E,error:null})),E.load(y,{textureOptions:l.textureOptions,"3d-tiles":r["3d-tiles"]})}},l=this,c=0,f=e;c<f.length;c++){var d=f[c];u(d)}if(this.models.length>0){for(var p=0,v=this.models;p<v.length;p++){var g=v[p];s.indexOf(g)===-1&&this.lastModels.push(g)}this.models.length=0}for(var h=0,m=s;h<m.length;h++){var g=m[h];this.models.push(g)}return this.renderer&&(this.models.loaded=!1),new Promise(function(y){o.on("models.load",function(){o.controller&&o.controller.updateModel(o.models),y()})})},t.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,xrCustomObjectsScene:this.xrCustomObjectsScene,helper:this.helperGroup,boundingMesh:this.boundingMesh,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),models:this.models,works:this.works,imageOptions:this.imageOptions,enableWheel:this.enableWheel,enableIOSEDR:this._enableIOSEDR,enableEDL:this.enableEDL,enableHQ:this.enableHQ,extraElements:this.extraElements,videoTexture:this.videoTexture,modelScene:this.modelScene,modelRenderTarget:this.modelRenderTarget}},t.prototype.applyController=function(e,r){var o=this;if(!this.renderer)throw new Error("renderer is not initialized.");e!==t.Mode.Mapview&&(this.enableEDL=!1,this.enableHQ=!1);var s=Controllers[e];this.currentMode=e;for(var u=new s(r),l=function(g){u.on(g,function(){for(var h=[],m=0;m<arguments.length;m++)h[m]=arguments[m];var y=o.emit.apply(o,__spreadArray([g],h,!1));if(y)return!1})},c=0,f=PROXY_CONTROLLER_EVENT_NAMES;c<f.length;c++){var d=f[c];l(d)}{var p=Controllers[e].initAnimationEndState(r),v=r.initial.userAction;stateEqual(this.state,p)||(assignState(this.state,p),this.emit("state.change",createEvent("state.change",{userAction:v,state:this.state}))),this.emit("currentState.change",createEvent("currentState.change",{userAction:v,state:this.getCurrentState()}))}return u.on("camera.update",function(g){var h;if(o.controller){var m=o.controller.getTargetState();g.userAction&&o.syncingState===!1&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:g.userAction,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}o.emit("currentState.change",createEvent("currentState.change",{userAction:g.userAction,state:o.getCurrentState()}))}),u.on("initAnimation.start",function(g){var h,m=g.state,y=g.userAction;y&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:y,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}),u.on("initAnimation.end",function(g){var h,m=g.state,y=g.userAction;y&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:y,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}),u.on("pano.moveTo",function(g){var h,m=g.state,y=g.userAction;o.pano={workCode:m.workCode,panoIndex:m.panoIndex},y&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:y,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}),u.on("pano.arrived",function(g){var h,m=g.state,y=g.userAction;y&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:y,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}),u.on("pano.cancel",function(g){var h,m=g.state,y=g.userAction;y&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:y,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}),u.on("pano.moveTo",function(g){var h=g.userAction;o.emit("currentState.change",createEvent("currentState.change",{userAction:h,state:o.getCurrentState()}))}),u.on("pano.request",function(g){o.emit("pano.request",g),g.defaultPrevented||o.moveToPano(g.state,g.options,g.userAction)}),u.on("vr.requestExit",function(){o.currentMode===t.Mode.VRPanorama&&(o.exitFullscreen(),o.changeMode(t.Mode.Panorama))}),u.on("error",function(g){return o.throwError(g)}),u},t.prototype.removeEventListeners=function(){},t.prototype.getWorkResources=function(e){var r=this,o,s=this.models.find(function(f){return f.work===e}),u=((o=s==null?void 0:s.viewLayers)!==null&&o!==void 0?o:[]).map(function(f){return f.scene});function l(f){var d=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(f);if(d){var p=String(d[1]).trim().split(".").slice(1).reverse()[0];if(p)return p}return""}function c(f,d){d===void 0&&(d=0);var p=[];if(f.content&&f.content.uri){var v=l(f.content.uri);if(v==="json"){var g=imageURL(f.content.uri,{key:"model.".concat(d)});p.push({url:g,type:"tileset"})}else if(v==="at3d"&&f.extras[v]){var g=f.content.uri;p.push({url:g,type:"model"});for(var h=f.extras[v],m=h.textureArray,y=h.textureOptions,A=0,E=m;A<E.length;A++){var b=E[A],T=__assign({key:"texture.pbm"},pick(y,["format","quality","size","sharpen","mappings"])),_=applyImageURLOptions(b,y==null?void 0:y.transform,T);p.push({url:_,type:"texture"})}}else{var g=imageURL(f.content.uri,{key:"model.".concat(d)});p.push({url:g,type:"model"})}}if(f.children)for(var R=0;R<f.children.length;R++){var S=f.children[R];p.push.apply(p,c(S,R))}return p}return Promise.all(u.map(function(f){return f.loadAllTilesets()})).then(function(){for(var f=[],d=["right","left","up","down","front","back"],p=0,v=e.observers;p<v.length;p++){for(var g=v[p],h=0,m=d;h<m.length;h++){var y=m[h],A=__assign({key:"pano.".concat(panoStringify(g.pano),".").concat(y)},pick(r.imageOptions,["size","format","quality","mappings"])),E=g.images[y],b=applyImageURLOptions(E,r.imageOptions.transform,A);f.push({url:b,type:"pano"})}if(g.images.tiles)for(var T=0,_=g.images.tiles;T<_.length;T++)for(var R=_[T],S=0,M=d;S<M.length;S++)for(var y=M[S],B=R.size,H=Math.pow(2,R.level),w=1/H,C=0;C<H;C++)for(var F=0;F<H;F++){var I="".concat(g.panoId,".").concat(y,".").concat(R.level,".").concat(C,".").concat(F),A=__assign(__assign({key:"pano_tile.".concat(I)},pick(r.imageOptions,["format","size","quality","sharpen","mappings"])),{size:R.scale>=1?void 0:B*w*R.scale,cut:[B*w*F,B*w*C,B*w,B*w]}),b=applyImageURLOptions(R[y],r.imageOptions.transform,A);f.push({url:b,type:"pano_tile"})}}for(var L=0,k=u;L<k.length;L++){var N=k[L];N.tileset.url&&f.push({url:N.tileset.url,type:"model"}),f.push.apply(f,c(N.tileset.root))}return f})},Object.defineProperty(t.prototype,"internalLightsEnabled",{get:function(){var e=this.scene.children.find(function(r){return r.name==="internalLights"});return e?e.visible:!1},set:function(e){var r=this.scene.children.find(function(o){return o.name==="internalLights"});r&&(r.visible=e)},enumerable:!1,configurable:!0}),t.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",Mapview:"Mapview",VRPanorama:"VRPanorama",XRPanorama:"XRPanorama"},t.Line=null,t}(Subscribe),__FIVE_DEBUG__={instances:{},constructor:Five};typeof window!="undefined"&&Object.assign(window,{__FIVE_DEBUG__});var XRButton=function(){function n(){}return n.createButton=function(t){var e=document.createElement("button");function r(){e.style.display="",e.style.cursor="pointer",e.style.left="calc(50% - 50px)",e.style.width="100px",e.textContent="ENTER VR",e.onmouseenter=function(){e.style.opacity="1.0"},e.onmouseleave=function(){e.style.opacity="0.5"},e.onclick=function(){t&&t()}}function o(){e.style.display="",e.style.cursor="auto",e.style.left="calc(50% - 75px)",e.style.width="150px",e.onmouseenter=null,e.onmouseleave=null,e.onclick=null}function s(){o(),e.textContent="VR NOT SUPPORTED"}function u(c){c.style.position="absolute",c.style.bottom="20px",c.style.padding="12px 6px",c.style.border="1px solid #fff",c.style.borderRadius="4px",c.style.background="rgba(0,0,0,0.1)",c.style.color="#fff",c.style.font="normal 13px sans-serif",c.style.textAlign="center",c.style.opacity="0.5",c.style.outline="none",c.style.zIndex="999"}if("xr"in navigator)return e.id="VRButton",e.style.display="none",u(e),navigator.xr.isSessionSupported("immersive-vr").then(function(c){c?r():s()}),e;var l=document.createElement("a");return window.isSecureContext===!1?(l.href=document.location.href.replace(/^http:/,"https:"),l.innerHTML="WEBXR NEEDS HTTPS"):(l.href="https://immersiveweb.dev/",l.innerHTML="WEBXR NOT AVAILABLE"),l.style.left="calc(50% - 90px)",l.style.width="180px",l.style.textDecoration="none",u(l),l},n}();exports.AnimationFrameLoop=AnimationFrameLoop,exports.Camera=Camera,exports.CustomShader=CustomShader,exports.Fetcher=Fetcher,exports.Five=Five,exports.InternalWebGLRenderer=InternalWebGLRenderer,exports.IntersectMesh=IntersectMesh,exports.Model=Model,exports.ModelViewLayer=ModelViewLayer,exports.NetworkSubscribe=NetworkSubscribe,exports.PBMContainer=PBMContainer,exports.PBMGroup=PBMGroup,exports.PBMMesh=PBMMesh,exports.PBMMeshMaterial=PBMMeshMaterial,exports.PBMPointCloud=PBMPointCloud,exports.PBMPointCloudMaterial=PBMPointCloudMaterial,exports.PROXY_CONTROLLER_EVENT_NAMES=PROXY_CONTROLLER_EVENT_NAMES,exports.PanoCircleMesh=PanoCircleMesh,exports.PanoCircleMeshCustom=PanoCircleMeshCustom,exports.PanoCircleMeshSolid=PanoCircleMeshSolid,exports.Scene=Scene,exports.Subscribe=Subscribe,exports.TextureLoader=TextureLoader,exports.Tile=Tile,exports.Tile3DModel=Tile3DModel,exports.TileCache=TileCache,exports.TileCubeTextureTarget=TileCubeTextureTarget,exports.TileNode=TileNode,exports.TileRequestScheduler=TileRequestScheduler,exports.Tileset=Tileset,exports.Trajectory=Trajectory,exports.TrajectoryNode=TrajectoryNode,exports.Work=Work,exports.XRButton=XRButton,exports.defaultImageURLTransform=imageURL,exports.defaultPbmParameters=defaultPbmParameters,exports.getViewportScale=getViewportScale,exports.imageSupport=imageSupport,exports.isPanoId=isPanoId,exports.loadAt3d=loadAt3d,exports.loadB3dm=loadB3dm,exports.loadDome=loadDome,exports.loadDomez=loadDomez,exports.loadFbx=loadFbx,exports.loadGlb=loadGlb,exports.loadPbm=loadPbm,exports.loadPly=loadPly,exports.loadPnts=loadPnts,exports.loadX3p=loadX3p,exports.panoEqual=panoEqual,exports.panoParse=panoParse,exports.panoStringify=panoStringify,exports.parseWork=parseWork,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});
|
|
2179
|
+
`});y.depthTest=h.material.depthTest,y.side=h.material.side,l.meshReplaceMaterialMap.set(m,y),h.material=y}}});var p=this.renderer.getSize(new THREE__namespace.Vector2);this.camera.setViewOffset(p.width,p.height,e*s,r*s,1,1),this.renderer.setRenderTarget(this.gpuPickingRenderTarget),this.render();var v=new Uint8Array(4);this.renderer.readRenderTargetPixels(this.gpuPickingRenderTarget,0,0,1,1,v),this.renderer.setRenderTarget(null),this.camera.clearViewOffset(),this.scene.traverse(function(h){!(h instanceof THREE__namespace.Mesh)||h instanceof PBMMesh||l.meshOriginMaterialMap.get(h.uuid)&&(h.material=l.meshOriginMaterialMap.get(h.uuid))}),this.models.setMaterial({colorStyle:d,constantColor:f});var g=Object.keys(o).filter(function(h){return o[h].equals(new THREE__namespace.Color().setRGB(v[0]/255,v[1]/255,v[2]/255))})[0];return g||!1},t.prototype.dispose=function(){var e,r;if(this.destroyed!==!0){delete __FIVE_DEBUG__.instances[this.ident],this.emit("dispose"),this.destroyed=!0,this.pause(),this.stopAnimationLoop&&(this.stopAnimationLoop(),delete this.stopAnimationLoop),(e=this.renderer)===null||e===void 0||e.setAnimationLoop(null),this.off(),this.networkSubscribe.off(),this.controller&&(this.controller.destroy(),this.controller=void 0);var o=this.getElement();o&&o.parentNode&&o.parentNode.removeChild(o);var s=this.models.getMaterial();s&&(s.pano0&&s.pano0.map.dispose(),s.pano1&&s.pano1.map!==((r=s.pano0)===null||r===void 0?void 0:r.map)&&s.pano1.map.dispose());for(var u=0,l=this.models;u<l.length;u++){var c=l[u];c.dispose()}this.models.length=0,this.models.setMaterial({pano0:null,pano1:null}),this.meshReplaceMaterialMap.forEach(function(f){f.dispose()}),this.meshOriginMaterialMap.forEach(function(f){f.dispose()}),this.renderer instanceof InternalWebGLRenderer&&this.renderer.forceContextLoss&&this.renderer.forceContextLoss()}},t.prototype.setScissor=function(e){var r;if(Object.assign(this.scissor,e),this.controller&&this.controller.updateRenderSize){var o=new THREE__namespace.Vector2;(r=this.renderer)===null||r===void 0||r.getDrawingBufferSize(o),this.controller.updateRenderSize(o)}},Object.defineProperty(t.prototype,"helperVisible",{get:function(){return this.helperGroup.visible},set:function(e){this.helperGroup.visible!==e&&(this.helperGroup.visible=e,this.emit("helpers.visible",createEvent("helpers.visible",{object:this.helperGroup})),this.needsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableIOSEDR",{get:function(){return this._enableIOSEDR},set:function(e){this._enableIOSEDR!==e&&(this._enableIOSEDR=e,this.currentMode&&this.currentMode==="Panorama"&&this.changeMode(this.currentMode,this.getCurrentState(),0,!1,!0))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"postProcessingType",{get:function(){return this.currentMode==="Panorama"&&this.enableIOSEDR&&this.enablePostProcessing?"luminance":this.currentMode==="Mapview"&&this.enableEDL?"edl":this.currentMode==="Mapview"&&this.enableHQ?"hq":null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableEDL",{get:function(){return this._enableEDL},set:function(e){if(e===!0&&this.currentMode!==t.Mode.Mapview)throw new Error("只支持Mapview下开启EDL");this._enableEDL!==e&&(this._enableEDL=e,this.boundingMesh.visible=!e,this.needsRender=!0,this.modelSceneNeedsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enableHQ",{get:function(){return this._enableHQ},set:function(e){if(e===!0&&this.currentMode!==t.Mode.Mapview)throw new Error("只支持Mapview下开启HQ");this._enableHQ!==e&&(this._enableHQ=e,this.boundingMesh.visible=!e,this.needsRender=!0,this.modelSceneNeedsRender=!0)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"enablePostProcessing",{get:function(){return this._enablePostProcessing},set:function(e){this._enablePostProcessing!==e&&(this._enablePostProcessing=e),this.needsRender=!0,this.modelSceneNeedsRender=!0},enumerable:!1,configurable:!0}),t.prototype.updateConfiguration=function(e,r){r===void 0&&(r=!0);var o=!1;e.panorama&&(Object.assign(this.controllerInits.Panorama,e.panorama),this.currentMode==="Panorama"&&(o=!0)),e.model&&(Object.assign(this.controllerInits.Model,e.model),this.currentMode==="Model"&&(o=!0)),e.floorplan&&(Object.assign(this.controllerInits.Floorplan,e.floorplan),this.currentMode==="Floorplan"&&(o=!0)),e.topview&&(Object.assign(this.controllerInits.Topview,e.topview),this.currentMode==="Topview"&&(o=!0)),e.mapview&&(Object.assign(this.controllerInits.Mapview,e.mapview),this.currentMode==="Mapview"&&(o=!0)),e.vrPanorama&&(Object.assign(this.controllerInits.VRPanorama,e.vrPanorama),this.currentMode==="VRPanorama"&&(o=!0)),e.imageOptions&&(Object.assign(this.imageOptions,e.imageOptions),(this.currentMode==="Panorama"||this.currentMode==="VRPanorama")&&(o=!0)),e.textureOptions&&Object.assign(this.textureOptions,e.textureOptions),r&&o&&this.controller&&this.currentMode&&this.changeMode(this.currentMode,this.getCurrentState(),0,!1,!0)},t.prototype.appendTo=function(e,r){if(r===void 0&&(r={}),!!this.renderer){if(!(this.renderer instanceof InternalWebGLRenderer)){this.throwError(new Error("cannot call appendTo method when render a external renderer"));return}var o=this.getElement();if(o){e.appendChild(o),this.refresh(r);var s=window.getComputedStyle(e).position;s!=="relative"&&s!=="absolute"&&s!=="fixed"&&s!=="sticky"&&(e.style.position="relative")}}},t.prototype.refresh=function(e,r){if(e===void 0&&(e={}),!!this.renderer){var o=this.getElement();if(o){var s=o.parentNode;if(s&&s.nodeName){var u=e.width,l=u===void 0?s.offsetWidth:u,c=e.height,f=c===void 0?s.offsetHeight:c;this.renderer instanceof InternalWebGLRenderer&&(r&&this.renderer.setPixelRatio(r),this.renderer.setSize(l,f))}var d=new THREE__namespace.Vector2;if(this.renderer.getDrawingBufferSize(d),this.controller&&this.controller.updateRenderSize&&this.controller.updateRenderSize(d),this.modelRenderTarget.width!==d.x||this.modelRenderTarget.height!==d.y){this.modelRenderTarget.setSize(d.x,d.y),this.modelRenderTarget.depthTexture.dispose();var p=new THREE__namespace.DepthTexture(d.x,d.y);p.generateMipmaps=!1,p.format=THREE__namespace.DepthStencilFormat,p.type=THREE__namespace.UnsignedInt248Type,this.modelRenderTarget.depthTexture=p,this.modelRenderTarget.depthTexture.needsUpdate=!0}this.needsRender=!0,this.modelSceneNeedsRender=!0,this.render(noop$1,!0)}}},t.prototype.addExtraElement=function(e){var r=this;return this.extraElements.indexOf(e)===-1&&(this.extraElements.push(e),this.controller&&this.controller.bindExtraElement(e)),function(){return r.removeExtraElement(e)}},t.prototype.removeExtraElement=function(e){var r=this.extraElements.indexOf(e);r!==-1&&(this.extraElements.splice(r,1),this.controller&&this.controller.unbindExtraElement(e))},t.prototype.getPose=function(){var e=this.camera.copyPose(),r=e.longitude,o=e.latitude,s=e.fov,u=e.offset,l=e.distance;return{longitude:r,latitude:o,fov:s,offset:u.clone(),distance:l}},t.prototype.getSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},t.prototype.getDrawingBufferSize=function(e){if(!this.renderer)throw new Error("renderer is not initialized");return this.renderer.getDrawingBufferSize(e),e.x*=this.scissor.width,e.y*=this.scissor.height,e},t.prototype.updateCamera=function(e,r,o){if(o===void 0&&(o=!0),!this.controller)throw new Error("controller is not initialized.");return this.controller.updateCamera(e,r,o)},t.prototype.updateCameraWithKeyframes=function(e,r,o){if(o===void 0&&(o=!0),!this.controller)throw new Error("controller is not initialized.");return this.controller.updateCameraWithKeyframes(e,r,o)},t.prototype.getLongitudeAndLatitude=function(){var e=this.getPose(),r=e.longitude,o=e.latitude;return{longitude:r,latitude:o}},t.prototype.getOffset=function(){return this.getPose().offset},t.prototype.getCameraLocal=function(){if(this.pano.workCode&&this.controller&&this.works){var e=this.works.getResolvedObserver(this.pano);if(e){var r=new THREE__namespace.Object3D;return r.position.copy(e.position),r.quaternion.copy(e.quaternion),r.scale.set(1,1,1),r.matrix.compose(r.position,r.quaternion,r.scale),r.matrixAutoUpdate=!1,cameraWorldToLocal(this.camera,r)}}return null},Object.defineProperty(t.prototype,"works",{get:function(){var e=worksMap.get(this);if(!e)return emptyWorks;for(var r=0,o=e;r<o.length;r++){var s=o[r];if(!workRawMapping.has(s))return emptyWorks}return e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"work",{get:function(){return this.works[0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"model",{get:function(){return this.models[0]},enumerable:!1,configurable:!0}),t.prototype.load=function(e,r,o,s){var u=this;if(s===void 0&&(s=!0),!this.renderer)throw new Error("renderer is not initialized");var l=this.lastLoadWorkTask.then(function(){return isPromise(e)?e.then(function(c){return u.load_(c,r,o,s)}):u.load_(e,r,o,s)});return this.lastLoadWorkTask=l.catch(function(c){u.throwError(c)}),l},t.prototype.load_=function(e,r,o,s){var u=this,l,c,f,d,p,v,g,h;s===void 0&&(s=!0);var m={};typeof o=="number"?m.duration=o:typeof o=="object"&&Object.assign(m,o),this.works===emptyWorks&&(m.duration===void 0&&(m.duration=0),m.effect===void 0&&(m.effect="instant"));var y=[];if(Array.isArray(e))for(var A=0,E=e;A<E.length;A++){var b=E[A];typeof b!="string"&&"work"in b?y.push(parseWork(b.work,b)):y.push(parseWork(b))}else y.push(parseWork(e));for(var T=createWorks(y),_=function(X){var j=R,Y=new Fetcher({allowHosts:X.allowHosts,get requestProxy(){return j.requestProxy},get networkSubscribe(){return j.networkSubscribe}});registerFetcher(X,Y)},R=this,S=0,M=T;S<M.length;S++){var B=M[S];_(B)}this.lastWorks=this.works,r===void 0&&(r="inherit"),r==="inherit"&&this.lastWorks.length===0&&(r="initial");var H=T.initial,w=H.work.observers[0],C=w?{workCode:w.work.workCode,panoIndex:w.panoIndex}:{workCode:H.work.workCode,panoIndex:0},F=(l=H.mode)!==null&&l!==void 0?l:w?"Panorama":"Mapview",I={};if(r==="inherit"){F=this.currentMode;var L=T.resolvedObservers[this.panoIndex];L?C={workCode:L.work.workCode,panoIndex:L.panoIndex}:typeof T.initial.panoIndex=="number"?C={workCode:T.initial.work.workCode,panoIndex:T.initial.panoIndex}:(F==="Panorama"||F==="VRPanorama"||F==="XRPanorama")&&(F="Mapview"),I={longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude,fov:this.camera.pose.fov,distance:void 0,offset:void 0}}else if(r==="initial")typeof H.panoIndex=="number"&&(C={workCode:H.work.workCode,panoIndex:H.panoIndex}),H.mode&&(F=H.mode),I={longitude:H.longitude,latitude:H.latitude,fov:H.fov,distance:H.distance,offset:(c=H.offset)===null||c===void 0?void 0:c.clone()};else{if(F=(f=r.mode)!==null&&f!==void 0?f:this.currentMode,typeof r.panoIndex=="number"){var L=T.getResolvedObserver({workCode:(p=(d=r.workCode)!==null&&d!==void 0?d:H.work.workCode)!==null&&p!==void 0?p:"",panoIndex:r.panoIndex});L&&(C={workCode:L.work.workCode,panoIndex:L.panoIndex})}I={longitude:r.longitude,latitude:r.latitude,fov:r.fov,distance:r.distance,offset:r.offset}}var k=__assign(__assign(__assign({},C),{mode:F}),I),N=this.getCurrentState(),D=(v=m.duration)!==null&&v!==void 0?v:this.modeChangeDuration;(F==="Floorplan"||F==="Topview"||F==="Mapview")&&this.currentMode===F&&(D=0);var U="fly";(F==="Panorama"||F==="VRPanorama"||F==="XRPanorama")&&this.currentMode===F&&(U=(g=m.effect)!==null&&g!==void 0?g:"fade"),this.emit("works.request",createEvent("works.request",{input:e,works:T,state:k,userAction:s}));var z=function(){u.modelGroup.visible=!0,u.pano=C;var X=__assign(__assign({initial:{state:k,currentState:N,duration:D,effect:U,userAction:s}},u.commonParams()),u.controllerInits[F]),j=Controllers[F].initAnimationEndState(X);if(u.controller&&u.currentMode===F)u.controller.updateWork(T,j,{effect:U,duration:D},s)===!1&&(u.controller.destroy(),u.controller=u.applyController(F,X));else{var Y=u.currentMode;if(u.controller)u.controller.destroy();else{var Z=Controllers[F].initAnimationEndState(X);u.camera.setFromPose(Z),u.emit("camera.update",createEvent("camera.update",{state:u.getCurrentState(),userAction:s}))}u.controller=u.applyController(F,X);var W=createEvent("mode.change",{prevMode:Y,mode:F,state:j,userAction:s});u.emit("mode.change",W)}};worksMap.set(this,T),this.updateConfiguration(m,!1);var q=Promise.resolve();if(F===t.Mode.Floorplan||F===t.Mode.Topview||F===t.Mode.Mapview||F===t.Mode.Model)this.models.loaded===!1&&(this.camera.setFromPose(k),assignPose(this.state,this.camera.pose)),this.controller||(this.currentMode=F),q=this.loadModel(T,m).then(function(){u.needsRender=!0,u.modelSceneNeedsRender=!0,z(),u.emit("camera.update",createEvent("camera.update",{state:u.getCurrentState(),userAction:s}))});else{z();var G=!1,J=function(){u.works===T&&G===!1&&(u.needsRender=!0,u.modelSceneNeedsRender=!0,u.emit("camera.update",createEvent("camera.update",{state:u.getCurrentState(),userAction:s})),u.loadModel(T,m),G=!0)};this.controller.once("pano.arrived",J),this.controller.once("pano.cancel",J),setTimeout(J,((h=m.duration)!==null&&h!==void 0?h:this.modeChangeDuration)+1e3)}return this.emit("works.load",createEvent("works.load",{input:e,state:this.getCurrentState(),userAction:s,works:T})),q.then(function(){return u.ready()}).then(function(){var X;u.emit("works.ready",createEvent("works.ready",{input:e,state:u.getCurrentState(),userAction:s,works:T})),(X=u.analysis)===null||X===void 0||X.work(T)})},t.prototype.reset=function(){var e=this,r=this.lastLoadWorkTask.then(function(){return e.reset_()});return this.lastLoadWorkTask=r.catch(function(o){e.throwError(o)}),r},t.prototype.reset_=function(){var e=this;return new Promise(function(r){var o;e.controller&&(e.controller.destroy(),e.controller=void 0);var s=e.models.getMaterial();s&&(s.pano0&&s.pano0.map.dispose(),s.pano1&&s.pano1.map!==((o=s.pano0)===null||o===void 0?void 0:o.map)&&s.pano1.map.dispose()),e.models.setMaterial({pano0:null,pano1:null,modelAlpha:1}),e.lastModels.setMaterial({pano0:null,pano1:null,modelAlpha:1}),e.renderer&&(e.models.update(e.renderer,e.camera,e.currentMode),e.lastModels.update(e.renderer,e.camera,e.currentMode),e.model&&e.boundingMesh.update(e.renderer,e.camera,e.model));for(var u=0,l=e.models;u<l.length;u++){var c=l[u];e.lastModels.push(c)}if(e.models.length=0,e.lastModels.length>0){for(var f=0,d=e.lastModels;f<d.length;f++){var c=d[f];e.modelGroup.remove(c),c.dispose(),e.needsRender=!0,e.modelSceneNeedsRender=!0}e.lastModels.length=0}e.lastWorks&&delete e.lastWorks,worksMap.delete(e),e.currentMode="Mapview",e.pano={workCode:"",panoIndex:0},e.camera.setFromPose({distance:0,fov:DEFAULT_CAMERA_FOV,longitude:0,latitude:0,offset:new THREE__namespace.Vector3(0,0,0)}),e.state={mode:e.currentMode,workCode:e.pano.workCode,panoIndex:e.pano.panoIndex,longitude:e.camera.pose.longitude,latitude:e.camera.pose.latitude,fov:e.camera.pose.fov,offset:e.camera.pose.offset.clone(),distance:e.camera.pose.distance},e.models.needsRender=!1,e.camera.needsRender=!1,e.needsRender=!1,e.modelSceneNeedsRender=!1,r()})},t.prototype.changeMode=function(e,r,o,s,u){var l=this;return r===void 0&&(r={}),s===void 0&&(s=!0),u===void 0&&(u=!1),new Promise(function(c,f){var d,p,v,g;if(!l.renderer)throw new Error("renderer is not initialized.");r=__assign({},r);var h=0;l.controller&&(typeof o=="number"?h=o:h=(d=o==null?void 0:o.duration)!==null&&d!==void 0?d:l.modeChangeDuration);var m="fly";l.controller&&typeof o=="object"&&o.effect&&(m=o.effect);var y=typeof r.panoIndex=="number"?{workCode:(g=(p=r.workCode)!==null&&p!==void 0?p:(v=l.work)===null||v===void 0?void 0:v.workCode)!==null&&g!==void 0?g:"",panoIndex:r.panoIndex}:l.pano;if(!t.Mode.hasOwnProperty(e)){var A=new Error('mode "'.concat(e,'" is not existed'));l.throwError(A),f(A);return}if((e===t.Mode.Panorama||e===t.Mode.VRPanorama||e===t.Mode.XRPanorama)&&!l.works.getResolvedObserver(y)){var A=new Error("PanoId ".concat(panoStringify(y)," not existed."));l.throwError(A),f(A);return}(e===t.Mode.Floorplan||e===t.Mode.Topview||e===t.Mode.Mapview||e===t.Mode.Model)&&(l.models.loaded||(h=0));var E=l.controller,b=l.currentMode,T=function(){if(l.controller&&l.controller.stopMomentumMovement(),l.controller&&u===!1&&b===e)e===t.Mode.Panorama||e===t.Mode.Model||e===t.Mode.VRPanorama||e===t.Mode.XRPanorama?panoEqual(l.pano,y)&&"moveToPano"in l.controller&&typeof l.controller.moveToPano=="function"?l.controller.moveToPano(y,__assign({duration:h},r),s):l.controller.updateCamera(r,h,s).catch(noop$1):(panoEqual(l.pano,y)||(l.pano=y),l.controller.updateCamera(r,h,s).catch(noop$1));else{var R=__assign(__assign({},r),y),S=__assign(__assign({initial:{state:R,currentState:l.getCurrentState(),duration:h,effect:m,userAction:s}},l.commonParams()),l.controllerInits[e]),M=Controllers[e].initAnimationEndState(S),B=createEvent("mode.change.request",{prevMode:l.currentMode,mode:e,state:M,userAction:s});if(l.emit("mode.change.request",B),!B.defaultPrevented){E&&E.destroy(),l.controller=l.applyController(e,S);var H=createEvent("mode.change",{prevMode:l.currentMode,mode:e,state:M,userAction:s});l.emit("mode.change",H)}}c()};if(e===t.Mode.VRPanorama)l.requestFullscreen(),requestDeviceOrientationPermission().then(function(){return T()}).catch(function(R){R instanceof Error&&(l.exitFullscreen(),l.throwError(R),f(R))});else if(e===t.Mode.XRPanorama){var _=AnimationFrameLoop.shared.getContext();_?_.end():requestXRSessionPermission().then(function(R){AnimationFrameLoop.shared.setContext(R),T()}).catch(function(R){R instanceof Error&&(l.throwError(R),f(R))})}else T()})},t.prototype.getPixels=function(e,r,o,s,u,l,c){if(!this.renderer)throw new Error("renderer is not initialized.");var f=this.renderer.getPixelRatio(),d=this.renderer.getRenderTarget(),p=this.renderer.getSize(new THREE__namespace.Vector2),v=0,g=0,h=1,m=1,y,A,E,b,T;typeof e=="number"?(v=e,typeof r=="number"&&(g=r),typeof o=="number"&&(h=o),typeof s=="number"&&(m=s),y=u,A=l,T=c):(v=e.x,g=e.y,h=e.width,m=e.height,y=e.pixelRatio,A=e.flipY,E=e.helperVisible,b=e.skipPanorama,T=e.buffer),v=Math.ceil(v),g=Math.ceil(g),h=Math.ceil(h),m=Math.ceil(m),y=Math.ceil(y!=null?y:f),A=A!=null?A:!1;var _=this.getPixelsRenderTarget;_.setSize(h*y,m*y),this.renderer.setRenderTarget(_),this.camera.pixelRatio=y,this.camera.resolution.set(h,m),this.camera.setViewOffset(p.width,p.height,v,p.height-g-m,h,m);for(var R=0,S=this.scene.children;R<S.length;R++){var M=S[R];M instanceof THREE__namespace.Object3D&&M.traverseVisible(function(J){J.setResolution&&J.setResolution(h*y/f,m*y/f)})}this.models.autoUpdate=!1;var B=!0,H=0;b&&(this.controller instanceof Controllers.Panorama||this.controller instanceof Controllers.VRPanorama||this.controller instanceof Controllers.XRPanorama)&&(B=this.controller.tiling.object.visible,this.controller.tiling.object.visible=!1,H=this.models.getMaterial().modelAlpha,this.models.setMaterial({modelAlpha:b===!0?1:H}));var w=this.helperVisible;E===!1&&(this.helperVisible=!1),this.models.update(this.renderer,this.camera,this.currentMode),this.controller?(this.controller.updateRenderSize(new THREE__namespace.Vector2(h*y,m*y)),this.controller.render(!0,this.postProcessingType)):(this.renderer.render(this.scene,this.camera),this.renderer.autoClearDepth=!1,this.renderer.autoClearColor=!1,this.renderer.render(this.modelScene,this.camera),this.renderer.autoClearDepth=!0,this.renderer.autoClearColor=!0),this.helperVisible=w,b&&(this.controller instanceof Controllers.Panorama||this.controller instanceof Controllers.VRPanorama||this.controller instanceof Controllers.XRPanorama)&&(this.controller.tiling.object.visible=B,this.models.setMaterial({modelAlpha:H})),this.models.update(this.renderer,this.camera,this.currentMode),this.models.autoUpdate=!0;var C=h*y,F=m*y,I=C*F,L=I*4,k;try{if(T){if(T.length!==L)throw new Error("buffer length is not equals pixels ".concat(L))}else T=new Uint8Array(L);if(this.renderer.readRenderTargetPixels(_,0,0,h*y,m*y,T),A)for(var N=I/2,D=0,U=0,z=0,q=0;U<N;U++)for(q=(F-Math.floor(U/C)-1)*C+U%C,z=0;z<4;z++)D=T[U*4+z],T[U*4+z]=T[q*4+z],T[q*4+z]=D}catch(J){k=J}if(this.renderer.setRenderTarget(d),this.controller&&this.controller.updateRenderSize){var G=new THREE__namespace.Vector2;this.renderer.getDrawingBufferSize(G),this.controller.updateRenderSize(G)}if(this.camera.clearViewOffset(),this.camera.pixelRatio=f,this.getSize(this.camera.resolution),this.camera.aspect=this.camera.resolution.width/this.camera.resolution.height,k)throw k;return T},t.prototype.getElement=function(){var e;return(e=this.renderer)===null||e===void 0?void 0:e.domElement},Object.defineProperty(t.prototype,"observers",{get:function(){return this.works.resolvedObservers},enumerable:!1,configurable:!0}),t.prototype.render=function(e,r){var o=this;if(r===void 0&&(r=!1),!this.renderer)return null;if(r){var s=this.renderer.getSize(sharedVector2);this.scene.traverseVisible(function(u){u.setResolution&&u.setResolution(s.x,s.y)})}return this.aroundScissor(function(){o.renderer&&(o.controller?(o.controller.render(o.onlyRenderIfNeeds?o.modelSceneNeedsRender:!0,o.postProcessingType),o.info={memory:__assign({},o.controller.renderer.info.memory),render:__assign({},o.controller.renderer.info.render)}):(o.renderer.render(o.scene,o.camera),o.info={memory:__assign({},o.renderer.info.memory),render:__assign({},o.renderer.info.render)}),o.poweredByRealsee&&o.currentMode!=="VRPanorama"&&o.currentMode!=="XRPanorama"&&o.renderer.getRenderTarget()!==o.getPixelsRenderTarget&&renderPoweredByRealsee(o.renderer)),e&&AnimationFrameLoop.shared.add(e,!0)}),null},t.prototype.updateTime=function(e,r){for(var o,s=this,u=[],l=2;l<arguments.length;l++)u[l-2]=arguments[l];if(!this.destroyed){if(this.works.update(),this.syncingState=this.syncState(e,r),this.controller&&(o=this.controller).updateTime.apply(o,__spreadArray([e,r],u,!1)),this.renderer&&(this.camera.pixelRatio=this.renderer.getPixelRatio(),this.getSize(this.camera.resolution),this.camera.aspect=this.camera.resolution.width/this.camera.resolution.height),this.camera.updateTime(e),this.renderer){ktx2.detectSupport(this.renderer);var c=this.models.loaded,f=this.models.refined;if(this.models.update(this.renderer,this.camera,this.currentMode),this.camera.autoNearFar){var d=this.models.bounding.getBoundingSphere(sharedSphere),p=d.radius*2;d.containsPoint(this.camera.position)||(p=this.camera.position.distanceTo(d.center)+d.radius),p=clamp$1(p,800,5e4),this.camera.far!==p&&(this.camera.far=p);var v=p/1e4;v=clamp$1(v,.03,.1),this.camera.near!==v&&(this.camera.near=v)}if(c===!1&&this.models.loaded===!0&&this.emit("models.load",createEvent("models.load",{models:this.models})),f===!1&&this.models.refined===!0&&this.emit("models.refined",createEvent("models.refined",{models:this.models})),this.models.loaded){for(var g=0,h=this.models;g<h.length;g++){var m=h[g];m.parent!==this.modelGroup&&(this.modelGroup.add(m),this.needsRender=!0,this.modelSceneNeedsRender=!0)}if(this.lastModels.length>0){for(var y=0,A=this.lastModels;y<A.length;y++){var m=A[y];this.modelGroup.remove(m),m.dispose(),this.needsRender=!0,this.modelSceneNeedsRender=!0}this.lastModels.length=0}this.lastWorks&&delete this.lastWorks}this.lastModels.setMaterial(this.models.getMaterial()),this.lastModels.materialVersion=this.models.materialVersion,this.lastModels.update(this.renderer,this.camera,this.currentMode)}this.syncingState=!1;var E=new THREE__namespace.Vector2(512,512),b=new THREE__namespace.Vector2(512,512);this.renderer&&(this.renderer.getSize(E),E.x*=this.scissor.width,E.y*=this.scissor.height,this.renderer.getDrawingBufferSize(b),b.x*=this.scissor.width,b.y*=this.scissor.height);{for(var T=new THREE__namespace.Box3,_=new THREE__namespace.Box3,R=new THREE__namespace.Vector3(4,4,4),S=0,M=this.works.resolvedObservers;S<M.length;S++){var B=M[S];_.setFromCenterAndSize(B.position,R),T.union(_)}if(T.union(this.models.bounding),this.lastWorks)for(var H=0,w=this.lastWorks.resolvedObservers;H<w.length;H++){var B=w[H];_.setFromCenterAndSize(B.position,R),T.union(_)}T.union(this.lastModels.bounding),T.getCenter(this.boundingMesh.position),T.getSize(this.boundingMesh.scale),this.boundingMesh.boundingBox.copy(T),this.renderer&&this.model&&this.boundingMesh.update(this.renderer,this.camera,this.model)}var C=createEvent("render.prepare",{needsRender:!0,info:null});if(this.emit("render.prepare",C),!C.defaultPrevented){var F=[];sharedProjScreenMatrix.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),sharedFrustum.setFromProjectionMatrix(sharedProjScreenMatrix);for(var I=0,L=this.scene.children;I<L.length;I++){var k=L[I];k!==this.modelGroup&&k!==this.boundingMesh&&k.traverseVisible(function(G){if(G.setResolution&&G.setResolution(E.x,E.y),G.setTime&&G.setTime(e),G.mixer instanceof THREE__namespace.AnimationMixer){var J=clockForMixer.get(G.mixer);J||(J=new THREE__namespace.Clock,clockForMixer.set(G.mixer,J)),G.mixer.update(J.getDelta())}(G instanceof THREE__namespace.Mesh||G instanceof THREE__namespace.Line||G instanceof THREE__namespace.Points)&&(G instanceof THREE__namespace.ImmediateRenderObject||!G.frustumCulled||sharedFrustum.intersectsObject(G))&&F.push(G)})}if(b.width*b.height>4096*2048?this.renderSwitch01=this.renderSwitch01^1:this.renderSwitch01=0,this.renderer&&this.paused===!1&&this.renderSwitch01===0){var N=void 0;if(this.onlyRenderIfNeeds!==!0)N=this.render();else{if(this.controller&&(this.controller.needsRender===!0&&(this.controller.needsRender=!1,this.needsRender=!0),this.controller.modelSceneNeedsRender===!0&&(this.controller.modelSceneNeedsRender=!1,this.modelSceneNeedsRender=!0)),this.camera.needsRender===!0&&(this.camera.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0),this.models.needsRender===!0&&(this.models.needsRender=!1,this.needsRender=!0,this.modelSceneNeedsRender=!0),this.needsRender!==!0)for(var D=0,U=F;D<U.length;D++){var z=U[D],q=function(G){G.needsRender===!0?(G.needsRender=!1,s.needsRender=!0):G.mixer&&G.mixer.stats.actions.inUse>0&&(s.needsRender=!0)};q(z),z.traverseAncestors(q)}(this.needsRender!==!1||this.modelSceneNeedsRender!==!1)&&(N=this.render())}this.needsRender=!1,this.modelSceneNeedsRender=!1,this.hasListener("render")&&this.emit("render",createEvent("render",{needsRender:N!==void 0,info:this.info}))}this.needsRender=!1,this.modelSceneNeedsRender=!1}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)}},t.prototype.pause=function(){this.paused=!0,this.renderer&&this.renderer instanceof InternalWebGLRenderer&&this.renderer.clear(!0,!0,!0)},t.prototype.play=function(){this.needsRender=!0,this.modelSceneNeedsRender=!0,this.paused=!1},t.prototype.moveToPano=function(e,r,o){r===void 0&&(r={}),o===void 0&&(o=!0);var s=this,u=s.controller,l=s.renderer;if(!u)return this.throwError(new Error("controller is not initialized.")),Promise.resolve();if(!l)return this.throwError(new Error("renderer is not initialized.")),Promise.resolve();var c=this.works.getResolvedObserver(e);if(!c)return this.throwError(new Error("pano ".concat(JSON.stringify(e)," not existed."))),Promise.resolve();var f={workCode:c.work.workCode,panoIndex:c.panoIndex};return"moveToPano"in u&&typeof u.moveToPano=="function"?u.moveToPano(f,r,o):c&&(this.pano=f,this.once("initAnimation.start",function(d){r.moveStartCallback&&r.moveStartCallback(d.state)}),this.once("initAnimation.end",function(d){r.moveEndCallback&&r.moveEndCallback(d.state)}),this.changeMode(t.Mode.Panorama,r,{effect:r.effect},o)),this.ready()},t.prototype.preloadPano=function(e,r){var o=this;r===void 0&&(r=noop$1);var s=this.works.getResolvedObserver(e);if(!s)return Promise.reject(new Error("Pano ".concat(JSON.stringify(e)," never found")));var u=["right","left","up","down","front","back"],l=now();return Promise.all(u.map(function(c){var f=__assign({key:"pano.".concat(s.panoId,".").concat(c)},pick(o.imageOptions,["size","format","quality","mappings"])),d=s.images[c],p=o.imageOptions.transform?o.imageOptions.transform(d,f):imageURL(d,f);return getFetcher(s.work).preload(p)})).then(function(){var c=now()-l;return r(c),c})},t.prototype.project2d=function(e,r){if(r===void 0&&(r=!1),!this.renderer)return null;if(this.models.length>0&&r){var o=this.camera.position,s=e.clone().sub(o),u=new THREE__namespace.Raycaster(o,s.clone().normalize());u.params.Points={threshold:.1};var l=this.models.intersectRaycaster(u)[0];if(l&&l.distance+.01<s.length())return null}var c=e.clone().project(this.camera);if(Math.abs(c.z)>1)return null;var f=this.renderer.getSize(new THREE__namespace.Vector2),d=f.x*this.scissor.width,p=f.y*this.scissor.height,v=f.x*this.scissor.left+(c.x+1)/2*d,g=f.y*(1-this.scissor.bottom-this.scissor.height)+(-c.y+1)/2*p;return new THREE__namespace.Vector2(v,g)},t.prototype.getRenderObjects=function(e){sharedProjScreenMatrix.multiplyMatrices(this.camera.projectionMatrix,this.camera.matrixWorldInverse),sharedFrustum.setFromProjectionMatrix(sharedProjScreenMatrix),e||(e=this.scene);var r=[];return e.traverseVisible(function(o){(o instanceof THREE__namespace.Mesh||o instanceof THREE__namespace.Line||o instanceof THREE__namespace.Points)&&(o instanceof THREE__namespace.ImmediateRenderObject||!o.frustumCulled||sharedFrustum.intersectsObject(o))&&r.push(o)}),r},t.prototype.getCurrentState=function(){return __assign(__assign({},this.getPose()),{mode:this.currentMode,workCode:this.pano.workCode,panoIndex:this.pano.panoIndex})},t.prototype.setState=function(e,r,o){var s,u,l,c,f,d,p,v,g,h;r===void 0&&(r=!1),o===void 0&&(o=!0),e=Object.assign({},e),e.offset&&!(e instanceof THREE__namespace.Vector3)&&(e.offset=new THREE__namespace.Vector3(e.offset.x,e.offset.y,e.offset.z));var m;if(typeof e.panoIndex=="number")if(e.workCode)m={workCode:e.workCode,panoIndex:e.panoIndex};else{var y=(u=(s=this.work)===null||s===void 0?void 0:s.workCode)!==null&&u!==void 0?u:"",A=this.state.workCode;this.works.filter(function(C){return C.workCode===A}).length>0&&(y=A),m={workCode:y,panoIndex:e.panoIndex}}var E=(l=e.mode)!==null&&l!==void 0?l:this.state.mode,b,T,_,R,S;if(this.controller&&this.controller.stopMomentumMovement(),this.state.mode!==E){if(E==="VRPanorama"){this.changeMode("VRPanorama",void 0,void 0,!0);return}var M={workCode:m==null?void 0:m.workCode,panoIndex:m==null?void 0:m.panoIndex};typeof e.longitude=="number"&&(M.longitude=e.longitude),typeof e.latitude=="number"&&(M.latitude=e.latitude),typeof e.fov=="number"&&(M.fov=e.fov),typeof e.distance=="number"&&(M.distance=e.distance),e.offset instanceof THREE__namespace.Vector3&&(M.offset=e.offset);var B=__assign(__assign({initial:{state:M,currentState:this.getCurrentState(),duration:this.modeChangeDuration,effect:"fly",userAction:!1}},this.commonParams()),this.controllerInits[E]),H=Controllers[E].initAnimationEndState(B);b=H.longitude,T=H.latitude,_=H.fov,R=H.offset,S=H.distance}else b=(c=e.longitude)!==null&&c!==void 0?c:this.state.longitude,T=(f=e.latitude)!==null&&f!==void 0?f:this.state.latitude,_=(d=e.fov)!==null&&d!==void 0?d:this.state.fov,R=(p=e.offset)!==null&&p!==void 0?p:this.state.offset,S=(v=e.distance)!==null&&v!==void 0?v:this.state.distance;var w={workCode:(m!=null?m:this.pano).workCode,panoIndex:(m!=null?m:this.pano).panoIndex,mode:E,longitude:b,latitude:T,fov:_,offset:R,distance:S};this.emit("state.set",createEvent("state.set",{userAction:o,state:w})),stateEqual(this.state,w)||(this.controller&&w.mode==="VRPanorama"&&w.mode!==this.state.mode?(assignState(this.state,w),this.changeMode("VRPanorama")):this.controller&&w.mode==="XRPanorama"&&w.mode!==this.state.mode?(assignState(this.state,w),this.changeMode("XRPanorama")):(assignState(this.state,w),this.controller&&o&&(this.controller.userAction=!1),r&&this.state.mode===w.mode&&(this.syncingState=this.syncState(now(),0,r),this.syncingState&&((g=this.controller)===null||g===void 0||g.updateTime(now(),0),this.syncingState=!1)),this.emit("state.change",createEvent("state.change",{userAction:o,state:this.state})),(h=this.analysis)===null||h===void 0||h.state(this.works,this.state)))},t.prototype.aroundScissor=function(e){if(this.renderer){if(this.state.mode==="XRPanorama"){e();return}var r=new THREE__namespace.Vector2,o=this.scissor.left!==0||this.scissor.bottom!==0||this.scissor.width!==1||this.scissor.height!==1;if(o){this.renderer.getSize(r);var s=Math.floor(r.x*this.scissor.left),u=Math.floor(r.y*this.scissor.bottom),l=Math.floor(r.x*this.scissor.width),c=Math.floor(r.y*this.scissor.height);this.renderer.setViewport(s,u,l,c),this.renderer.setScissor(s,u,l,c),this.renderer.setScissorTest(!0)}e(),o&&(this.renderer.setViewport(0,0,r.x,r.y),this.renderer.setScissor(0,0,r.x,r.y),this.renderer.setScissorTest(!1))}},t.prototype.syncState=function(e,r,o){o===void 0&&(o=!1);var s=this.stateSynced;if(this.stateSynced=!1,!this.controller)return!1;if(this.state.mode!==this.currentMode){var u={mode:this.state.mode,workCode:this.state.workCode,panoIndex:this.state.panoIndex,longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.changeMode(this.state.mode,u,this.modeChangeDuration,this.controller.userAction),!0}if(!this.controller.isReady())return!1;if(this.controller instanceof Controllers.Model){if(notSimilarVector3(this.camera.pose.offset,this.state.offset)){var l={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset};return this.controller.moveToPosition(this.state.offset,__assign(__assign({},l),{duration:o?0:void 0}),!1),!0}}else{var c={workCode:this.state.workCode,panoIndex:this.state.panoIndex};if(!panoEqual(c,this.pano)&&"moveToPano"in this.controller&&typeof this.controller.moveToPano=="function"){var l={longitude:this.state.longitude,latitude:this.state.latitude,fov:this.state.fov,offset:this.state.offset,distance:this.state.distance};return this.controller.moveToPano(c,l,!1),!0}}if(this.controller instanceof Controllers.Floorplan||this.controller instanceof Controllers.Topview||this.controller instanceof Controllers.Mapview){var f=1,d=.2,p=.2,v=Math.PI/45,g=o?this.state.fov:stepNumber(this.camera.pose.fov,this.state.fov,f),h=Math.abs(this.camera.pose.distance-this.state.distance),m=h>p*15?h/15:d,y=o?this.state.distance:stepNumber(this.camera.pose.distance,this.state.distance,m),A=this.camera.pose.offset.distanceTo(this.state.offset),E=A>p*15?A/15:p,b=o?new THREE__namespace.Vector3().copy(this.state.offset):stepVector(this.camera.pose.offset,this.state.offset,E),T=o?{longitude:this.state.longitude,latitude:this.state.latitude}:stepCoordinates({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},v),_=T.longitude,R=T.latitude;if(notSimilarValue(g,this.camera.pose.fov)||notSimilarVector3(b,this.camera.pose.offset)||notSimilarValue(y,this.camera.pose.distance)||notSimilarValue(_,this.camera.pose.longitude,Math.PI*2)||notSimilarValue(R,this.camera.pose.latitude)){var S={x:b.x,y:b.y,z:b.z},M={fov:g};return Object.assign(S,{distance:y}),Object.assign(M,{longitude:_,latitude:R}),this.controller.stopMomentumMovement(),this.controller.cameraMotion.set(M,0).catch(noop$1),this.controller.locationMotion.set(S,0).catch(noop$1),!0}}else{var B=1,H=Math.PI/45,g=o?this.state.fov:stepNumber(this.camera.pose.fov,this.state.fov,B),w=o?{longitude:this.state.longitude,latitude:this.state.latitude}:stepCoordinates({longitude:this.camera.pose.longitude,latitude:this.camera.pose.latitude},{longitude:this.state.longitude,latitude:this.state.latitude},H),_=w.longitude,R=w.latitude,y=this.state.distance,b=new THREE__namespace.Vector3().copy(this.state.offset);if(notSimilarValue(y,this.camera.pose.distance)&&(this.state.distance=this.camera.pose.distance),notSimilarVector3(b,this.camera.pose.offset)&&(this.state.offset=this.camera.pose.offset.clone()),notSimilarValue(_,this.camera.pose.longitude,Math.PI*2)||notSimilarValue(R,this.camera.pose.latitude)||notSimilarValue(g,this.camera.pose.fov))return this.controller.stopMomentumMovement(),this.controller.cameraMotion.set({longitude:_,latitude:R,fov:g},0).catch(noop$1),!0}if(this.stateSynced=!0,s===!1&&this.emit("state.synced",createEvent("state.synced",{userAction:!1,state:this.state})),this.readyCallbacks.length&&this.stateSynced){var C=this.currentMode,F=C===t.Mode.Floorplan||C===t.Mode.Topview||C===t.Mode.Mapview||C===t.Mode.Model;if(!F||this.models.loaded){var I=this.readyCallbacks.slice();this.readyCallbacks.length=0;for(var L=0,k=I;L<k.length;L++){var N=k[L];this.controller instanceof Controllers.Panorama&&N.tile===!0&&!this.controller.isTileReady()?this.readyCallbacks.push(N):N()}}}return!1},t.prototype.ready=function(e){var r=this;return e===void 0&&(e={}),new Promise(function(o){var s;r.readyCallbacks.push(Object.assign(o,{tile:(s=e.tile)!==null&&s!==void 0?s:!1}))})},t.prototype.requestFullscreen=function(){var e;if(isMobile){var r=(e=this.getElement())===null||e===void 0?void 0:e.parentNode;r&&"requestFullscreen"in r&&typeof document!="undefined"&&document.fullscreenElement===null&&r.requestFullscreen()}},t.prototype.exitFullscreen=function(){typeof document!="undefined"&&document.fullscreenElement&&"exitFullscreen"in document&&document.exitFullscreen()},t.prototype.throwError=function(e){this.hasListener("error")?this.emit("error",e):console.error(e)},t.prototype.loadModel=function(e,r){for(var o=this,s=[],u=function(y){var A=l.models.filter(function(b){var T;return((T=b.work)===null||T===void 0?void 0:T.workCode)===y.workCode})[0];if(A)A.work=y,s.push(A);else{var E=new Model({onError:function(b){o.emit("model.error",createEvent("model.error",{work:y,model:E,error:b})),o.throwError(b)},onShownFloorChange:function(b){o.emit("model.changeShownFloor",createEvent("model.changeShownFloor",{work:y,model:E,error:null}))},onLoad:function(){o.emit("model.load",createEvent("model.load",{work:y,model:E,error:null}))}});s.push(E),l.emit("model.request",createEvent("model.request",{work:y,model:E,error:null})),E.load(y,{textureOptions:l.textureOptions,"3d-tiles":r["3d-tiles"]})}},l=this,c=0,f=e;c<f.length;c++){var d=f[c];u(d)}if(this.models.length>0){for(var p=0,v=this.models;p<v.length;p++){var g=v[p];s.indexOf(g)===-1&&this.lastModels.push(g)}this.models.length=0}for(var h=0,m=s;h<m.length;h++){var g=m[h];this.models.push(g)}return this.renderer&&(this.models.loaded=!1),new Promise(function(y){o.on("models.load",function(){o.controller&&o.controller.updateModel(o.models),y()})})},t.prototype.commonParams=function(){return{ident:this.ident,scene:this.scene,xrCustomObjectsScene:this.xrCustomObjectsScene,helper:this.helperGroup,boundingMesh:this.boundingMesh,camera:this.camera,renderer:this.renderer,scissor:this.scissor,element:this.getElement(),models:this.models,works:this.works,imageOptions:this.imageOptions,enableWheel:this.enableWheel,enableIOSEDR:this._enableIOSEDR,enableEDL:this.enableEDL,enableHQ:this.enableHQ,extraElements:this.extraElements,videoTexture:this.videoTexture,modelScene:this.modelScene,modelRenderTarget:this.modelRenderTarget}},t.prototype.applyController=function(e,r){var o=this;if(!this.renderer)throw new Error("renderer is not initialized.");e!==t.Mode.Mapview&&(this.enableEDL=!1,this.enableHQ=!1);var s=Controllers[e];this.currentMode=e;for(var u=new s(r),l=function(g){u.on(g,function(){for(var h=[],m=0;m<arguments.length;m++)h[m]=arguments[m];var y=o.emit.apply(o,__spreadArray([g],h,!1));if(y)return!1})},c=0,f=PROXY_CONTROLLER_EVENT_NAMES;c<f.length;c++){var d=f[c];l(d)}{var p=Controllers[e].initAnimationEndState(r),v=r.initial.userAction;stateEqual(this.state,p)||(assignState(this.state,p),this.emit("state.change",createEvent("state.change",{userAction:v,state:this.state}))),this.emit("currentState.change",createEvent("currentState.change",{userAction:v,state:this.getCurrentState()}))}return u.on("camera.update",function(g){var h;if(o.controller){var m=o.controller.getTargetState();g.userAction&&o.syncingState===!1&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:g.userAction,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}o.emit("currentState.change",createEvent("currentState.change",{userAction:g.userAction,state:o.getCurrentState()}))}),u.on("initAnimation.start",function(g){var h,m=g.state,y=g.userAction;y&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:y,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}),u.on("initAnimation.end",function(g){var h,m=g.state,y=g.userAction;y&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:y,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}),u.on("pano.moveTo",function(g){var h,m=g.state,y=g.userAction;o.pano={workCode:m.workCode,panoIndex:m.panoIndex},y&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:y,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}),u.on("pano.arrived",function(g){var h,m=g.state,y=g.userAction;y&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:y,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}),u.on("pano.cancel",function(g){var h,m=g.state,y=g.userAction;y&&o.state.mode===m.mode&&!stateEqual(o.state,m)&&(assignState(o.state,m),o.emit("state.change",createEvent("state.change",{userAction:y,state:o.state})),(h=o.analysis)===null||h===void 0||h.state(o.works,o.state))}),u.on("pano.moveTo",function(g){var h=g.userAction;o.emit("currentState.change",createEvent("currentState.change",{userAction:h,state:o.getCurrentState()}))}),u.on("pano.request",function(g){o.emit("pano.request",g),g.defaultPrevented||o.moveToPano(g.state,g.options,g.userAction)}),u.on("vr.requestExit",function(){o.currentMode===t.Mode.VRPanorama&&(o.exitFullscreen(),o.changeMode(t.Mode.Panorama))}),u.on("error",function(g){return o.throwError(g)}),u},t.prototype.removeEventListeners=function(){},t.prototype.getWorkResources=function(e){var r=this,o,s=this.models.find(function(f){return f.work===e}),u=((o=s==null?void 0:s.viewLayers)!==null&&o!==void 0?o:[]).map(function(f){return f.scene});function l(f){var d=/([0-9a-z\.\_\-]+)([\?\#].*)?$/i.exec(f);if(d){var p=String(d[1]).trim().split(".").slice(1).reverse()[0];if(p)return p}return""}function c(f,d){d===void 0&&(d=0);var p=[];if(f.content&&f.content.uri){var v=l(f.content.uri);if(v==="json"){var g=imageURL(f.content.uri,{key:"model.".concat(d)});p.push({url:g,type:"tileset"})}else if(v==="at3d"&&f.extras[v]){var g=f.content.uri;p.push({url:g,type:"model"});for(var h=f.extras[v],m=h.textureArray,y=h.textureOptions,A=0,E=m;A<E.length;A++){var b=E[A],T=__assign({key:"texture.pbm"},pick(y,["format","quality","size","sharpen","mappings"])),_=applyImageURLOptions(b,y==null?void 0:y.transform,T);p.push({url:_,type:"texture"})}}else{var g=imageURL(f.content.uri,{key:"model.".concat(d)});p.push({url:g,type:"model"})}}if(f.children)for(var R=0;R<f.children.length;R++){var S=f.children[R];p.push.apply(p,c(S,R))}return p}return Promise.all(u.map(function(f){return f.loadAllTilesets()})).then(function(){for(var f=[],d=["right","left","up","down","front","back"],p=0,v=e.observers;p<v.length;p++){for(var g=v[p],h=0,m=d;h<m.length;h++){var y=m[h],A=__assign({key:"pano.".concat(panoStringify(g.pano),".").concat(y)},pick(r.imageOptions,["size","format","quality","mappings"])),E=g.images[y],b=applyImageURLOptions(E,r.imageOptions.transform,A);f.push({url:b,type:"pano"})}if(g.images.tiles)for(var T=0,_=g.images.tiles;T<_.length;T++)for(var R=_[T],S=0,M=d;S<M.length;S++)for(var y=M[S],B=R.size,H=Math.pow(2,R.level),w=1/H,C=0;C<H;C++)for(var F=0;F<H;F++){var I="".concat(g.panoId,".").concat(y,".").concat(R.level,".").concat(C,".").concat(F),A=__assign(__assign({key:"pano_tile.".concat(I)},pick(r.imageOptions,["format","size","quality","sharpen","mappings"])),{size:R.scale>=1?void 0:B*w*R.scale,cut:[B*w*F,B*w*C,B*w,B*w]}),b=applyImageURLOptions(R[y],r.imageOptions.transform,A);f.push({url:b,type:"pano_tile"})}}for(var L=0,k=u;L<k.length;L++){var N=k[L];N.tileset.url&&f.push({url:N.tileset.url,type:"model"}),f.push.apply(f,c(N.tileset.root))}return f})},Object.defineProperty(t.prototype,"internalLightsEnabled",{get:function(){var e=this.scene.children.find(function(r){return r.name==="internalLights"});return e?e.visible:!1},set:function(e){var r=this.scene.children.find(function(o){return o.name==="internalLights"});r&&(r.visible=e)},enumerable:!1,configurable:!0}),t.Mode={Panorama:"Panorama",Model:"Model",Floorplan:"Floorplan",Topview:"Topview",Mapview:"Mapview",VRPanorama:"VRPanorama",XRPanorama:"XRPanorama"},t.Line=null,t}(Subscribe),__FIVE_DEBUG__={instances:{},constructor:Five};typeof window!="undefined"&&Object.assign(window,{__FIVE_DEBUG__});var XRButton=function(){function n(){}return n.createButton=function(t){var e=document.createElement("button");function r(){e.style.display="",e.style.cursor="pointer",e.style.left="calc(50% - 50px)",e.style.width="100px",e.textContent="ENTER VR",e.onmouseenter=function(){e.style.opacity="1.0"},e.onmouseleave=function(){e.style.opacity="0.5"},e.onclick=function(){t&&t()}}function o(){e.style.display="",e.style.cursor="auto",e.style.left="calc(50% - 75px)",e.style.width="150px",e.onmouseenter=null,e.onmouseleave=null,e.onclick=null}function s(){o(),e.textContent="VR NOT SUPPORTED"}function u(c){c.style.position="absolute",c.style.bottom="20px",c.style.padding="12px 6px",c.style.border="1px solid #fff",c.style.borderRadius="4px",c.style.background="rgba(0,0,0,0.1)",c.style.color="#fff",c.style.font="normal 13px sans-serif",c.style.textAlign="center",c.style.opacity="0.5",c.style.outline="none",c.style.zIndex="999"}if("xr"in navigator)return e.id="VRButton",e.style.display="none",u(e),navigator.xr.isSessionSupported("immersive-vr").then(function(c){c?r():s()}),e;var l=document.createElement("a");return window.isSecureContext===!1?(l.href=document.location.href.replace(/^http:/,"https:"),l.innerHTML="WEBXR NEEDS HTTPS"):(l.href="https://immersiveweb.dev/",l.innerHTML="WEBXR NOT AVAILABLE"),l.style.left="calc(50% - 90px)",l.style.width="180px",l.style.textDecoration="none",u(l),l},n}();exports.AnimationFrameLoop=AnimationFrameLoop,exports.Camera=Camera,exports.CustomShader=CustomShader,exports.Fetcher=Fetcher,exports.Five=Five,exports.InternalWebGLRenderer=InternalWebGLRenderer,exports.IntersectMesh=IntersectMesh,exports.Model=Model,exports.ModelViewLayer=ModelViewLayer,exports.NetworkSubscribe=NetworkSubscribe,exports.PBMContainer=PBMContainer,exports.PBMGroup=PBMGroup,exports.PBMMesh=PBMMesh,exports.PBMMeshMaterial=PBMMeshMaterial,exports.PBMPointCloud=PBMPointCloud,exports.PBMPointCloudMaterial=PBMPointCloudMaterial,exports.PROXY_CONTROLLER_EVENT_NAMES=PROXY_CONTROLLER_EVENT_NAMES,exports.PanoCircleMesh=PanoCircleMesh,exports.PanoCircleMeshCustom=PanoCircleMeshCustom,exports.PanoCircleMeshSolid=PanoCircleMeshSolid,exports.Scene=Scene,exports.Subscribe=Subscribe,exports.TextureLoader=TextureLoader,exports.Tile=Tile,exports.Tile3DModel=Tile3DModel,exports.TileCache=TileCache,exports.TileCubeTextureTarget=TileCubeTextureTarget,exports.TileNode=TileNode,exports.TileRequestScheduler=TileRequestScheduler,exports.Tileset=Tileset,exports.Trajectory=Trajectory,exports.TrajectoryNode=TrajectoryNode,exports.Work=Work,exports.XRButton=XRButton,exports.defaultImageURLTransform=imageURL,exports.defaultPbmParameters=defaultPbmParameters,exports.getViewportScale=getViewportScale,exports.imageSupport=imageSupport,exports.isPanoId=isPanoId,exports.loadAt3d=loadAt3d,exports.loadB3dm=loadB3dm,exports.loadDome=loadDome,exports.loadDomez=loadDomez,exports.loadFbx=loadFbx,exports.loadGltf=loadGltf,exports.loadPbm=loadPbm,exports.loadPly=loadPly,exports.loadPnts=loadPnts,exports.loadX3p=loadX3p,exports.panoEqual=panoEqual,exports.panoParse=panoParse,exports.panoStringify=panoStringify,exports.parseWork=parseWork,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});
|