viral-viewer-2 6.9.6 → 6.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{batched-mesh-simplifier-DitwxCT2.mjs → batched-mesh-simplifier-sT6tPtki.mjs} +1 -1
- package/dist/components/animation/viral-animation.d.ts +0 -32
- package/dist/components/custom-objects/viral-merged-model.d.ts +0 -33
- package/dist/components/event-handler/viral-centralized-event-handler.d.ts +5 -2
- package/dist/components/post-processing/post-processing-renderer.d.ts +11 -0
- package/dist/components/post-processing/screen-space-edges-pass.d.ts +18 -0
- package/dist/components/renderer/viral-renderer.d.ts +0 -20
- package/dist/components/scene/viral-scene.d.ts +1 -41
- package/dist/components/visibility-manager/viral-visibility-manager.d.ts +9 -0
- package/dist/components/worker/load-element-batch.worker.d.ts +0 -31
- package/dist/gui/instanced-debug-panel/viral-instanced-debug-panel.d.ts +28 -0
- package/dist/gui/render-debug-panel/viral-render-debug-panel.d.ts +83 -0
- package/dist/{index-BNX3NNA-.mjs → index-CM6jG0U0.mjs} +7197 -6539
- package/dist/index.d.ts +3 -0
- package/dist/index.mjs +27 -24
- package/dist/viral-viewer-api.d.ts +4 -0
- package/package.json +1 -1
- package/dist/components/custom-objects/viral-spatial-merged-mesh.d.ts +0 -7
- package/dist/components/custom-objects/viral-spatial-mesh-manager.d.ts +0 -70
- package/dist/components/renderer/viral-optimized-renderer.d.ts +0 -96
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as S, a as V, V as Z } from "./index-
|
|
1
|
+
import { B as S, a as V, V as Z } from "./index-CM6jG0U0.mjs";
|
|
2
2
|
(function() {
|
|
3
3
|
var s = "b9H79Tebbbe9ok9Geueu9Geub9Gbb9Gruuuuuuueu9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiE8AdilveoveovrrwrrrDDoDrbqqbelve9Weiiviebeoweuec;G:Qdkr:PlCo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9mW4W2be8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbd8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbiE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UblY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbv8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbo8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UbrE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbwa9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbDL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbqK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbkL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbxY9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVJ9V29VVbmE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbza9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9WbHa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbOK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbAl79IV9RbXDwebcekdKYq;i28Adbk:Bhdhud9:8Jjjjjbc;qw9Rgr8KjjjjbcbhwdnaeTmbabcbyd;C:kjjbaoaocb9iEgDc:GeV86bbarc;adfcbcjdz:xjjjb8AdnaiTmbarc;adfadalz:wjjjb8Akarc;abfalfcbcbcjdal9RalcFe0Ez:xjjjb8Aarc;abfarc;adfalz:wjjjb8AarcUf9cb83ibarc8Wf9cb83ibarcyf9cb83ibarcaf9cb83ibarcKf9cb83ibarczf9cb83ibar9cb83iwar9cb83ibcj;abal9Uc;WFbGcjdalca0Ehqdnaicd6mbavcd9imbaDTmbadcefhkaqci2gxal2hmarc;alfclfhParc;qlfceVhsarc;qofclVhzarc;qofcKfhHarc;qofczfhOcbhAincdhCcbhodnavci6mbaH9cb83ibaO9cb83ibar9cb83i;yoar9cb83i;qoadaAfgoybbhXcbhQincbhwcbhLdninaoalfhKaoybbgYaX7aLVhLawcP0meaKhoaYhXawcefgwaQfai6mbkkcbhXarc;qofhwincwh8AcwhEdnaLaX93gocFeGg3cs0mbclhEa3ci0mba3cb9hcethEkdnaocw4cFeGg3cs0mbclh8Aa3ci0mba3cb9hceth8Aka8AaEfh3awydbh5cwh8AcwhEdnaocz4cFeGg8Ecs0mbclhEa8Eci0mba8Ecb9hcethEka3a5fh3dnaocFFFFb0mbclh8AaocFFF8F0mbaocFFFr0ceth8Akawa3aEfa8AfBdbawclfhwaXcefgXcw9hmbkaKhoaYhXaQczfgQai6mbkcbhocehwazhLinawaoaLydbarc;qofaocdtfydb6EhoaLclfhLawcefgwcw9hmbkcihCkcbh3arc;qlfcbcjdz:xjjjb8Aarc;alfcwfcbBdbar9cb83i;alaoclth8Fadhaaqhhakh5inarc;qlfadcba3cufgoaoa30Eal2falz:wjjjb8Aaiahaiah6Ehgdnaqaia39Ra3aqfai6EgYcsfc9WGgoaY9nmbarc;qofaYfcbaoaY9Rz:xjjjb8Akada3al2fh8Jcbh8Kina8Ka8FVcl4hQarc;alfa8Kcdtfh8LaAh8Mcbh8Nina8NaAfhwdndndndndndna8KPldebidkasa8Mc98GgLfhoa5aLfh8Aarc;qlfawc98GgLfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkaYTmla8Ncith8Ea8JaLfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aQ93a8E486bba8Aalfh8AaEalfhEaLhXaKcefgKaY9hmbxlkkaYTmia8Mc9:Ghoa8NcitcwGhEarc;qlfawceVfRbbcwtarc;qlfawc9:GfRbbVhLarc;qofhwaghXinawa5aofRbbcwtaaaofRbbVg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbaoalfhoawcefhwa8AhLa3aXcufgX9hmbxikkaYTmda8Jawfhoarc;qlfawfRbbhLarc;qofhwaghXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLa3aXcufgX9hmbxdkkaYTmeka8LydbhEcbhKarc;qofhoincdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egwa8Aawa8A6Egwczawcz6EaEfhEaoczfhoaKczfgKaY6mbka8LaEBdbka8Mcefh8Ma8Ncefg8Ncl9hmbka8Kcefg8KaC9hmbkaaamfhaahaxfhha5amfh5a3axfg3ai6mbkcbhocehwaPhLinawaoaLydbarc;alfaocdtfydb6EhoaLclfhLawcefgXhwaCaX9hmbkaraAcd4fa8FcdVaoaocdSE86bbaAclfgAal6mbkkabaefh8Kabcefhoalcd4gecbaDEhkadcefhOarc;abfceVhHcbhmdndninaiam9nmearc;qofcbcjdz:xjjjb8Aa8Kao9Rak6mdadamal2gwfhxcbh8JaOawfhzaocbakz:xjjjbghakfh5aqaiam9Ramaqfai6Egscsfgocl4cifcd4hCaoc9WGg8LThPindndndndndndndndndndnaDTmbara8Jcd4fRbbgLciGPlbedlbkasTmdaxa8Jfhoarc;abfa8JfRbbhLarc;qofhwashXinawaoRbbg8AaL9RgLcetaLcKtcK91cr4786bbawcefhwaoalfhoa8AhLaXcufgXmbxikkasTmia8JcitcwGhEarc;abfa8JceVfRbbcwtarc;abfa8Jc9:GgofRbbVhLaxaofhoarc;qofhwashXinawao8Vbbg8AaL9RgLcetaLcztcz91cs47cFFiGaE486bbawcefhwaoalfhoa8AhLaXcufgXmbxdkkaHa8Jc98GgEfhoazaEfh8Aarc;abfaEfRbbhXcwhwinaoRbbawtaXVhXaocefhoawcwfgwca9hmbkasTmbaLcl4hYa8JcitcKGh3axaEfhEcbhKinaERbbhLcwhoa8AhwinawRbbaotaLVhLawcefhwaocwfgoca9hmbkarc;qofaKfaLaX7aY93a3486bba8Aalfh8AaEalfhEaLhXaKcefgKas9hmbkkaDmbcbhoxlka8LTmbcbhodninarc;qofaofgwcwf8Pibaw8Pib:e9qTmeaoczfgoa8L9pmdxbkkdnavmbcehoxikcbhEaChKaChYinarc;qofaEfgocwf8Pibhyao8Pibh8PcdhLcbhwinaLaoawfRbbcb9hfhLawcefgwcz9hmbkclhXcbhwinaXaoawfRbbcd0fhXawcefgwcz9hmbkcwh8Acbhwina8AaoawfRbbcP0fh8Aawcefgwcz9hmbkaLaXaLaX6Egoa8Aaoa8A6Egoczaocz6EaYfhYaocucbaya8P:e9cb9sEgwaoaw6EaKfhKaEczfgEa8L9pmdxbkkaha8Jcd4fgoaoRbbcda8JcetcoGtV86bbxikdnaKas6mbaYas6mbaha8Jcd4fgoaoRbbcia8JcetcoGtV86bba8Ka59Ras6mra5arc;qofasz:wjjjbasfh5xikaKaY9phokaha8Jcd4fgwawRbbaoa8JcetcoGtV86bbka8Ka59RaC6mla5cbaCz:xjjjbgAaCfhYdndna8LmbaPhoxekdna8KaY9RcK9pmbaPhoxekaocdtc:q1jjbfcj1jjbaDEg5ydxggcetc;:FFFeGh8Fcuh3cuagtcu7cFeGhacbh8Marc;qofhLinarc;qofa8MfhQczhEdndndnagPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhExekcbhoa8FhEinaEaaaLaofRbb9nfhEaocefgocz9hmbkkcih8Ecbh8Ainczhwdndndna5a8AcdtfydbgKPDbeeeeeeedekcucbaQcwf8PibaQ8Pib:e9cb9sEhwxekaKcetc;:FFFeGhwcuaKtcu7cFeGhXcbhoinawaXaLaofRbb9nfhwaocefgocz9hmbkkdndnawaE6mbaKa39hmeawaE9hmea5a8EcdtfydbcwSmeka8Ah8EawhEka8Acefg8Aci9hmbkaAa8Mco4fgoaoRbba8Ea8Mci4coGtV86bbdndndna5a8Ecdtfydbg3PDdbbbbbbbebkdncwa39Tg8ETmbcua3tcu7hwdndna3ceSmbcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXa3tVhXaocefhoa8Acufg8AmbkaYaX86bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbxdkkcbh8NaLhQinaQhoa8Eh8AcbhXinaoRbbgEawcFeGgKaEaK6EaXcetVhXaocefhoa8Acufg8AmbkaYaX:T9cFe:d9c:c:qj:bw9:9c:q;c1:I1e:d9c:b:c:e1z9:9ca188bbaQa8EfhQaYcefhYa8Na8Efg8Ncz6mbkkcbhoinaYaLaofRbbgX86bbaYaXawcFeG9pfhYaocefgocz9hmbxikkdna3ceSmbinaYcb86bbaYcefhYxbkkinaYcb86bbaYcefhYxbkkaYaQ8Pbb83bbaYcwfaQcwf8Pbb83bbaYczfhYka8Mczfg8Ma8L9pgomeaLczfhLa8KaY9RcK9pmbkkaoTmlaYh5aYTmlka8Jcefg8Jal9hmbkarc;abfaxascufal2falz:wjjjb8Aasamfhma5hoa5mbkcbhwxdkdna8Kao9RakalfgwcKcaaDEgLawaL0EgX9pmbcbhwxdkdnawaL9pmbaocbaXaw9Rgwz:xjjjbawfhokaoarc;adfalz:wjjjbalfhodnaDTmbaoaraez:wjjjbaefhokaoab9Rhwxekcbhwkarc;qwf8Kjjjjbawk5babaeadaialcdcbyd;C:kjjbz:bjjjbk9reduaecd4gdaefgicaaica0Eabcj;abae9Uc;WFbGcjdaeca0Egifcufai9Uae2aiadfaicl4cifcd4f2fcefkmbcbabBd;C:kjjbk:Ese5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd;m:kjjbgrc;GeV86bbalc;abfcFecjez:xjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc;i1jjbfydbcdtfydbh3aLaoc;e1jjbfydbcdtfydbh8AaLaoc;a1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc;a1jjbfydbcdtfydbgKTaLavc;e1jjbfydbcdtfydbg8AceSGaLavc;i1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavc:W1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkdnaeaP9nmbcbhvxekcbhvinaeavfavc:W1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd;m:kjjbk:Adewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb;m:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkdnaoar9nmbcbskaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Zhvdndncuaicuftcu7:ZgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:ZgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b0Ec:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A0Ec:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk:Ylvdud99due99iudnaeTmbceaicufgvthocuaitcu7:Zhrcuavtcu7:Zhwcbhvadcl9hhDcbhqindndnalcwfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikdndnalIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9TgxaifhidndnalclfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEarNJbbbZMgk:lJbbb9p9DTmbak:Ohdxekcjjjj94hdkadai9Rcd9ThddndnalcxfIdbgkJbbbbakJbbbb9GEgkJbbjZakJbbjZ9FEawNJbbbZMgk:lJbbb9p9DTmbak:Ohmxekcjjjj94hmkadaifhiaoamVhmdndnaDmbabavfgPai86bbaPcifam86bbaPcdfad86bbaPcefax86bbxekabaqfgPai87ebaPcofam87ebaPclfad87ebaPcdfax87ebkalczfhlavclfhvaqcwfhqaecufgembkkk;YqdXui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;Kbz:xjjjb8AcbhodnadTmbcbhoaiTmbdndnabaeSmbaehrxekavcuadcdtgwadcFFFFi0Ecbyd;q:kjjbHjjjjbbgrBd:SeavceBd:mdaraeawz:wjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaradaiavc:Sefz:pjjjbavyd:GehDadci9Ugqcbyd;q:kjjbHjjjjbbheavc:Sefavyd:mdgkcdtfaeBdbavakcefgwBd:mdaecbaqz:xjjjbhxavc:SefawcdtfcuaicdtaicFFFFi0Ecbyd;q:kjjbHjjjjbbgmBdbavakcdfgPBd:mdalc;ebfhsaDheamhwinawalIdbasaeydbgzcwazcw6EcdtfIdbMUdbaeclfheawclfhwaicufgimbkavc:SefaPcdtfcuaqcdtadcFFFF970Ecbyd;q:kjjbHjjjjbbgPBdbdnadci6mbarheaPhwaqhiinawamaeydbcdtfIdbamaeclfydbcdtfIdbMamaecwfydbcdtfIdbMUdbaecxfheawclfhwaicufgimbkkakcifhoalc;ebfhHavc;qbfhOavheavyd:KehAavyd:OehCcbhzcbhwcbhXcehQinaehLcihkarawci2gKcdtfgeydbhsaeclfydbhdabaXcx2fgicwfaecwfydbgYBdbaiclfadBdbaiasBdbaxawfce86bbaOaYBdwaOadBdlaOasBdbaPawcdtfcbBdbdnazTmbcihkaLhiinaOakcdtfaiydbgeBdbakaeaY9haeas9haead9hGGfhkaiclfhiazcufgzmbkkaXcefhXcbhzinaCaAarazaKfcdtfydbcdtgifydbcdtfgYheaDaifgdydbgshidnasTmbdninaeydbawSmeaeclfheaicufgiTmdxbkkaeaYascdtfc98fydbBdbadadydbcufBdbkazcefgzci9hmbkdndnakTmbcuhwJbbbbh8Acbhdavyd:KehYavyd:OehKindndnaDaOadcdtfydbcdtgzfydbgembadcefhdxekadcs0hiamazfgsIdbhEasalcbadcefgdaiEcdtfIdbaHaecwaecw6EcdtfIdbMg3Udba3aE:th3aecdthiaKaYazfydbcdtfheinaPaeydbgzcdtfgsa3asIdbMgEUdbaEa8Aa8AaE9DgsEh8AazawasEhwaeclfheaic98fgimbkkadak9hmbkawcu9hmekaQaq9pmdindnaxaQfRbbmbaQhwxdkaqaQcefgQ9hmbxikkakczakcz6EhzaOheaLhOawcu9hmbkkaocdtavc:Seffc98fhedninaoTmeaeydbcbyd;u:kjjbH:bjjjbbaec98fheaocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd;q:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd;q:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavz:xjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic;K1jjbz:ojjjbkQbabaeadaic;m:jjjbz:ojjjbk9DeeuabcFeaicdtz:xjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk:Vvioud9:du8Jjjjjbc;Wa9Rgl8Kjjjjbcbhvalcxfcbc;Kbz:xjjjb8AalcuadcitgoadcFFFFe0Ecbyd;q:kjjbHjjjjbbgrBdxalceBd2araeadaicezNjjjbalcuaoadcjjjjoGEcbyd;q:kjjbHjjjjbbgwBdzadcdthednadTmbabhiinaiavBdbaiclfhiadavcefgv9hmbkkawaefhDalabBdwalawBdl9cbhqindnadTmbaq9cq9:hkarhvaDhiadheinaiav8Pibak1:NcFrG87ebavcwfhvaicdfhiaecufgembkkalclfaq:NceGcdtfydbhxalclfaq9ce98gq:NceGcdtfydbhmalc;Wbfcbcjaz:xjjjb8AaDhvadhidnadTmbinalc;Wbfav8VebcdtfgeaeydbcefBdbavcdfhvaicufgimbkkcbhvcbhiinalc;WbfavfgeydbhoaeaiBdbaoaifhiavclfgvcja9hmbkadhvdndnadTmbinalc;WbfaDamydbgicetf8VebcdtfgeaeydbgecefBdbaxaecdtfaiBdbamclfhmavcufgvmbkaq9cv9smdcbhvinabawydbcdtfavBdbawclfhwadavcefgv9hmbxdkkaq9cv9smekkclhvdninavc98Smealcxfavfydbcbyd;u:kjjbH:bjjjbbavc98fhvxbkkalc;Waf8Kjjjjbk:Jwliuo99iud9:cbhv8Jjjjjbca9Rgoczfcwfcbyd:8:kjjbBdbaocb8Pd:0:kjjb83izaocwfcbyd;i:kjjbBdbaocb8Pd;a:kjjb83ibaicd4hrdndnadmbJFFuFhwJFFuuhDJFFuuhqJFFuFhkJFFuuhxJFFuFhmxekarcdthPaehsincbhiinaoczfaifgzasaifIdbgwazIdbgDaDaw9EEUdbaoaifgzawazIdbgDaDaw9DEUdbaiclfgicx9hmbkasaPfhsavcefgvad9hmbkaoIdKhDaoIdwhwaoIdChqaoIdlhkaoIdzhxaoIdbhmkdnadTmbJbbbbJbFu9hJbbbbamax:tgmamJbbbb9DEgmakaq:tgkakam9DEgkawaD:tgwawak9DEgw:vawJbbbb9BEhwdnalmbarcdthoindndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:S9cC:ghHdndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikaHai:S:ehHdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaHai:T9cy:g:e83ibaeaofheabcwfhbadcufgdmbxdkkarcdthoindndnaeIdbax:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cv9:9c;j:KM;j:KM;j:Kd:dhOdndnaeclfIdbaq:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cq9:9cM;j:KM;j:KM;jl:daO:ehOdndnaecwfIdbaD:tawNJbbbZMgk:lJbbb9p9DTmbak:Ohixekcjjjj94hikabaOai:SgH9ca:gaH9cz:g9cjjj;4s:d:eaH9cFe:d:e9cF:bj;4:pj;ar:d9c:bd9:9c:p;G:d;4j:E;ar:d9cH9:9c;d;H:W:y:m:g;d;Hb:d9cC9:9c:KM;j:KM;j:KMD:d:e83ibaeaofheabcwfhbadcufgdmbkkk9teiucbcbyd;y:kjjbgeabcifc98GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;teeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk:3eedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdxaialBdwaialBdlaialBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;y:kjjbgeabcrfc94GfgbBd;y:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;y:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;y:kjjbfgdBd;y:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk;Qddbcjwk;mdbbbbdbbblbbbwbbbbbbbebbbdbbblbbbwbbbbbbbbbbbbbbbb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:FFuuFFuuFFuuFFuFFFuFFFuFbc;mqkzebbbebbbdbbb9G:vbb", D = new Uint8Array([
|
|
4
4
|
32,
|
|
@@ -13,36 +13,4 @@ export declare class ViralAnimation {
|
|
|
13
13
|
rainAnimation(): void;
|
|
14
14
|
private isRainEnabled;
|
|
15
15
|
toggleRain(value: boolean): void;
|
|
16
|
-
/**
|
|
17
|
-
* Update spatial visibility based on current camera position
|
|
18
|
-
*/
|
|
19
|
-
private updateSpatialVisibility;
|
|
20
|
-
/**
|
|
21
|
-
* Cleanup distant spatial meshes to free memory
|
|
22
|
-
*/
|
|
23
|
-
private cleanupDistantSpatialMeshes;
|
|
24
|
-
/**
|
|
25
|
-
* Get spatial mesh statistics for debugging
|
|
26
|
-
*/
|
|
27
|
-
getSpatialStats(): {
|
|
28
|
-
totalCells: number;
|
|
29
|
-
loadedCells: number;
|
|
30
|
-
visibleCells: number;
|
|
31
|
-
} | null;
|
|
32
|
-
/**
|
|
33
|
-
* Log spatial mesh statistics to console (for debugging)
|
|
34
|
-
*/
|
|
35
|
-
logSpatialStats(): void;
|
|
36
|
-
/**
|
|
37
|
-
* Set spatial update frequency (for performance tuning)
|
|
38
|
-
*/
|
|
39
|
-
setSpatialUpdateFrequency(fps: number): void;
|
|
40
|
-
/**
|
|
41
|
-
* Set cleanup frequency (for memory management tuning)
|
|
42
|
-
*/
|
|
43
|
-
setCleanupFrequency(seconds: number): void;
|
|
44
|
-
/**
|
|
45
|
-
* Toggle debug mode for spatial meshes
|
|
46
|
-
*/
|
|
47
|
-
toggleSpatialDebug(enabled: boolean): void;
|
|
48
16
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { Box3, Mesh } from "three";
|
|
2
2
|
import { ViralBatchedMesh } from "./viral-batched-mesh";
|
|
3
3
|
import { BufferElement } from "../..";
|
|
4
|
-
import { LineMaterial } from "three/examples/jsm/lines/LineMaterial";
|
|
5
4
|
import { ViralInstancedMeshV2 } from "./viral-instanced-mesh-v2";
|
|
6
|
-
import { ViralEdgeMesh } from "./viral-edge-mesh";
|
|
7
5
|
import { WorkerThreadPool } from "../worker/base/worker-pool";
|
|
8
6
|
/**
|
|
9
7
|
* this class is a wrapper, it stand for a clone of bim model (optimize version to increase performance when render)
|
|
@@ -11,7 +9,6 @@ import { WorkerThreadPool } from "../worker/base/worker-pool";
|
|
|
11
9
|
*
|
|
12
10
|
*/
|
|
13
11
|
export declare class ViralMergedModel extends Mesh {
|
|
14
|
-
protected _edgeMesh: ViralEdgeMesh;
|
|
15
12
|
workerPool: WorkerThreadPool | null;
|
|
16
13
|
constructor();
|
|
17
14
|
private _initializeWorkerPool;
|
|
@@ -140,36 +137,6 @@ export declare class ViralMergedModel extends Mesh {
|
|
|
140
137
|
* Reset all elements to full opacity
|
|
141
138
|
*/
|
|
142
139
|
resetElementOpacity(): void;
|
|
143
|
-
enableEdge(material: LineMaterial, thresholdDeg?: number): void;
|
|
144
|
-
showEdge(): void;
|
|
145
|
-
hideEdge(): void;
|
|
146
|
-
/**
|
|
147
|
-
* Refresh edges when meshes are updated
|
|
148
|
-
*/
|
|
149
|
-
refreshEdges(): void;
|
|
150
|
-
/**
|
|
151
|
-
* Update edge material
|
|
152
|
-
*/
|
|
153
|
-
updateEdgeMaterial(material: LineMaterial): void;
|
|
154
|
-
/**
|
|
155
|
-
* Update edge threshold
|
|
156
|
-
*/
|
|
157
|
-
updateEdgeThreshold(thresholdDeg: number): void;
|
|
158
|
-
/**
|
|
159
|
-
* Get edge mesh statistics
|
|
160
|
-
*/
|
|
161
|
-
getEdgeStats(): {
|
|
162
|
-
isVisible: boolean;
|
|
163
|
-
vertexCount: number;
|
|
164
|
-
meshCount: {
|
|
165
|
-
batched: number;
|
|
166
|
-
instanced: number;
|
|
167
|
-
};
|
|
168
|
-
};
|
|
169
|
-
/**
|
|
170
|
-
* Notify edge mesh when meshes are updated (call this after batching or rebuilding)
|
|
171
|
-
*/
|
|
172
|
-
onMeshUpdated(mesh?: ViralBatchedMesh | ViralInstancedMeshV2): void;
|
|
173
140
|
/**
|
|
174
141
|
* @deprecated No longer needed - visibility is now alpha-based (GPU-accelerated)
|
|
175
142
|
* Kept for backward compatibility but does nothing
|
|
@@ -6,9 +6,12 @@ export declare class ViralCentralizedEventHandler {
|
|
|
6
6
|
private elementProperties;
|
|
7
7
|
private contextMenuEventHandler;
|
|
8
8
|
/**
|
|
9
|
-
**
|
|
9
|
+
** Performance optimization: disable expensive effects during camera movement
|
|
10
|
+
** Uses debounced sleep detection to avoid flickering during micro-movements
|
|
11
|
+
** 🔧 Uses fast bypass for screen-space edges (instant on/off, no pipeline changes)
|
|
10
12
|
*/
|
|
11
|
-
private
|
|
13
|
+
private _sleepDebounceTimer;
|
|
14
|
+
private _sleepDebounceDelay;
|
|
12
15
|
cameraHandler(): void;
|
|
13
16
|
windowHandler(): void;
|
|
14
17
|
handleResize(entries: any): void;
|
|
@@ -65,6 +65,17 @@ export declare class PostProcessingRenderer {
|
|
|
65
65
|
* Disable screen-space edge detection
|
|
66
66
|
*/
|
|
67
67
|
disableScreenSpaceEdges(): void;
|
|
68
|
+
/**
|
|
69
|
+
* 🔧 FAST: Bypass screen-space edges (instant, no geometry render)
|
|
70
|
+
* Use this during camera movement for smooth performance
|
|
71
|
+
* The pass stays in the pipeline but just copies input to output
|
|
72
|
+
*/
|
|
73
|
+
bypassScreenSpaceEdges(): void;
|
|
74
|
+
/**
|
|
75
|
+
* 🔧 FAST: Resume screen-space edges after bypassing
|
|
76
|
+
* Call this when camera stops moving
|
|
77
|
+
*/
|
|
78
|
+
resumeScreenSpaceEdges(): void;
|
|
68
79
|
/**
|
|
69
80
|
* Configure screen-space edge detection options
|
|
70
81
|
*/
|
|
@@ -42,8 +42,16 @@ export declare class ScreenSpaceEdgesPass extends Pass {
|
|
|
42
42
|
private depthMaterial;
|
|
43
43
|
private edgeMaterial;
|
|
44
44
|
private objectIdMaterial;
|
|
45
|
+
private copyMaterial;
|
|
45
46
|
private fsQuad;
|
|
46
47
|
options: ScreenSpaceEdgesOptions;
|
|
48
|
+
/**
|
|
49
|
+
* 🔧 FAST TOGGLE: When true, skips geometry renders and just passes through the image
|
|
50
|
+
* Use this instead of `enabled` for faster on/off during camera movement
|
|
51
|
+
* - `enabled = false`: Pass is completely skipped by EffectComposer (may cause pipeline issues)
|
|
52
|
+
* - `bypass = true`: Pass runs but just copies input to output (very fast, no geometry render)
|
|
53
|
+
*/
|
|
54
|
+
bypass: boolean;
|
|
47
55
|
constructor(scene: Scene, camera: Camera, resolution?: Vector2, options?: Partial<ScreenSpaceEdgesOptions>);
|
|
48
56
|
/**
|
|
49
57
|
* Update options
|
|
@@ -59,6 +67,16 @@ export declare class ScreenSpaceEdgesPass extends Pass {
|
|
|
59
67
|
setSize(width: number, height: number): void;
|
|
60
68
|
/**
|
|
61
69
|
* Main render method
|
|
70
|
+
*
|
|
71
|
+
* 🔧 HYBRID APPROACH:
|
|
72
|
+
* - Depth edges: Uses main render's depth buffer (FREE if available)
|
|
73
|
+
* - Normal edges: Requires 1 geometry pass (can't avoid - needed for crease detection)
|
|
74
|
+
* - Object ID edges: 1 extra geometry pass (disabled by default)
|
|
75
|
+
*
|
|
76
|
+
* Note: Reconstructed normals from depth CANNOT detect internal creases!
|
|
77
|
+
* We MUST render actual geometry normals for proper edge detection.
|
|
78
|
+
*
|
|
79
|
+
* 🔧 FAST TOGGLE: Set `bypass = true` to skip geometry renders (instant on/off)
|
|
62
80
|
*/
|
|
63
81
|
render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, deltaTime?: number, maskActive?: boolean): void;
|
|
64
82
|
/**
|
|
@@ -17,10 +17,6 @@ export declare class ViralRenderer {
|
|
|
17
17
|
* Log standard WebGL render statistics
|
|
18
18
|
*/
|
|
19
19
|
private logRenderStats;
|
|
20
|
-
/**
|
|
21
|
-
* Log spatial mesh statistics if spatial merging is active
|
|
22
|
-
*/
|
|
23
|
-
private logSpatialStats;
|
|
24
20
|
/**
|
|
25
21
|
* Get detailed rendering performance info
|
|
26
22
|
*/
|
|
@@ -35,14 +31,6 @@ export declare class ViralRenderer {
|
|
|
35
31
|
geometries: number;
|
|
36
32
|
textures: number;
|
|
37
33
|
};
|
|
38
|
-
spatial: {
|
|
39
|
-
totalCells: number;
|
|
40
|
-
loadedCells: number;
|
|
41
|
-
visibleCells: number;
|
|
42
|
-
cullingEfficiency: string;
|
|
43
|
-
memoryEfficiency: string;
|
|
44
|
-
} | null;
|
|
45
|
-
isSpatialActive: boolean;
|
|
46
34
|
};
|
|
47
35
|
/**
|
|
48
36
|
* Enable/disable performance logging
|
|
@@ -55,12 +43,4 @@ export declare class ViralRenderer {
|
|
|
55
43
|
applyJitter(): void;
|
|
56
44
|
generateJitterOffsets(samples?: number): number[][];
|
|
57
45
|
screenshot(): string;
|
|
58
|
-
/**
|
|
59
|
-
* Take a screenshot with spatial mesh debug overlay
|
|
60
|
-
*/
|
|
61
|
-
screenshotWithSpatialDebug(): string;
|
|
62
|
-
/**
|
|
63
|
-
* Render only visible spatial cells (for debugging)
|
|
64
|
-
*/
|
|
65
|
-
renderVisibleCellsOnly(): void;
|
|
66
46
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { Scene, DirectionalLight, Mesh, Object3D, MeshBasicMaterial, Light, CameraHelper,
|
|
1
|
+
import { Scene, DirectionalLight, Mesh, Object3D, MeshBasicMaterial, Light, CameraHelper, Box3, OrthographicCamera, PerspectiveCamera } from "three";
|
|
2
2
|
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
3
3
|
import { ViralMergedModel } from "../custom-objects/viral-merged-model";
|
|
4
4
|
import { ViralMainModel } from "../custom-objects/viral-main.model";
|
|
5
5
|
import { TransformControls } from "three/examples/jsm/controls/TransformControls";
|
|
6
|
-
import { ViralSpatialMeshManager } from "../custom-objects/viral-spatial-mesh-manager";
|
|
7
6
|
export declare class ViralScene {
|
|
8
7
|
viralViewerApi: ViralViewerApi;
|
|
9
8
|
scene: Scene;
|
|
@@ -13,9 +12,6 @@ export declare class ViralScene {
|
|
|
13
12
|
isolateModel: Mesh;
|
|
14
13
|
mergedModel: ViralMergedModel;
|
|
15
14
|
outlineModel: Mesh;
|
|
16
|
-
spatialMeshManager: ViralSpatialMeshManager | null;
|
|
17
|
-
spatialMeshContainer: Mesh;
|
|
18
|
-
private useSpatialMerging;
|
|
19
15
|
hideables: Object3D[];
|
|
20
16
|
selectables: Object3D[];
|
|
21
17
|
edges: Object3D[];
|
|
@@ -25,42 +21,6 @@ export declare class ViralScene {
|
|
|
25
21
|
transformControls: TransformControls | null;
|
|
26
22
|
lightHelpers: CameraHelper[];
|
|
27
23
|
constructor(viralViewerApi: ViralViewerApi);
|
|
28
|
-
/**
|
|
29
|
-
* Initialize spatial mesh manager with world bounds
|
|
30
|
-
*/
|
|
31
|
-
initializeSpatialManager(worldBounds: Box3, gridSize?: Vector3): void;
|
|
32
|
-
/**
|
|
33
|
-
* Enable/disable spatial merging
|
|
34
|
-
*/
|
|
35
|
-
setSpatialMerging(enabled: boolean): void;
|
|
36
|
-
/**
|
|
37
|
-
* Update spatial visibility based on camera (call this in render loop)
|
|
38
|
-
*/
|
|
39
|
-
updateSpatialVisibility(camera: Camera): void;
|
|
40
|
-
/**
|
|
41
|
-
* Get spatial mesh manager
|
|
42
|
-
*/
|
|
43
|
-
getSpatialMeshManager(): ViralSpatialMeshManager | null;
|
|
44
|
-
/**
|
|
45
|
-
* Check if spatial merging is active
|
|
46
|
-
*/
|
|
47
|
-
isSpatialMergingActive(): boolean;
|
|
48
|
-
/**
|
|
49
|
-
* Add spatial mesh to the spatial container
|
|
50
|
-
*/
|
|
51
|
-
addSpatialMesh(mesh: Object3D): void;
|
|
52
|
-
/**
|
|
53
|
-
* Clean up distant spatial meshes
|
|
54
|
-
*/
|
|
55
|
-
cleanupDistantSpatialMeshes(cameraPosition: Vector3, maxDistance?: number): void;
|
|
56
|
-
/**
|
|
57
|
-
* Get spatial mesh statistics
|
|
58
|
-
*/
|
|
59
|
-
getSpatialStats(): {
|
|
60
|
-
totalCells: number;
|
|
61
|
-
loadedCells: number;
|
|
62
|
-
visibleCells: number;
|
|
63
|
-
} | null;
|
|
64
24
|
addObject(object: Object3D): void;
|
|
65
25
|
addModel(object: Object3D): void;
|
|
66
26
|
addEdge(object: Object3D): void;
|
|
@@ -102,6 +102,15 @@ export declare class ViralVisibilityManager {
|
|
|
102
102
|
* Disable screen-space edge detection
|
|
103
103
|
*/
|
|
104
104
|
disableScreenSpaceEdge(): void;
|
|
105
|
+
/**
|
|
106
|
+
* 🔧 FAST: Bypass screen-space edges during camera movement
|
|
107
|
+
* Much faster than disable - skips geometry render but keeps pass in pipeline
|
|
108
|
+
*/
|
|
109
|
+
bypassScreenSpaceEdge(): void;
|
|
110
|
+
/**
|
|
111
|
+
* 🔧 FAST: Resume screen-space edges after camera stops
|
|
112
|
+
*/
|
|
113
|
+
resumeScreenSpaceEdge(): void;
|
|
105
114
|
/**
|
|
106
115
|
* Configure screen-space edge detection
|
|
107
116
|
*/
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
2
2
|
import { RenderMaterial, ViralutionElement } from "../../types";
|
|
3
|
-
import { Box3, Vector3 } from "three";
|
|
4
3
|
import { WorkerThreadPool } from "./base/worker-pool";
|
|
5
|
-
import { ViralSpatialMeshManager } from "../custom-objects/viral-spatial-mesh-manager";
|
|
6
4
|
export declare class LoadElementBatchWorker {
|
|
7
5
|
viralViewerApi: ViralViewerApi;
|
|
8
6
|
workerPool: WorkerThreadPool;
|
|
9
7
|
workerPool2: WorkerThreadPool;
|
|
10
8
|
private lastRenderTime;
|
|
11
|
-
private useSpatialMerging;
|
|
12
9
|
private elementBuffer;
|
|
13
10
|
private readonly BATCH_THRESHOLD_VERTICES;
|
|
14
11
|
private readonly BATCH_THRESHOLD_OBJECTS;
|
|
@@ -67,32 +64,4 @@ export declare class LoadElementBatchWorker {
|
|
|
67
64
|
* 🚀 Flush all remaining buffers (call this when loading is complete)
|
|
68
65
|
*/
|
|
69
66
|
flushAllBuffers(): void;
|
|
70
|
-
/**
|
|
71
|
-
* Get spatial mesh manager (delegate to scene)
|
|
72
|
-
*/
|
|
73
|
-
getSpatialMeshManager(): ViralSpatialMeshManager | null;
|
|
74
|
-
/**
|
|
75
|
-
* Check if spatial merging is enabled
|
|
76
|
-
*/
|
|
77
|
-
isSpatialMergingEnabled(): boolean;
|
|
78
|
-
/**
|
|
79
|
-
* Get spatial mesh statistics
|
|
80
|
-
*/
|
|
81
|
-
getSpatialStats(): {
|
|
82
|
-
totalCells: number;
|
|
83
|
-
loadedCells: number;
|
|
84
|
-
visibleCells: number;
|
|
85
|
-
} | null;
|
|
86
|
-
/**
|
|
87
|
-
* Clean up distant spatial meshes to free memory
|
|
88
|
-
*/
|
|
89
|
-
cleanupDistantMeshes(cameraPosition: Vector3, maxDistance?: number): void;
|
|
90
|
-
/**
|
|
91
|
-
* Calculate world bounds from elements (utility method)
|
|
92
|
-
*/
|
|
93
|
-
calculateWorldBounds(elements: ViralutionElement[]): Box3;
|
|
94
|
-
/**
|
|
95
|
-
* Apply RevitTransform to a point (utility method)
|
|
96
|
-
*/
|
|
97
|
-
private applyTransform;
|
|
98
67
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
2
|
+
export declare class ViralInstancedDebugPanel {
|
|
3
|
+
viralViewerApi: ViralViewerApi;
|
|
4
|
+
private panel;
|
|
5
|
+
private instancedListContainer;
|
|
6
|
+
private isVisible;
|
|
7
|
+
private selectedInstancedMesh;
|
|
8
|
+
private selectedInternalMesh;
|
|
9
|
+
constructor(viralViewerApi: ViralViewerApi);
|
|
10
|
+
private inject;
|
|
11
|
+
private createButton;
|
|
12
|
+
private injectStyles;
|
|
13
|
+
private attachEventListeners;
|
|
14
|
+
show(): void;
|
|
15
|
+
hide(): void;
|
|
16
|
+
toggle(): void;
|
|
17
|
+
private refreshInstancedList;
|
|
18
|
+
private isolateWrapper;
|
|
19
|
+
private isolateInternalMesh;
|
|
20
|
+
private showAllInstanced;
|
|
21
|
+
private hideAllInstanced;
|
|
22
|
+
private clearIsolation;
|
|
23
|
+
/**
|
|
24
|
+
* Log detailed information about all instanced meshes to console
|
|
25
|
+
*/
|
|
26
|
+
logAllDetails(): void;
|
|
27
|
+
dispose(): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
2
|
+
interface RenderableInfo {
|
|
3
|
+
id: number;
|
|
4
|
+
name: string;
|
|
5
|
+
type: string;
|
|
6
|
+
visible: boolean;
|
|
7
|
+
parent: string;
|
|
8
|
+
path: string;
|
|
9
|
+
vertices: number;
|
|
10
|
+
triangles: number;
|
|
11
|
+
drawCalls: number;
|
|
12
|
+
children: number;
|
|
13
|
+
materialType: string;
|
|
14
|
+
isDuplicate?: boolean;
|
|
15
|
+
duplicateOf?: number;
|
|
16
|
+
isContainer?: boolean;
|
|
17
|
+
}
|
|
18
|
+
interface RenderPassInfo {
|
|
19
|
+
name: string;
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
estimatedPasses: number;
|
|
22
|
+
}
|
|
23
|
+
interface SceneAnalysis {
|
|
24
|
+
totalObjects: number;
|
|
25
|
+
visibleObjects: number;
|
|
26
|
+
totalDrawCalls: number;
|
|
27
|
+
totalTriangles: number;
|
|
28
|
+
totalVertices: number;
|
|
29
|
+
renderPasses: RenderPassInfo[];
|
|
30
|
+
estimatedTotalPasses: number;
|
|
31
|
+
singlePassDrawCalls: number;
|
|
32
|
+
expectedTotalDrawCalls: number;
|
|
33
|
+
batchedMeshes: RenderableInfo[];
|
|
34
|
+
instancedMeshes: RenderableInfo[];
|
|
35
|
+
regularMeshes: RenderableInfo[];
|
|
36
|
+
edgeMeshes: RenderableInfo[];
|
|
37
|
+
otherObjects: RenderableInfo[];
|
|
38
|
+
potentialDuplicates: {
|
|
39
|
+
object1: RenderableInfo;
|
|
40
|
+
object2: RenderableInfo;
|
|
41
|
+
reason: string;
|
|
42
|
+
}[];
|
|
43
|
+
warnings: string[];
|
|
44
|
+
}
|
|
45
|
+
export declare class ViralRenderDebugPanel {
|
|
46
|
+
viralViewerApi: ViralViewerApi;
|
|
47
|
+
private panel;
|
|
48
|
+
private contentContainer;
|
|
49
|
+
private isVisible;
|
|
50
|
+
private lastAnalysis;
|
|
51
|
+
constructor(viralViewerApi: ViralViewerApi);
|
|
52
|
+
private inject;
|
|
53
|
+
private createButton;
|
|
54
|
+
private injectStyles;
|
|
55
|
+
private attachEventListeners;
|
|
56
|
+
show(): void;
|
|
57
|
+
hide(): void;
|
|
58
|
+
toggle(): void;
|
|
59
|
+
/**
|
|
60
|
+
* Main analysis function - traverses entire scene
|
|
61
|
+
*/
|
|
62
|
+
analyzeScene(): SceneAnalysis;
|
|
63
|
+
/**
|
|
64
|
+
* Analyze post-processing render passes
|
|
65
|
+
*/
|
|
66
|
+
private analyzeRenderPasses;
|
|
67
|
+
private extractObjectInfo;
|
|
68
|
+
private isRenderable;
|
|
69
|
+
private isVisibleInHierarchy;
|
|
70
|
+
private getGeometryHash;
|
|
71
|
+
private categorizeObject;
|
|
72
|
+
private analyzeMergedModel;
|
|
73
|
+
private analyzeAndRender;
|
|
74
|
+
private renderAnalysis;
|
|
75
|
+
private createSection;
|
|
76
|
+
private createCollapsibleSection;
|
|
77
|
+
private highlightObject;
|
|
78
|
+
logToConsole(): void;
|
|
79
|
+
private logObjectTree;
|
|
80
|
+
private exportJSON;
|
|
81
|
+
dispose(): void;
|
|
82
|
+
}
|
|
83
|
+
export {};
|