viral-viewer-2 7.0.9 → 7.1.1
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-Dg6taIi9.mjs → batched-mesh-simplifier-BFjj2CKy.mjs} +1 -1
- package/dist/components/camera/viral-camera.d.ts +1 -1
- package/dist/components/custom-objects/viral-batched-mesh.d.ts +47 -6
- package/dist/components/custom-objects/viral-instanced-mesh-v2.d.ts +43 -2
- package/dist/components/custom-objects/viral-merged-model.d.ts +8 -1
- package/dist/components/data-manager/viral-data-manager.d.ts +4 -9
- package/dist/components/duplication-analyzer/viral-duplication-analyzer.d.ts +1 -1
- package/dist/components/event-handler/base/event-dispatcher.d.ts +1 -1
- package/dist/components/event-handler/mouse/viral-mouse.d.ts +1 -1
- package/dist/components/event-handler/viral-lifecycle-event-handler.d.ts +1 -1
- package/dist/components/loader/viral-revit.loader.d.ts +2 -17
- package/dist/components/loader/viral.loader.d.ts +0 -2
- package/dist/components/visibility-manager/viral-visibility-manager.d.ts +8 -1
- package/dist/components/worker/bounding-box-intersect.worker.d.ts +1 -1
- package/dist/components/worker/bounding-box.worker.d.ts +1 -1
- package/dist/components/worker/load-element-batch.worker.d.ts +1 -1
- package/dist/entities/archive-elements.d.ts +59 -0
- package/dist/entities/base-elements.d.ts +61 -0
- package/dist/entities/configuration.d.ts +14 -0
- package/dist/entities/data-tree.d.ts +141 -0
- package/dist/entities/data.d.ts +15 -0
- package/dist/entities/event.d.ts +30 -0
- package/dist/entities/index.d.ts +9 -0
- package/dist/entities/results.d.ts +19 -0
- package/dist/entities/tool.d.ts +6 -0
- package/dist/entities/viewer-option.d.ts +18 -0
- package/dist/gui/draggable-modal/viral-draggable-modal.d.ts +6 -1
- package/dist/{index-BIlAmQvm.mjs → index-BRDaOYaY.mjs} +32664 -12347
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +23 -26
- package/dist/types.d.ts +0 -325
- package/dist/viral-viewer-api.d.ts +1 -1
- package/package.json +1 -2
- package/dist/components/loader/viral-flatbuffer.loader.d.ts +0 -13
- package/dist/components/worker/load-element-by-material-v2.worker.d.ts +0 -11
- package/dist/components/worker/load-element-by-material.worker.d.ts +0 -11
- package/dist/components/worker/load-element-standalone.worker.d.ts +0 -15
- package/dist/components/worker/viral-viewer-2.worker.d.ts +0 -17
- package/dist/components/worker/viral-viewer-3.worker.d.ts +0 -14
- package/dist/components/worker/viral-viewer.worker.d.ts +0 -8
- package/dist/components/worker-script/load-element-by-material.script.d.ts +0 -3
- package/dist/components/worker-script/load-element-standalone.script.d.ts +0 -1
- package/dist/components/worker-script/load-model-worker-2.script.d.ts +0 -1
- package/dist/components/worker-script/load-model-worker.script.d.ts +0 -1
- package/dist/components/worker-script/material-aproach/load-element-by-material-instanced-mesh.script.d.ts +0 -1
- package/dist/components/worker-script/material-aproach/load-element-by-material-mesh.script.d.ts +0 -3
- package/dist/components/worker-script/threejs.types.d.ts +0 -1
- package/dist/models/flat-buffer/model-management-camera-model.d.ts +0 -24
- package/dist/models/flat-buffer/parameter-dictionary.d.ts +0 -20
- package/dist/models/flat-buffer/point.d.ts +0 -11
- package/dist/models/flat-buffer/render-material.d.ts +0 -26
- package/dist/models/flat-buffer/revit-transform.d.ts +0 -22
- package/dist/models/flat-buffer/viralution-box.d.ts +0 -11
- package/dist/models/flat-buffer/viralution-element.d.ts +0 -27
- package/dist/models/flat-buffer/viralution-information.d.ts +0 -19
- package/dist/models/flat-buffer/viralution-parameter.d.ts +0 -35
- package/dist/models/flat-buffer/viralution-solid.d.ts +0 -28
- package/dist/models/flat-buffer/viralution-standalone-model.d.ts +0 -27
- package/dist/models/index.d.ts +0 -8
- package/dist/serializers/index.d.ts +0 -2
- package/dist/serializers/viralution-flatbuffer.serializer.d.ts +0 -92
- package/dist/serializers/viralution-standalone.serializer.d.ts +0 -16
|
@@ -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-BRDaOYaY.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,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import CameraControls from "camera-controls";
|
|
2
|
-
import { ViralCameraEventType, ViralViewerState } from "../../types";
|
|
3
2
|
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
4
3
|
import { Vector3, Raycaster, PerspectiveCamera, Object3D, OrthographicCamera } from "three";
|
|
4
|
+
import { ViralCameraEventType, ViralViewerState } from "../..";
|
|
5
5
|
export declare class ViralCamera {
|
|
6
6
|
viralViewerApi: ViralViewerApi;
|
|
7
7
|
raycaster: Raycaster;
|
|
@@ -86,6 +86,7 @@ export declare class ViralBatchedMesh extends Mesh {
|
|
|
86
86
|
private _elementOpacityMap;
|
|
87
87
|
private _isRGBAMode;
|
|
88
88
|
private _elementOriginalColors;
|
|
89
|
+
private _temporaryColors;
|
|
89
90
|
/**
|
|
90
91
|
* Select elements (highlights them with accent color)
|
|
91
92
|
*/
|
|
@@ -232,6 +233,24 @@ export declare class ViralBatchedMesh extends Mesh {
|
|
|
232
233
|
* Works with RGBA color buffer (preserves existing alpha values)
|
|
233
234
|
* @param elements - An array of elements, each containing `modelId` and `elementId`.
|
|
234
235
|
* @param color - The new RGB color to apply
|
|
236
|
+
* @param isTemporary - Override for temporary, if element has temporary color it will turn back this color, otherwise will turn back to original
|
|
237
|
+
*/
|
|
238
|
+
/**
|
|
239
|
+
* Changes the color of multiple elements in the merged mesh.
|
|
240
|
+
* Works with RGBA color buffer (preserves existing alpha values)
|
|
241
|
+
* @param elements - An array of elements, each containing `modelId` and `elementId`.
|
|
242
|
+
* @param color - The new RGB color to apply
|
|
243
|
+
* @param isTemporary - If true, stores this color as a temporary layer that will be restored on reset
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* ```typescript
|
|
247
|
+
* // Normal color change (resets to original)
|
|
248
|
+
* mesh.changeColor([{ modelId: "0", elementId: "abc" }], { r: 1, g: 0, b: 0 });
|
|
249
|
+
*
|
|
250
|
+
* // Temporary color (resets to this color instead of original)
|
|
251
|
+
* mesh.changeColor([{ modelId: "0", elementId: "abc" }], { r: 0, g: 1, b: 0 }, true);
|
|
252
|
+
* // Later, any non-temporary color change will reset to green instead of original
|
|
253
|
+
* ```
|
|
235
254
|
*/
|
|
236
255
|
changeColor(elements: {
|
|
237
256
|
modelId: string;
|
|
@@ -240,18 +259,40 @@ export declare class ViralBatchedMesh extends Mesh {
|
|
|
240
259
|
r: number;
|
|
241
260
|
g: number;
|
|
242
261
|
b: number;
|
|
243
|
-
}): void;
|
|
262
|
+
}, isTemporary?: boolean): void;
|
|
263
|
+
/**
|
|
264
|
+
* Clears temporary colors for specified elements or all elements
|
|
265
|
+
* @param elements - Elements to clear temporary colors for, or null to clear all
|
|
266
|
+
*/
|
|
267
|
+
clearTemporaryColors(elements?: {
|
|
268
|
+
modelId: string;
|
|
269
|
+
elementId: string;
|
|
270
|
+
}[] | null): void;
|
|
244
271
|
/**
|
|
245
272
|
* Reset color of an element back to the original color
|
|
246
273
|
*/
|
|
247
274
|
/**
|
|
248
|
-
* Resets the color of
|
|
275
|
+
* Resets the color of elements back to temporary color (if exists) or original color.
|
|
249
276
|
* Works with RGBA color buffer (preserves existing alpha values)
|
|
250
|
-
* @param
|
|
251
|
-
* @param
|
|
252
|
-
*
|
|
277
|
+
* @param elements - Array of elements to reset, or `null` to reset the entire mesh.
|
|
278
|
+
* @param excepts - Elements that should receive a different color instead of original/temporary
|
|
279
|
+
*
|
|
280
|
+
* @example
|
|
281
|
+
* ```typescript
|
|
282
|
+
* // Reset all elements to temporary color (if set) or original color
|
|
283
|
+
* mesh.resetColor(null);
|
|
284
|
+
*
|
|
285
|
+
* // Reset specific elements
|
|
286
|
+
* mesh.resetColor([{ modelId: "0", elementId: "abc" }, { modelId: "0", elementId: "def" }]);
|
|
287
|
+
*
|
|
288
|
+
* // Reset all except some elements with custom colors
|
|
289
|
+
* mesh.resetColor(null, [{ elements: [{ modelId: "0", elementId: "abc" }], color: { r: 1, g: 0, b: 0 } }]);
|
|
290
|
+
* ```
|
|
253
291
|
*/
|
|
254
|
-
resetColor(
|
|
292
|
+
resetColor(elements: {
|
|
293
|
+
modelId: string;
|
|
294
|
+
elementId: string;
|
|
295
|
+
}[] | null, excepts?: {
|
|
255
296
|
elements: {
|
|
256
297
|
modelId: string;
|
|
257
298
|
elementId: string;
|
|
@@ -15,6 +15,7 @@ export declare class ViralInstancedMeshV2 extends Object3D {
|
|
|
15
15
|
}[]>>;
|
|
16
16
|
private _originalTransforms;
|
|
17
17
|
private _elementOpacity;
|
|
18
|
+
private _temporaryColors;
|
|
18
19
|
private _selectedElements;
|
|
19
20
|
private _hidingElements;
|
|
20
21
|
protected _isolatingElements: {
|
|
@@ -49,6 +50,21 @@ export declare class ViralInstancedMeshV2 extends Object3D {
|
|
|
49
50
|
};
|
|
50
51
|
}[]): void;
|
|
51
52
|
unselect(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Changes the color of multiple elements.
|
|
55
|
+
* @param elements - An array of elements, each containing `modelId` and `elementId`.
|
|
56
|
+
* @param color - The new RGB color to apply
|
|
57
|
+
* @param isTemporary - If true, stores this color as a temporary layer that will be restored on reset
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* // Normal color change (resets to original)
|
|
62
|
+
* mesh.changeColor([{ modelId: "0", elementId: "abc" }], { r: 1, g: 0, b: 0 });
|
|
63
|
+
*
|
|
64
|
+
* // Temporary color (resets to this color instead of original)
|
|
65
|
+
* mesh.changeColor([{ modelId: "0", elementId: "abc" }], { r: 0, g: 1, b: 0 }, true);
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
52
68
|
changeColor(elements: {
|
|
53
69
|
modelId: string;
|
|
54
70
|
elementId: string;
|
|
@@ -56,8 +72,33 @@ export declare class ViralInstancedMeshV2 extends Object3D {
|
|
|
56
72
|
r: number;
|
|
57
73
|
g: number;
|
|
58
74
|
b: number;
|
|
59
|
-
}): void;
|
|
60
|
-
|
|
75
|
+
}, isTemporary?: boolean): void;
|
|
76
|
+
/**
|
|
77
|
+
* Clears temporary colors for specified elements or all elements
|
|
78
|
+
* @param elements - Elements to clear temporary colors for, or null to clear all
|
|
79
|
+
*/
|
|
80
|
+
clearTemporaryColors(elements?: {
|
|
81
|
+
modelId: string;
|
|
82
|
+
elementId: string;
|
|
83
|
+
}[] | null): void;
|
|
84
|
+
/**
|
|
85
|
+
* Resets the color of elements back to temporary color (if exists) or original color.
|
|
86
|
+
* @param elements - Array of elements to reset, or `null` to reset all instances.
|
|
87
|
+
* @param excepts - Elements that should receive a different color instead of original/temporary
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* // Reset all elements to temporary color (if set) or original color
|
|
92
|
+
* mesh.resetColor(null);
|
|
93
|
+
*
|
|
94
|
+
* // Reset specific elements
|
|
95
|
+
* mesh.resetColor([{ modelId: "0", elementId: "abc" }, { modelId: "0", elementId: "def" }]);
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
resetColor(elements: {
|
|
99
|
+
modelId: string;
|
|
100
|
+
elementId: string;
|
|
101
|
+
}[] | null, excepts?: {
|
|
61
102
|
elements: {
|
|
62
103
|
modelId: string;
|
|
63
104
|
elementId: string;
|
|
@@ -90,6 +90,13 @@ export declare class ViralMergedModel extends Mesh {
|
|
|
90
90
|
modelId: string;
|
|
91
91
|
elementId: string;
|
|
92
92
|
}[];
|
|
93
|
+
/**
|
|
94
|
+
* Changes the color of multiple elements in the merged mesh.
|
|
95
|
+
* Works with RGBA color buffer (preserves existing alpha values)
|
|
96
|
+
* @param elements - An array of elements, each containing `modelId` and `elementId`.
|
|
97
|
+
* @param color - The new RGB color to apply
|
|
98
|
+
* @param isTemporary - Override for temporary, if element has temporary color it will turn back this color, otherwise will turn back to original - default is false
|
|
99
|
+
*/
|
|
93
100
|
changeColor(elements: {
|
|
94
101
|
modelId: string;
|
|
95
102
|
elementId: string;
|
|
@@ -97,7 +104,7 @@ export declare class ViralMergedModel extends Mesh {
|
|
|
97
104
|
r: number;
|
|
98
105
|
g: number;
|
|
99
106
|
b: number;
|
|
100
|
-
}): void;
|
|
107
|
+
}, isTemporary?: boolean): void;
|
|
101
108
|
getElementBoxs(elements: {
|
|
102
109
|
modelId: string;
|
|
103
110
|
elementId: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CheckClashResult, CompareModelsResult, DataTree, GroupByResult, ViralutionTrackingModel, ViralViewerApi } from "../..";
|
|
1
|
+
import { CheckClashResult, CompareModelsResult, DataTree, GroupByResult, ViralutionInformation, ViralutionTrackingModel, ViralViewerApi } from "../..";
|
|
2
2
|
export declare class ViralDataManager {
|
|
3
3
|
viralViewerApi: ViralViewerApi;
|
|
4
4
|
dataTree: DataTree[];
|
|
@@ -25,20 +25,15 @@ export declare class ViralDataManager {
|
|
|
25
25
|
* Uses optimized flat Map storage for O(1) element lookup
|
|
26
26
|
* Search index is built lazily on first search (saves memory until needed)
|
|
27
27
|
*
|
|
28
|
-
* @param
|
|
28
|
+
* @param data Object with elementId as key, nested properties as value
|
|
29
29
|
*/
|
|
30
|
-
addData(
|
|
31
|
-
[key: number]: {
|
|
32
|
-
[key: string]: {
|
|
33
|
-
[key: string]: string;
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
|
-
}): void;
|
|
30
|
+
addData(data: ViralutionInformation): void;
|
|
37
31
|
getElementData(modelId: number, elementId: number): {
|
|
38
32
|
[key: string]: {
|
|
39
33
|
[key: string]: string;
|
|
40
34
|
};
|
|
41
35
|
} | null;
|
|
36
|
+
getLinkedElements(modelId: number, elementId: number): number[] | null;
|
|
42
37
|
/**
|
|
43
38
|
* Get element count for a model
|
|
44
39
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Vector2 } from "three";
|
|
2
2
|
import { ViralViewerApi } from "../../../viral-viewer-api";
|
|
3
|
-
import { ViralMouseEventType } from "
|
|
3
|
+
import { ViralMouseEventType } from "../../..";
|
|
4
4
|
export declare class ViralMouse {
|
|
5
5
|
viralViewerApi: ViralViewerApi;
|
|
6
6
|
position: Vector2;
|
|
@@ -1,25 +1,11 @@
|
|
|
1
|
-
import { RevitTransform, ViralPoint, ViralViewerRevitProject, ViralutionElement, ViralutionFragmentModel, ViralutionTrackingModel } from "../../types";
|
|
2
1
|
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
2
|
+
import { ViralutionElement, ViralutionTrackingModel } from "../..";
|
|
3
3
|
export declare class ViralRevitLoader {
|
|
4
4
|
viralViewerApi: ViralViewerApi;
|
|
5
5
|
elements: ViralutionElement[];
|
|
6
|
-
private _loadElementStandaloneWorker;
|
|
7
|
-
private _loadElementByMaterialWorker;
|
|
8
|
-
private _loadElementByMaterialV2Worker;
|
|
9
6
|
private _loadElementBatchWorker;
|
|
10
7
|
constructor(viralViewerApi: ViralViewerApi);
|
|
11
|
-
|
|
12
|
-
* @deprecated This function is deprecated. Use the loadRevit2 instead.
|
|
13
|
-
*/
|
|
14
|
-
loadRevit(model: ViralViewerRevitProject): void;
|
|
15
|
-
private progressStructuralGeometries;
|
|
16
|
-
private progressNoneStructuralGeometries;
|
|
17
|
-
private addCustomMesh3;
|
|
18
|
-
private addCustomMesh4;
|
|
19
|
-
loadRevitGroupByMaterial(model: ViralutionFragmentModel): void;
|
|
20
|
-
getVerticePoints(indices: number[], vertices: ViralPoint[], instances?: RevitTransform[]): number[];
|
|
21
|
-
loadStandalone(trackingUrl: string, dataUrl: string, informationUrl: string, callbackOnFinish?: () => void): Promise<void>;
|
|
22
|
-
loadFlatBufferStandalone(informationUrl: string, geometriesUrl: string, callbackOnFinish?: () => void): Promise<void>;
|
|
8
|
+
load(trackingUrl: string, dataUrl: string, informationUrl: string, callbackOnFinish?: () => void): Promise<void>;
|
|
23
9
|
getMaterials(dataUrl: string, byteRangeStart: number, byteRangeEnd: number): Promise<any>;
|
|
24
10
|
getElements(dataUrl: string, chunk: number[][], callbackOnSuccess?: (model: any, index: number) => void): Promise<void>;
|
|
25
11
|
focusCameraOnModel(trackingModel: ViralutionTrackingModel): Promise<void>;
|
|
@@ -28,7 +14,6 @@ export declare class ViralRevitLoader {
|
|
|
28
14
|
y: number;
|
|
29
15
|
z: number;
|
|
30
16
|
} | null;
|
|
31
|
-
loadByMaterial(trackingUrl: string, dataUrl: string, informationUrl: string): Promise<void>;
|
|
32
17
|
/**
|
|
33
18
|
* dispose all current model
|
|
34
19
|
*/
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
2
|
-
import { ViralFlatbufferLoader } from "./viral-flatbuffer.loader";
|
|
3
2
|
import { ViralPointCloudLoader } from "./viral-point-cloud.loader";
|
|
4
3
|
import { ViralRevitLoader } from "./viral-revit.loader";
|
|
5
4
|
import { ViralThreeLoader } from "./viral-three.loader";
|
|
@@ -8,6 +7,5 @@ export declare class ViralLoader {
|
|
|
8
7
|
revitLoader: ViralRevitLoader;
|
|
9
8
|
pointCloudLoader: ViralPointCloudLoader;
|
|
10
9
|
threeLoader: ViralThreeLoader;
|
|
11
|
-
flatbufferLoader: ViralFlatbufferLoader;
|
|
12
10
|
constructor(viralViewerApi: ViralViewerApi);
|
|
13
11
|
}
|
|
@@ -52,6 +52,13 @@ export declare class ViralVisibilityManager {
|
|
|
52
52
|
modelId: string;
|
|
53
53
|
elementId: string;
|
|
54
54
|
}[]): void;
|
|
55
|
+
/**
|
|
56
|
+
* Changes the color of multiple elements in the merged mesh.
|
|
57
|
+
* Works with RGBA color buffer (preserves existing alpha values)
|
|
58
|
+
* @param elements - An array of elements, each containing `modelId` and `elementId`.
|
|
59
|
+
* @param color - The new RGB color to apply
|
|
60
|
+
* @param isTemporary - Override for temporary, if element has temporary color it will turn back this color, otherwise will turn back to original - default is false
|
|
61
|
+
*/
|
|
55
62
|
changeColor(elements: {
|
|
56
63
|
modelId: string;
|
|
57
64
|
elementId: string;
|
|
@@ -59,7 +66,7 @@ export declare class ViralVisibilityManager {
|
|
|
59
66
|
r: number;
|
|
60
67
|
g: number;
|
|
61
68
|
b: number;
|
|
62
|
-
}): void;
|
|
69
|
+
}, isTemporary?: boolean): void;
|
|
63
70
|
/**
|
|
64
71
|
* except elements from reverse to original color, using for compare model, group elements,...
|
|
65
72
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
2
|
-
import { RenderMaterial, ViralutionElement } from "
|
|
2
|
+
import { RenderMaterial, ViralutionElement } from "../../..";
|
|
3
3
|
import { WorkerThreadPool } from "./base/worker-pool";
|
|
4
4
|
export declare class LoadElementBatchWorker {
|
|
5
5
|
viralViewerApi: ViralViewerApi;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { RenderMaterial, RevitTransform, ViralPoint } from "./base-elements";
|
|
2
|
+
export interface ViralViewerRevitProject {
|
|
3
|
+
Materials: RenderMaterial[];
|
|
4
|
+
StructuralGeometries: ViralViewerRevitStructuralGeometry[];
|
|
5
|
+
NoneStructuralGeometries: ViralViewerRevitNoneStructuralGeometry[];
|
|
6
|
+
}
|
|
7
|
+
export interface ViralViewerRevitStructuralGeometry {
|
|
8
|
+
MaterialIndex: number;
|
|
9
|
+
Vertices: ViralPoint[];
|
|
10
|
+
Indices: number[];
|
|
11
|
+
}
|
|
12
|
+
export declare class ViralViewerRevitNoneStructuralGeometry {
|
|
13
|
+
MaterialIndex: number;
|
|
14
|
+
Vertices: ViralPoint[];
|
|
15
|
+
Indices: number[];
|
|
16
|
+
Name: string;
|
|
17
|
+
Instances: RevitTransform[];
|
|
18
|
+
}
|
|
19
|
+
export interface ViralutionFragmentModel {
|
|
20
|
+
Materials: RenderMaterial[];
|
|
21
|
+
Fragments: Fragment[];
|
|
22
|
+
}
|
|
23
|
+
export declare class Fragment {
|
|
24
|
+
MaterialIndex: number;
|
|
25
|
+
Elements: ElementFragment[];
|
|
26
|
+
}
|
|
27
|
+
export declare class ElementFragment {
|
|
28
|
+
Vertices: ViralPoint[];
|
|
29
|
+
Indices: number[];
|
|
30
|
+
Instances: RevitTransform[];
|
|
31
|
+
Id: string;
|
|
32
|
+
}
|
|
33
|
+
export declare class ViralViewerRevitGeometry {
|
|
34
|
+
Vertices: ViralPoint[];
|
|
35
|
+
Indices: number[];
|
|
36
|
+
Transform: RevitTransform | null;
|
|
37
|
+
}
|
|
38
|
+
export declare class BufferElement {
|
|
39
|
+
/**
|
|
40
|
+
* In case this buffer element is instanced mesh this buffer is original geometry
|
|
41
|
+
*/
|
|
42
|
+
buffer: Float32Array | null;
|
|
43
|
+
/**
|
|
44
|
+
* In case this buffer element is instanced mesh this field is null
|
|
45
|
+
*/
|
|
46
|
+
elementId: string;
|
|
47
|
+
modelId: number;
|
|
48
|
+
localMaterialIndex?: number;
|
|
49
|
+
globalMaterialIndex?: number;
|
|
50
|
+
minPoint?: ViralPoint;
|
|
51
|
+
maxPoint?: ViralPoint;
|
|
52
|
+
/**
|
|
53
|
+
* In case this buffer element is instanced mesh
|
|
54
|
+
*/
|
|
55
|
+
instances: {
|
|
56
|
+
elementId: string;
|
|
57
|
+
transform: number[];
|
|
58
|
+
}[];
|
|
59
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export declare class ViralutionElement {
|
|
2
|
+
Solids: ViralutionSolid[];
|
|
3
|
+
Id: string;
|
|
4
|
+
Instances: RevitTransform[];
|
|
5
|
+
}
|
|
6
|
+
export declare class ViralutionStandaloneModel {
|
|
7
|
+
Materials: RenderMaterial[];
|
|
8
|
+
Elements: ViralutionElement[];
|
|
9
|
+
Camera: ViralutionCamera;
|
|
10
|
+
}
|
|
11
|
+
export declare class ViralutionSolid {
|
|
12
|
+
MaterialIndex: number;
|
|
13
|
+
Vertices: ViralPoint[];
|
|
14
|
+
Indices: number[];
|
|
15
|
+
Buffer: number[];
|
|
16
|
+
}
|
|
17
|
+
export declare class ViralutionCamera {
|
|
18
|
+
scale: number;
|
|
19
|
+
origin: ViralPoint;
|
|
20
|
+
eyePosition: ViralPoint;
|
|
21
|
+
upDirection: ViralPoint;
|
|
22
|
+
forwardDirection: ViralPoint;
|
|
23
|
+
target: ViralPoint;
|
|
24
|
+
box: ViralutionBox;
|
|
25
|
+
}
|
|
26
|
+
export declare class ViralutionBox {
|
|
27
|
+
min: ViralPoint;
|
|
28
|
+
max: ViralPoint;
|
|
29
|
+
}
|
|
30
|
+
export declare class ViralutionTrackingModel {
|
|
31
|
+
Data: {
|
|
32
|
+
[key: number]: number[][];
|
|
33
|
+
};
|
|
34
|
+
CameraData: ViralutionCamera;
|
|
35
|
+
Translation?: number[];
|
|
36
|
+
}
|
|
37
|
+
export declare class ViralPoint {
|
|
38
|
+
X: number;
|
|
39
|
+
Y: number;
|
|
40
|
+
Z: number;
|
|
41
|
+
}
|
|
42
|
+
export interface RenderMaterial {
|
|
43
|
+
Name: string;
|
|
44
|
+
Opacity: number;
|
|
45
|
+
Metalness: number;
|
|
46
|
+
Roughness: number;
|
|
47
|
+
Red: number;
|
|
48
|
+
Green: number;
|
|
49
|
+
Blue: number;
|
|
50
|
+
}
|
|
51
|
+
export interface RevitTransform {
|
|
52
|
+
BasisX: ViralPoint;
|
|
53
|
+
BasisY: ViralPoint;
|
|
54
|
+
BasisZ: ViralPoint;
|
|
55
|
+
Offset: ViralPoint;
|
|
56
|
+
Id: string;
|
|
57
|
+
}
|
|
58
|
+
export interface ViralViewerState {
|
|
59
|
+
CameraPoint: ViralPoint;
|
|
60
|
+
TargetPoint: ViralPoint;
|
|
61
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface LightConfiguration {
|
|
2
|
+
enabled?: boolean;
|
|
3
|
+
castShadow?: boolean;
|
|
4
|
+
intensity?: number;
|
|
5
|
+
color?: number;
|
|
6
|
+
indirectLightIntensity?: number;
|
|
7
|
+
shadowcatcher?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface SunLightConfiguration extends LightConfiguration {
|
|
10
|
+
elevation?: number;
|
|
11
|
+
azimuth?: number;
|
|
12
|
+
radius?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare const DefaultLightConfiguration: SunLightConfiguration;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { ViralutionRelationship } from "./data";
|
|
2
|
+
/**
|
|
3
|
+
* Main entity to store a whole model data - Optimized DataTree with flat key-value storage
|
|
4
|
+
* - Memory efficient: Uses flat Map instead of nested objects
|
|
5
|
+
* - Fast queries: O(1) element lookup, O(n) search
|
|
6
|
+
* - Lazy search index: Only builds trie when search is called
|
|
7
|
+
*/
|
|
8
|
+
export declare class DataTree {
|
|
9
|
+
private _elementMap;
|
|
10
|
+
private _relationships;
|
|
11
|
+
private _searchIndex;
|
|
12
|
+
private _searchIndexBuilt;
|
|
13
|
+
get elementData(): {
|
|
14
|
+
[key: number]: {
|
|
15
|
+
[key: string]: {
|
|
16
|
+
[key: string]: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
}[];
|
|
20
|
+
constructor(elementData?: {
|
|
21
|
+
[key: number]: {
|
|
22
|
+
[key: string]: {
|
|
23
|
+
[key: string]: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
}[], treeNode?: SerializedTreeNode);
|
|
27
|
+
/**
|
|
28
|
+
* Add elements to the data tree (batch operation)
|
|
29
|
+
* @param data Object with elementId as key
|
|
30
|
+
*/
|
|
31
|
+
addElements(data: {
|
|
32
|
+
[key: number]: {
|
|
33
|
+
[key: string]: {
|
|
34
|
+
[key: string]: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
}): void;
|
|
38
|
+
addRelationships(relationships: ViralutionRelationship[]): void;
|
|
39
|
+
/**
|
|
40
|
+
* Get element data by ID - O(1) lookup
|
|
41
|
+
*/
|
|
42
|
+
getObjectByKey(key: number): {
|
|
43
|
+
[key: string]: {
|
|
44
|
+
[key: string]: string;
|
|
45
|
+
};
|
|
46
|
+
} | null;
|
|
47
|
+
/**
|
|
48
|
+
* Get all element IDs
|
|
49
|
+
*/
|
|
50
|
+
getElementIds(): number[];
|
|
51
|
+
/**
|
|
52
|
+
* Get element count
|
|
53
|
+
*/
|
|
54
|
+
get size(): number;
|
|
55
|
+
/**
|
|
56
|
+
* Get all elements with their data
|
|
57
|
+
* @returns Array of { elementId, data } objects
|
|
58
|
+
*/
|
|
59
|
+
getAllElements(): {
|
|
60
|
+
elementId: number;
|
|
61
|
+
data: {
|
|
62
|
+
[key: string]: {
|
|
63
|
+
[key: string]: string;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
}[];
|
|
67
|
+
/**
|
|
68
|
+
* Get all elements as a Map (more efficient for large datasets)
|
|
69
|
+
* @returns Map<elementId, elementData>
|
|
70
|
+
*/
|
|
71
|
+
getAllElementsMap(): Map<number, {
|
|
72
|
+
[key: string]: {
|
|
73
|
+
[key: string]: string;
|
|
74
|
+
};
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* Iterate over all elements without creating intermediate arrays
|
|
78
|
+
* More memory efficient for large datasets
|
|
79
|
+
* @param callback Function to call for each element
|
|
80
|
+
*/
|
|
81
|
+
forEachElement(callback: (elementId: number, data: {
|
|
82
|
+
[key: string]: {
|
|
83
|
+
[key: string]: string;
|
|
84
|
+
};
|
|
85
|
+
}) => void): void;
|
|
86
|
+
/**
|
|
87
|
+
* Search for elements containing the query string
|
|
88
|
+
* Builds search index lazily on first search
|
|
89
|
+
*/
|
|
90
|
+
search(query: string): number[];
|
|
91
|
+
/**
|
|
92
|
+
* Build inverted index for search
|
|
93
|
+
* Maps: "search term" -> Set<elementId>
|
|
94
|
+
*/
|
|
95
|
+
private _buildSearchIndex;
|
|
96
|
+
/**
|
|
97
|
+
* Rebuild search index from serialized worker result
|
|
98
|
+
*/
|
|
99
|
+
private _rebuildSearchIndexFromSerialized;
|
|
100
|
+
/**
|
|
101
|
+
* Clear search index to free memory
|
|
102
|
+
*/
|
|
103
|
+
clearSearchIndex(): void;
|
|
104
|
+
/**
|
|
105
|
+
* Dispose and clear all data
|
|
106
|
+
*/
|
|
107
|
+
dispose(): void;
|
|
108
|
+
private _outEdges;
|
|
109
|
+
private _inEdges;
|
|
110
|
+
private _edgesByType;
|
|
111
|
+
INVERSE: Record<string, string>;
|
|
112
|
+
buildGraphIndex(): void;
|
|
113
|
+
getLinkedElements(id: number): number[];
|
|
114
|
+
getNeighborsByType(id: number, type: string): number[];
|
|
115
|
+
toGraph(): {
|
|
116
|
+
nodes: GraphNode[];
|
|
117
|
+
edges: GraphEdge[];
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export interface SerializedTreeNode {
|
|
121
|
+
children: {
|
|
122
|
+
[char: string]: SerializedTreeNode;
|
|
123
|
+
};
|
|
124
|
+
keys: number[];
|
|
125
|
+
}
|
|
126
|
+
export declare class TreeNode {
|
|
127
|
+
children: Map<string, TreeNode>;
|
|
128
|
+
keys: Set<number>;
|
|
129
|
+
}
|
|
130
|
+
type GraphNode = {
|
|
131
|
+
id: string;
|
|
132
|
+
label: string;
|
|
133
|
+
group?: string;
|
|
134
|
+
};
|
|
135
|
+
type GraphEdge = {
|
|
136
|
+
id: string;
|
|
137
|
+
source: string;
|
|
138
|
+
target: string;
|
|
139
|
+
type: string;
|
|
140
|
+
};
|
|
141
|
+
export {};
|