From 96b961fc0bff7be905242a46158baf2e21b638aa Mon Sep 17 00:00:00 2001 From: Muhammad Saad Jumani Date: Sun, 17 Jul 2022 08:09:36 +0500 Subject: [PATCH] FarshArAllRunning --- 1390892.json | 2 +- __game-scripts.js | 2 +- __loading__.js | 24 ++++++++---------- __settings__.js | 4 +-- config.json | 2 +- files/assets/86173568/1/SliderKnot.png | Bin 6292 -> 10555 bytes files/assets/86174925/1/HorAlpha.png | Bin 4544 -> 4792 bytes files/assets/87530980/1/LadyModel.png | Bin 0 -> 253256 bytes files/assets/89683130/1/VertSlider.png | Bin 0 -> 5375 bytes files/assets/91587903/1/Resize.PNG | Bin 0 -> 4397 bytes files/assets/91591081/1/Blank.PNG | Bin 0 -> 2919 bytes .../91600010/1/WorkSans-VariableFont_wght.png | Bin 0 -> 101738 bytes .../1/WorkSans-Italic-VariableFont_wght.png | Bin 0 -> 129251 bytes files/assets/92380612/1/Heli.blend | Bin 0 -> 523024 bytes playcanvas-stable.min.js | 4 +-- 15 files changed, 18 insertions(+), 20 deletions(-) create mode 100644 files/assets/87530980/1/LadyModel.png create mode 100644 files/assets/89683130/1/VertSlider.png create mode 100644 files/assets/91587903/1/Resize.PNG create mode 100644 files/assets/91591081/1/Blank.PNG create mode 100644 files/assets/91600010/1/WorkSans-VariableFont_wght.png create mode 100644 files/assets/91600011/1/WorkSans-Italic-VariableFont_wght.png create mode 100644 files/assets/92380612/1/Heli.blend diff --git a/1390892.json b/1390892.json index b092df3..2888ea9 100644 --- a/1390892.json +++ b/1390892.json @@ -1 +1 @@ -{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","name":"Untitled","created":"2022-04-14T19:03:47.042Z","settings":{"physics":{"gravity":[0,-9.8,0]},"render":{"lightmapFilterRange":10,"tonemapping":0,"ambientBakeOcclusionContrast":0,"skybox":null,"lightmapFilterSmoothness":0.2,"gamma_correction":1,"fog_start":1,"skyboxIntensity":1,"fog_color":[0,0,0],"lightmapMode":1,"ambientBakeSpherePart":0.4,"fog":"none","lightmapMaxResolution":2048,"skyboxMip":0,"lightmapSizeMultiplier":16,"fog_end":1000,"lightmapFilterEnabled":false,"ambientBake":false,"fog_density":0.01,"exposure":1,"global_ambient":[0.2,0.2,0.2],"ambientBakeNumSamples":1,"ambientBakeOcclusionBrightness":0,"skyboxRotation":[0,0,0]}},"entities":{"! 1":{"!":"Camera","#":"! %","$":"! 1","%":{"!2":{"!3":0,"!4":1000,"!5":true,")":[0,1,2,3,4],"!6":0,"!7":45,"!8":true,"!9":true,"!:":[0.118,0.118,0.118,1]," ":true,"!;":4,"!<":0.1,">":[0,0,1,1]},";":{" ":true,"<":["pickerRaycast","roomWidthSlider"],"=":{"!=":{"8":{}," ":true},"!>":{"8":{"!?":85572337,"!@":85572402}," ":false}}}},"&":[]," ":true,"'":["! #","! "],"___1":[105,108,0]},"! %":{"!":"Root","#":null,"$":"! %","%":{},"&":[]," ":true,"'":["! 1","! ,","! m","! -","! n","!!/"],"___2":0},"! o":{"!":"ImgPlane","&":[]," ":true,"$":"! o","#":"! ,","'":[],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"plane","+":null,"/":[78072855],")":[0],"*":null,",":false,"-":false},";":{" ":true,"<":["switchingTextures"],"=":{"!A":{"8":{"!B":[78072763,78072763],"!C":"https://farsh-mobile.s3.me-south-1.amazonaws.com/cdn/loonie1.png","!D":null}," ":true}}}},"___1":[111,3,0]},"! m":{" ":true,"&":[],"'":["! )"],"$":"! m","!":"livingroom","%":{},"#":"! %","___1":[114,117,120]},"! )":{" ":true,"&":[],"'":["!!0","! p","! q","! 2"],"$":"! )","!":"Fbx_Root","%":{},"#":"! m","___1":[3,3,123]},"!!0":{" ":true,"&":[],"'":[],"$":"!!0","!":"Plane01","%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"asset","+":78181884,"/":[78181754],")":[0],"*":null,",":true,"-":false}},"#":"! )","___1":[126,3,129]},"! 3":{"!":"C-Ext01","&":[]," ":true,"$":"! 3","#":"! 2","'":["!!1","!!2"],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"asset","+":78181885,"/":[78181757],")":[0],"*":null,",":true,"-":false}},"___1":[132,3,135]},"! q":{"!":"Omni01","&":[]," ":true,"$":"! q","#":"! )","'":["!!3"],"%":{"g":{" ":true,"(":"point","h":false,"i":0,"j":1,"k":true,"l":true,"m":false,":":[1,1,1],"n":0.8,",":false,"o":2,"p":0,"q":1,"r":11,"s":0.01,"t":16,"u":1024,"v":1,"w":0.5,"x":0.2,"y":0.05,"z":8,"{":0,"|":40,"}":45,"~":0,"! ":null,"!!":1,"!#":true,"!$":"rgb","!%":0,"!&":[1,1],"!'":[0,0],"-":false,")":[0]}},"___1":[138,3,0]},"! -":{" ":true,"&":[],"'":["! *","! !"],"$":"! -","!":"doorman","%":{"b":{"9":2," ":true,"(":"box","c":[0.346,1.745,0.319],"d":0.5,"e":1,"+":null,"f":null},"!E":{" ":true,"(":"kinematic","!F":1,"!G":0,"!H":0,"!I":[1,1,1],"!J":[1,1,1],"!K":0.5,"!L":0.5},";":{" ":true,"<":["mouse","touch","sliderVisible"],"=":{"!-":{"8":{"a":0}," ":true},"!.":{"8":{"a":0}," ":true},"!M":{"8":{"!N":"! !","!O":5}," ":true}}}},"#":"! %","!/":{"! -":"2cfeea72-a4bb-4a0e-8dad-abd92cc83dad","!P":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2","!Q":"a662f523-2a86-4f77-9951-1053085f7717","!R":"fbf7970b-0b02-48c8-9fbb-6fbb5d4f3485","!S":"cafbe398-372c-44b5-a905-6a9ca90c105c","!T":"6147aeb5-2849-4302-80b1-7120263a14de"},"!0":78401706,"___1":[141,3,144]},"! ,":{"!":"Plane","&":[]," ":true,"$":"! ,","#":"! %","'":["! 4","! 5","! o"],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":false,"(":"plane","+":null,"/":[78072855],")":[0],"*":null,",":true,"-":false},";":{" ":true,"<":["mouse","touch","showHeightAndWidth"],"=":{"!-":{"8":{"a":0}," ":true},"!.":{"8":{"a":0}," ":true},"!U":{"8":{"9":"! 4","?":"! 5","!V":5,"!W":0,"!X":0,"!Y":"! o","!Z":45,"![":90}," ":true}}},"b":{"9":2," ":true,"(":"box","c":[0.664,0.1,0.767],"d":0.5,"e":1,"+":null,"f":null}},"___1":[147,18,0]},"! 5":{"!":"WidthPlane","&":[]," ":true,"$":"! 5","#":"! ,","'":["!!4"],"%":{".":{"0":false,"1":false,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"plane","+":null,"/":[79458597],")":[0],"*":null,",":false,"-":false},";":{" ":true,"<":[],"=":{}}},"___1":[150,3,153]},"! 4":{"!":"HeightPlane","&":[]," ":true,"$":"! 4","#":"! ,","'":["!!5"],"%":{".":{"0":false,"1":false,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"plane","+":null,"/":[79458597],")":[0],"*":null,",":false,"-":false},";":{" ":true,"<":[],"=":{}}},"___1":[156,159,162]},"!!5":{"!":"Text","&":[]," ":true,"$":"!!5","#":"! 4","'":[],"%":{"@":{"9":29.875," ":true,"(":"text","A":[0.5,0.5,0.5,0.5],"B":[0.5,0.5],"C":"90","D":null,"E":79465530,"F":32,"G":8,"H":32,"I":false,"J":false,"K":null,"L":32,"M":true,"N":1,":":[0,0,0],"O":1,"P":null,"Q":null,"R":0,"S":null,"?":38.234,"T":[-19.113,-14.938,-19.121,-14.937],"U":[0.5,0.5],"V":[1,1,1,1],"W":0.1,"X":[0,0,0,1],"Y":[0,0],">":[0,0,1,1],"Z":null,"[":true,"]":true,"^":false,"*":null,"_":false,")":[4],"`":false},";":{" ":true,"<":["getHeightFromUrlparams"],"=":{"!]":{"8":{}," ":true}}}},"___1":[165,168,171]},"!!4":{"!":"Text","&":[]," ":true,"$":"!!4","#":"! 5","'":[],"%":{"@":{"9":29.875," ":true,"(":"text","A":[0.5,0.5,0.5,0.5],"B":[0.5,0.5],"C":"45","D":null,"E":79465530,"F":32,"G":8,"H":32,"I":false,"J":false,"K":null,"L":32,"M":true,"N":1,":":[0,0,0],"O":1,"P":null,"Q":null,"R":0,"S":null,"?":33.813,"T":[-16.906,-14.938,-16.906,-14.937],"U":[0.5,0.5],"V":[1,1,1,1],"W":0.13,"X":[0,0,0,1],"Y":[0,0],">":[0,0,1,1],"Z":null,"[":true,"]":true,"^":false,"*":null,"_":false,")":[4],"`":false},";":{" ":true,"<":["getWidthFromUrlparams"],"=":{"!^":{"8":{}," ":true}}}},"___1":[174,6,177]},"! p":{"!":"Omni01","&":[]," ":true,"$":"! p","#":"! )","'":["!!6"],"%":{"g":{" ":true,"(":"point","h":false,"i":0,"j":1,"k":true,"l":true,"m":false,":":[1,1,1],"n":0.59,",":true,"o":2,"p":0,"q":1,"r":11,"s":0.01,"t":16,"u":1024,"v":1,"w":0.5,"x":0.2,"y":0.05,"z":39.47,"{":0,"|":40,"}":45,"~":0,"! ":null,"!!":1,"!#":true,"!$":"rgb","!%":0,"!&":[1,1],"!'":[0,0],"-":false,")":[0]}},"___1":[180,3,0]},"!!3":{"!":"Omni01","&":[]," ":true,"$":"!!3","#":"! q","'":[],"%":{"g":{" ":true,"(":"point","h":false,"i":0,"j":1,"k":true,"l":true,"m":false,":":[1,1,0.92157],"n":0.8,",":false,"o":2,"p":0,"q":1,"r":11,"s":0.01,"t":16,"u":1024,"v":1,"w":0.5,"x":0.2,"y":0.05,"z":8,"{":0,"|":40,"}":45,"~":0,"! ":null,"!!":1,"!#":true,"!$":"rgb","!%":0,"!&":[1,1],"!'":[0,0],"-":false,")":[0]}},"___1":[183,3,0]},"! n":{"!":"Box","&":[]," ":true,"$":"! n","#":"! %","'":[],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"box","+":null,"/":[null],")":[0],"*":null,",":true,"-":false}},"___1":[186,3,189]},"! *":{" ":true,"&":[],"'":["! 6","! ."],"$":"! *","!":"BlueSuitFree01","%":{},"#":"! -","!/":{"! *":"349f823f-3e44-4162-9ed4-1ec84e75483e","! 6":"25304268-5782-46b4-8096-5a1f035ab0d0","! 7":"246d9b13-1098-45a7-8efc-e4049fd311a3","! 8":"bc364d92-e370-47d9-b20d-98c792aabe97","! $":"0eaf1817-47cf-4320-aec4-ec4b5d4890ac","! 9":"9d5cddc3-0168-44c2-8497-2f1d7c82fdaf","! :":"f0f0f0a5-b770-47ca-84c3-6171f02026c4","! ;":"66a06794-d1eb-420c-8966-d33c47f62243","! <":"4b69f146-6d36-445d-8cf1-b30df1714d26","! r":"185884e8-8d7f-4d73-ac4e-1e91a6ba694f","! =":"6779d20e-ffd2-477d-80b7-425c0475f1d5","! >":"69dafd9b-5183-4dec-97b8-f2290ad74a88","! ?":"5c4b614b-ca99-45d1-9ffd-01ba4dca482d","! +":"154ec305-b964-4a07-bcf7-75787b883c55","! @":"2a2b3e82-d0b1-429b-9ac0-a428b9b95d26","! A":"70dc6419-fd57-4484-82f9-a76a9febe516","! B":"930b8e63-6492-4681-8c80-c279a115c7ca","! &":"9d0c19ef-7c47-4889-b6c2-bf67f6676c43","! C":"1511ab22-1978-4397-8ce9-84d25d969039","! D":"a74c353f-c707-4245-a5e0-211c193e2f82","! E":"8d5f729b-c6b8-4496-ad31-162dbb88a4b0","! s":"5170b049-30a6-4290-8fc9-71f0369044fb","! F":"8dad2df0-2a5c-4d29-ac1d-0da768c0af1a","! G":"32454a3b-dc95-4603-8275-9bfa4d3656a5","! H":"d25c60b0-e9ec-4946-b309-52cb2d7bb6ce","! t":"66c5cf80-593e-43a7-9985-262e8c3943db","! I":"9bb4ad61-8b98-40b3-8f03-471e717aaa10","! J":"948f7e2a-f7ac-43db-9f13-c4a211931cb8","! K":"62dd3059-d198-4a25-a948-58aa9ad6de9a","! u":"663ef460-551d-4fdf-9f9f-6d80af049001","! /":"0ab2d415-16f1-433c-839c-f5dc8a12ece6","! L":"5b405fed-76b0-4a86-a7be-3631dfb22d64","! M":"8c45383b-77c5-4d41-9465-4aea58643c8b","! N":"acfbb9a3-a794-4d6d-ba44-423df348662b","! v":"78e35c79-f4b2-4b45-a8bb-ce6232b10926","! O":"44ba2028-08bb-471b-b01d-bfebdff376c2","! P":"75173193-4148-4d13-8f87-3ed747edba07","! Q":"0bb5ecac-fdd5-4206-9727-58742015c918","! w":"d1d22996-f6cf-46a7-a1da-e1f21e206e4f","! R":"a2cbe25c-d987-45d8-afb7-fa723c9e4f65","! '":"0ca9cdcf-2466-4c04-80a4-ccf74d859d95","! S":"fedb1ab2-2c0a-4158-aa3d-6aea2debcc56","! x":"4052b35f-20d3-4bf7-a7bb-d9afae946c44","! T":"133a3599-deb2-4f93-bb79-2fdaea1f53b5","! y":"0a828f87-deb9-497b-9af5-540b60eafff1","! z":"54de4e11-2768-477f-8a66-d26f13fd0fe6","! U":"4003c198-1874-42dc-83a4-56b8b704eff6","! {":"27584000-9400-4126-a17c-845a9f9f7605","! V":"2fdd9dbe-f57c-4b97-89d9-3c8e05200917","! W":"ef7ab9d6-07e7-4e0c-97ee-66b5e94f6b21","! X":"b05cb928-fd7e-48cd-9e18-afc07c46fba3","! (":"4e2fd5fc-6dbe-420a-ab31-fb287e31c726","! Y":"25ebeb00-d02d-4d7a-b09a-1c773f157f56","! Z":"1ddeca7a-7d8b-4993-a05c-5f47a62fb541","! [":"aba2941b-f3e0-4469-8126-2a5e9052a7d8","! |":"44e89eeb-26ac-4f17-96dc-eb7925aa0576","! ]":"25037cf1-bb2d-45f1-962a-0ccae3e7f47d","! ^":"86903bbc-4a42-44a5-a4fb-9f94ebc80ff5","! _":"4a0d4912-c2f7-4a8a-8d15-c21b278c6ba8","! }":"7cdc4abd-7de8-4aab-bbaf-5287b47baea9","! `":"6c23aa87-ff9a-45da-83c0-e56a98fe765d","! a":"18966956-e888-4707-872f-7bcad5dd4975","! b":"e155d26f-a44d-4065-b856-3c1f7655dd45","! ~":"19d67abf-6da7-4668-bb56-63e362a0abb8","! 0":"120cf609-3d9a-4068-9c11-d7b7feb1abdc","! c":"b161ff11-86c3-4e00-bb3c-bd09ea8a4bf8","! d":"578ebeda-4f81-42eb-8220-e276bf55e73b","! e":"84c775d9-46f4-480c-bfa8-ebac01660934","!! ":"fcda9764-a9e6-4790-b7c8-2275e8fdce3a","! f":"0cae0b66-218e-4636-95b8-cf3cc24c14c5","! g":"f1dd3f38-f2a7-4e2d-8437-5c8968e56595","! h":"648f62bc-f587-4a1a-944c-663cc286ba53","!!!":"5ac65a16-94b0-478a-b324-791b9c77ee5f","! i":"5ad7ed93-07f3-4e3d-8792-fe9e33ed134b","! j":"8c176529-ae92-4185-af03-cf980598f550","! k":"2d05dab9-2167-4ce6-85d3-0b2127ab677d","! l":"b6911b20-b769-488a-95f4-b6c960fb41f3","!!#":"36ce698b-7be6-4bec-9080-01be8e125d22","! .":"2cb48962-5b67-4b71-b0b2-afa8d9db58c1","!!$":"5b0ab82e-f081-47c5-98bc-75d547e77476","!!%":"ce472413-e97f-4cff-92be-695f07c7bedc"},"!0":80915306,"___1":[192,195,198]},"! 6":{" ":true,"&":[],"'":["! 7"],"$":"! 6","!":"Group","%":{},"#":"! *","___2":0},"! 7":{" ":true,"&":[],"'":["! 8"],"$":"! 7","!":"Main","%":{},"#":"! 6","___2":0},"! 8":{" ":true,"&":[],"'":["! $"],"$":"! 8","!":"DeformationSystem","%":{},"#":"! 7","___2":0},"! $":{" ":true,"&":[],"'":["! 9","! =","! i"],"$":"! $","!":"Root_M","%":{},"#":"! 8","___1":[201,204,0]},"! 9":{" ":true,"&":[],"'":["! :"],"$":"! 9","!":"Hip_R","%":{},"#":"! $","___1":[207,210,0]},"! :":{" ":true,"&":[],"'":["! ;"],"$":"! :","!":"Knee_R","%":{},"#":"! 9","___1":[213,21,0]},"! ;":{" ":true,"&":[],"'":["! <"],"$":"! ;","!":"Ankle_R","%":{},"#":"! :","___1":[216,24,0]},"! <":{" ":true,"&":[],"'":["! r"],"$":"! <","!":"Toes_R","%":{},"#":"! ;","___1":[219,27,0]},"! r":{" ":true,"&":[],"'":[],"$":"! r","!":"ToesEnd_R","%":{},"#":"! <","___1":[222,3,0]},"! =":{" ":true,"&":[],"'":["! >"],"$":"! =","!":"Spine1_M","%":{},"#":"! $","___1":[225,228,0]},"! >":{" ":true,"&":[],"'":["! ?"],"$":"! >","!":"Spine1Part1_M","%":{},"#":"! =","___1":[12,3,0]},"! ?":{" ":true,"&":[],"'":["! +"],"$":"! ?","!":"Spine1Part2_M","%":{},"#":"! >","___1":[12,3,0]},"! +":{" ":true,"&":[],"'":["! @","! R","! V"],"$":"! +","!":"Chest_M","%":{},"#":"! ?","___1":[12,231,0]},"! @":{" ":true,"&":[],"'":["! A"],"$":"! @","!":"Scapula_R","%":{},"#":"! +","___1":[234,237,0]},"! A":{" ":true,"&":[],"'":["! B"],"$":"! A","!":"Shoulder_R","%":{},"#":"! @","___1":[240,243,0]},"! B":{" ":true,"&":[],"'":["! &"],"$":"! B","!":"Elbow_R","%":{},"#":"! A","___1":[246,30,0]},"! &":{" ":true,"&":[],"'":["! C","! F","! I","! /"],"$":"! &","!":"Wrist_R","%":{},"#":"! B","___1":[249,252,0]},"! C":{" ":true,"&":[],"'":["! D"],"$":"! C","!":"MiddleFinger1_R","%":{},"#":"! &","___1":[255,33,0]},"! D":{" ":true,"&":[],"'":["! E"],"$":"! D","!":"MiddleFinger2_R","%":{},"#":"! C","___1":[258,36,0]},"! E":{" ":true,"&":[],"'":["! s"],"$":"! E","!":"MiddleFinger3_R","%":{},"#":"! D","___1":[261,39,0]},"! s":{" ":true,"&":[],"'":[],"$":"! s","!":"MiddleFinger4_R","%":{},"#":"! E","___1":[264,3,0]},"! F":{" ":true,"&":[],"'":["! G"],"$":"! F","!":"ThumbFinger1_R","%":{},"#":"! &","___1":[267,42,0]},"! G":{" ":true,"&":[],"'":["! H"],"$":"! G","!":"ThumbFinger2_R","%":{},"#":"! F","___1":[270,45,0]},"! H":{" ":true,"&":[],"'":["! t"],"$":"! H","!":"ThumbFinger3_R","%":{},"#":"! G","___1":[273,3,0]},"! t":{" ":true,"&":[],"'":[],"$":"! t","!":"ThumbFinger4_R","%":{},"#":"! H","___1":[276,3,0]},"! I":{" ":true,"&":[],"'":["! J"],"$":"! I","!":"IndexFinger1_R","%":{},"#":"! &","___1":[279,48,0]},"! J":{" ":true,"&":[],"'":["! K"],"$":"! J","!":"IndexFinger2_R","%":{},"#":"! I","___1":[282,51,0]},"! K":{" ":true,"&":[],"'":["! u"],"$":"! K","!":"IndexFinger3_R","%":{},"#":"! J","___1":[285,54,0]},"! u":{" ":true,"&":[],"'":[],"$":"! u","!":"IndexFinger4_R","%":{},"#":"! K","___1":[288,3,0]},"! /":{" ":true,"&":[],"'":["! L","! O"],"$":"! /","!":"Cup_R","%":{},"#":"! &","___1":[291,57,0]},"! L":{" ":true,"&":[],"'":["! M"],"$":"! L","!":"RingFinger1_R","%":{},"#":"! /","___1":[294,60,0]},"! M":{" ":true,"&":[],"'":["! N"],"$":"! M","!":"RingFinger2_R","%":{},"#":"! L","___1":[297,63,0]},"! N":{" ":true,"&":[],"'":["! v"],"$":"! N","!":"RingFinger3_R","%":{},"#":"! M","___1":[300,66,0]},"! v":{" ":true,"&":[],"'":[],"$":"! v","!":"RingFinger4_R","%":{},"#":"! N","___1":[303,3,0]},"! O":{" ":true,"&":[],"'":["! P"],"$":"! O","!":"PinkyFinger1_R","%":{},"#":"! /","___1":[306,69,0]},"! P":{" ":true,"&":[],"'":["! Q"],"$":"! P","!":"PinkyFinger2_R","%":{},"#":"! O","___1":[309,72,0]},"! Q":{" ":true,"&":[],"'":["! w"],"$":"! Q","!":"PinkyFinger3_R","%":{},"#":"! P","___1":[312,75,0]},"! w":{" ":true,"&":[],"'":[],"$":"! w","!":"PinkyFinger4_R","%":{},"#":"! Q","___1":[315,3,0]},"! R":{" ":true,"&":[],"'":["! '"],"$":"! R","!":"Neck_M","%":{},"#":"! +","___1":[318,321,0]},"! '":{" ":true,"&":[],"'":["! S","! T","! z","! U"],"$":"! '","!":"Head_M","%":{},"#":"! R","___1":[324,327,0]},"! S":{" ":true,"&":[],"'":["! x"],"$":"! S","!":"Eye_R","%":{},"#":"! '","___1":[330,78,0]},"! x":{" ":true,"&":[],"'":[],"$":"! x","!":"EyeEnd_R","%":{},"#":"! S","___1":[81,333,0]},"! T":{" ":true,"&":[],"'":["! y"],"$":"! T","!":"Jaw_M","%":{},"#":"! '","___1":[336,339,0]},"! y":{" ":true,"&":[],"'":[],"$":"! y","!":"JawEnd_M","%":{},"#":"! T","___1":[342,3,0]},"! z":{" ":true,"&":[],"'":[],"$":"! z","!":"HeadEnd_M","%":{},"#":"! '","___1":[345,3,0]},"! U":{" ":true,"&":[],"'":["! {"],"$":"! U","!":"Eye_L","%":{},"#":"! '","___1":[348,78,0]},"! {":{" ":true,"&":[],"'":[],"$":"! {","!":"EyeEnd_L","%":{},"#":"! U","___1":[81,351,0]},"! V":{" ":true,"&":[],"'":["! W"],"$":"! V","!":"Scapula_L","%":{},"#":"! +","___1":[354,357,0]},"! W":{" ":true,"&":[],"'":["! X"],"$":"! W","!":"Shoulder_L","%":{},"#":"! V","___1":[360,363,0]},"! X":{" ":true,"&":[],"'":["! ("],"$":"! X","!":"Elbow_L","%":{},"#":"! W","___1":[366,30,0]},"! (":{" ":true,"&":[],"'":["! Y","! ]","! `","! 0"],"$":"! (","!":"Wrist_L","%":{},"#":"! X","___1":[369,372,0]},"! Y":{" ":true,"&":[],"'":["! Z"],"$":"! Y","!":"MiddleFinger1_L","%":{},"#":"! (","___1":[375,33,0]},"! Z":{" ":true,"&":[],"'":["! ["],"$":"! Z","!":"MiddleFinger2_L","%":{},"#":"! Y","___1":[378,36,0]},"! [":{" ":true,"&":[],"'":["! |"],"$":"! [","!":"MiddleFinger3_L","%":{},"#":"! Z","___1":[381,39,0]},"! |":{" ":true,"&":[],"'":[],"$":"! |","!":"MiddleFinger4_L","%":{},"#":"! [","___1":[384,3,0]},"! ]":{" ":true,"&":[],"'":["! ^"],"$":"! ]","!":"ThumbFinger1_L","%":{},"#":"! (","___1":[387,42,0]},"! ^":{" ":true,"&":[],"'":["! _"],"$":"! ^","!":"ThumbFinger2_L","%":{},"#":"! ]","___1":[390,45,0]},"! _":{" ":true,"&":[],"'":["! }"],"$":"! _","!":"ThumbFinger3_L","%":{},"#":"! ^","___1":[393,3,0]},"! }":{" ":true,"&":[],"'":[],"$":"! }","!":"ThumbFinger4_L","%":{},"#":"! _","___1":[396,3,0]},"! `":{" ":true,"&":[],"'":["! a"],"$":"! `","!":"IndexFinger1_L","%":{},"#":"! (","___1":[399,48,0]},"! a":{" ":true,"&":[],"'":["! b"],"$":"! a","!":"IndexFinger2_L","%":{},"#":"! `","___1":[402,51,0]},"! b":{" ":true,"&":[],"'":["! ~"],"$":"! b","!":"IndexFinger3_L","%":{},"#":"! a","___1":[405,54,0]},"! ~":{" ":true,"&":[],"'":[],"$":"! ~","!":"IndexFinger4_L","%":{},"#":"! b","___1":[408,3,0]},"! 0":{" ":true,"&":[],"'":["! c","! f"],"$":"! 0","!":"Cup_L","%":{},"#":"! (","___1":[411,57,0]},"! c":{" ":true,"&":[],"'":["! d"],"$":"! c","!":"RingFinger1_L","%":{},"#":"! 0","___1":[414,60,0]},"! d":{" ":true,"&":[],"'":["! e"],"$":"! d","!":"RingFinger2_L","%":{},"#":"! c","___1":[417,63,0]},"! e":{" ":true,"&":[],"'":["!! "],"$":"! e","!":"RingFinger3_L","%":{},"#":"! d","___1":[420,66,0]},"!! ":{" ":true,"&":[],"'":[],"$":"!! ","!":"RingFinger4_L","%":{},"#":"! e","___1":[423,3,0]},"! f":{" ":true,"&":[],"'":["! g"],"$":"! f","!":"PinkyFinger1_L","%":{},"#":"! 0","___1":[426,69,0]},"! g":{" ":true,"&":[],"'":["! h"],"$":"! g","!":"PinkyFinger2_L","%":{},"#":"! f","___1":[429,72,0]},"! h":{" ":true,"&":[],"'":["!!!"],"$":"! h","!":"PinkyFinger3_L","%":{},"#":"! g","___1":[432,75,0]},"!!!":{" ":true,"&":[],"'":[],"$":"!!!","!":"PinkyFinger4_L","%":{},"#":"! h","___1":[435,3,0]},"! i":{" ":true,"&":[],"'":["! j"],"$":"! i","!":"Hip_L","%":{},"#":"! $","___1":[438,441,0]},"! j":{" ":true,"&":[],"'":["! k"],"$":"! j","!":"Knee_L","%":{},"#":"! i","___1":[444,21,0]},"! k":{" ":true,"&":[],"'":["! l"],"$":"! k","!":"Ankle_L","%":{},"#":"! j","___1":[447,24,0]},"! l":{" ":true,"&":[],"'":["!!#"],"$":"! l","!":"Toes_L","%":{},"#":"! k","___1":[450,27,0]},"!!#":{" ":true,"&":[],"'":[],"$":"!!#","!":"ToesEnd_L","%":{},"#":"! l","___1":[453,3,0]},"! .":{" ":true,"&":[],"'":["!!$","!!%"],"$":"! .","!":"Geo","%":{},"#":"! *","___2":0},"!!$":{" ":true,"&":[],"'":[],"$":"!!$","!":"SuitGEO01","%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":"! $"," ":true,"(":"asset","+":80915304,"/":[80915301],")":[0],"*":null,",":false,"-":false}},"#":"! .","___2":0},"!!%":{" ":true,"&":[],"'":[],"$":"!!%","!":"HeadF","%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":"! $"," ":true,"(":"asset","+":80915305,"/":[80915302],")":[0],"*":null,",":false,"-":false}},"#":"! .","___2":0},"!!&":{"!":"MinSliderEnd","&":[]," ":true,"$":"!!&","#":"! #","'":[],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":false,"(":"plane","+":null,"/":[86059723],")":[0],"*":null,",":false,"-":false}},"___1":[456,84,87]},"!!'":{"!":"MaxSliderEnd","&":[]," ":true,"$":"!!'","#":"! #","'":[],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":false,"(":"plane","+":null,"/":[86059723],")":[0],"*":null,",":false,"-":false}},"___1":[459,90,93]},"!!7":{"!":"SliderKnot","&":[]," ":true,"$":"!!7","#":"! #","'":[],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"plane","+":null,"/":[86175481],")":[0],"*":null,",":false,"-":false},"b":{"9":2," ":true,"(":"box","c":[0.012,0.007,0.027],"d":0.5,"e":1,"+":null,"f":null},";":{" ":true,"<":["sliderHorizontal"],"=":{"!_":{"8":{"a":0,"!(":"!!&","!)":"!!'","!*":0.02,"!+":0.02,"!,":0,"!`":"! 2","!a":"!!("}," ":true}}}},"___1":[462,15,465]},"! 2":{"!":"Box","&":[]," ":true,"$":"! 2","#":"! )","'":["! 3"],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":false,"(":"box","+":null,"/":[null],")":[0],"*":null,",":false,"-":false}},"___1":[468,3,471]},"!!/":{"!":"Box","&":[]," ":true,"$":"!!/","#":"! %","'":[],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"box","+":null,"/":[78181757],")":[0],"*":null,",":true,"-":false}},"___1":[474,3,477]},"! #":{"!":"HorizontalSlider","&":[]," ":true,"$":"! #","#":"! 1","'":["!!&","!!'","!!7","!!8","!!(","!!9"],"%":{},"___2":0},"! ":{"!":"VerticalSlider","&":[]," ":true,"$":"! ","#":"! 1","'":["!!:","!!)","!!*","!!;","!!<","!!+","!!="],"%":{},"___1":[480,483,0]},"!!:":{"!":"Plane","&":[]," ":false,"$":"!!:","#":"! ","'":[],"%":{".":{"0":false,"1":false,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"plane","+":null,"/":[null],")":[0],"*":null,",":false,"-":false}},"___1":[486,489,492]},"!!)":{"!":"MinSliderEnd","&":[]," ":true,"$":"!!)","#":"! ","'":[],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":false,"(":"plane","+":null,"/":[86059723],")":[0],"*":null,",":false,"-":false}},"___1":[495,84,87]},"!!*":{"!":"MaxSliderEnd","&":[]," ":true,"$":"!!*","#":"! ","'":[],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":false,"(":"plane","+":null,"/":[86059723],")":[0],"*":null,",":false,"-":false}},"___1":[498,90,93]},"!!;":{"!":"Plane","&":[]," ":true,"$":"!!;","#":"! ","'":[],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"plane","+":null,"/":[86175481],")":[0],"*":null,",":false,"-":false},"b":{"9":2," ":true,"(":"box","c":[0.012,0.007,0.027],"d":0.5,"e":1,"+":null,"f":null},";":{" ":true,"<":["sliderVertical"],"=":{"!b":{"8":{"a":0,"!,":0,"!(":"!!)","!)":"!!*","!*":0,"!+":0,"!c":"! n","!1":1,"!d":"!!+"}," ":true}}}},"___1":[501,15,504]},"!!,":{"!":"Minimum","&":[]," ":true,"$":"!!,","#":"! !","'":[],"%":{".":{"0":false,"1":false,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":false,"(":"plane","+":null,"/":[null],")":[0],"*":null,",":false,"-":false}},"___1":[507,6,96]},"!!-":{"!":"Maximum","&":[]," ":true,"$":"!!-","#":"! !","'":[],"%":{".":{"0":false,"1":false,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":false,"(":"plane","+":null,"/":[null],")":[0],"*":null,",":false,"-":false}},"___1":[510,6,96]},"!!>":{"!":"SliderKnot","&":[]," ":true,"$":"!!>","#":"! !","'":[],"%":{".":{"0":false,"1":false,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"plane","+":null,"/":[86175481],")":[0],"*":null,",":false,"-":false},";":{" ":true,"<":["scaleSlider"],"=":{"!e":{"8":{"a":0,"!,":0,"!(":"!!,","!)":"!!-","!*":0.38,"!+":0.26,"!1":1,"!f":"! *","!g":"!!."}," ":true}}},"b":{"9":2," ":true,"(":"box","c":[0.164,0.058,0.148],"d":0.5,"e":1,"+":null,"f":null}},"___1":[513,6,516]},"! !":{"!":"HeightSlider","&":[]," ":true,"$":"! !","#":"! -","'":["!!,","!!-","!!>","!!?","!!@","!!."],"%":{},"___2":0},"!!6":{"!":"Omni01","&":[]," ":true,"$":"!!6","#":"! p","'":[],"%":{"g":{" ":true,"(":"point","h":false,"i":0,"j":1,"k":true,"l":true,"m":false,":":[1,1,1],"n":0.59,",":true,"o":2,"p":0,"q":1,"r":11,"s":0.01,"t":16,"u":1024,"v":1,"w":0.5,"x":0.2,"y":0.05,"z":39.47,"{":0,"|":40,"}":45,"~":0,"! ":null,"!!":1,"!#":true,"!$":"rgb","!%":0,"!&":[1,1],"!'":[0,0],"-":false,")":[0]}},"___1":[519,3,0]},"!!8":{"!":"Plane","&":[]," ":true,"$":"!!8","#":"! #","'":[],"%":{".":{"0":false,"1":false,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"plane","+":null,"/":[86175118],")":[0],"*":null,",":false,"-":false}},"___1":[522,15,525]},"!!<":{"!":"Plane","&":[]," ":true,"$":"!!<","#":"! ","'":[],"%":{".":{"0":false,"1":false,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"plane","+":null,"/":[86175694],")":[0],"*":null,",":false,"-":false}},"___1":[528,531,534]},"!!?":{"!":"Plane","&":[]," ":true,"$":"!!?","#":"! !","'":[],"%":{".":{"0":false,"1":false,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"plane","+":null,"/":[86175694],")":[0],"*":null,",":false,"-":false}},"___1":[537,18,540]},"!!9":{"!":"RoomWidthTextLabel","&":[]," ":true,"$":"!!9","#":"! #","'":[],"%":{"@":{"9":32," ":true,"(":"text","A":[0.5,0.5,0.5,0.5],"B":[0.5,0.5],"C":"Room Width (m):","D":null,"E":79465530,"F":50,"G":8,"H":32,"I":false,"J":false,"K":null,"L":32,"M":true,"N":1,":":[0,0,0],"O":1,"P":null,"Q":null,"R":0,"S":null,"?":247.5,"T":[-193.386,-23.604,-193.332,-23.075],"U":[0.5,0.5],"V":[1,1,1,1],"W":0.22,"X":[0,0,0,1],"Y":[0,0],">":[0,0,1,1],"Z":null,"[":true,"]":true,"^":false,"*":null,"_":false,")":[4],"`":false}},"___1":[543,3,9]},"!!(":{"!":"RoomWidthNumber","&":[]," ":true,"$":"!!(","#":"! #","'":[],"%":{"@":{"9":29.875," ":true,"(":"text","A":[0.5,0.5,0.5,0.5],"B":[0.5,0.5],"C":"2.2","D":null,"E":79465530,"F":50,"G":8,"H":32,"I":false,"J":false,"K":null,"L":32,"M":true,"N":1,":":[0,0,0],"O":1,"P":null,"Q":null,"R":0,"S":null,"?":42.078,"T":[-32.755,-23.606,-32.992,-23.074],"U":[0.5,0.5],"V":[1,1,1,1],"W":0.22,"X":[0,0,0,1],"Y":[0,0],">":[0,0,1,1],"Z":null,"[":true,"]":true,"^":false,"*":null,"_":false,")":[4],"`":false}},"___1":[546,3,9]},"!!+":{"!":"RoomWidthNumber","&":[]," ":true,"$":"!!+","#":"! ","'":[],"%":{"@":{"9":29.875," ":true,"(":"text","A":[0.5,0.5,0.5,0.5],"B":[0.5,0.5],"C":"2.5","D":null,"E":79465530,"F":50,"G":8,"H":32,"I":false,"J":false,"K":null,"L":32,"M":true,"N":1,":":[0,0,0],"O":1,"P":null,"Q":null,"R":0,"S":null,"?":41.688,"T":[-32.792,-23.684,-32.345,-22.996],"U":[0.5,0.5],"V":[1,1,1,1],"W":0.22,"X":[0,0,0,1],"Y":[0,0],">":[0,0,1,1],"Z":null,"[":true,"]":true,"^":false,"*":null,"_":false,")":[4],"`":false}},"___1":[549,99,9]},"!!=":{"!":"RoomWidthTextLabel","&":[]," ":true,"$":"!!=","#":"! ","'":[],"%":{"@":{"9":46.68," ":true,"(":"text","A":[0.5,0.5,0.5,0.5],"B":[0.5,0.5],"C":"Ceiling(m):","D":null,"E":79465530,"F":50,"G":8,"H":32,"I":false,"J":false,"K":null,"L":32,"M":true,"N":1,":":[0,0,0],"O":1,"P":null,"Q":null,"R":0,"S":null,"?":249.829,"T":[-125.105,-23.684,-124.724,-22.996],"U":[0.5,0.5],"V":[1,1,1,1],"W":0.22,"X":[0,0,0,1],"Y":[0,0],">":[0,0,1,1],"Z":null,"[":true,"]":true,"^":false,"*":null,"_":false,")":[4],"`":false}},"___1":[552,99,9]},"!!@":{"!":"RoomWidthTextLabel","&":[]," ":true,"$":"!!@","#":"! !","'":[],"%":{"@":{"9":29.875," ":true,"(":"text","A":[0.5,0.5,0.5,0.5],"B":[0.5,0.5],"C":"CM","D":null,"E":79465530,"F":32,"G":8,"H":32,"I":false,"J":false,"K":null,"L":32,"M":true,"N":1,":":[0,0,0],"O":1,"P":null,"Q":null,"R":0,"S":null,"?":46.141,"T":[-28.89,-0.038,-17.25,-29.837],"U":[0.5,0.5],"V":[1,1,1,1],"W":0.22,"X":[0,0,0,1],"Y":[0,0],">":[0,0,1,1],"Z":null,"[":true,"]":true,"^":false,"*":null,"_":false,")":[4],"`":false}},"___1":[555,102,558]},"!!.":{"!":"ModelHeightNumber","&":[]," ":true,"$":"!!.","#":"! !","'":[],"%":{"@":{"9":29.875," ":true,"(":"text","A":[0.5,0.5,0.5,0.5],"B":[0.5,0.5],"C":"200","D":null,"E":79465530,"F":32,"G":8,"H":32,"I":false,"J":false,"K":null,"L":32,"M":true,"N":1,":":[0,0,0],"O":1,"P":null,"Q":null,"R":0,"S":null,"?":56.859,"T":[-31.976,-0.04,-24.883,-29.835],"U":[0.5,0.5],"V":[1,1,1,1],"W":0.22,"X":[0,0,0,1],"Y":[0,0],">":[0,0,1,1],"Z":null,"[":true,"]":true,"^":false,"*":null,"_":false,")":[4],"`":false}},"___1":[561,102,564]},"!!1":{"!":"C-Ext01","&":[]," ":true,"$":"!!1","#":"! 3","'":[],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"asset","+":78181885,"/":[78181759],")":[0],"*":null,",":true,"-":false}},"___1":[567,3,570]},"!!2":{"!":"C-Ext01","&":[]," ":true,"$":"!!2","#":"! 3","'":[],"%":{".":{"0":true,"1":true,"2":false,"3":1,"4":true,"5":false,"6":1,"7":null," ":true,"(":"asset","+":78181885,"/":[78181759],")":[0],"*":null,",":true,"-":false}},"___1":[573,576,579]}},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":1390892,"compressedFormat":{"fieldFirstCode":32,"fieldCodeBase":95,"fieldArray":["enabled","name",1,"parent","resource_id","components","tags","children","type","layers","batchGroupId","asset","castShadows","isStatic","render","materialAssets","castShadowsLightmap","receiveShadows","lightmapped","lightmapSizeMultiplier","castShadowsLightMap","lightMapped","lightMapSizeMultiplier","rootBone","attributes","height","color","script","order","scripts","rect","width","element","anchor","pivot","text","key","fontAsset","fontSize","minFontSize","maxFontSize","autoFitWidth","autoFitHeight","maxLines","lineHeight","wrapLines","spacing","opacity","textureAsset","spriteAsset","spriteFrame","pixelsPerUnit","margin","alignment","outlineColor","outlineThickness","shadowColor","shadowOffset","materialAsset","autoWidth",1,"autoHeight","useInput","mask","enableMarkup","Selected","collision","halfExtents","radius","axis","renderAsset","light","bake","bakeArea","bakeNumSamples","bakeDir","affectDynamic","affectLightmapped","intensity","shadowUpdateMode","shadowType","vsmBlurMode","vsmBlurSize","vsmBias","shadowDistance","shadowResolution","numCascades","cascadeDistribution","shadowBias","normalOffsetBias","range","falloffMode","innerConeAngle","outerConeAngle","shape","cookieAsset","cookieIntensity",1,"cookieFalloff","cookieChannel","cookieAngle","cookieScale","cookieOffset","MinLimit","MaxLimit","MinLimitOffset","MaxLimitOffset","SliderValue","mouse","touch","template_ent_ids","template_id","RaiseFactor","camera","projection","farClip","clearColorBuffer","priority","fov","clearDepthBuffer","frustumCulling","clearColor","orthoHeight","nearClip","pickerRaycast","roomWidthSlider","html","css","switchingTextures","textures","url","WebTexture","rigidbody","mass","linearDamping","angularDamping","linearFactor","angularFactor","friction","restitution","sliderVisible","SliderEntity","Interval","155feed0-4828-4db3-bd69-ec82a43b842a","a7c74765-6d1f-4585-83fa-3d1678d4565c","c4e7019f-d3ef-48c6-8f74-3d5beb2f2d4e","c7f8fe2d-4cc6-4e6b-9050-ec7eb392e1ca","209d5672-6d22-4502-bbcd-704d9b2fad6b","showHeightAndWidth","hideInterval","physicalHeight","physicalWidth","ImageEntity","baseScaleWidth","baseScaleHeight",1,"getHeightFromUrlparams","getWidthFromUrlparams","sliderHorizontal","RoomWidth","RoomWidthText","sliderVertical","Ceiling","CeilingHeightText","scaleSlider","Model","ModelHeightText"],"singleVecs":[1,1,1,0,0,0,-90,0,0,0.00059,0.00059,0.00593,4.57661,0,0,90,0,0,90,180,0,0,0,-9.83765,1.70759,6.38072,10.1826,-4.68637,1.48242,86.1308,0,0,10.2376,16.6631,19.9882,4.62472,0.03899,21.5463,0.0132,0.05442,11.2242,0.01184,-50.0838,12.4673,45.8555,0,4.37155,0,12.8626,11.9827,15.7219,0.03037,19.975,-0.00271,-1.73917,20.228,-0.66787,0.03545,2.78555,0.72947,17.5479,25.7488,-3.43213,-0.29036,10.8685,-0.05631,0.58929,16.0378,0.17081,15.0094,29.8961,-14.1535,0.27993,3.28062,0.12607,2.18092,11.1041,0.39643,0,0,84.3542,1.65817,0,0,90,0,180,0.04131,0.04027,0.0417,90,0,-180,0.0392,0.04027,0.0417,2.18491,2.18491,2.18491,0,0,-90,180,0,-180,0.82906,1.11542,-5.99003,180,0,180,-0.03963,0,-0.29508,0,0,0.69745,360,90,0,0.00801,0.00309,0.00493,2.54,2.54,2.54,129.593,0,84.7355,10.05528,10.05528,10.05528,188.71229,-187.04491,-291.27156,1.809,1.916,0.84571,66.88726,129.36642,95.34216,1.72418,-0.05229,1.574,0.10537,0.10537,0.10537,0.29042,0.30065,1.58792,-0.01811,0.03637,-1.05991,1,1,0.17553,0.40313,0.07274,-0.34441,0,88.28624,0,1.5209,1,0.24756,0.00408,-0.001,0.73984,-90,-90,0,0.01633,0.00326,0.00471,0,-0.001,-0.827,0.00648,0.03073,0.00505,247.305,182.83083,56.25824,151.85122,-8.3473,-340.37986,0,2.3,-1.40541,97.12108,0.64764,1602.27268,0.41092,0.21622,-1.50434,-180,0.04179,-180,0.10168,0.10168,0.10168,0,95.3786,-1.71933,90,-2.06823,90,-2.04778,-0.44583,-9.98721,-178.09,6.36596,178.487,44.9641,0,0,39.9237,0,0,7.95222,15.2582,0,6.08362,0,0,17.1229,0,0,0,0,-8.40716,0,0,8.22027,15.5097,-1.70398,-8.47709,-40.4095,82.4185,-48.3494,12.1813,0,0,-8.04775,85.0757,-5.30434,27.3069,0,0,25.3891,0,0,-25.03787,-11.86115,11.42346,10.7004,0,0,4.89337,0,0,2.69621,0,0,2.71607,0,0,3.10674,2.31021,-0.48335,4.34949,0,0,3.1758,0,0,2.76567,0,0,10.4145,2.09944,0.18772,4.25091,0,0,2.52958,0,0,2.13039,0,0,1.94157,-1.04512,0.00629,8.45064,-0.93379,-0.41941,4.34265,0,0,2.67256,0,0,2.53469,0,0,7.91143,-2.6839,-1.31764,3.58146,0,0,1.91524,0,0,1.72662,0,0,23.2872,0,0,0,0,19.0927,9.92291,0,0,0,0,-15.3283,8.45394,6.53702,-3.17524,15.9437,-0.26039,-0.01814,0.7124,0.79216,0,0,0,114.083,11.1906,0,0,21.1224,0,0,8.45394,6.53702,3.17524,-15.9437,0.26039,-0.01814,15.5097,-1.70398,8.47709,-40.4095,82.4185,131.651,-12.1813,0,0,-9.62855,85.69364,-6.94368,-27.3069,0,0,-25.3891,0,0,-17.98275,2.76806,9.94243,-10.7004,0,0,-4.89337,0,0,-2.69621,0,0,-2.71607,0,0,-3.10674,-2.31021,0.48335,-4.34949,0,0,-3.1758,0,0,-2.76567,0,0,-10.4145,-2.09944,-0.18772,-4.25091,0,0,-2.52958,0,0,-2.13039,0,0,-1.94157,1.04512,-0.00629,-8.45064,0.93379,0.41941,-4.34265,0,0,-2.67256,0,0,-2.53469,0,0,-7.91143,2.6839,1.31764,-3.58146,0,0,-1.91524,0,0,-1.72662,0,0,-2.04778,-0.44583,9.98721,-178.09,6.36596,-1.51345,-44.9641,0,0,-39.9237,0,0,-7.95222,-15.2582,0,-6.08362,0,0,-0.14026,-0.241,-0.78977,0.1238,-0.24361,-0.79728,-0.1201,-0.25119,-0.811,0.02188,0.02908,0.02046,196.89171,187.04491,43.35508,1,1,0.5,2.98725,2.5505,4.48496,21.84536,6.36697,5.4856,-0.78534,0.00966,-0.00518,0,0,90,-0.03275,-0.25974,-0.84154,90,0,90,0.00479,0.04027,0.22664,-0.13344,-0.23969,-0.8106,0.08279,-0.24302,-0.80683,-0.13377,-0.28369,-0.80381,0.02291,0.02532,0.02494,-4.32415,2.69128,-0.00577,-4.32415,12.64214,-0.02576,-4.32415,12.10678,-0.00408,1.14645,1.14645,1.14645,247.30498,-14.20643,56.25825,-0.00939,-0.25437,-0.82418,0.33512,0.36051,0.08456,-0.02949,-0.283,-0.8082,90,0,-90,0.0862,0.05171,0.30854,-4.36523,7.68097,0.00758,3.20613,10.51753,13.83415,-0.02698,-0.26461,-0.70218,0.11865,-0.26566,-0.706,-0.22364,-0.344,-0.70483,-0.19006,-0.34407,-0.70218,-5.82006,14.8995,0.14434,0.03974,0.03531,0.06174,-3.54648,14.8975,0.14434,0.04033,0.03884,0.06174,0,-3.38298,3.9899,1.8,0.02168,0.988,-293.74893,-3.38298,-10.3123,180,90,-180,1.8,0.02168,0.073],"tripleVecs":[3,3,0]}} \ No newline at end of file +{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","name":"Untitled","created":"2022-04-14T19:03:47.042Z","settings":{"physics":{"gravity":[0,-9.8,0]},"render":{"lightmapFilterRange":10,"tonemapping":0,"ambientBakeOcclusionContrast":0,"skybox":null,"lightmapFilterSmoothness":0.2,"gamma_correction":1,"fog_start":1,"skyboxIntensity":1,"fog_color":[0,0,0],"lightmapMode":1,"ambientBakeSpherePart":0.4,"fog":"none","lightmapMaxResolution":2048,"skyboxMip":0,"lightmapSizeMultiplier":16,"fog_end":1000,"lightmapFilterEnabled":false,"ambientBake":false,"fog_density":0.01,"exposure":1,"global_ambient":[0.2,0.2,0.2],"ambientBakeNumSamples":1,"ambientBakeOcclusionBrightness":0,"skyboxRotation":[0,0,0]}},"entities":{"! 1":{"#":"Camera","!":"! ","$":"! 1","%":{"!W":{"!X":0,"!Y":1000,"!Z":true,")":[0,1,2,3,4],"![":0,"!]":45,"!^":true,"!_":true,"!`":[0.118,0.118,0.118,1]," ":true,"!a":4,"!b":0.1,";":[0,0,1,1]},"^":{" ":true,"_":["fxaa","pickerRaycast"],"`":{"!c":{" ":true,"/":{}},"!d":{" ":true,"/":{}}}}},"&":[]," ":true,"'":["! $","! #"],"___1":[54,57,3]},"! ":{"#":"Root","!":null,"$":"! ","%":{},"&":[]," ":true,"'":["! K","! 1","! *","! L","! 9","! )","! 2","! M","! %"],"___2":0},"! &":{"#":"ImgPlane","&":[]," ":true,"$":"! &","!":"! *","'":[],"%":{"0":{"1":[78072855],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false},"^":{" ":true,"_":["switchingTextures"],"`":{"!e":{" ":true,"/":{"!f":[78072763,78072763],"!g":"https://farsh-mobile.s3.me-south-1.amazonaws.com/cdn/loonie1.png","!h":null}}}}},"___1":[60,0,3]},"! 9":{" ":true,"&":[],"'":["! +"],"$":"! 9","#":"livingroom","%":{},"!":"! ","___1":[63,66,69]},"! +":{" ":true,"&":[],"'":["! :","! ;","! ,"],"$":"! +","#":"Fbx_Root","%":{},"!":"! 9","___1":[0,0,72]},"! L":{" ":true,"&":[],"'":[],"$":"! L","#":"Plane01","%":{"0":{"1":[78181754],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"asset","+":78181884,")":[0],"*":null,",":true,"-":false}},"!":"! ","___1":[75,15,78]},"! 3":{"#":"C-Ext01","&":[]," ":true,"$":"! 3","!":"! ,","'":["! N","! O"],"%":{"0":{"1":[78181757],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"asset","+":78181885,")":[0],"*":null,",":true,"-":false}},"___1":[81,0,84]},"! ;":{"#":"Omni01","&":[]," ":true,"$":"! ;","!":"! +","'":["! P"],"%":{"h":{" ":true,"(":"point","i":false,"j":0,"k":1,"l":true,"m":true,"n":false,":":[1,1,1],"o":0.8,",":false,"p":2,"q":0,"r":1,"s":11,"t":0.01,"u":16,"v":1024,"w":1,"x":0.5,"y":0.2,"z":0.05,"{":8,"|":0,"}":40,"~":45,"! ":0,"!!":null,"!#":1,"!$":true,"!%":"rgb","!&":0,"!'":[1,1],"!(":[0,0],"-":false,")":[0]}},"___1":[87,0,3]},"! )":{" ":true,"&":[],"'":["! !","! 4"],"$":"! )","#":"doorman","%":{"c":{" ":true,"(":"box","d":[0.346,1.745,0.319],"e":0.5,"a":1,".":2,"+":null,"f":null},"!i":{" ":true,"(":"kinematic","!j":1,"!k":0,"!l":0,"!m":[1,1,1],"!n":[1,1,1],"!o":0.5,"!p":0.5},"^":{" ":true,"_":["mouse","touch","sliderVisible"],"`":{"!A":{" ":true,"/":{"b":0}},"!B":{" ":true,"/":{"b":0}},"!q":{" ":false,"/":{"!r":"! !","!s":5}}}}},"!":"! ","!t":{"! )":"2cfeea72-a4bb-4a0e-8dad-abd92cc83dad","!u":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2","!v":"a662f523-2a86-4f77-9951-1053085f7717","!w":"fbf7970b-0b02-48c8-9fbb-6fbb5d4f3485","!x":"cafbe398-372c-44b5-a905-6a9ca90c105c","!y":"6147aeb5-2849-4302-80b1-7120263a14de"},"!z":78401706,"___1":[90,0,93]},"! *":{"#":"Plane","&":[]," ":true,"$":"! *","!":"! ","'":["! 5","! -","! &"],"%":{"0":{"1":[78072855],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":false,"(":"plane","+":null,")":[0],"*":null,",":true,"-":false},"^":{" ":true,"_":["mouse","touch","showHeightAndWidth","moveUpwithScale"],"`":{"!A":{" ":true,"/":{"b":0}},"!B":{" ":true,"/":{"b":0}},"!{":{" ":true,"/":{"<":"! -",".":"! 6","!|":5,"!}":0,"!~":0,"# ":"! &","#!":45,"##":93}},"#$":{" ":true,"/":{"g":"! &"}}}},"c":{" ":true,"(":"box","d":[0.664,0.1,0.767],"e":0.5,"a":1,".":2,"+":null,"f":null}},"___1":[96,24,3]},"! -":{"#":"WidthPlane","&":[]," ":true,"$":"! -","!":"! *","'":["! Q"],"%":{"0":{"1":[79458597],"2":false,"3":false,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false},"^":{" ":true,"_":["matchTargetScale","mantainDistanceWithTargetScale"],"`":{"!C":{" ":true,"/":{"g":"! &","!D":true,"!E":false,"!F":false}},"!G":{" ":true,"/":{"g":"! &","!H":-0.5,"!I":0,"!J":true,"!K":false}}}}},"___1":[99,0,102]},"! 6":{"#":"HeightPlane","&":[]," ":true,"$":"! 6","!":"! 5","'":["! R"],"%":{"0":{"1":[79458597],"2":false,"3":false,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false},"^":{" ":false,"_":[],"`":{}}},"___1":[0,15,3]},"! R":{"#":"FurnitureHieghtText","&":[]," ":true,"$":"! R","!":"! 6","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"90","A":null,"B":91600010,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":39.648,".":31.2,"Q":[-19.84,-15.601,-19.808,-15.599],"R":[0.5,0.5],"S":[1,1,1,1],"T":0.1,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false},"^":{" ":true,"_":["getHeightFromUrlparams","unscaleFromParents"],"`":{"#%":{" ":true,"/":{}},"!L":{" ":true,"/":{"!":"! 5","!M":true,"!N":0.006,"!O":0.006,"!P":0.006}}}}},"___1":[105,108,111]},"! Q":{"#":"FurnitureWidthText","&":[]," ":true,"$":"! Q","!":"! -","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"45","A":null,"B":91600010,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":38.176,".":31.2,"Q":[-19.066,-15.565,-19.11,-15.635],"R":[0.5,0.5],"S":[1,1,1,1],"T":0.13,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false},"^":{" ":true,"_":["getWidthFromUrlparams","unscaleFromParents"],"`":{"#&":{" ":true,"/":{}},"!L":{" ":true,"/":{"!":"! -","!M":false,"!N":0.006,"!O":0.006,"!P":0.006}}}}},"___1":[114,9,117]},"! :":{"#":"Omni01","&":[]," ":true,"$":"! :","!":"! +","'":["! S"],"%":{"h":{" ":true,"(":"point","i":false,"j":0,"k":1,"l":true,"m":true,"n":false,":":[1,1,1],"o":0.59,",":true,"p":2,"q":0,"r":1,"s":11,"t":0.01,"u":16,"v":1024,"w":1,"x":0.5,"y":0.2,"z":0.05,"{":39.47,"|":0,"}":40,"~":45,"! ":0,"!!":null,"!#":1,"!$":true,"!%":"rgb","!&":0,"!'":[1,1],"!(":[0,0],"-":false,")":[0]}},"___1":[120,0,3]},"! P":{"#":"Omni01","&":[]," ":true,"$":"! P","!":"! ;","'":[],"%":{"h":{" ":true,"(":"point","i":false,"j":0,"k":1,"l":true,"m":true,"n":false,":":[1,1,0.92157],"o":0.8,",":false,"p":2,"q":0,"r":1,"s":11,"t":0.01,"u":16,"v":1024,"w":1,"x":0.5,"y":0.2,"z":0.05,"{":8,"|":0,"}":40,"~":45,"! ":0,"!!":null,"!#":1,"!$":true,"!%":"rgb","!&":0,"!'":[1,1],"!(":[0,0],"-":false,")":[0]}},"___1":[123,0,3]},"! 2":{"#":"Ceiling","&":[]," ":true,"$":"! 2","!":"! ","'":[],"%":{"0":{"1":[null],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"box","+":null,")":[0],"*":null,",":true,"-":false}},"___1":[126,0,129]},"! <":{"#":"MinSliderEnd","&":[]," ":true,"$":"! <","!":"! $","'":[],"%":{"0":{"1":[86059723],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":false,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[132,27,30]},"! =":{"#":"MaxSliderEnd","&":[]," ":true,"$":"! =","!":"! $","'":[],"%":{"0":{"1":[86059723],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":false,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[135,33,36]},"! T":{"#":"SliderKnot","&":[]," ":true,"$":"! T","!":"! $","'":[],"%":{"0":{"1":[86175481],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false},"c":{" ":true,"(":"box","d":[0.012,0.007,0.027],"e":0.5,"a":1,".":2,"+":null,"f":null},"^":{" ":true,"_":["sliderHorizontal"],"`":{"#'":{" ":true,"/":{"b":0,"!)":"! <","!*":"! =","!+":0.02,"!,":0.02,"!-":0,"#(":"! ,","#)":"! >"}}}}},"___1":[138,18,141]},"! ,":{"#":"Box","&":[]," ":true,"$":"! ,","!":"! +","'":["! 3"],"%":{"0":{"1":[null],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":false,"(":"box","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[144,0,147]},"! M":{"#":"Box","&":[]," ":true,"$":"! M","!":"! ","'":[],"%":{"0":{"1":[78181757],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"box","+":null,")":[0],"*":null,",":true,"-":false}},"___1":[150,0,153]},"! $":{"#":"HorizontalSlider","&":[]," ":false,"$":"! $","!":"! 1","'":["! <","! =","! T","! U","! >","! V"],"%":{},"___2":0},"! #":{"#":"VerticalSlider","&":[]," ":false,"$":"! #","!":"! 1","'":["! W","! ?","! @","! X","! Y","! A","! Z"],"%":{},"___1":[156,159,3]},"! W":{"#":"Plane","&":[]," ":false,"$":"! W","!":"! #","'":[],"%":{"0":{"1":[null],"2":false,"3":false,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[162,165,168]},"! ?":{"#":"MinSliderEnd","&":[]," ":true,"$":"! ?","!":"! #","'":[],"%":{"0":{"1":[86059723],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":false,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[171,27,30]},"! @":{"#":"MaxSliderEnd","&":[]," ":true,"$":"! @","!":"! #","'":[],"%":{"0":{"1":[86059723],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":false,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[174,33,36]},"! X":{"#":"Plane","&":[]," ":true,"$":"! X","!":"! #","'":[],"%":{"0":{"1":[86175481],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false},"c":{" ":true,"(":"box","d":[0.012,0.007,0.027],"e":0.5,"a":1,".":2,"+":null,"f":null},"^":{" ":true,"_":["sliderVertical"],"`":{"#*":{" ":true,"/":{"b":0,"!-":0,"!)":"! ?","!*":"! @","!+":0,"!,":0,"#+":"! 2","!Q":1,"#,":"! A"}}}}},"___1":[177,18,180]},"! B":{"#":"Minimum","&":[]," ":true,"$":"! B","!":"! !","'":[],"%":{"0":{"1":[null],"2":false,"3":false,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":false,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[183,9,39]},"! C":{"#":"Maximum","&":[]," ":true,"$":"! C","!":"! !","'":[],"%":{"0":{"1":[null],"2":false,"3":false,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":false,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[186,9,39]},"! [":{"#":"SliderKnot","&":[]," ":true,"$":"! [","!":"! !","'":[],"%":{"0":{"1":[86175481],"2":false,"3":false,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false},"^":{" ":true,"_":["scaleSlider"],"`":{"#-":{" ":true,"/":{"b":0,"!-":0,"!)":"! B","!*":"! C","!+":0.38,"!,":0.26,"!Q":1,"#.":"! 4","#/":"! D","#0":"! )"}}}},"c":{" ":true,"(":"box","d":[0.164,0.058,0.148],"e":0.5,"a":1,".":2,"+":null,"f":null}},"___1":[189,9,192]},"! !":{"#":"HeightSlider","&":[]," ":true,"$":"! !","!":"! )","'":["! B","! C","! [","! ]","! ^","! D"],"%":{},"___2":0},"! S":{"#":"Omni01","&":[]," ":true,"$":"! S","!":"! :","'":[],"%":{"h":{" ":true,"(":"point","i":false,"j":0,"k":1,"l":true,"m":true,"n":false,":":[1,1,1],"o":0.59,",":true,"p":2,"q":0,"r":1,"s":11,"t":0.01,"u":16,"v":1024,"w":1,"x":0.5,"y":0.2,"z":0.05,"{":39.47,"|":0,"}":40,"~":45,"! ":0,"!!":null,"!#":1,"!$":true,"!%":"rgb","!&":0,"!'":[1,1],"!(":[0,0],"-":false,")":[0]}},"___1":[195,0,3]},"! U":{"#":"Plane","&":[]," ":true,"$":"! U","!":"! $","'":[],"%":{"0":{"1":[86175118],"2":false,"3":false,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[198,18,201]},"! Y":{"#":"Plane","&":[]," ":true,"$":"! Y","!":"! #","'":[],"%":{"0":{"1":[86175694],"2":false,"3":false,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[204,207,210]},"! ]":{"#":"Plane","&":[]," ":true,"$":"! ]","!":"! !","'":[],"%":{"0":{"1":[86175694],"2":false,"3":false,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[213,24,216]},"! V":{"#":"RoomWidthTextLabel","&":[]," ":true,"$":"! V","!":"! $","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"Room Width (m):","A":null,"B":79465530,"C":50,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":247.5,".":32,"Q":[-193.386,-23.604,-193.332,-23.075],"R":[0.5,0.5],"S":[1,1,1,1],"T":0.22,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[219,0,12]},"! >":{"#":"RoomWidthNumber","&":[]," ":true,"$":"! >","!":"! $","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"2.2","A":null,"B":79465530,"C":50,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":42.078,".":29.875,"Q":[-32.755,-23.606,-32.992,-23.074],"R":[0.5,0.5],"S":[1,1,1,1],"T":0.22,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[222,0,12]},"! A":{"#":"RoomWidthNumber","&":[]," ":true,"$":"! A","!":"! #","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"2.5","A":null,"B":79465530,"C":50,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":41.688,".":29.875,"Q":[-32.792,-23.684,-32.345,-22.996],"R":[0.5,0.5],"S":[1,1,1,1],"T":0.22,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[225,42,12]},"! Z":{"#":"RoomWidthTextLabel","&":[]," ":true,"$":"! Z","!":"! #","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"Ceiling(m):","A":null,"B":79465530,"C":50,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":249.829,".":46.68,"Q":[-125.105,-23.684,-124.724,-22.996],"R":[0.5,0.5],"S":[1,1,1,1],"T":0.22,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[228,42,12]},"! ^":{"#":"RoomWidthTextLabel","&":[]," ":true,"$":"! ^","!":"! !","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"CM","A":null,"B":91600010,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":49.28,".":31.2,"Q":[-30.46,-0.7,-18.82,-30.5],"R":[0.5,0.5],"S":[0,0,0,1],"T":0.05,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[231,45,234]},"! D":{"#":"ModelHeightNumber","&":[]," ":true,"$":"! D","!":"! !","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"200","A":null,"B":91600010,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":58.464,".":31.2,"Q":[-32.778,-0.702,-25.686,-30.498],"R":[0.5,0.5],"S":[0,0,0,1],"T":0.01,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[237,45,240]},"! N":{"#":"C-Ext01","&":[]," ":true,"$":"! N","!":"! 3","'":[],"%":{"0":{"1":[78181759],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"asset","+":78181885,")":[0],"*":null,",":true,"-":false}},"___1":[243,0,246]},"! O":{"#":"C-Ext01","&":[]," ":true,"$":"! O","!":"! 3","'":[],"%":{"0":{"1":[78181759],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"asset","+":78181885,")":[0],"*":null,",":true,"-":false}},"___1":[249,252,255]},"! _":{"#":"Plane","&":[]," ":true,"$":"! _","!":"! 4","'":[],"%":{"0":{"1":[87532120],"2":false,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"plane","+":null,")":[0],"*":null,",":false,"-":false}},"___1":[258,0,261]},"! %":{"#":"2D Screen","&":[]," ":true,"$":"! %","!":"! ","'":["! `","! '","! (","! 7","! .","! /"],"%":{"#1":{" ":true,"#2":true,"#3":"blend","#4":0.5,"#5":[1280,720],"#6":[1280,720]}},"___2":0},"! a":{"#":"Image","&":[]," ":true,"$":"! a","!":"! '","'":[],"%":{"=":{" ":true,"(":"image",">":[0,0.5,0,0.5],"?":[0.5,0.5],"@":"","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[1,1,1],"L":1,"M":89683130,"N":null,"O":0,"P":null,"<":200,".":800,"Q":[-1.238,-400,-198.762,-400],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":false,"Y":false,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[264,0,48]},"! 8":{"#":"SliderKnot","&":[]," ":true,"$":"! 8","!":"! '","'":[],"%":{"=":{" ":true,"(":"image",">":[0,0.5,0,0.5],"?":[0.5,0.5],"@":"","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[1,1,1],"L":1,"M":86173568,"N":null,"O":0,"P":null,"<":200,".":200,"Q":[-0.547,-234.936,-199.453,34.936],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":false,"Y":false,"Z":false,"*":null,"[":false,")":[4],"]":false},"^":{" ":true,"_":["uiSlider"],"`":{"!R":{" ":true,"/":{"!S":"! 8","a":"y","!T":"! E","!U":"! F","!V":0}}}}},"___1":[267,0,6]},"! E":{"#":"UpperLimit","&":[]," ":false,"$":"! E","!":"! '","'":[],"%":{"=":{" ":true,"(":"image",">":[0,0.5,0,0.5],"?":[0.5,0.5],"@":"","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[1,1,1],"L":1,"M":86173568,"N":null,"O":0,"P":null,"<":200,".":200,"Q":[-1.057,27.881,-198.943,-227.881],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":false,"Y":false,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[270,0,6]},"! F":{"#":"LowerLimit","&":[]," ":false,"$":"! F","!":"! '","'":[],"%":{"=":{" ":true,"(":"image",">":[0,0.5,0,0.5],"?":[0.5,0.5],"@":"","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[1,1,1],"L":1,"M":86173568,"N":null,"O":0,"P":null,"<":200,".":200,"Q":[-0.696,-238.105,-199.304,38.105],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":false,"Y":false,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[273,0,6]},"! '":{"#":"CeilingSlider","&":[]," ":false,"$":"! '","!":"! %","'":["! a","! 8","! E","! F","! b"],"%":{},"___2":0},"! (":{"#":"RoomWidthSlider","&":[]," ":false,"$":"! (","!":"! %","'":["! c","! 0","! G","! H","! d"],"%":{},"___2":0},"! 0":{"#":"SliderKnot","&":[]," ":true,"$":"! 0","!":"! (","'":[],"%":{"=":{" ":true,"(":"image",">":[0.5,0,0.5,0],"?":[0.5,0.5],"@":"","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[1,1,1],"L":1,"M":86173568,"N":null,"O":0,"P":null,"<":200,".":200,"Q":[-229.474,-47.738,29.474,-152.262],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":false,"Y":false,"Z":false,"*":null,"[":false,")":[4],"]":false},"^":{" ":true,"_":["uiSlider"],"`":{"!R":{" ":true,"/":{"!S":"! 0","a":"x","!T":"! G","!U":"! H","!V":0}}}}},"___1":[276,0,6]},"! G":{"#":"UpperLimit","&":[]," ":false,"$":"! G","!":"! (","'":[],"%":{"=":{" ":true,"(":"image",">":[0.5,0,0.5,0],"?":[0.5,0.5],"@":"","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[1,1,1],"L":1,"M":86173568,"N":null,"O":0,"P":null,"<":200,".":200,"Q":[34.565,-47.98,-234.565,-152.02],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":false,"Y":false,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[279,0,6]},"! H":{"#":"LowerLimit","&":[]," ":false,"$":"! H","!":"! (","'":[],"%":{"=":{" ":true,"(":"image",">":[0.5,0,0.5,0],"?":[0.5,0.5],"@":"","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[1,1,1],"L":1,"M":86173568,"N":null,"O":0,"P":null,"<":200,".":200,"Q":[-234.541,-47.814,34.541,-152.186],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":false,"Y":false,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[282,0,6]},"! c":{"#":"Image","&":[]," ":true,"$":"! c","!":"! (","'":[],"%":{"=":{" ":true,"(":"image",">":[0.5,0,0.5,0],"?":[0.5,0.5],"@":"","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[1,1,1],"L":1,"M":86174925,"N":null,"O":0,"P":null,"<":800,".":200,"Q":[-400,-47.578,-400,-152.422],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":false,"Y":false,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[285,0,48]},"! b":{"#":"BusinessLogic","&":[]," ":true,"$":"! b","!":"! '","'":[],"%":{"^":{" ":true,"_":["ceilingHeightController"],"`":{"#7":{" ":true,"/":{"#8":"! 2","!.":"! 8","#9":"! I"}}}}},"___1":[288,0,3]},"! `":{"#":"Debug","&":[]," ":false,"$":"! `","!":"! %","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"Text","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":32,".":32,"Q":[-30.328,28.303,-30.328,-58.178],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false},"^":{" ":true,"_":["debug"],"`":{"#:":{" ":true,"/":{"!.":"! 0"}}}}},"___1":[291,0,3]},"! d":{"#":"BusinessLogic","&":[]," ":true,"$":"! d","!":"! (","'":[],"%":{"^":{" ":true,"_":["roomWidthController"],"`":{"#;":{" ":true,"/":{"#<":"! ,","!.":"! 0","#=":0.5,"#>":3.6,"#?":6,"#@":"! J"}}}}},"___1":[294,0,3]},"! K":{"#":"Box","&":[]," ":true,"$":"! K","!":"! ","'":[],"%":{"0":{"1":[null],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":true,"(":"box","+":null,")":[0],"*":null,",":true,"-":false}},"___1":[297,15,300]},"! 4":{"#":"Plane","&":[]," ":true,"$":"! 4","!":"! )","'":["! _"],"%":{"0":{"1":[87532120],"2":true,"3":true,"4":false,"5":1,"6":true,"7":false,"8":1,"9":null," ":false,"(":"plane","+":null,")":[0],"*":null,",":true,"-":false}},"___1":[303,306,309]},"! 7":{"#":"Resize","&":[]," ":true,"$":"! 7","!":"! %","'":["! e"],"%":{"!/":{" ":true,"!0":true,"!1":"! 7","!2":[0,0,0,0],"!3":0,"!4":[0.89412,0.89412,0.89412,1],"!5":[0.75686,0.75686,0.75686,1],"!6":[1,1,1,1],"!7":0,"!8":null,"!9":0,"!:":null,"!;":0,"!<":null,"!=":0,"!>":null,"!?":null,"!@":null},"=":{" ":true,"(":"image",">":[0,0,0,0],"?":[0.5,0.5],"@":"","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[1,1,1],"L":1,"M":91591081,"N":null,"O":0,"P":null,"<":256,".":128,"Q":[-29.608,-0.384,-226.392,-127.616],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":false,"Y":false,"Z":true,"*":null,"[":false,")":[4],"]":false},"^":{" ":true,"_":["showResizeOptions"],"`":{"#A":{" ":true,"/":{"#B":"! '","#C":"! (","#D":"! .","#E":"! /","#F":"! !","#G":0}}}}},"___1":[312,0,21]},"! e":{"#":"Text","&":[]," ":true,"$":"! e","!":"! 7","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"RESIZE","A":null,"B":91600010,"C":47.74,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":167.472,".":46.547,"Q":[-83.736,-29.245,-83.736,-17.302],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[315,0,3]},"! .":{"#":"HeightText","&":[]," ":false,"$":"! .","!":"! %","'":["! I"],"%":{"!/":{" ":true,"!0":true,"!1":"! .","!2":[0,0,0,0],"!3":0,"!4":[1,1,1,1],"!5":[1,1,1,1],"!6":[1,1,1,1],"!7":0,"!8":null,"!9":0,"!:":null,"!;":0,"!<":null,"!=":0,"!>":null,"!?":null,"!@":null},"=":{" ":true,"(":"image",">":[0,0,0,0],"?":[0.5,0.5],"@":"","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[1,1,1],"L":1,"M":91591081,"N":null,"O":0,"P":null,"<":256,".":128,"Q":[-29.608,73.064,-226.392,-201.064],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":false,"Y":false,"Z":true,"*":null,"[":false,")":[4],"]":false}},"___1":[318,0,21]},"! I":{"#":"Text","&":[]," ":true,"$":"! I","!":"! .","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"H: 2.3m","A":null,"B":91600010,"C":47.74,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":179.311,".":46.547,"Q":[-83.736,-29.24478,-83.73592,-17.30172],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[51,0,3]},"! /":{"#":"Width Text","&":[]," ":false,"$":"! /","!":"! %","'":["! J"],"%":{"!/":{" ":true,"!0":true,"!1":"! /","!2":[0,0,0,0],"!3":0,"!4":[1,1,1,1],"!5":[1,1,1,1],"!6":[1,1,1,1],"!7":0,"!8":null,"!9":0,"!:":null,"!;":0,"!<":null,"!=":0,"!>":null,"!?":null,"!@":null},"=":{" ":true,"(":"image",">":[0,0,0,0],"?":[0.5,0.5],"@":"","A":null,"B":79465530,"C":32,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[1,1,1],"L":1,"M":91591081,"N":null,"O":0,"P":null,"<":256,".":128,"Q":[114.739,-0.449,-370.739,-127.551],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":false,"Y":false,"Z":true,"*":null,"[":false,")":[4],"]":false}},"___1":[321,0,21]},"! J":{"#":"Text","&":[]," ":true,"$":"! J","!":"! /","'":[],"%":{"=":{" ":true,"(":"text",">":[0.5,0.5,0.5,0.5],"?":[0.5,0.5],"@":"W: 3.0m","A":null,"B":91600010,"C":47.74,"D":8,"E":32,"F":false,"G":false,"H":null,"I":32,"J":true,"K":1,":":[0,0,0],"L":1,"M":null,"N":null,"O":0,"P":null,"<":192.01,".":46.547,"Q":[-96.005,-29.245,-96.005,-17.302],"R":[0.5,0.5],"S":[0,0,0,1],"T":0,"U":[0,0,0,1],"V":[0,0],";":[0,0,1,1],"W":null,"X":true,"Y":true,"Z":false,"*":null,"[":false,")":[4],"]":false}},"___1":[51,0,3]},"! 5":{"#":"HeightPlane","&":[]," ":true,"$":"! 5","!":"! *","'":["! 6"],"%":{"^":{" ":true,"_":["matchTargetScale","mantainDistanceWithTargetScale"],"`":{"!C":{" ":true,"/":{"g":"! &","!D":false,"!E":false,"!F":true}},"!G":{" ":true,"/":{"g":"! &","!H":0,"!I":0.296,"!J":false,"!K":true}}}}},"___1":[324,0,3]}},"checkpoint_id":"9bcb7c16-e36a-4860-9e04-ecd9a42705fb","id":1390892,"compressedFormat":{"fieldFirstCode":32,"fieldCodeBase":95,"fieldArray":["enabled","parent",1,"name","resource_id","components","tags","children","type","layers","batchGroupId","asset","castShadows","isStatic","height","attributes","render","materialAssets","castShadowsLightmap","receiveShadows","lightmapped","lightmapSizeMultiplier","castShadowsLightMap","lightMapped","lightMapSizeMultiplier","rootBone","color","rect","width","element","anchor","pivot","text","key","fontAsset","fontSize","minFontSize","maxFontSize","autoFitWidth","autoFitHeight","maxLines","lineHeight","wrapLines","spacing","opacity","textureAsset","spriteAsset","spriteFrame","pixelsPerUnit","margin","alignment","outlineColor","outlineThickness","shadowColor","shadowOffset","materialAsset","autoWidth","autoHeight","useInput","mask",1,"enableMarkup","script","order","scripts","axis","Selected","collision","halfExtents","radius","renderAsset","target","light","bake","bakeArea","bakeNumSamples","bakeDir","affectDynamic","affectLightmapped","intensity","shadowUpdateMode","shadowType","vsmBlurMode","vsmBlurSize","vsmBias","shadowDistance","shadowResolution","numCascades","cascadeDistribution","shadowBias","normalOffsetBias","range","falloffMode","innerConeAngle","outerConeAngle","shape","cookieAsset",1,"cookieIntensity","cookieFalloff","cookieChannel","cookieAngle","cookieScale","cookieOffset","MinLimit","MaxLimit","MinLimitOffset","MaxLimitOffset","SliderValue","sliderKnot","button","active","imageEntity","hitPadding","transitionMode","hoverTint","pressedTint","inactiveTint","fadeDuration","hoverSpriteAsset","hoverSpriteFrame","pressedSpriteAsset","pressedSpriteFrame","inactiveSpriteAsset","inactiveSpriteFrame","hoverTextureAsset","pressedTextureAsset","inactiveTextureAsset","mouse","touch","matchTargetScale","matchX","matchY","matchZ","mantainDistanceWithTargetScale","defaultDistZ","defaultDistX","adjustZ","adjustX","unscaleFromParents","invertZandY","targetValueX","targetValueY","targetValueZ","RaiseFactor","uiSlider","handle","upperLimit","lowerLimit","val","camera","projection","farClip","clearColorBuffer","priority",1,"fov","clearDepthBuffer","frustumCulling","clearColor","orthoHeight","nearClip","pickerRaycast","fxaa","switchingTextures","textures","url","WebTexture","rigidbody","mass","linearDamping","angularDamping","linearFactor","angularFactor","friction","restitution","sliderVisible","SliderEntity","Interval","template_ent_ids","155feed0-4828-4db3-bd69-ec82a43b842a","a7c74765-6d1f-4585-83fa-3d1678d4565c","c4e7019f-d3ef-48c6-8f74-3d5beb2f2d4e","c7f8fe2d-4cc6-4e6b-9050-ec7eb392e1ca","209d5672-6d22-4502-bbcd-704d9b2fad6b","template_id","showHeightAndWidth","hideInterval","physicalHeight","physicalWidth",1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ImageEntity","baseScaleWidth",null,"baseScaleHeight","moveUpwithScale","getHeightFromUrlparams","getWidthFromUrlparams","sliderHorizontal","RoomWidth","RoomWidthText","sliderVertical","Ceiling","CeilingHeightText","scaleSlider","Model","ModelHeightText","ParentPlane","screen","screenSpace","scaleMode","scaleBlend","resolution","referenceResolution","ceilingHeightController","ceiling","ceilText","debug","roomWidthController","room","initialWidthScale","minWidth","maxWidth","UiWidthText","showResizeOptions","VertSlider","HorSlider","HeightShow","WidthShow","ModelScaleSlider","Toggle"],"singleVecs":[0,0,0,1,1,1,0.15,0.15,0.15,-90,0,0,0.00059,0.00059,0.00593,0,90,0,90,0,0,0.5,0.5,0.7,90,180,0,90,0,180,0.04131,0.04027,0.0417,90,0,-180,0.0392,0.04027,0.0417,2.18491,2.18491,2.18491,0,0,-90,180,0,-180,0.6,0.6,0.6,-0.00004,-5.97153,0,0.66789,1.11542,-6.01397,180,0,180,-0.00004,0,-0.43476,0,0,0.69745,360,90,0,0.00801,0.00309,0.00493,2.54,2.54,2.54,1.06092,0,-1.94033,0.10697,0.10697,0.10697,188.71229,-187.04491,-300.45148,1.809,1.916,0.81,8.48895,129.36641,30.88531,1.72418,-0.05229,1.574,0.10537,0.10537,0.10537,0.29042,0,1.58792,0,0,-0.93385,0.5,1,1,-0.016,-0.001,0.154,90,-88.28624,-180,0.005,0.005,0.00471,0.02816,-0.00137,-0.11997,0.01055,0.00531,0.005,247.305,182.83083,56.25824,151.85122,-8.3473,-340.37986,0,2.30012,-1.40541,97.12108,0.03207,1602.27268,-0.14026,-0.241,-0.78977,0.1238,-0.24361,-0.79728,-0.1201,-0.25119,-0.811,0.02188,0.02908,0.02046,196.89171,187.04491,43.35508,1,1,0.5,2.98725,1.59406,4.48496,21.84536,6.36697,5.4856,-0.78534,0.00966,-0.00518,0,0,90,-0.03275,-0.25974,-0.84154,90,0,90,0.00479,0.04027,0.22664,-0.13344,-0.23969,-0.8106,0.08279,-0.24302,-0.80683,-0.13377,-0.28369,-0.80381,0.02291,0.02532,0.02494,-4.32415,2.69128,-0.00577,-4.32415,12.06263,-0.02576,-4.32414,12.0375,-0.00407,1.14645,1.14645,1.14645,247.30498,-14.20643,56.25825,-0.00939,-0.25437,-0.82418,0.33512,0.36051,0.08456,-0.02949,-0.283,-0.8082,90,0,-90,0.0862,0.05171,0.30854,-4.36523,7.68097,0.00758,4.35694,14.29273,17.35826,-0.02698,-0.26461,-0.70218,0.11865,-0.26566,-0.706,-0.22364,-0.344,-0.70483,-0.19006,-0.34407,-0.70218,-5.82006,14.8995,0.14434,0.03974,0.03531,0.06174,-3.54648,14.8975,0.14434,0.04033,0.03884,0.06174,0,-3.38298,3.9899,1.8,0.02168,0.988,-293.74893,-3.38298,-10.3123,180,90,-180,1.8,0.02168,0.073,-0.00076,0,-0.4913,1,0.03,1,98.76194,0,4.763,99.45294,-134.93598,0,98.94331,127.88099,0,99.30396,-138.10482,0,-129.47405,52.26201,0,134.56494,52.01964,0,-134.541,52.18622,0,0,52.42199,0,28.76494,0,0,0,43.24094,0,0,7.79899,0,2.31907,0.34609,-7.15126,0.1,0.1,0.1,-0.35772,0.51834,-2.1172,-90,0,180,4.04452,1.29831,12.78358,98.39162,63.61553,0,0.00005,-5.97153,0,98.39205,137.06435,0,242.73902,63.55136,0,0.29575,0,-0.41811],"tripleVecs":[0,0,3]}} \ No newline at end of file diff --git a/__game-scripts.js b/__game-scripts.js index 52cfa08..307983a 100644 --- a/__game-scripts.js +++ b/__game-scripts.js @@ -1 +1 @@ -var Mouse=pc.createScript("mouse");Mouse.attributes.add("Selected",{type:"number",default:0}),Mouse.prototype.initialize=function(){this.pos=new pc.Vec3,this.app.mouse.disableContextMenu(),this.app.mouse.on(pc.EVENT_MOUSEMOVE,this.onMouseMove,this),this.app.mouse.on(pc.EVENT_MOUSEDOWN,this.onMouseDown,this),this.app.mouse.on(pc.EVENT_MOUSEUP,this.onMouseUp,this)},Mouse.prototype.onMouseMove=function(t){if(1==this.Selected){this.app.graphicsDevice.canvas.clientWidth;var e=this.app.graphicsDevice.canvas.clientHeight,o=(e-t.y)/e*16,s=this.entity.getPosition();this.app.root.findByName("Camera").camera.screenToWorld(t.x,t.y,o,this.pos),this.entity.setPosition(this.pos.x,s.y,this.pos.z),this.entity.getPosition().z>1.58&&this.entity.setPosition(this.pos.x,s.y,1.58)}},Mouse.prototype.onMouseDown=function(t){t.button,pc.MOUSEBUTTON_LEFT},Mouse.prototype.onMouseUp=function(t){t.button===pc.MOUSEBUTTON_LEFT&&(this.Selected=0)};var Touch=pc.createScript("touch");Touch.attributes.add("Selected",{type:"number",default:0});var LastX=0,LastY=0,dx=0,dy=0;Touch.prototype.initialize=function(){this.pos=new pc.Vec3,this.cameraEntity=this.app.root.findByName("Camera");var t=this.app.touch;t&&(t.on(pc.EVENT_TOUCHSTART,this.onTouchStart,this),t.on(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),t.on(pc.EVENT_TOUCHEND,this.onTouchEnd,this),t.on(pc.EVENT_TOUCHCANCEL,this.onTouchCancel,this)),this.on("destroy",(function(){t.off(pc.EVENT_TOUCHSTART,this.onTouchStart,this),t.off(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),t.off(pc.EVENT_TOUCHEND,this.onTouchEnd,this),t.off(pc.EVENT_TOUCHCANCEL,this.onTouchCancel,this)}),this)},Touch.prototype.updateFromScreen=function(t){if(1==this.Selected){this.app.graphicsDevice.canvas.clientWidth;var o=this.app.graphicsDevice.canvas.clientHeight,e=(o-t.y)/o*16;console.log("depth: = "+e);var i=this.entity.getPosition();this.app.root.findByName("Camera").camera.screenToWorld(t.x,t.y,e,this.pos),this.entity.setPosition(this.pos.x,i.y,this.pos.z),this.entity.getPosition().z>3&&this.entity.setPosition(this.pos.x,i.y,3)}},Touch.prototype.onTouchStart=function(t){1===t.touches.length&&this.updateFromScreen(t.touches[0]),t.event.preventDefault()},Touch.prototype.onTouchMove=function(t){this.updateFromScreen(t.touches[0]),t.event.preventDefault()},Touch.prototype.onTouchEnd=function(t){this.Selected=0,t.event.preventDefault()},Touch.prototype.onTouchCancel=function(t){this.Selected=0,t.event.preventDefault()};var PickerRaycast=pc.createScript("pickerRaycast");PickerRaycast.prototype.initialize=function(){this.app.mouse.on(pc.EVENT_MOUSEDOWN,this.onSelect,this);var t=this.app.touch;t&&t.on(pc.EVENT_TOUCHSTART,this.onTouch,this),this.on("destroy",(function(){this.app.mouse.off(pc.EVENT_MOUSEDOWN,this.onSelect,this),t&&this.app.touch.off(pc.EVENT_TOUCHSTART,this.onTouch,this)}),this)},PickerRaycast.prototype.onSelect=function(t){var i=this.entity.camera.screenToWorld(t.x,t.y,this.entity.camera.nearClip),e=this.entity.camera.screenToWorld(t.x,t.y,this.entity.camera.farClip);this.app.systems.rigidbody.raycastFirst(i,e,(function(t){var i=t.entity;i.script.mouse&&(i.script.mouse.Selected=1),i.script.sliderHorizontal&&(i.script.sliderHorizontal.Selected=1),i.script.scaleSlider&&(i.script.scaleSlider.Selected=1),i.script.sliderVisible&&i.script.sliderVisible.showSlider(),i.script.sliderVertical&&(i.script.sliderVertical.Selected=1,console.log("Vert Slider Selected")),i.script.showHeightAndWidth&&i.script.showHeightAndWidth.showArrows(),console.log("raycastHit")}))},PickerRaycast.prototype.onTouch=function(t){var i=this.entity.camera.screenToWorld(t.touches[0].x,t.touches[0].y,this.entity.camera.nearClip),e=this.entity.camera.screenToWorld(t.touches[0].x,t.touches[0].y,this.entity.camera.farClip);console.log("raycastHit"),console.log("screenx: "+t.x+" screenY: "+t.y),console.log("from: "+i+" to: "+e),this.app.systems.rigidbody.raycastFirst(i,e,(function(t){var i=t.entity;i.script.touch&&(i.script.touch.Selected=1),i.script.sliderHorizontal&&(i.script.sliderHorizontal.Selected=1),i.script.scaleSlider&&(i.script.scaleSlider.Selected=1),i.script.sliderVisible&&i.script.sliderVisible.showSlider(),i.script.sliderVertical&&(i.script.sliderVertical.Selected=1),i.script.showHeightAndWidth&&i.script.showHeightAndWidth.showArrows(),console.log("raycastHitInside")}))};var LoadImage=pc.createScript("loadImage");LoadImage.attributes.add("url",{type:"string"}),LoadImage.prototype.initialize=function(){const e=window.location.search;console.log(e);const t=new URLSearchParams(e).get("filename");console.log(t),this.url=t,setInterval((function(){this.changeToNextTexture()}),1e3)},LoadImage.prototype.changeToNextTexture=function(){var e=new Image;e.crossOrigin="anonymous",e.onload=function(){var t=new pc.Texture(self.app.graphicsDevice);t.setSource(e);for(var a=this.entity.findComponents("render"),n=0;nthis.hideInterval&&(this.timer=0,this.width.enabled=!1,this.height.enabled=!1)},ShowHeightAndWidth.prototype.showArrows=function(){this.timer=0,this.width.enabled=!0,this.height.enabled=!0};var ButtonLogic=pc.createScript("buttonLogic");ButtonLogic.attributes.add("textEntity",{type:"entity",description:"The entity that we want to update when the button is clicked"}),ButtonLogic.attributes.add("description",{type:"string"}),ButtonLogic.attributes.add("model",{type:"entity"}),ButtonLogic.prototype.initialize=function(){this.entity.button.on("click",(function(t){var e=this.textEntity.element.text,i=e.charAt(e.length-1),n=e[0],o=0,a=0;"6"==i?(o=0,i="0",a=parseInt(n),n=(++a).toString()):"0"==i&&(o=5,i="6",a=parseInt(n));var c=a.toString()+"."+o.toString(),r=parseFloat(c);this.model.setLocalScale(r/5.5*.105,r/5.5*.105,r/5.5*.105),this.textEntity.element.text=n+"'"+i}),this)};var ButtonLogic2=pc.createScript("buttonLogic2");ButtonLogic2.attributes.add("textEntity",{type:"entity",description:"The entity that we want to update when the button is clicked"}),ButtonLogic2.attributes.add("description",{type:"string"}),ButtonLogic2.attributes.add("model",{type:"entity"}),ButtonLogic2.prototype.initialize=function(){this.entity.button.on("click",(function(t){var e=this.textEntity.element.text,i=e.charAt(e.length-1),n=e[0],o=parseInt(i),a=parseInt(n);"6"==i?(o=0,i="0",a=parseInt(n)):"0"==i&&(o=5,i="6",a=parseInt(n),n=(--a).toString());var r=a.toString()+"."+o.toString(),c=parseFloat(r);this.model.setLocalScale(c/5.5*.105,c/5.5*.105,c/5.5*.105),this.textEntity.element.text=n+"'"+i}),this)};var RoomWidthSlider=pc.createScript("roomWidthSlider");RoomWidthSlider.attributes.add("html",{type:"asset",assetType:"html",title:"HTML Asset"}),RoomWidthSlider.attributes.add("css",{type:"asset",assetType:"css",title:"CSS Asset"}),RoomWidthSlider.prototype.initialize=function(){this.addUi(),this.addUi()},RoomWidthSlider.prototype.update=function(t){},RoomWidthSlider.prototype.addUi=function(){var t=this,e=document.createElement("style");document.head.appendChild(e),e.innerHTML=this.css.resource||"",this.div=document.createElement("div"),this.div.classList.add("container"),this.div.innerHTML=this.html.resource||"",document.body.appendChild(this.div),this.resumeFlythroughButton=this.div.querySelector(".button"),this.pathSlider=this.div.querySelector(".slider"),this.resumeFlythroughButton.addEventListener("click",(function(){t.flyingThrough=!0})),this.pathSlider.addEventListener("input",(function(){t.flyingThrough=!1,t.time=t.pathSlider.value/t.pathSlider.max*t.duration}))};var SliderHorizontal=pc.createScript("sliderHorizontal");SliderHorizontal.attributes.add("Selected",{type:"number",default:0}),SliderHorizontal.attributes.add("SliderValue",{type:"number",default:0}),SliderHorizontal.attributes.add("MinLimit",{type:"entity"}),SliderHorizontal.attributes.add("MaxLimit",{type:"entity"}),SliderHorizontal.attributes.add("RoomWidth",{type:"entity"}),SliderHorizontal.attributes.add("RoomWidthText",{type:"entity"}),SliderHorizontal.attributes.add("MinLimitOffset",{type:"number",default:0}),SliderHorizontal.attributes.add("MaxLimitOffset",{type:"number",default:0}),SliderHorizontal.prototype.initialize=function(){this.pos=new pc.Vec3,this.roomWidthInitialScale=this.RoomWidth.getLocalScale().z,this.app.mouse.on(pc.EVENT_MOUSEMOVE,this.onMouseMove,this),this.app.mouse.on(pc.EVENT_MOUSEDOWN,this.onMouseDown,this),this.app.mouse.on(pc.EVENT_MOUSEUP,this.onMouseUp,this);var t=this.app.touch;t&&(t.on(pc.EVENT_TOUCHSTART,this.onTouchStart,this),t.on(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),t.on(pc.EVENT_TOUCHEND,this.onTouchEnd,this),t.on(pc.EVENT_TOUCHCANCEL,this.onTouchCancel,this)),this.on("destroy",(function(){t.off(pc.EVENT_TOUCHSTART,this.onTouchStart,this),t.off(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),t.off(pc.EVENT_TOUCHEND,this.onTouchEnd,this),t.off(pc.EVENT_TOUCHCANCEL,this.onTouchCancel,this)}),this)},SliderHorizontal.prototype.update=function(t){},SliderHorizontal.prototype.onMouseDown=function(t){},SliderHorizontal.prototype.onMouseMove=function(t){if(1==this.Selected){this.app.graphicsDevice.canvas.clientWidth,this.app.graphicsDevice.canvas.clientHeight;var i=this.entity.getPosition();this.app.root.findByName("Camera").camera.screenToWorld(t.x,t.y,.808,this.pos),this.entity.setPosition(this.pos.x,i.y,-5.18),console.log("This.x: "+this.entity.getPosition().x+"Max Limit: "+this.entity.getPosition().x),this.entity.getPosition().xthis.MinLimit.getPosition().x-this.MinLimitOffset&&this.entity.setPosition(this.MinLimit.getPosition().x-this.MinLimitOffset,this.entity.getPosition().y,this.entity.getPosition().z);var e=this.MinLimit.getPosition().distance(this.MaxLimit.getPosition()),o=this.MinLimit.getPosition().distance(this.entity.getPosition());this.SliderValue=o/e,this.RoomWidth.setLocalScale(this.RoomWidth.getLocalScale().x,this.RoomWidth.getLocalScale().y,this.roomWidthInitialScale*(1+this.SliderValue));var s=2*(1+this.SliderValue);this.RoomWidthText.element.text=s.toFixed(1).toString(),console.log(this.RoomWidth.getLocalScale()),console.log(this.SliderValue)}},SliderHorizontal.prototype.onMouseUp=function(t){t.button===pc.MOUSEBUTTON_LEFT&&(this.Selected=0)},SliderHorizontal.prototype.updateFromScreen=function(t){if(1==this.Selected){this.app.graphicsDevice.canvas.clientWidth,this.app.graphicsDevice.canvas.clientHeight;var i=this.entity.getPosition();this.app.root.findByName("Camera").camera.screenToWorld(t.x,t.y,.808,this.pos),this.entity.setPosition(this.pos.x,i.y,-5.18),console.log("This.x: "+this.entity.getPosition().x+"Max Limit: "+this.entity.getPosition().x),this.entity.getPosition().xthis.MinLimit.getPosition().x-this.MinLimitOffset&&this.entity.setPosition(this.MinLimit.getPosition().x-this.MinLimitOffset,this.entity.getPosition().y,this.entity.getPosition().z);var e=this.MinLimit.getPosition().distance(this.MaxLimit.getPosition()),o=this.MinLimit.getPosition().distance(this.entity.getPosition());this.SliderValue=o/e,this.RoomWidth.setLocalScale(this.RoomWidth.getLocalScale().x,this.RoomWidth.getLocalScale().y,this.roomWidthInitialScale*(1+this.SliderValue));var s=2*(1+this.SliderValue);this.RoomWidthText.element.text=s.toFixed(1).toString(),console.log(this.RoomWidth.getLocalScale()),console.log(this.SliderValue)}},SliderHorizontal.prototype.onTouchStart=function(t){1===t.touches.length&&this.updateFromScreen(t.touches[0]),t.event.preventDefault()},SliderHorizontal.prototype.onTouchMove=function(t){this.updateFromScreen(t.touches[0]),t.event.preventDefault()},SliderHorizontal.prototype.onTouchEnd=function(t){this.Selected=0,t.event.preventDefault()},SliderHorizontal.prototype.onTouchCancel=function(t){this.Selected=0,t.event.preventDefault()};var SliderVertical=pc.createScript("sliderVertical");SliderVertical.attributes.add("Selected",{type:"number",default:0}),SliderVertical.attributes.add("SliderValue",{type:"number",default:0}),SliderVertical.attributes.add("MinLimit",{type:"entity"}),SliderVertical.attributes.add("MaxLimit",{type:"entity"}),SliderVertical.attributes.add("Ceiling",{type:"entity"}),SliderVertical.attributes.add("CeilingHeightText",{type:"entity"}),SliderVertical.attributes.add("MinLimitOffset",{type:"number",default:0}),SliderVertical.attributes.add("MaxLimitOffset",{type:"number",default:0}),SliderVertical.attributes.add("RaiseFactor",{type:"number",default:1}),SliderVertical.prototype.initialize=function(){this.pos=new pc.Vec3,this.initialCielingHeight=this.Ceiling.getPosition().y,this.app.mouse.on(pc.EVENT_MOUSEMOVE,this.onMouseMove,this),this.app.mouse.on(pc.EVENT_MOUSEDOWN,this.onMouseDown,this),this.app.mouse.on(pc.EVENT_MOUSEUP,this.onMouseUp,this);var i=this.MinLimit.getPosition().distance(this.MaxLimit.getPosition()),t=this.MinLimit.getPosition().distance(this.entity.getPosition());this.SliderValue=t/i,this.Ceiling.setLocalPosition(this.Ceiling.getPosition().x,this.initialCielingHeight+this.SliderValue*this.RaiseFactor,this.Ceiling.getPosition().z),this.CeilingHeightText.element.text=(this.initialCielingHeight+this.SliderValue*this.RaiseFactor).toFixed(1).toString();var e=this.app.touch;e&&(e.on(pc.EVENT_TOUCHSTART,this.onTouchStart,this),e.on(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),e.on(pc.EVENT_TOUCHEND,this.onTouchEnd,this),e.on(pc.EVENT_TOUCHCANCEL,this.onTouchCancel,this)),this.on("destroy",(function(){e.off(pc.EVENT_TOUCHSTART,this.onTouchStart,this),e.off(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),e.off(pc.EVENT_TOUCHEND,this.onTouchEnd,this),e.off(pc.EVENT_TOUCHCANCEL,this.onTouchCancel,this)}),this)},SliderVertical.prototype.update=function(i){},SliderVertical.prototype.onMouseDown=function(i){},SliderVertical.prototype.onMouseMove=function(i){if(1==this.Selected){this.app.graphicsDevice.canvas.clientWidth,this.app.graphicsDevice.canvas.clientHeight;var t=this.entity.getPosition();this.app.root.findByName("Camera").camera.screenToWorld(i.x,i.y,.808,this.pos),this.entity.setPosition(t.x,this.pos.y,-5.18),this.entity.getPosition().y>this.MaxLimit.getPosition().y-this.MaxLimitOffset&&this.entity.setPosition(this.entity.getPosition().x,this.MaxLimit.getPosition().y-this.MaxLimitOffset,this.entity.getPosition().z),this.entity.getPosition().ythis.MaxLimit.getPosition().y-this.MaxLimitOffset&&this.entity.setPosition(this.entity.getPosition().x,this.MaxLimit.getPosition().y-this.MaxLimitOffset,this.entity.getPosition().z),this.entity.getPosition().ythis.MaxLimit.getPosition().y&&this.entity.setPosition(this.entity.getPosition().x,this.MaxLimit.getPosition().y,this.entity.getPosition().z),this.entity.getPosition().ythis.MaxLimit.getPosition().y&&this.entity.setPosition(this.entity.getPosition().x,this.MaxLimit.getPosition().y,this.entity.getPosition().z),this.entity.getPosition().ythis.Interval&&(this.timer=0,this.SliderEntity.enabled=!1)},SliderVisible.prototype.showSlider=function(){this.timer=0,this.SliderEntity.enabled=!0}; \ No newline at end of file +var Mouse=pc.createScript("mouse");Mouse.attributes.add("Selected",{type:"number",default:0}),Mouse.prototype.initialize=function(){this.pos=new pc.Vec3,this.app.mouse.disableContextMenu(),this.app.mouse.on(pc.EVENT_MOUSEMOVE,this.onMouseMove,this),this.app.mouse.on(pc.EVENT_MOUSEDOWN,this.onMouseDown,this),this.app.mouse.on(pc.EVENT_MOUSEUP,this.onMouseUp,this)},Mouse.prototype.onMouseMove=function(t){if(1==this.Selected){var e=this.app.graphicsDevice.canvas.clientWidth,o=this.app.graphicsDevice.canvas.clientHeight,i=(o-t.y)/o*16,s=this.entity.getPosition(),n=this.app.root.findByName("Camera");n.camera.screenToWorld(t.x,t.y,i,this.pos),this.entity.translate(t.dx/e*-15*(this.entity.getPosition().distance(n.getPosition())/12),0,t.dy/e*-15),this.entity.getPosition().z>1.58&&this.entity.setPosition(this.pos.x,s.y,1.58)}},Mouse.prototype.onMouseDown=function(t){t.button,pc.MOUSEBUTTON_LEFT},Mouse.prototype.onMouseUp=function(t){t.button===pc.MOUSEBUTTON_LEFT&&(this.Selected=0)};var Touch=pc.createScript("touch");Touch.attributes.add("Selected",{type:"number",default:0});var LastX=0,LastY=0,dx=0,dy=0;Touch.prototype.initialize=function(){this.pos=new pc.Vec3,this.cameraEntity=this.app.root.findByName("Camera");var t=this.app.touch;t&&(t.on(pc.EVENT_TOUCHSTART,this.onTouchStart,this),t.on(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),t.on(pc.EVENT_TOUCHEND,this.onTouchEnd,this),t.on(pc.EVENT_TOUCHCANCEL,this.onTouchCancel,this)),this.on("destroy",(function(){t.off(pc.EVENT_TOUCHSTART,this.onTouchStart,this),t.off(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),t.off(pc.EVENT_TOUCHEND,this.onTouchEnd,this),t.off(pc.EVENT_TOUCHCANCEL,this.onTouchCancel,this)}),this)},Touch.prototype.updateFromScreen=function(t){if(1==this.Selected){this.app.graphicsDevice.canvas.clientWidth;var o=this.app.graphicsDevice.canvas.clientHeight,e=(o-t.y)/o*16;console.log("depth: = "+e);var i=this.entity.getPosition();this.app.root.findByName("Camera").camera.screenToWorld(t.x,t.y,e,this.pos),this.entity.setPosition(this.pos.x,i.y,this.pos.z),this.entity.getPosition().z>3&&this.entity.setPosition(this.pos.x,i.y,3)}},Touch.prototype.onTouchStart=function(t){1===t.touches.length&&this.updateFromScreen(t.touches[0]),t.event.preventDefault()},Touch.prototype.onTouchMove=function(t){this.updateFromScreen(t.touches[0]),t.event.preventDefault()},Touch.prototype.onTouchEnd=function(t){this.Selected=0,t.event.preventDefault()},Touch.prototype.onTouchCancel=function(t){this.Selected=0,t.event.preventDefault()};var PickerRaycast=pc.createScript("pickerRaycast");PickerRaycast.prototype.initialize=function(){this.app.mouse.on(pc.EVENT_MOUSEDOWN,this.onSelect,this);var t=this.app.touch;t&&t.on(pc.EVENT_TOUCHSTART,this.onTouch,this),this.on("destroy",(function(){this.app.mouse.off(pc.EVENT_MOUSEDOWN,this.onSelect,this),t&&this.app.touch.off(pc.EVENT_TOUCHSTART,this.onTouch,this)}),this)},PickerRaycast.prototype.onSelect=function(t){var i=this.entity.camera.screenToWorld(t.x,t.y,this.entity.camera.nearClip),e=this.entity.camera.screenToWorld(t.x,t.y,this.entity.camera.farClip);this.app.systems.rigidbody.raycastFirst(i,e,(function(t){var i=t.entity;i.script.mouse&&(i.script.mouse.Selected=1),i.script.sliderHorizontal&&(i.script.sliderHorizontal.Selected=1),i.script.scaleSlider&&(i.script.scaleSlider.Selected=1),i.script.sliderVisible&&i.script.sliderVisible.showSlider(),i.script.sliderVertical&&(i.script.sliderVertical.Selected=1,console.log("Vert Slider Selected")),i.script.showHeightAndWidth&&i.script.showHeightAndWidth.showArrows(),console.log("raycastHit")}))},PickerRaycast.prototype.onTouch=function(t){var i=this.entity.camera.screenToWorld(t.touches[0].x,t.touches[0].y,this.entity.camera.nearClip),e=this.entity.camera.screenToWorld(t.touches[0].x,t.touches[0].y,this.entity.camera.farClip);console.log("raycastHit"),console.log("screenx: "+t.x+" screenY: "+t.y),console.log("from: "+i+" to: "+e),this.app.systems.rigidbody.raycastFirst(i,e,(function(t){var i=t.entity;i.script.touch&&(i.script.touch.Selected=1),i.script.sliderHorizontal&&(i.script.sliderHorizontal.Selected=1),i.script.scaleSlider&&(i.script.scaleSlider.Selected=1),i.script.sliderVisible&&i.script.sliderVisible.showSlider(),i.script.sliderVertical&&(i.script.sliderVertical.Selected=1),i.script.showHeightAndWidth&&i.script.showHeightAndWidth.showArrows(),console.log("raycastHitInside")}))};var LoadImage=pc.createScript("loadImage");LoadImage.attributes.add("url",{type:"string"}),LoadImage.prototype.initialize=function(){const e=window.location.search;console.log(e);const t=new URLSearchParams(e).get("filename");console.log(t),this.url=t,setInterval((function(){this.changeToNextTexture()}),1e3)},LoadImage.prototype.changeToNextTexture=function(){var e=new Image;e.crossOrigin="anonymous",e.onload=function(){var t=new pc.Texture(self.app.graphicsDevice);t.setSource(e);for(var a=this.entity.findComponents("render"),n=0;nthis.MinLimit.getPosition().x-this.MinLimitOffset&&this.entity.setPosition(this.MinLimit.getPosition().x-this.MinLimitOffset,this.entity.getPosition().y,this.entity.getPosition().z);var e=this.MinLimit.getPosition().distance(this.MaxLimit.getPosition()),o=this.MinLimit.getPosition().distance(this.entity.getPosition());this.SliderValue=o/e,this.RoomWidth.setLocalScale(this.RoomWidth.getLocalScale().x,this.RoomWidth.getLocalScale().y,this.roomWidthInitialScale*(1+this.SliderValue));var s=2*(1+this.SliderValue);this.RoomWidthText.element.text=s.toFixed(1).toString()}},SliderHorizontal.prototype.onMouseUp=function(t){t.button===pc.MOUSEBUTTON_LEFT&&(this.Selected=0)},SliderHorizontal.prototype.updateFromScreen=function(t){if(1==this.Selected){this.app.graphicsDevice.canvas.clientWidth,this.app.graphicsDevice.canvas.clientHeight;var i=this.entity.getPosition();this.app.root.findByName("Camera").camera.screenToWorld(t.x,t.y,.808,this.pos),this.entity.setPosition(this.pos.x,i.y,-5.18),console.log("This.x: "+this.entity.getPosition().x+"Max Limit: "+this.entity.getPosition().x),this.entity.getPosition().xthis.MinLimit.getPosition().x-this.MinLimitOffset&&this.entity.setPosition(this.MinLimit.getPosition().x-this.MinLimitOffset,this.entity.getPosition().y,this.entity.getPosition().z);var e=this.MinLimit.getPosition().distance(this.MaxLimit.getPosition()),o=this.MinLimit.getPosition().distance(this.entity.getPosition());this.SliderValue=o/e,this.RoomWidth.setLocalScale(this.RoomWidth.getLocalScale().x,this.RoomWidth.getLocalScale().y,this.roomWidthInitialScale*(1+this.SliderValue));var s=2*(1+this.SliderValue);this.RoomWidthText.element.text=s.toFixed(1).toString(),console.log(this.RoomWidth.getLocalScale()),console.log(this.SliderValue)}},SliderHorizontal.prototype.onTouchStart=function(t){1===t.touches.length&&this.updateFromScreen(t.touches[0]),t.event.preventDefault()},SliderHorizontal.prototype.onTouchMove=function(t){this.updateFromScreen(t.touches[0]),t.event.preventDefault()},SliderHorizontal.prototype.onTouchEnd=function(t){this.Selected=0,t.event.preventDefault()},SliderHorizontal.prototype.onTouchCancel=function(t){this.Selected=0,t.event.preventDefault()};var SliderVertical=pc.createScript("sliderVertical");SliderVertical.attributes.add("Selected",{type:"number",default:0}),SliderVertical.attributes.add("SliderValue",{type:"number",default:0}),SliderVertical.attributes.add("MinLimit",{type:"entity"}),SliderVertical.attributes.add("MaxLimit",{type:"entity"}),SliderVertical.attributes.add("Ceiling",{type:"entity"}),SliderVertical.attributes.add("CeilingHeightText",{type:"entity"}),SliderVertical.attributes.add("MinLimitOffset",{type:"number",default:0}),SliderVertical.attributes.add("MaxLimitOffset",{type:"number",default:0}),SliderVertical.attributes.add("RaiseFactor",{type:"number",default:1}),SliderVertical.prototype.initialize=function(){this.pos=new pc.Vec3,this.initialCielingHeight=this.Ceiling.getPosition().y,this.app.mouse.on(pc.EVENT_MOUSEMOVE,this.onMouseMove,this),this.app.mouse.on(pc.EVENT_MOUSEDOWN,this.onMouseDown,this),this.app.mouse.on(pc.EVENT_MOUSEUP,this.onMouseUp,this);var i=this.MinLimit.getPosition().distance(this.MaxLimit.getPosition()),t=this.MinLimit.getPosition().distance(this.entity.getPosition());this.SliderValue=t/i,this.Ceiling.setLocalPosition(this.Ceiling.getPosition().x,this.initialCielingHeight+this.SliderValue*this.RaiseFactor,this.Ceiling.getPosition().z),this.CeilingHeightText.element.text=(this.initialCielingHeight+this.SliderValue*this.RaiseFactor).toFixed(1).toString();var e=this.app.touch;e&&(e.on(pc.EVENT_TOUCHSTART,this.onTouchStart,this),e.on(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),e.on(pc.EVENT_TOUCHEND,this.onTouchEnd,this),e.on(pc.EVENT_TOUCHCANCEL,this.onTouchCancel,this)),this.on("destroy",(function(){e.off(pc.EVENT_TOUCHSTART,this.onTouchStart,this),e.off(pc.EVENT_TOUCHMOVE,this.onTouchMove,this),e.off(pc.EVENT_TOUCHEND,this.onTouchEnd,this),e.off(pc.EVENT_TOUCHCANCEL,this.onTouchCancel,this)}),this)},SliderVertical.prototype.update=function(i){},SliderVertical.prototype.onMouseDown=function(i){},SliderVertical.prototype.onMouseMove=function(i){if(1==this.Selected){this.app.graphicsDevice.canvas.clientWidth,this.app.graphicsDevice.canvas.clientHeight;var t=this.entity.getPosition();this.app.root.findByName("Camera").camera.screenToWorld(i.x,i.y,.808,this.pos),this.entity.setPosition(t.x,this.pos.y,-5.18),this.entity.getPosition().y>this.MaxLimit.getPosition().y-this.MaxLimitOffset&&this.entity.setPosition(this.entity.getPosition().x,this.MaxLimit.getPosition().y-this.MaxLimitOffset,this.entity.getPosition().z),this.entity.getPosition().ythis.MaxLimit.getPosition().y-this.MaxLimitOffset&&this.entity.setPosition(this.entity.getPosition().x,this.MaxLimit.getPosition().y-this.MaxLimitOffset,this.entity.getPosition().z),this.entity.getPosition().ythis.MaxLimit.getPosition().y&&this.entity.setPosition(this.entity.getPosition().x,this.MaxLimit.getPosition().y,this.entity.getPosition().z),this.entity.getPosition().ythis.MaxLimit.getPosition().y&&this.entity.setPosition(this.entity.getPosition().x,this.MaxLimit.getPosition().y,this.entity.getPosition().z),this.entity.getPosition().ythis.Interval&&(this.timer=0,this.SliderEntity.enabled=!1)},SliderVisible.prototype.showSlider=function(){this.timer=0,this.SliderEntity.enabled=!0};pc.script.createLoadingScreen((function(e){var t,a;t=["body {"," background-color: #283538;","}","","#application-splash-wrapper {"," position: absolute;"," top: 0;"," left: 0;"," height: 100%;"," width: 100%;"," background-color: #ffffff;","}","","#application-splash {"," position: absolute;"," top: calc(50% - 28px);"," width: 264px;"," left: calc(50% - 132px);","}","","#application-splash img {"," width: 100%;","}","","#progress-bar-container {"," margin: 20px auto 0 auto;"," height: 2px;"," width: 100%;"," background-color: #1d292c;","}","","#progress-bar {"," width: 0%;"," height: 100%;"," background-color: #eeeeee;","}","","@media (max-width: 480px) {"," #application-splash {"," width: 170px;"," left: calc(50% - 85px);"," }","}"].join("\n"),(a=document.createElement("style")).type="text/css",a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t)),document.head.appendChild(a),function(){var e=document.createElement("div");e.id="application-splash-wrapper",document.body.appendChild(e);var t=document.createElement("div");t.id="application-splash",e.appendChild(t),t.style.display="none";var a=document.createElement("img");a.src="https://farsh-mobile.s3.me-south-1.amazonaws.com/farsh_logo_high_res_1.png",t.appendChild(a),a.onload=function(){t.style.display="block"};var o=document.createElement("div");o.id="progress-bar-container",t.appendChild(o);var n=document.createElement("div");n.id="progress-bar",o.appendChild(n)}(),e.on("preload:end",(function(){e.off("preload:progress")})),e.on("preload:progress",(function(e){var t=document.getElementById("progress-bar");t&&(e=Math.min(1,Math.max(0,e)),t.style.width=100*e+"%")})),e.on("start",(function(){var e=document.getElementById("application-splash-wrapper");e.parentElement.removeChild(e)}))}));var UISlider=pc.createScript("uiSlider");UISlider.attributes.add("handle",{type:"entity",default:null,title:"Handle"}),UISlider.attributes.add("axis",{type:"string",default:"y",title:"Axis",description:"lock drag to axis: x, y or xy"}),UISlider.attributes.add("upperLimit",{type:"entity",default:null,title:"upperLimit"}),UISlider.attributes.add("lowerLimit",{type:"entity",default:null,title:"lowerLimit"}),UISlider.attributes.add("val",{type:"number",default:0}),UISlider.prototype.postInitialize=function(){if(this.handle||(this.handle=this.entity.parent.findByName("UISliderHandle")),!this.handle)throw new Error("UISlider has no handle");this.addHandleListeners(),this.isDragging=!1,this.touchId=-1,this.mousePos=new pc.Vec3,this.anchorPos=this.handle.getLocalPosition().clone(),this.screen=this.getUIScreenComponent()},UISlider.prototype.getUIScreenComponent=function(){return this.handle.element.screen.screen},UISlider.prototype.addHandleListeners=function(){this.handle.element.useInput=!0,this.handle.element.on(pc.EVENT_MOUSEDOWN,this.onPressDown,this),this.app.mouse.on(pc.EVENT_MOUSEUP,this.onPressUp,this),this.app.mouse.on(pc.EVENT_MOUSEMOVE,this.onPressMove,this),this.app.touch&&(console.log("initing touches"),this.handle.element.on(pc.EVENT_TOUCHSTART,this.onTouchStart,this),this.app.touch.on(pc.EVENT_TOUCHEND,this.onTouchEnd,this),this.app.touch.on(pc.EVENT_TOUCHCANCEL,this.onTouchEnd,this),this.app.touch.on(pc.EVENT_TOUCHMOVE,this.onTouchMove,this)),this.on("destroy",(function(){this.handle.element.off(pc.EVENT_MOUSEDOWN,this.onPressDown,this),this.app.mouse.off(pc.EVENT_MOUSEUP,this.onPressUp,this),this.app.mouse.off(pc.EVENT_MOUSEMOVE,this.onPressMove,this),this.app.touch&&(this.handle.element.off(pc.EVENT_TOUCHSTART,this.onTouchStart,this),this.app.touch.off(pc.EVENT_TOUCHEND,this.onTouchEnd,this),this.app.touch.off(pc.EVENT_TOUCHCANCEL,this.onTouchEnd,this),this.app.touch.off(pc.EVENT_TOUCHMOVE,this.onTouchMove,this))}))},UISlider.prototype.onTouchStart=function(t){var i=t.changedTouches[0];this.touchId=i.identifier,this.startDrag(t.x,t.y),t.event.stopPropagation()},UISlider.prototype.onTouchMove=function(t){for(var i=0;ithis.upperLimit.getLocalPosition().y&&this.handle.setLocalPosition(this.handle.getLocalPosition().x,this.upperLimit.getLocalPosition().y,0),this.handle.getLocalPosition().ythis.upperLimit.getLocalPosition().x&&this.handle.setLocalPosition(this.upperLimit.getLocalPosition().x,this.handle.getLocalPosition().y,0),this.handle.getLocalPosition().x lumaMax ) )"," {"," gl_FragColor = vec4( rgbA, opacity );"," }"," else"," {"," gl_FragColor = vec4( rgbB, opacity );"," }","}"].join("\n");this.fxaaShader=new pc.Shader(e,{attributes:o,vshader:t,fshader:a}),this.resolution=new Float32Array(2)}FxaaEffect.prototype=Object.create(pc.PostEffect.prototype),FxaaEffect.prototype.constructor=FxaaEffect,Object.assign(FxaaEffect.prototype,{render:function(e,o,t){var a=this.device,r=a.scope;this.resolution[0]=1/e.width,this.resolution[1]=1/e.height,r.resolve("uResolution").setValue(this.resolution),r.resolve("uColorBuffer").setValue(e.colorBuffer),pc.drawFullscreenQuad(a,o,this.vertexBuffer,this.fxaaShader,t)}});var Fxaa=pc.createScript("fxaa");Fxaa.prototype.initialize=function(){this.effect=new FxaaEffect(this.app.graphicsDevice);var e=this.entity.camera.postEffects;e.addEffect(this.effect),this.on("state",(function(o){o?e.addEffect(this.effect):e.removeEffect(this.effect)})),this.on("destroy",(function(){e.removeEffect(this.effect)}))};var CeilingHeightController=pc.createScript("ceilingHeightController");CeilingHeightController.attributes.add("ceiling",{type:"entity",default:null,title:"ceiling"}),CeilingHeightController.attributes.add("sliderKnot",{type:"entity",default:null,title:"sliderKnot"}),CeilingHeightController.attributes.add("ceilText",{type:"entity",default:null,title:"ceilText"}),CeilingHeightController.prototype.initialize=function(){this.initialHeight=this.ceiling.getLocalPosition().y},CeilingHeightController.prototype.update=function(i){this.ceiling.setLocalPosition(this.ceiling.getLocalPosition().x,this.initialHeight+this.sliderKnot.script.uiSlider.val,this.ceiling.getLocalPosition().z),this.ceilText.element.text="H: "+this.ceiling.getLocalPosition().y.toFixed(1).toString()+"m"};var Debug=pc.createScript("debug");Debug.attributes.add("DebugElement",{type:"entity",default:null,title:"sliderKnot"}),Debug.attributes.add("sliderKnot",{type:"entity",default:null,title:"sliderKnot"}),Debug.prototype.initialize=function(){},Debug.prototype.update=function(t){this.entity.element.text=this.sliderKnot.script.uiSlider.val.toString()};var RoomWidthController=pc.createScript("roomWidthController");RoomWidthController.attributes.add("room",{type:"entity",default:null,title:"room"}),RoomWidthController.attributes.add("sliderKnot",{type:"entity",default:null,title:"sliderKnot"}),RoomWidthController.attributes.add("initialWidthScale",{type:"number",default:.5}),RoomWidthController.attributes.add("minWidth",{type:"number",default:3.6}),RoomWidthController.attributes.add("maxWidth",{type:"number",default:6}),RoomWidthController.attributes.add("UiWidthText",{type:"entity",default:null,title:"UiWidthText"}),RoomWidthController.prototype.initialize=function(){},RoomWidthController.prototype.update=function(t){var i=this.sliderKnot.script.uiSlider.val,o=this.maxWidth-this.minWidth;this.room.setLocalScale(this.room.getLocalScale().x,this.room.getLocalScale().y,(this.minWidth+o*i)/(this.minWidth/this.initialWidthScale)),this.UiWidthText.element.text="W: "+(this.minWidth+o*i).toFixed(1).toString()+"m"};var FollowWorldTarget=pc.createScript("followWorldTarget");FollowWorldTarget.attributes.add("target",{type:"entity"}),FollowWorldTarget.attributes.add("camera",{type:"entity"}),FollowWorldTarget.prototype.initialize=function(){},FollowWorldTarget.prototype.postUpdate=function(t){var e=this.target.getPosition(),i=new pc.Vec3;if(this.camera.camera.worldToScreen(e,i),i.z>0){this.entity.element.enabled=!0;var a=this.app.graphicsDevice.maxPixelRatio;i.x*=a,i.y*=a;var o=this.app.graphicsDevice;this.entity.setPosition(i.x/o.width*2-1,2*(1-i.y/o.height)-1,0)}else this.entity.element.enabled=!1};var ShowResizeOptions=pc.createScript("showResizeOptions");ShowResizeOptions.attributes.add("VertSlider",{type:"entity",description:"The entity that we want to update when the button is clicked"}),ShowResizeOptions.attributes.add("HorSlider",{type:"entity",description:"The entity that we want to update when the button is clicked"}),ShowResizeOptions.attributes.add("HeightShow",{type:"entity",description:"The entity that we want to update when the button is clicked"}),ShowResizeOptions.attributes.add("WidthShow",{type:"entity",description:"The entity that we want to update when the button is clicked"}),ShowResizeOptions.attributes.add("ModelScaleSlider",{type:"entity",description:"The entity that we want to update when the button is clicked"}),ShowResizeOptions.attributes.add("Toggle",{type:"number",description:"The entity that we want to update when the button is clicked"}),ShowResizeOptions.prototype.initialize=function(){this.entity.button.on("click",(function(t){0==this.Toggle?(this.Toggle=1,this.VertSlider.enabled=!0,this.HorSlider.enabled=!0,this.HeightShow.enabled=!0,this.WidthShow.enabled=!0,this.ModelScaleSlider.enabled=!0):(this.Toggle=0,this.VertSlider.enabled=!1,this.HorSlider.enabled=!1,this.HeightShow.enabled=!1,this.WidthShow.enabled=!1,this.ModelScaleSlider.enabled=!1),console.log("CHAL GYA")}),this)},ShowResizeOptions.prototype.update=function(t){};var UnscaleFromParents=pc.createScript("unscaleFromParents");UnscaleFromParents.attributes.add("parent",{type:"entity",default:null,title:"parent"}),UnscaleFromParents.attributes.add("invertZandY",{type:"boolean"}),UnscaleFromParents.attributes.add("targetValueX",{type:"number"}),UnscaleFromParents.attributes.add("targetValueY",{type:"number"}),UnscaleFromParents.attributes.add("targetValueZ",{type:"number"}),UnscaleFromParents.prototype.initialize=function(){},UnscaleFromParents.prototype.update=function(t){1==this.invertZandY?this.entity.setLocalScale(this.targetValueX*(1/this.parent.getLocalScale().x),1*this.targetValueY/this.parent.getLocalScale().z,1*this.targetValueZ/this.parent.getLocalScale().y):this.entity.setLocalScale(this.targetValueX*(1/this.parent.getLocalScale().x),1*this.targetValueY/this.parent.getLocalScale().y,1*this.targetValueZ/this.parent.getLocalScale().z)};var MatchTargetScale=pc.createScript("matchTargetScale");MatchTargetScale.attributes.add("target",{type:"entity"}),MatchTargetScale.attributes.add("matchX",{type:"boolean"}),MatchTargetScale.attributes.add("matchY",{type:"boolean"}),MatchTargetScale.attributes.add("matchZ",{type:"boolean"}),MatchTargetScale.prototype.initialize=function(){this.initialX=this.entity.getLocalScale().x,this.initialY=this.entity.getLocalScale().y,this.initialZ=this.entity.getLocalScale().z},MatchTargetScale.prototype.update=function(t){1==this.matchX&&(this.entity.setLocalScale(this.initialX*this.target.getLocalScale().x,this.entity.getLocalScale().y,this.entity.getLocalScale().z),console.log(this.target.getLocalScale().x/this.initialTargetX)),1==this.matchY&&this.entity.setLocalScale(this.entity.getLocalScale().x,this.target.getLocalScale().y,this.entity.getLocalScale().z),1==this.matchZ&&this.entity.setLocalScale(this.entity.getLocalScale().x,this.entity.getLocalScale().y,this.target.getLocalScale().z)};var MantainDistanceWithTargetScale=pc.createScript("mantainDistanceWithTargetScale");MantainDistanceWithTargetScale.attributes.add("target",{type:"entity"}),MantainDistanceWithTargetScale.attributes.add("defaultDistZ",{type:"number"}),MantainDistanceWithTargetScale.attributes.add("defaultDistX",{type:"number"}),MantainDistanceWithTargetScale.attributes.add("adjustZ",{type:"boolean"}),MantainDistanceWithTargetScale.attributes.add("adjustX",{type:"boolean"}),MantainDistanceWithTargetScale.prototype.initialize=function(){},MantainDistanceWithTargetScale.prototype.update=function(t){1==this.adjustZ&&this.entity.setLocalPosition(this.entity.getLocalPosition().x,this.entity.getLocalPosition().y,this.target.getLocalPosition().z+this.defaultDistZ*this.target.getLocalScale().z),1==this.adjustX&&this.entity.setLocalPosition(this.target.getLocalPosition().x+this.defaultDistX*this.target.getLocalScale().x,this.entity.getLocalPosition().y,this.entity.getLocalPosition().z)};var MoveUpwithScale=pc.createScript("moveUpwithScale");MoveUpwithScale.attributes.add("target",{type:"entity"}),MoveUpwithScale.prototype.initialize=function(){this.initialYPosition=this.entity.getLocalPosition().y},MoveUpwithScale.prototype.update=function(t){this.entity.setLocalPosition(this.entity.getLocalPosition().x,-(1-this.target.getLocalScale().z)/2.2,this.entity.getLocalPosition().z)}; \ No newline at end of file diff --git a/__loading__.js b/__loading__.js index 627a013..4d5673b 100644 --- a/__loading__.js +++ b/__loading__.js @@ -12,7 +12,7 @@ pc.script.createLoadingScreen(function (app) { splash.style.display = 'none'; var logo = document.createElement('img'); - logo.src = ASSET_PREFIX + 'logo.png'; + logo.src = 'https://farsh-mobile.s3.me-south-1.amazonaws.com/farsh_logo_high_res_1.png'; splash.appendChild(logo); logo.onload = function () { splash.style.display = 'block'; @@ -35,7 +35,7 @@ pc.script.createLoadingScreen(function (app) { var setProgress = function (value) { var bar = document.getElementById('progress-bar'); - if (bar) { + if(bar) { value = Math.min(1, Math.max(0, value)); bar.style.width = value * 100 + '%'; } @@ -46,46 +46,46 @@ pc.script.createLoadingScreen(function (app) { 'body {', ' background-color: #283538;', '}', - + '', '#application-splash-wrapper {', ' position: absolute;', ' top: 0;', ' left: 0;', ' height: 100%;', ' width: 100%;', - ' background-color: #283538;', + ' background-color: #ffffff;', '}', - + '', '#application-splash {', ' position: absolute;', ' top: calc(50% - 28px);', ' width: 264px;', ' left: calc(50% - 132px);', '}', - + '', '#application-splash img {', ' width: 100%;', '}', - + '', '#progress-bar-container {', ' margin: 20px auto 0 auto;', ' height: 2px;', ' width: 100%;', ' background-color: #1d292c;', '}', - + '', '#progress-bar {', ' width: 0%;', ' height: 100%;', - ' background-color: #f60;', + ' background-color: #eeeeee;', '}', + '', '@media (max-width: 480px) {', ' #application-splash {', ' width: 170px;', ' left: calc(50% - 85px);', ' }', '}' - ].join('\n'); var style = document.createElement('style'); @@ -99,9 +99,7 @@ pc.script.createLoadingScreen(function (app) { document.head.appendChild(style); }; - createCss(); - showSplash(); app.on('preload:end', function () { @@ -109,4 +107,4 @@ pc.script.createLoadingScreen(function (app) { }); app.on('preload:progress', setProgress); app.on('start', hideSplash); -}); +}); \ No newline at end of file diff --git a/__settings__.js b/__settings__.js index 45aea0d..89eedca 100644 --- a/__settings__.js +++ b/__settings__.js @@ -6,9 +6,9 @@ CONTEXT_OPTIONS = { 'alpha': false, 'preserveDrawingBuffer': false, 'preferWebGl2': true, - 'powerPreference': "default" + 'powerPreference': "high-performance" }; -SCRIPTS = [ 77854887, 78097772, 78382718, 79014545, 79153391, 79459251, 79465795, 79469394, 82175600, 82307731, 85572451, 86079364, 86144986, 86147006, 86182389 ]; +SCRIPTS = [ 77854887, 78097772, 78382718, 79014545, 79153391, 79459251, 79465795, 79469394, 82175600, 82307731, 86079364, 86144986, 86147006, 86182389, 86761091, 89559195, 89696259, 89697541, 89706577, 89717413, 91478011, 91628463, 92663277, 92668910, 92676263, 93407776 ]; CONFIG_FILENAME = "config.json"; INPUT_SETTINGS = { useKeyboard: true, diff --git a/config.json b/config.json index 7bb6c42..6357ca4 100644 --- a/config.json +++ b/config.json @@ -1 +1 @@ -{"application_properties":{"i18nAssets":[],"useTouch":true,"layerOrder":[{"layer":0,"enabled":true,"transparent":false},{"layer":1,"enabled":true,"transparent":false},{"layer":2,"enabled":true,"transparent":false},{"layer":0,"enabled":true,"transparent":true},{"layer":3,"enabled":true,"transparent":false},{"layer":3,"enabled":true,"transparent":true},{"layer":4,"enabled":true,"transparent":true}],"externalScripts":[],"height":720,"vr":false,"useModelV2":false,"antiAlias":true,"layers":{"0":{"transparentSortMode":3,"opaqueSortMode":2,"name":"World"},"1":{"transparentSortMode":3,"opaqueSortMode":2,"name":"Depth"},"2":{"transparentSortMode":3,"opaqueSortMode":0,"name":"Skybox"},"3":{"transparentSortMode":3,"opaqueSortMode":0,"name":"Immediate"},"4":{"transparentSortMode":1,"opaqueSortMode":1,"name":"UI"}},"width":1280,"useDevicePixelRatio":false,"useKeyboard":true,"maxAssetRetries":5,"powerPreference":"default","batchGroups":[],"preserveDrawingBuffer":false,"useLegacyScripts":false,"fillMode":"KEEP_ASPECT","scripts":[77854887,78097772,78382718,79014545,79153391,79459251,79465795,79469394,82175600,82307731,85572451,86079364,86144986,86147006,86182389],"useMouse":true,"use3dPhysics":false,"transparentCanvas":false,"resolutionMode":"AUTO","loadingScreenScript":null,"preferWebGl2":true,"useGamepads":false,"libraries":[]},"scenes":[{"name":"Untitled","url":"1390892.json"}],"assets":{"77854887":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"mouse.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"mouse":{"attributesOrder":["Selected"],"attributes":{"Selected":{"type":"number","default":0}}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"7bc18c8f-82fe-4680-926d-309538b1674b","same_as_backup":0,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"77854887"},"77855246":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"New Material","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[0,0.3764705882352941,1],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"77855246"},"77855249":{"tags":[],"name":"New Material","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,0,0],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"77855249"},"77855250":{"tags":[],"name":"New Material","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[0.3333333333333333,1,0],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"77855250"},"78072763":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"loonie1.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":500,"height":500,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"loonie1.png","size":179080,"hash":"549278f659af3330a068eeab4953f01b","variants":{},"url":"files/assets/78072763/1/loonie1.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"18691b30-4b08-4f1a-af0e-de96e176d2ec","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78072763"},"78072855":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"New Material","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":78072763,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":2,"emissive":[0,0,0],"emissiveMap":78072763,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1.18,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0.686,"alphaFade":1,"opacity":1,"opacityMap":78072763,"opacityMapChannel":"a","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78072855"},"78097772":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"touch.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"touch":{"attributesOrder":["Selected"],"attributes":{"Selected":{"type":"number","default":0}}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"80a64f57-ab50-40bb-9ad6-a11a4c149415","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78097772"},"78181705":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Wdparq2.jpg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":351,"height":351,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"Wdparq2.jpg","size":75522,"hash":"bf13297b4b74e7c37839ecba595482f2","variants":{},"url":"files/assets/78181705/1/Wdparq2.jpg"},"region":"eu-west-1","i18n":{},"immutable_backup":"51190c9c-93ec-417f-b21c-95a3d9534df4","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181705"},"78181706":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"robe2.jpg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":298,"height":298,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"robe2.jpg","size":18470,"hash":"3508e1085ab2dc004e38257685c02922","variants":{},"url":"files/assets/78181706/1/robe2.jpg"},"region":"eu-west-1","i18n":{},"immutable_backup":"e490c699-0138-4c10-8583-e80c56b0524b","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181706"},"78181707":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"ceilingbump.jpg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":283,"height":403,"alpha":false,"depth":8,"srgb":false,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"ceilingbump.jpg","size":115965,"hash":"c78e303aa89c57fb464518c819f327b6","variants":{},"url":"files/assets/78181707/1/ceilingbump.jpg"},"region":"eu-west-1","i18n":{},"immutable_backup":"0d620af6-09c2-4f07-ade6-c05639b72cd4","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181707"},"78181708":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"walls.jpg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":983,"height":662,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"walls.jpg","size":79678,"hash":"8959016d8864904b03e3c778260cee6f","variants":{},"url":"files/assets/78181708/1/walls.jpg"},"region":"eu-west-1","i18n":{},"immutable_backup":"9a16ead2-527f-4bc0-9361-a7950c057189","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181708"},"78181709":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"CARPTTAN.JPG","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":512,"height":512,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"CARPTTAN.JPG","size":250224,"hash":"1d7c8fb9403e175e294aa0a14e290a54","variants":{},"url":"files/assets/78181709/1/CARPTTAN.JPG"},"region":"eu-west-1","i18n":{},"immutable_backup":"d0ae7e5d-36d3-43ed-b153-52400d67c20d","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181709"},"78181710":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"livingroom.max","revision":1,"preload":true,"exclude":false,"meta":null,"data":null,"type":"binary","file":{"filename":"livingroom.max","size":302592,"hash":"444dd36a95b616a14e030148af5cda69","url":"files/assets/78181710/1/livingroom.max"},"region":"eu-west-1","i18n":{},"immutable_backup":"930de445-fae5-4586-94bb-889d3fd0555d","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181710"},"78181711":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"BURLOAK.JPG","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":756,"height":512,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"BURLOAK.JPG","size":189060,"hash":"3a7de42744d470c97f33b53c1b3eef7b","variants":{},"url":"files/assets/78181711/1/BURLOAK.JPG"},"region":"eu-west-1","i18n":{},"immutable_backup":"ae4e4bb5-0c36-4e7e-85b4-492e145c6574","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181711"},"78181751":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Take 001.glb","revision":1,"preload":true,"region":"eu-west-1","meta":{"name":"Take 001","duration":0},"data":null,"type":"animation","file":{"hash":"cb00af4e5637090a638f86273312a910","size":13688,"filename":"Take 001.glb","url":"files/assets/78181751/1/Take%20001.glb"},"i18n":{},"immutable_backup":"5badb4b8-22df-4a7c-9068-f4f7ddb16bae","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181751"},"78181752":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"01 - Default","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":0},"data":{"shader":"blinn","ambient":[0.588235,0.588235,0.588235],"diffuse":[0.588235,0.588235,0.588235],"diffuseMap":null,"diffuseMapOffset":[0,0],"diffuseMapTiling":[1,1],"specular":[0,0,0],"shininess":1.81818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181752"},"78181753":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"02 - Default","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":3},"data":{"shader":"blinn","ambient":[0.588235,0.588235,0.588235],"diffuse":[0.588235,0.588235,0.588235],"diffuseMap":null,"diffuseMapOffset":[0,0],"diffuseMapTiling":[1,1],"specular":[0,0,0],"shininess":18.1818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181753"},"78181754":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"13 - Default","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":1},"data":{"shader":"blinn","ambient":[0.588235,0.588235,0.588235],"diffuse":[0.6588235294117647,0.6392156862745098,0.6235294117647059],"diffuseMap":78181705,"diffuseMapOffset":[-0.35,-0.7],"diffuseMapTiling":[118.58,59.38],"specular":[0,0,0],"shininess":18.1818,"emissive":[0.01568627450980392,0.01568627450980392,0.01568627450980392],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":true,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181754"},"78181756":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"14 - Defaultwall","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":2},"data":{"shader":"blinn","ambient":[0.588235,0.588235,0.588235],"diffuse":[0.588235,0.588235,0.588235],"diffuseMap":78181708,"diffuseMapOffset":[4.17233e-7,0],"diffuseMapTiling":[0.999999,1],"specular":[0,0,0],"shininess":18.1818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181756"},"78181757":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"07 - Default","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":6},"data":{"shader":"blinn","ambient":[1,1,0.960784],"diffuse":[1,1,0.960784],"specular":[0,0,0],"shininess":18.1818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[18.17,7.04],"aoMapOffset":[0,0],"diffuseMap":85570629,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[18.17,7.04],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[18.17,7.04],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[18.17,7.04],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[18.17,7.04],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[18.17,7.04],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[18.17,7.04],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[18.17,7.04],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[18.17,7.04],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[18.17,7.04],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[18.17,7.04],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[18.17,7.04],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[18.17,7.04],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181757"},"78181758":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"15 - Default","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":8},"data":{"shader":"blinn","ambient":[0.686275,0.423529,0.192157],"diffuse":[0.686275,0.423529,0.192157],"specular":[0,0,0],"shininess":18.1818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181758"},"78181759":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"14 - Default","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":7},"data":{"shader":"blinn","ambient":[0.588235,0.588235,0.588235],"diffuse":[0.588235,0.588235,0.588235],"diffuseMap":null,"diffuseMapOffset":[0,0],"diffuseMapTiling":[1,1],"specular":[0,0,0],"shininess":18.1818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181759"},"78181760":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"08 - Default","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":5},"data":{"shader":"blinn","ambient":[1,0.729412,0],"diffuse":[1,0.729412,0],"specular":[0.31132,0.31132,0.31132],"shininess":90.9091,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181760"},"78181761":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"03 - Default","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":4},"data":{"shader":"blinn","ambient":[1,1,1],"diffuse":[1,1,1],"specular":[1.6045,1.6045,1.6045],"shininess":90.9091,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181761"},"78181762":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":658,"triangles":768,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":0},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181762"},"78181763":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box02","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":658,"triangles":768,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":1},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181763"},"78181764":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box03","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":658,"triangles":768,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":2},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181764"},"78181765":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box04","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":652,"triangles":764,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":3},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181765"},"78181766":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box05","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":652,"triangles":764,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":4},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181766"},"78181767":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box06","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":652,"triangles":764,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":5},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181767"},"78181768":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box07","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":11646,"triangles":15932,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":6},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181768"},"78181769":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":391,"triangles":704,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":7},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181769"},"78181770":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"C-Ext01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":56,"triangles":28,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":8},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181770"},"78181771":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box08","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":406,"triangles":212,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":9},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181771"},"78181772":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Sphere01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1412,"triangles":2300,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":10},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181772"},"78181773":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Cylinder01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":79,"triangles":72,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":11},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181773"},"78181774":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Sphere02","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":71,"triangles":80,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":12},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181774"},"78181775":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Line01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1503,"triangles":1572,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":13},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181775"},"78181776":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box09","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":126,"triangles":84,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":14},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181776"},"78181777":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box10","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":126,"triangles":84,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":15},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181777"},"78181778":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box11","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":126,"triangles":84,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":16},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181778"},"78181779":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box12","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":126,"triangles":84,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":17},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181779"},"78181780":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box13","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":126,"triangles":84,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181755,"renderIndex":18},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181780"},"78181876":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"livingroom.glb","revision":1,"preload":true,"region":"eu-west-1","meta":null,"data":{},"type":"container","file":{"hash":"78e748bf3b30b70fc9d4b74e36d22e8d","size":815580,"filename":"livingroom.glb","url":"files/assets/78181876/1/livingroom.glb"},"i18n":{},"immutable_backup":"47d741c1-43e5-456c-a962-4f29772eb1b5","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181876"},"78181877":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":658,"triangles":768,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":0},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181877"},"78181878":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box02","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":658,"triangles":768,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":1},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181878"},"78181879":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box03","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":658,"triangles":768,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":2},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181879"},"78181880":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box04","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":652,"triangles":764,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":3},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181880"},"78181881":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box05","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":652,"triangles":764,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":4},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181881"},"78181882":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box06","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":652,"triangles":764,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":5},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181882"},"78181883":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box07","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":11646,"triangles":15932,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":6},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181883"},"78181884":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":391,"triangles":704,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":7},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181884"},"78181885":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"C-Ext01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":56,"triangles":28,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":8},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181885"},"78181886":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Sphere01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1412,"triangles":2300,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":10},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181886"},"78181887":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box08","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":406,"triangles":212,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":9},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181887"},"78181888":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Cylinder01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":79,"triangles":72,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":11},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181888"},"78181889":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Sphere02","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":71,"triangles":80,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":12},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181889"},"78181890":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Line01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1503,"triangles":1572,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":13},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181890"},"78181891":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box09","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":126,"triangles":84,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":14},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181891"},"78181892":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box10","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":126,"triangles":84,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":15},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181892"},"78181893":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box11","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":126,"triangles":84,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":16},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181893"},"78181894":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box12","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":126,"triangles":84,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":17},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181894"},"78181895":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Box13","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":126,"triangles":84,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78181876,"renderIndex":18},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181895"},"78181896":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"livingroom","revision":1,"preload":true,"region":"eu-west-1","meta":{"containerAsset":78181876},"data":{"entities":{"992e38f0-dd22-4fe8-843f-5c80f0b4190f":{"enabled":true,"tags":[],"children":["cf173562-138d-43de-b497-644f7ffe4239"],"position":[0,0,0],"rotation":[0,0,0],"scale":[0.01,0.01,0.01],"resource_id":"992e38f0-dd22-4fe8-843f-5c80f0b4190f","name":"RootNode","components":{},"parent":null},"cf173562-138d-43de-b497-644f7ffe4239":{"enabled":true,"tags":[],"children":["19b78e10-9bec-4619-80ff-e761bd368e6e","f637845d-7f0e-416e-a2da-27a804b90a26","624e755c-e008-4e38-a4ae-e189b9e6af0e","8fd046ca-9bf2-4996-a426-d5f6f336a65b","235f5a54-087f-4b74-bcb8-e92fb0454a6f","92d77773-aa8e-4faa-a639-619c285b76f1","0e2a3a2c-7ef9-48a5-94f8-425b169eb692","9ea5ecb4-e90e-41e7-8464-9700435c402b","7a7196e1-59de-4cee-831f-db20924f5a99","03051ef6-4f3a-438e-9160-a8aea926e2d0","3ce4c2c1-7a99-4730-a57c-346004bc1485","90839ae3-cc29-477f-a88e-53fb57152250","04a75aae-eb81-4d94-8678-29e91bc7ff75","26ac5c6d-406a-4e21-b3ce-6e451befe8e9","0ca19a72-2469-4446-b3d5-d341756117d3","afce77e7-aca3-481a-b7ad-35126ffafcde","1dbd7266-a1ce-4993-a0c0-14bc38ef3479","d5b5339a-94b6-4efa-822b-9c5c7997f1e1","232324a7-b6aa-4551-a098-bc9ea317773c","1346743e-6c0f-4290-9590-f6e6b64494a1","8a26cc25-f015-4fc5-8cfc-d2366cd0ec11","8f969715-c24b-40d4-a640-80340cc8ddaf","71743733-1689-447d-b55b-ef36a1f9832f"],"position":[0,0,0],"rotation":[0,0,0],"scale":[2.54,2.54,2.54],"resource_id":"cf173562-138d-43de-b497-644f7ffe4239","name":"Fbx_Root","components":{},"parent":"992e38f0-dd22-4fe8-843f-5c80f0b4190f"},"19b78e10-9bec-4619-80ff-e761bd368e6e":{"enabled":true,"tags":[],"children":[],"position":[-7.74598,38.4319,30.0512],"rotation":[0,0,14.3003],"scale":[1.07852,1.07852,1.07852],"resource_id":"19b78e10-9bec-4619-80ff-e761bd368e6e","name":"Box01","components":{"render":{"enabled":true,"type":"asset","asset":78181877,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"f637845d-7f0e-416e-a2da-27a804b90a26":{"enabled":true,"tags":[],"children":[],"position":[-7.74598,38.4319,96.2053],"rotation":[0,0,14.3003],"scale":[1.07852,1.07852,-1.07852],"resource_id":"f637845d-7f0e-416e-a2da-27a804b90a26","name":"Box02","components":{"render":{"enabled":true,"type":"asset","asset":78181878,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"624e755c-e008-4e38-a4ae-e189b9e6af0e":{"enabled":true,"tags":[],"children":[],"position":[-19.7797,35.3645,160.262],"rotation":[0,0,14.3003],"scale":[-1.07852,1.07852,-1.07852],"resource_id":"624e755c-e008-4e38-a4ae-e189b9e6af0e","name":"Box03","components":{"render":{"enabled":true,"type":"asset","asset":78181879,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"8fd046ca-9bf2-4996-a426-d5f6f336a65b":{"enabled":true,"tags":[],"children":[],"position":[8.67342,31.0299,-2.24907],"rotation":[90,0,0],"scale":[1.07852,1.07852,1.07852],"resource_id":"8fd046ca-9bf2-4996-a426-d5f6f336a65b","name":"Box04","components":{"render":{"enabled":true,"type":"asset","asset":78181880,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"235f5a54-087f-4b74-bcb8-e92fb0454a6f":{"enabled":true,"tags":[],"children":[],"position":[8.67342,31.0299,64.5707],"rotation":[90,0,0],"scale":[1.07852,1.07852,1.07852],"resource_id":"235f5a54-087f-4b74-bcb8-e92fb0454a6f","name":"Box05","components":{"render":{"enabled":true,"type":"asset","asset":78181881,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"92d77773-aa8e-4faa-a639-619c285b76f1":{"enabled":true,"tags":[],"children":[],"position":[8.67342,31.0299,131.359],"rotation":[90,0,0],"scale":[1.07852,1.07852,1.07852],"resource_id":"92d77773-aa8e-4faa-a639-619c285b76f1","name":"Box06","components":{"render":{"enabled":true,"type":"asset","asset":78181882,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"0e2a3a2c-7ef9-48a5-94f8-425b169eb692":{"enabled":true,"tags":[],"children":[],"position":[-0.578045,3.58283,-15.3967],"rotation":[90,0,0],"scale":[1,1,1],"resource_id":"0e2a3a2c-7ef9-48a5-94f8-425b169eb692","name":"Box07","components":{"render":{"enabled":true,"type":"asset","asset":78181883,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"9ea5ecb4-e90e-41e7-8464-9700435c402b":{"enabled":true,"tags":[],"children":[],"position":[129.593,0,84.7355],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"9ea5ecb4-e90e-41e7-8464-9700435c402b","name":"Plane01","components":{"render":{"enabled":true,"type":"asset","asset":78181884,"materialAssets":[78181754],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"7a7196e1-59de-4cee-831f-db20924f5a99":{"enabled":true,"tags":[],"children":[],"position":[385.604,0,-284.937],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"7a7196e1-59de-4cee-831f-db20924f5a99","name":"C-Ext01","components":{"render":{"enabled":true,"type":"asset","asset":78181885,"materialAssets":[78181756],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"03051ef6-4f3a-438e-9160-a8aea926e2d0":{"enabled":true,"tags":[],"children":[],"position":[-0.0364215,-0.117522,-46.2227],"rotation":[0,0,0],"scale":[0.945135,0.945135,0.945135],"resource_id":"03051ef6-4f3a-438e-9160-a8aea926e2d0","name":"Box08","components":{"render":{"enabled":true,"type":"asset","asset":78181887,"materialAssets":[78181753],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"3ce4c2c1-7a99-4730-a57c-346004bc1485":{"enabled":true,"tags":[],"children":[],"position":[-12.6914,51.191,-45.6799],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"3ce4c2c1-7a99-4730-a57c-346004bc1485","name":"Sphere01","components":{"render":{"enabled":true,"type":"asset","asset":78181886,"materialAssets":[78181761],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"90839ae3-cc29-477f-a88e-53fb57152250":{"enabled":true,"tags":[],"children":[],"position":[-12.745,67.1823,-45.5833],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"90839ae3-cc29-477f-a88e-53fb57152250","name":"Cylinder01","components":{"render":{"enabled":true,"type":"asset","asset":78181888,"materialAssets":[78181760],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"04a75aae-eb81-4d94-8678-29e91bc7ff75":{"enabled":true,"tags":[],"children":[],"position":[-12.6219,79.6286,-45.6129],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"04a75aae-eb81-4d94-8678-29e91bc7ff75","name":"Sphere02","components":{"render":{"enabled":true,"type":"asset","asset":78181889,"materialAssets":[78181757],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"26ac5c6d-406a-4e21-b3ce-6e451befe8e9":{"enabled":true,"tags":[],"children":[],"position":[-12.5626,77.3243,-55.9246],"rotation":[90,-90,0],"scale":[1,1,1],"resource_id":"26ac5c6d-406a-4e21-b3ce-6e451befe8e9","name":"Line01","components":{"render":{"enabled":true,"type":"asset","asset":78181890,"materialAssets":[78181759],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"0ca19a72-2469-4446-b3d5-d341756117d3":{"enabled":true,"tags":[],"children":[],"position":[22.6662,0,-33.2917],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"0ca19a72-2469-4446-b3d5-d341756117d3","name":"Box09","components":{"render":{"enabled":true,"type":"asset","asset":78181891,"materialAssets":[78181758],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"afce77e7-aca3-481a-b7ad-35126ffafcde":{"enabled":true,"tags":[],"children":[],"position":[22.6133,0,-38.6055],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"afce77e7-aca3-481a-b7ad-35126ffafcde","name":"Box10","components":{"render":{"enabled":true,"type":"asset","asset":78181892,"materialAssets":[78181758],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"1dbd7266-a1ce-4993-a0c0-14bc38ef3479":{"enabled":true,"tags":[],"children":[],"position":[21.9913,0,-42.9339],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"1dbd7266-a1ce-4993-a0c0-14bc38ef3479","name":"Box11","components":{"render":{"enabled":true,"type":"asset","asset":78181893,"materialAssets":[78181758],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"d5b5339a-94b6-4efa-822b-9c5c7997f1e1":{"enabled":true,"tags":[],"children":[],"position":[21.3003,0,-45.9494],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"d5b5339a-94b6-4efa-822b-9c5c7997f1e1","name":"Box12","components":{"render":{"enabled":true,"type":"asset","asset":78181894,"materialAssets":[78181758],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"232324a7-b6aa-4551-a098-bc9ea317773c":{"enabled":true,"tags":[],"children":[],"position":[20.5984,0,-49.921],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"232324a7-b6aa-4551-a098-bc9ea317773c","name":"Box13","components":{"render":{"enabled":true,"type":"asset","asset":78181895,"materialAssets":[78181758],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"1346743e-6c0f-4290-9590-f6e6b64494a1":{"enabled":true,"tags":[],"children":[],"position":[-12.5328,80.4621,-45.5371],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"1346743e-6c0f-4290-9590-f6e6b64494a1","name":"Omni01","components":{"light":{"enabled":true,"type":"point","bake":false,"bakeArea":0,"bakeNumSamples":1,"bakeDir":true,"affectDynamic":true,"affectLightmapped":false,"color":[1,1,0.921569],"intensity":1.17,"castShadows":false,"shadowUpdateMode":2,"shadowType":0,"vsmBlurMode":1,"vsmBlurSize":11,"vsmBias":0.01,"shadowDistance":16,"shadowResolution":1024,"numCascades":1,"cascadeDistribution":0.5,"shadowBias":0.2,"normalOffsetBias":0.05,"range":8,"falloffMode":0,"innerConeAngle":40,"outerConeAngle":45,"shape":0,"cookieAsset":null,"cookieIntensity":1,"cookieFalloff":true,"cookieChannel":"rgb","cookieAngle":0,"cookieScale":[1,1],"cookieOffset":[0,0],"isStatic":false,"layers":[0]}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"8a26cc25-f015-4fc5-8cfc-d2366cd0ec11":{"enabled":true,"tags":[],"children":[],"position":[127.84,180.989,-13.2821],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"8a26cc25-f015-4fc5-8cfc-d2366cd0ec11","name":"Omni02","components":{"light":{"enabled":true,"type":"point","bake":false,"bakeArea":0,"bakeNumSamples":1,"bakeDir":true,"affectDynamic":true,"affectLightmapped":false,"color":[1,1,0.921569],"intensity":0.269,"castShadows":false,"shadowUpdateMode":2,"shadowType":0,"vsmBlurMode":1,"vsmBlurSize":11,"vsmBias":0.01,"shadowDistance":16,"shadowResolution":1024,"numCascades":1,"cascadeDistribution":0.5,"shadowBias":0.2,"normalOffsetBias":0.05,"range":8,"falloffMode":0,"innerConeAngle":40,"outerConeAngle":45,"shape":0,"cookieAsset":null,"cookieIntensity":1,"cookieFalloff":true,"cookieChannel":"rgb","cookieAngle":0,"cookieScale":[1,1],"cookieOffset":[0,0],"isStatic":false,"layers":[0]}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"8f969715-c24b-40d4-a640-80340cc8ddaf":{"enabled":true,"tags":[],"children":[],"position":[151.448,178.646,280.302],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"8f969715-c24b-40d4-a640-80340cc8ddaf","name":"Omni03","components":{"light":{"enabled":true,"type":"point","bake":false,"bakeArea":0,"bakeNumSamples":1,"bakeDir":true,"affectDynamic":true,"affectLightmapped":false,"color":[1,1,0.921569],"intensity":0.2214,"castShadows":false,"shadowUpdateMode":2,"shadowType":0,"vsmBlurMode":1,"vsmBlurSize":11,"vsmBias":0.01,"shadowDistance":16,"shadowResolution":1024,"numCascades":1,"cascadeDistribution":0.5,"shadowBias":0.2,"normalOffsetBias":0.05,"range":8,"falloffMode":0,"innerConeAngle":40,"outerConeAngle":45,"shape":0,"cookieAsset":null,"cookieIntensity":1,"cookieFalloff":true,"cookieChannel":"rgb","cookieAngle":0,"cookieScale":[1,1],"cookieOffset":[0,0],"isStatic":false,"layers":[0]}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"71743733-1689-447d-b55b-ef36a1f9832f":{"enabled":true,"tags":[],"children":[],"position":[151.448,304.742,75.99],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"71743733-1689-447d-b55b-ef36a1f9832f","name":"Omni04","components":{"light":{"enabled":true,"type":"point","bake":false,"bakeArea":0,"bakeNumSamples":1,"bakeDir":true,"affectDynamic":true,"affectLightmapped":false,"color":[1,1,0.921569],"intensity":0.2214,"castShadows":false,"shadowUpdateMode":2,"shadowType":0,"vsmBlurMode":1,"vsmBlurSize":11,"vsmBias":0.01,"shadowDistance":16,"shadowResolution":1024,"numCascades":1,"cascadeDistribution":0.5,"shadowBias":0.2,"normalOffsetBias":0.05,"range":8,"falloffMode":0,"innerConeAngle":40,"outerConeAngle":45,"shape":0,"cookieAsset":null,"cookieIntensity":1,"cookieFalloff":true,"cookieChannel":"rgb","cookieAngle":0,"cookieScale":[1,1],"cookieOffset":[0,0],"isStatic":false,"layers":[0]}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"}}},"type":"template","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78181896"},"78379717":{"tags":[],"name":"ammo.js","revision":1,"preload":false,"meta":null,"data":{"order":100,"scripts":{},"loadingType":0},"type":"script","file":{"filename":"ammo.js","size":1895438,"hash":"34480c72ed787337db20c105cb9ba69d","url":"files/assets/78379717/1/ammo.js"},"region":"eu-west-1","i18n":{},"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","immutable_backup":"0ff0f9dc-f3c3-46e0-be11-42b897c70cde","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78379717"},"78379718":{"tags":[],"name":"ammo.wasm.js","revision":1,"preload":false,"meta":null,"data":{"order":100,"scripts":{},"loadingType":0},"type":"script","file":{"filename":"ammo.wasm.js","size":391789,"hash":"6b7ab3989e4f9f17c86e44380f9181c6","url":"files/assets/78379718/1/ammo.wasm.js"},"region":"eu-west-1","i18n":{},"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","immutable_backup":"92f1f196-1475-43fb-99fb-a41e0037a862","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78379718"},"78379719":{"tags":[],"name":"ammo.wasm.wasm","revision":1,"preload":false,"meta":null,"data":{"moduleName":"Ammo","glueScriptId":78379718,"fallbackScriptId":78379717,"loadingType":0},"type":"wasm","file":{"filename":"ammo.wasm.wasm","size":659433,"hash":"a6819ea71a53e67f1dfe3e42957c2971","url":"files/assets/78379719/1/ammo.wasm.wasm"},"region":"eu-west-1","i18n":{},"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","immutable_backup":"945f70cd-330b-490b-9579-f478f1763e7e","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78379719"},"78382718":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"picker_raycast.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"pickerRaycast":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"e57f9cf1-f99e-4018-b12f-7e22257e0e1c","same_as_backup":0,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78382718"},"78401677":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"doorman.mtl","revision":1,"preload":true,"exclude":false,"meta":null,"data":null,"type":"binary","file":{"filename":"doorman.mtl","size":930,"hash":"db9bed74e8bdc6681a6ab846c919aada","url":"files/assets/78401677/1/doorman.mtl"},"region":"eu-west-1","i18n":{},"immutable_backup":"2dcc7ca7-aff1-41b0-847d-78cfca884300","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401677"},"78401691":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"t_eye_d.jpeg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":256,"height":256,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"t_eye_d.jpeg","hash":"fef226427dfd003d8f8b462219f1df8e","size":10713,"variants":{},"url":"files/assets/78401691/1/t_eye_d.jpeg"},"region":"eu-west-1","i18n":{},"immutable_backup":"c8660319-154d-4019-930b-427862948cc7","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401691"},"78401692":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"t_doorMan_teeth_d.jpeg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":256,"height":256,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"t_doorMan_teeth_d.jpeg","hash":"32521ea35225763f7f528eb8e7b4393e","size":16505,"variants":{},"url":"files/assets/78401692/1/t_doorMan_teeth_d.jpeg"},"region":"eu-west-1","i18n":{},"immutable_backup":"f7dbe0fd-0aed-4bef-bd94-1aad0fc300d8","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401692"},"78401693":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"t_doorMan_teeth_n.jpeg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":true,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":256,"height":256,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"t_doorMan_teeth_n.jpeg","hash":"d75247a48a056745a100fc522344f5b0","size":22879,"variants":{},"url":"files/assets/78401693/1/t_doorMan_teeth_n.jpeg"},"region":"eu-west-1","i18n":{},"immutable_backup":"af0745ef-bfd2-41bb-81f7-87c74c81f07a","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401693"},"78401695":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"t_eye_n.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":true,"normals":true,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":256,"height":256,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"t_eye_n.png","hash":"18e0ed32b974fc7e20d98149d20e7589","size":35989,"variants":{},"url":"files/assets/78401695/1/t_eye_n.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"797bfc00-99dc-42db-ba65-712c4193aa75","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401695"},"78401697":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"rdmobj00Mat","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":0},"data":{"shader":"blinn","ambient":[0.2,0.2,0.2],"diffuse":[0.8,0.8,0.8],"specular":[0.2,0.2,0.2],"shininess":39.2903,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":78401692,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401697"},"78401698":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"rdmobj01Mat","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":1},"data":{"shader":"blinn","ambient":[0.2,0.2,0.2],"diffuse":[0.8,0.8,0.8],"specular":[0.2,0.2,0.2],"shininess":39.2903,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":78401691,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401698"},"78401699":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"rdmobj03Mat","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":3},"data":{"shader":"blinn","ambient":[0.2,0.2,0.2],"diffuse":[0.8,0.8,0.8],"specular":[0.2,0.2,0.2],"shininess":39.2903,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":78402284,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":78402285,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":78402286,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401699"},"78401700":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"rdmobj02Mat","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":2},"data":{"shader":"blinn","ambient":[0.2,0.2,0.2],"diffuse":[0.8,0.8,0.8],"specular":[0.2,0.2,0.2],"shininess":39.2903,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":78402284,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":78402286,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401700"},"78401701":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"doorman.glb","revision":1,"preload":true,"region":"eu-west-1","meta":null,"data":{},"type":"container","file":{"hash":"20572c505d27cbde1e4c76f0b853421f","size":306708,"filename":"doorman.glb","url":"files/assets/78401701/1/doorman.glb"},"i18n":{},"immutable_backup":"16399660-c5cc-4c78-bcfc-912f396ba609","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401701"},"78401702":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"rdmobj00","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":2190,"triangles":730,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78401701,"renderIndex":0},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401702"},"78401703":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"rdmobj01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":338,"triangles":624,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78401701,"renderIndex":1},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401703"},"78401704":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"rdmobj03","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":3310,"triangles":5289,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78401701,"renderIndex":3},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401704"},"78401705":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"rdmobj02","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1795,"triangles":3140,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":78401701,"renderIndex":2},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401705"},"78401706":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"doorman","revision":1,"preload":true,"region":"eu-west-1","meta":{"containerAsset":78401701},"data":{"entities":{"2cfeea72-a4bb-4a0e-8dad-abd92cc83dad":{"enabled":true,"tags":[],"children":["9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2"],"position":[0,0,0],"rotation":[0,0,0],"scale":[0.12734020167208698,0.12734020167208698,0.12734020167208698],"resource_id":"2cfeea72-a4bb-4a0e-8dad-abd92cc83dad","name":"RootNode","components":{"collision":{"enabled":true,"type":"box","halfExtents":[0.458,1.106,0.319],"radius":0.5,"axis":1,"height":2,"asset":null,"renderAsset":null}},"parent":null},"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2":{"enabled":true,"tags":[],"children":["a662f523-2a86-4f77-9951-1053085f7717","fbf7970b-0b02-48c8-9fbb-6fbb5d4f3485","cafbe398-372c-44b5-a905-6a9ca90c105c","6147aeb5-2849-4302-80b1-7120263a14de"],"position":[0,-9.158829431059022,0.000002486358653186471],"rotation":[-180,0,-180],"scale":[2.997398613039719,2.997398613039719,2.997398613039719],"resource_id":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2","name":"doorman_root","components":{"script":{"enabled":true,"order":["mouse","touch"],"scripts":{"mouse":{"enabled":true,"attributes":{"Selected":0}},"touch":{"enabled":true,"attributes":{"Selected":0}}}}},"parent":"2cfeea72-a4bb-4a0e-8dad-abd92cc83dad"},"a662f523-2a86-4f77-9951-1053085f7717":{"enabled":true,"tags":[],"children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"a662f523-2a86-4f77-9951-1053085f7717","name":"rdmobj00","components":{"render":{"enabled":true,"type":"asset","asset":78401702,"materialAssets":[78401697],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2"},"fbf7970b-0b02-48c8-9fbb-6fbb5d4f3485":{"enabled":true,"tags":[],"children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"fbf7970b-0b02-48c8-9fbb-6fbb5d4f3485","name":"rdmobj01","components":{"render":{"enabled":true,"type":"asset","asset":78401703,"materialAssets":[78401698],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2"},"cafbe398-372c-44b5-a905-6a9ca90c105c":{"enabled":true,"tags":[],"children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"cafbe398-372c-44b5-a905-6a9ca90c105c","name":"rdmobj02","components":{"render":{"enabled":true,"type":"asset","asset":78401705,"materialAssets":[78401700],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2"},"6147aeb5-2849-4302-80b1-7120263a14de":{"enabled":true,"tags":[],"children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"6147aeb5-2849-4302-80b1-7120263a14de","name":"rdmobj03","components":{"render":{"enabled":true,"type":"asset","asset":78401704,"materialAssets":[78401699],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2"}}},"type":"template","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78401706"},"78402284":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"t_doorMan_d.jpeg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":1024,"height":1024,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"t_doorMan_d.jpeg","hash":"c098404fd23169b3f6dfe0e20bec277f","size":170279,"variants":{},"url":"files/assets/78402284/1/t_doorMan_d.jpeg"},"region":"eu-west-1","i18n":{},"immutable_backup":"f4d4139b-1258-4016-b255-06b035819135","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78402284"},"78402285":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"t_doorMan_s.jpeg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":1024,"height":1024,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"t_doorMan_s.jpeg","hash":"560ee2f398d81b75b4ba419cce710cb9","size":122293,"variants":{},"url":"files/assets/78402285/1/t_doorMan_s.jpeg"},"region":"eu-west-1","i18n":{},"immutable_backup":"15c98bcc-4411-4004-ae75-c1faa6ad291e","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78402285"},"78402286":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"t_doorMan_n.jpeg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":true,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":1024,"height":1024,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"t_doorMan_n.jpeg","hash":"803af87756a209776154326664e5dbc9","size":237433,"variants":{},"url":"files/assets/78402286/1/t_doorMan_n.jpeg"},"region":"eu-west-1","i18n":{},"immutable_backup":"82735f59-b4e3-4199-8460-c70ab4206e2c","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78402286"},"78406226":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"archive-roundface-script_bigfontsite.com.ttf","revision":1,"preload":true,"exclude":false,"meta":{"chars":" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"},"data":{"version":2,"intensity":0,"info":{"face":"archive-roundface-script_bigfontsite.com","maps":[{"width":1024,"height":512}]},"chars":{"32":{"id":32,"letter":" ","x":1,"y":1,"width":64,"height":64,"map":0,"xadvance":4.992,"xoffset":31.5,"yoffset":31.5,"scale":1,"range":8},"33":{"id":33,"letter":"!","x":67,"y":1,"width":64,"height":64,"map":0,"xadvance":7.776,"xoffset":26.288,"yoffset":23.152,"scale":1,"range":8,"bounds":[0.128,-0.48,11.296,18.176]},"34":{"id":34,"letter":"\"","x":133,"y":1,"width":64,"height":64,"map":0,"xadvance":8.352,"xoffset":27.632,"yoffset":22.816,"scale":1,"range":8,"bounds":[1.12,5.888,7.616,12.48]},"36":{"id":36,"letter":"$","x":199,"y":1,"width":64,"height":64,"map":0,"xadvance":21.024,"xoffset":20.96,"yoffset":24.704,"scale":1,"range":8,"bounds":[1.024,-5.952,21.056,20.544]},"38":{"id":38,"letter":"&","x":265,"y":1,"width":64,"height":64,"map":0,"xadvance":20.832,"xoffset":20.464,"yoffset":22.56,"scale":1,"range":8,"bounds":[1.632,-0.096,21.44,18.976]},"39":{"id":39,"letter":"'","x":331,"y":1,"width":64,"height":64,"map":0,"xadvance":4.896,"xoffset":29.392,"yoffset":23.088,"scale":1,"range":8,"bounds":[1.12,5.792,4.096,12.032]},"44":{"id":44,"letter":",","x":397,"y":1,"width":64,"height":64,"map":0,"xadvance":5.888,"xoffset":28.672,"yoffset":32.88,"scale":1,"range":8,"bounds":[1.152,-5.024,5.504,3.264]},"45":{"id":45,"letter":"-","x":463,"y":1,"width":64,"height":64,"map":0,"xadvance":9.76,"xoffset":27.408,"yoffset":26.688,"scale":1,"range":8,"bounds":[0.544,3.904,8.64,6.72]},"46":{"id":46,"letter":".","x":529,"y":1,"width":64,"height":64,"map":0,"xadvance":5.44,"xoffset":29.168,"yoffset":30.528,"scale":1,"range":8,"bounds":[1.12,-0.32,4.544,3.264]},"48":{"id":48,"letter":"0","x":595,"y":1,"width":64,"height":64,"map":0,"xadvance":15.52,"xoffset":23.472,"yoffset":22.736,"scale":1,"range":8,"bounds":[1.376,-0.416,15.68,18.944]},"49":{"id":49,"letter":"1","x":661,"y":1,"width":64,"height":64,"map":0,"xadvance":10.208,"xoffset":25.2,"yoffset":22.704,"scale":1,"range":8,"bounds":[0.544,-0.224,13.056,18.816]},"50":{"id":50,"letter":"2","x":727,"y":1,"width":64,"height":64,"map":0,"xadvance":15.552,"xoffset":24.192,"yoffset":22.7330909091,"scale":1,"range":8,"bounds":[-0.448,-0.346181818182,16.064,18.88]},"51":{"id":51,"letter":"3","x":793,"y":1,"width":64,"height":64,"map":0,"xadvance":15.68,"xoffset":23.344,"yoffset":22.656,"scale":1,"range":8,"bounds":[0.768,-0.256,16.544,18.944]},"52":{"id":52,"letter":"4","x":859,"y":1,"width":64,"height":64,"map":0,"xadvance":14.944,"xoffset":23.744,"yoffset":22.576,"scale":1,"range":8,"bounds":[0.736,-0.128,15.776,18.976]},"53":{"id":53,"letter":"5","x":925,"y":1,"width":64,"height":64,"map":0,"xadvance":16.672,"xoffset":22.464,"yoffset":22.704,"scale":1,"range":8,"bounds":[0.96,-0.224,18.112,18.816]},"54":{"id":54,"letter":"6","x":1,"y":67,"width":64,"height":64,"map":0,"xadvance":14.72,"xoffset":24,"yoffset":22,"scale":1,"range":8,"bounds":[0.96,-0.352,15.04,20.352]},"55":{"id":55,"letter":"7","x":67,"y":67,"width":64,"height":64,"map":0,"xadvance":11.2,"xoffset":24.016,"yoffset":22.656,"scale":1,"range":8,"bounds":[1.216,-0.128,14.752,18.816]},"56":{"id":56,"letter":"8","x":133,"y":67,"width":64,"height":64,"map":0,"xadvance":15.104,"xoffset":23.232,"yoffset":22.496,"scale":1,"range":8,"bounds":[0.96,-0.256,16.576,19.264]},"57":{"id":57,"letter":"9","x":199,"y":67,"width":64,"height":64,"map":0,"xadvance":16.672,"xoffset":23.664,"yoffset":24.208,"scale":1,"range":8,"bounds":[1.12,-3.296,15.552,18.88]},"58":{"id":58,"letter":":","x":265,"y":67,"width":64,"height":64,"map":0,"xadvance":7.488,"xoffset":28.16,"yoffset":27.36,"scale":1,"range":8,"bounds":[1.12,-0.32,6.56,9.6]},"59":{"id":59,"letter":";","x":331,"y":67,"width":64,"height":64,"map":0,"xadvance":7.168,"xoffset":28.032,"yoffset":29.792,"scale":1,"range":8,"bounds":[1.152,-5.024,6.784,9.44]},"63":{"id":63,"letter":"?","x":397,"y":67,"width":64,"height":64,"map":0,"xadvance":8.736,"xoffset":25.552,"yoffset":23.088,"scale":1,"range":8,"bounds":[0.384,-0.32,12.512,18.144]},"65":{"id":65,"letter":"A","x":463,"y":67,"width":64,"height":64,"map":0,"xadvance":29.248,"xoffset":13.184,"yoffset":20.496,"scale":1,"range":8,"bounds":[0.576,-0.32,37.056,23.328]},"66":{"id":66,"letter":"B","x":529,"y":67,"width":64,"height":64,"map":0,"xadvance":27.744,"xoffset":16.16,"yoffset":20.704,"scale":1,"range":8,"bounds":[1.024,-0.384,30.656,22.976]},"67":{"id":67,"letter":"C","x":595,"y":67,"width":64,"height":64,"map":0,"xadvance":18.368,"xoffset":20.608,"yoffset":20.688,"scale":1,"range":8,"bounds":[1.344,-0.256,21.44,22.88]},"68":{"id":68,"letter":"D","x":661,"y":67,"width":64,"height":64,"map":0,"xadvance":29.248,"xoffset":16.192,"yoffset":20.752,"scale":1,"range":8,"bounds":[1.216,-0.512,30.4,23.008]},"69":{"id":69,"letter":"E","x":727,"y":67,"width":64,"height":64,"map":0,"xadvance":18.496,"xoffset":20.832,"yoffset":20.624,"scale":1,"range":8,"bounds":[1.12,-0.448,21.216,23.2]},"70":{"id":70,"letter":"F","x":793,"y":67,"width":64,"height":64,"map":0,"xadvance":19.008,"xoffset":17.408,"yoffset":20.688,"scale":1,"range":8,"bounds":[1.12,-0.512,28.064,23.136]},"71":{"id":71,"letter":"G","x":859,"y":67,"width":64,"height":64,"map":0,"xadvance":20,"xoffset":18.592,"yoffset":20.816,"scale":1,"range":8,"bounds":[1.056,-0.64,25.76,23.008]},"72":{"id":72,"letter":"H","x":925,"y":67,"width":64,"height":64,"map":0,"xadvance":27.904,"xoffset":13.76,"yoffset":20.64,"scale":1,"range":8,"bounds":[1.216,-0.256,35.264,22.976]},"73":{"id":73,"letter":"I","x":1,"y":133,"width":64,"height":64,"map":0,"xadvance":20,"xoffset":17.856,"yoffset":20.816,"scale":1,"range":8,"bounds":[0.96,-0.576,27.328,22.944]},"74":{"id":74,"letter":"J","x":67,"y":133,"width":64,"height":64,"map":0,"xadvance":14.24,"xoffset":25.296,"yoffset":24.784,"scale":1,"range":8,"bounds":[-7.52,-8.448,20.928,22.88]},"75":{"id":75,"letter":"K","x":133,"y":133,"width":64,"height":64,"map":0,"xadvance":32.128,"xoffset":14.368,"yoffset":20.544,"scale":1,"range":8,"bounds":[1.344,-0.32,33.92,23.232]},"76":{"id":76,"letter":"L","x":199,"y":133,"width":64,"height":64,"map":0,"xadvance":18.08,"xoffset":20.16,"yoffset":20.592,"scale":1,"range":8,"bounds":[0.832,-0.192,22.848,23.008]},"77":{"id":77,"letter":"M","x":265,"y":133,"width":64,"height":64,"map":0,"xadvance":36.512,"xoffset":11.76,"yoffset":20.72,"scale":1,"range":8,"bounds":[0.736,-0.256,39.744,22.816]},"78":{"id":78,"letter":"N","x":331,"y":133,"width":64,"height":64,"map":0,"xadvance":27.04,"xoffset":13.984,"yoffset":20.56,"scale":1,"range":8,"bounds":[0.832,-0.256,35.2,23.136]},"79":{"id":79,"letter":"O","x":397,"y":133,"width":64,"height":64,"map":0,"xadvance":17.024,"xoffset":21.184,"yoffset":20.56,"scale":1,"range":8,"bounds":[1.216,-0.16,20.416,23.04]},"80":{"id":80,"letter":"P","x":463,"y":133,"width":64,"height":64,"map":0,"xadvance":20.256,"xoffset":18.672,"yoffset":20.832,"scale":1,"range":8,"bounds":[1.344,-0.512,25.312,22.848]},"81":{"id":81,"letter":"Q","x":529,"y":133,"width":64,"height":64,"map":0,"xadvance":21.12,"xoffset":21.6,"yoffset":23.984,"scale":1,"range":8,"bounds":[-1.216,-6.752,22.016,22.784]},"82":{"id":82,"letter":"R","x":595,"y":133,"width":64,"height":64,"map":0,"xadvance":28.928,"xoffset":16.064,"yoffset":20.912,"scale":1,"range":8,"bounds":[1.056,-0.768,30.816,22.944]},"83":{"id":83,"letter":"S","x":661,"y":133,"width":64,"height":64,"map":0,"xadvance":19.104,"xoffset":21.28,"yoffset":20.544,"scale":1,"range":8,"bounds":[0.896,-0.096,20.544,23.008]},"84":{"id":84,"letter":"T","x":727,"y":133,"width":64,"height":64,"map":0,"xadvance":18.784,"xoffset":17.712,"yoffset":20.6228571429,"scale":1,"range":8,"bounds":[1.12,-0.32,27.456,23.0742857143]},"85":{"id":85,"letter":"U","x":793,"y":133,"width":64,"height":64,"map":0,"xadvance":23.744,"xoffset":16.896,"yoffset":20.608,"scale":1,"range":8,"bounds":[1.408,-0.32,28.8,23.104]},"86":{"id":86,"letter":"V","x":859,"y":133,"width":64,"height":64,"map":0,"xadvance":11.008,"xoffset":20.944,"yoffset":20.848,"scale":1,"range":8,"bounds":[1.12,-0.608,20.992,22.912]},"87":{"id":87,"letter":"W","x":925,"y":133,"width":64,"height":64,"map":0,"xadvance":17.76,"xoffset":16.896,"yoffset":20.976,"scale":1,"range":8,"bounds":[1.568,-0.8,28.64,22.848]},"88":{"id":88,"letter":"X","x":1,"y":199,"width":64,"height":64,"map":0,"xadvance":25.888,"xoffset":15.856,"yoffset":20.656,"scale":1,"range":8,"bounds":[1.248,-0.448,31.04,23.136]},"89":{"id":89,"letter":"Y","x":67,"y":199,"width":64,"height":64,"map":0,"xadvance":11.52,"xoffset":23.632,"yoffset":24.48,"scale":1,"range":8,"bounds":[-5.024,-8.192,21.76,23.232]},"90":{"id":90,"letter":"Z","x":133,"y":199,"width":64,"height":64,"map":0,"xadvance":20.96,"xoffset":17.328,"yoffset":20.544,"scale":1,"range":8,"bounds":[1.056,-0.16,28.288,23.072]},"97":{"id":97,"letter":"a","x":199,"y":199,"width":64,"height":64,"map":0,"xadvance":12.48,"xoffset":25.44,"yoffset":27.504,"scale":1,"range":8,"bounds":[0.32,-0.352,12.8,9.344]},"98":{"id":98,"letter":"b","x":265,"y":199,"width":64,"height":64,"map":0,"xadvance":12,"xoffset":25.712,"yoffset":22.656,"scale":1,"range":8,"bounds":[0.576,-0.416,12,19.104]},"99":{"id":99,"letter":"c","x":331,"y":199,"width":64,"height":64,"map":0,"xadvance":8.992,"xoffset":27.376,"yoffset":27.488,"scale":1,"range":8,"bounds":[0.32,-0.32,8.928,9.344]},"100":{"id":100,"letter":"d","x":397,"y":199,"width":64,"height":64,"map":0,"xadvance":12.768,"xoffset":23.056,"yoffset":22.8,"scale":1,"range":8,"bounds":[0.32,-0.384,17.568,18.784]},"101":{"id":101,"letter":"e","x":463,"y":199,"width":64,"height":64,"map":0,"xadvance":8.992,"xoffset":27.232,"yoffset":27.424,"scale":1,"range":8,"bounds":[0.32,-0.192,9.216,9.344]},"102":{"id":102,"letter":"f","x":529,"y":199,"width":64,"height":64,"map":0,"xadvance":6.752,"xoffset":24.72,"yoffset":22.72,"scale":1,"range":8,"bounds":[0.128,-0.096,14.432,18.656]},"103":{"id":103,"letter":"g","x":595,"y":199,"width":64,"height":64,"map":0,"xadvance":11.488,"xoffset":26.784,"yoffset":31.52,"scale":1,"range":8,"bounds":[-2.432,-8.448,12.864,9.408]},"104":{"id":104,"letter":"h","x":661,"y":199,"width":64,"height":64,"map":0,"xadvance":12.864,"xoffset":25.568,"yoffset":22.624,"scale":1,"range":8,"bounds":[0.032,-0.16,12.832,18.912]},"105":{"id":105,"letter":"i","x":727,"y":199,"width":64,"height":64,"map":0,"xadvance":6.56,"xoffset":27.584,"yoffset":25.12,"scale":1,"range":8,"bounds":[0.48,-0.032,8.352,13.792]},"106":{"id":106,"letter":"j","x":793,"y":199,"width":64,"height":64,"map":0,"xadvance":5.984,"xoffset":29.568,"yoffset":29.184,"scale":1,"range":8,"bounds":[-4.256,-8.128,9.12,13.76]},"107":{"id":107,"letter":"k","x":859,"y":199,"width":64,"height":64,"map":0,"xadvance":12.288,"xoffset":25.056,"yoffset":22.736,"scale":1,"range":8,"bounds":[0.032,-0.416,13.856,18.944]},"108":{"id":108,"letter":"l","x":925,"y":199,"width":64,"height":64,"map":0,"xadvance":6.304,"xoffset":25.824,"yoffset":22.72,"scale":1,"range":8,"bounds":[0.576,-0.32,11.776,18.88]},"109":{"id":109,"letter":"m","x":1,"y":265,"width":64,"height":64,"map":0,"xadvance":17.888,"xoffset":22.656,"yoffset":27.344,"scale":1,"range":8,"bounds":[0.192,-0.224,18.496,9.536]},"110":{"id":110,"letter":"n","x":67,"y":265,"width":64,"height":64,"map":0,"xadvance":12.48,"xoffset":25.728,"yoffset":27.408,"scale":1,"range":8,"bounds":[0.16,-0.256,12.384,9.44]},"111":{"id":111,"letter":"o","x":133,"y":265,"width":64,"height":64,"map":0,"xadvance":11.04,"xoffset":26.32,"yoffset":27.392,"scale":1,"range":8,"bounds":[0.32,-0.16,11.04,9.376]},"112":{"id":112,"letter":"p","x":199,"y":265,"width":64,"height":64,"map":0,"xadvance":11.968,"xoffset":28.64,"yoffset":31.648,"scale":1,"range":8,"bounds":[-5.216,-8.576,11.936,9.28]},"113":{"id":113,"letter":"q","x":265,"y":265,"width":64,"height":64,"map":0,"xadvance":11.968,"xoffset":25.296,"yoffset":31.552,"scale":1,"range":8,"bounds":[0.192,-8.544,13.216,9.44]},"114":{"id":114,"letter":"r","x":331,"y":265,"width":64,"height":64,"map":0,"xadvance":10.208,"xoffset":26.336,"yoffset":27.344,"scale":1,"range":8,"bounds":[0.16,-0.032,11.168,9.344]},"115":{"id":115,"letter":"s","x":397,"y":265,"width":64,"height":64,"map":0,"xadvance":9.216,"xoffset":27.216,"yoffset":27.424,"scale":1,"range":8,"bounds":[0.032,-0.192,9.536,9.344]},"116":{"id":116,"letter":"t","x":463,"y":265,"width":64,"height":64,"map":0,"xadvance":7.648,"xoffset":26.368,"yoffset":24.352,"scale":1,"range":8,"bounds":[0.864,-0.32,10.4,15.616]},"117":{"id":117,"letter":"u","x":529,"y":265,"width":64,"height":64,"map":0,"xadvance":11.712,"xoffset":25.824,"yoffset":27.536,"scale":1,"range":8,"bounds":[0.224,-0.224,12.128,9.152]},"118":{"id":118,"letter":"v","x":595,"y":265,"width":64,"height":64,"map":0,"xadvance":10.496,"xoffset":26.384,"yoffset":27.472,"scale":1,"range":8,"bounds":[0.192,-0.224,11.04,9.28]},"119":{"id":119,"letter":"w","x":661,"y":265,"width":64,"height":64,"map":0,"xadvance":16.608,"xoffset":23.152,"yoffset":27.392,"scale":1,"range":8,"bounds":[0.224,-0.224,17.472,9.44]},"120":{"id":120,"letter":"x","x":727,"y":265,"width":64,"height":64,"map":0,"xadvance":11.68,"xoffset":25.536,"yoffset":27.504,"scale":1,"range":8,"bounds":[0.192,-0.192,12.736,9.184]},"121":{"id":121,"letter":"y","x":793,"y":265,"width":64,"height":64,"map":0,"xadvance":11.776,"xoffset":26.336,"yoffset":31.568,"scale":1,"range":8,"bounds":[-0.96,-8.352,12.288,9.216]},"122":{"id":122,"letter":"z","x":859,"y":265,"width":64,"height":64,"map":0,"xadvance":11.744,"xoffset":25.6,"yoffset":27.536,"scale":1,"range":8,"bounds":[0.16,-0.32,12.64,9.248]}},"kerning":{}},"type":"font","file":{"filename":"archive-roundface-script_bigfontsite.com.png","hash":"93d340738cc8d0c06cda084ff749b82f","size":367744,"url":"files/assets/78406226/1/archive-roundface-script_bigfontsite.com.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"c7c09dc1-29d2-4d3f-b0f9-ad6aecd16eb5","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"78406226"},"79014545":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"load_image.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"loadImage":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"c6340062-deb9-478d-93cb-12fd1392454c","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"79014545"},"79153391":{"tags":[],"name":"switching-textures.js","revision":1,"preload":true,"meta":null,"data":{"scripts":{"switchingTextures":{"attributesOrder":["textures","url","WebTexture"],"attributes":{"textures":{"type":"asset","assetType":"texture","array":true,"title":"Textures"},"url":{"type":"string"},"WebTexture":{"type":"asset","assetType":"texture","array":false,"title":"WebTexture"}}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","immutable_backup":"35a0c9ab-c914-43d9-9df1-af277469a8d9","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"79153391"},"79449648":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"double-sided-arrow-png-51575265495yriug9wtzm.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":480,"height":480,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"double-sided-arrow-png-51575265495yriug9wtzm.png","size":3179,"hash":"27ebb44979c6d0aeffa4c540526a1fee","variants":{},"url":"files/assets/79449648/1/double-sided-arrow-png-51575265495yriug9wtzm.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"4fc709ac-349d-4514-ab4b-64d705953e89","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"79449648"},"79458597":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"New Material","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[0,0,0],"diffuseMap":86181995,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":0.73,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0.334,"alphaFade":1,"opacity":1,"opacityMap":86181995,"opacityMapChannel":"a","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"phong","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"79458597"},"79459251":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"GetWidthFromURLParams.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"getWidthFromUrlparams":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"b451465d-204c-4380-8ca8-55d61da76f08","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"79459251"},"79465530":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"BRLNSDB.TTF","revision":1,"preload":true,"exclude":false,"meta":{"chars":" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"},"data":{"version":2,"intensity":0,"info":{"face":"BRLNSDB","maps":[{"width":1024,"height":512}]},"chars":{"32":{"id":32,"letter":" ","x":1,"y":1,"width":64,"height":64,"map":0,"xadvance":8,"xoffset":31.5,"yoffset":31.5,"scale":1,"range":8},"33":{"id":33,"letter":"!","x":67,"y":1,"width":64,"height":64,"map":0,"xadvance":8.953125,"xoffset":27.359375,"yoffset":21.234375,"scale":1,"range":8,"bounds":[1.703125,-0.390625,7.578125,21.921875]},"34":{"id":34,"letter":"\"","x":133,"y":1,"width":64,"height":64,"map":0,"xadvance":12.515625,"xoffset":25.7421875,"yoffset":13.96875,"scale":1,"range":8,"bounds":[1.0625,14.046875,11.453125,22.015625]},"35":{"id":35,"letter":"#","x":199,"y":1,"width":64,"height":64,"map":0,"xadvance":22.71875,"xoffset":20.7578125,"yoffset":21.6484375,"scale":1,"range":8,"bounds":[1.25,-1.71875,21.234375,22.421875]},"36":{"id":36,"letter":"$","x":265,"y":1,"width":64,"height":64,"map":0,"xadvance":15.546875,"xoffset":24.125,"yoffset":22.5859375,"scale":1,"range":8,"bounds":[1.125,-2.609375,14.625,21.4375]},"37":{"id":37,"letter":"%","x":331,"y":1,"width":64,"height":64,"map":0,"xadvance":25.703125,"xoffset":19.1484375,"yoffset":22.2890625,"scale":1,"range":8,"bounds":[0.484375,-0.6875,25.21875,20.109375]},"38":{"id":38,"letter":"&","x":397,"y":1,"width":64,"height":64,"map":0,"xadvance":22.34375,"xoffset":20.75,"yoffset":21.203125,"scale":1,"range":8,"bounds":[1.09375,-0.546875,21.40625,22.140625]},"39":{"id":39,"letter":"'","x":463,"y":1,"width":64,"height":64,"map":0,"xadvance":7.421875,"xoffset":28.2578125,"yoffset":14.4453125,"scale":1,"range":8,"bounds":[1.21875,13.09375,6.265625,22.015625]},"40":{"id":40,"letter":"(","x":529,"y":1,"width":64,"height":64,"map":0,"xadvance":12.734375,"xoffset":25.1015625,"yoffset":23.828125,"scale":1,"range":8,"bounds":[1.5,-6.53125,12.296875,22.875]},"41":{"id":41,"letter":")","x":595,"y":1,"width":64,"height":64,"map":0,"xadvance":12.734375,"xoffset":26.1640625,"yoffset":23.8359375,"scale":1,"range":8,"bounds":[0.4375,-6.546875,11.234375,22.875]},"42":{"id":42,"letter":"*","x":661,"y":1,"width":64,"height":64,"map":0,"xadvance":13.5625,"xoffset":25.3359375,"yoffset":16.453125,"scale":1,"range":8,"bounds":[0.515625,9.265625,12.8125,21.828125]},"43":{"id":43,"letter":"+","x":727,"y":1,"width":64,"height":64,"map":0,"xadvance":15.140625,"xoffset":24.5234375,"yoffset":22.671875,"scale":1,"range":8,"bounds":[0.515625,2.046875,14.4375,16.609375]},"44":{"id":44,"letter":",","x":793,"y":1,"width":64,"height":64,"map":0,"xadvance":8.984375,"xoffset":28.0078125,"yoffset":31.125,"scale":1,"range":8,"bounds":[-0.1875,-4.171875,8.171875,5.921875]},"45":{"id":45,"letter":"-","x":859,"y":1,"width":64,"height":64,"map":0,"xadvance":13.59375,"xoffset":25.1953125,"yoffset":22.4609375,"scale":1,"range":8,"bounds":[1.125,6.53125,12.484375,12.546875]},"46":{"id":46,"letter":".","x":925,"y":1,"width":64,"height":64,"map":0,"xadvance":8.984375,"xoffset":27.5078125,"yoffset":28.5859375,"scale":1,"range":8,"bounds":[0.828125,-0.3125,8.15625,7.140625]},"47":{"id":47,"letter":"/","x":1,"y":67,"width":64,"height":64,"map":0,"xadvance":10.59375,"xoffset":26.71875,"yoffset":21.96875,"scale":1,"range":8,"bounds":[0.53125,-2.078125,10.03125,22.140625]},"48":{"id":48,"letter":"0","x":67,"y":67,"width":64,"height":64,"map":0,"xadvance":20.15625,"xoffset":21.921875,"yoffset":22.59375,"scale":1,"range":8,"bounds":[0.765625,-0.484375,19.390625,19.296875]},"49":{"id":49,"letter":"1","x":133,"y":67,"width":64,"height":64,"map":0,"xadvance":10.296875,"xoffset":27.5859375,"yoffset":22.15625,"scale":1,"range":8,"bounds":[0.1875,-0.03125,8.640625,19.71875]},"50":{"id":50,"letter":"2","x":199,"y":67,"width":64,"height":64,"map":0,"xadvance":16.546875,"xoffset":23.6875,"yoffset":22.59375,"scale":1,"range":8,"bounds":[0.34375,-0.484375,16.28125,19.296875]},"51":{"id":51,"letter":"3","x":265,"y":67,"width":64,"height":64,"map":0,"xadvance":15.578125,"xoffset":24.234375,"yoffset":22.578125,"scale":1,"range":8,"bounds":[0.453125,-0.453125,15.078125,19.296875]},"52":{"id":52,"letter":"4","x":331,"y":67,"width":64,"height":64,"map":0,"xadvance":17.65625,"xoffset":23.1640625,"yoffset":22.21875,"scale":1,"range":8,"bounds":[0.609375,-0.1875,17.0625,19.75]},"53":{"id":53,"letter":"5","x":397,"y":67,"width":64,"height":64,"map":0,"xadvance":16.15625,"xoffset":24.015625,"yoffset":22.625,"scale":1,"range":8,"bounds":[0.546875,-0.453125,15.421875,19.203125]},"54":{"id":54,"letter":"6","x":463,"y":67,"width":64,"height":64,"map":0,"xadvance":17.765625,"xoffset":23.0390625,"yoffset":22.4375,"scale":1,"range":8,"bounds":[0.765625,-0.359375,17.15625,19.484375]},"55":{"id":55,"letter":"7","x":529,"y":67,"width":64,"height":64,"map":0,"xadvance":15.296875,"xoffset":24.5,"yoffset":22.5,"scale":1,"range":8,"bounds":[0.1875,-0.421875,14.8125,19.421875]},"56":{"id":56,"letter":"8","x":595,"y":67,"width":64,"height":64,"map":0,"xadvance":15.71875,"xoffset":24.1796875,"yoffset":22.515625,"scale":1,"range":8,"bounds":[0.3125,-0.484375,15.328125,19.453125]},"57":{"id":57,"letter":"9","x":661,"y":67,"width":64,"height":64,"map":0,"xadvance":18.078125,"xoffset":23.0078125,"yoffset":22.5625,"scale":1,"range":8,"bounds":[0.765625,-0.578125,17.21875,19.453125]},"58":{"id":58,"letter":":","x":727,"y":67,"width":64,"height":64,"map":0,"xadvance":7.96875,"xoffset":27.984375,"yoffset":25.2265625,"scale":1,"range":8,"bounds":[0.890625,-0.25,7.140625,13.796875]},"59":{"id":59,"letter":";","x":793,"y":67,"width":64,"height":64,"map":0,"xadvance":7.96875,"xoffset":28.8515625,"yoffset":27.1953125,"scale":1,"range":8,"bounds":[-0.84375,-4.1875,7.140625,13.796875]},"60":{"id":60,"letter":"<","x":859,"y":67,"width":64,"height":64,"map":0,"xadvance":12.828125,"xoffset":25.421875,"yoffset":23.0390625,"scale":1,"range":8,"bounds":[1.0625,0.96875,12.09375,16.953125]},"61":{"id":61,"letter":"=","x":925,"y":67,"width":64,"height":64,"map":0,"xadvance":15.421875,"xoffset":24.234375,"yoffset":22.375,"scale":1,"range":8,"bounds":[1.15625,4.625,14.375,14.625]},"62":{"id":62,"letter":">","x":1,"y":133,"width":64,"height":64,"map":0,"xadvance":12.828125,"xoffset":25.6875,"yoffset":22.9140625,"scale":1,"range":8,"bounds":[0.8125,1.09375,11.8125,17.078125]},"63":{"id":63,"letter":"?","x":67,"y":133,"width":64,"height":64,"map":0,"xadvance":13.5,"xoffset":25.234375,"yoffset":21.171875,"scale":1,"range":8,"bounds":[0.4375,-0.390625,13.09375,22.046875]},"64":{"id":64,"letter":"@","x":133,"y":133,"width":64,"height":64,"map":0,"xadvance":21.984375,"xoffset":21.25,"yoffset":21.0390625,"scale":1,"range":8,"bounds":[0.859375,-0.578125,20.640625,22.5]},"65":{"id":65,"letter":"A","x":199,"y":133,"width":64,"height":64,"map":0,"xadvance":22.203125,"xoffset":20.9296875,"yoffset":20.9140625,"scale":1,"range":8,"bounds":[0.09375,-0.125,22.046875,22.296875]},"66":{"id":66,"letter":"B","x":265,"y":133,"width":64,"height":64,"map":0,"xadvance":20.453125,"xoffset":21.359375,"yoffset":21.1015625,"scale":1,"range":8,"bounds":[1.375,-0.1875,19.90625,21.984375]},"67":{"id":67,"letter":"C","x":331,"y":133,"width":64,"height":64,"map":0,"xadvance":19.9375,"xoffset":21.7265625,"yoffset":21.0546875,"scale":1,"range":8,"bounds":[0.859375,-0.546875,19.6875,22.4375]},"68":{"id":68,"letter":"D","x":397,"y":133,"width":64,"height":64,"map":0,"xadvance":22.8125,"xoffset":20.3359375,"yoffset":21.0703125,"scale":1,"range":8,"bounds":[1.5,-0.09375,21.828125,21.953125]},"69":{"id":69,"letter":"E","x":463,"y":133,"width":64,"height":64,"map":0,"xadvance":18.078125,"xoffset":22.59375,"yoffset":21.15625,"scale":1,"range":8,"bounds":[1.375,-0.234375,17.4375,21.921875]},"70":{"id":70,"letter":"F","x":529,"y":133,"width":64,"height":64,"map":0,"xadvance":17.984375,"xoffset":22.5627441406,"yoffset":21.0390625,"scale":1,"range":8,"bounds":[1.29638671875,-0.21875,17.578125,22.140625]},"71":{"id":71,"letter":"G","x":595,"y":133,"width":64,"height":64,"map":0,"xadvance":22.75,"xoffset":20.5693359375,"yoffset":20.9765625,"scale":1,"range":8,"bounds":[0.859375,-0.390625,22.001953125,22.4375]},"72":{"id":72,"letter":"H","x":661,"y":133,"width":64,"height":64,"map":0,"xadvance":23.84375,"xoffset":20.078125,"yoffset":21.0859375,"scale":1,"range":8,"bounds":[1.4375,-0.09375,22.40625,21.921875]},"73":{"id":73,"letter":"I","x":727,"y":133,"width":64,"height":64,"map":0,"xadvance":9.53125,"xoffset":27.2578125,"yoffset":21.1015625,"scale":1,"range":8,"bounds":[1.34375,-0.125,8.140625,21.921875]},"74":{"id":74,"letter":"J","x":793,"y":133,"width":64,"height":64,"map":0,"xadvance":10.78125,"xoffset":27.3984375,"yoffset":22.9453125,"scale":1,"range":8,"bounds":[0.046875,-3.78125,9.15625,21.890625]},"75":{"id":75,"letter":"K","x":859,"y":133,"width":64,"height":64,"map":0,"xadvance":21.03125,"xoffset":20.9453125,"yoffset":21.1171875,"scale":1,"range":8,"bounds":[1.4375,-0.15625,20.671875,21.921875]},"76":{"id":76,"letter":"L","x":925,"y":133,"width":64,"height":64,"map":0,"xadvance":17.5,"xoffset":22.6484375,"yoffset":21.1796875,"scale":1,"range":8,"bounds":[1.546875,-0.265625,17.15625,21.90625]},"77":{"id":77,"letter":"M","x":1,"y":199,"width":64,"height":64,"map":0,"xadvance":26.203125,"xoffset":18.9140625,"yoffset":21.1171875,"scale":1,"range":8,"bounds":[1.4375,-0.3125,24.734375,22.078125]},"78":{"id":78,"letter":"N","x":67,"y":199,"width":64,"height":64,"map":0,"xadvance":23.8125,"xoffset":20.109375,"yoffset":20.9140625,"scale":1,"range":8,"bounds":[1.4375,-0.0625,22.34375,22.234375]},"79":{"id":79,"letter":"O","x":133,"y":199,"width":64,"height":64,"map":0,"xadvance":24.03125,"xoffset":20,"yoffset":21.0390625,"scale":1,"range":8,"bounds":[0.859375,-0.578125,23.140625,22.5]},"80":{"id":80,"letter":"P","x":199,"y":199,"width":64,"height":64,"map":0,"xadvance":20.859375,"xoffset":21.2587316176,"yoffset":21.09375,"scale":1,"range":8,"bounds":[1.32628676471,-0.109375,20.15625,21.921875]},"81":{"id":81,"letter":"Q","x":265,"y":199,"width":64,"height":64,"map":0,"xadvance":24.03125,"xoffset":20,"yoffset":22.703125,"scale":1,"range":8,"bounds":[0.859375,-3.90625,23.140625,22.5]},"82":{"id":82,"letter":"R","x":331,"y":199,"width":64,"height":64,"map":0,"xadvance":20.390625,"xoffset":21.25,"yoffset":21.0390625,"scale":1,"range":8,"bounds":[1.4375,-0.09375,20.0625,22.015625]},"83":{"id":83,"letter":"S","x":397,"y":199,"width":64,"height":64,"map":0,"xadvance":13.25,"xoffset":25.609375,"yoffset":21.1171875,"scale":1,"range":8,"bounds":[0.6875,-0.8125,12.09375,22.578125]},"84":{"id":84,"letter":"T","x":463,"y":199,"width":64,"height":64,"map":0,"xadvance":16.890625,"xoffset":23.5859375,"yoffset":21.0078125,"scale":1,"range":8,"bounds":[0.171875,-0.125,16.65625,22.109375]},"85":{"id":85,"letter":"U","x":529,"y":199,"width":64,"height":64,"map":0,"xadvance":21.734375,"xoffset":21.140625,"yoffset":21.25,"scale":1,"range":8,"bounds":[1.359375,-0.421875,20.359375,21.921875]},"86":{"id":86,"letter":"V","x":595,"y":199,"width":64,"height":64,"map":0,"xadvance":20.890625,"xoffset":21.515625,"yoffset":21.0703125,"scale":1,"range":8,"bounds":[0.953125,-0.0625,20.015625,21.921875]},"87":{"id":87,"letter":"W","x":661,"y":199,"width":64,"height":64,"map":0,"xadvance":30.046875,"xoffset":16.9453125,"yoffset":21.0859375,"scale":1,"range":8,"bounds":[0.921875,-0.09375,29.1875,21.921875]},"88":{"id":88,"letter":"X","x":727,"y":199,"width":64,"height":64,"map":0,"xadvance":19.71875,"xoffset":22.1796875,"yoffset":21.0625,"scale":1,"range":8,"bounds":[0.953125,-0.078125,18.6875,21.953125]},"89":{"id":89,"letter":"Y","x":793,"y":199,"width":64,"height":64,"map":0,"xadvance":19.875,"xoffset":22.078125,"yoffset":21.0859375,"scale":1,"range":8,"bounds":[0.484375,-0.09375,19.359375,21.921875]},"90":{"id":90,"letter":"Z","x":859,"y":199,"width":64,"height":64,"map":0,"xadvance":17.28125,"xoffset":23.3203125,"yoffset":21.0859375,"scale":1,"range":8,"bounds":[1,-0.25,16.359375,22.078125]},"91":{"id":91,"letter":"[","x":925,"y":199,"width":64,"height":64,"map":0,"xadvance":13.09375,"xoffset":24.734375,"yoffset":24,"scale":1,"range":8,"bounds":[2.015625,-6.078125,12.515625,22.078125]},"92":{"id":92,"letter":"\\","x":1,"y":265,"width":64,"height":64,"map":0,"xadvance":10.59375,"xoffset":26.734375,"yoffset":21.9765625,"scale":1,"range":8,"bounds":[0.625,-2,9.90625,22.046875]},"93":{"id":93,"letter":"]","x":67,"y":265,"width":64,"height":64,"map":0,"xadvance":13.09375,"xoffset":25.5234375,"yoffset":24.000390625,"scale":1,"range":8,"bounds":[1.234375,-6.07890625,11.71875,22.078125]},"94":{"id":94,"letter":"^","x":133,"y":265,"width":64,"height":64,"map":0,"xadvance":16.671875,"xoffset":23.5703125,"yoffset":17.46875,"scale":1,"range":8,"bounds":[0.703125,8.671875,16.15625,20.390625]},"95":{"id":95,"letter":"_","x":199,"y":265,"width":64,"height":64,"map":0,"xadvance":14.75,"xoffset":24.7109375,"yoffset":36.2578125,"scale":1,"range":8,"bounds":[-0.3125,-6.5,14.890625,-2.015625]},"96":{"id":96,"letter":"`","x":265,"y":265,"width":64,"height":64,"map":0,"xadvance":11.84375,"xoffset":26.453125,"yoffset":11.875,"scale":1,"range":8,"bounds":[0.828125,16.921875,10.265625,23.328125]},"97":{"id":97,"letter":"a","x":331,"y":265,"width":64,"height":64,"map":0,"xadvance":18.8125,"xoffset":22.875,"yoffset":24.421875,"scale":1,"range":8,"bounds":[0.671875,-0.359375,17.578125,15.515625]},"98":{"id":98,"letter":"b","x":397,"y":265,"width":64,"height":64,"map":0,"xadvance":18.84375,"xoffset":22.359375,"yoffset":20.859375,"scale":1,"range":8,"bounds":[1.015625,-0.1875,18.265625,22.46875]},"99":{"id":99,"letter":"c","x":463,"y":265,"width":64,"height":64,"map":0,"xadvance":13.3125,"xoffset":25.21875,"yoffset":24.3046875,"scale":1,"range":8,"bounds":[0.578125,-0.390625,12.984375,15.78125]},"100":{"id":100,"letter":"d","x":529,"y":265,"width":64,"height":64,"map":0,"xadvance":18.875,"xoffset":22.75,"yoffset":20.8125,"scale":1,"range":8,"bounds":[0.609375,-0.1875,17.890625,22.5625]},"101":{"id":101,"letter":"e","x":595,"y":265,"width":64,"height":64,"map":0,"xadvance":16.03125,"xoffset":23.859375,"yoffset":24.2890625,"scale":1,"range":8,"bounds":[0.640625,-0.453125,15.640625,15.875]},"102":{"id":102,"letter":"f","x":661,"y":265,"width":64,"height":64,"map":0,"xadvance":11.296875,"xoffset":26.34375,"yoffset":20.578125,"scale":1,"range":8,"bounds":[0.375,-0.09375,10.9375,22.9375]},"103":{"id":103,"letter":"g","x":727,"y":265,"width":64,"height":64,"map":0,"xadvance":18.265625,"xoffset":23.2109375,"yoffset":26.3984375,"scale":1,"range":8,"bounds":[0.578125,-4.3125,17,15.515625]},"104":{"id":104,"letter":"h","x":793,"y":265,"width":64,"height":64,"map":0,"xadvance":18.140625,"xoffset":23,"yoffset":20.921875,"scale":1,"range":8,"bounds":[1.078125,-0.125,16.921875,22.28125]},"105":{"id":105,"letter":"i","x":859,"y":265,"width":64,"height":64,"map":0,"xadvance":8.796875,"xoffset":27.6015625,"yoffset":21.296875,"scale":1,"range":8,"bounds":[1.28125,-0.09375,7.515625,21.5]},"106":{"id":106,"letter":"j","x":925,"y":265,"width":64,"height":64,"map":0,"xadvance":8.890625,"xoffset":28.4296875,"yoffset":23.296875,"scale":1,"range":8,"bounds":[-0.46875,-4.1875,7.609375,21.59375]},"107":{"id":107,"letter":"k","x":1,"y":331,"width":64,"height":64,"map":0,"xadvance":19.234375,"xoffset":21.984375,"yoffset":20.84375,"scale":1,"range":8,"bounds":[1.34375,-0.09375,18.6875,22.40625]},"108":{"id":108,"letter":"l","x":67,"y":331,"width":64,"height":64,"map":0,"xadvance":8.546875,"xoffset":27.7332175926,"yoffset":21.0859375,"scale":1,"range":8,"bounds":[1.09375,-0.125,7.43981481481,21.953125]},"109":{"id":109,"letter":"m","x":133,"y":331,"width":64,"height":64,"map":0,"xadvance":27.9375,"xoffset":18.2734375,"yoffset":24.2890625,"scale":1,"range":8,"bounds":[1.15625,-0.09375,26.296875,15.515625]},"110":{"id":110,"letter":"n","x":199,"y":331,"width":64,"height":64,"map":0,"xadvance":18.140625,"xoffset":23.109375,"yoffset":24.3203125,"scale":1,"range":8,"bounds":[0.921875,-0.09375,16.859375,15.453125]},"111":{"id":111,"letter":"o","x":265,"y":331,"width":64,"height":64,"map":0,"xadvance":16.921875,"xoffset":23.53125,"yoffset":24.3359375,"scale":1,"range":8,"bounds":[0.578125,-0.3125,16.359375,15.640625]},"112":{"id":112,"letter":"p","x":331,"y":331,"width":64,"height":64,"map":0,"xadvance":19.265625,"xoffset":22.078125,"yoffset":26.7734375,"scale":1,"range":8,"bounds":[1.28125,-4.90625,18.5625,15.359375]},"113":{"id":113,"letter":"q","x":397,"y":331,"width":64,"height":64,"map":0,"xadvance":18.9375,"xoffset":22.9140625,"yoffset":26.5703125,"scale":1,"range":8,"bounds":[0.609375,-4.890625,17.5625,15.75]},"114":{"id":114,"letter":"r","x":463,"y":331,"width":64,"height":64,"map":0,"xadvance":12.1875,"xoffset":25.6484375,"yoffset":24.3359375,"scale":1,"range":8,"bounds":[0.859375,-0.09375,11.84375,15.421875]},"115":{"id":115,"letter":"s","x":529,"y":331,"width":64,"height":64,"map":0,"xadvance":11.390625,"xoffset":26.4375,"yoffset":24.1484375,"scale":1,"range":8,"bounds":[0.65625,-0.578125,10.46875,16.28125]},"116":{"id":116,"letter":"t","x":595,"y":331,"width":64,"height":64,"map":0,"xadvance":12.09375,"xoffset":25.953125,"yoffset":22.0078125,"scale":1,"range":8,"bounds":[0.3125,-0.28125,11.78125,20.265625]},"117":{"id":117,"letter":"u","x":661,"y":331,"width":64,"height":64,"map":0,"xadvance":18.65625,"xoffset":22.65625,"yoffset":24.640625,"scale":1,"range":8,"bounds":[1.28125,-0.15625,17.40625,14.875]},"118":{"id":118,"letter":"v","x":727,"y":331,"width":64,"height":64,"map":0,"xadvance":17.15625,"xoffset":23.4375,"yoffset":24.625,"scale":1,"range":8,"bounds":[0.765625,-0.125,16.359375,14.875]},"119":{"id":119,"letter":"w","x":793,"y":331,"width":64,"height":64,"map":0,"xadvance":24.21875,"xoffset":19.8828125,"yoffset":24.59375,"scale":1,"range":8,"bounds":[0.484375,-0.09375,23.75,14.90625]},"120":{"id":120,"letter":"x","x":859,"y":331,"width":64,"height":64,"map":0,"xadvance":15.640625,"xoffset":24.15625,"yoffset":24.625,"scale":1,"range":8,"bounds":[0.578125,-0.125,15.109375,14.875]},"121":{"id":121,"letter":"y","x":925,"y":331,"width":64,"height":64,"map":0,"xadvance":17.21875,"xoffset":23.296875,"yoffset":27.171875,"scale":1,"range":8,"bounds":[0.734375,-5.21875,16.671875,14.875]},"122":{"id":122,"letter":"z","x":1,"y":397,"width":64,"height":64,"map":0,"xadvance":14.96875,"xoffset":24.1875,"yoffset":24.5625,"scale":1,"range":8,"bounds":[0.859375,-0.203125,14.765625,15.078125]},"123":{"id":123,"letter":"{","x":67,"y":397,"width":64,"height":64,"map":0,"xadvance":12.515625,"xoffset":25.8515625,"yoffset":23.96875,"scale":1,"range":8,"bounds":[0.953125,-6.5,11.34375,22.5625]},"124":{"id":124,"letter":"|","x":133,"y":397,"width":64,"height":64,"map":0,"xadvance":9.953125,"xoffset":27.0854166667,"yoffset":21.9765625,"scale":1,"range":8,"bounds":[2.90625,-2.1875,6.92291666667,22.234375]},"125":{"id":125,"letter":"}","x":199,"y":397,"width":64,"height":64,"map":0,"xadvance":12.515625,"xoffset":25.640625,"yoffset":23.96875,"scale":1,"range":8,"bounds":[1.171875,-6.5,11.546875,22.5625]},"126":{"id":126,"letter":"~","x":265,"y":397,"width":64,"height":64,"map":0,"xadvance":17.28125,"xoffset":23.265625,"yoffset":22.28125,"scale":1,"range":8,"bounds":[0.171875,5.484375,17.296875,13.953125]}},"kerning":{}},"type":"font","file":{"filename":"BRLNSDB.png","hash":"64c1f05f77830228af9c5fa580768cf1","size":369767,"url":"files/assets/79465530/1/BRLNSDB.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"1fc2d350-45b1-4d28-93db-c0853a7b7eed","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"79465530"},"79465795":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"GetHeightFromURLParams.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"getHeightFromUrlparams":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"e70bc0ed-cdb7-4cd5-9c0c-839bcacd499a","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"79465795"},"79469394":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"showHeightAndWidth.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"showHeightAndWidth":{"attributesOrder":["width","height","hideInterval","baseScaleWidth","baseScaleHeight","physicalHeight","physicalWidth","ImageEntity"],"attributes":{"width":{"type":"entity"},"height":{"type":"entity"},"hideInterval":{"type":"number"},"physicalHeight":{"type":"number"},"physicalWidth":{"type":"number"},"ImageEntity":{"type":"entity"},"baseScaleWidth":{"type":"number"},"baseScaleHeight":{"type":"number"}}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"ae45f8a7-fce5-4343-8d3c-6304ad9cf6a6","same_as_backup":0,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"79469394"},"80679924":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"wood","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":0},"data":{"shader":"blinn","ambient":[0,0,0],"diffuse":[0.3803921568627451,0.15294117647058825,0.06274509803921569],"diffuseMap":null,"diffuseMapOffset":[0,0],"diffuseMapTiling":[1,1],"specular":[0.145366,0.0976329,0.0411764],"shininess":42.2169,"glossMap":null,"glossMapOffset":[0,0],"glossMapTiling":[1,1],"emissive":[0,0,0],"normalMap":null,"normalMapOffset":[0,0],"normalMapTiling":[1,1],"bumpMapFactor":1,"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMapChannel":"r","glossMapUv":0,"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMapUv":0,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679924"},"80679925":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"lamp","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":1},"data":{"shader":"blinn","ambient":[0,0,0],"diffuse":[0.8,0.8,0.8],"specular":[0.2,0.2,0.2],"shininess":42.2169,"emissive":[0.8196078431372549,0.8745098039215686,0.5450980392156862],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":2.08,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679925"},"80679926":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"shelfLamp.glb","revision":1,"preload":true,"region":"eu-west-1","meta":null,"data":{},"type":"container","file":{"hash":"a9484a51794190cd74aa3b3d81da87e2","size":23156,"filename":"shelfLamp.glb","url":"files/assets/80679926/1/shelfLamp.glb"},"i18n":{},"immutable_backup":"27dd1ec2-80e7-4999-97da-1411c62e3b9a","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679926"},"80679927":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Cube.075","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":24,"triangles":12,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80679926,"renderIndex":0},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679927"},"80679928":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Cube.076","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":24,"triangles":12,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80679926,"renderIndex":1},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679928"},"80679929":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Cube.077","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":24,"triangles":12,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80679926,"renderIndex":2},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679929"},"80679930":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Cube.078","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":24,"triangles":12,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80679926,"renderIndex":3},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679930"},"80679931":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Cube.079","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":72,"triangles":44,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80679926,"renderIndex":4},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679931"},"80679932":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Cube.081","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":72,"triangles":44,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80679926,"renderIndex":6},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679932"},"80679933":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Cube.080","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":72,"triangles":44,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80679926,"renderIndex":5},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679933"},"80679934":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Cube.082","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":72,"triangles":44,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80679926,"renderIndex":7},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679934"},"80679935":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Cube.001","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":56,"triangles":28,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80679926,"renderIndex":8},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679935"},"80679936":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"shelfLamp","revision":1,"preload":true,"region":"eu-west-1","meta":{"containerAsset":80679926},"data":{"entities":{"2f98331a-f416-4fba-ab37-a9552ed8909a":{"enabled":true,"tags":[],"children":["d8ddbdd6-c9a5-455c-be0b-e69eb330ea37","24992962-3f33-4690-82dd-d86e478bbc37","c96a4fa9-1092-42b8-b3e7-7991457b8f13","7cf96d6d-2951-4852-9aa9-703033d78cf2","2851c034-273d-4931-8fe9-be3f6b2ea7d7","c1117206-78cf-4fee-8122-241344d3e7b0","a5040658-5d95-43a8-8b51-8927fbaebae5","bc406cfc-db95-4b46-8526-8b85d1858c76","1e6539fd-d4f6-4810-af40-98bf5679a9ea"],"position":[0,0,0],"rotation":[0,0,0],"scale":[0.01,0.01,0.01],"resource_id":"2f98331a-f416-4fba-ab37-a9552ed8909a","name":"RootNode","components":{},"parent":null},"d8ddbdd6-c9a5-455c-be0b-e69eb330ea37":{"enabled":true,"tags":[],"children":[],"position":[2.05715,75.0536,36.0618],"rotation":[-90,0,0],"scale":[20,20,750],"resource_id":"d8ddbdd6-c9a5-455c-be0b-e69eb330ea37","name":"leg 1.001","components":{"render":{"enabled":true,"type":"asset","asset":80679927,"materialAssets":[80679924],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"2f98331a-f416-4fba-ab37-a9552ed8909a"},"24992962-3f33-4690-82dd-d86e478bbc37":{"enabled":true,"tags":[],"children":[],"position":[36.0572,75.0536,36.0618],"rotation":[-90,0,0],"scale":[20,20,750],"resource_id":"24992962-3f33-4690-82dd-d86e478bbc37","name":"leg 2.001","components":{"render":{"enabled":true,"type":"asset","asset":80679928,"materialAssets":[80679924],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"2f98331a-f416-4fba-ab37-a9552ed8909a"},"c96a4fa9-1092-42b8-b3e7-7991457b8f13":{"enabled":true,"tags":[],"children":[],"position":[2.05715,75.0536,2.06183],"rotation":[-90,0,0],"scale":[20,20,750],"resource_id":"c96a4fa9-1092-42b8-b3e7-7991457b8f13","name":"leg 3.001","components":{"render":{"enabled":true,"type":"asset","asset":80679929,"materialAssets":[80679924],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"2f98331a-f416-4fba-ab37-a9552ed8909a"},"7cf96d6d-2951-4852-9aa9-703033d78cf2":{"enabled":true,"tags":[],"children":[],"position":[36.0572,75.0536,2.06183],"rotation":[-90,0,0],"scale":[20,20,750],"resource_id":"7cf96d6d-2951-4852-9aa9-703033d78cf2","name":"leg 4.001","components":{"render":{"enabled":true,"type":"asset","asset":80679930,"materialAssets":[80679924],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"2f98331a-f416-4fba-ab37-a9552ed8909a"},"2851c034-273d-4931-8fe9-be3f6b2ea7d7":{"enabled":true,"tags":[],"children":[],"position":[19.0571,9.05356,19.0618],"rotation":[-90,0,0],"scale":[190,190,10],"resource_id":"2851c034-273d-4931-8fe9-be3f6b2ea7d7","name":"shelf","components":{"render":{"enabled":true,"type":"asset","asset":80679931,"materialAssets":[80679924],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"2f98331a-f416-4fba-ab37-a9552ed8909a"},"c1117206-78cf-4fee-8122-241344d3e7b0":{"enabled":true,"tags":[],"children":[],"position":[19.0571,39.0536,19.0618],"rotation":[-90,0,0],"scale":[190,190,10],"resource_id":"c1117206-78cf-4fee-8122-241344d3e7b0","name":"shelf.001","components":{"render":{"enabled":true,"type":"asset","asset":80679933,"materialAssets":[80679924],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"2f98331a-f416-4fba-ab37-a9552ed8909a"},"a5040658-5d95-43a8-8b51-8927fbaebae5":{"enabled":true,"tags":[],"children":[],"position":[19.0571,69.0536,19.0618],"rotation":[-90,0,0],"scale":[190,190,10],"resource_id":"a5040658-5d95-43a8-8b51-8927fbaebae5","name":"shelf.002","components":{"render":{"enabled":true,"type":"asset","asset":80679932,"materialAssets":[80679924],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"2f98331a-f416-4fba-ab37-a9552ed8909a"},"bc406cfc-db95-4b46-8526-8b85d1858c76":{"enabled":true,"tags":[],"children":[],"position":[19.0571,99.0536,19.0618],"rotation":[-90,0,0],"scale":[190,190,10],"resource_id":"bc406cfc-db95-4b46-8526-8b85d1858c76","name":"shelf.003","components":{"render":{"enabled":true,"type":"asset","asset":80679934,"materialAssets":[80679924],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"2f98331a-f416-4fba-ab37-a9552ed8909a"},"1e6539fd-d4f6-4810-af40-98bf5679a9ea":{"enabled":true,"tags":[],"children":[],"position":[19.0571,120.054,19.0618],"rotation":[-90,0,0],"scale":[150,150,200],"resource_id":"1e6539fd-d4f6-4810-af40-98bf5679a9ea","name":"lamp","components":{"render":{"enabled":true,"type":"asset","asset":80679935,"materialAssets":[80679925],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"2f98331a-f416-4fba-ab37-a9552ed8909a"}}},"type":"template","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80679936"},"80683536":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"New Material","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80683536"},"80896512":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"teahub.io-desktop-wallpaper-hd-3d-372445.jpg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":3840,"height":2160,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"teahub.io-desktop-wallpaper-hd-3d-372445.jpg","size":1372708,"hash":"f48f51f1665d566ed96110aac1a32191","variants":{},"url":"files/assets/80896512/1/teahub.io-desktop-wallpaper-hd-3d-372445.jpg"},"region":"eu-west-1","i18n":{},"immutable_backup":"2c320b9a-8f3c-447c-aff4-5277fb7725ef","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80896512"},"80896591":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"AbstractPainting","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":80896512,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80896591"},"80896683":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"BlackFrame","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[0,0,0],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80896683"},"80901073":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Apt_Furniture_01.glb","revision":1,"preload":true,"region":"eu-west-1","meta":null,"data":{},"type":"container","file":{"hash":"200765e99dc3f8f266a1c0ac44cf4733","size":1902416,"filename":"Apt_Furniture_01.glb","url":"files/assets/80901073/1/Apt_Furniture_01.glb"},"i18n":{},"immutable_backup":"e9bf1f8d-6b7e-4387-9f2e-40e43cd7722f","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901073"},"80901074":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.010","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":284,"triangles":316,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":0},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901074"},"80901075":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.011","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":568,"triangles":288,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":2},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901075"},"80901076":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.012","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":288,"triangles":158,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":1},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901076"},"80901077":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.012","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":640,"triangles":312,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":3},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901077"},"80901078":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.016","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":2368,"triangles":1154,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":4},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901078"},"80901079":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.017","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1248,"triangles":636,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":5},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901079"},"80901080":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.020","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":24,"triangles":12,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":6},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901080"},"80901081":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.015","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":280,"triangles":134,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":7},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901081"},"80901082":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.018","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":404,"triangles":198,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":8},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901082"},"80901083":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.032","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":88,"triangles":42,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":9},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901083"},"80901084":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.031","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":404,"triangles":198,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":10},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901084"},"80901085":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.033","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":88,"triangles":42,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":11},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901085"},"80901086":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.034","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1248,"triangles":636,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":12},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901086"},"80901087":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.016","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":280,"triangles":134,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":13},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901087"},"80901088":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.026","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":22,"triangles":12,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":14},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901088"},"80901089":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.035","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":420,"triangles":210,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":15},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901089"},"80901090":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.027","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":4,"triangles":2,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":16},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901090"},"80901091":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.029","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":240,"triangles":120,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":17},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901091"},"80901092":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.036","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":200,"triangles":92,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":18},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901092"},"80901093":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.037","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1750,"triangles":872,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":19},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901093"},"80901094":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.017","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1376,"triangles":700,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":20},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901094"},"80901095":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.031","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":770,"triangles":776,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":21},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901095"},"80901096":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.038","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":556,"triangles":276,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":22},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901096"},"80901097":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.041","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":384,"triangles":176,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":23},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901097"},"80901098":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.043","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":600,"triangles":300,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":24},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901098"},"80901099":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.018","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":336,"triangles":168,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":25},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901099"},"80901100":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.042","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":552,"triangles":276,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":26},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901100"},"80901101":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.044","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":600,"triangles":300,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":27},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901101"},"80901102":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.045","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":2044,"triangles":972,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":28},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901102"},"80901103":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.047","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":240,"triangles":114,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":29},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901103"},"80901104":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.019","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":720,"triangles":366,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":30},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901104"},"80901105":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.048","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":624,"triangles":288,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":31},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901105"},"80901106":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.049","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":384,"triangles":176,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":32},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901106"},"80901107":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.050","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1456,"triangles":672,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":33},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901107"},"80901108":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.020","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":416,"triangles":216,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":34},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901108"},"80901109":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.061","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":24,"triangles":12,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":35},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901109"},"80901110":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.021","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1920,"triangles":944,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":36},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901110"},"80901111":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.022","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":2928,"triangles":1510,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":37},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901111"},"80901112":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.023","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":608,"triangles":316,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":38},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901112"},"80901113":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.024","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":144,"triangles":78,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":39},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901113"},"80901114":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.025","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":864,"triangles":444,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":40},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901114"},"80901115":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.026","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":608,"triangles":316,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":41},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901115"},"80901116":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.027","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":144,"triangles":78,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":42},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901116"},"80901117":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.028","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":864,"triangles":444,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":43},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901117"},"80901118":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.029","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":608,"triangles":316,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":44},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901118"},"80901119":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.036","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":144,"triangles":78,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":45},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901119"},"80901120":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.040","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":864,"triangles":444,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":46},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901120"},"80901121":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.051","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":512,"triangles":240,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":47},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901121"},"80901122":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.067","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":24,"triangles":12,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":48},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901122"},"80901123":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.053","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":4148,"triangles":1916,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":49},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901123"},"80901124":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.052","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":96,"triangles":44,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":50},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901124"},"80901125":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.054","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":96,"triangles":44,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":51},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901125"},"80901126":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.167","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":3040,"triangles":4352,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":52},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901126"},"80901127":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.055","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":864,"triangles":432,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":53},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901127"},"80901128":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.059","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":832,"triangles":384,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":54},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901128"},"80901129":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.056","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":392,"triangles":180,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":55},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901129"},"80901130":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.057","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":200,"triangles":92,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":56},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901130"},"80901131":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.060","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":64,"triangles":30,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":57},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901131"},"80901132":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.062","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":916,"triangles":448,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":58},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901132"},"80901133":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.042","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":2944,"triangles":1520,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":59},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901133"},"80901134":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.043","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":592,"triangles":272,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":60},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901134"},"80901135":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.044","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":200,"triangles":92,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":61},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901135"},"80901136":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.058","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":144,"triangles":68,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":62},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901136"},"80901137":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.045","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":200,"triangles":92,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":63},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901137"},"80901138":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.059","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":144,"triangles":68,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":64},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901138"},"80901139":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.050","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":200,"triangles":92,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":65},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901139"},"80901140":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.054","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":144,"triangles":68,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":66},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901140"},"80901141":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.060","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":528,"triangles":256,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":67},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901141"},"80901142":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.062","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":416,"triangles":222,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":68},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901142"},"80901143":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.061","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":576,"triangles":316,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":69},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901143"},"80901144":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.008","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":24,"triangles":12,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":70},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901144"},"80901145":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Circle.064","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1184,"triangles":604,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":71},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901145"},"80901146":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.063","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":1152,"triangles":528,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":72},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901146"},"80901147":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.064","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":216,"triangles":108,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":73},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901147"},"80901148":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Plane.065","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":false,"vertices":480,"triangles":220,"attributes":{"POSITION":1,"NORMAL":1,"TEXCOORD_0":1}},"data":{"containerAsset":80901073,"renderIndex":74},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901148"},"80901149":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Apt_Furniture_01","revision":1,"preload":true,"region":"eu-west-1","meta":{"containerAsset":80901073},"data":{"entities":{"822f5dc8-53ba-4044-b40a-ad6cd166437f":{"enabled":true,"tags":[],"children":["338bd52b-a2f6-42de-bf8b-52fe3de7e179","839c3672-62f2-4511-b1f2-f4ab2af9f4c2","b3d32185-01fc-4b15-95c1-4ecd52e0294a","5d15a1a2-f7cd-4a57-986f-4f008d76e2cf","1c4f7ce5-e910-455b-bd5e-8467a5e1df57","c51f1b53-cda0-48b6-ba0c-d6321f55bcdd","d30d9440-da09-45d6-b682-c37bfe2dd14a","bd601a02-6551-416a-a740-4d12955a891c","eaba8cfb-4902-4a3d-9f69-a1c3fb381fa9","ee1a3c07-0c5f-4221-bd99-ab036871aa98","e55b0112-6b47-4d32-a83e-be36db426d05","38df4006-0b7a-46bd-b4bd-10f8b47119f2","4aa1522b-ec5e-49c3-ba92-896f61fda63d","9433823b-85be-4a39-b240-feba83d2c90c","abe67550-6b78-417b-a7a2-eafbbc743997","b61f87ee-5892-421a-99f2-42c9069341f6","09ffffd8-29e1-427b-9351-a882029d9274","5b35bf87-de7b-44ae-8d00-6ea37130a152","9b30f32e-d431-4b5d-ad41-9c18e9421f3a","1e3969e9-8224-4a5a-b5a8-b10b7fbfa194","001c6978-45d7-46e0-9d70-65f55141ccc4","09a1895d-542e-43e7-85de-48dacaf55d9b","47da6ac3-f30e-4429-95a8-74d02dcb2713","f18906a3-7e3a-4997-b64b-628333b8e776"],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"822f5dc8-53ba-4044-b40a-ad6cd166437f","name":"RootNode","components":{},"parent":null},"338bd52b-a2f6-42de-bf8b-52fe3de7e179":{"enabled":true,"tags":[],"children":["bb75b8cf-bc5d-41d3-9397-2cf9a2afbc55"],"position":[-0.162169,7.15256e-7,7.76014],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"338bd52b-a2f6-42de-bf8b-52fe3de7e179","name":"Table_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901074,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"bb75b8cf-bc5d-41d3-9397-2cf9a2afbc55":{"enabled":true,"tags":[],"children":[],"position":[4.76837e-7,2.38419e-7,-4.76837e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"bb75b8cf-bc5d-41d3-9397-2cf9a2afbc55","name":"Table Top","components":{"render":{"enabled":true,"type":"asset","asset":80901076,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"338bd52b-a2f6-42de-bf8b-52fe3de7e179"},"839c3672-62f2-4511-b1f2-f4ab2af9f4c2":{"enabled":true,"tags":[],"children":["da569564-4cbd-4cdb-8909-364bedaddc37"],"position":[1.01744,-0.000638247,7.88769],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"839c3672-62f2-4511-b1f2-f4ab2af9f4c2","name":"Chair_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901075,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"da569564-4cbd-4cdb-8909-364bedaddc37":{"enabled":true,"tags":[],"children":[],"position":[0,2.38437e-7,4.76837e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"da569564-4cbd-4cdb-8909-364bedaddc37","name":"Legs Chair","components":{"render":{"enabled":true,"type":"asset","asset":80901077,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"839c3672-62f2-4511-b1f2-f4ab2af9f4c2"},"b3d32185-01fc-4b15-95c1-4ecd52e0294a":{"enabled":true,"tags":[],"children":["50a77350-fe85-46c3-a2fb-9e21842e4f61","0639e112-c6c2-4f53-88e5-bd862a09099e","d45f4566-8dad-4bac-998d-de7ddf327ba4","12dff73c-1236-4ff1-950d-b2a6cedb2192"],"position":[-0.189795,-0.00101233,-1.02702],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"b3d32185-01fc-4b15-95c1-4ecd52e0294a","name":"MediaTable_01","components":{"render":{"enabled":true,"type":"asset","asset":80901078,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"50a77350-fe85-46c3-a2fb-9e21842e4f61":{"enabled":true,"tags":[],"children":["477e175d-7f2a-41ee-9b8e-47d79cece154","f7b007c3-643d-46e6-92fe-29102a9abbb7"],"position":[-0.431799,0.411594,-1.27608],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"50a77350-fe85-46c3-a2fb-9e21842e4f61","name":"Door.L.001","components":{"render":{"enabled":true,"type":"asset","asset":80901079,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"b3d32185-01fc-4b15-95c1-4ecd52e0294a"},"477e175d-7f2a-41ee-9b8e-47d79cece154":{"enabled":true,"tags":[],"children":[],"position":[0.0156746,7.1816e-9,0.422001],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"477e175d-7f2a-41ee-9b8e-47d79cece154","name":"Glass","components":{"render":{"enabled":true,"type":"asset","asset":80901080,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"50a77350-fe85-46c3-a2fb-9e21842e4f61"},"f7b007c3-643d-46e6-92fe-29102a9abbb7":{"enabled":true,"tags":[],"children":[],"position":[-0.0098722,2.43353e-8,0.814431],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"f7b007c3-643d-46e6-92fe-29102a9abbb7","name":"Knob.004","components":{"render":{"enabled":true,"type":"asset","asset":80901081,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"50a77350-fe85-46c3-a2fb-9e21842e4f61"},"0639e112-c6c2-4f53-88e5-bd862a09099e":{"enabled":true,"tags":[],"children":["03438cd4-6bc6-450a-9978-e2a08d05f2ab"],"position":[-0.433271,0.373799,2.38419e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"0639e112-c6c2-4f53-88e5-bd862a09099e","name":"Drawer_01.001","components":{"render":{"enabled":true,"type":"asset","asset":80901082,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"b3d32185-01fc-4b15-95c1-4ecd52e0294a"},"03438cd4-6bc6-450a-9978-e2a08d05f2ab":{"enabled":true,"tags":[],"children":[],"position":[0,0.0503578,-4.76837e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"03438cd4-6bc6-450a-9978-e2a08d05f2ab","name":"Handle.001","components":{"render":{"enabled":true,"type":"asset","asset":80901083,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"0639e112-c6c2-4f53-88e5-bd862a09099e"},"d45f4566-8dad-4bac-998d-de7ddf327ba4":{"enabled":true,"tags":[],"children":["dc03387b-81dc-44e0-b6e0-ba2d516f252f"],"position":[-0.433271,0.163137,-2.38419e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"d45f4566-8dad-4bac-998d-de7ddf327ba4","name":"Drawer_02.001","components":{"render":{"enabled":true,"type":"asset","asset":80901084,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"b3d32185-01fc-4b15-95c1-4ecd52e0294a"},"dc03387b-81dc-44e0-b6e0-ba2d516f252f":{"enabled":true,"tags":[],"children":[],"position":[0,0.0503578,-4.76837e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"dc03387b-81dc-44e0-b6e0-ba2d516f252f","name":"Handle.002","components":{"render":{"enabled":true,"type":"asset","asset":80901085,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"d45f4566-8dad-4bac-998d-de7ddf327ba4"},"12dff73c-1236-4ff1-950d-b2a6cedb2192":{"enabled":true,"tags":[],"children":["49b744f9-be83-4f22-9f75-904dcee5cd5e","dc35a58d-1836-400c-8b50-db2faf37e3af"],"position":[-0.431799,0.411593,1.27608],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"12dff73c-1236-4ff1-950d-b2a6cedb2192","name":"Door.R.001","components":{"render":{"enabled":true,"type":"asset","asset":80901086,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"b3d32185-01fc-4b15-95c1-4ecd52e0294a"},"49b744f9-be83-4f22-9f75-904dcee5cd5e":{"enabled":true,"tags":[],"children":[],"position":[-0.0098722,-2.4713e-8,-0.814432],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"49b744f9-be83-4f22-9f75-904dcee5cd5e","name":"Knob.001","components":{"render":{"enabled":true,"type":"asset","asset":80901087,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"12dff73c-1236-4ff1-950d-b2a6cedb2192"},"dc35a58d-1836-400c-8b50-db2faf37e3af":{"enabled":true,"tags":[],"children":[],"position":[0.0156746,-7.5593e-9,-0.422],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"dc35a58d-1836-400c-8b50-db2faf37e3af","name":"Glass.001","components":{"render":{"enabled":true,"type":"asset","asset":80901088,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"12dff73c-1236-4ff1-950d-b2a6cedb2192"},"5d15a1a2-f7cd-4a57-986f-4f008d76e2cf":{"enabled":true,"tags":[],"children":["eb1b0ace-1641-4461-9f95-6d7ba7c48949","549a5dca-b381-4f6b-8d50-523720570de8"],"position":[0.245534,1.7729,-1.07056],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"5d15a1a2-f7cd-4a57-986f-4f008d76e2cf","name":"TV_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901089,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"eb1b0ace-1641-4461-9f95-6d7ba7c48949":{"enabled":true,"tags":[],"children":[],"position":[-0.0422344,9.06879e-7,-1.19209e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"eb1b0ace-1641-4461-9f95-6d7ba7c48949","name":"Screen","components":{"render":{"enabled":true,"type":"asset","asset":80901090,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"5d15a1a2-f7cd-4a57-986f-4f008d76e2cf"},"549a5dca-b381-4f6b-8d50-523720570de8":{"enabled":true,"tags":[],"children":[],"position":[0.0455265,-4.67956e-8,-1.19209e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"549a5dca-b381-4f6b-8d50-523720570de8","name":"Mount","components":{"render":{"enabled":true,"type":"asset","asset":80901091,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"5d15a1a2-f7cd-4a57-986f-4f008d76e2cf"},"1c4f7ce5-e910-455b-bd5e-8467a5e1df57":{"enabled":true,"tags":[],"children":[],"position":[0.277431,3.14655,-1.75637],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"1c4f7ce5-e910-455b-bd5e-8467a5e1df57","name":"WallShelf_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901092,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"c51f1b53-cda0-48b6-ba0c-d6321f55bcdd":{"enabled":true,"tags":[],"children":[],"position":[-0.280342,0,-3.91486],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"c51f1b53-cda0-48b6-ba0c-d6321f55bcdd","name":"Shelf_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901093,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"d30d9440-da09-45d6-b682-c37bfe2dd14a":{"enabled":true,"tags":[],"children":["0d692efe-1397-4c2b-b908-5b605c559dff"],"position":[-0.334039,2.1779,-3.91486],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"d30d9440-da09-45d6-b682-c37bfe2dd14a","name":"Vase_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901094,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"0d692efe-1397-4c2b-b908-5b605c559dff":{"enabled":true,"tags":[],"children":[],"position":[0.0165925,0.0244001,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"0d692efe-1397-4c2b-b908-5b605c559dff","name":"Plastic Flower","components":{"render":{"enabled":true,"type":"asset","asset":80901095,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"d30d9440-da09-45d6-b682-c37bfe2dd14a"},"bd601a02-6551-416a-a740-4d12955a891c":{"enabled":true,"tags":[],"children":["03f5cd73-5a3b-44cb-9b7b-1f9c6df460eb","146e0679-341f-45e7-a408-82a3bb658c7c"],"position":[-0.421535,0.480203,-1.02702],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"bd601a02-6551-416a-a740-4d12955a891c","name":"SS_01","components":{"render":{"enabled":true,"type":"asset","asset":80901096,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"03f5cd73-5a3b-44cb-9b7b-1f9c6df460eb":{"enabled":true,"tags":[],"children":[],"position":[0,1.47123e-8,-2.38419e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"03f5cd73-5a3b-44cb-9b7b-1f9c6df460eb","name":"Feet","components":{"render":{"enabled":true,"type":"asset","asset":80901097,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"bd601a02-6551-416a-a740-4d12955a891c"},"146e0679-341f-45e7-a408-82a3bb658c7c":{"enabled":true,"tags":[],"children":[],"position":[0,1.47123e-8,-2.38419e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"146e0679-341f-45e7-a408-82a3bb658c7c","name":"Fabric","components":{"render":{"enabled":true,"type":"asset","asset":80901098,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"bd601a02-6551-416a-a740-4d12955a891c"},"eaba8cfb-4902-4a3d-9f69-a1c3fb381fa9":{"enabled":true,"tags":[],"children":["f2bce001-6ff5-4a6d-b792-279dcf1e1915"],"position":[0.132616,-0.00101256,1.76616],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"eaba8cfb-4902-4a3d-9f69-a1c3fb381fa9","name":"SS_Stand_01","components":{"render":{"enabled":true,"type":"asset","asset":80901099,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"f2bce001-6ff5-4a6d-b792-279dcf1e1915":{"enabled":true,"tags":[],"children":["57850126-9d95-4b9a-9ad1-5fce4d1569b2"],"position":[-0.00078249,1.33675,-5.96046e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"f2bce001-6ff5-4a6d-b792-279dcf1e1915","name":"SS_02","components":{"render":{"enabled":true,"type":"asset","asset":80901100,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"eaba8cfb-4902-4a3d-9f69-a1c3fb381fa9"},"57850126-9d95-4b9a-9ad1-5fce4d1569b2":{"enabled":true,"tags":[],"children":[],"position":[0,-4.2008e-8,2.38419e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"57850126-9d95-4b9a-9ad1-5fce4d1569b2","name":"Fabric.001","components":{"render":{"enabled":true,"type":"asset","asset":80901101,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"f2bce001-6ff5-4a6d-b792-279dcf1e1915"},"ee1a3c07-0c5f-4221-bd99-ab036871aa98":{"enabled":true,"tags":[],"children":["9d90e8bf-5dfc-4014-aa00-6512a57df38a"],"position":[-0.370188,-0.0010128,-6.10933],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"ee1a3c07-0c5f-4221-bd99-ab036871aa98","name":"BarCabinet_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901102,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"9d90e8bf-5dfc-4014-aa00-6512a57df38a":{"enabled":true,"tags":[],"children":["f46a51c2-8d1b-4062-a5b2-3b3691c1591a"],"position":[-0.323143,1.34984,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"9d90e8bf-5dfc-4014-aa00-6512a57df38a","name":"BarDrawer","components":{"render":{"enabled":true,"type":"asset","asset":80901103,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"ee1a3c07-0c5f-4221-bd99-ab036871aa98"},"f46a51c2-8d1b-4062-a5b2-3b3691c1591a":{"enabled":true,"tags":[],"children":[],"position":[0,-2.86287e-8,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"f46a51c2-8d1b-4062-a5b2-3b3691c1591a","name":"Knob.002","components":{"render":{"enabled":true,"type":"asset","asset":80901104,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9d90e8bf-5dfc-4014-aa00-6512a57df38a"},"e55b0112-6b47-4d32-a83e-be36db426d05":{"enabled":true,"tags":[],"children":["9713ca82-4f59-4aa5-bc9b-810c05eaa3ce","8c459bfc-d378-4f72-b395-adaf6a5831f1"],"position":[-0.0638549,2.14632,-6.17385],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"e55b0112-6b47-4d32-a83e-be36db426d05","name":"Wall Wine Rack_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901105,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"9713ca82-4f59-4aa5-bc9b-810c05eaa3ce":{"enabled":true,"tags":[],"children":[],"position":[0,2.0697e-7,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"9713ca82-4f59-4aa5-bc9b-810c05eaa3ce","name":"WineArt","components":{"render":{"enabled":true,"type":"asset","asset":80901106,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"e55b0112-6b47-4d32-a83e-be36db426d05"},"8c459bfc-d378-4f72-b395-adaf6a5831f1":{"enabled":true,"tags":[],"children":[],"position":[-0.0792939,0.68252,0.478048],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"8c459bfc-d378-4f72-b395-adaf6a5831f1","name":"Holder","components":{"render":{"enabled":true,"type":"asset","asset":80901107,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"e55b0112-6b47-4d32-a83e-be36db426d05"},"38df4006-0b7a-46bd-b4bd-10f8b47119f2":{"enabled":true,"tags":[],"children":["bb11a9ef-dfa7-4138-aa4c-8628d7dcd37a","a21a6c4c-fb9d-40cb-9409-3743c58928ad"],"position":[-0.415298,1.5528,-6.11221],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"38df4006-0b7a-46bd-b4bd-10f8b47119f2","name":"MirrorPlate_Glass","components":{"render":{"enabled":true,"type":"asset","asset":80901108,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"bb11a9ef-dfa7-4138-aa4c-8628d7dcd37a":{"enabled":true,"tags":[],"children":[],"position":[-2.98023e-8,2.09664e-7,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"bb11a9ef-dfa7-4138-aa4c-8628d7dcd37a","name":"MirrorPlate","components":{"render":{"enabled":true,"type":"asset","asset":80901109,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"38df4006-0b7a-46bd-b4bd-10f8b47119f2"},"a21a6c4c-fb9d-40cb-9409-3743c58928ad":{"enabled":true,"tags":[],"children":[],"position":[0,2.09664e-7,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"a21a6c4c-fb9d-40cb-9409-3743c58928ad","name":"Elbow","components":{"render":{"enabled":true,"type":"asset","asset":80901110,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"38df4006-0b7a-46bd-b4bd-10f8b47119f2"},"4aa1522b-ec5e-49c3-ba92-896f61fda63d":{"enabled":true,"tags":[],"children":["9f876abb-6a34-4fcf-acc5-6d7fb8690362","d1fca74e-2de2-44d5-8a98-127c05c8cb8f","154c5e44-2514-4ce2-9f34-74baee97ffe1"],"position":[0.12547,3.8934,1.03536],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"4aa1522b-ec5e-49c3-ba92-896f61fda63d","name":"Lamp_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901111,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"9f876abb-6a34-4fcf-acc5-6d7fb8690362":{"enabled":true,"tags":[],"children":["88f8fb98-40e9-4e60-92c4-0b80cf88f8ea"],"position":[-0.23112,-0.227014,0.00351596],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"9f876abb-6a34-4fcf-acc5-6d7fb8690362","name":"Glass.003","components":{"render":{"enabled":true,"type":"asset","asset":80901112,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"4aa1522b-ec5e-49c3-ba92-896f61fda63d"},"88f8fb98-40e9-4e60-92c4-0b80cf88f8ea":{"enabled":true,"tags":[],"children":["37a43e6b-9ca2-496d-9767-810dd59fa980"],"position":[0,0.002914,4.76837e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"88f8fb98-40e9-4e60-92c4-0b80cf88f8ea","name":"BulbBase","components":{"render":{"enabled":true,"type":"asset","asset":80901113,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9f876abb-6a34-4fcf-acc5-6d7fb8690362"},"37a43e6b-9ca2-496d-9767-810dd59fa980":{"enabled":true,"tags":[],"children":[],"position":[-2.38419e-7,-0.0778269,4.76837e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"37a43e6b-9ca2-496d-9767-810dd59fa980","name":"Bulb","components":{"render":{"enabled":true,"type":"asset","asset":80901114,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"88f8fb98-40e9-4e60-92c4-0b80cf88f8ea"},"d1fca74e-2de2-44d5-8a98-127c05c8cb8f":{"enabled":true,"tags":[],"children":["7d45ccac-4dbe-407a-818e-3e9dcdd22520"],"position":[0.123119,-0.378064,-0.196344],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"d1fca74e-2de2-44d5-8a98-127c05c8cb8f","name":"Glass.004","components":{"render":{"enabled":true,"type":"asset","asset":80901115,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"4aa1522b-ec5e-49c3-ba92-896f61fda63d"},"7d45ccac-4dbe-407a-818e-3e9dcdd22520":{"enabled":true,"tags":[],"children":["776bfefc-5ae5-4b00-89c4-f2f69a65e3ed"],"position":[0,0.00291447,4.76837e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"7d45ccac-4dbe-407a-818e-3e9dcdd22520","name":"BulbBase.001","components":{"render":{"enabled":true,"type":"asset","asset":80901116,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"d1fca74e-2de2-44d5-8a98-127c05c8cb8f"},"776bfefc-5ae5-4b00-89c4-f2f69a65e3ed":{"enabled":true,"tags":[],"children":[],"position":[-2.38419e-7,-0.0778274,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"776bfefc-5ae5-4b00-89c4-f2f69a65e3ed","name":"Bulb.001","components":{"render":{"enabled":true,"type":"asset","asset":80901117,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"7d45ccac-4dbe-407a-818e-3e9dcdd22520"},"154c5e44-2514-4ce2-9f34-74baee97ffe1":{"enabled":true,"tags":[],"children":["a7494ae9-03fe-44e2-ab2d-2ee5a2bbb92a"],"position":[0.12379,-0.559335,0.199886],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"154c5e44-2514-4ce2-9f34-74baee97ffe1","name":"Glass.005","components":{"render":{"enabled":true,"type":"asset","asset":80901118,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"4aa1522b-ec5e-49c3-ba92-896f61fda63d"},"a7494ae9-03fe-44e2-ab2d-2ee5a2bbb92a":{"enabled":true,"tags":[],"children":["6dc30efb-70c0-403c-a029-336f35961270"],"position":[0,0.00291448,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"a7494ae9-03fe-44e2-ab2d-2ee5a2bbb92a","name":"BulbBase.002","components":{"render":{"enabled":true,"type":"asset","asset":80901119,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"154c5e44-2514-4ce2-9f34-74baee97ffe1"},"6dc30efb-70c0-403c-a029-336f35961270":{"enabled":true,"tags":[],"children":[],"position":[-2.38419e-7,-0.0778274,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"6dc30efb-70c0-403c-a029-336f35961270","name":"Bulb.002","components":{"render":{"enabled":true,"type":"asset","asset":80901120,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"a7494ae9-03fe-44e2-ab2d-2ee5a2bbb92a"},"9433823b-85be-4a39-b240-feba83d2c90c":{"enabled":true,"tags":[],"children":["db1eaac3-eeda-4d7e-a493-1397a8522fce"],"position":[-0.0370805,-0.00101256,0.913527],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"9433823b-85be-4a39-b240-feba83d2c90c","name":"Lamp_Floor_01","components":{"render":{"enabled":true,"type":"asset","asset":80901121,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"db1eaac3-eeda-4d7e-a493-1397a8522fce":{"enabled":true,"tags":[],"children":[],"position":[1.49012e-8,2.17624,-2.38419e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"db1eaac3-eeda-4d7e-a493-1397a8522fce","name":"Glow.002","components":{"render":{"enabled":true,"type":"asset","asset":80901122,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9433823b-85be-4a39-b240-feba83d2c90c"},"abe67550-6b78-417b-a7a2-eafbbc743997":{"enabled":true,"tags":[],"children":["4c0dda32-bd65-4696-ac4a-e63339a0423e","5c196002-661e-44dc-bc8f-149ae68950a8"],"position":[-0.289215,9.53674e-7,10.8742],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"abe67550-6b78-417b-a7a2-eafbbc743997","name":"Bench_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901123,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"4c0dda32-bd65-4696-ac4a-e63339a0423e":{"enabled":true,"tags":[],"children":[],"position":[0.344695,0.751946,-0.747669],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"4c0dda32-bd65-4696-ac4a-e63339a0423e","name":"Door.L.002","components":{"render":{"enabled":true,"type":"asset","asset":80901124,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"abe67550-6b78-417b-a7a2-eafbbc743997"},"5c196002-661e-44dc-bc8f-149ae68950a8":{"enabled":true,"tags":[],"children":[],"position":[0.344695,0.751946,0.747669],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"5c196002-661e-44dc-bc8f-149ae68950a8","name":"Door.R.002","components":{"render":{"enabled":true,"type":"asset","asset":80901125,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"abe67550-6b78-417b-a7a2-eafbbc743997"},"b61f87ee-5892-421a-99f2-42c9069341f6":{"enabled":true,"tags":[],"children":["51fab529-d2a7-4f3b-a4be-e8ceba0462fa"],"position":[-0.114658,4.76837e-7,4.82657],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"b61f87ee-5892-421a-99f2-42c9069341f6","name":"Sofa_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901126,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"51fab529-d2a7-4f3b-a4be-e8ceba0462fa":{"enabled":true,"tags":[],"children":[],"position":[5.96046e-8,1.42109e-14,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"51fab529-d2a7-4f3b-a4be-e8ceba0462fa","name":"feet","components":{"render":{"enabled":true,"type":"asset","asset":80901127,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"b61f87ee-5892-421a-99f2-42c9069341f6"},"09ffffd8-29e1-427b-9351-a882029d9274":{"enabled":true,"tags":[],"children":["69e70553-c577-4c2d-a43b-698ec28ed97d"],"position":[-0.240763,4.76837e-7,2.50322],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"09ffffd8-29e1-427b-9351-a882029d9274","name":"Table_Side_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901128,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"69e70553-c577-4c2d-a43b-698ec28ed97d":{"enabled":true,"tags":[],"children":["5ab2cedd-50c4-4bad-afc9-501da54b64e2"],"position":[0,1.42109e-14,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"69e70553-c577-4c2d-a43b-698ec28ed97d","name":"Table","components":{"render":{"enabled":true,"type":"asset","asset":80901129,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"09ffffd8-29e1-427b-9351-a882029d9274"},"5ab2cedd-50c4-4bad-afc9-501da54b64e2":{"enabled":true,"tags":[],"children":["397ab891-54ea-4bf7-90d4-a74fb824d891"],"position":[-0.309411,0.634836,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"5ab2cedd-50c4-4bad-afc9-501da54b64e2","name":"Drawer.001","components":{"render":{"enabled":true,"type":"asset","asset":80901130,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"69e70553-c577-4c2d-a43b-698ec28ed97d"},"397ab891-54ea-4bf7-90d4-a74fb824d891":{"enabled":true,"tags":[],"children":[],"position":[-0.00766277,-9.7899e-9,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"397ab891-54ea-4bf7-90d4-a74fb824d891","name":"Handle.005","components":{"render":{"enabled":true,"type":"asset","asset":80901131,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"5ab2cedd-50c4-4bad-afc9-501da54b64e2"},"5b35bf87-de7b-44ae-8d00-6ea37130a152":{"enabled":true,"tags":[],"children":["284c22da-792e-406b-a60a-0c5cd4d8da51"],"position":[0.127256,2.84462,10.8742],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"5b35bf87-de7b-44ae-8d00-6ea37130a152","name":"WallShelf_Apt_02","components":{"render":{"enabled":true,"type":"asset","asset":80901132,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"284c22da-792e-406b-a60a-0c5cd4d8da51":{"enabled":true,"tags":[],"children":[],"position":[-0.0701228,-0.242698,9.53674e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"284c22da-792e-406b-a60a-0c5cd4d8da51","name":"Hook","components":{"render":{"enabled":true,"type":"asset","asset":80901133,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"5b35bf87-de7b-44ae-8d00-6ea37130a152"},"9b30f32e-d431-4b5d-ad41-9c18e9421f3a":{"enabled":true,"tags":[],"children":["3cde92d0-5dff-40f2-a3a9-77138b9b9c77","2a6d0d32-0fdd-4444-b0eb-5b7b76e42663","bf5e0099-b3ba-4710-87d0-cd7f3f871f42","5335fb89-bc5e-4007-8c5d-4f28fc6b8f24"],"position":[-0.312675,0.00000286102,14.9362],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"9b30f32e-d431-4b5d-ad41-9c18e9421f3a","name":"ComputerTable_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901134,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"3cde92d0-5dff-40f2-a3a9-77138b9b9c77":{"enabled":true,"tags":[],"children":["6fd2e3e5-a95f-4993-93c6-ea59b10b2cdf"],"position":[-0.624033,0.734103,-0.937548],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"3cde92d0-5dff-40f2-a3a9-77138b9b9c77","name":"Drawer_01","components":{"render":{"enabled":true,"type":"asset","asset":80901135,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9b30f32e-d431-4b5d-ad41-9c18e9421f3a"},"6fd2e3e5-a95f-4993-93c6-ea59b10b2cdf":{"enabled":true,"tags":[],"children":[],"position":[0,0.135898,-0.00000190735],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"6fd2e3e5-a95f-4993-93c6-ea59b10b2cdf","name":"Handle.003","components":{"render":{"enabled":true,"type":"asset","asset":80901136,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"3cde92d0-5dff-40f2-a3a9-77138b9b9c77"},"2a6d0d32-0fdd-4444-b0eb-5b7b76e42663":{"enabled":true,"tags":[],"children":["010d2d12-9d00-47d4-95d1-192e9996bc11"],"position":[-0.624033,0.870001,0.937548],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"2a6d0d32-0fdd-4444-b0eb-5b7b76e42663","name":"Drawer_02","components":{"render":{"enabled":true,"type":"asset","asset":80901137,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9b30f32e-d431-4b5d-ad41-9c18e9421f3a"},"010d2d12-9d00-47d4-95d1-192e9996bc11":{"enabled":true,"tags":[],"children":[],"position":[0,-2.13919e-8,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"010d2d12-9d00-47d4-95d1-192e9996bc11","name":"Handle.004","components":{"render":{"enabled":true,"type":"asset","asset":80901138,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"2a6d0d32-0fdd-4444-b0eb-5b7b76e42663"},"bf5e0099-b3ba-4710-87d0-cd7f3f871f42":{"enabled":true,"tags":[],"children":["fd9725f2-5df1-4804-80fb-95787dbb1184"],"position":[-0.624033,0.598205,0.937548],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"bf5e0099-b3ba-4710-87d0-cd7f3f871f42","name":"Drawer_03","components":{"render":{"enabled":true,"type":"asset","asset":80901139,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9b30f32e-d431-4b5d-ad41-9c18e9421f3a"},"fd9725f2-5df1-4804-80fb-95787dbb1184":{"enabled":true,"tags":[],"children":[],"position":[0,-2.13919e-8,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"fd9725f2-5df1-4804-80fb-95787dbb1184","name":"Handle","components":{"render":{"enabled":true,"type":"asset","asset":80901140,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"bf5e0099-b3ba-4710-87d0-cd7f3f871f42"},"5335fb89-bc5e-4007-8c5d-4f28fc6b8f24":{"enabled":true,"tags":[],"children":[],"position":[0,4.76837e-7,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"5335fb89-bc5e-4007-8c5d-4f28fc6b8f24","name":"MetalBar","components":{"render":{"enabled":true,"type":"asset","asset":80901141,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9b30f32e-d431-4b5d-ad41-9c18e9421f3a"},"1e3969e9-8224-4a5a-b5a8-b10b7fbfa194":{"enabled":true,"tags":[],"children":["f3fc4719-5d34-4d6e-b8cf-cb75b67aaad4"],"position":[0.12547,3.8934,2.75656],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"1e3969e9-8224-4a5a-b5a8-b10b7fbfa194","name":"Lamp_Apt_03","components":{"render":{"enabled":true,"type":"asset","asset":80901142,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"f3fc4719-5d34-4d6e-b8cf-cb75b67aaad4":{"enabled":true,"tags":[],"children":[],"position":[0,-1.17926e-7,2.38419e-7],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"f3fc4719-5d34-4d6e-b8cf-cb75b67aaad4","name":"Glow.001","components":{"render":{"enabled":true,"type":"asset","asset":80901143,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"1e3969e9-8224-4a5a-b5a8-b10b7fbfa194"},"001c6978-45d7-46e0-9d70-65f55141ccc4":{"enabled":true,"tags":[],"children":[],"position":[-3.15547,4.76837e-7,0.202325],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"001c6978-45d7-46e0-9d70-65f55141ccc4","name":"Carpet","components":{"render":{"enabled":true,"type":"asset","asset":80901144,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"09a1895d-542e-43e7-85de-48dacaf55d9b":{"enabled":true,"tags":[],"children":["db25fd53-4a53-4ac2-961c-4cee46c93043"],"position":[-2.82971,4.76837e-7,4.82657],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"09a1895d-542e-43e7-85de-48dacaf55d9b","name":"Coffee_Table_Apt_01","components":{"render":{"enabled":true,"type":"asset","asset":80901145,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"db25fd53-4a53-4ac2-961c-4cee46c93043":{"enabled":true,"tags":[],"children":[],"position":[0,0.476482,-0.419532],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"db25fd53-4a53-4ac2-961c-4cee46c93043","name":"WoodBars","components":{"render":{"enabled":true,"type":"asset","asset":80901146,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"09a1895d-542e-43e7-85de-48dacaf55d9b"},"47da6ac3-f30e-4429-95a8-74d02dcb2713":{"enabled":true,"tags":[],"children":[],"position":[0.277431,2.31297,8.37136],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"47da6ac3-f30e-4429-95a8-74d02dcb2713","name":"Canvas_Painting_01","components":{"render":{"enabled":true,"type":"asset","asset":80901147,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"},"f18906a3-7e3a-4997-b64b-628333b8e776":{"enabled":true,"tags":[],"children":[],"position":[0.277431,2.31297,4.81633],"rotation":[0.00000250448,0,0],"scale":[1,1,1],"resource_id":"f18906a3-7e3a-4997-b64b-628333b8e776","name":"Plane.003","components":{"render":{"enabled":true,"type":"asset","asset":80901148,"materialAssets":[null],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"822f5dc8-53ba-4044-b40a-ad6cd166437f"}}},"type":"template","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80901149"},"80904628":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Pattern_02.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":2048,"height":2048,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"Pattern_02.png","size":573803,"hash":"3d842093aa9dc06e90e2bfa8660e990d","variants":{},"url":"files/assets/80904628/1/Pattern_02.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"c1b359a7-81f5-46d5-975f-91e687e33e59","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80904628"},"80904631":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Painting","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":80904628,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80904631"},"80909898":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"AddlerDarkWood","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[0.8941176470588236,0.6509803921568628,0.403921568627451],"diffuseMap":80909930,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":true,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80909898"},"80909930":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"AdlerWood_01_A.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":2048,"height":2048,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"AdlerWood_01_A.png","size":7210176,"hash":"a86a48c40f8fbddbc2a05fd66a550f47","variants":{},"url":"files/assets/80909930/1/AdlerWood_01_A.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"9ce09fd6-2536-46f7-a416-726794f3d40d","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80909930"},"80914320":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Leather_A.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":2048,"height":2048,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"Leather_A.png","size":2076534,"hash":"dee46b38f83f456df454fb3618886460","variants":{},"url":"files/assets/80914320/1/Leather_A.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"01e3ae99-922c-4a77-8cc7-96f8a8c4e9c9","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80914320"},"80914323":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Leather","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":80914320,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[0.8470588235294118,0.7764705882352941,0.6313725490196078],"diffuseMap":80914320,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":80914327,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":80914379,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":true,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80914323"},"80914327":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Leather_N.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":true,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":2048,"height":2048,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"Leather_N.png","size":1967312,"hash":"96851c1912063975f4196561f6f9474e","variants":{},"url":"files/assets/80914327/1/Leather_N.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"2ab12593-7188-4b40-8221-66bd9bdc7ad7","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80914327"},"80914379":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Leather_H.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":2048,"height":2048,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"Leather_H.png","size":1589116,"hash":"58875597dc9abcc09977b734b8d324a2","variants":{},"url":"files/assets/80914379/1/Leather_H.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"95e4942a-09fd-4a61-a7ee-ed8bd63e7913","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80914379"},"80914525":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Rug_A.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":2048,"height":2048,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"Rug_A.png","size":1336005,"hash":"d9fc10241f0ff45e784604183d022c1f","variants":{},"url":"files/assets/80914525/1/Rug_A.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"92253479-c4f6-4db6-9c2a-a3adc2acd178","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80914525"},"80914526":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Rug_N.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":2048,"height":2048,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"Rug_N.png","size":10647747,"hash":"7051f7fb5490df353794142090ca2af3","variants":{},"url":"files/assets/80914526/1/Rug_N.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"7dbb5081-efa5-41c9-9233-c3111f8604e6","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80914526"},"80914528":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Rug","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":80914525,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":80914525,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":82069915,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80914528"},"80915301":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"SuitMAT","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":0},"data":{"shader":"blinn","ambient":[0,0,0],"diffuse":[0.4,0.4,0.4],"specular":[0,0,0],"shininess":0,"emissive":[0,0,0],"normalMap":null,"normalMapOffset":[0,0],"normalMapTiling":[1,1],"bumpMapFactor":1,"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":80915351,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMapUv":0,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80915301"},"80915302":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"HeadF_MAT","revision":1,"preload":true,"region":"eu-west-1","meta":{"index":1},"data":{"shader":"blinn","ambient":[0,0,0],"diffuse":[0.8,0.8,0.8],"diffuseMap":80915363,"diffuseMapOffset":[0,0],"diffuseMapTiling":[1,1],"specular":[0.5,0.5,0.5],"shininess":24.1641,"emissive":[0,0,0],"normalMap":null,"normalMapOffset":[0,0],"normalMapTiling":[1,1],"bumpMapFactor":1,"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMapUv":0,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80915302"},"80915303":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"BlueSuitFree01.glb","revision":1,"preload":true,"region":"eu-west-1","meta":null,"data":{},"type":"container","file":{"hash":"74a408bb9a43950ad8883b9995c7a3a1","size":282244,"filename":"BlueSuitFree01.glb","url":"files/assets/80915303/1/BlueSuitFree01.glb"},"i18n":{},"immutable_backup":"e035ed46-dee6-4ebe-976b-d8217186f62f","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80915303"},"80915304":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"SuitGEO01","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":true,"vertices":2930,"triangles":4957,"attributes":{"POSITION":1,"NORMAL":1,"BONEINDICES":1,"BONEWEIGHTS":1,"TEXCOORD_0":1}},"data":{"containerAsset":80915303,"renderIndex":0},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80915304"},"80915305":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"HeadF","revision":1,"preload":true,"region":"eu-west-1","meta":{"meshes":1,"skinned":true,"vertices":1293,"triangles":2394,"attributes":{"POSITION":1,"NORMAL":1,"BONEINDICES":1,"BONEWEIGHTS":1,"TEXCOORD_0":1}},"data":{"containerAsset":80915303,"renderIndex":1},"type":"render","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80915305"},"80915306":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"BlueSuitFree01","revision":1,"preload":true,"region":"eu-west-1","meta":{"containerAsset":80915303},"data":{"entities":{"349f823f-3e44-4162-9ed4-1ec84e75483e":{"enabled":true,"tags":[],"children":["25304268-5782-46b4-8096-5a1f035ab0d0","2cb48962-5b67-4b71-b0b2-afa8d9db58c1"],"position":[0,0,0],"rotation":[0,0,0],"scale":[0.01,0.01,0.01],"resource_id":"349f823f-3e44-4162-9ed4-1ec84e75483e","name":"RootNode","components":{},"parent":null},"25304268-5782-46b4-8096-5a1f035ab0d0":{"enabled":true,"tags":[],"children":["246d9b13-1098-45a7-8efc-e4049fd311a3"],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"25304268-5782-46b4-8096-5a1f035ab0d0","name":"Group","components":{},"parent":"349f823f-3e44-4162-9ed4-1ec84e75483e"},"246d9b13-1098-45a7-8efc-e4049fd311a3":{"enabled":true,"tags":[],"children":["bc364d92-e370-47d9-b20d-98c792aabe97"],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"246d9b13-1098-45a7-8efc-e4049fd311a3","name":"Main","components":{},"parent":"25304268-5782-46b4-8096-5a1f035ab0d0"},"bc364d92-e370-47d9-b20d-98c792aabe97":{"enabled":true,"tags":[],"children":["0eaf1817-47cf-4320-aec4-ec4b5d4890ac"],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"bc364d92-e370-47d9-b20d-98c792aabe97","name":"DeformationSystem","components":{},"parent":"246d9b13-1098-45a7-8efc-e4049fd311a3"},"0eaf1817-47cf-4320-aec4-ec4b5d4890ac":{"enabled":true,"tags":[],"children":["9d5cddc3-0168-44c2-8497-2f1d7c82fdaf","6779d20e-ffd2-477d-80b7-425c0475f1d5","5ad7ed93-07f3-4e3d-8792-fe9e33ed134b"],"position":[-3.44673e-14,95.3786,-1.71933],"rotation":[90,-2.06823,90],"scale":[1,1,1],"resource_id":"0eaf1817-47cf-4320-aec4-ec4b5d4890ac","name":"Root_M","components":{},"parent":"bc364d92-e370-47d9-b20d-98c792aabe97"},"9d5cddc3-0168-44c2-8497-2f1d7c82fdaf":{"enabled":true,"tags":[],"children":["f0f0f0a5-b770-47ca-84c3-6171f02026c4"],"position":[-2.04778,-0.445829,-9.98721],"rotation":[-178.09,6.36596,178.487],"scale":[1,1,1],"resource_id":"9d5cddc3-0168-44c2-8497-2f1d7c82fdaf","name":"Hip_R","components":{},"parent":"0eaf1817-47cf-4320-aec4-ec4b5d4890ac"},"f0f0f0a5-b770-47ca-84c3-6171f02026c4":{"enabled":true,"tags":[],"children":["66a06794-d1eb-420c-8966-d33c47f62243"],"position":[44.9641,2.22045e-15,-6.39488e-14],"rotation":[0,0,-9.83765],"scale":[1,1,1],"resource_id":"f0f0f0a5-b770-47ca-84c3-6171f02026c4","name":"Knee_R","components":{},"parent":"9d5cddc3-0168-44c2-8497-2f1d7c82fdaf"},"66a06794-d1eb-420c-8966-d33c47f62243":{"enabled":true,"tags":[],"children":["4b69f146-6d36-445d-8cf1-b30df1714d26"],"position":[39.9237,1.06581e-14,-7.10543e-14],"rotation":[1.70759,6.38072,10.1826],"scale":[1,1,1],"resource_id":"66a06794-d1eb-420c-8966-d33c47f62243","name":"Ankle_R","components":{},"parent":"f0f0f0a5-b770-47ca-84c3-6171f02026c4"},"4b69f146-6d36-445d-8cf1-b30df1714d26":{"enabled":true,"tags":[],"children":["185884e8-8d7f-4d73-ac4e-1e91a6ba694f"],"position":[7.95222,15.2582,9.23706e-14],"rotation":[-4.68637,1.48242,86.1308],"scale":[1,1,1],"resource_id":"4b69f146-6d36-445d-8cf1-b30df1714d26","name":"Toes_R","components":{},"parent":"66a06794-d1eb-420c-8966-d33c47f62243"},"185884e8-8d7f-4d73-ac4e-1e91a6ba694f":{"enabled":true,"tags":[],"children":[],"position":[6.08362,-1.21014e-14,-3.55271e-14],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"185884e8-8d7f-4d73-ac4e-1e91a6ba694f","name":"ToesEnd_R","components":{},"parent":"4b69f146-6d36-445d-8cf1-b30df1714d26"},"6779d20e-ffd2-477d-80b7-425c0475f1d5":{"enabled":true,"tags":[],"children":["69dafd9b-5183-4dec-97b8-f2290ad74a88"],"position":[17.1229,7.99361e-15,-1.819e-14],"rotation":[0,0,-8.40716],"scale":[1,1,1],"resource_id":"6779d20e-ffd2-477d-80b7-425c0475f1d5","name":"Spine1_M","components":{},"parent":"0eaf1817-47cf-4320-aec4-ec4b5d4890ac"},"69dafd9b-5183-4dec-97b8-f2290ad74a88":{"enabled":true,"tags":[],"children":["5c4b614b-ca99-45d1-9ffd-01ba4dca482d"],"position":[4.57661,-3.01981e-14,-3.85972e-15],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"69dafd9b-5183-4dec-97b8-f2290ad74a88","name":"Spine1Part1_M","components":{},"parent":"6779d20e-ffd2-477d-80b7-425c0475f1d5"},"5c4b614b-ca99-45d1-9ffd-01ba4dca482d":{"enabled":true,"tags":[],"children":["154ec305-b964-4a07-bcf7-75787b883c55"],"position":[4.57661,-3.37508e-14,-4.87593e-15],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"5c4b614b-ca99-45d1-9ffd-01ba4dca482d","name":"Spine1Part2_M","components":{},"parent":"69dafd9b-5183-4dec-97b8-f2290ad74a88"},"154ec305-b964-4a07-bcf7-75787b883c55":{"enabled":true,"tags":[],"children":["2a2b3e82-d0b1-429b-9ac0-a428b9b95d26","a2cbe25c-d987-45d8-afb7-fa723c9e4f65","2fdd9dbe-f57c-4b97-89d9-3c8e05200917"],"position":[4.57661,-1.42109e-14,-1.10591e-14],"rotation":[0,0,8.22027],"scale":[1,1,1],"resource_id":"154ec305-b964-4a07-bcf7-75787b883c55","name":"Chest_M","components":{},"parent":"5c4b614b-ca99-45d1-9ffd-01ba4dca482d"},"2a2b3e82-d0b1-429b-9ac0-a428b9b95d26":{"enabled":true,"tags":[],"children":["70dc6419-fd57-4484-82f9-a76a9febe516"],"position":[15.5097,-1.70398,-8.47709],"rotation":[-40.4095,82.4185,-48.3494],"scale":[1,1,1],"resource_id":"2a2b3e82-d0b1-429b-9ac0-a428b9b95d26","name":"Scapula_R","components":{},"parent":"154ec305-b964-4a07-bcf7-75787b883c55"},"70dc6419-fd57-4484-82f9-a76a9febe516":{"enabled":true,"tags":[],"children":["930b8e63-6492-4681-8c80-c279a115c7ca"],"position":[12.1813,1.06581e-14,2.84217e-13],"rotation":[4.90796e-16,50.6498,6.10091],"scale":[1,1,1],"resource_id":"70dc6419-fd57-4484-82f9-a76a9febe516","name":"Shoulder_R","components":{},"parent":"2a2b3e82-d0b1-429b-9ac0-a428b9b95d26"},"930b8e63-6492-4681-8c80-c279a115c7ca":{"enabled":true,"tags":[],"children":["9d0c19ef-7c47-4889-b6c2-bf67f6676c43"],"position":[27.3069,-7.4607e-14,2.84217e-14],"rotation":[0,0,10.2376],"scale":[1,1,1],"resource_id":"930b8e63-6492-4681-8c80-c279a115c7ca","name":"Elbow_R","components":{},"parent":"70dc6419-fd57-4484-82f9-a76a9febe516"},"9d0c19ef-7c47-4889-b6c2-bf67f6676c43":{"enabled":true,"tags":[],"children":["1511ab22-1978-4397-8ce9-84d25d969039","8dad2df0-2a5c-4d29-ac1d-0da768c0af1a","9bb4ad61-8b98-40b3-8f03-471e717aaa10","0ab2d415-16f1-433c-839c-f5dc8a12ece6"],"position":[25.3891,-5.68434e-14,1.13687e-13],"rotation":[-13.4593,12.3893,9.94431],"scale":[1,1,1],"resource_id":"9d0c19ef-7c47-4889-b6c2-bf67f6676c43","name":"Wrist_R","components":{},"parent":"930b8e63-6492-4681-8c80-c279a115c7ca"},"1511ab22-1978-4397-8ce9-84d25d969039":{"enabled":true,"tags":[],"children":["a74c353f-c707-4245-a5e0-211c193e2f82"],"position":[10.7004,-4.32987e-14,4.26326e-14],"rotation":[16.6631,19.9882,4.62472],"scale":[1,1,1],"resource_id":"1511ab22-1978-4397-8ce9-84d25d969039","name":"MiddleFinger1_R","components":{},"parent":"9d0c19ef-7c47-4889-b6c2-bf67f6676c43"},"a74c353f-c707-4245-a5e0-211c193e2f82":{"enabled":true,"tags":[],"children":["8d5f729b-c6b8-4496-ad31-162dbb88a4b0"],"position":[4.89337,2.84217e-14,-8.52651e-14],"rotation":[0.0389883,21.5463,0.0131999],"scale":[1,1,1],"resource_id":"a74c353f-c707-4245-a5e0-211c193e2f82","name":"MiddleFinger2_R","components":{},"parent":"1511ab22-1978-4397-8ce9-84d25d969039"},"8d5f729b-c6b8-4496-ad31-162dbb88a4b0":{"enabled":true,"tags":[],"children":["5170b049-30a6-4290-8fc9-71f0369044fb"],"position":[2.69621,8.17124e-14,2.13163e-13],"rotation":[0.054418,11.2242,0.0118381],"scale":[1,1,1],"resource_id":"8d5f729b-c6b8-4496-ad31-162dbb88a4b0","name":"MiddleFinger3_R","components":{},"parent":"a74c353f-c707-4245-a5e0-211c193e2f82"},"5170b049-30a6-4290-8fc9-71f0369044fb":{"enabled":true,"tags":[],"children":[],"position":[2.71607,-1.06581e-14,-1.7053e-13],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"5170b049-30a6-4290-8fc9-71f0369044fb","name":"MiddleFinger4_R","components":{},"parent":"8d5f729b-c6b8-4496-ad31-162dbb88a4b0"},"8dad2df0-2a5c-4d29-ac1d-0da768c0af1a":{"enabled":true,"tags":[],"children":["32454a3b-dc95-4603-8275-9bfa4d3656a5"],"position":[3.10674,2.31021,-0.483349],"rotation":[-50.0838,12.4673,45.8555],"scale":[1,1,1],"resource_id":"8dad2df0-2a5c-4d29-ac1d-0da768c0af1a","name":"ThumbFinger1_R","components":{},"parent":"9d0c19ef-7c47-4889-b6c2-bf67f6676c43"},"32454a3b-dc95-4603-8275-9bfa4d3656a5":{"enabled":true,"tags":[],"children":["d25c60b0-e9ec-4946-b309-52cb2d7bb6ce"],"position":[4.34949,-1.42109e-14,-1.42109e-13],"rotation":[0,4.37155,0],"scale":[1,1,1],"resource_id":"32454a3b-dc95-4603-8275-9bfa4d3656a5","name":"ThumbFinger2_R","components":{},"parent":"8dad2df0-2a5c-4d29-ac1d-0da768c0af1a"},"d25c60b0-e9ec-4946-b309-52cb2d7bb6ce":{"enabled":true,"tags":[],"children":["66c5cf80-593e-43a7-9985-262e8c3943db"],"position":[3.1758,-1.42109e-13,-8.52651e-14],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"d25c60b0-e9ec-4946-b309-52cb2d7bb6ce","name":"ThumbFinger3_R","components":{},"parent":"32454a3b-dc95-4603-8275-9bfa4d3656a5"},"66c5cf80-593e-43a7-9985-262e8c3943db":{"enabled":true,"tags":[],"children":[],"position":[2.76567,-0.00000358292,-0.00000228963],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"66c5cf80-593e-43a7-9985-262e8c3943db","name":"ThumbFinger4_R","components":{},"parent":"d25c60b0-e9ec-4946-b309-52cb2d7bb6ce"},"9bb4ad61-8b98-40b3-8f03-471e717aaa10":{"enabled":true,"tags":[],"children":["948f7e2a-f7ac-43db-9f13-c4a211931cb8"],"position":[10.4145,2.09944,0.18772],"rotation":[12.8626,11.9827,15.7219],"scale":[1,1,1],"resource_id":"9bb4ad61-8b98-40b3-8f03-471e717aaa10","name":"IndexFinger1_R","components":{},"parent":"9d0c19ef-7c47-4889-b6c2-bf67f6676c43"},"948f7e2a-f7ac-43db-9f13-c4a211931cb8":{"enabled":true,"tags":[],"children":["62dd3059-d198-4a25-a948-58aa9ad6de9a"],"position":[4.25091,4.26326e-14,2.84217e-14],"rotation":[0.0303742,19.975,-0.00270507],"scale":[1,1,1],"resource_id":"948f7e2a-f7ac-43db-9f13-c4a211931cb8","name":"IndexFinger2_R","components":{},"parent":"9bb4ad61-8b98-40b3-8f03-471e717aaa10"},"62dd3059-d198-4a25-a948-58aa9ad6de9a":{"enabled":true,"tags":[],"children":["663ef460-551d-4fdf-9f9f-6d80af049001"],"position":[2.52958,-2.70006e-13,-9.9476e-14],"rotation":[-1.73917,20.228,-0.667874],"scale":[1,1,1],"resource_id":"62dd3059-d198-4a25-a948-58aa9ad6de9a","name":"IndexFinger3_R","components":{},"parent":"948f7e2a-f7ac-43db-9f13-c4a211931cb8"},"663ef460-551d-4fdf-9f9f-6d80af049001":{"enabled":true,"tags":[],"children":[],"position":[2.13039,-8.52651e-14,1.63425e-13],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"663ef460-551d-4fdf-9f9f-6d80af049001","name":"IndexFinger4_R","components":{},"parent":"62dd3059-d198-4a25-a948-58aa9ad6de9a"},"0ab2d415-16f1-433c-839c-f5dc8a12ece6":{"enabled":true,"tags":[],"children":["5b405fed-76b0-4a86-a7be-3631dfb22d64","44ba2028-08bb-471b-b01d-bfebdff376c2"],"position":[1.94157,-1.04512,0.00628707],"rotation":[0.0354528,2.78555,0.729473],"scale":[1,1,1],"resource_id":"0ab2d415-16f1-433c-839c-f5dc8a12ece6","name":"Cup_R","components":{},"parent":"9d0c19ef-7c47-4889-b6c2-bf67f6676c43"},"5b405fed-76b0-4a86-a7be-3631dfb22d64":{"enabled":true,"tags":[],"children":["8c45383b-77c5-4d41-9465-4aea58643c8b"],"position":[8.45064,-0.933787,-0.419414],"rotation":[17.5479,25.7488,-3.43213],"scale":[1,1,1],"resource_id":"5b405fed-76b0-4a86-a7be-3631dfb22d64","name":"RingFinger1_R","components":{},"parent":"0ab2d415-16f1-433c-839c-f5dc8a12ece6"},"8c45383b-77c5-4d41-9465-4aea58643c8b":{"enabled":true,"tags":[],"children":["acfbb9a3-a794-4d6d-ba44-423df348662b"],"position":[4.34265,-8.88178e-14,1.27898e-13],"rotation":[-0.290359,10.8685,-0.0563096],"scale":[1,1,1],"resource_id":"8c45383b-77c5-4d41-9465-4aea58643c8b","name":"RingFinger2_R","components":{},"parent":"5b405fed-76b0-4a86-a7be-3631dfb22d64"},"acfbb9a3-a794-4d6d-ba44-423df348662b":{"enabled":true,"tags":[],"children":["78e35c79-f4b2-4b45-a8bb-ce6232b10926"],"position":[2.67256,-7.10543e-15,7.10543e-14],"rotation":[0.589289,16.0378,0.170807],"scale":[1,1,1],"resource_id":"acfbb9a3-a794-4d6d-ba44-423df348662b","name":"RingFinger3_R","components":{},"parent":"8c45383b-77c5-4d41-9465-4aea58643c8b"},"78e35c79-f4b2-4b45-a8bb-ce6232b10926":{"enabled":true,"tags":[],"children":[],"position":[2.53469,-7.10543e-14,-7.10543e-14],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"78e35c79-f4b2-4b45-a8bb-ce6232b10926","name":"RingFinger4_R","components":{},"parent":"acfbb9a3-a794-4d6d-ba44-423df348662b"},"44ba2028-08bb-471b-b01d-bfebdff376c2":{"enabled":true,"tags":[],"children":["75173193-4148-4d13-8f87-3ed747edba07"],"position":[7.91143,-2.6839,-1.31764],"rotation":[15.0094,29.8961,-14.1535],"scale":[1,1,1],"resource_id":"44ba2028-08bb-471b-b01d-bfebdff376c2","name":"PinkyFinger1_R","components":{},"parent":"0ab2d415-16f1-433c-839c-f5dc8a12ece6"},"75173193-4148-4d13-8f87-3ed747edba07":{"enabled":true,"tags":[],"children":["0bb5ecac-fdd5-4206-9727-58742015c918"],"position":[3.58146,-3.4639e-14,-9.9476e-14],"rotation":[0.279928,3.28062,0.126074],"scale":[1,1,1],"resource_id":"75173193-4148-4d13-8f87-3ed747edba07","name":"PinkyFinger2_R","components":{},"parent":"44ba2028-08bb-471b-b01d-bfebdff376c2"},"0bb5ecac-fdd5-4206-9727-58742015c918":{"enabled":true,"tags":[],"children":["d1d22996-f6cf-46a7-a1da-e1f21e206e4f"],"position":[1.91524,5.32907e-15,4.68958e-13],"rotation":[2.18092,11.1041,0.396434],"scale":[1,1,1],"resource_id":"0bb5ecac-fdd5-4206-9727-58742015c918","name":"PinkyFinger3_R","components":{},"parent":"75173193-4148-4d13-8f87-3ed747edba07"},"d1d22996-f6cf-46a7-a1da-e1f21e206e4f":{"enabled":true,"tags":[],"children":[],"position":[1.72662,-6.39488e-14,-1.42109e-13],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"d1d22996-f6cf-46a7-a1da-e1f21e206e4f","name":"PinkyFinger4_R","components":{},"parent":"0bb5ecac-fdd5-4206-9727-58742015c918"},"a2cbe25c-d987-45d8-afb7-fa723c9e4f65":{"enabled":true,"tags":[],"children":["0ca9cdcf-2466-4c04-80a4-ccf74d859d95"],"position":[23.2872,1.95399e-14,2.64984e-14],"rotation":[0,0,19.0927],"scale":[1,1,1],"resource_id":"a2cbe25c-d987-45d8-afb7-fa723c9e4f65","name":"Neck_M","components":{},"parent":"154ec305-b964-4a07-bcf7-75787b883c55"},"0ca9cdcf-2466-4c04-80a4-ccf74d859d95":{"enabled":true,"tags":[],"children":["fedb1ab2-2c0a-4158-aa3d-6aea2debcc56","133a3599-deb2-4f93-bb79-2fdaea1f53b5","54de4e11-2768-477f-8a66-d26f13fd0fe6","4003c198-1874-42dc-83a4-56b8b704eff6"],"position":[9.92291,2.77112e-13,-3.53251e-14],"rotation":[0,0,-15.3283],"scale":[1,1,1],"resource_id":"0ca9cdcf-2466-4c04-80a4-ccf74d859d95","name":"Head_M","components":{},"parent":"a2cbe25c-d987-45d8-afb7-fa723c9e4f65"},"fedb1ab2-2c0a-4158-aa3d-6aea2debcc56":{"enabled":true,"tags":[],"children":["4052b35f-20d3-4bf7-a7bb-d9afae946c44"],"position":[8.45394,6.53702,-3.17524],"rotation":[0,0,84.3542],"scale":[1,1,1],"resource_id":"fedb1ab2-2c0a-4158-aa3d-6aea2debcc56","name":"Eye_R","components":{},"parent":"0ca9cdcf-2466-4c04-80a4-ccf74d859d95"},"4052b35f-20d3-4bf7-a7bb-d9afae946c44":{"enabled":true,"tags":[],"children":[],"position":[1.65817,-3.69482e-13,3.5083e-14],"rotation":[15.9437,-0.260386,-0.0181438],"scale":[1,1,1],"resource_id":"4052b35f-20d3-4bf7-a7bb-d9afae946c44","name":"EyeEnd_R","components":{},"parent":"fedb1ab2-2c0a-4158-aa3d-6aea2debcc56"},"133a3599-deb2-4f93-bb79-2fdaea1f53b5":{"enabled":true,"tags":[],"children":["0a828f87-deb9-497b-9af5-540b60eafff1"],"position":[0.712399,0.792158,-9.93169e-15],"rotation":[0,0,114.083],"scale":[1,1,1],"resource_id":"133a3599-deb2-4f93-bb79-2fdaea1f53b5","name":"Jaw_M","components":{},"parent":"0ca9cdcf-2466-4c04-80a4-ccf74d859d95"},"0a828f87-deb9-497b-9af5-540b60eafff1":{"enabled":true,"tags":[],"children":[],"position":[11.1906,-1.98952e-13,-2.18793e-14],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"0a828f87-deb9-497b-9af5-540b60eafff1","name":"JawEnd_M","components":{},"parent":"133a3599-deb2-4f93-bb79-2fdaea1f53b5"},"54de4e11-2768-477f-8a66-d26f13fd0fe6":{"enabled":true,"tags":[],"children":[],"position":[21.1224,-7.10543e-15,-3.19636e-14],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"54de4e11-2768-477f-8a66-d26f13fd0fe6","name":"HeadEnd_M","components":{},"parent":"0ca9cdcf-2466-4c04-80a4-ccf74d859d95"},"4003c198-1874-42dc-83a4-56b8b704eff6":{"enabled":true,"tags":[],"children":["27584000-9400-4126-a17c-845a9f9f7605"],"position":[8.45394,6.53702,3.17524],"rotation":[0,0,84.3542],"scale":[1,1,1],"resource_id":"4003c198-1874-42dc-83a4-56b8b704eff6","name":"Eye_L","components":{},"parent":"0ca9cdcf-2466-4c04-80a4-ccf74d859d95"},"27584000-9400-4126-a17c-845a9f9f7605":{"enabled":true,"tags":[],"children":[],"position":[1.65817,-3.97904e-13,-4.04121e-14],"rotation":[-15.9437,0.260386,-0.0181438],"scale":[1,1,1],"resource_id":"27584000-9400-4126-a17c-845a9f9f7605","name":"EyeEnd_L","components":{},"parent":"4003c198-1874-42dc-83a4-56b8b704eff6"},"2fdd9dbe-f57c-4b97-89d9-3c8e05200917":{"enabled":true,"tags":[],"children":["ef7ab9d6-07e7-4e0c-97ee-66b5e94f6b21"],"position":[15.5097,-1.70398,8.47709],"rotation":[-40.4095,82.4185,131.651],"scale":[1,1,1],"resource_id":"2fdd9dbe-f57c-4b97-89d9-3c8e05200917","name":"Scapula_L","components":{},"parent":"154ec305-b964-4a07-bcf7-75787b883c55"},"ef7ab9d6-07e7-4e0c-97ee-66b5e94f6b21":{"enabled":true,"tags":[],"children":["b05cb928-fd7e-48cd-9e18-afc07c46fba3"],"position":[-12.1813,-3.01981e-14,-2.84217e-13],"rotation":[1.09927e-15,50.6498,6.10091],"scale":[1,1,1],"resource_id":"ef7ab9d6-07e7-4e0c-97ee-66b5e94f6b21","name":"Shoulder_L","components":{},"parent":"2fdd9dbe-f57c-4b97-89d9-3c8e05200917"},"b05cb928-fd7e-48cd-9e18-afc07c46fba3":{"enabled":true,"tags":[],"children":["4e2fd5fc-6dbe-420a-ab31-fb287e31c726"],"position":[-27.3069,-2.84217e-14,1.42109e-13],"rotation":[0,0,10.2376],"scale":[1,1,1],"resource_id":"b05cb928-fd7e-48cd-9e18-afc07c46fba3","name":"Elbow_L","components":{},"parent":"ef7ab9d6-07e7-4e0c-97ee-66b5e94f6b21"},"4e2fd5fc-6dbe-420a-ab31-fb287e31c726":{"enabled":true,"tags":[],"children":["25ebeb00-d02d-4d7a-b09a-1c773f157f56","25037cf1-bb2d-45f1-962a-0ccae3e7f47d","6c23aa87-ff9a-45da-83c0-e56a98fe765d","120cf609-3d9a-4068-9c11-d7b7feb1abdc"],"position":[-25.3891,-2.84217e-14,-2.41585e-13],"rotation":[-13.4593,12.3893,9.94431],"scale":[1,1,1],"resource_id":"4e2fd5fc-6dbe-420a-ab31-fb287e31c726","name":"Wrist_L","components":{},"parent":"b05cb928-fd7e-48cd-9e18-afc07c46fba3"},"25ebeb00-d02d-4d7a-b09a-1c773f157f56":{"enabled":true,"tags":[],"children":["1ddeca7a-7d8b-4993-a05c-5f47a62fb541"],"position":[-10.7004,3.33067e-14,0],"rotation":[16.6631,19.9882,4.62472],"scale":[1,1,1],"resource_id":"25ebeb00-d02d-4d7a-b09a-1c773f157f56","name":"MiddleFinger1_L","components":{},"parent":"4e2fd5fc-6dbe-420a-ab31-fb287e31c726"},"1ddeca7a-7d8b-4993-a05c-5f47a62fb541":{"enabled":true,"tags":[],"children":["aba2941b-f3e0-4469-8126-2a5e9052a7d8"],"position":[-4.89337,-8.52651e-14,1.13687e-13],"rotation":[0.0389883,21.5463,0.0131999],"scale":[1,1,1],"resource_id":"1ddeca7a-7d8b-4993-a05c-5f47a62fb541","name":"MiddleFinger2_L","components":{},"parent":"25ebeb00-d02d-4d7a-b09a-1c773f157f56"},"aba2941b-f3e0-4469-8126-2a5e9052a7d8":{"enabled":true,"tags":[],"children":["44e89eeb-26ac-4f17-96dc-eb7925aa0576"],"position":[-2.69621,-1.77636e-14,-9.23706e-14],"rotation":[0.054418,11.2242,0.0118381],"scale":[1,1,1],"resource_id":"aba2941b-f3e0-4469-8126-2a5e9052a7d8","name":"MiddleFinger3_L","components":{},"parent":"1ddeca7a-7d8b-4993-a05c-5f47a62fb541"},"44e89eeb-26ac-4f17-96dc-eb7925aa0576":{"enabled":true,"tags":[],"children":[],"position":[-2.71607,3.55271e-15,1.27898e-13],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"44e89eeb-26ac-4f17-96dc-eb7925aa0576","name":"MiddleFinger4_L","components":{},"parent":"aba2941b-f3e0-4469-8126-2a5e9052a7d8"},"25037cf1-bb2d-45f1-962a-0ccae3e7f47d":{"enabled":true,"tags":[],"children":["86903bbc-4a42-44a5-a4fb-9f94ebc80ff5"],"position":[-3.10674,-2.31021,0.483349],"rotation":[-50.0838,12.4673,45.8555],"scale":[1,1,1],"resource_id":"25037cf1-bb2d-45f1-962a-0ccae3e7f47d","name":"ThumbFinger1_L","components":{},"parent":"4e2fd5fc-6dbe-420a-ab31-fb287e31c726"},"86903bbc-4a42-44a5-a4fb-9f94ebc80ff5":{"enabled":true,"tags":[],"children":["4a0d4912-c2f7-4a8a-8d15-c21b278c6ba8"],"position":[-4.34949,-1.56319e-13,1.7053e-13],"rotation":[0,4.37155,0],"scale":[1,1,1],"resource_id":"86903bbc-4a42-44a5-a4fb-9f94ebc80ff5","name":"ThumbFinger2_L","components":{},"parent":"25037cf1-bb2d-45f1-962a-0ccae3e7f47d"},"4a0d4912-c2f7-4a8a-8d15-c21b278c6ba8":{"enabled":true,"tags":[],"children":["7cdc4abd-7de8-4aab-bbaf-5287b47baea9"],"position":[-3.1758,3.19744e-13,1.13687e-13],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"4a0d4912-c2f7-4a8a-8d15-c21b278c6ba8","name":"ThumbFinger3_L","components":{},"parent":"86903bbc-4a42-44a5-a4fb-9f94ebc80ff5"},"7cdc4abd-7de8-4aab-bbaf-5287b47baea9":{"enabled":true,"tags":[],"children":[],"position":[-2.76567,0.00000358292,0.00000228963],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"7cdc4abd-7de8-4aab-bbaf-5287b47baea9","name":"ThumbFinger4_L","components":{},"parent":"4a0d4912-c2f7-4a8a-8d15-c21b278c6ba8"},"6c23aa87-ff9a-45da-83c0-e56a98fe765d":{"enabled":true,"tags":[],"children":["18966956-e888-4707-872f-7bcad5dd4975"],"position":[-10.4145,-2.09944,-0.18772],"rotation":[12.8626,11.9827,15.7219],"scale":[1,1,1],"resource_id":"6c23aa87-ff9a-45da-83c0-e56a98fe765d","name":"IndexFinger1_L","components":{},"parent":"4e2fd5fc-6dbe-420a-ab31-fb287e31c726"},"18966956-e888-4707-872f-7bcad5dd4975":{"enabled":true,"tags":[],"children":["e155d26f-a44d-4065-b856-3c1f7655dd45"],"position":[-4.25091,4.9738e-14,9.9476e-14],"rotation":[0.0303742,19.975,-0.00270507],"scale":[1,1,1],"resource_id":"18966956-e888-4707-872f-7bcad5dd4975","name":"IndexFinger2_L","components":{},"parent":"6c23aa87-ff9a-45da-83c0-e56a98fe765d"},"e155d26f-a44d-4065-b856-3c1f7655dd45":{"enabled":true,"tags":[],"children":["19d67abf-6da7-4668-bb56-63e362a0abb8"],"position":[-2.52958,2.70006e-13,1.27898e-13],"rotation":[-1.73917,20.228,-0.667874],"scale":[1,1,1],"resource_id":"e155d26f-a44d-4065-b856-3c1f7655dd45","name":"IndexFinger3_L","components":{},"parent":"18966956-e888-4707-872f-7bcad5dd4975"},"19d67abf-6da7-4668-bb56-63e362a0abb8":{"enabled":true,"tags":[],"children":[],"position":[-2.13039,3.55271e-15,-2.13163e-13],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"19d67abf-6da7-4668-bb56-63e362a0abb8","name":"IndexFinger4_L","components":{},"parent":"e155d26f-a44d-4065-b856-3c1f7655dd45"},"120cf609-3d9a-4068-9c11-d7b7feb1abdc":{"enabled":true,"tags":[],"children":["b161ff11-86c3-4e00-bb3c-bd09ea8a4bf8","0cae0b66-218e-4636-95b8-cf3cc24c14c5"],"position":[-1.94157,1.04512,-0.00628707],"rotation":[0.0354528,2.78555,0.729473],"scale":[1,1,1],"resource_id":"120cf609-3d9a-4068-9c11-d7b7feb1abdc","name":"Cup_L","components":{},"parent":"4e2fd5fc-6dbe-420a-ab31-fb287e31c726"},"b161ff11-86c3-4e00-bb3c-bd09ea8a4bf8":{"enabled":true,"tags":[],"children":["578ebeda-4f81-42eb-8220-e276bf55e73b"],"position":[-8.45064,0.933787,0.419414],"rotation":[17.5479,25.7488,-3.43213],"scale":[1,1,1],"resource_id":"b161ff11-86c3-4e00-bb3c-bd09ea8a4bf8","name":"RingFinger1_L","components":{},"parent":"120cf609-3d9a-4068-9c11-d7b7feb1abdc"},"578ebeda-4f81-42eb-8220-e276bf55e73b":{"enabled":true,"tags":[],"children":["84c775d9-46f4-480c-bfa8-ebac01660934"],"position":[-4.34265,6.03961e-14,7.10543e-14],"rotation":[-0.290359,10.8685,-0.0563096],"scale":[1,1,1],"resource_id":"578ebeda-4f81-42eb-8220-e276bf55e73b","name":"RingFinger2_L","components":{},"parent":"b161ff11-86c3-4e00-bb3c-bd09ea8a4bf8"},"84c775d9-46f4-480c-bfa8-ebac01660934":{"enabled":true,"tags":[],"children":["fcda9764-a9e6-4790-b7c8-2275e8fdce3a"],"position":[-2.67256,3.55271e-15,-9.23706e-14],"rotation":[0.589289,16.0378,0.170807],"scale":[1,1,1],"resource_id":"84c775d9-46f4-480c-bfa8-ebac01660934","name":"RingFinger3_L","components":{},"parent":"578ebeda-4f81-42eb-8220-e276bf55e73b"},"fcda9764-a9e6-4790-b7c8-2275e8fdce3a":{"enabled":true,"tags":[],"children":[],"position":[-2.53469,4.61853e-14,8.88178e-14],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"fcda9764-a9e6-4790-b7c8-2275e8fdce3a","name":"RingFinger4_L","components":{},"parent":"84c775d9-46f4-480c-bfa8-ebac01660934"},"0cae0b66-218e-4636-95b8-cf3cc24c14c5":{"enabled":true,"tags":[],"children":["f1dd3f38-f2a7-4e2d-8437-5c8968e56595"],"position":[-7.91143,2.6839,1.31764],"rotation":[15.0094,29.8961,-14.1535],"scale":[1,1,1],"resource_id":"0cae0b66-218e-4636-95b8-cf3cc24c14c5","name":"PinkyFinger1_L","components":{},"parent":"120cf609-3d9a-4068-9c11-d7b7feb1abdc"},"f1dd3f38-f2a7-4e2d-8437-5c8968e56595":{"enabled":true,"tags":[],"children":["648f62bc-f587-4a1a-944c-663cc286ba53"],"position":[-3.58146,1.02141e-14,1.27898e-13],"rotation":[0.279928,3.28062,0.126074],"scale":[1,1,1],"resource_id":"f1dd3f38-f2a7-4e2d-8437-5c8968e56595","name":"PinkyFinger2_L","components":{},"parent":"0cae0b66-218e-4636-95b8-cf3cc24c14c5"},"648f62bc-f587-4a1a-944c-663cc286ba53":{"enabled":true,"tags":[],"children":["5ac65a16-94b0-478a-b324-791b9c77ee5f"],"position":[-1.91524,8.43769e-15,-5.11591e-13],"rotation":[2.18092,11.1041,0.396434],"scale":[1,1,1],"resource_id":"648f62bc-f587-4a1a-944c-663cc286ba53","name":"PinkyFinger3_L","components":{},"parent":"f1dd3f38-f2a7-4e2d-8437-5c8968e56595"},"5ac65a16-94b0-478a-b324-791b9c77ee5f":{"enabled":true,"tags":[],"children":[],"position":[-1.72662,8.52651e-14,2.55795e-13],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"5ac65a16-94b0-478a-b324-791b9c77ee5f","name":"PinkyFinger4_L","components":{},"parent":"648f62bc-f587-4a1a-944c-663cc286ba53"},"5ad7ed93-07f3-4e3d-8792-fe9e33ed134b":{"enabled":true,"tags":[],"children":["8c176529-ae92-4185-af03-cf980598f550"],"position":[-2.04778,-0.445829,9.98721],"rotation":[-178.09,6.36596,-1.51345],"scale":[1,1,1],"resource_id":"5ad7ed93-07f3-4e3d-8792-fe9e33ed134b","name":"Hip_L","components":{},"parent":"0eaf1817-47cf-4320-aec4-ec4b5d4890ac"},"8c176529-ae92-4185-af03-cf980598f550":{"enabled":true,"tags":[],"children":["2d05dab9-2167-4ce6-85d3-0b2127ab677d"],"position":[-44.9641,-3.55271e-15,1.06581e-13],"rotation":[0,0,-9.83765],"scale":[1,1,1],"resource_id":"8c176529-ae92-4185-af03-cf980598f550","name":"Knee_L","components":{},"parent":"5ad7ed93-07f3-4e3d-8792-fe9e33ed134b"},"2d05dab9-2167-4ce6-85d3-0b2127ab677d":{"enabled":true,"tags":[],"children":["b6911b20-b769-488a-95f4-b6c960fb41f3"],"position":[-39.9237,8.34888e-14,7.10543e-14],"rotation":[1.70759,6.38072,10.1826],"scale":[1,1,1],"resource_id":"2d05dab9-2167-4ce6-85d3-0b2127ab677d","name":"Ankle_L","components":{},"parent":"8c176529-ae92-4185-af03-cf980598f550"},"b6911b20-b769-488a-95f4-b6c960fb41f3":{"enabled":true,"tags":[],"children":["36ce698b-7be6-4bec-9080-01be8e125d22"],"position":[-7.95222,-15.2582,-6.75016e-14],"rotation":[-4.68637,1.48242,86.1308],"scale":[1,1,1],"resource_id":"b6911b20-b769-488a-95f4-b6c960fb41f3","name":"Toes_L","components":{},"parent":"2d05dab9-2167-4ce6-85d3-0b2127ab677d"},"36ce698b-7be6-4bec-9080-01be8e125d22":{"enabled":true,"tags":[],"children":[],"position":[-6.08362,2.11497e-14,2.13163e-14],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"36ce698b-7be6-4bec-9080-01be8e125d22","name":"ToesEnd_L","components":{},"parent":"b6911b20-b769-488a-95f4-b6c960fb41f3"},"2cb48962-5b67-4b71-b0b2-afa8d9db58c1":{"enabled":true,"tags":[],"children":["5b0ab82e-f081-47c5-98bc-75d547e77476","ce472413-e97f-4cff-92be-695f07c7bedc"],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"2cb48962-5b67-4b71-b0b2-afa8d9db58c1","name":"Geo","components":{},"parent":"349f823f-3e44-4162-9ed4-1ec84e75483e"},"5b0ab82e-f081-47c5-98bc-75d547e77476":{"enabled":true,"tags":[],"children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"5b0ab82e-f081-47c5-98bc-75d547e77476","name":"SuitGEO01","components":{"render":{"enabled":true,"type":"asset","asset":80915304,"materialAssets":[80915301],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":"0eaf1817-47cf-4320-aec4-ec4b5d4890ac"}},"parent":"2cb48962-5b67-4b71-b0b2-afa8d9db58c1"},"ce472413-e97f-4cff-92be-695f07c7bedc":{"enabled":true,"tags":[],"children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"ce472413-e97f-4cff-92be-695f07c7bedc","name":"HeadF","components":{"render":{"enabled":true,"type":"asset","asset":80915305,"materialAssets":[80915302],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":"0eaf1817-47cf-4320-aec4-ec4b5d4890ac"}},"parent":"2cb48962-5b67-4b71-b0b2-afa8d9db58c1"}}},"type":"template","file":null,"i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80915306"},"80915351":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"SuitMAT_AlbedoTransparency.jpeg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":2048,"height":2048,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"SuitMAT_AlbedoTransparency.jpeg","hash":"9daac0d54c547cfb2f7302d96b8d3237","size":758293,"variants":{},"url":"files/assets/80915351/1/SuitMAT_AlbedoTransparency.jpeg"},"region":"eu-west-1","i18n":{},"immutable_backup":"c472f8ed-068a-42b7-ba3d-23db7fa24fed","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80915351"},"80915363":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"HeadF_MAT_AlbedoTransparency.jpeg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":2048,"height":2048,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"HeadF_MAT_AlbedoTransparency.jpeg","hash":"a3d0992364ed16e1a4f78eabd61a2479","size":541517,"variants":{},"url":"files/assets/80915363/1/HeadF_MAT_AlbedoTransparency.jpeg"},"region":"eu-west-1","i18n":{},"immutable_backup":"d3ae9623-c9d5-4632-b4ee-f3e3cfc0fb06","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"80915363"},"82069915":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Rug_N1.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":true,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":512,"height":512,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"Rug_N1.png","size":704035,"hash":"bae0abb5f9efedd328f95b683f46ae78","variants":{},"url":"files/assets/82069915/1/Rug_N1.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"de986194-3370-4e38-a97e-699b423c021f","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"82069915"},"82175600":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"button-logic.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"buttonLogic":{"attributesOrder":["textEntity","description","model"],"attributes":{"textEntity":{"type":"entity","description":"The entity that we want to update when the button is clicked"},"description":{"type":"string"},"model":{"type":"entity"}}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"1a0083ec-735a-4f63-be31-7a5bde6999d5","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"82175600"},"82307731":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"buttonLogic2.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"buttonLogic2":{"attributesOrder":["textEntity","description","model"],"attributes":{"textEntity":{"type":"entity","description":"The entity that we want to update when the button is clicked"},"description":{"type":"string"},"model":{"type":"entity"}}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"617368ef-b692-4114-9f45-df32d07f36a5","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"82307731"},"85570528":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"1_white bricks texture-seamless.jpg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":1000,"height":1000,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"1_white bricks texture-seamless.jpg","size":448379,"hash":"2584eda7e31a4ad4c3ca18b389d44555","variants":{},"url":"files/assets/85570528/1/1_white%20bricks%20texture-seamless.jpg"},"region":"eu-west-1","i18n":{},"immutable_backup":"c14dd110-b373-4b36-9aec-2220fdb962f1","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"85570528"},"85570629":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"25_white bricks texture-seamless.jpg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":1250,"height":1250,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"25_white bricks texture-seamless.jpg","size":508599,"hash":"2376024584e99abdc1e91d611ecd1e9b","variants":{},"url":"files/assets/85570629/1/25_white%20bricks%20texture-seamless.jpg"},"region":"eu-west-1","i18n":{},"immutable_backup":"2ac8e7ee-731b-4aef-9239-725c5ed254e3","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"85570629"},"85572337":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"html-ui.html","revision":1,"preload":true,"exclude":false,"meta":null,"data":null,"type":"html","file":{"filename":"html-ui.html","size":178,"hash":"b577517df682d6988e635f2120b98223","url":"files/assets/85572337/1/html-ui.html"},"region":"eu-west-1","i18n":{},"immutable_backup":"6d9e6782-38b4-4850-aea5-78ccf55e1f99","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"85572337"},"85572402":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"css-ui.css","revision":1,"preload":true,"exclude":false,"meta":null,"data":null,"type":"css","file":{"filename":"css-ui.css","size":1339,"hash":"52f42e130516dd45d42e627df98cbd6c","url":"files/assets/85572402/1/css-ui.css"},"region":"eu-west-1","i18n":{},"immutable_backup":"73d7be2d-d2df-4fd8-a443-38047430210a","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"85572402"},"85572451":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"RoomWidthSlider.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"roomWidthSlider":{"attributesOrder":["html","css"],"attributes":{"html":{"type":"asset","assetType":"html","title":"HTML Asset"},"css":{"type":"asset","assetType":"css","title":"CSS Asset"}}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"9604cbd0-1e1c-4c82-b6d4-3e30aa33a3b9","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"85572451"},"86059723":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Button","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0.8196078431372549,0.8196078431372549,0.8196078431372549],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86059723"},"86079364":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"sliderHorizontal.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"sliderHorizontal":{"attributesOrder":["Selected","SliderValue","MinLimit","MaxLimit","RoomWidth","RoomWidthText","MinLimitOffset","MaxLimitOffset"],"attributes":{"Selected":{"type":"number","default":0},"MinLimit":{"type":"entity"},"MaxLimit":{"type":"entity"},"MinLimitOffset":{"type":"number","default":0},"MaxLimitOffset":{"type":"number","default":0},"SliderValue":{"type":"number","default":0},"RoomWidth":{"type":"entity"},"RoomWidthText":{"type":"entity"}}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"16e3ac0c-5df9-46c9-a6b0-7bdd99f9f6a8","same_as_backup":0,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86079364"},"86144986":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"sliderVertical.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"sliderVertical":{"attributesOrder":["Selected","SliderValue","MinLimit","MaxLimit","Ceiling","CeilingHeightText","MinLimitOffset","MaxLimitOffset","RaiseFactor"],"attributes":{"Selected":{"type":"number","default":0},"SliderValue":{"type":"number","default":0},"MinLimit":{"type":"entity"},"MaxLimit":{"type":"entity"},"MinLimitOffset":{"type":"number","default":0},"MaxLimitOffset":{"type":"number","default":0},"Ceiling":{"type":"entity"},"RaiseFactor":{"type":"number","default":1},"CeilingHeightText":{"type":"entity"}}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"13806641-74ab-4477-8c07-bae27a7d5b4c","same_as_backup":0,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86144986"},"86147006":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"scaleSlider.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"scaleSlider":{"attributesOrder":["Selected","SliderValue","MinLimit","MaxLimit","Model","ModelHeightText","MinLimitOffset","MaxLimitOffset","RaiseFactor"],"attributes":{"Selected":{"type":"number","default":0},"SliderValue":{"type":"number","default":0},"MinLimit":{"type":"entity"},"MaxLimit":{"type":"entity"},"MinLimitOffset":{"type":"number","default":0},"MaxLimitOffset":{"type":"number","default":0},"RaiseFactor":{"type":"number","default":1},"Model":{"type":"entity"},"ModelHeightText":{"type":"entity"}}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"immutable_backup":"132365b1-5ee6-4f50-95d2-f57cd6866ba4","same_as_backup":0,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86147006"},"86173566":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"SliderHorizontal.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":800,"height":200,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"SliderHorizontal.png","size":4832,"hash":"9baec53ced12bb0f97c5ffcad65a8442","variants":{},"url":"files/assets/86173566/1/SliderHorizontal.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"6e5673d6-b687-493f-8970-972f8610e187","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86173566"},"86173567":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Slider.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":200,"height":800,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"Slider.png","size":5911,"hash":"0fc6a27983bb80cc8452a61cbbac3afd","variants":{},"url":"files/assets/86173567/1/Slider.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"70d36359-4351-47fc-b8b6-6331a41c8043","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86173567"},"86173568":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"SliderKnot.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":100,"height":100,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"SliderKnot.png","size":6292,"hash":"d9d5e1fe7d12b16397b54945bd47c4d4","variants":{},"url":"files/assets/86173568/1/SliderKnot.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"398bd074-9937-4792-ba22-7b22463aa398","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86173568"},"86173570":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"HorizontalSlider","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":86173567,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":true,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":86174925,"opacityMapChannel":"a","opacityMapUv":1,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":2,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86173570"},"86174697":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"HorizonAlpha.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":800,"height":200,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"HorizonAlpha.png","size":4882,"hash":"17c8477a4a4d0708ac36dc8cac7c141d","variants":{},"url":"files/assets/86174697/1/HorizonAlpha.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"9a941c7c-a1d5-4d66-9c4a-0d963e413940","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86174697"},"86174925":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"HorAlpha.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":800,"height":200,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"HorAlpha.png","size":4544,"hash":"db21ae43f8d74a8961ac48029fa43eef","variants":{},"url":"files/assets/86174925/1/HorAlpha.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"1182ebe3-34e0-4d03-92b0-0aeb37462630","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86174925"},"86175118":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"SliderMat","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":86173566,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":2,"emissive":[0,0,0],"emissiveMap":86173566,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":0.41,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":0.87,"opacityMap":86173566,"opacityMapChannel":"a","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":2,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86175118"},"86175481":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"SliderKnot","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":86173568,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":2,"emissive":[0,0,0],"emissiveMap":86173568,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":0.99,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0.027,"alphaFade":1,"opacity":1,"opacityMap":86173568,"opacityMapChannel":"a","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":2,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86175481"},"86175694":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"VerticalSlider","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":86173567,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":86173567,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":true,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":86175751,"opacityMapChannel":"b","opacityMapUv":1,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"type":"material","file":null,"region":"eu-west-1","i18n":{},"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86175694"},"86175751":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"HorSLiderAlpha.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":200,"height":800,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"HorSLiderAlpha.png","size":5765,"hash":"cff7df8f3c85cbf4ff996366b1b2d56f","variants":{},"url":"files/assets/86175751/1/HorSLiderAlpha.png"},"region":"eu-west-1","i18n":{},"immutable_backup":"b815a3f2-2883-4de5-bdc6-9674c953aff8","same_as_backup":1,"checkpoint_id":"61dc67ff-7f4f-4b2d-aeb5-b46abfe99088","id":"86175751"},"86181995":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"Arrow.png","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"png","type":"Bilevel","width":400,"height":100,"alpha":true,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"Arrow.png","size":10266,"hash":"23bb55b401eae5f168ea244fa7553f3b","variants":{},"url":"files/assets/86181995/1/Arrow.png"},"region":"eu-west-1","i18n":{},"id":"86181995"},"86182389":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"SliderVisible.js","revision":1,"preload":true,"exclude":false,"meta":null,"data":{"scripts":{"sliderVisible":{"attributesOrder":["SliderEntity","Interval"],"attributes":{"SliderEntity":{"type":"entity"},"Interval":{"type":"number","default":5}}}},"loading":false,"loadingType":0},"type":"script","file":{"filename":"__game-scripts.js","size":24523,"hash":"716682924eba773e776b64eff97015ca","url":"__game-scripts.js"},"region":"eu-west-1","i18n":{},"id":"86182389"},"86202215":{"branch_id":"f2fea7d7-b6ec-4f66-8727-2db38175fd78","tags":[],"name":"41_white bricks texture-seamless.jpg","revision":1,"preload":true,"exclude":false,"meta":{"compress":{"alpha":false,"normals":false,"dxt":false,"pvr":false,"pvrBpp":4,"etc1":false,"etc2":false,"basis":false,"quality":128,"compressionMode":"etc"},"format":"jpeg","type":"Bilevel","width":1024,"height":1024,"alpha":false,"depth":8,"srgb":true,"interlaced":false},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"type":"texture","file":{"filename":"41_white bricks texture-seamless.jpg","size":709349,"hash":"abb46f3dde4c7bce2c25d9e7fa55162b","variants":{},"url":"files/assets/86202215/1/41_white%20bricks%20texture-seamless.jpg"},"region":"eu-west-1","i18n":{},"id":"86202215"}}} \ No newline at end of file +{"application_properties":{"i18nAssets":[],"useTouch":true,"layerOrder":[{"layer":0,"enabled":true,"transparent":false},{"layer":1,"enabled":true,"transparent":false},{"layer":2,"enabled":true,"transparent":false},{"layer":0,"enabled":true,"transparent":true},{"layer":3,"enabled":true,"transparent":false},{"layer":3,"enabled":true,"transparent":true},{"layer":4,"enabled":true,"transparent":true}],"externalScripts":[],"height":720,"vr":false,"useModelV2":false,"antiAlias":true,"layers":{"0":{"transparentSortMode":3,"opaqueSortMode":2,"name":"World"},"1":{"transparentSortMode":3,"opaqueSortMode":2,"name":"Depth"},"2":{"transparentSortMode":3,"opaqueSortMode":0,"name":"Skybox"},"3":{"transparentSortMode":3,"opaqueSortMode":0,"name":"Immediate"},"4":{"transparentSortMode":1,"opaqueSortMode":1,"name":"UI"}},"width":1280,"useDevicePixelRatio":false,"useKeyboard":true,"maxAssetRetries":5,"powerPreference":"high-performance","batchGroups":[],"preserveDrawingBuffer":false,"useLegacyScripts":false,"fillMode":"KEEP_ASPECT","scripts":[77854887,78097772,78382718,79014545,79153391,79459251,79465795,79469394,82175600,82307731,86079364,86144986,86147006,86182389,86761091,89559195,89696259,89697541,89706577,89717413,91478011,91628463,92663277,92668910,92676263,93407776],"useMouse":true,"use3dPhysics":false,"transparentCanvas":false,"resolutionMode":"AUTO","loadingScreenScript":"86761091","preferWebGl2":true,"useGamepads":false,"libraries":[]},"scenes":[{"name":"Untitled","url":"1390892.json"}],"assets":{"77854887":{"name":"mouse.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"mouse":{"attributesOrder":["Selected"],"attributes":{"Selected":{"type":"number","default":0}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"77854887"},"77855246":{"name":"New Material","type":"material","file":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[0,0.3764705882352941,1],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"77855246"},"78072763":{"name":"loonie1.png","type":"texture","file":{"filename":"loonie1.png","size":179080,"hash":"549278f659af3330a068eeab4953f01b","variants":{},"url":"files/assets/78072763/1/loonie1.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78072763"},"78072855":{"name":"New Material","type":"material","file":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":78072763,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":2,"emissive":[0,0,0],"emissiveMap":78072763,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1.18,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0.686,"alphaFade":1,"opacity":1,"opacityMap":78072763,"opacityMapChannel":"a","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78072855"},"78097772":{"name":"touch.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"touch":{"attributesOrder":["Selected"],"attributes":{"Selected":{"type":"number","default":0}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"78097772"},"78181705":{"name":"Wdparq2.jpg","type":"texture","file":{"filename":"Wdparq2.jpg","size":75522,"hash":"bf13297b4b74e7c37839ecba595482f2","variants":{},"url":"files/assets/78181705/1/Wdparq2.jpg"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78181705"},"78181707":{"name":"ceilingbump.jpg","type":"texture","file":{"filename":"ceilingbump.jpg","size":115965,"hash":"c78e303aa89c57fb464518c819f327b6","variants":{},"url":"files/assets/78181707/1/ceilingbump.jpg"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78181707"},"78181709":{"name":"CARPTTAN.JPG","type":"texture","file":{"filename":"CARPTTAN.JPG","size":250224,"hash":"1d7c8fb9403e175e294aa0a14e290a54","variants":{},"url":"files/assets/78181709/1/CARPTTAN.JPG"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78181709"},"78181710":{"name":"livingroom.max","type":"binary","file":{"filename":"livingroom.max","size":302592,"hash":"444dd36a95b616a14e030148af5cda69","url":"files/assets/78181710/1/livingroom.max"},"data":null,"preload":true,"tags":[],"i18n":{},"id":"78181710"},"78181711":{"name":"BURLOAK.JPG","type":"texture","file":{"filename":"BURLOAK.JPG","size":189060,"hash":"3a7de42744d470c97f33b53c1b3eef7b","variants":{},"url":"files/assets/78181711/1/BURLOAK.JPG"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78181711"},"78181751":{"name":"Take 001.glb","type":"animation","file":{"hash":"cb00af4e5637090a638f86273312a910","size":13688,"filename":"Take 001.glb","url":"files/assets/78181751/1/Take%20001.glb"},"data":null,"preload":true,"tags":[],"i18n":{},"id":"78181751"},"78181752":{"name":"01 - Default","type":"material","file":null,"data":{"shader":"blinn","ambient":[0.588235,0.588235,0.588235],"diffuse":[0.588235,0.588235,0.588235],"diffuseMap":null,"diffuseMapOffset":[0,0],"diffuseMapTiling":[1,1],"specular":[0,0,0],"shininess":1.81818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78181752"},"78181753":{"name":"02 - Default","type":"material","file":null,"data":{"shader":"blinn","ambient":[0.588235,0.588235,0.588235],"diffuse":[0.588235,0.588235,0.588235],"diffuseMap":null,"diffuseMapOffset":[0,0],"diffuseMapTiling":[1,1],"specular":[0,0,0],"shininess":18.1818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78181753"},"78181754":{"name":"13 - Default","type":"material","file":null,"data":{"shader":"blinn","ambient":[0.588235,0.588235,0.588235],"diffuse":[0.6588235294117647,0.6392156862745098,0.6235294117647059],"diffuseMap":78181705,"diffuseMapOffset":[-0.35,-0.7],"diffuseMapTiling":[118.58,59.38],"specular":[0,0,0],"shininess":18.1818,"emissive":[0.01568627450980392,0.01568627450980392,0.01568627450980392],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":true,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78181754"},"78181756":{"name":"14 - Defaultwall","type":"material","file":null,"data":{"shader":"blinn","ambient":[0.588235,0.588235,0.588235],"diffuse":[0.588235,0.588235,0.588235],"diffuseMap":78181708,"diffuseMapOffset":[4.17233e-7,0],"diffuseMapTiling":[0.999999,1],"specular":[0,0,0],"shininess":18.1818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78181756"},"78181757":{"name":"07 - Default","type":"material","file":null,"data":{"shader":"blinn","ambient":[1,1,0.960784],"diffuse":[1,1,0.960784],"specular":[0,0,0],"shininess":18.1818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[18.17,7.04],"aoMapOffset":[0,0],"diffuseMap":85570629,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[18.17,7.04],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[18.17,7.04],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[18.17,7.04],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[18.17,7.04],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[18.17,7.04],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[18.17,7.04],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[18.17,7.04],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[18.17,7.04],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[18.17,7.04],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[18.17,7.04],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[18.17,7.04],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[18.17,7.04],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78181757"},"78181758":{"name":"15 - Default","type":"material","file":null,"data":{"shader":"blinn","ambient":[0.686275,0.423529,0.192157],"diffuse":[0.686275,0.423529,0.192157],"specular":[0,0,0],"shininess":18.1818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78181758"},"78181759":{"name":"14 - Default","type":"material","file":null,"data":{"shader":"blinn","ambient":[0.588235,0.588235,0.588235],"diffuse":[0.588235,0.588235,0.588235],"diffuseMap":null,"diffuseMapOffset":[0,0],"diffuseMapTiling":[1,1],"specular":[0,0,0],"shininess":18.1818,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMapChannel":"rgb","diffuseMapUv":0,"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78181759"},"78181760":{"name":"08 - Default","type":"material","file":null,"data":{"shader":"blinn","ambient":[1,0.729412,0],"diffuse":[1,0.729412,0],"specular":[0.31132,0.31132,0.31132],"shininess":90.9091,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78181760"},"78181761":{"name":"03 - Default","type":"material","file":null,"data":{"shader":"blinn","ambient":[1,1,1],"diffuse":[1,1,1],"specular":[1.6045,1.6045,1.6045],"shininess":90.9091,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78181761"},"78181762":{"name":"Box01","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":0},"preload":true,"tags":[],"i18n":{},"id":"78181762"},"78181763":{"name":"Box02","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":1},"preload":true,"tags":[],"i18n":{},"id":"78181763"},"78181764":{"name":"Box03","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":2},"preload":true,"tags":[],"i18n":{},"id":"78181764"},"78181765":{"name":"Box04","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":3},"preload":true,"tags":[],"i18n":{},"id":"78181765"},"78181766":{"name":"Box05","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":4},"preload":true,"tags":[],"i18n":{},"id":"78181766"},"78181767":{"name":"Box06","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":5},"preload":true,"tags":[],"i18n":{},"id":"78181767"},"78181769":{"name":"Plane01","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":7},"preload":true,"tags":[],"i18n":{},"id":"78181769"},"78181770":{"name":"C-Ext01","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":8},"preload":true,"tags":[],"i18n":{},"id":"78181770"},"78181772":{"name":"Sphere01","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":10},"preload":true,"tags":[],"i18n":{},"id":"78181772"},"78181773":{"name":"Cylinder01","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":11},"preload":true,"tags":[],"i18n":{},"id":"78181773"},"78181774":{"name":"Sphere02","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":12},"preload":true,"tags":[],"i18n":{},"id":"78181774"},"78181775":{"name":"Line01","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":13},"preload":true,"tags":[],"i18n":{},"id":"78181775"},"78181777":{"name":"Box10","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":15},"preload":true,"tags":[],"i18n":{},"id":"78181777"},"78181778":{"name":"Box11","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":16},"preload":true,"tags":[],"i18n":{},"id":"78181778"},"78181779":{"name":"Box12","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":17},"preload":true,"tags":[],"i18n":{},"id":"78181779"},"78181780":{"name":"Box13","type":"render","file":null,"data":{"containerAsset":78181755,"renderIndex":18},"preload":true,"tags":[],"i18n":{},"id":"78181780"},"78181876":{"name":"livingroom.glb","type":"container","file":{"hash":"78e748bf3b30b70fc9d4b74e36d22e8d","size":815580,"filename":"livingroom.glb","url":"files/assets/78181876/1/livingroom.glb"},"data":{},"preload":true,"tags":[],"i18n":{},"id":"78181876"},"78181877":{"name":"Box01","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":0},"preload":true,"tags":[],"i18n":{},"id":"78181877"},"78181878":{"name":"Box02","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":1},"preload":true,"tags":[],"i18n":{},"id":"78181878"},"78181879":{"name":"Box03","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":2},"preload":true,"tags":[],"i18n":{},"id":"78181879"},"78181881":{"name":"Box05","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":4},"preload":true,"tags":[],"i18n":{},"id":"78181881"},"78181884":{"name":"Plane01","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":7},"preload":true,"tags":[],"i18n":{},"id":"78181884"},"78181885":{"name":"C-Ext01","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":8},"preload":true,"tags":[],"i18n":{},"id":"78181885"},"78181886":{"name":"Sphere01","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":10},"preload":true,"tags":[],"i18n":{},"id":"78181886"},"78181888":{"name":"Cylinder01","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":11},"preload":true,"tags":[],"i18n":{},"id":"78181888"},"78181889":{"name":"Sphere02","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":12},"preload":true,"tags":[],"i18n":{},"id":"78181889"},"78181890":{"name":"Line01","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":13},"preload":true,"tags":[],"i18n":{},"id":"78181890"},"78181892":{"name":"Box10","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":15},"preload":true,"tags":[],"i18n":{},"id":"78181892"},"78181893":{"name":"Box11","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":16},"preload":true,"tags":[],"i18n":{},"id":"78181893"},"78181894":{"name":"Box12","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":17},"preload":true,"tags":[],"i18n":{},"id":"78181894"},"78181895":{"name":"Box13","type":"render","file":null,"data":{"containerAsset":78181876,"renderIndex":18},"preload":true,"tags":[],"i18n":{},"id":"78181895"},"78181896":{"name":"livingroom","type":"template","file":null,"data":{"entities":{"992e38f0-dd22-4fe8-843f-5c80f0b4190f":{"enabled":true,"tags":[],"children":["cf173562-138d-43de-b497-644f7ffe4239"],"position":[0,0,0],"rotation":[0,0,0],"scale":[0.01,0.01,0.01],"resource_id":"992e38f0-dd22-4fe8-843f-5c80f0b4190f","name":"RootNode","components":{},"parent":null},"cf173562-138d-43de-b497-644f7ffe4239":{"enabled":true,"tags":[],"children":["19b78e10-9bec-4619-80ff-e761bd368e6e","f637845d-7f0e-416e-a2da-27a804b90a26","624e755c-e008-4e38-a4ae-e189b9e6af0e","8fd046ca-9bf2-4996-a426-d5f6f336a65b","235f5a54-087f-4b74-bcb8-e92fb0454a6f","92d77773-aa8e-4faa-a639-619c285b76f1","0e2a3a2c-7ef9-48a5-94f8-425b169eb692","9ea5ecb4-e90e-41e7-8464-9700435c402b","7a7196e1-59de-4cee-831f-db20924f5a99","03051ef6-4f3a-438e-9160-a8aea926e2d0","3ce4c2c1-7a99-4730-a57c-346004bc1485","90839ae3-cc29-477f-a88e-53fb57152250","04a75aae-eb81-4d94-8678-29e91bc7ff75","26ac5c6d-406a-4e21-b3ce-6e451befe8e9","0ca19a72-2469-4446-b3d5-d341756117d3","afce77e7-aca3-481a-b7ad-35126ffafcde","1dbd7266-a1ce-4993-a0c0-14bc38ef3479","d5b5339a-94b6-4efa-822b-9c5c7997f1e1","232324a7-b6aa-4551-a098-bc9ea317773c","1346743e-6c0f-4290-9590-f6e6b64494a1","8a26cc25-f015-4fc5-8cfc-d2366cd0ec11","8f969715-c24b-40d4-a640-80340cc8ddaf","71743733-1689-447d-b55b-ef36a1f9832f"],"position":[0,0,0],"rotation":[0,0,0],"scale":[2.54,2.54,2.54],"resource_id":"cf173562-138d-43de-b497-644f7ffe4239","name":"Fbx_Root","components":{},"parent":"992e38f0-dd22-4fe8-843f-5c80f0b4190f"},"19b78e10-9bec-4619-80ff-e761bd368e6e":{"enabled":true,"tags":[],"children":[],"position":[-7.74598,38.4319,30.0512],"rotation":[0,0,14.3003],"scale":[1.07852,1.07852,1.07852],"resource_id":"19b78e10-9bec-4619-80ff-e761bd368e6e","name":"Box01","components":{"render":{"enabled":true,"type":"asset","asset":78181877,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"f637845d-7f0e-416e-a2da-27a804b90a26":{"enabled":true,"tags":[],"children":[],"position":[-7.74598,38.4319,96.2053],"rotation":[0,0,14.3003],"scale":[1.07852,1.07852,-1.07852],"resource_id":"f637845d-7f0e-416e-a2da-27a804b90a26","name":"Box02","components":{"render":{"enabled":true,"type":"asset","asset":78181878,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"624e755c-e008-4e38-a4ae-e189b9e6af0e":{"enabled":true,"tags":[],"children":[],"position":[-19.7797,35.3645,160.262],"rotation":[0,0,14.3003],"scale":[-1.07852,1.07852,-1.07852],"resource_id":"624e755c-e008-4e38-a4ae-e189b9e6af0e","name":"Box03","components":{"render":{"enabled":true,"type":"asset","asset":78181879,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"8fd046ca-9bf2-4996-a426-d5f6f336a65b":{"enabled":true,"tags":[],"children":[],"position":[8.67342,31.0299,-2.24907],"rotation":[90,0,0],"scale":[1.07852,1.07852,1.07852],"resource_id":"8fd046ca-9bf2-4996-a426-d5f6f336a65b","name":"Box04","components":{"render":{"enabled":true,"type":"asset","asset":78181880,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"235f5a54-087f-4b74-bcb8-e92fb0454a6f":{"enabled":true,"tags":[],"children":[],"position":[8.67342,31.0299,64.5707],"rotation":[90,0,0],"scale":[1.07852,1.07852,1.07852],"resource_id":"235f5a54-087f-4b74-bcb8-e92fb0454a6f","name":"Box05","components":{"render":{"enabled":true,"type":"asset","asset":78181881,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"92d77773-aa8e-4faa-a639-619c285b76f1":{"enabled":true,"tags":[],"children":[],"position":[8.67342,31.0299,131.359],"rotation":[90,0,0],"scale":[1.07852,1.07852,1.07852],"resource_id":"92d77773-aa8e-4faa-a639-619c285b76f1","name":"Box06","components":{"render":{"enabled":true,"type":"asset","asset":78181882,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"0e2a3a2c-7ef9-48a5-94f8-425b169eb692":{"enabled":true,"tags":[],"children":[],"position":[-0.578045,3.58283,-15.3967],"rotation":[90,0,0],"scale":[1,1,1],"resource_id":"0e2a3a2c-7ef9-48a5-94f8-425b169eb692","name":"Box07","components":{"render":{"enabled":true,"type":"asset","asset":78181883,"materialAssets":[78181752],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"9ea5ecb4-e90e-41e7-8464-9700435c402b":{"enabled":true,"tags":[],"children":[],"position":[129.593,0,84.7355],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"9ea5ecb4-e90e-41e7-8464-9700435c402b","name":"Plane01","components":{"render":{"enabled":true,"type":"asset","asset":78181884,"materialAssets":[78181754],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"7a7196e1-59de-4cee-831f-db20924f5a99":{"enabled":true,"tags":[],"children":[],"position":[385.604,0,-284.937],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"7a7196e1-59de-4cee-831f-db20924f5a99","name":"C-Ext01","components":{"render":{"enabled":true,"type":"asset","asset":78181885,"materialAssets":[78181756],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"03051ef6-4f3a-438e-9160-a8aea926e2d0":{"enabled":true,"tags":[],"children":[],"position":[-0.0364215,-0.117522,-46.2227],"rotation":[0,0,0],"scale":[0.945135,0.945135,0.945135],"resource_id":"03051ef6-4f3a-438e-9160-a8aea926e2d0","name":"Box08","components":{"render":{"enabled":true,"type":"asset","asset":78181887,"materialAssets":[78181753],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"3ce4c2c1-7a99-4730-a57c-346004bc1485":{"enabled":true,"tags":[],"children":[],"position":[-12.6914,51.191,-45.6799],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"3ce4c2c1-7a99-4730-a57c-346004bc1485","name":"Sphere01","components":{"render":{"enabled":true,"type":"asset","asset":78181886,"materialAssets":[78181761],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"90839ae3-cc29-477f-a88e-53fb57152250":{"enabled":true,"tags":[],"children":[],"position":[-12.745,67.1823,-45.5833],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"90839ae3-cc29-477f-a88e-53fb57152250","name":"Cylinder01","components":{"render":{"enabled":true,"type":"asset","asset":78181888,"materialAssets":[78181760],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"04a75aae-eb81-4d94-8678-29e91bc7ff75":{"enabled":true,"tags":[],"children":[],"position":[-12.6219,79.6286,-45.6129],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"04a75aae-eb81-4d94-8678-29e91bc7ff75","name":"Sphere02","components":{"render":{"enabled":true,"type":"asset","asset":78181889,"materialAssets":[78181757],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"26ac5c6d-406a-4e21-b3ce-6e451befe8e9":{"enabled":true,"tags":[],"children":[],"position":[-12.5626,77.3243,-55.9246],"rotation":[90,-90,0],"scale":[1,1,1],"resource_id":"26ac5c6d-406a-4e21-b3ce-6e451befe8e9","name":"Line01","components":{"render":{"enabled":true,"type":"asset","asset":78181890,"materialAssets":[78181759],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"0ca19a72-2469-4446-b3d5-d341756117d3":{"enabled":true,"tags":[],"children":[],"position":[22.6662,0,-33.2917],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"0ca19a72-2469-4446-b3d5-d341756117d3","name":"Box09","components":{"render":{"enabled":true,"type":"asset","asset":78181891,"materialAssets":[78181758],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"afce77e7-aca3-481a-b7ad-35126ffafcde":{"enabled":true,"tags":[],"children":[],"position":[22.6133,0,-38.6055],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"afce77e7-aca3-481a-b7ad-35126ffafcde","name":"Box10","components":{"render":{"enabled":true,"type":"asset","asset":78181892,"materialAssets":[78181758],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"1dbd7266-a1ce-4993-a0c0-14bc38ef3479":{"enabled":true,"tags":[],"children":[],"position":[21.9913,0,-42.9339],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"1dbd7266-a1ce-4993-a0c0-14bc38ef3479","name":"Box11","components":{"render":{"enabled":true,"type":"asset","asset":78181893,"materialAssets":[78181758],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"d5b5339a-94b6-4efa-822b-9c5c7997f1e1":{"enabled":true,"tags":[],"children":[],"position":[21.3003,0,-45.9494],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"d5b5339a-94b6-4efa-822b-9c5c7997f1e1","name":"Box12","components":{"render":{"enabled":true,"type":"asset","asset":78181894,"materialAssets":[78181758],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"232324a7-b6aa-4551-a098-bc9ea317773c":{"enabled":true,"tags":[],"children":[],"position":[20.5984,0,-49.921],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"232324a7-b6aa-4551-a098-bc9ea317773c","name":"Box13","components":{"render":{"enabled":true,"type":"asset","asset":78181895,"materialAssets":[78181758],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"1346743e-6c0f-4290-9590-f6e6b64494a1":{"enabled":true,"tags":[],"children":[],"position":[-12.5328,80.4621,-45.5371],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"1346743e-6c0f-4290-9590-f6e6b64494a1","name":"Omni01","components":{"light":{"enabled":true,"type":"point","bake":false,"bakeArea":0,"bakeNumSamples":1,"bakeDir":true,"affectDynamic":true,"affectLightmapped":false,"color":[1,1,0.921569],"intensity":1.17,"castShadows":false,"shadowUpdateMode":2,"shadowType":0,"vsmBlurMode":1,"vsmBlurSize":11,"vsmBias":0.01,"shadowDistance":16,"shadowResolution":1024,"numCascades":1,"cascadeDistribution":0.5,"shadowBias":0.2,"normalOffsetBias":0.05,"range":8,"falloffMode":0,"innerConeAngle":40,"outerConeAngle":45,"shape":0,"cookieAsset":null,"cookieIntensity":1,"cookieFalloff":true,"cookieChannel":"rgb","cookieAngle":0,"cookieScale":[1,1],"cookieOffset":[0,0],"isStatic":false,"layers":[0]}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"8a26cc25-f015-4fc5-8cfc-d2366cd0ec11":{"enabled":true,"tags":[],"children":[],"position":[127.84,180.989,-13.2821],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"8a26cc25-f015-4fc5-8cfc-d2366cd0ec11","name":"Omni02","components":{"light":{"enabled":true,"type":"point","bake":false,"bakeArea":0,"bakeNumSamples":1,"bakeDir":true,"affectDynamic":true,"affectLightmapped":false,"color":[1,1,0.921569],"intensity":0.269,"castShadows":false,"shadowUpdateMode":2,"shadowType":0,"vsmBlurMode":1,"vsmBlurSize":11,"vsmBias":0.01,"shadowDistance":16,"shadowResolution":1024,"numCascades":1,"cascadeDistribution":0.5,"shadowBias":0.2,"normalOffsetBias":0.05,"range":8,"falloffMode":0,"innerConeAngle":40,"outerConeAngle":45,"shape":0,"cookieAsset":null,"cookieIntensity":1,"cookieFalloff":true,"cookieChannel":"rgb","cookieAngle":0,"cookieScale":[1,1],"cookieOffset":[0,0],"isStatic":false,"layers":[0]}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"8f969715-c24b-40d4-a640-80340cc8ddaf":{"enabled":true,"tags":[],"children":[],"position":[151.448,178.646,280.302],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"8f969715-c24b-40d4-a640-80340cc8ddaf","name":"Omni03","components":{"light":{"enabled":true,"type":"point","bake":false,"bakeArea":0,"bakeNumSamples":1,"bakeDir":true,"affectDynamic":true,"affectLightmapped":false,"color":[1,1,0.921569],"intensity":0.2214,"castShadows":false,"shadowUpdateMode":2,"shadowType":0,"vsmBlurMode":1,"vsmBlurSize":11,"vsmBias":0.01,"shadowDistance":16,"shadowResolution":1024,"numCascades":1,"cascadeDistribution":0.5,"shadowBias":0.2,"normalOffsetBias":0.05,"range":8,"falloffMode":0,"innerConeAngle":40,"outerConeAngle":45,"shape":0,"cookieAsset":null,"cookieIntensity":1,"cookieFalloff":true,"cookieChannel":"rgb","cookieAngle":0,"cookieScale":[1,1],"cookieOffset":[0,0],"isStatic":false,"layers":[0]}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"},"71743733-1689-447d-b55b-ef36a1f9832f":{"enabled":true,"tags":[],"children":[],"position":[151.448,304.742,75.99],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"71743733-1689-447d-b55b-ef36a1f9832f","name":"Omni04","components":{"light":{"enabled":true,"type":"point","bake":false,"bakeArea":0,"bakeNumSamples":1,"bakeDir":true,"affectDynamic":true,"affectLightmapped":false,"color":[1,1,0.921569],"intensity":0.2214,"castShadows":false,"shadowUpdateMode":2,"shadowType":0,"vsmBlurMode":1,"vsmBlurSize":11,"vsmBias":0.01,"shadowDistance":16,"shadowResolution":1024,"numCascades":1,"cascadeDistribution":0.5,"shadowBias":0.2,"normalOffsetBias":0.05,"range":8,"falloffMode":0,"innerConeAngle":40,"outerConeAngle":45,"shape":0,"cookieAsset":null,"cookieIntensity":1,"cookieFalloff":true,"cookieChannel":"rgb","cookieAngle":0,"cookieScale":[1,1],"cookieOffset":[0,0],"isStatic":false,"layers":[0]}},"parent":"cf173562-138d-43de-b497-644f7ffe4239"}}},"preload":true,"tags":[],"i18n":{},"id":"78181896"},"78379717":{"name":"ammo.js","type":"script","file":{"filename":"ammo.js","size":1895438,"hash":"34480c72ed787337db20c105cb9ba69d","url":"files/assets/78379717/1/ammo.js"},"data":{"order":100,"scripts":{},"loadingType":0},"preload":false,"tags":[],"i18n":{},"id":"78379717"},"78379718":{"name":"ammo.wasm.js","type":"script","file":{"filename":"ammo.wasm.js","size":391789,"hash":"6b7ab3989e4f9f17c86e44380f9181c6","url":"files/assets/78379718/1/ammo.wasm.js"},"data":{"order":100,"scripts":{},"loadingType":0},"preload":false,"tags":[],"i18n":{},"id":"78379718"},"78379719":{"name":"ammo.wasm.wasm","type":"wasm","file":{"filename":"ammo.wasm.wasm","size":659433,"hash":"a6819ea71a53e67f1dfe3e42957c2971","url":"files/assets/78379719/1/ammo.wasm.wasm"},"data":{"moduleName":"Ammo","glueScriptId":78379718,"fallbackScriptId":78379717,"loadingType":0},"preload":false,"tags":[],"i18n":{},"id":"78379719"},"78382718":{"name":"picker_raycast.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"pickerRaycast":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"78382718"},"78401677":{"name":"doorman.mtl","type":"binary","file":{"filename":"doorman.mtl","size":930,"hash":"db9bed74e8bdc6681a6ab846c919aada","url":"files/assets/78401677/1/doorman.mtl"},"data":null,"preload":true,"tags":[],"i18n":{},"id":"78401677"},"78401691":{"name":"t_eye_d.jpeg","type":"texture","file":{"filename":"t_eye_d.jpeg","hash":"fef226427dfd003d8f8b462219f1df8e","size":10713,"variants":{},"url":"files/assets/78401691/1/t_eye_d.jpeg"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78401691"},"78401692":{"name":"t_doorMan_teeth_d.jpeg","type":"texture","file":{"filename":"t_doorMan_teeth_d.jpeg","hash":"32521ea35225763f7f528eb8e7b4393e","size":16505,"variants":{},"url":"files/assets/78401692/1/t_doorMan_teeth_d.jpeg"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78401692"},"78401693":{"name":"t_doorMan_teeth_n.jpeg","type":"texture","file":{"filename":"t_doorMan_teeth_n.jpeg","hash":"d75247a48a056745a100fc522344f5b0","size":22879,"variants":{},"url":"files/assets/78401693/1/t_doorMan_teeth_n.jpeg"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78401693"},"78401695":{"name":"t_eye_n.png","type":"texture","file":{"filename":"t_eye_n.png","hash":"18e0ed32b974fc7e20d98149d20e7589","size":35989,"variants":{},"url":"files/assets/78401695/1/t_eye_n.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78401695"},"78401697":{"name":"rdmobj00Mat","type":"material","file":null,"data":{"shader":"blinn","ambient":[0.2,0.2,0.2],"diffuse":[0.8,0.8,0.8],"specular":[0.2,0.2,0.2],"shininess":39.2903,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":78401692,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78401697"},"78401698":{"name":"rdmobj01Mat","type":"material","file":null,"data":{"shader":"blinn","ambient":[0.2,0.2,0.2],"diffuse":[0.8,0.8,0.8],"specular":[0.2,0.2,0.2],"shininess":39.2903,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":78401691,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78401698"},"78401699":{"name":"rdmobj03Mat","type":"material","file":null,"data":{"shader":"blinn","ambient":[0.2,0.2,0.2],"diffuse":[0.8,0.8,0.8],"specular":[0.2,0.2,0.2],"shininess":39.2903,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":78402284,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":78402285,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":78402286,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78401699"},"78401700":{"name":"rdmobj02Mat","type":"material","file":null,"data":{"shader":"blinn","ambient":[0.2,0.2,0.2],"diffuse":[0.8,0.8,0.8],"specular":[0.2,0.2,0.2],"shininess":39.2903,"emissive":[0,0,0],"opacity":1,"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuseMap":78402284,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":78402286,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"78401700"},"78401701":{"name":"doorman.glb","type":"container","file":{"hash":"20572c505d27cbde1e4c76f0b853421f","size":306708,"filename":"doorman.glb","url":"files/assets/78401701/1/doorman.glb"},"data":{},"preload":true,"tags":[],"i18n":{},"id":"78401701"},"78401702":{"name":"rdmobj00","type":"render","file":null,"data":{"containerAsset":78401701,"renderIndex":0},"preload":true,"tags":[],"i18n":{},"id":"78401702"},"78401703":{"name":"rdmobj01","type":"render","file":null,"data":{"containerAsset":78401701,"renderIndex":1},"preload":true,"tags":[],"i18n":{},"id":"78401703"},"78401704":{"name":"rdmobj03","type":"render","file":null,"data":{"containerAsset":78401701,"renderIndex":3},"preload":true,"tags":[],"i18n":{},"id":"78401704"},"78401705":{"name":"rdmobj02","type":"render","file":null,"data":{"containerAsset":78401701,"renderIndex":2},"preload":true,"tags":[],"i18n":{},"id":"78401705"},"78401706":{"name":"doorman","type":"template","file":null,"data":{"entities":{"2cfeea72-a4bb-4a0e-8dad-abd92cc83dad":{"enabled":true,"tags":[],"children":["9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2"],"position":[0,0,0],"rotation":[0,0,0],"scale":[0.12734020167208698,0.12734020167208698,0.12734020167208698],"resource_id":"2cfeea72-a4bb-4a0e-8dad-abd92cc83dad","name":"RootNode","components":{"collision":{"enabled":true,"type":"box","halfExtents":[0.458,1.106,0.319],"radius":0.5,"axis":1,"height":2,"asset":null,"renderAsset":null}},"parent":null},"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2":{"enabled":true,"tags":[],"children":["a662f523-2a86-4f77-9951-1053085f7717","fbf7970b-0b02-48c8-9fbb-6fbb5d4f3485","cafbe398-372c-44b5-a905-6a9ca90c105c","6147aeb5-2849-4302-80b1-7120263a14de"],"position":[0,-9.158829431059022,0.000002486358653186471],"rotation":[-180,0,-180],"scale":[2.997398613039719,2.997398613039719,2.997398613039719],"resource_id":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2","name":"doorman_root","components":{"script":{"enabled":true,"order":["mouse","touch"],"scripts":{"mouse":{"enabled":true,"attributes":{"Selected":0}},"touch":{"enabled":true,"attributes":{"Selected":0}}}}},"parent":"2cfeea72-a4bb-4a0e-8dad-abd92cc83dad"},"a662f523-2a86-4f77-9951-1053085f7717":{"enabled":true,"tags":[],"children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"a662f523-2a86-4f77-9951-1053085f7717","name":"rdmobj00","components":{"render":{"enabled":true,"type":"asset","asset":78401702,"materialAssets":[78401697],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2"},"fbf7970b-0b02-48c8-9fbb-6fbb5d4f3485":{"enabled":true,"tags":[],"children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"fbf7970b-0b02-48c8-9fbb-6fbb5d4f3485","name":"rdmobj01","components":{"render":{"enabled":true,"type":"asset","asset":78401703,"materialAssets":[78401698],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2"},"cafbe398-372c-44b5-a905-6a9ca90c105c":{"enabled":true,"tags":[],"children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"cafbe398-372c-44b5-a905-6a9ca90c105c","name":"rdmobj02","components":{"render":{"enabled":true,"type":"asset","asset":78401705,"materialAssets":[78401700],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2"},"6147aeb5-2849-4302-80b1-7120263a14de":{"enabled":true,"tags":[],"children":[],"position":[0,0,0],"rotation":[0,0,0],"scale":[1,1,1],"resource_id":"6147aeb5-2849-4302-80b1-7120263a14de","name":"rdmobj03","components":{"render":{"enabled":true,"type":"asset","asset":78401704,"materialAssets":[78401699],"layers":[0],"batchGroupId":null,"castShadows":true,"castShadowsLightmap":true,"receiveShadows":true,"lightmapped":false,"lightmapSizeMultiplier":1,"castShadowsLightMap":true,"lightMapped":false,"lightMapSizeMultiplier":1,"isStatic":false,"rootBone":null}},"parent":"9ccb87a7-6e1d-4ae0-9c96-b3b5d27c22f2"}}},"preload":true,"tags":[],"i18n":{},"id":"78401706"},"78402284":{"name":"t_doorMan_d.jpeg","type":"texture","file":{"filename":"t_doorMan_d.jpeg","hash":"c098404fd23169b3f6dfe0e20bec277f","size":170279,"variants":{},"url":"files/assets/78402284/1/t_doorMan_d.jpeg"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78402284"},"78402285":{"name":"t_doorMan_s.jpeg","type":"texture","file":{"filename":"t_doorMan_s.jpeg","hash":"560ee2f398d81b75b4ba419cce710cb9","size":122293,"variants":{},"url":"files/assets/78402285/1/t_doorMan_s.jpeg"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78402285"},"78402286":{"name":"t_doorMan_n.jpeg","type":"texture","file":{"filename":"t_doorMan_n.jpeg","hash":"803af87756a209776154326664e5dbc9","size":237433,"variants":{},"url":"files/assets/78402286/1/t_doorMan_n.jpeg"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"78402286"},"78406226":{"name":"archive-roundface-script_bigfontsite.com.ttf","type":"font","file":{"filename":"archive-roundface-script_bigfontsite.com.png","hash":"93d340738cc8d0c06cda084ff749b82f","size":367744,"url":"files/assets/78406226/1/archive-roundface-script_bigfontsite.com.png"},"data":{"version":2,"intensity":0,"info":{"face":"archive-roundface-script_bigfontsite.com","maps":[{"width":1024,"height":512}]},"chars":{"32":{"id":32,"letter":" ","x":1,"y":1,"width":64,"height":64,"map":0,"xadvance":4.992,"xoffset":31.5,"yoffset":31.5,"scale":1,"range":8},"33":{"id":33,"letter":"!","x":67,"y":1,"width":64,"height":64,"map":0,"xadvance":7.776,"xoffset":26.288,"yoffset":23.152,"scale":1,"range":8,"bounds":[0.128,-0.48,11.296,18.176]},"34":{"id":34,"letter":"\"","x":133,"y":1,"width":64,"height":64,"map":0,"xadvance":8.352,"xoffset":27.632,"yoffset":22.816,"scale":1,"range":8,"bounds":[1.12,5.888,7.616,12.48]},"36":{"id":36,"letter":"$","x":199,"y":1,"width":64,"height":64,"map":0,"xadvance":21.024,"xoffset":20.96,"yoffset":24.704,"scale":1,"range":8,"bounds":[1.024,-5.952,21.056,20.544]},"38":{"id":38,"letter":"&","x":265,"y":1,"width":64,"height":64,"map":0,"xadvance":20.832,"xoffset":20.464,"yoffset":22.56,"scale":1,"range":8,"bounds":[1.632,-0.096,21.44,18.976]},"39":{"id":39,"letter":"'","x":331,"y":1,"width":64,"height":64,"map":0,"xadvance":4.896,"xoffset":29.392,"yoffset":23.088,"scale":1,"range":8,"bounds":[1.12,5.792,4.096,12.032]},"44":{"id":44,"letter":",","x":397,"y":1,"width":64,"height":64,"map":0,"xadvance":5.888,"xoffset":28.672,"yoffset":32.88,"scale":1,"range":8,"bounds":[1.152,-5.024,5.504,3.264]},"45":{"id":45,"letter":"-","x":463,"y":1,"width":64,"height":64,"map":0,"xadvance":9.76,"xoffset":27.408,"yoffset":26.688,"scale":1,"range":8,"bounds":[0.544,3.904,8.64,6.72]},"46":{"id":46,"letter":".","x":529,"y":1,"width":64,"height":64,"map":0,"xadvance":5.44,"xoffset":29.168,"yoffset":30.528,"scale":1,"range":8,"bounds":[1.12,-0.32,4.544,3.264]},"48":{"id":48,"letter":"0","x":595,"y":1,"width":64,"height":64,"map":0,"xadvance":15.52,"xoffset":23.472,"yoffset":22.736,"scale":1,"range":8,"bounds":[1.376,-0.416,15.68,18.944]},"49":{"id":49,"letter":"1","x":661,"y":1,"width":64,"height":64,"map":0,"xadvance":10.208,"xoffset":25.2,"yoffset":22.704,"scale":1,"range":8,"bounds":[0.544,-0.224,13.056,18.816]},"50":{"id":50,"letter":"2","x":727,"y":1,"width":64,"height":64,"map":0,"xadvance":15.552,"xoffset":24.192,"yoffset":22.7330909091,"scale":1,"range":8,"bounds":[-0.448,-0.346181818182,16.064,18.88]},"51":{"id":51,"letter":"3","x":793,"y":1,"width":64,"height":64,"map":0,"xadvance":15.68,"xoffset":23.344,"yoffset":22.656,"scale":1,"range":8,"bounds":[0.768,-0.256,16.544,18.944]},"52":{"id":52,"letter":"4","x":859,"y":1,"width":64,"height":64,"map":0,"xadvance":14.944,"xoffset":23.744,"yoffset":22.576,"scale":1,"range":8,"bounds":[0.736,-0.128,15.776,18.976]},"53":{"id":53,"letter":"5","x":925,"y":1,"width":64,"height":64,"map":0,"xadvance":16.672,"xoffset":22.464,"yoffset":22.704,"scale":1,"range":8,"bounds":[0.96,-0.224,18.112,18.816]},"54":{"id":54,"letter":"6","x":1,"y":67,"width":64,"height":64,"map":0,"xadvance":14.72,"xoffset":24,"yoffset":22,"scale":1,"range":8,"bounds":[0.96,-0.352,15.04,20.352]},"55":{"id":55,"letter":"7","x":67,"y":67,"width":64,"height":64,"map":0,"xadvance":11.2,"xoffset":24.016,"yoffset":22.656,"scale":1,"range":8,"bounds":[1.216,-0.128,14.752,18.816]},"56":{"id":56,"letter":"8","x":133,"y":67,"width":64,"height":64,"map":0,"xadvance":15.104,"xoffset":23.232,"yoffset":22.496,"scale":1,"range":8,"bounds":[0.96,-0.256,16.576,19.264]},"57":{"id":57,"letter":"9","x":199,"y":67,"width":64,"height":64,"map":0,"xadvance":16.672,"xoffset":23.664,"yoffset":24.208,"scale":1,"range":8,"bounds":[1.12,-3.296,15.552,18.88]},"58":{"id":58,"letter":":","x":265,"y":67,"width":64,"height":64,"map":0,"xadvance":7.488,"xoffset":28.16,"yoffset":27.36,"scale":1,"range":8,"bounds":[1.12,-0.32,6.56,9.6]},"59":{"id":59,"letter":";","x":331,"y":67,"width":64,"height":64,"map":0,"xadvance":7.168,"xoffset":28.032,"yoffset":29.792,"scale":1,"range":8,"bounds":[1.152,-5.024,6.784,9.44]},"63":{"id":63,"letter":"?","x":397,"y":67,"width":64,"height":64,"map":0,"xadvance":8.736,"xoffset":25.552,"yoffset":23.088,"scale":1,"range":8,"bounds":[0.384,-0.32,12.512,18.144]},"65":{"id":65,"letter":"A","x":463,"y":67,"width":64,"height":64,"map":0,"xadvance":29.248,"xoffset":13.184,"yoffset":20.496,"scale":1,"range":8,"bounds":[0.576,-0.32,37.056,23.328]},"66":{"id":66,"letter":"B","x":529,"y":67,"width":64,"height":64,"map":0,"xadvance":27.744,"xoffset":16.16,"yoffset":20.704,"scale":1,"range":8,"bounds":[1.024,-0.384,30.656,22.976]},"67":{"id":67,"letter":"C","x":595,"y":67,"width":64,"height":64,"map":0,"xadvance":18.368,"xoffset":20.608,"yoffset":20.688,"scale":1,"range":8,"bounds":[1.344,-0.256,21.44,22.88]},"68":{"id":68,"letter":"D","x":661,"y":67,"width":64,"height":64,"map":0,"xadvance":29.248,"xoffset":16.192,"yoffset":20.752,"scale":1,"range":8,"bounds":[1.216,-0.512,30.4,23.008]},"69":{"id":69,"letter":"E","x":727,"y":67,"width":64,"height":64,"map":0,"xadvance":18.496,"xoffset":20.832,"yoffset":20.624,"scale":1,"range":8,"bounds":[1.12,-0.448,21.216,23.2]},"70":{"id":70,"letter":"F","x":793,"y":67,"width":64,"height":64,"map":0,"xadvance":19.008,"xoffset":17.408,"yoffset":20.688,"scale":1,"range":8,"bounds":[1.12,-0.512,28.064,23.136]},"71":{"id":71,"letter":"G","x":859,"y":67,"width":64,"height":64,"map":0,"xadvance":20,"xoffset":18.592,"yoffset":20.816,"scale":1,"range":8,"bounds":[1.056,-0.64,25.76,23.008]},"72":{"id":72,"letter":"H","x":925,"y":67,"width":64,"height":64,"map":0,"xadvance":27.904,"xoffset":13.76,"yoffset":20.64,"scale":1,"range":8,"bounds":[1.216,-0.256,35.264,22.976]},"73":{"id":73,"letter":"I","x":1,"y":133,"width":64,"height":64,"map":0,"xadvance":20,"xoffset":17.856,"yoffset":20.816,"scale":1,"range":8,"bounds":[0.96,-0.576,27.328,22.944]},"74":{"id":74,"letter":"J","x":67,"y":133,"width":64,"height":64,"map":0,"xadvance":14.24,"xoffset":25.296,"yoffset":24.784,"scale":1,"range":8,"bounds":[-7.52,-8.448,20.928,22.88]},"75":{"id":75,"letter":"K","x":133,"y":133,"width":64,"height":64,"map":0,"xadvance":32.128,"xoffset":14.368,"yoffset":20.544,"scale":1,"range":8,"bounds":[1.344,-0.32,33.92,23.232]},"76":{"id":76,"letter":"L","x":199,"y":133,"width":64,"height":64,"map":0,"xadvance":18.08,"xoffset":20.16,"yoffset":20.592,"scale":1,"range":8,"bounds":[0.832,-0.192,22.848,23.008]},"77":{"id":77,"letter":"M","x":265,"y":133,"width":64,"height":64,"map":0,"xadvance":36.512,"xoffset":11.76,"yoffset":20.72,"scale":1,"range":8,"bounds":[0.736,-0.256,39.744,22.816]},"78":{"id":78,"letter":"N","x":331,"y":133,"width":64,"height":64,"map":0,"xadvance":27.04,"xoffset":13.984,"yoffset":20.56,"scale":1,"range":8,"bounds":[0.832,-0.256,35.2,23.136]},"79":{"id":79,"letter":"O","x":397,"y":133,"width":64,"height":64,"map":0,"xadvance":17.024,"xoffset":21.184,"yoffset":20.56,"scale":1,"range":8,"bounds":[1.216,-0.16,20.416,23.04]},"80":{"id":80,"letter":"P","x":463,"y":133,"width":64,"height":64,"map":0,"xadvance":20.256,"xoffset":18.672,"yoffset":20.832,"scale":1,"range":8,"bounds":[1.344,-0.512,25.312,22.848]},"81":{"id":81,"letter":"Q","x":529,"y":133,"width":64,"height":64,"map":0,"xadvance":21.12,"xoffset":21.6,"yoffset":23.984,"scale":1,"range":8,"bounds":[-1.216,-6.752,22.016,22.784]},"82":{"id":82,"letter":"R","x":595,"y":133,"width":64,"height":64,"map":0,"xadvance":28.928,"xoffset":16.064,"yoffset":20.912,"scale":1,"range":8,"bounds":[1.056,-0.768,30.816,22.944]},"83":{"id":83,"letter":"S","x":661,"y":133,"width":64,"height":64,"map":0,"xadvance":19.104,"xoffset":21.28,"yoffset":20.544,"scale":1,"range":8,"bounds":[0.896,-0.096,20.544,23.008]},"84":{"id":84,"letter":"T","x":727,"y":133,"width":64,"height":64,"map":0,"xadvance":18.784,"xoffset":17.712,"yoffset":20.6228571429,"scale":1,"range":8,"bounds":[1.12,-0.32,27.456,23.0742857143]},"85":{"id":85,"letter":"U","x":793,"y":133,"width":64,"height":64,"map":0,"xadvance":23.744,"xoffset":16.896,"yoffset":20.608,"scale":1,"range":8,"bounds":[1.408,-0.32,28.8,23.104]},"86":{"id":86,"letter":"V","x":859,"y":133,"width":64,"height":64,"map":0,"xadvance":11.008,"xoffset":20.944,"yoffset":20.848,"scale":1,"range":8,"bounds":[1.12,-0.608,20.992,22.912]},"87":{"id":87,"letter":"W","x":925,"y":133,"width":64,"height":64,"map":0,"xadvance":17.76,"xoffset":16.896,"yoffset":20.976,"scale":1,"range":8,"bounds":[1.568,-0.8,28.64,22.848]},"88":{"id":88,"letter":"X","x":1,"y":199,"width":64,"height":64,"map":0,"xadvance":25.888,"xoffset":15.856,"yoffset":20.656,"scale":1,"range":8,"bounds":[1.248,-0.448,31.04,23.136]},"89":{"id":89,"letter":"Y","x":67,"y":199,"width":64,"height":64,"map":0,"xadvance":11.52,"xoffset":23.632,"yoffset":24.48,"scale":1,"range":8,"bounds":[-5.024,-8.192,21.76,23.232]},"90":{"id":90,"letter":"Z","x":133,"y":199,"width":64,"height":64,"map":0,"xadvance":20.96,"xoffset":17.328,"yoffset":20.544,"scale":1,"range":8,"bounds":[1.056,-0.16,28.288,23.072]},"97":{"id":97,"letter":"a","x":199,"y":199,"width":64,"height":64,"map":0,"xadvance":12.48,"xoffset":25.44,"yoffset":27.504,"scale":1,"range":8,"bounds":[0.32,-0.352,12.8,9.344]},"98":{"id":98,"letter":"b","x":265,"y":199,"width":64,"height":64,"map":0,"xadvance":12,"xoffset":25.712,"yoffset":22.656,"scale":1,"range":8,"bounds":[0.576,-0.416,12,19.104]},"99":{"id":99,"letter":"c","x":331,"y":199,"width":64,"height":64,"map":0,"xadvance":8.992,"xoffset":27.376,"yoffset":27.488,"scale":1,"range":8,"bounds":[0.32,-0.32,8.928,9.344]},"100":{"id":100,"letter":"d","x":397,"y":199,"width":64,"height":64,"map":0,"xadvance":12.768,"xoffset":23.056,"yoffset":22.8,"scale":1,"range":8,"bounds":[0.32,-0.384,17.568,18.784]},"101":{"id":101,"letter":"e","x":463,"y":199,"width":64,"height":64,"map":0,"xadvance":8.992,"xoffset":27.232,"yoffset":27.424,"scale":1,"range":8,"bounds":[0.32,-0.192,9.216,9.344]},"102":{"id":102,"letter":"f","x":529,"y":199,"width":64,"height":64,"map":0,"xadvance":6.752,"xoffset":24.72,"yoffset":22.72,"scale":1,"range":8,"bounds":[0.128,-0.096,14.432,18.656]},"103":{"id":103,"letter":"g","x":595,"y":199,"width":64,"height":64,"map":0,"xadvance":11.488,"xoffset":26.784,"yoffset":31.52,"scale":1,"range":8,"bounds":[-2.432,-8.448,12.864,9.408]},"104":{"id":104,"letter":"h","x":661,"y":199,"width":64,"height":64,"map":0,"xadvance":12.864,"xoffset":25.568,"yoffset":22.624,"scale":1,"range":8,"bounds":[0.032,-0.16,12.832,18.912]},"105":{"id":105,"letter":"i","x":727,"y":199,"width":64,"height":64,"map":0,"xadvance":6.56,"xoffset":27.584,"yoffset":25.12,"scale":1,"range":8,"bounds":[0.48,-0.032,8.352,13.792]},"106":{"id":106,"letter":"j","x":793,"y":199,"width":64,"height":64,"map":0,"xadvance":5.984,"xoffset":29.568,"yoffset":29.184,"scale":1,"range":8,"bounds":[-4.256,-8.128,9.12,13.76]},"107":{"id":107,"letter":"k","x":859,"y":199,"width":64,"height":64,"map":0,"xadvance":12.288,"xoffset":25.056,"yoffset":22.736,"scale":1,"range":8,"bounds":[0.032,-0.416,13.856,18.944]},"108":{"id":108,"letter":"l","x":925,"y":199,"width":64,"height":64,"map":0,"xadvance":6.304,"xoffset":25.824,"yoffset":22.72,"scale":1,"range":8,"bounds":[0.576,-0.32,11.776,18.88]},"109":{"id":109,"letter":"m","x":1,"y":265,"width":64,"height":64,"map":0,"xadvance":17.888,"xoffset":22.656,"yoffset":27.344,"scale":1,"range":8,"bounds":[0.192,-0.224,18.496,9.536]},"110":{"id":110,"letter":"n","x":67,"y":265,"width":64,"height":64,"map":0,"xadvance":12.48,"xoffset":25.728,"yoffset":27.408,"scale":1,"range":8,"bounds":[0.16,-0.256,12.384,9.44]},"111":{"id":111,"letter":"o","x":133,"y":265,"width":64,"height":64,"map":0,"xadvance":11.04,"xoffset":26.32,"yoffset":27.392,"scale":1,"range":8,"bounds":[0.32,-0.16,11.04,9.376]},"112":{"id":112,"letter":"p","x":199,"y":265,"width":64,"height":64,"map":0,"xadvance":11.968,"xoffset":28.64,"yoffset":31.648,"scale":1,"range":8,"bounds":[-5.216,-8.576,11.936,9.28]},"113":{"id":113,"letter":"q","x":265,"y":265,"width":64,"height":64,"map":0,"xadvance":11.968,"xoffset":25.296,"yoffset":31.552,"scale":1,"range":8,"bounds":[0.192,-8.544,13.216,9.44]},"114":{"id":114,"letter":"r","x":331,"y":265,"width":64,"height":64,"map":0,"xadvance":10.208,"xoffset":26.336,"yoffset":27.344,"scale":1,"range":8,"bounds":[0.16,-0.032,11.168,9.344]},"115":{"id":115,"letter":"s","x":397,"y":265,"width":64,"height":64,"map":0,"xadvance":9.216,"xoffset":27.216,"yoffset":27.424,"scale":1,"range":8,"bounds":[0.032,-0.192,9.536,9.344]},"116":{"id":116,"letter":"t","x":463,"y":265,"width":64,"height":64,"map":0,"xadvance":7.648,"xoffset":26.368,"yoffset":24.352,"scale":1,"range":8,"bounds":[0.864,-0.32,10.4,15.616]},"117":{"id":117,"letter":"u","x":529,"y":265,"width":64,"height":64,"map":0,"xadvance":11.712,"xoffset":25.824,"yoffset":27.536,"scale":1,"range":8,"bounds":[0.224,-0.224,12.128,9.152]},"118":{"id":118,"letter":"v","x":595,"y":265,"width":64,"height":64,"map":0,"xadvance":10.496,"xoffset":26.384,"yoffset":27.472,"scale":1,"range":8,"bounds":[0.192,-0.224,11.04,9.28]},"119":{"id":119,"letter":"w","x":661,"y":265,"width":64,"height":64,"map":0,"xadvance":16.608,"xoffset":23.152,"yoffset":27.392,"scale":1,"range":8,"bounds":[0.224,-0.224,17.472,9.44]},"120":{"id":120,"letter":"x","x":727,"y":265,"width":64,"height":64,"map":0,"xadvance":11.68,"xoffset":25.536,"yoffset":27.504,"scale":1,"range":8,"bounds":[0.192,-0.192,12.736,9.184]},"121":{"id":121,"letter":"y","x":793,"y":265,"width":64,"height":64,"map":0,"xadvance":11.776,"xoffset":26.336,"yoffset":31.568,"scale":1,"range":8,"bounds":[-0.96,-8.352,12.288,9.216]},"122":{"id":122,"letter":"z","x":859,"y":265,"width":64,"height":64,"map":0,"xadvance":11.744,"xoffset":25.6,"yoffset":27.536,"scale":1,"range":8,"bounds":[0.16,-0.32,12.64,9.248]}},"kerning":{}},"preload":true,"tags":[],"i18n":{},"id":"78406226"},"79014545":{"name":"load_image.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"loadImage":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"79014545"},"79153391":{"name":"switching-textures.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"switchingTextures":{"attributesOrder":["textures","url","WebTexture"],"attributes":{"textures":{"type":"asset","assetType":"texture","array":true,"title":"Textures"},"url":{"type":"string"},"WebTexture":{"type":"asset","assetType":"texture","array":false,"title":"WebTexture"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"79153391"},"79449648":{"name":"double-sided-arrow-png-51575265495yriug9wtzm.png","type":"texture","file":{"filename":"double-sided-arrow-png-51575265495yriug9wtzm.png","size":3179,"hash":"27ebb44979c6d0aeffa4c540526a1fee","variants":{},"url":"files/assets/79449648/1/double-sided-arrow-png-51575265495yriug9wtzm.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"79449648"},"79458597":{"name":"New Material","type":"material","file":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[0,0,0],"diffuseMap":79449648,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":0.73,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0.334,"alphaFade":1,"opacity":1,"opacityMap":79449648,"opacityMapChannel":"a","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"phong","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"79458597"},"79459251":{"name":"GetWidthFromURLParams.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"getWidthFromUrlparams":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"79459251"},"79465530":{"name":"BRLNSDB.TTF","type":"font","file":{"filename":"BRLNSDB.png","hash":"64c1f05f77830228af9c5fa580768cf1","size":369767,"url":"files/assets/79465530/1/BRLNSDB.png"},"data":{"version":2,"intensity":0,"info":{"face":"BRLNSDB","maps":[{"width":1024,"height":512}]},"chars":{"32":{"id":32,"letter":" ","x":1,"y":1,"width":64,"height":64,"map":0,"xadvance":8,"xoffset":31.5,"yoffset":31.5,"scale":1,"range":8},"33":{"id":33,"letter":"!","x":67,"y":1,"width":64,"height":64,"map":0,"xadvance":8.953125,"xoffset":27.359375,"yoffset":21.234375,"scale":1,"range":8,"bounds":[1.703125,-0.390625,7.578125,21.921875]},"34":{"id":34,"letter":"\"","x":133,"y":1,"width":64,"height":64,"map":0,"xadvance":12.515625,"xoffset":25.7421875,"yoffset":13.96875,"scale":1,"range":8,"bounds":[1.0625,14.046875,11.453125,22.015625]},"35":{"id":35,"letter":"#","x":199,"y":1,"width":64,"height":64,"map":0,"xadvance":22.71875,"xoffset":20.7578125,"yoffset":21.6484375,"scale":1,"range":8,"bounds":[1.25,-1.71875,21.234375,22.421875]},"36":{"id":36,"letter":"$","x":265,"y":1,"width":64,"height":64,"map":0,"xadvance":15.546875,"xoffset":24.125,"yoffset":22.5859375,"scale":1,"range":8,"bounds":[1.125,-2.609375,14.625,21.4375]},"37":{"id":37,"letter":"%","x":331,"y":1,"width":64,"height":64,"map":0,"xadvance":25.703125,"xoffset":19.1484375,"yoffset":22.2890625,"scale":1,"range":8,"bounds":[0.484375,-0.6875,25.21875,20.109375]},"38":{"id":38,"letter":"&","x":397,"y":1,"width":64,"height":64,"map":0,"xadvance":22.34375,"xoffset":20.75,"yoffset":21.203125,"scale":1,"range":8,"bounds":[1.09375,-0.546875,21.40625,22.140625]},"39":{"id":39,"letter":"'","x":463,"y":1,"width":64,"height":64,"map":0,"xadvance":7.421875,"xoffset":28.2578125,"yoffset":14.4453125,"scale":1,"range":8,"bounds":[1.21875,13.09375,6.265625,22.015625]},"40":{"id":40,"letter":"(","x":529,"y":1,"width":64,"height":64,"map":0,"xadvance":12.734375,"xoffset":25.1015625,"yoffset":23.828125,"scale":1,"range":8,"bounds":[1.5,-6.53125,12.296875,22.875]},"41":{"id":41,"letter":")","x":595,"y":1,"width":64,"height":64,"map":0,"xadvance":12.734375,"xoffset":26.1640625,"yoffset":23.8359375,"scale":1,"range":8,"bounds":[0.4375,-6.546875,11.234375,22.875]},"42":{"id":42,"letter":"*","x":661,"y":1,"width":64,"height":64,"map":0,"xadvance":13.5625,"xoffset":25.3359375,"yoffset":16.453125,"scale":1,"range":8,"bounds":[0.515625,9.265625,12.8125,21.828125]},"43":{"id":43,"letter":"+","x":727,"y":1,"width":64,"height":64,"map":0,"xadvance":15.140625,"xoffset":24.5234375,"yoffset":22.671875,"scale":1,"range":8,"bounds":[0.515625,2.046875,14.4375,16.609375]},"44":{"id":44,"letter":",","x":793,"y":1,"width":64,"height":64,"map":0,"xadvance":8.984375,"xoffset":28.0078125,"yoffset":31.125,"scale":1,"range":8,"bounds":[-0.1875,-4.171875,8.171875,5.921875]},"45":{"id":45,"letter":"-","x":859,"y":1,"width":64,"height":64,"map":0,"xadvance":13.59375,"xoffset":25.1953125,"yoffset":22.4609375,"scale":1,"range":8,"bounds":[1.125,6.53125,12.484375,12.546875]},"46":{"id":46,"letter":".","x":925,"y":1,"width":64,"height":64,"map":0,"xadvance":8.984375,"xoffset":27.5078125,"yoffset":28.5859375,"scale":1,"range":8,"bounds":[0.828125,-0.3125,8.15625,7.140625]},"47":{"id":47,"letter":"/","x":1,"y":67,"width":64,"height":64,"map":0,"xadvance":10.59375,"xoffset":26.71875,"yoffset":21.96875,"scale":1,"range":8,"bounds":[0.53125,-2.078125,10.03125,22.140625]},"48":{"id":48,"letter":"0","x":67,"y":67,"width":64,"height":64,"map":0,"xadvance":20.15625,"xoffset":21.921875,"yoffset":22.59375,"scale":1,"range":8,"bounds":[0.765625,-0.484375,19.390625,19.296875]},"49":{"id":49,"letter":"1","x":133,"y":67,"width":64,"height":64,"map":0,"xadvance":10.296875,"xoffset":27.5859375,"yoffset":22.15625,"scale":1,"range":8,"bounds":[0.1875,-0.03125,8.640625,19.71875]},"50":{"id":50,"letter":"2","x":199,"y":67,"width":64,"height":64,"map":0,"xadvance":16.546875,"xoffset":23.6875,"yoffset":22.59375,"scale":1,"range":8,"bounds":[0.34375,-0.484375,16.28125,19.296875]},"51":{"id":51,"letter":"3","x":265,"y":67,"width":64,"height":64,"map":0,"xadvance":15.578125,"xoffset":24.234375,"yoffset":22.578125,"scale":1,"range":8,"bounds":[0.453125,-0.453125,15.078125,19.296875]},"52":{"id":52,"letter":"4","x":331,"y":67,"width":64,"height":64,"map":0,"xadvance":17.65625,"xoffset":23.1640625,"yoffset":22.21875,"scale":1,"range":8,"bounds":[0.609375,-0.1875,17.0625,19.75]},"53":{"id":53,"letter":"5","x":397,"y":67,"width":64,"height":64,"map":0,"xadvance":16.15625,"xoffset":24.015625,"yoffset":22.625,"scale":1,"range":8,"bounds":[0.546875,-0.453125,15.421875,19.203125]},"54":{"id":54,"letter":"6","x":463,"y":67,"width":64,"height":64,"map":0,"xadvance":17.765625,"xoffset":23.0390625,"yoffset":22.4375,"scale":1,"range":8,"bounds":[0.765625,-0.359375,17.15625,19.484375]},"55":{"id":55,"letter":"7","x":529,"y":67,"width":64,"height":64,"map":0,"xadvance":15.296875,"xoffset":24.5,"yoffset":22.5,"scale":1,"range":8,"bounds":[0.1875,-0.421875,14.8125,19.421875]},"56":{"id":56,"letter":"8","x":595,"y":67,"width":64,"height":64,"map":0,"xadvance":15.71875,"xoffset":24.1796875,"yoffset":22.515625,"scale":1,"range":8,"bounds":[0.3125,-0.484375,15.328125,19.453125]},"57":{"id":57,"letter":"9","x":661,"y":67,"width":64,"height":64,"map":0,"xadvance":18.078125,"xoffset":23.0078125,"yoffset":22.5625,"scale":1,"range":8,"bounds":[0.765625,-0.578125,17.21875,19.453125]},"58":{"id":58,"letter":":","x":727,"y":67,"width":64,"height":64,"map":0,"xadvance":7.96875,"xoffset":27.984375,"yoffset":25.2265625,"scale":1,"range":8,"bounds":[0.890625,-0.25,7.140625,13.796875]},"59":{"id":59,"letter":";","x":793,"y":67,"width":64,"height":64,"map":0,"xadvance":7.96875,"xoffset":28.8515625,"yoffset":27.1953125,"scale":1,"range":8,"bounds":[-0.84375,-4.1875,7.140625,13.796875]},"60":{"id":60,"letter":"<","x":859,"y":67,"width":64,"height":64,"map":0,"xadvance":12.828125,"xoffset":25.421875,"yoffset":23.0390625,"scale":1,"range":8,"bounds":[1.0625,0.96875,12.09375,16.953125]},"61":{"id":61,"letter":"=","x":925,"y":67,"width":64,"height":64,"map":0,"xadvance":15.421875,"xoffset":24.234375,"yoffset":22.375,"scale":1,"range":8,"bounds":[1.15625,4.625,14.375,14.625]},"62":{"id":62,"letter":">","x":1,"y":133,"width":64,"height":64,"map":0,"xadvance":12.828125,"xoffset":25.6875,"yoffset":22.9140625,"scale":1,"range":8,"bounds":[0.8125,1.09375,11.8125,17.078125]},"63":{"id":63,"letter":"?","x":67,"y":133,"width":64,"height":64,"map":0,"xadvance":13.5,"xoffset":25.234375,"yoffset":21.171875,"scale":1,"range":8,"bounds":[0.4375,-0.390625,13.09375,22.046875]},"64":{"id":64,"letter":"@","x":133,"y":133,"width":64,"height":64,"map":0,"xadvance":21.984375,"xoffset":21.25,"yoffset":21.0390625,"scale":1,"range":8,"bounds":[0.859375,-0.578125,20.640625,22.5]},"65":{"id":65,"letter":"A","x":199,"y":133,"width":64,"height":64,"map":0,"xadvance":22.203125,"xoffset":20.9296875,"yoffset":20.9140625,"scale":1,"range":8,"bounds":[0.09375,-0.125,22.046875,22.296875]},"66":{"id":66,"letter":"B","x":265,"y":133,"width":64,"height":64,"map":0,"xadvance":20.453125,"xoffset":21.359375,"yoffset":21.1015625,"scale":1,"range":8,"bounds":[1.375,-0.1875,19.90625,21.984375]},"67":{"id":67,"letter":"C","x":331,"y":133,"width":64,"height":64,"map":0,"xadvance":19.9375,"xoffset":21.7265625,"yoffset":21.0546875,"scale":1,"range":8,"bounds":[0.859375,-0.546875,19.6875,22.4375]},"68":{"id":68,"letter":"D","x":397,"y":133,"width":64,"height":64,"map":0,"xadvance":22.8125,"xoffset":20.3359375,"yoffset":21.0703125,"scale":1,"range":8,"bounds":[1.5,-0.09375,21.828125,21.953125]},"69":{"id":69,"letter":"E","x":463,"y":133,"width":64,"height":64,"map":0,"xadvance":18.078125,"xoffset":22.59375,"yoffset":21.15625,"scale":1,"range":8,"bounds":[1.375,-0.234375,17.4375,21.921875]},"70":{"id":70,"letter":"F","x":529,"y":133,"width":64,"height":64,"map":0,"xadvance":17.984375,"xoffset":22.5627441406,"yoffset":21.0390625,"scale":1,"range":8,"bounds":[1.29638671875,-0.21875,17.578125,22.140625]},"71":{"id":71,"letter":"G","x":595,"y":133,"width":64,"height":64,"map":0,"xadvance":22.75,"xoffset":20.5693359375,"yoffset":20.9765625,"scale":1,"range":8,"bounds":[0.859375,-0.390625,22.001953125,22.4375]},"72":{"id":72,"letter":"H","x":661,"y":133,"width":64,"height":64,"map":0,"xadvance":23.84375,"xoffset":20.078125,"yoffset":21.0859375,"scale":1,"range":8,"bounds":[1.4375,-0.09375,22.40625,21.921875]},"73":{"id":73,"letter":"I","x":727,"y":133,"width":64,"height":64,"map":0,"xadvance":9.53125,"xoffset":27.2578125,"yoffset":21.1015625,"scale":1,"range":8,"bounds":[1.34375,-0.125,8.140625,21.921875]},"74":{"id":74,"letter":"J","x":793,"y":133,"width":64,"height":64,"map":0,"xadvance":10.78125,"xoffset":27.3984375,"yoffset":22.9453125,"scale":1,"range":8,"bounds":[0.046875,-3.78125,9.15625,21.890625]},"75":{"id":75,"letter":"K","x":859,"y":133,"width":64,"height":64,"map":0,"xadvance":21.03125,"xoffset":20.9453125,"yoffset":21.1171875,"scale":1,"range":8,"bounds":[1.4375,-0.15625,20.671875,21.921875]},"76":{"id":76,"letter":"L","x":925,"y":133,"width":64,"height":64,"map":0,"xadvance":17.5,"xoffset":22.6484375,"yoffset":21.1796875,"scale":1,"range":8,"bounds":[1.546875,-0.265625,17.15625,21.90625]},"77":{"id":77,"letter":"M","x":1,"y":199,"width":64,"height":64,"map":0,"xadvance":26.203125,"xoffset":18.9140625,"yoffset":21.1171875,"scale":1,"range":8,"bounds":[1.4375,-0.3125,24.734375,22.078125]},"78":{"id":78,"letter":"N","x":67,"y":199,"width":64,"height":64,"map":0,"xadvance":23.8125,"xoffset":20.109375,"yoffset":20.9140625,"scale":1,"range":8,"bounds":[1.4375,-0.0625,22.34375,22.234375]},"79":{"id":79,"letter":"O","x":133,"y":199,"width":64,"height":64,"map":0,"xadvance":24.03125,"xoffset":20,"yoffset":21.0390625,"scale":1,"range":8,"bounds":[0.859375,-0.578125,23.140625,22.5]},"80":{"id":80,"letter":"P","x":199,"y":199,"width":64,"height":64,"map":0,"xadvance":20.859375,"xoffset":21.2587316176,"yoffset":21.09375,"scale":1,"range":8,"bounds":[1.32628676471,-0.109375,20.15625,21.921875]},"81":{"id":81,"letter":"Q","x":265,"y":199,"width":64,"height":64,"map":0,"xadvance":24.03125,"xoffset":20,"yoffset":22.703125,"scale":1,"range":8,"bounds":[0.859375,-3.90625,23.140625,22.5]},"82":{"id":82,"letter":"R","x":331,"y":199,"width":64,"height":64,"map":0,"xadvance":20.390625,"xoffset":21.25,"yoffset":21.0390625,"scale":1,"range":8,"bounds":[1.4375,-0.09375,20.0625,22.015625]},"83":{"id":83,"letter":"S","x":397,"y":199,"width":64,"height":64,"map":0,"xadvance":13.25,"xoffset":25.609375,"yoffset":21.1171875,"scale":1,"range":8,"bounds":[0.6875,-0.8125,12.09375,22.578125]},"84":{"id":84,"letter":"T","x":463,"y":199,"width":64,"height":64,"map":0,"xadvance":16.890625,"xoffset":23.5859375,"yoffset":21.0078125,"scale":1,"range":8,"bounds":[0.171875,-0.125,16.65625,22.109375]},"85":{"id":85,"letter":"U","x":529,"y":199,"width":64,"height":64,"map":0,"xadvance":21.734375,"xoffset":21.140625,"yoffset":21.25,"scale":1,"range":8,"bounds":[1.359375,-0.421875,20.359375,21.921875]},"86":{"id":86,"letter":"V","x":595,"y":199,"width":64,"height":64,"map":0,"xadvance":20.890625,"xoffset":21.515625,"yoffset":21.0703125,"scale":1,"range":8,"bounds":[0.953125,-0.0625,20.015625,21.921875]},"87":{"id":87,"letter":"W","x":661,"y":199,"width":64,"height":64,"map":0,"xadvance":30.046875,"xoffset":16.9453125,"yoffset":21.0859375,"scale":1,"range":8,"bounds":[0.921875,-0.09375,29.1875,21.921875]},"88":{"id":88,"letter":"X","x":727,"y":199,"width":64,"height":64,"map":0,"xadvance":19.71875,"xoffset":22.1796875,"yoffset":21.0625,"scale":1,"range":8,"bounds":[0.953125,-0.078125,18.6875,21.953125]},"89":{"id":89,"letter":"Y","x":793,"y":199,"width":64,"height":64,"map":0,"xadvance":19.875,"xoffset":22.078125,"yoffset":21.0859375,"scale":1,"range":8,"bounds":[0.484375,-0.09375,19.359375,21.921875]},"90":{"id":90,"letter":"Z","x":859,"y":199,"width":64,"height":64,"map":0,"xadvance":17.28125,"xoffset":23.3203125,"yoffset":21.0859375,"scale":1,"range":8,"bounds":[1,-0.25,16.359375,22.078125]},"91":{"id":91,"letter":"[","x":925,"y":199,"width":64,"height":64,"map":0,"xadvance":13.09375,"xoffset":24.734375,"yoffset":24,"scale":1,"range":8,"bounds":[2.015625,-6.078125,12.515625,22.078125]},"92":{"id":92,"letter":"\\","x":1,"y":265,"width":64,"height":64,"map":0,"xadvance":10.59375,"xoffset":26.734375,"yoffset":21.9765625,"scale":1,"range":8,"bounds":[0.625,-2,9.90625,22.046875]},"93":{"id":93,"letter":"]","x":67,"y":265,"width":64,"height":64,"map":0,"xadvance":13.09375,"xoffset":25.5234375,"yoffset":24.000390625,"scale":1,"range":8,"bounds":[1.234375,-6.07890625,11.71875,22.078125]},"94":{"id":94,"letter":"^","x":133,"y":265,"width":64,"height":64,"map":0,"xadvance":16.671875,"xoffset":23.5703125,"yoffset":17.46875,"scale":1,"range":8,"bounds":[0.703125,8.671875,16.15625,20.390625]},"95":{"id":95,"letter":"_","x":199,"y":265,"width":64,"height":64,"map":0,"xadvance":14.75,"xoffset":24.7109375,"yoffset":36.2578125,"scale":1,"range":8,"bounds":[-0.3125,-6.5,14.890625,-2.015625]},"96":{"id":96,"letter":"`","x":265,"y":265,"width":64,"height":64,"map":0,"xadvance":11.84375,"xoffset":26.453125,"yoffset":11.875,"scale":1,"range":8,"bounds":[0.828125,16.921875,10.265625,23.328125]},"97":{"id":97,"letter":"a","x":331,"y":265,"width":64,"height":64,"map":0,"xadvance":18.8125,"xoffset":22.875,"yoffset":24.421875,"scale":1,"range":8,"bounds":[0.671875,-0.359375,17.578125,15.515625]},"98":{"id":98,"letter":"b","x":397,"y":265,"width":64,"height":64,"map":0,"xadvance":18.84375,"xoffset":22.359375,"yoffset":20.859375,"scale":1,"range":8,"bounds":[1.015625,-0.1875,18.265625,22.46875]},"99":{"id":99,"letter":"c","x":463,"y":265,"width":64,"height":64,"map":0,"xadvance":13.3125,"xoffset":25.21875,"yoffset":24.3046875,"scale":1,"range":8,"bounds":[0.578125,-0.390625,12.984375,15.78125]},"100":{"id":100,"letter":"d","x":529,"y":265,"width":64,"height":64,"map":0,"xadvance":18.875,"xoffset":22.75,"yoffset":20.8125,"scale":1,"range":8,"bounds":[0.609375,-0.1875,17.890625,22.5625]},"101":{"id":101,"letter":"e","x":595,"y":265,"width":64,"height":64,"map":0,"xadvance":16.03125,"xoffset":23.859375,"yoffset":24.2890625,"scale":1,"range":8,"bounds":[0.640625,-0.453125,15.640625,15.875]},"102":{"id":102,"letter":"f","x":661,"y":265,"width":64,"height":64,"map":0,"xadvance":11.296875,"xoffset":26.34375,"yoffset":20.578125,"scale":1,"range":8,"bounds":[0.375,-0.09375,10.9375,22.9375]},"103":{"id":103,"letter":"g","x":727,"y":265,"width":64,"height":64,"map":0,"xadvance":18.265625,"xoffset":23.2109375,"yoffset":26.3984375,"scale":1,"range":8,"bounds":[0.578125,-4.3125,17,15.515625]},"104":{"id":104,"letter":"h","x":793,"y":265,"width":64,"height":64,"map":0,"xadvance":18.140625,"xoffset":23,"yoffset":20.921875,"scale":1,"range":8,"bounds":[1.078125,-0.125,16.921875,22.28125]},"105":{"id":105,"letter":"i","x":859,"y":265,"width":64,"height":64,"map":0,"xadvance":8.796875,"xoffset":27.6015625,"yoffset":21.296875,"scale":1,"range":8,"bounds":[1.28125,-0.09375,7.515625,21.5]},"106":{"id":106,"letter":"j","x":925,"y":265,"width":64,"height":64,"map":0,"xadvance":8.890625,"xoffset":28.4296875,"yoffset":23.296875,"scale":1,"range":8,"bounds":[-0.46875,-4.1875,7.609375,21.59375]},"107":{"id":107,"letter":"k","x":1,"y":331,"width":64,"height":64,"map":0,"xadvance":19.234375,"xoffset":21.984375,"yoffset":20.84375,"scale":1,"range":8,"bounds":[1.34375,-0.09375,18.6875,22.40625]},"108":{"id":108,"letter":"l","x":67,"y":331,"width":64,"height":64,"map":0,"xadvance":8.546875,"xoffset":27.7332175926,"yoffset":21.0859375,"scale":1,"range":8,"bounds":[1.09375,-0.125,7.43981481481,21.953125]},"109":{"id":109,"letter":"m","x":133,"y":331,"width":64,"height":64,"map":0,"xadvance":27.9375,"xoffset":18.2734375,"yoffset":24.2890625,"scale":1,"range":8,"bounds":[1.15625,-0.09375,26.296875,15.515625]},"110":{"id":110,"letter":"n","x":199,"y":331,"width":64,"height":64,"map":0,"xadvance":18.140625,"xoffset":23.109375,"yoffset":24.3203125,"scale":1,"range":8,"bounds":[0.921875,-0.09375,16.859375,15.453125]},"111":{"id":111,"letter":"o","x":265,"y":331,"width":64,"height":64,"map":0,"xadvance":16.921875,"xoffset":23.53125,"yoffset":24.3359375,"scale":1,"range":8,"bounds":[0.578125,-0.3125,16.359375,15.640625]},"112":{"id":112,"letter":"p","x":331,"y":331,"width":64,"height":64,"map":0,"xadvance":19.265625,"xoffset":22.078125,"yoffset":26.7734375,"scale":1,"range":8,"bounds":[1.28125,-4.90625,18.5625,15.359375]},"113":{"id":113,"letter":"q","x":397,"y":331,"width":64,"height":64,"map":0,"xadvance":18.9375,"xoffset":22.9140625,"yoffset":26.5703125,"scale":1,"range":8,"bounds":[0.609375,-4.890625,17.5625,15.75]},"114":{"id":114,"letter":"r","x":463,"y":331,"width":64,"height":64,"map":0,"xadvance":12.1875,"xoffset":25.6484375,"yoffset":24.3359375,"scale":1,"range":8,"bounds":[0.859375,-0.09375,11.84375,15.421875]},"115":{"id":115,"letter":"s","x":529,"y":331,"width":64,"height":64,"map":0,"xadvance":11.390625,"xoffset":26.4375,"yoffset":24.1484375,"scale":1,"range":8,"bounds":[0.65625,-0.578125,10.46875,16.28125]},"116":{"id":116,"letter":"t","x":595,"y":331,"width":64,"height":64,"map":0,"xadvance":12.09375,"xoffset":25.953125,"yoffset":22.0078125,"scale":1,"range":8,"bounds":[0.3125,-0.28125,11.78125,20.265625]},"117":{"id":117,"letter":"u","x":661,"y":331,"width":64,"height":64,"map":0,"xadvance":18.65625,"xoffset":22.65625,"yoffset":24.640625,"scale":1,"range":8,"bounds":[1.28125,-0.15625,17.40625,14.875]},"118":{"id":118,"letter":"v","x":727,"y":331,"width":64,"height":64,"map":0,"xadvance":17.15625,"xoffset":23.4375,"yoffset":24.625,"scale":1,"range":8,"bounds":[0.765625,-0.125,16.359375,14.875]},"119":{"id":119,"letter":"w","x":793,"y":331,"width":64,"height":64,"map":0,"xadvance":24.21875,"xoffset":19.8828125,"yoffset":24.59375,"scale":1,"range":8,"bounds":[0.484375,-0.09375,23.75,14.90625]},"120":{"id":120,"letter":"x","x":859,"y":331,"width":64,"height":64,"map":0,"xadvance":15.640625,"xoffset":24.15625,"yoffset":24.625,"scale":1,"range":8,"bounds":[0.578125,-0.125,15.109375,14.875]},"121":{"id":121,"letter":"y","x":925,"y":331,"width":64,"height":64,"map":0,"xadvance":17.21875,"xoffset":23.296875,"yoffset":27.171875,"scale":1,"range":8,"bounds":[0.734375,-5.21875,16.671875,14.875]},"122":{"id":122,"letter":"z","x":1,"y":397,"width":64,"height":64,"map":0,"xadvance":14.96875,"xoffset":24.1875,"yoffset":24.5625,"scale":1,"range":8,"bounds":[0.859375,-0.203125,14.765625,15.078125]},"123":{"id":123,"letter":"{","x":67,"y":397,"width":64,"height":64,"map":0,"xadvance":12.515625,"xoffset":25.8515625,"yoffset":23.96875,"scale":1,"range":8,"bounds":[0.953125,-6.5,11.34375,22.5625]},"124":{"id":124,"letter":"|","x":133,"y":397,"width":64,"height":64,"map":0,"xadvance":9.953125,"xoffset":27.0854166667,"yoffset":21.9765625,"scale":1,"range":8,"bounds":[2.90625,-2.1875,6.92291666667,22.234375]},"125":{"id":125,"letter":"}","x":199,"y":397,"width":64,"height":64,"map":0,"xadvance":12.515625,"xoffset":25.640625,"yoffset":23.96875,"scale":1,"range":8,"bounds":[1.171875,-6.5,11.546875,22.5625]},"126":{"id":126,"letter":"~","x":265,"y":397,"width":64,"height":64,"map":0,"xadvance":17.28125,"xoffset":23.265625,"yoffset":22.28125,"scale":1,"range":8,"bounds":[0.171875,5.484375,17.296875,13.953125]}},"kerning":{}},"preload":true,"tags":[],"i18n":{},"id":"79465530"},"79465795":{"name":"GetHeightFromURLParams.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"getHeightFromUrlparams":{"attributesOrder":[],"attributes":{}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"79465795"},"79469394":{"name":"showHeightAndWidth.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"showHeightAndWidth":{"attributesOrder":["width","height","hideInterval","baseScaleWidth","baseScaleHeight","physicalHeight","physicalWidth","ImageEntity"],"attributes":{"width":{"type":"entity"},"height":{"type":"entity"},"hideInterval":{"type":"number"},"physicalHeight":{"type":"number"},"physicalWidth":{"type":"number"},"ImageEntity":{"type":"entity"},"baseScaleWidth":{"type":"number"},"baseScaleHeight":{"type":"number"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"79469394"},"82175600":{"name":"button-logic.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"buttonLogic":{"attributesOrder":["textEntity","description","model"],"attributes":{"textEntity":{"type":"entity","description":"The entity that we want to update when the button is clicked"},"description":{"type":"string"},"model":{"type":"entity"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"82175600"},"82307731":{"name":"buttonLogic2.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"buttonLogic2":{"attributesOrder":["textEntity","description","model"],"attributes":{"textEntity":{"type":"entity","description":"The entity that we want to update when the button is clicked"},"description":{"type":"string"},"model":{"type":"entity"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"82307731"},"85570528":{"name":"1_white bricks texture-seamless.jpg","type":"texture","file":{"filename":"1_white bricks texture-seamless.jpg","size":448379,"hash":"2584eda7e31a4ad4c3ca18b389d44555","variants":{},"url":"files/assets/85570528/1/1_white%20bricks%20texture-seamless.jpg"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"85570528"},"85570629":{"name":"25_white bricks texture-seamless.jpg","type":"texture","file":{"filename":"25_white bricks texture-seamless.jpg","size":508599,"hash":"2376024584e99abdc1e91d611ecd1e9b","variants":{},"url":"files/assets/85570629/1/25_white%20bricks%20texture-seamless.jpg"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"85570629"},"86059723":{"name":"Button","type":"material","file":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":null,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0.8196078431372549,0.8196078431372549,0.8196078431372549],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":null,"opacityMapChannel":"r","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"86059723"},"86079364":{"name":"sliderHorizontal.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"sliderHorizontal":{"attributesOrder":["Selected","SliderValue","MinLimit","MaxLimit","RoomWidth","RoomWidthText","MinLimitOffset","MaxLimitOffset"],"attributes":{"Selected":{"type":"number","default":0},"MinLimit":{"type":"entity"},"MaxLimit":{"type":"entity"},"MinLimitOffset":{"type":"number","default":0},"MaxLimitOffset":{"type":"number","default":0},"SliderValue":{"type":"number","default":0},"RoomWidth":{"type":"entity"},"RoomWidthText":{"type":"entity"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"86079364"},"86144986":{"name":"sliderVertical.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"sliderVertical":{"attributesOrder":["Selected","SliderValue","MinLimit","MaxLimit","Ceiling","CeilingHeightText","MinLimitOffset","MaxLimitOffset","RaiseFactor"],"attributes":{"Selected":{"type":"number","default":0},"SliderValue":{"type":"number","default":0},"MinLimit":{"type":"entity"},"MaxLimit":{"type":"entity"},"MinLimitOffset":{"type":"number","default":0},"MaxLimitOffset":{"type":"number","default":0},"Ceiling":{"type":"entity"},"RaiseFactor":{"type":"number","default":1},"CeilingHeightText":{"type":"entity"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"86144986"},"86147006":{"name":"scaleSlider.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"scaleSlider":{"attributesOrder":["Selected","SliderValue","MinLimit","MaxLimit","Model","ModelHeightText","ParentPlane","MinLimitOffset","MaxLimitOffset","RaiseFactor"],"attributes":{"Selected":{"type":"number","default":0},"SliderValue":{"type":"number","default":0},"MinLimit":{"type":"entity"},"MaxLimit":{"type":"entity"},"MinLimitOffset":{"type":"number","default":0},"MaxLimitOffset":{"type":"number","default":0},"RaiseFactor":{"type":"number","default":1},"Model":{"type":"entity"},"ModelHeightText":{"type":"entity"},"ParentPlane":{"type":"entity"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"86147006"},"86173566":{"name":"SliderHorizontal.png","type":"texture","file":{"filename":"SliderHorizontal.png","size":4832,"hash":"9baec53ced12bb0f97c5ffcad65a8442","variants":{},"url":"files/assets/86173566/1/SliderHorizontal.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"86173566"},"86173567":{"name":"Slider.png","type":"texture","file":{"filename":"Slider.png","size":5911,"hash":"0fc6a27983bb80cc8452a61cbbac3afd","variants":{},"url":"files/assets/86173567/1/Slider.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"86173567"},"86173568":{"name":"SliderKnot.png","type":"texture","file":{"filename":"SliderKnot.png","size":10555,"hash":"a6cb193c788ac08574ac4d32fdcbe120","variants":{},"url":"files/assets/86173568/1/SliderKnot.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":false},"preload":true,"tags":[],"i18n":{},"id":"86173568"},"86173570":{"name":"HorizontalSlider","type":"material","file":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":86173567,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":null,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":true,"alphaTest":0,"alphaFade":1,"opacity":1,"opacityMap":86174925,"opacityMapChannel":"a","opacityMapUv":1,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":2,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"86173570"},"86174697":{"name":"HorizonAlpha.png","type":"texture","file":{"filename":"HorizonAlpha.png","size":4882,"hash":"17c8477a4a4d0708ac36dc8cac7c141d","variants":{},"url":"files/assets/86174697/1/HorizonAlpha.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"86174697"},"86174925":{"name":"HorAlpha.png","type":"texture","file":{"filename":"HorAlpha.png","size":4792,"hash":"9418680d548ea5be66bc2086bba06da2","variants":{},"url":"files/assets/86174925/1/HorAlpha.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":false},"preload":true,"tags":[],"i18n":{},"id":"86174925"},"86175118":{"name":"SliderMat","type":"material","file":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":86173566,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":2,"emissive":[0,0,0],"emissiveMap":86173566,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":0.41,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0,"alphaFade":1,"opacity":0.87,"opacityMap":86173566,"opacityMapChannel":"a","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":2,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"86175118"},"86175481":{"name":"SliderKnot","type":"material","file":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":86173568,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":2,"emissive":[0,0,0],"emissiveMap":86173568,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":0.99,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0.027,"alphaFade":1,"opacity":1,"opacityMap":86173568,"opacityMapChannel":"a","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":2,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"86175481"},"86175694":{"name":"VerticalSlider","type":"material","file":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":89683130,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":0,"emissive":[0,0,0],"emissiveMap":89683130,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0.196,"alphaFade":1,"opacity":1,"opacityMap":89683130,"opacityMapChannel":"a","opacityMapUv":1,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"86175694"},"86175751":{"name":"HorSLiderAlpha.png","type":"texture","file":{"filename":"HorSLiderAlpha.png","size":5765,"hash":"cff7df8f3c85cbf4ff996366b1b2d56f","variants":{},"url":"files/assets/86175751/1/HorSLiderAlpha.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"86175751"},"86181995":{"name":"Arrow.png","type":"texture","file":{"filename":"Arrow.png","size":10266,"hash":"23bb55b401eae5f168ea244fa7553f3b","variants":{},"url":"files/assets/86181995/1/Arrow.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"86181995"},"86182389":{"name":"SliderVisible.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"sliderVisible":{"attributesOrder":["SliderEntity","Interval"],"attributes":{"SliderEntity":{"type":"entity"},"Interval":{"type":"number","default":5}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"86182389"},"86202215":{"name":"41_white bricks texture-seamless.jpg","type":"texture","file":{"filename":"41_white bricks texture-seamless.jpg","size":709349,"hash":"abb46f3dde4c7bce2c25d9e7fa55162b","variants":{},"url":"files/assets/86202215/1/41_white%20bricks%20texture-seamless.jpg"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"86202215"},"86761091":{"name":"FarshArLoadingScreen.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{},"loading":true,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"86761091"},"87530980":{"name":"LadyModel.png","type":"texture","file":{"filename":"LadyModel.png","size":253256,"hash":"092eaa9b86b478b92b00a779f17bbe9b","variants":{},"url":"files/assets/87530980/1/LadyModel.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"87530980"},"87532120":{"name":"Lady","type":"material","file":null,"data":{"ambient":[0,0,0],"ambientTint":false,"aoMap":null,"aoMapChannel":"r","aoMapUv":0,"aoMapTiling":[1,1],"aoMapOffset":[0,0],"diffuse":[1,1,1],"diffuseMap":87530980,"diffuseMapChannel":"rgb","diffuseMapUv":0,"diffuseMapTiling":[1,1],"diffuseMapOffset":[0,0],"specular":[0.23,0.23,0.23],"specularMap":null,"specularMapChannel":"rgb","specularMapUv":0,"specularMapTiling":[1,1],"specularMapOffset":[0,0],"specularAntialias":true,"occludeSpecular":1,"enableGGXSpecular":false,"anisotropy":0,"useMetalness":false,"metalness":1,"metalnessMap":null,"metalnessMapChannel":"r","metalnessMapUv":0,"metalnessMapTiling":[1,1],"metalnessMapOffset":[0,0],"conserveEnergy":true,"shininess":32,"glossMap":null,"glossMapChannel":"r","glossMapUv":0,"glossMapTiling":[1,1],"glossMapOffset":[0,0],"clearCoat":0,"clearCoatMap":null,"clearCoatMapChannel":"r","clearCoatMapUv":0,"clearCoatMapTiling":[1,1],"clearCoatMapOffset":[0,0],"clearCoatVertexColor":false,"clearCoatVertexColorChannel":"r","clearCoatGlossiness":1,"clearCoatGlossMap":null,"clearCoatGlossMapChannel":"r","clearCoatGlossMapUv":0,"clearCoatGlossMapTiling":[1,1],"clearCoatGlossMapOffset":[0,0],"clearCoatGlossVertexColor":false,"clearCoatGlossVertexColorChannel":"r","clearCoatBumpiness":1,"clearCoatNormalMap":null,"clearCoatNormalMapUv":0,"clearCoatNormalMapTiling":[1,1],"clearCoatNormalMapOffset":[0,0],"fresnelModel":2,"emissive":[0,0,0],"emissiveMap":87530980,"emissiveMapChannel":"rgb","emissiveMapUv":0,"emissiveMapTiling":[1,1],"emissiveMapOffset":[0,0],"emissiveIntensity":1.05,"normalMap":null,"normalMapTiling":[1,1],"normalMapOffset":[0,0],"normalMapUv":0,"bumpMapFactor":1,"heightMap":null,"heightMapChannel":"r","heightMapUv":0,"heightMapTiling":[1,1],"heightMapOffset":[0,0],"heightMapFactor":1,"alphaToCoverage":false,"alphaTest":0.686,"alphaFade":1,"opacity":1,"opacityMap":87530980,"opacityMapChannel":"a","opacityMapUv":0,"opacityMapTiling":[1,1],"opacityMapOffset":[0,0],"opacityFadesSpecular":true,"reflectivity":1,"refraction":0,"refractionIndex":0.6666666666666666,"sphereMap":null,"cubeMap":null,"cubeMapProjection":0,"cubeMapProjectionBox":{"center":[0,0,0],"halfExtents":[0.5,0.5,0.5]},"lightMap":null,"lightMapChannel":"rgb","lightMapUv":1,"lightMapTiling":[1,1],"lightMapOffset":[0,0],"depthTest":true,"depthWrite":true,"cull":1,"blendType":3,"shader":"blinn","useFog":true,"useLighting":true,"useSkybox":true,"useGammaTonemap":true,"aoMapVertexColor":false,"diffuseMapVertexColor":false,"emissiveMapVertexColor":false,"specularMapVertexColor":false,"metalnessMapVertexColor":false,"opacityMapVertexColor":false,"glossMapVertexColor":false,"lightMapVertexColor":false,"diffuseMapTint":false,"specularMapTint":false,"emissiveMapTint":false,"metalnessMapTint":false},"preload":true,"tags":[],"i18n":{},"id":"87532120"},"89559195":{"name":"uiSlider.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"uiSlider":{"attributesOrder":["handle","axis","upperLimit","lowerLimit","val"],"attributes":{"handle":{"type":"entity","default":null,"title":"Handle"},"axis":{"type":"string","default":"y","title":"Axis","description":"lock drag to axis: x, y or xy"},"upperLimit":{"type":"entity","default":null,"title":"upperLimit"},"lowerLimit":{"type":"entity","default":null,"title":"lowerLimit"},"val":{"type":"number","default":0}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"89559195"},"89683130":{"name":"VertSlider.png","type":"texture","file":{"filename":"VertSlider.png","size":5375,"hash":"2e2ba786621d705a5a3c67508d404eed","variants":{},"url":"files/assets/89683130/1/VertSlider.png"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":false},"preload":true,"tags":[],"i18n":{},"id":"89683130"},"89696259":{"name":"posteffect-fxaa.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"order":100,"scripts":{"fxaa":{"attributesOrder":[],"attributes":{}}},"loadingType":0,"loading":false},"preload":true,"tags":[],"i18n":{},"id":"89696259"},"89697541":{"name":"ceilingHeightController.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"ceilingHeightController":{"attributesOrder":["ceiling","sliderKnot","ceilText"],"attributes":{"ceiling":{"type":"entity","default":null,"title":"ceiling"},"sliderKnot":{"type":"entity","default":null,"title":"sliderKnot"},"ceilText":{"type":"entity","default":null,"title":"sliderKnot"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"89697541"},"89706577":{"name":"Debug.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"debug":{"attributesOrder":["sliderKnot"],"attributes":{"sliderKnot":{"type":"entity","default":null,"title":"sliderKnot"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"89706577"},"89717413":{"name":"roomWidthController.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"roomWidthController":{"attributesOrder":["room","sliderKnot","initialWidthScale","minWidth","maxWidth","UiWidthText"],"attributes":{"room":{"type":"entity","default":null,"title":"room"},"sliderKnot":{"type":"entity","default":null,"title":"sliderKnot"},"initialWidthScale":{"type":"number","default":0.5},"minWidth":{"type":"number","default":3.6},"maxWidth":{"type":"number","default":6},"UiWidthText":{"type":"entity","default":null,"title":"UiWidthText"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"89717413"},"91478011":{"name":"follow-world-target.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"followWorldTarget":{"attributesOrder":["target","camera"],"attributes":{"target":{"type":"entity"},"camera":{"type":"entity"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"91478011"},"91587903":{"name":"Resize.PNG","type":"texture","file":{"filename":"Resize.PNG","size":4397,"hash":"536b76cd95b9b06a21bae023e5fa92cc","variants":{},"url":"files/assets/91587903/1/Resize.PNG"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"91587903"},"91591081":{"name":"Blank.PNG","type":"texture","file":{"filename":"Blank.PNG","size":2919,"hash":"850c38d35e02e7595f34d029fdbcf1fd","variants":{},"url":"files/assets/91591081/1/Blank.PNG"},"data":{"addressu":"repeat","addressv":"repeat","minfilter":"linear_mip_linear","magfilter":"linear","anisotropy":1,"rgbm":false,"mipmaps":true},"preload":true,"tags":[],"i18n":{},"id":"91591081"},"91600010":{"name":"WorkSans-VariableFont_wght.ttf","type":"font","file":{"filename":"WorkSans-VariableFont_wght.png","hash":"ce345ee42ef213c9877d413f3e0d8ebd","size":101738,"url":"files/assets/91600010/1/WorkSans-VariableFont_wght.png"},"data":{"version":2,"intensity":0,"info":{"face":"WorkSans-VariableFont_wght","maps":[{"width":1024,"height":512}]},"chars":{"32":{"id":32,"letter":" ","x":1,"y":1,"width":64,"height":64,"map":0,"xadvance":10.912,"xoffset":31.5,"yoffset":31.5,"scale":1,"range":8},"33":{"id":33,"letter":"!","x":67,"y":1,"width":64,"height":64,"map":0,"xadvance":8.704,"xoffset":27.648,"yoffset":21.6,"scale":1,"range":8,"bounds":[2.272,-0.32,6.432,21.12]},"34":{"id":34,"letter":"\"","x":133,"y":1,"width":64,"height":64,"map":0,"xadvance":12.896,"xoffset":25.264,"yoffset":13.872,"scale":1,"range":8,"bounds":[2.624,14.176,10.848,22.08]},"35":{"id":35,"letter":"#","x":199,"y":1,"width":64,"height":64,"map":0,"xadvance":20.448,"xoffset":21.776,"yoffset":21.44,"scale":1,"range":8,"bounds":[0.64,0,19.808,21.12]},"36":{"id":36,"letter":"$","x":265,"y":1,"width":64,"height":64,"map":0,"xadvance":19.904,"xoffset":22.304,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.344,-3.2,18.048,24.32]},"37":{"id":37,"letter":"%","x":331,"y":1,"width":64,"height":64,"map":0,"xadvance":27.392,"xoffset":18.304,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.28,-0.32,26.112,21.44]},"38":{"id":38,"letter":"&","x":397,"y":1,"width":64,"height":64,"map":0,"xadvance":19.936,"xoffset":21.2,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.536,-0.32,20.064,21.44]},"39":{"id":39,"letter":"'","x":463,"y":1,"width":64,"height":64,"map":0,"xadvance":7.488,"xoffset":27.968,"yoffset":13.872,"scale":1,"range":8,"bounds":[2.624,14.176,5.44,22.08]},"40":{"id":40,"letter":"(","x":529,"y":1,"width":64,"height":64,"map":0,"xadvance":11.2,"xoffset":25.888,"yoffset":23.008,"scale":1,"range":8,"bounds":[1.952,-6.048,10.272,24.032]},"41":{"id":41,"letter":")","x":595,"y":1,"width":64,"height":64,"map":0,"xadvance":11.2,"xoffset":26.912,"yoffset":23.008,"scale":1,"range":8,"bounds":[0.928,-6.048,9.248,24.032]},"42":{"id":42,"letter":"*","x":661,"y":1,"width":64,"height":64,"map":0,"xadvance":18.304,"xoffset":22.848,"yoffset":15.744,"scale":1,"range":8,"bounds":[1.696,9.152,16.608,23.36]},"43":{"id":43,"letter":"+","x":727,"y":1,"width":64,"height":64,"map":0,"xadvance":19.328,"xoffset":22.336,"yoffset":21.888,"scale":1,"range":8,"bounds":[1.888,2.176,17.44,18.048]},"44":{"id":44,"letter":",","x":793,"y":1,"width":64,"height":64,"map":0,"xadvance":8.512,"xoffset":27.76,"yoffset":32.416,"scale":1,"range":8,"bounds":[1.824,-4.672,6.656,3.84]},"45":{"id":45,"letter":"-","x":859,"y":1,"width":64,"height":64,"map":0,"xadvance":16.32,"xoffset":23.84,"yoffset":23.632,"scale":1,"range":8,"bounds":[2.88,7.04,13.44,9.696]},"46":{"id":46,"letter":".","x":925,"y":1,"width":64,"height":64,"map":0,"xadvance":8.512,"xoffset":27.744,"yoffset":30.24,"scale":1,"range":8,"bounds":[2.176,-0.32,6.336,3.84]},"47":{"id":47,"letter":"/","x":1,"y":67,"width":64,"height":64,"map":0,"xadvance":13.984,"xoffset":25.008,"yoffset":21.44,"scale":1,"range":8,"bounds":[0.896,-2.24,13.088,23.36]},"48":{"id":48,"letter":"0","x":67,"y":67,"width":64,"height":64,"map":0,"xadvance":19.904,"xoffset":22.048,"yoffset":21.44,"scale":1,"range":8,"bounds":[2.08,-0.32,17.824,21.44]},"49":{"id":49,"letter":"1","x":133,"y":67,"width":64,"height":64,"map":0,"xadvance":12.48,"xoffset":27.104,"yoffset":21.44,"scale":1,"range":8,"bounds":[0.576,0,9.216,21.12]},"50":{"id":50,"letter":"2","x":199,"y":67,"width":64,"height":64,"map":0,"xadvance":18.656,"xoffset":22.864,"yoffset":21.28,"scale":1,"range":8,"bounds":[1.696,0,16.576,21.44]},"51":{"id":51,"letter":"3","x":265,"y":67,"width":64,"height":64,"map":0,"xadvance":18.656,"xoffset":23.04,"yoffset":21.424,"scale":1,"range":8,"bounds":[1.376,-0.32,16.544,21.472]},"52":{"id":52,"letter":"4","x":331,"y":67,"width":64,"height":64,"map":0,"xadvance":19.552,"xoffset":22.288,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.408,0,18.016,21.12]},"53":{"id":53,"letter":"5","x":397,"y":67,"width":64,"height":64,"map":0,"xadvance":18.624,"xoffset":22.688,"yoffset":21.6,"scale":1,"range":8,"bounds":[2.016,-0.32,16.608,21.12]},"54":{"id":54,"letter":"6","x":463,"y":67,"width":64,"height":64,"map":0,"xadvance":19.456,"xoffset":22.208,"yoffset":21.44,"scale":1,"range":8,"bounds":[2.08,-0.32,17.504,21.44]},"55":{"id":55,"letter":"7","x":529,"y":67,"width":64,"height":64,"map":0,"xadvance":17.952,"xoffset":22.944,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.28,0,16.832,21.12]},"56":{"id":56,"letter":"8","x":595,"y":67,"width":64,"height":64,"map":0,"xadvance":19.712,"xoffset":22.144,"yoffset":21.456,"scale":1,"range":8,"bounds":[2.176,-0.32,17.536,21.408]},"57":{"id":57,"letter":"9","x":661,"y":67,"width":64,"height":64,"map":0,"xadvance":19.744,"xoffset":22.064,"yoffset":21.44,"scale":1,"range":8,"bounds":[2.208,-0.32,17.664,21.44]},"58":{"id":58,"letter":":","x":727,"y":67,"width":64,"height":64,"map":0,"xadvance":9.472,"xoffset":27.264,"yoffset":24,"scale":1,"range":8,"bounds":[2.656,-0.32,6.816,16.32]},"59":{"id":59,"letter":";","x":793,"y":67,"width":64,"height":64,"map":0,"xadvance":9.472,"xoffset":27.312,"yoffset":26.176,"scale":1,"range":8,"bounds":[2.272,-4.672,7.104,16.32]},"60":{"id":60,"letter":"<","x":859,"y":67,"width":64,"height":64,"map":0,"xadvance":19.328,"xoffset":22.112,"yoffset":22.416,"scale":1,"range":8,"bounds":[2.272,0.896,17.504,18.272]},"61":{"id":61,"letter":"=","x":925,"y":67,"width":64,"height":64,"map":0,"xadvance":19.328,"xoffset":22.336,"yoffset":22.288,"scale":1,"range":8,"bounds":[2.048,5.312,17.28,14.112]},"62":{"id":62,"letter":">","x":1,"y":133,"width":64,"height":64,"map":0,"xadvance":19.328,"xoffset":22.56,"yoffset":22.416,"scale":1,"range":8,"bounds":[1.824,0.896,17.056,18.272]},"63":{"id":63,"letter":"?","x":67,"y":133,"width":64,"height":64,"map":0,"xadvance":17.344,"xoffset":23.504,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.248,-0.32,15.744,21.44]},"64":{"id":64,"letter":"@","x":133,"y":133,"width":64,"height":64,"map":0,"xadvance":30.656,"xoffset":16.576,"yoffset":24.56,"scale":1,"range":8,"bounds":[2.112,-6.24,28.736,21.12]},"65":{"id":65,"letter":"A","x":199,"y":133,"width":64,"height":64,"map":0,"xadvance":21.12,"xoffset":21.44,"yoffset":21.44,"scale":1,"range":8,"bounds":[0.832,0,20.288,21.12]},"66":{"id":66,"letter":"B","x":265,"y":133,"width":64,"height":64,"map":0,"xadvance":20.896,"xoffset":20.912,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,18.72,21.12]},"67":{"id":67,"letter":"C","x":331,"y":133,"width":64,"height":64,"map":0,"xadvance":21.952,"xoffset":20.672,"yoffset":21.44,"scale":1,"range":8,"bounds":[2.176,-0.32,20.48,21.44]},"68":{"id":68,"letter":"D","x":397,"y":133,"width":64,"height":64,"map":0,"xadvance":23.072,"xoffset":19.824,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,20.896,21.12]},"69":{"id":69,"letter":"E","x":463,"y":133,"width":64,"height":64,"map":0,"xadvance":20.416,"xoffset":20.896,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,18.752,21.12]},"70":{"id":70,"letter":"F","x":529,"y":133,"width":64,"height":64,"map":0,"xadvance":19.52,"xoffset":21.152,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,18.24,21.12]},"71":{"id":71,"letter":"G","x":595,"y":133,"width":64,"height":64,"map":0,"xadvance":23.168,"xoffset":20.592,"yoffset":21.44,"scale":1,"range":8,"bounds":[2.176,-0.32,20.64,21.44]},"72":{"id":72,"letter":"H","x":661,"y":133,"width":64,"height":64,"map":0,"xadvance":23.488,"xoffset":20.256,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,20.032,21.12]},"73":{"id":73,"letter":"I","x":727,"y":133,"width":64,"height":64,"map":0,"xadvance":9.472,"xoffset":27.264,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,6.016,21.12]},"74":{"id":74,"letter":"J","x":793,"y":133,"width":64,"height":64,"map":0,"xadvance":18.112,"xoffset":23.8952258065,"yoffset":21.6,"scale":1,"range":8,"bounds":[1.3295483871,-0.32,14.88,21.12]},"75":{"id":75,"letter":"K","x":859,"y":133,"width":64,"height":64,"map":0,"xadvance":20.992,"xoffset":20.224,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,20.096,21.12]},"76":{"id":76,"letter":"L","x":925,"y":133,"width":64,"height":64,"map":0,"xadvance":19.136,"xoffset":21.216,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,18.112,21.12]},"77":{"id":77,"letter":"M","x":1,"y":199,"width":64,"height":64,"map":0,"xadvance":27.328,"xoffset":18.336,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,23.872,21.12]},"78":{"id":78,"letter":"N","x":67,"y":199,"width":64,"height":64,"map":0,"xadvance":23.488,"xoffset":20.256,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,20.032,21.12]},"79":{"id":79,"letter":"O","x":133,"y":199,"width":64,"height":64,"map":0,"xadvance":23.936,"xoffset":20.032,"yoffset":21.44,"scale":1,"range":8,"bounds":[2.176,-0.32,21.76,21.44]},"80":{"id":80,"letter":"P","x":199,"y":199,"width":64,"height":64,"map":0,"xadvance":19.52,"xoffset":21.264,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,18.016,21.12]},"81":{"id":81,"letter":"Q","x":265,"y":199,"width":64,"height":64,"map":0,"xadvance":23.936,"xoffset":20.032,"yoffset":24.4,"scale":1,"range":8,"bounds":[2.176,-6.24,21.76,21.44]},"82":{"id":82,"letter":"R","x":331,"y":199,"width":64,"height":64,"map":0,"xadvance":21.28,"xoffset":20.336,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,19.872,21.12]},"83":{"id":83,"letter":"S","x":397,"y":199,"width":64,"height":64,"map":0,"xadvance":20.512,"xoffset":22.016,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.376,-0.32,18.592,21.44]},"84":{"id":84,"letter":"T","x":463,"y":199,"width":64,"height":64,"map":0,"xadvance":19.328,"xoffset":22.336,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.024,0,18.304,21.12]},"85":{"id":85,"letter":"U","x":529,"y":199,"width":64,"height":64,"map":0,"xadvance":22.656,"xoffset":20.672,"yoffset":21.6,"scale":1,"range":8,"bounds":[3.04,-0.32,19.616,21.12]},"86":{"id":86,"letter":"V","x":595,"y":199,"width":64,"height":64,"map":0,"xadvance":20.736,"xoffset":21.632,"yoffset":21.44,"scale":1,"range":8,"bounds":[0.896,0,19.84,21.12]},"87":{"id":87,"letter":"W","x":661,"y":199,"width":64,"height":64,"map":0,"xadvance":30.752,"xoffset":16.624,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.152,0,29.6,21.12]},"88":{"id":88,"letter":"X","x":727,"y":199,"width":64,"height":64,"map":0,"xadvance":19.232,"xoffset":22.496,"yoffset":21.44,"scale":1,"range":8,"bounds":[0.8,0,18.208,21.12]},"89":{"id":89,"letter":"Y","x":793,"y":199,"width":64,"height":64,"map":0,"xadvance":18.304,"xoffset":22.848,"yoffset":21.44,"scale":1,"range":8,"bounds":[0.32,0,17.984,21.12]},"90":{"id":90,"letter":"Z","x":859,"y":199,"width":64,"height":64,"map":0,"xadvance":20.16,"xoffset":21.904,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.792,0,18.4,21.12]},"91":{"id":91,"letter":"[","x":925,"y":199,"width":64,"height":64,"map":0,"xadvance":11.136,"xoffset":25.568,"yoffset":23.008,"scale":1,"range":8,"bounds":[2.784,-5.376,10.08,23.36]},"92":{"id":92,"letter":"\\","x":1,"y":265,"width":64,"height":64,"map":0,"xadvance":13.984,"xoffset":25.008,"yoffset":21.44,"scale":1,"range":8,"bounds":[0.896,-2.24,13.088,23.36]},"93":{"id":93,"letter":"]","x":67,"y":265,"width":64,"height":64,"map":0,"xadvance":11.136,"xoffset":27.296,"yoffset":23.008,"scale":1,"range":8,"bounds":[1.056,-5.376,8.352,23.36]},"94":{"id":94,"letter":"^","x":133,"y":265,"width":64,"height":64,"map":0,"xadvance":17.92,"xoffset":23.04,"yoffset":14.64,"scale":1,"range":8,"bounds":[0.864,11.36,17.056,23.36]},"95":{"id":95,"letter":"_","x":199,"y":265,"width":64,"height":64,"map":0,"xadvance":17.248,"xoffset":23.376,"yoffset":36.304,"scale":1,"range":8,"bounds":[0,-5.504,17.248,-3.104]},"96":{"id":96,"letter":"`","x":265,"y":265,"width":64,"height":64,"map":0,"xadvance":16,"xoffset":23.984,"yoffset":10.672,"scale":1,"range":8,"bounds":[5.408,18.656,10.624,24]},"97":{"id":97,"letter":"a","x":331,"y":265,"width":64,"height":64,"map":0,"xadvance":18.112,"xoffset":22.384,"yoffset":24,"scale":1,"range":8,"bounds":[1.952,-0.32,17.28,16.32]},"98":{"id":98,"letter":"b","x":397,"y":265,"width":64,"height":64,"map":0,"xadvance":20.064,"xoffset":21.44,"yoffset":20.48,"scale":1,"range":8,"bounds":[2.976,-0.32,18.144,23.36]},"99":{"id":99,"letter":"c","x":463,"y":265,"width":64,"height":64,"map":0,"xadvance":17.92,"xoffset":22.88,"yoffset":24,"scale":1,"range":8,"bounds":[1.856,-0.32,16.384,16.32]},"100":{"id":100,"letter":"d","x":529,"y":265,"width":64,"height":64,"map":0,"xadvance":20.064,"xoffset":22.496,"yoffset":20.48,"scale":1,"range":8,"bounds":[1.92,-0.32,17.088,23.36]},"101":{"id":101,"letter":"e","x":595,"y":265,"width":64,"height":64,"map":0,"xadvance":18.464,"xoffset":22.784,"yoffset":24,"scale":1,"range":8,"bounds":[1.856,-0.32,16.576,16.32]},"102":{"id":102,"letter":"f","x":661,"y":265,"width":64,"height":64,"map":0,"xadvance":12.576,"xoffset":25.392,"yoffset":20.24,"scale":1,"range":8,"bounds":[1.024,0,12.192,23.52]},"103":{"id":103,"letter":"g","x":727,"y":265,"width":64,"height":64,"map":0,"xadvance":17.024,"xoffset":22.912,"yoffset":25.968,"scale":1,"range":8,"bounds":[1.152,-6.88,17.024,18.944]},"104":{"id":104,"letter":"h","x":793,"y":265,"width":64,"height":64,"map":0,"xadvance":19.808,"xoffset":22.016,"yoffset":20.32,"scale":1,"range":8,"bounds":[2.976,0,16.992,23.36]},"105":{"id":105,"letter":"i","x":859,"y":265,"width":64,"height":64,"map":0,"xadvance":8.512,"xoffset":27.744,"yoffset":20.544,"scale":1,"range":8,"bounds":[2.336,0,6.176,22.912]},"106":{"id":106,"letter":"j","x":925,"y":265,"width":64,"height":64,"map":0,"xadvance":8.512,"xoffset":30.176,"yoffset":23.984,"scale":1,"range":8,"bounds":[-2.528,-6.88,6.176,22.912]},"107":{"id":107,"letter":"k","x":1,"y":331,"width":64,"height":64,"map":0,"xadvance":18.144,"xoffset":21.808,"yoffset":20.32,"scale":1,"range":8,"bounds":[2.976,0,17.408,23.36]},"108":{"id":108,"letter":"l","x":67,"y":331,"width":64,"height":64,"map":0,"xadvance":9.792,"xoffset":25.84,"yoffset":20.48,"scale":1,"range":8,"bounds":[2.848,-0.32,9.472,23.36]},"109":{"id":109,"letter":"m","x":133,"y":331,"width":64,"height":64,"map":0,"xadvance":30.496,"xoffset":16.672,"yoffset":23.84,"scale":1,"range":8,"bounds":[2.976,0,27.68,16.32]},"110":{"id":110,"letter":"n","x":199,"y":331,"width":64,"height":64,"map":0,"xadvance":19.808,"xoffset":22.016,"yoffset":23.84,"scale":1,"range":8,"bounds":[2.976,0,16.992,16.32]},"111":{"id":111,"letter":"o","x":265,"y":331,"width":64,"height":64,"map":0,"xadvance":19.2,"xoffset":22.4,"yoffset":24,"scale":1,"range":8,"bounds":[1.856,-0.32,17.344,16.32]},"112":{"id":112,"letter":"p","x":331,"y":331,"width":64,"height":64,"map":0,"xadvance":20.064,"xoffset":21.44,"yoffset":27.2,"scale":1,"range":8,"bounds":[2.976,-6.72,18.144,16.32]},"113":{"id":113,"letter":"q","x":397,"y":331,"width":64,"height":64,"map":0,"xadvance":20.064,"xoffset":22.496,"yoffset":27.2,"scale":1,"range":8,"bounds":[1.92,-6.72,17.088,16.32]},"114":{"id":114,"letter":"r","x":463,"y":331,"width":64,"height":64,"map":0,"xadvance":13.056,"xoffset":24.368,"yoffset":23.84,"scale":1,"range":8,"bounds":[2.976,0,12.288,16.32]},"115":{"id":115,"letter":"s","x":529,"y":331,"width":64,"height":64,"map":0,"xadvance":16.864,"xoffset":23.744,"yoffset":24,"scale":1,"range":8,"bounds":[1.408,-0.32,15.104,16.32]},"116":{"id":116,"letter":"t","x":595,"y":331,"width":64,"height":64,"map":0,"xadvance":13.408,"xoffset":25.072,"yoffset":21.888,"scale":1,"range":8,"bounds":[0.992,-0.32,12.864,20.544]},"117":{"id":117,"letter":"u","x":661,"y":331,"width":64,"height":64,"map":0,"xadvance":19.744,"xoffset":22.208,"yoffset":24.16,"scale":1,"range":8,"bounds":[2.816,-0.32,16.768,16]},"118":{"id":118,"letter":"v","x":727,"y":331,"width":64,"height":64,"map":0,"xadvance":16.64,"xoffset":23.68,"yoffset":24,"scale":1,"range":8,"bounds":[0.384,0,16.256,16]},"119":{"id":119,"letter":"w","x":793,"y":331,"width":64,"height":64,"map":0,"xadvance":26.752,"xoffset":18.624,"yoffset":24,"scale":1,"range":8,"bounds":[0.864,0,25.888,16]},"120":{"id":120,"letter":"x","x":859,"y":331,"width":64,"height":64,"map":0,"xadvance":17.056,"xoffset":23.536,"yoffset":24,"scale":1,"range":8,"bounds":[0.928,0,16,16]},"121":{"id":121,"letter":"y","x":925,"y":331,"width":64,"height":64,"map":0,"xadvance":16.512,"xoffset":23.92,"yoffset":27.44,"scale":1,"range":8,"bounds":[0.032,-6.88,16.128,16]},"122":{"id":122,"letter":"z","x":1,"y":397,"width":64,"height":64,"map":0,"xadvance":17.088,"xoffset":23.424,"yoffset":24,"scale":1,"range":8,"bounds":[1.824,0,15.328,16]},"123":{"id":123,"letter":"{","x":67,"y":397,"width":64,"height":64,"map":0,"xadvance":11.232,"xoffset":26.688,"yoffset":23.008,"scale":1,"range":8,"bounds":[0.896,-6.048,9.728,24.032]},"124":{"id":124,"letter":"|","x":133,"y":397,"width":64,"height":64,"map":0,"xadvance":7.776,"xoffset":28.112,"yoffset":23.008,"scale":1,"range":8,"bounds":[2.784,-5.376,4.992,23.36]},"125":{"id":125,"letter":"}","x":199,"y":397,"width":64,"height":64,"map":0,"xadvance":11.232,"xoffset":26.08,"yoffset":23.008,"scale":1,"range":8,"bounds":[1.504,-6.048,10.336,24.032]},"126":{"id":126,"letter":"~","x":265,"y":397,"width":64,"height":64,"map":0,"xadvance":17.28,"xoffset":23.36,"yoffset":22.096,"scale":1,"range":8,"bounds":[1.376,7.52,15.904,12.288]}},"kerning":{}},"preload":true,"tags":[],"i18n":{},"id":"91600010"},"91600011":{"name":"WorkSans-Italic-VariableFont_wght.ttf","type":"font","file":{"filename":"WorkSans-Italic-VariableFont_wght.png","hash":"7e8137f53c71367bd6a806c48cda57ea","size":129251,"url":"files/assets/91600011/1/WorkSans-Italic-VariableFont_wght.png"},"data":{"version":2,"intensity":0,"info":{"face":"WorkSans-Italic-VariableFont_wght","maps":[{"width":1024,"height":512}]},"chars":{"32":{"id":32,"letter":" ","x":1,"y":1,"width":64,"height":64,"map":0,"xadvance":10.752,"xoffset":31.5,"yoffset":31.5,"scale":1,"range":8},"33":{"id":33,"letter":"!","x":67,"y":1,"width":64,"height":64,"map":0,"xadvance":8.576,"xoffset":27.296,"yoffset":21.6,"scale":1,"range":8,"bounds":[0.832,-0.32,8.576,21.12]},"34":{"id":34,"letter":"\"","x":133,"y":1,"width":64,"height":64,"map":0,"xadvance":12.736,"xoffset":22.992,"yoffset":13.872,"scale":1,"range":8,"bounds":[3.968,14.176,14.048,22.08]},"35":{"id":35,"letter":"#","x":199,"y":1,"width":64,"height":64,"map":0,"xadvance":20.448,"xoffset":21.184,"yoffset":21.44,"scale":1,"range":8,"bounds":[0.864,0,20.768,21.12]},"36":{"id":36,"letter":"$","x":265,"y":1,"width":64,"height":64,"map":0,"xadvance":19.84,"xoffset":21.824,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.024,-3.2,19.328,24.32]},"37":{"id":37,"letter":"%","x":331,"y":1,"width":64,"height":64,"map":0,"xadvance":28.416,"xoffset":17.2,"yoffset":21.44,"scale":1,"range":8,"bounds":[2.944,-0.32,26.656,21.44]},"38":{"id":38,"letter":"&","x":397,"y":1,"width":64,"height":64,"map":0,"xadvance":19.392,"xoffset":22.528,"yoffset":21.44,"scale":1,"range":8,"bounds":[0.704,-0.352,18.24,21.472]},"39":{"id":39,"letter":"'","x":463,"y":1,"width":64,"height":64,"map":0,"xadvance":7.392,"xoffset":25.664,"yoffset":13.872,"scale":1,"range":8,"bounds":[3.968,14.176,8.704,22.08]},"40":{"id":40,"letter":"(","x":529,"y":1,"width":64,"height":64,"map":0,"xadvance":10.944,"xoffset":24.368,"yoffset":23.008,"scale":1,"range":8,"bounds":[1.92,-6.048,13.344,24.032]},"41":{"id":41,"letter":")","x":595,"y":1,"width":64,"height":64,"map":0,"xadvance":10.944,"xoffset":28.24,"yoffset":23.008,"scale":1,"range":8,"bounds":[-1.952,-6.048,9.472,24.032]},"42":{"id":42,"letter":"*","x":661,"y":1,"width":64,"height":64,"map":0,"xadvance":18.048,"xoffset":20.848,"yoffset":15.888,"scale":1,"range":8,"bounds":[3.872,8.864,18.432,23.36]},"43":{"id":43,"letter":"+","x":727,"y":1,"width":64,"height":64,"map":0,"xadvance":19.328,"xoffset":21.84,"yoffset":21.888,"scale":1,"range":8,"bounds":[2.112,2.176,18.208,18.048]},"44":{"id":44,"letter":",","x":793,"y":1,"width":64,"height":64,"map":0,"xadvance":8.064,"xoffset":29.92,"yoffset":32.464,"scale":1,"range":8,"bounds":[-0.96,-4.768,5.12,3.84]},"45":{"id":45,"letter":"-","x":859,"y":1,"width":64,"height":64,"map":0,"xadvance":16.32,"xoffset":23.76,"yoffset":23.632,"scale":1,"range":8,"bounds":[2.656,7.04,13.824,9.696]},"46":{"id":46,"letter":".","x":925,"y":1,"width":64,"height":64,"map":0,"xadvance":8.384,"xoffset":29.248,"yoffset":30.24,"scale":1,"range":8,"bounds":[0.736,-0.32,4.768,3.84]},"47":{"id":47,"letter":"/","x":1,"y":67,"width":64,"height":64,"map":0,"xadvance":13.44,"xoffset":24.688,"yoffset":21.44,"scale":1,"range":8,"bounds":[-1.536,-2.24,16.16,23.36]},"48":{"id":48,"letter":"0","x":67,"y":67,"width":64,"height":64,"map":0,"xadvance":20.128,"xoffset":21.344,"yoffset":21.408,"scale":1,"range":8,"bounds":[2.4,-0.256,18.912,21.44]},"49":{"id":49,"letter":"1","x":133,"y":67,"width":64,"height":64,"map":0,"xadvance":12.224,"xoffset":24.944,"yoffset":21.44,"scale":1,"range":8,"bounds":[2.432,0,11.68,21.12]},"50":{"id":50,"letter":"2","x":199,"y":67,"width":64,"height":64,"map":0,"xadvance":18.08,"xoffset":23.152,"yoffset":21.28,"scale":1,"range":8,"bounds":[0.8,0,16.896,21.44]},"51":{"id":51,"letter":"3","x":265,"y":67,"width":64,"height":64,"map":0,"xadvance":18.048,"xoffset":22.8,"yoffset":21.424,"scale":1,"range":8,"bounds":[1.344,-0.32,17.056,21.472]},"52":{"id":52,"letter":"4","x":331,"y":67,"width":64,"height":64,"map":0,"xadvance":18.08,"xoffset":23.184,"yoffset":21.44,"scale":1,"range":8,"bounds":[0.512,0,17.12,21.12]},"53":{"id":53,"letter":"5","x":397,"y":67,"width":64,"height":64,"map":0,"xadvance":18.272,"xoffset":22.24,"yoffset":21.6,"scale":1,"range":8,"bounds":[1.664,-0.32,17.856,21.12]},"54":{"id":54,"letter":"6","x":463,"y":67,"width":64,"height":64,"map":0,"xadvance":18.848,"xoffset":21.392,"yoffset":21.424,"scale":1,"range":8,"bounds":[2.464,-0.32,18.752,21.472]},"55":{"id":55,"letter":"7","x":529,"y":67,"width":64,"height":64,"map":0,"xadvance":17.216,"xoffset":20.912,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.328,0,18.848,21.12]},"56":{"id":56,"letter":"8","x":595,"y":67,"width":64,"height":64,"map":0,"xadvance":19.392,"xoffset":22.032,"yoffset":21.408,"scale":1,"range":8,"bounds":[1.536,-0.288,18.4,21.472]},"57":{"id":57,"letter":"9","x":661,"y":67,"width":64,"height":64,"map":0,"xadvance":19.488,"xoffset":22.16,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.472,-0.32,18.208,21.44]},"58":{"id":58,"letter":":","x":727,"y":67,"width":64,"height":64,"map":0,"xadvance":9.472,"xoffset":27.264,"yoffset":24,"scale":1,"range":8,"bounds":[1.28,-0.32,8.192,16.32]},"59":{"id":59,"letter":";","x":793,"y":67,"width":64,"height":64,"map":0,"xadvance":9.472,"xoffset":28.16,"yoffset":26.224,"scale":1,"range":8,"bounds":[-0.512,-4.768,8.192,16.32]},"60":{"id":60,"letter":"<","x":859,"y":67,"width":64,"height":64,"map":0,"xadvance":19.328,"xoffset":20.912,"yoffset":22.416,"scale":1,"range":8,"bounds":[2.304,0.896,19.872,18.272]},"61":{"id":61,"letter":"=","x":925,"y":67,"width":64,"height":64,"map":0,"xadvance":19.328,"xoffset":21.936,"yoffset":22.288,"scale":1,"range":8,"bounds":[1.44,5.312,18.688,14.112]},"62":{"id":62,"letter":">","x":1,"y":133,"width":64,"height":64,"map":0,"xadvance":19.328,"xoffset":23.024,"yoffset":22.416,"scale":1,"range":8,"bounds":[0.192,0.896,17.76,18.272]},"63":{"id":63,"letter":"?","x":67,"y":133,"width":64,"height":64,"map":0,"xadvance":17.152,"xoffset":21.888,"yoffset":21.472,"scale":1,"range":8,"bounds":[2.976,-0.32,17.248,21.376]},"64":{"id":64,"letter":"@","x":133,"y":133,"width":64,"height":64,"map":0,"xadvance":30.4,"xoffset":16.656,"yoffset":24.576,"scale":1,"range":8,"bounds":[2.112,-6.272,28.576,21.12]},"65":{"id":65,"letter":"A","x":199,"y":133,"width":64,"height":64,"map":0,"xadvance":20.576,"xoffset":23.568,"yoffset":21.44,"scale":1,"range":8,"bounds":[-1.12,0,17.984,21.12]},"66":{"id":66,"letter":"B","x":265,"y":133,"width":64,"height":64,"map":0,"xadvance":20.64,"xoffset":21.488,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,19.52,21.12]},"67":{"id":67,"letter":"C","x":331,"y":133,"width":64,"height":64,"map":0,"xadvance":21.568,"xoffset":19.984,"yoffset":21.44,"scale":1,"range":8,"bounds":[2.656,-0.32,21.376,21.44]},"68":{"id":68,"letter":"D","x":397,"y":133,"width":64,"height":64,"map":0,"xadvance":22.592,"xoffset":20.672,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,21.152,21.12]},"69":{"id":69,"letter":"E","x":463,"y":133,"width":64,"height":64,"map":0,"xadvance":20,"xoffset":20.8,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,20.896,21.12]},"70":{"id":70,"letter":"F","x":529,"y":133,"width":64,"height":64,"map":0,"xadvance":18.72,"xoffset":21.024,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,20.448,21.12]},"71":{"id":71,"letter":"G","x":595,"y":133,"width":64,"height":64,"map":0,"xadvance":22.624,"xoffset":19.696,"yoffset":21.408,"scale":1,"range":8,"bounds":[2.688,-0.256,21.92,21.44]},"72":{"id":72,"letter":"H","x":661,"y":133,"width":64,"height":64,"map":0,"xadvance":23.008,"xoffset":19.904,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,22.688,21.12]},"73":{"id":73,"letter":"I","x":727,"y":133,"width":64,"height":64,"map":0,"xadvance":9.28,"xoffset":26.768,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,8.96,21.12]},"74":{"id":74,"letter":"J","x":793,"y":133,"width":64,"height":64,"map":0,"xadvance":17.568,"xoffset":22.6996363636,"yoffset":21.568,"scale":1,"range":8,"bounds":[1.00072727273,-0.256,17.6,21.12]},"75":{"id":75,"letter":"K","x":859,"y":133,"width":64,"height":64,"map":0,"xadvance":20.384,"xoffset":20.032,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,22.432,21.12]},"76":{"id":76,"letter":"L","x":925,"y":133,"width":64,"height":64,"map":0,"xadvance":18.752,"xoffset":23.008,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,16.48,21.12]},"77":{"id":77,"letter":"M","x":1,"y":199,"width":64,"height":64,"map":0,"xadvance":26.784,"xoffset":18.016,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,26.464,21.12]},"78":{"id":78,"letter":"N","x":67,"y":199,"width":64,"height":64,"map":0,"xadvance":23.008,"xoffset":19.904,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,22.688,21.12]},"79":{"id":79,"letter":"O","x":133,"y":199,"width":64,"height":64,"map":0,"xadvance":23.744,"xoffset":19.536,"yoffset":21.44,"scale":1,"range":8,"bounds":[2.72,-0.32,22.208,21.44]},"80":{"id":80,"letter":"P","x":199,"y":199,"width":64,"height":64,"map":0,"xadvance":19.52,"xoffset":21.584,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,19.328,21.12]},"81":{"id":81,"letter":"Q","x":265,"y":199,"width":64,"height":64,"map":0,"xadvance":23.744,"xoffset":19.536,"yoffset":24.384,"scale":1,"range":8,"bounds":[2.72,-6.208,22.208,21.44]},"82":{"id":82,"letter":"R","x":331,"y":199,"width":64,"height":64,"map":0,"xadvance":20.384,"xoffset":21.488,"yoffset":21.44,"scale":1,"range":8,"bounds":[1.504,0,19.52,21.12]},"83":{"id":83,"letter":"S","x":397,"y":199,"width":64,"height":64,"map":0,"xadvance":20.448,"xoffset":21.328,"yoffset":21.392,"scale":1,"range":8,"bounds":[1.248,-0.256,20.096,21.472]},"84":{"id":84,"letter":"T","x":463,"y":199,"width":64,"height":64,"map":0,"xadvance":18.944,"xoffset":19.776,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.456,0,20.992,21.12]},"85":{"id":85,"letter":"U","x":529,"y":199,"width":64,"height":64,"map":0,"xadvance":22.176,"xoffset":19.448,"yoffset":21.6,"scale":1,"range":8,"bounds":[2.832,-0.32,22.272,21.12]},"86":{"id":86,"letter":"V","x":595,"y":199,"width":64,"height":64,"map":0,"xadvance":20.096,"xoffset":18.912,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.776,0,22.4,21.12]},"87":{"id":87,"letter":"W","x":661,"y":199,"width":64,"height":64,"map":0,"xadvance":30.048,"xoffset":13.936,"yoffset":21.44,"scale":1,"range":8,"bounds":[4.096,0,32.032,21.12]},"88":{"id":88,"letter":"X","x":727,"y":199,"width":64,"height":64,"map":0,"xadvance":18.816,"xoffset":22.224,"yoffset":21.44,"scale":1,"range":8,"bounds":[-1.088,0,20.64,21.12]},"89":{"id":89,"letter":"Y","x":793,"y":199,"width":64,"height":64,"map":0,"xadvance":17.984,"xoffset":19.968,"yoffset":21.44,"scale":1,"range":8,"bounds":[3.52,0,20.544,21.12]},"90":{"id":90,"letter":"Z","x":859,"y":199,"width":64,"height":64,"map":0,"xadvance":18.912,"xoffset":22.08,"yoffset":21.44,"scale":1,"range":8,"bounds":[-0.096,0,19.936,21.12]},"91":{"id":91,"letter":"[","x":925,"y":199,"width":64,"height":64,"map":0,"xadvance":11.008,"xoffset":25.408,"yoffset":23.008,"scale":1,"range":8,"bounds":[-0.384,-5.376,13.568,23.36]},"92":{"id":92,"letter":"\\","x":1,"y":265,"width":64,"height":64,"map":0,"xadvance":15.008,"xoffset":23.904,"yoffset":21.44,"scale":1,"range":8,"bounds":[4.384,-2.24,11.808,23.36]},"93":{"id":93,"letter":"]","x":67,"y":265,"width":64,"height":64,"map":0,"xadvance":11.04,"xoffset":27.104,"yoffset":23.008,"scale":1,"range":8,"bounds":[-2.08,-5.376,11.872,23.36]},"94":{"id":94,"letter":"^","x":133,"y":265,"width":64,"height":64,"map":0,"xadvance":17.92,"xoffset":22.272,"yoffset":14.64,"scale":1,"range":8,"bounds":[1.632,11.36,17.824,23.36]},"95":{"id":95,"letter":"_","x":199,"y":265,"width":64,"height":64,"map":0,"xadvance":17.248,"xoffset":26.208,"yoffset":36.304,"scale":1,"range":8,"bounds":[-3.104,-5.504,14.688,-3.104]},"96":{"id":96,"letter":"`","x":265,"y":265,"width":64,"height":64,"map":0,"xadvance":16,"xoffset":20.912,"yoffset":10.672,"scale":1,"range":8,"bounds":[9.088,18.656,13.088,24]},"97":{"id":97,"letter":"a","x":331,"y":265,"width":64,"height":64,"map":0,"xadvance":19.712,"xoffset":21.76,"yoffset":23.968,"scale":1,"range":8,"bounds":[1.76,-0.256,18.72,16.32]},"98":{"id":98,"letter":"b","x":397,"y":265,"width":64,"height":64,"map":0,"xadvance":19.712,"xoffset":22.528,"yoffset":20.48,"scale":1,"range":8,"bounds":[0.992,-0.32,17.952,23.36]},"99":{"id":99,"letter":"c","x":463,"y":265,"width":64,"height":64,"map":0,"xadvance":17.216,"xoffset":22.72,"yoffset":24,"scale":1,"range":8,"bounds":[1.824,-0.288,16.736,16.288]},"100":{"id":100,"letter":"d","x":529,"y":265,"width":64,"height":64,"map":0,"xadvance":19.712,"xoffset":20.912,"yoffset":20.448,"scale":1,"range":8,"bounds":[1.76,-0.256,20.416,23.36]},"101":{"id":101,"letter":"e","x":595,"y":265,"width":64,"height":64,"map":0,"xadvance":18.304,"xoffset":22.848,"yoffset":24,"scale":1,"range":8,"bounds":[1.792,-0.288,16.512,16.288]},"102":{"id":102,"letter":"f","x":661,"y":265,"width":64,"height":64,"map":0,"xadvance":12.32,"xoffset":23.408,"yoffset":20.24,"scale":1,"range":8,"bounds":[2.176,0,15.008,23.52]},"103":{"id":103,"letter":"g","x":727,"y":265,"width":64,"height":64,"map":0,"xadvance":19.616,"xoffset":22.784,"yoffset":27.28,"scale":1,"range":8,"bounds":[-0.192,-6.88,18.624,16.32]},"104":{"id":104,"letter":"h","x":793,"y":265,"width":64,"height":64,"map":0,"xadvance":19.2,"xoffset":22.8955,"yoffset":20.32,"scale":1,"range":8,"bounds":[0.992,0,17.217,23.36]},"105":{"id":105,"letter":"i","x":859,"y":265,"width":64,"height":64,"map":0,"xadvance":8.256,"xoffset":27.008,"yoffset":20.544,"scale":1,"range":8,"bounds":[0.992,0,8.992,22.912]},"106":{"id":106,"letter":"j","x":925,"y":265,"width":64,"height":64,"map":0,"xadvance":8.256,"xoffset":30.048,"yoffset":23.984,"scale":1,"range":8,"bounds":[-5.088,-6.88,8.992,22.912]},"107":{"id":107,"letter":"k","x":1,"y":331,"width":64,"height":64,"map":0,"xadvance":17.44,"xoffset":22.416,"yoffset":20.32,"scale":1,"range":8,"bounds":[0.992,0,18.176,23.36]},"108":{"id":108,"letter":"l","x":67,"y":331,"width":64,"height":64,"map":0,"xadvance":9.696,"xoffset":26.687255814,"yoffset":20.432,"scale":1,"range":8,"bounds":[1.76148837209,-0.224,8.864,23.36]},"109":{"id":109,"letter":"m","x":133,"y":331,"width":64,"height":64,"map":0,"xadvance":29.888,"xoffset":17.632,"yoffset":23.84,"scale":1,"range":8,"bounds":[0.992,0,27.744,16.32]},"110":{"id":110,"letter":"n","x":199,"y":331,"width":64,"height":64,"map":0,"xadvance":19.2,"xoffset":22.8955,"yoffset":23.84,"scale":1,"range":8,"bounds":[0.992,0,17.217,16.32]},"111":{"id":111,"letter":"o","x":265,"y":331,"width":64,"height":64,"map":0,"xadvance":19.04,"xoffset":22.48,"yoffset":24,"scale":1,"range":8,"bounds":[1.792,-0.288,17.248,16.288]},"112":{"id":112,"letter":"p","x":331,"y":331,"width":64,"height":64,"map":0,"xadvance":19.712,"xoffset":23.296,"yoffset":27.232,"scale":1,"range":8,"bounds":[-0.544,-6.72,17.952,16.256]},"113":{"id":113,"letter":"q","x":397,"y":331,"width":64,"height":64,"map":0,"xadvance":19.712,"xoffset":21.76,"yoffset":27.2,"scale":1,"range":8,"bounds":[1.76,-6.72,18.72,16.32]},"114":{"id":114,"letter":"r","x":463,"y":331,"width":64,"height":64,"map":0,"xadvance":12.416,"xoffset":24.816,"yoffset":23.84,"scale":1,"range":8,"bounds":[0.992,0,13.376,16.32]},"115":{"id":115,"letter":"s","x":529,"y":331,"width":64,"height":64,"map":0,"xadvance":16.384,"xoffset":23.984,"yoffset":24.016,"scale":1,"range":8,"bounds":[0.608,-0.352,15.424,16.32]},"116":{"id":116,"letter":"t","x":595,"y":331,"width":64,"height":64,"map":0,"xadvance":12.864,"xoffset":24.288,"yoffset":21.968,"scale":1,"range":8,"bounds":[2.08,-0.256,13.344,20.32]},"117":{"id":117,"letter":"u","x":661,"y":331,"width":64,"height":64,"map":0,"xadvance":19.136,"xoffset":21.9330909091,"yoffset":24.128,"scale":1,"range":8,"bounds":[1.98981818182,-0.256,18.144,16]},"118":{"id":118,"letter":"v","x":727,"y":331,"width":64,"height":64,"map":0,"xadvance":15.776,"xoffset":22.256,"yoffset":24,"scale":1,"range":8,"bounds":[2.048,0,17.44,16]},"119":{"id":119,"letter":"w","x":793,"y":331,"width":64,"height":64,"map":0,"xadvance":25.696,"xoffset":17.44,"yoffset":24,"scale":1,"range":8,"bounds":[2.432,0,26.688,16]},"120":{"id":120,"letter":"x","x":859,"y":331,"width":64,"height":64,"map":0,"xadvance":16.608,"xoffset":23.904,"yoffset":24,"scale":1,"range":8,"bounds":[-0.992,0,17.184,16]},"121":{"id":121,"letter":"y","x":925,"y":331,"width":64,"height":64,"map":0,"xadvance":16.128,"xoffset":24.688,"yoffset":27.44,"scale":1,"range":8,"bounds":[-3.168,-6.88,17.792,16]},"122":{"id":122,"letter":"z","x":1,"y":397,"width":64,"height":64,"map":0,"xadvance":16.416,"xoffset":23.84,"yoffset":24,"scale":1,"range":8,"bounds":[0.032,0,16.288,16]},"123":{"id":123,"letter":"{","x":67,"y":397,"width":64,"height":64,"map":0,"xadvance":10.656,"xoffset":25.152,"yoffset":23.008,"scale":1,"range":8,"bounds":[0.8,-6.048,12.896,24.032]},"124":{"id":124,"letter":"|","x":133,"y":397,"width":64,"height":64,"map":0,"xadvance":7.648,"xoffset":27.952,"yoffset":23.008,"scale":1,"range":8,"bounds":[-0.384,-5.376,8.48,23.36]},"125":{"id":125,"letter":"}","x":199,"y":397,"width":64,"height":64,"map":0,"xadvance":10.656,"xoffset":27.744,"yoffset":23.008,"scale":1,"range":8,"bounds":[-1.792,-6.048,10.304,24.032]},"126":{"id":126,"letter":"~","x":265,"y":397,"width":64,"height":64,"map":0,"xadvance":17.28,"xoffset":22.912,"yoffset":22.096,"scale":1,"range":8,"bounds":[1.28,7.52,16.896,12.288]}},"kerning":{}},"preload":true,"tags":[],"i18n":{},"id":"91600011"},"91628463":{"name":"showResizeOptions.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"showResizeOptions":{"attributesOrder":["VertSlider","HorSlider","HeightShow","WidthShow","ModelScaleSlider","Toggle"],"attributes":{"VertSlider":{"type":"entity","description":"The entity that we want to update when the button is clicked"},"HorSlider":{"type":"entity","description":"The entity that we want to update when the button is clicked"},"HeightShow":{"type":"entity","description":"The entity that we want to update when the button is clicked"},"WidthShow":{"type":"entity","description":"The entity that we want to update when the button is clicked"},"ModelScaleSlider":{"type":"entity","description":"The entity that we want to update when the button is clicked"},"Toggle":{"type":"number","description":"The entity that we want to update when the button is clicked"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"91628463"},"92380612":{"name":"Heli.blend","type":"binary","file":{"filename":"Heli.blend","size":523024,"hash":"62e29d8bc19c3228f27d9634576a8b79","url":"files/assets/92380612/1/Heli.blend"},"data":null,"preload":true,"tags":[],"i18n":{},"id":"92380612"},"92663277":{"name":"unscaleFromParents.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"unscaleFromParents":{"attributesOrder":["parent","invertZandY","targetValueX","targetValueY","targetValueZ"],"attributes":{"parent":{"type":"entity","default":null,"title":"parent"},"invertZandY":{"type":"boolean"},"targetValueX":{"type":"number"},"targetValueY":{"type":"number"},"targetValueZ":{"type":"number"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"92663277"},"92668910":{"name":"MatchTargetScale.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"matchTargetScale":{"attributesOrder":["target","matchX","matchY","matchZ"],"attributes":{"target":{"type":"entity"},"matchX":{"type":"boolean"},"matchY":{"type":"boolean"},"matchZ":{"type":"boolean"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"92668910"},"92676263":{"name":"mantainDistanceWithTargetScale.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"mantainDistanceWithTargetScale":{"attributesOrder":["target","defaultDistZ","defaultDistX","adjustZ","adjustX"],"attributes":{"target":{"type":"entity"},"defaultDistZ":{"type":"number"},"defaultDistX":{"type":"number"},"adjustZ":{"type":"boolean"},"adjustX":{"type":"boolean"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"92676263"},"93407776":{"name":"moveUpWithScale.js","type":"script","file":{"filename":"__game-scripts.js","size":41189,"hash":"b25ae5b36eea15486df2ec7ca73e9a7d","url":"__game-scripts.js"},"data":{"scripts":{"moveUpwithScale":{"attributesOrder":["target"],"attributes":{"target":{"type":"entity"}}}},"loading":false,"loadingType":0},"preload":true,"tags":[],"i18n":{},"id":"93407776"}}} \ No newline at end of file diff --git a/files/assets/86173568/1/SliderKnot.png b/files/assets/86173568/1/SliderKnot.png index 24fabe826f53ab187173534ce767a6773e6bf176..57c62dec9b1ddaa7a0007495487011b9afae9f50 100644 GIT binary patch literal 10555 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 delta 5159 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 literal 4544 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 pSzoWbLx7p2{R=**v55cx diff --git a/files/assets/87530980/1/LadyModel.png b/files/assets/87530980/1/LadyModel.png new file mode 100644 index 0000000000000000000000000000000000000000..d88dd5fe1e2ed0383f8c9018eb9fff886ba23610 GIT binary patch literal 253256 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�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 literal 0 HcmV?d00001 diff --git a/files/assets/89683130/1/VertSlider.png b/files/assets/89683130/1/VertSlider.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3a43acdaa7b5b11fae542c61b8c1658052f6eb GIT binary patch literal 5375 zcmeHLZEO_P8lEi`DOC|L#`rl57rBJa&dkn!bjNPjw#&8kvV}ksXt9yAGiTZfyEE&| zw7acPl%T{Y@PnHxcqzRmn`~tpm6YmrVcP5?@<`6&t>HrT1{IbS{T|^w0 zLw#eIBJjA0zR5*o84mIF-qm=HqC(tewv#+#wcrk?nX%JOi!}|m(2Rqk9TdZoG{ez$ zj&p?N$|ZTuvSnJgwz_SDP<}TSCm6pUp(O~SgPoXR;oj*gsmZ4CeAO&<){$oidvv3{)t4bp74n0W%jic#tQ!lCl0qEe)j1@r=EAGV9>*exfO$Ra$^E@sBkupn?!0|TG zYOw>J6n#7-q0MS1(^YDyix%EOTCJ==@}dQw}!E=%A7&xwi}0H}JT04RY}P%bfQ8KI*nawQEV zt|IYutc5QmdVUFymmCLpqtaajZ=@IsL}FOFg?e|!a~w8Q3K8gSl0R;yDWV<%D$FWD zO8-h}QPWY^K>6*7-&xv!H{uCN`BEU4K(u61gb@m5EH2{-p?;aGsazMpu)Y#hKvhdb zpAAZ;beOV>+vI})s)^+{*Ghcc05QgIQt*~D$!TViQ-sIeQ&ZD_Mlc@JO$+Emm}pft zx|7=hdYRl%po}C@(RT68$;CU-2DLoTlT{GjKhSyVg{bh*OJ7hcAI?qf{m+qQi{zIV zWT!|kKNw6|on$uElxe9OPOBGM@86hx{_J0hzRPS|d1lW$?N^I0KiinL?C`GU9?aVv zaA9?inO>r2+Mh##y7mq8n%*pIANjAcaw#Bn<^d)1b zr)$xB-sSrns*Y_Q9e708UF|vB+HmMibJj6SQr)TzLu0XT zihLijDNUKh9j`h1u<}pxnyQQ1M|L0I+jo^I(gcWk-xeCLNyqM;1nLk}9GvhM~%qTFU zz>ESj3jEO&IKe%>dqW%M|LC{f-A;5>VkaXFhgen-dpjc^RPXB;?r!|whmnl4kq;xr zx#7wuHO=e3jLnW7FDq6`dPm28eB^p9I?2?+!m5t1hsTnV>d-L=9j2Z*(s?F!3W!zf z|9MgBafYAl!+sd(^f!LjwqFc4j@+M7gI($vI6rIiS7N^@oN2mnwE5uOS3b72o_-~H zWA|X+yEnQ%1NlelSOnO&M-Cks=o*#8!TnftX}jrCcTeORUAu7G(cyvfU#?<@kEOlt ritQS+;oA$7p5BYiv_Fvo7i!+PYZrL0EZ1lJMVYrE-*YH?2xYPnVpT9&75b>ock?v*TsI0-xjmd)b}#2&cex{Elhfa`$^rvwrMrHgrS0^d{_ zFDx~P#Ys)z(6~4+Ppo?~9R?8b6c9F9Boxc($sV|ITsnNM{h5Hnj=LxlJaFG?17afr zL$He_G9H%VM8$JRWM`}^&51-M(wxbTSZ5;1l|XbQkX-OY5}in;yU?%`FB}|A#*L+i zGJPgu!FL|GIE6w=ClHd7lAMxUoFp-@gQwvr?oyLMTrzSuNx6yc2n1#hlN?#kFWe^0e`3hxOa_#$mI=q@ z;c^H(Ax{Kj%VA&AI6ozpNAL2Sy`xCRE&{lszwBxKol#@WfrIUG(bF3SiigzQiId~34cEP)GAU2-jO63wMWD*;KT*i69>zNYHYON01 z^`DBCE8)NxlUmX_5SK%Oh-^H^HI|JhamiFXjZNjikUR=4mI~3RB+h5FV3`0uH<0j; zs9IKB7?B3Ka@af~gm-hJlJPv42cGQ;urt`uiCDv9cb!+wdoSR$0j0wr8nU6?JG zLywinL=ap(0ujXL5u{?iww7UZco)6`Ih?qZiPI6rTQzYd6kx|ojt+6OmF|J#Xj9DN z;wF9;{Dpd7$MX|xQXCHk{hQ=}a+6D96-khc_bne*`hS!b;lELrLy3P+{Oi*Gemy zm|vv#9}8yOs70DIP7?S8NB9Etr-0)e|IiRW(}ugO_Hwel!#9%yf+vQzD1+O-jygUX z0Q5HbF~4OccReo_WwY*ovvD>iE+9`4g0W2~ogu_djab|$Eb}>oOxWQqVk{pGIer%8 zNVn8soAUkBPBM?|Neu7s);C>!9JAFQ{ZrzljzTbu@!jDAzfON~a6@GAzs}yevNOi3 zr*r>{o}%}Otqn2o1k&K(vi5V3Uc$ zW^M;E4ULqB41^)W7hwFQkv|KJMwx-Hl(T_K)i5G>0SlMaqbmjrRBI95eU6&&J}V4x z6m(FQfL^D_i8glh^GYw|T2$|p7eQ381w{p(Ie6)lme+s^z~JraRLL?UTwC@8uc}G*ya+$12wv%XmkJdKrC|Yw|VId zX0xw1q9D&vDNx&6zS4(;L49*^QEnzxK&|S&sl83k&+99dPOA_R+bYYJqM==;>P@zo zK1`py&*G{N`eBsLzH6ProoI0A%JP1P%rlprVwM=8h{pEe$E!XtIyff$t+%#b(9xKk zS@zQKC%Oc@xH$|6Q#q&|uQJfjqNZ3XPd_wL#*SrW7no*VM`xO<>(maLRfZKWXKCWC z5ryABSr_+@;Or6e@~M}GyUf&#y-0&B!=uD(neq)64RO(}2tv1+nz;RL`H(9Dc(LWg{yj z`w`I_PBQ{d`F6lo>36fQ4+~uTarWTAtv%C6e{d?`Tw15ovYWCc<<-Cw$Paj8roMB> z@co z4Xv#~mX?<8A4`r25)uwoRFEnvb^ue`?%wr25Q0uGetff_GVbStyG=Wr1}~H}HTiUP zb>-Z&&uhNZ+uPbxBS+>}MkC2Dg|l|O+vl;y$ifPvChnn%*j%n{V&%1E&6}^{>XL>H z(oYB2T~;Bd*aDasnSM-}>z%eXqdMSe^D)+fij4Hv#s^=$bFYaKM_qO_(Tl28Y%;cQ zlGu194i(M-3uhr7$!PS23yn>!FjyZj*}`~RPR=i7J2Q~hhoM5tF=20g%?s4ZDjG5j zk*(+Ypggi_^T5CWGb0v*RUs~vjE#+*kX(idjD2`tw|>fWXCl$?#LSqw++zCb_@11#4HajO`@|h0 znd<4(*4830!El0}CT_f6wmfXLbwlFwE+#c6zU{<))1Z^UjmOSbu43zg#~S(!d(an9 zS?(-xJ@MTC`|=*D-O>KI0P*E>FJ6daTMBJp>jRyT@+H%H?V4->`D1HKOZKyS<;N}e z`2q7yls}wU5QsqMHU`uJC-U2eqc))qLj66U+awXTF0 zrA;~C)$R2}U!_h@wBGx;0*}Wx*52@&&oA725ssH^AU@7ISX#=DdieJJn;%c+=KIgB z7IucpXU2Gz@Sn6DQ6x3`xDuSun5*mVS;)uIGB%fX6*D&!)hC%3O(zkct+q*G7J)^_Y$6l%X) zFAIT0BA4B?W+LovSa@4fx55X)QGb7QQf2SYp@LJ~tLzz~VOx=VcVWrt=vw>@S#3Ed`(Nt7aU03*vaCH)a5?qii+MMnBpQW%QgtK} zW1cvDQKUmr_p1KaiHm%e1)YDtr;t|w*a9oz1JJE(k7{05uR1i3UlSGET`lsFjls3q z=Ws!M@^-y-dGQQknL_A z*JZe`_EygOqMY5n2qFzdEPe$CQeNMtQ}X+i;M(VPUW(thCvc{Q1zFM7!nCu8A~d!o z7;~Mw)xEm#`6fI*mp{J3w>=cPXJT8Es}rcw#g~?kCmm(*qIUJO(3j6$K79DFmnPqE z_hk5##>Q@43u6aRG%z|Bz+k1)U)#c>dqb%Xoga9uv6W;BB}MF8)jCbnhF!n2{TI*i zuq;44|HS@1+@JdIy_a?)if<1Vx$q5M4c?w@U&gMuuF*)BT}rWdKSdNEzDP(be7Uapb|Mp88o)mYvn%TX6ZzpQ-#IzU_kJ>{3+AIlL0Wp5zmlLsOBr;W_f18mF}kI%>}T$K?3aOmQqzcw}nF z%}7TzJjw5?uDu@3%HFy(#!Py@8UT8AqL)t1%-;G|8NPmO@C+itp#HQudWMyQ(s&gn zW`Q(cxy3Nk@W2HFa$gxL#~T2;RYBUhHv}-gsW!|4Vi5&*xcd#M7CHm0RIox1h_Tlk zW#cj_8PkLYYjzw%X>2t~@Sydc7_{39(4f-A>YcrI^p28GRGS?E00Z!1NLnVbX;?*B zy23FYbl*^EyQ;C@micIOS_F_*!~%g9-B$3ou=>pGoSW(;`Cfi!0btWDYBOSE;b49+EZ(=~*>))_MfvA+hZB)J-! jysv+V8-K$4rSGHLikaEwsFT;Ve`xr52Qg1EV%Gf|!*s_7 literal 0 HcmV?d00001 diff --git a/files/assets/91591081/1/Blank.PNG b/files/assets/91591081/1/Blank.PNG new file mode 100644 index 0000000000000000000000000000000000000000..eeac84dba9d5bcb2fcfa7a071691f301af2226ee GIT binary patch literal 2919 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�JcN+ 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 literal 0 HcmV?d00001 diff --git a/files/assets/91600011/1/WorkSans-Italic-VariableFont_wght.png b/files/assets/91600011/1/WorkSans-Italic-VariableFont_wght.png new file mode 100644 index 0000000000000000000000000000000000000000..5f4496c958db5f41de75eefd48a0e1b76f684caa GIT binary patch literal 129251 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 z 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 OY$eJUFN&vc{{A1qI$lix literal 0 HcmV?d00001 diff --git a/playcanvas-stable.min.js b/playcanvas-stable.min.js index f7d2f5e..787440a 100644 --- a/playcanvas-stable.min.js +++ b/playcanvas-stable.min.js @@ -1,6 +1,6 @@ /** * @license - * PlayCanvas Engine v1.53.4 revision 25b117788 + * PlayCanvas Engine v1.54.1 revision 999c376eb * Copyright 2011-2022 PlayCanvas Ltd. All rights reserved. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).pc={})}(this,(function(t){"use strict";function e(t,e,i){t.prototype[e]||Object.defineProperty(t.prototype,e,{value:i,configurable:!0,enumerable:!1,writable:!0})}e(Array,"fill",(function(t){if(null==this)throw new TypeError("this is null or not defined");for(var e=Object(this),i=e.length>>>0,n=arguments[1],s=n>>0,a=s<0?Math.max(i+s,0):Math.min(s,i),r=arguments[2],o=void 0===r?i:r>>0,h=o<0?Math.max(i+o,0):Math.min(o,i);a>>0;if("function"!=typeof t)throw TypeError("predicate must be a function");for(var n=arguments[1],s=0;s>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var n=arguments[1],s=0;s0)-(t<0)||+t}),void 0===Number.isFinite&&(Number.isFinite=function(t){return"number"==typeof t&&isFinite(t)}),"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(t,e){if(null==t)throw new TypeError("Cannot convert undefined or null to object");for(var i=Object(t),n=1;nthis.length)&&(e=this.length),this.substring(e-t.length,e)===t})),e(String,"includes",(function(t,e){return"number"!=typeof e&&(e=0),!(e+t.length>this.length)&&-1!==this.indexOf(t,e)})),e(String,"startsWith",(function(t,e){return this.substr(!e||e<0?0:+e,t.length)===t}));for(var i=0,n=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array];i0?a=a.slice(0,a.length-2):(r>0&&a.push(v.delimiter),a.push(n[r])));return s=a.join(""),e||s[0]!==v.delimiter||(s=s.slice(1)),i&&s[s.length-1]!==v.delimiter&&(s+=v.delimiter),s},split:function(t){var e=t.split(v.delimiter),i=e.slice(e.length-1)[0];return[e.slice(0,e.length-1).join(v.delimiter),i]},getBasename:function(t){return v.split(t)[1]},getDirectory:function(t){var e=t.split(v.delimiter);return e.slice(0,e.length-1).join(v.delimiter)},getExtension:function(t){var e=t.split("?")[0].split(".").pop();return e!==t?"."+e:""},isRelativePath:function(t){return"/"!==t.charAt(0)&&null===t.match(/:\/\//)},extractPath:function(t){var e="",i=t.split("/"),n=0;if(i.length>1)if(v.isRelativePath(t))if("."===i[0])for(n=0;n0),M="getGamepads"in navigator,C="undefined"!=typeof Worker;try{var R=Object.defineProperty({},"passive",{get:function(){return E=!0,!1}});window.addEventListener("testpassive",null,R),window.removeEventListener("testpassive",null,R)}catch(t){}}var I="undefined"!=typeof window?"browser":"node",L={environment:I,global:"browser"===I?window:global,browser:"browser"===I,desktop:y,mobile:x,ios:T,android:w,windows:b,xbox:S,gamepads:M,touch:A,workers:C,passiveEvents:E},D="abcdefghijklmnopqrstuvwxyz",k="ABCDEFGHIJKLMNOPQRSTUVWXYZ",O=55296,F=127462,B=127487,N=65024,U=65039;function z(t,e){void 0===e&&(e=0);var i=t.length;if(e<0||e>=i)return null;var n=t.charCodeAt(e);if(i>1&&n>=O&&n<=56319){var s=t.charCodeAt(e+1);if(s>=56320&&s<=57343)return{code:1024*(n-O)+s-56320+65536,long:!0}}return{code:n,long:!1}}function V(t,e,i){if(!t)return!1;var n=z(t);if(n){var s=n.code;return s>=e&&s<=i}return!1}function W(t,e){if(e===t.length-1)return 1;if(V(t[e],O,56319)){var i=t.substring(e,e+2),n=t.substring(e+2,e+4);return V(n,127995,127999)||V(i,F,B)&&V(n,F,B)?4:V(n,N,U)?3:2}return V(t[e+1],N,U)?2:1}var G={ASCII_LOWERCASE:D,ASCII_UPPERCASE:k,ASCII_LETTERS:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",format:function(t){for(var e=1;e65535?[55296+(e>>10),e%1024+56320]:[t],n.push(String.fromCharCode.apply(null,i));return n.join("")}},H=function(){function t(){this._list=[],this._index={}}var e=t.prototype;return e.push=function(t,e){if(this._index[t])throw Error("Key already in index "+t);var i=this._list.push(e)-1;this._index[t]=i},e.has=function(t){return void 0!==this._index[t]},e.get=function(t){var e=this._index[t];return void 0!==e?this._list[e]:null},e.remove=function(t){var e=this._index[t];if(void 0!==e){for(t in this._list.splice(e,1),delete this._index[t],this._index){var i=this._index[t];i>e&&(this._index[t]=i-1)}return!0}return!1},e.list=function(){return this._list},e.clear=function(){for(var t in this._list.length=0,this._index)delete this._index[t]},t}();function X(t,e){for(var i=0;it.length)&&(e=t.length);for(var i=0,n=new Array(e);i=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var J=function(){function t(t){this.arraybuffer=t,this.dataView=new DataView(t),this.offset=0,this.stack=[]}var e=t.prototype;return e.reset=function(t){void 0===t&&(t=0),this.offset=t},e.skip=function(t){this.offset+=t},e.align=function(t){this.offset=this.offset+t-1&~(t-1)},e._inc=function(t){return this.offset+=t,this.offset-t},e.readChar=function(){return String.fromCharCode(this.dataView.getUint8(this.offset++))},e.readChars=function(t){for(var e="",i=0;i=t.byteLength);){var i=String.fromCharCode(this.readU8());if("\n"===i)break;e+=i}return e},q(t,[{key:"remainingBytes",get:function(){return this.dataView.byteLength-this.offset}}]),t}(),tt=function(){function t(t){this.items=[],this.length=0,this.loopIndex=-1,this._sortBy=t.sortBy,this._sortHandler=this._doSort.bind(this)}var e=t.prototype;return e._binarySearch=function(t){for(var e,i,n=0,s=this.items.length-1,a=t[this._sortBy];n<=s;)e=Math.floor((n+s)/2),(i=this.items[e][this._sortBy])<=a?n=e+1:i>a&&(s=e-1);return n},e._doSort=function(t,e){var i=this._sortBy;return t[i]-e[i]},e.insert=function(t){var e=this._binarySearch(t);this.items.splice(e,0,t),this.length++,this.loopIndex>=e&&this.loopIndex++},e.append=function(t){this.items.push(t),this.length++},e.remove=function(t){var e=this.items.indexOf(t);e<0||(this.items.splice(e,1),this.length--,this.loopIndex>=e&&this.loopIndex--)},e.sort=function(){var t=this.loopIndex>=0?this.items[this.loopIndex]:null;this.items.sort(this._sortHandler),null!==t&&(this.loopIndex=this.items.indexOf(t))},t}(),et=function(t){function e(e){var i;return(i=t.call(this)||this)._index={},i._list=[],i._parent=e,i}Y(e,t);var i=e.prototype;return i.add=function(){var t=!1,e=this._processArguments(arguments,!0);if(!e.length)return t;for(var i=0;i=i?i:t<=e?e:t},intToBytes24:function(t){return[t>>16&255,t>>8&255,255&t]},intToBytes32:function(t){return[t>>24&255,t>>16&255,t>>8&255,255&t]},bytesToInt24:function(t,e,i){return t.length&&(i=t[2],e=t[1],t=t[0]),t<<16|e<<8|i},bytesToInt32:function(t,e,i,n){return t.length&&(n=t[3],i=t[2],e=t[1],t=t[0]),(t<<24|e<<16|i<<8|n)>>>0},lerp:function(t,e,i){return t+(e-t)*rt.clamp(i,0,1)},lerpAngle:function(t,e,i){return e-t>180&&(e-=360),e-t<-180&&(e+=360),rt.lerp(t,e,rt.clamp(i,0,1))},powerOfTwo:function(t){return 0!==t&&!(t&t-1)},nextPowerOfTwo:function(t){return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t},random:function(t,e){var i=e-t;return Math.random()*i+t},smoothstep:function(t,e,i){return i<=t?0:i>=e?1:(i=(i-t)/(e-t))*i*(3-2*i)},smootherstep:function(t,e,i){return i<=t?0:i>=e?1:(i=(i-t)/(e-t))*i*i*(i*(6*i-15)+10)},roundUp:function(t,e){return 0===e?t:Math.ceil(t/e)*e},between:function(t,e,i,n){var s=Math.min(e,i),a=Math.max(e,i);return n?t>=s&&t<=a:t>s&&t=0?t.ResponseType.ARRAY_BUFFER:".xml"===n?t.ResponseType.DOCUMENT:t.ResponseType.TEXT},e._isBinaryContentType=function(e){return[t.ContentType.MP4,t.ContentType.WAV,t.ContentType.OGG,t.ContentType.MP3,t.ContentType.BIN,t.ContentType.DDS,t.ContentType.BASIS,t.ContentType.GLB].indexOf(e)>=0},e._onReadyStateChange=function(t,e,i,n){if(4===n.readyState)switch(n.status){case 0:n.responseURL&&n.responseURL.startsWith("file:///")?this._onSuccess(t,e,i,n):this._onError(t,e,i,n);break;case 200:case 201:case 206:case 304:this._onSuccess(t,e,i,n);break;default:this._onError(t,e,i,n)}},e._onSuccess=function(e,i,n,s){var a,r,o=s.getResponseHeader("Content-Type");o&&(r=o.split(";")[0].trim());try{a=r===t.ContentType.JSON||i.split("?")[0].endsWith(".json")?JSON.parse(s.responseText):this._isBinaryContentType(r)||s.responseType===t.ResponseType.ARRAY_BUFFER||s.responseType===t.ResponseType.BLOB||s.responseType===t.ResponseType.JSON?s.response:s.responseType===t.ResponseType.DOCUMENT||r===t.ContentType.XML?s.responseXML:s.responseText,n.callback(null,a)}catch(t){n.callback(t)}},e._onError=function(e,i,n,s){var a=this;if(!n.retrying)if(n.retry&&n.retries7?e=rt.intToBytes32(i):(e=rt.intToBytes24(i))[3]=255,this.set(e[0]/255,e[1]/255,e[2]/255,e[3]/255),this},e.toString=function(t){var e="#"+((1<<24)+(Math.round(255*this.r)<<16)+(Math.round(255*this.g)<<8)+Math.round(255*this.b)).toString(16).slice(1);if(!0===t){var i=Math.round(255*this.a).toString(16);this.a<16/255?e+="0"+i:e+=i}return e},t}();lt.BLACK=Object.freeze(new lt(0,0,0,1)),lt.BLUE=Object.freeze(new lt(0,0,1,1)),lt.CYAN=Object.freeze(new lt(0,1,1,1)),lt.GRAY=Object.freeze(new lt(.5,.5,.5,1)),lt.GREEN=Object.freeze(new lt(0,1,0,1)),lt.MAGENTA=Object.freeze(new lt(1,0,1,1)),lt.RED=Object.freeze(new lt(1,0,0,1)),lt.WHITE=Object.freeze(new lt(1,1,1,1)),lt.YELLOW=Object.freeze(new lt(1,1,0,1));var ct=function(){function t(t,e){void 0===e&&(e=0),this._curve=t,this._left=-1/0,this._right=1/0,this._recip=0,this._p0=0,this._p1=0,this._m0=0,this._m1=0,this._reset(e)}var e=t.prototype;return e.evaluate=function(t,e){var i;void 0===e&&(e=!1),(e||t=this._right)&&this._reset(t);var n=this._curve.type;if(5===n)i=this._p0;else{var s=0===this._recip?0:(t-this._left)*this._recip;i=0===n?rt.lerp(this._p0,this._p1,s):1===n?rt.lerp(this._p0,this._p1,s*s*(3-2*s)):this._evaluateHermite(this._p0,this._p1,this._m0,this._m1,s)}return i},e._reset=function(t){var e=this._curve.keys,i=e.length;if(i)if(t=e[i-1][0])this._left=e[i-1][0],this._right=1/0,this._recip=0,this._p0=this._p1=e[i-1][1],this._m0=this._m1=0;else{for(var n=0;t>=e[n+1][0];)n++;this._left=e[n][0],this._right=e[n+1][0];var s=1/(this._right-this._left);this._recip=isFinite(s)?s:0,this._p0=e[n][1],this._p1=e[n+1][1],this._isHermite()&&this._calcTangents(e,n)}else this._left=-1/0,this._right=1/0,this._recip=0,this._p0=this._p1=this._m0=this._m1=0},e._isHermite=function(){return 2===this._curve.type||3===this._curve.type||4===this._curve.type},e._calcTangents=function(t,e){var i,n,s=t[e],a=t[e+1];if(i=0===e?[t[0][0]+(t[0][0]-t[1][0]),t[0][1]+(t[0][1]-t[1][1])]:t[e-1],n=e===t.length-2?[t[e+1][0]+(t[e+1][0]-t[e][0]),t[e+1][1]+(t[e+1][1]-t[e][1])]:t[e+2],4===this._curve.type){var r=2*(a[0]-s[0])/(a[0]-i[0]),o=2*(a[0]-s[0])/(n[0]-s[0]);this._m0=this._curve.tension*(isFinite(r)?r:0)*(a[1]-i[1]),this._m1=this._curve.tension*(isFinite(o)?o:0)*(n[1]-s[1])}else{var h=(a[0]-s[0])/(s[0]-i[0]),l=(a[0]-s[0])/(n[0]-a[0]),c=s[1]+(i[1]-s[1])*(isFinite(h)?h:0),u=a[1]+(n[1]-a[1])*(isFinite(l)?l:0),d=2===this._curve.type?.5:this._curve.tension;this._m0=d*(a[1]-c),this._m1=d*(u-s[1])}},e._evaluateHermite=function(t,e,i,n,s){var a=s*s,r=s+s,o=1-s,h=o*o;return t*((1+r)*h)+i*(s*h)+e*(a*(3-r))+n*(a*(s-1))},t}(),ut=function(){function t(t){if(this.keys=[],this.type=1,this.tension=.5,this._eval=new ct(this),t)for(var e=0;et);s++);var a=[t,e];return this.keys.splice(s,0,a),a},e.get=function(t){return this.keys[t]},e.sort=function(){this.keys.sort((function(t,e){return t[0]-e[0]}))},e.value=function(t){return this._eval.evaluate(t,!0)},e.closest=function(t){for(var e=this.keys,i=e.length,n=2,s=null,a=0;a=r))break;n=r,s=e[a]}return s},e.clone=function(){var e=new t;return e.keys=f(e.keys,this.keys),e.type=this.type,e.tension=this.tension,e},e.quantize=function(t){t=Math.max(t,2);var e=new Float32Array(t),i=1/(t-1);e[0]=this._eval.evaluate(0,!0);for(var n=1;n1)for(var t=0;t0){var e=1/Math.sqrt(t);this.x*=e,this.y*=e,this.z*=e}return this},e.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},e.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},e.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},e.min=function(t){return t.xthis.x&&(this.x=t.x),t.y>this.y&&(this.y=t.y),t.z>this.z&&(this.z=t.z),this},e.project=function(t){var e=(this.x*t.x+this.y*t.y+this.z*t.z)/(t.x*t.x+t.y*t.y+t.z*t.z);return this.x=t.x*e,this.y=t.y*e,this.z=t.z*e,this},e.set=function(t,e,i){return this.x=t,this.y=e,this.z=i,this},e.sub=function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this},e.sub2=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},e.subScalar=function(t){return this.x-=t,this.y-=t,this.z-=t,this},e.toString=function(){return"["+this.x+", "+this.y+", "+this.z+"]"},t}();ft.ZERO=Object.freeze(new ft(0,0,0)),ft.ONE=Object.freeze(new ft(1,1,1)),ft.UP=Object.freeze(new ft(0,1,0)),ft.DOWN=Object.freeze(new ft(0,-1,0)),ft.RIGHT=Object.freeze(new ft(1,0,0)),ft.LEFT=Object.freeze(new ft(-1,0,0)),ft.FORWARD=Object.freeze(new ft(0,0,-1)),ft.BACK=Object.freeze(new ft(0,0,1));var pt=function(){function t(){var t=new Float32Array(9);t[0]=t[4]=t[8]=1,this.data=t}var e=t.prototype;return e.clone=function(){return(new t).copy(this)},e.copy=function(t){var e=t.data,i=this.data;return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i[6]=e[6],i[7]=e[7],i[8]=e[8],this},e.set=function(t){var e=this.data;return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],this},e.equals=function(t){var e=this.data,i=t.data;return e[0]===i[0]&&e[1]===i[1]&&e[2]===i[2]&&e[3]===i[3]&&e[4]===i[4]&&e[5]===i[5]&&e[6]===i[6]&&e[7]===i[7]&&e[8]===i[8]},e.isIdentity=function(){var t=this.data;return 1===t[0]&&0===t[1]&&0===t[2]&&0===t[3]&&1===t[4]&&0===t[5]&&0===t[6]&&0===t[7]&&1===t[8]},e.setIdentity=function(){var t=this.data;return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,this},e.toString=function(){return"["+this.data.join(", ")+"]"},e.transpose=function(){var t,e=this.data;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this},e.setFromMat4=function(t){var e=t.data,i=this.data;return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[4],i[4]=e[5],i[5]=e[6],i[6]=e[8],i[7]=e[9],i[8]=e[10],this},e.transformVector=function(t,e){void 0===e&&(e=new ft);var i=this.data,n=t.x,s=t.y,a=t.z;return e.x=n*i[0]+s*i[3]+a*i[6],e.y=n*i[1]+s*i[4]+a*i[7],e.z=n*i[2]+s*i[5]+a*i[8],e},t}();pt.IDENTITY=Object.freeze(new pt),pt.ZERO=Object.freeze((new pt).set([0,0,0,0,0,0,0,0,0]));var mt=function(){function t(t,e){void 0===t&&(t=0),void 0===e&&(e=0),2===t.length?(this.x=t[0],this.y=t[1]):(this.x=t,this.y=e)}var e=t.prototype;return e.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.add2=function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},e.addScalar=function(t){return this.x+=t,this.y+=t,this},e.clone=function(){return new t(this.x,this.y)},e.copy=function(t){return this.x=t.x,this.y=t.y,this},e.cross=function(t){return this.x*t.y-this.y*t.x},e.distance=function(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)},e.div=function(t){return this.x/=t.x,this.y/=t.y,this},e.div2=function(t,e){return this.x=t.x/e.x,this.y=t.y/e.y,this},e.divScalar=function(t){return this.x/=t,this.y/=t,this},e.dot=function(t){return this.x*t.x+this.y*t.y},e.equals=function(t){return this.x===t.x&&this.y===t.y},e.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.lengthSq=function(){return this.x*this.x+this.y*this.y},e.lerp=function(t,e,i){return this.x=t.x+i*(e.x-t.x),this.y=t.y+i*(e.y-t.y),this},e.mul=function(t){return this.x*=t.x,this.y*=t.y,this},e.mul2=function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this},e.mulScalar=function(t){return this.x*=t,this.y*=t,this},e.normalize=function(){var t=this.x*this.x+this.y*this.y;if(t>0){var e=1/Math.sqrt(t);this.x*=e,this.y*=e}return this},e.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},e.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},e.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},e.min=function(t){return t.xthis.x&&(this.x=t.x),t.y>this.y&&(this.y=t.y),this},e.set=function(t,e){return this.x=t,this.y=e,this},e.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.sub2=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},e.subScalar=function(t){return this.x-=t,this.y-=t,this},e.toString=function(){return"["+this.x+", "+this.y+"]"},t.angleRad=function(t,e){return Math.atan2(t.x*e.y-t.y*e.x,t.x*e.x+t.y*e.y)},t}();mt.ZERO=Object.freeze(new mt(0,0)),mt.ONE=Object.freeze(new mt(1,1)),mt.UP=Object.freeze(new mt(0,1)),mt.DOWN=Object.freeze(new mt(0,-1)),mt.RIGHT=Object.freeze(new mt(1,0)),mt.LEFT=Object.freeze(new mt(-1,0));var _t=function(){function t(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),4===t.length?(this.x=t[0],this.y=t[1],this.z=t[2],this.w=t[3]):(this.x=t,this.y=e,this.z=i,this.w=n)}var e=t.prototype;return e.add=function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this},e.add2=function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this},e.addScalar=function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},e.clone=function(){return new t(this.x,this.y,this.z,this.w)},e.copy=function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w,this},e.div=function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this.w/=t.w,this},e.div2=function(t,e){return this.x=t.x/e.x,this.y=t.y/e.y,this.z=t.z/e.z,this.w=t.w/e.w,this},e.divScalar=function(t){return this.x/=t,this.y/=t,this.z/=t,this.w/=t,this},e.dot=function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},e.equals=function(t){return this.x===t.x&&this.y===t.y&&this.z===t.z&&this.w===t.w},e.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},e.lengthSq=function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},e.lerp=function(t,e,i){return this.x=t.x+i*(e.x-t.x),this.y=t.y+i*(e.y-t.y),this.z=t.z+i*(e.z-t.z),this.w=t.w+i*(e.w-t.w),this},e.mul=function(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this},e.mul2=function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this.w=t.w*e.w,this},e.mulScalar=function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},e.normalize=function(){var t=this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w;if(t>0){var e=1/Math.sqrt(t);this.x*=e,this.y*=e,this.z*=e,this.w*=e}return this},e.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},e.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},e.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},e.min=function(t){return t.xthis.x&&(this.x=t.x),t.y>this.y&&(this.y=t.y),t.z>this.z&&(this.z=t.z),t.w>this.w&&(this.w=t.w),this},e.set=function(t,e,i,n){return this.x=t,this.y=e,this.z=i,this.w=n,this},e.sub=function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this},e.sub2=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this},e.subScalar=function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},e.toString=function(){return"["+this.x+", "+this.y+", "+this.z+", "+this.w+"]"},t}();_t.ZERO=Object.freeze(new _t(0,0,0,0)),_t.ONE=Object.freeze(new _t(1,1,1,1));var gt=new mt,vt=new ft,yt=new ft,xt=new ft,bt=new ft,St=function(){function t(){var t=new Float32Array(16);t[0]=t[5]=t[10]=t[15]=1,this.data=t}t._getPerspectiveHalfSize=function(t,e,i,n,s){s?(t.x=n*Math.tan(e*Math.PI/360),t.y=t.x/i):(t.y=n*Math.tan(e*Math.PI/360),t.x=t.y*i)};var e=t.prototype;return e.add2=function(t,e){var i=t.data,n=e.data,s=this.data;return s[0]=i[0]+n[0],s[1]=i[1]+n[1],s[2]=i[2]+n[2],s[3]=i[3]+n[3],s[4]=i[4]+n[4],s[5]=i[5]+n[5],s[6]=i[6]+n[6],s[7]=i[7]+n[7],s[8]=i[8]+n[8],s[9]=i[9]+n[9],s[10]=i[10]+n[10],s[11]=i[11]+n[11],s[12]=i[12]+n[12],s[13]=i[13]+n[13],s[14]=i[14]+n[14],s[15]=i[15]+n[15],this},e.add=function(t){return this.add2(this,t)},e.clone=function(){return(new t).copy(this)},e.copy=function(t){var e=t.data,i=this.data;return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i[6]=e[6],i[7]=e[7],i[8]=e[8],i[9]=e[9],i[10]=e[10],i[11]=e[11],i[12]=e[12],i[13]=e[13],i[14]=e[14],i[15]=e[15],this},e.equals=function(t){var e=this.data,i=t.data;return e[0]===i[0]&&e[1]===i[1]&&e[2]===i[2]&&e[3]===i[3]&&e[4]===i[4]&&e[5]===i[5]&&e[6]===i[6]&&e[7]===i[7]&&e[8]===i[8]&&e[9]===i[9]&&e[10]===i[10]&&e[11]===i[11]&&e[12]===i[12]&&e[13]===i[13]&&e[14]===i[14]&&e[15]===i[15]},e.isIdentity=function(){var t=this.data;return 1===t[0]&&0===t[1]&&0===t[2]&&0===t[3]&&0===t[4]&&1===t[5]&&0===t[6]&&0===t[7]&&0===t[8]&&0===t[9]&&1===t[10]&&0===t[11]&&0===t[12]&&0===t[13]&&0===t[14]&&1===t[15]},e.mul2=function(t,e){var i,n,s,a,r=t.data,o=e.data,h=this.data,l=r[0],c=r[1],u=r[2],d=r[3],f=r[4],p=r[5],m=r[6],_=r[7],g=r[8],v=r[9],y=r[10],x=r[11],b=r[12],S=r[13],w=r[14],T=r[15];return i=o[0],n=o[1],s=o[2],a=o[3],h[0]=l*i+f*n+g*s+b*a,h[1]=c*i+p*n+v*s+S*a,h[2]=u*i+m*n+y*s+w*a,h[3]=d*i+_*n+x*s+T*a,i=o[4],n=o[5],s=o[6],a=o[7],h[4]=l*i+f*n+g*s+b*a,h[5]=c*i+p*n+v*s+S*a,h[6]=u*i+m*n+y*s+w*a,h[7]=d*i+_*n+x*s+T*a,i=o[8],n=o[9],s=o[10],a=o[11],h[8]=l*i+f*n+g*s+b*a,h[9]=c*i+p*n+v*s+S*a,h[10]=u*i+m*n+y*s+w*a,h[11]=d*i+_*n+x*s+T*a,i=o[12],n=o[13],s=o[14],a=o[15],h[12]=l*i+f*n+g*s+b*a,h[13]=c*i+p*n+v*s+S*a,h[14]=u*i+m*n+y*s+w*a,h[15]=d*i+_*n+x*s+T*a,this},e.mulAffine2=function(t,e){var i,n,s,a=t.data,r=e.data,o=this.data,h=a[0],l=a[1],c=a[2],u=a[4],d=a[5],f=a[6],p=a[8],m=a[9],_=a[10],g=a[12],v=a[13],y=a[14];return i=r[0],n=r[1],s=r[2],o[0]=h*i+u*n+p*s,o[1]=l*i+d*n+m*s,o[2]=c*i+f*n+_*s,o[3]=0,i=r[4],n=r[5],s=r[6],o[4]=h*i+u*n+p*s,o[5]=l*i+d*n+m*s,o[6]=c*i+f*n+_*s,o[7]=0,i=r[8],n=r[9],s=r[10],o[8]=h*i+u*n+p*s,o[9]=l*i+d*n+m*s,o[10]=c*i+f*n+_*s,o[11]=0,i=r[12],n=r[13],s=r[14],o[12]=h*i+u*n+p*s+g,o[13]=l*i+d*n+m*s+v,o[14]=c*i+f*n+_*s+y,o[15]=1,this},e.mul=function(t){return this.mul2(this,t)},e.transformPoint=function(t,e){void 0===e&&(e=new ft);var i=this.data,n=t.x,s=t.y,a=t.z;return e.x=n*i[0]+s*i[4]+a*i[8]+i[12],e.y=n*i[1]+s*i[5]+a*i[9]+i[13],e.z=n*i[2]+s*i[6]+a*i[10]+i[14],e},e.transformVector=function(t,e){void 0===e&&(e=new ft);var i=this.data,n=t.x,s=t.y,a=t.z;return e.x=n*i[0]+s*i[4]+a*i[8],e.y=n*i[1]+s*i[5]+a*i[9],e.z=n*i[2]+s*i[6]+a*i[10],e},e.transformVec4=function(t,e){void 0===e&&(e=new _t);var i=this.data,n=t.x,s=t.y,a=t.z,r=t.w;return e.x=n*i[0]+s*i[4]+a*i[8]+r*i[12],e.y=n*i[1]+s*i[5]+a*i[9]+r*i[13],e.z=n*i[2]+s*i[6]+a*i[10]+r*i[14],e.w=n*i[3]+s*i[7]+a*i[11]+r*i[15],e},e.setLookAt=function(t,e,i){xt.sub2(t,e).normalize(),yt.copy(i).normalize(),vt.cross(yt,xt).normalize(),yt.cross(xt,vt);var n=this.data;return n[0]=vt.x,n[1]=vt.y,n[2]=vt.z,n[3]=0,n[4]=yt.x,n[5]=yt.y,n[6]=yt.z,n[7]=0,n[8]=xt.x,n[9]=xt.y,n[10]=xt.z,n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,this},e.setFrustum=function(t,e,i,n,s,a){var r=2*s,o=e-t,h=n-i,l=a-s,c=this.data;return c[0]=r/o,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=r/h,c[6]=0,c[7]=0,c[8]=(e+t)/o,c[9]=(n+i)/h,c[10]=(-a-s)/l,c[11]=-1,c[12]=0,c[13]=0,c[14]=-r*a/l,c[15]=0,this},e.setPerspective=function(e,i,n,s,a){return t._getPerspectiveHalfSize(gt,e,i,n,a),this.setFrustum(-gt.x,gt.x,-gt.y,gt.y,n,s)},e.setOrtho=function(t,e,i,n,s,a){var r=this.data;return r[0]=2/(e-t),r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2/(n-i),r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=-2/(a-s),r[11]=0,r[12]=-(e+t)/(e-t),r[13]=-(n+i)/(n-i),r[14]=-(a+s)/(a-s),r[15]=1,this},e.setFromAxisAngle=function(t,e){e*=rt.DEG_TO_RAD;var i=t.x,n=t.y,s=t.z,a=Math.cos(e),r=Math.sin(e),o=1-a,h=o*i,l=o*n,c=this.data;return c[0]=h*i+a,c[1]=h*n+r*s,c[2]=h*s-r*n,c[3]=0,c[4]=h*n-r*s,c[5]=l*n+a,c[6]=l*s+r*i,c[7]=0,c[8]=h*s+r*n,c[9]=l*s-i*r,c[10]=o*s*s+a,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,this},e.setTranslate=function(t,e,i){var n=this.data;return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=t,n[13]=e,n[14]=i,n[15]=1,this},e.setScale=function(t,e,i){var n=this.data;return n[0]=t,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=e,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=i,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this},e.setViewport=function(t,e,i,n){var s=this.data;return s[0]=.5*i,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=.5*n,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=.5,s[11]=0,s[12]=t+.5*i,s[13]=e+.5*n,s[14]=.5,s[15]=1,this},e.invert=function(){var t=this.data,e=t[0],i=t[1],n=t[2],s=t[3],a=t[4],r=t[5],o=t[6],h=t[7],l=t[8],c=t[9],u=t[10],d=t[11],f=t[12],p=t[13],m=t[14],_=t[15],g=e*r-i*a,v=e*o-n*a,y=e*h-s*a,x=i*o-n*r,b=i*h-s*r,S=n*h-s*o,w=l*p-c*f,T=l*m-u*f,A=l*_-d*f,M=c*m-u*p,C=c*_-d*p,E=u*_-d*m,P=g*E-v*C+y*M+x*A-b*T+S*w;if(0===P)this.setIdentity();else{var R=1/P;t[0]=(r*E-o*C+h*M)*R,t[1]=(-i*E+n*C-s*M)*R,t[2]=(p*S-m*b+_*x)*R,t[3]=(-c*S+u*b-d*x)*R,t[4]=(-a*E+o*A-h*T)*R,t[5]=(e*E-n*A+s*T)*R,t[6]=(-f*S+m*y-_*v)*R,t[7]=(l*S-u*y+d*v)*R,t[8]=(a*C-r*A+h*w)*R,t[9]=(-e*C+i*A-s*w)*R,t[10]=(f*b-p*y+_*g)*R,t[11]=(-l*b+c*y-d*g)*R,t[12]=(-a*M+r*T-o*w)*R,t[13]=(e*M-i*T+n*w)*R,t[14]=(-f*x+p*v-m*g)*R,t[15]=(l*x-c*v+u*g)*R}return this},e.set=function(t){var e=this.data;return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],this},e.setIdentity=function(){var t=this.data;return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this},e.setTRS=function(t,e,i){var n=e.x,s=e.y,a=e.z,r=e.w,o=i.x,h=i.y,l=i.z,c=n+n,u=s+s,d=a+a,f=n*c,p=n*u,m=n*d,_=s*u,g=s*d,v=a*d,y=r*c,x=r*u,b=r*d,S=this.data;return S[0]=(1-(_+v))*o,S[1]=(p+b)*o,S[2]=(m-x)*o,S[3]=0,S[4]=(p-b)*h,S[5]=(1-(f+v))*h,S[6]=(g+y)*h,S[7]=0,S[8]=(m+x)*l,S[9]=(g-y)*l,S[10]=(1-(f+_))*l,S[11]=0,S[12]=t.x,S[13]=t.y,S[14]=t.z,S[15]=1,this},e.transpose=function(){var t,e=this.data;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this},e.invertTo3x3=function(t){var e=this.data,i=t.data,n=e[0],s=e[1],a=e[2],r=e[4],o=e[5],h=e[6],l=e[8],c=e[9],u=e[10],d=u*o-h*c,f=-u*s+a*c,p=h*s-a*o,m=-u*r+h*l,_=u*n-a*l,g=-h*n+a*r,v=c*r-o*l,y=-c*n+s*l,x=o*n-s*r,b=n*d+s*m+a*v;if(0===b)return this;var S=1/b;return i[0]=S*d,i[1]=S*f,i[2]=S*p,i[3]=S*m,i[4]=S*_,i[5]=S*g,i[6]=S*v,i[7]=S*y,i[8]=S*x,this},e.getTranslation=function(t){return void 0===t&&(t=new ft),t.set(this.data[12],this.data[13],this.data[14])},e.getX=function(t){return void 0===t&&(t=new ft),t.set(this.data[0],this.data[1],this.data[2])},e.getY=function(t){return void 0===t&&(t=new ft),t.set(this.data[4],this.data[5],this.data[6])},e.getZ=function(t){return void 0===t&&(t=new ft),t.set(this.data[8],this.data[9],this.data[10])},e.getScale=function(t){return void 0===t&&(t=new ft),this.getX(vt),this.getY(yt),this.getZ(xt),t.set(vt.length(),yt.length(),xt.length()),t},e.setFromEulerAngles=function(t,e,i){t*=rt.DEG_TO_RAD,e*=rt.DEG_TO_RAD,i*=rt.DEG_TO_RAD;var n=Math.sin(-t),s=Math.cos(-t),a=Math.sin(-e),r=Math.cos(-e),o=Math.sin(-i),h=Math.cos(-i),l=this.data;return l[0]=r*h,l[1]=-r*o,l[2]=a,l[3]=0,l[4]=s*o+h*n*a,l[5]=s*h-n*a*o,l[6]=-r*n,l[7]=0,l[8]=n*o-s*h*a,l[9]=h*n+s*a*o,l[10]=s*r,l[11]=0,l[12]=0,l[13]=0,l[14]=0,l[15]=1,this},e.getEulerAngles=function(t){void 0===t&&(t=new ft),this.getScale(bt);var e=bt.x,i=bt.y,n=bt.z;if(0===e||0===i||0===n)return t.set(0,0,0);var s,a,r=this.data,o=Math.asin(-r[2]/e),h=.5*Math.PI;return o-h?(s=Math.atan2(r[6]/i,r[10]/n),a=Math.atan2(r[1]/e,r[0]/e)):(a=0,s=-Math.atan2(r[4]/i,r[5]/i)):(a=0,s=Math.atan2(r[4]/i,r[5]/i)),t.set(s,o,a).mulScalar(rt.RAD_TO_DEG)},e.toString=function(){return"["+this.data.join(", ")+"]"},t}();St.IDENTITY=Object.freeze(new St),St.ZERO=Object.freeze((new St).set([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]));var wt=function(){function t(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=1),4===t.length?(this.x=t[0],this.y=t[1],this.z=t[2],this.w=t[3]):(this.x=t,this.y=e,this.z=i,this.w=n)}var e=t.prototype;return e.clone=function(){return new t(this.x,this.y,this.z,this.w)},e.conjugate=function(){return this.x*=-1,this.y*=-1,this.z*=-1,this},e.copy=function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w,this},e.equals=function(t){return this.x===t.x&&this.y===t.y&&this.z===t.z&&this.w===t.w},e.getAxisAngle=function(t){var e=2*Math.acos(this.w),i=Math.sin(e/2);return 0!==i?(t.x=this.x/i,t.y=this.y/i,t.z=this.z/i,(t.x<0||t.y<0||t.z<0)&&(t.x*=-1,t.y*=-1,t.z*=-1,e*=-1)):(t.x=1,t.y=0,t.z=0),e*rt.RAD_TO_DEG},e.getEulerAngles=function(t){var e,i,n;void 0===t&&(t=new ft);var s=this.x,a=this.y,r=this.z,o=this.w,h=2*(o*a-s*r);return h<=-.99999?(e=2*Math.atan2(s,o),i=-Math.PI/2,n=0):h>=.99999?(e=2*Math.atan2(s,o),i=Math.PI/2,n=0):(e=Math.atan2(2*(o*s+a*r),1-2*(s*s+a*a)),i=Math.asin(h),n=Math.atan2(2*(o*r+s*a),1-2*(a*a+r*r))),t.set(e,i,n).mulScalar(rt.RAD_TO_DEG)},e.invert=function(){return this.conjugate().normalize()},e.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},e.lengthSq=function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},e.mul=function(t){var e=this.x,i=this.y,n=this.z,s=this.w,a=t.x,r=t.y,o=t.z,h=t.w;return this.x=s*a+e*h+i*o-n*r,this.y=s*r+i*h+n*a-e*o,this.z=s*o+n*h+e*r-i*a,this.w=s*h-e*a-i*r-n*o,this},e.mul2=function(t,e){var i=t.x,n=t.y,s=t.z,a=t.w,r=e.x,o=e.y,h=e.z,l=e.w;return this.x=a*r+i*l+n*h-s*o,this.y=a*o+n*l+s*r-i*h,this.z=a*h+s*l+i*o-n*r,this.w=a*l-i*r-n*o-s*h,this},e.normalize=function(){var t=this.length();return 0===t?(this.x=this.y=this.z=0,this.w=1):(t=1/t,this.x*=t,this.y*=t,this.z*=t,this.w*=t),this},e.set=function(t,e,i,n){return this.x=t,this.y=e,this.z=i,this.w=n,this},e.setFromAxisAngle=function(t,e){e*=.5*rt.DEG_TO_RAD;var i=Math.sin(e),n=Math.cos(e);return this.x=i*t.x,this.y=i*t.y,this.z=i*t.z,this.w=n,this},e.setFromEulerAngles=function(t,e,i){if(t instanceof ft){var n=t;t=n.x,e=n.y,i=n.z}var s=.5*rt.DEG_TO_RAD;t*=s,e*=s,i*=s;var a=Math.sin(t),r=Math.cos(t),o=Math.sin(e),h=Math.cos(e),l=Math.sin(i),c=Math.cos(i);return this.x=a*h*c-r*o*l,this.y=r*o*c+a*h*l,this.z=r*h*l-a*o*c,this.w=r*h*c+a*o*l,this},e.setFromMat4=function(t){var e,i,n,s,a,r,o,h,l,c,u,d,f,p;if(e=(t=t.data)[0],i=t[1],n=t[2],s=t[4],a=t[5],r=t[6],o=t[8],h=t[9],l=t[10],0===(d=e*e+i*i+n*n))return this;if(d=1/Math.sqrt(d),0===(f=s*s+a*a+r*r))return this;if(f=1/Math.sqrt(f),0===(p=o*o+h*h+l*l))return this;i*=d,n*=d,s*=f,r*=f,o*=p=1/Math.sqrt(p),h*=p;var m=(e*=d)+(a*=f)+(l*=p);return m>=0?(c=Math.sqrt(m+1),this.w=.5*c,c=.5/c,this.x=(r-h)*c,this.y=(o-n)*c,this.z=(i-s)*c):e>a?e>l?(u=e-(a+l)+1,u=Math.sqrt(u),this.x=.5*u,u=.5/u,this.w=(r-h)*u,this.y=(i+s)*u,this.z=(n+o)*u):(u=l-(e+a)+1,u=Math.sqrt(u),this.z=.5*u,u=.5/u,this.w=(i-s)*u,this.x=(o+n)*u,this.y=(h+r)*u):a>l?(u=a-(l+e)+1,u=Math.sqrt(u),this.y=.5*u,u=.5/u,this.w=(o-n)*u,this.z=(r+h)*u,this.x=(s+i)*u):(u=l-(e+a)+1,u=Math.sqrt(u),this.z=.5*u,u=.5/u,this.w=(i-s)*u,this.x=(o+n)*u,this.y=(h+r)*u),this},e.slerp=function(t,e,i){var n=t.x,s=t.y,a=t.z,r=t.w,o=e.x,h=e.y,l=e.z,c=e.w,u=r*c+n*o+s*h+a*l;if(u<0&&(c=-c,o=-o,h=-h,l=-l,u=-u),Math.abs(u)>=1)return this.w=r,this.x=n,this.y=s,this.z=a,this;var d=Math.acos(u),f=Math.sqrt(1-u*u);if(Math.abs(f)<.001)return this.w=.5*r+.5*c,this.x=.5*n+.5*o,this.y=.5*s+.5*h,this.z=.5*a+.5*l,this;var p=Math.sin((1-i)*d)/f,m=Math.sin(i*d)/f;return this.w=r*p+c*m,this.x=n*p+o*m,this.y=s*p+h*m,this.z=a*p+l*m,this},e.transformVector=function(t,e){void 0===e&&(e=new ft);var i=t.x,n=t.y,s=t.z,a=this.x,r=this.y,o=this.z,h=this.w,l=h*i+r*s-o*n,c=h*n+o*i-a*s,u=h*s+a*n-r*i,d=-a*i-r*n-o*s;return e.x=l*h+d*-a+c*-o-u*-r,e.y=c*h+d*-r+u*-a-l*-o,e.z=u*h+d*-o+l*-r-c*-a,e},e.toString=function(){return"["+this.x+", "+this.y+", "+this.z+", "+this.w+"]"},t}();wt.IDENTITY=Object.freeze(new wt(0,0,0,1)),wt.ZERO=Object.freeze(new wt(0,0,0,0));var Tt=new ft,At=new ft,Mt=new ft,Ct=new ft,Et=new ft,Pt=function(){function t(t,e){void 0===t&&(t=new ft),void 0===e&&(e=new ft(.5,.5,.5)),this.center=t,this.halfExtents=e,this._min=new ft,this._max=new ft}var e=t.prototype;return e.add=function(t){var e=this.center,i=e.x,n=e.y,s=e.z,a=this.halfExtents,r=a.x,o=a.y,h=a.z,l=i-r,c=i+r,u=n-o,d=n+o,f=s-h,p=s+h,m=t.center,_=m.x,g=m.y,v=m.z,y=t.halfExtents,x=y.x,b=y.y,S=y.z,w=_-x,T=_+x,A=g-b,M=g+b,C=v-S,E=v+S;wc&&(c=T),Ad&&(d=M),Cp&&(p=E),e.x=.5*(l+c),e.y=.5*(u+d),e.z=.5*(f+p),a.x=.5*(c-l),a.y=.5*(d-u),a.z=.5*(p-f)},e.copy=function(t){this.center.copy(t.center),this.halfExtents.copy(t.halfExtents)},e.clone=function(){return new t(this.center.clone(),this.halfExtents.clone())},e.intersects=function(t){var e=this.getMax(),i=this.getMin(),n=t.getMax(),s=t.getMin();return i.x<=n.x&&e.x>=s.x&&i.y<=n.y&&e.y>=s.y&&i.z<=n.z&&e.z>=s.z},e._intersectsRay=function(t,e){var i=Tt.copy(this.getMin()).sub(t.origin),n=At.copy(this.getMax()).sub(t.origin),s=t.direction;0===s.x?(i.x=i.x<0?-Number.MAX_VALUE:Number.MAX_VALUE,n.x=n.x<0?-Number.MAX_VALUE:Number.MAX_VALUE):(i.x/=s.x,n.x/=s.x),0===s.y?(i.y=i.y<0?-Number.MAX_VALUE:Number.MAX_VALUE,n.y=n.y<0?-Number.MAX_VALUE:Number.MAX_VALUE):(i.y/=s.y,n.y/=s.y),0===s.z?(i.z=i.z<0?-Number.MAX_VALUE:Number.MAX_VALUE,n.z=n.z<0?-Number.MAX_VALUE:Number.MAX_VALUE):(i.z/=s.z,n.z/=s.z);var a=Mt.set(Math.min(i.x,n.x),Math.min(i.y,n.y),Math.min(i.z,n.z)),r=Ct.set(Math.max(i.x,n.x),Math.max(i.y,n.y),Math.max(i.z,n.z)),o=Math.min(Math.min(r.x,r.y),r.z),h=Math.max(Math.max(a.x,a.y),a.z),l=o>=h&&h>=0;return l&&e.copy(t.direction).mulScalar(h).add(t.origin),l},e._fastIntersectsRay=function(t){var e=Tt,i=At,n=Mt,s=Ct,a=Et,r=t.direction;return e.sub2(t.origin,this.center),s.set(Math.abs(e.x),Math.abs(e.y),Math.abs(e.z)),n.mul2(e,r),!(s.x>this.halfExtents.x&&n.x>=0)&&(!(s.y>this.halfExtents.y&&n.y>=0)&&(!(s.z>this.halfExtents.z&&n.z>=0)&&(a.set(Math.abs(r.x),Math.abs(r.y),Math.abs(r.z)),i.cross(r,e),i.set(Math.abs(i.x),Math.abs(i.y),Math.abs(i.z)),!(i.x>this.halfExtents.y*a.z+this.halfExtents.z*a.y)&&(!(i.y>this.halfExtents.x*a.z+this.halfExtents.z*a.x)&&!(i.z>this.halfExtents.x*a.y+this.halfExtents.y*a.x)))))},e.intersectsRay=function(t,e){return e?this._intersectsRay(t,e):this._fastIntersectsRay(t)},e.setMinMax=function(t,e){this.center.add2(e,t).mulScalar(.5),this.halfExtents.sub2(e,t).mulScalar(.5)},e.getMin=function(){return this._min.copy(this.center).sub(this.halfExtents)},e.getMax=function(){return this._max.copy(this.center).add(this.halfExtents)},e.containsPoint=function(t){var e=this.getMin(),i=this.getMax();return!(t.xi.x||t.yi.y||t.zi.z)},e.setFromTransformedAabb=function(t,e,i){void 0===i&&(i=!1);var n=t.center,s=t.halfExtents,a=e.data,r=a[0],o=a[4],h=a[8],l=a[1],c=a[5],u=a[9],d=a[2],f=a[6],p=a[10];if(i){var m=r*r+o*o+h*h;if(m>0){var _=1/Math.sqrt(m);r*=_,o*=_,h*=_}if((m=l*l+c*c+u*u)>0){var g=1/Math.sqrt(m);l*=g,c*=g,u*=g}if((m=d*d+f*f+p*p)>0){var v=1/Math.sqrt(m);d*=v,f*=v,p*=v}}this.center.set(a[12]+r*n.x+o*n.y+h*n.z,a[13]+l*n.x+c*n.y+u*n.z,a[14]+d*n.x+f*n.y+p*n.z),this.halfExtents.set(Math.abs(r)*s.x+Math.abs(o)*s.y+Math.abs(h)*s.z,Math.abs(l)*s.x+Math.abs(c)*s.y+Math.abs(u)*s.z,Math.abs(d)*s.x+Math.abs(f)*s.y+Math.abs(p)*s.z)},e.compute=function(t,e){if((e=void 0===e?t.length/3:e)>0){for(var i=Tt.set(t[0],t[1],t[2]),n=At.set(t[0],t[1],t[2]),s=1;sn.x&&(n.x=a),r>n.y&&(n.y=r),o>n.z&&(n.z=o)}this.setMinMax(i,n)}},e.intersectsBoundingSphere=function(t){return this._distanceToBoundingSphereSq(t)<=t.radius*t.radius},e._distanceToBoundingSphereSq=function(t){for(var e=this.getMin(),i=this.getMax(),n=0,s=["x","y","z"],a=0;a<3;++a){var r=0,o=t.center[s[a]],h=e[s[a]],l=i[s[a]],c=0;ol&&(r+=(c=o-l)*c),n+=r}return n},e._expand=function(t,e){Tt.add2(this.getMin(),t),At.add2(this.getMax(),e),this.setMinMax(Tt,At)},t}(),Rt=new ft,It=new ft,Lt=function(){function t(t,e){void 0===t&&(t=new ft),void 0===e&&(e=.5),this.center=t,this.radius=e}var e=t.prototype;return e.containsPoint=function(t){var e=Rt.sub2(t,this.center).lengthSq(),i=this.radius;return e0&&n>0)return!1;var a=n*n-s;if(a<0)return!1;var r=Math.abs(-n-Math.sqrt(a));return e&&e.copy(t.direction).mulScalar(r).add(t.origin),!0},e.intersectsBoundingSphere=function(t){Rt.sub2(t.center,this.center);var e=t.radius+this.radius;return Rt.lengthSq()<=e*e},t}(),Dt="none",kt="linear",Ot={0:"PCF3",1:"VSM8",2:"VSM16",3:"VSM32",4:"PCF5",5:"PCF1"},Ft=128,Bt=256,Nt=1024,Ut=2048,zt=4096,Vt=8192,Wt=18,Gt=[new ft,new ft,new ft,new ft,new ft,new ft,new ft,new ft],Ht=function(){function t(){this.planes=[];for(var t=0;t<6;t++)this.planes[t]=[]}var e=t.prototype;return e.setFromMat4=function(t){var e,i=t.data,n=this.planes;(e=n[0])[0]=i[3]-i[0],e[1]=i[7]-i[4],e[2]=i[11]-i[8],e[3]=i[15]-i[12];var s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s,(e=n[1])[0]=i[3]+i[0],e[1]=i[7]+i[4],e[2]=i[11]+i[8],e[3]=i[15]+i[12],s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s,(e=n[2])[0]=i[3]+i[1],e[1]=i[7]+i[5],e[2]=i[11]+i[9],e[3]=i[15]+i[13],s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s,(e=n[3])[0]=i[3]-i[1],e[1]=i[7]-i[5],e[2]=i[11]-i[9],e[3]=i[15]-i[13],s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s,(e=n[4])[0]=i[3]-i[2],e[1]=i[7]-i[6],e[2]=i[11]-i[10],e[3]=i[15]-i[14],s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s,(e=n[5])[0]=i[3]+i[2],e[1]=i[7]+i[6],e[2]=i[11]+i[10],e[3]=i[15]+i[14],s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s},e.containsPoint=function(t){var e,i;for(e=0;e<6;e++)if((i=this.planes[e])[0]*t.x+i[1]*t.y+i[2]*t.z+i[3]<=0)return!1;return!0},e.containsSphere=function(t){var e,i,n,s=0,a=t.radius,r=t.center,o=r.x,h=r.y,l=r.z,c=this.planes;for(i=0;i<6;i++){if((e=(n=c[i])[0]*o+n[1]*h+n[2]*l+n[3])<=-a)return 0;e>a&&s++}return 6===s?2:1},t.getPoints=function(t,e,i){e=e||t._nearClip,i=i||t._farClip;var n=t._fov*Math.PI/180,s=0===t._projection?Math.tan(n/2)*e:t._orthoHeight,a=s*t._aspectRatio,r=Gt;return r[0].x=a,r[0].y=-s,r[0].z=-e,r[1].x=a,r[1].y=s,r[1].z=-e,r[2].x=-a,r[2].y=s,r[2].z=-e,r[3].x=-a,r[3].y=-s,r[3].z=-e,0===t._projection&&(a=(s=Math.tan(n/2)*i)*t._aspectRatio),r[4].x=a,r[4].y=-s,r[4].z=-i,r[5].x=a,r[5].y=s,r[5].z=-i,r[6].x=-a,r[6].y=s,r[6].z=-i,r[7].x=-a,r[7].y=-s,r[7].z=-i,r},t}(),Xt=function(){function t(t,e){void 0===t&&(t=new ft),void 0===e&&(e=new ft(0,0,-1)),this.origin=t,this.direction=e}return t.prototype.set=function(t,e){return this.origin.copy(t),this.direction.copy(e),this},t}(),qt=new Xt,jt=new ft,Yt=new Lt,Kt=new St,Zt=function(){function t(t,e){void 0===t&&(t=new St),void 0===e&&(e=new ft(.5,.5,.5)),this.halfExtents=e,this._modelTransform=t.clone().invert(),this._worldTransform=t.clone(),this._aabb=new Pt(new ft,this.halfExtents)}var e=t.prototype;return e.intersectsRay=function(t,e){if(this._modelTransform.transformPoint(t.origin,qt.origin),this._modelTransform.transformVector(t.direction,qt.direction),e){var i=this._aabb._intersectsRay(qt,e);return Kt.copy(this._modelTransform).invert().transformPoint(e,e),i}return this._aabb._fastIntersectsRay(qt)},e.containsPoint=function(t){return this._modelTransform.transformPoint(t,jt),this._aabb.containsPoint(jt)},e.intersectsBoundingSphere=function(t){return this._modelTransform.transformPoint(t.center,Yt.center),Yt.radius=t.radius,!!this._aabb.intersectsBoundingSphere(Yt)},q(t,[{key:"worldTransform",get:function(){return this._worldTransform},set:function(t){this._worldTransform.copy(t),this._modelTransform.copy(t).invert()}}]),t}(),$t=new ft,Qt=function(){function t(t,e){void 0===t&&(t=new ft),void 0===e&&(e=new ft(0,0,1)),this.normal=e,this.point=t}var e=t.prototype;return e.intersectsLine=function(t,e,i){var n=-this.normal.dot(this.point),s=this.normal.dot(t)+n,a=s/(s-(this.normal.dot(e)+n)),r=a>=0&&a<=1;return r&&i&&i.lerp(t,e,a),r},e.intersectsRay=function(t,e){var i=$t.sub2(this.point,t.origin),n=this.normal.dot(i)/this.normal.dot(t.direction),s=n>=0;return s&&e&&e.copy(t.direction).mulScalar(n).add(t.origin),s},t}(),Jt=10,te=11,ee=12,ie=13,ne=14,se=16,ae=17,re=21,oe=24,he=25,le="POSITION",ce="NORMAL",ue="TANGENT",de="BLENDWEIGHT",fe="BLENDINDICES",pe="COLOR",me="TEXCOORD",_e="TEXCOORD0",ge="TEXCOORD1",ve="TEXCOORD2",ye="TEXCOORD3",xe="TEXCOORD4",be="TEXCOORD5",Se="TEXCOORD6",we="TEXCOORD7",Te="ATTR",Ae="ATTR0",Me="ATTR1",Ce="ATTR2",Ee="ATTR3",Pe="ATTR4",Re="ATTR5",Ie="ATTR6",Le="ATTR7",De="ATTR8",ke="ATTR9",Oe="ATTR10",Fe="ATTR11",Be="ATTR12",Ne="ATTR13",Ue="ATTR14",ze="ATTR15",Ve="default",We="rgbm",Ge="rgbe",He="swizzleGGGR",Xe="none",qe="cube",je="equirect",Ye="octahedral",Ke=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array],Ze=[1,1,2,2,4,4,4],$e={Int8Array:0,Uint8Array:1,Int16Array:2,Uint16Array:3,Int32Array:4,Uint32Array:5,Float32Array:6},Qe=[Uint8Array,Uint16Array,Uint32Array],Je=[1,2,4],ti={POSITION:0,NORMAL:1,BLENDWEIGHT:2,BLENDINDICES:3,COLOR:4,TEXCOORD0:5,TEXCOORD1:6,TEXCOORD2:7,TEXCOORD3:8,TEXCOORD4:9,TEXCOORD5:10,TEXCOORD6:11,TEXCOORD7:12,TANGENT:13,ATTR0:0,ATTR1:1,ATTR2:2,ATTR3:3,ATTR4:4,ATTR5:5,ATTR6:6,ATTR7:7,ATTR8:8,ATTR9:9,ATTR10:10,ATTR11:11,ATTR12:12,ATTR13:13,ATTR14:14,ATTR15:15},ei=0,ii=function(){function t(t,e,i,n,s){void 0===n&&(n=0),this.device=t,this.format=e,this.numVertices=i,this.usage=n,this.id=ei++,this.impl=t.createVertexBufferImpl(this,e),this.instancing=!1,this.numBytes=e.verticesByteSize?e.verticesByteSize:e.size*i,t._vram.vb+=this.numBytes,s?this.setData(s):this.storage=new ArrayBuffer(this.numBytes),this.device.buffers.push(this)}var e=t.prototype;return e.destroy=function(){var t=this.device,e=t.buffers.indexOf(this);-1!==e&&t.buffers.splice(e,1),this.impl.destroy(t),t._vram.vb-=this.storage.byteLength},e.loseContext=function(){this.impl.loseContext()},e.getFormat=function(){return this.format},e.getUsage=function(){return this.usage},e.getNumVertices=function(){return this.numVertices},e.lock=function(){return this.storage},e.unlock=function(){this.impl.unlock(this)},e.setData=function(t){return t.byteLength===this.numBytes&&(this.storage=t,this.unlock(),!0)},t}();function ni(t){for(var e=0,i=0,n=t.length;i 0.5) {\n\t\tif (dAtten > 0.00001) {\n\t\t\tdirLm.xyz = dirLm.xyz * 2.0 - vec3(1.0);\n\t\t\tdAtten = saturate(dAtten);\n\t\t\tgl_FragColor.rgb = normalize(dLightDirNormW.xyz*dAtten + dirLm.xyz*dirLm.w) * 0.5 + vec3(0.5);\n\t\t\tgl_FragColor.a = dirLm.w + dAtten;\n\t\t\tgl_FragColor.a = max(gl_FragColor.a, 1.0 / 255.0);\n\t\t} else {\n\t\t\tgl_FragColor = dirLm;\n\t\t}\n\t} else {\n\t\tgl_FragColor.rgb = dirLm.xyz;\n\t\tgl_FragColor.a = max(dirLm.w, dAtten > 0.00001? (1.0/255.0) : 0.0);\n\t}\n",bakeLmEndPS:"\tgl_FragColor.rgb = dDiffuseLight;\n\tgl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(0.5));\n\tgl_FragColor.rgb /= 8.0;\n\tgl_FragColor.a = clamp( max( max( gl_FragColor.r, gl_FragColor.g ), max( gl_FragColor.b, 1.0 / 255.0 ) ), 0.0,1.0 );\n\tgl_FragColor.a = ceil(gl_FragColor.a * 255.0) / 255.0;\n\tgl_FragColor.rgb /= gl_FragColor.a;\n",basePS:"uniform vec3 view_position;\nuniform vec3 light_globalAmbient;\nfloat square(float x) {\n\treturn x*x;\n}\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec3 saturate(vec3 x) {\n\treturn clamp(x, vec3(0.0), vec3(1.0));\n}\n",baseVS:"attribute vec3 vertex_position;\nattribute vec3 vertex_normal;\nattribute vec4 vertex_tangent;\nattribute vec2 vertex_texCoord0;\nattribute vec2 vertex_texCoord1;\nattribute vec4 vertex_color;\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\nuniform mat3 matrix_normal;\nvec3 dPositionW;\nmat4 dModelMatrix;\nmat3 dNormalMatrix;\n",baseNineSlicedPS:"#define NINESLICED\nvarying vec2 vMask;\nvarying vec2 vTiledUv;\nuniform mediump vec4 innerOffset;\nuniform mediump vec2 outerScale;\nuniform mediump vec4 atlasRect;\nvec2 nineSlicedUv;\n",baseNineSlicedVS:"#define NINESLICED\nvarying vec2 vMask;\nvarying vec2 vTiledUv;\nuniform mediump vec4 innerOffset;\nuniform mediump vec2 outerScale;\nuniform mediump vec4 atlasRect;\n",baseNineSlicedTiledPS:"#define NINESLICED\n#define NINESLICETILED\nvarying vec2 vMask;\nvarying vec2 vTiledUv;\nuniform mediump vec4 innerOffset;\nuniform mediump vec2 outerScale;\nuniform mediump vec4 atlasRect;\nvec2 nineSlicedUv;\n",biasConstPS:"#define SHADOWBIAS\nfloat getShadowBias(float resolution, float maxBias) {\n\treturn maxBias;\n}\n",blurVSMPS:"varying vec2 vUv0;\nuniform sampler2D source;\nuniform vec2 pixelOffset;\n#ifdef GAUSS\nuniform float weight[SAMPLES];\n#endif\n#ifdef PACKED\nfloat decodeFloatRG(vec2 rg) {\n\treturn rg.y*(1.0/255.0) + rg.x;\n}\nvec2 encodeFloatRG( float v ) {\n\tvec2 enc = vec2(1.0, 255.0) * v;\n\tenc = fract(enc);\n\tenc -= enc.yy * vec2(1.0/255.0, 1.0/255.0);\n\treturn enc;\n}\n#endif\nvoid main(void) {\n\tvec3 moments = vec3(0.0);\n\tvec2 uv = vUv0 - pixelOffset * (float(SAMPLES) * 0.5);\n\tfor (int i=0; i shadowZ ? 1.0 : 0.0;\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF3) || defined(CLUSTER_SHADOW_TYPE_PCF5)\n\tfloat getShadowOmniClusteredPCF3(sampler2D shadowMap, vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 dir) {\n\t\tfloat shadowTextureResolution = shadowParams.x;\n\t\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, dir);\n\t\tfloat shadowZ = length(dir) * shadowParams.w + shadowParams.z;\n\t\tdShadowCoord = vec3(uv, shadowZ);\n\t\treturn getShadowPCF3x3(shadowMap, shadowParams.xyz);\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\tfloat getShadowOmniClusteredPCF5(sampler2D shadowMap, vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 dir) {\n\t\treturn getShadowOmniClusteredPCF3(shadowMap, shadowParams, omniAtlasViewport, shadowEdgePixels, dir);\n\t}\n\t#endif\n#endif\n#ifdef GL2\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\tfloat getShadowSpotClusteredPCF1(sampler2DShadow shadowMap, vec4 shadowParams) {\n\t\treturn texture(shadowMap, dShadowCoord);\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\tfloat getShadowSpotClusteredPCF3(sampler2DShadow shadowMap, vec4 shadowParams) {\n\t\treturn getShadowSpotPCF3x3(shadowMap, shadowParams);\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\tfloat getShadowSpotClusteredPCF5(sampler2DShadow shadowMap, vec4 shadowParams) {\n\t\treturn getShadowPCF5x5(shadowMap, shadowParams.xyz);\n\t}\n\t#endif\n#else\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\tfloat getShadowSpotClusteredPCF1(sampler2D shadowMap, vec4 shadowParams) {\n\t\tfloat depth = unpackFloat(texture2D(shadowMap, dShadowCoord.xy));\n\t\treturn depth > dShadowCoord.z ? 1.0 : 0.0;\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF3) || defined(CLUSTER_SHADOW_TYPE_PCF5)\n\tfloat getShadowSpotClusteredPCF3(sampler2D shadowMap, vec4 shadowParams) {\n\t\treturn getShadowSpotPCF3x3(shadowMap, shadowParams);\n\t}\n\t#endif\n\t#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\tfloat getShadowSpotClusteredPCF5(sampler2D shadowMap, vec4 shadowParams) {\n\t\treturn getShadowSpotClusteredPCF3(shadowMap, shadowParams);\n\t}\n\t#endif\n#endif\n",clusteredLightUtilsPS:"vec2 getCubemapFaceCoordinates(const vec3 dir, out float faceIndex, out vec2 tileOffset)\n{\n\tvec3 vAbs = abs(dir);\n\tfloat ma;\n\tvec2 uv;\n\tif (vAbs.z >= vAbs.x && vAbs.z >= vAbs.y) {\n\t\tfaceIndex = dir.z < 0.0 ? 5.0 : 4.0;\n\t\tma = 0.5 / vAbs.z;\n\t\tuv = vec2(dir.z < 0.0 ? -dir.x : dir.x, -dir.y);\n\t\ttileOffset.x = 2.0;\n\t\ttileOffset.y = dir.z < 0.0 ? 1.0 : 0.0;\n\t} else if(vAbs.y >= vAbs.x) {\n\t\tfaceIndex = dir.y < 0.0 ? 3.0 : 2.0;\n\t\tma = 0.5 / vAbs.y;\n\t\tuv = vec2(dir.x, dir.y < 0.0 ? -dir.z : dir.z);\n\t\ttileOffset.x = 1.0;\n\t\ttileOffset.y = dir.y < 0.0 ? 1.0 : 0.0;\n\t} else {\n\t\tfaceIndex = dir.x < 0.0 ? 1.0 : 0.0;\n\t\tma = 0.5 / vAbs.x;\n\t\tuv = vec2(dir.x < 0.0 ? dir.z : -dir.z, -dir.y);\n\t\ttileOffset.x = 0.0;\n\t\ttileOffset.y = dir.x < 0.0 ? 1.0 : 0.0;\n\t}\n\treturn uv * ma + 0.5;\n}\nvec2 getCubemapAtlasCoordinates(const vec3 omniAtlasViewport, float shadowEdgePixels, float shadowTextureResolution, const vec3 dir) {\n\tfloat faceIndex;\n\tvec2 tileOffset;\n\tvec2 uv = getCubemapFaceCoordinates(dir, faceIndex, tileOffset);\n\tfloat atlasFaceSize = omniAtlasViewport.z;\n\tfloat tileSize = shadowTextureResolution * atlasFaceSize;\n\tfloat offset = shadowEdgePixels / tileSize;\n\tuv = uv * vec2(1.0 - offset * 2.0) + vec2(offset * 1.0);\n\tuv *= atlasFaceSize;\n\tuv += tileOffset * atlasFaceSize;\n\tuv += omniAtlasViewport.xy;\n\treturn uv;\n}\n",clusteredLightPS:"uniform sampler2D clusterWorldTexture;\nuniform sampler2D lightsTexture8;\nuniform highp sampler2D lightsTextureFloat;\n#ifdef CLUSTER_SHADOWS\n\t#ifdef GL2\n\t\tuniform sampler2DShadow shadowAtlasTexture;\n\t#else\n\t\tuniform sampler2D shadowAtlasTexture;\n\t#endif\n#endif\n#ifdef CLUSTER_COOKIES\n\tuniform sampler2D cookieAtlasTexture;\n#endif\nuniform float clusterPixelsPerCell;\nuniform vec3 clusterCellsCountByBoundsSize;\nuniform vec4 lightsTextureInvSize;\nuniform vec3 clusterTextureSize;\nuniform vec3 clusterBoundsMin;\nuniform vec3 clusterBoundsDelta;\nuniform vec3 clusterCellsDot;\nuniform vec3 clusterCellsMax;\nuniform vec2 clusterCompressionLimit0;\nuniform vec2 shadowAtlasParams;\nfloat LTCLightValuesEvaluated = 0.0;\nstruct ClusterLightData {\n\tfloat lightV;\n\tfloat type;\n\tfloat shape;\n\tvec3 halfWidth;\n\tvec3 halfHeight;\n\tfloat falloffMode;\n\tfloat castShadows;\n\tfloat shadowBias;\n\tfloat shadowNormalBias;\n\tvec3 position;\n\tvec3 direction;\n\tfloat range;\n\tfloat innerConeAngleCos;\n\tfloat outerConeAngleCos;\n\tvec3 color;\n\tvec3 omniAtlasViewport;\n\tfloat cookie;\n\tfloat cookieRgb;\n\tfloat cookieIntensity;\n\tvec4 cookieChannelMask;\n\tfloat mask;\n};\nmat4 lightProjectionMatrix;\n#define isClusteredLightCastShadow(light) ( light.castShadows > 0.5 )\n#define isClusteredLightCookie(light) (light.cookie > 0.5 )\n#define isClusteredLightCookieRgb(light) (light.cookieRgb > 0.5 )\n#define isClusteredLightSpot(light) ( light.type > 0.5 )\n#define isClusteredLightFalloffLinear(light) ( light.falloffMode < 0.5 )\n#define isClusteredLightArea(light) ( light.shape > 0.1 )\n#define isClusteredLightRect(light) ( light.shape < 0.3 )\n#define isClusteredLightDisk(light) ( light.shape < 0.6 )\n#ifdef CLUSTER_MESH_DYNAMIC_LIGHTS\n\t#define acceptLightMask(light) ( light.mask < 0.75)\n#else\n\t#define acceptLightMask(light) ( light.mask > 0.25)\n#endif\nvec4 decodeClusterLowRange4Vec4(vec4 d0, vec4 d1, vec4 d2, vec4 d3) {\n\treturn vec4(\n\t\tbytes2floatRange4(d0, -2.0, 2.0),\n\t\tbytes2floatRange4(d1, -2.0, 2.0),\n\t\tbytes2floatRange4(d2, -2.0, 2.0),\n\t\tbytes2floatRange4(d3, -2.0, 2.0)\n\t);\n}\n#ifdef SUPPORTS_TEXLOD\n\t#define textureData(texture, uv) texture2DLodEXT(texture, uv, 0.0)\n#else\n\t#define textureData(texture, uv) texture2D(texture, uv)\n#endif\nvec4 sampleLightsTexture8(const ClusterLightData clusterLightData, float index) {\n\treturn textureData(lightsTexture8, vec2(index * lightsTextureInvSize.z, clusterLightData.lightV));\n}\nvec4 sampleLightTextureF(const ClusterLightData clusterLightData, float index) {\n\treturn textureData(lightsTextureFloat, vec2(index * lightsTextureInvSize.x, clusterLightData.lightV));\n}\nvoid decodeClusterLightCore(inout ClusterLightData clusterLightData, float lightIndex) {\n\tclusterLightData.lightV = (lightIndex + 0.5) * lightsTextureInvSize.w;\n\tvec4 lightInfo = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_FLAGS);\n\tclusterLightData.type = lightInfo.x;\n\tclusterLightData.shape = lightInfo.y;\n\tclusterLightData.falloffMode = lightInfo.z;\n\tclusterLightData.castShadows = lightInfo.w;\n\tvec4 colorA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COLOR_A);\n\tvec4 colorB = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COLOR_B);\n\tclusterLightData.color = vec3(bytes2float2(colorA.xy), bytes2float2(colorA.zw), bytes2float2(colorB.xy)) * clusterCompressionLimit0.y;\n\tclusterLightData.cookie = colorB.z;\n\tclusterLightData.mask = colorB.w;\n\t#ifdef CLUSTER_TEXTURE_FLOAT\n\t\tvec4 lightPosRange = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_POSITION_RANGE);\n\t\tclusterLightData.position = lightPosRange.xyz;\n\t\tclusterLightData.range = lightPosRange.w;\n\t\tvec4 lightDir_Unused = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_SPOT_DIRECTION);\n\t\tclusterLightData.direction = lightDir_Unused.xyz;\n\t#else\n\t\tvec4 encPosX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_X);\n\t\tvec4 encPosY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_Y);\n\t\tvec4 encPosZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_Z);\n\t\tclusterLightData.position = vec3(bytes2float4(encPosX), bytes2float4(encPosY), bytes2float4(encPosZ)) * clusterBoundsDelta + clusterBoundsMin;\n\t\tvec4 encRange = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_RANGE);\n\t\tclusterLightData.range = bytes2float4(encRange) * clusterCompressionLimit0.x;\n\t\tvec4 encDirX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_X);\n\t\tvec4 encDirY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_Y);\n\t\tvec4 encDirZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_Z);\n\t\tclusterLightData.direction = vec3(bytes2float4(encDirX), bytes2float4(encDirY), bytes2float4(encDirZ)) * 2.0 - 1.0;\n\t#endif\n}\nvoid decodeClusterLightSpot(inout ClusterLightData clusterLightData) {\n\tvec4 coneAngle = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_ANGLES);\n\tclusterLightData.innerConeAngleCos = bytes2float2(coneAngle.xy) * 2.0 - 1.0;\n\tclusterLightData.outerConeAngleCos = bytes2float2(coneAngle.zw) * 2.0 - 1.0;\n}\nvoid decodeClusterLightOmniAtlasViewport(inout ClusterLightData clusterLightData) {\n\t#ifdef CLUSTER_TEXTURE_FLOAT\n\t\tclusterLightData.omniAtlasViewport = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_0).xyz;\n\t#else\n\t\tvec4 viewportA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_ATLAS_VIEWPORT_A);\n\t\tvec4 viewportB = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_ATLAS_VIEWPORT_B);\n\t\tclusterLightData.omniAtlasViewport = vec3(bytes2float2(viewportA.xy), bytes2float2(viewportA.zw), bytes2float2(viewportB.xy));\n\t#endif\n}\nvoid decodeClusterLightAreaData(inout ClusterLightData clusterLightData) {\n\t#ifdef CLUSTER_TEXTURE_FLOAT\n\t\tclusterLightData.halfWidth = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_AREA_DATA_WIDTH).xyz;\n\t\tclusterLightData.halfHeight = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_AREA_DATA_HEIGHT).xyz;\n\t#else\n\t\tvec4 areaWidthX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_X);\n\t\tvec4 areaWidthY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_Y);\n\t\tvec4 areaWidthZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_Z);\n\t\tclusterLightData.halfWidth = vec3(mantissaExponent2Float(areaWidthX), mantissaExponent2Float(areaWidthY), mantissaExponent2Float(areaWidthZ));\n\t\tvec4 areaHeightX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_X);\n\t\tvec4 areaHeightY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_Y);\n\t\tvec4 areaHeightZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_Z);\n\t\tclusterLightData.halfHeight = vec3(mantissaExponent2Float(areaHeightX), mantissaExponent2Float(areaHeightY), mantissaExponent2Float(areaHeightZ));\n\t#endif\n}\nvoid decodeClusterLightProjectionMatrixData(inout ClusterLightData clusterLightData) {\n\t#ifdef CLUSTER_TEXTURE_FLOAT\n\t\tvec4 m0 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_0);\n\t\tvec4 m1 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_1);\n\t\tvec4 m2 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_2);\n\t\tvec4 m3 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_3);\n\t#else\n\t\tvec4 m00 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_00);\n\t\tvec4 m01 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_01);\n\t\tvec4 m02 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_02);\n\t\tvec4 m03 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_03);\n\t\tvec4 m0 = decodeClusterLowRange4Vec4(m00, m01, m02, m03);\n\t\tvec4 m10 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_10);\n\t\tvec4 m11 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_11);\n\t\tvec4 m12 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_12);\n\t\tvec4 m13 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_13);\n\t\tvec4 m1 = decodeClusterLowRange4Vec4(m10, m11, m12, m13);\n\t\tvec4 m20 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_20);\n\t\tvec4 m21 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_21);\n\t\tvec4 m22 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_22);\n\t\tvec4 m23 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_23);\n\t\tvec4 m2 = decodeClusterLowRange4Vec4(m20, m21, m22, m23);\n\t\tvec4 m30 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_30);\n\t\tvec4 m31 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_31);\n\t\tvec4 m32 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_32);\n\t\tvec4 m33 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_33);\n\t\tvec4 m3 = vec4(mantissaExponent2Float(m30), mantissaExponent2Float(m31), mantissaExponent2Float(m32), mantissaExponent2Float(m33));\n\t#endif\n\tlightProjectionMatrix = mat4(m0, m1, m2, m3);\n}\nvoid decodeClusterLightShadowData(inout ClusterLightData clusterLightData) {\n\tvec4 biases = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SHADOW_BIAS);\n\tclusterLightData.shadowBias = bytes2floatRange2(biases.xy, -1.0, 20.0),\n\tclusterLightData.shadowNormalBias = bytes2float2(biases.zw);\n}\nvoid decodeClusterLightCookieData(inout ClusterLightData clusterLightData) {\n\tvec4 cookieA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COOKIE_A);\n\tclusterLightData.cookieIntensity = cookieA.x;\n\tclusterLightData.cookieRgb = cookieA.y;\n\tclusterLightData.cookieChannelMask = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COOKIE_B);\n}\nvoid evaluateLight(ClusterLightData light) {\n\tdAtten3 = vec3(1.0);\n\tgetLightDirPoint(light.position);\n\t#ifdef CLUSTER_AREALIGHTS\n\tif (isClusteredLightArea(light)) {\n\t\tdecodeClusterLightAreaData(light);\n\t\tif (LTCLightValuesEvaluated < 0.5) {\n\t\t\tLTCLightValuesEvaluated = 1.0;\n\t\t\tcalcLTCLightValues();\n\t\t}\n\t\tif (isClusteredLightRect(light)) {\n\t\t\tcalcRectLightValues(light.position, light.halfWidth, light.halfHeight);\n\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\tcalcDiskLightValues(light.position, light.halfWidth, light.halfHeight);\n\t\t} else {\n\t\t\tcalcSphereLightValues(light.position, light.halfWidth, light.halfHeight);\n\t\t}\n\t\tdAtten = getFalloffWindow(light.range);\n\t} else\n\t#endif\n\t{\n\t\tif (isClusteredLightFalloffLinear(light))\n\t\t\tdAtten = getFalloffLinear(light.range);\n\t\telse\n\t\t\tdAtten = getFalloffInvSquared(light.range);\n\t}\n\tif (dAtten > 0.00001) {\n\t\t#ifdef CLUSTER_AREALIGHTS\n\t\tif (isClusteredLightArea(light)) {\n\t\t\tif (isClusteredLightRect(light)) {\n\t\t\t\tdAttenD = getRectLightDiffuse() * 16.0;\n\t\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\t\tdAttenD = getDiskLightDiffuse() * 16.0;\n\t\t\t} else {\n\t\t\t\tdAttenD = getSphereLightDiffuse() * 16.0;\n\t\t\t}\n\t\t} else\n\t\t#endif\n\t\t{\n\t\t\tdAtten *= getLightDiffuse();\n\t\t}\n\t\tif (isClusteredLightSpot(light)) {\n\t\t\tdecodeClusterLightSpot(light);\n\t\t\tdAtten *= getSpotEffect(light.direction, light.innerConeAngleCos, light.outerConeAngleCos);\n\t\t}\n\t\t#if defined(CLUSTER_COOKIES) || defined(CLUSTER_SHADOWS)\n\t\tif (dAtten > 0.00001) {\n\t\t\tif (isClusteredLightCastShadow(light) || isClusteredLightCookie(light)) {\n\t\t\t\tif (isClusteredLightSpot(light)) {\n\t\t\t\t\tdecodeClusterLightProjectionMatrixData(light);\n\t\t\t\t} else {\n\t\t\t\t\tdecodeClusterLightOmniAtlasViewport(light);\n\t\t\t\t}\n\t\t\t\tfloat shadowTextureResolution = shadowAtlasParams.x;\n\t\t\t\tfloat shadowEdgePixels = shadowAtlasParams.y;\n\t\t\t\t#ifdef CLUSTER_COOKIES\n\t\t\t\tif (isClusteredLightCookie(light)) {\n\t\t\t\t\tdecodeClusterLightCookieData(light);\n\t\t\t\t\tif (isClusteredLightSpot(light)) {\n\t\t\t\t\t\tdAtten3 = getCookie2DClustered(cookieAtlasTexture, lightProjectionMatrix, vPositionW, light.cookieIntensity, isClusteredLightCookieRgb(light), light.cookieChannelMask);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdAtten3 = getCookieCubeClustered(cookieAtlasTexture, dLightDirW, light.cookieIntensity, isClusteredLightCookieRgb(light), light.cookieChannelMask, shadowTextureResolution, shadowEdgePixels, light.omniAtlasViewport);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t\t#ifdef CLUSTER_SHADOWS\n\t\t\t\tif (isClusteredLightCastShadow(light)) {\n\t\t\t\t\tdecodeClusterLightShadowData(light);\n\t\t\t\t\tvec4 shadowParams = vec4(shadowTextureResolution, light.shadowNormalBias, light.shadowBias, 1.0 / light.range);\n\t\t\t\t\tif (isClusteredLightSpot(light)) {\n\t\t\t\t\t\tgetShadowCoordPerspZbufferNormalOffset(lightProjectionMatrix, shadowParams);\n\t\t\t\t\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\t\t\t\t\t\t\tdAtten *= getShadowSpotClusteredPCF1(shadowAtlasTexture, shadowParams);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n\t\t\t\t\t\t\tdAtten *= getShadowSpotClusteredPCF3(shadowAtlasTexture, shadowParams);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n\t\t\t\t\t\t\tdAtten *= getShadowSpotClusteredPCF5(shadowAtlasTexture, shadowParams);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnormalOffsetPointShadow(shadowParams);\n\t\t\t\t\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\t\t\t\t\t\t\tdAtten *= getShadowOmniClusteredPCF1(shadowAtlasTexture, shadowParams, light.omniAtlasViewport, shadowEdgePixels, dLightDirW);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n\t\t\t\t\t\t\tdAtten *= getShadowOmniClusteredPCF3(shadowAtlasTexture, shadowParams, light.omniAtlasViewport, shadowEdgePixels, dLightDirW);\n\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n\t\t\t\t\t\t\tdAtten *= getShadowOmniClusteredPCF5(shadowAtlasTexture, shadowParams, light.omniAtlasViewport, shadowEdgePixels, dLightDirW);\n\t\t\t\t\t\t#endif\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t#endif\n\t\t\t}\n\t\t}\n\t\t#endif\n\t\t#ifdef CLUSTER_AREALIGHTS\n\t\tif (isClusteredLightArea(light)) {\n\t\t\t{\n\t\t\t\tvec3 areaDiffuse = (dAttenD * dAtten) * light.color * dAtten3;\n\t\t\t\t#if defined(CLUSTER_SPECULAR) && defined(CLUSTER_CONSERVE_ENERGY)\n\t\t\t\t\tareaDiffuse = mix(areaDiffuse, vec3(0), dLTCSpecFres);\n\t\t\t\t#endif\n\t\t\t\tdDiffuseLight += areaDiffuse;\n\t\t\t}\n\t\t\t#ifdef CLUSTER_SPECULAR\n\t\t\t\tfloat areaLightSpecular;\n\t\t\t\tif (isClusteredLightRect(light)) {\n\t\t\t\t\tareaLightSpecular = getRectLightSpecular();\n\t\t\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\t\t\tareaLightSpecular = getDiskLightSpecular();\n\t\t\t\t} else {\n\t\t\t\t\tareaLightSpecular = getSphereLightSpecular();\n\t\t\t\t}\n\t\t\t\tdSpecularLight += dLTCSpecFres * areaLightSpecular * dAtten * light.color * dAtten3;\n\t\t\t\t#ifdef CLUSTER_CLEAR_COAT\n\t\t\t\t\tfloat areaLightSpecularCC;\n\t\t\t\t\tif (isClusteredLightRect(light)) {\n\t\t\t\t\t\tareaLightSpecularCC = getRectLightSpecularCC();\n\t\t\t\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\t\t\t\tareaLightSpecularCC = getDiskLightSpecularCC();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tareaLightSpecularCC = getSphereLightSpecularCC();\n\t\t\t\t\t}\n\t\t\t\t\tccSpecularLight += ccLTCSpecFres * areaLightSpecularCC * dAtten * light.color\t* dAtten3;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t} else\n\t\t#endif\n\t\t{\n\t\t\t{\n\t\t\t\tvec3 punctualDiffuse = dAtten * light.color * dAtten3;\n\t\t\t\t#if defined(CLUSTER_AREALIGHTS) && defined(CLUSTER_SPECULAR) && defined(CLUSTER_CONSERVE_ENERGY)\n\t\t\t\t\tpunctualDiffuse = mix(punctualDiffuse, vec3(0), dSpecularity);\n\t\t\t\t#endif\n\t\t\t\tdDiffuseLight += punctualDiffuse;\n\t\t\t}\n\t\t\t#ifdef CLUSTER_SPECULAR\n\t\t\t\t{\n\t\t\t\t\tvec3 punctualSpecular = getLightSpecular() * dAtten * light.color * dAtten3;\n\t\t\t\t\t#if defined(CLUSTER_AREALIGHTS)\n\t\t\t\t\t\tpunctualSpecular *= dSpecularity;\n\t\t\t\t\t#endif\n\t\t\t\t\tdSpecularLight += punctualSpecular;\n\t\t\t\t}\n\t\t\t\t#ifdef CLUSTER_CLEAR_COAT\n\t\t\t\t\tvec3 punctualCC = getLightSpecularCC() * dAtten * light.color * dAtten3;\n\t\t\t\t\t#if defined(CLUSTER_AREALIGHTS)\n\t\t\t\t\t\tpunctualCC *= ccSpecularity;\n\t\t\t\t\t#endif\n\t\t\t\t\tccSpecularLight += punctualCC;\n\t\t\t\t#endif\n\t\t\t#endif\n\t\t}\n\t}\n}\nvoid evaluateClusterLight(float lightIndex) {\n\tClusterLightData clusterLightData;\n\tdecodeClusterLightCore(clusterLightData, lightIndex);\n\tif (acceptLightMask(clusterLightData))\n\t\tevaluateLight(clusterLightData);\n}\nvoid addClusteredLights() {\n\tvec3 cellCoords = floor((vPositionW - clusterBoundsMin) * clusterCellsCountByBoundsSize);\n\tif (!(any(lessThan(cellCoords, vec3(0.0))) || any(greaterThanEqual(cellCoords, clusterCellsMax)))) {\n\t\tfloat cellIndex = dot(clusterCellsDot, cellCoords);\n\t\tfloat clusterV = floor(cellIndex * clusterTextureSize.y);\n\t\tfloat clusterU = cellIndex - (clusterV * clusterTextureSize.x);\n\t\tclusterV = (clusterV + 0.5) * clusterTextureSize.z;\n\t\tconst float maxLightCells = 256.0 / 4.0;\n\t\tfor (float lightCellIndex = 0.5; lightCellIndex < maxLightCells; lightCellIndex++) {\n\t\t\tvec4 lightIndices = textureData(clusterWorldTexture, vec2(clusterTextureSize.y * (clusterU + lightCellIndex), clusterV));\n\t\t\tvec4 indices = lightIndices * 255.0;\n\t\t\tfor (int i = 0; i < 4; i++) {\n\t\t\t\tif (indices.x <= 0.0)\n\t\t\t\t\treturn;\n\t\t\t\tevaluateClusterLight(indices.x);\n\t\t\t\tindices = indices.yzwx;\n\t\t\t}\n\t\t\tif (lightCellIndex > clusterPixelsPerCell) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n}\n",combineClearCoatPS:"vec3 combineColorCC() {\n\treturn combineColor()+(ccSpecularLight*ccSpecularity+ccReflection.rgb*ccSpecularity*ccReflection.a);\n}\n",combineDiffusePS:"vec3 combineColor() {\n\treturn dAlbedo * dDiffuseLight;\n}\n",combineDiffuseSpecularPS:"vec3 combineColor() {\n\treturn mix(dAlbedo * dDiffuseLight, dSpecularLight + dReflection.rgb * dReflection.a, dSpecularity);\n}\n",combineDiffuseSpecularNoConservePS:"vec3 combineColor() {\n\treturn dAlbedo * dDiffuseLight + (dSpecularLight + dReflection.rgb * dReflection.a) * dSpecularity;\n}\n",combineDiffuseSpecularNoReflPS:"vec3 combineColor() {\n\treturn dAlbedo * dDiffuseLight + dSpecularLight * dSpecularity;\n}\n",combineDiffuseSpecularNoReflSeparateAmbientPS:"uniform vec3 material_ambient;\nvec3 combineColor() {\n\treturn (dDiffuseLight - light_globalAmbient) * dAlbedo + dSpecularLight * dSpecularity + material_ambient * light_globalAmbient;\n}\n",combineDiffuseSpecularOldPS:"vec3 combineColor() {\n\treturn mix(dAlbedo * dDiffuseLight + dSpecularLight * dSpecularity, dReflection.rgb, dReflection.a);\n}\n",cookiePS:"vec4 getCookie2D(sampler2D tex, mat4 transform, float intensity) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\treturn mix(vec4(1.0), texture2D(tex, projPos.xy), intensity);\n}\nvec4 getCookie2DClip(sampler2D tex, mat4 transform, float intensity) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\tif (projPos.x < 0.0 || projPos.x > 1.0 || projPos.y < 0.0 || projPos.y > 1.0 || projPos.z < 0.0) return vec4(0.0);\n\treturn mix(vec4(1.0), texture2D(tex, projPos.xy), intensity);\n}\nvec4 getCookie2DXform(sampler2D tex, mat4 transform, float intensity, vec4 cookieMatrix, vec2 cookieOffset) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\tprojPos.xy += cookieOffset;\n\tvec2 uv = mat2(cookieMatrix) * (projPos.xy-vec2(0.5)) + vec2(0.5);\n\treturn mix(vec4(1.0), texture2D(tex, uv), intensity);\n}\nvec4 getCookie2DClipXform(sampler2D tex, mat4 transform, float intensity, vec4 cookieMatrix, vec2 cookieOffset) {\n\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\tprojPos.xy /= projPos.w;\n\tprojPos.xy += cookieOffset;\n\tif (projPos.x < 0.0 || projPos.x > 1.0 || projPos.y < 0.0 || projPos.y > 1.0 || projPos.z < 0.0) return vec4(0.0);\n\tvec2 uv = mat2(cookieMatrix) * (projPos.xy-vec2(0.5)) + vec2(0.5);\n\treturn mix(vec4(1.0), texture2D(tex, uv), intensity);\n}\nvec4 getCookieCube(samplerCube tex, mat4 transform, float intensity) {\n\treturn mix(vec4(1.0), textureCube(tex, dLightDirNormW * mat3(transform)), intensity);\n}\n",cubeMapProjectBoxPS:"uniform vec3 envBoxMin, envBoxMax;\nvec3 cubeMapProject(vec3 nrdir) {\n\tnrdir = cubeMapRotate(nrdir);\n\tvec3 rbmax = (envBoxMax - vPositionW) / nrdir;\n\tvec3 rbmin = (envBoxMin - vPositionW) / nrdir;\n\tvec3 rbminmax;\n\trbminmax.x = nrdir.x>0.0? rbmax.x : rbmin.x;\n\trbminmax.y = nrdir.y>0.0? rbmax.y : rbmin.y;\n\trbminmax.z = nrdir.z>0.0? rbmax.z : rbmin.z;\n\tfloat fa = min(min(rbminmax.x, rbminmax.y), rbminmax.z);\n\tvec3 posonbox = vPositionW + nrdir * fa;\n\tvec3 envBoxPos = (envBoxMin + envBoxMax) * 0.5;\n\treturn normalize(posonbox - envBoxPos);\n}\n",cubeMapProjectNonePS:"vec3 cubeMapProject(vec3 dir) {\n\treturn cubeMapRotate(dir);\n}\n",cubeMapRotatePS:"#ifdef CUBEMAP_ROTATION\nuniform mat3 cubeMapRotationMatrix;\n#endif\nvec3 cubeMapRotate(vec3 refDir) {\n#ifdef CUBEMAP_ROTATION\n\treturn refDir * cubeMapRotationMatrix;\n#else\n\treturn refDir;\n#endif\n}\n",detailModesPS:"vec3 detailMode_mul(vec3 c1, vec3 c2) {\n\treturn c1 * c2;\n}\nvec3 detailMode_add(vec3 c1, vec3 c2) {\n\treturn c1 + c2;\n}\nvec3 detailMode_screen(vec3 c1, vec3 c2) {\n\treturn 1.0 - (1.0 - c1)*(1.0 - c2);\n}\nvec3 detailMode_overlay(vec3 c1, vec3 c2) {\n\treturn mix(1.0 - 2.0*(1.0 - c1)*(1.0 - c2), 2.0*c1*c2, step(c1, vec3(0.5)));\n}\nvec3 detailMode_min(vec3 c1, vec3 c2) {\n\treturn min(c1, c2);\n}\nvec3 detailMode_max(vec3 c1, vec3 c2) {\n\treturn max(c1, c2);\n}\n",diffusePS:"#ifdef MAPCOLOR\nuniform vec3 material_diffuse;\n#endif\n#ifdef MAPTEXTURE\nuniform sampler2D texture_diffuseMap;\n#endif\nvoid getAlbedo() {\n\tdAlbedo = vec3(1.0);\n\t#ifdef MAPCOLOR\n\tdAlbedo *= material_diffuse.rgb;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tdAlbedo *= gammaCorrectInput(addAlbedoDetail(texture2D(texture_diffuseMap, $UV, textureBias).$CH));\n\t#endif\n\t#ifdef MAPVERTEX\n\tdAlbedo *= gammaCorrectInput(saturate(vVertexColor.$VC));\n\t#endif\n}\n",diffuseDetailMapPS:"#ifdef MAPTEXTURE\nuniform sampler2D texture_diffuseDetailMap;\n#endif\nvec3 addAlbedoDetail(vec3 albedo) {\n\t#ifdef MAPTEXTURE\n\tvec3 albedoDetail = vec3(texture2D(texture_diffuseDetailMap, $UV, textureBias).$CH);\n\treturn detailMode_$DETAILMODE(albedo, albedoDetail);\n\t#else\n\treturn albedo;\n\t#endif\n}\n",dilatePS:"#define SHADER_NAME Dilate\nvarying vec2 vUv0;\nuniform sampler2D source;\nuniform vec2 pixelOffset;\nvoid main(void) {\n\tvec4 c = texture2D(source, vUv0);\n\tc = c.a>0.0? c : texture2D(source, vUv0 - pixelOffset);\n\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(0, -pixelOffset.y));\n\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(pixelOffset.x, -pixelOffset.y));\n\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(-pixelOffset.x, 0));\n\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(pixelOffset.x, 0));\n\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(-pixelOffset.x, pixelOffset.y));\n\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(0, pixelOffset.y));\n\tc = c.a>0.0? c : texture2D(source, vUv0 + pixelOffset);\n\tgl_FragColor = c;\n}\n",bilateralDeNoisePS:"#define SHADER_NAME BilateralDeNoise\nfloat normpdf3(in vec3 v, in float sigma) {\n\treturn 0.39894 * exp(-0.5 * dot(v, v) / (sigma * sigma)) / sigma;\n}\nvec3 decodeRGBM(vec4 rgbm) {\n\tvec3 color = (8.0 * rgbm.a) * rgbm.rgb;\n\treturn color * color;\n}\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec4 encodeRGBM(vec3 color) {\n\tvec4 encoded;\n\tencoded.rgb = pow(color.rgb, vec3(0.5));\n\tencoded.rgb *= 1.0 / 8.0;\n\tencoded.a = saturate( max( max( encoded.r, encoded.g ), max( encoded.b, 1.0 / 255.0 ) ) );\n\tencoded.a = ceil(encoded.a * 255.0) / 255.0;\n\tencoded.rgb /= encoded.a;\n\treturn encoded;\n}\n#define MSIZE 15\nvarying vec2 vUv0;\nuniform sampler2D source;\nuniform vec2 pixelOffset;\nuniform vec2 sigmas;\nuniform float bZnorm;\nuniform float kernel[MSIZE];\nvoid main(void) {\n\tvec4 pixelRgbm = texture2D(source, vUv0);\n\tif (pixelRgbm.a <= 0.0) {\n\t\tgl_FragColor = pixelRgbm;\n\t\treturn ;\n\t}\n\tfloat sigma = sigmas.x;\n\tfloat bSigma = sigmas.y;\n\tvec3 pixelHdr = decodeRGBM(pixelRgbm);\n\tvec3 accumulatedHdr = vec3(0.0);\n\tfloat accumulatedFactor = 0.0;\n\tconst int kSize = (MSIZE-1)/2;\n\tfor (int i = -kSize; i <= kSize; ++i) {\n\t\tfor (int j = -kSize; j <= kSize; ++j) {\n\t\t\tvec2 coord = vUv0 + vec2(float(i), float(j)) * pixelOffset;\n\t\t\tvec4 rgbm = texture2D(source, coord);\n\t\t\tif (rgbm.a > 0.0) {\n\t\t\t\tvec3 hdr = decodeRGBM(rgbm);\n\t\t\t\tfloat factor = kernel[kSize + j] * kernel[kSize + i];\n\t\t\t\tfactor *= normpdf3(hdr - pixelHdr, bSigma) * bZnorm;\n\t\t\t\taccumulatedHdr += factor * hdr;\n\t\t\t\taccumulatedFactor += factor;\n\t\t\t}\n\t\t}\n\t}\n\tgl_FragColor = encodeRGBM(accumulatedHdr / accumulatedFactor);\n}\n",decodePS:"vec3 decodeLinear(vec4 raw) {\n\treturn raw.rgb;\n}\nvec3 decodeGamma(vec4 raw) {\n\treturn pow(raw.xyz, vec3(2.2));\n}\nvec3 decodeRGBM(vec4 raw) {\n\tvec3 color = (8.0 * raw.a) * raw.rgb;\n\treturn color * color;\n}\nvec3 decodeRGBE(vec4 raw) {\n\tif (raw.a == 0.0) {\n\t\treturn vec3(0.0, 0.0, 0.0);\n\t} else {\n\t\treturn raw.xyz * pow(2.0, raw.w * 255.0 - 128.0);\n\t}\n}\nconst float PI = 3.141592653589793;\nvec2 toSpherical(vec3 dir) {\n\treturn vec2(dir.xz == vec2(0.0) ? 0.0 : atan(dir.x, dir.z), asin(dir.y));\n}\nvec2 toSphericalUv(vec3 dir) {\n\tvec2 uv = toSpherical(dir) / vec2(PI * 2.0, PI) + 0.5;\n\treturn vec2(uv.x, 1.0 - uv.y);\n}\nconst float atlasSize = 512.0;\nconst float seamSize = 1.0 / atlasSize;\nvec2 mapUv(vec2 uv, vec4 rect) {\n\treturn vec2(mix(rect.x + seamSize, rect.x + rect.z - seamSize, uv.x),\n\t\t\t\tmix(rect.y + seamSize, rect.y + rect.w - seamSize, uv.y));\n}\nvec2 mapRoughnessUv(vec2 uv, float level) {\n\tfloat t = 1.0 / exp2(level);\n\treturn mapUv(uv, vec4(0, 1.0 - t, t, t * 0.5));\n}\nvec2 mapMip(vec2 uv, float level) {\n\tfloat t = 1.0 / exp2(level);\n\treturn mapUv(uv, vec4(1.0 - t, 1.0 - t, t, t * 0.5));\n}\n",emissivePS:"#ifdef MAPCOLOR\nuniform vec3 material_emissive;\n#endif\n#ifdef MAPFLOAT\nuniform float material_emissiveIntensity;\n#endif\n#ifdef MAPTEXTURE\nuniform sampler2D texture_emissiveMap;\n#endif\nvec3 getEmission() {\n\tvec3 emission = vec3(1.0);\n\t#ifdef MAPFLOAT\n\temission *= material_emissiveIntensity;\n\t#endif\n\t#ifdef MAPCOLOR\n\temission *= material_emissive;\n\t#endif\n\t#ifdef MAPTEXTURE\n\temission *= $texture2DSAMPLE(texture_emissiveMap, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\temission *= gammaCorrectInput(saturate(vVertexColor.$VC));\n\t#endif\n\treturn emission;\n}\n",endPS:"\t#ifdef CLEARCOAT\n\tgl_FragColor.rgb = combineColorCC();\n\t#else\n\tgl_FragColor.rgb = combineColor();\n\t#endif\n\tgl_FragColor.rgb += getEmission();\n\tgl_FragColor.rgb = addFog(gl_FragColor.rgb);\n\t#ifndef HDR\n\tgl_FragColor.rgb = toneMap(gl_FragColor.rgb);\n\tgl_FragColor.rgb = gammaCorrectOutput(gl_FragColor.rgb);\n\t#endif\n",endVS:"\n",envConstPS:"vec3 processEnvironment(vec3 color) {\n\treturn color;\n}\n",envMultiplyPS:"uniform float skyboxIntensity;\nvec3 processEnvironment(vec3 color) {\n\treturn color * skyboxIntensity;\n}\n",extensionPS:"\n",extensionVS:"\n",falloffInvSquaredPS:"float getFalloffWindow(float lightRadius) {\n\tfloat sqrDist = dot(dLightDirW, dLightDirW);\n\tfloat invRadius = 1.0 / lightRadius;\n\treturn square( saturate( 1.0 - square( sqrDist * square(invRadius) ) ) );\n}\nfloat getFalloffInvSquared(float lightRadius) {\n\tfloat sqrDist = dot(dLightDirW, dLightDirW);\n\tfloat falloff = 1.0 / (sqrDist + 1.0);\n\tfloat invRadius = 1.0 / lightRadius;\n\tfalloff *= 16.0;\n\tfalloff *= square( saturate( 1.0 - square( sqrDist * square(invRadius) ) ) );\n\treturn falloff;\n}\n",falloffLinearPS:"float getFalloffLinear(float lightRadius) {\n\tfloat d = length(dLightDirW);\n\treturn max(((lightRadius - d) / lightRadius), 0.0);\n}\n",fixCubemapSeamsNonePS:"vec3 fixSeams(vec3 vec, float mipmapIndex) {\n\treturn vec;\n}\nvec3 fixSeams(vec3 vec) {\n\treturn vec;\n}\nvec3 fixSeamsStatic(vec3 vec, float invRecMipSize) {\n\treturn vec;\n}\nvec3 calcSeam(vec3 vec) {\n\treturn vec3(0);\n}\nvec3 applySeam(vec3 vec, vec3 seam, float scale) {\n\treturn vec;\n}\n",fixCubemapSeamsStretchPS:"vec3 fixSeams(vec3 vec, float mipmapIndex) {\n\tvec3 avec = abs(vec);\n\tfloat scale = 1.0 - exp2(mipmapIndex) / 128.0;\n\tfloat M = max(max(avec.x, avec.y), avec.z);\n\tif (avec.x != M) vec.x *= scale;\n\tif (avec.y != M) vec.y *= scale;\n\tif (avec.z != M) vec.z *= scale;\n\treturn vec;\n}\nvec3 fixSeams(vec3 vec) {\n\tvec3 avec = abs(vec);\n\tfloat scale = 1.0 - 1.0 / 128.0;\n\tfloat M = max(max(avec.x, avec.y), avec.z);\n\tif (avec.x != M) vec.x *= scale;\n\tif (avec.y != M) vec.y *= scale;\n\tif (avec.z != M) vec.z *= scale;\n\treturn vec;\n}\nvec3 fixSeamsStatic(vec3 vec, float invRecMipSize) {\n\tvec3 avec = abs(vec);\n\tfloat scale = invRecMipSize;\n\tfloat M = max(max(avec.x, avec.y), avec.z);\n\tif (avec.x != M) vec.x *= scale;\n\tif (avec.y != M) vec.y *= scale;\n\tif (avec.z != M) vec.z *= scale;\n\treturn vec;\n}\nvec3 calcSeam(vec3 vec) {\n\tvec3 avec = abs(vec);\n\tfloat M = max(avec.x, max(avec.y, avec.z));\n\treturn vec3(avec.x != M ? 1.0 : 0.0,\n\t\t\t\tavec.y != M ? 1.0 : 0.0,\n\t\t\t\tavec.z != M ? 1.0 : 0.0);\n}\nvec3 applySeam(vec3 vec, vec3 seam, float scale) {\n\treturn vec * (seam * -scale + vec3(1.0));\n}\n",floatUnpackingPS:"float bytes2float2(vec2 data) {\n\treturn dot(data, vec2(1.0, 1.0 / 255.0));\n}\nfloat bytes2float3(vec3 data) {\n\treturn dot(data, vec3(1.0, 1.0 / 255.0, 1.0 / 65025.0));\n}\nfloat bytes2float4(vec4 data) {\n\treturn dot(data, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0));\n}\nfloat bytes2floatRange2(vec2 data, float min, float max) {\n\treturn mix(min, max, bytes2float2(data));\n}\nfloat bytes2floatRange3(vec3 data, float min, float max) {\n\treturn mix(min, max, bytes2float3(data));\n}\nfloat bytes2floatRange4(vec4 data, float min, float max) {\n\treturn mix(min, max, bytes2float4(data));\n}\nfloat mantissaExponent2Float(vec4 pack)\n{\n\tfloat value = bytes2floatRange3(pack.xyz, -1.0, 1.0);\n\tfloat exponent = floor(pack.w * 255.0 - 127.0);\n\treturn value * exp2(exponent);\n}\n",fogExpPS:"uniform vec3 fog_color;\nuniform float fog_density;\nfloat dBlendModeFogFactor = 1.0;\nvec3 addFog(vec3 color) {\n\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\tfloat fogFactor = exp(-depth * fog_density);\n\tfogFactor = clamp(fogFactor, 0.0, 1.0);\n\treturn mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n",fogExp2PS:"uniform vec3 fog_color;\nuniform float fog_density;\nfloat dBlendModeFogFactor = 1.0;\nvec3 addFog(vec3 color) {\n\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\tfloat fogFactor = exp(-depth * depth * fog_density * fog_density);\n\tfogFactor = clamp(fogFactor, 0.0, 1.0);\n\treturn mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n",fogLinearPS:"uniform vec3 fog_color;\nuniform float fog_start;\nuniform float fog_end;\nfloat dBlendModeFogFactor = 1.0;\nvec3 addFog(vec3 color) {\n\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\tfloat fogFactor = (fog_end - depth) / (fog_end - fog_start);\n\tfogFactor = clamp(fogFactor, 0.0, 1.0);\n\tfogFactor = gammaCorrectInput(fogFactor);\n\treturn mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n",fogNonePS:"float dBlendModeFogFactor = 1.0;\nvec3 addFog(vec3 color) {\n\treturn color;\n}\n",fresnelSchlickPS:"uniform float material_fresnelFactor;\nvoid getFresnel() {\n\tfloat fresnel = 1.0 - max(dot(dNormalW, dViewDirW), 0.0);\n\tfloat fresnel2 = fresnel * fresnel;\n\tfresnel *= fresnel2 * fresnel2;\n\tfresnel *= dGlossiness * dGlossiness;\n\tdSpecularity = dSpecularity + (1.0 - dSpecularity) * fresnel;\n\t#ifdef CLEARCOAT\n\tfresnel = 1.0 - max(dot(ccNormalW, dViewDirW), 0.0);\n\tfresnel2 = fresnel * fresnel;\n\tfresnel *= fresnel2 * fresnel2;\n\tfresnel *= ccGlossiness * ccGlossiness;\n\tccSpecularity = ccSpecularity + (1.0 - ccSpecularity) * fresnel;\n\t#endif\n}\n",fullscreenQuadPS:"varying vec2 vUv0;\nuniform sampler2D source;\nvoid main(void) {\n\tgl_FragColor = texture2D(source, vUv0);\n}\n",fullscreenQuadVS:"attribute vec2 vertex_position;\nvarying vec2 vUv0;\nvoid main(void)\n{\n\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\tvUv0 = vertex_position.xy*0.5+0.5;\n}\n",gamma1_0PS:"vec4 texture2DSRGB(sampler2D tex, vec2 uv) {\n\treturn texture2D(tex, uv);\n}\nvec4 texture2DSRGB(sampler2D tex, vec2 uv, float bias) {\n\treturn texture2D(tex, uv, bias);\n}\nvec4 textureCubeSRGB(samplerCube tex, vec3 uvw) {\n\treturn textureCube(tex, uvw);\n}\nvec3 gammaCorrectOutput(vec3 color) {\n\treturn color;\n}\nvec3 gammaCorrectInput(vec3 color) {\n\treturn color;\n}\nfloat gammaCorrectInput(float color) {\n\treturn color;\n}\nvec4 gammaCorrectInput(vec4 color) {\n\treturn color;\n}\n",gamma2_2PS:"vec3 gammaCorrectInput(vec3 color) {\n\treturn pow(color, vec3(2.2));\n}\nfloat gammaCorrectInput(float color) {\n\treturn pow(color, 2.2);\n}\nvec4 gammaCorrectInput(vec4 color) {\n\treturn vec4(pow(color.rgb, vec3(2.2)), color.a);\n}\nvec4 texture2DSRGB(sampler2D tex, vec2 uv) {\n\tvec4 rgba = texture2D(tex, uv);\n\trgba.rgb = gammaCorrectInput(rgba.rgb);\n\treturn rgba;\n}\nvec4 texture2DSRGB(sampler2D tex, vec2 uv, float bias) {\n\tvec4 rgba = texture2D(tex, uv, bias);\n\trgba.rgb = gammaCorrectInput(rgba.rgb);\n\treturn rgba;\n}\nvec4 textureCubeSRGB(samplerCube tex, vec3 uvw) {\n\tvec4 rgba = textureCube(tex, uvw);\n\trgba.rgb = gammaCorrectInput(rgba.rgb);\n\treturn rgba;\n}\nvec3 gammaCorrectOutput(vec3 color) {\n\t#ifdef HDR\n\treturn color;\n\t#else\n\tcolor += vec3(0.0000001);\n\treturn pow(color, vec3(0.45));\n\t#endif\n}\n",gles3PS:"#define varying in\nout highp vec4 pc_fragColor;\n#define gl_FragColor pc_fragColor\n#define texture2D texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLodEXT textureLod\n#define texture2DProjLodEXT textureProjLod\n#define textureCubeLodEXT textureLod\n#define texture2DGradEXT textureGrad\n#define texture2DProjGradEXT textureProjGrad\n#define textureCubeGradEXT textureGrad\n#define GL2\n#define SUPPORTS_TEXLOD\n",gles3VS:"#define attribute in\n#define varying out\n#define texture2D texture\n#define GL2\n#define VERTEXSHADER\n",glossPS:"#ifdef MAPFLOAT\nuniform float material_shininess;\n#endif\n#ifdef MAPTEXTURE\nuniform sampler2D texture_glossMap;\n#endif\nvoid getGlossiness() {\n\tdGlossiness = 1.0;\n\t#ifdef MAPFLOAT\n\tdGlossiness *= material_shininess;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tdGlossiness *= texture2D(texture_glossMap, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tdGlossiness *= saturate(vVertexColor.$VC);\n\t#endif\n\tdGlossiness += 0.0000001;\n}\n",instancingVS:"attribute vec4 instance_line1;\nattribute vec4 instance_line2;\nattribute vec4 instance_line3;\nattribute vec4 instance_line4;\n",lightDiffuseLambertPS:"float getLightDiffuse() {\n\treturn max(dot(dNormalW, -dLightDirNormW), 0.0);\n}\n",lightDirPointPS:"void getLightDirPoint(vec3 lightPosW) {\n\tdLightDirW = vPositionW - lightPosW;\n\tdLightDirNormW = normalize(dLightDirW);\n\tdLightPosW = lightPosW;\n}\n",lightmapDirPS:"uniform sampler2D texture_lightMap;\nuniform sampler2D texture_dirLightMap;\nvoid addLightMap() {\n\tvec3 color = $texture2DSAMPLE(texture_lightMap, $UV, textureBias).$CH;\n\tvec3 dir = texture2D(texture_dirLightMap, $UV, textureBias).xyz;\n\tif (dot(dir, vec3(1.0)) < 0.00001) {\n\t\tdDiffuseLight += color;\n\t} else {\n\t\tdLightDirNormW = normalize(dir * 2.0 - vec3(1.0));\n\t\tfloat vlight = saturate(dot(dLightDirNormW, -dVertexNormalW));\n\t\tfloat flight = saturate(dot(dLightDirNormW, -dNormalW));\n\t\tfloat nlight = (flight / max(vlight, 0.01)) * 0.5;\n\t\tdDiffuseLight += color * nlight * 2.0;\n\t}\n\tdSpecularLight += color * getLightSpecular();\n}\n",lightmapSinglePS:"#ifdef MAPTEXTURE\nuniform sampler2D texture_lightMap;\n#endif\nvoid addLightMap() {\n\tvec3 lm = vec3(1.0);\n\t#ifdef MAPTEXTURE\n\tlm *= $texture2DSAMPLE(texture_lightMap, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tlm *= saturate(vVertexColor.$VC);\n\t#endif\n\tdDiffuseLight += lm;\n}\n",lightmapSingleVertPS:"void addLightMap() {\n\tdDiffuseLight += saturate(vVertexColor.$CH);\n}\n",lightSpecularAnisoGGXPS:"float calcLightSpecular(float tGlossiness, vec3 tNormalW) {\n\tfloat PI = 3.141592653589793;\n\tfloat roughness = max((1.0 - tGlossiness) * (1.0 - tGlossiness), 0.001);\n\tfloat anisotropy = material_anisotropy * roughness;\n\tfloat at = max((roughness + anisotropy), roughness / 4.0);\n\tfloat ab = max((roughness - anisotropy), roughness / 4.0);\n\tvec3 h = normalize(normalize(-dLightDirNormW) + normalize(dViewDirW));\n\tfloat NoH = dot(tNormalW, h);\n\tfloat ToH = dot(dTBN[0], h);\n\tfloat BoH = dot(dTBN[1], h);\n\tfloat a2 = at * ab;\n\tvec3 v = vec3(ab * ToH, at * BoH, a2 * NoH);\n\tfloat v2 = dot(v, v);\n\tfloat w2 = a2 / v2;\n\tfloat D = a2 * w2 * w2 * (1.0 / PI);\n\tfloat ToV = dot(dTBN[0], dViewDirW);\n\tfloat BoV = dot(dTBN[1], dViewDirW);\n\tfloat ToL = dot(dTBN[0], -dLightDirNormW);\n\tfloat BoL = dot(dTBN[1], -dLightDirNormW);\n\tfloat NoV = dot(tNormalW, dViewDirW);\n\tfloat NoL = dot(tNormalW, -dLightDirNormW);\n\tfloat lambdaV = NoL * length(vec3(at * ToV, ab * BoV, NoV));\n\tfloat lambdaL = NoV * length(vec3(at * ToL, ab * BoL, NoL));\n\tfloat G = 0.5 / (lambdaV + lambdaL);\n\treturn D * G;\n}\nfloat getLightSpecular() {\n\treturn calcLightSpecular(dGlossiness, dNormalW);\n}\nfloat getLightSpecularCC() {\n\treturn calcLightSpecular(ccGlossiness, ccNormalW);\n}\n",lightSpecularBlinnPS:"float calcLightSpecular(float tGlossiness, vec3 tNormalW) {\n\tvec3 h = normalize( -dLightDirNormW + dViewDirW );\n\tfloat nh = max( dot( h, tNormalW ), 0.0 );\n\tfloat specPow = exp2(tGlossiness * 11.0);\n\tspecPow = antiAliasGlossiness(specPow);\n\tspecPow = max(specPow, 0.0001);\n\treturn pow(nh, specPow) * (specPow + 2.0) / 8.0;\n}\nfloat getLightSpecular() {\n\treturn calcLightSpecular(dGlossiness, dNormalW);\n}\nfloat getLightSpecularCC() {\n\treturn calcLightSpecular(ccGlossiness, ccNormalW);\n}\n",lightSpecularPhongPS:"float calcLightSpecular(float tGlossiness, vec3 tReflDirW) {\n\tfloat specPow = tGlossiness;\n\tspecPow = antiAliasGlossiness(specPow);\n\treturn pow(max(dot(tReflDirW, -dLightDirNormW), 0.0), specPow + 0.0001);\n}\nfloat getLightSpecular() {\n\treturn calcLightSpecular(dGlossiness, dReflDirW);\n}\nfloat getLightSpecularCC() {\n\treturn calcLightSpecular(ccGlossiness, ccReflDirW);\n}\n",ltc:"mat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nstruct Coords {\n\tvec3 coord0;\n\tvec3 coord1;\n\tvec3 coord2;\n\tvec3 coord3;\n};\nfloat LTC_EvaluateRect( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in Coords rectCoords) {\n\tvec3 v1 = rectCoords.coord1 - rectCoords.coord0;\n\tvec3 v2 = rectCoords.coord3 - rectCoords.coord0;\n\tvec3 lightNormal = cross( v1, v2 );\n\tfloat factor = sign(-dot( lightNormal, P - rectCoords.coord0 ));\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 =\tfactor * cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords.coord0 - P );\n\tcoords[ 1 ] = mat * ( rectCoords.coord1 - P );\n\tcoords[ 2 ] = mat * ( rectCoords.coord2 - P );\n\tcoords[ 3 ] = mat * ( rectCoords.coord3 - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn result;\n}\nCoords dLTCCoords;\nCoords getLTCLightCoords(vec3 lightPos, vec3 halfWidth, vec3 halfHeight){\n\tCoords coords;\n\tcoords.coord0 = lightPos + halfWidth - halfHeight;\n\tcoords.coord1 = lightPos - halfWidth - halfHeight;\n\tcoords.coord2 = lightPos - halfWidth + halfHeight;\n\tcoords.coord3 = lightPos + halfWidth + halfHeight;\n\treturn coords;\n}\nfloat dSphereRadius;\nCoords getSphereLightCoords(vec3 lightPos, vec3 halfWidth, vec3 halfHeight){\n\tdSphereRadius = max(length(halfWidth), length(halfHeight));\n\tvec3 f = reflect(normalize(lightPos - view_position), vNormalW);\n\tvec3 w = normalize(cross(f, halfHeight));\n\tvec3 h = normalize(cross(f, w));\n\treturn getLTCLightCoords(lightPos, w * dSphereRadius, h * dSphereRadius);\n}\nvec2 dLTCUV;\n#ifdef CLEARCOAT\nvec2 ccLTCUV;\n#endif\nvec2 getLTCLightUV(float tGlossiness, vec3 tNormalW)\n{\n\tfloat roughness = max((1.0 - tGlossiness) * (1.0 - tGlossiness), 0.001);\n\treturn LTC_Uv( tNormalW, dViewDirW, roughness );\n}\nvec3 dLTCSpecFres;\n#ifdef CLEARCOAT\nvec3 ccLTCSpecFres;\n#endif\nvec3 getLTCLightSpecFres(vec2 uv, vec3 tSpecularity)\n{\n\tvec4 t2 = texture2D( areaLightsLutTex2, uv );\n\t#ifdef AREA_R8_G8_B8_A8_LUTS\n\tt2 *= vec4(0.693103,1,1,1);\n\tt2 += vec4(0.306897,0,0,0);\n\t#endif\n\treturn tSpecularity * t2.x + ( vec3( 1.0 ) - tSpecularity) * t2.y;\n}\nvoid calcLTCLightValues()\n{\n\tdLTCUV = getLTCLightUV(dGlossiness, dNormalW);\n\tdLTCSpecFres = getLTCLightSpecFres(dLTCUV, dSpecularityNoFres);\n#ifdef CLEARCOAT\n\tccLTCUV = getLTCLightUV(ccGlossiness, ccNormalW);\n\tccLTCSpecFres = getLTCLightSpecFres(ccLTCUV, vec3(ccSpecularityNoFres));\n#endif\n}\nvoid calcRectLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n\tdLTCCoords = getLTCLightCoords(lightPos, halfWidth, halfHeight);\n}\nvoid calcDiskLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n\tcalcRectLightValues(lightPos, halfWidth, halfHeight);\n}\nvoid calcSphereLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n\tdLTCCoords = getSphereLightCoords(lightPos, halfWidth, halfHeight);\n}\nvec3 SolveCubic(vec4 Coefficient)\n{\n\tfloat pi = 3.14159;\n\tCoefficient.xyz /= Coefficient.w;\n\tCoefficient.yz /= 3.0;\n\tfloat A = Coefficient.w;\n\tfloat B = Coefficient.z;\n\tfloat C = Coefficient.y;\n\tfloat D = Coefficient.x;\n\tvec3 Delta = vec3(\n\t\t-Coefficient.z * Coefficient.z + Coefficient.y,\n\t\t-Coefficient.y * Coefficient.z + Coefficient.x,\n\t\tdot(vec2(Coefficient.z, -Coefficient.y), Coefficient.xy)\n\t);\n\tfloat Discriminant = dot(vec2(4.0 * Delta.x, -Delta.y), Delta.zy);\n\tvec3 RootsA, RootsD;\n\tvec2 xlc, xsc;\n\t{\n\t\tfloat A_a = 1.0;\n\t\tfloat C_a = Delta.x;\n\t\tfloat D_a = -2.0 * B * Delta.x + Delta.y;\n\t\tfloat Theta = atan(sqrt(Discriminant), -D_a) / 3.0;\n\t\tfloat x_1a = 2.0 * sqrt(-C_a) * cos(Theta);\n\t\tfloat x_3a = 2.0 * sqrt(-C_a) * cos(Theta + (2.0 / 3.0) * pi);\n\t\tfloat xl;\n\t\tif ((x_1a + x_3a) > 2.0 * B)\n\t\t\txl = x_1a;\n\t\telse\n\t\t\txl = x_3a;\n\t\txlc = vec2(xl - B, A);\n\t}\n\t{\n\t\tfloat A_d = D;\n\t\tfloat C_d = Delta.z;\n\t\tfloat D_d = -D * Delta.y + 2.0 * C * Delta.z;\n\t\tfloat Theta = atan(D * sqrt(Discriminant), -D_d) / 3.0;\n\t\tfloat x_1d = 2.0 * sqrt(-C_d) * cos(Theta);\n\t\tfloat x_3d = 2.0 * sqrt(-C_d) * cos(Theta + (2.0 / 3.0) * pi);\n\t\tfloat xs;\n\t\tif (x_1d + x_3d < 2.0 * C)\n\t\t\txs = x_1d;\n\t\telse\n\t\t\txs = x_3d;\n\t\txsc = vec2(-D, xs + C);\n\t}\n\tfloat E =\txlc.y * xsc.y;\n\tfloat F = -xlc.x * xsc.y - xlc.y * xsc.x;\n\tfloat G =\txlc.x * xsc.x;\n\tvec2 xmc = vec2(C * F - B * G, -B * F + C * E);\n\tvec3 Root = vec3(xsc.x / xsc.y, xmc.x / xmc.y, xlc.x / xlc.y);\n\tif (Root.x < Root.y && Root.x < Root.z)\n\t\tRoot.xyz = Root.yxz;\n\telse if (Root.z < Root.x && Root.z < Root.y)\n\t\tRoot.xyz = Root.xzy;\n\treturn Root;\n}\nfloat LTC_EvaluateDisk(vec3 N, vec3 V, vec3 P, mat3 Minv, Coords points)\n{\n\tvec3 T1, T2;\n\tT1 = normalize(V - N * dot(V, N));\n\tT2 = cross(N, T1);\n\tmat3 R = transposeMat3( mat3( T1, T2, N ) );\n\tvec3 L_[ 3 ];\n\tL_[ 0 ] = R * ( points.coord0 - P );\n\tL_[ 1 ] = R * ( points.coord1 - P );\n\tL_[ 2 ] = R * ( points.coord2 - P );\n\tvec3 Lo_i = vec3(0);\n\tvec3 C\t= 0.5 * (L_[0] + L_[2]);\n\tvec3 V1 = 0.5 * (L_[1] - L_[2]);\n\tvec3 V2 = 0.5 * (L_[1] - L_[0]);\n\tC\t= Minv * C;\n\tV1 = Minv * V1;\n\tV2 = Minv * V2;\n\tfloat a, b;\n\tfloat d11 = dot(V1, V1);\n\tfloat d22 = dot(V2, V2);\n\tfloat d12 = dot(V1, V2);\n\tif (abs(d12) / sqrt(d11 * d22) > 0.0001)\n\t{\n\t\tfloat tr = d11 + d22;\n\t\tfloat det = -d12 * d12 + d11 * d22;\n\t\tdet = sqrt(det);\n\t\tfloat u = 0.5 * sqrt(tr - 2.0 * det);\n\t\tfloat v = 0.5 * sqrt(tr + 2.0 * det);\n\t\tfloat e_max = (u + v) * (u + v);\n\t\tfloat e_min = (u - v) * (u - v);\n\t\tvec3 V1_, V2_;\n\t\tif (d11 > d22)\n\t\t{\n\t\t\tV1_ = d12 * V1 + (e_max - d11) * V2;\n\t\t\tV2_ = d12 * V1 + (e_min - d11) * V2;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tV1_ = d12*V2 + (e_max - d22)*V1;\n\t\t\tV2_ = d12*V2 + (e_min - d22)*V1;\n\t\t}\n\t\ta = 1.0 / e_max;\n\t\tb = 1.0 / e_min;\n\t\tV1 = normalize(V1_);\n\t\tV2 = normalize(V2_);\n\t}\n\telse\n\t{\n\t\ta = 1.0 / dot(V1, V1);\n\t\tb = 1.0 / dot(V2, V2);\n\t\tV1 *= sqrt(a);\n\t\tV2 *= sqrt(b);\n\t}\n\tvec3 V3 = cross(V1, V2);\n\tif (dot(C, V3) < 0.0)\n\t\tV3 *= -1.0;\n\tfloat L\t= dot(V3, C);\n\tfloat x0 = dot(V1, C) / L;\n\tfloat y0 = dot(V2, C) / L;\n\tfloat E1 = inversesqrt(a);\n\tfloat E2 = inversesqrt(b);\n\ta *= L * L;\n\tb *= L * L;\n\tfloat c0 = a * b;\n\tfloat c1 = a * b * (1.0 + x0 * x0 + y0 * y0) - a - b;\n\tfloat c2 = 1.0 - a * (1.0 + x0 * x0) - b * (1.0 + y0 * y0);\n\tfloat c3 = 1.0;\n\tvec3 roots = SolveCubic(vec4(c0, c1, c2, c3));\n\tfloat e1 = roots.x;\n\tfloat e2 = roots.y;\n\tfloat e3 = roots.z;\n\tvec3 avgDir = vec3(a * x0 / (a - e2), b * y0 / (b - e2), 1.0);\n\tmat3 rotate = mat3(V1, V2, V3);\n\tavgDir = rotate * avgDir;\n\tavgDir = normalize(avgDir);\n\tfloat L1 = sqrt(-e2 / e3);\n\tfloat L2 = sqrt(-e2 / e1);\n\tfloat formFactor = L1 * L2 * inversesqrt((1.0 + L1 * L1) * (1.0 + L2 * L2));\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tvec2 uv = vec2(avgDir.z * 0.5 + 0.5, formFactor);\n\tuv = uv*LUT_SCALE + LUT_BIAS;\n\tfloat scale = texture2D( areaLightsLutTex2, uv ).w;\n\treturn formFactor*scale;\n}\nfloat getRectLightDiffuse() {\n\treturn LTC_EvaluateRect( dNormalW, dViewDirW, vPositionW, mat3( 1.0 ), dLTCCoords );\n}\nfloat getDiskLightDiffuse() {\n\treturn LTC_EvaluateDisk( dNormalW, dViewDirW, vPositionW, mat3( 1.0 ), dLTCCoords );\n}\nfloat getSphereLightDiffuse() {\n\tfloat falloff = dSphereRadius / (dot(dLightDirW, dLightDirW) + dSphereRadius);\n\treturn getLightDiffuse()*falloff;\n}\nmat3 getLTCLightInvMat(vec2 uv)\n{\n\tvec4 t1 = texture2D( areaLightsLutTex1, uv );\n\t#ifdef AREA_R8_G8_B8_A8_LUTS\n\tt1 *= vec4(1.001, 0.3239, 0.60437568, 1.0);\n\tt1 += vec4(0.0, -0.2976, -0.01381, 0.0);\n\t#endif\n\treturn mat3(\n\t\tvec3( t1.x, 0, t1.y ),\n\t\tvec3(\t0, 1,\t0 ),\n\t\tvec3( t1.z, 0, t1.w )\n\t);\n}\nfloat calcRectLightSpecular(vec3 tNormalW, vec2 uv) {\n\tmat3 mInv = getLTCLightInvMat(uv);\n\treturn LTC_EvaluateRect( tNormalW, dViewDirW, vPositionW, mInv, dLTCCoords );\n}\nfloat getRectLightSpecular() {\n\treturn calcRectLightSpecular(dNormalW, dLTCUV);\n}\n#ifdef CLEARCOAT\nfloat getRectLightSpecularCC() {\n\treturn calcRectLightSpecular(ccNormalW, ccLTCUV);\n}\n#endif\nfloat calcDiskLightSpecular(vec3 tNormalW, vec2 uv) {\n\tmat3 mInv = getLTCLightInvMat(uv);\n\treturn LTC_EvaluateDisk( tNormalW, dViewDirW, vPositionW, mInv, dLTCCoords );\n}\nfloat getDiskLightSpecular() {\n\treturn calcDiskLightSpecular(dNormalW, dLTCUV);\n}\n#ifdef CLEARCOAT\nfloat getDiskLightSpecularCC() {\n\treturn calcDiskLightSpecular(ccNormalW, ccLTCUV);\n}\n#endif\nfloat getSphereLightSpecular() {\n\treturn calcDiskLightSpecular(dNormalW, dLTCUV);\n}\n#ifdef CLEARCOAT\nfloat getSphereLightSpecularCC() {\n\treturn calcDiskLightSpecular(ccNormalW, ccLTCUV);\n}\n#endif\n",metalnessPS:"void processMetalness(float metalness) {\n\tconst float dielectricF0 = 0.04;\n\tdSpecularity = mix(vec3(dielectricF0), dAlbedo, metalness);\n\tdAlbedo *= 1.0 - metalness;\n}\n#ifdef MAPFLOAT\nuniform float material_metalness;\n#endif\n#ifdef MAPTEXTURE\nuniform sampler2D texture_metalnessMap;\n#endif\nvoid getSpecularity() {\n\tfloat metalness = 1.0;\n\t#ifdef MAPFLOAT\n\tmetalness *= material_metalness;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tmetalness *= texture2D(texture_metalnessMap, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tmetalness *= saturate(vVertexColor.$VC);\n\t#endif\n\tprocessMetalness(metalness);\n}\n",msdfPS:"uniform sampler2D texture_msdfMap;\n#ifdef GL_OES_standard_derivatives\n#define USE_FWIDTH\n#endif\n#ifdef GL2\n#define USE_FWIDTH\n#endif\nfloat median(float r, float g, float b) {\n\treturn max(min(r, g), min(max(r, g), b));\n}\nfloat map (float min, float max, float v) {\n\treturn (v - min) / (max - min);\n}\nuniform float font_sdfIntensity;\nuniform float font_pxrange;\nuniform float font_textureWidth;\nuniform vec4 outline_color;\nuniform float outline_thickness;\nuniform vec4 shadow_color;\nuniform vec2 shadow_offset;\nvec4 applyMsdf(vec4 color) {\n\tvec3 tsample = texture2D(texture_msdfMap, vUv0).rgb;\n\tvec2 uvShdw = vUv0 - shadow_offset;\n\tvec3 ssample = texture2D(texture_msdfMap, uvShdw).rgb;\n\tfloat sigDist = median(tsample.r, tsample.g, tsample.b);\n\tfloat sigDistShdw = median(ssample.r, ssample.g, ssample.b);\n\tfloat smoothingMax = 0.2;\n\t#ifdef USE_FWIDTH\n\tvec2 w = fwidth(vUv0);\n\tfloat smoothing = clamp(w.x * font_textureWidth / font_pxrange, 0.0, smoothingMax);\n\t#else\n\tfloat font_size = 16.0;\n\tfloat smoothing = clamp(font_pxrange / font_size, 0.0, smoothingMax);\n\t#endif\n\tfloat mapMin = 0.05;\n\tfloat mapMax = clamp(1.0 - font_sdfIntensity, mapMin, 1.0);\n\tfloat sigDistInner = map(mapMin, mapMax, sigDist);\n\tfloat sigDistOutline = map(mapMin, mapMax, sigDist + outline_thickness);\n\tsigDistShdw = map(mapMin, mapMax, sigDistShdw + outline_thickness);\n\tfloat center = 0.5;\n\tfloat inside = smoothstep(center-smoothing, center+smoothing, sigDistInner);\n\tfloat outline = smoothstep(center-smoothing, center+smoothing, sigDistOutline);\n\tfloat shadow = smoothstep(center-smoothing, center+smoothing, sigDistShdw);\n\tvec4 tcolor = (outline > inside) ? outline * vec4(outline_color.a * outline_color.rgb, outline_color.a) : vec4(0.0);\n\ttcolor = mix(tcolor, color, inside);\n\tvec4 scolor = (shadow > outline) ? shadow * vec4(shadow_color.a * shadow_color.rgb, shadow_color.a) : tcolor;\n\ttcolor = mix(scolor, tcolor, outline);\n\treturn tcolor;\n}\n",normalVS:"#ifdef MORPHING_TEXTURE_BASED_NORMAL\nuniform highp sampler2D morphNormalTex;\n#endif\nvec3 getNormal() {\n\t#ifdef SKIN\n\tdNormalMatrix = mat3(dModelMatrix[0].xyz, dModelMatrix[1].xyz, dModelMatrix[2].xyz);\n\t#elif defined(INSTANCING)\n\tdNormalMatrix = mat3(instance_line1.xyz, instance_line2.xyz, instance_line3.xyz);\n\t#else\n\tdNormalMatrix = matrix_normal;\n\t#endif\n\tvec3 tempNormal = vertex_normal;\n\t#ifdef MORPHING\n\t#ifdef MORPHING_NRM03\n\ttempNormal += morph_weights_a[0] * morph_nrm0;\n\ttempNormal += morph_weights_a[1] * morph_nrm1;\n\ttempNormal += morph_weights_a[2] * morph_nrm2;\n\ttempNormal += morph_weights_a[3] * morph_nrm3;\n\t#endif\n\t#ifdef MORPHING_NRM47\n\ttempNormal += morph_weights_b[0] * morph_nrm4;\n\ttempNormal += morph_weights_b[1] * morph_nrm5;\n\ttempNormal += morph_weights_b[2] * morph_nrm6;\n\ttempNormal += morph_weights_b[3] * morph_nrm7;\n\t#endif\n\t#endif\n\t#ifdef MORPHING_TEXTURE_BASED_NORMAL\n\tvec2 morphUV = getTextureMorphCoords();\n\tvec3 morphNormal = texture2D(morphNormalTex, morphUV).xyz;\n\ttempNormal += morphNormal;\n\t#endif\n\treturn normalize(dNormalMatrix * tempNormal);\n}\n",normalDetailMapPS:"#ifdef MAPTEXTURE\nuniform sampler2D texture_normalDetailMap;\nuniform float material_normalDetailMapBumpiness;\nvec3 blendNormals(vec3 n1, vec3 n2) {\n\tn1 += vec3(0, 0, 1);\n\tn2 *= vec3(-1, -1, 1);\n\treturn normalize(n1*dot(n1, n2)/n1.z - n2);\n}\n#endif\nvec3 addNormalDetail(vec3 normalMap) {\n\t#ifdef MAPTEXTURE\n\tvec3 normalDetailMap = unpackNormal(texture2D(texture_normalDetailMap, $UV, textureBias));\n\tnormalDetailMap = normalize(mix(vec3(0.0, 0.0, 1.0), normalDetailMap, material_normalDetailMapBumpiness));\n\treturn blendNormals(normalMap, normalDetailMap);\n\t#else\n\treturn normalMap;\n\t#endif\n}\n",normalInstancedVS:"vec3 getNormal() {\n\tdNormalMatrix = mat3(instance_line1.xyz, instance_line2.xyz, instance_line3.xyz);\n\treturn normalize(dNormalMatrix * vertex_normal);\n}\n",normalMapPS:"uniform sampler2D texture_normalMap;\nuniform float material_bumpiness;\nvoid getNormal() {\n\tvec3 normalMap = unpackNormal(texture2D(texture_normalMap, $UV, textureBias));\n\tnormalMap = normalize(mix(vec3(0.0, 0.0, 1.0), normalMap, material_bumpiness));\n\tdNormalMap = addNormalDetail(normalMap);\n\tdNormalW = dTBN * dNormalMap;\n}\n",normalMapFastPS:"uniform sampler2D texture_normalMap;\nvoid getNormal() {\n\tvec3 normalMap = unpackNormal(texture2D(texture_normalMap, $UV, textureBias));\n\tdNormalMap = addNormalDetail(normalMap);\n\tdNormalW = dTBN * dNormalMap;\n}\n",normalSkinnedVS:"vec3 getNormal() {\n\tdNormalMatrix = mat3(dModelMatrix[0].xyz, dModelMatrix[1].xyz, dModelMatrix[2].xyz);\n\treturn normalize(dNormalMatrix * vertex_normal);\n}\n",normalVertexPS:"void getNormal() {\n\tdNormalW = normalize(dVertexNormalW);\n}\n",normalXYPS:"vec3 unpackNormal(vec4 nmap) {\n\tvec3 normal;\n\tnormal.xy = nmap.wy * 2.0 - 1.0;\n\tnormal.z = sqrt(1.0 - saturate(dot(normal.xy, normal.xy)));\n\treturn normal;\n}\n",normalXYZPS:"vec3 unpackNormal(vec4 nmap) {\n\treturn nmap.xyz * 2.0 - 1.0;\n}\n",opacityPS:"#ifdef MAPFLOAT\nuniform float material_opacity;\n#endif\n#ifdef MAPTEXTURE\nuniform sampler2D texture_opacityMap;\n#endif\nvoid getOpacity() {\n\tdAlpha = 1.0;\n\t#ifdef MAPFLOAT\n\tdAlpha *= material_opacity;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tdAlpha *= texture2D(texture_opacityMap, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tdAlpha *= clamp(vVertexColor.$VC, 0.0, 1.0);\n\t#endif\n}\n",outputAlphaPS:"gl_FragColor.a = dAlpha;\n",outputAlphaOpaquePS:"gl_FragColor.a = 1.0;\n",outputAlphaPremulPS:"gl_FragColor.rgb *= dAlpha;\ngl_FragColor.a = dAlpha;\n",outputTex2DPS:"varying vec2 vUv0;\nuniform sampler2D source;\nvoid main(void) {\n\tgl_FragColor = texture2D(source, vUv0);\n}\n",packDepthPS:"vec4 packFloat(float depth) {\n\tconst vec4 bit_shift = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n\tconst vec4 bit_mask\t= vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n\tvec4 res = mod(depth * bit_shift * vec4(255), vec4(256) ) / vec4(255);\n\tres -= res.xxyz * bit_mask;\n\treturn res;\n}\n",parallaxPS:"uniform sampler2D texture_heightMap;\nuniform float material_heightMapFactor;\nvoid getParallax() {\n\tfloat parallaxScale = material_heightMapFactor;\n\tfloat height = texture2D(texture_heightMap, $UV, textureBias).$CH;\n\theight = height * parallaxScale - parallaxScale*0.5;\n\tvec3 viewDirT = dViewDirW * dTBN;\n\tviewDirT.z += 0.42;\n\tdUvOffset = height * (viewDirT.xy / viewDirT.z);\n}\n",particlePS:"varying vec4 texCoordsAlphaLife;\nuniform sampler2D colorMap;\nuniform sampler2D colorParam;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params;\n#endif\nuniform float softening;\nuniform float colorMult;\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n\tconst vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n\tfloat depth = dot(rgbaDepth, bitShift);\n\treturn depth;\n}\n#endif\nvoid main(void) {\n\tvec4 tex\t= texture2DSRGB(colorMap, vec2(texCoordsAlphaLife.x, 1.0 - texCoordsAlphaLife.y));\n\tvec4 ramp = texture2DSRGB(colorParam, vec2(texCoordsAlphaLife.w, 0.0));\n\tramp.rgb *= colorMult;\n\tramp.a += texCoordsAlphaLife.z;\n\tvec3 rgb = tex.rgb * ramp.rgb;\n\tfloat a\t= tex.a * ramp.a;\n",particleVS:"vec3 unpack3NFloats(float src) {\n\tfloat r = fract(src);\n\tfloat g = fract(src * 256.0);\n\tfloat b = fract(src * 65536.0);\n\treturn vec3(r, g, b);\n}\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec4 tex1Dlod_lerp(highp sampler2D tex, vec2 tc) {\n\treturn mix( texture2D(tex,tc), texture2D(tex,tc + graphSampleSize), fract(tc.x*graphNumSamples) );\n}\nvec4 tex1Dlod_lerp(highp sampler2D tex, vec2 tc, out vec3 w) {\n\tvec4 a = texture2D(tex,tc);\n\tvec4 b = texture2D(tex,tc + graphSampleSize);\n\tfloat c = fract(tc.x*graphNumSamples);\n\tvec3 unpackedA = unpack3NFloats(a.w);\n\tvec3 unpackedB = unpack3NFloats(b.w);\n\tw = mix(unpackedA, unpackedB, c);\n\treturn mix(a, b, c);\n}\nvec2 rotate(vec2 quadXY, float pRotation, out mat2 rotMatrix) {\n\tfloat c = cos(pRotation);\n\tfloat s = sin(pRotation);\n\tmat2 m = mat2(c, -s, s, c);\n\trotMatrix = m;\n\treturn m * quadXY;\n}\nvec3 billboard(vec3 InstanceCoords, vec2 quadXY) {\n\t#ifdef SCREEN_SPACE\n\t\tvec3 pos = vec3(-1, 0, 0) * quadXY.x + vec3(0, -1, 0) * quadXY.y;\n\t#else\n\t\tvec3 pos = -matrix_viewInverse[0].xyz * quadXY.x + -matrix_viewInverse[1].xyz * quadXY.y;\n\t#endif\n\treturn pos;\n}\nvec3 customFace(vec3 InstanceCoords, vec2 quadXY) {\n\tvec3 pos = faceTangent * quadXY.x + faceBinorm * quadXY.y;\n\treturn pos;\n}\nvec2 safeNormalize(vec2 v) {\n\tfloat l = length(v);\n\treturn (l > 1e-06) ? v / l : v;\n}\nvoid main(void) {\n\tvec3 meshLocalPos = particle_vertexData.xyz;\n\tfloat id = floor(particle_vertexData.w);\n\tfloat rndFactor = fract(sin(id + 1.0 + seed));\n\tvec3 rndFactor3 = vec3(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n\tfloat uv = id / numParticlesPot;\n\treadInput(uv);\n#ifdef LOCAL_SPACE\n\tinVel = mat3(matrix_model) * inVel;\n#endif\n\tvec2 velocityV = safeNormalize((mat3(matrix_view) * inVel).xy);\n\tfloat particleLifetime = lifetime;\n\tif (inLife <= 0.0 || inLife > particleLifetime || !inShow) meshLocalPos = vec3(0.0);\n\tvec2 quadXY = meshLocalPos.xy;\n\tfloat nlife = clamp(inLife / particleLifetime, 0.0, 1.0);\n\tvec3 paramDiv;\n\tvec4 params = tex1Dlod_lerp(internalTex2, vec2(nlife, 0), paramDiv);\n\tfloat scale = params.y;\n\tfloat scaleDiv = paramDiv.x;\n\tfloat alphaDiv = paramDiv.z;\n\tscale += (scaleDiv * 2.0 - 1.0) * scaleDivMult * fract(rndFactor*10000.0);\n#ifndef USE_MESH\n\ttexCoordsAlphaLife = vec4(quadXY * -0.5 + 0.5, (alphaDiv * 2.0 - 1.0) * alphaDivMult * fract(rndFactor*1000.0), nlife);\n#else\n\ttexCoordsAlphaLife = vec4(particle_uv, (alphaDiv * 2.0 - 1.0) * alphaDivMult * fract(rndFactor*1000.0), nlife);\n#endif\n\tvec3 particlePos = inPos;\n\tvec3 particlePosMoved = vec3(0.0);\n\tmat2 rotMatrix;\n",particleAnimFrameClampVS:"\tfloat animFrame = min(floor(texCoordsAlphaLife.w * animTexParams.y) + animTexParams.x, animTexParams.z);\n",particleAnimFrameLoopVS:"\tfloat animFrame = floor(mod(texCoordsAlphaLife.w * animTexParams.y + animTexParams.x, animTexParams.z + 1.0));\n",particleAnimTexVS:"\tfloat animationIndex;\n\tif (animTexIndexParams.y == 1.0) {\n\t\tanimationIndex = floor((animTexParams.w + 1.0) * rndFactor3.z) * (animTexParams.z + 1.0);\n\t} else {\n\t\tanimationIndex = animTexIndexParams.x * (animTexParams.z + 1.0);\n\t}\n\tfloat atlasX = (animationIndex + animFrame) * animTexTilesParams.x;\n\tfloat atlasY = 1.0 - floor(atlasX + 1.0) * animTexTilesParams.y;\n\tatlasX = fract(atlasX);\n\ttexCoordsAlphaLife.xy *= animTexTilesParams.xy;\n\ttexCoordsAlphaLife.xy += vec2(atlasX, atlasY);\n",particleInputFloatPS:"void readInput(float uv) {\n\tvec4 tex = texture2D(particleTexIN, vec2(uv, 0.25));\n\tvec4 tex2 = texture2D(particleTexIN, vec2(uv, 0.75));\n\tinPos = tex.xyz;\n\tinVel = tex2.xyz;\n\tinAngle = (tex.w < 0.0? -tex.w : tex.w) - 1000.0;\n\tinShow = tex.w >= 0.0;\n\tinLife = tex2.w;\n}\n",particleInputRgba8PS:"#define PI2 6.283185307179586\nuniform vec3 inBoundsSize;\nuniform vec3 inBoundsCenter;\nuniform float maxVel;\nfloat decodeFloatRG(vec2 rg) {\n\treturn rg.y*(1.0/255.0) + rg.x;\n}\nfloat decodeFloatRGBA( vec4 rgba ) {\n\treturn dot( rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0/160581375.0) );\n}\nvoid readInput(float uv) {\n\tvec4 tex0 = texture2D(particleTexIN, vec2(uv, 0.125));\n\tvec4 tex1 = texture2D(particleTexIN, vec2(uv, 0.375));\n\tvec4 tex2 = texture2D(particleTexIN, vec2(uv, 0.625));\n\tvec4 tex3 = texture2D(particleTexIN, vec2(uv, 0.875));\n\tinPos = vec3(decodeFloatRG(tex0.rg), decodeFloatRG(tex0.ba), decodeFloatRG(tex1.rg));\n\tinPos = (inPos - vec3(0.5)) * inBoundsSize + inBoundsCenter;\n\tinVel = tex2.xyz;\n\tinVel = (inVel - vec3(0.5)) * maxVel;\n\tinAngle = decodeFloatRG(tex1.ba) * PI2;\n\tinShow = tex2.a > 0.5;\n\tinLife = decodeFloatRGBA(tex3);\n\tfloat maxNegLife = max(lifetime, (numParticles - 1.0) * (rate+rateDiv));\n\tfloat maxPosLife = lifetime+1.0;\n\tinLife = inLife * (maxNegLife + maxPosLife) - maxNegLife;\n}\n",particleOutputFloatPS:"void writeOutput() {\n\tif (gl_FragCoord.y<1.0) {\n\t\tgl_FragColor = vec4(outPos, (outAngle + 1000.0) * visMode);\n\t} else {\n\t\tgl_FragColor = vec4(outVel, outLife);\n\t}\n}\n",particleOutputRgba8PS:"uniform vec3 outBoundsMul;\nuniform vec3 outBoundsAdd;\nvec2 encodeFloatRG( float v ) {\n\tvec2 enc = vec2(1.0, 255.0) * v;\n\tenc = fract(enc);\n\tenc -= enc.yy * vec2(1.0/255.0, 1.0/255.0);\n\treturn enc;\n}\nvec4 encodeFloatRGBA( float v ) {\n\tvec4 enc = vec4(1.0, 255.0, 65025.0, 160581375.0) * v;\n\tenc = fract(enc);\n\tenc -= enc.yzww * vec4(1.0/255.0,1.0/255.0,1.0/255.0,0.0);\n\treturn enc;\n}\nvoid writeOutput() {\n\toutPos = outPos * outBoundsMul + outBoundsAdd;\n\toutAngle = fract(outAngle / PI2);\n\toutVel = (outVel / maxVel) + vec3(0.5);\n\tfloat maxNegLife = max(lifetime, (numParticles - 1.0) * (rate+rateDiv));\n\tfloat maxPosLife = lifetime+1.0;\n\toutLife = (outLife + maxNegLife) / (maxNegLife + maxPosLife);\n\tif (gl_FragCoord.y < 1.0) {\n\t\tgl_FragColor = vec4(encodeFloatRG(outPos.x), encodeFloatRG(outPos.y));\n\t} else if (gl_FragCoord.y < 2.0) {\n\t\tgl_FragColor = vec4(encodeFloatRG(outPos.z), encodeFloatRG(outAngle));\n\t} else if (gl_FragCoord.y < 3.0) {\n\t\tgl_FragColor = vec4(outVel, visMode*0.5+0.5);\n\t} else {\n\t\tgl_FragColor = encodeFloatRGBA(outLife);\n\t}\n}\n",particleUpdaterAABBPS:"uniform mat3 spawnBounds;\nuniform vec3 spawnPosInnerRatio;\nvec3 calcSpawnPosition(vec3 inBounds, float rndFactor) {\n\tvec3 pos = inBounds - vec3(0.5);\n\tvec3 posAbs = abs(pos);\n\tvec3 maxPos = vec3(max(posAbs.x, max(posAbs.y, posAbs.z)));\n\tvec3 edge = maxPos + (vec3(0.5) - maxPos) * spawnPosInnerRatio;\n\tpos.x = edge.x * (maxPos.x == posAbs.x ? sign(pos.x) : 2.0 * pos.x);\n\tpos.y = edge.y * (maxPos.y == posAbs.y ? sign(pos.y) : 2.0 * pos.y);\n\tpos.z = edge.z * (maxPos.z == posAbs.z ? sign(pos.z) : 2.0 * pos.z);\n#ifndef LOCAL_SPACE\n\treturn emitterPos + spawnBounds * pos;\n#else\n\treturn spawnBounds * pos;\n#endif\n}\nvoid addInitialVelocity(inout vec3 localVelocity, vec3 inBounds) {\n\tlocalVelocity -= vec3(0, 0, initialVelocity);\n}\n",particleUpdaterEndPS:"\twriteOutput();\n}\n",particleUpdaterInitPS:"varying vec2 vUv0;\nuniform highp sampler2D particleTexIN;\nuniform highp sampler2D internalTex0;\nuniform highp sampler2D internalTex1;\nuniform highp sampler2D internalTex2;\nuniform highp sampler2D internalTex3;\nuniform mat3 emitterMatrix, emitterMatrixInv;\nuniform vec3 emitterScale;\nuniform vec3 emitterPos, frameRandom, localVelocityDivMult, velocityDivMult;\nuniform float delta, rate, rateDiv, lifetime, numParticles, rotSpeedDivMult, radialSpeedDivMult, seed;\nuniform float startAngle, startAngle2;\nuniform float initialVelocity;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\nvec3 inPos;\nvec3 inVel;\nfloat inAngle;\nbool inShow;\nfloat inLife;\nfloat visMode;\nvec3 outPos;\nvec3 outVel;\nfloat outAngle;\nbool outShow;\nfloat outLife;\n",particleUpdaterNoRespawnPS:"\tif (outLife >= lifetime) {\n\t\toutLife -= max(lifetime, (numParticles - 1.0) * particleRate);\n\t\tvisMode = -1.0;\n\t}\n",particleUpdaterOnStopPS:"\tvisMode = outLife < 0.0? -1.0: visMode;\n",particleUpdaterRespawnPS:"\tif (outLife >= lifetime) {\n\t\toutLife -= max(lifetime, (numParticles - 1.0) * particleRate);\n\t\tvisMode = 1.0;\n\t}\n\tvisMode = outLife < 0.0? 1.0: visMode;\n",particleUpdaterSpherePS:"uniform float spawnBoundsSphere;\nuniform float spawnBoundsSphereInnerRatio;\nvec3 calcSpawnPosition(vec3 inBounds, float rndFactor) {\n\tfloat rnd4 = fract(rndFactor * 1000.0);\n\tvec3 norm = normalize(inBounds.xyz - vec3(0.5));\n\tfloat r = rnd4 * (1.0 - spawnBoundsSphereInnerRatio) + spawnBoundsSphereInnerRatio;\n#ifndef LOCAL_SPACE\n\treturn emitterPos + norm * r * spawnBoundsSphere;\n#else\n\treturn norm * r * spawnBoundsSphere;\n#endif\n}\nvoid addInitialVelocity(inout vec3 localVelocity, vec3 inBounds) {\n\tlocalVelocity += normalize(inBounds - vec3(0.5)) * initialVelocity;\n}\n",particleUpdaterStartPS:"float saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec3 unpack3NFloats(float src) {\n\tfloat r = fract(src);\n\tfloat g = fract(src * 256.0);\n\tfloat b = fract(src * 65536.0);\n\treturn vec3(r, g, b);\n}\nvec3 tex1Dlod_lerp(highp sampler2D tex, vec2 tc, out vec3 w) {\n\tvec4 a = texture2D(tex, tc);\n\tvec4 b = texture2D(tex, tc + graphSampleSize);\n\tfloat c = fract(tc.x * graphNumSamples);\n\tvec3 unpackedA = unpack3NFloats(a.w);\n\tvec3 unpackedB = unpack3NFloats(b.w);\n\tw = mix(unpackedA, unpackedB, c);\n\treturn mix(a.xyz, b.xyz, c);\n}\n#define HASHSCALE4 vec4(1031, .1030, .0973, .1099)\nvec4 hash41(float p) {\n\tvec4 p4 = fract(vec4(p) * HASHSCALE4);\n\tp4 += dot(p4, p4.wzxy+19.19);\n\treturn fract(vec4((p4.x + p4.y)*p4.z, (p4.x + p4.z)*p4.y, (p4.y + p4.z)*p4.w, (p4.z + p4.w)*p4.x));\n}\nvoid main(void) {\n\tif (gl_FragCoord.x > numParticles) discard;\n\treadInput(vUv0.x);\n\tvisMode = inShow? 1.0 : -1.0;\n\tvec4 rndFactor = hash41(gl_FragCoord.x + seed);\n\tfloat particleRate = rate + rateDiv * rndFactor.x;\n\toutLife = inLife + delta;\n\tfloat nlife = clamp(outLife / lifetime, 0.0, 1.0);\n\tvec3 localVelocityDiv;\n\tvec3 velocityDiv;\n\tvec3 paramDiv;\n\tvec3 localVelocity = tex1Dlod_lerp(internalTex0, vec2(nlife, 0), localVelocityDiv);\n\tvec3 velocity =\t\ttex1Dlod_lerp(internalTex1, vec2(nlife, 0), velocityDiv);\n\tvec3 params =\t\ttex1Dlod_lerp(internalTex2, vec2(nlife, 0), paramDiv);\n\tfloat rotSpeed = params.x;\n\tfloat rotSpeedDiv = paramDiv.y;\n\tvec3 radialParams = tex1Dlod_lerp(internalTex3, vec2(nlife, 0), paramDiv);\n\tfloat radialSpeed = radialParams.x;\n\tfloat radialSpeedDiv = radialParams.y;\n\tbool respawn = inLife <= 0.0 || outLife >= lifetime;\n\tinPos = respawn ? calcSpawnPosition(rndFactor.xyz, rndFactor.x) : inPos;\n\tinAngle = respawn ? mix(startAngle, startAngle2, rndFactor.x) : inAngle;\n#ifndef LOCAL_SPACE\n\tvec3 radialVel = inPos - emitterPos;\n#else\n\tvec3 radialVel = inPos;\n#endif\n\tradialVel = (dot(radialVel, radialVel) > 1.0E-8) ? radialSpeed * normalize(radialVel) : vec3(0.0);\n\tradialVel += (radialSpeedDiv * vec3(2.0) - vec3(1.0)) * radialSpeedDivMult * rndFactor.xyz;\n\tlocalVelocity +=\t(localVelocityDiv * vec3(2.0) - vec3(1.0)) * localVelocityDivMult * rndFactor.xyz;\n\tvelocity +=\t\t (velocityDiv * vec3(2.0) - vec3(1.0)) * velocityDivMult * rndFactor.xyz;\n\trotSpeed +=\t\t (rotSpeedDiv * 2.0 - 1.0) * rotSpeedDivMult * rndFactor.y;\n\taddInitialVelocity(localVelocity, rndFactor.xyz);\n#ifndef LOCAL_SPACE\n\toutVel = emitterMatrix * localVelocity + (radialVel + velocity) * emitterScale;\n#else\n\toutVel = (localVelocity + radialVel) / emitterScale + emitterMatrixInv * velocity;\n#endif\n\toutPos = inPos + outVel * delta;\n\toutAngle = inAngle + rotSpeed * delta;\n",particle_billboardVS:"\tquadXY = rotate(quadXY, inAngle, rotMatrix);\n\tvec3 localPos = billboard(particlePos, quadXY);\n",particle_blendAddPS:"\tdBlendModeFogFactor = 0.0;\n\trgb *= saturate(gammaCorrectInput(max(a, 0.0)));\n\tif ((rgb.r + rgb.g + rgb.b) < 0.000001) discard;\n",particle_blendMultiplyPS:"\trgb = mix(vec3(1.0), rgb, vec3(a));\n\tif (rgb.r + rgb.g + rgb.b > 2.99) discard;\n",particle_blendNormalPS:"\tif (a < 0.01) discard;\n",particle_cpuVS:"attribute vec4 particle_vertexData;\nattribute vec4 particle_vertexData2;\nattribute vec4 particle_vertexData3;\nattribute float particle_vertexData4;\n#ifndef USE_MESH\n#define VDATA5TYPE vec2\n#else\n#define VDATA5TYPE vec4\n#endif\nattribute VDATA5TYPE particle_vertexData5;\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nuniform mat3 matrix_normal;\nuniform mat4 matrix_viewInverse;\nuniform float numParticles;\nuniform float lifetime;\nuniform float stretch;\nuniform float seed;\nuniform vec3 wrapBounds, emitterScale, faceTangent, faceBinorm;\nuniform sampler2D texLifeAndSourcePosOUT;\nuniform highp sampler2D internalTex0;\nuniform highp sampler2D internalTex1;\nuniform highp sampler2D internalTex2;\nuniform vec3 emitterPos;\nvarying vec4 texCoordsAlphaLife;\nvec2 rotate(vec2 quadXY, float pRotation, out mat2 rotMatrix)\n{\n\tfloat c = cos(pRotation);\n\tfloat s = sin(pRotation);\n\tmat2 m = mat2(c, -s, s, c);\n\trotMatrix = m;\n\treturn m * quadXY;\n}\nvec3 billboard(vec3 InstanceCoords, vec2 quadXY)\n{\n\tvec3 pos = -matrix_viewInverse[0].xyz * quadXY.x + -matrix_viewInverse[1].xyz * quadXY.y;\n\treturn pos;\n}\nvec3 customFace(vec3 InstanceCoords, vec2 quadXY)\n{\n\tvec3 pos = faceTangent * quadXY.x + faceBinorm * quadXY.y;\n\treturn pos;\n}\nvoid main(void)\n{\n\tvec3 particlePos = particle_vertexData.xyz;\n\tvec3 inPos = particlePos;\n\tvec3 vertPos = particle_vertexData3.xyz;\n\tvec3 inVel = vec3(particle_vertexData2.w, particle_vertexData3.w, particle_vertexData5.x);\n\tfloat id = floor(particle_vertexData4);\n\tfloat rndFactor = fract(sin(id + 1.0 + seed));\n\tvec3 rndFactor3 = vec3(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n#ifdef LOCAL_SPACE\n\tinVel = mat3(matrix_model) * inVel;\n#endif\n\tvec2 velocityV = normalize((mat3(matrix_view) * inVel).xy);\n\tvec2 quadXY = vertPos.xy;\n#ifdef USE_MESH\n\ttexCoordsAlphaLife = vec4(particle_vertexData5.zw, particle_vertexData2.z, particle_vertexData.w);\n#else\n\ttexCoordsAlphaLife = vec4(quadXY * -0.5 + 0.5, particle_vertexData2.z, particle_vertexData.w);\n#endif\n\tmat2 rotMatrix;\n\tfloat inAngle = particle_vertexData2.x;\n\tvec3 particlePosMoved = vec3(0.0);\n\tvec3 meshLocalPos = particle_vertexData3.xyz;\n",particle_cpu_endVS:"\tlocalPos *= particle_vertexData2.y * emitterScale;\n\tlocalPos += particlePos;\n\tgl_Position = matrix_viewProjection * vec4(localPos, 1.0);\n",particle_customFaceVS:"\tquadXY = rotate(quadXY, inAngle, rotMatrix);\n\tvec3 localPos = customFace(particlePos, quadXY);\n",particle_endPS:"\trgb = addFog(rgb);\n\trgb = toneMap(rgb);\n\trgb = gammaCorrectOutput(rgb);\n\tgl_FragColor = vec4(rgb, a);\n}\n",particle_endVS:"\tlocalPos *= scale * emitterScale;\n\tlocalPos += particlePos;\n\t#ifdef SCREEN_SPACE\n\tgl_Position = vec4(localPos.x, localPos.y, 0.0, 1.0);\n\t#else\n\tgl_Position = matrix_viewProjection * vec4(localPos.xyz, 1.0);\n\t#endif\n",particle_halflambertPS:"\tvec3 negNormal = normal*0.5+0.5;\n\tvec3 posNormal = -normal*0.5+0.5;\n\tnegNormal *= negNormal;\n\tposNormal *= posNormal;\n",particle_initVS:"attribute vec4 particle_vertexData;\n#ifdef USE_MESH\nattribute vec2 particle_uv;\n#endif\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\nuniform mat3 matrix_normal;\nuniform mat4 matrix_viewInverse;\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nuniform float numParticles, numParticlesPot;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\nuniform float stretch;\nuniform vec3 wrapBounds;\nuniform vec3 emitterScale, emitterPos, faceTangent, faceBinorm;\nuniform float rate, rateDiv, lifetime, deltaRandomnessStatic, scaleDivMult, alphaDivMult, seed, delta;\nuniform sampler2D particleTexOUT, particleTexIN;\nuniform highp sampler2D internalTex0;\nuniform highp sampler2D internalTex1;\nuniform highp sampler2D internalTex2;\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params;\n#endif\nvarying vec4 texCoordsAlphaLife;\nvec3 inPos;\nvec3 inVel;\nfloat inAngle;\nbool inShow;\nfloat inLife;\n",particle_lambertPS:"\tvec3 negNormal = max(normal, vec3(0.0));\n\tvec3 posNormal = max(-normal, vec3(0.0));\n",particle_lightingPS:"\tvec3 light = negNormal.x*lightCube[0] + posNormal.x*lightCube[1] +\n\t\t\t\t\t\tnegNormal.y*lightCube[2] + posNormal.y*lightCube[3] +\n\t\t\t\t\t\tnegNormal.z*lightCube[4] + posNormal.z*lightCube[5];\n\trgb *= light;\n",particle_localShiftVS:"\tparticlePos = (matrix_model * vec4(particlePos, 1.0)).xyz;\n",particle_meshVS:"\tvec3 localPos = meshLocalPos;\n\tlocalPos.xy = rotate(localPos.xy, inAngle, rotMatrix);\n\tlocalPos.yz = rotate(localPos.yz, inAngle, rotMatrix);\n\tbillboard(particlePos, quadXY);\n",particle_normalVS:"\tNormal = normalize(localPos + matrix_viewInverse[2].xyz);\n",particle_normalMapPS:"\tvec3 normalMap = normalize(texture2D(normalMap, vec2(texCoordsAlphaLife.x, 1.0 - texCoordsAlphaLife.y)).xyz * 2.0 - 1.0);\n\tvec3 normal = ParticleMat * normalMap;\n",particle_pointAlongVS:"\tinAngle = atan(velocityV.x, velocityV.y);\n",particle_softPS:"\tfloat depth = getLinearScreenDepth();\n\tfloat particleDepth = vDepth;\n\tfloat depthDiff = saturate(abs(particleDepth - depth) * softening);\n\ta *= depthDiff;\n",particle_softVS:"\tvDepth = getLinearDepth(localPos);\n",particle_stretchVS:"\tvec3 moveDir = inVel * stretch;\n\tvec3 posPrev = particlePos - moveDir;\n\tposPrev += particlePosMoved;\n\tvec2 centerToVertexV = normalize((mat3(matrix_view) * localPos).xy);\n\tfloat interpolation = dot(-velocityV, centerToVertexV) * 0.5 + 0.5;\n\tparticlePos = mix(particlePos, posPrev, interpolation);\n",particle_TBNVS:"\tmat3 rot3 = mat3(rotMatrix[0][0], rotMatrix[0][1], 0.0, rotMatrix[1][0], rotMatrix[1][1], 0.0, 0.0, 0.0, 1.0);\n\tParticleMat = mat3(-matrix_viewInverse[0].xyz, -matrix_viewInverse[1].xyz, matrix_viewInverse[2].xyz) * rot3;\n",particle_wrapVS:"\tvec3 origParticlePos = particlePos;\n\tparticlePos -= matrix_model[3].xyz;\n\tparticlePos = mod(particlePos, wrapBounds) - wrapBounds * 0.5;\n\tparticlePos += matrix_model[3].xyz;\n\tparticlePosMoved = particlePos - origParticlePos;\n",precisionTestPS:"void main(void) {\n\tgl_FragColor = vec4(2147483648.0);\n}\n",precisionTest2PS:"uniform sampler2D source;\nvec4 packFloat(float depth) {\n\tconst vec4 bit_shift = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n\tconst vec4 bit_mask\t= vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n\tvec4 res = mod(depth * bit_shift * vec4(255), vec4(256) ) / vec4(255);\n\tres -= res.xxyz * bit_mask;\n\treturn res;\n}\nvoid main(void) {\n\tfloat c = texture2D(source, vec2(0.0)).r;\n\tfloat diff = abs(c - 2147483648.0) / 2147483648.0;\n\tgl_FragColor = packFloat(diff);\n}\n",reflDirPS:"void getReflDir() {\n\tdReflDirW = normalize(-reflect(dViewDirW, dNormalW));\n}\n",reflDirAnisoPS:"void getReflDir() {\n\tfloat roughness = sqrt(1.0 - min(dGlossiness, 1.0));\n\tfloat anisotropy = material_anisotropy * roughness;\n\tvec3 anisotropicDirection = anisotropy >= 0.0 ? dTBN[1] : dTBN[0];\n\tvec3 anisotropicTangent = cross(anisotropicDirection, dViewDirW);\n\tvec3 anisotropicNormal = cross(anisotropicTangent, anisotropicDirection);\n\tvec3 bentNormal = normalize(mix(normalize(dNormalW), normalize(anisotropicNormal), anisotropy));\n\tdReflDirW = reflect(-dViewDirW, bentNormal);\n}\n",reflectionCCPS:"#ifdef CLEARCOAT\nuniform float material_clearCoatReflectivity;\nvoid addReflectionCC() {\n\tccReflection += vec4(calcReflection(ccReflDirW, ccGlossiness), material_clearCoatReflectivity);\n}\n#endif\n",reflectionCubePS:"uniform samplerCube texture_cubeMap;\nuniform float material_reflectivity;\nvec3 calcReflection(vec3 tReflDirW, float tGlossiness) {\n\tvec3 lookupVec = fixSeams(cubeMapProject(tReflDirW));\n\tlookupVec.x *= -1.0;\n\treturn $DECODE(textureCube(texture_cubeMap, lookupVec));\n}\nvoid addReflection() {\n\tdReflection += vec4(calcReflection(dReflDirW, dGlossiness), material_reflectivity);\n}\n",reflectionEnvPS:"#ifndef ENV_ATLAS\n#define ENV_ATLAS\nuniform sampler2D texture_envAtlas;\n#endif\nuniform float material_reflectivity;\nfloat shinyMipLevel(vec2 uv) {\n\tvec2 dx = dFdx(uv);\n\tvec2 dy = dFdy(uv);\n\tvec2 uv2 = vec2(fract(uv.x + 0.5), uv.y);\n\tvec2 dx2 = dFdx(uv2);\n\tvec2 dy2 = dFdy(uv2);\n\tfloat maxd = min(max(dot(dx, dx), dot(dy, dy)), max(dot(dx2, dx2), dot(dy2, dy2)));\n\treturn clamp(0.5 * log2(maxd) - 1.0 + textureBias, 0.0, 5.0);\n}\nvec3 calcReflection(vec3 tReflDirW, float tGlossiness) {\n\tvec3 dir = cubeMapProject(tReflDirW) * vec3(-1.0, 1.0, 1.0);\n\tvec2 uv = toSphericalUv(dir);\n\tfloat level = saturate(1.0 - tGlossiness) * 5.0;\n\tfloat ilevel = floor(level);\n\tfloat level2 = shinyMipLevel(uv * atlasSize);\n\tfloat ilevel2 = floor(level2);\n\tvec2 uv0, uv1;\n\tfloat weight;\n\tif (ilevel == 0.0) {\n\t\tuv0 = mapMip(uv, ilevel2);\n\t\tuv1 = mapMip(uv, ilevel2 + 1.0);\n\t\tweight = level2 - ilevel2;\n\t} else {\n\t\tuv0 = uv1 = mapRoughnessUv(uv, ilevel);\n\t\tweight = 0.0;\n\t}\n\tvec3 linearA = $DECODE(texture2D(texture_envAtlas, uv0));\n\tvec3 linearB = $DECODE(texture2D(texture_envAtlas, uv1));\n\tvec3 linear0 = mix(linearA, linearB, weight);\n\tvec3 linear1 = $DECODE(texture2D(texture_envAtlas, mapRoughnessUv(uv, ilevel + 1.0)));\n\treturn processEnvironment(mix(linear0, linear1, level - ilevel));\n}\nvoid addReflection() {\n\tdReflection += vec4(calcReflection(dReflDirW, dGlossiness), material_reflectivity);\n}\n",reflectionSpherePS:"#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nuniform sampler2D texture_sphereMap;\nuniform float material_reflectivity;\nvec3 calcReflection(vec3 tReflDirW, float tGlossiness) {\n\tvec3 reflDirV = (mat3(matrix_view) * tReflDirW).xyz;\n\tfloat m = 2.0 * sqrt( dot(reflDirV.xy, reflDirV.xy) + (reflDirV.z+1.0)*(reflDirV.z+1.0) );\n\tvec2 sphereMapUv = reflDirV.xy / m + 0.5;\n\treturn $DECODE(texture2D(texture_sphereMap, sphereMapUv));\n}\nvoid addReflection() {\n\tdReflection += vec4(calcReflection(dReflDirW, dGlossiness), material_reflectivity);\n}\n",reflectionSphereLowPS:"uniform sampler2D texture_sphereMap;\nuniform float material_reflectivity;\nvec3 calcReflection(vec3 tReflDirW, float tGlossiness) {\n\tvec3 reflDirV = vNormalV;\n\tvec2 sphereMapUv = reflDirV.xy * 0.5 + 0.5;\n\treturn $DECODE(texture2D(texture_sphereMap, sphereMapUv));\n}\nvoid addReflection() {\n\tdReflection += vec4(calcReflection(dReflDirW, dGlossiness), material_reflectivity);\n}\n",refractionPS:"uniform float material_refraction, material_refractionIndex;\nvec3 refract2(vec3 viewVec, vec3 Normal, float IOR) {\n\tfloat vn = dot(viewVec, Normal);\n\tfloat k = 1.0 - IOR * IOR * (1.0 - vn * vn);\n\tvec3 refrVec = IOR * viewVec - (IOR * vn + sqrt(k)) * Normal;\n\treturn refrVec;\n}\nvoid addRefraction() {\n\tvec3 tmp = dReflDirW;\n\tvec4 tmp2 = dReflection;\n\tdReflection = vec4(0.0);\n\tdReflDirW = refract2(-dViewDirW, dNormalW, material_refractionIndex);\n\taddReflection();\n\tdDiffuseLight = mix(dDiffuseLight, dReflection.rgb * dAlbedo, material_refraction);\n\tdReflDirW = tmp;\n\tdReflection = tmp2;\n}\n",reprojectPS:"varying vec2 vUv0;\nuniform sampler2D sourceTex;\nuniform samplerCube sourceCube;\nuniform sampler2D samplesTex;\nuniform vec2 samplesTexInverseSize;\nuniform vec4 params;\nuniform vec2 params2;\nfloat targetFace() { return params.x; }\nfloat specularPower() { return params.y; }\nfloat sourceCubeSeamScale() { return params.z; }\nfloat targetCubeSeamScale() { return params.w; }\nfloat targetTotalPixels() { return params2.x; }\nfloat sourceTotalPixels() { return params2.y; }\nfloat PI = 3.141592653589793;\nfloat saturate(float x) {\n\treturn clamp(x, 0.0, 1.0);\n}\nvec3 decodeLinear(vec4 source) {\n\treturn source.rgb;\n}\nvec4 encodeLinear(vec3 source) {\n\treturn vec4(source, 1.0);\n}\nvec3 decodeGamma(vec4 source) {\n\treturn pow(source.xyz, vec3(2.2));\n}\nvec4 encodeGamma(vec3 source) {\n\treturn vec4(pow(source + 0.0000001, vec3(1.0 / 2.2)), 1.0);\n}\nvec3 decodeRGBM(vec4 rgbm) {\n\tvec3 color = (8.0 * rgbm.a) * rgbm.rgb;\n\treturn color * color;\n}\nvec4 encodeRGBM(vec3 source) {\n\tvec4 result;\n\tresult.rgb = pow(source.rgb, vec3(0.5));\n\tresult.rgb *= 1.0 / 8.0;\n\tresult.a = saturate( max( max( result.r, result.g ), max( result.b, 1.0 / 255.0 ) ) );\n\tresult.a = ceil(result.a * 255.0) / 255.0;\n\tresult.rgb /= result.a;\n\treturn result;\n}\nvec3 decodeRGBE(vec4 source) {\n\tif (source.a == 0.0) {\n\t\treturn vec3(0.0, 0.0, 0.0);\n\t} else {\n\t\treturn source.xyz * pow(2.0, source.w * 255.0 - 128.0);\n\t}\n}\nvec4 encodeRGBE(vec3 source) {\n\tfloat maxVal = max(source.x, max(source.y, source.z));\n\tif (maxVal < 1e-32) {\n\t\treturn vec4(0, 0, 0, 0);\n\t} else {\n\t\tfloat e = ceil(log2(maxVal));\n\t\treturn vec4(source / pow(2.0, e), (e + 128.0) / 255.0);\n\t}\n}\nvec3 modifySeams(vec3 dir, float scale) {\n\tvec3 adir = abs(dir);\n\tfloat M = max(max(adir.x, adir.y), adir.z);\n\treturn dir / M * vec3(\n\t\tadir.x == M ? 1.0 : scale,\n\t\tadir.y == M ? 1.0 : scale,\n\t\tadir.z == M ? 1.0 : scale\n\t);\n}\nvec2 toSpherical(vec3 dir) {\n\treturn vec2(dir.xz == vec2(0.0) ? 0.0 : atan(dir.x, dir.z), asin(dir.y));\n}\nvec3 fromSpherical(vec2 uv) {\n\treturn vec3(cos(uv.y) * sin(uv.x),\n\t\t\t\tsin(uv.y),\n\t\t\t\tcos(uv.y) * cos(uv.x));\n}\nvec3 getDirectionEquirect() {\n\treturn fromSpherical((vec2(vUv0.x, 1.0 - vUv0.y) * 2.0 - 1.0) * vec2(PI, PI * 0.5));\n}\nvec4 sampleEquirect(vec2 sph) {\n\tvec2 uv = sph / vec2(PI * 2.0, PI) + 0.5;\n\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n}\nvec4 sampleEquirect(vec3 dir) {\n\treturn sampleEquirect(toSpherical(dir));\n}\nvec4 sampleCubemap(vec3 dir) {\n\treturn textureCube(sourceCube, modifySeams(dir, 1.0 - sourceCubeSeamScale()));\n}\nvec4 sampleCubemap(vec2 sph) {\n\treturn sampleCubemap(fromSpherical(sph));\n}\nvec4 sampleEquirect(vec2 sph, float mipLevel) {\n\tvec2 uv = sph / vec2(PI * 2.0, PI) + 0.5;\n#ifdef SUPPORTS_TEXLOD\n\treturn texture2DLodEXT(sourceTex, vec2(uv.x, 1.0 - uv.y), mipLevel);\n#else\n\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n#endif\n}\nvec4 sampleEquirect(vec3 dir, float mipLevel) {\n\treturn sampleEquirect(toSpherical(dir), mipLevel);\n}\nvec4 sampleCubemap(vec3 dir, float mipLevel) {\n#ifdef SUPPORTS_TEXLOD\n\treturn textureCubeLodEXT(sourceCube, modifySeams(dir, 1.0 - exp2(mipLevel) * sourceCubeSeamScale()), mipLevel);\n#else\n\treturn textureCube(sourceCube, modifySeams(dir, 1.0 - exp2(mipLevel) * sourceCubeSeamScale()));\n#endif\n}\nvec4 sampleCubemap(vec2 sph, float mipLevel) {\n\treturn sampleCubemap(fromSpherical(sph), mipLevel);\n}\nfloat signNotZero(float k){\n\treturn(k >= 0.0) ? 1.0 : -1.0;\n}\nvec2 signNotZero(vec2 v) {\n\treturn vec2(signNotZero(v.x), signNotZero(v.y));\n}\nvec3 octDecode(vec2 o) {\n\tvec3 v = vec3(o.x, 1.0 - abs(o.x) - abs(o.y), o.y);\n\tif (v.y < 0.0) {\n\t\tv.xz = (1.0 - abs(v.zx)) * signNotZero(v.xz);\n\t}\n\treturn normalize(v);\n}\nvec3 getDirectionOctahedral() {\n\treturn octDecode(vec2(vUv0.x, 1.0 - vUv0.y) * 2.0 - 1.0);\n}\nvec2 octEncode(in vec3 v) {\n\tfloat l1norm = abs(v.x) + abs(v.y) + abs(v.z);\n\tvec2 result = v.xz * (1.0 / l1norm);\n\tif (v.y < 0.0) {\n\t\tresult = (1.0 - abs(result.yx)) * signNotZero(result.xy);\n\t}\n\treturn result;\n}\nvec4 sampleOctahedral(vec3 dir) {\n\tvec2 uv = octEncode(dir) * 0.5 + 0.5;\n\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n}\nvec4 sampleOctahedral(vec2 sph) {\n\treturn sampleOctahedral(fromSpherical(sph));\n}\nvec4 sampleOctahedral(vec3 dir, float mipLevel) {\n\tvec2 uv = octEncode(dir) * 0.5 + 0.5;\n#ifdef SUPPORTS_TEXLOD\n\treturn texture2DLodEXT(sourceTex, vec2(uv.x, 1.0 - uv.y), mipLevel);\n#else\n\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n#endif\n}\nvec4 sampleOctahedral(vec2 sph, float mipLevel) {\n\treturn sampleOctahedral(fromSpherical(sph), mipLevel);\n}\nvec3 getDirectionCubemap() {\n\tvec2 st = vUv0 * 2.0 - 1.0;\n\tfloat face = targetFace();\n\tvec3 vec;\n\tif (face == 0.0) {\n\t\tvec = vec3(1, -st.y, -st.x);\n\t} else if (face == 1.0) {\n\t\tvec = vec3(-1, -st.y, st.x);\n\t} else if (face == 2.0) {\n\t\tvec = vec3(st.x, 1, st.y);\n\t} else if (face == 3.0) {\n\t\tvec = vec3(st.x, -1, -st.y);\n\t} else if (face == 4.0) {\n\t\tvec = vec3(st.x, -st.y, 1);\n\t} else {\n\t\tvec = vec3(-st.x, -st.y, -1);\n\t}\n\treturn normalize(modifySeams(vec, 1.0 / (1.0 - targetCubeSeamScale())));\n}\nmat3 matrixFromVector(vec3 n) {\n\tfloat a = 1.0 / (1.0 + n.z);\n\tfloat b = -n.x * n.y * a;\n\tvec3 b1 = vec3(1.0 - n.x * n.x * a, b, -n.x);\n\tvec3 b2 = vec3(b, 1.0 - n.y * n.y * a, -n.y);\n\treturn mat3(b1, b2, n);\n}\nmat3 matrixFromVectorSlow(vec3 n) {\n\tvec3 up = (1.0 - abs(n.y) <= 0.0000001) ? vec3(0.0, 0.0, n.y > 0.0 ? 1.0 : -1.0) : vec3(0.0, 1.0, 0.0);\n\tvec3 x = normalize(cross(up, n));\n\tvec3 y = cross(n, x);\n\treturn mat3(x, y, n);\n}\nvec4 reproject() {\n\tif (NUM_SAMPLES <= 1) {\n\t\treturn ENCODE_FUNC(DECODE_FUNC(SOURCE_FUNC(TARGET_FUNC())));\n\t} else {\n\t\tvec2 sph = toSpherical(TARGET_FUNC());\n\t\tvec2 sphu = dFdx(sph);\n\t\tvec2 sphv = dFdy(sph);\n\t\tconst float NUM_SAMPLES_SQRT = sqrt(float(NUM_SAMPLES));\n\t\tvec3 result = vec3(0.0);\n\t\tfor (float u = 0.0; u < NUM_SAMPLES_SQRT; ++u) {\n\t\t\tfor (float v = 0.0; v < NUM_SAMPLES_SQRT; ++v) {\n\t\t\t\tresult += DECODE_FUNC(SOURCE_FUNC(sph +\n\t\t\t\t\t\t\t\t\t\t\t\t\tsphu * (u / NUM_SAMPLES_SQRT - 0.5) +\n\t\t\t\t\t\t\t\t\t\t\t\t\tsphv * (v / NUM_SAMPLES_SQRT - 0.5)));\n\t\t\t}\n\t\t}\n\t\treturn ENCODE_FUNC(result / (NUM_SAMPLES_SQRT * NUM_SAMPLES_SQRT));\n\t}\n}\nvec4 unpackFloat = vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0);\nvoid unpackSample(int i, out vec3 L, out float mipLevel) {\n\tfloat u = (float(i * 4) + 0.5) * samplesTexInverseSize.x;\n\tfloat v = (floor(u) + 0.5) * samplesTexInverseSize.y;\n\tvec4 raw;\n\traw.x = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\traw.y = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\traw.z = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\traw.w = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat);\n\tL.xyz = raw.xyz * 2.0 - 1.0;\n\tmipLevel = raw.w * 8.0;\n}\nvec4 prefilterSamples() {\n\tmat3 vecSpace = matrixFromVectorSlow(TARGET_FUNC());\n\tvec3 L;\n\tfloat mipLevel;\n\tvec3 result = vec3(0.0);\n\tfloat totalWeight = 0.0;\n\tfor (int i = 0; i < NUM_SAMPLES; ++i) {\n\t\tunpackSample(i, L, mipLevel);\n\t\tresult += DECODE_FUNC(SOURCE_FUNC(vecSpace * L, mipLevel)) * L.z;\n\t\ttotalWeight += L.z;\n\t}\n\treturn ENCODE_FUNC(result / totalWeight);\n}\nvec4 prefilterSamplesUnweighted() {\n\tmat3 vecSpace = matrixFromVectorSlow(TARGET_FUNC());\n\tvec3 L;\n\tfloat mipLevel;\n\tvec3 result = vec3(0.0);\n\tfloat totalWeight = 0.0;\n\tfor (int i = 0; i < NUM_SAMPLES; ++i) {\n\t\tunpackSample(i, L, mipLevel);\n\t\tresult += DECODE_FUNC(SOURCE_FUNC(vecSpace * L, mipLevel));\n\t}\n\treturn ENCODE_FUNC(result / float(NUM_SAMPLES));\n}\nvoid main(void) {\n\tgl_FragColor = PROCESS_FUNC();\n}\n",rgbmPS:"vec3 texture2DRGBM(sampler2D tex, vec2 uv) {\n\treturn decodeRGBM(texture2D(tex, uv));\n}\nvec3 texture2DRGBM(sampler2D tex, vec2 uv, float bias) {\n\treturn decodeRGBM(texture2D(tex, uv, bias));\n}\nvec3 textureCubeRGBM(samplerCube tex, vec3 uvw) {\n\treturn decodeRGBM(textureCube(tex, uvw));\n}\n",screenDepthPS:"uniform highp sampler2D uDepthMap;\n#ifndef SCREENSIZE\n#define SCREENSIZE\nuniform vec4 uScreenSize;\n#endif\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params;\n#endif\n#ifdef GL2\nfloat linearizeDepth(float z) {\n\tz = z * 2.0 - 1.0;\n\treturn 1.0 / (camera_params.z * z + camera_params.w);\n}\n#else\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n\tconst vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n\treturn dot(rgbaDepth, bitShift);\n}\n#endif\n#endif\nfloat getLinearScreenDepth(vec2 uv) {\n\t#ifdef GL2\n\treturn linearizeDepth(texture2D(uDepthMap, uv).r) * camera_params.y;\n\t#else\n\treturn unpackFloat(texture2D(uDepthMap, uv)) * camera_params.y;\n\t#endif\n}\n#ifndef VERTEXSHADER\nfloat getLinearScreenDepth() {\n\tvec2 uv = gl_FragCoord.xy * uScreenSize.zw;\n\treturn getLinearScreenDepth(uv);\n}\n#endif\nfloat getLinearDepth(vec3 pos) {\n\treturn -(matrix_view * vec4(pos, 1.0)).z;\n}\n",shadowCascadesPS:"const float maxCascades = 4.0;\nmat4 cascadeShadowMat;\nvoid getShadowCascadeMatrix(mat4 shadowMatrixPalette[4], float shadowCascadeDistances[4], float shadowCascadeCount) {\n\tfloat depth = 1.0 / gl_FragCoord.w;\n\tfloat cascadeIndex = 0.0;\n\tfor (float i = 0.0; i < maxCascades; i++) {\n\t\tif (depth < shadowCascadeDistances[int(i)]) {\n\t\t\tcascadeIndex = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tcascadeIndex = min(cascadeIndex, shadowCascadeCount - 1.0);\n\t#ifdef GL2\n\t\tcascadeShadowMat = shadowMatrixPalette[int(cascadeIndex)];\n\t#else\n\t\tif (cascadeIndex == 0.0) {\n\t\t\tcascadeShadowMat = shadowMatrixPalette[0];\n\t\t}\n\t\telse if (cascadeIndex == 1.0) {\n\t\t\tcascadeShadowMat = shadowMatrixPalette[1];\n\t\t}\n\t\telse if (cascadeIndex == 2.0) {\n\t\t\tcascadeShadowMat = shadowMatrixPalette[2];\n\t\t}\n\t\telse {\n\t\t\tcascadeShadowMat = shadowMatrixPalette[3];\n\t\t}\n\t#endif\n}\nvoid fadeShadow(float shadowCascadeDistances[4]) {\n\tfloat depth = 1.0 / gl_FragCoord.w;\n\tif (depth > shadowCascadeDistances[int(maxCascades - 1.0)]) {\n\t\tdShadowCoord.z = -9999999.0;\n\t}\n}\n",shadowCommonPS:"void normalOffsetPointShadow(vec4 shadowParams) {\n\tfloat distScale = length(dLightDirW);\n\tvec3 wPos = vPositionW + dVertexNormalW * shadowParams.y * clamp(1.0 - dot(dVertexNormalW, -dLightDirNormW), 0.0, 1.0) * distScale;\n\tvec3 dir = wPos - dLightPosW;\n\tdLightDirW = dir;\n}\n",shadowCoordPS:"void _getShadowCoordOrtho(mat4 shadowMatrix, vec3 shadowParams, vec3 wPos) {\n\tdShadowCoord = (shadowMatrix * vec4(wPos, 1.0)).xyz;\n\tdShadowCoord.z = saturate(dShadowCoord.z) - 0.0001;\n\t#ifdef SHADOWBIAS\n\tdShadowCoord.z += getShadowBias(shadowParams.x, shadowParams.z);\n\t#endif\n}\nvoid _getShadowCoordPersp(mat4 shadowMatrix, vec4 shadowParams, vec3 wPos) {\n\tvec4 projPos = shadowMatrix * vec4(wPos, 1.0);\n\tprojPos.xy /= projPos.w;\n\tdShadowCoord.xy = projPos.xy;\n\tdShadowCoord.z = length(dLightDirW) * shadowParams.w;\n\t#ifdef SHADOWBIAS\n\tdShadowCoord.z += getShadowBias(shadowParams.x, shadowParams.z);\n\t#endif\n}\nvoid getShadowCoordOrtho(mat4 shadowMatrix, vec3 shadowParams) {\n\t_getShadowCoordOrtho(shadowMatrix, shadowParams, vPositionW);\n}\nvoid getShadowCoordPersp(mat4 shadowMatrix, vec4 shadowParams) {\n\t_getShadowCoordPersp(shadowMatrix, shadowParams, vPositionW);\n}\nvoid getShadowCoordPerspNormalOffset(mat4 shadowMatrix, vec4 shadowParams) {\n\tfloat distScale = abs(dot(vPositionW - dLightPosW, dLightDirNormW));\n\tvec3 wPos = vPositionW + dVertexNormalW * shadowParams.y * clamp(1.0 - dot(dVertexNormalW, -dLightDirNormW), 0.0, 1.0) * distScale;\n\t_getShadowCoordPersp(shadowMatrix, shadowParams, wPos);\n}\nvoid getShadowCoordOrthoNormalOffset(mat4 shadowMatrix, vec3 shadowParams) {\n\tvec3 wPos = vPositionW + dVertexNormalW * shadowParams.y * clamp(1.0 - dot(dVertexNormalW, -dLightDirNormW), 0.0, 1.0);\n\t_getShadowCoordOrtho(shadowMatrix, shadowParams, wPos);\n}\n",shadowCoordPerspZbufferPS:"void _getShadowCoordPerspZbuffer(mat4 shadowMatrix, vec4 shadowParams, vec3 wPos) {\n\tvec4 projPos = shadowMatrix * vec4(wPos, 1.0);\n\tprojPos.xyz /= projPos.w;\n\tdShadowCoord = projPos.xyz;\n}\nvoid getShadowCoordPerspZbufferNormalOffset(mat4 shadowMatrix, vec4 shadowParams) {\n\tfloat distScale = abs(dot(vPositionW - dLightPosW, dLightDirNormW));\n\tvec3 wPos = vPositionW + dVertexNormalW * shadowParams.y * clamp(1.0 - dot(dVertexNormalW, -dLightDirNormW), 0.0, 1.0) * distScale;\n\t_getShadowCoordPerspZbuffer(shadowMatrix, shadowParams, wPos);\n}\nvoid getShadowCoordPerspZbuffer(mat4 shadowMatrix, vec4 shadowParams) {\n\t_getShadowCoordPerspZbuffer(shadowMatrix, shadowParams, vPositionW);\n}\n",shadowEVSMPS:"float VSM$(sampler2D tex, vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n\tvec3 moments = texture2D(tex, texCoords).xyz;\n\treturn calculateEVSM(moments, Z, vsmBias, exponent);\n}\nfloat getShadowVSM$(sampler2D shadowMap, vec3 shadowParams, float exponent) {\n\treturn VSM$(shadowMap, dShadowCoord.xy, shadowParams.x, dShadowCoord.z, shadowParams.y, exponent);\n}\nfloat getShadowSpotVSM$(sampler2D shadowMap, vec4 shadowParams, float exponent) {\n\treturn VSM$(shadowMap, dShadowCoord.xy, shadowParams.x, length(dLightDirW) * shadowParams.w + shadowParams.z, shadowParams.y, exponent);\n}\n",shadowEVSMnPS:"float VSM$(sampler2D tex, vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n\tfloat pixelSize = 1.0 / resolution;\n\ttexCoords -= vec2(pixelSize);\n\tvec3 s00 = texture2D(tex, texCoords).xyz;\n\tvec3 s10 = texture2D(tex, texCoords + vec2(pixelSize, 0)).xyz;\n\tvec3 s01 = texture2D(tex, texCoords + vec2(0, pixelSize)).xyz;\n\tvec3 s11 = texture2D(tex, texCoords + vec2(pixelSize)).xyz;\n\tvec2 fr = fract(texCoords * resolution);\n\tvec3 h0 = mix(s00, s10, fr.x);\n\tvec3 h1 = mix(s01, s11, fr.x);\n\tvec3 moments = mix(h0, h1, fr.y);\n\treturn calculateEVSM(moments, Z, vsmBias, exponent);\n}\nfloat getShadowVSM$(sampler2D shadowMap, vec3 shadowParams, float exponent) {\n\treturn VSM$(shadowMap, dShadowCoord.xy, shadowParams.x, dShadowCoord.z, shadowParams.y, exponent);\n}\nfloat getShadowSpotVSM$(sampler2D shadowMap, vec4 shadowParams, float exponent) {\n\treturn VSM$(shadowMap, dShadowCoord.xy, shadowParams.x, length(dLightDirW) * shadowParams.w + shadowParams.z, shadowParams.y, exponent);\n}\n",shadowStandardPS:"vec3 lessThan2(vec3 a, vec3 b) {\n\treturn clamp((b - a)*1000.0, 0.0, 1.0);\n}\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n\tconst vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n\treturn dot(rgbaDepth, bitShift);\n}\n#endif\n#ifdef GL2\nfloat _getShadowPCF3x3(sampler2DShadow shadowMap, vec3 shadowParams) {\n\tfloat z = dShadowCoord.z;\n\tvec2 uv = dShadowCoord.xy * shadowParams.x;\n\tfloat shadowMapSizeInv = 1.0 / shadowParams.x;\n\tvec2 base_uv = floor(uv + 0.5);\n\tfloat s = (uv.x + 0.5 - base_uv.x);\n\tfloat t = (uv.y + 0.5 - base_uv.y);\n\tbase_uv -= vec2(0.5);\n\tbase_uv *= shadowMapSizeInv;\n\tfloat sum = 0.0;\n\tfloat uw0 = (3.0 - 2.0 * s);\n\tfloat uw1 = (1.0 + 2.0 * s);\n\tfloat u0 = (2.0 - s) / uw0 - 1.0;\n\tfloat u1 = s / uw1 + 1.0;\n\tfloat vw0 = (3.0 - 2.0 * t);\n\tfloat vw1 = (1.0 + 2.0 * t);\n\tfloat v0 = (2.0 - t) / vw0 - 1.0;\n\tfloat v1 = t / vw1 + 1.0;\n\tu0 = u0 * shadowMapSizeInv + base_uv.x;\n\tv0 = v0 * shadowMapSizeInv + base_uv.y;\n\tu1 = u1 * shadowMapSizeInv + base_uv.x;\n\tv1 = v1 * shadowMapSizeInv + base_uv.y;\n\tsum += uw0 * vw0 * texture(shadowMap, vec3(u0, v0, z));\n\tsum += uw1 * vw0 * texture(shadowMap, vec3(u1, v0, z));\n\tsum += uw0 * vw1 * texture(shadowMap, vec3(u0, v1, z));\n\tsum += uw1 * vw1 * texture(shadowMap, vec3(u1, v1, z));\n\tsum *= 1.0f / 16.0;\n\treturn sum;\n}\nfloat getShadowPCF3x3(sampler2DShadow shadowMap, vec3 shadowParams) {\n\treturn _getShadowPCF3x3(shadowMap, shadowParams);\n}\nfloat getShadowSpotPCF3x3(sampler2DShadow shadowMap, vec4 shadowParams) {\n\treturn _getShadowPCF3x3(shadowMap, shadowParams.xyz);\n}\n#else\nfloat _xgetShadowPCF3x3(mat3 depthKernel, sampler2D shadowMap, vec3 shadowParams) {\n\tmat3 shadowKernel;\n\tvec3 shadowCoord = dShadowCoord;\n\tvec3 shadowZ = vec3(shadowCoord.z);\n\tshadowKernel[0] = vec3(greaterThan(depthKernel[0], shadowZ));\n\tshadowKernel[1] = vec3(greaterThan(depthKernel[1], shadowZ));\n\tshadowKernel[2] = vec3(greaterThan(depthKernel[2], shadowZ));\n\tvec2 fractionalCoord = fract( shadowCoord.xy * shadowParams.x );\n\tshadowKernel[0] = mix(shadowKernel[0], shadowKernel[1], fractionalCoord.x);\n\tshadowKernel[1] = mix(shadowKernel[1], shadowKernel[2], fractionalCoord.x);\n\tvec4 shadowValues;\n\tshadowValues.x = mix(shadowKernel[0][0], shadowKernel[0][1], fractionalCoord.y);\n\tshadowValues.y = mix(shadowKernel[0][1], shadowKernel[0][2], fractionalCoord.y);\n\tshadowValues.z = mix(shadowKernel[1][0], shadowKernel[1][1], fractionalCoord.y);\n\tshadowValues.w = mix(shadowKernel[1][1], shadowKernel[1][2], fractionalCoord.y);\n\treturn dot( shadowValues, vec4( 1.0 ) ) * 0.25;\n}\nfloat _getShadowPCF3x3(sampler2D shadowMap, vec3 shadowParams) {\n\tvec3 shadowCoord = dShadowCoord;\n\tfloat xoffset = 1.0 / shadowParams.x;\n\tfloat dx0 = -xoffset;\n\tfloat dx1 = xoffset;\n\tmat3 depthKernel;\n\tdepthKernel[0][0] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx0, dx0)));\n\tdepthKernel[0][1] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx0, 0.0)));\n\tdepthKernel[0][2] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx0, dx1)));\n\tdepthKernel[1][0] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(0.0, dx0)));\n\tdepthKernel[1][1] = unpackFloat(texture2D(shadowMap, shadowCoord.xy));\n\tdepthKernel[1][2] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(0.0, dx1)));\n\tdepthKernel[2][0] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx1, dx0)));\n\tdepthKernel[2][1] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx1, 0.0)));\n\tdepthKernel[2][2] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx1, dx1)));\n\treturn _xgetShadowPCF3x3(depthKernel, shadowMap, shadowParams);\n}\nfloat getShadowPCF3x3(sampler2D shadowMap, vec3 shadowParams) {\n\treturn _getShadowPCF3x3(shadowMap, shadowParams);\n}\nfloat getShadowSpotPCF3x3(sampler2D shadowMap, vec4 shadowParams) {\n\treturn _getShadowPCF3x3(shadowMap, shadowParams.xyz);\n}\n#endif\nfloat _getShadowPoint(samplerCube shadowMap, vec4 shadowParams, vec3 dir) {\n\tvec3 tc = normalize(dir);\n\tvec3 tcAbs = abs(tc);\n\tvec4 dirX = vec4(1,0,0, tc.x);\n\tvec4 dirY = vec4(0,1,0, tc.y);\n\tfloat majorAxisLength = tc.z;\n\tif ((tcAbs.x > tcAbs.y) && (tcAbs.x > tcAbs.z)) {\n\t\tdirX = vec4(0,0,1, tc.z);\n\t\tdirY = vec4(0,1,0, tc.y);\n\t\tmajorAxisLength = tc.x;\n\t} else if ((tcAbs.y > tcAbs.x) && (tcAbs.y > tcAbs.z)) {\n\t\tdirX = vec4(1,0,0, tc.x);\n\t\tdirY = vec4(0,0,1, tc.z);\n\t\tmajorAxisLength = tc.y;\n\t}\n\tfloat shadowParamsInFaceSpace = ((1.0/shadowParams.x) * 2.0) * abs(majorAxisLength);\n\tvec3 xoffset = (dirX.xyz * shadowParamsInFaceSpace);\n\tvec3 yoffset = (dirY.xyz * shadowParamsInFaceSpace);\n\tvec3 dx0 = -xoffset;\n\tvec3 dy0 = -yoffset;\n\tvec3 dx1 = xoffset;\n\tvec3 dy1 = yoffset;\n\tmat3 shadowKernel;\n\tmat3 depthKernel;\n\tdepthKernel[0][0] = unpackFloat(textureCube(shadowMap, tc + dx0 + dy0));\n\tdepthKernel[0][1] = unpackFloat(textureCube(shadowMap, tc + dx0));\n\tdepthKernel[0][2] = unpackFloat(textureCube(shadowMap, tc + dx0 + dy1));\n\tdepthKernel[1][0] = unpackFloat(textureCube(shadowMap, tc + dy0));\n\tdepthKernel[1][1] = unpackFloat(textureCube(shadowMap, tc));\n\tdepthKernel[1][2] = unpackFloat(textureCube(shadowMap, tc + dy1));\n\tdepthKernel[2][0] = unpackFloat(textureCube(shadowMap, tc + dx1 + dy0));\n\tdepthKernel[2][1] = unpackFloat(textureCube(shadowMap, tc + dx1));\n\tdepthKernel[2][2] = unpackFloat(textureCube(shadowMap, tc + dx1 + dy1));\n\tvec3 shadowZ = vec3(length(dir) * shadowParams.w + shadowParams.z);\n\tshadowKernel[0] = vec3(lessThan2(depthKernel[0], shadowZ));\n\tshadowKernel[1] = vec3(lessThan2(depthKernel[1], shadowZ));\n\tshadowKernel[2] = vec3(lessThan2(depthKernel[2], shadowZ));\n\tvec2 uv = (vec2(dirX.w, dirY.w) / abs(majorAxisLength)) * 0.5;\n\tvec2 fractionalCoord = fract( uv * shadowParams.x );\n\tshadowKernel[0] = mix(shadowKernel[0], shadowKernel[1], fractionalCoord.x);\n\tshadowKernel[1] = mix(shadowKernel[1], shadowKernel[2], fractionalCoord.x);\n\tvec4 shadowValues;\n\tshadowValues.x = mix(shadowKernel[0][0], shadowKernel[0][1], fractionalCoord.y);\n\tshadowValues.y = mix(shadowKernel[0][1], shadowKernel[0][2], fractionalCoord.y);\n\tshadowValues.z = mix(shadowKernel[1][0], shadowKernel[1][1], fractionalCoord.y);\n\tshadowValues.w = mix(shadowKernel[1][1], shadowKernel[1][2], fractionalCoord.y);\n\treturn 1.0 - dot( shadowValues, vec4( 1.0 ) ) * 0.25;\n}\nfloat getShadowPointPCF3x3(samplerCube shadowMap, vec4 shadowParams) {\n\treturn _getShadowPoint(shadowMap, shadowParams, dLightDirW);\n}\n",shadowStandardGL2PS:"float _getShadowPCF5x5(sampler2DShadow shadowMap, vec3 shadowParams) {\n\tfloat z = dShadowCoord.z;\n\tvec2 uv = dShadowCoord.xy * shadowParams.x;\n\tfloat shadowMapSizeInv = 1.0 / shadowParams.x;\n\tvec2 base_uv = floor(uv + 0.5);\n\tfloat s = (uv.x + 0.5 - base_uv.x);\n\tfloat t = (uv.y + 0.5 - base_uv.y);\n\tbase_uv -= vec2(0.5);\n\tbase_uv *= shadowMapSizeInv;\n\tfloat uw0 = (4.0 - 3.0 * s);\n\tfloat uw1 = 7.0;\n\tfloat uw2 = (1.0 + 3.0 * s);\n\tfloat u0 = (3.0 - 2.0 * s) / uw0 - 2.0;\n\tfloat u1 = (3.0 + s) / uw1;\n\tfloat u2 = s / uw2 + 2.0;\n\tfloat vw0 = (4.0 - 3.0 * t);\n\tfloat vw1 = 7.0;\n\tfloat vw2 = (1.0 + 3.0 * t);\n\tfloat v0 = (3.0 - 2.0 * t) / vw0 - 2.0;\n\tfloat v1 = (3.0 + t) / vw1;\n\tfloat v2 = t / vw2 + 2.0;\n\tfloat sum = 0.0;\n\tu0 = u0 * shadowMapSizeInv + base_uv.x;\n\tv0 = v0 * shadowMapSizeInv + base_uv.y;\n\tu1 = u1 * shadowMapSizeInv + base_uv.x;\n\tv1 = v1 * shadowMapSizeInv + base_uv.y;\n\tu2 = u2 * shadowMapSizeInv + base_uv.x;\n\tv2 = v2 * shadowMapSizeInv + base_uv.y;\n\tsum += uw0 * vw0 * texture(shadowMap, vec3(u0, v0, z));\n\tsum += uw1 * vw0 * texture(shadowMap, vec3(u1, v0, z));\n\tsum += uw2 * vw0 * texture(shadowMap, vec3(u2, v0, z));\n\tsum += uw0 * vw1 * texture(shadowMap, vec3(u0, v1, z));\n\tsum += uw1 * vw1 * texture(shadowMap, vec3(u1, v1, z));\n\tsum += uw2 * vw1 * texture(shadowMap, vec3(u2, v1, z));\n\tsum += uw0 * vw2 * texture(shadowMap, vec3(u0, v2, z));\n\tsum += uw1 * vw2 * texture(shadowMap, vec3(u1, v2, z));\n\tsum += uw2 * vw2 * texture(shadowMap, vec3(u2, v2, z));\n\tsum *= 1.0f / 144.0;\n\tsum = gammaCorrectInput(sum);\n\tsum = saturate(sum);\n\treturn sum;\n}\nfloat getShadowPCF5x5(sampler2DShadow shadowMap, vec3 shadowParams) {\n\treturn _getShadowPCF5x5(shadowMap, shadowParams);\n}\nfloat getShadowSpotPCF5x5(sampler2DShadow shadowMap, vec4 shadowParams) {\n\treturn _getShadowPCF5x5(shadowMap, shadowParams.xyz);\n}\n",shadowVSM8PS:"float calculateVSM8(vec3 moments, float Z, float vsmBias) {\n\tfloat VSMBias = vsmBias;\n\tfloat depthScale = VSMBias * Z;\n\tfloat minVariance1 = depthScale * depthScale;\n\treturn chebyshevUpperBound(moments.xy, Z, minVariance1, 0.1);\n}\nfloat decodeFloatRG(vec2 rg) {\n\treturn rg.y*(1.0/255.0) + rg.x;\n}\nfloat VSM8(sampler2D tex, vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n\tvec4 c = texture2D(tex, texCoords);\n\tvec3 moments = vec3(decodeFloatRG(c.xy), decodeFloatRG(c.zw), 0.0);\n\treturn calculateVSM8(moments, Z, vsmBias);\n}\nfloat getShadowVSM8(sampler2D shadowMap, vec3 shadowParams, float exponent) {\n\treturn VSM8(shadowMap, dShadowCoord.xy, shadowParams.x, dShadowCoord.z, shadowParams.y, 0.0);\n}\nfloat getShadowSpotVSM8(sampler2D shadowMap, vec4 shadowParams, float exponent) {\n\treturn VSM8(shadowMap, dShadowCoord.xy, shadowParams.x, length(dLightDirW) * shadowParams.w + shadowParams.z, shadowParams.y, 0.0);\n}\n",shadowVSM_commonPS:"float linstep(float a, float b, float v) {\n\treturn saturate((v - a) / (b - a));\n}\nfloat reduceLightBleeding(float pMax, float amount) {\n\t return linstep(amount, 1.0, pMax);\n}\nfloat chebyshevUpperBound(vec2 moments, float mean, float minVariance, float lightBleedingReduction) {\n\tfloat variance = moments.y - (moments.x * moments.x);\n\tvariance = max(variance, minVariance);\n\tfloat d = mean - moments.x;\n\tfloat pMax = variance / (variance + (d * d));\n\tpMax = reduceLightBleeding(pMax, lightBleedingReduction);\n\treturn (mean <= moments.x ? 1.0 : pMax);\n}\nfloat calculateEVSM(vec3 moments, float Z, float vsmBias, float exponent) {\n\tZ = 2.0 * Z - 1.0;\n\tfloat warpedDepth = exp(exponent * Z);\n\tmoments.xy += vec2(warpedDepth, warpedDepth*warpedDepth) * (1.0 - moments.z);\n\tfloat VSMBias = vsmBias;\n\tfloat depthScale = VSMBias * exponent * warpedDepth;\n\tfloat minVariance1 = depthScale * depthScale;\n\treturn chebyshevUpperBound(moments.xy, warpedDepth, minVariance1, 0.1);\n}\n",skinBatchConstVS:"attribute float vertex_boneIndices;\nuniform vec4 matrix_pose[BONE_LIMIT * 3];\nmat4 getBoneMatrix(const in float i) {\n\tvec4 v1 = matrix_pose[int(3.0 * i)];\n\tvec4 v2 = matrix_pose[int(3.0 * i + 1.0)];\n\tvec4 v3 = matrix_pose[int(3.0 * i + 2.0)];\n\treturn mat4(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, 1\n\t);\n}\n",skinBatchTexVS:"attribute float vertex_boneIndices;\nuniform highp sampler2D texture_poseMap;\nuniform vec4 texture_poseMapSize;\nmat4 getBoneMatrix(const in float i) {\n\tfloat j = i * 3.0;\n\tfloat dx = texture_poseMapSize.z;\n\tfloat dy = texture_poseMapSize.w;\n\tfloat y = floor(j * dx);\n\tfloat x = j - (y * texture_poseMapSize.x);\n\ty = dy * (y + 0.5);\n\tvec4 v1 = texture2D(texture_poseMap, vec2(dx * (x + 0.5), y));\n\tvec4 v2 = texture2D(texture_poseMap, vec2(dx * (x + 1.5), y));\n\tvec4 v3 = texture2D(texture_poseMap, vec2(dx * (x + 2.5), y));\n\treturn mat4(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, 1\n\t);\n}\n",skinConstVS:"attribute vec4 vertex_boneWeights;\nattribute vec4 vertex_boneIndices;\nuniform vec4 matrix_pose[BONE_LIMIT * 3];\nvoid getBoneMatrix(const in float i, out vec4 v1, out vec4 v2, out vec4 v3) {\n\tv1 = matrix_pose[int(3.0 * i)];\n\tv2 = matrix_pose[int(3.0 * i + 1.0)];\n\tv3 = matrix_pose[int(3.0 * i + 2.0)];\n}\nmat4 getSkinMatrix(const in vec4 indices, const in vec4 weights) {\n\tvec4 a1, a2, a3;\n\tgetBoneMatrix(indices.x, a1, a2, a3);\n\tvec4 b1, b2, b3;\n\tgetBoneMatrix(indices.y, b1, b2, b3);\n\tvec4 c1, c2, c3;\n\tgetBoneMatrix(indices.z, c1, c2, c3);\n\tvec4 d1, d2, d3;\n\tgetBoneMatrix(indices.w, d1, d2, d3);\n\tvec4 v1 = a1 * weights.x + b1 * weights.y + c1 * weights.z + d1 * weights.w;\n\tvec4 v2 = a2 * weights.x + b2 * weights.y + c2 * weights.z + d2 * weights.w;\n\tvec4 v3 = a3 * weights.x + b3 * weights.y + c3 * weights.z + d3 * weights.w;\n\tfloat one = dot(weights, vec4(1.0));\n\treturn mat4(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, one\n\t);\n}\n",skinTexVS:"attribute vec4 vertex_boneWeights;\nattribute vec4 vertex_boneIndices;\nuniform highp sampler2D texture_poseMap;\nuniform vec4 texture_poseMapSize;\nvoid getBoneMatrix(const in float i, out vec4 v1, out vec4 v2, out vec4 v3) {\n\tfloat j = i * 3.0;\n\tfloat dx = texture_poseMapSize.z;\n\tfloat dy = texture_poseMapSize.w;\n\tfloat y = floor(j * dx);\n\tfloat x = j - (y * texture_poseMapSize.x);\n\ty = dy * (y + 0.5);\n\tv1 = texture2D(texture_poseMap, vec2(dx * (x + 0.5), y));\n\tv2 = texture2D(texture_poseMap, vec2(dx * (x + 1.5), y));\n\tv3 = texture2D(texture_poseMap, vec2(dx * (x + 2.5), y));\n}\nmat4 getSkinMatrix(const in vec4 indices, const in vec4 weights) {\n\tvec4 a1, a2, a3;\n\tgetBoneMatrix(indices.x, a1, a2, a3);\n\tvec4 b1, b2, b3;\n\tgetBoneMatrix(indices.y, b1, b2, b3);\n\tvec4 c1, c2, c3;\n\tgetBoneMatrix(indices.z, c1, c2, c3);\n\tvec4 d1, d2, d3;\n\tgetBoneMatrix(indices.w, d1, d2, d3);\n\tvec4 v1 = a1 * weights.x + b1 * weights.y + c1 * weights.z + d1 * weights.w;\n\tvec4 v2 = a2 * weights.x + b2 * weights.y + c2 * weights.z + d2 * weights.w;\n\tvec4 v3 = a3 * weights.x + b3 * weights.y + c3 * weights.z + d3 * weights.w;\n\tfloat one = dot(weights, vec4(1.0));\n\treturn mat4(\n\t\tv1.x, v2.x, v3.x, 0,\n\t\tv1.y, v2.y, v3.y, 0,\n\t\tv1.z, v2.z, v3.z, 0,\n\t\tv1.w, v2.w, v3.w, one\n\t);\n}\n",skyboxEnvPS:"varying vec3 vViewDir;\nuniform sampler2D texture_envAtlas;\nuniform float mipLevel;\nvoid main(void) {\n\tvec3 dir = vViewDir * vec3(-1.0, 1.0, 1.0);\n\tvec2 uv = toSphericalUv(normalize(dir));\n\tvec3 linear = $DECODE(texture2D(texture_envAtlas, mapRoughnessUv(uv, mipLevel)));\n\tgl_FragColor = vec4(gammaCorrectOutput(toneMap(processEnvironment(linear))), 1.0);\n}\n",skyboxHDRPS:"varying vec3 vViewDir;\nuniform samplerCube texture_cubeMap;\nvoid main(void) {\n\tvec3 dir=vViewDir;\n\tdir.x *= -1.0;\n\tvec3 color = processEnvironment($textureCubeSAMPLE(texture_cubeMap, fixSeamsStatic(dir, $FIXCONST)).rgb);\n\tcolor = toneMap(color);\n\tcolor = gammaCorrectOutput(color);\n\tgl_FragColor = vec4(color, 1.0);\n}\n",skyboxVS:"attribute vec3 aPosition;\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nuniform mat4 matrix_projectionSkybox;\nuniform mat3 cubeMapRotationMatrix;\nvarying vec3 vViewDir;\nvoid main(void) {\n\tmat4 view = matrix_view;\n\tview[3][0] = view[3][1] = view[3][2] = 0.0;\n\tgl_Position = matrix_projectionSkybox * view * vec4(aPosition, 1.0);\n\tgl_Position.z = gl_Position.w - 0.00001;\n\tvViewDir = aPosition * cubeMapRotationMatrix;\n}\n",specularPS:"#ifdef MAPCOLOR\nuniform vec3 material_specular;\n#endif\n#ifdef MAPTEXTURE\nuniform sampler2D texture_specularMap;\n#endif\nvoid getSpecularity() {\n\tdSpecularity = vec3(1.0);\n\t#ifdef MAPCOLOR\n\tdSpecularity *= material_specular;\n\t#endif\n\t#ifdef MAPTEXTURE\n\tdSpecularity *= texture2D(texture_specularMap, $UV, textureBias).$CH;\n\t#endif\n\t#ifdef MAPVERTEX\n\tdSpecularity *= saturate(vVertexColor.$VC);\n\t#endif\n}\n",specularAaNonePS:"float antiAliasGlossiness(float power) {\n\treturn power;\n}\n",specularAaToksvigPS:"float antiAliasGlossiness(float power) {\n\tfloat rlen = 1.0 / saturate(length(dNormalMap));\n\tfloat toksvig = 1.0 / (1.0 + power * (rlen - 1.0));\n\treturn power * mix(1.0, toksvig, material_bumpiness);\n}\n",specularAaToksvigFastPS:"float antiAliasGlossiness(float power) {\n\tfloat rlen = 1.0 / saturate(length(dNormalMap));\n\tfloat toksvig = 1.0 / (1.0 + power * (rlen - 1.0));\n\treturn power * toksvig;\n}\n",spotPS:"float getSpotEffect(vec3 lightSpotDirW, float lightInnerConeAngle, float lightOuterConeAngle) {\n\tfloat cosAngle = dot(dLightDirNormW, lightSpotDirW);\n\treturn smoothstep(lightOuterConeAngle, lightInnerConeAngle, cosAngle);\n}\n",startPS:"void main(void) {\n\tdDiffuseLight = vec3(0);\n\tdSpecularLight = vec3(0);\n\tdReflection = vec4(0);\n\tdSpecularity = vec3(0);\n\t#ifdef CLEARCOAT\n\tccSpecularLight = vec3(0);\n\tccReflection = vec4(0);\n\t#endif\n",startVS:"void main(void) {\n\tgl_Position = getPosition();\n",startNineSlicedPS:"\tnineSlicedUv = vUv0;\n\tnineSlicedUv.y = 1.0 - nineSlicedUv.y;\n",startNineSlicedTiledPS:"\tvec2 tileMask = step(vMask, vec2(0.99999));\n\tvec2 tileSize = 0.5 * (innerOffset.xy + innerOffset.zw);\n\tvec2 tileScale = vec2(1.0) / (vec2(1.0) - tileSize);\n\tvec2 clampedUv = mix(innerOffset.xy * 0.5, vec2(1.0) - innerOffset.zw * 0.5, fract((vTiledUv - tileSize) * tileScale));\n\tclampedUv = clampedUv * atlasRect.zw + atlasRect.xy;\n\tnineSlicedUv = vUv0 * tileMask + clampedUv * (vec2(1.0) - tileMask);\n\tnineSlicedUv.y = 1.0 - nineSlicedUv.y;\n",storeEVSMPS:"float exponent = VSM_EXPONENT;\ndepth = 2.0 * depth - 1.0;\ndepth =\texp(exponent * depth);\ngl_FragColor = vec4(depth, depth*depth, 1.0, 1.0);\n",tangentBinormalVS:"vec3 getTangent() {\n\treturn normalize(dNormalMatrix * vertex_tangent.xyz);\n}\nvec3 getBinormal() {\n\treturn cross(vNormalW, vTangentW) * vertex_tangent.w;\n}\nvec3 getObjectSpaceUp() {\n\treturn normalize(dNormalMatrix * vec3(0, 1, 0));\n}\n",TBNPS:"void getTBN() {\n\tdTBN = mat3(normalize(dTangentW), normalize(dBinormalW), normalize(dVertexNormalW));\n}\n",TBNderivativePS:"uniform float tbnBasis;\nvoid getTBN() {\n\tvec2 uv = $UV;\n\tvec3 dp1 = dFdx( vPositionW );\n\tvec3 dp2 = dFdy( vPositionW );\n\tvec2 duv1 = dFdx( uv );\n\tvec2 duv2 = dFdy( uv );\n\tvec3 dp2perp = cross( dp2, dVertexNormalW );\n\tvec3 dp1perp = cross( dVertexNormalW, dp1 );\n\tvec3 T = dp2perp * duv1.x + dp1perp * duv2.x;\n\tvec3 B = dp2perp * duv1.y + dp1perp * duv2.y;\n\tfloat denom = max( dot(T,T), dot(B,B) );\n\tfloat invmax = (denom == 0.0) ? 0.0 : tbnBasis / sqrt( denom );\n\tdTBN = mat3(T * invmax, -B * invmax, dVertexNormalW );\n}\n",TBNfastPS:"void getTBN() {\n\tdTBN = mat3(dTangentW, dBinormalW, dVertexNormalW);\n}\n",TBNObjectSpacePS:"void getTBN() {\n\tvec3 B = cross(dVertexNormalW, vObjectSpaceUpW);\n\tvec3 T = cross(dVertexNormalW, B);\n\tif (dot(B,B)==0.0)\n\t{\n\t\tfloat major=max(max(dVertexNormalW.x, dVertexNormalW.y),dVertexNormalW.z);\n\t\tif (dVertexNormalW.x==major)\n\t\t{\n\t\t\tB=cross(dVertexNormalW, vec3(0,1,0));\n\t\t\tT=cross(dVertexNormalW, B);\n\t\t}\n\t\telse if (dVertexNormalW.y==major)\n\t\t{\n\t\t\tB=cross(dVertexNormalW, vec3(0,0,1));\n\t\t\tT=cross(dVertexNormalW, B);\n\t\t}\n\t\telse if (dVertexNormalW.z==major)\n\t\t{\n\t\t\tB=cross(dVertexNormalW, vec3(1,0,0));\n\t\t\tT=cross(dVertexNormalW, B);\n\t\t}\n\t}\n\tdTBN = mat3(normalize(T), normalize(B), normalize(dVertexNormalW));\n}\n",tonemappingAcesPS:"uniform float exposure;\nvec3 toneMap(vec3 color) {\n\tfloat tA = 2.51;\n\tfloat tB = 0.03;\n\tfloat tC = 2.43;\n\tfloat tD = 0.59;\n\tfloat tE = 0.14;\n\tvec3 x = color * exposure;\n\treturn (x*(tA*x+tB))/(x*(tC*x+tD)+tE);\n}\n",tonemappingAces2PS:"uniform float exposure;\nconst mat3 ACESInputMat = mat3(\n\t0.59719, 0.35458, 0.04823,\n\t0.07600, 0.90834, 0.01566,\n\t0.02840, 0.13383, 0.83777\n);\nconst mat3 ACESOutputMat = mat3(\n\t 1.60475, -0.53108, -0.07367,\n\t-0.10208,\t1.10813, -0.00605,\n\t-0.00327, -0.07276,\t1.07602\n);\nvec3 RRTAndODTFit(vec3 v) {\n\tvec3 a = v * (v + 0.0245786) - 0.000090537;\n\tvec3 b = v * (0.983729 * v + 0.4329510) + 0.238081;\n\treturn a / b;\n}\nvec3 toneMap(vec3 color) {\n\tcolor *= exposure;\n\tcolor = color * ACESInputMat;\n\tcolor = RRTAndODTFit(color);\n\tcolor = color * ACESOutputMat;\n\tcolor = clamp(color, 0.0, 1.0);\n\treturn color;\n}\n",tonemappingFilmicPS:"const float A =\t0.15;\nconst float B =\t0.50;\nconst float C =\t0.10;\nconst float D =\t0.20;\nconst float E =\t0.02;\nconst float F =\t0.30;\nconst float W =\t11.2;\nuniform float exposure;\nvec3 uncharted2Tonemap(vec3 x) {\n\t return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\n}\nvec3 toneMap(vec3 color) {\n\tcolor = uncharted2Tonemap(color * exposure);\n\tvec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W,W,W));\n\tcolor = color * whiteScale;\n\treturn color;\n}\n",tonemappingHejlPS:"uniform float exposure;\nvec3 toneMap(vec3 color) {\n\tcolor *= exposure;\n\tconst float\tA = 0.22, B = 0.3, C = .1, D = 0.2, E = .01, F = 0.3;\n\tconst float Scl = 1.25;\n\tvec3 h = max( vec3(0.0), color - vec3(0.004) );\n\treturn (h*((Scl*A)*h+Scl*vec3(C*B,C*B,C*B))+Scl*vec3(D*E,D*E,D*E)) / (h*(A*h+vec3(B,B,B))+vec3(D*F,D*F,D*F)) - Scl*vec3(E/F,E/F,E/F);\n}\n",tonemappingLinearPS:"uniform float exposure;\nvec3 toneMap(vec3 color) {\n\treturn color * exposure;\n}\n",tonemappingNonePS:"vec3 toneMap(vec3 color) {\n\treturn color;\n}\n",transformVS:"#ifdef PIXELSNAP\nuniform vec4 uScreenSize;\n#endif\n#ifdef MORPHING\nuniform vec4 morph_weights_a;\nuniform vec4 morph_weights_b;\n#endif\n#ifdef MORPHING_TEXTURE_BASED\nuniform vec4 morph_tex_params;\nvec2 getTextureMorphCoords() {\n\tfloat vertexId = morph_vertex_id;\n\tvec2 textureSize = morph_tex_params.xy;\n\tvec2 invTextureSize = morph_tex_params.zw;\n\tfloat morphGridV = floor(vertexId * invTextureSize.x);\n\tfloat morphGridU = vertexId - (morphGridV * textureSize.x);\n\treturn (vec2(morphGridU, morphGridV) * invTextureSize) + (0.5 * invTextureSize);\n}\n#endif\n#ifdef MORPHING_TEXTURE_BASED_POSITION\nuniform highp sampler2D morphPositionTex;\n#endif\nmat4 getModelMatrix() {\n\t#ifdef DYNAMICBATCH\n\treturn getBoneMatrix(vertex_boneIndices);\n\t#elif defined(SKIN)\n\treturn matrix_model * getSkinMatrix(vertex_boneIndices, vertex_boneWeights);\n\t#elif defined(INSTANCING)\n\treturn mat4(instance_line1, instance_line2, instance_line3, instance_line4);\n\t#else\n\treturn matrix_model;\n\t#endif\n}\nvec4 getPosition() {\n\tdModelMatrix = getModelMatrix();\n\tvec3 localPos = vertex_position;\n\t#ifdef NINESLICED\n\tlocalPos.xz *= outerScale;\n\tvec2 positiveUnitOffset = clamp(vertex_position.xz, vec2(0.0), vec2(1.0));\n\tvec2 negativeUnitOffset = clamp(-vertex_position.xz, vec2(0.0), vec2(1.0));\n\tlocalPos.xz += (-positiveUnitOffset * innerOffset.xy + negativeUnitOffset * innerOffset.zw) * vertex_texCoord0.xy;\n\tvTiledUv = (localPos.xz - outerScale + innerOffset.xy) * -0.5 + 1.0;\n\tlocalPos.xz *= -0.5;\n\tlocalPos = localPos.xzy;\n\t#endif\n\t#ifdef MORPHING\n\t#ifdef MORPHING_POS03\n\tlocalPos.xyz += morph_weights_a[0] * morph_pos0;\n\tlocalPos.xyz += morph_weights_a[1] * morph_pos1;\n\tlocalPos.xyz += morph_weights_a[2] * morph_pos2;\n\tlocalPos.xyz += morph_weights_a[3] * morph_pos3;\n\t#endif\n\t#ifdef MORPHING_POS47\n\tlocalPos.xyz += morph_weights_b[0] * morph_pos4;\n\tlocalPos.xyz += morph_weights_b[1] * morph_pos5;\n\tlocalPos.xyz += morph_weights_b[2] * morph_pos6;\n\tlocalPos.xyz += morph_weights_b[3] * morph_pos7;\n\t#endif\n\t#endif\n\t#ifdef MORPHING_TEXTURE_BASED_POSITION\n\tvec2 morphUV = getTextureMorphCoords();\n\tvec3 morphPos = texture2D(morphPositionTex, morphUV).xyz;\n\tlocalPos += morphPos;\n\t#endif\n\tvec4 posW = dModelMatrix * vec4(localPos, 1.0);\n\t#ifdef SCREENSPACE\n\tposW.zw = vec2(0.0, 1.0);\n\t#endif\n\tdPositionW = posW.xyz;\n\tvec4 screenPos;\n\t#ifdef UV1LAYOUT\n\tscreenPos = vec4(vertex_texCoord1.xy * 2.0 - 1.0, 0.5, 1);\n\t#else\n\t#ifdef SCREENSPACE\n\tscreenPos = posW;\n\t#else\n\tscreenPos = matrix_viewProjection * posW;\n\t#endif\n\t#ifdef PIXELSNAP\n\tscreenPos.xy = (screenPos.xy * 0.5) + 0.5;\n\tscreenPos.xy *= uScreenSize.xy;\n\tscreenPos.xy = floor(screenPos.xy);\n\tscreenPos.xy *= uScreenSize.zw;\n\tscreenPos.xy = (screenPos.xy * 2.0) - 1.0;\n\t#endif\n\t#endif\n\treturn screenPos;\n}\nvec3 getWorldPosition() {\n\treturn dPositionW;\n}\n",transformDeclVS:"attribute vec3 vertex_position;\nuniform mat4 matrix_model;\nuniform mat4 matrix_viewProjection;\nvec3 dPositionW;\nmat4 dModelMatrix;\n",uv0VS:"#ifdef NINESLICED\nvec2 getUv0() {\n\tvec2 uv = vertex_position.xz;\n\tvec2 positiveUnitOffset = clamp(vertex_position.xz, vec2(0.0), vec2(1.0));\n\tvec2 negativeUnitOffset = clamp(-vertex_position.xz, vec2(0.0), vec2(1.0));\n\tuv += (-positiveUnitOffset * innerOffset.xy + negativeUnitOffset * innerOffset.zw) * vertex_texCoord0.xy;\n\tuv = uv * -0.5 + 0.5;\n\tuv = uv * atlasRect.zw + atlasRect.xy;\n\tvMask = vertex_texCoord0.xy;\n\treturn uv;\n}\n#else\nvec2 getUv0() {\n\treturn vertex_texCoord0;\n}\n#endif\n",uv1VS:"vec2 getUv1() {\n\treturn vertex_texCoord1;\n}\n",viewDirPS:"void getViewDir() {\n\tdViewDirW = normalize(view_position - vPositionW);\n}\n",viewNormalVS:"#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nvec3 getViewNormal() {\n\treturn mat3(matrix_view) * vNormalW;\n}\n"};function ui(t,e){return e||(e=ci),1===t||2===t?e.gamma2_2PS?e.gamma2_2PS:ci.gamma2_2PS:3===t?"#define HDR\n"+(e.gamma2_2PS?e.gamma2_2PS:ci.gamma2_2PS):e.gamma1_0PS?e.gamma1_0PS:ci.gamma1_0PS}function di(t,e){return e||(e=ci),1===t?e.tonemappingFilmicPS?e.tonemappingFilmicPS:ci.tonemappingFilmicPS:0===t?e.tonemappingLinearPS?e.tonemappingLinearPS:ci.tonemappingLinearPS:2===t?e.tonemappingHejlPS?e.tonemappingHejlPS:ci.tonemappingHejlPS:3===t?e.tonemappingAcesPS?e.tonemappingAcesPS:ci.tonemappingAcesPS:4===t?e.tonemappingAces2PS?e.tonemappingAces2PS:ci.tonemappingAces2PS:e.tonemapingNonePS?e.tonemapingNonePS:ci.tonemappingNonePS}function fi(t,e){return e||(e=ci),"linear"===t?e.fogLinearPS?e.fogLinearPS:ci.fogLinearPS:"exp"===t?e.fogExpPS?e.fogExpPS:ci.fogExpPS:"exp2"===t?e.fogExp2PS?e.fogExp2PS:ci.fogExp2PS:e.fogNonePS?e.fogNonePS:ci.fogNonePS}function pi(t,e){return e||(e=ci),t.supportsBoneTextures?e.skinTexVS:"#define BONE_LIMIT "+t.getBoneLimit()+"\n"+e.skinConstVS}function mi(t){var e="precision "+t.precision+" float;\n";return t.webgl2&&(e+="#ifdef GL2\nprecision "+t.precision+" sampler2DShadow;\n#endif\n"),e}function _i(t){return t.webgl2?"#version 300 es\n":""}function gi(){return"void main(void) {gl_FragColor = vec4(0.0);}"}function vi(){return"void main(void)\n{\n"}function yi(){return"}\n"}var xi={vertex_position:le,vertex_normal:ce,vertex_tangent:ue,vertex_texCoord0:_e,vertex_texCoord1:ge,vertex_texCoord2:ve,vertex_texCoord3:ye,vertex_texCoord4:xe,vertex_texCoord5:be,vertex_texCoord6:Se,vertex_texCoord7:we,vertex_color:pe,vertex_boneIndices:fe,vertex_boneWeights:de};function bi(t){for(var e={},i=0,n=t.indexOf("attribute");n>=0&&!(n>0&&"/"===t[n-1]);){var s=t.indexOf(";",n),a=t.lastIndexOf(" ",s),r=t.substr(a+1,s-(a+1)),o=xi[r];void 0!==o?e[r]=o:(e[r]="ATTR"+i,i++),n=t.indexOf("attribute",n+1)}return e}function Si(t,e,i,n,s,a){void 0===s&&(s=!1),void 0===a&&(a="");var r=t.programLib._cache,o=r[n];if(void 0!==o)return o;i=mi(t)+"\n"+(i||"void main(void) {gl_FragColor = vec4(0.0);}");var h=bi(e);return t.webgl2&&(e=_i(t)+ci.gles3VS+e,i=_i(t)+ci.gles3PS+i),r[n]=new li(t,{attributes:h,vshader:e,fshader:a+i,useTransformFeedback:s}),r[n]}ci.collectAttribs=bi,ci.createShader=function(t,e,i,n){void 0===n&&(n=!1);var s=ci[e],a=mi(t)+"\n"+ci[i],r=bi(s);return t.webgl2&&(s=_i(t)+ci.gles3VS+s,a=_i(t)+ci.gles3PS+a),new li(t,{attributes:r,vshader:s,fshader:a,useTransformFeedback:n})},ci.createShaderFromCode=Si;var wi=function(){function t(){this.globalId=0,this.revision=0}var e=t.prototype;return e.equals=function(t){return this.globalId===t.globalId&&this.revision===t.revision},e.copy=function(t){this.globalId=t.globalId,this.revision=t.revision},e.reset=function(){this.globalId=0,this.revision=0},t}(),Ti=0,Ai=function(){function t(){Ti++,this.version=new wi,this.version.globalId=Ti}return t.prototype.increment=function(){this.version.revision++},t}(),Mi=function(){function t(t){this.name=t,this.value=null,this.versionObject=new Ai}var e=t.prototype;return e.setValue=function(t){this.value=t,this.versionObject.increment()},e.getValue=function(){return this.value},t}(),Ci=function(){function t(t){this.name=t,this.variables=new Map}var e=t.prototype;return e.resolve=function(t){return this.variables.has(t)||this.variables.set(t,new Mi(t)),this.variables.get(t)},e.removeValue=function(t){for(var e in this.variables){var i=this.variables[e];i.value===t&&(i.value=null)}},t}(),Ei={generateKey:function(t){var e="basic";return t.fog&&(e+="_fog"),t.alphaTest&&(e+="_atst"),t.vertexColors&&(e+="_vcol"),t.diffuseMap&&(e+="_diff"),t.skin&&(e+="_skin"),t.screenSpace&&(e+="_ss"),t.useInstancing&&(e+="_inst"),t.useMorphPosition&&(e+="_morphp"),t.useMorphNormal&&(e+="_morphn"),t.useMorphTextureBased&&(e+="_morpht"),e+="_"+t.pass},createShaderDefinition:function(t,e){var i={vertex_position:le};e.skin&&(i.vertex_boneWeights=de,i.vertex_boneIndices=fe),e.vertexColors&&(i.vertex_color=pe),e.diffuseMap&&(i.vertex_texCoord0=_e);var n="";n+=ci.transformDeclVS,e.skin?(n+=pi(t),n+=ci.transformSkinnedVS):n+=ci.transformVS,e.vertexColors&&(n+="attribute vec4 vertex_color;\n",n+="varying vec4 vColor;\n"),e.diffuseMap&&(n+="attribute vec2 vertex_texCoord0;\n",n+="varying vec2 vUv0;\n"),2===e.pass&&(n+="varying float vDepth;\n",n+="#ifndef VIEWMATRIX\n",n+="#define VIEWMATRIX\n",n+="uniform mat4 matrix_view;\n",n+="#endif\n",n+="#ifndef CAMERAPLANES\n",n+="#define CAMERAPLANES\n",n+="uniform vec4 camera_params;\n\n",n+="#endif\n"),n+="void main(void)\n{\n",n+="\t gl_Position = getPosition();\n",2===e.pass&&(n+="\t\tvDepth = -(matrix_view * vec4(getWorldPosition(),1.0)).z * camera_params.x;\n"),e.vertexColors&&(n+="\t\tvColor = vertex_color;\n"),e.diffuseMap&&(n+="\t\tvUv0 = vertex_texCoord0;\n");var s=n+="}\n";return n=mi(t),e.vertexColors?n+="varying vec4 vColor;\n":n+="uniform vec4 uColor;\n",e.diffuseMap&&(n+="varying vec2 vUv0;\n",n+="uniform sampler2D texture_diffuseMap;\n"),e.fog&&(n+=fi(e.fog)),e.alphatest&&(n+=ci.alphaTestPS),2===e.pass&&(n+="varying float vDepth;\n",n+=ci.packDepthPS),n+="void main(void)\n{\n",e.vertexColors?n+="\t\tgl_FragColor = vColor;\n":n+="\t\tgl_FragColor = uColor;\n",e.diffuseMap&&(n+="\t\tgl_FragColor *= texture2D(texture_diffuseMap, vUv0);\n"),e.alphatest&&(n+="\t alphaTest(gl_FragColor.a);\n"),e.pass!==Wt&&(2===e.pass?n+="\t\tgl_FragColor = packFloat(vDepth);\n":e.fog&&(n+="\t glFragColor.rgb = addFog(gl_FragColor.rgb);\n")),{attributes:i,vshader:s,fshader:n+="}\n"}}},Pi={generateKey:function(t){var e="particle";for(var i in t)t.hasOwnProperty(i)&&(e+=t[i]);return e},_animTex:function(t){var e="";return e+=t.animTexLoop?ci.particleAnimFrameLoopVS:ci.particleAnimFrameClampVS,e+=ci.particleAnimTexVS},createShaderDefinition:function(t,e){var i="",n=mi(t)+"\n";n+="#define PARTICLE\n",t.webgl2&&(i+="#define GL2\n",n+="#define GL2\n"),i+="#define VERTEXSHADER\n",e.mesh&&(i+="#define USE_MESH\n"),e.localSpace&&(i+="#define LOCAL_SPACE\n"),e.screenSpace&&(i+="#define SCREEN_SPACE\n"),e.animTex&&(i+="\nuniform vec2 animTexTilesParams;\n"),e.animTex&&(i+="\nuniform vec4 animTexParams;\n"),e.animTex&&(i+="\nuniform vec2 animTexIndexParams;\n"),2===e.normal&&(i+="\nvarying mat3 ParticleMat;\n"),1===e.normal&&(i+="\nvarying vec3 Normal;\n"),e.soft&&(i+="\nvarying float vDepth;\n");var s=e.customFace?ci.particle_customFaceVS:ci.particle_billboardVS;return e.useCpu?(e.soft>0&&(i+=ci.screenDepthPS),i+=ci.particle_cpuVS,e.localSpace&&(i+=ci.particle_localShiftVS),e.animTex&&(i+=this._animTex(e)),e.alignToMotion&&(i+=ci.particle_pointAlongVS),i+=e.mesh?ci.particle_meshVS:s,1===e.normal&&(i+=ci.particle_normalVS),2===e.normal&&(i+=ci.particle_TBNVS),e.stretch>0&&(i+=ci.particle_stretchVS),i+=ci.particle_cpu_endVS,e.soft>0&&(i+=ci.particle_softVS)):(i+=ci.particle_initVS,i+=e.pack8?ci.particleInputRgba8PS:ci.particleInputFloatPS,e.soft>0&&(i+=ci.screenDepthPS),i+=ci.particleVS,e.localSpace&&(i+=ci.particle_localShiftVS),e.animTex&&(i+=this._animTex(e)),e.wrap&&(i+=ci.particle_wrapVS),e.alignToMotion&&(i+=ci.particle_pointAlongVS),i+=e.mesh?ci.particle_meshVS:s,1===e.normal&&(i+=ci.particle_normalVS),2===e.normal&&(i+=ci.particle_TBNVS),e.stretch>0&&(i+=ci.particle_stretchVS),i+=ci.particle_endVS,e.soft>0&&(i+=ci.particle_softVS)),i+="}\n",e.normal>0&&(1===e.normal?n+="\nvarying vec3 Normal;\n":2===e.normal&&(n+="\nvarying mat3 ParticleMat;\n"),n+="\nuniform vec3 lightCube[6];\n"),e.soft&&(n+="\nvarying float vDepth;\n"),0===e.normal&&"none"===e.fog&&(e.srgb=!1),n+=ui(e.gamma),n+=di(e.toneMap),"linear"===e.fog?n+=ci.fogLinearPS:"exp"===e.fog?n+=ci.fogExpPS:"exp2"===e.fog?n+=ci.fogExp2PS:n+=ci.fogNonePS,2===e.normal&&(n+="\nuniform sampler2D normalMap;\n"),e.soft>0&&(n+=ci.screenDepthPS),n+=ci.particlePS,e.soft>0&&(n+=ci.particle_softPS),1===e.normal&&(n+="\nvec3 normal = Normal;\n"),2===e.normal&&(n+=ci.particle_normalMapPS),e.normal>0&&(n+=e.halflambert?ci.particle_halflambertPS:ci.particle_lambertPS),e.normal>0&&(n+=ci.particle_lightingPS),2===e.blend?n+=ci.particle_blendNormalPS:1===e.blend?n+=ci.particle_blendAddPS:5===e.blend&&(n+=ci.particle_blendMultiplyPS),n+=ci.particle_endPS,{attributes:bi(i),vshader:i,fshader:n}}},Ri={generateKey:function(t){return"cubemap"===t.type?"skybox-"+t.type+"-"+t.rgbm+"-"+t.hdr+"-"+t.fixSeams+"-"+t.toneMapping+"-"+t.gamma+"-"+t.useIntensity+"-"+t.mip:"skybox-"+t.type+"-"+t.encoding+"-"+t.useIntensity+"-"+t.gamma+"-"+t.toneMapping},createShaderDefinition:function(t,e){var i;if("cubemap"===e.type){i=mi(t),i+=e.mip?ci.fixCubemapSeamsStretchPS:ci.fixCubemapSeamsNonePS,i+=e.useIntensity?ci.envMultiplyPS:ci.envConstPS,i+=ui(e.gamma),i+=di(e.toneMapping),i+=ci.decodePS,i+=ci.rgbmPS,i+=ci.skyboxHDRPS.replace(/\$textureCubeSAMPLE/g,e.rgbm?"textureCubeRGBM":e.hdr?"textureCube":"textureCubeSRGB").replace(/\$FIXCONST/g,1-1/[128,64,16,8,4,2][e.mip]+"")}else{i=mi(t),i+=e.useIntensity?ci.envMultiplyPS:ci.envConstPS,i+=ui(e.gamma),i+=di(e.toneMapping),i+=ci.decodePS,i+=ci.skyboxEnvPS.replace(/\$DECODE/g,{rgbm:"decodeRGBM",rgbe:"decodeRGBE",linear:"decodeLinear"}[e.encoding]||"decodeGamma")}return{attributes:{aPosition:le},vshader:ci.skyboxVS,fshader:i}}},Ii=1/255,Li=new Float32Array(1),Di=new Int32Array(Li.buffer),ki=function(){function t(){}return t.float2Half=function(t){Li[0]=t;var e=Di[0],i=e>>16&32768,n=e>>12&2047,s=e>>23&255;return s<103?i:s>142?(i|=31744,i|=(255===s?0:1)&&8388607&e):s<113?i|=((n|=2048)>>114-s)+(n>>113-s&1):(i|=s-112<<10|n>>1,i+=1&n)},t.float2Bytes=function(t,e,i,n){var s=255*t%1;if(e[i+0]=Math.round(255*(t%1-Ii*s)),n>1){var a=65025*t%1;if(e[i+1]=Math.round(255*(s-Ii*a)),n>2){var r=16581375*t%1;e[i+2]=Math.round(255*(a-Ii*r)),n>3&&(e[i+3]=Math.round(255*r))}}},t.float2BytesRange=function(e,i,n,s,a,r){e=rt.clamp((e-s)/(a-s),0,1),t.float2Bytes(e,i,n,r)},t.float2MantissaExponent=function(e,i,n,s){var a=Math.floor(Math.log2(Math.abs(e)))+1;e/=Math.pow(2,a),t.float2BytesRange(e,i,n,-1,1,s-1),i[n+s-1]=Math.round(a+127)},t}(),Oi=null,Fi=null,Bi=function(){function t(t,e){this.device=t,this.name=null,this._width=4,this._height=4,this._depth=1,this._format=7,this.type=Ve,this.projection=Xe,this._cubemap=!1,this._volume=!1,this.fixCubemapSeams=!1,this._flipY=!1,this._premultiplyAlpha=!1,this._isRenderTarget=!1,this._mipmaps=!0,this._minFilter=5,this._magFilter=1,this._anisotropy=1,this._addressU=0,this._addressV=0,this._addressW=0,this._compareOnRead=!1,this._compareFunc=1,void 0!==e&&(void 0!==e.name&&(this.name=e.name),this._width=void 0!==e.width?e.width:this._width,this._height=void 0!==e.height?e.height:this._height,this._format=void 0!==e.format?e.format:this._format,e.hasOwnProperty("type")?this.type=e.type:e.hasOwnProperty("rgbm")?this.type=e.rgbm?We:Ve:e.hasOwnProperty("swizzleGGGR")&&(this.type=e.swizzleGGGR?He:Ve),void 0!==e.mipmaps?this._mipmaps=e.mipmaps:this._mipmaps=void 0!==e.autoMipmap?e.autoMipmap:this._mipmaps,this._levels=e.levels,this._cubemap=void 0!==e.cubemap?e.cubemap:this._cubemap,this.fixCubemapSeams=void 0!==e.fixCubemapSeams?e.fixCubemapSeams:this.fixCubemapSeams,this._cubemap?this.projection=qe:e.projection&&e.projection!==qe&&(this.projection=e.projection),this._minFilter=void 0!==e.minFilter?e.minFilter:this._minFilter,this._magFilter=void 0!==e.magFilter?e.magFilter:this._magFilter,this._anisotropy=void 0!==e.anisotropy?e.anisotropy:this._anisotropy,this._addressU=void 0!==e.addressU?e.addressU:this._addressU,this._addressV=void 0!==e.addressV?e.addressV:this._addressV,this._compareOnRead=void 0!==e.compareOnRead?e.compareOnRead:this._compareOnRead,this._compareFunc=void 0!==e._compareFunc?e._compareFunc:this._compareFunc,this._flipY=void 0!==e.flipY?e.flipY:this._flipY,this._premultiplyAlpha=void 0!==e.premultiplyAlpha?e.premultiplyAlpha:this._premultiplyAlpha,t.webgl2&&(this._depth=void 0!==e.depth?e.depth:this._depth,this._volume=void 0!==e.volume?e.volume:this._volume,this._addressW=void 0!==e.addressW?e.addressW:this._addressW)),this._compressed=8===this._format||9===this._format||this._format===Jt||this._format>=re,this._invalid=!1,this._lockedLevel=-1,this._levels||(this._levels=this._cubemap?[[null,null,null,null,null,null]]:[null]),this.dirtyAll(),this._gpuSize=0,this.impl=t.createTextureImpl(),t.textures.push(this)}var e=t.prototype;return e.destroy=function(){if(this.device){var t=this.device,e=t.textures.indexOf(this);-1!==e&&t.textures.splice(e,1),t.scope.removeValue(this),this.impl.destroy(t),this.adjustVramSizeTracking(t._vram,-this._gpuSize),this._levels=null,this.device=null}},e.loseContext=function(){this.impl.loseContext(),this.dirtyAll()},e.adjustVramSizeTracking=function(t,e){t.tex+=e},t.calcGpuSize=function(t,e,i,n,s,a){Oi||((Oi=[])[0]=1,Oi[1]=1,Oi[2]=2,Oi[3]=2,Oi[4]=2,Oi[5]=2,Oi[6]=4,Oi[7]=4,Oi[11]=8,Oi[12]=8,Oi[13]=16,Oi[14]=16,Oi[15]=4,Oi[16]=4,Oi[17]=4,Oi[18]=4,Oi[19]=4,Oi[20]=4),Fi||((Fi=[])[21]=8,Fi[22]=8,Fi[24]=8,Fi[25]=8,Fi[26]=8,Fi[27]=8,Fi[8]=8,Fi[29]=8,Fi[23]=16,Fi[9]=16,Fi[10]=16,Fi[28]=16,Fi[30]=16);for(var r=Oi.hasOwnProperty(n)?Oi[n]:0,o=Fi.hasOwnProperty(n)?Fi[n]:0,h=0;;){if(r>0)h+=t*e*i*r;else{var l=Math.floor((t+3)/4),c=Math.floor((e+3)/4),u=Math.floor((i+3)/4);n!==oe&&n!==he||(l=Math.max(Math.floor(l/2),1)),h+=l*c*u*o}if(!s||1===t&&1===e&&1===i)break;t=Math.max(Math.floor(t/2),1),e=Math.max(Math.floor(e/2),1),i=Math.max(Math.floor(i/2),1)}return h*(a?6:1)},e.dirtyAll=function(){this._levelsUpdated=this._cubemap?[[!0,!0,!0,!0,!0,!0]]:[!0],this._needsUpload=!0,this._needsMipmapsUpload=this._mipmaps,this._mipmapsUploaded=!1,this._parameterFlags=255},e.lock=function(t){if(void 0===t&&(t={}),void 0===t.level&&(t.level=0),void 0===t.face&&(t.face=0),void 0===t.mode&&(t.mode=2),this._lockedLevel=t.level,null===this._levels[t.level])switch(this._format){case 0:case 1:this._levels[t.level]=new Uint8Array(this._width*this._height*this._depth);break;case 2:this._levels[t.level]=new Uint8Array(this._width*this._height*this._depth*2);break;case 3:case 4:case 5:this._levels[t.level]=new Uint16Array(this._width*this._height*this._depth);break;case 6:this._levels[t.level]=new Uint8Array(this._width*this._height*this._depth*3);break;case 7:this._levels[t.level]=new Uint8Array(this._width*this._height*this._depth*4);break;case 8:this._levels[t.level]=new Uint8Array(Math.floor((this._width+3)/4)*Math.floor((this._height+3)/4)*8*this._depth);break;case 9:case Jt:this._levels[t.level]=new Uint8Array(Math.floor((this._width+3)/4)*Math.floor((this._height+3)/4)*16*this._depth);break;case te:this._levels[t.level]=new Uint16Array(this._width*this._height*this._depth*3);break;case ie:this._levels[t.level]=new Float32Array(this._width*this._height*this._depth*3);break;case ee:this._levels[t.level]=new Uint16Array(this._width*this._height*this._depth*4);break;case ne:this._levels[t.level]=new Float32Array(this._width*this._height*this._depth*4)}return this._levels[t.level]},e.setSource=function(t,e){void 0===e&&(e=0);var i,n,s=!1;if(this._cubemap){if(t[0]){i=t[0].width||0,n=t[0].height||0;for(var a=0;a<6;a++){var r=t[a];if(!r||r.width!==i||r.height!==n||!this.device._isBrowserInterface(r)){s=!0;break}}}else s=!0;if(!s)for(var o=0;o<6;o++)this._levels[e][o]!==t[o]&&(this._levelsUpdated[e][o]=!0)}else this.device._isBrowserInterface(t)||(s=!0),s||(t!==this._levels[e]&&(this._levelsUpdated[e]=!0),i=t.width,n=t.height);if(s)if(this._width=4,this._height=4,this._cubemap)for(var h=0;h<6;h++)this._levels[e][h]=null,this._levelsUpdated[e][h]=!0;else this._levels[e]=null,this._levelsUpdated[e]=!0;else 0===e&&(this._width=i,this._height=n),this._levels[e]=t;this._invalid===s&&s||(this._invalid=s,this.upload())},e.getSource=function(t){return void 0===t&&(t=0),this._levels[t]},e.unlock=function(){this._lockedLevel,this.upload(),this._lockedLevel=-1},e.upload=function(){this._needsUpload=!0,this._needsMipmapsUpload=this._mipmaps},e.getDds=function(){for(var t=128,e=0;this._levels[e];){if(this.cubemap)for(var i=0;i<6;i++){if(!this._levels[e][i])return;var n=this._levels[e][i].length;if(!n)return;t+=n}else{var s=this._levels[e].length;if(!s)return;t+=s}t+=this._levels[e].length,e++}var a=new ArrayBuffer(t),r=new Uint32Array(a,0,32),o=528391;this._levels.length>1&&(o|=131072);var h=4096;this._levels.length>1&&(h|=4194304),(this._levels.length>1||this.cubemap)&&(h|=8);var l=this.cubemap?65024:0;r[0]=542327876,r[1]=124,r[2]=o,r[3]=this.height,r[4]=this.width,r[5]=this.width*this.height*4,r[6]=0,r[7]=this._levels.length;for(var c=0;c<11;c++)r[8+c]=0;r[19]=32,r[20]=65,r[21]=0,r[22]=32,r[23]=16711680,r[24]=65280,r[25]=255,r[26]=4278190080,r[27]=h,r[28]=l,r[29]=0,r[30]=0,r[31]=0;var u=128;if(this.cubemap)for(var d=0;d<6;d++)for(var f=0;f=0?t.insertChild(this,e):t.addChild(this))},i.setLocalEulerAngles=function(t,e,i){this.localRotation.setFromEulerAngles(t,e,i),this._dirtyLocal||this._dirtifyLocal()},i.setLocalPosition=function(t,e,i){t instanceof ft?this.localPosition.copy(t):this.localPosition.set(t,e,i),this._dirtyLocal||this._dirtifyLocal()},i.setLocalRotation=function(t,e,i,n){t instanceof wt?this.localRotation.copy(t):this.localRotation.set(t,e,i,n),this._dirtyLocal||this._dirtifyLocal()},i.setLocalScale=function(t,e,i){t instanceof ft?this.localScale.copy(t):this.localScale.set(t,e,i),this._dirtyLocal||this._dirtifyLocal()},i._dirtifyLocal=function(){this._dirtyLocal||(this._dirtyLocal=!0,this._dirtyWorld||this._dirtifyWorld())},i._unfreezeParentToRoot=function(){for(var t=this._parent;t;)t._frozen=!1,t=t._parent},i._dirtifyWorld=function(){this._dirtyWorld||this._unfreezeParentToRoot(),this._dirtifyWorldInternal()},i._dirtifyWorldInternal=function(){if(!this._dirtyWorld){this._frozen=!1,this._dirtyWorld=!0;for(var t=0;t8?t.FORMAT_FLOAT:t.FORMAT_8BIT,t.initShaderDefines()},t.createTexture=function(t,e,i,n,s){return new Bi(t,{name:s,width:e,height:i,mipmaps:!1,format:n,addressU:1,addressV:1,type:Ve,magFilter:0,minFilter:0,anisotropy:1})};var e=t.prototype;return e.destroy=function(){this.lightsTexture8&&(this.lightsTexture8.destroy(),this.lightsTexture8=null),this.lightsTextureFloat&&(this.lightsTextureFloat.destroy(),this.lightsTextureFloat=null)},e.setCompressionRanges=function(t,e){this.invMaxColorValue=1/e,this.invMaxAttenuation=1/t},e.setBounds=function(t,e){this.boundsMin.copy(t),this.boundsDelta.copy(e)},e.uploadTextures=function(){this.lightsTextureFloat&&(this.lightsTextureFloat.lock().set(this.lightsFloat),this.lightsTextureFloat.unlock()),this.lightsTexture8.lock().set(this.lights8),this.lightsTexture8.unlock()},e.updateUniforms=function(){this._lightsTexture8Id.setValue(this.lightsTexture8),t.lightTextureFormat===t.FORMAT_FLOAT&&this._lightsTextureFloatId.setValue(this.lightsTextureFloat),this._lightsTextureInvSizeId.setValue(this._lightsTextureInvSizeData)},e.getSpotDirection=function(t,e){e._node.getWorldTransform().getY(t).mulScalar(-1),t.normalize()},e.getLightAreaSizes=function(t){var e=t._node.getWorldTransform();return e.transformVector(dn,cn),un[0]=cn.x,un[1]=cn.y,un[2]=cn.z,e.transformVector(fn,cn),un[3]=cn.x,un[4]=cn.y,un[5]=cn.z,un},e.addLightDataFlags=function(t,e,i,n,s){t[e+0]=n?255:0,t[e+1]=64*i._shape,t[e+2]=255*i._falloffMode,t[e+3]=s?255:0},e.addLightDataColor=function(t,e,i,n,s){var a=this.invMaxColorValue,r=n?i._linearFinalColor:i._finalColor;ki.float2Bytes(r[0]*a,t,e+0,2),ki.float2Bytes(r[1]*a,t,e+2,2),ki.float2Bytes(r[2]*a,t,e+4,2),t[e+6]=s?255:0;var o=!!(1&i.mask),h=!!(2&i.mask);t[e+7]=o&&h?127:h?255:0},e.addLightDataSpotAngles=function(t,e,i){ki.float2Bytes(.499999*i._innerConeAngleCos+.5,t,e+0,2),ki.float2Bytes(.499999*i._outerConeAngleCos+.5,t,e+2,2)},e.addLightDataShadowBias=function(t,e,i){var n=i.getRenderData(null,0),s=i._getUniformBiasValues(n);ki.float2BytesRange(s.bias,t,e,-1,20,2),ki.float2Bytes(s.normalBias,t,e+2,2)},e.addLightDataPositionRange=function(t,e,i,n){var s=cn.sub2(n,this.boundsMin).div(this.boundsDelta);ki.float2Bytes(s.x,t,e+0,4),ki.float2Bytes(s.y,t,e+4,4),ki.float2Bytes(s.z,t,e+8,4),ki.float2Bytes(i.attenuationEnd*this.invMaxAttenuation,t,e+12,4)},e.addLightDataSpotDirection=function(t,e,i){this.getSpotDirection(cn,i),ki.float2Bytes(.499999*cn.x+.5,t,e+0,4),ki.float2Bytes(.499999*cn.y+.5,t,e+4,4),ki.float2Bytes(.499999*cn.z+.5,t,e+8,4)},e.addLightDataLightProjMatrix=function(t,e,i){for(var n=i.data,s=0;s<12;s++)ki.float2BytesRange(n[s],t,e+4*s,-2,2,4);for(var a=12;a<16;a++)ki.float2MantissaExponent(n[a],t,e+4*a,4)},e.addLightDataCookies=function(t,e,i){var n="rgb"===i._cookieChannel;if(t[e+0]=Math.floor(255*i.cookieIntensity),t[e+1]=n?255:0,!n){var s=i._cookieChannel;t[e+4]="rrr"===s?255:0,t[e+5]="ggg"===s?255:0,t[e+6]="bbb"===s?255:0,t[e+7]="aaa"===s?255:0}},e.addLightAtlasViewport=function(t,e,i){ki.float2Bytes(i.x,t,e+0,2),ki.float2Bytes(i.y,t,e+2,2),ki.float2Bytes(i.z/3,t,e+4,2)},e.addLightAreaSizes=function(t,e,i){for(var n=this.getLightAreaSizes(i),s=0;s<6;s++)ki.float2MantissaExponent(n[s],t,e+4*s,4)},e.addLightData=function(e,i,n){var s=2===e._type,a=e.atlasViewportAllocated,r=this.cookiesEnabled&&!!e._cookie&&a,o=this.areaLightsEnabled&&0!==e.shape,h=this.shadowsEnabled&&e.castShadows&&a,l=e._node.getPosition(),c=null,u=null;s?h?c=e.getRenderData(null,0).shadowMatrix:r&&(c=ln.evalSpotCookieMatrix(e)):(h||r)&&(u=e.atlasViewport);var d=this.lights8,f=i*this.lightsTexture8.width*4;if(this.addLightDataFlags(d,f+4*pn.FLAGS,e,s,h),this.addLightDataColor(d,f+4*pn.COLOR_A,e,n,r),s&&this.addLightDataSpotAngles(d,f+4*pn.SPOT_ANGLES,e),e.castShadows&&this.addLightDataShadowBias(d,f+4*pn.SHADOW_BIAS,e),r&&this.addLightDataCookies(d,f+4*pn.COOKIE_A,e),t.lightTextureFormat===t.FORMAT_FLOAT){var p=this.lightsFloat,m=i*this.lightsTextureFloat.width*4;if(p[m+4*mn.POSITION_RANGE+0]=l.x,p[m+4*mn.POSITION_RANGE+1]=l.y,p[m+4*mn.POSITION_RANGE+2]=l.z,p[m+4*mn.POSITION_RANGE+3]=e.attenuationEnd,s&&(this.getSpotDirection(cn,e),p[m+4*mn.SPOT_DIRECTION+0]=cn.x,p[m+4*mn.SPOT_DIRECTION+1]=cn.y,p[m+4*mn.SPOT_DIRECTION+2]=cn.z),c)for(var _=c.data,g=0;g<16;g++)p[m+4*mn.PROJ_MAT_0+g]=_[g];if(u&&(p[m+4*mn.ATLAS_VIEWPORT+0]=u.x,p[m+4*mn.ATLAS_VIEWPORT+1]=u.y,p[m+4*mn.ATLAS_VIEWPORT+2]=u.z/3),o){var v=this.getLightAreaSizes(e);p[m+4*mn.AREA_DATA_WIDTH+0]=v[0],p[m+4*mn.AREA_DATA_WIDTH+1]=v[1],p[m+4*mn.AREA_DATA_WIDTH+2]=v[2],p[m+4*mn.AREA_DATA_HEIGHT+0]=v[3],p[m+4*mn.AREA_DATA_HEIGHT+1]=v[4],p[m+4*mn.AREA_DATA_HEIGHT+2]=v[5]}}else this.addLightDataPositionRange(d,f+4*pn.POSITION_X,e,l),s&&this.addLightDataSpotDirection(d,f+4*pn.SPOT_DIRECTION_X,e),c&&this.addLightDataLightProjMatrix(d,f+4*pn.PROJ_MAT_00,c),u&&this.addLightAtlasViewport(d,f+4*pn.ATLAS_VIEWPORT_A,u),o&&this.addLightAreaSizes(d,f+4*pn.AREA_DATA_WIDTH_X,e)},t}();_n.FORMAT_FLOAT=0,_n.FORMAT_8BIT=1,_n.lightTextureFormat=_n.FORMAT_8BIT,_n.shaderDefines="";var gn=[],vn={rgbm:"decodeRGBM",rgbe:"decodeRGBE",linear:"decodeLinear"},yn={optionsContext:{},optionsContextMin:{},generateKey:function(t){var e,i=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&"chunks"!==i&&"lights"!==i&&e.push(i);return e.sort()};t===this.optionsContextMin?(this.propsMin||(this.propsMin=i(t)),e=this.propsMin):t===this.optionsContext?(this.props||(this.props=i(t)),e=this.props):e=i(t);for(var n="standard",s=0;s0){if(gn[t]e.length){for(var i=e,n=i.charAt(i.length-1),s=gn[t]-i.length,a=0;a1&&(a+="getShadowCascadeMatrix(light"+n+"_shadowMatrixPalette, light"+n+"_shadowCascadeDistances, light"+n+"_shadowCascadeCount);\n",e="(cascadeShadowMat, "+i+");\n"),a+=s+e,a+="fadeShadow(light"+n+"_shadowCascadeDistances);\n"},_nonPointShadowMapProjection:function(t,e,i,n,s){var a="("+i+", "+n+");\n";return!e._normalOffsetBias||e._isVsm?2===e._type?e._isPcf&&(t.webgl2||t.extStandardDerivatives)?"\t\t\t getShadowCoordPerspZbuffer"+a:"\t\t\t getShadowCoordPersp"+a:this._directionalShadowMapProjection(e,a,n,s,"getShadowCoordOrtho"):2===e._type?e._isPcf&&(t.webgl2||t.extStandardDerivatives)?"\t\t\t getShadowCoordPerspZbufferNormalOffset"+a:"\t\t\t getShadowCoordPerspNormalOffset"+a:this._directionalShadowMapProjection(e,a,n,s,"getShadowCoordOrthoNormalOffset")},_addVaryingIfNeeded:function(t,e,i){return t.indexOf(i)>=0?"varying "+e+" "+i+";\n":""},_getLightSourceShapeString:function(t){switch(t){case 1:return"Rect";case 2:return"Disk";case 3:return"Sphere";default:return""}},_getPassDefineString:function(t){return t===Wt?"#define PICK_PASS\n":2===t?"#define DEPTH_PASS\n":t>=3&&t<=17?"#define SHADOW_PASS\n":""},_vsAddTransformCode:function(t,e,i,n){return t+=i.transformVS},_vsAddBaseCode:function(t,e,i,n){return t+=i.baseVS,1!==n.nineSlicedMode&&2!==n.nineSlicedMode||(t+=i.baseNineSlicedVS),t},_fsAddBaseCode:function(t,e,i,n){return t+=i.basePS,1===n.nineSlicedMode?t+=i.baseNineSlicedPS:2===n.nineSlicedMode&&(t+=i.baseNineSlicedTiledPS),2===n.nineSlicedMode?t+="const float textureBias = -1000.0;\n":t+="uniform float textureBias;\n",t},_decodeFunc:function(t){return vn[t]||"decodeGamma"},_fsAddStartCode:function(t,e,i,n){return t+=i.startPS,1===n.nineSlicedMode?t+=i.startNineSlicedPS:2===n.nineSlicedMode&&(t+=i.startNineSlicedTiledPS),t},_buildShadowPassFragmentCode:function(t,e,i,n,s){var a=n.pass-3,r=Math.floor(a/6),o=a-6*r;return e.extStandardDerivatives&&!e.webgl2&&(t+="uniform vec2 polygonOffset;\n"),3===o?e.textureFloatHighPrecision?t+="#define VSM_EXPONENT 15.0\n\n":t+="#define VSM_EXPONENT 5.54\n\n":2===o&&(t+="#define VSM_EXPONENT 5.54\n\n"),0!==r&&(t+="uniform vec3 view_position;\n",t+="uniform float light_radius;\n"),t+=s,n.alphaTest&&(t+="uniform float textureBias;",t+="float dAlpha;\n",t+=this._addMap("opacity","opacityPS",n,i),t+=i.alphaTestPS),0!==o||e.webgl2&&1!==r?1===o&&(t+="vec2 encodeFloatRG( float v ) {\n",t+="\t\tvec2 enc = vec2(1.0, 255.0) * v;\n",t+="\t\tenc = fract(enc);\n",t+="\t\tenc -= enc.yy * vec2(1.0/255.0, 1.0/255.0);\n",t+="\t\treturn enc;\n",t+="}\n\n"):t+=i.packDepthPS,t+="void main(void)\n{\n",n.alphaTest&&(t+="\t getOpacity();\n",t+="\t alphaTest(dAlpha);\n"),t+=1===r||(1===o||2===o||3===o)&&0!==r?"\t float depth = min(distance(view_position, vPositionW) / light_radius, 0.99999);\n":"\t float depth = gl_FragCoord.z;\n",0!==o||e.webgl2&&(1!==r||n.clusteredLightingEnabled)?0===o||4===o?(t+="\t gl_FragColor = vec4(1.0);\n",n.clusteredLightingEnabled&&1===r&&e.webgl2&&(t+="\t gl_FragDepth = depth;\n")):t+=1===o?"\t gl_FragColor = vec4(encodeFloatRG(depth), encodeFloatRG(depth*depth));\n":i.storeEVSMPS:e.extStandardDerivatives&&!e.webgl2?(t+="\t float minValue = 2.3374370500153186e-10; //(1.0 / 255.0) / (256.0 * 256.0 * 256.0);\n",t+="\t depth += polygonOffset.x * max(abs(dFdx(depth)), abs(dFdy(depth))) + minValue * polygonOffset.y;\n",t+="\t gl_FragColor = packFloat(depth);\n"):t+="\t gl_FragColor = packFloat(depth);\n",t+="}\n"},createShaderDefinition:function(t,e){var i=e.lights.length>0;e.dirLightMap&&(i=!0),e.clusteredLightingEnabled&&(i=!0),0===e.shadingModel?(e.fresnelModel=0,e.specularAntialias=!1,e.ambientSH=!1):e.fresnelModel=0===e.fresnelModel?2:e.fresnelModel;var n=!!e.reflectionSource;e.useSpecular||(e.specularMap=e.glossMap=null);var s=e.pass>=3&&e.pass<=17,a=i||n||e.ambientSH||e.heightMap||e.enableGGXSpecular||e.clusteredLightingEnabled&&!s||e.clearCoatNormalMap;this.options=e;var r,o,h="",l="",c="",u=ci,d={vertex_position:le};if(e.chunks){var f={};for(var p in u)u.hasOwnProperty(p)&&(e.chunks[p]?((o=e.chunks[p]).indexOf("vertex_normal")>=0&&(d.vertex_normal=ce),o.indexOf("vertex_tangent")>=0&&(d.vertex_tangent=ue),o.indexOf("vertex_texCoord0")>=0&&(d.vertex_texCoord0=_e),o.indexOf("vertex_texCoord1")>=0&&(d.vertex_texCoord1=ge),o.indexOf("vertex_color")>=0&&(d.vertex_color=pe),o.indexOf("vertex_boneWeights")>=0&&(d.vertex_boneWeights=de),o.indexOf("vertex_boneIndices")>=0&&(d.vertex_boneIndices=fe),f[p]=o):f[p]=u[p]);u=f}h+=this._getPassDefineString(e.pass),h=this._vsAddBaseCode(h,t,u,e),l+="\t vPositionW\t\t= getWorldPosition();\n",2===e.pass&&(h+="varying float vDepth;\n",h+="#ifndef VIEWMATRIX\n",h+="#define VIEWMATRIX\n",h+="uniform mat4 matrix_view;\n",h+="#endif\n",h+="#ifndef CAMERAPLANES\n",h+="#define CAMERAPLANES\n",h+="uniform vec4 camera_params;\n\n",h+="#endif\n",l+="\t\tvDepth = -(matrix_view * vec4(vPositionW,1.0)).z * camera_params.x;\n"),e.useInstancing&&(d.instance_line1=Be,d.instance_line2=Ne,d.instance_line3=Ue,d.instance_line4=ze,h+=u.instancingVS),a&&(d.vertex_normal=ce,l+="\t vNormalW = getNormal();\n","sphereMap"===e.reflectionSource&&t.fragmentUniformsCount<=16&&(h+=u.viewNormalVS,l+="\t vNormalV\t\t= getViewNormal();\n"),(e.heightMap||e.normalMap||e.enableGGXSpecular)&&e.hasTangents?(d.vertex_tangent=ue,h+=u.tangentBinormalVS,l+="\t vTangentW\t = getTangent();\n",l+="\t vBinormalW\t= getBinormal();\n"):e.enableGGXSpecular&&(h+=u.tangentBinormalVS,l+="\t vObjectSpaceUpW\t= getObjectSpaceUp();\n"));var m=[],_=[];for(var g in gn){var v=g+"Map";if(e[g+"VertexColor"]){var y=g+"VertexColorChannel";e[y]=this._correctChannel(g,e[y])}if(e[v]){var x=v+"Channel",b=v+"Transform",S=v+"Uv";e[S]=Math.min(e[S],1),e[x]=this._correctChannel(g,e[x]);var w=e[S];m[w]=!0,_[w]=_[w]||e[v]&&!e[b]}}e.forceUv1&&(m[1]=!0,_[1]=void 0===_[1]||_[1]);for(var T=0;T<2;T++)m[T]&&(d["vertex_texCoord"+T]="TEXCOORD"+T,h+=u["uv"+T+"VS"],l+="\t vec2 uv"+T+" = getUv"+T+"();\n"),_[T]&&(l+="\t vUv"+T+" = uv"+T+";\n");var A=[h,c,l,[]];for(var M in gn){var C=M+"Map";if(e[C]){var E=C+"Transform";if(e[E]){var P=C+"Uv";this._setMapTransform(A,M,e[E],e[P])}}}h=A[0],c=A[1],l=A[2],e.vertexColors&&(d.vertex_color=pe,l+="\t vVertexColor = vertex_color;\n"),(e.useMorphPosition||e.useMorphNormal)&&(e.useMorphTextureBased?(h+="#define MORPHING_TEXTURE_BASED\n",e.useMorphPosition&&(h+="#define MORPHING_TEXTURE_BASED_POSITION\n"),e.useMorphNormal&&(h+="#define MORPHING_TEXTURE_BASED_NORMAL\n"),d.morph_vertex_id=ze,h+="attribute float morph_vertex_id;\n"):(h+="#define MORPHING\n",e.useMorphPosition?(d.morph_pos0=De,d.morph_pos1=ke,d.morph_pos2=Oe,d.morph_pos3=Fe,h+="#define MORPHING_POS03\n",h+="attribute vec3 morph_pos0;\n",h+="attribute vec3 morph_pos1;\n",h+="attribute vec3 morph_pos2;\n",h+="attribute vec3 morph_pos3;\n"):e.useMorphNormal&&(d.morph_nrm0=De,d.morph_nrm1=ke,d.morph_nrm2=Oe,d.morph_nrm3=Fe,h+="#define MORPHING_NRM03\n",h+="attribute vec3 morph_nrm0;\n",h+="attribute vec3 morph_nrm1;\n",h+="attribute vec3 morph_nrm2;\n",h+="attribute vec3 morph_nrm3;\n"),e.useMorphNormal?(d.morph_nrm4=Be,d.morph_nrm5=Ne,d.morph_nrm6=Ue,d.morph_nrm7=ze,h+="#define MORPHING_NRM47\n",h+="attribute vec3 morph_nrm4;\n",h+="attribute vec3 morph_nrm5;\n",h+="attribute vec3 morph_nrm6;\n",h+="attribute vec3 morph_nrm7;\n"):(d.morph_pos4=Be,d.morph_pos5=Ne,d.morph_pos6=Ue,d.morph_pos7=ze,h+="#define MORPHING_POS47\n",h+="attribute vec3 morph_pos4;\n",h+="attribute vec3 morph_pos5;\n",h+="attribute vec3 morph_pos6;\n",h+="attribute vec3 morph_pos7;\n"))),e.skin?(d.vertex_boneWeights=de,d.vertex_boneIndices=fe,h+=pi(t,u),h+="#define SKIN\n"):e.useInstancing&&(h+="#define INSTANCING\n"),e.screenSpace&&(h+="#define SCREENSPACE\n"),e.pixelSnap&&(h+="#define PIXELSNAP\n"),h=this._vsAddTransformCode(h,t,u,e),a&&(h+=u.normalVS),h+="\n",h+=u.startVS,h+=l,h+=u.endVS;var R=h+="}",I=c;c="",c+=this._addVaryingIfNeeded(h,"vec4","vVertexColor"),c+=this._addVaryingIfNeeded(h,"vec3","vPositionW"),c+=this._addVaryingIfNeeded(h,"vec3","vNormalV"),c+=this._addVaryingIfNeeded(h,"vec3","vNormalW"),c+=this._addVaryingIfNeeded(h,"vec3","vTangentW"),c+=this._addVaryingIfNeeded(h,"vec3","vBinormalW"),c+=this._addVaryingIfNeeded(h,"vec3","vObjectSpaceUpW"),c+=this._addVaryingIfNeeded(h,"vec2","vUv0"),c+=this._addVaryingIfNeeded(h,"vec2","vUv1"),R=(c+=I)+R;var L="";if(t.webgl2?(L=_i(t),u.extensionVS&&(L+=u.extensionVS+"\n"),R=L+u.gles3VS+R):(u.extensionVS&&(L=u.extensionVS+"\n"),R=L+R),e.forceFragmentPrecision&&"highp"!==e.forceFragmentPrecision&&"mediump"!==e.forceFragmentPrecision&&"lowp"!==e.forceFragmentPrecision&&(e.forceFragmentPrecision=null),e.forceFragmentPrecision&&("highp"===e.forceFragmentPrecision&&"highp"!==t.maxPrecision&&(e.forceFragmentPrecision="mediump"),"mediump"===e.forceFragmentPrecision&&"lowp"===t.maxPrecision&&(e.forceFragmentPrecision="lowp")),h="",t.webgl2&&(h+=_i(t)),t.webgl2||(t.extStandardDerivatives&&(h+="#extension GL_OES_standard_derivatives : enable\n"),t.extTextureLod&&(h+="#extension GL_EXT_shader_texture_lod : enable\n",h+="#define SUPPORTS_TEXLOD\n")),u.extensionPS&&(h+=u.extensionPS+"\n"),t.webgl2&&(h+=u.gles3PS),h+=e.forceFragmentPrecision?"precision "+e.forceFragmentPrecision+" float;\n\n":mi(t),h+=this._getPassDefineString(e.pass),e.pass===Wt)return h+="uniform vec4 uColor;\n",h+=c,e.alphaTest&&(h+="uniform float textureBias;",h+="float dAlpha;\n",h+=this._addMap("opacity","opacityPS",e,u),h+=u.alphaTestPS),h+="void main(void)\n{\n",e.alphaTest&&(h+="\t getOpacity();\n",h+="\t alphaTest(dAlpha);\n"),h+="\t\tgl_FragColor = uColor;\n",{attributes:d,vshader:R,fshader:h+="}\n"};if(2===e.pass)return h+="varying float vDepth;\n",h+=c,h+=u.packDepthPS,e.alphaTest&&(h+="uniform float textureBias;",h+="float dAlpha;\n",h+=this._addMap("opacity","opacityPS",e,u),h+=u.alphaTestPS),h+="void main(void)\n{\n",e.alphaTest&&(h+="\t getOpacity();\n",h+="\t alphaTest(dAlpha);\n"),h+="\t\tgl_FragColor = packFloat(vDepth);\n",{attributes:d,vshader:R,fshader:h+="}\n"};if(s)return{attributes:d,vshader:R,fshader:this._buildShadowPassFragmentCode(h,t,u,e,c)};if(e.customFragmentShader)return{attributes:d,vshader:R,fshader:h+e.customFragmentShader,tag:1};h+=c,h=this._fsAddBaseCode(h,t,u,e),e.detailModes&&(h+=u.detailModesPS);var D=h;h="",e.clearCoat>0&&(h+="#define CLEARCOAT\n",h+="#define CLUSTER_CLEAR_COAT\n"),!1===e.opacityFadesSpecular&&(h+="uniform float material_alphaFade;\n");var k,O=0,F=[],B=!1,N=!1,U=!1,z=e.lights.some((function(t){return t._shape&&0!==t._shape}));e.clusteredLightingEnabled&&e.clusteredLightingAreaLightsEnabled&&(z=!0),7===t.areaLightLutFormat?(h+="#define AREA_R8_G8_B8_A8_LUTS\n",h+="#define AREA_LUTS_PRECISION lowp\n"):h+="#define AREA_LUTS_PRECISION highp\n",(z||e.clusteredLightingEnabled)&&(h+="#define AREA_LIGHTS\n",h+="uniform AREA_LUTS_PRECISION sampler2D areaLightsLutTex1;\n",h+="uniform AREA_LUTS_PRECISION sampler2D areaLightsLutTex2;\n");for(var V=0;V0?u.cubeMapProjectBoxPS:u.cubeMapProjectNonePS,h+=e.skyboxIntensity?u.envMultiplyPS:u.envConstPS),e.diffuseDetail&&(h+=this._addMap("diffuseDetail","diffuseDetailMapPS",e,u)),h+=this._addMap("diffuse","diffusePS",e,u),(3!==e.blendType||e.alphaTest||e.alphaToCoverage)&&(h+=this._addMap("opacity","opacityPS",e,u)),h+=this._addMap("emissive","emissivePS",e,u,e.emissiveFormat),i&&e.useSpecular||n){e.specularAntialias&&e.normalMap?e.normalizeNormalMap&&a?h+=u.specularAaToksvigPS:h+=u.specularAaToksvigFastPS:h+=u.specularAaNonePS;var j=e.useMetalness?"metalness":"specular";h+=this._addMap(j,j+"PS",e,u),h+=this._addMap("gloss","glossPS",e,u),2===e.fresnelModel&&(h+=u.fresnelSchlickPS)}if(e.clearCoat>0&&(h+=this._addMap("clearCoat","clearCoatPS",e,u),h+=this._addMap("clearCoatGloss","clearCoatGlossPS",e,u),h+=this._addMap("clearCoatNormal","clearCoatNormalPS",e,u)),e.heightMap){if(!e.normalMap){var Y=this._getUvSourceExpression("heightMapTransform","heightMapUv",e);e.hasTangents||(k=k.replace(/\$UV/g,Y)),h+=k}h+=this._addMap("height","parallaxPS",e,u)}var K=e.aoMap||e.aoVertexColor;if(K&&(h+=this._addMap("ao","aoPS",e,u),h+=u.aoDiffuseOccPS,e.occludeSpecular&&(1===e.occludeSpecular?h+=e.occludeSpecularFloat?u.aoSpecOccSimplePS:u.aoSpecOccConstSimplePS:h+=e.occludeSpecularFloat?u.aoSpecOccPS:u.aoSpecOccConstPS)),"envAtlas"===e.reflectionSource)h+=u.reflectionEnvPS.replace(/\$DECODE/g,this._decodeFunc(e.reflectionEncoding));else if("cubeMap"===e.reflectionSource)h+=e.fixSeams?u.fixCubemapSeamsStretchPS:u.fixCubemapSeamsNonePS,h+=u.reflectionCubePS.replace(/\$DECODE/g,this._decodeFunc(e.reflectionEncoding));else if("sphereMap"===e.reflectionSource){h+=(t.fragmentUniformsCount>16?u.reflectionSpherePS:u.reflectionSphereLowPS).replace(/\$DECODE/g,this._decodeFunc(e.reflectionEncoding))}n&&(e.clearCoat>0&&(h+=u.reflectionCCPS),e.refraction&&(h+=u.refractionPS)),e.clusteredLightingEnabled&&(h+=u.clusteredLightUtilsPS,h+=u.clusteredLightCookiesPS,F[0]=!0,F[4]=!0,U=!0),(O>0||e.clusteredLightingEnabled)&&(B&&(h+=u.shadowCascadesPS),F[0]&&(h+=u.shadowStandardPS),F[4]&&t.webgl2&&(h+=u.shadowStandardGL2PS),N&&(h+=u.shadowVSM_commonPS,F[1]&&(h+=u.shadowVSM8PS),F[2]&&(h+=t.extTextureHalfFloatLinear?u.shadowEVSMPS.replace(/\$/g,"16"):u.shadowEVSMnPS.replace(/\$/g,"16")),F[3]&&(h+=t.extTextureFloatLinear?u.shadowEVSMPS.replace(/\$/g,"32"):u.shadowEVSMnPS.replace(/\$/g,"32"))),t.webgl2||t.extStandardDerivatives||(h+=u.biasConstPS),h+=u.shadowCoordPS+u.shadowCommonPS,U&&(h+=u.shadowCoordPerspZbufferPS)),e.enableGGXSpecular&&(h+="uniform float material_anisotropy;\n"),i&&(h+=u.lightDiffuseLambertPS,(z||e.clusteredLightingEnabled)&&(h+=u.ltc)),h+="\n";var Z=!1;e.useSpecular?(h+="#define CLUSTER_SPECULAR\n",e.conserveEnergy&&(h+="#define CLUSTER_CONSERVE_ENERGY\n"),i&&(h+=0===e.shadingModel?u.lightSpecularPhongPS:e.enableGGXSpecular?u.lightSpecularAnisoGGXPS:u.lightSpecularBlinnPS),e.fresnelModel>0?e.conserveEnergy&&!z?h+=u.combineDiffuseSpecularPS:h+=u.combineDiffuseSpecularNoConservePS:n?h+=u.combineDiffuseSpecularOldPS:e.diffuseMap?h+=u.combineDiffuseSpecularNoReflPS:(h+=u.combineDiffuseSpecularNoReflSeparateAmbientPS,Z=!0)):h+=u.combineDiffusePS,e.clearCoat>0&&(h+=u.combineClearCoatPS);var $=!0;if(e.lightMap||e.lightVertexColor){var Q=e.dirLightMap&&e.useSpecular?"lightmapDirPS":"lightmapSinglePS";h+=this._addMap("light",Q,e,u,e.lightMapFormat),$=e.lightMapWithoutAmbient}$&&("ambientSH"===e.ambientSource?h+=u.ambientSHPS:"envAtlas"===e.ambientSource?h+=u.ambientEnvPS.replace(/\$DECODE/g,this._decodeFunc(e.ambientEncoding)):h+=u.ambientConstantPS),e.ambientTint&&!Z&&(h+="uniform vec3 material_ambient;\n"),e.alphaTest&&(h+=u.alphaTestPS),e.msdf&&(h+=u.msdfPS),a&&(h+=u.viewDirPS,e.useSpecular&&(h+=e.enableGGXSpecular?u.reflDirAnisoPS:u.reflDirPS));var J,tt=!1,et=!1,it=!1,nt=!1,st=!1;e.clusteredLightingEnabled&&i&&(nt=!0,tt=!0,et=!0,st=!0,h+=u.floatUnpackingPS,e.lightMaskDynamic&&(h+="\n#define CLUSTER_MESH_DYNAMIC_LIGHTS"),e.clusteredLightingCookiesEnabled&&(h+="\n#define CLUSTER_COOKIES"),e.clusteredLightingShadowsEnabled&&!e.noShadow&&(h+="\n#define CLUSTER_SHADOWS",h+="\n#define CLUSTER_SHADOW_TYPE_"+Ot[e.clusteredLightingShadowType]),e.clusteredLightingAreaLightsEnabled&&(h+="\n#define CLUSTER_AREALIGHTS"),h+=_n.shaderDefines,h+=u.clusteredLightShadowsPS,h+=u.clusteredLightPS),e.twoSidedLighting&&(h+="uniform float twoSidedLightingNegScaleFactor;\n"),h=this._fsAddStartCode(h,t,u,e),a&&(e.hasTangents||!t.extStandardDerivatives||e.fastTbn?e.twoSidedLighting?h+="\t dVertexNormalW = gl_FrontFacing ? vNormalW * twoSidedLightingNegScaleFactor : -vNormalW * twoSidedLightingNegScaleFactor;\n":h+="\t dVertexNormalW = vNormalW;\n":e.twoSidedLighting?h+="\t dVertexNormalW = normalize(gl_FrontFacing ? vNormalW * twoSidedLightingNegScaleFactor : -vNormalW * twoSidedLightingNegScaleFactor);\n":h+="\t dVertexNormalW = normalize(vNormalW);\n",(e.heightMap||e.normalMap)&&e.hasTangents&&(e.twoSidedLighting?(h+="\t dTangentW = gl_FrontFacing ? vTangentW * twoSidedLightingNegScaleFactor : -vTangentW * twoSidedLightingNegScaleFactor;\n",h+="\t dBinormalW = gl_FrontFacing ? vBinormalW * twoSidedLightingNegScaleFactor : -vBinormalW * twoSidedLightingNegScaleFactor;\n"):(h+="\t dTangentW = vTangentW;\n",h+="\t dBinormalW = vBinormalW;\n")));var at=!1;3!==e.blendType||e.alphaTest||e.alphaToCoverage?e.heightMap&&e.opacityMap?at=!0:(h+="\t getOpacity();\n",e.alphaTest&&(h+="\t alphaTest(dAlpha);\n")):h+="\t dAlpha = 1.0;\n";var rt=!1;if(a&&(h+="\t getViewDir();\n",(e.heightMap||e.normalMap||e.clearCoatNormalMap||e.enableGGXSpecular)&&(h+="\t getTBN();\n"),e.heightMap&&(h+="\t getParallax();\n"),at&&(h+="\t getOpacity();\n",e.alphaTest&&(h+="\t alphaTest(dAlpha);\n")),h+="\t getNormal();\n",e.useSpecular&&(i&&e.enableGGXSpecular&&(h+="\t getGlossiness();\n",rt=!0),h+="\t getReflDir();\n")),h+="\t getAlbedo();\n",e.clearCoat>0&&(h+="\t getClearCoat();\n",h+="\t getClearCoatGlossiness();\n",h+="\t getClearCoatNormal();\n"),(i&&e.useSpecular||n)&&(h+="\t getSpecularity();\n",rt||(h+="\t getGlossiness();\n"),z&&(h+="\t #ifdef AREA_LIGHTS\n",h+="\t dSpecularityNoFres = dSpecularity;\n",h+="\t #ifdef CLEARCOAT\n",h+="\t ccSpecularityNoFres = ccSpecularity;\n",h+="\t #endif\n",h+="\t #endif\n"),e.fresnelModel>0&&(h+="\t getFresnel();\n")),K&&(h+="\tgetAO();\n"),$&&(h+="\t addAmbient();\n",e.separateAmbient&&(h+="\n\t\t\t\t\t\t\t\t\t\tvec3 dAmbientLight = dDiffuseLight;\n\t\t\t\t\t\t\t\t\t\tdDiffuseLight = vec3(0);\n\t\t\t\t\t\t\t\t")),e.ambientTint&&!Z&&(h+="\t dDiffuseLight *= material_ambient;\n"),K&&!e.occludeDirect&&(h+="\t\toccludeDiffuse();\n"),(e.lightMap||e.lightVertexColor)&&(h+="\t addLightMap();\n"),i||n){n&&(e.clearCoat>0&&(h+="\t addReflectionCC();\n"),h+="\t addReflection();\n"),z&&(h+="\t ccReflection.rgb *= ccSpecularity;\n",h+="\t dReflection.rgb *= dSpecularity;\n",h+="\t dSpecularLight *= dSpecularity;\n",h+="\t float roughness = max((1.0 - dGlossiness) * (1.0 - dGlossiness), 0.001);\n",h+="\t calcLTCLightValues();\n");for(var ot=0;ot 0.00001) {\n",2===lt&&(J&&!ht._cookieFalloff||(h+="\t\t\t dAtten *= getSpotEffect(light"+ot+"_direction, light"+ot+"_innerConeAngle, light"+ot+"_outerConeAngle);\n",nt=!0))),h+=0!==ct?0===lt?"\t\t\t dAttenD = getLightDiffuse();\n":"\t\t\t dAttenD = get"+ut+"LightDiffuse() * 16.0;\n":"\t\t\t dAtten *= getLightDiffuse();\n",ht.castShadows&&!e.noShadow){var dt=null,ft=void 0;if(1===ht._shadowType?(dt="VSM8",ft="0.0"):2===ht._shadowType?(dt="VSM16",ft="5.54"):3===ht._shadowType?(dt="VSM32",ft=t.textureFloatHighPrecision?"15.0":"5.54"):dt=4===ht._shadowType?"PCF5x5":"PCF3x3",null!==dt)if(1===lt)r="(light"+ot+"_shadowMap, light"+ot+"_shadowParams);\n",ht._normalOffsetBias&&(h+="\t\t\t normalOffsetPointShadow(light"+ot+"_shadowParams);\n"),h+="\t\t\t dAtten *= getShadowPoint"+dt+r;else{var pt="light"+ot+"_shadowMatrix",mt="light"+ot+"_shadowParams";h+=this._nonPointShadowMapProjection(t,e.lights[ot],pt,mt,ot),2===lt&&(dt="Spot"+dt),h+="\t\t\t dAtten *= getShadow"+dt+"(light"+ot+"_shadowMap, light"+ot+"_shadowParams"+(ht._isVsm?", "+ft:"")+");\n"}}0!==ct?e.conserveEnergy&&e.useSpecular?h+="\t\t\t dDiffuseLight += mix((dAttenD * dAtten) * light"+ot+"_color"+(J?" * dAtten3":"")+", vec3(0), dLTCSpecFres);\n":h+="\t\t\t dDiffuseLight += (dAttenD * dAtten) * light"+ot+"_color"+(J?" * dAtten3":"")+";\n":z&&e.conserveEnergy&&e.useSpecular?h+="\t\t\t dDiffuseLight += mix(dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+", vec3(0), dSpecularity);\n":h+="\t\t\t dDiffuseLight += dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n",0!==ct?(e.clearCoat>0&&(h+="\t\t\t ccSpecularLight += ccLTCSpecFres * get"+ut+"LightSpecularCC() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n"),e.useSpecular&&(h+="\t\t\t dSpecularLight += dLTCSpecFres * get"+ut+"LightSpecular() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n")):z?(e.clearCoat>0&&(h+="\t\t\t ccSpecularLight += ccSpecularity * getLightSpecularCC() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n"),e.useSpecular&&(h+="\t\t\t dSpecularLight += dSpecularity * getLightSpecular() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n")):(e.clearCoat>0&&(h+="\t\t\t ccSpecularLight += getLightSpecularCC() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n"),e.useSpecular&&(h+="\t\t\t dSpecularLight += getLightSpecular() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n")),0!==lt&&(h+="\t }\n"),h+="\n"}}e.clusteredLightingEnabled&&i&&(et=!0,it=!0,tt=!0,h+="\t addClusteredLights();\n"),z&&(e.clearCoat>0&&(h+="\t ccSpecularity = 1.0;\n"),e.useSpecular&&(h+="\t dSpecularity = vec3(1);\n")),n&&e.refraction&&(h+="\t addRefraction();\n")}h+="\n",K&&(e.occludeDirect&&(h+="\t\toccludeDiffuse();\n"),e.occludeSpecular&&(h+="\t\toccludeSpecular();\n")),!1===e.opacityFadesSpecular&&(2!==e.blendType&&4!==e.blendType||(h+="float specLum = dot((dSpecularLight + dReflection.rgb * dReflection.a) * dSpecularity, vec3( 0.2126, 0.7152, 0.0722 ));\n",h+="#ifdef CLEARCOAT\n specLum += dot(ccSpecularLight * ccSpecularity + ccReflection.rgb * ccReflection.a * ccSpecularity, vec3( 0.2126, 0.7152, 0.0722 ));\n#endif\n",h+="dAlpha = clamp(dAlpha + gammaCorrectInput(specLum), 0.0, 1.0);\n"),h+="dAlpha *= material_alphaFade;\n"),h+=u.endPS,2===e.blendType||6===e.blendType||e.alphaToCoverage?h+=u.outputAlphaPS:4===e.blendType?h+=u.outputAlphaPremulPS:h+=u.outputAlphaOpaquePS,e.msdf&&(h+="\t gl_FragColor = applyMsdf(gl_FragColor);\n"),h+="\n",h+="}\n",tt&&(h=u.lightDirPointPS+h),et&&(h=u.falloffLinearPS+h),it&&(h=u.falloffInvSquaredPS+h),nt&&(h=u.spotPS+h),st&&(h=u.cookiePS+h);var _t="";return h.includes("dReflection")&&(_t+="vec4 dReflection;\n"),h.includes("dTBN")&&(_t+="mat3 dTBN;\n"),h.includes("dAlbedo")&&(_t+="vec3 dAlbedo;\n"),h.includes("dEmission")&&(_t+="vec3 dEmission;\n"),h.includes("dNormalW")&&(_t+="vec3 dNormalW;\n"),h.includes("dVertexNormalW")&&(_t+="vec3 dVertexNormalW;\n"),h.includes("dTangentW")&&(_t+="vec3 dTangentW;\n"),h.includes("dBinormalW")&&(_t+="vec3 dBinormalW;\n"),h.includes("dViewDirW")&&(_t+="vec3 dViewDirW;\n"),h.includes("dReflDirW")&&(_t+="vec3 dReflDirW;\n"),h.includes("dDiffuseLight")&&(_t+="vec3 dDiffuseLight;\n"),h.includes("dSpecularLight")&&(_t+="vec3 dSpecularLight;\n"),h.includes("dLightDirNormW")&&(_t+="vec3 dLightDirNormW;\n"),h.includes("dLightDirW")&&(_t+="vec3 dLightDirW;\n"),h.includes("dLightPosW")&&(_t+="vec3 dLightPosW;\n"),h.includes("dShadowCoord")&&(_t+="vec3 dShadowCoord;\n"),h.includes("dNormalMap")&&(_t+="vec3 dNormalMap;\n"),h.includes("dSpecularity")&&(_t+="vec3 dSpecularity;\n"),h.includes("dSpecularityNoFres")&&(_t+="vec3 dSpecularityNoFres;\n"),h.includes("dUvOffset")&&(_t+="vec2 dUvOffset;\n"),h.includes("dGlossiness")&&(_t+="float dGlossiness;\n"),h.includes("dAlpha")&&(_t+="float dAlpha;\n"),h.includes("dAtten")&&(_t+="float dAtten;\n"),h.includes("dAttenD")&&(_t+="float dAttenD;\n"),h.includes("dAtten3")&&(_t+="vec3 dAtten3;\n"),h.includes("dAo")&&(_t+="float dAo;\n"),h.includes("dMsdf")&&(_t+="vec4 dMsdf;\n"),h.includes("ccReflection")&&(_t+="vec4 ccReflection;\n"),h.includes("ccNormalW")&&(_t+="vec3 ccNormalW;\n"),h.includes("ccReflDirW")&&(_t+="vec3 ccReflDirW;\n"),h.includes("ccSpecularLight")&&(_t+="vec3 ccSpecularLight;\n"),h.includes("ccSpecularity")&&(_t+="float ccSpecularity;\n"),h.includes("ccSpecularityNoFres")&&(_t+="float ccSpecularityNoFres;\n"),h.includes("ccGlossiness")&&(_t+="float ccGlossiness;\n"),{attributes:d,vshader:R,fshader:h=D+_t+h,tag:1}}},xn={begin:vi,dummyFragmentCode:gi,end:yi,fogCode:fi,gammaCode:ui,precisionCode:mi,skinCode:pi,tonemapCode:di,versionCode:_i,basic:Ei,particle:Pi,skybox:Ri,standard:yn},bn=2.399963229728653,Sn=function(t,e,i){var n=e*bn,s=Math.sqrt(e)/Math.sqrt(i);t.x=s*Math.cos(n),t.y=s*Math.sin(n)},wn=function(t,e,i,n,s){void 0===n&&(n=0),void 0===s&&(s=1),n=1-2*n,s=1-2*s;var a=rt.lerp(n,s,e/i),r=Math.sqrt(1-a*a),o=bn*e;t.x=Math.cos(o)*r,t.y=a,t.z=Math.sin(o)*r},Tn=function(t){var e=(t<<16|t>>>16)>>>0;return 2.3283064365386963e-10*(e=((16711935&(e=((252645135&(e=((858993459&(e=((1431655765&e)<<1|(2863311530&e)>>>1)>>>0))<<2|(3435973836&e)>>>2)>>>0))<<4|(4042322160&e)>>>4)>>>0))<<8|(4278255360&e)>>>8)>>>0)},An=function(t){switch(t.type){case We:return"RGBM";case Ge:return"RGBE";default:switch(t.format){case te:case ie:case ee:case ne:return"Linear";default:return"Gamma"}}},Mn=function(t){switch(t===Xe&&(t=je),t){case qe:return"Cubemap";case je:return"Equirect";case Ye:return"Octahedral"}},Cn=function(t,e,i){if(t<=0)e[i+0]=0,e[i+1]=0,e[i+2]=0,e[i+3]=0;else if(t>=1)e[i+0]=255,e[i+1]=0,e[i+2]=0,e[i+3]=0;else{var n=1*t%1,s=255*t%1,a=65025*t%1,r=16581375*t%1;n-=s/255,s-=a/255,a-=r/255,e[i+0]=Math.min(255,Math.floor(256*n)),e[i+1]=Math.min(255,Math.floor(256*s)),e[i+2]=Math.min(255,Math.floor(256*a)),e[i+3]=Math.min(255,Math.floor(256*r))}},En=function(t,e,i,n){var s=2*i*Math.PI,a=Math.pow(1-e,1/(n+1)),r=Math.sqrt(1-a*a);t.set(Math.cos(s)*r,Math.sin(s)*r,a).normalize()},Pn=function(t,e,i){var n=2*i*Math.PI,s=Math.sqrt(1-e),a=Math.sqrt(e);t.set(Math.cos(n)*a,Math.sin(n)*a,s).normalize()},Rn=function(t,e,i,n){var s=2*i*Math.PI,a=Math.sqrt((1-e)/(1+(n*n-1)*e)),r=Math.sqrt(1-a*a);t.set(Math.cos(s)*r,Math.sin(s)*r,a).normalize()},In=function(t,e){var i=t*e,n=e/(1-t*t+i*i);return n*n*(1/Math.PI)},Ln={16:{2:26,8:20,32:17,128:16,512:16},32:{2:53,8:40,32:34,128:32,512:32},128:{2:214,8:163,32:139,128:130,512:128},1024:{2:1722,8:1310,32:1114,128:1041,512:1025}},Dn=function(t,e,i){for(var n=i/t,s=1-Math.log2(e)/11,a=s*s,r=new ft,o=new ft,h=new ft(0,0,1),l=[],c=function(t,e){var i=Ln[t];return i&&i[e]||t}(t,e),u=0;u0){var f=In(Math.min(1,d),a)/4+.001,p=.5*Math.log2(n/f);l.push(o.x,o.y,o.z,p)}}for(;l.length<4*t;)l.push(0,0,0,0);return l},kn=function(t,e,i){var n=function(t){for(var e=t.length,i=Math.min(e,512),n=Math.ceil(e/i),s=new Uint8Array(i*n*4),a=0,r=0;r>2*d),rect:l,seamPixels:h}),l.y+=l.w,l.z=Math.max(1,Math.floor(.5*l.z)),l.w=Math.max(1,Math.floor(.5*l.w))}return l.set(128*h,384*h,64*h,32*h),Gn(t,o,{numSamples:(null==(a=e)?void 0:a.numAmbientSamples)||2048,distribution:"lambert",rect:l,seamPixels:h}),o},t.generatePrefilteredAtlas=function(t,e){var i,n,s,a;void 0===e&&(e=null);for(var r,o=t[0].device,h=(null==(i=e)?void 0:i.target)||new Bi(o,{width:(null==(n=e)?void 0:n.size)||512,height:(null==(s=e)?void 0:s.size)||512,format:7,type:We,projection:je,addressU:1,addressV:1,mipmaps:!1}),l=h.width/512,c=new _t(0,0,512*l,256*l),u=Hn(512),d=0;d0,t.forceFragmentPrecision=i.forceFragmentPrecision||"",t.chunks=i.chunks||"",t.blendType=i.blendType,t.forceUv1=i.forceUv1,t.separateAmbient=!1,t.screenSpace=n&&0!=(n&Bt),t.skin=n&&0!=(2&n),t.useInstancing=n&&0!=(32&n),t.useMorphPosition=n&&0!=(n&Nt),t.useMorphNormal=n&&0!=(n&Ut),t.useMorphTextureBased=n&&0!=(n&zt),t.nineSlicedMode=i.nineSlicedMode||0,e.clusteredLightingEnabled&&(t.clusteredLightingEnabled=!0,t.clusteredLightingCookiesEnabled=e.lighting.cookiesEnabled,t.clusteredLightingShadowsEnabled=e.lighting.shadowsEnabled,t.clusteredLightingShadowType=e.lighting.shadowType,t.clusteredLightingAreaLightsEnabled=e.lighting.areaLightsEnabled)},e._updateUVOptions=function(t,e,i,n){var s=!1,a=!1,r=!1;for(var o in i&&(s=0!=(4&i),a=0!=(8&i),r=0!=(16&i)),t.vertexColors=!1,this._mapXForms=[],gn)this._updateTexOptions(t,e,o,s,a,r,n);this._mapXForms=null},e._updateMinOptions=function(t,e){t.opacityTint=1!==e.opacity&&3!==e.blendType,t.lights=[]},e._updateMaterialOptions=function(t,e){var i,n=(e.diffuseTint||!e.diffuseMap&&!e.diffuseVertexColor)&&$n(e.diffuse),s=!!(e.useMetalness||e.specularMap||e.sphereMap||e.cubeMap||(i=e.specular,0!==i.r||0!==i.g||0!==i.b)||e.enableGGXSpecular||e.clearCoat>0),a=s&&!e.useMetalness&&(e.specularTint||!e.specularMap&&!e.specularVertexColor)&&$n(e.specular),r=!e.emissiveMap||$n(e.emissive)&&e.emissiveTint,o=1!==e.emissiveIntensity,h=!!e.normalMap&&(e.normalMap.format===Jt||e.normalMap.type===He);t.opacityTint=1!==e.opacity&&3!==e.blendType?1:0,t.blendMapsWithColors=!0,t.ambientTint=e.ambientTint,t.diffuseTint=n?2:0,t.specularTint=a?2:0,t.metalnessTint=e.useMetalness&&e.metalness<1?1:0,t.glossTint=1,t.emissiveTint=(r?2:0)+(o?1:0),t.alphaToCoverage=e.alphaToCoverage,t.normalizeNormalMap=e.normalizeNormalMap,t.ambientSH=!!e.ambientSH,t.useSpecular=s,t.emissiveFormat=e.emissiveMap?e.emissiveMap.type===We?1:e.emissiveMap.format===ne?2:0:null,t.lightMapFormat=e.lightMap?e.lightMap.type===We?1:e.lightMap.format===ne?2:0:null,t.specularAntialias=e.specularAntialias&&!!e.normalMap&&!!e.normalMap.mipmaps&&!h,t.conserveEnergy=e.conserveEnergy,t.opacityFadesSpecular=e.opacityFadesSpecular,t.alphaFade=e.alphaFade,t.occludeSpecular=e.occludeSpecular,t.occludeSpecularFloat=1!==e.occludeSpecularIntensity,t.occludeDirect=e.occludeDirect,t.shadingModel=e.shadingModel,t.fresnelModel=e.fresnelModel,t.packedNormal=h,t.fastTbn=e.fastTbn,t.cubeMapProjection=e.cubeMapProjection,t.customFragmentShader=e.customFragmentShader,t.refraction=!!e.refraction,t.useMetalness=e.useMetalness,t.enableGGXSpecular=e.enableGGXSpecular,t.msdf=!!e.msdfMap,t.twoSidedLighting=e.twoSidedLighting,t.pixelSnap=e.pixelSnap,t.aoMapUv=e.aoUvSet,t.diffuseDetail=!!e.diffuseMap,t.normalDetail=!!e.normalMap,t.diffuseDetailMode=e.diffuseDetailMode,t.detailModes=!!t.diffuseDetail,t.clearCoat=!!e.clearCoat,t.clearCoatTint=1!==e.clearCoat?1:0,t.clearCoatGlossiness=!!e.clearCoatGlossiness,t.clearCoatGlossTint=1!==e.clearCoatGlossiness?1:0},e._updateEnvOptions=function(t,e,i,n){t.fog=i.useFog?n.fog:"none",t.gamma=i.useGammaTonemap?n.gammaCorrection:0,t.toneMap=i.useGammaTonemap?n.toneMapping:-1,t.useRgbm=i.emissiveMap&&i.emissiveMap.type===We||i.lightMap&&i.lightMap.type===We,t.fixSeams=!!i.cubeMap&&i.cubeMap.fixCubemapSeams;var s=0===i.shadingModel,a=!1;if(i.envAtlas&&!s?(t.reflectionSource="envAtlas",t.reflectionEncoding=i.envAtlas.encoding):i.cubeMap?(t.reflectionSource="cubeMap",t.reflectionEncoding=i.cubeMap.encoding):i.sphereMap?(t.reflectionSource="sphereMap",t.reflectionEncoding=i.sphereMap.encoding):i.useSkybox&&n.envAtlas&&!s?(t.reflectionSource="envAtlas",t.reflectionEncoding=n.envAtlas.encoding,a=!0):(t.reflectionSource=null,t.reflectionEncoding=null),i.ambientSH&&!s)t.ambientSource="ambientSH",t.ambientEncoding=null;else{var r=i.envAtlas||(i.useSkybox&&n.envAtlas?n.envAtlas:null);r&&!s?(t.ambientSource="envAtlas",t.ambientEncoding=r.encoding):(t.ambientSource="constant",t.ambientEncoding=null)}t.skyboxIntensity=a&&1!==n.skyboxIntensity,t.useCubeMapRotation=a&&n.skyboxRotation&&!n.skyboxRotation.equals(wt.IDENTITY)},e._updateLightOptions=function(t,e,i,n,s){if(t.lightMap=!1,t.lightMapChannel="",t.lightMapUv=0,t.lightMapTransform=0,t.lightMapWithoutAmbient=!1,t.dirLightMap=!1,i&&(t.noShadow=0!=(1&i),0!=(64&i)&&(t.lightMapFormat=1,t.lightMap=!0,t.lightMapChannel="rgb",t.lightMapUv=1,t.lightMapTransform=0,t.lightMapWithoutAmbient=!e.lightMap,t.useRgbm=!0,0!=(i&Ft)&&(t.dirLightMap=!0),0!=(i&Vt)&&(t.lightMapWithoutAmbient=!1))),e.useLighting){var a=[],r=i?i>>16:1;t.lightMaskDynamic=!!(1&r),n&&(this._collectLights(0,n[0],a,r),this._collectLights(1,n[1],a,r,s),this._collectLights(2,n[2],a,r,s)),t.lights=a}else t.lights=[];0===t.lights.length&&(t.noShadow=!0)},e._updateTexOptions=function(t,e,i,n,s,a,r){var o=i+"Map",h=i+"VertexColor",l=i+"VertexColorChannel",c=o+"Channel",u=o+"Transform",d=o+"Uv";"light"!==i&&(t[o]=!1,t[c]="",t[u]=0,t[d]=0),t[h]=!1,t[l]="";var f="opacity"===i;if(f&&3===e.blendType&&0===e.alphaTest&&!e.alphaToCoverage)return t;if((!r||f)&&("height"!==i&&e[h]&&a&&(t[h]=e[h],t[l]=e[l],t.vertexColors=!0),e[o])){var p=!0;0!==e[d]||n||(p=!1),1!==e[d]||s||(p=!1),p&&(t[o]=!!e[o],t[u]=this._getMapTransformID(e.getUniform(u),e[d]),t[c]=e[c],t[d]=e[d])}},e._collectLights=function(t,e,i,n,s){for(var a=0;a0&&(this._setParameter("material_clearCoat",this.clearCoat),this._setParameter("material_clearCoatGlossiness",this.clearCoatGlossiness),this._setParameter("material_clearCoatReflectivity",this.clearCoat),this._setParameter("material_clearCoatBumpiness",this.clearCoatBumpiness)),this._setParameter("material_shininess",n("shininess")),this.emissiveMap&&!this.emissiveTint||this._setParameter("material_emissive",n("emissive")),1!==this.emissiveIntensity&&this._setParameter("material_emissiveIntensity",this.emissiveIntensity),this.refraction>0&&(this._setParameter("material_refraction",this.refraction),this._setParameter("material_refractionIndex",this.refractionIndex)),this._setParameter("material_opacity",this.opacity),!1===this.opacityFadesSpecular&&this._setParameter("material_alphaFade",this.alphaFade),this.occludeSpecular&&this._setParameter("material_occludeSpecularIntensity",this.occludeSpecularIntensity),1===this.cubeMapProjection&&this._setParameter(n("cubeMapProjectionBox")),gn)this._updateMap(s);this.ambientSH&&this._setParameter("ambientSH[0]",this.ambientSH),this.normalMap&&this._setParameter("material_bumpiness",this.bumpiness),this.normalMap&&this.normalDetailMap&&this._setParameter("material_normalDetailMapBumpiness",this.normalDetailMapBumpiness),this.heightMap&&this._setParameter("material_heightMapFactor",n("heightMapFactor")),this.cubeMap&&this._setParameter("texture_cubeMap",this.cubeMap),this.sphereMap&&this._setParameter("texture_sphereMap",this.sphereMap),this._setParameter("material_reflectivity",this.reflectivity),this._processParameters("_activeParams"),this._dirtyShader&&(this.shader=null,this.clearVariants())},i.updateEnvUniforms=function(t,e){var i=this.envAtlas||(this.useSkybox?e.envAtlas:null);i&&(this._setParameter("texture_envAtlas",i),this.useSkybox&&!e.skyboxRotation.equals(wt.IDENTITY)&&e._skyboxRotationMat3&&this._setParameter("cubeMapRotationMatrix",e._skyboxRotationMat3.data)),this._processParameters("_activeLightingParams")},i.updateShader=function(t,e,i,n,s,a){this.updateEnvUniforms(t,e);var r=s>1&&s<=Wt,o=r?yn.optionsContextMin:yn.optionsContext;r?this.shaderOptBuilder.updateMinRef(o,t,e,this,i,n,s,a):this.shaderOptBuilder.updateRef(o,t,e,this,i,n,s,a),this.onUpdateShader&&(o=this.onUpdateShader(o));var h=t.getProgramLibrary();this.shader=h.getProgram("standard",o),i||(this.clearVariants(),this.variants[0]=this.shader),this._dirtyShader=!1},i.destroy=function(){for(var e in this._assetReferences)this._assetReferences[e]._unbind();this._assetReferences=null,t.prototype.destroy.call(this)},q(e,[{key:"chunks",get:function(){return this._dirtyShader=!0,this._chunks},set:function(t){this._dirtyShader=!0,this._chunks=t}}]),e}(Kn);os.TEXTURE_PARAMETERS=ts,os.CUBEMAP_PARAMETERS=is;var hs=function(t,e){as[t]=e},ls=function(t,e,i,n){Object.defineProperty(os.prototype,t,{get:n||function(){return this["_"+t]},set:i}),ss[t]={value:e}},cs=function(t){return t.defaultValue&&t.defaultValue.clone?function(t){var e="_"+t.name,i=t.dirtyShaderFunc||function(){return!0};ls(t.name,(function(){return t.defaultValue.clone()}),(function(t){var n=this[e];n.equals(t)||(this._dirtyShader=this._dirtyShader||i(n,t),this[e]=n.copy(t))}),t.getterFunc)}(t):function(t){var e="_"+t.name,i=t.dirtyShaderFunc||function(){return!0};ls(t.name,(function(){return t.defaultValue}),(function(t){var n=this[e];n!==t&&(this._dirtyShader=this._dirtyShader||i(n,t),this[e]=t)}),t.getterFunc)}(t)};function us(t,e,i,n,s,a){gn[t]=i,cs({name:t+"Map",defaultValue:null,dirtyShaderFunc:function(t,e){return!!t!=!!e||t&&(t.type!==e.type||t.fixCubemapSeams!==e.fixCubemapSeams||t.format!==e.format)}}),cs({name:t+"MapTiling",defaultValue:new mt(1,1)}),cs({name:t+"MapOffset",defaultValue:new mt(0,0)}),cs({name:t+"MapRotation",defaultValue:0}),cs({name:t+"MapUv",defaultValue:e}),i>0&&cs({name:t+"MapChannel",defaultValue:n||(i>1?"rgb":"g")}),s&&(cs({name:t+"VertexColor",defaultValue:!1}),i>0&&cs({name:t+"VertexColorChannel",defaultValue:n||(i>1?"rgb":"g")})),a&&cs({name:t+"Mode",defaultValue:"mul"});var r=t+"MapTiling",o=t+"MapOffset",h=t+"MapRotation",l=t+"MapTransform";hs(l,(function(t,e,i){var n=t[r],s=t[o],a=t[h];if(1===n.x&&1===n.y&&0===s.x&&0===s.y&&0===a)return null;var c=t._allocUniform(l,(function(){return[{name:"texture_"+l+"0",value:new Float32Array(3)},{name:"texture_"+l+"1",value:new Float32Array(3)}]})),u=Math.cos(a*rt.DEG_TO_RAD),d=Math.sin(a*rt.DEG_TO_RAD),f=c[0].value;f[0]=u*n.x,f[1]=-d*n.y,f[2]=s.x;var p=c[1].value;return p[0]=d*n.x,p[1]=u*n.y,p[2]=1-n.y-s.y,c}))}function ds(t,e){cs({name:t,defaultValue:e,getterFunc:function(){return this._dirtyShader=!0,this["_"+t]}}),hs(t,(function(e,i,n){var s=e._allocUniform(t,(function(){return new Float32Array(3)})),a=e[t];return e.useGammaTonemap&&n.gammaCorrection?(s[0]=Math.pow(a.r,2.2),s[1]=Math.pow(a.g,2.2),s[2]=Math.pow(a.b,2.2)):(s[0]=a.r,s[1]=a.g,s[2]=a.b),s}))}function fs(t,e,i){cs({name:t,defaultValue:e,dirtyShaderFunc:function(t,e){return(0===t||1===t)!=(0===e||1===e)}}),hs(t,i)}function ps(t,e){cs({name:t,defaultValue:null,dirtyShaderFunc:function(t,e){return!!t==!!e}}),hs(t,e)}function ms(t,e){cs({name:t,defaultValue:e})}!function(){ds("ambient",new lt(.7,.7,.7)),ds("diffuse",new lt(1,1,1)),ds("specular",new lt(0,0,0)),ds("emissive",new lt(0,0,0)),fs("emissiveIntensity",1),fs("shininess",25,(function(t,e,i){return 0===t.shadingModel?Math.pow(2,.01*t.shininess*11):.01*t.shininess})),fs("heightMapFactor",1,(function(t,e,i){return.025*t.heightMapFactor})),fs("opacity",1),fs("alphaFade",1),fs("alphaTest",0),fs("bumpiness",1),fs("normalDetailMapBumpiness",1),fs("reflectivity",1),fs("occludeSpecularIntensity",1),fs("refraction",0),fs("refractionIndex",1/1.5),fs("metalness",1),fs("anisotropy",0),fs("clearCoat",0),fs("clearCoatGlossiness",1),fs("clearCoatBumpiness",1),fs("aoUvSet",0,null),ps("ambientSH"),ps("cubeMapProjectionBox",(function(t,e,i){var n=t._allocUniform("cubeMapProjectionBox",(function(){return[{name:"envBoxMin",value:new Float32Array(3)},{name:"envBoxMax",value:new Float32Array(3)}]})),s=t.cubeMapProjectionBox.getMin(),a=n[0].value;a[0]=s.x,a[1]=s.y,a[2]=s.z;var r=t.cubeMapProjectionBox.getMax(),o=n[1].value;return o[0]=r.x,o[1]=r.y,o[2]=r.z,n})),ms("ambientTint",!1),ms("diffuseTint",!1),ms("specularTint",!1),ms("emissiveTint",!1),ms("fastTbn",!1),ms("specularAntialias",!1),ms("useMetalness",!1),ms("enableGGXSpecular",!1),ms("occludeDirect",!1),ms("normalizeNormalMap",!0),ms("conserveEnergy",!0),ms("opacityFadesSpecular",!0),ms("occludeSpecular",1),ms("shadingModel",1),ms("fresnelModel",2),ms("cubeMapProjection",0),ms("customFragmentShader",null),ms("forceFragmentPrecision",null),ms("useFog",!0),ms("useLighting",!0),ms("useGammaTonemap",!0),ms("useSkybox",!0),ms("forceUv1",!1),ms("pixelSnap",!1),ms("twoSidedLighting",!1),ms("nineSlicedMode",void 0),us("diffuse",0,3,"",!0),us("specular",0,3,"",!0),us("emissive",0,3,"",!0),us("normal",0,-1,"",!1),us("metalness",0,1,"",!0),us("gloss",0,1,"",!0),us("opacity",0,1,"a",!0),us("height",0,1,"",!1),us("ao",0,1,"",!0),us("light",1,3,"",!0),us("msdf",0,3,"",!1),us("diffuseDetail",0,3,"",!1,!0),us("normalDetail",0,-1,"",!1),us("clearCoat",0,1,"",!0),us("clearCoatGloss",0,1,"",!0),us("clearCoatNormal",0,-1,"",!1),ps("cubeMap"),ps("sphereMap"),ps("envAtlas");var t=[null,null,null,null,null,null];ls("prefilteredCubemaps",(function(){return t.slice()}),(function(t){var e=this._prefilteredCubemaps;t=t||[];for(var i=!1,n=!0,s=0;s<6;++s){var a=t[s]||null;e[s]!==a&&(e[s]=a,i=!0),n=n&&!!e[s]}i&&(n?this.envAtlas=Xn.generatePrefilteredAtlas(e,{target:this.envAtlas}):this.envAtlas&&(this.envAtlas.destroy(),this.envAtlas=null),this._dirtyShader=!0)}),(function(){return this._prefilteredCubemaps}))}();var _s=function(){function t(t){this._device=t,this._cache={},this._generators={},this._isClearingCache=!1,this._precached=!1,this._programsCollection=[],this._defaultStdMatOption={},this._defaultStdMatOptionMin={};var e=new os;e.shaderOptBuilder.updateRef(this._defaultStdMatOption,t,{},e,null,[],0,null,null),e.shaderOptBuilder.updateMinRef(this._defaultStdMatOptionMin,t,{},e,null,[],3,null,null)}var e=t.prototype;return e.register=function(t,e){this.isRegistered(t)||(this._generators[t]=e)},e.unregister=function(t){this.isRegistered(t)&&delete this._generators[t]},e.isRegistered=function(t){return void 0!==this._generators[t]},e.getProgram=function(t,e){var i=this._generators[t];if(void 0===i)return null;var n=this._device,s=i.generateKey(e),a=this._cache[s];if(!a){var r;e.lights&&(r=e.lights,e.lights=r.map((function(t){var e=t.clone?t.clone():t;return e.key=t.key,e}))),this.storeNewProgram(t,e),e.lights&&(e.lights=r),this._precached&&console.warn("ProgramLibrary#getProgram: Cache miss for shader "+t+" key "+s+" after shaders precaching");var o=i.createShaderDefinition(n,e);a=this._cache[s]=new li(n,o)}return a},e.storeNewProgram=function(t,e){var i={};if("standard"===t){var n=this._getDefaultStdMatOptions(e.pass);for(var s in e)(e.hasOwnProperty(s)&&n[s]!==e[s]||"pass"===s)&&(i[s]=e[s])}else i=e;this._programsCollection.push(JSON.stringify({name:t,options:i}))},e.dumpPrograms=function(){var t="let device = pc.app ? pc.app.graphicsDevice : pc.Application.getApplication().graphicsDevice;\n";t+="let shaders = [",this._programsCollection[0]&&(t+="\n\t"+this._programsCollection[0]);for(var e=1;e1&&t<=Wt?this._defaultStdMatOptionMin:this._defaultStdMatOption},e.precompile=function(t){if(t)for(var e=new Array(t.length),i=0;ie)if(ArrayBuffer.isView(t))t=t.subarray(0,e),i.set(t);else for(var n=0;nthis.vertexBuffer.numVertices&&(i=this.vertexBuffer.numVertices);var s=n.numComponents;if(this.vertexBuffer.getFormat().interleaved)for(var a=0,r=0;ri*s){var o=i*s;if(ArrayBuffer.isView(e))e=e.subarray(0,o),n.array.set(e);else for(var h=0;he||n>e){var s=e/Math.max(i,n),a=Math.floor(i*s),r=Math.floor(n*s),o=document.createElement("canvas");return o.width=a,o.height=r,o.getContext("2d").drawImage(t,0,0,i,n,0,0,a,r),o}return t}var Zs=function(){function t(){this._glTexture=null,this._glTarget=void 0,this._glFormat=void 0,this._glInternalFormat=void 0,this._glPixelType=void 0}var e=t.prototype;return e.destroy=function(t){if(this._glTexture){for(var e=0;et.maxCubeMapSize||h.height>t.maxCubeMapSize)&&(h=Ks(h,t.maxCubeMapSize),0===a&&(e._width=h.width,e._height=h.height)),t.setUnpackFlipY(!1),t.setUnpackPremultiplyAlpha(e._premultiplyAlpha),i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+o,a,this._glInternalFormat,this._glFormat,this._glPixelType,h)}}else for(s=1/Math.pow(2,a),o=0;o<6;o++)if(e._levelsUpdated[0][o]){var l=n[o];e._compressed?i.compressedTexImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+o,a,this._glInternalFormat,Math.max(e._width*s,1),Math.max(e._height*s,1),0,l):(t.setUnpackFlipY(!1),t.setUnpackPremultiplyAlpha(e._premultiplyAlpha),i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+o,a,this._glInternalFormat,Math.max(e._width*s,1),Math.max(e._height*s,1),0,this._glFormat,this._glPixelType,l))}}else e._volume?(s=1/Math.pow(2,a),e._compressed?i.compressedTexImage3D(i.TEXTURE_3D,a,this._glInternalFormat,Math.max(e._width*s,1),Math.max(e._height*s,1),Math.max(e._depth*s,1),0,n):(t.setUnpackFlipY(!1),t.setUnpackPremultiplyAlpha(e._premultiplyAlpha),i.texImage3D(i.TEXTURE_3D,a,this._glInternalFormat,Math.max(e._width*s,1),Math.max(e._height*s,1),Math.max(e._depth*s,1),0,this._glFormat,this._glPixelType,n))):(t._isBrowserInterface(n)?(n instanceof HTMLImageElement&&(n.width>t.maxTextureSize||n.height>t.maxTextureSize)&&(n=Ks(n,t.maxTextureSize),0===a&&(e._width=n.width,e._height=n.height)),t.setUnpackFlipY(e._flipY),t.setUnpackPremultiplyAlpha(e._premultiplyAlpha),i.texImage2D(i.TEXTURE_2D,a,this._glInternalFormat,this._glFormat,this._glPixelType,n)):(s=1/Math.pow(2,a),e._compressed?i.compressedTexImage2D(i.TEXTURE_2D,a,this._glInternalFormat,Math.max(Math.floor(e._width*s),1),Math.max(Math.floor(e._height*s),1),0,n):(t.setUnpackFlipY(!1),t.setUnpackPremultiplyAlpha(e._premultiplyAlpha),i.texImage2D(i.TEXTURE_2D,a,this._glInternalFormat,Math.max(e._width*s,1),Math.max(e._height*s,1),0,this._glFormat,this._glPixelType,n))),e._mipmapsUploaded=0!==a);a++}else a++;if(e._needsUpload)if(e._cubemap)for(var c=0;c<6;c++)e._levelsUpdated[0][c]=!1;else e._levelsUpdated[0]=!1;!e._compressed&&e._mipmaps&&e._needsMipmapsUpload&&(e.pot||t.webgl2)&&1===e._levels.length&&(i.generateMipmap(this._glTarget),e._mipmapsUploaded=!0),e._gpuSize&&e.adjustVramSizeTracking(t._vram,-e._gpuSize),e._gpuSize=e.gpuSize,e.adjustVramSizeTracking(t._vram,e._gpuSize)}},t}(),$s=function(){function t(){this._glFrameBuffer=null,this._glDepthBuffer=null,this._glResolveFrameBuffer=null,this._glMsaaColorBuffer=null,this._glMsaaDepthBuffer=null}var e=t.prototype;return e.destroy=function(t){var e=t.gl;this._glFrameBuffer&&(e.deleteFramebuffer(this._glFrameBuffer),this._glFrameBuffer=null),this._glDepthBuffer&&(e.deleteRenderbuffer(this._glDepthBuffer),this._glDepthBuffer=null),this._glResolveFrameBuffer&&(e.deleteFramebuffer(this._glResolveFrameBuffer),this._glResolveFrameBuffer=null),this._glMsaaColorBuffer&&(e.deleteRenderbuffer(this._glMsaaColorBuffer),this._glMsaaColorBuffer=null),this._glMsaaDepthBuffer&&(e.deleteRenderbuffer(this._glMsaaDepthBuffer),this._glMsaaDepthBuffer=null)},e.init=function(t,e){var i=t.gl;this._glFrameBuffer=i.createFramebuffer(),t.setFramebuffer(this._glFrameBuffer);var n=e._colorBuffer;n&&(n.impl._glTexture||(n._width=Math.min(n.width,t.maxRenderBufferSize),n._height=Math.min(n.height,t.maxRenderBufferSize),t.setTexture(n,0)),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,n._cubemap?i.TEXTURE_CUBE_MAP_POSITIVE_X+e._face:i.TEXTURE_2D,n.impl._glTexture,0));var s=e._depthBuffer;if(s&&t.webgl2)s.impl._glTexture||(s._width=Math.min(s.width,t.maxRenderBufferSize),s._height=Math.min(s.height,t.maxRenderBufferSize),t.setTexture(s,0)),e._stencil?i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,s._cubemap?i.TEXTURE_CUBE_MAP_POSITIVE_X+e._face:i.TEXTURE_2D,e._depthBuffer.impl._glTexture,0):i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,s._cubemap?i.TEXTURE_CUBE_MAP_POSITIVE_X+e._face:i.TEXTURE_2D,e._depthBuffer.impl._glTexture,0);else if(e._depth){if(!(e._samples>1&&t.webgl2)){if(this._glDepthBuffer||(this._glDepthBuffer=i.createRenderbuffer()),i.bindRenderbuffer(i.RENDERBUFFER,this._glDepthBuffer),e._stencil)i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_STENCIL,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.RENDERBUFFER,this._glDepthBuffer);else{var a=t.webgl2?i.DEPTH_COMPONENT32F:i.DEPTH_COMPONENT16;i.renderbufferStorage(i.RENDERBUFFER,a,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.RENDERBUFFER,this._glDepthBuffer)}i.bindRenderbuffer(i.RENDERBUFFER,null)}}t.webgl2&&e._samples>1&&(this._glResolveFrameBuffer=this._glFrameBuffer,this._glFrameBuffer=i.createFramebuffer(),t.setFramebuffer(this._glFrameBuffer),n&&(this._glMsaaColorBuffer||(this._glMsaaColorBuffer=i.createRenderbuffer()),i.bindRenderbuffer(i.RENDERBUFFER,this._glMsaaColorBuffer),i.renderbufferStorageMultisample(i.RENDERBUFFER,e._samples,n.impl._glInternalFormat,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.RENDERBUFFER,this._glMsaaColorBuffer)),e._depth&&(this._glMsaaDepthBuffer||(this._glMsaaDepthBuffer=i.createRenderbuffer()),i.bindRenderbuffer(i.RENDERBUFFER,this._glMsaaDepthBuffer),e._stencil?(i.renderbufferStorageMultisample(i.RENDERBUFFER,e._samples,i.DEPTH24_STENCIL8,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.RENDERBUFFER,this._glMsaaDepthBuffer)):(i.renderbufferStorageMultisample(i.RENDERBUFFER,e._samples,i.DEPTH_COMPONENT32F,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.RENDERBUFFER,this._glMsaaDepthBuffer))))},e._checkFbo=function(t){var e=t.gl;switch(e.checkFramebufferStatus(e.FRAMEBUFFER)){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:console.error("ERROR: FRAMEBUFFER_INCOMPLETE_ATTACHMENT");break;case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:console.error("ERROR: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT");break;case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:console.error("ERROR: FRAMEBUFFER_INCOMPLETE_DIMENSIONS");break;case e.FRAMEBUFFER_UNSUPPORTED:console.error("ERROR: FRAMEBUFFER_UNSUPPORTED");break;case e.FRAMEBUFFER_COMPLETE:}},e.loseContext=function(){this._glFrameBuffer=null,this._glDepthBuffer=null,this._glResolveFrameBuffer=null,this._glMsaaColorBuffer=null,this._glMsaaDepthBuffer=null},e.resolve=function(t,e,i,n){if(t.webgl2){var s=t.gl;s.bindFramebuffer(s.READ_FRAMEBUFFER,this._glFrameBuffer),s.bindFramebuffer(s.DRAW_FRAMEBUFFER,this._glResolveFrameBuffer),s.blitFramebuffer(0,0,e.width,e.height,0,0,e.width,e.height,(i?s.COLOR_BUFFER_BIT:0)|(n?s.DEPTH_BUFFER_BIT:0),s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,this._glFrameBuffer)}},t}();function Qs(t,e){var i=!0,n=t.createTexture();t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,2,2,0,t.RGBA,e,null);var s=t.createFramebuffer();return t.bindFramebuffer(t.FRAMEBUFFER,s),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,n,0),t.checkFramebufferStatus(t.FRAMEBUFFER)!==t.FRAMEBUFFER_COMPLETE&&(i=!1),t.bindTexture(t.TEXTURE_2D,null),t.deleteTexture(n),t.bindFramebuffer(t.FRAMEBUFFER,null),t.deleteFramebuffer(s),i}var Js,ta=function(t){function e(e,i){var n;void 0===i&&(i={}),(n=t.call(this,e)||this).gl=void 0,n.webgl2=void 0,n.defaultFramebuffer=null,n.updateClientRect(),n.contextLost=!1,n._contextLostHandler=function(t){t.preventDefault(),n.contextLost=!0,n.loseContext(),n.fire("devicelost")},n._contextRestoredHandler=function(){n.restoreContext(),n.contextLost=!1,n.fire("devicerestored")},i.stencil=!0,i.powerPreference||(i.powerPreference="high-performance");var s="undefined"!=typeof navigator&&navigator.userAgent;n.forceDisableMultisampling=s&&s.includes("AppleWebKit")&&(s.includes("15.4")||s.includes("15_4")),n.forceDisableMultisampling&&(i.antialias=!1);for(var a=void 0===i.preferWebGl2||i.preferWebGl2?["webgl2","webgl","experimental-webgl"]:["webgl","experimental-webgl"],r=null,o=0;o0;var _=n.vertexUniformsCount;return _-=16,_-=8,_-=1,_-=16,n.boneLimit=Math.floor(_/3),n.boneLimit=Math.min(n.boneLimit,128),"Mali-450 MP"===n.unmaskedRenderer&&(n.boneLimit=34),n.constantTexSource=n.scope.resolve("source"),n.textureBias=n.scope.resolve("textureBias"),n.textureBias.setValue(0),n.extTextureFloat?n.webgl2?n.textureFloatRenderable=!!n.extColorBufferFloat:n.textureFloatRenderable=Qs(r,r.FLOAT):n.textureFloatRenderable=!1,n.extColorBufferHalfFloat?n.textureHalfFloatRenderable=!!n.extColorBufferHalfFloat:n.extTextureHalfFloat?n.webgl2?n.textureHalfFloatRenderable=!!n.extColorBufferFloat:n.textureHalfFloatRenderable=Qs(r,n.extTextureHalfFloat.HALF_FLOAT_OES):n.textureHalfFloatRenderable=!1,n.supportsMorphTargetTexturesCore="highp"===n.maxPrecision&&n.maxVertexTextures>=2,n._textureFloatHighPrecision=void 0,n._textureHalfFloatUpdatable=void 0,n.grabPassAvailable=!0,n.grabPass=new Gs(Z(n),i.alpha),n.grabPass.create(),n.areaLightLutFormat=7,n.extTextureHalfFloat&&n.textureHalfFloatUpdatable&&n.extTextureHalfFloatLinear?n.areaLightLutFormat=ee:n.extTextureFloat&&n.extTextureFloatLinear&&(n.areaLightLutFormat=ne),n}Y(e,t);var i=e.prototype;return i.destroy=function(){t.prototype.destroy.call(this);var e=this.gl;this.grabPass.destroy(),this.webgl2&&this.feedback&&e.deleteTransformFeedback(this.feedback),this.clearShaderCache(),this.clearVertexArrayObjectCache(),this.canvas.removeEventListener("webglcontextlost",this._contextLostHandler,!1),this.canvas.removeEventListener("webglcontextrestored",this._contextRestoredHandler,!1),this._contextLostHandler=null,this._contextRestoredHandler=null,this.gl=null,t.prototype.postDestroy.call(this)},i.createVertexBufferImpl=function(t,e){return new Xs},i.createIndexBufferImpl=function(t){return new qs(t)},i.createShaderImpl=function(t){return new Ys(t)},i.createTextureImpl=function(){return new Zs},i.createRenderTargetImpl=function(t){return new $s(t)},i.getPrecision=function(){var t=this.gl,e="highp";if(t.getShaderPrecisionFormat){var i=t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT),n=t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT),s=t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT),a=t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT),r=i.precision>0&&s.precision>0,o=n.precision>0&&a.precision>0;r||(e=o?"mediump":"lowp")}return e},i.initializeExtensions=function(){var t=this.gl,e=t.getSupportedExtensions(),i=function(){for(var i=0;i1&&e.autoResolve&&e.resolve()}},i.setUnpackFlipY=function(t){if(this.unpackFlipY!==t){this.unpackFlipY=t;var e=this.gl;e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,t)}},i.setUnpackPremultiplyAlpha=function(t){if(this.unpackPremultiplyAlpha!==t){this.unpackPremultiplyAlpha=t;var e=this.gl;e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t)}},i.activeTexture=function(t){this.textureUnit!==t&&(this.gl.activeTexture(this.gl.TEXTURE0+t),this.textureUnit=t)},i.bindTexture=function(t){var e=t.impl,i=e._glTarget,n=e._glTexture,s=this.textureUnit,a=this.targetToSlot[i];this.textureUnits[s][a]!==n&&(this.gl.bindTexture(i,n),this.textureUnits[s][a]=n)},i.bindTextureOnUnit=function(t,e){var i=t.impl,n=i._glTarget,s=i._glTexture,a=this.targetToSlot[n];this.textureUnits[e][a]!==s&&(this.activeTexture(e),this.gl.bindTexture(n,s),this.textureUnits[e][a]=s)},i.setTextureParameters=function(t){var e=this.gl,i=t._parameterFlags,n=t.impl._glTarget;if(1&i){var s=t._minFilter;(!t.pot&&!this.webgl2||!t._mipmaps||t._compressed&&1===t._levels.length)&&(2===s||3===s?s=0:4!==s&&5!==s||(s=1)),e.texParameteri(n,e.TEXTURE_MIN_FILTER,this.glFilter[s])}if(2&i&&e.texParameteri(n,e.TEXTURE_MAG_FILTER,this.glFilter[t._magFilter]),4&i&&(this.webgl2?e.texParameteri(n,e.TEXTURE_WRAP_S,this.glAddress[t._addressU]):e.texParameteri(n,e.TEXTURE_WRAP_S,this.glAddress[t.pot?t._addressU:1])),8&i&&(this.webgl2?e.texParameteri(n,e.TEXTURE_WRAP_T,this.glAddress[t._addressV]):e.texParameteri(n,e.TEXTURE_WRAP_T,this.glAddress[t.pot?t._addressV:1])),16&i&&this.webgl2&&e.texParameteri(n,e.TEXTURE_WRAP_R,this.glAddress[t._addressW]),32&i&&this.webgl2&&e.texParameteri(n,e.TEXTURE_COMPARE_MODE,t._compareOnRead?e.COMPARE_REF_TO_TEXTURE:e.NONE),64&i&&this.webgl2&&e.texParameteri(n,e.TEXTURE_COMPARE_FUNC,this.glComparison[t._compareFunc]),128&i){var a=this.extTextureFilterAnisotropic;a&&e.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.max(1,Math.min(Math.round(t._anisotropy),this.maxAnisotropy)))}},i.setTexture=function(t,e){(t.impl._glTexture||t.impl.initialize(this,t),t._parameterFlags>0||t._needsUpload||t._needsMipmapsUpload||t===this.grabPass.texture)?(this.activeTexture(e),this.bindTexture(t),t._parameterFlags&&(this.setTextureParameters(t),t._parameterFlags=0),t===this.grabPass.texture&&this.grabPass.prepareTexture()||!t._needsUpload&&!t._needsMipmapsUpload||(t.impl.upload(this,t),t._needsUpload=!1,t._needsMipmapsUpload=!1)):this.bindTextureOnUnit(t,e)},i.createVertexArray=function(t){var e,i,n=t.length>1;if(n){e="";for(var s=0;s0?u.drawElementsInstanced(b,S,T,A,e):u.drawElements(b,S,T,A)}else{var M=t.base;e>0?u.drawArraysInstanced(b,M,S,e):u.drawArrays(b,M,S)}this.webgl2&&this.transformFeedbackBuffer&&(u.endTransformFeedback(),u.bindBufferBase(u.TRANSFORM_FEEDBACK_BUFFER,0,null)),this._drawCallsPerFrame++}},i.clear=function(t){var e=this.defaultClearOptions,i=null==(t=t||e).flags?e.flags:t.flags;if(0!==i){var n=this.gl;if(1&i){var s=null==t.color?e.color:t.color;this.setClearColor(s[0],s[1],s[2],s[3])}if(2&i){var a=null==t.depth?e.depth:t.depth;this.setClearDepth(a),this.depthWrite||n.depthMask(!0)}if(4&i){var r=null==t.stencil?e.stencil:t.stencil;this.setClearStencil(r)}n.clear(this.glClearFlag[i]),2&i&&(this.depthWrite||n.depthMask(!1))}},i.readPixels=function(t,e,i,n,s){var a=this.gl;a.readPixels(t,e,i,n,a.RGBA,a.UNSIGNED_BYTE,s)},i.setClearDepth=function(t){t!==this.clearDepth&&(this.gl.clearDepth(t),this.clearDepth=t)},i.setClearColor=function(t,e,i,n){var s=this.clearColor;t===s.r&&e===s.g&&i===s.b&&n===s.a||(this.gl.clearColor(t,e,i,n),this.clearColor.set(t,e,i,n))},i.setClearStencil=function(t){t!==this.clearStencil&&(this.gl.clearStencil(t),this.clearStencil=t)},i.getDepthTest=function(){return this.depthTest},i.setDepthTest=function(t){if(this.depthTest!==t){var e=this.gl;t?e.enable(e.DEPTH_TEST):e.disable(e.DEPTH_TEST),this.depthTest=t}},i.setDepthFunc=function(t){this.depthFunc!==t&&(this.gl.depthFunc(this.glComparison[t]),this.depthFunc=t)},i.getDepthWrite=function(){return this.depthWrite},i.setDepthWrite=function(t){this.depthWrite!==t&&(this.gl.depthMask(t),this.depthWrite=t)},i.setColorWrite=function(t,e,i,n){this.writeRed===t&&this.writeGreen===e&&this.writeBlue===i&&this.writeAlpha===n||(this.gl.colorMask(t,e,i,n),this.writeRed=t,this.writeGreen=e,this.writeBlue=i,this.writeAlpha=n)},i.setAlphaToCoverage=function(t){this.webgl2&&this.alphaToCoverage!==t&&(this.alphaToCoverage=t,t?this.gl.enable(this.gl.SAMPLE_ALPHA_TO_COVERAGE):this.gl.disable(this.gl.SAMPLE_ALPHA_TO_COVERAGE))},i.setTransformFeedbackBuffer=function(t){if(this.transformFeedbackBuffer!==t&&(this.transformFeedbackBuffer=t,this.webgl2)){var e=this.gl;t?(this.feedback||(this.feedback=e.createTransformFeedback()),e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,this.feedback)):e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,null)}},i.setRaster=function(t){this.raster!==t&&(this.raster=t,this.webgl2&&(t?this.gl.disable(this.gl.RASTERIZER_DISCARD):this.gl.enable(this.gl.RASTERIZER_DISCARD)))},i.setDepthBias=function(t){this.depthBiasEnabled!==t&&(this.depthBiasEnabled=t,t?this.gl.enable(this.gl.POLYGON_OFFSET_FILL):this.gl.disable(this.gl.POLYGON_OFFSET_FILL))},i.setDepthBiasValues=function(t,e){this.gl.polygonOffset(e,t)},i.getBlending=function(){return this.blending},i.setBlending=function(t){if(this.blending!==t){var e=this.gl;t?e.enable(e.BLEND):e.disable(e.BLEND),this.blending=t}},i.setStencilTest=function(t){if(this.stencil!==t){var e=this.gl;t?e.enable(e.STENCIL_TEST):e.disable(e.STENCIL_TEST),this.stencil=t}},i.setStencilFunc=function(t,e,i){this.stencilFuncFront===t&&this.stencilRefFront===e&&this.stencilMaskFront===i&&this.stencilFuncBack===t&&this.stencilRefBack===e&&this.stencilMaskBack===i||(this.gl.stencilFunc(this.glComparison[t],e,i),this.stencilFuncFront=this.stencilFuncBack=t,this.stencilRefFront=this.stencilRefBack=e,this.stencilMaskFront=this.stencilMaskBack=i)},i.setStencilFuncFront=function(t,e,i){if(this.stencilFuncFront!==t||this.stencilRefFront!==e||this.stencilMaskFront!==i){var n=this.gl;n.stencilFuncSeparate(n.FRONT,this.glComparison[t],e,i),this.stencilFuncFront=t,this.stencilRefFront=e,this.stencilMaskFront=i}},i.setStencilFuncBack=function(t,e,i){if(this.stencilFuncBack!==t||this.stencilRefBack!==e||this.stencilMaskBack!==i){var n=this.gl;n.stencilFuncSeparate(n.BACK,this.glComparison[t],e,i),this.stencilFuncBack=t,this.stencilRefBack=e,this.stencilMaskBack=i}},i.setStencilOperation=function(t,e,i,n){this.stencilFailFront===t&&this.stencilZfailFront===e&&this.stencilZpassFront===i&&this.stencilFailBack===t&&this.stencilZfailBack===e&&this.stencilZpassBack===i||(this.gl.stencilOp(this.glStencilOp[t],this.glStencilOp[e],this.glStencilOp[i]),this.stencilFailFront=this.stencilFailBack=t,this.stencilZfailFront=this.stencilZfailBack=e,this.stencilZpassFront=this.stencilZpassBack=i),this.stencilWriteMaskFront===n&&this.stencilWriteMaskBack===n||(this.gl.stencilMask(n),this.stencilWriteMaskFront=n,this.stencilWriteMaskBack=n)},i.setStencilOperationFront=function(t,e,i,n){this.stencilFailFront===t&&this.stencilZfailFront===e&&this.stencilZpassFront===i||(this.gl.stencilOpSeparate(this.gl.FRONT,this.glStencilOp[t],this.glStencilOp[e],this.glStencilOp[i]),this.stencilFailFront=t,this.stencilZfailFront=e,this.stencilZpassFront=i),this.stencilWriteMaskFront!==n&&(this.gl.stencilMaskSeparate(this.gl.FRONT,n),this.stencilWriteMaskFront=n)},i.setStencilOperationBack=function(t,e,i,n){this.stencilFailBack===t&&this.stencilZfailBack===e&&this.stencilZpassBack===i||(this.gl.stencilOpSeparate(this.gl.BACK,this.glStencilOp[t],this.glStencilOp[e],this.glStencilOp[i]),this.stencilFailBack=t,this.stencilZfailBack=e,this.stencilZpassBack=i),this.stencilWriteMaskBack!==n&&(this.gl.stencilMaskSeparate(this.gl.BACK,n),this.stencilWriteMaskBack=n)},i.setBlendFunction=function(t,e){(this.blendSrc!==t||this.blendDst!==e||this.separateAlphaBlend)&&(this.gl.blendFunc(this.glBlendFunction[t],this.glBlendFunction[e]),this.blendSrc=t,this.blendDst=e,this.separateAlphaBlend=!1)},i.setBlendFunctionSeparate=function(t,e,i,n){this.blendSrc===t&&this.blendDst===e&&this.blendSrcAlpha===i&&this.blendDstAlpha===n&&this.separateAlphaBlend||(this.gl.blendFuncSeparate(this.glBlendFunction[t],this.glBlendFunction[e],this.glBlendFunction[i],this.glBlendFunction[n]),this.blendSrc=t,this.blendDst=e,this.blendSrcAlpha=i,this.blendDstAlpha=n,this.separateAlphaBlend=!0)},i.setBlendEquation=function(t){(this.blendEquation!==t||this.separateAlphaEquation)&&(this.gl.blendEquation(this.glBlendEquation[t]),this.blendEquation=t,this.separateAlphaEquation=!1)},i.setBlendEquationSeparate=function(t,e){this.blendEquation===t&&this.blendAlphaEquation===e&&this.separateAlphaEquation||(this.gl.blendEquationSeparate(this.glBlendEquation[t],this.glBlendEquation[e]),this.blendEquation=t,this.blendAlphaEquation=e,this.separateAlphaEquation=!0)},i.setBlendColor=function(t,e,i,n){var s=this.blendColor;t===s.r&&e===s.g&&i===s.b&&n===s.a||(this.gl.blendColor(t,e,i,n),s.set(t,e,i,n))},i.setCullMode=function(t){if(this.cullMode!==t){if(0===t)this.gl.disable(this.gl.CULL_FACE);else{0===this.cullMode&&this.gl.enable(this.gl.CULL_FACE);var e=this.glCull[t];this.cullFace!==e&&(this.gl.cullFace(e),this.cullFace=e)}this.cullMode=t}},i.getCullMode=function(){return this.cullMode},i.setIndexBuffer=function(t){this.indexBuffer=t},i.setVertexBuffer=function(t){t&&this.vertexBuffers.push(t)},i.setShader=function(t){if(t!==this.shader){if(t.failed)return!1;if(!t.ready&&!t.impl.postLink(this,t))return t.failed=!0,!1;this.shader=t,this.gl.useProgram(t.impl.glProgram),this.attributesInvalidated=!0}return!0},i.getHdrFormat=function(){return this.textureHalfFloatRenderable?ee:this.textureFloatRenderable?ne:7},i.getBoneLimit=function(){return this.boneLimit},i.setBoneLimit=function(t){this.boneLimit=t},i.clearShaderCache=function(){var t=this.gl;for(var e in this.fragmentShaderCache)t.deleteShader(this.fragmentShaderCache[e]),delete this.fragmentShaderCache[e];for(var i in this.vertexShaderCache)t.deleteShader(this.vertexShaderCache[i]),delete this.vertexShaderCache[i];this.programLib.clearCache()},i.clearVertexArrayObjectCache=function(){var t=this.gl;this._vaoMap.forEach((function(e,i,n){t.deleteVertexArray(e)})),this._vaoMap.clear()},i.removeShaderFromCache=function(t){this.programLib.removeFromCache(t)},q(e,[{key:"width",get:function(){return this.gl.drawingBufferWidth||this.canvas.width}},{key:"height",get:function(){return this.gl.drawingBufferHeight||this.canvas.height}},{key:"fullscreen",get:function(){return!!document.fullscreenElement},set:function(t){t?this.gl.canvas.requestFullscreen():document.exitFullscreen()}},{key:"textureFloatHighPrecision",get:function(){return void 0===this._textureFloatHighPrecision&&(this._textureFloatHighPrecision=function(t){if(!t.textureFloatRenderable)return!1;var e=Si(t,ci.fullscreenQuadVS,ci.precisionTestPS,"ptest1"),i=Si(t,ci.fullscreenQuadVS,ci.precisionTest2PS,"ptest2"),n={format:ne,width:1,height:1,mipmaps:!1,minFilter:0,magFilter:0},s=new Bi(t,n);s.name="testFHP";var a=new xs({colorBuffer:s,depth:!1});hi(t,a,e),n.format=7;var r=new Bi(t,n);r.name="testFHP";var o=new xs({colorBuffer:r,depth:!1});t.constantTexSource.setValue(s),hi(t,o,i);var h=t.activeFramebuffer;t.setFramebuffer(o.impl._glFrameBuffer);var l=new Uint8Array(4);t.readPixels(0,0,1,1,l),t.setFramebuffer(h);var c=l[0]/255/16777216+l[1]/255/65536+l[2]/255/256+l[3]/255;return s.destroy(),a.destroy(),r.destroy(),o.destroy(),0===c}(this)),this._textureFloatHighPrecision}},{key:"textureHalfFloatUpdatable",get:function(){return void 0===this._textureHalfFloatUpdatable&&(this.webgl2?this._textureHalfFloatUpdatable=!0:this._textureHalfFloatUpdatable=function(t,e){var i=!0,n=t.createTexture();t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE);var s=new Uint16Array(16);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,2,2,0,t.RGBA,e,s),t.getError()!==t.NO_ERROR&&(i=!1,console.log("Above error related to HALF_FLOAT_OES can be ignored, it was triggered by testing half float texture support")),t.bindTexture(t.TEXTURE_2D,null),t.deleteTexture(n),i}(this.gl,this.extTextureHalfFloat.HALF_FLOAT_OES)),this._textureHalfFloatUpdatable}}]),e}(vs),ea=function(){function t(){this._refCount=0}var e=t.prototype;return e.incRefCount=function(){this._refCount++},e.decRefCount=function(){this._refCount--},q(t,[{key:"refCount",get:function(){return this._refCount}}]),t}();function ia(){return Js}function na(t){Js=t}var sa=0,aa=function(){function t(){this.initDefaults()}var e=t.prototype;return e.initDefaults=function(){this.recreate=!1,this.verticesUsage=0,this.indicesUsage=0,this.maxVertices=0,this.maxIndices=0,this.vertexCount=0,this.indexCount=0,this.vertexStreamsUpdated=!1,this.indexStreamUpdated=!1,this.vertexStreamDictionary={},this.indices=null},e._changeVertexCount=function(t,e){this.vertexCount||(this.vertexCount=t)},t}();aa.DEFAULT_COMPONENTS_POSITION=3,aa.DEFAULT_COMPONENTS_NORMAL=3,aa.DEFAULT_COMPONENTS_UV=2,aa.DEFAULT_COMPONENTS_COLORS=4;var ra=function(t,e,i,n){this.data=t,this.componentCount=e,this.dataType=i,this.dataTypeNormalize=n},oa=function(t){function e(e){var i;return(i=t.call(this)||this).id=sa++,i.device=e||ia().graphicsDevice,i.vertexBuffer=null,i.indexBuffer=[null],i.primitive=[{type:0,base:0,count:0}],i.skin=null,i._morph=null,i._geometryData=null,i._aabb=new Pt,i.boneAabb=null,i}Y(e,t);var i=e.prototype;return i.destroy=function(){var t=this.morph;t&&(this.morph=null,t.refCount<1&&t.destroy()),this.vertexBuffer&&(this.vertexBuffer.destroy(),this.vertexBuffer=null);for(var e=0;e0){var b=g.array[g.index+x];if(u[b]=!0,e=m.array[m.index],i=m.array[m.index+1],n=m.array[m.index+2],s=c[b],(a=l[b]).x>e&&(a.x=e),a.y>i&&(a.y=i),a.z>n&&(a.z=n),s.xS&&(a.x=S),a.y>w&&(a.y=w),a.z>T&&(a.z=T),s.x0&&this.indexBuffer[0]&&(this._geometryData.indexCount=this.indexBuffer[0].numIndices,this._geometryData.maxIndices=this.indexBuffer[0].numIndices))},i.clear=function(t,e,i,n){void 0===i&&(i=0),void 0===n&&(n=0),this._initGeometryData(),this._geometryData.initDefaults(),this._geometryData.recreate=!0,this._geometryData.maxVertices=i,this._geometryData.maxIndices=n,this._geometryData.verticesUsage=t?0:1,this._geometryData.indicesUsage=e?0:1},i.setVertexStream=function(t,e,i,n,s,a){void 0===s&&(s=6),void 0===a&&(a=!1),this._initGeometryData();var r=n||e.length/i;this._geometryData._changeVertexCount(r,t),this._geometryData.vertexStreamsUpdated=!0,this._geometryData.vertexStreamDictionary[t]=new ra(e,i,s,a)},i.getVertexStream=function(t,e){var i=0,n=!1;if(this._geometryData){var s=this._geometryData.vertexStreamDictionary[t];s&&(n=!0,i=this._geometryData.vertexCount,ArrayBuffer.isView(e)?e.set(s.data):(e.length=0,e.push(s.data)))}n||this.vertexBuffer&&(i=new Bs(this.vertexBuffer).readData(t,e));return i},i.setPositions=function(t,e,i){void 0===e&&(e=aa.DEFAULT_COMPONENTS_POSITION),this.setVertexStream(le,t,e,i,6,!1)},i.setNormals=function(t,e,i){void 0===e&&(e=aa.DEFAULT_COMPONENTS_NORMAL),this.setVertexStream(ce,t,e,i,6,!1)},i.setUvs=function(t,e,i,n){void 0===i&&(i=aa.DEFAULT_COMPONENTS_UV),this.setVertexStream(me+t,e,i,n,6,!1)},i.setColors=function(t,e,i){void 0===e&&(e=aa.DEFAULT_COMPONENTS_COLORS),this.setVertexStream(pe,t,e,i,6,!1)},i.setColors32=function(t,e){this.setVertexStream(pe,t,aa.DEFAULT_COMPONENTS_COLORS,e,1,!0)},i.setIndices=function(t,e){this._initGeometryData(),this._geometryData.indexStreamUpdated=!0,this._geometryData.indices=t,this._geometryData.indexCount=e||t.length},i.getPositions=function(t){return this.getVertexStream(le,t)},i.getNormals=function(t){return this.getVertexStream(ce,t)},i.getUvs=function(t,e){return this.getVertexStream(me+t,e)},i.getColors=function(t){return this.getVertexStream(pe,t)},i.getIndices=function(t){var e=0;if(this._geometryData&&this._geometryData.indices){var i=this._geometryData.indices;e=this._geometryData.indexCount,ArrayBuffer.isView(t)?t.set(i):(t.length=0,t.push(i))}else{if(this.indexBuffer.length>0&&this.indexBuffer[0])e=this.indexBuffer[0].readData(t)}return e},i.update=function(t,e){if(void 0===t&&(t=4),void 0===e&&(e=!0),this._geometryData){if(e){var i=this._geometryData.vertexStreamDictionary.POSITION;i&&3===i.componentCount&&this._aabb.compute(i.data,this._geometryData.vertexCount)}var n=this._geometryData.recreate;this._geometryData.vertexCount>this._geometryData.maxVertices&&(n=!0,this._geometryData.maxVertices=this._geometryData.vertexCount),n&&this.vertexBuffer&&(this.vertexBuffer.destroy(),this.vertexBuffer=null);var s=this._geometryData.recreate;this._geometryData.indexCount>this._geometryData.maxIndices&&(s=!0,this._geometryData.maxIndices=this._geometryData.indexCount),s&&this.indexBuffer.length>0&&this.indexBuffer[0]&&(this.indexBuffer[0].destroy(),this.indexBuffer[0]=null),this._geometryData.vertexStreamsUpdated&&this._updateVertexBuffer(),this._geometryData.indexStreamUpdated&&this._updateIndexBuffer(),this.primitive[0].type=t,this.indexBuffer.length>0&&this.indexBuffer[0]?this._geometryData.indexStreamUpdated&&(this.primitive[0].count=this._geometryData.indexCount,this.primitive[0].indexed=!0):this._geometryData.vertexStreamsUpdated&&(this.primitive[0].count=this._geometryData.vertexCount,this.primitive[0].indexed=!1),this._geometryData.vertexCount=0,this._geometryData.indexCount=0,this._geometryData.vertexStreamsUpdated=!1,this._geometryData.indexStreamUpdated=!1,this._geometryData.recreate=!1,this.updateRenderStates()}},i._buildVertexFormat=function(t){var e=[];for(var i in this._geometryData.vertexStreamDictionary){var n=this._geometryData.vertexStreamDictionary[i];e.push({semantic:i,components:n.componentCount,type:n.dataType,normalize:n.dataTypeNormalize})}return new si(this.device,e,t)},i._updateVertexBuffer=function(){if(!this.vertexBuffer){var t=this._geometryData.maxVertices,e=this._buildVertexFormat(t);this.vertexBuffer=new ii(this.device,e,t,this._geometryData.verticesUsage)}var i=new Bs(this.vertexBuffer),n=this._geometryData.vertexCount;for(var s in this._geometryData.vertexStreamDictionary){var a=this._geometryData.vertexStreamDictionary[s];i.writeData(s,a.data,n),delete this._geometryData.vertexStreamDictionary[s]}i.end()},i._updateIndexBuffer=function(){if(this.indexBuffer.length<=0||!this.indexBuffer[0]){var t=this._geometryData.maxVertices>65535?2:1;this.indexBuffer[0]=new ws(this.device,t,this._geometryData.maxIndices,this._geometryData.indicesUsage)}var e=this._geometryData.indices;e&&(this.indexBuffer[0].writeData(e,this._geometryData.indexCount),this._geometryData.indices=null)},i.prepareRenderState=function(t){1===t?this.generateWireframe():2===t&&(this.primitive[2]={type:0,base:0,count:this.vertexBuffer?this.vertexBuffer.numVertices:0,indexed:!1})},i.updateRenderStates=function(){this.primitive[2]&&this.prepareRenderState(2),this.primitive[1]&&this.prepareRenderState(1)},i.generateWireframe=function(){this._destroyIndexBuffer(1);var t,e=[];if(this.indexBuffer.length>0&&this.indexBuffer[0]){for(var i=[[0,1],[1,2],[2,0]],n=this.primitive[0].base,s=this.primitive[0].count,a=this.indexBuffer[0],r=new Qe[a.format](a.storage),o={},h=n;hu?u<<16|c:c<<16|u;void 0===o[d]&&(o[d]=0,e.push(c,u))}t=a.format}else{for(var f=0;f65535?2:1}var p=new ws(this.vertexBuffer.device,t,e.length);new Qe[p.format](p.storage).set(e),p.unlock(),this.primitive[1]={type:1,base:0,count:e.length,indexed:!0},this.indexBuffer[1]=p},q(e,[{key:"morph",get:function(){return this._morph},set:function(t){t!==this._morph&&(this._morph&&this._morph.decRefCount(),this._morph=t,t&&t.incRefCount())}},{key:"aabb",get:function(){return this._aabb},set:function(t){this._aabb=t}}]),e}(ea),ha=4/64,la=.875,ca=[];function ua(t,e){for(var i=e.length/3,n=t.length/3,s=new ft,a=new ft,r=new ft,o=new ft,h=new ft,l=new ft,c=[],u=0;u0)for(var v=0;v<=n;v++)for(var y=0;y<=s;y++){var x=y/s*2*Math.PI-Math.PI,b=Math.sin(x),S=Math.cos(x);u.set(b*t,-i/2,S*t),c.set(b*e,i/2,S*e),o.lerp(u,c,v/n),h.sub2(c,u).normalize(),d.set(S,0,-b),l.cross(d,h).normalize(),f.push(o.x,o.y,o.z),p.push(l.x,l.y,l.z);var w=y/s,T=v/n;m.push(w,1-T);var A=T;if(T=w,w=(w=A)*la+ha,T=T*la+ha,w/=3,_.push(w,1-T),v0)for(var ut=0;ut1&&g.push(r,r+ut,r+ut-1)}if(r+=s,e>0)for(var yt=0;yt1&&g.push(r,r+yt-1,r+yt)}}return{positions:f,normals:p,uvs:m,uvs1:_,indices:g}}function _a(t,e){var i=e&&(e.radius||e.baseRadius);i=void 0!==i?i:.5;var n=e&&void 0!==e.height?e.height:1,s=e&&void 0!==e.heightSegments?e.heightSegments:5,a=e&&void 0!==e.capSegments?e.capSegments:20,r=!(!e||void 0===e.calculateTangents)&&e.calculateTangents,o=ma(i,i,n,s,a,!1);return r&&(o.tangents=da(o.positions,o.normals,o.uvs,o.indices)),fa(t,o.positions,o)}function ga(t,e){var i=e&&void 0!==e.radius?e.radius:.3,n=e&&void 0!==e.height?e.height:1,s=e&&void 0!==e.heightSegments?e.heightSegments:1,a=e&&void 0!==e.sides?e.sides:20,r=!(!e||void 0===e.calculateTangents)&&e.calculateTangents,o=ma(i,i,n-2*i,s,a,!0);return r&&(o.tangents=da(o.positions,o.normals,o.uvs,o.indices)),fa(t,o.positions,o)}function va(t,e){var i=e&&void 0!==e.baseRadius?e.baseRadius:.5,n=e&&void 0!==e.peakRadius?e.peakRadius:0,s=e&&void 0!==e.height?e.height:1,a=e&&void 0!==e.heightSegments?e.heightSegments:5,r=e&&void 0!==e.capSegments?e.capSegments:18,o=!(!e||void 0===e.calculateTangents)&&e.calculateTangents,h=ma(i,n,s,a,r,!1);return o&&(h.tangents=da(h.positions,h.normals,h.uvs,h.indices)),fa(t,h.positions,h)}function ya(t,e){for(var i=e&&void 0!==e.radius?e.radius:.5,n=e&&void 0!==e.latitudeBands?e.latitudeBands:16,s=e&&void 0!==e.longitudeBands?e.longitudeBands:16,a=!(!e||void 0===e.calculateTangents)&&e.calculateTangents,r=[],o=[],h=[],l=[],c=0;c<=n;c++)for(var u=c*Math.PI/n,d=Math.sin(u),f=Math.cos(u),p=0;p<=s;p++){var m=2*p*Math.PI/s-Math.PI/2,_=Math.sin(m),g=Math.cos(m)*d,v=f,y=_*d,x=1-p/s,b=1-c/n;r.push(g*i,v*i,y*i),o.push(g,v,y),h.push(x,1-b)}for(var S=0;S=0;i--)this.matrices[i].mulAffine2(Ma,this.bones[i].getWorldTransform()),this.matrices[i].mulAffine2(this.matrices[i],this.skin.inverseBindPose[i])}},e.updateMatrices=function(t,e){this._updateBeforeCull&&this._updateMatrices(t,e)},e.updateMatrixPalette=function(t,e){this._updateMatrices(t,e);for(var i=this.matrixPalette,n=this.bones.length,s=0;s>16},set:function(t){var e=65535&this._shaderDefs;this._shaderDefs=e|t<<16,this._shader[0]=null,this._shader[1]=null}},{key:"instancingCount",get:function(){return this.instancingData?this.instancingData.count:0},set:function(t){this.instancingData&&(this.instancingData.count=t)}}]),t}();function Na(t,e,i,n){return(15&t)<<27|(3===e?1:0)<<26|(i?1:0)<<25|(33554431&n)<<0}function Ua(t,e){if(t&&!e)return!1;if(!t&&e)return!1;if((t=t.data)===(e=e.data))return!0;if(t instanceof Float32Array&&e instanceof Float32Array){if(t.length!==e.length)return!1;for(var i=0;i=0?1:-1}var ja=function(){function t(t,e,i){this.device=t,this.rootNode=e,this.scene=i,this._init=!1,this._batchGroups={},this._batchGroupCounter=0,this._batchList=[],this._dirtyGroups=[]}var e=t.prototype;return e.destroy=function(){this.device=null,this.rootNode=null,this.scene=null,this._batchGroups={},this._batchList=[],this._dirtyGroups=[]},e.addGroup=function(t,e,i,n,s){if(void 0===n&&(n=this._batchGroupCounter,this._batchGroupCounter++),!this._batchGroups[n]){var a=new Aa(n,t,e,i,s);return this._batchGroups[n]=a,a}},e.removeGroup=function(t){if(this._batchGroups[t]){for(var e=[],i=0;i=0&&(n._obj[t].splice(s,1),this.markGroupDirty(e))}},e._extractRender=function(t,e,i,n){if(t.render){if(t.render.isStatic){for(var s=this.scene.drawCalls,a=t.render.meshInstances,r=0;r=0&&e.push(a[o])}else e=n[t.render.batchGroupId]=e.concat(t.render.meshInstances);t.render.removeFromLayers()}return e},e._extractModel=function(t,e,i,n){if(t.model&&t.model.model){if(t.model.isStatic){for(var s=this.scene.drawCalls,a=t.model.meshInstances,r=0;r=0&&e.push(a[o])}else e=n[t.model.batchGroupId]=e.concat(t.model.meshInstances);t.model.removeModelFromLayers()}return e},e._extractElement=function(t,e,i){if(t.element){var n=!1;t.element._text&&t.element._text._model.meshInstances.length>0?(e.push(t.element._text._model.meshInstances[0]),t.element.removeModelFromLayers(t.element._text._model),n=!0):t.element._image&&(e.push(t.element._image._renderable.meshInstance),t.element.removeModelFromLayers(t.element._image._renderable.model),t.element._image._renderable.unmaskMeshInstance&&(e.push(t.element._image._renderable.unmaskMeshInstance),t.element._image._renderable.unmaskMeshInstance.stencilFront&&t.element._image._renderable.unmaskMeshInstance.stencilBack||(t.element._dirtifyMask(),t.element._onPrerender())),n=!0),n&&(i._ui=!0)}},e._collectAndRemoveMeshInstances=function(t,e){for(var i=0;i0;){u[d]=[p[0]],f=[];var _=p[0].material,g=p[0].layer,v=p[0]._shaderDefs,y=p[0].parameters,x=p[0].stencilFront,b=p[0]._staticLightList,S=p[0].mesh.vertexBuffer.getNumVertices(),w=p[0].drawOrder;h.copy(p[0].aabb);var T=qa(p[0]),A=p[0].mesh.vertexBuffer.format.batchingHash,M=p[0].mesh.primitive[0].indexed;c=null;for(var C=1;C=r){f=f.concat(p.slice(C));break}if(_!==E.material||g!==E.layer||A!==E.mesh.vertexBuffer.format.batchingHash||M!==E.mesh.primitive[0].indexed||v!==E._shaderDefs||S+E.mesh.vertexBuffer.getNumVertices()>o)m(E);else if(l.copy(h),l.add(E.aabb),l.halfExtents.x>a||l.halfExtents.y>a||l.halfExtents.z>a)m(E);else if(!x||(s=E.stencilFront)&&x.func===s.func&&x.zpass===s.zpass)if(T===qa(E))if(za(y,E.parameters)){var P=E._staticLightList;if(b&&P){if(!Va(b,P)){m(E);continue}}else if(b||P){m(E);continue}n&&c&&c.intersects(E.aabb)&&E.drawOrder!==w?m(E):(h.add(E.aabb),S+=E.mesh.vertexBuffer.getNumVertices(),u[d].push(E))}else m(E);else m(E);else m(E)}d++,p=f}return u},e.collectBatchedMeshData=function(t,e){for(var i=null,n=0,s=0,a=null,r=0;r=3)if(s===le)for(var A=0;A0&&a.setIndices(b),a.update(4,!1),e&&((p=p.clone()).chunks.transformVS=this.transformVS,p.chunks.skinTexVS=this.skinTexVS,p.chunks.skinConstVS=this.skinConstVS,p.update());var R=new Ba(a,p,this.rootNode);R.castShadow=h.origMeshInstances[0].castShadow,R.parameters=h.origMeshInstances[0].parameters,R.isStatic=h.origMeshInstances[0].isStatic,R.layer=h.origMeshInstances[0].layer,R._staticLightList=h.origMeshInstances[0]._staticLightList,R._shaderDefs=h.origMeshInstances[0]._shaderDefs,R.cull=h.origMeshInstances[0].cull;var I=this._batchGroups[i];if(I&&I._ui&&(R.cull=!1),e){for(var L=[],D=0;D0&&this.generate(this._dirtyGroups);for(var t=0;t0&&r){if(!(n1){e.copy(t[1].min),i.copy(t[1].max);for(var n=2;n1?this.shaderCube:this.shader2d,a=this.device;n>1&&this.initInvViewProjMatrices(),this.blitTextureId.setValue(e.cookie);for(var r=0;r1){var o=er.z/3,h=this.lightTextureAtlas.cubeSlotsOffsets[r];er.x+=o*h.x,er.y+=o*h.y,er.z=o,er.w=o,this.invViewProjId.setValue(t._invViewProjMatrices[r].data)}er.mulScalar(i.colorBuffer.width),hi(a,i,s,er)}}},q(t,[{key:"shader2d",get:function(){return this.getShader("blitShader2d","\n\t\tvarying vec2 uv0;\n\t\tuniform sampler2D blitTexture;\n\t\tvoid main(void) {\n\t\t\t\tgl_FragColor = texture2D(blitTexture, uv0);\n\t\t}")}},{key:"shaderCube",get:function(){return this.getShader("blitShaderCube","\n\t\tvarying vec2 uv0;\n\t\tuniform samplerCube blitTexture;\n\t\tuniform mat4 invViewProj;\n\t\tvoid main(void) {\n\t\t\t\tvec4 projPos = vec4(uv0 * 2.0 - 1.0, 0.5, 1.0);\n\t\t\t\tvec4 worldPos = invViewProj * projPos;\n\t\t\t\tgl_FragColor = textureCube(blitTexture, worldPos.xyz);\n\t\t}")}}]),t}();ir._invViewProjMatrices=null;var nr=function(){function t(t,e){this.texture=t,this.cached=!1,this.renderTargets=e}return t.prototype.destroy=function(){this.texture&&(this.texture.destroy(),this.texture=null);for(var t=this.renderTargets,e=0;e1)for(var h=1/o,l=0;l1)for(var f=0;f0){for(var s=this.slots,a=0;as&&(s=r)}return dr.min=n,dr.max=s,dr}function pr(t,e){return Math.exp(-t*t/(2*e*e))}var mr=new Pt,_r=new St,gr=new St,vr=new Float32Array(2),yr=new _t(1,1,0,0),xr={r:1,g:2,b:3,a:4},br=new ft,Sr=new St;function wr(t){var e=t.material,i=t.skinInstance?10:0,n=0;if(e.opacityMap){var s=e.opacityMapChannel;s&&(n=xr[s])}return i+n}var Tr=function(){function t(t,e){this.device=t.device,this.forwardRenderer=t,this.lightTextureAtlas=e;var i=this.device.scope;this.polygonOffsetId=i.resolve("polygonOffset"),this.polygonOffset=new Float32Array(2),this.sourceId=i.resolve("source"),this.pixelOffsetId=i.resolve("pixelOffset"),this.weightId=i.resolve("weight[0]"),this.blurVsmShaderCode=[ci.blurVSMPS,"#define GAUSS\n"+ci.blurVSMPS];var n="#define PACKED\n";this.blurPackedVsmShaderCode=[n+this.blurVsmShaderCode[0],n+this.blurVsmShaderCode[1]],this.blurVsmShader=[{},{}],this.blurPackedVsmShader=[{},{}],this.blurVsmWeights={},this.shadowMapLightRadiusId=i.resolve("light_radius"),this.shadowMapCache=new cr}var e=t.prototype;return e.destroy=function(){this.shadowMapCache.destroy(),this.shadowMapCache=null},t.createShadowCamera=function(t,e,i,n){var s=ln.create("ShadowCamera",i,n);return s.clearColor=e>=1&&e<=3?new lt(0,0,0,0):new lt(1,1,1,1),s.clearDepthBuffer=!0,s.clearStencilBuffer=!1,s},t.setShadowCameraSettings=function(t,e,i,n,s){var a=4===i||0===i&&e.webgl2;1!==n||s||(a=!1),t.clearColorBuffer=!a},e.cullShadowCasters=function(t,e,i){for(var n=0,s=t.length,a=0;ap&&(p=_)}var g=o.right,v=o.up,y=o.forward,x=.25*t._shadowResolution/p,b=Math.ceil(br.dot(v)*x)/x,S=Math.ceil(br.dot(g)*x)/x,w=v.mulScalar(b),T=g.mulScalar(S),A=br.dot(y),M=y.mulScalar(A);br.add2(w,T).add(M),o.setPosition(br),o.translateLocal(0,0,1e6),r.nearClip=0,r.farClip=2e6,r.orthoHeight=p,this.forwardRenderer.updateCameraFrustum(r),this.cullShadowCasters(e,a.visibleCasters,r);for(var C=!0,E=a.visibleCasters,P=0;P1)this.forwardRenderer.scene.clusteredLightingEnabled&&0!==s||this.applyVsmBlur(e,i);this.restoreRenderState(n)}},e.getVsmBlurShader=function(t,e,i){var n=(t?this.blurPackedVsmShader:this.blurVsmShader)[e][i];if(!n){this.blurVsmWeights[i]=function(t){t>25&&(t=25);for(var e=(t-1)/6,i=.5*(t-1),n=new Array(t),s=0,a=0;aU&&(U=H),X>z&&(z=X),q>V&&(V=q)}var j=6*O;p[j]=F,p[j+1]=B,p[j+2]=N,p[j+3]=U,p[j+4]=z,p[j+5]=V}for(var Y=0;Y=Z.x&&p[tt+1]<=$.y&&p[tt+4]>=Z.y&&p[tt+2]<=$.z&&p[tt+5]>=Z.z&&(d[J]|=Q,k=!0)}}if(k){for(var et={},it=0;itdt&&(dt=vt),yt>pt&&(pt=yt),xt>mt&&(mt=xt)}h.set(lt,ct,ut),l.set(dt,pt,mt);var bt=new Pt;bt.setMinMax(h,l);var wt=new oa(e);wt.vertexBuffer=w,wt.indexBuffer[0]=ht,wt.primitive[0].type=4,wt.primitive[0].base=0,wt.primitive[0].count=ot.length,wt.primitive[0].indexed=!0,wt.aabb=bt;var Tt=new Ba(wt,g.material,g.node);Tt.isStatic=g.isStatic,Tt.visible=g.visible,Tt.layer=g.layer,Tt.castShadow=g.castShadow,Tt._receiveShadow=g._receiveShadow,Tt.cull=g.cull,Tt.pick=g.pick,Tt.mask=g.mask,Tt.parameters=g.parameters,Tt._shaderDefs=g._shaderDefs,Tt._staticSource=g,g._staticLightList?Tt._staticLightList=g._staticLightList:Tt._staticLightList=[];for(var At=0;At0&&(this._instancedDrawCalls++,t.setVertexBuffer(Ir.vertexBuffer),t.draw(i.primitive[n],Ir.count)):(Lr=e.node.worldTransform,this.modelMatrixId.setValue(Lr.data),s&&(Dr=e.node.normalMatrix,e.node._dirtyNormal&&(Lr.invertTo3x3(Dr),Dr.transpose(),e.node._dirtyNormal=!1),this.normalMatrixId.setValue(Dr.data)),t.draw(i.primitive[n]))},e.drawInstance2=function(t,e,i,n){(Ir=e.instancingData)?Ir.count>0&&(this._instancedDrawCalls++,t.draw(i.primitive[n],Ir.count,!0)):t.draw(i.primitive[n],void 0,!0)},e.renderShadows=function(t,e){var i=this.scene.clusteredLightingEnabled,n=this.device;n.grabPassAvailable=!1;for(var s=0;s0&&n.cull<3){i.flipFaces&&(a*=-1),e&&(a*=-1);var r=i.node.worldTransform;r.getX(no),r.getY(so),r.getZ(ao),no.cross(no,so),no.dot(ao)<0&&(a*=-1)}s=a<0?2===n.cull?1:2:n.cull}if(this.device.setCullMode(s),0===s&&0===n.cull){var o=i.node.worldTransform;o.getX(no),o.getY(so),o.getZ(ao),no.cross(no,so),no.dot(ao)<0?this.twoSidedLightingNegScaleFactorId.setValue(-1):this.twoSidedLightingNegScaleFactorId.setValue(1)}},e.setVertexBuffers=function(t,e){t.setVertexBuffer(e.vertexBuffer)},e.setMorphing=function(t,e){if(e)if(e.morph.useTextureMorph)t.setVertexBuffer(e.morph.vertexBufferIds),this.morphPositionTex.setValue(e.texturePositions),this.morphNormalTex.setValue(e.textureNormals),this.morphTexParams.setValue(e._textureParams);else{for(var i=0;i0&&this.renderShadows(h.directionalLights,f.camera),c.enabled&&t.subLayerEnabled[l]){if(f&&(f.frameBegin(h.renderTarget),h.firstCameraUse&&f.onPreRender&&f.onPreRender()),!u&&c.onPreRenderOpaque?c.onPreRenderOpaque(d):u&&c.onPreRenderTransparent&&c.onPreRenderTransparent(d),c._preRenderCalledForCameras&1<=0&&r._shaderVersion!==i&&(r.updateShader!==Kn.prototype.updateShader&&(r.clearVariants(),r.shader=null),r._shaderVersion=i)}this.passThrough||(this._dirty=!0)},e.removeMeshInstanceFromArray=function(t,e){for(var i=-1,n=0,s=e.length,a=0;a=0)break}i>=0&&e.splice(i,n)},e.removeMeshInstances=function(t,e){for(var i=this.opaqueMeshInstances,n=this.transparentMeshInstances,s=this.shadowCasters,a=0;a=0&&s.splice(o,1)}}this._dirty=!0},e.clearMeshInstances=function(t){(0!==this.opaqueMeshInstances.length||0!==this.transparentMeshInstances.length||!t&&0!==this.shadowCasters.length)&&(this.opaqueMeshInstances.length=0,this.transparentMeshInstances.length=0,t||(this.shadowCasters.length=0),this.passThrough||(this._dirty=!0))},e.addLight=function(t){var e=t.light;this._lightsSet.has(e)||(this._lightsSet.add(e),0!==e.type&&this._clusteredLightsSet.add(e),this._lights.push(e),this._dirtyLights=!0,this._generateLightHash())},e.removeLight=function(t){var e=t.light;this._lightsSet.has(e)&&(this._lightsSet.delete(e),0!==e.type&&this._clusteredLightsSet.delete(e),this._lights.splice(this._lights.indexOf(e),1),this._dirtyLights=!0,this._generateLightHash())},e.clearLights=function(){this._lightsSet.clear(),this._clusteredLightsSet.clear(),this._lights.length=0,this._dirtyLights=!0},e.addShadowCasters=function(t){for(var e=this.shadowCasters,i=0;i=0&&e.splice(n,1)}this._dirtyLights=!0},e._generateLightHash=function(){if(this._lights.length>0){this._lights.sort(po);for(var t="",e="",i=0;i=0||(this.cameras.push(t),this._dirtyCameras=!0)},e.removeCamera=function(t){var e=this.cameras.indexOf(t);e>=0&&(this.cameras.splice(e,1),this._dirtyCameras=!0,this.instances.delete(e))},e.clearCameras=function(){this.cameras.length=0,this._dirtyCameras=!0},e._calculateSortDistances=function(t,e,i,n){for(var s=0;s=0&&!this.directionalLightsSet.has(s)){this.directionalLightsSet.add(s),this.directionalLights.push(s);var r=i.indexOf(s);this.directionalLightsIndices.push(r)}}},t}(),wo=function(){function t(){this.shadowCastersSet=new Set,this.shadowCastersList=[]}var e=t.prototype;return e.clearShadowCasters=function(){this.shadowCastersSet.clear(),this.shadowCastersList.length=0},e.addShadowCasters=function(t){for(var e=0;e1&&bo(this.cameras);for(var _=[],g=0,v=0;v0&&y.layers.indexOf(A.id)>=0){_.push(A),w||A.id!==y.disablePostEffectsLayer||(w=!0,S&&(S.triggerPostprocess=!0));var M=A.cameras.indexOf(y);M>=0&&(S=this.addRenderAction(this._renderActions,g,A,T,M,x,w),g++,x=!1)}}b=0;u--)if(t[u].camera===l&&t[u].renderTarget===h){c=!0;break}var d=a||!c,f=!!d&&l.clearColorBuffer,p=!!d&&l.clearDepthBuffer,m=!!d&&l.clearStencilBuffer;return f|=i.clearColorBuffer,p|=i.clearDepthBuffer,m|=i.clearStencilBuffer,r&&l.postEffectsEnabled&&(h=null),o.reset(),o.triggerPostprocess=!1,o.layerIndex=n,o.cameraIndex=s,o.camera=l,o.renderTarget=h,o.clearColor=f,o.clearDepth=p,o.clearStencil=m,o.firstCameraUse=a,o.lastCameraUse=!1,o},i.propagateRenderTarget=function(t,e){for(var i=t;i>=0;i--){var n=this._renderActions[i],s=this.layerList[n.layerIndex];if(n.renderTarget&&1!==s.id)break;if(1!==s.id){var a=null==n?void 0:n.camera.camera;if(a&&(!e.camera.rect.equals(a.rect)||!e.camera.scissorRect.equals(a.scissorRect)))break;n.renderTarget=e.renderTarget}}},i._logRenderActions=function(){},i._isLayerAdded=function(t){return this.layerList.indexOf(t)>=0},i._isSublayerAdded=function(t,e){for(var i=0;i=0;)this.layerList.splice(e,1),this.subLayerList.splice(e,1),this.subLayerEnabled.splice(e,1),e=this.layerList.indexOf(t),this._dirty=!0,this._dirtyLights=!0,this._dirtyCameras=!0,this.fire("remove",t);var i=this.layerList.length;this._updateOpaqueOrder(0,i-1),this._updateTransparentOrder(0,i-1)},i.pushOpaque=function(t){this._isSublayerAdded(t,!1)||(this.layerList.push(t),this._opaqueOrder[t.id]=this.subLayerList.push(!1)-1,this.subLayerEnabled.push(!0),this._dirty=!0,this._dirtyLights=!0,this._dirtyCameras=!0,this.fire("add",t))},i.insertOpaque=function(t,e){if(!this._isSublayerAdded(t,!1)){this.layerList.splice(e,0,t),this.subLayerList.splice(e,0,!1);var i=this.subLayerList.length;this._updateOpaqueOrder(e,i-1),this.subLayerEnabled.splice(e,0,!0),this._dirty=!0,this._dirtyLights=!0,this._dirtyCameras=!0,this.fire("add",t)}},i.removeOpaque=function(t){for(var e=0,i=this.layerList.length;e=1?(r[0]=Math.pow(e,2.2)*s,r[1]=Math.pow(i,2.2)*s,r[2]=Math.pow(n,2.2)*s):(r[0]=Math.pow(a[0],2.2),r[1]=Math.pow(a[1],2.2),r[2]=Math.pow(a[2],2.2))},e.setColor=function(){1===arguments.length?this._color.set(arguments[0].r,arguments[0].g,arguments[0].b):3===arguments.length&&this._color.set(arguments[0],arguments[1],arguments[2]),this._updateFinalColor()},e.updateShadow=function(){2!==this.shadowUpdateMode&&(this.shadowUpdateMode=1)},e.layersDirty=function(){var t;null!=(t=this._scene)&&t.layers&&(this._scene.layers._dirtyLights=!0)},e.updateKey=function(){var t=this._type<<29|(this._castShadows?1:0)<<28|this._shadowType<<25|this._falloffMode<<23|(0!==this._normalOffsetBias?1:0)<<22|(this._cookie?1:0)<<21|(this._cookieFalloff?1:0)<<20|Io[this._cookieChannel.charAt(0)]<<18|(this._cookieTransform?1:0)<<12|this._shape<<10|this.numCascades-1<<8;3===this._cookieChannel.length&&(t|=Io[this._cookieChannel.charAt(1)]<<16,t|=Io[this._cookieChannel.charAt(2)]<<14),t!==this.key&&null!==this._scene&&this.layersDirty(),this.key=t},q(t,[{key:"numCascades",get:function(){return this.cascades.length},set:function(t){this.cascades&&this.numCascades==t||(this.cascades=Lo[t-1],this._shadowMatrixPalette=new Float32Array(64),this._shadowCascadeDistances=new Float32Array(4),this._destroyShadowMap(),this.updateKey())}},{key:"shadowMap",get:function(){return this._shadowMap},set:function(t){this._shadowMap!==t&&(this._destroyShadowMap(),this._shadowMap=t)}},{key:"numShadowFaces",get:function(){var t=this._type;return 0===t?this.numCascades:1===t?6:1}},{key:"type",get:function(){return this._type},set:function(t){if(this._type!==t){this._type=t,this._destroyShadowMap(),this.updateKey();var e=this._shadowType;this._shadowType=null,this.shadowType=e}}},{key:"shape",get:function(){return this._shape},set:function(t){if(this._shape!==t){this._shape=t,this._destroyShadowMap(),this.updateKey();var e=this._shadowType;this._shadowType=null,this.shadowType=e}}},{key:"shadowType",get:function(){return this._shadowType},set:function(t){if(this._shadowType!==t){var e=this.device;1===this._type&&(t=0),4!==t||e.webgl2||(t=0),3!==t||e.textureFloatRenderable||(t=2),2!==t||e.textureHalfFloatRenderable||(t=1),this._isVsm=t>=1&&t<=3,this._isPcf=4===t||0===t,this._shadowType=t,this._destroyShadowMap(),this.updateKey()}}},{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled!==t&&(this._enabled=t,this.layersDirty())}},{key:"castShadows",get:function(){return this._castShadows&&4!==this.mask&&0!==this.mask},set:function(t){this._castShadows!==t&&(this._castShadows=t,this._destroyShadowMap(),this.layersDirty(),this.updateKey())}},{key:"shadowResolution",get:function(){return this._shadowResolution},set:function(t){this._shadowResolution!==t&&(t=1===this._type?Math.min(t,this.device.maxCubeMapSize):Math.min(t,this.device.maxTextureSize),this._shadowResolution=t,this._destroyShadowMap())}},{key:"vsmBlurSize",get:function(){return this._vsmBlurSize},set:function(t){this._vsmBlurSize!==t&&(t%2==0&&t++,this._vsmBlurSize=t)}},{key:"normalOffsetBias",get:function(){return this._normalOffsetBias},set:function(t){this._normalOffsetBias!==t&&((!this._normalOffsetBias&&t||this._normalOffsetBias&&!t)&&this.updateKey(),this._normalOffsetBias=t)}},{key:"falloffMode",get:function(){return this._falloffMode},set:function(t){this._falloffMode!==t&&(this._falloffMode=t,this.updateKey())}},{key:"innerConeAngle",get:function(){return this._innerConeAngle},set:function(t){this._innerConeAngle!==t&&(this._innerConeAngle=t,this._innerConeAngleCos=Math.cos(t*Math.PI/180))}},{key:"outerConeAngle",get:function(){return this._outerConeAngle},set:function(t){this._outerConeAngle!==t&&(this._outerConeAngle=t,this._outerConeAngleCos=Math.cos(t*Math.PI/180))}},{key:"intensity",get:function(){return this._intensity},set:function(t){this._intensity!==t&&(this._intensity=t,this._updateFinalColor())}},{key:"cookieMatrix",get:function(){return this._cookieMatrix||(this._cookieMatrix=new St),this._cookieMatrix}},{key:"atlasViewport",get:function(){return this._atlasViewport||(this._atlasViewport=new _t(0,0,1,1)),this._atlasViewport}},{key:"cookie",get:function(){return this._cookie},set:function(t){this._cookie!==t&&(this._cookie=t,this.updateKey())}},{key:"cookieFalloff",get:function(){return this._cookieFalloff},set:function(t){this._cookieFalloff!==t&&(this._cookieFalloff=t,this.updateKey())}},{key:"cookieChannel",get:function(){return this._cookieChannel},set:function(t){if(this._cookieChannel!==t){if(t.length<3)for(var e=t.charAt(t.length-1),i=3-t.length,n=0;n0){var n=i.bakeArea;Sn(Uo,t,e),Uo.mulScalar(.5*n),i._node.rotateLocal(Uo.x,0,Uo.y)}i._node.getWorldTransform();var s=this.scene.gammaCorrection?2.2:1,a=Math.pow(this.intensity,s);i.intensity=Math.pow(a/e,1/s)},q(e,[{key:"numVirtualLights",get:function(){return 0===this.light.type?this.light.bakeNumSamples:1}}]),e}(No),Vo=function(){function t(t,e){this.texture0=t,this.texture1=e}return t.prototype.destroy=function(){var t,e;null==(t=this.texture0)||t.destroy(),null==(e=this.texture1)||e.destroy()},t}(),Wo=new ai,Go=function(){function t(){}return t.createTexture=function(t,e,i,n){void 0===n&&(n="");var s=new Bi(t,{width:i,height:i,format:e,addressU:1,addressV:1,type:Ve,magFilter:1,minFilter:0,anisotropy:1});return s.name="AreaLightLUT"+n,s},t.applyTextures=function(t,e,i){Wo.remove(t),Wo.get(t,(function(){return new Vo(e,e===i?null:i)})),t.scope.resolve("areaLightsLutTex1").setValue(e),t.scope.resolve("areaLightsLutTex2").setValue(i)},t.createPlaceholder=function(e){var i=t.createTexture(e,7,2,"placeholder");i.lock().fill(0),i.unlock(),t.applyTextures(e,i,i)},t.set=function(e,i){function n(e,i,n){var s=t.createTexture(e,n,64);return s.lock().set(i),s.unlock(),s.upload(),s}function s(t,e,i){for(var n=t.length,s=new Float32Array(n),a=0;af)return!1;this.morphTextureWidth=p,this.morphTextureHeight=m;var _=!1,g=3,v=ki.float2Half;this._textureFormat===e.FORMAT_HALF_FLOAT&&(_=!0,g=4);for(var y=this.morphTextureWidth*this.morphTextureHeight*g,x=_?new Uint16Array(y):new Float32Array(y),b=0;b0&&(e+="varying vec2 uv0;\nuniform highp float morphFactor["+t+"];\n");for(var i=0;i=this.maxSubmitCount&&(s(a,r),a=0,r=!0))}(a>0||0===o&&!this.zeroTextures)&&s(a,r)},e._updateTextureMorph=function(){this.device,(this._activeTargets.length>0||!this.zeroTextures)&&(this._updateTextureRenderTarget(this.rtPositions,"texturePositions"),this._updateTextureRenderTarget(this.rtNormals,"textureNormals"),this.zeroTextures=0===this._activeTargets.length)},e._updateVertexMorph=function(){for(var t=this.maxSubmitCount,e=0;e1e-5){this._activeTargets.length<=e&&(this._activeTargets[e]={});var s=this._activeTargets[e++];s.absWeight=n,s.weight=this.getWeight(i),s.target=t[i]}}this._activeTargets.length=e;var a=this.morph.maxActiveTargets;this._activeTargets.length>a&&(this._activeTargets.sort((function(t,e){return t.absWeight0&&this.material.transparent===e&&(this.mesh.setPositions(this.positions),this.mesh.setColors(this.colors),this.mesh.update(1,!1),this.meshInstance||(this.meshInstance=new Ba(this.mesh,this.material,jo)),this.positions.length=0,this.colors.length=0,t.list.push(this.meshInstance),t.length++)},t}(),Ko=function(){function t(t){this.device=t,this.map=new Map}var e=t.prototype;return e.getBatch=function(t,e){var i=this.map.get(t);return i||(i=new Yo(this.device,t,e),this.map.set(t,i)),i},e.onPreRender=function(t,e){this.map.forEach((function(i){i.onPreRender(t,e)}))},t}(),Zo=[],$o=function(){function t(t){this.device=t,this.quadMesh=null,this.textureShader=null,this.depthTextureShader=null,this.cubeLocalPos=null,this.cubeWorldPos=null,this.batchesMap=new Map,this.allBatches=new Set,this.updatedLayers=new Set,this._materialDepth=null,this._materialNoDepth=null,this.layerMeshInstances=new Map}var e=t.prototype;return e.createMaterial=function(t){var e=new wa;return e.vertexColors=!0,e.blend=!0,e.blendType=2,e.depthTest=t,e.update(),e},e.getBatch=function(t,e){var i=this.batchesMap.get(t);i||(i=new Ko(this.device),this.batchesMap.set(t,i)),this.allBatches.add(i);var n=e?this.materialDepth:this.materialNoDepth;return i.getBatch(n,t)},t.getTextureVS=function(){return"\n\t\t\t\t\t\tattribute vec2 aPosition;\n\t\t\t\t\t\tuniform mat4 matrix_model;\n\t\t\t\t\t\tvarying vec2 uv0;\n\t\t\t\t\t\tvoid main(void) {\n\t\t\t\t\t\t\t\tgl_Position = matrix_model * vec4(aPosition, 0, 1);\n\t\t\t\t\t\t\t\tuv0 = aPosition.xy + 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t"},e.getTextureShader=function(){if(!this.textureShader){var e={attributes:{aPosition:le},vshader:t.getTextureVS(),fshader:"\n\t\t\t\t\t\t\t\t\t\tprecision lowp float;\n\t\t\t\t\t\t\t\t\t\tvarying vec2 uv0;\n\t\t\t\t\t\t\t\t\t\tuniform sampler2D colorMap;\n\t\t\t\t\t\t\t\t\t\tvoid main (void) {\n\t\t\t\t\t\t\t\t\t\t\t\tgl_FragColor = vec4(texture2D(colorMap, uv0).xyz, 1);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t"};this.textureShader=new li(this.device,e)}return this.textureShader},e.getDepthTextureShader=function(){if(!this.depthTextureShader){var e=this.device.webgl2?"#define GL2":"",i={attributes:{aPosition:le},vshader:t.getTextureVS(),fshader:"\n\t\t\t\t\t\t\t\t\t\tprecision "+this.device.precision+" float;\n\t\t\t\t\t\t\t\t\t\t"+e+"\n\t\t\t\t\t\t\t\t\t\t"+ci.screenDepthPS+"\n\t\t\t\t\t\t\t\t\t\tvarying vec2 uv0;\n\t\t\t\t\t\t\t\t\t\tvoid main() {\n\t\t\t\t\t\t\t\t\t\t\t\tfloat depth = getLinearScreenDepth(uv0) * camera_params.x;\n\t\t\t\t\t\t\t\t\t\t\t\tgl_FragColor = vec4(vec3(depth), 1.0);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t"};this.depthTextureShader=new li(this.device,i)}return this.depthTextureShader},e.getQuadMesh=function(){return this.quadMesh||(this.quadMesh=new oa(this.device),this.quadMesh.setPositions([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),this.quadMesh.update(5)),this.quadMesh},e.drawMesh=function(t,e,i,n,s){if(!n){var a=this.getGraphNode(e);n=new Ba(i,t,a)}var r=this.layerMeshInstances.get(s);r||(r=[],this.layerMeshInstances.set(s,r)),r.push(n)},e.drawWireAlignedBox=function(t,e,i,n,s){Zo.push(t.x,t.y,t.z,t.x,e.y,t.z,t.x,e.y,t.z,e.x,e.y,t.z,e.x,e.y,t.z,e.x,t.y,t.z,e.x,t.y,t.z,t.x,t.y,t.z,t.x,t.y,e.z,t.x,e.y,e.z,t.x,e.y,e.z,e.x,e.y,e.z,e.x,e.y,e.z,e.x,t.y,e.z,e.x,t.y,e.z,t.x,t.y,e.z,t.x,t.y,t.z,t.x,t.y,e.z,t.x,e.y,t.z,t.x,e.y,e.z,e.x,e.y,t.z,e.x,e.y,e.z,e.x,t.y,t.z,e.x,t.y,e.z),this.getBatch(s,n).addLinesArrays(Zo,i),Zo.length=0},e.drawWireSphere=function(t,e,i,n,s,a){for(var r=2*Math.PI/n,o=0,h=0;h=0},i.getModels=function(t){return this._models},q(e,[{key:"defaultDrawLayer",get:function(){return this.layers.getLayerById(3)}},{key:"ambientBakeNumSamples",get:function(){return this._ambientBakeNumSamples},set:function(t){this._ambientBakeNumSamples=rt.clamp(Math.floor(t),1,255)}},{key:"ambientBakeSpherePart",get:function(){return this._ambientBakeSpherePart},set:function(t){this._ambientBakeSpherePart=rt.clamp(t,.001,1)}},{key:"clusteredLightingEnabled",get:function(){return this._clusteredLightingEnabled},set:function(t){!this._clusteredLightingEnabled||t?this._clusteredLightingEnabled=t:console.error("Turning off enabled clustered lighting is not currently supported")}},{key:"drawCalls",get:function(){var t=this.layers._meshInstances;return t.length||(this.layers._update(this.device,this.clusteredLightingEnabled),t=this.layers._meshInstances),t},set:function(t){}},{key:"envAtlas",get:function(){return this._envAtlas},set:function(t){t!==this._envAtlas&&(this._envAtlas=t,this.updateShaders=!0)}},{key:"fog",get:function(){return this._fog},set:function(t){t!==this._fog&&(this._fog=t,this.updateShaders=!0)}},{key:"gammaCorrection",get:function(){return this._gammaCorrection},set:function(t){t!==this._gammaCorrection&&(this._gammaCorrection=t,this.updateShaders=!0)}},{key:"layers",get:function(){return this._layers},set:function(t){var e=this._layers;this._layers=t,this.fire("set:layers",e,t)}},{key:"lighting",get:function(){return this._lightingParams}},{key:"lightmapFilterRange",get:function(){return this._lightmapFilterRange},set:function(t){this._lightmapFilterRange=Math.max(t,.001)}},{key:"lightmapFilterSmoothness",get:function(){return this._lightmapFilterSmoothness},set:function(t){this._lightmapFilterSmoothness=Math.max(t,.001)}},{key:"prefilteredCubemaps",get:function(){return this._prefilteredCubemaps},set:function(t){var e=this._prefilteredCubemaps;t=t||[];for(var i=!1,n=!0,s=0;s<6;++s){var a=t[s]||null;e[s]!==a&&(e[s]=a,i=!0),n=n&&!!e[s]}i&&(this._resetSkyboxModel(),n?(this._internalEnvAtlas=Xn.generatePrefilteredAtlas(e,{target:this._internalEnvAtlas}),this._envAtlas||(this.envAtlas=this._internalEnvAtlas)):this._internalEnvAtlas&&(this._envAtlas===this._internalEnvAtlas&&(this.envAtlas=null),this._internalEnvAtlas.destroy(),this._internalEnvAtlas=null))}},{key:"skybox",get:function(){return this._skyboxCubeMap},set:function(t){t!==this._skyboxCubeMap&&(this._skyboxCubeMap=t,this._resetSkyboxModel())}},{key:"skyboxIntensity",get:function(){return this._skyboxIntensity},set:function(t){t!==this._skyboxIntensity&&(this._skyboxIntensity=t,this._resetSkyboxModel())}},{key:"skyboxMip",get:function(){return this._skyboxMip},set:function(t){t!==this._skyboxMip&&(this._skyboxMip=t,this._resetSkyboxModel())}},{key:"skyboxRotation",get:function(){return this._skyboxRotation},set:function(t){this._skyboxRotation.equals(t)||(this._skyboxRotation.copy(t),this._resetSkyboxModel())}},{key:"toneMapping",get:function(){return this._toneMapping},set:function(t){t!==this._toneMapping&&(this._toneMapping=t,this.updateShaders=!0)}}]),e}(m);function Jo(){return!("undefined"==typeof AudioContext&&"undefined"==typeof webkitAudioContext)}var th=function(){function t(t,e,i){if(void 0===i&&(i={}),this.volume=void 0===i.volume?1:i.volume,this.loop=void 0!==i.loop&&i.loop,this.pitch=void 0===i.pitch?1:i.pitch,this.sound=e,this.paused=!1,this.suspended=!1,this.manager=t,this.source=null,Jo()){this.startTime=0,this.startOffset=0;var n=t.context;this.gain=n.createGain()}else e.audio&&(this.source=e.audio.cloneNode(!1),this.source.pause())}var e=t.prototype;return e.getVolume=function(){return this.volume},e.getLoop=function(){return this.loop},e.setLoop=function(t){this.loop=t,this.source&&(this.source.loop=t)},e.getPitch=function(){return this.pitch},e.onManagerVolumeChange=function(){this.setVolume(this.getVolume())},e.onManagerSuspend=function(){this.isPlaying()&&!this.suspended&&(this.suspended=!0,this.pause())},e.onManagerResume=function(){this.suspended&&(this.suspended=!1,this.unpause())},e.play=function(){if(this.source)throw new Error("Call stop() before calling play()");this._createSource(),this.source&&(this.startTime=this.manager.context.currentTime,this.source.start(0,this.startOffset%this.source.buffer.duration),this.setVolume(this.volume),this.setLoop(this.loop),this.setPitch(this.pitch),this.manager.on("volumechange",this.onManagerVolumeChange,this),this.manager.on("suspend",this.onManagerSuspend,this),this.manager.on("resume",this.onManagerResume,this),this.manager.suspended&&this.onManagerSuspend())},e.pause=function(){this.source&&(this.paused=!0,this.startOffset+=this.manager.context.currentTime-this.startTime,this.source.stop(0),this.source=null)},e.unpause=function(){!this.source&&this.paused?(this._createSource(),this.source&&(this.startTime=this.manager.context.currentTime,this.source.start(0,this.startOffset%this.source.buffer.duration),this.setVolume(this.volume),this.setLoop(this.loop),this.setPitch(this.pitch),this.paused=!1)):console.warn("Call pause() before unpausing.")},e.stop=function(){this.source&&(this.source.stop(0),this.source=null),this.manager.off("volumechange",this.onManagerVolumeChange,this),this.manager.off("suspend",this.onManagerSuspend,this),this.manager.off("resume",this.onManagerResume,this)},e.setVolume=function(t){t=rt.clamp(t,0,1),this.volume=t,this.gain&&(this.gain.gain.value=t*this.manager.volume)},e.setPitch=function(t){this.pitch=t,this.source&&(this.source.playbackRate.value=t)},e.isPlaying=function(){return!this.paused&&this.source.playbackState===this.source.PLAYING_STATE},e.getDuration=function(){return this.source?this.source.buffer.duration:0},e._createSource=function(){var t=this.manager.context;this.sound.buffer&&(this.source=t.createBufferSource(),this.source.buffer=this.sound.buffer,this.source.connect(this.gain),this.gain.connect(t.destination),this.loop||(this.source.onended=this.pause.bind(this)))},t}();Jo()||Object.assign(th.prototype,{play:function(){this.source&&(this.paused=!1,this.setVolume(this.volume),this.setLoop(this.loop),this.setPitch(this.pitch),this.source.play()),this.manager.on("volumechange",this.onManagerVolumeChange,this),this.manager.on("suspend",this.onManagerSuspend,this),this.manager.on("resume",this.onManagerResume,this),this.manager.suspended&&this.onManagerSuspend()},pause:function(){this.source&&(this.paused=!0,this.source.pause())},unpause:function(){this.source&&(this.paused=!1,this.source.play())},stop:function(){this.source&&this.source.pause(),this.manager.off("volumechange",this.onManagerVolumeChange,this),this.manager.off("suspend",this.onManagerSuspend,this),this.manager.off("resume",this.onManagerResume,this)},setVolume:function(t){t=rt.clamp(t,0,1),this.volume=t,this.source&&(this.source.volume=t*this.manager.volume)},setPitch:function(t){this.pitch=t,this.source&&(this.source.playbackRate=t)},getDuration:function(){return this.source&&!isNaN(this.source.duration)?this.source.duration:0},isPlaying:function(){return!this.source.paused}});var eh="linear",ih="inverse",nh="exponential",sh=function(t){function e(e,i,n){var s;return(s=t.call(this,e,i,n)||this).position=new ft,s.velocity=new ft,Jo()?s.panner=e.context.createPanner():(s.maxDistance=1e4,s.minDistance=1,s.rollOffFactor=1,s.distanceModel=ih),s}Y(e,t);var i=e.prototype;return i.getPosition=function(){return this.position},i.setPosition=function(t){this.position.copy(t);var e=this.panner;"positionX"in e?(e.positionX.value=t.x,e.positionY.value=t.y,e.positionZ.value=t.z):e.setPosition&&e.setPosition(t.x,t.y,t.z)},i.getVelocity=function(){return this.velocity},i.setVelocity=function(t){this.velocity.copy(t)},i.getMaxDistance=function(){return this.panner.maxDistance},i.setMaxDistance=function(t){this.panner.maxDistance=t},i.getMinDistance=function(){return this.panner.refDistance},i.setMinDistance=function(t){this.panner.refDistance=t},i.getRollOffFactor=function(){return this.panner.rolloffFactor},i.setRollOffFactor=function(t){this.panner.rolloffFactor=t},i.getDistanceModel=function(){return this.panner.distanceModel},i.setDistanceModel=function(t){this.panner.distanceModel=t},i._createSource=function(){var t=this.manager.context;this.source=t.createBufferSource(),this.source.buffer=this.sound.buffer,this.source.connect(this.panner),this.panner.connect(this.gain),this.gain.connect(t.destination),this.loop||(this.source.onended=this.pause.bind(this))},e}(th);if(!Jo()){var ah=new ft;Object.assign(sh.prototype,{setPosition:function(t){if(this.position.copy(t),this.source){var e=function(t,e,i,n,s,a){var r=(ah=ah.sub2(t,e)).length();if(rn)return 0;var o=0;return a===eh?o=1-s*(r-i)/(n-i):a===ih?o=i/(i+s*(r-i)):a===nh&&(o=Math.pow(r/i,-s)),rt.clamp(o,0,1)}(this.manager.listener.getPosition(),this.position,this.minDistance,this.maxDistance,this.rollOffFactor,this.distanceModel),i=this.getVolume();this.source.volume=i*e}},getMaxDistance:function(){return this.maxDistance},setMaxDistance:function(t){this.maxDistance=t},getMinDistance:function(){return this.minDistance},setMinDistance:function(t){this.minDistance=t},getRollOffFactor:function(){return this.rollOffFactor},setRollOffFactor:function(t){this.rollOffFactor=t},getDistanceModel:function(){return this.distanceModel},setDistanceModel:function(t){this.distanceModel=t}})}var rh=function(){function t(t){this._manager=t,this.position=new ft,this.velocity=new ft,this.orientation=new St}var e=t.prototype;return e.getPosition=function(){return this.position},e.setPosition=function(t){this.position.copy(t);var e=this.listener;e&&("positionX"in e?(e.positionX.value=t.x,e.positionY.value=t.y,e.positionZ.value=t.z):e.setPosition&&e.setPosition(t.x,t.y,t.z))},e.getVelocity=function(){return this.velocity},e.setVelocity=function(t){},e.setOrientation=function(t){this.orientation.copy(t);var e=this.listener;if(e){var i=t.data;"forwardX"in e?(e.forwardX.value=-i[8],e.forwardY.value=-i[9],e.forwardZ.value=-i[10],e.upX.value=i[4],e.upY.value=i[5],e.upZ.value=i[6]):e.setOrientation&&e.setOrientation(-i[8],-i[9],-i[10],i[4],i[5],i[6])}},e.getOrientation=function(){return this.orientation},q(t,[{key:"listener",get:function(){var t=this._manager.context;return t?t.listener:null}}]),t}(),oh="running",hh="suspended",lh="interrupted",ch=["click","contextmenu","auxclick","dblclick","mousedown","mouseup","pointerup","touchend","keydown","keyup"],uh=function(t){function e(e){var i;return(i=t.call(this)||this)._context=null,i._state="not created",i._forceWebAudioApi=e.forceWebAudioApi,i._resumeContext=null,i._resumeContextAttached=!1,i._unlock=null,i._unlockAttached=!1,Jo()||i._forceWebAudioApi?i._addAudioContextUserInteractionListeners():console.warn("No support for 3D audio found"),i.listener=new rh(Z(i)),i._volume=1,i.suspended=!1,i}Y(e,t);var i=e.prototype;return i.suspend=function(){this.suspended=!0,this.fire("suspend")},i.resume=function(){this.suspended=!1,this.fire("resume"),!this.context||this._state!==lh&&this._state!==hh||this._safelyResumeContext()},i.destroy=function(){var t=this;this._resumeContext&&this._resumeContextAttached&&ch.forEach((function(e){window.removeEventListener(e,t._resumeContext)})),this._unlock&&this._unlockAttached&&window.removeEventListener("touchend",this._unlock),this.fire("destroy"),this._context&&this._context.close&&(this._context.close(),this._context=null)},i.playSound=function(t,e){void 0===e&&(e={});var i=null;return th&&(i=new th(this,t,e)).play(),i},i.playSound3d=function(t,e,i){void 0===i&&(i={});var n=null;return sh&&((n=new sh(this,t,i)).setPosition(e),i.volume&&n.setVolume(i.volume),i.loop&&n.setLoop(i.loop),i.maxDistance&&n.setMaxDistance(i.maxDistance),i.minDistance&&n.setMinDistance(i.minDistance),i.rollOffFactor&&n.setRollOffFactor(i.rollOffFactor),i.distanceModel&&n.setDistanceModel(i.distanceModel),n.play()),n},i._safelyResumeContext=function(){var t=this;this._context&&this._context.resume().then((function(){t._context.state!==oh&&t._addAudioContextUserInteractionListeners()})).catch((function(){t._addAudioContextUserInteractionListeners()}))},i._addAudioContextUserInteractionListeners=function(){var t=this;this._resumeContext||(this._resumeContext=function(){t.context&&t.context.state!==oh?t.context.resume():(ch.forEach((function(e){window.removeEventListener(e,t._resumeContext)})),t._resumeContextAttached=!1)}),this._resumeContextAttached||(ch.forEach((function(e){window.addEventListener(e,t._resumeContext)})),this._resumeContextAttached=!0),L.ios&&(this._unlock||(this._unlock=function(){window.removeEventListener("touchend",t._unlock),t._unlockAttached=!1;var e=t.context;if(e){var i=e.createBuffer(1,1,44100),n=e.createBufferSource();n.buffer=i,n.connect(e.destination),n.start(0),n.disconnect()}}),this._unlockAttached||(window.addEventListener("touchend",this._unlock),this._unlockAttached=!0))},q(e,[{key:"volume",get:function(){return this._volume},set:function(t){t=rt.clamp(t,0,1),this._volume=t,this.fire("volumechange",t)}},{key:"context",get:function(){var t=this;return this._context||(Jo()||this._forceWebAudioApi)&&("undefined"!=typeof AudioContext?this._context=new AudioContext:"undefined"!=typeof webkitAudioContext&&(this._context=new webkitAudioContext),this._context&&(this._state=this._context.state,this._context.onstatechange=function(){t._context&&(t._state!==lh&&t._state!==hh||t._safelyResumeContext(),t._state=t._context.state)})),this._context}}]),e}(m),dh=function(t,e,i,n){this.time=t,this.position=e,this.rotation=i,this.scale=n},fh=function(){this._name="",this._keys=[]},ph=function(){function t(){this.name="",this.duration=0,this._nodes=[],this._nodeDict={}}var e=t.prototype;return e.getNode=function(t){return this._nodeDict[t]},e.addNode=function(t){this._nodes.push(t),this._nodeDict[t._name]=t},q(t,[{key:"nodes",get:function(){return this._nodes}}]),t}(),mh=function(){function t(t){2===arguments.length&&(t=arguments[1]),this.options=t,this._name=t.name,this._defaultWeight=t.defaultWeight||0,this.aabb=t.aabb,this.aabb||(this.aabb=new Pt,t.deltaPositions&&this.aabb.compute(t.deltaPositions)),this.deltaPositions=t.deltaPositions}var e=t.prototype;return e._postInit=function(){this.options=null},e._initVertexBuffers=function(t){var e=this.options;this._vertexBufferPositions=this._createVertexBuffer(t,e.deltaPositions,e.deltaPositionsType),this._vertexBufferNormals=this._createVertexBuffer(t,e.deltaNormals,e.deltaNormalsType),this._vertexBufferPositions&&(this.deltaPositions=this._vertexBufferPositions.lock())},e._createVertexBuffer=function(t,e,i){return void 0===i&&(i=6),e?new ii(t,new si(t,[{semantic:Ae,components:3,type:i}]),e.length/3,0,e):null},e._setTexture=function(t,e){this[t]=e},e.destroy=function(){this._vertexBufferPositions&&(this._vertexBufferPositions.destroy(),this._vertexBufferPositions=null),this._vertexBufferNormals&&(this._vertexBufferNormals.destroy(),this._vertexBufferNormals=null),this.texturePositions&&(this.texturePositions.destroy(),this.texturePositions=null),this.textureNormals&&(this.textureNormals.destroy(),this.textureNormals=null)},q(t,[{key:"name",get:function(){return this._name}},{key:"defaultWeight",get:function(){return this._defaultWeight}},{key:"morphPositions",get:function(){return!!this._vertexBufferPositions||!!this.texturePositions}},{key:"morphNormals",get:function(){return!!this._vertexBufferNormals||!!this.textureNormals}}]),t}(),_h=function(t,e,i){this.device=t,this.inverseBindPose=e,this.boneNames=i},gh=function(t){function e(){var e;return(e=t.call(this)||this)._meshes=null,e}Y(e,t);var i=e.prototype;return i.destroy=function(){this.meshes=null},i.decRefMeshes=function(){if(this._meshes)for(var t=this._meshes.length,e=0;e=0&&t<=1?0:1})),Ah(["fr","pt"],(function(t){return t>=0&&t<2?0:1})),Ah(["da"],(function(t){return 1===t||!Number.isInteger(t)&&t>=0&&t<=1?0:1})),Ah(["de","en","it","el","es","tr","fi","sv","nb","no","ur"],(function(t){return 1===t?0:1})),Ah(["ru","uk"],(function(t){if(Number.isInteger(t)){var e=t%10,i=t%100;if(1===e&&11!==i)return 0;if(e>=2&&e<=4&&(i<12||i>14))return 1;if(0===e||e>=5&&e<=9||i>=11&&i<=14)return 2}return 3})),Ah(["pl"],(function(t){if(Number.isInteger(t)){if(1===t)return 0;var e=t%10,i=t%100;if(e>=2&&e<=4&&(i<12||i>14))return 1;if(e>=0&&e<=1||e>=5&&e<=9||i>=12&&i<=14)return 2}return 3})),Ah(["ar"],(function(t){if(0===t)return 0;if(1===t)return 1;if(2===t)return 2;if(Number.isInteger(t)){var e=t%100;if(e>=3&&e<=10)return 3;if(e>=11&&e<=99)return 4}return 5}));var Eh=Th[Mh(Sh)];function Ph(t){return Th[t]||Eh}var Rh=new RegExp("^\\s*(?:(?:[a-z]+[a-z0-9\\-\\+\\.]*:)?//|data:|blob:)","i"),Ih=function(){function t(t,e,i,n,s,a){this.url=t||"",this.filename=e||"",this.hash=void 0===i?null:i,this.size=void 0===n?null:n,this.opt=void 0===s?null:s,this.contents=a||null}return t.prototype.equals=function(t){return this.url===t.url&&this.filename===t.filename&&this.hash===t.hash&&this.size===t.size&&this.opt===t.opt&&this.contents===t.contents},t}(),Lh=-1,Dh={pvr:"extCompressedTexturePVRTC",dxt:"extCompressedTextureS3TC",etc2:"extCompressedTextureETC",etc1:"extCompressedTextureETC1",basis:"canvas"},kh=["pvr","dxt","etc2","etc1","basis"],Oh=function(t){function e(e,i,n,s,a){var r;return(r=t.call(this)||this)._id=Lh--,r.name=e||"",r.type=i,r.tags=new et(Z(r)),r._preload=!1,r._file=null,r._data=s||{},r.options=a||{},r._resources=[],r._i18n={},r.loaded=!1,r.loading=!1,r.registry=null,n&&(r.file=n),r}Y(e,t);var i=e.prototype;return i.getFileUrl=function(){var t=this.file;if(!t||!t.url)return null;var e=t.url;if(this.registry&&this.registry.prefix&&!Rh.test(e)&&(e=this.registry.prefix+e),"script"!==this.type&&t.hash){var i=-1!==e.indexOf("?")?"&":"?";e+=i+"t="+t.hash}return e},i.getAbsoluteUrl=function(t){if(t.startsWith("blob:")||t.startsWith("data:"))return t;var e=v.getDirectory(this.file.url);return v.join(e,t)},i.getLocalizedAssetId=function(t){return t=Ch(t,this._i18n),this._i18n[t]||null},i.addLocalizedAssetId=function(t,e){this._i18n[t]=e,this.fire("add:localized",t,e)},i.removeLocalizedAssetId=function(t){var e=this._i18n[t];e&&(delete this._i18n[t],this.fire("remove:localized",t,e))},i.ready=function(t,e){e=e||this,this.resource?t.call(e,this):this.once("load",(function(i){t.call(e,i)}))},i.reload=function(){this.loaded&&(this.loaded=!1,this.registry.load(this))},i.unload=function(){if(this.loaded||0!==this._resources.length){this.fire("unload",this),this.registry.fire("unload:"+this.id,this);var t=this._resources;this.resources=[],this.loaded=!1,this.file&&this.registry._loader.clearCache(this.getFileUrl(),this.type);for(var e=0;e0,maxRetries:n},e)},q(e,[{key:"id",get:function(){return this._id},set:function(t){this._id=t}},{key:"file",get:function(){return this._file},set:function(t){var e=this;if(t&&t.variants&&-1!==["texture","textureatlas","bundle"].indexOf(this.type)){var i,n,s=(null==(i=this.registry)||null==(n=i._loader)?void 0:n._app)||ia(),a=null==s?void 0:s.graphicsDevice;if(a)for(var r=function(i,n){var r=kh[i];if(t.variants[r]&&a[Dh[r]])return t=t.variants[r],"break";if(s.enableBundles){var o=s.bundles.listBundlesForAsset(e);if(o&&o.find((function(t){var e;return null==t||null==(e=t.file)?void 0:e.variants[r]})))return"break"}},o=0,h=kh.length;o=0){var a=n[s];a.decRefCount(),0===a.refCount&&(n.splice(s,1),n.length||t._skinInstanceCache.delete(i),e&&(e.destroy(),a.skinInstance=null))}}}}},t}();Bh._skinInstanceCache=new Map;var Nh,Uh=function(){function t(e,i,n,s){for(var a=function(e,s,a){var r=t.createAsset(i.name,e,s,a);return n.add(r),r},r=[],o=0;o0&&o(n,Float32Array,1),s.length>0&&o(s,Uint16Array,65535),a.length>0&&o(a,Uint8Array,255)}(y),y.unlock(),y},Jh=new St,tl=new ft,el=function(t,e,i,n,s,a,r){var o=[];return e.primitives.forEach((function(h){var l,c,u,d=null,f=!0;if(h.hasOwnProperty("extensions")){var p=h.extensions;if(p.hasOwnProperty("KHR_draco_mesh_compression")){var m=window.DracoDecoderModule;if(m){var _=p.KHR_draco_mesh_compression;if(_.hasOwnProperty("attributes")){var g=n[_.bufferView],v=new m.DecoderBuffer;v.Init(g,g.length);var y,x,b=new m.Decoder,S=b.GetEncodedGeometryType(v);switch(S){case m.POINT_CLOUD:l=0,y=new m.PointCloud,x=b.DecodeBufferToPointCloud(v,y);break;case m.TRIANGULAR_MESH:l=4,y=new m.Mesh,x=b.DecodeBufferToMesh(v,y);break;case m.INVALID_GEOMETRY_TYPE:}if(!x||!x.ok()||0==y.ptr)return void s("Failed to decode draco compressed asset: "+(x?x.error_msg():"Mesh asset - invalid draco compressed geometry type: "+S));var w=y.num_faces();if(S===m.TRIANGULAR_MESH){var T=y.num_points()>65535,A=(u=3*w)*(T?4:2),M=m._malloc(A);T?(b.GetTrianglesUInt32Array(y,A,M),d=new Uint32Array(m.HEAPU32.buffer,M,u).slice()):(b.GetTrianglesUInt16Array(y,A,M),d=new Uint16Array(m.HEAPU16.buffer,M,u).slice()),m._free(M)}c=function(t,e,i,n,s,a,r){var o=e.num_points(),h=function(t){var i,a,r,h,l=n.GetAttributeByUniqueId(e,t),c=o*l.num_components();switch(l.data_type()){case s.DT_UINT8:h=1,r=1,i=s._malloc(c*r),n.GetAttributeDataArrayForAllPoints(e,l,s.DT_UINT8,c*r,i),a=new Uint8Array(s.HEAPU8.buffer,i,c).slice();break;case s.DT_UINT16:h=3,r=2,i=s._malloc(c*r),n.GetAttributeDataArrayForAllPoints(e,l,s.DT_UINT16,c*r,i),a=new Uint16Array(s.HEAPU16.buffer,i,c).slice();break;case s.DT_FLOAT32:default:h=6,r=4,i=s._malloc(c*r),n.GetAttributeDataArrayForAllPoints(e,l,s.DT_FLOAT32,c*r,i),a=new Float32Array(s.HEAPF32.buffer,i,c).slice()}return s._free(i),{values:a,numComponents:l.num_components(),componentSizeInBytes:r,storageType:h,normalized:l.normalized()}},l={},c=i.attributes;for(var u in c)if(c.hasOwnProperty(u)&&Xh.hasOwnProperty(u)){var d=Xh[u],f=h(c[u]),p=f.numComponents*f.componentSizeInBytes;l[d]={values:f.values,buffer:f.values.buffer,size:p,offset:0,stride:p,count:o,components:f.numComponents,type:f.storageType,normalize:f.normalized}}return l.hasOwnProperty(ce)||Zh(l,a),Qh(t,l,r)}(t,y,_,b,m,d,a),m.destroy(y),m.destroy(b),m.destroy(v),f=!1}}}}c||(d=h.hasOwnProperty("indices")?jh(i[h.indices],n,!0):null,c=function(t,e,i,n,s,a,r){var o={},h=[];for(var l in e)e.hasOwnProperty(l)&&Xh.hasOwnProperty(l)&&(o[l]=e[l],h.push(l+":"+e[l]));h.sort();var c=h.join(),u=r[c];if(!u){var d={};for(var f in o){var p=n[e[f]],m=jh(p,s),_=s[p.bufferView],g=Xh[f],v=Wh(p.type)*Hh(p.componentType),y=_.hasOwnProperty("byteStride")?_.byteStride:v;d[g]={buffer:m.buffer,size:v,offset:m.byteOffset,stride:y,count:p.count,components:Wh(p.type),type:Gh(p.componentType),normalize:p.normalized}}d.hasOwnProperty(ce)||Zh(d,i),u=Qh(t,d,a),r[c]=u}return u}(t,h.attributes,d,i,n,a,r),l=function(t){if(!t.hasOwnProperty("mode"))return 4;switch(t.mode){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case 4:return 4;case 5:return 5;case 6:return 6;default:return 4}}(h));var C=null;if(c){if((C=new oa(t)).vertexBuffer=c,C.primitive[0].type=l,C.primitive[0].base=0,C.primitive[0].indexed=null!==d,null!==d){var E;2!==(E=d instanceof Uint8Array?0:d instanceof Uint16Array?1:2)||t.extUintElement||(E=1,d=new Uint16Array(d));var P=new ws(t,E,d.length,0,d);C.indexBuffer[0]=P,C.primitive[0].count=d.length}else C.primitive[0].count=c.numVertices;C.materialIndex=h.material;var R=i[h.attributes.POSITION];if(C.aabb=Kh(R),f&&h.hasOwnProperty("targets")){var I=[];h.targets.forEach((function(t,s){var a={};t.hasOwnProperty("POSITION")&&(R=i[t.POSITION],a.deltaPositions=Yh(R,n),a.deltaPositionsType=6,a.aabb=Kh(R)),t.hasOwnProperty("NORMAL")&&(R=i[t.NORMAL],a.deltaNormals=Yh(R,n),a.deltaNormalsType=6),e.hasOwnProperty("extras")&&e.extras.hasOwnProperty("targetNames")?a.name=e.extras.targetNames[s]:a.name=s.toString(10),e.hasOwnProperty("weights")&&(a.defaultWeight=e.weights[s]),I.push(new mh(a))})),C.morph=new Ho(I,t)}}o.push(C)})),o},il=function(t,e,i){var n,s,a=["#ifdef MAPFLOAT","uniform float material_shininess;","#endif","","#ifdef MAPTEXTURE","uniform sampler2D texture_glossMap;","#endif","","void getGlossiness() {","\t\tdGlossiness = 1.0;","","#ifdef MAPFLOAT","\t\tdGlossiness *= material_shininess;","#endif","","#ifdef MAPTEXTURE","\t\tdGlossiness *= texture2D(texture_glossMap, $UV, textureBias).$CH;","#endif","","#ifdef MAPVERTEX","\t\tdGlossiness *= saturate(vVertexColor.$VC);","#endif","","\t\tdGlossiness = 1.0 - dGlossiness;","","\t\tdGlossiness += 0.0000001;","}"].join("\n"),r=["#ifdef MAPCOLOR","uniform vec3 material_specular;","#endif","","#ifdef MAPTEXTURE","uniform sampler2D texture_specularMap;","#endif","","void getSpecularity() {","\t\tdSpecularity = vec3(1.0);","","\t\t#ifdef MAPCOLOR","\t\t\t\tdSpecularity *= material_specular;","\t\t#endif","","\t\t#ifdef MAPTEXTURE","\t\t\t\tvec3 srgb = texture2D(texture_specularMap, $UV, textureBias).$CH;","\t\t\t\tdSpecularity *= vec3(pow(srgb.r, 2.2), pow(srgb.g, 2.2), pow(srgb.b, 2.2));","\t\t#endif","","\t\t#ifdef MAPVERTEX","\t\t\t\tdSpecularity *= saturate(vVertexColor.$VC);","\t\t#endif","}"].join("\n"),o=["#ifdef MAPFLOAT","uniform float material_clearCoatGlossiness;","#endif","","#ifdef MAPTEXTURE","uniform sampler2D texture_clearCoatGlossMap;","#endif","","void getClearCoatGlossiness() {","\t\tccGlossiness = 1.0;","","#ifdef MAPFLOAT","\t\tccGlossiness *= material_clearCoatGlossiness;","#endif","","#ifdef MAPTEXTURE","\t\tccGlossiness *= texture2D(texture_clearCoatGlossMap, $UV, textureBias).$CH;","#endif","","#ifdef MAPVERTEX","\t\tccGlossiness *= saturate(vVertexColor.$VC);","#endif","","\t\tccGlossiness = 1.0 - ccGlossiness;","","\t\tccGlossiness += 0.0000001;","}"].join("\n"),h=[0,0],l=[1,1],c=function(t,e,i){var n,s,a=t.texCoord;if(a)for(s=0;s0?i.name=t.name:i.name="node_"+e,t.hasOwnProperty("matrix")&&(Jh.data.set(t.matrix),Jh.getTranslation(tl),i.setLocalPosition(tl),Jh.getEulerAngles(tl),i.setLocalEulerAngles(tl),Jh.getScale(tl),i.setLocalScale(tl)),t.hasOwnProperty("rotation")){var n=t.rotation;i.setLocalRotation(n[0],n[1],n[2],n[3])}if(t.hasOwnProperty("translation")){var s=t.translation;i.setLocalPosition(s[0],s[1],s[2])}if(t.hasOwnProperty("scale")){var a=t.scale;i.setLocalScale(a[0],a[1],a[2])}return i},sl=function(t,e){var i="orthographic"===t.type?1:0,n=1===i?t.orthographic:t.perspective,s={enabled:!1,projection:i,nearClip:n.znear,aspectRatioMode:0};n.zfar&&(s.farClip=n.zfar),1===i?(s.orthoHeight=.5*n.ymag,n.ymag&&(s.aspectRatioMode=1,s.aspectRatio=n.xmag/n.ymag)):(s.fov=n.yfov*rt.RAD_TO_DEG,n.aspectRatio&&(s.aspectRatioMode=1,s.aspectRatio=n.aspectRatio));var a=new Bv(t.name);return a.addComponent("camera",s),a},al=function(t,e){var i={enabled:!1,type:"point"===t.type?"omni":t.type,color:t.hasOwnProperty("color")?new lt(t.color):lt.WHITE,range:t.hasOwnProperty("range")?t.range:9999,falloffMode:1,intensity:t.hasOwnProperty("intensity")?rt.clamp(t.intensity,0,2):1};t.hasOwnProperty("spot")&&(i.innerConeAngle=t.spot.hasOwnProperty("innerConeAngle")?t.spot.innerConeAngle*rt.RAD_TO_DEG:0,i.outerConeAngle=t.spot.hasOwnProperty("outerConeAngle")?t.spot.outerConeAngle*rt.RAD_TO_DEG:Math.PI/4);var n=new Bv(e.name);return n.rotateLocal(90,0,0),n.addComponent("light",i),n},rl=function(t,e,i,n){if(!e.hasOwnProperty("skins")||0===e.skins.length)return[];var s=new Map;return e.skins.map((function(a){return function(t,e,i,n,s,a){var r,o,h,l=e.joints,c=l.length,u=[];if(e.hasOwnProperty("inverseBindMatrices")){var d=e.inverseBindMatrices,f=jh(i[d],n,!0),p=[];for(r=0;r0){var s=i&&i.camera&&i.camera.preprocess,a=i&&i.camera&&i.camera.process||sl,r=i&&i.camera&&i.camera.postprocess;t.nodes.forEach((function(i,o){if(i.hasOwnProperty("camera")){var h=t.cameras[i.camera];if(h){s&&s(h);var l=a(h,e[o]);r&&r(h,l),l&&(n||(n=new Map),n.set(i,l))}}}))}return n}(e,l,s),f=ol(e,l,i,s),p=function(t,e,i,n){if(!t.hasOwnProperty("materials")||0===t.materials.length)return[];var s=i&&i.material&&i.material.preprocess,a=i&&i.material&&i.material.process||il,r=i&&i.material&&i.material.postprocess;return t.materials.map((function(t){s&&s(t);var i=a(t,e,n);return r&&r(t,i),i}))}(e,n.map((function(t){return t.resource})),s,h),m=function(t,e,i,n,s){if(!e.hasOwnProperty("meshes")||0===e.meshes.length||!e.hasOwnProperty("accessors")||0===e.accessors.length||!e.hasOwnProperty("bufferViews")||0===e.bufferViews.length)return[];var a={};return e.meshes.map((function(r){return el(t,r,e.accessors,i,n,s,a)}))}(t,e,i,a,h),_=rl(t,e,l,i),g=[],v=0;vi.byteLength)e("Invalid length found in glb header. Found "+a);else{for(var r=[],o=12;oi.byteLength)throw new Error("Invalid chunk length found in glb. Found "+h);var l=i.getUint32(o+4,!0),c=new Uint8Array(i.buffer,i.byteOffset+o+8,h);r.push({length:h,type:l,data:c}),o+=h+8}1===r.length||2===r.length?1313821514===r[0].type?r.length>1&&5130562!==r[1].type?e("Invalid chunk type found in glb file. Expected 0x004E4942, found 0x"+r[1].type.toString(16)):e(null,{gltfChunk:r[0].data,binaryChunk:2===r.length?r[1].data:null}):e("Invalid chunk type found in glb file. Expected 0x4E4F534A, found 0x"+r[0].type.toString(16)):e("Invalid number of chunks found in glb file.")}else e("Invalid version number found in glb header. Expected 2, found "+s);else e("Invalid magic number found in glb header. Expected 0x46546C67, found 0x"+n.toString(16))}(e,i):i(null,{gltfChunk:e,binaryChunk:null})},fl=function(t,e,i,n){var s=[],a=i&&i.bufferView&&i.bufferView.preprocess,r=i&&i.bufferView&&i.bufferView.processAsync||function(t,e,i){i(null,null)},o=i&&i.bufferView&&i.bufferView.postprocess,h=t.bufferViews?t.bufferViews.length:0;if(h)for(var l=function(e,i){var a=t.bufferViews[e];a.hasOwnProperty("byteStride")&&(i.byteStride=a.byteStride),s[e]=i,o&&o(a,i),0==--h&&n(null,s)},c=0;c=0?t.split("?")[0]:t},e.load=function(e,i,n){var s=this;Oh.fetchArrayBuffer(e.load,(function(a,r){a?i(a):t.parseAsync(s._getUrlWithoutParams(e.original),v.extractPath(e.load),r,s._device,n.registry,n.options,(function(t,e){t?i(t):i(null,new Uh(e,n,s._assets,s._defaultMaterial))}))}),n,this._maxRetries)},e.open=function(t,e,i){return e},e.patch=function(t,e){},t}(),ml=function(){function t(){this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i={retry:this.maxRetries>0,maxRetries:this.maxRetries};(t.load.startsWith("blob:")||t.load.startsWith("data:"))&&(".glb"===v.getExtension(t.original).toLowerCase()?i.responseType=ot.ResponseType.ARRAY_BUFFER:i.responseType=ot.ResponseType.JSON),ht.get(t.load,i,(function(i,n){i?e("Error loading animation resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){if(".glb"===v.getExtension(t).toLowerCase()){var i=pl.parse("filename.glb",e,null);if(i){var n=i.animations;return i.destroy(),n}return null}return this["_parseAnimationV"+e.animation.version](e)},e.patch=function(t,e){},e._parseAnimationV3=function(t){var e=t.animation,i=new ph;i.name=e.name,i.duration=e.duration;for(var n=0;n0,maxRetries:this.maxRetries};t.load.startsWith("blob:")&&(i.responseType=ot.ResponseType.JSON),ht.get(t.load,i,(function(i,n){i?e("Error loading animation clip resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){var i=e.name,n=e.duration,s=e.inputs.map((function(t){return new yh(1,t)})),a=e.outputs.map((function(t){return new yh(t.components,t.data)})),r=e.curves.map((function(t){return new vh([t.path],t.inputIndex,t.outputIndex,t.interpolation)}));return new bh(i,n,s,a,r)},e.patch=function(t,e){},t}(),gl=function(){function t(t){if(this._layers=[],this._parameters={},Array.isArray(t.layers))this._layers=t.layers;else for(var e in t.layers){for(var i=t.layers[e],n={name:i.name,blendType:i.blendType,weight:i.weight,states:[],transitions:[]},s=0;s0,maxRetries:this.maxRetries};t.load.startsWith("blob:")&&(i.responseType=ot.ResponseType.JSON),ht.get(t.load,i,(function(i,n){i?e("Error loading animation state graph resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return new gl(e)},e.patch=function(t,e){},t}(),yl=function(){function t(t){this.audio=void 0,this.buffer=void 0,t instanceof Audio?this.audio=t:this.buffer=t}return q(t,[{key:"duration",get:function(){var t=0;return this.buffer?t=this.buffer.duration:this.audio&&(t=this.audio.duration),t||0}}]),t}(),xl=function(){if("undefined"==typeof window)return!1;var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}return!1}(),bl={".ogg":"audio/ogg",".mp3":"audio/mpeg",".wav":"audio/x-wav",".mp4a":"audio/mp4",".m4a":"audio/mp4",".mp4":"audio/mp4",".aac":"audio/aac"},Sl=function(){function t(t){this.manager=t,this.maxRetries=0}var e=t.prototype;return e._isSupported=function(t){var e=v.getExtension(t);return!!bl[e]},e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i=function(i){var n="Error loading audio url: "+t.original;i&&(n+=": "+(i.message||i)),console.warn(n),e(n)};if(this._createSound){if(!this._isSupported(t.original))return void i("Audio format for "+t.original+" not supported");this._createSound(t.load,(function(t){e(null,new yl(t))}),i)}else i(null)},e.open=function(t,e){return e},e.patch=function(t,e){},e._createSound=function(t,e,i){if(Jo()){var n=this.manager;if(!n.context)return void i("Audio manager has no audio context");var s={retry:this.maxRetries>0,maxRetries:this.maxRetries};(t.startsWith("blob:")||t.startsWith("data:"))&&(s.responseType=ot.ResponseType.ARRAY_BUFFER),ht.get(t,s,(function(t,s){t?i(t):n.context.decodeAudioData(s,e,i)}))}else{var a=null;try{a=new Audio}catch(t){return void i("No support for Audio element")}xl&&document.body.appendChild(a);a.onerror=function(){a.onerror=null,xl&&document.body.removeChild(a),i()},a.addEventListener("canplaythrough",(function t(){a.removeEventListener("canplaythrough",t),xl&&document.body.removeChild(a),e(a)})),a.src=t}},t}(),wl=function(){function t(){this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t}),ht.get(t.load,{responseType:ot.ResponseType.ARRAY_BUFFER,retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?e("Error loading binary resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}(),Tl=function(){function t(t){this._blobUrls={};for(var e=0,i=t.length;e=s)throw new Error("Invalid PAX header data format.");var l=parseInt(e.decode(new Uint8Array(t,i+r,h-r)),10),c=e.decode(new Uint8Array(t,i+h+1,l-(h-r)-2)).split("=");if(2!==c.length)throw new Error("Invalid PAX header data format.");0===c[1].length&&(c[1]=null),o.push({name:c[0],value:c[1]}),r+=l}return new n(o)},n.prototype.applyHeader=function(t){for(var e=0;e0&&(a=p.trim()+a.trim())}var m={name:a,start:l,size:o,url:c};return this._globalPaxHeader&&this._globalPaxHeader.applyHeader(m),this._paxHeader&&(this._paxHeader.applyHeader(m),this._paxHeader=null),m},s.prototype.untar=function(t){if(!e)return console.error("Cannot untar because TextDecoder interface is not available for this platform."),[];for(var i=[];this._hasNext();){var n=this._readNextFile();n&&(t&&n.name&&(n.name=t+n.name),i.push(n))}return i},t&&(self.onmessage=function(t){var e=t.data.id;try{var i=new s(t.data.arrayBuffer).untar(t.data.prefix);postMessage({id:e,files:i,arrayBuffer:t.data.arrayBuffer},[t.data.arrayBuffer])}catch(t){postMessage({id:e,error:t.toString()})}})}var Ml=null;var Cl=function(){function t(t){this._requestId=0,this._pendingRequests={},this._filenamePrefix=t,this._worker=new Worker(function(){if(!Ml){var t="("+Al.toString()+")(true)\n\n",e=new Blob([t],{type:"application/javascript"});Ml=URL.createObjectURL(e)}return Ml}()),this._worker.addEventListener("message",this._onMessage.bind(this))}var e=t.prototype;return e._onMessage=function(t){var e=t.data.id;if(this._pendingRequests[e]){var i=this._pendingRequests[e];if(delete this._pendingRequests[e],t.data.error)i(t.data.error);else{for(var n=t.data.arrayBuffer,s=0,a=t.data.files.length;s0},e.destroy=function(){this._worker&&(this._worker.terminate(),this._worker=null,this._pendingRequests=null)},t}();Al();var El=function(){function t(t){this._assets=t,this._worker=null,this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i=this;ht.get(t.load,{responseType:ot.ResponseType.ARRAY_BUFFER,retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(n,s){if(n)e("Error loading bundle resource "+t.original+": "+n);else try{i._untar(s,e)}catch(i){e("Error loading bundle resource "+t.original+": "+i)}}))},e._untar=function(t,e){var i=this;if(L.workers)i._worker||(i._worker=new Cl(i._assets.prefix)),i._worker.untar(t,(function(t,n){e(t,n),i._worker.hasPendingRequests()||(i._worker.destroy(),i._worker=null)}));else{var n=new Nh(t).untar(i._assets.prefix);e(null,n)}},e.open=function(t,e){return new Tl(e)},e.patch=function(t,e){},t}(),Pl=function(){function t(){}var e=t.prototype;return e.instantiateModelEntity=function(t){return null},e.instantiateRenderEntity=function(t){return null},t}(),Rl=function(){function t(t,e){this.glbParser=new pl(t,e,0),this.parsers={}}var e=t.prototype;return e._getUrlWithoutParams=function(t){return t.indexOf("?")>=0?t.split("?")[0]:t},e._getParser=function(t){var e=t?v.getExtension(this._getUrlWithoutParams(t)).toLowerCase().replace(".",""):null;return this.parsers[e]||this.glbParser},e.load=function(t,e,i){"string"==typeof t&&(t={load:t,original:t}),this._getParser(t.original).load(t,e,i)},e.open=function(t,e,i){return this._getParser(t).open(t,e,i)},e.patch=function(t,e){},t}(),Il=function(){function t(){this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t}),ht.get(t.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?e("Error loading css resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}();var Ll=function(){function t(t,e,i){this._device=t,this._registry=e,this._loader=i}var e=t.prototype;return e.load=function(t,e,i){this.loadAssets(i,e)},e.open=function(t,e,i){return i?i.resource:null},e.patch=function(t,e){this.loadAssets(t,(function(i,n){i&&(e.fire("error",t),e.fire("error:"+t.id,i,t),t.fire("error",t))}))},e.getAssetIds=function(t){var e=[];if(e[0]=t.file,(t.loadFaces||!t.file)&&t.data&&t.data.textures)for(var i=0;i<6;++i)e[i+1]=t.data.textures[i];else e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=null;return e},e.compareAssetIds=function(t,e){return t&&e?parseInt(t,10)===t||"string"==typeof t?t===e:t.url===e.url:null!==t==(null!==e)},e.update=function(t,e,i){var n,s,a,r=t.data||{},o=t._handlerState.assets,h=t._resources,l=[null,null,null,null,null,null,null],c=function(){return r.hasOwnProperty("type")?r.type:r.hasOwnProperty("rgbm")?r.rgbm?We:Ve:null};if(t.loaded&&i[0]===o[0])l[1]=h[1]||null,l[2]=h[2]||null,l[3]=h[3]||null,l[4]=h[4]||null,l[5]=h[5]||null,l[6]=h[6]||null;else if(i[0])for(n=i[0].resource,a=0;a<6;++a)l[a+1]=new Bi(this._device,{name:t.name+"_prelitCubemap"+(n.width>>a),cubemap:!0,type:c()||n.type,width:n.width>>a,height:n.height>>a,format:n.format,levels:[n._levels[a]],fixCubemapSeams:!0,addressU:1,addressV:1,mipmaps:0===a});var u=i.slice(1);if(t.loaded&&this.cmpArrays(u,o.slice(1)))l[0]=h[0]||null;else if(-1===u.indexOf(null)){var d=u.map((function(t){return t.resource})),f=[];for(s=0;s0,maxRetries:this.maxRetries},(function(i,s){if(i)e("Error loading font resource: "+t.original+" ["+i+"]");else{var a=Bl(s);n._loadTextures(t.load.replace(".json",".png"),a,(function(t,i){if(t)return e(t);e(null,{data:a,textures:i})}))}})):(i&&i.data&&(i.data=Bl(i.data)),this._loadTextures(t.load,i&&i.data,e))},e._loadTextures=function(t,e,i){for(var n=e.info.maps.length,s=0,a=null,r=new Array(n),o=this._loader,h=function(e){var h=function(t,o){if(!a){if(t)return a=t,i(t);o.upload(),r[e]=o,++s===n&&i(null,r)}};0===e?o.load(t,"texture",h):o.load(t.replace(".png",e+".png"),"texture",h)},l=0;l0,maxRetries:e},(function(e,n){if(e){var s="Error while loading scene JSON "+t.original;e.message?(s+=": "+e.message,e.stack&&(s+="\n"+e.stack)):s+=": "+e,i(s)}else i(e,n)}))},Xl=function(){function t(t){this._app=t,this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){Hl(t,this.maxRetries,e)},e.open=function(t,e){this._app.systems.script.preloading=!0;var i=new Gl(this._app,!1).parse(e);return this._app.systems.script.preloading=!1,i},t}(),ql=function(){function t(){this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t}),ht.get(t.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?e("Error loading html resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}(),jl=function(){function t(){this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i={retry:this.maxRetries>0,maxRetries:this.maxRetries};t.load.startsWith("blob:")&&(i.responseType=ot.ResponseType.JSON),ht.get(t.load,i,(function(i,n){i?e("Error loading JSON resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}(),Yl=function(){function t(t,e,i,n,s){this.propertyName=t,this.parent=e,this._scope=s,this._registry=i,this.id=null,this.url=null,this.asset=null,this._onAssetLoad=n.load,this._onAssetAdd=n.add,this._onAssetRemove=n.remove,this._onAssetUnload=n.unload}var e=t.prototype;return e._bind=function(){this.id&&(this._onAssetLoad&&this._registry.on("load:"+this.id,this._onLoad,this),this._onAssetAdd&&this._registry.once("add:"+this.id,this._onAdd,this),this._onAssetRemove&&this._registry.on("remove:"+this.id,this._onRemove,this),this._onAssetUnload&&this._registry.on("unload:"+this.id,this._onUnload,this)),this.url&&(this._onAssetLoad&&this._registry.on("load:url:"+this.url,this._onLoad,this),this._onAssetAdd&&this._registry.once("add:url:"+this.url,this._onAdd,this),this._onAssetRemove&&this._registry.on("remove:url:"+this.url,this._onRemove,this))},e._unbind=function(){this.id&&(this._onAssetLoad&&this._registry.off("load:"+this.id,this._onLoad,this),this._onAssetAdd&&this._registry.off("add:"+this.id,this._onAdd,this),this._onAssetRemove&&this._registry.off("remove:"+this.id,this._onRemove,this),this._onAssetUnload&&this._registry.off("unload:"+this.id,this._onUnload,this)),this.url&&(this._onAssetLoad&&this._registry.off("load:"+this.url,this._onLoad,this),this._onAssetAdd&&this._registry.off("add:"+this.url,this._onAdd,this),this._onAssetRemove&&this._registry.off("remove:"+this.url,this._onRemove,this))},e._onLoad=function(t){this._onAssetLoad.call(this._scope,this.propertyName,this.parent,t)},e._onAdd=function(t){this.asset=t,this._onAssetAdd.call(this._scope,this.propertyName,this.parent,t)},e._onRemove=function(t){this._onAssetRemove.call(this._scope,this.propertyName,this.parent,t),this.asset=null},e._onUnload=function(t){this._onAssetUnload.call(this._scope,this.propertyName,this.parent,t)},q(t,[{key:"id",get:function(){return this._id},set:function(t){if(this.url)throw Error("Can't set id and url");this._unbind(),this._id=t,this.asset=this._registry.get(this._id),this._bind()}},{key:"url",get:function(){return this._url},set:function(t){if(this.id)throw Error("Can't set id and url");this._unbind(),this._url=t,this.asset=this._registry.getByUrl(this._url),this._bind()}}]),t}(),Kl=function(){function t(){this.removeInvalid=!0,this.valid=!0,this.enumValidators={occludeSpecular:this._createEnumValidator([0,1,2]),cull:this._createEnumValidator([0,1,2,3]),blendType:this._createEnumValidator([0,1,2,3,4,5,6,7,8,9,10]),depthFunc:this._createEnumValidator([0,1,2,3,4,5,6,7]),shadingModel:this._createEnumValidator([0,1])}}var e=t.prototype;return e.setInvalid=function(t,e){this.valid=!1,this.removeInvalid&&delete e[t]},e.validate=function(t){var e=Jn,i="path"===t.mappingFormat;for(var n in t){var s=e[n];if(s)if(s.startsWith("enum")){var a=s.split(":")[1];this.enumValidators[a]&&(this.enumValidators[a](t[n])||this.setInvalid(n,t))}else if("number"===s)"number"!=typeof t[n]&&this.setInvalid(n,t);else if("boolean"===s)"boolean"!=typeof t[n]&&this.setInvalid(n,t);else if("string"===s)"string"!=typeof t[n]&&this.setInvalid(n,t);else if("vec2"===s)t[n]instanceof Array&&2===t[n].length||this.setInvalid(n,t);else if("rgb"===s)t[n]instanceof Array&&3===t[n].length||this.setInvalid(n,t);else if("texture"===s)i?"string"!=typeof t[n]&&null!==t[n]&&(t[n]instanceof Bi||this.setInvalid(n,t)):"number"!=typeof t[n]&&null!==t[n]&&(t[n]instanceof Bi||this.setInvalid(n,t));else if("boundingbox"===s)t[n].center&&t[n].center instanceof Array&&3===t[n].center.length||this.setInvalid(n,t),t[n].halfExtents&&t[n].halfExtents instanceof Array&&3===t[n].halfExtents.length||this.setInvalid(n,t);else if("cubemap"===s)"number"!=typeof t[n]&&null!==t[n]&&void 0!==t[n]&&(t[n]instanceof Bi&&t[n].cubemap||this.setInvalid(n,t));else if("chunks"===s)for(var r=Object.keys(t[n]),o=0;o=0}},t}(),Zl=function(){function t(){this._validator=null}var e=t.prototype;return e.parse=function(t){var e=this.migrate(t),i=this._validate(e),n=new os;return this.initialize(n,i),n},e.initialize=function(t,e){for(var i in e.validated||(e=this._validate(e)),e.chunks&&(t.chunks=j({},e.chunks)),e){var n=Jn[i],s=e[i];if("vec2"===n)t[i]=new mt(s[0],s[1]);else if("rgb"===n)t[i]=new lt(s[0],s[1],s[2]);else if("texture"===n)s instanceof Bi?t[i]=s:t[i]instanceof Bi&&"number"==typeof s&&s>0||(t[i]=null);else if("cubemap"===n)s instanceof Bi?t[i]=s:t[i]instanceof Bi&&"number"==typeof s&&s>0||(t[i]=null),"cubeMap"!==i||s||(t.prefilteredCubemaps=null);else if("boundingbox"===n){var a=new ft(s.center[0],s.center[1],s.center[2]),r=new ft(s.halfExtents[0],s.halfExtents[1],s.halfExtents[2]);t[i]=new Pt(a,r)}else t[i]=e[i]}t.update()},e.migrate=function(t){var e;void 0===t.shadingModel&&("blinn"===t.shader?t.shadingModel=1:t.shadingModel=0),t.shader&&delete t.shader,t.mapping_format&&(t.mappingFormat=t.mapping_format,delete t.mapping_format);var i=[["bumpMapFactor","bumpiness"],["aoUvSet","aoMapUv"],["aoMapVertexColor","aoVertexColor"],["diffuseMapVertexColor","diffuseVertexColor"],["emissiveMapVertexColor","emissiveVertexColor"],["specularMapVertexColor","specularVertexColor"],["metalnessMapVertexColor","metalnessVertexColor"],["opacityMapVertexColor","opacityVertexColor"],["glossMapVertexColor","glossVertexColor"],["lightMapVertexColor","lightVertexColor"],["diffuseMapTint","diffuseTint"],["specularMapTint","specularTint"],["emissiveMapTint","emissiveTint"],["metalnessMapTint","metalnessTint"]];for(e=0;e0,maxRetries:this.maxRetries},(function(i,n){i?e&&e("Error loading material: "+t.original+" ["+i+"]"):e&&(n._engine=!0,e(null,n))}))},e.open=function(t,e){var i=this._parser.parse(e);return e._engine&&(i._data=e,delete e._engine),i},e._createPlaceholders=function(){this._placeholderTextures={};var t={white:[255,255,255,255],gray:[128,128,128,255],black:[0,0,0,255],normal:[128,128,255,255]};for(var e in t)if(t.hasOwnProperty(e)){this._placeholderTextures[e]=new Bi(this._device,{width:2,height:2,format:7}),this._placeholderTextures[e].name="placeholder";for(var i=this._placeholderTextures[e].lock(),n=0;n<4;n++)for(var s=0;s<4;s++)i[4*n+s]=t[e][s];this._placeholderTextures[e].unlock()}},e.patch=function(t,e){t.resource._data&&(t._data=t.resource._data,delete t.resource._data),t.data.name=t.name,t.resource.name=t.name,this._bindAndAssignAssets(t,e),t.off("unload",this._onAssetUnload,this),t.on("unload",this._onAssetUnload,this)},e._onAssetUnload=function(t){delete t.data.parameters,delete t.data.chunks,delete t.data.name},e._assignTexture=function(t,e,i){e.resource[t]=i},e._getPlaceholderTexture=function(t){this._placeholderTextures||this._createPlaceholders();var e=$l[t];return this._placeholderTextures[e]},e._assignPlaceholderTexture=function(t,e){e.resource[t]=this._getPlaceholderTexture(t)},e._onTextureLoad=function(t,e,i){this._assignTexture(t,e,i.resource),e.resource.update()},e._onTextureAdd=function(t,e,i){this._assets.load(i)},e._onTextureRemoveOrUnload=function(t,e,i){var n=e.resource;n&&e.resource[t]===i.resource&&(this._assignPlaceholderTexture(t,e),n.update())},e._assignCubemap=function(t,e,i){e.resource[t]=i[0],"cubeMap"===t&&(e.resource.prefilteredCubemaps=i.slice(1))},e._onCubemapLoad=function(t,e,i){this._assignCubemap(t,e,i.resources),this._parser.initialize(e.resource,e.data)},e._onCubemapAdd=function(t,e,i){0===e.data.shadingModel&&(e.loadFaces=!0),this._assets.load(i)},e._onCubemapRemoveOrUnload=function(t,e,i){var n=e.resource;e.data.prefilteredCubeMap128===i.resources[1]&&(this._assignCubemap(t,e,[null,null,null,null,null,null,null]),n.update())},e._bindAndAssignAssets=function(t,e){var i,n,s,a=this._parser.migrate(t.data),r=t.resource,o="path"===a.mappingFormat,h=ts;for(i=0;i0){for(var c=i.blendIndices.data[4*h+l],u=!0,d=0;dn)return!1;for(var f=0;f=0;n--)if(l[n].boneNames.length>i){var f=l.splice(n,1)[0],p=[];for(s=0;s=0;a--)u[a].mesh===_.originalMesh&&(u.push({mesh:o,node:u[a].node}),e&&e.push({material:e[a].material,path:e[a].path}));for(s=0;s=0;a--)u[a].mesh===_.originalMesh&&(u.splice(a,1),e&&e.splice(a,1))}!function(t){for(var e=t.vertices,i=t.skins,n=t.meshes,s=t.meshInstances,a=0;a0&&ic(s,null,this._device.getBoneLimit());for(i=0;i0&&(h>65535&&this._device.extUintElement?(s=new ws(this._device,2,r),a=new Uint32Array(s.lock())):(s=new ws(this._device,1,r),a=new Uint16Array(s.lock()))),{buffer:s,data:a}},e._parseMeshes=function(t,e,i,n,s,a){for(var r=t.model,o=[],h=0,l=0;l0,maxRetries:this.maxRetries};(t.load.startsWith("blob:")||t.load.startsWith("data:"))&&(".glb"===v.getExtension(t.original).toLowerCase()?i.responseType=ot.ResponseType.ARRAY_BUFFER:i.responseType=ot.ResponseType.JSON),ht.get(t.load,i,(function(i,n){e&&(i?e("Error loading model: "+t.original+" ["+i+"]"):e(null,n))}))},e.open=function(t,e){for(var i=0;i0?console.assert("Script Ordering Error. Contact support@playcanvas.com"):t._types.push(e)};var e=t.prototype;return e.load=function(e,i){var n=this;"string"==typeof e&&(e={load:e,original:e});var s=this;_c.app=this._app,this._loadScript(e.load,(function(e,a,r){if(e)i(e);else if(_c.legacy){var o=null;t._types.length&&(o=t._types.pop()),o?n._scripts[a]=o:o=null,i(null,o,r)}else{for(var h={},l=0;l0,maxRetries:this.maxRetries},(function(i,n){i?e("Error loading shader resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}(),yc=[0,0,1,0,0,1,0,0,1,0,0,1],xc=[0,1,3,2,3,1],bc=function(t){function e(e,i){var n;return(n=t.call(this)||this)._device=e,n._pixelsPerUnit=i&&void 0!==i.pixelsPerUnit?i.pixelsPerUnit:1,n._renderMode=i&&void 0!==i.renderMode?i.renderMode:0,n._atlas=i&&void 0!==i.atlas?i.atlas:null,n._frameKeys=i&&void 0!==i.frameKeys?i.frameKeys:null,n._meshes=[],n._updatingProperties=!1,n._meshesDirty=!1,n._atlas&&n._frameKeys&&n._createMeshes(),n}Y(e,t);var i=e.prototype;return i._createMeshes=function(){for(var t=this._meshes.length,e=0;e0,maxRetries:this.maxRetries},(function(t,i){t?e(t):e(null,i)}))},e.open=function(t,e){var i=new bc(this._device);return t&&(i.__data=e),i},e.patch=function(t,e){var i=t.resource;if(i.__data&&(t.data.pixelsPerUnit=i.__data.pixelsPerUnit,t.data.renderMode=i.__data.renderMode,t.data.frameKeys=i.__data.frameKeys,i.__data.textureAtlasAsset)){var n=e.getByUrl(i.__data.textureAtlasAsset);n?t.data.textureAtlasAsset=n.id:console.warn("Could not find textureatlas with url: "+i.__data.textureAtlasAsset)}i.startUpdate(),i.renderMode=t.data.renderMode,i.pixelsPerUnit=t.data.pixelsPerUnit,i.frameKeys=t.data.frameKeys,this._updateAtlas(t),i.endUpdate(),t.off("change",this._onAssetChange,this),t.on("change",this._onAssetChange,this)},e._updateAtlas=function(t){var e=t.resource;if(t.data.textureAtlasAsset){this._assets.off("load:"+t.data.textureAtlasAsset,Sc,t),this._assets.on("load:"+t.data.textureAtlasAsset,Sc,t);var i=this._assets.get(t.data.textureAtlasAsset);i&&i.resource?e.atlas=i.resource:i?this._assets.load(i):(this._assets.off("add:"+t.data.textureAtlasAsset,wc,t),this._assets.on("add:"+t.data.textureAtlasAsset,wc,t))}else e.atlas=null},e._onAssetChange=function(t,e,i,n){"data"===e&&i&&i.textureAtlasAsset&&n&&i.textureAtlasAsset!==n.textureAtlasAsset&&(this._assets.off("load:"+n.textureAtlasAsset,Sc,t),this._assets.off("add:"+n.textureAtlasAsset,wc,t))},t}(),Ac=function(){function t(t,e){this._app=t,this._data=e,this._templateRoot=null}var e=t.prototype;return e.instantiate=function(){return this._templateRoot||this._parseTemplate(),this._templateRoot.clone()},e._parseTemplate=function(){var t=new Gl(this._app,!0);this._templateRoot=t.parse(this._data)},t}(),Mc=function(){function t(t){this._app=t,this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i={retry:this.maxRetries>0,maxRetries:this.maxRetries};ht.get(t.load,i,(function(i,n){i?e("Error requesting template: "+t.original):e(i,n)}))},e.open=function(t,e){return new Ac(this._app,e)},t}(),Cc=function(){function t(){this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t}),ht.get(t.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?e("Error loading text resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}(),Ec=function(t){function e(){var e;return(e=t.call(this)||this)._texture=null,e._frames=null,e}Y(e,t);var i=e.prototype;return i.setFrame=function(t,e){var i=this._frames[t];i?(i.rect.copy(e.rect),i.pivot.copy(e.pivot),i.border.copy(e.border)):(i={rect:e.rect.clone(),pivot:e.pivot.clone(),border:e.border.clone()},this._frames[t]=i),this.fire("set:frame",t.toString(),i)},i.removeFrame=function(t){var e=this._frames[t];e&&(delete this._frames[t],this.fire("remove:frame",t.toString(),e))},i.destroy=function(){this._texture&&this._texture.destroy()},q(e,[{key:"texture",get:function(){return this._texture},set:function(t){this._texture=t,this.fire("set:texture",t)}},{key:"frames",get:function(){return this._frames},set:function(t){this._frames=t,this.fire("set:frames",t)}}]),e}(m),Pc={repeat:0,clamp:1,mirror:2},Rc={nearest:0,linear:1,nearest_mip_nearest:2,linear_mip_nearest:4,nearest_mip_linear:3,linear_mip_linear:5},Ic=/^data\.frames\.(\d+)$/,Lc=function(){function t(t){this._loader=t,this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i=this,n=this._loader.getHandler("texture");if(".json"!==v.getExtension(t.original))return n.load(t,e);ht.get(t.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(n,s){if(n)e(n);else{var a=t.original.replace(".json",".png");i._loader.load(a,"texture",(function(t,i){t?e(t):e(null,{data:s,texture:i})}))}}))},e.open=function(t,e){var i=new Ec;if(e.texture&&e.data)i.texture=e.texture,i.__data=e.data;else{var n=this._loader.getHandler("texture").open(t,e);if(!n)return null;i.texture=n}return i},e.patch=function(t,e){t.resource.__data&&(void 0!==t.resource.__data.minfilter&&(t.data.minfilter=t.resource.__data.minfilter),void 0!==t.resource.__data.magfilter&&(t.data.magfilter=t.resource.__data.magfilter),void 0!==t.resource.__data.addressu&&(t.data.addressu=t.resource.__data.addressu),void 0!==t.resource.__data.addressv&&(t.data.addressv=t.resource.__data.addressv),void 0!==t.resource.__data.mipmaps&&(t.data.mipmaps=t.resource.__data.mipmaps),void 0!==t.resource.__data.anisotropy&&(t.data.anisotropy=t.resource.__data.anisotropy),void 0!==t.resource.__data.rgbm&&(t.data.rgbm=!!t.resource.__data.rgbm),t.data.frames=t.resource.__data.frames,delete t.resource.__data);var i=t.resource.texture;if(i&&(i.name=t.name,t.data.hasOwnProperty("minfilter")&&i.minFilter!==Rc[t.data.minfilter]&&(i.minFilter=Rc[t.data.minfilter]),t.data.hasOwnProperty("magfilter")&&i.magFilter!==Rc[t.data.magfilter]&&(i.magFilter=Rc[t.data.magfilter]),t.data.hasOwnProperty("addressu")&&i.addressU!==Pc[t.data.addressu]&&(i.addressU=Pc[t.data.addressu]),t.data.hasOwnProperty("addressv")&&i.addressV!==Pc[t.data.addressv]&&(i.addressV=Pc[t.data.addressv]),t.data.hasOwnProperty("mipmaps")&&i.mipmaps!==t.data.mipmaps&&(i.mipmaps=t.data.mipmaps),t.data.hasOwnProperty("anisotropy")&&i.anisotropy!==t.data.anisotropy&&(i.anisotropy=t.data.anisotropy),t.data.hasOwnProperty("rgbm"))){var n=t.data.rgbm?We:Ve;i.type!==n&&(i.type=n)}t.resource.texture=i;var s={};for(var a in t.data.frames){var r=t.data.frames[a];s[a]={rect:new _t(r.rect),pivot:new mt(r.pivot),border:new _t(r.border)}}t.resource.frames=s,t.off("change",this._onAssetChange,this),t.on("change",this._onAssetChange,this)},e._onAssetChange=function(t,e,i){var n;if("data"===e||"data.frames"===e){var s={};for(var a in i.frames)n=i.frames[a],s[a]={rect:new _t(n.rect),pivot:new mt(n.pivot),border:new _t(n.border)};t.resource.frames=s}else{var r=e.match(Ic);if(r){var o=r[1];i?(t.resource.frames[o]?((n=t.resource.frames[o]).rect.set(i.rect[0],i.rect[1],i.rect[2],i.rect[3]),n.pivot.set(i.pivot[0],i.pivot[1]),n.border.set(i.border[0],i.border[1],i.border[2],i.border[3])):t.resource.frames[o]={rect:new _t(i.rect),pivot:new mt(i.pivot),border:new _t(i.border)},t.resource.fire("set:frame",o,t.resource.frames[o])):t.resource.frames[o]&&(delete t.resource.frames[o],t.resource.fire("remove:frame",o))}}},t}();function Dc(){var t,e,i,n=0,s=1,a=2,r=3,o=8,h=9,l=10,c=11,u=12,d=13,f=14,p=16,m={astc:l,dxt:a,etc1:n,etc2:n,pvr:o,atc:c,none:f},_={astc:l,dxt:r,etc1:p,etc2:s,pvr:h,atc:u,none:p},g=21,v=22,y=23,x=8,b=10,S=26,w=27,T=28,A=29,M=30,C=7,E=3,P=5,R=function(t,e){switch(t){case n:return e.formats.etc1?g:v;case s:return y;case a:return x;case r:return b;case o:return S;case h:return w;case l:return T;case c:return A;case u:return M;case d:return C;case f:return E;case p:return P}},I=function(t){for(var e=function(t,e){var i=t*(2/255)-1,n=e*(2/255)-1,s=Math.sqrt(1-Math.min(1,i*i+n*n));return Math.max(0,Math.min(255,Math.floor(.5*(s+1)*255)))},i=0;i>3}return e},D=function(){return"undefined"!=typeof performance?performance.now():0},k=function(t,n,s){if(s){if(t.formats.astc)return"astc"}else if(n){if(t.formats.etc2)return"etc2"}else if(t.formats.etc1||t.formats.etc2)return"etc1";return function(e){for(var i=0;i0?this.clients.shift().run(s):this.queue.push(s)}},e.enqueueClient=function(t){this.queue.length>0?t.run(this.queue.shift()):this.clients.push(t)},e.handleResponse=function(t,e,i){var n=this.callbacks[t];if(e)for(var s=0;s0,maxRetries:t.maxRetries};if(t.glueUrl&&t.wasmUrl&&function(){try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){var t=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(t instanceof WebAssembly.Module)return new WebAssembly.Instance(t)instanceof WebAssembly.Instance}}catch(t){}return!1}()){var s=null,a=null;ht.get(t.glueUrl,n,(function(t,n){t?e(t):a?i(n,a):s=n}));var r=fetch(t.wasmUrl),o=function(){r.then((function(t){return t.arrayBuffer()})).then((function(t){return WebAssembly.compile(t)})).then((function(t){s?i(s,t):a=t})).catch((function(t){e(t,null)}))};WebAssembly.compileStreaming?WebAssembly.compileStreaming(r).then((function(t){s?i(s,t):a=t})).catch((function(t){o()})):o()}else ht.get(t.fallbackUrl,n,(function(t,n){t?e(t,null):i(n,null)}))}(t,(function(t,e){if(t)console.error("failed to initialize basis worker: "+t);else for(var i=0;i0&&++r<=o){var i=100*Math.pow(2,r);console.log("Error loading Texture from: '"+e+"' - Retrying in "+i+"ms...");var h=t.indexOf("?")>=0?"&":"?";a=setTimeout((function(){s.src=t+h+"retry="+Date.now(),a=null}),i)}else n("Error loading Texture from: '"+e+"'")},s.src=t},e._loadImageBitmap=function(t,e,i,n){var s={cache:!0,responseType:"blob",retry:this.maxRetries>0,maxRetries:this.maxRetries};ht.get(t,s,(function(t,e){t?n(t):createImageBitmap(e,{premultiplyAlpha:"none"}).then((function(t){n(null,t)})).catch((function(t){n(t)}))}))},t}(),jc=[1481919403,3140563232,169478669],Yc={33776:8,33778:9,33779:Jt,36196:re,37492:22,37496:23,35840:26,35841:oe,35842:27,35843:he,32849:6,32856:7,35905:19,35907:20,35898:18,34843:te,34842:ee};var Kc=function(){function t(t){this.maxRetries=0}var e=t.prototype;return e.load=function(t,e,i){Oh.fetchArrayBuffer(t.load,e,i,this.maxRetries)},e.open=function(t,e,i){var n=this.parse(e);if(!n)return null;var s=new Bi(i,{name:t,addressU:n.cubemap?1:0,addressV:n.cubemap?1:0,width:n.width,height:n.height,format:n.format,cubemap:n.cubemap,levels:n.levels});return s.upload(),s},e.parse=function(t){var e=new Uint32Array(t);if(jc[0]!==e[0]||jc[1]!==e[1]||jc[2]!==e[2])return null;var i={endianness:e[3],glType:e[4],glTypeSize:e[5],glFormat:e[6],glInternalFormat:e[7],glBaseInternalFormat:e[8],pixelWidth:e[9],pixelHeight:e[10],pixelDepth:e[11],numberOfArrayElements:e[12],numberOfFaces:e[13],numberOfMipmapLevels:e[14],bytesOfKeyValueData:e[15]};if(i.pixelDepth>1)return null;if(0!==i.numberOfArrayElements)return null;var n=Yc[i.glInternalFormat];if(void 0===n)return null;for(var s,a,r,o=16+i.bytesOfKeyValueData/4,h=i.numberOfFaces>1,l=[],c=0;c<(i.numberOfMipmapLevels||1);c++){var u=e[o++];h&&l.push([]);for(var d=h?l[c]:l,f=0;f<(h?6:1);++f)d.push((s=t,a=4*o,r=u,18===n?new Uint32Array(s,a,r/4):new Uint8Array(s,a,r))),o+=u+3>>2}return{format:n,width:i.pixelWidth,height:i.pixelHeight,levels:l,cubemap:h}},t}(),Zc=166,$c=function(){function t(t,e){this.maxRetries=0,this.device=e}var e=t.prototype;return e.load=function(t,e,i){var n=this;Oh.fetchArrayBuffer(t.load,(function(s,a){s?e(s,a):n.parse(a,t,e,i)}),i,this.maxRetries)},e.open=function(t,e,i){var n=new Bi(i,{name:t,addressU:e.cubemap?1:0,addressV:e.cubemap?1:0,width:e.width,height:e.height,format:e.format,cubemap:e.cubemap,levels:e.levels});return n.upload(),n},e.parse=function(t,e,i,n){var s=new J(t),a=[s.readU32be(),s.readU32be(),s.readU32be()];if(2873840728!==a[0]||540160187!==a[1]||218765834!==a[2])return null;for(var r={vkFormat:s.readU32(),typeSize:s.readU32(),pixelWidth:s.readU32(),pixelHeight:s.readU32(),pixelDepth:s.readU32(),layerCount:s.readU32(),faceCount:s.readU32(),levelCount:s.readU32(),supercompressionScheme:s.readU32()},o={dfdByteOffset:s.readU32(),dfdByteLength:s.readU32(),kvdByteOffset:s.readU32(),kvdByteLength:s.readU32(),sgdByteOffset:s.readU64(),sgdByteLength:s.readU64()},h=[],l=0;l1});for(var b,S=128,w=u?6:1,T=l===d?8:16,A=0;A32767)return this._readPixelsFlat(t,e,i);var s=[0,0,0,0];if(t.readArray(s),2!==s[0]||2!==s[1]||0!=(128&s[2]))return t.skip(-4),this._readPixelsFlat(t,e,i);var a,r,o,h,l,c,u=new ArrayBuffer(e*i*4),d=new Uint8Array(u),f=n?0:4*e*(i-1);for(r=0;r128){if(a+(l-=128)>e)return null;for(c=t.readU8(),o=0;oe)return null;for(o=0;o=0?t.split("?")[0]:t},e._getParser=function(t){var e=v.getExtension(this._getUrlWithoutParams(t)).toLowerCase().replace(".","");return this.parsers[e]||this.imgParser},e.load=function(t,e,i){"string"==typeof t&&(t={load:t,original:t}),this._getParser(t.original).load(t,e,i)},e.open=function(t,e,i){if(t){var n=this._getParser(t).open(t,e,this._device);return null===n?n=new Bi(this._device,{width:4,height:4,format:6}):(!function(t){var e=Math.log2(Math.max(t._width,t._height))+1;if(!(7!==t._format&&t._format!==ne||t._volume||t._compressed||1===t._levels.length||t._levels.length===e||(i=t._cubemap?t._levels[0][0]:t._levels[0],i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement))){for(var i,n=function(t,e,i){for(var n=Math.max(1,t>>1),s=Math.max(1,e>>1),a=new i.constructor(n*s*4),r=Math.floor(t/n),o=Math.floor(e/s),h=r*o,l=0;l>s-1),r=Math.max(1,t._height>>s-1);if(t._cubemap){for(var o=[],h=0;h<6;++h)o.push(n(a,r,t._levels[s-1][h]));t._levels.push(o)}else t._levels.push(n(a,r,t._levels[s-1]))}t._levelsUpdated=t._cubemap?[[!0,!0,!0,!0,!0,!0]]:[!0]}}(n),e.unswizzledGGGR&&(i.file.variants.basis.opt&=-9)),n}},e.patch=function(t,e){var i=t.resource;if(i){t.name&&t.name.length>0&&(i.name=t.name);var n=t.data;n.hasOwnProperty("minfilter")&&(i.minFilter=eu[n.minfilter]),n.hasOwnProperty("magfilter")&&(i.magFilter=eu[n.magfilter]),i.cubemap||(n.hasOwnProperty("addressu")&&(i.addressU=tu[n.addressu]),n.hasOwnProperty("addressv")&&(i.addressV=tu[n.addressv])),n.hasOwnProperty("mipmaps")&&(i.mipmaps=n.mipmaps),n.hasOwnProperty("anisotropy")&&(i.anisotropy=n.anisotropy),n.hasOwnProperty("flipY")&&(i.flipY=!!n.flipY),n.hasOwnProperty("type")?i.type=iu[n.type]:n.hasOwnProperty("rgbm")&&n.rgbm?i.type=We:t.file&&0!=(8&t.file.opt)&&(i.type=He)}},q(t,[{key:"crossOrigin",get:function(){return this.imgParser.crossOrigin},set:function(t){this.imgParser.crossOrigin=t}},{key:"maxRetries",get:function(){return this.imgParser.maxRetries},set:function(t){for(var e in this.imgParser.maxRetries=t,this.parsers)this.parsers.hasOwnProperty(e)&&(this.parsers[e].maxRetries=t)}}]),t}(),au=function(){function t(t){void 0===t&&(t=null),this._index={},this._key=t}var e=t.prototype;return e.addItem=function(t){for(var e,i=Q(t.tags._list);!(e=i()).done;){var n=e.value;this.add(n,t)}},e.removeItem=function(t){for(var e,i=Q(t.tags._list);!(e=i()).done;){var n=e.value;this.remove(n,t)}},e.add=function(t,e){this._index[t]&&-1!==this._index[t].list.indexOf(e)||(this._index[t]||(this._index[t]={list:[]},this._key&&(this._index[t].keys={})),this._index[t].list.push(e),this._key&&(this._index[t].keys[e[this._key]]=e))},e.remove=function(t,e){if(this._index[t]&&(!this._key||this._index[t].keys[e[this._key]])){var i=this._index[t].list.indexOf(e);-1!==i&&(this._index[t].list.splice(i,1),this._key&&delete this._index[t].keys[e[this._key]],0===this._index[t].list.length&&delete this._index[t])}},e.find=function(t){for(var e,i,n,s,a,r=this,o={},h=[],l=function(t,e){return r._index[t].list.length-r._index[e].list.length},c=0;c0?i[0]:null},e}(m),ou=function(){function t(t){this._assets=t,this._bundleAssets={},this._assetsInBundles={},this._urlsInBundles={},this._fileRequests={},this._assets.on("add",this._onAssetAdded,this),this._assets.on("remove",this._onAssetRemoved,this)}var e=t.prototype;return e._onAssetAdded=function(t){if("bundle"===t.type){this._bundleAssets[t.id]=t,this._registerBundleEventListeners(t.id);for(var e=0,i=t.data.assets.length;e=3&&i.length<=4){for(var u=0;ui.ind&&(h=i.ind),this._insertScriptInstance(r,h,o),this._scriptsIndex[a]={instance:r,onSwap:function(){n.swap(a)}},this[a]=r,i.preloading||r.__initializeAttributes(),this.fire("create",a,r),this.fire("create:"+a,r),this.system.app.scripts.on("swap:"+a,this._scriptsIndex[a].onSwap),i.preloading||(r.enabled&&!r._initialized&&(r._initialized=!0,r.initialize&&this._scriptMethod(r,e.scriptMethods.initialize)),r.enabled&&!r._postInitialized&&(r._postInitialized=!0,r.postInitialize&&this._scriptMethod(r,e.scriptMethods.postInitialize))),r}}else this._scriptsIndex[a]={awaiting:!0,ind:this._scripts.length};return null},i.destroy=function(t){var e=t,i=t;"string"==typeof i?i=this.system.app.scripts.get(i):i&&(e=i.__name);var n=this._scriptsIndex[e];if(delete this._scriptsIndex[e],!n)return!1;var s=n.instance;if(s&&!s._destroyed)if(s.enabled=!1,s._destroyed=!0,this._isLoopingThroughScripts)this._destroyedScripts.push(s);else{var a=this._removeScriptInstance(s);a>=0&&this._resetExecutionOrder(a,this._scripts.length)}return this.system.app.scripts.off("swap:"+e,n.onSwap),delete this[e],this.fire("destroy",e,s||null),this.fire("destroy:"+e,s||null),s&&s.fire("destroy"),!0},i.swap=function(t){var i=t,n=t;"string"==typeof n?n=this.system.app.scripts.get(n):n&&(i=n.__name);var s=this._scriptsIndex[i];if(!s||!s.instance)return!1;var a=s.instance,r=this._scripts.indexOf(a),o=new n({app:this.system.app,entity:this.entity,enabled:a.enabled,attributes:a.__attributes});return!!o.swap&&(o.__initializeAttributes(),this._scripts[r]=o,this._scriptsIndex[i].instance=o,this[i]=o,o.__executionOrder=r,a.update&&this._updateList.remove(a),a.postUpdate&&this._postUpdateList.remove(a),o.update&&this._updateList.insert(o),o.postUpdate&&this._postUpdateList.insert(o),this._scriptMethod(o,e.scriptMethods.swap,a),this.fire("swap",i,o),this.fire("swap:"+i,o),!0)},i.resolveDuplicatedEntityReferenceProperties=function(t,e){var i=this.entity.script;for(var n in t._scriptsIndex){var s=this.system.app.scripts.get(n);if(s){var a=t._scriptsIndex[n];if(a&&a.instance){var r=i[n].__attributesRaw,o=i[n].__attributes;if(r||o){var h=!!r,l=a.instance.__attributes;for(var c in l)if(l[c]){var u=s.attributes.get(c);if(u)if("entity"===u.type)this._resolveEntityScriptAttribute(u,c,l[c],h,r||o,e);else if("json"===u.type&&Array.isArray(u.schema))for(var d=l[c],f=r?r[c]:o[c],p=0;p=i||e<0)return!1;var n=t,s=t;"string"!=typeof s?s=t.__name:n=null;var a=this._scriptsIndex[s];if(!a||!a.instance)return!1;var r=a.instance;if(n&&!(r instanceof n))return!1;var o=this._scripts.indexOf(r);return-1!==o&&o!==e&&(this._scripts.splice(e,0,this._scripts.splice(o,1)[0]),this._resetExecutionOrder(0,i),this._updateList.sort(),this._postUpdateList.sort(),this.fire("move",s,r,e,o),this.fire("move:"+s,r,e,o),!0)},q(e,[{key:"enabled",get:function(){return this._enabled},set:function(t){var e=this._enabled;this._enabled=t,this.fire("set","enabled",e,t)}},{key:"scripts",get:function(){return this._scripts},set:function(t){for(var e in this._scriptsData=t,t)if(t.hasOwnProperty(e)){var i=this._scriptsIndex[e];if(i){if("boolean"==typeof t[e].enabled&&(i.enabled=!!t[e].enabled),"object"==typeof t[e].attributes)for(var n in t[e].attributes)if(!uu.reservedNames.has(n)){if(!i.__attributes.hasOwnProperty(n)){var s=this.system.app.scripts.get(e);s&&s.attributes.add(n,{})}i[n]=t[e].attributes[n]}}else console.log(this.order)}}}]),e}(du);fu.scriptMethods={initialize:"initialize",postInitialize:"postInitialize",update:"update",postUpdate:"postUpdate",swap:"swap"};var pu=new RegExp("^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^\\(\\s\\/]*)\\s*"),mu=function(t){function e(e){var i;return(i=t.call(this)||this).app=void 0,i.entity=void 0,i._enabled=void 0,i._enabledOld=void 0,i._initialized=void 0,i._postInitialized=void 0,i.__destroyed=void 0,i.__attributes=void 0,i.__attributesRaw=void 0,i.__scriptType=void 0,i.__executionOrder=void 0,i.initScriptType(e),i}Y(e,t);var i=e.prototype;return i.initScriptType=function(t){var e=this.constructor;this.app=t.app,this.entity=t.entity,this._enabled="boolean"!=typeof t.enabled||t.enabled,this._enabledOld=this.enabled,this.__destroyed=!1,this.__attributes={},this.__attributesRaw=t.attributes||{},this.__scriptType=e,this.__executionOrder=-1},e.__getScriptName=function(t){if("function"==typeof t){if("name"in Function.prototype)return t.name;if(t===Function||t===Function.prototype.constructor)return"Function";var e=(""+t).match(pu);return e?e[1]:void 0}},i.__initializeAttributes=function(t){if(t||this.__attributesRaw){for(var e in this.__scriptType.attributes.index)this.__attributesRaw&&this.__attributesRaw.hasOwnProperty(e)?this[e]=this.__attributesRaw[e]:this.__attributes.hasOwnProperty(e)||(this.__scriptType.attributes.index[e].hasOwnProperty("default")?this[e]=this.__scriptType.attributes.index[e].default:this[e]=null);this.__attributesRaw=null}},e.extend=function(t){for(var e in t)t.hasOwnProperty(e)&&(this.prototype[e]=t[e])},q(e,[{key:"enabled",get:function(){return this._enabled&&!this._destroyed&&this.entity.script.enabled&&this.entity.enabled},set:function(t){this._enabled=!!t,this.enabled!==this._enabledOld&&(this._enabledOld=this.enabled,this.fire(this.enabled?"enable":"disable"),this.fire("state",this.enabled),!this._initialized&&this.enabled&&(this._initialized=!0,this.__initializeAttributes(!0),this.initialize&&this.entity.script._scriptMethod(this,fu.scriptMethods.initialize)),this._initialized&&!this._postInitialized&&this.enabled&&!this.entity.script._beingEnabled&&(this._postInitialized=!0,this.postInitialize&&this.entity.script._scriptMethod(this,fu.scriptMethods.postInitialize)))}}],[{key:"scriptName",get:function(){return this.__name}},{key:"attributes",get:function(){return this.hasOwnProperty("__attributes")||(this.__attributes=new uu(this)),this.__attributes}}]),e}(m);mu.__name=null;var _u=function(t){function e(e){var i;return(i=t.call(this)||this).app=e,i._scripts={},i._list=[],i}Y(e,t);var i=e.prototype;return i.destroy=function(){this.app=null,this.off()},i.add=function(t){var e=this,i=t.__name;return this._scripts.hasOwnProperty(i)?(setTimeout((function(){if(t.prototype.swap){var n=e._scripts[i],s=e._list.indexOf(n);e._list[s]=t,e._scripts[i]=t,e.fire("swap",i,t),e.fire("swap:"+i,t)}else console.warn("script registry already has '"+i+"' script, define 'swap' method for new script type to enable code hot swapping")})),!1):(this._scripts[i]=t,this._list.push(t),this.fire("add",i,t),this.fire("add:"+i,t),setTimeout((function(){if(e._scripts.hasOwnProperty(i)&&e.app&&e.app.systems&&e.app.systems.script){var t,n=e.app.systems.script._components,s=[],a=[];for(n.loopIndex=0;n.loopIndexthis.views.length)for(var a=0;a<=s-this.views.length;a++){var r=this.viewsPool.pop();r||(r={viewport:new _t,projMat:new St,viewMat:new St,viewOffMat:new St,viewInvMat:new St,viewInvOffMat:new St,projViewOffMat:new St,viewMat3:new pt,position:new Float32Array(3),rotation:new wt}),this.views.push(r)}else if(s<=this.views.length)for(var o=0;o=this._right){var i=e.length;if(i)if(t=e[i-1])this._left=e[i-1],this._right=1/0,this._len=0,this._recip=0,this._p0=this._p1=i-1;else{var n=this._findKey(t,e);this._left=e[n],this._right=e[n+1],this._len=this._right-this._left;var s=1/this._len;this._recip=isFinite(s)?s:0,this._p0=n,this._p1=n+1}else this._left=-1/0,this._right=1/0,this._len=0,this._recip=0,this._p0=this._p1=0}this._t=0===this._recip?0:(t-this._left)*this._recip,this._hermite.valid=!1},e._findKey=function(t,e){for(var i=0;t>=e[i+1];)i++;return i},e.eval=function(t,e,i){var n=i._data,s=i._components,a=this._p0*s;if(0===e)for(var r=0;rthis.track.duration&&(i=e-this.track.duration,e=this.track.duration);this.track.events[this.eventCursor]&&this.track.events[this.eventCursor].time>=t&&(e===this.track.duration?this.track.events[this.eventCursor].time<=e:this.track.events[this.eventCursor].time0&&i>0&&this.activeEventsForFrame(e,e+n*t),e+=n*t,n>=0?e>i&&(s?e=e%i||0:(e=this._track.duration,this.pause())):e<0&&(s?e=i+(e%i||0):(e=0,this.pause())),this._time=e}this._time!==this._snapshot._time&&this._track.eval(this._time,this._snapshot)},e.play=function(){this._playing=!0,this._time=0},e.stop=function(){this._playing=!1,this._time=0},e.pause=function(){this._playing=!1},e.resume=function(){this._playing=!0},e.reset=function(){this._time=0},q(t,[{key:"name",get:function(){return this._name},set:function(t){this._name=t}},{key:"track",get:function(){return this._track}},{key:"snapshot",get:function(){return this._snapshot}},{key:"time",get:function(){return this._time},set:function(t){this._time=t}},{key:"speed",get:function(){return this._speed},set:function(t){this._speed=t}},{key:"loop",get:function(){return this._loop},set:function(t){this._loop=t}},{key:"blendWeight",get:function(){return this._blendWeight},set:function(t){this._blendWeight=t}},{key:"blendOrder",get:function(){return this._blendOrder},set:function(t){this._blendOrder=t}},{key:"eventCursor",get:function(){return this._eventCursor},set:function(t){this._eventCursor=t}}]),t}(),_d="NONE",gd="PREV_STATE",vd="NEXT_STATE",yd="PREV_STATE_NEXT_STATE",xd="NEXT_STATE_PREV_STATE",bd="GREATER_THAN",Sd="LESS_THAN",wd="GREATER_THAN_EQUAL_TO",Td="LESS_THAN_EQUAL_TO",Ad="EQUAL_TO",Md="NOT_EQUAL_TO",Cd="INTEGER",Ed="FLOAT",Pd="BOOLEAN",Rd="TRIGGER",Id="2D_DIRECTIONAL",Ld="2D_CARTESIAN",Dd="DIRECT",kd="START",Od="END",Fd="ANY",Bd=[kd,Od,Fd],Nd="OVERWRITE",Ud="ADDITIVE",zd=function(){function t(t,e){this._component=t,this.mask=new Int8Array(t.layers.length),this.weights=new Float32Array(t.layers.length),this.totalWeight=0,this.counter=0,this.layerCounter=0,this.valueType=e,this.dirty=!0,this.value=[0,0,0,1],this.baseValue=null,this.setter=null}var e=t.prototype;return e.getWeight=function(t){return this.dirty&&this.updateWeights(),this._normalizeWeights&&0===this.totalWeight||!this.mask[t]?0:this._normalizeWeights?this.weights[t]/this.totalWeight:rt.clamp(this.weights[t],0,1)},e._layerBlendType=function(t){return this._component.layers[t].blendType},e.setMask=function(t,e){this.mask[t]=e,this._normalizeWeights&&(this._component.layers[t].blendType===Nd&&(this.mask=this.mask.fill(0,0,t)),this.dirty=!0)},e.updateWeights=function(){this.totalWeight=0;for(var t=0;t0){i=1/Math.sqrt(i);for(var n=e.length,s=0;s0&&(a=1/Math.sqrt(a));for(var r=0;r0;)this.removeClip(0)},e.findClip=function(t){for(var e=this._clips,i=0;i0&&r._update(e);var c=void 0,u=void 0,d=void 0;if(l>=1)for(var f=0;f0)for(var p=0;p0&&i.push(n),i},t.encode=function(t,e,i){return(Array.isArray(t)?t.join("/"):t)+"/"+e+"/"+(Array.isArray(i)?i.join("/"):i)};var e=t.prototype;return e.resolve=function(t){return null},e.unresolve=function(t){},e.update=function(t){},t}(),Gd=function(){function t(t,e,i,n){t.set?(this._set=t.set,this._get=t.get):this._set=t,this._type=e,this._components=i,this._targetPath=n,this._isTransform="localRotation"===this._targetPath.substring(this._targetPath.length-13)||"localPosition"===this._targetPath.substring(this._targetPath.length-13)||"localScale"===this._targetPath.substring(this._targetPath.length-10)}return q(t,[{key:"set",get:function(){return this._set}},{key:"get",get:function(){return this._get}},{key:"type",get:function(){return this._type}},{key:"components",get:function(){return this._components}},{key:"targetPath",get:function(){return this._targetPath}},{key:"isTransform",get:function(){return this._isTransform}}]),t}(),Hd=function(){function t(e){var i=this;if(this._isPathInMask=function(t,e){var n=i._mask[t];return!!n&&!!(n.children||e&&!1!==n.value)},this.graph=e,e){this._mask=null;var n={};!function t(e){n[e.name]=e;for(var i=0;i0){return t.createAnimTarget((function(t){for(var e=0;ei){this._time=this.looping?0:i;for(var n=0;n=0?1:-1,l=0;l=0;m+=h){var _=d[m],g=d[m+1];if(_.time<=this._time&&g.time>=this._time){var v=(this._time-_.time)/(g.time-_.time);f._pos.lerp(_.position,g.position,v),f._quat.slerp(_.rotation,g.rotation,v),f._scale.lerp(_.scale,g.scale,v),f._written=!0,this._currKeyIndices[u]=m,p=!0;break}}(1===d.length||!p&&0===this._time&&this.looping)&&(f._pos.copy(d[0].position),f._quat.copy(d[0].rotation),f._scale.copy(d[0].scale),f._written=!0)}}}},e.blend=function(t,e,i){for(var n=this._interpolatedKeys.length,s=0;s0&&i.prevAnim,i.blending&&(i.blend=0,i.blendSpeed=1/e),i.skeleton&&(i.blending?(i.fromSkel.animation=n,i.fromSkel.addTime(i.skeleton._time),i.toSkel.animation=s):i.skeleton.animation=s),i.animEvaluator){var a=i.animEvaluator;if(i.blending)for(;a.clips.length>1;)a.removeClip(0);else i.animEvaluator.removeClips();var r=new md(i.animations[i.currAnim],0,1,!0,i.loop);r.name=i.currAnim,r.blendWeight=i.blending?0:1,r.reset(),i.animEvaluator.addClip(r)}}i.playing=!0}}},i.getAnimation=function(t){return this.data.animations[t]},i.setModel=function(t){var e=this.data;t!==e.model&&(this._resetAnimationController(),e.model=t,e.animations&&e.currAnim&&e.animations[e.currAnim]&&this.play(e.currAnim))},i._resetAnimationController=function(){var t=this.data;t.skeleton=null,t.fromSkel=null,t.toSkel=null,t.animEvaluator=null},i._createAnimationController=function(){var t=this.data,e=t.model,i=t.animations,n=!1,s=!1;for(var a in i){if(i.hasOwnProperty(a))i[a].constructor===bh?s=!0:n=!0}var r=e.getGraph();n?(t.fromSkel=new qd(r),t.toSkel=new qd(r),t.skeleton=new qd(r),t.skeleton.looping=t.loop,t.skeleton.setGraph(r)):s&&(t.animEvaluator=new Vd(new Hd(this.entity)))},i.loadAnimationAssets=function(t){var e=this;if(t&&t.length)for(var i=this.system.app.assets,n=function(t){if(t.resources.length>1)for(var i=0;i1){if(n&&n.length>1)for(var a=0;a1)for(var o=0;o1)for(var h=0;h1)for(var e=0;e0&&this.play(r[0])}},i.onSetAssets=function(t,e,i){if(e&&e.length)for(var n=0;n0&&this.play(o[0])}},i.onBeforeRemove=function(){for(var t=0;t0)return e[e.length-1].time}return 0},set:function(t){var e=this.data;if(e.skeleton){var i=e.skeleton;i.currentTime=t,i.addTime(0),i.updateGraph()}if(e.animEvaluator)for(var n=e.animEvaluator,s=0;s=1&&(s.blend=1)),s.playing){var a=s.skeleton;if(null!==a&&null!==s.model){if(s.blending)a.blend(s.fromSkel,s.toSkel,s.blend);else{var r=t*s.speed;a.addTime(r),(s.speed>0&&a._time===a._animation.duration&&!s.loop||s.speed<0&&0===a._time&&!s.loop)&&(s.playing=!1)}s.blending&&1===s.blend&&(a.animation=s.toSkel._animation),a.updateGraph()}}var o=s.animEvaluator;if(o){for(var h=0;h1&&(o.clips[1].blendWeight=s.blend),o.update(t)}s.blending&&1===s.blend&&(s.blending=!1)}}},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this)},e}(ud);du._buildAccessors(jd.prototype,Kd);var $d=function(){function t(t,e,i,n,s){void 0===s&&(s=1),this._state=t,this._parent=e,this._name=i,Array.isArray(n)?(this._point=new mt(n[0],n[1]),this._pointLength=this._point.length()):(this._point=n,this._pointLength=n),this._speed=s,this._weightedSpeed=1,this._weight=1,this._animTrack=null}return q(t,[{key:"parent",get:function(){return this._parent}},{key:"name",get:function(){return this._name}},{key:"path",get:function(){return this._parent?this._parent.path+"."+this._name:this._name}},{key:"point",get:function(){return this._point}},{key:"pointLength",get:function(){return this._pointLength}},{key:"weight",get:function(){return this._parent?this._parent.weight*this._weight:this._weight},set:function(t){this._weight=t}},{key:"normalizedWeight",get:function(){var t=this._state.totalWeight;return 0===t?0:this.weight/t}},{key:"speed",get:function(){return this._weightedSpeed*this._speed}},{key:"absoluteSpeed",get:function(){return Math.abs(this._speed)}},{key:"weightedSpeed",get:function(){return this._weightedSpeed},set:function(t){this._weightedSpeed=t}},{key:"animTrack",get:function(){return this._animTrack},set:function(t){this._animTrack=t}}]),t}(),Qd=function(t){function e(e,i,n,s,a,r,o,h,l){var c;(c=t.call(this,e,i,n,s)||this)._parameters=a,c._parameterValues=new Array(a.length),c._children=[],c._findParameter=l,c._syncAnimations=!1!==o,c._pointCache={};for(var u=0;u=0)this._animationList[n].animTrack=e;else{var s=this._getNodeFromPath(t);s.animTrack=e,this._animationList.push(s)}},q(t,[{key:"name",get:function(){return this._name}},{key:"animations",get:function(){return this._animationList},set:function(t){this._animationList=t}},{key:"speed",get:function(){return this._speed},set:function(t){this._speed=t}},{key:"loop",get:function(){return this._loop},set:function(t){this._loop=t}},{key:"nodeCount",get:function(){return this._blendTree&&this._blendTree.constructor!==$d?this._blendTree.getNodeCount():1}},{key:"playable",get:function(){return-1!==Bd.indexOf(this.name)||this.animations.length===this.nodeCount}},{key:"looping",get:function(){if(this.animations.length>0){var t=this.name+"."+this.animations[0].animTrack.name,e=this._controller.animEvaluator.findClip(t);if(e)return e.loop}return!1}},{key:"totalWeight",get:function(){for(var t=0,e=0;et&&(t=i.animTrack.duration)}return t}}]),t}(),af=function(){function t(t){var e=t.from,i=t.to,n=t.time,s=void 0===n?0:n,a=t.priority,r=void 0===a?0:a,o=t.conditions,h=void 0===o?[]:o,l=t.exitTime,c=void 0===l?null:l,u=t.transitionOffset,d=void 0===u?null:u,f=t.interruptionSource,p=void 0===f?_d:f;this._from=e,this._to=i,this._time=s,this._priority=r,this._conditions=h,this._exitTime=c,this._transitionOffset=d,this._interruptionSource=p}return q(t,[{key:"from",get:function(){return this._from}},{key:"to",get:function(){return this._to},set:function(t){this._to=t}},{key:"time",get:function(){return this._time}},{key:"priority",get:function(){return this._priority}},{key:"conditions",get:function(){return this._conditions}},{key:"exitTime",get:function(){return this._exitTime}},{key:"transitionOffset",get:function(){return this._transitionOffset}},{key:"interruptionSource",get:function(){return this._interruptionSource}},{key:"hasExitTime",get:function(){return!!this.exitTime}}]),t}(),rf=function(){function t(t,e,i,n,s,a,r){this._animEvaluator=t,this._states={},this._stateNames=[],this._eventHandler=a,this._consumedTriggers=r;for(var o=0;o"+e];return i||(i=this._transitions.filter((function(i){return i.from===t&&i.to===e})),bo(i),this._findTransitionsBetweenStatesCache[t+"->"+e]=i),i},e._transitionHasConditionsMet=function(t){for(var e=t.conditions,i=0;in.value))return!1;break;case Sd:if(!(s.value=n.value))return!1;break;case Td:if(!(s.value<=n.value))return!1;break;case Ad:if(s.value!==n.value)return!1;break;case Md:if(s.value===n.value)return!1}}return!0},e._findTransition=function(t,e){var i=this,n=[];if(t&&e)n=n.concat(this._findTransitionsBetweenStates(t,e));else if(this._isTransitioning)switch(this._transitionInterruptionSource){case gd:n=(n=n.concat(this._findTransitionsFromState(this._previousStateName))).concat(this._findTransitionsFromState(Fd));break;case vd:n=(n=n.concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(Fd));break;case yd:n=(n=(n=n.concat(this._findTransitionsFromState(this._previousStateName))).concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(Fd));break;case xd:n=(n=(n=n.concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(this._previousStateName))).concat(this._findTransitionsFromState(Fd))}else n=(n=n.concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(Fd));if((n=n.filter((function(t){if(t.to===i.activeStateName)return!1;if(t.hasExitTime){var e=i._getActiveStateProgressForTime(i._timeInStateBefore),n=i._getActiveStateProgressForTime(i._timeInState);if(t.exitTime<1&&i.activeState.loop&&(e-=Math.floor(e),n-=Math.floor(n)),!(t.exitTime>e&&t.exitTime<=n))return null}return i._transitionHasConditionsMet(t)}))).length>0){var s=n[0];if(s.to===Od){var a=this._findTransitionsFromState(kd)[0];s.to=a.to}return s}return null},e.updateStateFromTransition=function(t){var e,i,n;this.previousState=t.from?this.activeStateName:null,this.activeState=t.to;for(var s=0;s0&&t.transitionOffset<1,u=0,d=0;if(c){var f=l.timelineDuration*t.transitionOffset;u=f,d=f}this._timeInState=u,this._timeInStateBefore=d;for(var p=0;p0?n.blendWeight=0:n.blendWeight=l.animations[p].normalizedWeight,n.play(),c)n.time=l.timelineDuration*t.transitionOffset;else{var _=l.speed>=0?0:this.activeStateDuration;n.time=_}}},e._transitionToState=function(t){if(this._findState(t)){var e=this._findTransition(this._activeStateName,t);e||(this._animEvaluator.removeClips(),e=new af({from:null,to:t})),this.updateStateFromTransition(e)}},e.assignAnimation=function(t,e,i,n){var s=t.split("."),a=this._findState(s[0]);a||(a=new sf(this,s[0],1),this._states[s[0]]=a,this._stateNames.push(s[0])),a.addAnimation(s,e),void 0!==i&&(a.speed=i),void 0!==n&&(a.loop=n),!this._playing&&this._activate&&this.playable&&this.play()},e.removeNodeAnimations=function(t){if(-1===Bd.indexOf(t)){var e=this._findState(t);if(e)return e.animations=[],!0}},e.play=function(t){t&&this._transitionToState(t),this._playing=!0},e.pause=function(){this._playing=!1},e.reset=function(){this._previousStateName=null,this._activeStateName=kd,this._playing=!1,this._currTransitionTime=1,this._totalTransitionTime=1,this._isTransitioning=!1,this._timeInState=0,this._timeInStateBefore=0,this._animEvaluator.removeClips()},e.rebind=function(){this._animEvaluator.rebind()},e.update=function(t){if(this._playing){var e,i,n;this._timeInStateBefore=this._timeInState,this._timeInState+=t;var s=this._findTransition(this._activeStateName);if(s&&this.updateStateFromTransition(s),this._isTransitioning)if(this._currTransitionTime+=t,this._currTransitionTime<=this._totalTransitionTime){for(var a=0!==this._totalTransitionTime?this._currTransitionTime/this._totalTransitionTime:1,r=0;r1){var l=e.length>2?this._resolvePath(t,e.slice(0,-1)):t,c=e[e.length-2];return function(t){n[s]=i(t),l[c]=n}}return function(t){n[s]=i(t)}},i._createAnimTargetForProperty=function(t,i,n){if(this.handlers&&"weights"===i[0])return this.handlers.weights(t);if(this.handlers&&"material"===i[0]&&2===i.length){var s=i[1];if(s.endsWith("Map"))return this.handlers.materialTexture(t,s)}var a,r,o,h=this._resolvePath(t,i,!0);if(void 0===h)return null;if("number"==typeof h)a=this._setter(t,i,e._packFloat),r="vector",o=1;else if("boolean"==typeof h)a=this._setter(t,i,e._packBoolean),r="vector",o=1;else if("object"==typeof h)switch(h.constructor){case mt:a=this._setter(t,i,e._packVec2),r="vector",o=2;break;case ft:a=this._setter(t,i,e._packVec3),r="vector",o=3;break;case _t:a=this._setter(t,i,e._packVec4),r="vector",o=4;break;case lt:a=this._setter(t,i,e._packColor),r="vector",o=4;break;case wt:a=this._setter(t,i,e._packQuat),r="quaternion",o=4;break;default:return null}return-1!==i.indexOf("material")?new Gd((function(e){a(e),t.material.update()}),r,o,n):new Gd(a,r,o,n)},i.rebind=function(){this.targetCache={},this.animComponent.rootBone?this.graph=this.animComponent.rootBone:this.graph=this.animComponent.entity;var t={};!function e(i){t[i.name]=i;for(var n=0;n0?this._layers[0]:null}}]),e}(du),mf=function(){this.enabled=!0},_f=["enabled"],gf=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="anim",i.ComponentType=pf,i.DataType=mf,i.schema=_f,i.on("beforeremove",i.onBeforeRemove,Z(i)),i.app.systems.on("animationUpdate",i.onAnimationUpdate,Z(i)),i}Y(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){t.prototype.initializeComponentData.call(this,e,i,_f);var s=["animationAssets","stateGraph","layers","masks"];Object.keys(i).forEach((function(t){s.includes(t)||(e[t]=i[t])})),i.stateGraph&&(e.stateGraph=i.stateGraph,e.loadStateGraph(e.stateGraph)),i.layers?i.layers.forEach((function(t,i){t._controller.states.forEach((function(n){t._controller._states[n]._animationList.forEach((function(t){e.layers[i].assignAnimation(t.name,t.animTrack)}))}))})):i.animationAssets&&(e.animationAssets=Object.assign(e.animationAssets,i.animationAssets)),i.masks&&Object.keys(i.masks).forEach((function(t){if(e.layers[t]){var n=i.masks[t].mask,s={};Object.keys(n).forEach((function(t){s[decodeURI(t)]=n[t]})),e.layers[t].mask=s}}))},i.onAnimationUpdate=function(t){var e=this.store;for(var i in e)if(e.hasOwnProperty(i)){var n=e[i].entity.anim;n.data.enabled&&n.entity.enabled&&n.playing&&n.update(t)}},i.cloneComponent=function(t,e){var i;t.anim.rootBone&&t.anim.rootBone!==t||(i={},t.anim.layers.forEach((function(t,n){if(t.mask){var s={};Object.keys(t.mask).forEach((function(i){var n=i.split("/");n.shift();var a=[e.name].concat(n).join("/");s[a]=t.mask[i]})),i[n]={mask:s}}})));var n={stateGraphAsset:t.anim.stateGraphAsset,animationAssets:t.anim.animationAssets,speed:t.anim.speed,activate:t.anim.activate,playing:t.anim.playing,rootBone:t.anim.rootBone,stateGraph:t.anim.stateGraph,layers:t.anim.layers,layerIndices:t.anim.layerIndices,parameters:t.anim.parameters,normalizeWeights:t.anim.normalizeWeights,masks:i};return this.addComponent(e,n)},i.onBeforeRemove=function(t,e){e.onBeforeRemove()},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("animationUpdate",this.onAnimationUpdate,this)},e}(ud);du._buildAccessors(pf.prototype,_f);var vf=function(t){function e(e,i){return t.call(this,e,i)||this}Y(e,t);var i=e.prototype;return i.setCurrentListener=function(){if(this.enabled&&this.entity.audiolistener&&this.entity.enabled){this.system.current=this.entity;var t=this.system.current.getPosition();this.system.manager.listener.setPosition(t)}},i.onEnable=function(){this.setCurrentListener()},i.onDisable=function(){this.system.current===this.entity&&(this.system.current=null)},e}(du),yf=function(){this.enabled=!0},xf=["enabled"],bf=function(t){function e(e,i){var n;return(n=t.call(this,e)||this).id="audiolistener",n.ComponentType=vf,n.DataType=yf,n.schema=xf,n.manager=i,n.current=null,n.app.systems.on("update",n.onUpdate,Z(n)),n}Y(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){n=["enabled"],t.prototype.initializeComponentData.call(this,e,i,n)},i.onUpdate=function(t){if(this.current){var e=this.current.getPosition();this.manager.listener.setPosition(e);var i=this.current.getWorldTransform();this.manager.listener.setOrientation(i)}},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this)},e}(ud);du._buildAccessors(vf.prototype,xf);var Sf=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this).on("set_assets",n.onSetAssets,Z(n)),n.on("set_loop",n.onSetLoop,Z(n)),n.on("set_volume",n.onSetVolume,Z(n)),n.on("set_pitch",n.onSetPitch,Z(n)),n.on("set_minDistance",n.onSetMinDistance,Z(n)),n.on("set_maxDistance",n.onSetMaxDistance,Z(n)),n.on("set_rollOffFactor",n.onSetRollOffFactor,Z(n)),n.on("set_distanceModel",n.onSetDistanceModel,Z(n)),n.on("set_3d",n.onSet3d,Z(n)),n}Y(e,t);var i=e.prototype;return i.play=function(t){if(this.enabled&&this.entity.enabled){var e;this.channel&&this.stop();var i=this.data;if(i.sources[t])if(i["3d"]){var n=this.entity.getPosition();e=this.system.manager.playSound3d(i.sources[t],n,i),i.currentSource=t,i.channel=e}else e=this.system.manager.playSound(i.sources[t],i),i.currentSource=t,i.channel=e}},i.pause=function(){this.channel&&this.channel.pause()},i.unpause=function(){this.channel&&this.channel.paused&&this.channel.unpause()},i.stop=function(){this.channel&&(this.channel.stop(),this.channel=null)},i.onSetAssets=function(t,e,i){var n=[],s=i.length;if(e&&e.length)for(var a=0;a1e-5){var i=this._tweenInfo.lerpColor;i.lerp(this._tweenInfo.from,this._tweenInfo.to,e),this._applyTintImmediately(new lt(i.r,i.g,i.b,i.a))}else this._applyTintImmediately(this._tweenInfo.to),this._cancelTween()},i._cancelTween=function(){delete this._tweenInfo},i.onUpdate=function(){this._tweenInfo&&this._updateTintTween()},i.onEnable=function(){this._isHovering=!1,this._hoveringCounter=0,this._isPressed=!1,this._imageReference.onParentComponentEnable(),this._toggleHitElementListeners("on"),this._forceReapplyVisualState()},i.onDisable=function(){this._toggleHitElementListeners("off"),this._resetToDefaultVisualState(this.transitionMode)},i.onRemove=function(){this._toggleLifecycleListeners("off",this.system),this.onDisable()},e}(du);function Nf(t){return new lt(t.r,t.g,t.b)}var Uf,zf=function(){this.enabled=!0,this.active=!0,this.imageEntity=null,this.hitPadding=new _t,this.transitionMode=0,this.hoverTint=new lt(.75,.75,.75),this.pressedTint=new lt(.5,.5,.5),this.inactiveTint=new lt(.25,.25,.25),this.fadeDuration=0,this.hoverSpriteAsset=null,this.hoverSpriteFrame=0,this.pressedSpriteAsset=null,this.pressedSpriteFrame=0,this.inactiveSpriteAsset=null,this.inactiveSpriteFrame=0},Vf=["enabled","active",{name:"imageEntity",type:"entity"},{name:"hitPadding",type:"vec4"},"transitionMode",{name:"hoverTint",type:"rgba"},{name:"pressedTint",type:"rgba"},{name:"inactiveTint",type:"rgba"},"fadeDuration","hoverSpriteAsset","hoverSpriteFrame","pressedSpriteAsset","pressedSpriteFrame","inactiveSpriteAsset","inactiveSpriteFrame"],Wf=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="button",i.ComponentType=Bf,i.DataType=zf,i.schema=Vf,i.on("beforeremove",i._onRemoveComponent,Z(i)),i.app.systems.on("update",i.onUpdate,Z(i)),i}Y(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){t.prototype.initializeComponentData.call(this,e,i,Vf)},i.onUpdate=function(t){var e=this.store;for(var i in e){var n=e[i].entity,s=n.button;s.enabled&&n.enabled&&s.onUpdate()}},i._onRemoveComponent=function(t,e){e.onRemove()},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this)},e}(ud);du._buildAccessors(Bf.prototype,Vf);var Gf=function(t,e){this.effect=t,this.inputTarget=e,this.outputTarget=null,this.name=t.constructor.name},Hf=function(){function t(t,e){var i=this;this.app=t,this.camera=e,this.destinationRenderTarget=null,this.effects=[],this.enabled=!1,this.depthTarget=null,this.renderTargetScale=1,this.resizeTimeout=null,this.resizeLast=0,this._resizeTimeoutCallback=function(){i.resizeRenderTargets()},e.on("set:rect",this.onCameraRectChanged,this)}var e=t.prototype;return e._allocateColorBuffer=function(t,e){var i=this.camera.rect,n=Math.floor(i.z*this.app.graphicsDevice.width*this.renderTargetScale),s=Math.floor(i.w*this.app.graphicsDevice.height*this.renderTargetScale);return new Bi(this.app.graphicsDevice,{name:e,format:t,width:n,height:s,mipmaps:!1,minFilter:0,magFilter:0,addressU:1,addressV:1})},e._createOffscreenTarget=function(t,e){var i=this.app.graphicsDevice,n=e?i.getHdrFormat():7,s=this.camera.entity.name+"-posteffect-"+this.effects.length,a=this._allocateColorBuffer(n,s),r=this.app.graphicsDevice.supportsStencil,o=t?i.samples:1;return new xs({colorBuffer:a,depth:t,stencil:r,samples:o})},e._resizeOffscreenTarget=function(t){var e=t.colorBuffer.format,i=t.colorBuffer.name;t.destroyFrameBuffers(),t.destroyTextureBuffers(),t._colorBuffer=this._allocateColorBuffer(e,i)},e._destroyOffscreenTarget=function(t){t.destroyTextureBuffers(),t.destroy()},e.setRenderTargetScale=function(t){this.renderTargetScale=t,this.resizeRenderTargets()},e.addEffect=function(t){var e=this.effects,i=0===e.length,n=this._createOffscreenTarget(i,t.hdr),s=new Gf(t,n);e.push(s),this._sourceTarget=s.inputTarget,e.length>1&&(e[e.length-2].outputTarget=s.inputTarget),this._newPostEffect=t,t.needsDepthBuffer&&this._requestDepthMap(),this.enable(),this._newPostEffect=void 0},e.removeEffect=function(t){for(var e=-1,i=0,n=this.effects.length;i=0&&(e>0?this.effects[e-1].outputTarget=e+11&&(this.effects[1].inputTarget._depth||(this._destroyOffscreenTarget(this.effects[1].inputTarget),this.effects[1].inputTarget=this._createOffscreenTarget(!0,this.effects[1].hdr),this._sourceTarget=this.effects[1].inputTarget),this.camera.renderTarget=this.effects[1].inputTarget),this._destroyOffscreenTarget(this.effects[e].inputTarget),this.effects.splice(e,1)),this.enabled&&t.needsDepthBuffer&&this._releaseDepthMap(),0===this.effects.length&&this.disable()},e._requestDepthMaps=function(){for(var t=0,e=this.effects.length;t100?this.resizeRenderTargets():this.resizeTimeout=setTimeout(this._resizeTimeoutCallback,100))},e.resizeRenderTargets=function(){this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),this.resizeLast=it();for(var t=this.camera.rect,e=Math.floor(t.z*this.app.graphicsDevice.width*this.renderTargetScale),i=Math.floor(t.w*this.app.graphicsDevice.height*this.renderTargetScale),n=this.effects,s=0,a=n.length;s=0&&(this.cameras.splice(e,1),bo(this.cameras))},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this)},e}(ud);du._buildAccessors(qf.prototype,Yf);var Zf,$f,Qf,Jf=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._compoundParent=null,n.entity.on("insert",n._onInsert,Z(n)),n.on("set_type",n.onSetType,Z(n)),n.on("set_halfExtents",n.onSetHalfExtents,Z(n)),n.on("set_radius",n.onSetRadius,Z(n)),n.on("set_height",n.onSetHeight,Z(n)),n.on("set_axis",n.onSetAxis,Z(n)),n.on("set_asset",n.onSetAsset,Z(n)),n.on("set_renderAsset",n.onSetRenderAsset,Z(n)),n.on("set_model",n.onSetModel,Z(n)),n.on("set_render",n.onSetRender,Z(n)),n}Y(e,t);var i=e.prototype;return i.onSetType=function(t,e,i){e!==i&&this.system.changeType(this,e,i)},i.onSetHalfExtents=function(t,e,i){var n=this.data.type;this.data.initialized&&"box"===n&&this.system.recreatePhysicalShapes(this)},i.onSetRadius=function(t,e,i){var n=this.data.type;!this.data.initialized||"sphere"!==n&&"capsule"!==n&&"cylinder"!==n&&"cone"!==n||this.system.recreatePhysicalShapes(this)},i.onSetHeight=function(t,e,i){var n=this.data.type;!this.data.initialized||"capsule"!==n&&"cylinder"!==n&&"cone"!==n||this.system.recreatePhysicalShapes(this)},i.onSetAxis=function(t,e,i){var n=this.data.type;!this.data.initialized||"capsule"!==n&&"cylinder"!==n&&"cone"!==n||this.system.recreatePhysicalShapes(this)},i.onSetAsset=function(t,e,i){var n=this.system.app.assets;if(e){var s=n.get(e);s&&s.off("remove",this.onAssetRemoved,this)}if(i){i instanceof Oh&&(this.data.asset=i.id);var a=n.get(this.data.asset);a&&(a.off("remove",this.onAssetRemoved,this),a.on("remove",this.onAssetRemoved,this))}this.data.initialized&&"mesh"===this.data.type&&(i||(this.data.model=null),this.system.recreatePhysicalShapes(this))},i.onSetRenderAsset=function(t,e,i){var n=this.system.app.assets;if(e){var s=n.get(e);s&&s.off("remove",this.onRenderAssetRemoved,this)}if(i){i instanceof Oh&&(this.data.renderAsset=i.id);var a=n.get(this.data.renderAsset);a&&(a.off("remove",this.onRenderAssetRemoved,this),a.on("remove",this.onRenderAssetRemoved,this))}this.data.initialized&&"mesh"===this.data.type&&(i||(this.data.render=null),this.system.recreatePhysicalShapes(this))},i.onSetModel=function(t,e,i){this.data.initialized&&"mesh"===this.data.type&&this.system.implementations.mesh.doRecreatePhysicalShape(this)},i.onSetRender=function(t,e,i){this.onSetModel(t,e,i)},i.onAssetRemoved=function(t){t.off("remove",this.onAssetRemoved,this),this.data.asset===t.id&&(this.asset=null)},i.onRenderAssetRemoved=function(t){t.off("remove",this.onRenderAssetRemoved,this),this.data.renderAsset===t.id&&(this.renderAsset=null)},i._getCompoundChildShapeIndex=function(t){for(var e=this.data.shape,i=e.getNumChildShapes(),n=0;n-1&&e.rigidbody._triggers.splice(i,1),e.rigidbody.removeBody(t),t.forceActivationState(5)}},t}(),op=new St,hp=new ft,lp=new wt,cp=new an,up=["enabled","type","halfExtents","radius","axis","height","asset","renderAsset","shape","model","render"],dp=function(){function t(t){this.system=t}var e=t.prototype;return e.beforeInitialize=function(t,e){e.shape=null,e.model=new qo,e.model.graph=new an},e.afterInitialize=function(t,e){this.recreatePhysicalShapes(t),t.data.initialized=!0},e.reset=function(t,e){this.beforeInitialize(t,e),this.afterInitialize(t,e)},e.recreatePhysicalShapes=function(t){var e=t.entity,i=t.data;if("undefined"!=typeof Ammo){e.trigger&&(e.trigger.destroy(),delete e.trigger),i.shape&&(t._compoundParent&&(this.system._removeCompoundChild(t._compoundParent,i.shape),t._compoundParent.entity.rigidbody&&t._compoundParent.entity.rigidbody.activate()),Ammo.destroy(i.shape),i.shape=null),i.shape=this.createPhysicalShape(t.entity,i);var n=!t._compoundParent;if("compound"!==i.type||t._compoundParent&&t!==t._compoundParent){if("compound"!==i.type&&(t._compoundParent&&t===t._compoundParent&&e.forEach(this.system.implementations.compound._updateEachDescendant,t),!t.rigidbody)){t._compoundParent=null;for(var s=e.parent;s;){if(s.collision&&"compound"===s.collision.type){t._compoundParent=s.collision;break}s=s.parent}}}else t._compoundParent=t,e.forEach(this._addEachDescendant,t);t._compoundParent&&t!==t._compoundParent&&(n&&0===t._compoundParent.shape.getNumChildShapes()?this.system.recreatePhysicalShapes(t._compoundParent):(this.system.updateCompoundChildTransform(e),t._compoundParent.entity.rigidbody&&t._compoundParent.entity.rigidbody.activate())),e.rigidbody?(e.rigidbody.disableSimulation(),e.rigidbody.createBody(),e.enabled&&e.rigidbody.enabled&&e.rigidbody.enableSimulation()):t._compoundParent||(e.trigger?e.trigger.initialize(i):e.trigger=new rp(this.system.app,t,i))}},e.createPhysicalShape=function(t,e){},e.updateTransform=function(t,e,i,n){t.entity.trigger&&t.entity.trigger.updateTransform()},e.beforeRemove=function(t,e){e.data.shape&&(e._compoundParent&&!e._compoundParent.entity._destroying&&(this.system._removeCompoundChild(e._compoundParent,e.data.shape),e._compoundParent.entity.rigidbody&&e._compoundParent.entity.rigidbody.activate()),e._compoundParent=null,Ammo.destroy(e.data.shape),e.data.shape=null)},e.remove=function(t,e){var i=this.system.app;t.rigidbody&&t.rigidbody.body&&t.rigidbody.disableSimulation(),t.trigger&&(t.trigger.destroy(),delete t.trigger),i.scene.containsModel(e.model)&&(i.root.removeChild(e.model.graph),i.scene.removeModel(e.model))},e.clone=function(t,e){var i=this.system.store[t.getGuid()],n={enabled:i.data.enabled,type:i.data.type,halfExtents:[i.data.halfExtents.x,i.data.halfExtents.y,i.data.halfExtents.z],radius:i.data.radius,axis:i.data.axis,height:i.data.height,asset:i.data.asset,renderAsset:i.data.renderAsset,model:i.data.model,render:i.data.render};return this.system.addComponent(e,n)},t}(),fp=function(t){function e(){return t.apply(this,arguments)||this}return Y(e,t),e.prototype.createPhysicalShape=function(t,e){if("undefined"!=typeof Ammo){var i=e.halfExtents,n=new Ammo.btVector3(i?i.x:.5,i?i.y:.5,i?i.z:.5),s=new Ammo.btBoxShape(n);return Ammo.destroy(n),s}},e}(dp),pp=function(t){function e(){return t.apply(this,arguments)||this}return Y(e,t),e.prototype.createPhysicalShape=function(t,e){if("undefined"!=typeof Ammo)return new Ammo.btSphereShape(e.radius)},e}(dp),mp=function(t){function e(){return t.apply(this,arguments)||this}return Y(e,t),e.prototype.createPhysicalShape=function(t,e){var i=void 0!==e.axis?e.axis:1,n=e.radius||.5,s=Math.max((e.height||2)-2*n,0),a=null;if("undefined"!=typeof Ammo)switch(i){case 0:a=new Ammo.btCapsuleShapeX(n,s);break;case 1:a=new Ammo.btCapsuleShape(n,s);break;case 2:a=new Ammo.btCapsuleShapeZ(n,s)}return a},e}(dp),_p=function(t){function e(){return t.apply(this,arguments)||this}return Y(e,t),e.prototype.createPhysicalShape=function(t,e){var i=void 0!==e.axis?e.axis:1,n=void 0!==e.radius?e.radius:.5,s=void 0!==e.height?e.height:1,a=null,r=null;if("undefined"!=typeof Ammo)switch(i){case 0:a=new Ammo.btVector3(.5*s,n,n),r=new Ammo.btCylinderShapeX(a);break;case 1:a=new Ammo.btVector3(n,.5*s,n),r=new Ammo.btCylinderShape(a);break;case 2:a=new Ammo.btVector3(n,n,.5*s),r=new Ammo.btCylinderShapeZ(a)}return a&&Ammo.destroy(a),r},e}(dp),gp=function(t){function e(){return t.apply(this,arguments)||this}return Y(e,t),e.prototype.createPhysicalShape=function(t,e){var i=void 0!==e.axis?e.axis:1,n=void 0!==e.radius?e.radius:.5,s=void 0!==e.height?e.height:1,a=null;if("undefined"!=typeof Ammo)switch(i){case 0:a=new Ammo.btConeShapeX(n,s);break;case 1:a=new Ammo.btConeShape(n,s);break;case 2:a=new Ammo.btConeShapeZ(n,s)}return a},e}(dp),vp=function(t){function e(){return t.apply(this,arguments)||this}Y(e,t);var i=e.prototype;return i.beforeInitialize=function(t,e){},i.createAmmoMesh=function(t,e,i){var n;if(this.system._triMeshCache[t.id])n=this.system._triMeshCache[t.id];else{for(var s,a,r=t.vertexBuffer,o=r.getFormat(),h=0;h=0&&this.model.meshInstances.splice(i,1),this.unmaskMeshInstance=null}this._entity.enabled&&this._element.enabled&&(this._element.removeModelFromLayers(this.model),this._element.addModelToLayers(this.model))}},e.setMaterial=function(t){this.meshInstance&&(this.meshInstance.material=t,this.unmaskMeshInstance&&(this.unmaskMeshInstance.material=t))},e.setParameter=function(t,e){this.meshInstance&&(this.meshInstance.setParameter(t,e),this.unmaskMeshInstance&&this.unmaskMeshInstance.setParameter(t,e))},e.deleteParameter=function(t){this.meshInstance&&(this.meshInstance.deleteParameter(t),this.unmaskMeshInstance&&this.unmaskMeshInstance.deleteParameter(t))},e.setUnmaskDrawOrder=function(){if(this.meshInstance){if(this.unmaskMeshInstance){var t=function t(e){var i,n=e.children,s=n.length;if(s){for(var a=0;a0?this._symbols[0]:null,this._buf=[],this._mode="text",this._error=null}var e=t.prototype;return e.read=function(){for(var t=this._read();8===t;)t=this._read();return 0!==t&&1!==t&&(this._last=this._index),t},e.buf=function(){return this._buf},e.last=function(){return this._last},e.error=function(){return this._error},e.debugPrint=function(){for(var t=["EOF","ERROR","TEXT","OPEN_BRACKET","CLOSE_BRACKET","EQUALS","STRING","IDENTIFIER","WHITESPACE"],e=this.read(),i="";i+=(i.length>0?"\n":"")+t[e]+" '"+this.buf().join("")+"'",0!==e&&1!==e;)e=this.read();return i},e._read=function(){return this._buf=[],this._eof()?0:"text"===this._mode?this._text():this._tag()},e._text=function(){for(;;)switch(this._cur){case null:return this._buf.length>0?2:0;case"[":return this._mode="tag",this._buf.length>0?2:this._tag();case"\\":switch(this._next(),this._cur){case"[":this._store();break;default:this._output("\\")}break;default:this._store()}},e._tag=function(){switch(this._cur){case null:return this._error="unexpected end of input reading tag",1;case"[":return this._store(),3;case"]":return this._store(),this._mode="text",4;case"=":return this._store(),5;case" ":case"\t":case"\n":case"\r":case"\v":case"\f":return this._whitespace();case'"':return this._string();default:return this._isIdentifierSymbol(this._cur)?this._identifier():(this._error="unrecognized character",1)}},e._whitespace=function(){for(this._store();-1!==" \t\n\r\v\f".indexOf(this._cur);)this._store();return 8},e._string=function(){for(this._next();;)switch(this._cur){case null:return this._error="unexpected end of input reading string",1;case'"':return this._next(),6;default:this._store()}},e._identifier=function(){for(this._store();null!==this._cur&&this._isIdentifierSymbol(this._cur);)this._store();return 7},e._isIdentifierSymbol=function(t){return 1===t.length&&null!==t.match(Mp)},e._eof=function(){return null===this._cur},e._next=function(){return this._eof()||(this._index++,this._cur=this._index=0;--s)if(n==="/"+e[s].name&&null===e[s].end)return e[s].end=t.length,4===(i=this._scanner.read())||(this._error="expected close bracket",!1);return this._error="failed to find matching tag",!1}var a={name:n,value:null,attributes:{},start:t.length,end:null};if(5===(i=this._scanner.read())){if(6!==(i=this._scanner.read()))return this._error="expected string",!1;a.value=this._scanner.buf().join(""),i=this._scanner.read()}for(;;){switch(i){case 4:return e.push(a),!0;case 7:var r=this._scanner.buf().join("");if(5!==(i=this._scanner.read()))return this._error="expected equals",!1;if(6!==(i=this._scanner.read()))return this._error="expected string",!1;var o=this._scanner.buf().join("");a.attributes[r]=o;break;default:return this._error="expected close bracket or identifier",!1}i=this._scanner.read()}},t}();function Pp(t,e){for(var i in e)if(e.hasOwnProperty(i)){var n=e[i];n instanceof Object?(t.hasOwnProperty(i)||(t[i]={}),Pp(t[i],e[i])):t[i]=n}}function Rp(t){if(0===t.length)return null;for(var e={},i=0;i=1e-4,v=this._element.calculatedWidth;(this.autoWidth&&!g||!this._wrapLines)&&(v=Number.POSITIVE_INFINITY);var y,x,b,S,w=0,T=0;function A(t,i,n){e._lineWidths.push(Math.abs(n));var s=f>i?i+1:f,a=f>i?f+1:i,h=t.slice(s,a);if(_)for(var l=h.length;l--&&_>0;)kp.test(h[l])&&(h.splice(l,1),_--);e._lineContents.push(h.join("")),r=0,o-=e._scaledLineHeight,c++,p=0,m=0,_=0,u=0,f=i}for(var M=!0;M;){M=!1,this._scaledLineHeight=s?this._lineHeight*this._fontSize/(this._maxFontSize||1e-4):this._lineHeight,this.width=0,this.height=0,this._lineWidths=[],this._lineContents=[],r=0,o=0,h=0,l=0,c=1,u=0,d=0,f=0,p=0,m=0,_=0;var C=this._fontSize/32;w=this._fontMinY*C,T=this._fontMaxY*C;for(var E=0;E=a?null:this._symbols[L+1],kp.test(y))_++,(!this._wrapLines||this._maxLines<0||c0){var z=this._font.data.kerning;if(z){var V=z[G.getCodePoint(this._symbols[L-1])||0];V&&(U=V[G.getCodePoint(this._symbols[L])||0]||0)}}B=x.scale||1,F=C*((x.width+x.height)/2)/B,O=(x.xadvance+U)*C,D=(x.xoffset-U)*C,k=x.yoffset*C}else console.error("Couldn't substitute missing character: '"+y+"'");var W=Op.test(y),H=this._meshInfo[x&&x.map||0],X=r+this._spacing*O;if(X>v&&m>0&&!W&&(this._maxLines<0||cthis._element.calculatedWidth&&(nt=Math.floor(this._element.fontSize*this._element.calculatedWidth/(this.width||1e-4)),(nt=rt.clamp(nt,i,n))!==this._element.fontSize)){this._fontSize=nt,M=!0;break}if(this.height=Math.max(this.height,T-(o+w)),this._shouldAutoFitHeight()&&this.height>this._element.calculatedHeight&&(nt=rt.clamp(this._fontSize-1,i,n))!==this._element.fontSize){this._fontSize=nt,M=!0;break}r+=this._spacing*O,W||(l=r),(this._isWordBoundary(y)||this._isValidNextChar(S)&&(this._isNextCJKBoundary(y,S)||this._isNextCJKWholeWord(S)))&&(p++,u=l,d=L+1),m++;var st=this._getUv(y);if(H.uvs[4*b*2+0]=st[0],H.uvs[4*b*2+1]=1-st[1],H.uvs[4*b*2+2]=st[2],H.uvs[4*b*2+3]=1-st[1],H.uvs[4*b*2+4]=st[2],H.uvs[4*b*2+5]=1-st[3],H.uvs[4*b*2+6]=st[0],H.uvs[4*b*2+7]=1-st[3],this._symbolColors){var at=3*this._symbolColors[L];P=this._colorPalette[at],R=this._colorPalette[at+1],I=this._colorPalette[at+2]}H.colors[4*b*4+0]=P,H.colors[4*b*4+1]=R,H.colors[4*b*4+2]=I,H.colors[4*b*4+3]=255,H.colors[4*b*4+4]=P,H.colors[4*b*4+5]=R,H.colors[4*b*4+6]=I,H.colors[4*b*4+7]=255,H.colors[4*b*4+8]=P,H.colors[4*b*4+9]=R,H.colors[4*b*4+10]=I,H.colors[4*b*4+11]=255,H.colors[4*b*4+12]=P,H.colors[4*b*4+13]=R,H.colors[4*b*4+14]=I,H.colors[4*b*4+15]=255,H.quad++}}M||f=At?(Mt.element.POSITION.set(0,0,0),Mt.element.TEXCOORD0.set(0,0),Mt.element.COLOR.set(0,0,0,0)):(Mt.element.POSITION.set(this._meshInfo[ut].positions[3*Ct+0],this._meshInfo[ut].positions[3*Ct+1],this._meshInfo[ut].positions[3*Ct+2]),Mt.element.TEXCOORD0.set(this._meshInfo[ut].uvs[2*Ct+0],this._meshInfo[ut].uvs[2*Ct+1]),Mt.element.COLOR.set(this._meshInfo[ut].colors[4*Ct+0],this._meshInfo[ut].colors[4*Ct+1],this._meshInfo[ut].colors[4*Ct+2],this._meshInfo[ut].colors[4*Ct+3])),Mt.next();Mt.end(),this._meshInfo[ut].meshInstance.mesh.aabb.compute(this._meshInfo[ut].positions),this._meshInfo[ut].meshInstance._aabbVer=-1}this._aabbDirty=!0},e._onFontRender=function(){this.font=this._font},e._onFontLoad=function(t){this.font!==t.resource&&(this.font=t.resource)},e._onFontChange=function(t,e,i,n){if("data"===e){this._font.data=i;for(var s=this._font.data.info.maps.length,a=0;athis._font.textures.length&&(this._meshInfo.length=this._font.textures.length),this._updateText()}}},{key:"alignment",get:function(){return this._alignment},set:function(t){t instanceof mt?this._alignment.set(t.x,t.y):this._alignment.set(t[0],t[1]),this._font&&this._updateText()}},{key:"autoWidth",get:function(){return this._autoWidth},set:function(t){var e=this._autoWidth;if(this._autoWidth=t,t&&Math.abs(this._element.anchor.x-this._element.anchor.z)<1e-4&&(this._element.width=this.width),e!==t){var i=this._shouldAutoFit()?this._maxFontSize:this._originalFontSize;i!==this._fontSize&&(this._fontSize=i,this._font&&this._updateText())}}},{key:"autoHeight",get:function(){return this._autoHeight},set:function(t){var e=this._autoHeight;if(this._autoHeight=t,t&&Math.abs(this._element.anchor.y-this._element.anchor.w)<1e-4&&(this._element.height=this.height),e!==t){var i=this._shouldAutoFit()?this._maxFontSize:this._originalFontSize;i!==this._fontSize&&(this._fontSize=i,this._font&&this._updateText())}}},{key:"rtlReorder",get:function(){return this._rtlReorder},set:function(t){this._rtlReorder!==t&&(this._rtlReorder=t,this._font&&this._updateText())}},{key:"unicodeConverter",get:function(){return this._unicodeConverter},set:function(t){this._unicodeConverter!==t&&(this._unicodeConverter=t,this._setText(this._text))}},{key:"aabb",get:function(){if(this._aabbDirty){for(var t=!1,e=0;e=0&&this.system._prerender.splice(i,1),this.system._prerender.indexOf(t)<0&&this.system._prerender.push(t)}t=e}},i._onPrerender=function(){for(var t=0;t=0&&this.system.app.batcher.insert(Aa.ELEMENT,this.batchGroupId,this.entity),this.fire("enableelement")},i.onDisable=function(){this.system.app.scene.off("set:layers",this.onLayersChanged,this),this.system.app.scene.layers&&(this.system.app.scene.layers.off("add",this.onLayerAdded,this),this.system.app.scene.layers.off("remove",this.onLayerRemoved,this)),this._image&&this._image.onDisable(),this._text&&this._text.onDisable(),this._group&&this._group.onDisable(),this.system.app.elementInput&&this.useInput&&this.system.app.elementInput.removeElement(this),this._batchGroupId>=0&&this.system.app.batcher.remove(Aa.ELEMENT,this.batchGroupId,this.entity),this.fire("disableelement")},i.onRemove=function(){this.entity.off("insert",this._onInsert,this),this._unpatch(),this._image&&this._image.destroy(),this._text&&this._text.destroy(),this.system.app.elementInput&&this.useInput&&this.system.app.elementInput.removeElement(this),this.screen&&this.screen.screen&&(this._unbindScreen(this.screen.screen),this.screen.screen.syncDrawOrder()),this.off()},i._calculateSize=function(t,e){if(this.entity._parent||this.screen){this._calculateLocalAnchors();var i=this._absRight-this._absLeft,n=this._absTop-this._absBottom;t?this._setWidth(i):this._setCalculatedWidth(i,!1),e?this._setHeight(n):this._setCalculatedHeight(n,!1);var s=this.entity.getLocalPosition();s.x=this._margin.x+this._calculatedWidth*this._pivot.x,s.y=this._margin.y+this._calculatedHeight*this._pivot.y,this.entity.setLocalPosition(s),this._sizeDirty=!1}},i._setWidth=function(t){this._width=t,this._setCalculatedWidth(t,!1),this.fire("set:width",this._width)},i._setHeight=function(t){this._height=t,this._setCalculatedHeight(t,!1),this.fire("set:height",this._height)},i._setCalculatedWidth=function(t,e){if(!(Math.abs(t-this._calculatedWidth)<=1e-4)){if(this._calculatedWidth=t,this.entity._dirtifyLocal(),e){var i=this.entity.getLocalPosition(),n=this._pivot;this._margin.x=i.x-this._calculatedWidth*n.x,this._margin.z=this._localAnchor.z-this._localAnchor.x-this._calculatedWidth-this._margin.x}this._flagChildrenAsDirty(),this.fire("set:calculatedWidth",this._calculatedWidth),this.fire("resize",this._calculatedWidth,this._calculatedHeight)}},i._setCalculatedHeight=function(t,e){if(!(Math.abs(t-this._calculatedHeight)<=1e-4)){if(this._calculatedHeight=t,this.entity._dirtifyLocal(),e){var i=this.entity.getLocalPosition(),n=this._pivot;this._margin.y=i.y-this._calculatedHeight*n.y,this._margin.w=this._localAnchor.w-this._localAnchor.y-this._calculatedHeight-this._margin.y}this._flagChildrenAsDirty(),this.fire("set:calculatedHeight",this._calculatedHeight),this.fire("resize",this._calculatedWidth,this._calculatedHeight)}},i._flagChildrenAsDirty=function(){for(var t=this.entity._children,e=0,i=t.length;e=0&&this._addedModels.splice(e,1);for(var i=0;ii||f>n||p.001}},{key:"_hasSplitAnchorsY",get:function(){return Math.abs(this._anchor.y-this._anchor.w)>.001}},{key:"aabb",get:function(){return this._image?this._image.aabb:this._text?this._text.aabb:null}},{key:"anchor",get:function(){return this._anchor},set:function(t){t instanceof _t?this._anchor.set(t.x,t.y,t.z,t.w):this._anchor.set(t[0],t[1],t[2],t[3]),this.entity._parent||this.screen?this._calculateSize(this._hasSplitAnchorsX,this._hasSplitAnchorsY):this._calculateLocalAnchors(),this._anchorDirty=!0,this.entity._dirtyLocal||this.entity._dirtifyLocal(),this.fire("set:anchor",this._anchor)}},{key:"batchGroupId",get:function(){return this._batchGroupId},set:function(t){this._batchGroupId!==t&&(this.entity.enabled&&this._batchGroupId>=0&&this.system.app.batcher.remove(Aa.ELEMENT,this.batchGroupId,this.entity),this.entity.enabled&&t>=0&&this.system.app.batcher.insert(Aa.ELEMENT,t,this.entity),t<0&&this._batchGroupId>=0&&this.enabled&&this.entity.enabled&&(this._image&&this._image._renderable.model?this.addModelToLayers(this._image._renderable.model):this._text&&this._text._model&&this.addModelToLayers(this._text._model)),this._batchGroupId=t)}},{key:"bottom",get:function(){return this._margin.y},set:function(t){this._margin.y=t;var e=this.entity.getLocalPosition(),i=this._absTop,n=this._localAnchor.y+t;this._setHeight(i-n),e.y=t+this._calculatedHeight*this._pivot.y,this.entity.setLocalPosition(e)}},{key:"calculatedWidth",get:function(){return this._calculatedWidth},set:function(t){this._setCalculatedWidth(t,!0)}},{key:"calculatedHeight",get:function(){return this._calculatedHeight},set:function(t){this._setCalculatedHeight(t,!0)}},{key:"canvasCorners",get:function(){if(!this._canvasCornersDirty||!this.screen||!this.screen.screen.screenSpace)return this._canvasCorners;for(var t=this.system.app.graphicsDevice,e=this.screenCorners,i=t.canvas.clientWidth/t.width,n=t.canvas.clientHeight/t.height,s=0;s<4;s++)this._canvasCorners[s].set(e[s].x*i,(t.height-e[s].y)*n);return this._canvasCornersDirty=!1,this._canvasCorners}},{key:"drawOrder",get:function(){return this._drawOrder},set:function(t){var e=0;this.screen&&(e=this.screen.screen.priority),t>16777215&&(t=16777215),this._drawOrder=(e<<24)+t,this.fire("set:draworder",this._drawOrder)}},{key:"height",get:function(){return this._height},set:function(t){this._height=t,this._hasSplitAnchorsY||this._setCalculatedHeight(t,!0),this.fire("set:height",this._height)}},{key:"layers",get:function(){return this._layers},set:function(t){if(this._addedModels.length)for(var e=0;e.001,r=Math.abs(e.anchor.y-e.anchor.w)>.001,o=!1;void 0!==i.margin&&(i.margin instanceof _t?e.margin.copy(i.margin):e._margin.set(i.margin[0],i.margin[1],i.margin[2],i.margin[3]),o=!0),void 0!==i.left&&(e._margin.x=i.left,o=!0),void 0!==i.bottom&&(e._margin.y=i.bottom,o=!0),void 0!==i.right&&(e._margin.z=i.right,o=!0),void 0!==i.top&&(e._margin.w=i.top,o=!0),o&&(e.margin=e._margin);var h=!1;void 0===i.width||a?a&&(h=!0):e.width=i.width,void 0===i.height||r?r&&(h=!0):e.height=i.height,h&&(e.anchor=e.anchor),void 0!==i.enabled&&(e.enabled=i.enabled),void 0!==i.useInput&&(e.useInput=i.useInput),e.batchGroupId=void 0===i.batchGroupId||null===i.batchGroupId?-1:i.batchGroupId,i.layers&&Array.isArray(i.layers)&&(e.layers=i.layers.slice(0)),void 0!==i.type&&(e.type=i.type),e.type===Ef?(void 0!==i.rect&&(e.rect=i.rect),void 0!==i.color&&((s=i.color)instanceof lt||(s=new lt(i.color[0],i.color[1],i.color[2])),e.color=s),void 0!==i.opacity&&(e.opacity=i.opacity),void 0!==i.textureAsset&&(e.textureAsset=i.textureAsset),i.texture&&(e.texture=i.texture),void 0!==i.spriteAsset&&(e.spriteAsset=i.spriteAsset),i.sprite&&(e.sprite=i.sprite),void 0!==i.spriteFrame&&(e.spriteFrame=i.spriteFrame),void 0!==i.pixelsPerUnit&&null!==i.pixelsPerUnit&&(e.pixelsPerUnit=i.pixelsPerUnit),void 0!==i.materialAsset&&(e.materialAsset=i.materialAsset),i.material&&(e.material=i.material),void 0!==i.mask&&(e.mask=i.mask)):e.type===Pf&&(void 0!==i.autoWidth&&(e.autoWidth=i.autoWidth),void 0!==i.autoHeight&&(e.autoHeight=i.autoHeight),void 0!==i.rtlReorder&&(e.rtlReorder=i.rtlReorder),void 0!==i.unicodeConverter&&(e.unicodeConverter=i.unicodeConverter),null!==i.text&&void 0!==i.text?e.text=i.text:null!==i.key&&void 0!==i.key&&(e.key=i.key),void 0!==i.color&&((s=i.color)instanceof lt||(s=new lt(s[0],s[1],s[2])),e.color=s),void 0!==i.opacity&&(e.opacity=i.opacity),void 0!==i.spacing&&(e.spacing=i.spacing),void 0!==i.fontSize&&(e.fontSize=i.fontSize,i.lineHeight||(e.lineHeight=i.fontSize)),void 0!==i.lineHeight&&(e.lineHeight=i.lineHeight),void 0!==i.maxLines&&(e.maxLines=i.maxLines),void 0!==i.wrapLines&&(e.wrapLines=i.wrapLines),void 0!==i.minFontSize&&(e.minFontSize=i.minFontSize),void 0!==i.maxFontSize&&(e.maxFontSize=i.maxFontSize),i.autoFitWidth&&(e.autoFitWidth=i.autoFitWidth),i.autoFitHeight&&(e.autoFitHeight=i.autoFitHeight),void 0!==i.fontAsset&&(e.fontAsset=i.fontAsset),void 0!==i.font&&(e.font=i.font),void 0!==i.alignment&&(e.alignment=i.alignment),void 0!==i.outlineColor&&(e.outlineColor=i.outlineColor),void 0!==i.outlineThickness&&(e.outlineThickness=i.outlineThickness),void 0!==i.shadowColor&&(e.shadowColor=i.shadowColor),void 0!==i.shadowOffset&&(e.shadowOffset=i.shadowOffset),void 0!==i.enableMarkup&&(e.enableMarkup=i.enableMarkup));var l=e._parseUpToScreen();l.screen&&e._updateScreen(l.screen),t.prototype.initializeComponentData.call(this,e,i,n),e._beingInitialized=!1,e.type===Ef&&e._image._meshDirty&&e._image._updateMesh(e._image.mesh)},i.onRemoveComponent=function(t,e){e.onRemove()},i.cloneComponent=function(t,e){var i=t.element,n={enabled:i.enabled,width:i.width,height:i.height,anchor:i.anchor.clone(),pivot:i.pivot.clone(),margin:i.margin.clone(),alignment:i.alignment&&i.alignment.clone()||i.alignment,autoWidth:i.autoWidth,autoHeight:i.autoHeight,type:i.type,rect:i.rect&&i.rect.clone()||i.rect,rtlReorder:i.rtlReorder,unicodeConverter:i.unicodeConverter,materialAsset:i.materialAsset,material:i.material,color:i.color&&i.color.clone()||i.color,opacity:i.opacity,textureAsset:i.textureAsset,texture:i.texture,spriteAsset:i.spriteAsset,sprite:i.sprite,spriteFrame:i.spriteFrame,pixelsPerUnit:i.pixelsPerUnit,spacing:i.spacing,lineHeight:i.lineHeight,wrapLines:i.wrapLines,layers:i.layers,fontSize:i.fontSize,minFontSize:i.minFontSize,maxFontSize:i.maxFontSize,autoFitWidth:i.autoFitWidth,autoFitHeight:i.autoFitHeight,maxLines:i.maxLines,fontAsset:i.fontAsset,font:i.font,useInput:i.useInput,batchGroupId:i.batchGroupId,mask:i.mask,outlineColor:i.outlineColor&&i.outlineColor.clone()||i.outlineColor,outlineThickness:i.outlineThickness,shadowColor:i.shadowColor&&i.shadowColor.clone()||i.shadowColor,shadowOffset:i.shadowOffset&&i.shadowOffset.clone()||i.shadowOffset,enableMarkup:i.enableMarkup};return void 0!==i.key&&null!==i.key?n.key=i.key:n.text=i.text,this.addComponent(e,n)},i.getTextElementMaterial=function(t,e){return t?e?(this.defaultScreenSpaceTextMaterial||(this.defaultScreenSpaceTextMaterial=new os,this.defaultScreenSpaceTextMaterial.name="defaultScreenSpaceTextMaterial",this.defaultScreenSpaceTextMaterial.msdfMap=this._defaultTexture,this.defaultScreenSpaceTextMaterial.useLighting=!1,this.defaultScreenSpaceTextMaterial.useGammaTonemap=!1,this.defaultScreenSpaceTextMaterial.useFog=!1,this.defaultScreenSpaceTextMaterial.useSkybox=!1,this.defaultScreenSpaceTextMaterial.diffuse.set(0,0,0),this.defaultScreenSpaceTextMaterial.emissive.set(1,1,1),this.defaultScreenSpaceTextMaterial.opacity=.5,this.defaultScreenSpaceTextMaterial.blendType=4,this.defaultScreenSpaceTextMaterial.depthWrite=!1,this.defaultScreenSpaceTextMaterial.depthTest=!1,this.defaultScreenSpaceTextMaterial.emissiveVertexColor=!0,this.defaultScreenSpaceTextMaterial.update()),this.defaultScreenSpaceTextMaterial):(this.defaultScreenSpaceBitmapTextMaterial||(this.defaultScreenSpaceBitmapTextMaterial=new os,this.defaultScreenSpaceBitmapTextMaterial.name="defaultScreenSpaceBitmapTextMaterial",this.defaultScreenSpaceBitmapTextMaterial.emissive.set(.5,.5,.5),this.defaultScreenSpaceBitmapTextMaterial.emissiveMap=this._defaultTexture,this.defaultScreenSpaceBitmapTextMaterial.emissiveTint=!0,this.defaultScreenSpaceBitmapTextMaterial.opacity=.5,this.defaultScreenSpaceBitmapTextMaterial.opacityMap=this._defaultTexture,this.defaultScreenSpaceBitmapTextMaterial.opacityMapChannel="a",this.defaultScreenSpaceBitmapTextMaterial.useLighting=!1,this.defaultScreenSpaceBitmapTextMaterial.useGammaTonemap=!1,this.defaultScreenSpaceBitmapTextMaterial.useFog=!1,this.defaultScreenSpaceBitmapTextMaterial.useSkybox=!1,this.defaultScreenSpaceBitmapTextMaterial.diffuse.set(0,0,0),this.defaultScreenSpaceBitmapTextMaterial.blendType=4,this.defaultScreenSpaceBitmapTextMaterial.depthWrite=!1,this.defaultScreenSpaceBitmapTextMaterial.depthTest=!1,this.defaultScreenSpaceBitmapTextMaterial.emissiveVertexColor=!0,this.defaultScreenSpaceBitmapTextMaterial.update()),this.defaultScreenSpaceBitmapTextMaterial):e?(this.defaultTextMaterial||(this.defaultTextMaterial=new os,this.defaultTextMaterial.name="defaultTextMaterial",this.defaultTextMaterial.msdfMap=this._defaultTexture,this.defaultTextMaterial.useLighting=!1,this.defaultTextMaterial.useGammaTonemap=!1,this.defaultTextMaterial.useFog=!1,this.defaultTextMaterial.useSkybox=!1,this.defaultTextMaterial.diffuse.set(0,0,0),this.defaultTextMaterial.emissive.set(1,1,1),this.defaultTextMaterial.opacity=.5,this.defaultTextMaterial.blendType=4,this.defaultTextMaterial.depthWrite=!1,this.defaultTextMaterial.emissiveVertexColor=!0,this.defaultTextMaterial.update()),this.defaultTextMaterial):(this.defaultBitmapTextMaterial||(this.defaultBitmapTextMaterial=new os,this.defaultBitmapTextMaterial.name="defaultBitmapTextMaterial",this.defaultBitmapTextMaterial.emissive.set(.5,.5,.5),this.defaultBitmapTextMaterial.emissiveTint=!0,this.defaultBitmapTextMaterial.emissiveMap=this._defaultTexture,this.defaultBitmapTextMaterial.opacity=.5,this.defaultBitmapTextMaterial.opacityMap=this._defaultTexture,this.defaultBitmapTextMaterial.opacityMapChannel="a",this.defaultBitmapTextMaterial.useLighting=!1,this.defaultBitmapTextMaterial.useGammaTonemap=!1,this.defaultBitmapTextMaterial.useFog=!1,this.defaultBitmapTextMaterial.useSkybox=!1,this.defaultBitmapTextMaterial.diffuse.set(0,0,0),this.defaultBitmapTextMaterial.blendType=4,this.defaultBitmapTextMaterial.depthWrite=!1,this.defaultBitmapTextMaterial.emissiveVertexColor=!0,this.defaultBitmapTextMaterial.update()),this.defaultBitmapTextMaterial)},i._createBaseImageMaterial=function(){var t=new os;return t.diffuse.set(0,0,0),t.emissive.set(.5,.5,.5),t.emissiveMap=this._defaultTexture,t.emissiveTint=!0,t.opacityMap=this._defaultTexture,t.opacityMapChannel="a",t.opacityTint=!0,t.opacity=0,t.useLighting=!1,t.useGammaTonemap=!1,t.useFog=!1,t.useSkybox=!1,t.blendType=4,t.depthWrite=!1,t},i.getImageElementMaterial=function(t,e,i,n){return t?e?i?(this.defaultScreenSpaceImageMask9SlicedMaterial||(this.defaultScreenSpaceImageMask9SlicedMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImageMask9SlicedMaterial.name="defaultScreenSpaceImageMask9SlicedMaterial",this.defaultScreenSpaceImageMask9SlicedMaterial.nineSlicedMode=1,this.defaultScreenSpaceImageMask9SlicedMaterial.depthTest=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.alphaTest=1,this.defaultScreenSpaceImageMask9SlicedMaterial.redWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.greenWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.blueWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.alphaWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMask9SlicedMaterial)),this.defaultScreenSpaceImageMask9SlicedMaterial):n?(this.defaultScreenSpaceImageMask9TiledMaterial||(this.defaultScreenSpaceImageMask9TiledMaterial=this.defaultScreenSpaceImage9TiledMaterial.clone(),this.defaultScreenSpaceImageMask9TiledMaterial.name="defaultScreenSpaceImageMask9TiledMaterial",this.defaultScreenSpaceImageMask9TiledMaterial.nineSlicedMode=2,this.defaultScreenSpaceImageMask9TiledMaterial.depthTest=!1,this.defaultScreenSpaceImageMask9TiledMaterial.alphaTest=1,this.defaultScreenSpaceImageMask9TiledMaterial.redWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.greenWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.blueWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.alphaWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMask9TiledMaterial)),this.defaultScreenSpaceImageMask9TiledMaterial):(this.defaultScreenSpaceImageMaskMaterial||(this.defaultScreenSpaceImageMaskMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImageMaskMaterial.name="defaultScreenSpaceImageMaskMaterial",this.defaultScreenSpaceImageMaskMaterial.depthTest=!1,this.defaultScreenSpaceImageMaskMaterial.alphaTest=1,this.defaultScreenSpaceImageMaskMaterial.redWrite=!1,this.defaultScreenSpaceImageMaskMaterial.greenWrite=!1,this.defaultScreenSpaceImageMaskMaterial.blueWrite=!1,this.defaultScreenSpaceImageMaskMaterial.alphaWrite=!1,this.defaultScreenSpaceImageMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMaskMaterial)),this.defaultScreenSpaceImageMaskMaterial):i?(this.defaultScreenSpaceImage9SlicedMaterial||(this.defaultScreenSpaceImage9SlicedMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImage9SlicedMaterial.name="defaultScreenSpaceImage9SlicedMaterial",this.defaultScreenSpaceImage9SlicedMaterial.nineSlicedMode=1,this.defaultScreenSpaceImage9SlicedMaterial.depthTest=!1,this.defaultScreenSpaceImage9SlicedMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImage9SlicedMaterial)),this.defaultScreenSpaceImage9SlicedMaterial):n?(this.defaultScreenSpaceImage9TiledMaterial||(this.defaultScreenSpaceImage9TiledMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImage9TiledMaterial.name="defaultScreenSpaceImage9TiledMaterial",this.defaultScreenSpaceImage9TiledMaterial.nineSlicedMode=2,this.defaultScreenSpaceImage9TiledMaterial.depthTest=!1,this.defaultScreenSpaceImage9TiledMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImage9TiledMaterial)),this.defaultScreenSpaceImage9TiledMaterial):(this.defaultScreenSpaceImageMaterial||(this.defaultScreenSpaceImageMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImageMaterial.name="defaultScreenSpaceImageMaterial",this.defaultScreenSpaceImageMaterial.depthTest=!1,this.defaultScreenSpaceImageMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMaterial)),this.defaultScreenSpaceImageMaterial):e?i?(this.defaultImage9SlicedMaskMaterial||(this.defaultImage9SlicedMaskMaterial=this._createBaseImageMaterial(),this.defaultImage9SlicedMaskMaterial.name="defaultImage9SlicedMaskMaterial",this.defaultImage9SlicedMaskMaterial.nineSlicedMode=1,this.defaultImage9SlicedMaskMaterial.alphaTest=1,this.defaultImage9SlicedMaskMaterial.redWrite=!1,this.defaultImage9SlicedMaskMaterial.greenWrite=!1,this.defaultImage9SlicedMaskMaterial.blueWrite=!1,this.defaultImage9SlicedMaskMaterial.alphaWrite=!1,this.defaultImage9SlicedMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9SlicedMaskMaterial)),this.defaultImage9SlicedMaskMaterial):n?(this.defaultImage9TiledMaskMaterial||(this.defaultImage9TiledMaskMaterial=this._createBaseImageMaterial(),this.defaultImage9TiledMaskMaterial.name="defaultImage9TiledMaskMaterial",this.defaultImage9TiledMaskMaterial.nineSlicedMode=2,this.defaultImage9TiledMaskMaterial.alphaTest=1,this.defaultImage9TiledMaskMaterial.redWrite=!1,this.defaultImage9TiledMaskMaterial.greenWrite=!1,this.defaultImage9TiledMaskMaterial.blueWrite=!1,this.defaultImage9TiledMaskMaterial.alphaWrite=!1,this.defaultImage9TiledMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9TiledMaskMaterial)),this.defaultImage9TiledMaskMaterial):(this.defaultImageMaskMaterial||(this.defaultImageMaskMaterial=this._createBaseImageMaterial(),this.defaultImageMaskMaterial.name="defaultImageMaskMaterial",this.defaultImageMaskMaterial.alphaTest=1,this.defaultImageMaskMaterial.redWrite=!1,this.defaultImageMaskMaterial.greenWrite=!1,this.defaultImageMaskMaterial.blueWrite=!1,this.defaultImageMaskMaterial.alphaWrite=!1,this.defaultImageMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultImageMaskMaterial)),this.defaultImageMaskMaterial):i?(this.defaultImage9SlicedMaterial||(this.defaultImage9SlicedMaterial=this._createBaseImageMaterial(),this.defaultImage9SlicedMaterial.name="defaultImage9SlicedMaterial",this.defaultImage9SlicedMaterial.nineSlicedMode=1,this.defaultImage9SlicedMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9SlicedMaterial)),this.defaultImage9SlicedMaterial):n?(this.defaultImage9TiledMaterial||(this.defaultImage9TiledMaterial=this._createBaseImageMaterial(),this.defaultImage9TiledMaterial.name="defaultImage9TiledMaterial",this.defaultImage9TiledMaterial.nineSlicedMode=2,this.defaultImage9TiledMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9TiledMaterial)),this.defaultImage9TiledMaterial):(this.defaultImageMaterial||(this.defaultImageMaterial=this._createBaseImageMaterial(),this.defaultImageMaterial.name="defaultImageMaterial",this.defaultImageMaterial.update(),this.defaultImageMaterials.push(this.defaultImageMaterial)),this.defaultImageMaterial)},i.registerUnicodeConverter=function(t){this._unicodeConverter=t},i.registerRtlReorder=function(t){this._rtlReorder=t},i.getUnicodeConverter=function(){return this._unicodeConverter},i.getRtlReorder=function(){return this._rtlReorder},e}(ud);du._buildAccessors($p.prototype,tm);var im="free",nm="limited",sm="locked",am=["angularDampingX","angularDampingY","angularDampingZ","angularEquilibriumX","angularEquilibriumY","angularEquilibriumZ","angularLimitsX","angularLimitsY","angularLimitsZ","angularMotionX","angularMotionY","angularMotionZ","angularSpringX","angularSpringY","angularSpringZ","angularStiffnessX","angularStiffnessY","angularStiffnessZ","breakForce","enableCollision","enabled","entityA","entityB","linearDampingX","linearDampingY","linearDampingZ","linearEquilibriumX","linearEquilibriumY","linearEquilibriumZ","linearLimitsX","linearLimitsY","linearLimitsZ","linearMotionX","linearMotionY","linearMotionZ","linearSpringX","linearSpringY","linearSpringZ","linearStiffnessX","linearStiffnessY","linearStiffnessZ"],rm=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._constraint=null,n._entityA=null,n._entityB=null,n._breakForce=34e37,n._enableCollision=!0,n._linearMotionX=sm,n._linearLimitsX=new mt(0,0),n._linearSpringX=!1,n._linearStiffnessX=0,n._linearDampingX=1,n._linearEquilibriumX=0,n._linearMotionY=sm,n._linearLimitsY=new mt(0,0),n._linearSpringY=!1,n._linearStiffnessY=0,n._linearDampingY=1,n._linearEquilibriumY=0,n._linearMotionZ=sm,n._linearLimitsZ=new mt(0,0),n._linearSpringZ=!1,n._linearStiffnessZ=0,n._linearDampingZ=1,n._linearEquilibriumZ=0,n._angularMotionX=sm,n._angularLimitsX=new mt(0,0),n._angularSpringX=!1,n._angularStiffnessX=0,n._angularDampingX=1,n._angularEquilibriumX=0,n._angularMotionY=sm,n._angularLimitsY=new mt(0,0),n._angularSpringY=!1,n._angularStiffnessY=0,n._angularDampingY=1,n._angularEquilibriumY=0,n._angularMotionZ=sm,n._angularLimitsZ=new mt(0,0),n._angularSpringZ=!1,n._angularEquilibriumZ=0,n._angularDampingZ=1,n._angularStiffnessZ=0,n.on("set_enabled",n._onSetEnabled,Z(n)),n}Y(e,t);var i=e.prototype;return i._convertTransform=function(t,e){var i=t.getTranslation(),n=new wt;n.setFromMat4(t);var s=new Ammo.btVector3(i.x,i.y,i.z),a=new Ammo.btQuaternion(n.x,n.y,n.z,n.w);e.setOrigin(s),e.setRotation(a),Ammo.destroy(s),Ammo.destroy(a)},i._updateAngularLimits=function(){var t=this._constraint;if(t){var e,i,n,s,a,r;this._angularMotionX===nm?(e=this._angularLimitsX.x*rt.DEG_TO_RAD,s=this._angularLimitsX.y*rt.DEG_TO_RAD):this._angularMotionX===im?(e=1,s=0):e=s=0,this._angularMotionY===nm?(i=this._angularLimitsY.x*rt.DEG_TO_RAD,a=this._angularLimitsY.y*rt.DEG_TO_RAD):this._angularMotionY===im?(i=1,a=0):i=a=0,this._angularMotionZ===nm?(n=this._angularLimitsZ.x*rt.DEG_TO_RAD,r=this._angularLimitsZ.y*rt.DEG_TO_RAD):this._angularMotionZ===im?(n=1,r=0):n=r=0;var o=new Ammo.btVector3(e,i,n);t.setAngularLowerLimit(o),o.setValue(s,a,r),t.setAngularUpperLimit(o),Ammo.destroy(o)}},i._updateLinearLimits=function(){var t=this._constraint;if(t){var e,i,n,s,a,r;this._linearMotionX===nm?(e=this._linearLimitsX.x,s=this._linearLimitsX.y):this._linearMotionX===im?(e=1,s=0):e=s=0,this._linearMotionY===nm?(i=this._linearLimitsY.x,a=this._linearLimitsY.y):this._linearMotionY===im?(i=1,a=0):i=a=0,this._linearMotionZ===nm?(n=this._linearLimitsZ.x,r=this._linearLimitsZ.y):this._linearMotionZ===im?(n=1,r=0):n=r=0;var o=new Ammo.btVector3(e,i,n);t.setLinearLowerLimit(o),o.setValue(s,a,r),t.setLinearUpperLimit(o),Ammo.destroy(o)}},i._createConstraint=function(){if(this._entityA&&this._entityA.rigidbody){this._destroyConstraint();var t=new St,e=this._entityA.rigidbody.body;e.activate();var i=this.entity.getWorldTransform(),n=this._entityA.getWorldTransform().clone().invert();t.mul2(n,i);var s=new Ammo.btTransform;if(this._convertTransform(t,s),this._entityB&&this._entityB.rigidbody){var a=this._entityB.rigidbody.body;a.activate();var r=this._entityB.getWorldTransform().clone().invert();t.mul2(r,i);var o=new Ammo.btTransform;this._convertTransform(t,o),this._constraint=new Ammo.btGeneric6DofSpringConstraint(e,a,s,o,!this._enableCollision),Ammo.destroy(o)}else this._constraint=new Ammo.btGeneric6DofSpringConstraint(e,s,!this._enableCollision);Ammo.destroy(s);for(var h=["X","Y","Z","X","Y","Z"],l=0;l<6;l++){var c=l<3?"_linear":"_angular";this._constraint.enableSpring(l,this[c+"Spring"+h[l]]),this._constraint.setDamping(l,this[c+"Damping"+h[l]]),this._constraint.setEquilibriumPoint(l,this[c+"Equilibrium"+h[l]]),this._constraint.setStiffness(l,this[c+"Stiffness"+h[l]])}this._constraint.setBreakingImpulseThreshold(this._breakForce),this._updateLinearLimits(),this._updateAngularLimits(),this.system.app.systems.rigidbody.dynamicsWorld.addConstraint(this._constraint,!this._enableCollision)}},i._destroyConstraint=function(){this._constraint&&(this.system.app.systems.rigidbody.dynamicsWorld.removeConstraint(this._constraint),Ammo.destroy(this._constraint),this._constraint=null)},i.initFromData=function(t){for(var e,i=Q(am);!(e=i()).done;){var n=e.value;t.hasOwnProperty(n)&&(t[n]instanceof mt?this["_"+n].copy(t[n]):this["_"+n]=t[n])}this._createConstraint()},i.onEnable=function(){this._createConstraint()},i.onDisable=function(){this._destroyConstraint()},i._onSetEnabled=function(t,e,i){},i._onBeforeRemove=function(){this.fire("remove")},q(e,[{key:"entityA",get:function(){return this._entityA},set:function(t){this._destroyConstraint(),this._entityA=t,this._createConstraint()}},{key:"entityB",get:function(){return this._entityB},set:function(t){this._destroyConstraint(),this._entityB=t,this._createConstraint()}},{key:"breakForce",get:function(){return this._breakForce},set:function(t){this._constraint&&this._breakForce!==t&&(this._constraint.setBreakingImpulseThreshold(t),this._breakForce=t)}},{key:"enableCollision",get:function(){return this._enableCollision},set:function(t){this._destroyConstraint(),this._enableCollision=t,this._createConstraint()}},{key:"angularLimitsX",get:function(){return this._angularLimitsX},set:function(t){this._angularLimitsX.equals(t)||(this._angularLimitsX.copy(t),this._updateAngularLimits())}},{key:"angularMotionX",get:function(){return this._angularMotionX},set:function(t){this._angularMotionX!==t&&(this._angularMotionX=t,this._updateAngularLimits())}},{key:"angularLimitsY",get:function(){return this._angularLimitsY},set:function(t){this._angularLimitsY.equals(t)||(this._angularLimitsY.copy(t),this._updateAngularLimits())}},{key:"angularMotionY",get:function(){return this._angularMotionY},set:function(t){this._angularMotionY!==t&&(this._angularMotionY=t,this._updateAngularLimits())}},{key:"angularLimitsZ",get:function(){return this._angularLimitsZ},set:function(t){this._angularLimitsZ.equals(t)||(this._angularLimitsZ.copy(t),this._updateAngularLimits())}},{key:"angularMotionZ",get:function(){return this._angularMotionZ},set:function(t){this._angularMotionZ!==t&&(this._angularMotionZ=t,this._updateAngularLimits())}},{key:"linearLimitsX",get:function(){return this._linearLimitsX},set:function(t){this._linearLimitsX.equals(t)||(this._linearLimitsX.copy(t),this._updateLinearLimits())}},{key:"linearMotionX",get:function(){return this._linearMotionX},set:function(t){this._linearMotionX!==t&&(this._linearMotionX=t,this._updateLinearLimits())}},{key:"linearLimitsY",get:function(){return this._linearLimitsY},set:function(t){this._linearLimitsY.equals(t)||(this._linearLimitsY.copy(t),this._updateLinearLimits())}},{key:"linearMotionY",get:function(){return this._linearMotionY},set:function(t){this._linearMotionY!==t&&(this._linearMotionY=t,this._updateLinearLimits())}},{key:"linearLimitsZ",get:function(){return this._linearLimitsZ},set:function(t){this._linearLimitsZ.equals(t)||(this._linearLimitsZ.copy(t),this._updateLinearLimits())}},{key:"linearMotionZ",get:function(){return this._linearMotionZ},set:function(t){this._linearMotionZ!==t&&(this._linearMotionZ=t,this._updateLinearLimits())}}]),e}(du),om={Damping:"setDamping",Equilibrium:"setEquilibriumPoint",Spring:"enableSpring",Stiffness:"setStiffness"};["linear","angular"].forEach((function(t){["Damping","Equilibrium","Spring","Stiffness"].forEach((function(e){["X","Y","Z"].forEach((function(i){var n=t+e+i,s="_"+n,a="linear"===t?0:3;"Y"===i&&(a+=1),"Z"===i&&(a+=2),Object.defineProperty(rm.prototype,n,{get:function(){return this[s]},set:function(t){this[s]!==t&&(this[s]=t,this._constraint[om[e]](a,t))}})}))}))}));var hm=function(){this.enabled=!0},lm=["enabled"],cm=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="joint",i.app=e,i.ComponentType=rm,i.DataType=hm,i.schema=lm,i}return Y(e,t),e.prototype.initializeComponentData=function(t,e,i){t.initFromData(e)},e}(ud);du._buildAccessors(rm.prototype,lm);var um=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._minWidth=0,n._minHeight=0,n._maxWidth=null,n._maxHeight=null,n._fitWidthProportion=0,n._fitHeightProportion=0,n._excludeFromLayout=!1,n}return Y(e,t),q(e,[{key:"minWidth",get:function(){return this._minWidth},set:function(t){t!==this._minWidth&&(this._minWidth=t,this.fire("resize"))}},{key:"minHeight",get:function(){return this._minHeight},set:function(t){t!==this._minHeight&&(this._minHeight=t,this.fire("resize"))}},{key:"maxWidth",get:function(){return this._maxWidth},set:function(t){t!==this._maxWidth&&(this._maxWidth=t,this.fire("resize"))}},{key:"maxHeight",get:function(){return this._maxHeight},set:function(t){t!==this._maxHeight&&(this._maxHeight=t,this.fire("resize"))}},{key:"fitWidthProportion",get:function(){return this._fitWidthProportion},set:function(t){t!==this._fitWidthProportion&&(this._fitWidthProportion=t,this.fire("resize"))}},{key:"fitHeightProportion",get:function(){return this._fitHeightProportion},set:function(t){t!==this._fitHeightProportion&&(this._fitHeightProportion=t,this.fire("resize"))}},{key:"excludeFromLayout",get:function(){return this._excludeFromLayout},set:function(t){t!==this._excludeFromLayout&&(this._excludeFromLayout=t,this.fire("resize"))}}]),e}(du),dm=function(){this.enabled=!0},fm=["enabled"],pm=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="layoutchild",i.ComponentType=um,i.DataType=dm,i.schema=fm,i}Y(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){void 0!==i.enabled&&(e.enabled=i.enabled),void 0!==i.minWidth&&(e.minWidth=i.minWidth),void 0!==i.minHeight&&(e.minHeight=i.minHeight),void 0!==i.maxWidth&&(e.maxWidth=i.maxWidth),void 0!==i.maxHeight&&(e.maxHeight=i.maxHeight),void 0!==i.fitWidthProportion&&(e.fitWidthProportion=i.fitWidthProportion),void 0!==i.fitHeightProportion&&(e.fitHeightProportion=i.fitHeightProportion),void 0!==i.excludeFromLayout&&(e.excludeFromLayout=i.excludeFromLayout),t.prototype.initializeComponentData.call(this,e,i,n)},i.cloneComponent=function(t,e){var i=t.layoutchild;return this.addComponent(e,{enabled:i.enabled,minWidth:i.minWidth,minHeight:i.minHeight,maxWidth:i.maxWidth,maxHeight:i.maxHeight,fitWidthProportion:i.fitWidthProportion,fitHeightProportion:i.fitHeightProportion,excludeFromLayout:i.excludeFromLayout})},e}(ud);du._buildAccessors(um.prototype,fm);var mm={0:{axis:"x",size:"width",calculatedSize:"calculatedWidth",minSize:"minWidth",maxSize:"maxWidth",fitting:"widthFitting",fittingProportion:"fitWidthProportion"},1:{axis:"y",size:"height",calculatedSize:"calculatedHeight",minSize:"minHeight",maxSize:"maxHeight",fitting:"heightFitting",fittingProportion:"fitHeightProportion"}},_m={0:1,1:0},gm={minWidth:0,minHeight:0,maxWidth:Number.POSITIVE_INFINITY,maxHeight:Number.POSITIVE_INFINITY,width:null,height:null,fitWidthProportion:0,fitHeightProportion:0},vm="NONE",ym="APPLY_STRETCHING",xm="APPLY_SHRINKING",bm=new mt;function Sm(t){var e,i=mm[t],n=mm[_m[t]];function s(t,e){return-e[i.size]*t.pivot[i.axis]}function a(t,e){return-e[n.size]*t.pivot[n.axis]}function r(t,e){return e[i.size]*(1-t.pivot[i.axis])}function o(t){var e=t.entity.layoutchild;return!e||!e.enabled||!e.excludeFromLayout}function h(t,e,i){switch(t){case 0:return vm;case 1:return e=i?xm:vm;case 3:return e=0;--n)i[e[n]]=i[e[n+1]]+t[e[n]];return i}return function(t,d){t=t.filter(o),e=d,bm.x=e.containerSize.x-e.padding.x-e.padding.z,bm.y=e.containerSize.y-e.padding.y-e.padding.w,function(t){for(var e=0;e0&&(a+=e.spacing[i.axis]);var h=s[o][i.size];a+=h,!r&&a>bm[i.axis]&&0!==n[n.length-1].length&&(a=h,n.push([])),n[n.length-1].push(t[o]),r&&a>bm[i.axis]&&o!==t.length-1&&(a=0,n.push([]))}return n}(t)),m=function(t,i){for(var s=[],a=[],r=0;ro.largestSize[n.size]&&(o.largestElement=o[d],o.largestSize=f)}s.push(o.largestElement),a.push(o.largestSize)}var p=l(a,n),m=h(e[n.fitting],p,bm[n.axis]);m===ym?c(a,p,n):m===xm&&u(a,p,n);for(var _=0;_0;){var e=this._reflowQueue.slice();this._reflowQueue.length=0,e.sort((function(t,e){return t.entity.graphDepth-e.entity.graphDepth}));for(var i=0;i=100){console.warn("Max reflow iterations limit reached, bailing.");break}}},i._onRemoveComponent=function(t,e){e.onRemove()},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("postUpdate",this._onPostUpdate,this)},e}(ud);du._buildAccessors(Cm.prototype,Pm);var Im=[],Lm=[],Dm=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._cookieAsset=null,n._cookieAssetId=null,n._cookieAssetAdd=!1,n._cookieMatrix=null,n}Y(e,t);var i=e.prototype;return i.addLightToLayers=function(){for(var t=0;t=0&&this.enabled&&this.entity.enabled&&t.addLight(this)},i.onLayerRemoved=function(t){this.layers.indexOf(t.id)>=0&&t.removeLight(this)},i.refreshProperties=function(){for(var t=0;t=0&&t.batcher.insert(Aa.MODEL,this.batchGroupId,this.entity)},i.onDisable=function(){var t=this.system.app,e=t.scene;e.off("set:layers",this.onLayersChanged,this),e.layers&&(e.layers.off("add",this.onLayerAdded,this),e.layers.off("remove",this.onLayerRemoved,this)),this._batchGroupId>=0&&t.batcher.remove(Aa.MODEL,this.batchGroupId,this.entity),this._model&&this.removeModelFromLayers()},i.hide=function(){if(this._model)for(var t=this._model.meshInstances,e=0,i=t.length;e=0&&e.remove(Aa.MODEL,this.batchGroupId,this.entity),this.entity.enabled&&t>=0&&e.insert(Aa.MODEL,t,this.entity),t<0&&this._batchGroupId>=0&&this.enabled&&this.entity.enabled&&this.addModelToLayers(),this._batchGroupId=t}}},{key:"materialAsset",get:function(){return this._materialAsset},set:function(t){var e=t;t instanceof Oh&&(e=t.id);var i=this.system.app.assets;if(e!==this._materialAsset){if(this._materialAsset){i.off("add:"+this._materialAsset,this._onMaterialAssetAdd,this);var n=i.get(this._materialAsset);n&&this._unbindMaterialAsset(n)}if(this._materialAsset=e,this._materialAsset){var s=i.get(this._materialAsset);s?this._bindMaterialAsset(s):(this._setMaterial(this.system.defaultMaterial),i.on("add:"+this._materialAsset,this._onMaterialAssetAdd,this))}else this._setMaterial(this.system.defaultMaterial)}}},{key:"material",get:function(){return this._material},set:function(t){this._material!==t&&(this.materialAsset=null,this._setMaterial(t))}},{key:"mapping",get:function(){return this._mapping},set:function(t){if("asset"===this._type&&(this._unsetMaterialEvents(),t||(t={}),this._mapping=t,this._model))for(var e=this._model.meshInstances,i=this.asset?this.system.app.assets.get(this.asset):null,n=i?i.data.mapping:null,s=null,a=0,r=e.length;a=0&&t.batcher.insert(Aa.RENDER,this.batchGroupId,this.entity)},i.onDisable=function(){var t=this.system.app,e=t.scene;e.off("set:layers",this.onLayersChanged,this),e.layers&&(e.layers.off("add",this.onLayerAdded,this),e.layers.off("remove",this.onLayerRemoved,this)),this._batchGroupId>=0&&t.batcher.remove(Aa.RENDER,this.batchGroupId,this.entity),this.removeFromLayers()},i.hide=function(){if(this._meshInstances)for(var t=0;t=0&&e.remove(Aa.RENDER,this.batchGroupId,this.entity),this.entity.enabled&&t>=0&&e.insert(Aa.RENDER,t,this.entity),t<0&&this._batchGroupId>=0&&this.enabled&&this.entity.enabled&&this.addToLayers(),this._batchGroupId=t}}},{key:"material",get:function(){return this._material},set:function(t){if(this._material!==t&&(this._material=t,this._meshInstances&&"asset"!==this._type))for(var e=0;et.length){for(var e=t.length;e=P)&&this.calcSpawnPosition(i,n,s,a,M);var k=R>0&&R0&&(1===u.emitterShape?(Qm.copy(Jm).mulScalar(2).sub(ft.ONE).normalize(),i_.add(Qm.mulScalar(u.initialVelocity))):i_.add(ft.FORWARD.mulScalar(u.initialVelocity))),e_.x+=(n_.x-e_.x)*Jm.x,e_.y+=(n_.y-e_.y)*Jm.y,e_.z+=(n_.z-e_.z)*Jm.z,_+=(g-_)*Jm.y,L=(L+1e4*C%1*(v-L))*Ym,D=1e3*C%1*(x-y),u.meshInstance.node&&(u.localSpace?(i_.x/=Wm.x,i_.y/=Wm.y,i_.z/=Wm.z):Km.transformPoint(i_,i_)),u.localSpace?(Zm.transformPoint(e_,e_),i_.add(e_).add(a_)):(i_.add(e_.mul(Wm)),i_.add(a_.mul(Wm))),h_.copy(i_),r_.copy(t_).add(i_.mulScalar(r)),o_.copy(r_),i[4*M]=o_.x,i[4*M+1]=o_.y,i[4*M+2]=o_.z,i[4*M+3]+=_*r,u.wrap&&u.wrapBounds&&(u.localSpace||o_.sub(a),o_.x=d_(o_.x,u.wrapBounds.x)-.5*u.wrapBounds.x,o_.y=d_(o_.y,u.wrapBounds.y)-.5*u.wrapBounds.y,o_.z=d_(o_.z,u.wrapBounds.z)-.5*u.wrapBounds.z,u.localSpace||o_.add(a)),u.sort>0&&(1===u.sort?(l_.copy(o_).sub(S),u.particleDistance[M]=-(l_.x*l_.x+l_.y*l_.y+l_.z*l_.z)):2===u.sort?u.particleDistance[M]=R:3===u.sort&&(u.particleDistance[M]=-R))),o?R<0&&(i[4*M+3+2*u.numParticlesPot*4]=-1):(R>=P&&(R-=Math.max(P,(u.numParticles-1)*E),i[4*M+3+2*u.numParticlesPot*4]=u.loop?1:-1),R<0&&u.loop&&(i[4*M+3+2*u.numParticlesPot*4]=1)),i[4*M+3+2*u.numParticlesPot*4]<0&&(k=!1),i[4*M+3+4*u.numParticlesPot]=R;for(var O=0;O0&&u.camera){for(var V=u.useMesh?6:4,W=u.particleDistance,G=0;Gt.maxTextureSize&&(this.numParticles=t.maxTextureSize),k_("rate",1),k_("rate2",this.rate),k_("lifetime",50),k_("emitterExtents",new ft(0,0,0)),k_("emitterExtentsInner",new ft(0,0,0)),k_("emitterRadius",0),k_("emitterRadiusInner",0),k_("emitterShape",0),k_("initialVelocity",1),k_("wrap",!1),k_("localSpace",!1),k_("screenSpace",!1),k_("wrapBounds",null),k_("colorMap",this.defaultParamTexture),k_("normalMap",null),k_("loop",!0),k_("preWarm",!1),k_("sort",0),k_("mode",0),k_("scene",null),k_("lighting",!1),k_("halfLambert",!1),k_("intensity",1),k_("stretch",0),k_("alignToMotion",!1),k_("depthSoftening",0),k_("mesh",null),k_("particleNormal",new ft(0,1,0)),k_("orientation",0),k_("depthWrite",!1),k_("noFog",!1),k_("blendType",2),k_("node",null),k_("startAngle",0),k_("startAngle2",this.startAngle),k_("animTilesX",1),k_("animTilesY",1),k_("animStartFrame",0),k_("animNumFrames",1),k_("animNumAnimations",1),k_("animIndex",0),k_("randomizeAnimIndex",!1),k_("animSpeed",1),k_("animLoop",!0),this._gpuUpdater=new v_(this,i),this._cpuUpdater=new p_(this),this.constantLightCube=i.scope.resolve("lightCube[0]"),this.emitterPosUniform=new Float32Array(3),this.wrapBoundsUniform=new Float32Array(3),this.emitterScaleUniform=new Float32Array([1,1,1]),k_("colorGraph",C_),k_("colorGraph2",this.colorGraph),k_("scaleGraph",A_),k_("scaleGraph2",this.scaleGraph),k_("alphaGraph",A_),k_("alphaGraph2",this.alphaGraph),k_("localVelocityGraph",M_),k_("localVelocityGraph2",this.localVelocityGraph),k_("velocityGraph",M_),k_("velocityGraph2",this.velocityGraph),k_("rotationSpeedGraph",T_),k_("rotationSpeedGraph2",this.rotationSpeedGraph),k_("radialSpeedGraph",T_),k_("radialSpeedGraph2",this.radialSpeedGraph),this.lightCube=new Float32Array(18),this.lightCubeDir=new Array(6),this.lightCubeDir[0]=new ft(-1,0,0),this.lightCubeDir[1]=new ft(1,0,0),this.lightCubeDir[2]=new ft(0,-1,0),this.lightCubeDir[3]=new ft(0,1,0),this.lightCubeDir[4]=new ft(0,0,-1),this.lightCubeDir[5]=new ft(0,0,1),this.animTilesParams=new Float32Array(2),this.animParams=new Float32Array(4),this.animIndexParams=new Float32Array(2),this.internalTex0=null,this.internalTex1=null,this.internalTex2=null,this.colorParam=null,this.vbToSort=null,this.vbOld=null,this.particleDistance=null,this.camera=null,this.swapTex=!1,this.useMesh=!0,this.useCpu=!t.supportsGpuParticles,this.pack8=!0,this.localBounds=new Pt,this.worldBoundsNoTrail=new Pt,this.worldBoundsTrail=[new Pt,new Pt],this.worldBounds=new Pt,this.worldBoundsSize=new ft,this.prevWorldBoundsSize=new ft,this.prevWorldBoundsCenter=new ft,this.prevEmitterExtents=this.emitterExtents,this.prevEmitterRadius=this.emitterRadius,this.worldBoundsMul=new ft,this.worldBoundsAdd=new ft,this.timeToSwitchBounds=0,this.shaderParticleUpdateRespawn=null,this.shaderParticleUpdateNoRespawn=null,this.shaderParticleUpdateOnStop=null,this.numParticleVerts=0,this.numParticleIndices=0,this.material=null,this.meshInstance=null,this.drawOrder=0,this.seed=Math.random(),this.fixedTimeStep=1/60,this.maxSubSteps=10,this.simTime=0,this.simTimeTotal=0,this.beenReset=!1,this._layer=null,this.rebuild()}var e=t.prototype;return e.onChangeCamera=function(){this.regenShader(),this.resetMaterial()},e.calculateBoundsMad=function(){this.worldBoundsMul.x=1/this.worldBoundsSize.x,this.worldBoundsMul.y=1/this.worldBoundsSize.y,this.worldBoundsMul.z=1/this.worldBoundsSize.z,this.worldBoundsAdd.copy(this.worldBounds.center).mul(this.worldBoundsMul).mulScalar(-1),this.worldBoundsAdd.x+=.5,this.worldBoundsAdd.y+=.5,this.worldBoundsAdd.z+=.5},e.calculateWorldBounds=function(){if(this.node){if(this.prevWorldBoundsSize.copy(this.worldBoundsSize),this.prevWorldBoundsCenter.copy(this.worldBounds.center),!this.useCpu){(0===this.emitterShape?!this.emitterExtents.equals(this.prevEmitterExtents):!(this.emitterRadius===this.prevEmitterRadius))&&this.calculateLocalBounds()}var t=this.node.getWorldTransform();this.localSpace?this.worldBoundsNoTrail.copy(this.localBounds):this.worldBoundsNoTrail.setFromTransformedAabb(this.localBounds,t),this.worldBoundsTrail[0].add(this.worldBoundsNoTrail),this.worldBoundsTrail[1].add(this.worldBoundsNoTrail);var e=this.simTimeTotal;e>=this.timeToSwitchBounds&&(this.worldBoundsTrail[0].copy(this.worldBoundsTrail[1]),this.worldBoundsTrail[1].copy(this.worldBoundsNoTrail),this.timeToSwitchBounds=e+this.lifetime),this.worldBounds.copy(this.worldBoundsTrail[0]),this.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2),this.localSpace?(this.meshInstance.aabb.setFromTransformedAabb(this.worldBounds,t),this.meshInstance.mesh.aabb.setFromTransformedAabb(this.worldBounds,t)):(this.meshInstance.aabb.copy(this.worldBounds),this.meshInstance.mesh.aabb.copy(this.worldBounds)),this.meshInstance._aabbVer=1-this.meshInstance._aabbVer,this.pack8&&this.calculateBoundsMad()}},e.resetWorldBounds=function(){this.node&&(this.worldBoundsNoTrail.setFromTransformedAabb(this.localBounds,this.localSpace?St.IDENTITY:this.node.getWorldTransform()),this.worldBoundsTrail[0].copy(this.worldBoundsNoTrail),this.worldBoundsTrail[1].copy(this.worldBoundsNoTrail),this.worldBounds.copy(this.worldBoundsTrail[0]),this.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2),this.prevWorldBoundsSize.copy(this.worldBoundsSize),this.prevWorldBoundsCenter.copy(this.worldBounds.center),this.simTimeTotal=0,this.timeToSwitchBounds=0)},e.calculateLocalBounds=function(){for(var t,e,i,n=Number.MAX_VALUE,s=Number.MAX_VALUE,a=Number.MAX_VALUE,r=-Number.MAX_VALUE,o=-Number.MAX_VALUE,h=-Number.MAX_VALUE,l=0,c=0,u=this.lifetime/this.precision,d=[this.qVelocity,this.qVelocity2],f=[this.qLocalVelocity,this.qLocalVelocity2],p=[0,0],m=[0,0],_=[0,0],g=[0,0],v=[0,0],y=0;y0||t.maxVertexTextures<=1||t.fragmentUniformsCount<64||t.forceCpuParticles||!t.extTextureFloat,this._destroyResources(),this.pack8=(this.pack8||!t.textureFloatRenderable)&&!this.useCpu,E_=this.useCpu||this.pack8?4:2,this.useMesh=!1,this.mesh)&&(this.numParticles*this.mesh.vertexBuffer.numVertices>65535||(this.useMesh=!0));this.numParticlesPot=rt.nextPowerOfTwo(this.numParticles),this.rebuildGraphs(),this.calculateLocalBounds(),this.resetWorldBounds(),this.node&&(this.worldBounds.setFromTransformedAabb(this.localBounds,this.localSpace?St.IDENTITY:this.node.getWorldTransform()),this.worldBoundsTrail[0].copy(this.worldBounds),this.worldBoundsTrail[1].copy(this.worldBounds),this.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2),this.prevWorldBoundsSize.copy(this.worldBoundsSize),this.prevWorldBoundsCenter.copy(this.worldBounds.center),this.pack8&&this.calculateBoundsMad()),this.vbToSort=new Array(this.numParticles);for(var e=0;e=1&&(this.animTilesX>1||this.animTilesY>1)&&(this.colorMap&&this.colorMap!==this.defaultParamTexture||this.normalMap)},e.rebuildGraphs=function(){var t=this.precision,e=this.graphicsDevice;this.qLocalVelocity=this.localVelocityGraph.quantize(t),this.qVelocity=this.velocityGraph.quantize(t),this.qColor=this.colorGraph.quantizeClamped(t,0,1),this.qRotSpeed=this.rotationSpeedGraph.quantize(t),this.qScale=this.scaleGraph.quantize(t),this.qAlpha=this.alphaGraph.quantize(t),this.qRadialSpeed=this.radialSpeedGraph.quantize(t),this.qLocalVelocity2=this.localVelocityGraph2.quantize(t),this.qVelocity2=this.velocityGraph2.quantize(t),this.qColor2=this.colorGraph2.quantizeClamped(t,0,1),this.qRotSpeed2=this.rotationSpeedGraph2.quantize(t),this.qScale2=this.scaleGraph2.quantize(t),this.qAlpha2=this.alphaGraph2.quantize(t),this.qRadialSpeed2=this.radialSpeedGraph2.quantize(t);for(var i=0;i0&&t.setParameter("softening",1/(this.depthSoftening*this.depthSoftening*100)),this.stretch>0&&(t.cull=0),this._compParticleFaceParams()},e._compParticleFaceParams=function(){var t,e;if(0===this.orientation)t=new Float32Array([1,0,0]),e=new Float32Array([0,0,1]);else{var i;if(1===this.orientation)i=this.particleNormal.normalize();else i=(null===this.node?St.IDENTITY:this.node.getWorldTransform()).transformVector(this.particleNormal).normalize();var n=new ft(1,0,0);1===Math.abs(n.dot(i))&&n.set(0,0,1);var s=(new ft).cross(i,n).normalize();n.cross(s,i).normalize(),t=new Float32Array([n.x,n.y,n.z]),e=new Float32Array([s.x,s.y,s.z])}this.material.setParameter("faceTangent",t),this.material.setParameter("faceBinorm",e)},e._allocate=function(t){var e=t*this.numParticleVerts,i=t*this.numParticleIndices;if(void 0===this.vertexBuffer||this.vertexBuffer.getNumVertices()!==e){if(this.useCpu){var n=[{semantic:Ae,components:4,type:6},{semantic:Me,components:4,type:6},{semantic:Ce,components:4,type:6},{semantic:Ee,components:1,type:6},{semantic:Pe,components:this.useMesh?4:2,type:6}],s=new si(this.graphicsDevice,n);this.vertexBuffer=new ii(this.graphicsDevice,s,e,1),this.indexBuffer=new ws(this.graphicsDevice,1,i)}else{var a=[{semantic:Ae,components:4,type:6}];this.useMesh&&a.push({semantic:Me,components:2,type:6});var r=new si(this.graphicsDevice,a);this.vertexBuffer=new ii(this.graphicsDevice,r,e,1),this.indexBuffer=new ws(this.graphicsDevice,1,i)}var o,h,l,c=new Float32Array(this.vertexBuffer.lock());if(this.useMesh){h=(o=new Float32Array(this.mesh.vertexBuffer.lock())).length/this.mesh.vertexBuffer.numVertices;for(var u=0;uthis.endTime&&(this.onFinished&&this.onFinished(),this.meshInstance.visible=!1),this.meshInstance&&(this.meshInstance.drawOrder=this.drawOrder)},e._destroyResources=function(){this.particleTexIN&&(this.particleTexIN.destroy(),this.particleTexIN=null),this.particleTexOUT&&(this.particleTexOUT.destroy(),this.particleTexOUT=null),this.particleTexStart&&this.particleTexStart.destroy&&(this.particleTexStart.destroy(),this.particleTexStart=null),this.rtParticleTexIN&&(this.rtParticleTexIN.destroy(),this.rtParticleTexIN=null),this.rtParticleTexOUT&&(this.rtParticleTexOUT.destroy(),this.rtParticleTexOUT=null),this.internalTex0&&(this.internalTex0.destroy(),this.internalTex0=null),this.internalTex1&&(this.internalTex1.destroy(),this.internalTex1=null),this.internalTex2&&(this.internalTex2.destroy(),this.internalTex2=null),this.internalTex3&&(this.internalTex3.destroy(),this.internalTex3=null),this.colorParam&&(this.colorParam.destroy(),this.colorParam=null),this.vertexBuffer&&(this.vertexBuffer.destroy(),this.vertexBuffer=void 0),this.indexBuffer&&(this.indexBuffer.destroy(),this.indexBuffer=void 0),this.material&&(this.material.destroy(),this.material=null)},e.destroy=function(){this.camera=null,this._destroyResources()},q(t,[{key:"defaultParamTexture",get:function(){var t=this;return z_.get(this.graphicsDevice,(function(){for(var e=16,i=new Float32Array(1024),n=0;n=0))continue;n=this.system.app.assets.get(n)}n&&!n.resource&&this.system.app.assets.load(n)}}if(!this.emitter){var s=t.mesh;s instanceof oa||(s=null),this.emitter=new V_(this.system.app.graphicsDevice,{numParticles:t.numParticles,emitterExtents:t.emitterExtents,emitterExtentsInner:t.emitterExtentsInner,emitterRadius:t.emitterRadius,emitterRadiusInner:t.emitterRadiusInner,emitterShape:t.emitterShape,initialVelocity:t.initialVelocity,wrap:t.wrap,localSpace:t.localSpace,screenSpace:t.screenSpace,wrapBounds:t.wrapBounds,lifetime:t.lifetime,rate:t.rate,rate2:t.rate2,orientation:t.orientation,particleNormal:t.particleNormal,animTilesX:t.animTilesX,animTilesY:t.animTilesY,animStartFrame:t.animStartFrame,animNumFrames:t.animNumFrames,animNumAnimations:t.animNumAnimations,animIndex:t.animIndex,randomizeAnimIndex:t.randomizeAnimIndex,animSpeed:t.animSpeed,animLoop:t.animLoop,startAngle:t.startAngle,startAngle2:t.startAngle2,scaleGraph:t.scaleGraph,scaleGraph2:t.scaleGraph2,colorGraph:t.colorGraph,colorGraph2:t.colorGraph2,alphaGraph:t.alphaGraph,alphaGraph2:t.alphaGraph2,localVelocityGraph:t.localVelocityGraph,localVelocityGraph2:t.localVelocityGraph2,velocityGraph:t.velocityGraph,velocityGraph2:t.velocityGraph2,rotationSpeedGraph:t.rotationSpeedGraph,rotationSpeedGraph2:t.rotationSpeedGraph2,radialSpeedGraph:t.radialSpeedGraph,radialSpeedGraph2:t.radialSpeedGraph2,colorMap:t.colorMap,normalMap:t.normalMap,loop:t.loop,preWarm:t.preWarm,sort:t.sort,stretch:t.stretch,alignToMotion:t.alignToMotion,lighting:t.lighting,halfLambert:t.halfLambert,intensity:t.intensity,depthSoftening:t.depthSoftening,scene:this.system.app.scene,mesh:s,depthWrite:t.depthWrite,noFog:t.noFog,node:this.entity,blendType:t.blendType}),this.emitter.meshInstance.node=this.entity,this.emitter.drawOrder=this.drawOrder,t.autoPlay||(this.pause(),this.emitter.meshInstance.visible=!1)}this.emitter.colorMap&&this.addMeshInstanceToLayers(),this.system.app.scene.on("set:layers",this.onLayersChanged,this),this.system.app.scene.layers&&(this.system.app.scene.layers.on("add",this.onLayerAdded,this),this.system.app.scene.layers.on("remove",this.onLayerRemoved,this)),this.enabled&&this.entity.enabled&&t.depthSoftening&&this._requestDepth()},i.onDisable=function(){this.system.app.scene.off("set:layers",this.onLayersChanged,this),this.system.app.scene.layers&&(this.system.app.scene.layers.off("add",this.onLayerAdded,this),this.system.app.scene.layers.off("remove",this.onLayerRemoved,this)),this.emitter&&(this.removeMeshInstanceFromLayers(),this.data.depthSoftening&&this._releaseDepth(),this.emitter.camera=null)},i.onBeforeRemove=function(){this.enabled&&(this.enabled=!1),this.emitter&&(this.emitter.destroy(),this.emitter=null);for(var t=0;th.fixedTimeStep&&(e=Math.floor(h.simTime/h.fixedTimeStep),h.simTime-=e*h.fixedTimeStep),e){e=Math.min(e,h.maxSubSteps);for(var v=0;vthis._pool.length)for(var e=this._pool.length;e=this._pool.length&&this._resize(2*this._pool.length),this._pool[this._count++]},e.freeAll=function(){this._count=0},t}(),sg=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._angularDamping=0,n._angularFactor=new ft(1,1,1),n._angularVelocity=new ft,n._body=null,n._friction=.5,n._group=2,n._linearDamping=0,n._linearFactor=new ft(1,1,1),n._linearVelocity=new ft,n._mask=ap,n._mass=1,n._restitution=0,n._rollingFriction=0,n._simulationEnabled=!1,n._type=ep,n}Y(e,t),e.onLibraryLoaded=function(){"undefined"==typeof Ammo||Z_||(Z_=new Ammo.btTransform,$_=new Ammo.btVector3,Q_=new Ammo.btVector3,J_=new Ammo.btQuaternion,tg=new Ammo.btVector3(0,0,0))};var i=e.prototype;return i.createBody=function(){var t,e=this.entity;if(e.collision&&(t=e.collision.shape,e.trigger&&(e.trigger.destroy(),delete e.trigger)),t){this._body&&this.system.onRemove(e,this);var i=this._type===ip?this._mass:0;this._getEntityTransform(Z_);var n=this.system.createBody(i,t,Z_);if(n.setRestitution(this._restitution),n.setFriction(this._friction),n.setRollingFriction(this._rollingFriction),n.setDamping(this._linearDamping,this._angularDamping),this._type===ip){var s=this._linearFactor;$_.setValue(s.x,s.y,s.z),n.setLinearFactor($_);var a=this._angularFactor;$_.setValue(a.x,a.y,a.z),n.setAngularFactor($_)}else this._type===np&&(n.setCollisionFlags(2|n.getCollisionFlags()),n.setActivationState(4));n.entity=e,this.body=n,this.enabled&&e.enabled&&this.enableSimulation()}},i.isActive=function(){return!!this._body&&this._body.isActive()},i.activate=function(){this._body&&this._body.activate()},i.enableSimulation=function(){var t=this.entity;if(t.collision&&t.collision.enabled&&!this._simulationEnabled){var e=this._body;if(e){switch(this.system.addBody(e,this._group,this._mask),this._type){case ip:this.system._dynamic.push(this),e.forceActivationState(1),this.syncEntityToBody();break;case np:this.system._kinematic.push(this),e.forceActivationState(4);break;case ep:e.forceActivationState(1),this.syncEntityToBody()}"compound"===t.collision.type&&this.system._compounds.push(t.collision),e.activate(),this._simulationEnabled=!0}}},i.disableSimulation=function(){var t=this._body;if(t&&this._simulationEnabled){var e=this.system,i=e._compounds.indexOf(this.entity.collision);i>-1&&e._compounds.splice(i,1),(i=e._dynamic.indexOf(this))>-1&&e._dynamic.splice(i,1),(i=e._kinematic.indexOf(this))>-1&&e._kinematic.splice(i,1),e.removeBody(t),t.forceActivationState(5),this._simulationEnabled=!1}},i.applyForce=function(){var t,e,i,n,s,a;switch(arguments.length){case 1:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z;break;case 2:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z,n=arguments[1].x,s=arguments[1].y,a=arguments[1].z;break;case 3:t=arguments[0],e=arguments[1],i=arguments[2];break;case 6:t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3],s=arguments[4],a=arguments[5]}var r=this._body;r&&(r.activate(),$_.setValue(t,e,i),void 0!==n?(Q_.setValue(n,s,a),r.applyForce($_,Q_)):r.applyForce($_,tg))},i.applyTorque=function(){var t,e,i;switch(arguments.length){case 1:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z;break;case 3:t=arguments[0],e=arguments[1],i=arguments[2];break;default:return}var n=this._body;n&&(n.activate(),$_.setValue(t,e,i),n.applyTorque($_))},i.applyImpulse=function(){var t,e,i,n,s,a;switch(arguments.length){case 1:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z;break;case 2:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z,n=arguments[1].x,s=arguments[1].y,a=arguments[1].z;break;case 3:t=arguments[0],e=arguments[1],i=arguments[2];break;case 6:t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3],s=arguments[4],a=arguments[5];break;default:return}var r=this._body;r&&(r.activate(),$_.setValue(t,e,i),void 0!==n?(Q_.setValue(n,s,a),r.applyImpulse($_,Q_)):r.applyImpulse($_,tg))},i.applyTorqueImpulse=function(){var t,e,i;switch(arguments.length){case 1:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z;break;case 3:t=arguments[0],e=arguments[1],i=arguments[2];break;default:return}var n=this._body;n&&(n.activate(),$_.setValue(t,e,i),n.applyTorqueImpulse($_))},i.isStatic=function(){return this._type===ep},i.isStaticOrKinematic=function(){return this._type===ep||this._type===np},i.isKinematic=function(){return this._type===np},i._getEntityTransform=function(t){var e=this.entity,i=e.getPosition(),n=e.getRotation();$_.setValue(i.x,i.y,i.z),J_.setValue(n.x,n.y,n.z,n.w),t.setOrigin($_),t.setRotation(J_)},i.syncEntityToBody=function(){var t=this._body;if(t){if(this._getEntityTransform(Z_),t.setWorldTransform(Z_),this._type===np){var e=t.getMotionState();e&&e.setWorldTransform(Z_)}t.activate()}},i._updateDynamic=function(){var t=this._body;if(t.isActive()){var e=t.getMotionState();if(e){e.getWorldTransform(Z_);var i=Z_.getOrigin(),n=Z_.getRotation();this.entity.setPosition(i.x(),i.y(),i.z()),this.entity.setRotation(n.x(),n.y(),n.z(),n.w())}}},i._updateKinematic=function(){var t=this._body.getMotionState();t&&(this._getEntityTransform(Z_),t.setWorldTransform(Z_))},i.teleport=function(){arguments.length<3?(arguments[0]&&this.entity.setPosition(arguments[0]),arguments[1]&&(arguments[1]instanceof wt?this.entity.setRotation(arguments[1]):this.entity.setEulerAngles(arguments[1]))):(6===arguments.length&&this.entity.setEulerAngles(arguments[3],arguments[4],arguments[5]),this.entity.setPosition(arguments[0],arguments[1],arguments[2])),this.syncEntityToBody()},i.onEnable=function(){this._body||this.createBody(),this.enableSimulation()},i.onDisable=function(){this.disableSimulation()},q(e,[{key:"angularDamping",get:function(){return this._angularDamping},set:function(t){this._angularDamping!==t&&(this._angularDamping=t,this._body&&this._body.setDamping(this._linearDamping,t))}},{key:"angularFactor",get:function(){return this._angularFactor},set:function(t){this._angularFactor.equals(t)||(this._angularFactor.copy(t),this._body&&this._type===ip&&($_.setValue(t.x,t.y,t.z),this._body.setAngularFactor($_)))}},{key:"angularVelocity",get:function(){if(this._body&&this._type===ip){var t=this._body.getAngularVelocity();this._angularVelocity.set(t.x(),t.y(),t.z())}return this._angularVelocity},set:function(t){this._body&&this._type===ip&&(this._body.activate(),$_.setValue(t.x,t.y,t.z),this._body.setAngularVelocity($_),this._angularVelocity.copy(t))}},{key:"body",get:function(){return this._body},set:function(t){this._body!==t&&(this._body=t,t&&this._simulationEnabled&&t.activate())}},{key:"friction",get:function(){return this._friction},set:function(t){this._friction!==t&&(this._friction=t,this._body&&this._body.setFriction(t))}},{key:"group",get:function(){return this._group},set:function(t){this._group!==t&&(this._group=t,this.enabled&&this.entity.enabled&&(this.disableSimulation(),this.enableSimulation()))}},{key:"linearDamping",get:function(){return this._linearDamping},set:function(t){this._linearDamping!==t&&(this._linearDamping=t,this._body&&this._body.setDamping(t,this._angularDamping))}},{key:"linearFactor",get:function(){return this._linearFactor},set:function(t){this._linearFactor.equals(t)||(this._linearFactor.copy(t),this._body&&this._type===ip&&($_.setValue(t.x,t.y,t.z),this._body.setLinearFactor($_)))}},{key:"linearVelocity",get:function(){if(this._body&&this._type===ip){var t=this._body.getLinearVelocity();this._linearVelocity.set(t.x(),t.y(),t.z())}return this._linearVelocity},set:function(t){this._body&&this._type===ip&&(this._body.activate(),$_.setValue(t.x,t.y,t.z),this._body.setLinearVelocity($_),this._linearVelocity.copy(t))}},{key:"mask",get:function(){return this._mask},set:function(t){this._mask!==t&&(this._mask=t,this.enabled&&this.entity.enabled&&(this.disableSimulation(),this.enableSimulation()))}},{key:"mass",get:function(){return this._mass},set:function(t){if(this._mass!==t&&(this._mass=t,this._body&&this._type===ip)){var e=this.enabled&&this.entity.enabled;e&&this.disableSimulation(),this._body.getCollisionShape().calculateLocalInertia(t,$_),this._body.setMassProps(t,$_),this._body.updateInertiaTensor(),e&&this.enableSimulation()}}},{key:"restitution",get:function(){return this._restitution},set:function(t){this._restitution!==t&&(this._restitution=t,this._body&&this._body.setRestitution(t))}},{key:"rollingFriction",get:function(){return this._rollingFriction},set:function(t){this._rollingFriction!==t&&(this._rollingFriction=t,this._body&&this._body.setRollingFriction(t))}},{key:"type",get:function(){return this._type},set:function(t){if(this._type!==t){switch(this._type=t,this.disableSimulation(),t){case ip:this._group=1,this._mask=sp;break;case np:this._group=4,this._mask=sp;break;case ep:default:this._group=2,this._mask=ap}this.createBody()}}}]),e}(du),ag=function(){this.enabled=!0},rg=function(t,e,i){this.entity=t,this.point=e,this.normal=i},og=function(t,e,i){0===arguments.length?(this.a=null,this.b=null,this.impulse=0,this.localPointA=new ft,this.localPointB=new ft,this.pointA=new ft,this.pointB=new ft,this.normal=new ft):(this.a=t,this.b=e,this.impulse=i.impulse,this.localPointA=i.localPoint,this.localPointB=i.localPointOther,this.pointA=i.point,this.pointB=i.pointOther,this.normal=i.normal)},hg=function(t,e,i,n,s,a){void 0===t&&(t=new ft),void 0===e&&(e=new ft),void 0===i&&(i=new ft),void 0===n&&(n=new ft),void 0===s&&(s=new ft),void 0===a&&(a=0),this.localPoint=t,this.localPointOther=e,this.point=i,this.pointOther=n,this.normal=s,this.impulse=a},lg=function(t,e){this.other=t,this.contacts=e},cg=["enabled"],ug=function(t){function e(e){var i;return(i=t.call(this,e)||this).maxSubSteps=10,i.fixedTimeStep=1/60,i.gravity=new ft(0,-9.81,0),i._dynamic=[],i._kinematic=[],i._triggers=[],i._compounds=[],i.id="rigidbody",i._stats=e.stats.frame,i.ComponentType=sg,i.DataType=ag,i.contactPointPool=null,i.contactResultPool=null,i.singleContactResultPool=null,i.schema=cg,i.collisions={},i.frameCollisions={},i.on("beforeremove",i.onBeforeRemove,Z(i)),i.on("remove",i.onRemove,Z(i)),i}Y(e,t);var i=e.prototype;return i.onLibraryLoaded=function(){if("undefined"!=typeof Ammo){if(this.collisionConfiguration=new Ammo.btDefaultCollisionConfiguration,this.dispatcher=new Ammo.btCollisionDispatcher(this.collisionConfiguration),this.overlappingPairCache=new Ammo.btDbvtBroadphase,this.solver=new Ammo.btSequentialImpulseConstraintSolver,this.dynamicsWorld=new Ammo.btDiscreteDynamicsWorld(this.dispatcher,this.overlappingPairCache,this.solver,this.collisionConfiguration),this.dynamicsWorld.setInternalTickCallback){var t=Ammo.addFunction(this._checkForCollisions.bind(this),"vif");this.dynamicsWorld.setInternalTickCallback(t)}eg=new Ammo.btVector3,ig=new Ammo.btVector3,sg.onLibraryLoaded(),this.contactPointPool=new ng(hg,1),this.contactResultPool=new ng(lg,1),this.singleContactResultPool=new ng(og,1),this.app.systems.on("update",this.onUpdate,this)}else this.app.systems.off("update",this.onUpdate,this)},i.initializeComponentData=function(e,i,n){for(var s=0,a=["mass","linearDamping","angularDamping","linearFactor","angularFactor","friction","rollingFriction","restitution","type","group","mask"];s2){var h=arguments[2];h(i)}}}return Ammo.destroy(n),i},i.raycastAll=function(t,e){var i=[];eg.setValue(t.x,t.y,t.z),ig.setValue(e.x,e.y,e.z);var n=new Ammo.AllHitsRayResultCallback(eg,ig);if(this.dynamicsWorld.rayTest(eg,ig,n),n.hasHit())for(var s=n.get_m_collisionObjects(),a=n.get_m_hitPointWorld(),r=n.get_m_hitNormalWorld(),o=s.size(),h=0;h0)if(4&d||4&f){var v=c.collision&&(c.collision.hasEvent("triggerenter")||c.collision.hasEvent("triggerleave")),y=u.collision&&(u.collision.hasEvent("triggerenter")||u.collision.hasEvent("triggerleave")),x=c.rigidbody&&(c.rigidbody.hasEvent("triggerenter")||c.rigidbody.hasEvent("triggerleave")),b=u.rigidbody&&(u.rigidbody.hasEvent("triggerenter")||u.rigidbody.hasEvent("triggerleave"));v&&(!(g=this._storeCollision(c,u))||4&f||c.collision.fire("triggerenter",u)),y&&(!(g=this._storeCollision(u,c))||4&d||u.collision.fire("triggerenter",c)),x&&(g||(g=this._storeCollision(u,c)),g&&c.rigidbody.fire("triggerenter",u)),b&&(g||(g=this._storeCollision(c,u)),g&&u.rigidbody.fire("triggerenter",c))}else{var S=this._hasContactEvent(c),w=this._hasContactEvent(u),T=this.hasEvent("contact");if(T||S||w){for(var A=0;A=0&&i!==t.element.drawOrder&&this.system.app.batcher.markGroupDirty(t.element._batchGroupId)}t.particlesystem&&(t.particlesystem.drawOrder=e++);for(var n=t.children,s=0;s255&&(t=255),this._priority=t}}]),e}(du),_g=function(){this.enabled=!0},gg=["enabled"],vg=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="screen",i.ComponentType=mg,i.DataType=_g,i.schema=gg,i.windowResolution=new mt,i._drawOrderSyncQueue=new H,i.app.graphicsDevice.on("resizecanvas",i._onResize,Z(i)),i.app.systems.on("update",i._onUpdate,Z(i)),i.on("beforeremove",i.onRemoveComponent,Z(i)),i}Y(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){void 0!==i.priority&&(e.priority=i.priority),void 0!==i.screenSpace&&(e.screenSpace=i.screenSpace),e.cull=e.screenSpace,void 0!==i.scaleMode&&(e.scaleMode=i.scaleMode),void 0!==i.scaleBlend&&(e.scaleBlend=i.scaleBlend),void 0!==i.resolution&&(i.resolution instanceof mt?e._resolution.copy(i.resolution):e._resolution.set(i.resolution[0],i.resolution[1]),e.resolution=e._resolution),void 0!==i.referenceResolution&&(i.referenceResolution instanceof mt?e._referenceResolution.copy(i.referenceResolution):e._referenceResolution.set(i.referenceResolution[0],i.referenceResolution[1]),e.referenceResolution=e._referenceResolution),e.syncDrawOrder(),t.prototype.initializeComponentData.call(this,e,i,n)},i.destroy=function(){t.prototype.destroy.call(this),this.app.graphicsDevice.off("resizecanvas",this._onResize,this),this.app.systems.off("update",this._onUpdate,this)},i._onUpdate=function(t){var e=this.store;for(var i in e)e[i].entity.screen.update&&e[i].entity.screen.update(t)},i._onResize=function(t,e){this.windowResolution.x=t,this.windowResolution.y=e},i.cloneComponent=function(t,e){var i=t.screen;return this.addComponent(e,{enabled:i.enabled,screenSpace:i.screenSpace,scaleMode:i.scaleMode,resolution:i.resolution.clone(),referenceResolution:i.referenceResolution.clone()})},i.onRemoveComponent=function(t,e){e.onRemove()},i.processDrawOrderSyncQueue=function(){for(var t=this._drawOrderSyncQueue.list(),e=0;eNumber.MAX_SAFE_INTEGER&&this._resetExecutionOrder(),t.enabled=!e.hasOwnProperty("enabled")||!!e.enabled,t.enabled&&t.entity.enabled&&this._enabledComponents.append(t),e.hasOwnProperty("order")&&e.hasOwnProperty("scripts")){t._scriptsData=e.scripts;for(var i=0;i=0&&e._onBeforeRemove(),this._removeComponentFromEnabled(e),this._components.remove(e)},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("initialize",this._onInitialize,this),this.app.systems.off("postInitialize",this._onPostInitialize,this),this.app.systems.off("update",this._onUpdate,this),this.app.systems.off("postUpdate",this._onPostUpdate,this)},e}(ud),Sg=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this).on("set_scripts",n.onSetScripts,Z(n)),n}Y(e,t);var i=e.prototype;return i.send=function(t,e){var i,n=Array.prototype.slice.call(arguments,2),s=this.entity.script.instances;if(s&&s[t]&&(i=s[t].instance[e]))return i.apply(s[t].instance,n)},i.onEnable=function(){this.data.areScriptsLoaded&&!this.system.preloading&&(this.data.initialized?this.system._enableScriptComponent(this):this.system._initializeScriptComponent(this),this.data.postInitialized||this.system._postInitializeScriptComponent(this))},i.onDisable=function(){this.system._disableScriptComponent(this)},i.onSetScripts=function(t,e,i){if(!this.system._inTools||this.runInTools){if(this._updateScriptAttributes(e,i))return;this.enabled&&this.system._disableScriptComponent(this),this.system._destroyScriptComponent(this),this.data.areScriptsLoaded=!1;var n=i.map((function(t){return t.url}));if(this._loadFromCache(n))return;this._loadScripts(n)}},i._updateScriptAttributes=function(t,e){var i=!0;if(t.length!==e.length)i=!1;else for(var n=0,s=e.length;n=0&&this.instancesWithUpdate.splice(s,1)}if(n.fixedUpdate){var a=this.instancesWithFixedUpdate.indexOf(n);a>=0&&this.instancesWithFixedUpdate.splice(a,1)}if(n.postUpdate){var r=this.instancesWithPostUpdate.indexOf(n);r>=0&&this.instancesWithPostUpdate.splice(r,1)}if(n.toolsUpdate){var o=this.instancesWithToolsUpdate.indexOf(n);o>=0&&this.instancesWithToolsUpdate.splice(o,1)}t.instances[i].instance===t[i]&&delete t[i],delete t.instances[i]}},i._postInitializeScriptComponent=function(t){this._callInstancesMethod(t,Mg),t.data.postInitialized=!0},i._updateInstances=function(t,e,i){for(var n=0,s=e.length;n0){var i=Fg.sub(kg).dot(Bg)/e,n=kg.add(Og.mulScalar(i));return Ng.copy(this._element.entity.getRotation()).invert().transformVector(n,n),n.mul(this._dragScale),n}return null},i._determineInputPosition=function(t){var e=this._app.graphicsDevice.maxPixelRatio;void 0!==t.x&&void 0!==t.y?(Lg.x=t.x*e,Lg.y=t.y*e):t.changedTouches?(Lg.x=t.changedTouches[0].x*e,Lg.y=t.changedTouches[0].y*e):console.warn("Could not determine position from input event")},i._chooseRayOriginAndDirection=function(){this._element.screen&&this._element.screen.screen.screenSpace?(kg.set(Lg.x,-Lg.y,0),Og.set(0,0,-1)):(Dg.copy(this._dragCamera.screenToWorld(Lg.x,Lg.y,1)),kg.copy(this._dragCamera.entity.getPosition()),Og.copy(Dg).sub(kg).normalize())},i._calculateDragScale=function(){var t=this._element.entity.parent,e=this._element.screen&&this._element.screen.screen,i=e&&e.screenSpace,n=i?e.scale:1,s=this._dragScale;for(s.set(n,n,n);t&&(s.mul(t.getLocalScale()),t=t.parent,!i||!t.screen););s.x=1/s.x,s.y=1/s.y,s.z=1/s.z},i._onMove=function(t){if(this._element&&this._isDragging&&this.enabled&&this._element.enabled&&this._element.entity.enabled){var e=this._screenToLocal(t);if(this._dragStartMousePosition&&e){if(this._deltaMousePosition.copy(e).sub(this._dragStartMousePosition),this._deltaHandlePosition.copy(this._dragStartHandlePosition).add(this._deltaMousePosition),this._axis){var i=this._element.entity.getLocalPosition(),n=Ug[this._axis];this._deltaHandlePosition[n]=i[n]}this._element.entity.setLocalPosition(this._deltaHandlePosition),this.fire("drag:move",this._deltaHandlePosition)}}},i.destroy=function(){this._toggleLifecycleListeners("off"),this._toggleDragListeners("off")},q(e,[{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled=t}},{key:"isDragging",get:function(){return this._isDragging}}]),e}(m),Vg="mouse",Wg="keyboard",Gg="gamepad",Hg="mousedown",Xg="mousemove",qg="mouseup",jg="mousewheel",Yg=new mt,Kg=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._viewportReference=new Mf(Z(n),"viewportEntity",{"element#gain":n._onViewportElementGain,"element#resize":n._onSetContentOrViewportSize}),n._contentReference=new Mf(Z(n),"contentEntity",{"element#gain":n._onContentElementGain,"element#lose":n._onContentElementLose,"element#resize":n._onSetContentOrViewportSize}),n._scrollbarUpdateFlags={},n._scrollbarReferences={},n._scrollbarReferences[0]=new Mf(Z(n),"horizontalScrollbarEntity",{"scrollbar#set:value":n._onSetHorizontalScrollbarValue,"scrollbar#gain":n._onHorizontalScrollbarGain}),n._scrollbarReferences[1]=new Mf(Z(n),"verticalScrollbarEntity",{"scrollbar#set:value":n._onSetVerticalScrollbarValue,"scrollbar#gain":n._onVerticalScrollbarGain}),n._prevContentSizes={},n._prevContentSizes[0]=null,n._prevContentSizes[1]=null,n._scroll=new mt,n._velocity=new ft,n._dragStartPosition=new ft,n._disabledContentInput=!1,n._disabledContentInputEntities=[],n._toggleLifecycleListeners("on",e),n._toggleElementListeners("on"),n}Y(e,t);var i=e.prototype;return i._toggleLifecycleListeners=function(t,e){this[t]("set_horizontal",this._onSetHorizontalScrollingEnabled,this),this[t]("set_vertical",this._onSetVerticalScrollingEnabled,this),e.app.systems.element[t]("add",this._onElementComponentAdd,this),e.app.systems.element[t]("beforeremove",this._onElementComponentRemove,this)},i._toggleElementListeners=function(t){if(this.entity.element){if("on"===t&&this._hasElementListeners)return;this.entity.element[t]("resize",this._onSetContentOrViewportSize,this),this.entity.element[t](jg,this._onMouseWheel,this),this._hasElementListeners="on"===t}},i._onElementComponentAdd=function(t){this.entity===t&&this._toggleElementListeners("on")},i._onElementComponentRemove=function(t){this.entity===t&&this._toggleElementListeners("off")},i._onViewportElementGain=function(){this._syncAll()},i._onContentElementGain=function(){this._destroyDragHelper(),this._contentDragHelper=new zg(this._contentReference.entity.element),this._contentDragHelper.on("drag:start",this._onContentDragStart,this),this._contentDragHelper.on("drag:end",this._onContentDragEnd,this),this._contentDragHelper.on("drag:move",this._onContentDragMove,this),this._prevContentSizes[0]=null,this._prevContentSizes[1]=null,this._syncAll()},i._onContentElementLose=function(){this._destroyDragHelper()},i._onContentDragStart=function(){this._contentReference.entity&&this.enabled&&this.entity.enabled&&this._dragStartPosition.copy(this._contentReference.entity.getLocalPosition())},i._onContentDragEnd=function(){this._prevContentDragPosition=null,this._enableContentInput()},i._onContentDragMove=function(t){if(this._contentReference.entity&&this.enabled&&this.entity.enabled&&(this._wasDragged=!0,this._setScrollFromContentPosition(t),this._setVelocityFromContentPositionDelta(t),!this._disabledContentInput)){var e=t.x-this._dragStartPosition.x,i=t.y-this._dragStartPosition.y;(Math.abs(e)>this.dragThreshold||Math.abs(i)>this.dragThreshold)&&this._disableContentInput()}},i._onSetContentOrViewportSize=function(){this._syncAll()},i._onSetHorizontalScrollbarValue=function(t){!this._scrollbarUpdateFlags[0]&&this.enabled&&this.entity.enabled&&this._onSetScroll(t,null)},i._onSetVerticalScrollbarValue=function(t){!this._scrollbarUpdateFlags[1]&&this.enabled&&this.entity.enabled&&this._onSetScroll(null,t)},i._onSetHorizontalScrollingEnabled=function(){this._syncScrollbarEnabledState(0)},i._onSetVerticalScrollingEnabled=function(){this._syncScrollbarEnabledState(1)},i._onHorizontalScrollbarGain=function(){this._syncScrollbarEnabledState(0),this._syncScrollbarPosition(0)},i._onVerticalScrollbarGain=function(){this._syncScrollbarEnabledState(1),this._syncScrollbarPosition(1)},i._onSetScroll=function(t,e,i){!1!==i&&this._velocity.set(0,0,0);var n=this._updateAxis(t,"x",0),s=this._updateAxis(e,"y",1);(n||s)&&this.fire("set:scroll",this._scroll)},i._updateAxis=function(t,e,i){var n=null!==t&&Math.abs(t-this._scroll[e])>1e-5;return(n||this._isDragging()||0===t)&&(this._scroll[e]=this._determineNewScrollValue(t,e,i),this._syncContentPosition(i),this._syncScrollbarPosition(i)),n},i._determineNewScrollValue=function(t,e,i){if(!this._getScrollingEnabled(i))return this._scroll[e];switch(this.scrollMode){case 0:return rt.clamp(t,0,this._getMaxScrollValue(i));case 1:return this._setVelocityFromOvershoot(t,e,i),t;case 2:return t;default:return console.warn("Unhandled scroll mode:"+this.scrollMode),t}},i._syncAll=function(){this._syncContentPosition(0),this._syncContentPosition(1),this._syncScrollbarPosition(0),this._syncScrollbarPosition(1),this._syncScrollbarEnabledState(0),this._syncScrollbarEnabledState(1)},i._syncContentPosition=function(t){var e=this._getAxis(t),i=this._getSign(t),n=this._contentReference.entity;if(n){var s=this._prevContentSizes[t],a=this._getContentSize(t);if(null!==s&&Math.abs(s-a)>1e-4){var r=this._getMaxOffset(t,s),o=this._getMaxOffset(t,a);this._scroll[e]=0===o?1:rt.clamp(this._scroll[e]*r/o,0,1)}var h=this._scroll[e]*this._getMaxOffset(t),l=n.getLocalPosition();l[e]=h*i,n.setLocalPosition(l),this._prevContentSizes[t]=a}},i._syncScrollbarPosition=function(t){var e=this._getAxis(t),i=this._scrollbarReferences[t].entity;i&&i.scrollbar&&(this._scrollbarUpdateFlags[t]=!0,i.scrollbar.value=this._scroll[e],i.scrollbar.handleSize=this._getScrollbarHandleSize(e,t),this._scrollbarUpdateFlags[t]=!1)},i._syncScrollbarEnabledState=function(t){var e=this._scrollbarReferences[t].entity;if(e){var i=this._getScrollingEnabled(t),n=this._getScrollbarVisibility(t);switch(n){case 0:return void(e.enabled=i);case 1:return void(e.enabled=i&&this._contentIsLargerThanViewport(t));default:console.warn("Unhandled scrollbar visibility:"+n),e.enabled=i}}},i._contentIsLargerThanViewport=function(t){return this._getContentSize(t)>this._getViewportSize(t)},i._contentPositionToScrollValue=function(t){var e=this._getMaxOffset(0),i=this._getMaxOffset(1);return Yg.x=0===e?0:t.x/e,Yg.y=0===i?0:t.y/-i,Yg},i._getMaxOffset=function(t,e){e=void 0===e?this._getContentSize(t):e;var i=this._getViewportSize(t);return e1e-4||Math.abs(this._velocity.y)>1e-4){var t=this._contentReference.entity.getLocalPosition();t.x+=this._velocity.x,t.y+=this._velocity.y,this._contentReference.entity.setLocalPosition(t),this._setScrollFromContentPosition(t)}this._velocity.x*=1-this.friction,this._velocity.y*=1-this.friction}},i._hasOvershoot=function(t,e){return Math.abs(this._toOvershoot(this.scroll[t],e))>.001},i._toOvershoot=function(t,e){var i=this._getMaxScrollValue(e);return t<0?t:t>i?t-i:0},i._setVelocityFromOvershoot=function(t,e,i){var n=this._toOvershoot(t,i)*this._getMaxOffset(i)*this._getSign(i);Math.abs(n)>0&&(this._velocity[e]=-n/(50*this.bounceAmount+1))},i._setVelocityFromContentPositionDelta=function(t){this._prevContentDragPosition?(this._velocity.sub2(t,this._prevContentDragPosition),this._prevContentDragPosition.copy(t)):(this._velocity.set(0,0,0),this._prevContentDragPosition=t.clone())},i._setScrollFromContentPosition=function(t){var e=this._contentPositionToScrollValue(t);this._isDragging()&&(e=this._applyScrollValueTension(e)),this._onSetScroll(e.x,e.y,!1)},i._applyScrollValueTension=function(t){var e=this._getMaxScrollValue(0),i=this._toOvershoot(t.x,0);return i>0?t.x=e+1*Math.log10(1+i):i<0&&(t.x=-1*Math.log10(1-i)),e=this._getMaxScrollValue(1),(i=this._toOvershoot(t.y,1))>0?t.y=e+1*Math.log10(1+i):i<0&&(t.y=-1*Math.log10(1-i)),t},i._isDragging=function(){return this._contentDragHelper&&this._contentDragHelper.isDragging},i._setScrollbarComponentsEnabled=function(t){this._scrollbarReferences[0].hasComponent("scrollbar")&&(this._scrollbarReferences[0].entity.scrollbar.enabled=t),this._scrollbarReferences[1].hasComponent("scrollbar")&&(this._scrollbarReferences[1].entity.scrollbar.enabled=t)},i._setContentDraggingEnabled=function(t){this._contentDragHelper&&(this._contentDragHelper.enabled=t)},i._onMouseWheel=function(t){if(this.useMouseWheel){var e=t.event,i=e.deltaX/this._contentReference.entity.element.calculatedWidth*this.mouseWheelSensitivity.x,n=e.deltaY/this._contentReference.entity.element.calculatedHeight*this.mouseWheelSensitivity.y,s=rt.clamp(this._scroll.x+i,0,this._getMaxScrollValue(0)),a=rt.clamp(this._scroll.y+n,0,this._getMaxScrollValue(1));this.scroll=new mt(s,a)}},i._enableContentInput=function(){for(;this._disabledContentInputEntities.length;){var t=this._disabledContentInputEntities.pop();t.element&&(t.element.useInput=!0)}this._disabledContentInput=!1},i._disableContentInput=function(){var t=this,e=function e(i){i.element&&i.element.useInput&&(t._disabledContentInputEntities.push(i),i.element.useInput=!1);for(var n=i.children,s=0,a=n.length;s1e-5&&(this.data.value=rt.clamp(i,0,1),this._updateHandlePositionAndSize(),this.fire("set:value",this.data.value))},i._onSetHandleSize=function(t,e,i){Math.abs(i-e)>1e-5&&(this.data.handleSize=rt.clamp(i,0,1),this._updateHandlePositionAndSize())},i._onSetHandleAlignment=function(){this._updateHandlePositionAndSize()},i._onSetOrientation=function(t,e,i){i!==e&&this._handleReference.hasComponent("element")&&(this._handleReference.entity.element[this._getOppositeDimension()]=0)},i._updateHandlePositionAndSize=function(){var t=this._handleReference.entity,e=t&&t.element;if(t){var i=t.getLocalPosition();i[this._getAxis()]=this._getHandlePosition(),this._handleReference.entity.setLocalPosition(i)}e&&(e[this._getDimension()]=this._getHandleLength())},i._handlePositionToScrollValue=function(t){return t*this._getSign()/this._getUsableTrackLength()},i._scrollValueToHandlePosition=function(t){return t*this._getSign()*this._getUsableTrackLength()},i._getUsableTrackLength=function(){return Math.max(this._getTrackLength()-this._getHandleLength(),.001)},i._getTrackLength=function(){return this.entity.element?0===this.orientation?this.entity.element.calculatedWidth:this.entity.element.calculatedHeight:0},i._getHandleLength=function(){return this._getTrackLength()*this.handleSize},i._getHandlePosition=function(){return this._scrollValueToHandlePosition(this.value)},i._getSign=function(){return 0===this.orientation?1:-1},i._getAxis=function(){return 0===this.orientation?"x":"y"},i._getDimension=function(){return 0===this.orientation?"width":"height"},i._getOppositeDimension=function(){return 0===this.orientation?"height":"width"},i._destroyDragHelper=function(){this._handleDragHelper&&this._handleDragHelper.destroy()},i._setHandleDraggingEnabled=function(t){this._handleDragHelper&&(this._handleDragHelper.enabled=t)},i.onEnable=function(){this._handleReference.onParentComponentEnable(),this._setHandleDraggingEnabled(!0)},i.onDisable=function(){this._setHandleDraggingEnabled(!1)},i.onRemove=function(){this._destroyDragHelper(),this._toggleLifecycleListeners("off")},e}(du),tv=function(){this.enabled=!0},ev=[{name:"enabled",type:"boolean"},{name:"orientation",type:"number"},{name:"value",type:"number"},{name:"handleSize",type:"number"},{name:"handleEntity",type:"entity"}],iv=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="scrollbar",i.ComponentType=Jg,i.DataType=tv,i.schema=ev,i.on("beforeremove",i._onRemoveComponent,Z(i)),i}Y(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){t.prototype.initializeComponentData.call(this,e,i,ev)},i._onRemoveComponent=function(t,e){e.onRemove()},e}(ud);du._buildAccessors(Jg.prototype,ev);function nv(t,e){return t%e||0}var sv=function(t){function e(e,i,n){var s;return(s=t.call(this)||this).source=null,s._manager=e,s._volume=void 0!==n.volume?rt.clamp(Number(n.volume)||0,0,1):1,s._pitch=void 0!==n.pitch?Math.max(.01,Number(n.pitch)||0):1,s._loop=!(void 0===n.loop||!n.loop),s._sound=i,s._state=2,s._suspended=!1,s._suspendEndEvent=!1,s._suspendInstanceEvents=!1,s._playWhenLoaded=!0,s._startTime=Math.max(0,Number(n.startTime)||0),s._duration=Math.max(0,Number(n.duration)||0),s._startOffset=null,s._onPlayCallback=n.onPlay,s._onPauseCallback=n.onPause,s._onResumeCallback=n.onResume,s._onStopCallback=n.onStop,s._onEndCallback=n.onEnd,Jo()?(s._startedAt=0,s._currentTime=0,s._currentOffset=0,s._inputNode=null,s._connectorNode=null,s._firstNode=null,s._lastNode=null,s._initializeNodes(),s._endedHandler=s._onEnded.bind(Z(s))):(s._isReady=!1,s._loadedMetadataHandler=s._onLoadedMetadata.bind(Z(s)),s._timeUpdateHandler=s._onTimeUpdate.bind(Z(s)),s._endedHandler=s._onEnded.bind(Z(s)),s._createSource()),s}Y(e,t);var i=e.prototype;return i._onPlay=function(){this.fire("play"),this._onPlayCallback&&this._onPlayCallback(this)},i._onPause=function(){this.fire("pause"),this._onPauseCallback&&this._onPauseCallback(this)},i._onResume=function(){this.fire("resume"),this._onResumeCallback&&this._onResumeCallback(this)},i._onStop=function(){this.fire("stop"),this._onStopCallback&&this._onStopCallback(this)},i._onEnded=function(){this._suspendEndEvent?this._suspendEndEvent=!1:(this.fire("end"),this._onEndCallback&&this._onEndCallback(this),this.stop())},i._onManagerVolumeChange=function(){this.volume=this._volume},i._onManagerSuspend=function(){0!==this._state||this._suspended||(this._suspended=!0,this.pause())},i._onManagerResume=function(){this._suspended&&(this._suspended=!1,this.resume())},i._initializeNodes=function(){this.gain=this._manager.context.createGain(),this._inputNode=this.gain,this._connectorNode=this.gain,this._connectorNode.connect(this._manager.context.destination)},i.play=function(){2!==this._state&&this.stop(),this.source||this._createSource();var t=nv(this._startOffset,this.duration);return t=nv(this._startTime+t,this._sound.duration),this._startOffset=null,this._duration?this.source.start(0,t,this._duration):this.source.start(0,t),this._startedAt=this._manager.context.currentTime,this._currentTime=0,this._currentOffset=t,this._state=0,this._playWhenLoaded=!1,this.volume=this._volume,this.loop=this._loop,this.pitch=this._pitch,this._manager.on("volumechange",this._onManagerVolumeChange,this),this._manager.on("suspend",this._onManagerSuspend,this),this._manager.on("resume",this._onManagerResume,this),this._manager.on("destroy",this._onManagerDestroy,this),this._manager.suspended&&this._onManagerSuspend(),this._suspendInstanceEvents||this._onPlay(),!0},i.pause=function(){return this._playWhenLoaded=!1,!(0!==this._state||!this.source)&&(this._updateCurrentTime(),this._state=1,this._suspendEndEvent=!0,this.source.stop(0),this.source=null,this._startOffset=null,this._suspendInstanceEvents||this._onPause(),!0)},i.resume=function(){if(1!==this._state)return!1;this.source||this._createSource();var t=this.currentTime;return null!==this._startOffset&&(t=nv(this._startOffset,this.duration),t=nv(this._startTime+t,this._sound.duration),this._startOffset=null),this._duration?this.source.start(0,t,this._duration):this.source.start(0,t),this._state=0,this._startedAt=this._manager.context.currentTime,this._currentOffset=t,this.volume=this._volume,this.loop=this._loop,this.pitch=this._pitch,this._playWhenLoaded=!1,this._suspendInstanceEvents||this._onResume(),!0},i.stop=function(){return this._playWhenLoaded=!1,!(2===this._state||!this.source)&&(this._manager.off("volumechange",this._onManagerVolumeChange,this),this._manager.off("suspend",this._onManagerSuspend,this),this._manager.off("resume",this._onManagerResume,this),this._manager.off("destroy",this._onManagerDestroy,this),this._startedAt=0,this._currentTime=0,this._currentOffset=0,this._startOffset=null,this._suspendEndEvent=!0,0===this._state&&this.source.stop(0),this.source=null,this._state=2,this._suspendInstanceEvents||this._onStop(),!0)},i.setExternalNodes=function(t,e){if(t){e||(e=t);var i=this._manager.context.destination;this._firstNode!==t&&(this._firstNode?this._connectorNode.disconnect(this._firstNode):this._connectorNode.disconnect(i),this._firstNode=t,this._connectorNode.connect(t)),this._lastNode!==e&&(this._lastNode&&this._lastNode.disconnect(i),this._lastNode=e,this._lastNode.connect(i))}else console.error("The firstNode must be a valid Audio Node")},i.clearExternalNodes=function(){var t=this._manager.context.destination;this._firstNode&&(this._connectorNode.disconnect(this._firstNode),this._firstNode=null),this._lastNode&&(this._lastNode.disconnect(t),this._lastNode=null),this._connectorNode.connect(t)},i.getExternalNodes=function(){return[this._firstNode,this._lastNode]},i._createSource=function(){if(!this._sound)return null;var t=this._manager.context;return this._sound.buffer&&(this.source=t.createBufferSource(),this.source.buffer=this._sound.buffer,this.source.connect(this._inputNode),this.source.onended=this._endedHandler,this.source.loopStart=nv(this._startTime,this.source.buffer.duration),this._duration&&(this.source.loopEnd=Math.max(this.source.loopStart,nv(this._startTime+this._duration,this.source.buffer.duration)))),this.source},i._updateCurrentTime=function(){this._currentTime=nv((this._manager.context.currentTime-this._startedAt)*this._pitch+this._currentOffset,this.duration)},i._onManagerDestroy=function(){this.source&&0===this._state&&(this.source.stop(0),this.source=null)},q(e,[{key:"currentTime",get:function(){return null!==this._startOffset?this._startOffset:1===this._state?this._currentTime:2!==this._state&&this.source?(this._updateCurrentTime(),this._currentTime):0},set:function(t){if(!(t<0))if(0===this._state){var e=this._suspendInstanceEvents;this._suspendInstanceEvents=!0,this.stop(),this._startOffset=t,this.play(),this._suspendInstanceEvents=e}else this._startOffset=t,this._currentTime=t}},{key:"duration",get:function(){return this._sound?this._duration?nv(this._duration,this._sound.duration):this._sound.duration:0},set:function(t){this._duration=Math.max(0,Number(t)||0);var e=0===this._state;this.stop(),e&&this.play()}},{key:"isPaused",get:function(){return 1===this._state}},{key:"isPlaying",get:function(){return 0===this._state}},{key:"isStopped",get:function(){return 2===this._state}},{key:"isSuspended",get:function(){return this._suspended}},{key:"loop",get:function(){return this._loop},set:function(t){this._loop=!!t,this.source&&(this.source.loop=this._loop)}},{key:"pitch",get:function(){return this._pitch},set:function(t){this._currentOffset=this.currentTime,this._startedAt=this._manager.context.currentTime,this._pitch=Math.max(Number(t)||0,.01),this.source&&(this.source.playbackRate.value=this._pitch)}},{key:"sound",get:function(){return this._sound},set:function(t){this._sound=t,2!==this._state?this.stop():this._createSource()}},{key:"startTime",get:function(){return this._startTime},set:function(t){this._startTime=Math.max(0,Number(t)||0);var e=0===this._state;this.stop(),e&&this.play()}},{key:"volume",get:function(){return this._volume},set:function(t){t=rt.clamp(t,0,1),this._volume=t,this.gain&&(this.gain.gain.value=t*this._manager.volume)}}]),e}(m);Jo()||(Object.assign(sv.prototype,{play:function(){return 2!==this._state&&this.stop(),!(!this.source&&!this._createSource())&&(this.volume=this._volume,this.pitch=this._pitch,this.loop=this._loop,this.source.play(),this._state=0,this._playWhenLoaded=!1,this._manager.on("volumechange",this._onManagerVolumeChange,this),this._manager.on("suspend",this._onManagerSuspend,this),this._manager.on("resume",this._onManagerResume,this),this._manager.on("destroy",this._onManagerDestroy,this),this._manager.suspended&&this._onManagerSuspend(),this._suspendInstanceEvents||this._onPlay(),!0)},pause:function(){return!(!this.source||0!==this._state)&&(this._suspendEndEvent=!0,this.source.pause(),this._playWhenLoaded=!1,this._state=1,this._startOffset=null,this._suspendInstanceEvents||this._onPause(),!0)},resume:function(){return!(!this.source||1!==this._state)&&(this._state=0,this._playWhenLoaded=!1,this.source.paused&&(this.source.play(),this._suspendInstanceEvents||this._onResume()),!0)},stop:function(){return!(!this.source||2===this._state)&&(this._manager.off("volumechange",this._onManagerVolumeChange,this),this._manager.off("suspend",this._onManagerSuspend,this),this._manager.off("resume",this._onManagerResume,this),this._manager.off("destroy",this._onManagerDestroy,this),this._suspendEndEvent=!0,this.source.pause(),this._playWhenLoaded=!1,this._state=2,this._startOffset=null,this._suspendInstanceEvents||this._onStop(),!0)},setExternalNodes:function(){},clearExternalNodes:function(){},getExternalNodes:function(){return[null,null]},_onLoadedMetadata:function(){this.source.removeEventListener("loadedmetadata",this._loadedMetadataHandler),this._isReady=!0;var t=nv(this._startOffset,this.duration);t=nv(this._startTime+t,this._sound.duration),this._startOffset=null,this.source.currentTime=t},_createSource:function(){return this._sound&&this._sound.audio&&(this._isReady=!1,this.source=this._sound.audio.cloneNode(!0),this.source.addEventListener("loadedmetadata",this._loadedMetadataHandler),this.source.addEventListener("timeupdate",this._timeUpdateHandler),this.source.onended=this._endedHandler),this.source},_onTimeUpdate:function(){this._duration&&this.source.currentTime>nv(this._startTime+this._duration,this.source.duration)&&(this.loop?this.source.currentTime=nv(this._startTime,this.source.duration):(this.source.removeEventListener("timeupdate",this._timeUpdateHandler),this.source.pause(),this._onEnded()))},_onManagerDestroy:function(){this.source&&this.source.pause()}}),Object.defineProperty(sv.prototype,"volume",{get:function(){return this._volume},set:function(t){t=rt.clamp(t,0,1),this._volume=t,this.source&&(this.source.volume=t*this._manager.volume)}}),Object.defineProperty(sv.prototype,"pitch",{get:function(){return this._pitch},set:function(t){this._pitch=Math.max(Number(t)||0,.01),this.source&&(this.source.playbackRate=this._pitch)}}),Object.defineProperty(sv.prototype,"sound",{get:function(){return this._sound},set:function(t){this.stop(),this._sound=t}}),Object.defineProperty(sv.prototype,"currentTime",{get:function(){return null!==this._startOffset?this._startOffset:2!==this._state&&this.source?this.source.currentTime-this._startTime:0},set:function(t){t<0||(this._startOffset=t,this.source&&this._isReady&&(this.source.currentTime=nv(this._startTime+nv(t,this.duration),this._sound.duration),this._startOffset=null))}}));var av=function(t){function e(e,i,n){var s;return void 0===n&&(n={}),(s=t.call(this,e,i,n)||this)._position=new ft,s._velocity=new ft,n.position&&(s.position=n.position),s.maxDistance=void 0!==n.maxDistance?Number(n.maxDistance):1e4,s.refDistance=void 0!==n.refDistance?Number(n.refDistance):1,s.rollOffFactor=void 0!==n.rollOffFactor?Number(n.rollOffFactor):1,s.distanceModel=void 0!==n.distanceModel?n.distanceModel:eh,s}return Y(e,t),e.prototype._initializeNodes=function(){this.gain=this._manager.context.createGain(),this.panner=this._manager.context.createPanner(),this.panner.connect(this.gain),this._inputNode=this.panner,this._connectorNode=this.gain,this._connectorNode.connect(this._manager.context.destination)},q(e,[{key:"position",get:function(){return this._position},set:function(t){this._position.copy(t);var e=this.panner;"positionX"in e?(e.positionX.value=t.x,e.positionY.value=t.y,e.positionZ.value=t.z):e.setPosition&&e.setPosition(t.x,t.y,t.z)}},{key:"velocity",get:function(){return this._velocity},set:function(t){this._velocity.copy(t)}},{key:"maxDistance",get:function(){return this.panner.maxDistance},set:function(t){this.panner.maxDistance=t}},{key:"refDistance",get:function(){return this.panner.refDistance},set:function(t){this.panner.refDistance=t}},{key:"rollOffFactor",get:function(){return this.panner.rolloffFactor},set:function(t){this.panner.rolloffFactor=t}},{key:"distanceModel",get:function(){return this.panner.distanceModel},set:function(t){this.panner.distanceModel=t}}]),e}(sv);if(!Jo()){var rv=new ft;Object.defineProperty(av.prototype,"position",{get:function(){return this._position},set:function(t){if(this._position.copy(t),this.source){var e=function(t,e,i,n,s,a){var r=(rv=rv.sub2(t,e)).length();if(rn)return 0;var o=0;return a===eh?o=1-s*(r-i)/(n-i):a===ih?o=i/(i+s*(r-i)):a===nh&&(o=Math.pow(r/i,-s)),rt.clamp(o,0,1)}(this._manager.listener.getPosition(),this._position,this.refDistance,this.maxDistance,this.rollOffFactor,this.distanceModel),i=this.volume;this.source.volume=i*e*this._manager.volume}}}),Object.defineProperty(av.prototype,"maxDistance",{get:function(){return this._maxDistance},set:function(t){this._maxDistance=t}}),Object.defineProperty(av.prototype,"refDistance",{get:function(){return this._refDistance},set:function(t){this._refDistance=t}}),Object.defineProperty(av.prototype,"rollOffFactor",{get:function(){return this._rollOffFactor},set:function(t){this._rollOffFactor=t}}),Object.defineProperty(av.prototype,"distanceModel",{get:function(){return this._distanceModel},set:function(t){this._distanceModel=t}})}var ov={volume:0,pitch:0,loop:!1,startTime:0,duration:0,position:new ft,maxDistance:0,refDistance:0,rollOffFactor:0,distanceModel:0,onPlay:null,onPause:null,onResume:null,onStop:null,onEnd:null},hv=function(t){function e(e,i,n){var s;return void 0===i&&(i="Untitled"),void 0===n&&(n={}),(s=t.call(this)||this).name=void 0,s.instances=[],s._component=e,s._assets=e.system.app.assets,s._manager=e.system.manager,s.name=i,s._volume=void 0!==n.volume?rt.clamp(Number(n.volume)||0,0,1):1,s._pitch=void 0!==n.pitch?Math.max(.01,Number(n.pitch)||0):1,s._loop=!(void 0===n.loop||!n.loop),s._duration=n.duration>0?n.duration:null,s._startTime=Math.max(0,Number(n.startTime)||0),s._overlap=!!n.overlap,s._autoPlay=!!n.autoPlay,s._firstNode=null,s._lastNode=null,s._asset=n.asset,s._asset instanceof Oh&&(s._asset=s._asset.id),s._onInstancePlayHandler=s._onInstancePlay.bind(Z(s)),s._onInstancePauseHandler=s._onInstancePause.bind(Z(s)),s._onInstanceResumeHandler=s._onInstanceResume.bind(Z(s)),s._onInstanceStopHandler=s._onInstanceStop.bind(Z(s)),s._onInstanceEndHandler=s._onInstanceEnd.bind(Z(s)),s}Y(e,t);var i=e.prototype;return i.play=function(){if(this.overlap||this.stop(),this.isLoaded||this._hasAsset()){var t=this._createInstance();if(this.instances.push(t),this.isLoaded)t.play();else{var e=function(e){var i=t._playWhenLoaded;t.sound=e,i&&t.play()};this.off("load",e),this.once("load",e),this.load()}return t}},i.pause=function(){for(var t=!1,e=this.instances,i=0,n=e.length;i=0;a--){var r=s[a].isPlaying||s[a].isSuspended,o=s[a].currentTime;r&&s[a].stop();var h=n._createInstance();r&&(h.play(),h.currentTime=o),s.push(h)}}}},{key:"slots",get:function(){return this._slots},set:function(t){var e=this._slots;if(e)for(var i in e)e[i].stop();var n={};for(var s in t)t[s]instanceof hv?n[t[s].name]=t[s]:t[s].name&&(n[t[s].name]=new hv(this,t[s].name,t[s]));this._slots=n,this.enabled&&this.entity.enabled&&this.onEnable()}}]),e}(du),cv=function(){this.enabled=!0},uv=["enabled"],dv=function(t){function e(e,i){var n;return(n=t.call(this,e)||this).id="sound",n.ComponentType=lv,n.DataType=cv,n.schema=uv,n.manager=i,n.app.systems.on("update",n.onUpdate,Z(n)),n.on("beforeremove",n.onBeforeRemove,Z(n)),n}Y(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){n=["volume","pitch","positional","refDistance","maxDistance","rollOffFactor","distanceModel","slots"];for(var s=0;sn||i<0;this._setTime(i);var a=this.frame;(a=this._sprite?Math.floor(this._sprite.frameKeys.length*this._time/n):0)!==this._frame&&this._setFrame(a),s&&(this.loop?(this.fire("loop"),this._component.fire("loop",this)):(this._playing=!1,this._paused=!1,this.fire("end"),this._component.fire("end",this)))}},i._setTime=function(t){this._time=t;var e=this.duration;this._time<0?this.loop?this._time=this._time%e+e:this._time=0:this._time>e&&(this.loop?this._time%=e:this._time=e)},i._setFrame=function(t){this._sprite?this._frame=rt.clamp(t,0,this._sprite.frameKeys.length-1):this._frame=t,this._component.currentClip===this&&this._component._showFrame(this._frame)},i._destroy=function(){this._sprite&&(this.sprite=null),this._spriteAsset&&(this.spriteAsset=null)},i.play=function(){this._playing||(this._playing=!0,this._paused=!1,this.frame=0,this.fire("play"),this._component.fire("play",this))},i.pause=function(){this._playing&&!this._paused&&(this._paused=!0,this.fire("pause"),this._component.fire("pause",this))},i.resume=function(){this._paused&&(this._paused=!1,this.fire("resume"),this._component.fire("resume",this))},i.stop=function(){this._playing&&(this._playing=!1,this._paused=!1,this._time=0,this.frame=0,this.fire("stop"),this._component.fire("stop",this))},q(e,[{key:"duration",get:function(){if(this._sprite){var t=this.fps||Number.MIN_VALUE;return this._sprite.frameKeys.length/Math.abs(t)}return 0}},{key:"frame",get:function(){return this._frame},set:function(t){this._setFrame(t);var e=this.fps||Number.MIN_VALUE;this._setTime(this._frame/e)}},{key:"isPaused",get:function(){return this._paused}},{key:"isPlaying",get:function(){return this._playing}},{key:"sprite",get:function(){return this._sprite},set:function(t){var e;(this._sprite&&(this._sprite.off("set:meshes",this._onSpriteMeshesChange,this),this._sprite.off("set:pixelsPerUnit",this._onSpritePpuChanged,this),this._sprite.off("set:atlas",this._onSpriteMeshesChange,this),this._sprite.atlas&&this._sprite.atlas.off("set:texture",this._onSpriteMeshesChange,this)),this._sprite=t,this._sprite&&(this._sprite.on("set:meshes",this._onSpriteMeshesChange,this),this._sprite.on("set:pixelsPerUnit",this._onSpritePpuChanged,this),this._sprite.on("set:atlas",this._onSpriteMeshesChange,this),this._sprite.atlas&&this._sprite.atlas.on("set:texture",this._onSpriteMeshesChange,this)),this._component.currentClip===this)&&(t&&t.atlas?(t.atlas.texture&&((e=this._component._meshInstance)&&(e.setParameter("texture_emissiveMap",t.atlas.texture),e.setParameter("texture_opacityMap",t.atlas.texture)),this._component.enabled&&this._component.entity.enabled&&this._component._showModel()),this.time&&this.fps?this.time=this.time:this.frame=this.frame):((e=this._component._meshInstance)&&(e.deleteParameter("texture_emissiveMap"),e.deleteParameter("texture_opacityMap")),this._component._hideModel()))}},{key:"spriteAsset",get:function(){return this._spriteAsset},set:function(t){var e=this._component.system.app.assets,i=t;if(t instanceof Oh&&(i=t.id),this._spriteAsset!==i){if(this._spriteAsset){var n=e.get(this._spriteAsset);n&&this._unbindSpriteAsset(n)}if(this._spriteAsset=i,this._spriteAsset){var s=e.get(this._spriteAsset);s?this._bindSpriteAsset(s):(this.sprite=null,e.on("add:"+this._spriteAsset,this._onSpriteAssetAdded,this))}else this.sprite=null}}},{key:"time",get:function(){return this._time},set:function(t){this._setTime(t),this._sprite?this.frame=Math.min(this._sprite.frameKeys.length-1,Math.floor(this._time*Math.abs(this.fps))):this.frame=0}}]),e}(m),_v="texture_emissiveMap",gv="texture_opacityMap",vv="material_emissive",yv="material_opacity",xv=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._type=fv,n._material=e.defaultMaterial,n._color=new lt(1,1,1,1),n._colorUniform=new Float32Array(3),n._speed=1,n._flipX=!1,n._flipY=!1,n._width=1,n._height=1,n._drawOrder=0,n._layers=[0],n._outerScale=new mt(1,1),n._outerScaleUniform=new Float32Array(2),n._innerOffset=new _t,n._innerOffsetUniform=new Float32Array(4),n._atlasRect=new _t,n._atlasRectUniform=new Float32Array(4),n._batchGroupId=-1,n._batchGroup=null,n._node=new an,n._model=new qo,n._model.graph=n._node,n._meshInstance=null,i.addChild(n._model.graph),n._model._entity=i,n._updateAabbFunc=n._updateAabb.bind(Z(n)),n._addedModel=!1,n._autoPlayClip=null,n._clips={},n._defaultClip=new mv(Z(n),{name:n.entity.name,fps:0,loop:!1,spriteAsset:null}),n._currentClip=n._defaultClip,n}Y(e,t);var i=e.prototype;return i.onEnable=function(){var t=this.system.app,e=t.scene;e.on("set:layers",this._onLayersChanged,this),e.layers&&(e.layers.on("add",this._onLayerAdded,this),e.layers.on("remove",this._onLayerRemoved,this)),this._showModel(),this._autoPlayClip&&this._tryAutoPlay(),this._batchGroupId>=0&&t.batcher.insert(Aa.SPRITE,this._batchGroupId,this.entity)},i.onDisable=function(){var t=this.system.app,e=t.scene;e.off("set:layers",this._onLayersChanged,this),e.layers&&(e.layers.off("add",this._onLayerAdded,this),e.layers.off("remove",this._onLayerRemoved,this)),this.stop(),this._hideModel(),this._batchGroupId>=0&&t.batcher.remove(Aa.SPRITE,this._batchGroupId,this.entity)},i.onDestroy=function(){for(var t in this._currentClip=null,this._defaultClip&&(this._defaultClip._destroy(),this._defaultClip=null),this._clips)this._clips[t]._destroy();this._clips=null,this._hideModel(),this._model=null,this._node&&(this._node.parent&&this._node.parent.removeChild(this._node),this._node=null),this._meshInstance&&(this._meshInstance.material=null,this._meshInstance.mesh=null,this._meshInstance=null)},i._showModel=function(){if(!this._addedModel&&this._meshInstance){for(var t=[this._meshInstance],e=0,i=this._layers.length;e=0&&this.system.app.batcher.remove(Aa.SPRITE,e,this.entity),this.entity.enabled&&t>=0?this.system.app.batcher.insert(Aa.SPRITE,t,this.entity):e>=0&&this._currentClip&&this._currentClip.sprite&&this.enabled&&this.entity.enabled&&this._showModel()}}},{key:"autoPlayClip",get:function(){return this._autoPlayClip},set:function(t){this._autoPlayClip=t instanceof mv?t.name:t,this._tryAutoPlay()}},{key:"drawOrder",get:function(){return this._drawOrder},set:function(t){this._drawOrder=t,this._meshInstance&&(this._meshInstance.drawOrder=t)}},{key:"layers",get:function(){return this._layers},set:function(t){this._addedModel&&this._hideModel(),this._layers=t,this._meshInstance&&this.enabled&&this.entity.enabled&&this._showModel()}},{key:"aabb",get:function(){return this._meshInstance?this._meshInstance.aabb:null}}]),e}(du),bv=function(){this.enabled=!0},Sv=["enabled"],wv=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="sprite",i.ComponentType=xv,i.DataType=bv,i.schema=Sv,i._defaultTexture=null,i._defaultMaterial=null,i._default9SlicedMaterialSlicedMode=null,i._default9SlicedMaterialTiledMode=null,i.app.systems.on("update",i.onUpdate,Z(i)),i.on("beforeremove",i.onBeforeRemove,Z(i)),i}Y(e,t);var i=e.prototype;return i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this),this._defaultTexture&&(this._defaultTexture.destroy(),this._defaultTexture=null)},i.initializeComponentData=function(e,i,n){if(void 0!==i.enabled&&(e.enabled=i.enabled),e.type=i.type,i.layers&&Array.isArray(i.layers)&&(e.layers=i.layers.slice(0)),void 0!==i.drawOrder&&(e.drawOrder=i.drawOrder),void 0!==i.color&&(i.color instanceof lt?e.color.set(i.color.r,i.color.g,i.color.b,void 0!==i.opacity?i.opacity:1):e.color.set(i.color[0],i.color[1],i.color[2],void 0!==i.opacity?i.opacity:1),e.color=e.color),void 0!==i.opacity&&(e.opacity=i.opacity),void 0!==i.flipX&&(e.flipX=i.flipX),void 0!==i.flipY&&(e.flipY=i.flipY),void 0!==i.width&&(e.width=i.width),void 0!==i.height&&(e.height=i.height),void 0!==i.spriteAsset&&(e.spriteAsset=i.spriteAsset),i.sprite&&(e.sprite=i.sprite),void 0!==i.frame&&(e.frame=i.frame),i.clips)for(var s in i.clips)e.addClip(i.clips[s]);void 0!==i.speed&&(e.speed=i.speed),i.autoPlayClip&&(e.autoPlayClip=i.autoPlayClip),e.batchGroupId=void 0===i.batchGroupId||null===i.batchGroupId?-1:i.batchGroupId,t.prototype.initializeComponentData.call(this,e,i,n)},i.cloneComponent=function(t,e){var i=t.sprite;return this.addComponent(e,{enabled:i.enabled,type:i.type,spriteAsset:i.spriteAsset,sprite:i.sprite,frame:i.frame,color:i.color.clone(),opacity:i.opacity,flipX:i.flipX,flipY:i.flipY,speed:i.speed,clips:i.clips,autoPlayClip:i.autoPlayClip,batchGroupId:i.batchGroupId,drawOrder:i.drawOrder,layers:i.layers.slice(0)})},i.onUpdate=function(t){var e=this.store;for(var i in e)if(e.hasOwnProperty(i)){var n=e[i];if(n.data.enabled&&n.entity.enabled){var s=n.entity.sprite;s._currentClip&&s._currentClip._update(t)}}},i.onBeforeRemove=function(t,e){e.onDestroy()},q(e,[{key:"defaultMaterial",get:function(){if(!this._defaultMaterial){var t=new Bi(this.app.graphicsDevice,{width:1,height:1,format:7}),e=new Uint8Array(t.lock());e[0]=e[1]=e[2]=e[3]=255,t.name="sprite",t.unlock();var i=new os;i.diffuse.set(0,0,0),i.emissive.set(.5,.5,.5),i.emissiveMap=t,i.emissiveMapTint=!0,i.opacityMap=t,i.opacityMapChannel="a",i.opacityTint=!0,i.opacity=0,i.useLighting=!1,i.useGammaTonemap=!1,i.useFog=!1,i.useSkybox=!1,i.blendType=4,i.depthWrite=!1,i.pixelSnap=!1,i.cull=0,i.update(),this._defaultTexture=t,this._defaultMaterial=i}return this._defaultMaterial},set:function(t){this._defaultMaterial=t}},{key:"default9SlicedMaterialSlicedMode",get:function(){if(!this._default9SlicedMaterialSlicedMode){var t=this.defaultMaterial.clone();t.nineSlicedMode=1,t.update(),this._default9SlicedMaterialSlicedMode=t}return this._default9SlicedMaterialSlicedMode},set:function(t){this._default9SlicedMaterialSlicedMode=t}},{key:"default9SlicedMaterialTiledMode",get:function(){if(!this._default9SlicedMaterialTiledMode){var t=this.defaultMaterial.clone();t.nineSlicedMode=2,t.update(),this._default9SlicedMaterialTiledMode=t}return this._default9SlicedMaterialTiledMode},set:function(t){this._default9SlicedMaterialTiledMode=t}}]),e}(ud);du._buildAccessors(xv.prototype,Sv);var Tv=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._oldState=!0,n._size=new ft,n.on("set_enabled",n._onSetEnabled,Z(n)),n}Y(e,t);var i=e.prototype;return i.onEnable=function(){this._checkState()},i.onDisable=function(){this._checkState()},i._onSetEnabled=function(t,e,i){this._checkState()},i._checkState=function(){var t=this.enabled&&this.entity.enabled;t!==this._oldState&&(this._oldState=t,this.fire("enable"),this.fire("state",this.enabled))},i._onBeforeRemove=function(){this.fire("remove")},q(e,[{key:"size",get:function(){return this._size},set:function(t){t instanceof ft?this._size.copy(t):t instanceof Array&&t.length>=3&&this.size.set(t[0],t[1],t[2])}}]),e}(du),Av=function(){this.enabled=!0},Mv=["enabled"],Cv=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="zone",i.ComponentType=Tv,i.DataType=Av,i.schema=Mv,i.on("beforeremove",i._onBeforeRemove,Z(i)),i}Y(e,t);var i=e.prototype;return i.initializeComponentData=function(t,e,i){t.enabled=!e.hasOwnProperty("enabled")||!!e.enabled,e.size&&(e.size instanceof ft?t.size.copy(e.size):e.size instanceof Array&&e.size.length>=3&&t.size.set(e.size[0],e.size[1],e.size[2]))},i.cloneComponent=function(t,e){var i={size:t.zone.size};return this.addComponent(e,i)},i._onBeforeRemove=function(t,e){e._onBeforeRemove()},e}(ud);du._buildAccessors(Tv.prototype,Mv);var Ev=function(){function t(t){this.frame={fps:0,ms:0,dt:0,updateStart:0,updateTime:0,renderStart:0,renderTime:0,physicsStart:0,physicsTime:0,cullTime:0,sortTime:0,skinTime:0,morphTime:0,instancingTime:0,triangles:0,otherPrimitives:0,shaders:0,materials:0,cameras:0,shadowMapUpdates:0,shadowMapTime:0,depthMapTime:0,forwardTime:0,lightClustersTime:0,lightClusters:0,_timeToCountFrames:0,_fpsAccum:0},this.drawCalls={forward:0,depth:0,shadow:0,immediate:0,misc:0,total:0,skinned:0,instanced:0,removedByInstancing:0},this.misc={renderTargetCreationTime:0},this.particles={updatesPerFrame:0,_updatesPerFrame:0,frameTime:0,_frameTime:0},this.shaders=t._shaderStats,this.vram=t._vram,Object.defineProperty(this.vram,"totalUsed",{get:function(){return this.tex+this.vb+this.ib}}),Object.defineProperty(this.vram,"geom",{get:function(){return this.vb+this.ib}})}return q(t,[{key:"scene",get:function(){return ia().scene._stats}},{key:"lightmapper",get:function(){return ia().lightmapper.stats}},{key:"batcher",get:function(){return ia().batcher._stats}}]),t}(),Pv=function(){function t(t,e){this.name=t,this.url=e,this.data=null,this._loading=!1,this._onLoadedCallbacks=[]}return q(t,[{key:"loaded",get:function(){return!!this.data}},{key:"loading",get:function(){return this._loading}}]),t}(),Rv=function(){function t(t){this._app=t,this._list=[],this._index={},this._urlIndex={}}var e=t.prototype;return e.destroy=function(){this._app=null},e.list=function(){return this._list},e.add=function(t,e){if(this._index.hasOwnProperty(t))return!1;var i=new Pv(t,e),n=this._list.push(i);return this._index[i.name]=n-1,this._urlIndex[i.url]=n-1,!0},e.find=function(t){return this._index.hasOwnProperty(t)?this._list[this._index[t]]:null},e.findByUrl=function(t){return this._urlIndex.hasOwnProperty(t)?this._list[this._urlIndex[t]]:null},e.remove=function(t){if(this._index.hasOwnProperty(t)){var e=this._index[t],i=this._list[e];delete this._urlIndex[i.url],delete this._index[t],this._list.splice(e,1);for(var n=0;n0&&this.loader.enableRetry(t.maxAssetRetries),t.useDevicePixelRatio||(t.useDevicePixelRatio=t.use_device_pixel_ratio),t.resolutionMode||(t.resolutionMode=t.resolution_mode),t.fillMode||(t.fillMode=t.fill_mode),this._width=t.width,this._height=t.height,t.useDevicePixelRatio&&(this.graphicsDevice.maxPixelRatio=window.devicePixelRatio),this.setCanvasResolution(t.resolutionMode,this._width,this._height),this.setCanvasFillMode(t.fillMode,this._width,this._height),t.layers&&t.layerOrder){var i=new Mo("application"),n={};for(var s in t.layers){var a=t.layers[s];a.id=parseInt(s,10),a.enabled=1!==a.id,n[s]=new vo(a)}for(var r=0,o=t.layerOrder.length;r0,d.tags.add(u.tags),u.i18n)for(var f in u.i18n)d.addLocalizedAssetId(f,u.i18n[f]);this.assets.add(d)}},n._getScriptReferences=function(t){var e=[];t.settings.priority_scripts&&(e=t.settings.priority_scripts);for(var i=[],n={},s=0;sn._timeToCountFrames?(n.fps=n._fpsAccum,n._fpsAccum=0,n._timeToCountFrames=t+1e3):n._fpsAccum++,this.stats.drawCalls.total=this.graphicsDevice._drawCallsPerFrame,this.graphicsDevice._drawCallsPerFrame=0},n._fillFrameStats=function(){var t=this.stats.frame;t.cameras=this.renderer._camerasRendered,t.materials=this.renderer._materialSwitches,t.shaders=this.graphicsDevice._shaderSwitchesPerFrame,t.shadowMapUpdates=this.renderer._shadowMapUpdates,t.shadowMapTime=this.renderer._shadowMapTime,t.depthMapTime=this.renderer._depthMapTime,t.forwardTime=this.renderer._forwardTime;var e=this.graphicsDevice._primsPerFrame;t.triangles=e[4]/3+Math.max(e[5]-2,0)+Math.max(e[6]-2,0),t.cullTime=this.renderer._cullTime,t.sortTime=this.renderer._sortTime,t.skinTime=this.renderer._skinTime,t.morphTime=this.renderer._morphTime,t.lightClusters=this.renderer._lightClusters,t.lightClustersTime=this.renderer._lightClustersTime,t.otherPrimitives=0;for(var i=0;ii/n?e=(t=i)/s:t=(e=n)*s}else this._fillMode===xu&&(t=i,e=n);return this.graphicsDevice.canvas.style.width=t+"px",this.graphicsDevice.canvas.style.height=e+"px",this.updateCanvasSize(),{width:t,height:e}}},n.updateCanvasSize=function(){if(this._allowResize&&!this.xr.active&&this._resolutionMode===Su){var t=this.graphicsDevice.canvas;this.graphicsDevice.resizeCanvas(t.clientWidth,t.clientHeight)}},n.onLibrariesLoaded=function(){this._librariesLoaded=!0,this.systems.rigidbody.onLibraryLoaded()},n.applySceneSettings=function(t){var e;if(this.systems.rigidbody&&"undefined"!=typeof Ammo){var i=t.physics.gravity;this.systems.rigidbody.gravity.set(i[0],i[1],i[2])}this.scene.applySettings(t),t.render.hasOwnProperty("skybox")&&(t.render.skybox?(e=this.assets.get(t.render.skybox))?this.setSkybox(e):this.assets.once("add:"+t.render.skybox,this.setSkybox,this):this.setSkybox(null))},n.setAreaLightLuts=function(t){if(t){var e=this.graphicsDevice;t.ready((function(t){Go.set(e,t.resource)})),this.assets.load(t)}},n.setSkybox=function(t){var e=this;if(t!==this._skyboxAsset){var i=function(){e.setSkybox(null)},n=function(){e.scene.setSkybox(e._skyboxAsset?e._skyboxAsset.resources:null)};this._skyboxAsset&&(this.assets.off("load:"+this._skyboxAsset.id,n,this),this.assets.off("remove:"+this._skyboxAsset.id,i,this),this._skyboxAsset.off("change",n,this)),this._skyboxAsset=t,this._skyboxAsset&&(this.assets.on("load:"+this._skyboxAsset.id,n,this),this.assets.once("remove:"+this._skyboxAsset.id,i,this),this._skyboxAsset.on("change",n,this),0!==this.scene.skyboxMip||this._skyboxAsset.loadFaces||(this._skyboxAsset.loadFaces=!0),this.assets.load(this._skyboxAsset)),n()}},n.enableVr=function(){this.vr||(this.vr=new Au(this))},n.disableVr=function(){this.vr&&(this.vr.destroy(),this.vr=null)},n._firstBake=function(){this.lightmapper.bake(null,this.scene.lightmapMode)},n._firstBatch=function(){this.batcher.generate()},n._processTimestamp=function(t){return t},n.drawLine=function(t,e,i,n,s){this.scene.drawLine(t,e,i,n,s)},n.drawLines=function(t,e,i,n){void 0===i&&(i=!0),void 0===n&&(n=this.scene.defaultDrawLayer),this.scene.drawLines(t,e,i,n)},n.drawLineArrays=function(t,e,i,n){void 0===i&&(i=!0),void 0===n&&(n=this.scene.defaultDrawLayer),this.scene.drawLineArrays(t,e,i,n)},n.drawWireSphere=function(t,e,i,n,s,a){void 0===i&&(i=lt.WHITE),void 0===n&&(n=20),void 0===s&&(s=!0),void 0===a&&(a=this.scene.defaultDrawLayer),this.scene.immediate.drawWireSphere(t,e,i,n,s,a)},n.drawWireAlignedBox=function(t,e,i,n,s){void 0===i&&(i=lt.WHITE),void 0===n&&(n=!0),void 0===s&&(s=this.scene.defaultDrawLayer),this.scene.immediate.drawWireAlignedBox(t,e,i,n,s)},n.drawMeshInstance=function(t,e){void 0===e&&(e=this.scene.defaultDrawLayer),this.scene.immediate.drawMesh(null,null,null,t,e)},n.drawMesh=function(t,e,i,n){void 0===n&&(n=this.scene.defaultDrawLayer),this.scene.immediate.drawMesh(e,i,t,null,n)},n.drawQuad=function(t,e,i){void 0===i&&(i=this.scene.defaultDrawLayer),this.scene.immediate.drawMesh(e,t,this.scene.immediate.getQuadMesh(),null,i)},n.drawTexture=function(t,e,i,n,s,a,r){void 0===r&&(r=this.scene.defaultDrawLayer);var o=new St;o.setTRS(new ft(t,e,0),wt.IDENTITY,new ft(i,n,0)),a||((a=new Kn).setParameter("colorMap",s),a.shader=this.scene.immediate.getTextureShader(),a.update()),this.drawQuad(o,a,r)},n.drawDepthTexture=function(t,e,i,n,s){void 0===s&&(s=this.scene.defaultDrawLayer);var a=new Kn;a.shader=this.scene.immediate.getDepthTextureShader(),a.update(),this.drawTexture(t,e,i,n,null,a,s)},n.destroy=function(){if(this._inFrameUpdate)this._destroyRequested=!0;else{var t=this.graphicsDevice.canvas.id;this.off("librariesloaded"),"undefined"!=typeof document&&(document.removeEventListener("visibilitychange",this._visibilityChangeHandler,!1),document.removeEventListener("mozvisibilitychange",this._visibilityChangeHandler,!1),document.removeEventListener("msvisibilitychange",this._visibilityChangeHandler,!1),document.removeEventListener("webkitvisibilitychange",this._visibilityChangeHandler,!1)),this._visibilityChangeHandler=null,this.root.destroy(),this.root=null,this.mouse&&(this.mouse.off(),this.mouse.detach(),this.mouse=null),this.keyboard&&(this.keyboard.off(),this.keyboard.detach(),this.keyboard=null),this.touch&&(this.touch.off(),this.touch.detach(),this.touch=null),this.elementInput&&(this.elementInput.detach(),this.elementInput=null),this.controller&&(this.controller=null),this.systems.destroy(),this.scene.layers&&this.scene.layers.destroy();for(var e=this.assets.list(),n=0;n0&&e.push(new Vv(t,l))}}for(var d=0;d0){var c=1===e?2:1;this.setLightmapping(o,!1,c),this.initBake(i),this.bakeInternal(c,o,h);var u=64;1===e&&(u|=Ft),this.scene.ambientBake&&(u|=Vt),this.setLightmapping(o,!0,c,u),this.finishBake(o)}var d=it();this.stats.totalRenderTime=d-n,this.stats.shadersLinked=i._shaderStats.linked-s,this.stats.compileTime=i._shaderStats.compileTime-r,this.stats.fboTime=i._renderTargetCreationTime-a,this.stats.lightmapCount=o.length},e.allocateTextures=function(t,e){for(var i=0;i0){e.copy(t[0].aabb);for(var i=1;i1&&x>1&&v.light.bakeDir&&(x=1);for(var b=0;b1&&v.prepareVirtualLight(b,x),v.startBake();var S=!1,w=this.lightCameraPrepare(s,v);for(m=0;m0&&b>0)&&!(y&&p>0);p++){var M=T.renderTargets[p],C=T.renderTargets[p].colorBuffer.width,E=this.renderTargets.get(C),P=E.colorBuffer;0===p?g=n.updateShaders:g&&(n.updateShaders=!0);var R=this.passMaterials[p];for(y&&b+1===x&&0===p&&(R=this.ambientAOMaterial),c=0;c>16&255)/255,e.pickColor[1]=(s>>8&255)/255,e.pickColor[2]=(255&s)/255,i.setValue(e.pickColor),t.setBlending(!1),e.mapping[s]=n}}),this.layer.addCamera(this.cameraEntity.camera),this.layerComp=new Mo("picker"),this.layerComp.pushOpaque(this.layer)},e.prepare=function(t,e,i){t instanceof Wi&&(t=t.node.camera),i instanceof vo&&(i=[i]),this.layer.clearMeshInstances();for(var n=this.layer.opaqueMeshInstances,s=e.layers.layerList,a=e.layers.subLayerEnabled,r=e.layers.subLayerList,o=0;o=0){h._clearDepthBuffer&&n.push(this.clearDepthCommand);for(var l=r[o]?h.instances.transparentMeshInstances:h.instances.opaqueMeshInstances,c=0;cYv?Yv:i.width||512,a=i.height>Yv?Yv:i.height||512,r=document.createElement("canvas");r.height=a,r.width=s;var o=new Bi(n.app.graphicsDevice,{name:"font",format:7,minFilter:5,magFilter:1,addressU:1,addressV:1,mipmaps:!0});return o.setSource(r),n.textures=[o],n.chars="",n.data={},n}Y(e,t);var i=e.prototype;return i.createTextures=function(t){var e=this._normalizeCharsSet(t);if(e.length===this.chars.length){for(var i=0;i0&&this._renderAtlas(this.chars.concat(i))},i.destroy=function(){for(var t=0;tC&&(C=this.fontSize*this.fontSize/E,c.font=this.fontWeight+" "+C.toString()+"px "+this.fontName,E=this.fontSize),this.renderCharacter(c,A,S+x,w+b,a);var P=this.padding+(this.glyphSize-E)/2,R=-this.padding+m[A].descent-p,I=E;if(this._addChar(this.data,A,M,S,w,v,y,P,R,I,e-1,n,s),(S+=v)+v>n&&(S=0,(w+=y)+y>s))if(this.textures[e-1].upload(),w=0,++e>d){(i=document.createElement("canvas")).height=s,i.width=n,c=this._getAndClearContext(i,o);var L=new Bi(this.app.graphicsDevice,{format:7,mipmaps:!0});L.name="font-atlas",L.setSource(i),L.minFilter=5,L.magFilter=1,L.addressU=1,L.addressV=1,this.textures.push(L)}else i=this.textures[e-1].getSource(),c=this._getAndClearContext(i,o)}if(this.textures[e-1].upload(),e0?this.wheelDelta=1:i.deltaY<0&&(this.wheelDelta=-1)),hy()?(this.dx=i.movementX||i.webkitMovementX||i.mozMovementX||0,this.dy=i.movementY||i.webkitMovementY||i.mozMovementY||0):(this.dx=this.x-e._lastX,this.dy=this.y-e._lastY),"mousedown"===i.type||"mouseup"===i.type?this.button=i.button:this.button=-1,this.buttons=e._buttons.slice(0),this.element=i.target,this.ctrlKey=i.ctrlKey||!1,this.altKey=i.altKey||!1,this.shiftKey=i.shiftKey||!1,this.metaKey=i.metaKey||!1,this.event=i},dy=function(t){function e(e){var i;return(i=t.call(this)||this)._lastX=0,i._lastY=0,i._buttons=[!1,!1,!1],i._lastbuttons=[!1,!1,!1],i._upHandler=i._handleUp.bind(Z(i)),i._downHandler=i._handleDown.bind(Z(i)),i._moveHandler=i._handleMove.bind(Z(i)),i._wheelHandler=i._handleWheel.bind(Z(i)),i._contextMenuHandler=function(t){t.preventDefault()},i._target=null,i._attached=!1,i.attach(e),i}Y(e,t),e.isPointerLocked=function(){return hy()};var i=e.prototype;return i.attach=function(t){if(this._target=t,!this._attached){this._attached=!0;var e=!!L.passiveEvents&&{passive:!1};window.addEventListener("mouseup",this._upHandler,e),window.addEventListener("mousedown",this._downHandler,e),window.addEventListener("mousemove",this._moveHandler,e),window.addEventListener("wheel",this._wheelHandler,e)}},i.detach=function(){if(this._attached){this._attached=!1,this._target=null;var t=!!L.passiveEvents&&{passive:!1};window.removeEventListener("mouseup",this._upHandler,t),window.removeEventListener("mousedown",this._downHandler,t),window.removeEventListener("mousemove",this._moveHandler,t),window.removeEventListener("wheel",this._wheelHandler,t)}},i.disableContextMenu=function(){this._target&&this._target.addEventListener("contextmenu",this._contextMenuHandler)},i.enableContextMenu=function(){this._target&&this._target.removeEventListener("contextmenu",this._contextMenuHandler)},i.enablePointerLock=function(t,e){if(document.body.requestPointerLock){t&&document.addEventListener("pointerlockchange",(function e(){t(),document.removeEventListener("pointerlockchange",e)}),!1),e&&document.addEventListener("pointerlockerror",(function t(){e(),document.removeEventListener("pointerlockerror",t)}),!1),document.body.requestPointerLock()}else e&&e()},i.disablePointerLock=function(t){if(document.exitPointerLock){t&&document.addEventListener("pointerlockchange",(function e(){t(),document.removeEventListener("pointerlockchange",e)}),!1),document.exitPointerLock()}},i.update=function(){this._lastbuttons[0]=this._buttons[0],this._lastbuttons[1]=this._buttons[1],this._lastbuttons[2]=this._buttons[2]},i.isPressed=function(t){return this._buttons[t]},i.wasPressed=function(t){return this._buttons[t]&&!this._lastbuttons[t]},i.wasReleased=function(t){return!this._buttons[t]&&this._lastbuttons[t]},i._handleUp=function(t){this._buttons[t.button]=!1;var e=new uy(this,t);e.event&&this.fire(qg,e)},i._handleDown=function(t){this._buttons[t.button]=!0;var e=new uy(this,t);e.event&&this.fire(Hg,e)},i._handleMove=function(t){var e=new uy(this,t);e.event&&(this.fire(Xg,e),this._lastX=e.x,this._lastY=e.y)},i._handleWheel=function(t){var e=new uy(this,t);e.event&&this.fire(jg,e)},i._getTargetCoords=function(t){var e=this._target.getBoundingClientRect(),i=Math.floor(e.left),n=Math.floor(e.top);return t.clientX=i+this._target.clientWidth||t.clientY=n+this._target.clientHeight?null:{x:t.clientX-i,y:t.clientY-n}},e}(m),fy=function(){function t(t,e){void 0===e&&(e={}),this._keyboard=e.keyboard||null,this._mouse=e.mouse||null,this._gamepads=e.gamepads||null,this._element=null,this._actions={},this._axes={},this._axesValues={},t&&this.attach(t)}var e=t.prototype;return e.attach=function(t){this._element=t,this._keyboard&&this._keyboard.attach(t),this._mouse&&this._mouse.attach(t)},e.detach=function(){this._keyboard&&this._keyboard.detach(),this._mouse&&this._mouse.detach(),this._element=null},e.disableContextMenu=function(){this._mouse||this._enableMouse(),this._mouse.disableContextMenu()},e.enableContextMenu=function(){this._mouse||this._enableMouse(),this._mouse.enableContextMenu()},e.update=function(t){for(var e in this._keyboard&&this._keyboard.update(),this._mouse&&this._mouse.update(),this._gamepads&&this._gamepads.update(),this._axesValues={},this._axes)this._axesValues[e]=[]},e.registerKeys=function(t,e){if(this._keyboard||this._enableKeyboard(),this._actions[t])throw new Error("Action: "+t+" already registered");if(void 0===e)throw new Error("Invalid button");e.length||(e=[e]),this._actions[t]?this._actions[t].push({type:Wg,keys:e}):this._actions[t]=[{type:Wg,keys:e}]},e.registerMouse=function(t,e){if(this._mouse||this._enableMouse(),void 0===e)throw new Error("Invalid button");this._actions[t]?this._actions[t].push({type:Vg,button:e}):this._actions[t]=[{type:Vg,button:-e}]},e.registerPadButton=function(t,e,i){if(void 0===i)throw new Error("Invalid button");this._actions[t]?this._actions[t].push({type:Gg,button:i,pad:e}):this._actions[t]=[{type:Gg,button:i,pad:e}]},e.registerAxis=function(t){var e=t.name;this._axes[e]||(this._axes[e]=[]);var i=this._axes[e].push(e);(t=t||{}).pad=t.pad||0;var n=function(n,s,a,r){switch(s){case"mousex":n._mouse.on(Xg,(function(t){n._axesValues[e][i]=t.dx/10}));break;case"mousey":n._mouse.on(Xg,(function(t){n._axesValues[e][i]=t.dy/10}));break;case"key":n._axes[e].push((function(){return n._keyboard.isPressed(r)?a:0}));break;case"padrx":n._axes[e].push((function(){return n._gamepads.getAxis(t.pad,2)}));break;case"padry":n._axes[e].push((function(){return n._gamepads.getAxis(t.pad,3)}));break;case"padlx":n._axes[e].push((function(){return n._gamepads.getAxis(t.pad,0)}));break;case"padly":n._axes[e].push((function(){return n._gamepads.getAxis(t.pad,1)}));break;default:throw new Error("Unknown axis")}};n(this,t.positive,1,t.positiveKey),(t.negativeKey||t.negative!==t.positive)&&n(this,t.negative,-1,t.negativeKey)},e.isPressed=function(t){if(!this._actions[t])return!1;for(var e=this._actions[t].length,i=0;iMath.abs(e)&&(e=s)}else this._axesValues[t]&&Math.abs(this._axesValues[t][n])>Math.abs(e)&&(e=this._axesValues[t][n]);return e},e._enableMouse=function(){if(this._mouse=new dy,!this._element)throw new Error("Controller must be attached to an Element");this._mouse.attach(this._element)},e._enableKeyboard=function(){if(this._keyboard=new oy,!this._element)throw new Error("Controller must be attached to an Element");this._keyboard.attach(this._element)},t}(),py=new ft,my=new ft,_y=new Xt,gy=new Xt,vy=new Xt;_y.end=new ft,gy.end=new ft,vy.end=new ft;var yy=new ft,xy=new ft,by=new ft,Sy=new ft,wy=new ft,Ty=new ft,Ay=new ft,My=new ft,Cy=new ft,Ey=new ft,Py=new ft,Ry=new ft,Iy=new ft,Ly=new ft,Dy=new ft,ky=new ft,Oy=new ft,Fy=new ft,By=new ft,Ny=new ft,Uy=new _t;function zy(t,e,i){return Py.cross(t,e).dot(i)}var Vy=function(){function t(t,e,i){this.event=t,this.element=e,this.camera=i,this._stopPropagation=!1}return t.prototype.stopPropagation=function(){this._stopPropagation=!0,this.event&&(this.event.stopImmediatePropagation(),this.event.stopPropagation())},t}(),Wy=function(t){function e(e,i,n,s,a,r,o){var h;return(h=t.call(this,e,i,n)||this).x=s,h.y=a,h.ctrlKey=e.ctrlKey||!1,h.altKey=e.altKey||!1,h.shiftKey=e.shiftKey||!1,h.metaKey=e.metaKey||!1,h.button=e.button,dy.isPointerLocked()?(h.dx=e.movementX||e.webkitMovementX||e.mozMovementX||0,h.dy=e.movementY||e.webkitMovementY||e.mozMovementY||0):(h.dx=s-r,h.dy=a-o),h.wheelDelta=0,"wheel"===e.type&&(e.deltaY>0?h.wheelDelta=1:e.deltaY<0&&(h.wheelDelta=-1)),h}return Y(e,t),e}(Vy),Gy=function(t){function e(e,i,n,s,a,r){var o;return(o=t.call(this,e,i,n)||this).touches=e.touches,o.changedTouches=e.changedTouches,o.x=s,o.y=a,o.touch=r,o}return Y(e,t),e}(Vy),Hy=function(t){function e(e,i,n,s){var a;return(a=t.call(this,e,i,n)||this).inputSource=s,a}return Y(e,t),e}(Vy),Xy=function(){function t(t,e){this._app=null,this._attached=!1,this._target=null,this._enabled=!0,this._lastX=0,this._lastY=0,this._upHandler=this._handleUp.bind(this),this._downHandler=this._handleDown.bind(this),this._moveHandler=this._handleMove.bind(this),this._wheelHandler=this._handleWheel.bind(this),this._touchstartHandler=this._handleTouchStart.bind(this),this._touchendHandler=this._handleTouchEnd.bind(this),this._touchcancelHandler=this._touchendHandler,this._touchmoveHandler=this._handleTouchMove.bind(this),this._sortHandler=this._sortElements.bind(this),this._elements=[],this._hoveredElement=null,this._pressedElement=null,this._touchedElements={},this._touchesForWhichTouchLeaveHasFired={},this._selectedElements={},this._selectedPressedElements={},this._useMouse=!e||!1!==e.useMouse,this._useTouch=!e||!1!==e.useTouch,this._useXr=!e||!1!==e.useXr,this._selectEventsAttached=!1,L.touch&&(this._clickedEntities={}),this.attach(t)}var e=t.prototype;return e.attach=function(t){this._attached&&(this._attached=!1,this.detach()),this._target=t,this._attached=!0;var e=!!L.passiveEvents&&{passive:!0};this._useMouse&&(window.addEventListener("mouseup",this._upHandler,e),window.addEventListener("mousedown",this._downHandler,e),window.addEventListener("mousemove",this._moveHandler,e),window.addEventListener("wheel",this._wheelHandler,e)),this._useTouch&&L.touch&&(this._target.addEventListener("touchstart",this._touchstartHandler,e),this._target.addEventListener("touchend",this._touchendHandler,!1),this._target.addEventListener("touchmove",this._touchmoveHandler,!1),this._target.addEventListener("touchcancel",this._touchcancelHandler,!1)),this.attachSelectEvents()},e.attachSelectEvents=function(){!this._selectEventsAttached&&this._useXr&&this.app&&this.app.xr&&this.app.xr.supported&&(this._clickedEntities||(this._clickedEntities={}),this._selectEventsAttached=!0,this.app.xr.on("start",this._onXrStart,this))},e.detach=function(){if(this._attached){this._attached=!1;var t=!!L.passiveEvents&&{passive:!0};this._useMouse&&(window.removeEventListener("mouseup",this._upHandler,t),window.removeEventListener("mousedown",this._downHandler,t),window.removeEventListener("mousemove",this._moveHandler,t),window.removeEventListener("wheel",this._wheelHandler,t)),this._useTouch&&(this._target.removeEventListener("touchstart",this._touchstartHandler,t),this._target.removeEventListener("touchend",this._touchendHandler,!1),this._target.removeEventListener("touchmove",this._touchmoveHandler,!1),this._target.removeEventListener("touchcancel",this._touchcancelHandler,!1)),this._selectEventsAttached&&(this._selectEventsAttached=!1,this.app.xr.off("start",this._onXrStart,this),this.app.xr.off("end",this._onXrEnd,this),this.app.xr.off("update",this._onXrUpdate,this),this.app.xr.input.off("selectstart",this._onSelectStart,this),this.app.xr.input.off("selectend",this._onSelectEnd,this),this.app.xr.input.off("remove",this._onXrInputRemove,this)),this._target=null}},e.addElement=function(t){-1===this._elements.indexOf(t)&&this._elements.push(t)},e.removeElement=function(t){var e=this._elements.indexOf(t);-1!==e&&this._elements.splice(e,1)},e._handleUp=function(t){this._enabled&&(dy.isPointerLocked()||(this._calcMouseCoords(t),null!==ly&&this._onElementMouseEvent("mouseup",t)))},e._handleDown=function(t){this._enabled&&(dy.isPointerLocked()||(this._calcMouseCoords(t),null!==ly&&this._onElementMouseEvent("mousedown",t)))},e._handleMove=function(t){this._enabled&&(this._calcMouseCoords(t),null!==ly&&(this._onElementMouseEvent("mousemove",t),this._lastX=ly,this._lastY=cy))},e._handleWheel=function(t){this._enabled&&(this._calcMouseCoords(t),null!==ly&&this._onElementMouseEvent("mousewheel",t))},e._determineTouchedElements=function(t){for(var e={},i=this.app.systems.camera.cameras,n=i.length-1;n>=0;n--){for(var s=i[n],a=0,r=t.changedTouches.length,o=0;o=0;d--){this._getTargetElement(e[d],u.x,u.y)===o&&(this._clickedEntities[o.entity.getGuid()]||(this._fireEvent("click",new Gy(t,o,h,l,c,a)),this._clickedEntities[o.entity.getGuid()]=!0))}}}}},e._handleTouchMove=function(t){if(t.preventDefault(),this._enabled)for(var e=this._determineTouchedElements(t),i=0,n=t.changedTouches.length;i=0&&(s=a[r],!(i=this._getTargetElement(s,ly,cy)));r--);i&&(this._fireEvent(t,new Wy(e,i,s,ly,cy,this._lastX,this._lastY)),this._hoveredElement=i,"mousedown"===t&&(this._pressedElement=i)),n!==this._hoveredElement&&(n&&this._fireEvent("mouseleave",new Wy(e,n,s,ly,cy,this._lastX,this._lastY)),this._hoveredElement&&this._fireEvent("mouseenter",new Wy(e,this._hoveredElement,s,ly,cy,this._lastX,this._lastY))),"mouseup"===t&&this._pressedElement&&(this._pressedElement===this._hoveredElement?(this._pressedElement=null,this._clickedEntities&&this._clickedEntities[this._hoveredElement.entity.getGuid()]||this._fireEvent("click",new Wy(e,this._hoveredElement,s,ly,cy,this._lastX,this._lastY))):this._pressedElement=null)},e._onXrStart=function(){this.app.xr.on("end",this._onXrEnd,this),this.app.xr.on("update",this._onXrUpdate,this),this.app.xr.input.on("selectstart",this._onSelectStart,this),this.app.xr.input.on("selectend",this._onSelectEnd,this),this.app.xr.input.on("remove",this._onXrInputRemove,this)},e._onXrEnd=function(){this.app.xr.off("update",this._onXrUpdate,this),this.app.xr.input.off("selectstart",this._onSelectStart,this),this.app.xr.input.off("selectend",this._onSelectEnd,this),this.app.xr.input.off("remove",this._onXrInputRemove,this)},e._onXrUpdate=function(){if(this._enabled)for(var t=this.app.xr.input.inputSources,e=0;e=0&&(a=o[h],!(n=this._getTargetElementByRay(vy,a)));h--);}e._elementEntity=n||null,n?(this._selectedElements[e.id]=n,s=n):delete this._selectedElements[e.id],r!==s&&(r&&this._fireEvent("selectleave",new Hy(i,r,a,e)),s&&this._fireEvent("selectenter",new Hy(i,s,a,e))),"selectstart"===t&&(this._selectedPressedElements[e.id]=s,s&&this._fireEvent("selectstart",new Hy(i,s,a,e)));var l=this._selectedPressedElements[e.id];!e.elementInput&&l&&(delete this._selectedPressedElements[e.id],r&&this._fireEvent("selectend",new Hy(i,r,a,e))),"selectend"===t&&e.elementInput&&(delete this._selectedPressedElements[e.id],r&&this._fireEvent("selectend",new Hy(i,r,a,e)),l&&l===r&&this._fireEvent("click",new Hy(i,l,a,e)))},e._fireEvent=function(t,e){for(var i=e.element;i.fire(t,e),!e._stopPropagation&&i.entity.parent&&(i=i.entity.parent.element););},e._calcMouseCoords=function(t){var e=this._target.getBoundingClientRect(),i=Math.floor(e.left),n=Math.floor(e.top);t.clientX=i+this._target.clientWidth||t.clientY=n+this._target.clientHeight?(ly=null,cy=null):(ly=t.clientX-i,cy=t.clientY-n)},e._calcTouchCoords=function(t){for(var e=0,i=0,n=t.target;!(n instanceof HTMLElement);)n=n.parentNode;var s=n;do{e+=s.offsetLeft-s.scrollLeft,i+=s.offsetTop-s.scrollTop,s=s.offsetParent}while(s);return{x:t.pageX-e,y:t.pageY-i}},e._sortElements=function(t,e){var i=this.app.scene.layers.sortTransparentLayers(t.layers,e.layers);return 0!==i?i:t.screen&&!e.screen?-1:!t.screen&&e.screen?1:t.screen||e.screen?t.screen.screen.screenSpace&&!e.screen.screen.screenSpace?-1:e.screen.screen.screenSpace&&!t.screen.screen.screenSpace?1:e.drawOrder-t.drawOrder:0},e._getTargetElement=function(t,e,i){var n,s,a=null,r=1/0;this._elements.sort(this._sortHandler);for(var o=0,h=this._elements.length;o=0){a=l;break}}else{if(void 0===s&&(s=this._calculateRay3d(e,i,t,gy)?gy:null),!s)continue;var c=this._checkElement(s,l,!1);if(c>=0&&(c=0){i=a;break}}return i},e._buildHitCorners=function(t,e,i,n,s){var a=e;if(t.entity&&t.entity.button){var r=t.entity.button.hitPadding||Uy;Iy.copy(t.entity.up),Ly.copy(Iy).mulScalar(-1),ky.copy(t.entity.right),Dy.copy(ky).mulScalar(-1),Iy.mulScalar(r.w*n),Ly.mulScalar(r.y*n),ky.mulScalar(r.z*i),Dy.mulScalar(r.x*i),Oy.copy(a[0]).add(Ly).add(Dy),Fy.copy(a[1]).add(Ly).add(ky),By.copy(a[2]).add(Iy).add(ky),Ny.copy(a[3]).add(Iy).add(Dy),a=[Oy,Fy,By,Ny]}if(i<0){var o=a[2].x,h=a[0].x;a[0].x=o,a[1].x=h,a[2].x=h,a[3].x=o}if(n<0){var l=a[2].y,c=a[0].y;a[0].y=l,a[1].y=l,a[2].y=c,a[3].y=c}if(s<0){var u=a[2].x,d=a[2].y,f=a[2].z;a[2].x=a[0].x,a[2].y=a[0].y,a[2].z=a[0].z,a[0].x=u,a[0].y=d,a[0].z=f}return a},e._calculateScaleToScreen=function(t){var e=t.entity,i=t.screen.screen.scale;for(Ry.set(i,i,i);e&&!e.screen;)Ry.mul(e.getLocalScale()),e=e.parent;return Ry},e._calculateScaleToWorld=function(t){var e=t.entity;for(Ry.set(1,1,1);e;)Ry.mul(e.getLocalScale()),e=e.parent;return Ry},e._calculateRayScreen=function(t,e,i,n){var s=this.app.graphicsDevice.width,a=this.app.graphicsDevice.height,r=i.rect.z*s,o=i.rect.w*a,h=i.rect.x*s,l=h+r,c=(1-i.rect.y)*a,u=c-o,d=t*s/this._target.clientWidth,f=e*a/this._target.clientHeight;return d>=h&&d<=l&&f<=c&&f>=u&&(d=s*(d-h)/r,f=a-(f=a*(f-u)/o),n.origin.set(d,f,1),n.direction.set(0,0,-1),n.end.copy(n.direction).mulScalar(2).add(n.origin),!0)},e._calculateRay3d=function(t,e,i,n){var s=this._target.clientWidth,a=this._target.clientHeight,r=i.rect.z*s,o=i.rect.w*a,h=i.rect.x*s,l=h+r,c=(1-i.rect.y)*a,u=c-o,d=t,f=e;return t>=h&&t<=l&&e<=c&&f>=u&&(d=s*(d-h)/r,f=a*(f-u)/o,i.screenToWorld(d,f,i.nearClip,py),i.screenToWorld(d,f,i.farClip,my),n.origin.copy(py),n.direction.set(0,0,-1),n.end.copy(my),!0)},e._checkElement=function(t,e,i){if(e.maskedBy&&this._checkElement(t,e.maskedBy.element,i)<0)return-1;var n;n=i?this._calculateScaleToScreen(e):this._calculateScaleToWorld(e);var s=this._buildHitCorners(e,i?e.screenCorners:e.worldCorners,n.x,n.y,n.z);return function(t,e,i){yy.sub2(e,t),xy.sub2(i[0],t),by.sub2(i[1],t),Sy.sub2(i[2],t),Ty.cross(Sy,yy);var n,s,a=xy.dot(Ty);if(a>=0){if((n=-by.dot(Ty))<0)return-1;if((s=zy(yy,by,xy))<0)return-1;var r=1/(n+a+s);Ay.copy(i[0]).mulScalar(n*r),My.copy(i[1]).mulScalar(a*r),Cy.copy(i[2]).mulScalar(s*r),Ey.copy(Ay).add(My).add(Cy)}else{if(wy.sub2(i[3],t),(n=wy.dot(Ty))<0)return-1;if((s=zy(yy,xy,wy))<0)return-1;var o=1/(n+(a=-a)+s);Ay.copy(i[0]).mulScalar(n*o),My.copy(i[3]).mulScalar(a*o),Cy.copy(i[2]).mulScalar(s*o),Ey.copy(Ay).add(My).add(Cy)}return yy.sub2(i[0],i[2]).lengthSq()<1e-8||yy.sub2(i[1],i[3]).lengthSq()<1e-8?-1:Ey.sub(t).lengthSq()}(t.origin,t.end,s)},q(t,[{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled=t}},{key:"app",get:function(){return this._app||ia()},set:function(t){this._app=t}}]),t}(),qy={DEFAULT:{buttons:["PAD_FACE_1","PAD_FACE_2","PAD_FACE_3","PAD_FACE_4","PAD_L_SHOULDER_1","PAD_R_SHOULDER_1","PAD_L_SHOULDER_2","PAD_R_SHOULDER_2","PAD_SELECT","PAD_START","PAD_L_STICK_BUTTON","PAD_R_STICK_BUTTON","PAD_UP","PAD_DOWN","PAD_LEFT","PAD_RIGHT","PAD_VENDOR"],axes:["PAD_L_STICK_X","PAD_L_STICK_Y","PAD_R_STICK_X","PAD_R_STICK_Y"]},PS3:{buttons:["PAD_FACE_1","PAD_FACE_2","PAD_FACE_4","PAD_FACE_3","PAD_L_SHOULDER_1","PAD_R_SHOULDER_1","PAD_L_SHOULDER_2","PAD_R_SHOULDER_2","PAD_SELECT","PAD_START","PAD_L_STICK_BUTTON","PAD_R_STICK_BUTTON","PAD_UP","PAD_DOWN","PAD_LEFT","PAD_RIGHT","PAD_VENDOR"],axes:["PAD_L_STICK_X","PAD_L_STICK_Y","PAD_R_STICK_X","PAD_R_STICK_Y"]}},jy={"Product: 0268":"PS3"},Yy=function(){function t(){this.gamepadsSupported=!!navigator.getGamepads||!!navigator.webkitGetGamepads,this.current=[],this.previous=[],this.deadZone=.25}var e=t.prototype;return e.update=function(){for(var t=0,e=this.current.length;t0&&(t.length=0),this.gamepadsSupported)for(var e=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads(),i=0,n=e.length;i=0)return qy[jy[e]];return qy.DEFAULT},e.isPressed=function(t,e){if(!this.current[t])return!1;var i=this.current[t].map.buttons[e];return this.current[t].pad.buttons[pc[i]].pressed},e.wasPressed=function(t,e){if(!this.current[t])return!1;var i=this.current[t].map.buttons[e],n=pc[i];return this.current[t].pad.buttons[n].pressed&&!(this.previous[t]&&this.previous[t][n])},e.wasReleased=function(t,e){if(!this.current[t])return!1;var i=this.current[t].map.buttons[e],n=pc[i];return!this.current[t].pad.buttons[n].pressed&&this.previous[t]&&this.previous[t][n]},e.getAxis=function(t,e){if(!this.current[t])return 0;var i=this.current[t].map.axes[e],n=this.current[t].pad.axes[pc[i]];return Math.abs(n)=0&&(this._count++,this.fire("progress",t)),this._count===this._total&&setTimeout((function(){e._loadingComplete(e._failed)}),0)},i._onError=function(t,e){var i=this;this._assets.indexOf(e)>=0&&(this._count++,this._failed.push(e)),this._count===this._total&&setTimeout((function(){i._loadingComplete(i._failed)}),0)},i._onAddAsset=function(t){var e=this._waitingAssets.indexOf(t);e>=0&&this._waitingAssets.splice(e,1),this._assets.push(t);for(var i=0,n=this._assets.length;i>>0,n=arguments[1],s=n>>0,a=s<0?Math.max(i+s,0):Math.min(s,i),r=arguments[2],o=void 0===r?i:r>>0,h=o<0?Math.max(i+o,0):Math.min(o,i);a>>0;if("function"!=typeof t)throw TypeError("predicate must be a function");for(var n=arguments[1],s=0;s>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var n=arguments[1],s=0;s0)-(t<0)||+t}),void 0===Number.isFinite&&(Number.isFinite=function(t){return"number"==typeof t&&isFinite(t)}),"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(t,e){if(null==t)throw new TypeError("Cannot convert undefined or null to object");for(var i=Object(t),n=1;nthis.length)&&(e=this.length),this.substring(e-t.length,e)===t})),e(String,"includes",(function(t,e){return"number"!=typeof e&&(e=0),!(e+t.length>this.length)&&-1!==this.indexOf(t,e)})),e(String,"startsWith",(function(t,e){var i=e>0?0|e:0;return this.substring(i,i+t.length)===t})),e(String,"trimEnd",(function(){return this.replace(new RegExp(/[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]+/.source+"$","g"),"")}));for(var i=0,n=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array];i0?a=a.slice(0,a.length-2):(r>0&&a.push(v.delimiter),a.push(n[r])));return s=a.join(""),e||s[0]!==v.delimiter||(s=s.slice(1)),i&&s[s.length-1]!==v.delimiter&&(s+=v.delimiter),s},split:function(t){var e=t.split(v.delimiter),i=e.slice(e.length-1)[0];return[e.slice(0,e.length-1).join(v.delimiter),i]},getBasename:function(t){return v.split(t)[1]},getDirectory:function(t){var e=t.split(v.delimiter);return e.slice(0,e.length-1).join(v.delimiter)},getExtension:function(t){var e=t.split("?")[0].split(".").pop();return e!==t?"."+e:""},isRelativePath:function(t){return"/"!==t.charAt(0)&&null===t.match(/:\/\//)},extractPath:function(t){var e="",i=t.split("/"),n=0;if(i.length>1)if(v.isRelativePath(t))if("."===i[0])for(n=0;n0),M="getGamepads"in navigator,C="undefined"!=typeof Worker;try{var R=Object.defineProperty({},"passive",{get:function(){return E=!0,!1}});window.addEventListener("testpassive",null,R),window.removeEventListener("testpassive",null,R)}catch(t){}}var I="undefined"!=typeof window?"browser":"node",L={environment:I,global:"browser"===I?window:global,browser:"browser"===I,desktop:y,mobile:x,ios:T,android:w,windows:b,xbox:S,gamepads:M,touch:A,workers:C,passiveEvents:E},D="abcdefghijklmnopqrstuvwxyz",k="ABCDEFGHIJKLMNOPQRSTUVWXYZ",O=55296,F=127462,B=127487,N=65024,U=65039;function z(t,e){void 0===e&&(e=0);var i=t.length;if(e<0||e>=i)return null;var n=t.charCodeAt(e);if(i>1&&n>=O&&n<=56319){var s=t.charCodeAt(e+1);if(s>=56320&&s<=57343)return{code:1024*(n-O)+s-56320+65536,long:!0}}return{code:n,long:!1}}function V(t,e,i){if(!t)return!1;var n=z(t);if(n){var s=n.code;return s>=e&&s<=i}return!1}function G(t,e){if(e===t.length-1)return 1;if(V(t[e],O,56319)){var i=t.substring(e,e+2),n=t.substring(e+2,e+4);return V(n,127995,127999)||V(i,F,B)&&V(n,F,B)?4:V(n,N,U)?3:2}return V(t[e+1],N,U)?2:1}var W={ASCII_LOWERCASE:D,ASCII_UPPERCASE:k,ASCII_LETTERS:"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",format:function(t){for(var e=1;e65535?[55296+(e>>10),e%1024+56320]:[t],n.push(String.fromCharCode.apply(null,i));return n.join("")}},H=function(){function t(){this._list=[],this._index={}}var e=t.prototype;return e.push=function(t,e){if(this._index[t])throw Error("Key already in index "+t);var i=this._list.push(e)-1;this._index[t]=i},e.has=function(t){return void 0!==this._index[t]},e.get=function(t){var e=this._index[t];return void 0!==e?this._list[e]:null},e.remove=function(t){var e=this._index[t];if(void 0!==e){for(t in this._list.splice(e,1),delete this._index[t],this._index){var i=this._index[t];i>e&&(this._index[t]=i-1)}return!0}return!1},e.list=function(){return this._list},e.clear=function(){for(var t in this._list.length=0,this._index)delete this._index[t]},t}();function X(t,e){for(var i=0;it.length)&&(e=t.length);for(var i=0,n=new Array(e);i=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var J=function(){function t(t){this.arraybuffer=t,this.dataView=new DataView(t),this.offset=0,this.stack=[]}var e=t.prototype;return e.reset=function(t){void 0===t&&(t=0),this.offset=t},e.skip=function(t){this.offset+=t},e.align=function(t){this.offset=this.offset+t-1&~(t-1)},e._inc=function(t){return this.offset+=t,this.offset-t},e.readChar=function(){return String.fromCharCode(this.dataView.getUint8(this.offset++))},e.readChars=function(t){for(var e="",i=0;i=t.byteLength);){var i=String.fromCharCode(this.readU8());if("\n"===i)break;e+=i}return e},q(t,[{key:"remainingBytes",get:function(){return this.dataView.byteLength-this.offset}}]),t}(),tt=function(){function t(t){this.items=[],this.length=0,this.loopIndex=-1,this._sortBy=t.sortBy,this._sortHandler=this._doSort.bind(this)}var e=t.prototype;return e._binarySearch=function(t){for(var e,i,n=0,s=this.items.length-1,a=t[this._sortBy];n<=s;)e=Math.floor((n+s)/2),(i=this.items[e][this._sortBy])<=a?n=e+1:i>a&&(s=e-1);return n},e._doSort=function(t,e){var i=this._sortBy;return t[i]-e[i]},e.insert=function(t){var e=this._binarySearch(t);this.items.splice(e,0,t),this.length++,this.loopIndex>=e&&this.loopIndex++},e.append=function(t){this.items.push(t),this.length++},e.remove=function(t){var e=this.items.indexOf(t);e<0||(this.items.splice(e,1),this.length--,this.loopIndex>=e&&this.loopIndex--)},e.sort=function(){var t=this.loopIndex>=0?this.items[this.loopIndex]:null;this.items.sort(this._sortHandler),null!==t&&(this.loopIndex=this.items.indexOf(t))},t}(),et=function(t){function e(e){var i;return(i=t.call(this)||this)._index={},i._list=[],i._parent=e,i}j(e,t);var i=e.prototype;return i.add=function(){var t=!1,e=this._processArguments(arguments,!0);if(!e.length)return t;for(var i=0;i1?i-1:0),s=1;s1?n-1:0),a=1;a=i?i:t<=e?e:t},intToBytes24:function(t){return[t>>16&255,t>>8&255,255&t]},intToBytes32:function(t){return[t>>24&255,t>>16&255,t>>8&255,255&t]},bytesToInt24:function(t,e,i){return t.length&&(i=t[2],e=t[1],t=t[0]),t<<16|e<<8|i},bytesToInt32:function(t,e,i,n){return t.length&&(n=t[3],i=t[2],e=t[1],t=t[0]),(t<<24|e<<16|i<<8|n)>>>0},lerp:function(t,e,i){return t+(e-t)*ot.clamp(i,0,1)},lerpAngle:function(t,e,i){return e-t>180&&(e-=360),e-t<-180&&(e+=360),ot.lerp(t,e,ot.clamp(i,0,1))},powerOfTwo:function(t){return 0!==t&&!(t&t-1)},nextPowerOfTwo:function(t){return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t},random:function(t,e){var i=e-t;return Math.random()*i+t},smoothstep:function(t,e,i){return i<=t?0:i>=e?1:(i=(i-t)/(e-t))*i*(3-2*i)},smootherstep:function(t,e,i){return i<=t?0:i>=e?1:(i=(i-t)/(e-t))*i*i*(i*(6*i-15)+10)},roundUp:function(t,e){return 0===e?t:Math.ceil(t/e)*e},between:function(t,e,i,n){var s=Math.min(e,i),a=Math.max(e,i);return n?t>=s&&t<=a:t>s&&t=0?t.ResponseType.ARRAY_BUFFER:".xml"===n?t.ResponseType.DOCUMENT:t.ResponseType.TEXT},e._isBinaryContentType=function(e){return[t.ContentType.MP4,t.ContentType.WAV,t.ContentType.OGG,t.ContentType.MP3,t.ContentType.BIN,t.ContentType.DDS,t.ContentType.BASIS,t.ContentType.GLB,t.ContentType.OPUS].indexOf(e)>=0},e._onReadyStateChange=function(t,e,i,n){if(4===n.readyState)switch(n.status){case 0:n.responseURL&&n.responseURL.startsWith("file:///")?this._onSuccess(t,e,i,n):this._onError(t,e,i,n);break;case 200:case 201:case 206:case 304:this._onSuccess(t,e,i,n);break;default:this._onError(t,e,i,n)}},e._onSuccess=function(e,i,n,s){var a,r,o=s.getResponseHeader("Content-Type");o&&(r=o.split(";")[0].trim());try{a=r===t.ContentType.JSON||i.split("?")[0].endsWith(".json")?JSON.parse(s.responseText):this._isBinaryContentType(r)||s.responseType===t.ResponseType.ARRAY_BUFFER||s.responseType===t.ResponseType.BLOB||s.responseType===t.ResponseType.JSON?s.response:s.responseType===t.ResponseType.DOCUMENT||r===t.ContentType.XML?s.responseXML:s.responseText,n.callback(null,a)}catch(t){n.callback(t)}},e._onError=function(e,i,n,s){var a=this;if(!n.retrying)if(n.retry&&n.retries7?e=ot.intToBytes32(i):(e=ot.intToBytes24(i))[3]=255,this.set(e[0]/255,e[1]/255,e[2]/255,e[3]/255),this},e.toString=function(t){var e="#"+((1<<24)+(Math.round(255*this.r)<<16)+(Math.round(255*this.g)<<8)+Math.round(255*this.b)).toString(16).slice(1);if(!0===t){var i=Math.round(255*this.a).toString(16);this.a<16/255?e+="0"+i:e+=i}return e},t}();ct.BLACK=Object.freeze(new ct(0,0,0,1)),ct.BLUE=Object.freeze(new ct(0,0,1,1)),ct.CYAN=Object.freeze(new ct(0,1,1,1)),ct.GRAY=Object.freeze(new ct(.5,.5,.5,1)),ct.GREEN=Object.freeze(new ct(0,1,0,1)),ct.MAGENTA=Object.freeze(new ct(1,0,1,1)),ct.RED=Object.freeze(new ct(1,0,0,1)),ct.WHITE=Object.freeze(new ct(1,1,1,1)),ct.YELLOW=Object.freeze(new ct(1,1,0,1));var ut=function(){function t(t,e){void 0===e&&(e=0),this._curve=t,this._left=-1/0,this._right=1/0,this._recip=0,this._p0=0,this._p1=0,this._m0=0,this._m1=0,this._reset(e)}var e=t.prototype;return e.evaluate=function(t,e){var i;void 0===e&&(e=!1),(e||t=this._right)&&this._reset(t);var n=this._curve.type;if(5===n)i=this._p0;else{var s=0===this._recip?0:(t-this._left)*this._recip;i=0===n?ot.lerp(this._p0,this._p1,s):1===n?ot.lerp(this._p0,this._p1,s*s*(3-2*s)):this._evaluateHermite(this._p0,this._p1,this._m0,this._m1,s)}return i},e._reset=function(t){var e=this._curve.keys,i=e.length;if(i)if(t=e[i-1][0])this._left=e[i-1][0],this._right=1/0,this._recip=0,this._p0=this._p1=e[i-1][1],this._m0=this._m1=0;else{for(var n=0;t>=e[n+1][0];)n++;this._left=e[n][0],this._right=e[n+1][0];var s=1/(this._right-this._left);this._recip=isFinite(s)?s:0,this._p0=e[n][1],this._p1=e[n+1][1],this._isHermite()&&this._calcTangents(e,n)}else this._left=-1/0,this._right=1/0,this._recip=0,this._p0=this._p1=this._m0=this._m1=0},e._isHermite=function(){return 2===this._curve.type||3===this._curve.type||4===this._curve.type},e._calcTangents=function(t,e){var i,n,s=t[e],a=t[e+1];if(i=0===e?[t[0][0]+(t[0][0]-t[1][0]),t[0][1]+(t[0][1]-t[1][1])]:t[e-1],n=e===t.length-2?[t[e+1][0]+(t[e+1][0]-t[e][0]),t[e+1][1]+(t[e+1][1]-t[e][1])]:t[e+2],4===this._curve.type){var r=2*(a[0]-s[0])/(a[0]-i[0]),o=2*(a[0]-s[0])/(n[0]-s[0]);this._m0=this._curve.tension*(isFinite(r)?r:0)*(a[1]-i[1]),this._m1=this._curve.tension*(isFinite(o)?o:0)*(n[1]-s[1])}else{var h=(a[0]-s[0])/(s[0]-i[0]),l=(a[0]-s[0])/(n[0]-a[0]),c=s[1]+(i[1]-s[1])*(isFinite(h)?h:0),u=a[1]+(n[1]-a[1])*(isFinite(l)?l:0),d=2===this._curve.type?.5:this._curve.tension;this._m0=d*(a[1]-c),this._m1=d*(u-s[1])}},e._evaluateHermite=function(t,e,i,n,s){var a=s*s,r=s+s,o=1-s,h=o*o;return t*((1+r)*h)+i*(s*h)+e*(a*(3-r))+n*(a*(s-1))},t}(),dt=function(){function t(t){if(this.keys=[],this.type=1,this.tension=.5,this._eval=new ut(this),t)for(var e=0;et);s++);var a=[t,e];return this.keys.splice(s,0,a),a},e.get=function(t){return this.keys[t]},e.sort=function(){this.keys.sort((function(t,e){return t[0]-e[0]}))},e.value=function(t){return this._eval.evaluate(t,!0)},e.closest=function(t){for(var e=this.keys,i=e.length,n=2,s=null,a=0;a=r))break;n=r,s=e[a]}return s},e.clone=function(){var e=new t;return e.keys=f(e.keys,this.keys),e.type=this.type,e.tension=this.tension,e},e.quantize=function(t){t=Math.max(t,2);var e=new Float32Array(t),i=1/(t-1);e[0]=this._eval.evaluate(0,!0);for(var n=1;n1)for(var t=0;t0){var e=1/Math.sqrt(t);this.x*=e,this.y*=e,this.z*=e}return this},e.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},e.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},e.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},e.min=function(t){return t.xthis.x&&(this.x=t.x),t.y>this.y&&(this.y=t.y),t.z>this.z&&(this.z=t.z),this},e.project=function(t){var e=(this.x*t.x+this.y*t.y+this.z*t.z)/(t.x*t.x+t.y*t.y+t.z*t.z);return this.x=t.x*e,this.y=t.y*e,this.z=t.z*e,this},e.set=function(t,e,i){return this.x=t,this.y=e,this.z=i,this},e.sub=function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this},e.sub2=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},e.subScalar=function(t){return this.x-=t,this.y-=t,this.z-=t,this},e.toString=function(){return"["+this.x+", "+this.y+", "+this.z+"]"},t}();pt.ZERO=Object.freeze(new pt(0,0,0)),pt.ONE=Object.freeze(new pt(1,1,1)),pt.UP=Object.freeze(new pt(0,1,0)),pt.DOWN=Object.freeze(new pt(0,-1,0)),pt.RIGHT=Object.freeze(new pt(1,0,0)),pt.LEFT=Object.freeze(new pt(-1,0,0)),pt.FORWARD=Object.freeze(new pt(0,0,-1)),pt.BACK=Object.freeze(new pt(0,0,1));var mt=function(){function t(){var t=new Float32Array(9);t[0]=t[4]=t[8]=1,this.data=t}var e=t.prototype;return e.clone=function(){return(new t).copy(this)},e.copy=function(t){var e=t.data,i=this.data;return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i[6]=e[6],i[7]=e[7],i[8]=e[8],this},e.set=function(t){var e=this.data;return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],this},e.equals=function(t){var e=this.data,i=t.data;return e[0]===i[0]&&e[1]===i[1]&&e[2]===i[2]&&e[3]===i[3]&&e[4]===i[4]&&e[5]===i[5]&&e[6]===i[6]&&e[7]===i[7]&&e[8]===i[8]},e.isIdentity=function(){var t=this.data;return 1===t[0]&&0===t[1]&&0===t[2]&&0===t[3]&&1===t[4]&&0===t[5]&&0===t[6]&&0===t[7]&&1===t[8]},e.setIdentity=function(){var t=this.data;return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,this},e.toString=function(){return"["+this.data.join(", ")+"]"},e.transpose=function(){var t,e=this.data;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this},e.setFromMat4=function(t){var e=t.data,i=this.data;return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[4],i[4]=e[5],i[5]=e[6],i[6]=e[8],i[7]=e[9],i[8]=e[10],this},e.transformVector=function(t,e){void 0===e&&(e=new pt);var i=this.data,n=t.x,s=t.y,a=t.z;return e.x=n*i[0]+s*i[3]+a*i[6],e.y=n*i[1]+s*i[4]+a*i[7],e.z=n*i[2]+s*i[5]+a*i[8],e},t}();mt.IDENTITY=Object.freeze(new mt),mt.ZERO=Object.freeze((new mt).set([0,0,0,0,0,0,0,0,0]));var _t=function(){function t(t,e){void 0===t&&(t=0),void 0===e&&(e=0),2===t.length?(this.x=t[0],this.y=t[1]):(this.x=t,this.y=e)}var e=t.prototype;return e.add=function(t){return this.x+=t.x,this.y+=t.y,this},e.add2=function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},e.addScalar=function(t){return this.x+=t,this.y+=t,this},e.clone=function(){return new t(this.x,this.y)},e.copy=function(t){return this.x=t.x,this.y=t.y,this},e.cross=function(t){return this.x*t.y-this.y*t.x},e.distance=function(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)},e.div=function(t){return this.x/=t.x,this.y/=t.y,this},e.div2=function(t,e){return this.x=t.x/e.x,this.y=t.y/e.y,this},e.divScalar=function(t){return this.x/=t,this.y/=t,this},e.dot=function(t){return this.x*t.x+this.y*t.y},e.equals=function(t){return this.x===t.x&&this.y===t.y},e.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.lengthSq=function(){return this.x*this.x+this.y*this.y},e.lerp=function(t,e,i){return this.x=t.x+i*(e.x-t.x),this.y=t.y+i*(e.y-t.y),this},e.mul=function(t){return this.x*=t.x,this.y*=t.y,this},e.mul2=function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this},e.mulScalar=function(t){return this.x*=t,this.y*=t,this},e.normalize=function(){var t=this.x*this.x+this.y*this.y;if(t>0){var e=1/Math.sqrt(t);this.x*=e,this.y*=e}return this},e.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},e.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},e.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},e.min=function(t){return t.xthis.x&&(this.x=t.x),t.y>this.y&&(this.y=t.y),this},e.set=function(t,e){return this.x=t,this.y=e,this},e.sub=function(t){return this.x-=t.x,this.y-=t.y,this},e.sub2=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},e.subScalar=function(t){return this.x-=t,this.y-=t,this},e.toString=function(){return"["+this.x+", "+this.y+"]"},t.angleRad=function(t,e){return Math.atan2(t.x*e.y-t.y*e.x,t.x*e.x+t.y*e.y)},t}();_t.ZERO=Object.freeze(new _t(0,0)),_t.ONE=Object.freeze(new _t(1,1)),_t.UP=Object.freeze(new _t(0,1)),_t.DOWN=Object.freeze(new _t(0,-1)),_t.RIGHT=Object.freeze(new _t(1,0)),_t.LEFT=Object.freeze(new _t(-1,0));var gt=function(){function t(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),4===t.length?(this.x=t[0],this.y=t[1],this.z=t[2],this.w=t[3]):(this.x=t,this.y=e,this.z=i,this.w=n)}var e=t.prototype;return e.add=function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this},e.add2=function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this},e.addScalar=function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},e.clone=function(){return new t(this.x,this.y,this.z,this.w)},e.copy=function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w,this},e.div=function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this.w/=t.w,this},e.div2=function(t,e){return this.x=t.x/e.x,this.y=t.y/e.y,this.z=t.z/e.z,this.w=t.w/e.w,this},e.divScalar=function(t){return this.x/=t,this.y/=t,this.z/=t,this.w/=t,this},e.dot=function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},e.equals=function(t){return this.x===t.x&&this.y===t.y&&this.z===t.z&&this.w===t.w},e.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},e.lengthSq=function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},e.lerp=function(t,e,i){return this.x=t.x+i*(e.x-t.x),this.y=t.y+i*(e.y-t.y),this.z=t.z+i*(e.z-t.z),this.w=t.w+i*(e.w-t.w),this},e.mul=function(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this},e.mul2=function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this.w=t.w*e.w,this},e.mulScalar=function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},e.normalize=function(){var t=this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w;if(t>0){var e=1/Math.sqrt(t);this.x*=e,this.y*=e,this.z*=e,this.w*=e}return this},e.floor=function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},e.ceil=function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},e.round=function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},e.min=function(t){return t.xthis.x&&(this.x=t.x),t.y>this.y&&(this.y=t.y),t.z>this.z&&(this.z=t.z),t.w>this.w&&(this.w=t.w),this},e.set=function(t,e,i,n){return this.x=t,this.y=e,this.z=i,this.w=n,this},e.sub=function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this},e.sub2=function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this},e.subScalar=function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},e.toString=function(){return"["+this.x+", "+this.y+", "+this.z+", "+this.w+"]"},t}();gt.ZERO=Object.freeze(new gt(0,0,0,0)),gt.ONE=Object.freeze(new gt(1,1,1,1));var vt=new _t,yt=new pt,xt=new pt,bt=new pt,St=new pt,wt=function(){function t(){var t=new Float32Array(16);t[0]=t[5]=t[10]=t[15]=1,this.data=t}t._getPerspectiveHalfSize=function(t,e,i,n,s){s?(t.x=n*Math.tan(e*Math.PI/360),t.y=t.x/i):(t.y=n*Math.tan(e*Math.PI/360),t.x=t.y*i)};var e=t.prototype;return e.add2=function(t,e){var i=t.data,n=e.data,s=this.data;return s[0]=i[0]+n[0],s[1]=i[1]+n[1],s[2]=i[2]+n[2],s[3]=i[3]+n[3],s[4]=i[4]+n[4],s[5]=i[5]+n[5],s[6]=i[6]+n[6],s[7]=i[7]+n[7],s[8]=i[8]+n[8],s[9]=i[9]+n[9],s[10]=i[10]+n[10],s[11]=i[11]+n[11],s[12]=i[12]+n[12],s[13]=i[13]+n[13],s[14]=i[14]+n[14],s[15]=i[15]+n[15],this},e.add=function(t){return this.add2(this,t)},e.clone=function(){return(new t).copy(this)},e.copy=function(t){var e=t.data,i=this.data;return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i[6]=e[6],i[7]=e[7],i[8]=e[8],i[9]=e[9],i[10]=e[10],i[11]=e[11],i[12]=e[12],i[13]=e[13],i[14]=e[14],i[15]=e[15],this},e.equals=function(t){var e=this.data,i=t.data;return e[0]===i[0]&&e[1]===i[1]&&e[2]===i[2]&&e[3]===i[3]&&e[4]===i[4]&&e[5]===i[5]&&e[6]===i[6]&&e[7]===i[7]&&e[8]===i[8]&&e[9]===i[9]&&e[10]===i[10]&&e[11]===i[11]&&e[12]===i[12]&&e[13]===i[13]&&e[14]===i[14]&&e[15]===i[15]},e.isIdentity=function(){var t=this.data;return 1===t[0]&&0===t[1]&&0===t[2]&&0===t[3]&&0===t[4]&&1===t[5]&&0===t[6]&&0===t[7]&&0===t[8]&&0===t[9]&&1===t[10]&&0===t[11]&&0===t[12]&&0===t[13]&&0===t[14]&&1===t[15]},e.mul2=function(t,e){var i,n,s,a,r=t.data,o=e.data,h=this.data,l=r[0],c=r[1],u=r[2],d=r[3],f=r[4],p=r[5],m=r[6],_=r[7],g=r[8],v=r[9],y=r[10],x=r[11],b=r[12],S=r[13],w=r[14],T=r[15];return i=o[0],n=o[1],s=o[2],a=o[3],h[0]=l*i+f*n+g*s+b*a,h[1]=c*i+p*n+v*s+S*a,h[2]=u*i+m*n+y*s+w*a,h[3]=d*i+_*n+x*s+T*a,i=o[4],n=o[5],s=o[6],a=o[7],h[4]=l*i+f*n+g*s+b*a,h[5]=c*i+p*n+v*s+S*a,h[6]=u*i+m*n+y*s+w*a,h[7]=d*i+_*n+x*s+T*a,i=o[8],n=o[9],s=o[10],a=o[11],h[8]=l*i+f*n+g*s+b*a,h[9]=c*i+p*n+v*s+S*a,h[10]=u*i+m*n+y*s+w*a,h[11]=d*i+_*n+x*s+T*a,i=o[12],n=o[13],s=o[14],a=o[15],h[12]=l*i+f*n+g*s+b*a,h[13]=c*i+p*n+v*s+S*a,h[14]=u*i+m*n+y*s+w*a,h[15]=d*i+_*n+x*s+T*a,this},e.mulAffine2=function(t,e){var i,n,s,a=t.data,r=e.data,o=this.data,h=a[0],l=a[1],c=a[2],u=a[4],d=a[5],f=a[6],p=a[8],m=a[9],_=a[10],g=a[12],v=a[13],y=a[14];return i=r[0],n=r[1],s=r[2],o[0]=h*i+u*n+p*s,o[1]=l*i+d*n+m*s,o[2]=c*i+f*n+_*s,o[3]=0,i=r[4],n=r[5],s=r[6],o[4]=h*i+u*n+p*s,o[5]=l*i+d*n+m*s,o[6]=c*i+f*n+_*s,o[7]=0,i=r[8],n=r[9],s=r[10],o[8]=h*i+u*n+p*s,o[9]=l*i+d*n+m*s,o[10]=c*i+f*n+_*s,o[11]=0,i=r[12],n=r[13],s=r[14],o[12]=h*i+u*n+p*s+g,o[13]=l*i+d*n+m*s+v,o[14]=c*i+f*n+_*s+y,o[15]=1,this},e.mul=function(t){return this.mul2(this,t)},e.transformPoint=function(t,e){void 0===e&&(e=new pt);var i=this.data,n=t.x,s=t.y,a=t.z;return e.x=n*i[0]+s*i[4]+a*i[8]+i[12],e.y=n*i[1]+s*i[5]+a*i[9]+i[13],e.z=n*i[2]+s*i[6]+a*i[10]+i[14],e},e.transformVector=function(t,e){void 0===e&&(e=new pt);var i=this.data,n=t.x,s=t.y,a=t.z;return e.x=n*i[0]+s*i[4]+a*i[8],e.y=n*i[1]+s*i[5]+a*i[9],e.z=n*i[2]+s*i[6]+a*i[10],e},e.transformVec4=function(t,e){void 0===e&&(e=new gt);var i=this.data,n=t.x,s=t.y,a=t.z,r=t.w;return e.x=n*i[0]+s*i[4]+a*i[8]+r*i[12],e.y=n*i[1]+s*i[5]+a*i[9]+r*i[13],e.z=n*i[2]+s*i[6]+a*i[10]+r*i[14],e.w=n*i[3]+s*i[7]+a*i[11]+r*i[15],e},e.setLookAt=function(t,e,i){bt.sub2(t,e).normalize(),xt.copy(i).normalize(),yt.cross(xt,bt).normalize(),xt.cross(bt,yt);var n=this.data;return n[0]=yt.x,n[1]=yt.y,n[2]=yt.z,n[3]=0,n[4]=xt.x,n[5]=xt.y,n[6]=xt.z,n[7]=0,n[8]=bt.x,n[9]=bt.y,n[10]=bt.z,n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,this},e.setFrustum=function(t,e,i,n,s,a){var r=2*s,o=e-t,h=n-i,l=a-s,c=this.data;return c[0]=r/o,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=r/h,c[6]=0,c[7]=0,c[8]=(e+t)/o,c[9]=(n+i)/h,c[10]=(-a-s)/l,c[11]=-1,c[12]=0,c[13]=0,c[14]=-r*a/l,c[15]=0,this},e.setPerspective=function(e,i,n,s,a){return t._getPerspectiveHalfSize(vt,e,i,n,a),this.setFrustum(-vt.x,vt.x,-vt.y,vt.y,n,s)},e.setOrtho=function(t,e,i,n,s,a){var r=this.data;return r[0]=2/(e-t),r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=2/(n-i),r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=-2/(a-s),r[11]=0,r[12]=-(e+t)/(e-t),r[13]=-(n+i)/(n-i),r[14]=-(a+s)/(a-s),r[15]=1,this},e.setFromAxisAngle=function(t,e){e*=ot.DEG_TO_RAD;var i=t.x,n=t.y,s=t.z,a=Math.cos(e),r=Math.sin(e),o=1-a,h=o*i,l=o*n,c=this.data;return c[0]=h*i+a,c[1]=h*n+r*s,c[2]=h*s-r*n,c[3]=0,c[4]=h*n-r*s,c[5]=l*n+a,c[6]=l*s+r*i,c[7]=0,c[8]=h*s+r*n,c[9]=l*s-i*r,c[10]=o*s*s+a,c[11]=0,c[12]=0,c[13]=0,c[14]=0,c[15]=1,this},e.setTranslate=function(t,e,i){var n=this.data;return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=t,n[13]=e,n[14]=i,n[15]=1,this},e.setScale=function(t,e,i){var n=this.data;return n[0]=t,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=e,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=i,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this},e.setViewport=function(t,e,i,n){var s=this.data;return s[0]=.5*i,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=.5*n,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=.5,s[11]=0,s[12]=t+.5*i,s[13]=e+.5*n,s[14]=.5,s[15]=1,this},e.invert=function(){var t=this.data,e=t[0],i=t[1],n=t[2],s=t[3],a=t[4],r=t[5],o=t[6],h=t[7],l=t[8],c=t[9],u=t[10],d=t[11],f=t[12],p=t[13],m=t[14],_=t[15],g=e*r-i*a,v=e*o-n*a,y=e*h-s*a,x=i*o-n*r,b=i*h-s*r,S=n*h-s*o,w=l*p-c*f,T=l*m-u*f,A=l*_-d*f,M=c*m-u*p,C=c*_-d*p,E=u*_-d*m,P=g*E-v*C+y*M+x*A-b*T+S*w;if(0===P)this.setIdentity();else{var R=1/P;t[0]=(r*E-o*C+h*M)*R,t[1]=(-i*E+n*C-s*M)*R,t[2]=(p*S-m*b+_*x)*R,t[3]=(-c*S+u*b-d*x)*R,t[4]=(-a*E+o*A-h*T)*R,t[5]=(e*E-n*A+s*T)*R,t[6]=(-f*S+m*y-_*v)*R,t[7]=(l*S-u*y+d*v)*R,t[8]=(a*C-r*A+h*w)*R,t[9]=(-e*C+i*A-s*w)*R,t[10]=(f*b-p*y+_*g)*R,t[11]=(-l*b+c*y-d*g)*R,t[12]=(-a*M+r*T-o*w)*R,t[13]=(e*M-i*T+n*w)*R,t[14]=(-f*x+p*v-m*g)*R,t[15]=(l*x-c*v+u*g)*R}return this},e.set=function(t){var e=this.data;return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],this},e.setIdentity=function(){var t=this.data;return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this},e.setTRS=function(t,e,i){var n=e.x,s=e.y,a=e.z,r=e.w,o=i.x,h=i.y,l=i.z,c=n+n,u=s+s,d=a+a,f=n*c,p=n*u,m=n*d,_=s*u,g=s*d,v=a*d,y=r*c,x=r*u,b=r*d,S=this.data;return S[0]=(1-(_+v))*o,S[1]=(p+b)*o,S[2]=(m-x)*o,S[3]=0,S[4]=(p-b)*h,S[5]=(1-(f+v))*h,S[6]=(g+y)*h,S[7]=0,S[8]=(m+x)*l,S[9]=(g-y)*l,S[10]=(1-(f+_))*l,S[11]=0,S[12]=t.x,S[13]=t.y,S[14]=t.z,S[15]=1,this},e.transpose=function(){var t,e=this.data;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this},e.invertTo3x3=function(t){var e=this.data,i=t.data,n=e[0],s=e[1],a=e[2],r=e[4],o=e[5],h=e[6],l=e[8],c=e[9],u=e[10],d=u*o-h*c,f=-u*s+a*c,p=h*s-a*o,m=-u*r+h*l,_=u*n-a*l,g=-h*n+a*r,v=c*r-o*l,y=-c*n+s*l,x=o*n-s*r,b=n*d+s*m+a*v;if(0===b)return this;var S=1/b;return i[0]=S*d,i[1]=S*f,i[2]=S*p,i[3]=S*m,i[4]=S*_,i[5]=S*g,i[6]=S*v,i[7]=S*y,i[8]=S*x,this},e.getTranslation=function(t){return void 0===t&&(t=new pt),t.set(this.data[12],this.data[13],this.data[14])},e.getX=function(t){return void 0===t&&(t=new pt),t.set(this.data[0],this.data[1],this.data[2])},e.getY=function(t){return void 0===t&&(t=new pt),t.set(this.data[4],this.data[5],this.data[6])},e.getZ=function(t){return void 0===t&&(t=new pt),t.set(this.data[8],this.data[9],this.data[10])},e.getScale=function(t){return void 0===t&&(t=new pt),this.getX(yt),this.getY(xt),this.getZ(bt),t.set(yt.length(),xt.length(),bt.length()),t},e.setFromEulerAngles=function(t,e,i){t*=ot.DEG_TO_RAD,e*=ot.DEG_TO_RAD,i*=ot.DEG_TO_RAD;var n=Math.sin(-t),s=Math.cos(-t),a=Math.sin(-e),r=Math.cos(-e),o=Math.sin(-i),h=Math.cos(-i),l=this.data;return l[0]=r*h,l[1]=-r*o,l[2]=a,l[3]=0,l[4]=s*o+h*n*a,l[5]=s*h-n*a*o,l[6]=-r*n,l[7]=0,l[8]=n*o-s*h*a,l[9]=h*n+s*a*o,l[10]=s*r,l[11]=0,l[12]=0,l[13]=0,l[14]=0,l[15]=1,this},e.getEulerAngles=function(t){void 0===t&&(t=new pt),this.getScale(St);var e=St.x,i=St.y,n=St.z;if(0===e||0===i||0===n)return t.set(0,0,0);var s,a,r=this.data,o=Math.asin(-r[2]/e),h=.5*Math.PI;return o-h?(s=Math.atan2(r[6]/i,r[10]/n),a=Math.atan2(r[1]/e,r[0]/e)):(a=0,s=-Math.atan2(r[4]/i,r[5]/i)):(a=0,s=Math.atan2(r[4]/i,r[5]/i)),t.set(s,o,a).mulScalar(ot.RAD_TO_DEG)},e.toString=function(){return"["+this.data.join(", ")+"]"},t}();wt.IDENTITY=Object.freeze(new wt),wt.ZERO=Object.freeze((new wt).set([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]));var Tt=function(){function t(t,e,i,n){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=1),4===t.length?(this.x=t[0],this.y=t[1],this.z=t[2],this.w=t[3]):(this.x=t,this.y=e,this.z=i,this.w=n)}var e=t.prototype;return e.clone=function(){return new t(this.x,this.y,this.z,this.w)},e.conjugate=function(){return this.x*=-1,this.y*=-1,this.z*=-1,this},e.copy=function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w,this},e.equals=function(t){return this.x===t.x&&this.y===t.y&&this.z===t.z&&this.w===t.w},e.getAxisAngle=function(t){var e=2*Math.acos(this.w),i=Math.sin(e/2);return 0!==i?(t.x=this.x/i,t.y=this.y/i,t.z=this.z/i,(t.x<0||t.y<0||t.z<0)&&(t.x*=-1,t.y*=-1,t.z*=-1,e*=-1)):(t.x=1,t.y=0,t.z=0),e*ot.RAD_TO_DEG},e.getEulerAngles=function(t){var e,i,n;void 0===t&&(t=new pt);var s=this.x,a=this.y,r=this.z,o=this.w,h=2*(o*a-s*r);return h<=-.99999?(e=2*Math.atan2(s,o),i=-Math.PI/2,n=0):h>=.99999?(e=2*Math.atan2(s,o),i=Math.PI/2,n=0):(e=Math.atan2(2*(o*s+a*r),1-2*(s*s+a*a)),i=Math.asin(h),n=Math.atan2(2*(o*r+s*a),1-2*(a*a+r*r))),t.set(e,i,n).mulScalar(ot.RAD_TO_DEG)},e.invert=function(){return this.conjugate().normalize()},e.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},e.lengthSq=function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},e.mul=function(t){var e=this.x,i=this.y,n=this.z,s=this.w,a=t.x,r=t.y,o=t.z,h=t.w;return this.x=s*a+e*h+i*o-n*r,this.y=s*r+i*h+n*a-e*o,this.z=s*o+n*h+e*r-i*a,this.w=s*h-e*a-i*r-n*o,this},e.mul2=function(t,e){var i=t.x,n=t.y,s=t.z,a=t.w,r=e.x,o=e.y,h=e.z,l=e.w;return this.x=a*r+i*l+n*h-s*o,this.y=a*o+n*l+s*r-i*h,this.z=a*h+s*l+i*o-n*r,this.w=a*l-i*r-n*o-s*h,this},e.normalize=function(){var t=this.length();return 0===t?(this.x=this.y=this.z=0,this.w=1):(t=1/t,this.x*=t,this.y*=t,this.z*=t,this.w*=t),this},e.set=function(t,e,i,n){return this.x=t,this.y=e,this.z=i,this.w=n,this},e.setFromAxisAngle=function(t,e){e*=.5*ot.DEG_TO_RAD;var i=Math.sin(e),n=Math.cos(e);return this.x=i*t.x,this.y=i*t.y,this.z=i*t.z,this.w=n,this},e.setFromEulerAngles=function(t,e,i){if(t instanceof pt){var n=t;t=n.x,e=n.y,i=n.z}var s=.5*ot.DEG_TO_RAD;t*=s,e*=s,i*=s;var a=Math.sin(t),r=Math.cos(t),o=Math.sin(e),h=Math.cos(e),l=Math.sin(i),c=Math.cos(i);return this.x=a*h*c-r*o*l,this.y=r*o*c+a*h*l,this.z=r*h*l-a*o*c,this.w=r*h*c+a*o*l,this},e.setFromMat4=function(t){var e,i,n,s,a,r,o,h,l,c,u,d,f,p;if(e=(t=t.data)[0],i=t[1],n=t[2],s=t[4],a=t[5],r=t[6],o=t[8],h=t[9],l=t[10],0===(d=e*e+i*i+n*n))return this;if(d=1/Math.sqrt(d),0===(f=s*s+a*a+r*r))return this;if(f=1/Math.sqrt(f),0===(p=o*o+h*h+l*l))return this;i*=d,n*=d,s*=f,r*=f,o*=p=1/Math.sqrt(p),h*=p;var m=(e*=d)+(a*=f)+(l*=p);return m>=0?(c=Math.sqrt(m+1),this.w=.5*c,c=.5/c,this.x=(r-h)*c,this.y=(o-n)*c,this.z=(i-s)*c):e>a?e>l?(u=e-(a+l)+1,u=Math.sqrt(u),this.x=.5*u,u=.5/u,this.w=(r-h)*u,this.y=(i+s)*u,this.z=(n+o)*u):(u=l-(e+a)+1,u=Math.sqrt(u),this.z=.5*u,u=.5/u,this.w=(i-s)*u,this.x=(o+n)*u,this.y=(h+r)*u):a>l?(u=a-(l+e)+1,u=Math.sqrt(u),this.y=.5*u,u=.5/u,this.w=(o-n)*u,this.z=(r+h)*u,this.x=(s+i)*u):(u=l-(e+a)+1,u=Math.sqrt(u),this.z=.5*u,u=.5/u,this.w=(i-s)*u,this.x=(o+n)*u,this.y=(h+r)*u),this},e.slerp=function(t,e,i){var n=t.x,s=t.y,a=t.z,r=t.w,o=e.x,h=e.y,l=e.z,c=e.w,u=r*c+n*o+s*h+a*l;if(u<0&&(c=-c,o=-o,h=-h,l=-l,u=-u),Math.abs(u)>=1)return this.w=r,this.x=n,this.y=s,this.z=a,this;var d=Math.acos(u),f=Math.sqrt(1-u*u);if(Math.abs(f)<.001)return this.w=.5*r+.5*c,this.x=.5*n+.5*o,this.y=.5*s+.5*h,this.z=.5*a+.5*l,this;var p=Math.sin((1-i)*d)/f,m=Math.sin(i*d)/f;return this.w=r*p+c*m,this.x=n*p+o*m,this.y=s*p+h*m,this.z=a*p+l*m,this},e.transformVector=function(t,e){void 0===e&&(e=new pt);var i=t.x,n=t.y,s=t.z,a=this.x,r=this.y,o=this.z,h=this.w,l=h*i+r*s-o*n,c=h*n+o*i-a*s,u=h*s+a*n-r*i,d=-a*i-r*n-o*s;return e.x=l*h+d*-a+c*-o-u*-r,e.y=c*h+d*-r+u*-a-l*-o,e.z=u*h+d*-o+l*-r-c*-a,e},e.toString=function(){return"["+this.x+", "+this.y+", "+this.z+", "+this.w+"]"},t}();Tt.IDENTITY=Object.freeze(new Tt(0,0,0,1)),Tt.ZERO=Object.freeze(new Tt(0,0,0,0));var At=new pt,Mt=new pt,Ct=new pt,Et=new pt,Pt=new pt,Rt=function(){function t(t,e){void 0===t&&(t=new pt),void 0===e&&(e=new pt(.5,.5,.5)),this.center=t,this.halfExtents=e,this._min=new pt,this._max=new pt}var e=t.prototype;return e.add=function(t){var e=this.center,i=e.x,n=e.y,s=e.z,a=this.halfExtents,r=a.x,o=a.y,h=a.z,l=i-r,c=i+r,u=n-o,d=n+o,f=s-h,p=s+h,m=t.center,_=m.x,g=m.y,v=m.z,y=t.halfExtents,x=y.x,b=y.y,S=y.z,w=_-x,T=_+x,A=g-b,M=g+b,C=v-S,E=v+S;wc&&(c=T),Ad&&(d=M),Cp&&(p=E),e.x=.5*(l+c),e.y=.5*(u+d),e.z=.5*(f+p),a.x=.5*(c-l),a.y=.5*(d-u),a.z=.5*(p-f)},e.copy=function(t){this.center.copy(t.center),this.halfExtents.copy(t.halfExtents)},e.clone=function(){return new t(this.center.clone(),this.halfExtents.clone())},e.intersects=function(t){var e=this.getMax(),i=this.getMin(),n=t.getMax(),s=t.getMin();return i.x<=n.x&&e.x>=s.x&&i.y<=n.y&&e.y>=s.y&&i.z<=n.z&&e.z>=s.z},e._intersectsRay=function(t,e){var i=At.copy(this.getMin()).sub(t.origin),n=Mt.copy(this.getMax()).sub(t.origin),s=t.direction;0===s.x?(i.x=i.x<0?-Number.MAX_VALUE:Number.MAX_VALUE,n.x=n.x<0?-Number.MAX_VALUE:Number.MAX_VALUE):(i.x/=s.x,n.x/=s.x),0===s.y?(i.y=i.y<0?-Number.MAX_VALUE:Number.MAX_VALUE,n.y=n.y<0?-Number.MAX_VALUE:Number.MAX_VALUE):(i.y/=s.y,n.y/=s.y),0===s.z?(i.z=i.z<0?-Number.MAX_VALUE:Number.MAX_VALUE,n.z=n.z<0?-Number.MAX_VALUE:Number.MAX_VALUE):(i.z/=s.z,n.z/=s.z);var a=Ct.set(Math.min(i.x,n.x),Math.min(i.y,n.y),Math.min(i.z,n.z)),r=Et.set(Math.max(i.x,n.x),Math.max(i.y,n.y),Math.max(i.z,n.z)),o=Math.min(Math.min(r.x,r.y),r.z),h=Math.max(Math.max(a.x,a.y),a.z),l=o>=h&&h>=0;return l&&e.copy(t.direction).mulScalar(h).add(t.origin),l},e._fastIntersectsRay=function(t){var e=At,i=Mt,n=Ct,s=Et,a=Pt,r=t.direction;return e.sub2(t.origin,this.center),s.set(Math.abs(e.x),Math.abs(e.y),Math.abs(e.z)),n.mul2(e,r),!(s.x>this.halfExtents.x&&n.x>=0)&&(!(s.y>this.halfExtents.y&&n.y>=0)&&(!(s.z>this.halfExtents.z&&n.z>=0)&&(a.set(Math.abs(r.x),Math.abs(r.y),Math.abs(r.z)),i.cross(r,e),i.set(Math.abs(i.x),Math.abs(i.y),Math.abs(i.z)),!(i.x>this.halfExtents.y*a.z+this.halfExtents.z*a.y)&&(!(i.y>this.halfExtents.x*a.z+this.halfExtents.z*a.x)&&!(i.z>this.halfExtents.x*a.y+this.halfExtents.y*a.x)))))},e.intersectsRay=function(t,e){return e?this._intersectsRay(t,e):this._fastIntersectsRay(t)},e.setMinMax=function(t,e){this.center.add2(e,t).mulScalar(.5),this.halfExtents.sub2(e,t).mulScalar(.5)},e.getMin=function(){return this._min.copy(this.center).sub(this.halfExtents)},e.getMax=function(){return this._max.copy(this.center).add(this.halfExtents)},e.containsPoint=function(t){var e=this.getMin(),i=this.getMax();return!(t.xi.x||t.yi.y||t.zi.z)},e.setFromTransformedAabb=function(t,e,i){void 0===i&&(i=!1);var n=t.center,s=t.halfExtents,a=e.data,r=a[0],o=a[4],h=a[8],l=a[1],c=a[5],u=a[9],d=a[2],f=a[6],p=a[10];if(i){var m=r*r+o*o+h*h;if(m>0){var _=1/Math.sqrt(m);r*=_,o*=_,h*=_}if((m=l*l+c*c+u*u)>0){var g=1/Math.sqrt(m);l*=g,c*=g,u*=g}if((m=d*d+f*f+p*p)>0){var v=1/Math.sqrt(m);d*=v,f*=v,p*=v}}this.center.set(a[12]+r*n.x+o*n.y+h*n.z,a[13]+l*n.x+c*n.y+u*n.z,a[14]+d*n.x+f*n.y+p*n.z),this.halfExtents.set(Math.abs(r)*s.x+Math.abs(o)*s.y+Math.abs(h)*s.z,Math.abs(l)*s.x+Math.abs(c)*s.y+Math.abs(u)*s.z,Math.abs(d)*s.x+Math.abs(f)*s.y+Math.abs(p)*s.z)},e.compute=function(t,e){if((e=void 0===e?t.length/3:e)>0){for(var i=At.set(t[0],t[1],t[2]),n=Mt.set(t[0],t[1],t[2]),s=1;sn.x&&(n.x=a),r>n.y&&(n.y=r),o>n.z&&(n.z=o)}this.setMinMax(i,n)}},e.intersectsBoundingSphere=function(t){return this._distanceToBoundingSphereSq(t)<=t.radius*t.radius},e._distanceToBoundingSphereSq=function(t){for(var e=this.getMin(),i=this.getMax(),n=0,s=["x","y","z"],a=0;a<3;++a){var r=0,o=t.center[s[a]],h=e[s[a]],l=i[s[a]],c=0;ol&&(r+=(c=o-l)*c),n+=r}return n},e._expand=function(t,e){At.add2(this.getMin(),t),Mt.add2(this.getMax(),e),this.setMinMax(At,Mt)},t}(),It=new pt,Lt=new pt,Dt=function(){function t(t,e){void 0===t&&(t=new pt),void 0===e&&(e=.5),this.center=t,this.radius=e}var e=t.prototype;return e.containsPoint=function(t){var e=It.sub2(t,this.center).lengthSq(),i=this.radius;return e0&&n>0)return!1;var a=n*n-s;if(a<0)return!1;var r=Math.abs(-n-Math.sqrt(a));return e&&e.copy(t.direction).mulScalar(r).add(t.origin),!0},e.intersectsBoundingSphere=function(t){It.sub2(t.center,this.center);var e=t.radius+this.radius;return It.lengthSq()<=e*e},t}(),kt="none",Ot="linear",Ft={0:"PCF3",1:"VSM8",2:"VSM16",3:"VSM32",4:"PCF5",5:"PCF1"},Bt=128,Nt=256,Ut=1024,zt=2048,Vt=4096,Gt=8192,Wt=18,Ht=[new pt,new pt,new pt,new pt,new pt,new pt,new pt,new pt],Xt=function(){function t(){this.planes=[];for(var t=0;t<6;t++)this.planes[t]=[]}var e=t.prototype;return e.setFromMat4=function(t){var e,i=t.data,n=this.planes;(e=n[0])[0]=i[3]-i[0],e[1]=i[7]-i[4],e[2]=i[11]-i[8],e[3]=i[15]-i[12];var s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s,(e=n[1])[0]=i[3]+i[0],e[1]=i[7]+i[4],e[2]=i[11]+i[8],e[3]=i[15]+i[12],s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s,(e=n[2])[0]=i[3]+i[1],e[1]=i[7]+i[5],e[2]=i[11]+i[9],e[3]=i[15]+i[13],s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s,(e=n[3])[0]=i[3]-i[1],e[1]=i[7]-i[5],e[2]=i[11]-i[9],e[3]=i[15]-i[13],s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s,(e=n[4])[0]=i[3]-i[2],e[1]=i[7]-i[6],e[2]=i[11]-i[10],e[3]=i[15]-i[14],s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s,(e=n[5])[0]=i[3]+i[2],e[1]=i[7]+i[6],e[2]=i[11]+i[10],e[3]=i[15]+i[14],s=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),e[0]/=s,e[1]/=s,e[2]/=s,e[3]/=s},e.containsPoint=function(t){var e,i;for(e=0;e<6;e++)if((i=this.planes[e])[0]*t.x+i[1]*t.y+i[2]*t.z+i[3]<=0)return!1;return!0},e.containsSphere=function(t){var e,i,n,s=0,a=t.radius,r=t.center,o=r.x,h=r.y,l=r.z,c=this.planes;for(i=0;i<6;i++){if((e=(n=c[i])[0]*o+n[1]*h+n[2]*l+n[3])<=-a)return 0;e>a&&s++}return 6===s?2:1},t.getPoints=function(t,e,i){e=e||t._nearClip,i=i||t._farClip;var n=t._fov*Math.PI/180,s=0===t._projection?Math.tan(n/2)*e:t._orthoHeight,a=s*t._aspectRatio,r=Ht;return r[0].x=a,r[0].y=-s,r[0].z=-e,r[1].x=a,r[1].y=s,r[1].z=-e,r[2].x=-a,r[2].y=s,r[2].z=-e,r[3].x=-a,r[3].y=-s,r[3].z=-e,0===t._projection&&(a=(s=Math.tan(n/2)*i)*t._aspectRatio),r[4].x=a,r[4].y=-s,r[4].z=-i,r[5].x=a,r[5].y=s,r[5].z=-i,r[6].x=-a,r[6].y=s,r[6].z=-i,r[7].x=-a,r[7].y=-s,r[7].z=-i,r},t}(),qt=function(){function t(t,e){void 0===t&&(t=new pt),void 0===e&&(e=new pt(0,0,-1)),this.origin=t,this.direction=e}return t.prototype.set=function(t,e){return this.origin.copy(t),this.direction.copy(e),this},t}(),Yt=new qt,jt=new pt,Kt=new Dt,Zt=new wt,$t=function(){function t(t,e){void 0===t&&(t=new wt),void 0===e&&(e=new pt(.5,.5,.5)),this.halfExtents=e,this._modelTransform=t.clone().invert(),this._worldTransform=t.clone(),this._aabb=new Rt(new pt,this.halfExtents)}var e=t.prototype;return e.intersectsRay=function(t,e){if(this._modelTransform.transformPoint(t.origin,Yt.origin),this._modelTransform.transformVector(t.direction,Yt.direction),e){var i=this._aabb._intersectsRay(Yt,e);return Zt.copy(this._modelTransform).invert().transformPoint(e,e),i}return this._aabb._fastIntersectsRay(Yt)},e.containsPoint=function(t){return this._modelTransform.transformPoint(t,jt),this._aabb.containsPoint(jt)},e.intersectsBoundingSphere=function(t){return this._modelTransform.transformPoint(t.center,Kt.center),Kt.radius=t.radius,!!this._aabb.intersectsBoundingSphere(Kt)},q(t,[{key:"worldTransform",get:function(){return this._worldTransform},set:function(t){this._worldTransform.copy(t),this._modelTransform.copy(t).invert()}}]),t}(),Qt=new pt,Jt=function(){function t(t,e){void 0===t&&(t=new pt),void 0===e&&(e=new pt(0,0,1)),this.normal=e,this.point=t}var e=t.prototype;return e.intersectsLine=function(t,e,i){var n=-this.normal.dot(this.point),s=this.normal.dot(t)+n,a=s/(s-(this.normal.dot(e)+n)),r=a>=0&&a<=1;return r&&i&&i.lerp(t,e,a),r},e.intersectsRay=function(t,e){var i=Qt.sub2(this.point,t.origin),n=this.normal.dot(i)/this.normal.dot(t.direction),s=n>=0;return s&&e&&e.copy(t.direction).mulScalar(n).add(t.origin),s},t}(),te=10,ee=11,ie=12,ne=13,se=14,ae=16,re=17,oe=21,he=24,le=25,ce="POSITION",ue="NORMAL",de="TANGENT",fe="BLENDWEIGHT",pe="BLENDINDICES",me="COLOR",_e="TEXCOORD",ge="TEXCOORD0",ve="TEXCOORD1",ye="TEXCOORD2",xe="TEXCOORD3",be="TEXCOORD4",Se="TEXCOORD5",we="TEXCOORD6",Te="TEXCOORD7",Ae="ATTR",Me="ATTR0",Ce="ATTR1",Ee="ATTR2",Pe="ATTR3",Re="ATTR4",Ie="ATTR5",Le="ATTR6",De="ATTR7",ke="ATTR8",Oe="ATTR9",Fe="ATTR10",Be="ATTR11",Ne="ATTR12",Ue="ATTR13",ze="ATTR14",Ve="ATTR15",Ge="default",We="rgbm",He="rgbe",Xe="swizzleGGGR",qe="none",Ye="cube",je="equirect",Ke="octahedral",Ze=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array],$e=[1,1,2,2,4,4,4],Qe={Int8Array:0,Uint8Array:1,Int16Array:2,Uint16Array:3,Int32Array:4,Uint32Array:5,Float32Array:6},Je=[Uint8Array,Uint16Array,Uint32Array],ti=[1,2,4],ei={POSITION:0,NORMAL:1,BLENDWEIGHT:2,BLENDINDICES:3,COLOR:4,TEXCOORD0:5,TEXCOORD1:6,TEXCOORD2:7,TEXCOORD3:8,TEXCOORD4:9,TEXCOORD5:10,TEXCOORD6:11,TEXCOORD7:12,TANGENT:13,ATTR0:0,ATTR1:1,ATTR2:2,ATTR3:3,ATTR4:4,ATTR5:5,ATTR6:6,ATTR7:7,ATTR8:8,ATTR9:9,ATTR10:10,ATTR11:11,ATTR12:12,ATTR13:13,ATTR14:14,ATTR15:15},ii=0,ni=function(){function t(t,e,i,n,s){void 0===n&&(n=0),this.device=t,this.format=e,this.numVertices=i,this.usage=n,this.id=ii++,this.impl=t.createVertexBufferImpl(this,e),this.instancing=!1,this.numBytes=e.verticesByteSize?e.verticesByteSize:e.size*i,t._vram.vb+=this.numBytes,s?this.setData(s):this.storage=new ArrayBuffer(this.numBytes),this.device.buffers.push(this)}var e=t.prototype;return e.destroy=function(){var t=this.device,e=t.buffers.indexOf(this);-1!==e&&t.buffers.splice(e,1),this.impl.destroy(t),t._vram.vb-=this.storage.byteLength},e.loseContext=function(){this.impl.loseContext()},e.getFormat=function(){return this.format},e.getUsage=function(){return this.usage},e.getNumVertices=function(){return this.numVertices},e.lock=function(){return this.storage},e.unlock=function(){this.impl.unlock(this)},e.setData=function(t){return t.byteLength===this.numBytes&&(this.storage=t,this.unlock(),!0)},t}();function si(t){for(var e=0,i=0,n=t.length;i 0.5) {\n\t\t\t\tif (dAtten > 0.00001) {\n\t\t\t\t\t\tdirLm.xyz = dirLm.xyz * 2.0 - vec3(1.0);\n\t\t\t\t\t\tdAtten = saturate(dAtten);\n\t\t\t\t\t\tgl_FragColor.rgb = normalize(dLightDirNormW.xyz*dAtten + dirLm.xyz*dirLm.w) * 0.5 + vec3(0.5);\n\t\t\t\t\t\tgl_FragColor.a = dirLm.w + dAtten;\n\t\t\t\t\t\tgl_FragColor.a = max(gl_FragColor.a, 1.0 / 255.0);\n\t\t\t\t} else {\n\t\t\t\t\t\tgl_FragColor = dirLm;\n\t\t\t\t}\n\t\t} else {\n\t\t\t\tgl_FragColor.rgb = dirLm.xyz;\n\t\t\t\tgl_FragColor.a = max(dirLm.w, dAtten > 0.00001? (1.0/255.0) : 0.0);\n\t\t}\n",bakeLmEndPS:"\n\t\tgl_FragColor.rgb = dDiffuseLight;\n\t\tgl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(0.5));\n\t\tgl_FragColor.rgb /= 8.0;\n\t\tgl_FragColor.a = clamp( max( max( gl_FragColor.r, gl_FragColor.g ), max( gl_FragColor.b, 1.0 / 255.0 ) ), 0.0,1.0 );\n\t\tgl_FragColor.a = ceil(gl_FragColor.a * 255.0) / 255.0;\n\t\tgl_FragColor.rgb /= gl_FragColor.a;\n",basePS:"\nuniform vec3 view_position;\n\nuniform vec3 light_globalAmbient;\n\nfloat square(float x) {\n\t\treturn x*x;\n}\n\nfloat saturate(float x) {\n\t\treturn clamp(x, 0.0, 1.0);\n}\n\nvec3 saturate(vec3 x) {\n\t\treturn clamp(x, vec3(0.0), vec3(1.0));\n}\n",baseVS:"\nattribute vec3 vertex_position;\nattribute vec3 vertex_normal;\nattribute vec4 vertex_tangent;\nattribute vec2 vertex_texCoord0;\nattribute vec2 vertex_texCoord1;\nattribute vec4 vertex_color;\n\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\nuniform mat3 matrix_normal;\n\nvec3 dPositionW;\nmat4 dModelMatrix;\nmat3 dNormalMatrix;\n",baseNineSlicedPS:"\n#define NINESLICED\n\nvarying vec2 vMask;\nvarying vec2 vTiledUv;\n\nuniform mediump vec4 innerOffset;\nuniform mediump vec2 outerScale;\nuniform mediump vec4 atlasRect;\n\nvec2 nineSlicedUv;\n",baseNineSlicedVS:"\n#define NINESLICED\n\nvarying vec2 vMask;\nvarying vec2 vTiledUv;\n\nuniform mediump vec4 innerOffset;\nuniform mediump vec2 outerScale;\nuniform mediump vec4 atlasRect;\n",baseNineSlicedTiledPS:"\n#define NINESLICED\n#define NINESLICETILED\n\nvarying vec2 vMask;\nvarying vec2 vTiledUv;\n\nuniform mediump vec4 innerOffset;\nuniform mediump vec2 outerScale;\nuniform mediump vec4 atlasRect;\n\nvec2 nineSlicedUv;\n",biasConstPS:"\n#define SHADOWBIAS\n\nfloat getShadowBias(float resolution, float maxBias) {\n\t\treturn maxBias;\n}\n",blurVSMPS:"\nvarying vec2 vUv0;\n\nuniform sampler2D source;\nuniform vec2 pixelOffset;\n\n#ifdef GAUSS\nuniform float weight[SAMPLES];\n#endif\n\n#ifdef PACKED\nfloat decodeFloatRG(vec2 rg) {\n\t\treturn rg.y*(1.0/255.0) + rg.x;\n}\n\nvec2 encodeFloatRG( float v ) {\n\t\tvec2 enc = vec2(1.0, 255.0) * v;\n\t\tenc = fract(enc);\n\t\tenc -= enc.yy * vec2(1.0/255.0, 1.0/255.0);\n\t\treturn enc;\n}\n#endif\n\nvoid main(void) {\n\t\tvec3 moments = vec3(0.0);\n\t\tvec2 uv = vUv0 - pixelOffset * (float(SAMPLES) * 0.5);\n\t\tfor (int i=0; i shadowZ ? 1.0 : 0.0;\n\t\t}\n\n\t\t#endif\n\n\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\n\t\tfloat getShadowOmniClusteredPCF3(sampler2D shadowMap, vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 dir) {\n\n\t\t\t\tfloat shadowTextureResolution = shadowParams.x;\n\t\t\t\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, dir);\n\n\t\t\t\t// pcf3\n\t\t\t\tfloat shadowZ = length(dir) * shadowParams.w + shadowParams.z;\n\t\t\t\tdShadowCoord = vec3(uv, shadowZ);\n\t\t\t\treturn getShadowPCF3x3(shadowMap, shadowParams.xyz);\n\t\t}\n\n\t\t#endif\n\n\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\n\t\t// we don't have PCF5 implementation for webgl1, use PCF3\n\t\tfloat getShadowOmniClusteredPCF5(sampler2D shadowMap, vec4 shadowParams, vec3 omniAtlasViewport, float shadowEdgePixels, vec3 dir) {\n\n\t\t\t\tfloat shadowTextureResolution = shadowParams.x;\n\t\t\t\tvec2 uv = getCubemapAtlasCoordinates(omniAtlasViewport, shadowEdgePixels, shadowTextureResolution, dir);\n\n\t\t\t\t// pcf3\n\t\t\t\tfloat shadowZ = length(dir) * shadowParams.w + shadowParams.z;\n\t\t\t\tdShadowCoord = vec3(uv, shadowZ);\n\t\t\t\treturn getShadowPCF3x3(shadowMap, shadowParams.xyz);\n\t\t}\n\n\t\t#endif\n\n#endif\n\n\n// Clustered Spot Sampling using atlas\n\n#ifdef GL2\n\n\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\n\t\tfloat getShadowSpotClusteredPCF1(sampler2DShadow shadowMap, vec4 shadowParams) {\n\t\t\t\treturn texture(shadowMap, dShadowCoord);\n\t\t}\n\n\t\t#endif\n\n\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\n\t\tfloat getShadowSpotClusteredPCF3(sampler2DShadow shadowMap, vec4 shadowParams) {\n\t\t\t\treturn getShadowSpotPCF3x3(shadowMap, shadowParams);\n\t\t}\n\n\t\t#endif\n\n\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\n\t\tfloat getShadowSpotClusteredPCF5(sampler2DShadow shadowMap, vec4 shadowParams) {\n\t\t\t\treturn getShadowPCF5x5(shadowMap, shadowParams.xyz);\n\t\t}\n\t\t#endif\n\n#else\n\n\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\n\t\tfloat getShadowSpotClusteredPCF1(sampler2D shadowMap, vec4 shadowParams) {\n\n\t\t\t\tfloat depth = unpackFloat(texture2D(shadowMap, dShadowCoord.xy));\n\n\t\t\t\treturn depth > dShadowCoord.z ? 1.0 : 0.0;\n\n\t\t}\n\n\t\t#endif\n\n\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF3)\n\n\t\tfloat getShadowSpotClusteredPCF3(sampler2D shadowMap, vec4 shadowParams) {\n\t\t\t\treturn getShadowSpotPCF3x3(shadowMap, shadowParams);\n\t\t}\n\n\t\t#endif\n\n\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF5)\n\n\t\t// we don't have PCF5 implementation for webgl1, use PCF3\n\t\tfloat getShadowSpotClusteredPCF5(sampler2D shadowMap, vec4 shadowParams) {\n\t\t\t\treturn getShadowSpotPCF3x3(shadowMap, shadowParams);\n\t\t}\n\n\t\t#endif\n\n#endif\n",clusteredLightUtilsPS:"\n// Converts unnormalized direction vector to a cubemap face index [0..5] and uv coordinates within the face in [0..1] range.\n// Additionally offset to a tile in atlas within 3x3 subdivision is provided\nvec2 getCubemapFaceCoordinates(const vec3 dir, out float faceIndex, out vec2 tileOffset)\n{\n\t\tvec3 vAbs = abs(dir);\n\t\tfloat ma;\n\t\tvec2 uv;\n\t\tif (vAbs.z >= vAbs.x && vAbs.z >= vAbs.y) {\t // front / back\n\n\t\t\t\tfaceIndex = dir.z < 0.0 ? 5.0 : 4.0;\n\t\t\t\tma = 0.5 / vAbs.z;\n\t\t\t\tuv = vec2(dir.z < 0.0 ? -dir.x : dir.x, -dir.y);\n\n\t\t\t\ttileOffset.x = 2.0;\n\t\t\t\ttileOffset.y = dir.z < 0.0 ? 1.0 : 0.0;\n\n\t\t} else if(vAbs.y >= vAbs.x) {\t// top index 2, bottom index 3\n\n\t\t\t\tfaceIndex = dir.y < 0.0 ? 3.0 : 2.0;\n\t\t\t\tma = 0.5 / vAbs.y;\n\t\t\t\tuv = vec2(dir.x, dir.y < 0.0 ? -dir.z : dir.z);\n\n\t\t\t\ttileOffset.x = 1.0;\n\t\t\t\ttileOffset.y = dir.y < 0.0 ? 1.0 : 0.0;\n\n\t\t} else {\t\t// left / right\n\n\t\t\t\tfaceIndex = dir.x < 0.0 ? 1.0 : 0.0;\n\t\t\t\tma = 0.5 / vAbs.x;\n\t\t\t\tuv = vec2(dir.x < 0.0 ? dir.z : -dir.z, -dir.y);\n\n\t\t\t\ttileOffset.x = 0.0;\n\t\t\t\ttileOffset.y = dir.x < 0.0 ? 1.0 : 0.0;\n\n\t\t}\n\t\treturn uv * ma + 0.5;\n}\n\n// converts unnormalized direction vector to a texture coordinate for a cubemap face stored within texture atlas described by the viewport\nvec2 getCubemapAtlasCoordinates(const vec3 omniAtlasViewport, float shadowEdgePixels, float shadowTextureResolution, const vec3 dir) {\n\n\t\tfloat faceIndex;\n\t\tvec2 tileOffset;\n\t\tvec2 uv = getCubemapFaceCoordinates(dir, faceIndex, tileOffset);\n\n\t\t// move uv coordinates inwards inside to compensate for larger fov when rendering shadow into atlas\n\t\tfloat atlasFaceSize = omniAtlasViewport.z;\n\t\tfloat tileSize = shadowTextureResolution * atlasFaceSize;\n\t\tfloat offset = shadowEdgePixels / tileSize;\n\t\tuv = uv * vec2(1.0 - offset * 2.0) + vec2(offset * 1.0);\n\n\t\t// scale uv coordinates to cube face area within the viewport\n\t\tuv *= atlasFaceSize;\n\n\t\t// offset into face of the atlas (3x3 grid)\n\t\tuv += tileOffset * atlasFaceSize;\n\n\t\t// offset into the atlas viewport\n\t\tuv += omniAtlasViewport.xy;\n\n\t\treturn uv;\n}\n",clusteredLightPS:"\nuniform sampler2D clusterWorldTexture;\nuniform sampler2D lightsTexture8;\nuniform highp sampler2D lightsTextureFloat;\n\n// complex ifdef expression are not supported, handle it here\n// defined(CLUSTER_COOKIES) || defined(CLUSTER_SHADOWS)\n#if defined(CLUSTER_COOKIES)\n\t\t#define CLUSTER_COOKIES_OR_SHADOWS\n#endif\n#if defined(CLUSTER_SHADOWS)\n\t\t#define CLUSTER_COOKIES_OR_SHADOWS\n#endif\n\n#ifdef CLUSTER_SHADOWS\n\t\t#ifdef GL2\n\t\t\t\t// TODO: when VSM shadow is supported, it needs to use sampler2D in webgl2\n\t\t\t\tuniform sampler2DShadow shadowAtlasTexture;\n\t\t#else\n\t\t\t\tuniform sampler2D shadowAtlasTexture;\n\t\t#endif\n#endif\n\n#ifdef CLUSTER_COOKIES\n\t\tuniform sampler2D cookieAtlasTexture;\n#endif\n\nuniform float clusterPixelsPerCell;\nuniform vec3 clusterCellsCountByBoundsSize;\nuniform vec4 lightsTextureInvSize;\nuniform vec3 clusterTextureSize;\nuniform vec3 clusterBoundsMin;\nuniform vec3 clusterBoundsDelta;\nuniform vec3 clusterCellsDot;\nuniform vec3 clusterCellsMax;\nuniform vec2 clusterCompressionLimit0;\nuniform vec2 shadowAtlasParams;\n\n// global variable to limit shared area light values to be evaluated only one time\nfloat LTCLightValuesEvaluated = 0.0;\n\n// structure storing light properties of a clustered light\nstruct ClusterLightData {\n\n\t\t// v coordinate to look up the light textures\n\t\tfloat lightV;\n\n\t\t// type of the light (spot or omni)\n\t\tfloat type;\n\n\t\t// area light shape\n\t\tfloat shape;\n\n\t\t// area light sizes / orientation\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\n\t\t// light follow mode\n\t\tfloat falloffMode;\n\n\t\t// 1.0 if the light is shadow casting\n\t\tfloat castShadows;\n\n\t\t// shadow bias values\n\t\tfloat shadowBias;\n\t\tfloat shadowNormalBias;\n\n\t\t// world space position\n\t\tvec3 position;\n\n\t\t// world space direction (spot light only)\n\t\tvec3 direction;\n\n\t\t// range of the light\n\t\tfloat range;\n\n\t\t// spot light inner and outer angle cosine\n\t\tfloat innerConeAngleCos;\n\t\tfloat outerConeAngleCos;\n\n\t\t// color\n\t\tvec3 color;\n\n\t\t// atlas viewport for omni light shadow and cookie (.xy is offset to the viewport slot, .z is size of the face in the atlas)\n\t\tvec3 omniAtlasViewport;\n\n\t\t// 1.0 if the light has a cookie texture\n\t\tfloat cookie;\n\n\t\t// 1.0 if cookie texture is rgb, otherwise it is using a single channel selectable by cookieChannelMask\n\t\tfloat cookieRgb;\n\n\t\t// intensity of the cookie\n\t\tfloat cookieIntensity;\n\n\t\t// channel mask - one of the channels has 1, the others are 0\n\t\tvec4 cookieChannelMask;\n\n\t\t// light mask\n\t\tfloat mask;\n};\n\n// Note: on some devices (tested on Pixel 3A XL), this matrix when stored inside the light struct has lower precision compared to\n// when stored outside, so we store it outside to avoid spot shadow flickering. This might need to be done to other / all members\n// of the structure if further similar issues are observed.\n\n// shadow (spot light only) / cookie projection matrix\nmat4 lightProjectionMatrix;\n\n// macros for light properties\n#define isClusteredLightCastShadow(light) ( light.castShadows > 0.5 )\n#define isClusteredLightCookie(light) (light.cookie > 0.5 )\n#define isClusteredLightCookieRgb(light) (light.cookieRgb > 0.5 )\n#define isClusteredLightSpot(light) ( light.type > 0.5 )\n#define isClusteredLightFalloffLinear(light) ( light.falloffMode < 0.5 )\n\n// macros to test light shape\n// Note: Following functions need to be called serially in listed order as they do not test both '>' and '<'\n#define isClusteredLightArea(light) ( light.shape > 0.1 )\n#define isClusteredLightRect(light) ( light.shape < 0.3 )\n#define isClusteredLightDisk(light) ( light.shape < 0.6 )\n\n// macro to test light mask (mesh accepts dynamic vs lightmapped lights)\n#ifdef CLUSTER_MESH_DYNAMIC_LIGHTS\n\t\t// accept lights marked as dynamic or both dynamic and lightmapped\n\t\t#define acceptLightMask(light) ( light.mask < 0.75)\n#else\n\t\t// accept lights marked as lightmapped or both dynamic and lightmapped\n\t\t#define acceptLightMask(light) ( light.mask > 0.25)\n#endif\n\nvec4 decodeClusterLowRange4Vec4(vec4 d0, vec4 d1, vec4 d2, vec4 d3) {\n\t\treturn vec4(\n\t\t\t\tbytes2floatRange4(d0, -2.0, 2.0),\n\t\t\t\tbytes2floatRange4(d1, -2.0, 2.0),\n\t\t\t\tbytes2floatRange4(d2, -2.0, 2.0),\n\t\t\t\tbytes2floatRange4(d3, -2.0, 2.0)\n\t\t);\n}\n\n// use LOD sampling if supported to sample data textures as it has better chance of getting skipped inside dynamic branches\n#ifdef SUPPORTS_TEXLOD\n\t\t#define textureData(texture, uv) texture2DLodEXT(texture, uv, 0.0)\n#else\n\t\t#define textureData(texture, uv) texture2D(texture, uv)\n#endif\n\nvec4 sampleLightsTexture8(const ClusterLightData clusterLightData, float index) {\n\t\treturn textureData(lightsTexture8, vec2(index * lightsTextureInvSize.z, clusterLightData.lightV));\n}\n\nvec4 sampleLightTextureF(const ClusterLightData clusterLightData, float index) {\n\t\treturn textureData(lightsTextureFloat, vec2(index * lightsTextureInvSize.x, clusterLightData.lightV));\n}\n\nvoid decodeClusterLightCore(inout ClusterLightData clusterLightData, float lightIndex) {\n\n\t\t// read omni light properties\n\t\tclusterLightData.lightV = (lightIndex + 0.5) * lightsTextureInvSize.w;\n\n\t\t// shared data from 8bit texture\n\t\tvec4 lightInfo = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_FLAGS);\n\t\tclusterLightData.type = lightInfo.x;\n\t\tclusterLightData.shape = lightInfo.y;\n\t\tclusterLightData.falloffMode = lightInfo.z;\n\t\tclusterLightData.castShadows = lightInfo.w;\n\n\t\t// color\n\t\tvec4 colorA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COLOR_A);\n\t\tvec4 colorB = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COLOR_B);\n\t\tclusterLightData.color = vec3(bytes2float2(colorA.xy), bytes2float2(colorA.zw), bytes2float2(colorB.xy)) * clusterCompressionLimit0.y;\n\n\t\t// cookie\n\t\tclusterLightData.cookie = colorB.z;\n\n\t\t// light mask\n\t\tclusterLightData.mask = colorB.w;\n\n\t\t#ifdef CLUSTER_TEXTURE_FLOAT\n\n\t\t\t\tvec4 lightPosRange = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_POSITION_RANGE);\n\t\t\t\tclusterLightData.position = lightPosRange.xyz;\n\t\t\t\tclusterLightData.range = lightPosRange.w;\n\n\t\t\t\t// spot light direction\n\t\t\t\tvec4 lightDir_Unused = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_SPOT_DIRECTION);\n\t\t\t\tclusterLightData.direction = lightDir_Unused.xyz;\n\n\t\t#else\t // 8bit\n\n\t\t\t\tvec4 encPosX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_X);\n\t\t\t\tvec4 encPosY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_Y);\n\t\t\t\tvec4 encPosZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_POSITION_Z);\n\t\t\t\tclusterLightData.position = vec3(bytes2float4(encPosX), bytes2float4(encPosY), bytes2float4(encPosZ)) * clusterBoundsDelta + clusterBoundsMin;\n\n\t\t\t\tvec4 encRange = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_RANGE);\n\t\t\t\tclusterLightData.range = bytes2float4(encRange) * clusterCompressionLimit0.x;\n\n\t\t\t\t// spot light direction\n\t\t\t\tvec4 encDirX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_X);\n\t\t\t\tvec4 encDirY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_Y);\n\t\t\t\tvec4 encDirZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_DIRECTION_Z);\n\t\t\t\tclusterLightData.direction = vec3(bytes2float4(encDirX), bytes2float4(encDirY), bytes2float4(encDirZ)) * 2.0 - 1.0;\n\n\t\t#endif\n}\n\nvoid decodeClusterLightSpot(inout ClusterLightData clusterLightData) {\n\n\t\t// spot light cos angles\n\t\tvec4 coneAngle = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SPOT_ANGLES);\n\t\tclusterLightData.innerConeAngleCos = bytes2float2(coneAngle.xy) * 2.0 - 1.0;\n\t\tclusterLightData.outerConeAngleCos = bytes2float2(coneAngle.zw) * 2.0 - 1.0;\n}\n\nvoid decodeClusterLightOmniAtlasViewport(inout ClusterLightData clusterLightData) {\n\t\t#ifdef CLUSTER_TEXTURE_FLOAT\n\t\t\t\tclusterLightData.omniAtlasViewport = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_0).xyz;\n\t\t#else\n\t\t\t\tvec4 viewportA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_ATLAS_VIEWPORT_A);\n\t\t\t\tvec4 viewportB = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_ATLAS_VIEWPORT_B);\n\t\t\t\tclusterLightData.omniAtlasViewport = vec3(bytes2float2(viewportA.xy), bytes2float2(viewportA.zw), bytes2float2(viewportB.xy));\n\t\t#endif\n}\n\nvoid decodeClusterLightAreaData(inout ClusterLightData clusterLightData) {\n\t\t#ifdef CLUSTER_TEXTURE_FLOAT\n\t\t\t\tclusterLightData.halfWidth = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_AREA_DATA_WIDTH).xyz;\n\t\t\t\tclusterLightData.halfHeight = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_AREA_DATA_HEIGHT).xyz;\n\t\t#else\n\t\t\t\tvec4 areaWidthX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_X);\n\t\t\t\tvec4 areaWidthY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_Y);\n\t\t\t\tvec4 areaWidthZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_WIDTH_Z);\n\t\t\t\tclusterLightData.halfWidth = vec3(mantissaExponent2Float(areaWidthX), mantissaExponent2Float(areaWidthY), mantissaExponent2Float(areaWidthZ));\n\n\t\t\t\tvec4 areaHeightX = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_X);\n\t\t\t\tvec4 areaHeightY = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_Y);\n\t\t\t\tvec4 areaHeightZ = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_AREA_DATA_HEIGHT_Z);\n\t\t\t\tclusterLightData.halfHeight = vec3(mantissaExponent2Float(areaHeightX), mantissaExponent2Float(areaHeightY), mantissaExponent2Float(areaHeightZ));\n\t\t#endif\n}\n\nvoid decodeClusterLightProjectionMatrixData(inout ClusterLightData clusterLightData) {\n\t\t\n\t\t// shadow matrix\n\t\t#ifdef CLUSTER_TEXTURE_FLOAT\n\t\t\t\tvec4 m0 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_0);\n\t\t\t\tvec4 m1 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_1);\n\t\t\t\tvec4 m2 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_2);\n\t\t\t\tvec4 m3 = sampleLightTextureF(clusterLightData, CLUSTER_TEXTURE_F_PROJ_MAT_3);\n\t\t#else\n\t\t\t\tvec4 m00 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_00);\n\t\t\t\tvec4 m01 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_01);\n\t\t\t\tvec4 m02 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_02);\n\t\t\t\tvec4 m03 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_03);\n\t\t\t\tvec4 m0 = decodeClusterLowRange4Vec4(m00, m01, m02, m03);\n\n\t\t\t\tvec4 m10 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_10);\n\t\t\t\tvec4 m11 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_11);\n\t\t\t\tvec4 m12 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_12);\n\t\t\t\tvec4 m13 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_13);\n\t\t\t\tvec4 m1 = decodeClusterLowRange4Vec4(m10, m11, m12, m13);\n\n\t\t\t\tvec4 m20 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_20);\n\t\t\t\tvec4 m21 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_21);\n\t\t\t\tvec4 m22 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_22);\n\t\t\t\tvec4 m23 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_23);\n\t\t\t\tvec4 m2 = decodeClusterLowRange4Vec4(m20, m21, m22, m23);\n\n\t\t\t\tvec4 m30 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_30);\n\t\t\t\tvec4 m31 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_31);\n\t\t\t\tvec4 m32 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_32);\n\t\t\t\tvec4 m33 = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_PROJ_MAT_33);\n\t\t\t\tvec4 m3 = vec4(mantissaExponent2Float(m30), mantissaExponent2Float(m31), mantissaExponent2Float(m32), mantissaExponent2Float(m33));\n\t\t#endif\n\t\t\n\t\tlightProjectionMatrix = mat4(m0, m1, m2, m3);\n}\n\nvoid decodeClusterLightShadowData(inout ClusterLightData clusterLightData) {\n\t\t\n\t\t// shadow biases\n\t\tvec4 biases = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_SHADOW_BIAS);\n\t\tclusterLightData.shadowBias = bytes2floatRange2(biases.xy, -1.0, 20.0),\n\t\tclusterLightData.shadowNormalBias = bytes2float2(biases.zw);\n}\n\nvoid decodeClusterLightCookieData(inout ClusterLightData clusterLightData) {\n\n\t\tvec4 cookieA = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COOKIE_A);\n\t\tclusterLightData.cookieIntensity = cookieA.x;\n\t\tclusterLightData.cookieRgb = cookieA.y;\n\n\t\tclusterLightData.cookieChannelMask = sampleLightsTexture8(clusterLightData, CLUSTER_TEXTURE_8_COOKIE_B);\n}\n\nvoid evaluateLight(ClusterLightData light) {\n\n\t\tdAtten3 = vec3(1.0);\n\n\t\t// evaluate omni part of the light\n\t\tgetLightDirPoint(light.position);\n\n\t\t#ifdef CLUSTER_AREALIGHTS\n\n\t\t// distance attenuation\n\t\tif (isClusteredLightArea(light)) { // area light\n\n\t\t\t\t// area lights\n\t\t\t\tdecodeClusterLightAreaData(light);\n\n\t\t\t\t// evaluate material based area lights data, shared by all area lights\n\t\t\t\tif (LTCLightValuesEvaluated < 0.5) {\n\t\t\t\t\t\tLTCLightValuesEvaluated = 1.0;\n\t\t\t\t\t\tcalcLTCLightValues();\n\t\t\t\t}\n\n\t\t\t\t// handle light shape\n\t\t\t\tif (isClusteredLightRect(light)) {\n\t\t\t\t\t\tcalcRectLightValues(light.position, light.halfWidth, light.halfHeight);\n\t\t\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\t\t\t\tcalcDiskLightValues(light.position, light.halfWidth, light.halfHeight);\n\t\t\t\t} else { // sphere\n\t\t\t\t\t\tcalcSphereLightValues(light.position, light.halfWidth, light.halfHeight);\n\t\t\t\t}\n\n\t\t\t\tdAtten = getFalloffWindow(light.range);\n\n\t\t} else\n\n\t\t#endif\n\n\t\t{\t // punctual light\n\n\t\t\t\tif (isClusteredLightFalloffLinear(light))\n\t\t\t\t\t\tdAtten = getFalloffLinear(light.range);\n\t\t\t\telse\n\t\t\t\t\t\tdAtten = getFalloffInvSquared(light.range);\n\t\t}\n\n\t\tif (dAtten > 0.00001) {\n\n\t\t\t\t#ifdef CLUSTER_AREALIGHTS\n\n\t\t\t\tif (isClusteredLightArea(light)) { // area light\n\n\t\t\t\t\t\t// handle light shape\n\t\t\t\t\t\tif (isClusteredLightRect(light)) {\n\t\t\t\t\t\t\t\tdAttenD = getRectLightDiffuse() * 16.0;\n\t\t\t\t\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\t\t\t\t\t\tdAttenD = getDiskLightDiffuse() * 16.0;\n\t\t\t\t\t\t} else { // sphere\n\t\t\t\t\t\t\t\tdAttenD = getSphereLightDiffuse() * 16.0;\n\t\t\t\t\t\t}\n\n\t\t\t\t} else\n\n\t\t\t\t#endif\n\n\t\t\t\t{\n\t\t\t\t\t\tdAtten *= getLightDiffuse();\n\t\t\t\t}\n\n\t\t\t\t// spot light falloff\n\t\t\t\tif (isClusteredLightSpot(light)) {\n\t\t\t\t\t\tdecodeClusterLightSpot(light);\n\t\t\t\t\t\tdAtten *= getSpotEffect(light.direction, light.innerConeAngleCos, light.outerConeAngleCos);\n\t\t\t\t}\n\n\t\t\t\t#if defined(CLUSTER_COOKIES_OR_SHADOWS)\n\n\t\t\t\tif (dAtten > 0.00001) {\n\n\t\t\t\t\t\t// shadow / cookie\n\t\t\t\t\t\tif (isClusteredLightCastShadow(light) || isClusteredLightCookie(light)) {\n\n\t\t\t\t\t\t\t\t// shared shadow / cookie data depends on light type\n\t\t\t\t\t\t\t\tif (isClusteredLightSpot(light)) {\n\t\t\t\t\t\t\t\t\t\tdecodeClusterLightProjectionMatrixData(light);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tdecodeClusterLightOmniAtlasViewport(light);\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfloat shadowTextureResolution = shadowAtlasParams.x;\n\t\t\t\t\t\t\t\tfloat shadowEdgePixels = shadowAtlasParams.y;\n\n\t\t\t\t\t\t\t\t#ifdef CLUSTER_COOKIES\n\n\t\t\t\t\t\t\t\t// cookie\n\t\t\t\t\t\t\t\tif (isClusteredLightCookie(light)) {\n\t\t\t\t\t\t\t\t\t\tdecodeClusterLightCookieData(light);\n\n\t\t\t\t\t\t\t\t\t\tif (isClusteredLightSpot(light)) {\n\t\t\t\t\t\t\t\t\t\t\t\tdAtten3 = getCookie2DClustered(cookieAtlasTexture, lightProjectionMatrix, vPositionW, light.cookieIntensity, isClusteredLightCookieRgb(light), light.cookieChannelMask);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tdAtten3 = getCookieCubeClustered(cookieAtlasTexture, dLightDirW, light.cookieIntensity, isClusteredLightCookieRgb(light), light.cookieChannelMask, shadowTextureResolution, shadowEdgePixels, light.omniAtlasViewport);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t\t\t#ifdef CLUSTER_SHADOWS\n\n\t\t\t\t\t\t\t\t// shadow\n\t\t\t\t\t\t\t\tif (isClusteredLightCastShadow(light)) {\n\t\t\t\t\t\t\t\t\t\tdecodeClusterLightShadowData(light);\n\n\t\t\t\t\t\t\t\t\t\tvec4 shadowParams = vec4(shadowTextureResolution, light.shadowNormalBias, light.shadowBias, 1.0 / light.range);\n\n\t\t\t\t\t\t\t\t\t\tif (isClusteredLightSpot(light)) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// spot shadow\n\t\t\t\t\t\t\t\t\t\t\t\tgetShadowCoordPerspZbufferNormalOffset(lightProjectionMatrix, shadowParams);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdAtten *= getShadowSpotClusteredPCF1(shadowAtlasTexture, shadowParams);\n\t\t\t\t\t\t\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdAtten *= getShadowSpotClusteredPCF3(shadowAtlasTexture, shadowParams);\n\t\t\t\t\t\t\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdAtten *= getShadowSpotClusteredPCF5(shadowAtlasTexture, shadowParams);\n\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// omni shadow\n\t\t\t\t\t\t\t\t\t\t\t\tnormalOffsetPointShadow(shadowParams);\t// normalBias adjusted for distance\n\n\t\t\t\t\t\t\t\t\t\t\t\t#if defined(CLUSTER_SHADOW_TYPE_PCF1)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdAtten *= getShadowOmniClusteredPCF1(shadowAtlasTexture, shadowParams, light.omniAtlasViewport, shadowEdgePixels, dLightDirW);\n\t\t\t\t\t\t\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF3)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdAtten *= getShadowOmniClusteredPCF3(shadowAtlasTexture, shadowParams, light.omniAtlasViewport, shadowEdgePixels, dLightDirW);\n\t\t\t\t\t\t\t\t\t\t\t\t#elif defined(CLUSTER_SHADOW_TYPE_PCF5)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdAtten *= getShadowOmniClusteredPCF5(shadowAtlasTexture, shadowParams, light.omniAtlasViewport, shadowEdgePixels, dLightDirW);\n\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t#endif\n\n\t\t\t\t// diffuse / specular / clearcoat\n\t\t\t\t#ifdef CLUSTER_AREALIGHTS\n\n\t\t\t\tif (isClusteredLightArea(light)) { // area light\n\n\t\t\t\t\t\t// area light diffuse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvec3 areaDiffuse = (dAttenD * dAtten) * light.color * dAtten3;\n\n\t\t\t\t\t\t\t\t#if defined(CLUSTER_SPECULAR)\n\t\t\t\t\t\t\t\t\t\t#if defined(CLUSTER_CONSERVE_ENERGY)\n\t\t\t\t\t\t\t\t\t\t\t\tareaDiffuse = mix(areaDiffuse, vec3(0), dLTCSpecFres);\n\t\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t\t\t// area light diffuse - it does not mix diffuse lighting into specular attenuation\n\t\t\t\t\t\t\t\tdDiffuseLight += areaDiffuse;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// specular and clear coat are material settings and get included by a define based on the material\n\t\t\t\t\t\t#ifdef CLUSTER_SPECULAR\n\n\t\t\t\t\t\t\t\t// area light specular\n\t\t\t\t\t\t\t\tfloat areaLightSpecular;\n\n\t\t\t\t\t\t\t\tif (isClusteredLightRect(light)) {\n\t\t\t\t\t\t\t\t\t\tareaLightSpecular = getRectLightSpecular();\n\t\t\t\t\t\t\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\t\t\t\t\t\t\t\tareaLightSpecular = getDiskLightSpecular();\n\t\t\t\t\t\t\t\t} else { // sphere\n\t\t\t\t\t\t\t\t\t\tareaLightSpecular = getSphereLightSpecular();\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tdSpecularLight += dLTCSpecFres * areaLightSpecular * dAtten * light.color * dAtten3;\n\n\t\t\t\t\t\t\t\t#ifdef CLUSTER_CLEAR_COAT\n\n\t\t\t\t\t\t\t\t\t\t// area light specular clear coat\n\t\t\t\t\t\t\t\t\t\tfloat areaLightSpecularCC;\n\n\t\t\t\t\t\t\t\t\t\tif (isClusteredLightRect(light)) {\n\t\t\t\t\t\t\t\t\t\t\t\tareaLightSpecularCC = getRectLightSpecularCC();\n\t\t\t\t\t\t\t\t\t\t} else if (isClusteredLightDisk(light)) {\n\t\t\t\t\t\t\t\t\t\t\t\tareaLightSpecularCC = getDiskLightSpecularCC();\n\t\t\t\t\t\t\t\t\t\t} else { // sphere\n\t\t\t\t\t\t\t\t\t\t\t\tareaLightSpecularCC = getSphereLightSpecularCC();\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tccSpecularLight += ccLTCSpecFres * areaLightSpecularCC * dAtten * light.color\t* dAtten3;\n\n\t\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t} else\n\n\t\t\t\t#endif\n\n\t\t\t\t{\t\t// punctual light\n\n\t\t\t\t\t\t// punctual light diffuse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvec3 punctualDiffuse = dAtten * light.color * dAtten3;\n\n\t\t\t\t\t\t\t\t#if defined(CLUSTER_AREALIGHTS)\n\t\t\t\t\t\t\t\t#if defined(CLUSTER_SPECULAR)\n\t\t\t\t\t\t\t\t#if defined(CLUSTER_CONSERVE_ENERGY)\n\t\t\t\t\t\t\t\t\t\tpunctualDiffuse = mix(punctualDiffuse, vec3(0), dSpecularity);\n\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t#endif\n\t\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t\t\tdDiffuseLight += punctualDiffuse;\n\t\t\t\t\t\t}\n\t \n\t\t\t\t\t\t// specular and clear coat are material settings and get included by a define based on the material\n\t\t\t\t\t\t#ifdef CLUSTER_SPECULAR\n\n\t\t\t\t\t\t\t\t// specular\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tvec3 punctualSpecular = getLightSpecular() * dAtten * light.color * dAtten3;\n\n\t\t\t\t\t\t\t\t\t\t#if defined(CLUSTER_AREALIGHTS)\n\t\t\t\t\t\t\t\t\t\t\t\tpunctualSpecular *= dSpecularity;\n\t\t\t\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t\t\t\t\tdSpecularLight += punctualSpecular;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t#ifdef CLUSTER_CLEAR_COAT\n\n\t\t\t\t\t\t\t\t\t\tvec3 punctualCC = getLightSpecularCC() * dAtten * light.color * dAtten3;\n\n\t\t\t\t\t\t\t\t\t\t#if defined(CLUSTER_AREALIGHTS)\n\t\t\t\t\t\t\t\t\t\t\t\tpunctualCC *= ccSpecularity;\n\t\t\t\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t\t\t\t\tccSpecularLight += punctualCC;\n\t\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t#endif\n\t\t\t\t}\n\t\t}\n}\n\nvoid evaluateClusterLight(float lightIndex) {\n\n\t\t// decode core light data from textures\n\t\tClusterLightData clusterLightData;\n\t\tdecodeClusterLightCore(clusterLightData, lightIndex);\n\n\t\t// evaluate light if it uses accepted light mask\n\t\tif (acceptLightMask(clusterLightData))\n\t\t\t\tevaluateLight(clusterLightData);\n}\n\nvoid addClusteredLights() {\n\t\t// world space position to 3d integer cell cordinates in the cluster structure\n\t\tvec3 cellCoords = floor((vPositionW - clusterBoundsMin) * clusterCellsCountByBoundsSize);\n\n\t\t// no lighting when cell coordinate is out of range\n\t\tif (!(any(lessThan(cellCoords, vec3(0.0))) || any(greaterThanEqual(cellCoords, clusterCellsMax)))) {\n\n\t\t\t\t// cell index (mapping from 3d cell coordinates to linear memory)\n\t\t\t\tfloat cellIndex = dot(clusterCellsDot, cellCoords);\n\n\t\t\t\t// convert cell index to uv coordinates\n\t\t\t\tfloat clusterV = floor(cellIndex * clusterTextureSize.y);\n\t\t\t\tfloat clusterU = cellIndex - (clusterV * clusterTextureSize.x);\n\t\t\t\tclusterV = (clusterV + 0.5) * clusterTextureSize.z;\n\n\t\t\t\t// loop over maximum possible number of supported light cells\n\t\t\t\tconst float maxLightCells = 256.0 / 4.0;\t// 8 bit index, each stores 4 lights\n\t\t\t\tfor (float lightCellIndex = 0.5; lightCellIndex < maxLightCells; lightCellIndex++) {\n\n\t\t\t\t\t\tvec4 lightIndices = textureData(clusterWorldTexture, vec2(clusterTextureSize.y * (clusterU + lightCellIndex), clusterV));\n\t\t\t\t\t\tvec4 indices = lightIndices * 255.0;\n\n\t\t\t\t\t\t// evaluate up to 4 lights. This is written using a loop instead of manually unrolling to keep shader compile time smaller\n\t\t\t\t\t\tfor (int i = 0; i < 4; i++) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif (indices.x <= 0.0)\n\t\t\t\t\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\t\t\tevaluateClusterLight(indices.x); \n\t\t\t\t\t\t\t\tindices = indices.yzwx;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// end of the cell array\n\t\t\t\t\t\tif (lightCellIndex > clusterPixelsPerCell) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t}\n}\n",combineClearCoatPS:"\nvec3 combineColorCC() {\n\t\treturn combineColor()+(ccSpecularLight*ccSpecularity+ccReflection.rgb*ccSpecularity*ccReflection.a);\n}\n",combineDiffusePS:"\nvec3 combineColor() {\n\t\treturn dAlbedo * dDiffuseLight;\n}\n",combineDiffuseSpecularPS:"\nvec3 combineColor() {\n\t\treturn mix(dAlbedo * dDiffuseLight, dSpecularLight + dReflection.rgb * dReflection.a, dSpecularity);\n}\n",combineDiffuseSpecularNoConservePS:"\nvec3 combineColor() {\n\t\treturn dAlbedo * dDiffuseLight + (dSpecularLight + dReflection.rgb * dReflection.a) * dSpecularity;\n}\n",combineDiffuseSpecularNoReflPS:"\nvec3 combineColor() {\n\t\treturn dAlbedo * dDiffuseLight + dSpecularLight * dSpecularity;\n}\n",combineDiffuseSpecularNoReflSeparateAmbientPS:"\nuniform vec3 material_ambient;\n\nvec3 combineColor() {\n\t\treturn (dDiffuseLight - light_globalAmbient) * dAlbedo + dSpecularLight * dSpecularity + material_ambient * light_globalAmbient;\n}\n",combineDiffuseSpecularOldPS:"\nvec3 combineColor() {\n\t\treturn mix(dAlbedo * dDiffuseLight + dSpecularLight * dSpecularity, dReflection.rgb, dReflection.a);\n}\n",cookiePS:"\n// light cookie functionality for non-clustered lights\nvec4 getCookie2D(sampler2D tex, mat4 transform, float intensity) {\n\t\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\t\tprojPos.xy /= projPos.w;\n\t\treturn mix(vec4(1.0), texture2D(tex, projPos.xy), intensity);\n}\n\nvec4 getCookie2DClip(sampler2D tex, mat4 transform, float intensity) {\n\t\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\t\tprojPos.xy /= projPos.w;\n\t\tif (projPos.x < 0.0 || projPos.x > 1.0 || projPos.y < 0.0 || projPos.y > 1.0 || projPos.z < 0.0) return vec4(0.0);\n\t\treturn mix(vec4(1.0), texture2D(tex, projPos.xy), intensity);\n}\n\nvec4 getCookie2DXform(sampler2D tex, mat4 transform, float intensity, vec4 cookieMatrix, vec2 cookieOffset) {\n\t\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\t\tprojPos.xy /= projPos.w;\n\t\tprojPos.xy += cookieOffset;\n\t\tvec2 uv = mat2(cookieMatrix) * (projPos.xy-vec2(0.5)) + vec2(0.5);\n\t\treturn mix(vec4(1.0), texture2D(tex, uv), intensity);\n}\n\nvec4 getCookie2DClipXform(sampler2D tex, mat4 transform, float intensity, vec4 cookieMatrix, vec2 cookieOffset) {\n\t\tvec4 projPos = transform * vec4(vPositionW, 1.0);\n\t\tprojPos.xy /= projPos.w;\n\t\tprojPos.xy += cookieOffset;\n\t\tif (projPos.x < 0.0 || projPos.x > 1.0 || projPos.y < 0.0 || projPos.y > 1.0 || projPos.z < 0.0) return vec4(0.0);\n\t\tvec2 uv = mat2(cookieMatrix) * (projPos.xy-vec2(0.5)) + vec2(0.5);\n\t\treturn mix(vec4(1.0), texture2D(tex, uv), intensity);\n}\n\nvec4 getCookieCube(samplerCube tex, mat4 transform, float intensity) {\n\t\treturn mix(vec4(1.0), textureCube(tex, dLightDirNormW * mat3(transform)), intensity);\n}\n",cubeMapProjectBoxPS:"\nuniform vec3 envBoxMin, envBoxMax;\n\nvec3 cubeMapProject(vec3 nrdir) {\n\t\tnrdir = cubeMapRotate(nrdir);\n\n\t\tvec3 rbmax = (envBoxMax - vPositionW) / nrdir;\n\t\tvec3 rbmin = (envBoxMin - vPositionW) / nrdir;\n\n\t\tvec3 rbminmax;\n\t\trbminmax.x = nrdir.x>0.0? rbmax.x : rbmin.x;\n\t\trbminmax.y = nrdir.y>0.0? rbmax.y : rbmin.y;\n\t\trbminmax.z = nrdir.z>0.0? rbmax.z : rbmin.z;\n\n\t\tfloat fa = min(min(rbminmax.x, rbminmax.y), rbminmax.z);\n\n\t\tvec3 posonbox = vPositionW + nrdir * fa;\n\t\tvec3 envBoxPos = (envBoxMin + envBoxMax) * 0.5;\n\t\treturn normalize(posonbox - envBoxPos);\n}\n",cubeMapProjectNonePS:"\nvec3 cubeMapProject(vec3 dir) {\n\t\treturn cubeMapRotate(dir);\n}\n",cubeMapRotatePS:"\n#ifdef CUBEMAP_ROTATION\nuniform mat3 cubeMapRotationMatrix;\n#endif\n\nvec3 cubeMapRotate(vec3 refDir) {\n#ifdef CUBEMAP_ROTATION\n\t\treturn refDir * cubeMapRotationMatrix;\n#else\n\t\treturn refDir;\n#endif\n}\n",detailModesPS:"\nvec3 detailMode_mul(vec3 c1, vec3 c2) {\n\t\treturn c1 * c2;\n}\n\nvec3 detailMode_add(vec3 c1, vec3 c2) {\n\t\treturn c1 + c2;\n}\n\n// https://en.wikipedia.org/wiki/Blend_modes#Screen\nvec3 detailMode_screen(vec3 c1, vec3 c2) {\n\t\treturn 1.0 - (1.0 - c1)*(1.0 - c2);\n}\n\n// https://en.wikipedia.org/wiki/Blend_modes#Overlay\nvec3 detailMode_overlay(vec3 c1, vec3 c2) {\n\t\treturn mix(1.0 - 2.0*(1.0 - c1)*(1.0 - c2), 2.0*c1*c2, step(c1, vec3(0.5)));\n}\n\nvec3 detailMode_min(vec3 c1, vec3 c2) {\n\t\treturn min(c1, c2);\n}\n\nvec3 detailMode_max(vec3 c1, vec3 c2) {\n\t\treturn max(c1, c2);\n}\n",diffusePS:"\n#ifdef MAPCOLOR\nuniform vec3 material_diffuse;\n#endif\n\n#ifdef MAPTEXTURE\nuniform sampler2D texture_diffuseMap;\n#endif\n\nvoid getAlbedo() {\n\t\tdAlbedo = vec3(1.0);\n\n\t\t#ifdef MAPCOLOR\n\t\tdAlbedo *= material_diffuse.rgb;\n\t\t#endif\n\n\t\t#ifdef MAPTEXTURE\n\t\tdAlbedo *= gammaCorrectInput(addAlbedoDetail(texture2D(texture_diffuseMap, $UV, textureBias).$CH));\n\t\t#endif\n\n\t\t#ifdef MAPVERTEX\n\t\tdAlbedo *= gammaCorrectInput(saturate(vVertexColor.$VC));\n\t\t#endif\n}\n",diffuseDetailMapPS:"\n#ifdef MAPTEXTURE\nuniform sampler2D texture_diffuseDetailMap;\n#endif\n\nvec3 addAlbedoDetail(vec3 albedo) {\n\t\t#ifdef MAPTEXTURE\n\t\tvec3 albedoDetail = vec3(texture2D(texture_diffuseDetailMap, $UV, textureBias).$CH);\n\t\treturn detailMode_$DETAILMODE(albedo, albedoDetail);\n\t\t#else\n\t\treturn albedo;\n\t\t#endif\n}\n",dilatePS:"\n#define SHADER_NAME Dilate\n\nvarying vec2 vUv0;\n\nuniform sampler2D source;\nuniform vec2 pixelOffset;\n\nvoid main(void) {\n\t\tvec4 c = texture2D(source, vUv0);\n\t\tc = c.a>0.0? c : texture2D(source, vUv0 - pixelOffset);\n\t\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(0, -pixelOffset.y));\n\t\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(pixelOffset.x, -pixelOffset.y));\n\t\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(-pixelOffset.x, 0));\n\t\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(pixelOffset.x, 0));\n\t\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(-pixelOffset.x, pixelOffset.y));\n\t\tc = c.a>0.0? c : texture2D(source, vUv0 + vec2(0, pixelOffset.y));\n\t\tc = c.a>0.0? c : texture2D(source, vUv0 + pixelOffset);\n\t\tgl_FragColor = c;\n}\n",bilateralDeNoisePS:"\n// bilateral filter, based on https://www.shadertoy.com/view/4dfGDH# and\n// http://people.csail.mit.edu/sparis/bf_course/course_notes.pdf\n\n// A bilateral filter is a non-linear, edge-preserving, and noise-reducing smoothing filter for images.\n// It replaces the intensity of each pixel with a weighted average of intensity values from nearby pixels.\n// This weight can be based on a Gaussian distribution. Crucially, the weights depend not only on\n// Euclidean distance of pixels, but also on the radiometric differences (e.g., range differences, such\n// as color intensity, depth distance, etc.). This preserves sharp edges.\n\n#define SHADER_NAME BilateralDeNoise\n\nfloat normpdf3(in vec3 v, in float sigma) {\n\t\treturn 0.39894 * exp(-0.5 * dot(v, v) / (sigma * sigma)) / sigma;\n}\n\nvec3 decodeRGBM(vec4 rgbm) {\n\t\tvec3 color = (8.0 * rgbm.a) * rgbm.rgb;\n\t\treturn color * color;\n}\n\nfloat saturate(float x) {\n\t\treturn clamp(x, 0.0, 1.0);\n}\n\nvec4 encodeRGBM(vec3 color) { // modified RGBM\n\t\tvec4 encoded;\n\t\tencoded.rgb = pow(color.rgb, vec3(0.5));\n\t\tencoded.rgb *= 1.0 / 8.0;\n\n\t\tencoded.a = saturate( max( max( encoded.r, encoded.g ), max( encoded.b, 1.0 / 255.0 ) ) );\n\t\tencoded.a = ceil(encoded.a * 255.0) / 255.0;\n\n\t\tencoded.rgb /= encoded.a;\n\t\treturn encoded;\n}\n\n// filter size\n#define MSIZE 15\n\nvarying vec2 vUv0;\nuniform sampler2D source;\nuniform vec2 pixelOffset;\nuniform vec2 sigmas;\nuniform float bZnorm;\nuniform float kernel[MSIZE];\n\nvoid main(void) {\n\t\t\n\t\tvec4 pixelRgbm = texture2D(source, vUv0);\n\n\t\t// lightmap specific optimization - skip pixels that were not baked\n\t\t// this also allows dilate filter that work on the output of this to work correctly, as it depends on .a being zero\n\t\t// to dilate, which the following blur filter would otherwise modify\n\t\tif (pixelRgbm.a <= 0.0) {\n\t\t\t\tgl_FragColor = pixelRgbm;\n\t\t\t\treturn ;\n\t\t}\n\n\t\t// range sigma - controls blurriness based on a pixel distance\n\t\tfloat sigma = sigmas.x;\n\n\t\t// domain sigma - controls blurriness based on a pixel similarity (to preserve edges)\n\t\tfloat bSigma = sigmas.y;\n\n\t\tvec3 pixelHdr = decodeRGBM(pixelRgbm);\n\t\tvec3 accumulatedHdr = vec3(0.0);\n\t\tfloat accumulatedFactor = 0.0;\n\n\t\t// read out the texels\n\t\tconst int kSize = (MSIZE-1)/2;\n\t\tfor (int i = -kSize; i <= kSize; ++i) {\n\t\t\t\tfor (int j = -kSize; j <= kSize; ++j) {\n\t\t\t\t\t\t\n\t\t\t\t\t\t// sample the pixel with offset\n\t\t\t\t\t\tvec2 coord = vUv0 + vec2(float(i), float(j)) * pixelOffset;\n\t\t\t\t\t\tvec4 rgbm = texture2D(source, coord);\n\n\t\t\t\t\t\t// lightmap - only use baked pixels\n\t\t\t\t\t\tif (rgbm.a > 0.0) {\n\t\t\t\t\t\t\t\tvec3 hdr = decodeRGBM(rgbm);\n\n\t\t\t\t\t\t\t\t// bilateral factors\n\t\t\t\t\t\t\t\tfloat factor = kernel[kSize + j] * kernel[kSize + i];\n\t\t\t\t\t\t\t\tfactor *= normpdf3(hdr - pixelHdr, bSigma) * bZnorm;\n\n\t\t\t\t\t\t\t\t// accumulate\n\t\t\t\t\t\t\t\taccumulatedHdr += factor * hdr;\n\t\t\t\t\t\t\t\taccumulatedFactor += factor;\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t}\n\n\t\tgl_FragColor = encodeRGBM(accumulatedHdr / accumulatedFactor);\n}\n",decodePS:"\nvec3 decodeLinear(vec4 raw) {\n\t\treturn raw.rgb;\n}\n\nvec3 decodeGamma(vec4 raw) {\n\t\treturn pow(raw.xyz, vec3(2.2));\n}\n\nvec3 decodeRGBM(vec4 raw) {\n\t\tvec3 color = (8.0 * raw.a) * raw.rgb;\n\t\treturn color * color;\n}\n\nvec3 decodeRGBE(vec4 raw) {\n\t\tif (raw.a == 0.0) {\n\t\t\t\treturn vec3(0.0, 0.0, 0.0);\n\t\t} else {\n\t\t\t\treturn raw.xyz * pow(2.0, raw.w * 255.0 - 128.0);\n\t\t}\n}\n\nconst float PI = 3.141592653589793;\n\nvec2 toSpherical(vec3 dir) {\n\t\treturn vec2(dir.xz == vec2(0.0) ? 0.0 : atan(dir.x, dir.z), asin(dir.y));\n}\n\nvec2 toSphericalUv(vec3 dir) {\n\t\tvec2 uv = toSpherical(dir) / vec2(PI * 2.0, PI) + 0.5;\n\t\treturn vec2(uv.x, 1.0 - uv.y);\n}\n\n// equirectangular helper functions\n\n// envAtlas is fixed at 512 pixels. every equirect is generated with 1 pixel boundary.\nconst float atlasSize = 512.0;\nconst float seamSize = 1.0 / atlasSize;\n\n// map a normalized equirect UV to the given rectangle (taking 1 pixel seam into account).\nvec2 mapUv(vec2 uv, vec4 rect) {\n\t\treturn vec2(mix(rect.x + seamSize, rect.x + rect.z - seamSize, uv.x),\n\t\t\t\t\t\t\t\tmix(rect.y + seamSize, rect.y + rect.w - seamSize, uv.y));\n}\n\n// map a normalized equirect UV and roughness level to the correct atlas rect.\nvec2 mapRoughnessUv(vec2 uv, float level) {\n\t\tfloat t = 1.0 / exp2(level);\n\t\treturn mapUv(uv, vec4(0, 1.0 - t, t, t * 0.5));\n}\n\n// \nvec2 mapMip(vec2 uv, float level) {\n\t\tfloat t = 1.0 / exp2(level);\n\t\treturn mapUv(uv, vec4(1.0 - t, 1.0 - t, t, t * 0.5));\n}\n",emissivePS:"\n#ifdef MAPCOLOR\nuniform vec3 material_emissive;\n#endif\n\n#ifdef MAPFLOAT\nuniform float material_emissiveIntensity;\n#endif\n\n#ifdef MAPTEXTURE\nuniform sampler2D texture_emissiveMap;\n#endif\n\nvec3 getEmission() {\n\t\tvec3 emission = vec3(1.0);\n\n\t\t#ifdef MAPFLOAT\n\t\temission *= material_emissiveIntensity;\n\t\t#endif\n\n\t\t#ifdef MAPCOLOR\n\t\temission *= material_emissive;\n\t\t#endif\n\n\t\t#ifdef MAPTEXTURE\n\t\temission *= $texture2DSAMPLE(texture_emissiveMap, $UV, textureBias).$CH;\n\t\t#endif\n\n\t\t#ifdef MAPVERTEX\n\t\temission *= gammaCorrectInput(saturate(vVertexColor.$VC));\n\t\t#endif\n\n\t\treturn emission;\n}\n",endPS:"\n\t\t#ifdef CLEARCOAT\n\t\tgl_FragColor.rgb = combineColorCC();\n\t\t#else\n\t\tgl_FragColor.rgb = combineColor();\n\t\t#endif \n\n\t\tgl_FragColor.rgb += getEmission();\n\t\tgl_FragColor.rgb = addFog(gl_FragColor.rgb);\n\n\t\t#ifndef HDR\n\t\tgl_FragColor.rgb = toneMap(gl_FragColor.rgb);\n\t\tgl_FragColor.rgb = gammaCorrectOutput(gl_FragColor.rgb);\n\t\t#endif\n",endVS:"\n",envConstPS:"\nvec3 processEnvironment(vec3 color) {\n\t\treturn color;\n}\n",envMultiplyPS:"\nuniform float skyboxIntensity;\n\nvec3 processEnvironment(vec3 color) {\n\t\treturn color * skyboxIntensity;\n}\n",extensionPS:"\n",extensionVS:"\n",falloffInvSquaredPS:"\nfloat getFalloffWindow(float lightRadius) {\n\t\tfloat sqrDist = dot(dLightDirW, dLightDirW);\n\t\tfloat invRadius = 1.0 / lightRadius;\n\t\treturn square( saturate( 1.0 - square( sqrDist * square(invRadius) ) ) );\n}\n\nfloat getFalloffInvSquared(float lightRadius) {\n\t\tfloat sqrDist = dot(dLightDirW, dLightDirW);\n\t\tfloat falloff = 1.0 / (sqrDist + 1.0);\n\t\tfloat invRadius = 1.0 / lightRadius;\n\n\t\tfalloff *= 16.0;\n\t\tfalloff *= square( saturate( 1.0 - square( sqrDist * square(invRadius) ) ) );\n\n\t\treturn falloff;\n}\n",falloffLinearPS:"\nfloat getFalloffLinear(float lightRadius) {\n\t\tfloat d = length(dLightDirW);\n\t\treturn max(((lightRadius - d) / lightRadius), 0.0);\n}\n",fixCubemapSeamsNonePS:"\nvec3 fixSeams(vec3 vec, float mipmapIndex) {\n\t\treturn vec;\n}\n\nvec3 fixSeams(vec3 vec) {\n\t\treturn vec;\n}\n\nvec3 fixSeamsStatic(vec3 vec, float invRecMipSize) {\n\t\treturn vec;\n}\n\nvec3 calcSeam(vec3 vec) {\n\t\treturn vec3(0);\n}\n\nvec3 applySeam(vec3 vec, vec3 seam, float scale) {\n\t\treturn vec;\n}\n",fixCubemapSeamsStretchPS:"\nvec3 fixSeams(vec3 vec, float mipmapIndex) {\n\t\tvec3 avec = abs(vec);\n\t\tfloat scale = 1.0 - exp2(mipmapIndex) / 128.0;\n\t\tfloat M = max(max(avec.x, avec.y), avec.z);\n\t\tif (avec.x != M) vec.x *= scale;\n\t\tif (avec.y != M) vec.y *= scale;\n\t\tif (avec.z != M) vec.z *= scale;\n\t\treturn vec;\n}\n\nvec3 fixSeams(vec3 vec) {\n\t\tvec3 avec = abs(vec);\n\t\tfloat scale = 1.0 - 1.0 / 128.0;\n\t\tfloat M = max(max(avec.x, avec.y), avec.z);\n\t\tif (avec.x != M) vec.x *= scale;\n\t\tif (avec.y != M) vec.y *= scale;\n\t\tif (avec.z != M) vec.z *= scale;\n\t\treturn vec;\n}\n\nvec3 fixSeamsStatic(vec3 vec, float invRecMipSize) {\n\t\tvec3 avec = abs(vec);\n\t\tfloat scale = invRecMipSize;\n\t\tfloat M = max(max(avec.x, avec.y), avec.z);\n\t\tif (avec.x != M) vec.x *= scale;\n\t\tif (avec.y != M) vec.y *= scale;\n\t\tif (avec.z != M) vec.z *= scale;\n\t\treturn vec;\n}\n\nvec3 calcSeam(vec3 vec) {\n\t\tvec3 avec = abs(vec);\n\t\tfloat M = max(avec.x, max(avec.y, avec.z));\n\t\treturn vec3(avec.x != M ? 1.0 : 0.0,\n\t\t\t\t\t\t\t\tavec.y != M ? 1.0 : 0.0,\n\t\t\t\t\t\t\t\tavec.z != M ? 1.0 : 0.0);\n}\n\nvec3 applySeam(vec3 vec, vec3 seam, float scale) {\n\t\treturn vec * (seam * -scale + vec3(1.0));\n}\n",floatUnpackingPS:"\n// float unpacking functionality, complimentary to float-packing.js\nfloat bytes2float2(vec2 data) {\n\t\treturn dot(data, vec2(1.0, 1.0 / 255.0));\n}\n\nfloat bytes2float3(vec3 data) {\n\t\treturn dot(data, vec3(1.0, 1.0 / 255.0, 1.0 / 65025.0));\n}\n\nfloat bytes2float4(vec4 data) {\n\t\treturn dot(data, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0));\n}\n\nfloat bytes2floatRange2(vec2 data, float min, float max) {\n\t\treturn mix(min, max, bytes2float2(data));\n}\n\nfloat bytes2floatRange3(vec3 data, float min, float max) {\n\t\treturn mix(min, max, bytes2float3(data));\n}\n\nfloat bytes2floatRange4(vec4 data, float min, float max) {\n\t\treturn mix(min, max, bytes2float4(data));\n}\n\nfloat mantissaExponent2Float(vec4 pack)\n{\n\t\tfloat value = bytes2floatRange3(pack.xyz, -1.0, 1.0);\n\t\tfloat exponent = floor(pack.w * 255.0 - 127.0);\n\t\treturn value * exp2(exponent);\n}\n",fogExpPS:"\nuniform vec3 fog_color;\nuniform float fog_density;\nfloat dBlendModeFogFactor = 1.0;\n\nvec3 addFog(vec3 color) {\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\t\tfloat fogFactor = exp(-depth * fog_density);\n\t\tfogFactor = clamp(fogFactor, 0.0, 1.0);\n\t\treturn mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n",fogExp2PS:"\nuniform vec3 fog_color;\nuniform float fog_density;\nfloat dBlendModeFogFactor = 1.0;\n\nvec3 addFog(vec3 color) {\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\t\tfloat fogFactor = exp(-depth * depth * fog_density * fog_density);\n\t\tfogFactor = clamp(fogFactor, 0.0, 1.0);\n\t\treturn mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n",fogLinearPS:"\nuniform vec3 fog_color;\nuniform float fog_start;\nuniform float fog_end;\nfloat dBlendModeFogFactor = 1.0;\n\nvec3 addFog(vec3 color) {\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\t\tfloat fogFactor = (fog_end - depth) / (fog_end - fog_start);\n\t\tfogFactor = clamp(fogFactor, 0.0, 1.0);\n\t\treturn mix(fog_color * dBlendModeFogFactor, color, fogFactor);\n}\n",fogNonePS:"\nfloat dBlendModeFogFactor = 1.0;\n\nvec3 addFog(vec3 color) {\n\t\treturn color;\n}\n",fresnelSchlickPS:"\n// Schlick's approximation\nuniform float material_fresnelFactor; // unused\n\nvoid getFresnel() {\n\t\tfloat fresnel = 1.0 - max(dot(dNormalW, dViewDirW), 0.0);\n\t\tfloat fresnel2 = fresnel * fresnel;\n\t\tfresnel *= fresnel2 * fresnel2;\n\t\tfresnel *= dGlossiness * dGlossiness;\n\t\tdSpecularity = dSpecularity + (1.0 - dSpecularity) * fresnel;\n\n\t\t#ifdef CLEARCOAT\n\t\tfresnel = 1.0 - max(dot(ccNormalW, dViewDirW), 0.0);\n\t\tfresnel2 = fresnel * fresnel;\n\t\tfresnel *= fresnel2 * fresnel2;\n\t\tfresnel *= ccGlossiness * ccGlossiness;\n\t\tccSpecularity = ccSpecularity + (1.0 - ccSpecularity) * fresnel;\n\t\t#endif\n}\n",fullscreenQuadPS:"\nvarying vec2 vUv0;\n\nuniform sampler2D source;\n\nvoid main(void) {\n\t\tgl_FragColor = texture2D(source, vUv0);\n}\n",fullscreenQuadVS:"\nattribute vec2 vertex_position;\n\nvarying vec2 vUv0;\n\nvoid main(void)\n{\n\t\tgl_Position = vec4(vertex_position, 0.5, 1.0);\n\t\tvUv0 = vertex_position.xy*0.5+0.5;\n}\n",gamma1_0PS:"\nvec4 texture2DSRGB(sampler2D tex, vec2 uv) {\n\t\treturn texture2D(tex, uv);\n}\n\nvec4 texture2DSRGB(sampler2D tex, vec2 uv, float bias) {\n\t\treturn texture2D(tex, uv, bias);\n}\n\nvec4 textureCubeSRGB(samplerCube tex, vec3 uvw) {\n\t\treturn textureCube(tex, uvw);\n}\n\nvec3 gammaCorrectOutput(vec3 color) {\n\t\treturn color;\n}\n\nvec3 gammaCorrectInput(vec3 color) {\n\t\treturn color;\n}\n\nfloat gammaCorrectInput(float color) {\n\t\treturn color;\n}\n\nvec4 gammaCorrectInput(vec4 color) {\n\t\treturn color;\n}\n",gamma2_2PS:"\nvec3 gammaCorrectInput(vec3 color) {\n\t\treturn pow(color, vec3(2.2));\n}\n\nfloat gammaCorrectInput(float color) {\n\t\treturn pow(color, 2.2);\n}\n\nvec4 gammaCorrectInput(vec4 color) {\n\t\treturn vec4(pow(color.rgb, vec3(2.2)), color.a);\n}\n\nvec4 texture2DSRGB(sampler2D tex, vec2 uv) {\n\t\tvec4 rgba = texture2D(tex, uv);\n\t\trgba.rgb = gammaCorrectInput(rgba.rgb);\n\t\treturn rgba;\n}\n\nvec4 texture2DSRGB(sampler2D tex, vec2 uv, float bias) {\n\t\tvec4 rgba = texture2D(tex, uv, bias);\n\t\trgba.rgb = gammaCorrectInput(rgba.rgb);\n\t\treturn rgba;\n}\n\nvec4 textureCubeSRGB(samplerCube tex, vec3 uvw) {\n\t\tvec4 rgba = textureCube(tex, uvw);\n\t\trgba.rgb = gammaCorrectInput(rgba.rgb);\n\t\treturn rgba;\n}\n\nvec3 gammaCorrectOutput(vec3 color) {\n\t\t#ifdef HDR\n\t\treturn color;\n\t\t#else\n\t\tcolor += vec3(0.0000001);\n\t\treturn pow(color, vec3(0.45));\n\t\t#endif\n}\n",gles3PS:"\n#define varying in\nout highp vec4 pc_fragColor;\n#define gl_FragColor pc_fragColor\n#define texture2D texture\n#define textureCube texture\n#define texture2DProj textureProj\n#define texture2DLodEXT textureLod\n#define texture2DProjLodEXT textureProjLod\n#define textureCubeLodEXT textureLod\n#define texture2DGradEXT textureGrad\n#define texture2DProjGradEXT textureProjGrad\n#define textureCubeGradEXT textureGrad\n#define GL2\n#define SUPPORTS_TEXLOD\n",gles3VS:"\n#define attribute in\n#define varying out\n#define texture2D texture\n#define GL2\n#define VERTEXSHADER\n",glossPS:"\n#ifdef MAPFLOAT\nuniform float material_shininess;\n#endif\n\n#ifdef MAPTEXTURE\nuniform sampler2D texture_glossMap;\n#endif\n\nvoid getGlossiness() {\n\t\tdGlossiness = 1.0;\n\n\t\t#ifdef MAPFLOAT\n\t\tdGlossiness *= material_shininess;\n\t\t#endif\n\n\t\t#ifdef MAPTEXTURE\n\t\tdGlossiness *= texture2D(texture_glossMap, $UV, textureBias).$CH;\n\t\t#endif\n\n\t\t#ifdef MAPVERTEX\n\t\tdGlossiness *= saturate(vVertexColor.$VC);\n\t\t#endif\n\n\t\tdGlossiness += 0.0000001;\n}\n",instancingVS:"\nattribute vec4 instance_line1;\nattribute vec4 instance_line2;\nattribute vec4 instance_line3;\nattribute vec4 instance_line4;\n",lightDiffuseLambertPS:"\nfloat getLightDiffuse() {\n\t\treturn max(dot(dNormalW, -dLightDirNormW), 0.0);\n}\n",lightDirPointPS:"\nvoid getLightDirPoint(vec3 lightPosW) {\n\t\tdLightDirW = vPositionW - lightPosW;\n\t\tdLightDirNormW = normalize(dLightDirW);\n\t\tdLightPosW = lightPosW;\n}\n",lightmapDirPS:"\nuniform sampler2D texture_lightMap;\nuniform sampler2D texture_dirLightMap;\n\nvoid addLightMap() {\n\t\tvec3 color = $texture2DSAMPLE(texture_lightMap, $UV, textureBias).$CH;\n\t\tvec3 dir = texture2D(texture_dirLightMap, $UV, textureBias).xyz;\n\t\tif (dot(dir, vec3(1.0)) < 0.00001) {\n\t\t\t\tdDiffuseLight += color;\n\t\t} else {\n\t\t\t\tdLightDirNormW = normalize(dir * 2.0 - vec3(1.0));\n\n\t\t\t\tfloat vlight = saturate(dot(dLightDirNormW, -dVertexNormalW));\n\t\t\t\tfloat flight = saturate(dot(dLightDirNormW, -dNormalW));\n\t\t\t\tfloat nlight = (flight / max(vlight, 0.01)) * 0.5;\n\n\t\t\t\tdDiffuseLight += color * nlight * 2.0;\n\t\t}\n\n\t\tdSpecularLight += color * getLightSpecular();\n}\n",lightmapSinglePS:"\n#ifdef MAPTEXTURE\nuniform sampler2D texture_lightMap;\n#endif\n\nvoid addLightMap() {\n\t\tvec3 lm = vec3(1.0);\n\n\t\t#ifdef MAPTEXTURE\n\t\tlm *= $texture2DSAMPLE(texture_lightMap, $UV, textureBias).$CH;\n\t\t#endif\n\n\t\t#ifdef MAPVERTEX\n\t\tlm *= saturate(vVertexColor.$VC);\n\t\t#endif\n\t\t\n\t\tdDiffuseLight += lm;\n}\n",lightmapSingleVertPS:"\nvoid addLightMap() {\n\t\tdDiffuseLight += saturate(vVertexColor.$CH);\n}\n",lightSpecularAnisoGGXPS:"\n// Anisotropic GGX\nfloat calcLightSpecular(float tGlossiness, vec3 tNormalW) {\n\t\tfloat PI = 3.141592653589793;\n\t\tfloat roughness = max((1.0 - tGlossiness) * (1.0 - tGlossiness), 0.001);\n\t\tfloat anisotropy = material_anisotropy * roughness;\n \n\t\tfloat at = max((roughness + anisotropy), roughness / 4.0);\n\t\tfloat ab = max((roughness - anisotropy), roughness / 4.0);\n\n\t\tvec3 h = normalize(normalize(-dLightDirNormW) + normalize(dViewDirW));\n\n\t\tfloat NoH = dot(tNormalW, h);\n\t\tfloat ToH = dot(dTBN[0], h);\n\t\tfloat BoH = dot(dTBN[1], h);\n\n\t\tfloat a2 = at * ab;\n\t\tvec3 v = vec3(ab * ToH, at * BoH, a2 * NoH);\n\t\tfloat v2 = dot(v, v);\n\t\tfloat w2 = a2 / v2;\n\t\tfloat D = a2 * w2 * w2 * (1.0 / PI);\n\n\t\tfloat ToV = dot(dTBN[0], dViewDirW);\n\t\tfloat BoV = dot(dTBN[1], dViewDirW);\n\t\tfloat ToL = dot(dTBN[0], -dLightDirNormW);\n\t\tfloat BoL = dot(dTBN[1], -dLightDirNormW);\n\t\tfloat NoV = dot(tNormalW, dViewDirW);\n\t\tfloat NoL = dot(tNormalW, -dLightDirNormW);\n\n\t\tfloat lambdaV = NoL * length(vec3(at * ToV, ab * BoV, NoV));\n\t\tfloat lambdaL = NoV * length(vec3(at * ToL, ab * BoL, NoL));\n\t\tfloat G = 0.5 / (lambdaV + lambdaL);\n\n\t\treturn D * G;\n}\n\nfloat getLightSpecular() {\n\t\treturn calcLightSpecular(dGlossiness, dNormalW);\n}\n\nfloat getLightSpecularCC() {\n\t\treturn calcLightSpecular(ccGlossiness, ccNormalW);\n}\n",lightSpecularBlinnPS:"\n// Energy-conserving (hopefully) Blinn-Phong\nfloat calcLightSpecular(float tGlossiness, vec3 tNormalW) {\n\t\tvec3 h = normalize( -dLightDirNormW + dViewDirW );\n\t\tfloat nh = max( dot( h, tNormalW ), 0.0 );\n\n\t\tfloat specPow = exp2(tGlossiness * 11.0); // glossiness is linear, power is not; 0 - 2048\n\t\tspecPow = antiAliasGlossiness(specPow);\n\n\t\t// Hack: On Mac OS X, calling pow with zero for the exponent generates hideous artifacts so bias up a little\n\t\tspecPow = max(specPow, 0.0001);\n\n\t\treturn pow(nh, specPow) * (specPow + 2.0) / 8.0;\n}\n\nfloat getLightSpecular() {\n\t\treturn calcLightSpecular(dGlossiness, dNormalW);\n}\n\nfloat getLightSpecularCC() {\n\t\treturn calcLightSpecular(ccGlossiness, ccNormalW);\n}\n",lightSpecularPhongPS:"\nfloat calcLightSpecular(float tGlossiness, vec3 tReflDirW) {\n\t\tfloat specPow = tGlossiness;\n\n\t\tspecPow = antiAliasGlossiness(specPow);\n\n\t\t// Hack: On Mac OS X, calling pow with zero for the exponent generates hideous artifacts so bias up a little\n\t\treturn pow(max(dot(tReflDirW, -dLightDirNormW), 0.0), specPow + 0.0001);\n}\n\nfloat getLightSpecular() {\n\t\treturn calcLightSpecular(dGlossiness, dReflDirW);\n}\n\nfloat getLightSpecularCC() {\n\t\treturn calcLightSpecular(ccGlossiness, ccReflDirW);\n}\n",ltc:'\n// Real-Time Polygonal-Light Shading with Linearly Transformed Cosines\n// by Eric Heitz, Jonathan Dupuy, Stephen Hill and David Neubelt\n// code: https://github.com/selfshadow/ltc_code/\n\nmat3 transposeMat3( const in mat3 m ) {\n\t\tmat3 tmp;\n\t\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\t\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\t\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\t\treturn tmp;\n}\n\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\t\tconst float LUT_SIZE = 64.0;\n\t\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\t\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\t\tfloat dotNV = saturate( dot( N, V ) );\n\t\t// texture parameterized by sqrt( GGX alpha ) and sqrt( 1 - cos( theta ) )\n\t\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\t\tuv = uv * LUT_SCALE + LUT_BIAS;\n\t\treturn uv;\n}\n\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\t\t// Real-Time Area Lighting: a Journey from Research to Production (p.102)\n\t\t// An approximation of the form factor of a horizon-clipped rectangle.\n\t\tfloat l = length( f );\n\t\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\n\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\t\tfloat x = dot( v1, v2 );\n\t\tfloat y = abs( x );\n\t\t// rational polynomial approximation to theta / sin( theta ) / 2PI\n\t\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\t\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\t\tfloat v = a / b;\n\t\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\t\treturn cross( v1, v2 ) * theta_sintheta;\n}\n\nstruct Coords {\n\t\tvec3 coord0;\n\t\tvec3 coord1;\n\t\tvec3 coord2;\n\t\tvec3 coord3;\n};\n\nfloat LTC_EvaluateRect( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in Coords rectCoords) {\n\t\t// bail if point is on back side of plane of light\n\t\t// assumes ccw winding order of light vertices\n\t\tvec3 v1 = rectCoords.coord1 - rectCoords.coord0;\n\t\tvec3 v2 = rectCoords.coord3 - rectCoords.coord0;\n\t\t\n\t\tvec3 lightNormal = cross( v1, v2 );\n\t\t// if( dot( lightNormal, P - rectCoords.coord0 ) < 0.0 ) return 0.0;\n\t\tfloat factor = sign(-dot( lightNormal, P - rectCoords.coord0 ));\n\n\t\t// construct orthonormal basis around N\n\t\tvec3 T1, T2;\n\t\tT1 = normalize( V - N * dot( V, N ) );\n\t\tT2 =\tfactor * cross( N, T1 ); // negated from paper; possibly due to a different handedness of world coordinate system\n\t\t// compute transform\n\t\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\t\t// transform rect\n\t\tvec3 coords[ 4 ];\n\t\tcoords[ 0 ] = mat * ( rectCoords.coord0 - P );\n\t\tcoords[ 1 ] = mat * ( rectCoords.coord1 - P );\n\t\tcoords[ 2 ] = mat * ( rectCoords.coord2 - P );\n\t\tcoords[ 3 ] = mat * ( rectCoords.coord3 - P );\n\t\t// project rect onto sphere\n\t\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\t\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\t\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\t\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\t\t// calculate vector form factor\n\t\tvec3 vectorFormFactor = vec3( 0.0 );\n\t\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\t\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\t\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\t\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\t\t// adjust for horizon clipping\n\t\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\n\t\treturn result;\n}\n\nCoords dLTCCoords;\nCoords getLTCLightCoords(vec3 lightPos, vec3 halfWidth, vec3 halfHeight){\n\t\tCoords coords;\n\t\tcoords.coord0 = lightPos + halfWidth - halfHeight;\n\t\tcoords.coord1 = lightPos - halfWidth - halfHeight;\n\t\tcoords.coord2 = lightPos - halfWidth + halfHeight;\n\t\tcoords.coord3 = lightPos + halfWidth + halfHeight;\n\t\treturn coords;\n}\n\nfloat dSphereRadius;\nCoords getSphereLightCoords(vec3 lightPos, vec3 halfWidth, vec3 halfHeight){\n\t\t// used for simple sphere light falloff\n\t\t// also, the code only handles a spherical light, it cannot be non-uniformly scaled in world space, and so we enforce it here\n\t\tdSphereRadius = max(length(halfWidth), length(halfHeight));\n\n\t\t// Billboard the 2d light quad to reflection vector, as it\'s used for specular. This allows us to use disk math for the sphere.\n\t\tvec3 f = reflect(normalize(lightPos - view_position), vNormalW);\n\t\tvec3 w = normalize(cross(f, halfHeight));\n\t\tvec3 h = normalize(cross(f, w));\n\n\t\treturn getLTCLightCoords(lightPos, w * dSphereRadius, h * dSphereRadius);\n}\n\n// used for LTC LUT texture lookup\nvec2 dLTCUV;\n#ifdef CLEARCOAT\nvec2 ccLTCUV;\n#endif\nvec2 getLTCLightUV(float tGlossiness, vec3 tNormalW)\n{\n\t\tfloat roughness = max((1.0 - tGlossiness) * (1.0 - tGlossiness), 0.001);\n\t\treturn LTC_Uv( tNormalW, dViewDirW, roughness );\n}\n\n//used for energy conservation and to modulate specular\nvec3 dLTCSpecFres;\n#ifdef CLEARCOAT\nvec3 ccLTCSpecFres;\n#endif\nvec3 getLTCLightSpecFres(vec2 uv, vec3 tSpecularity)\n{\n\t\tvec4 t2 = texture2D( areaLightsLutTex2, uv );\n\n\t\t#ifdef AREA_R8_G8_B8_A8_LUTS\n\t\tt2 *= vec4(0.693103,1,1,1);\n\t\tt2 += vec4(0.306897,0,0,0);\n\t\t#endif\n\n\t\treturn tSpecularity * t2.x + ( vec3( 1.0 ) - tSpecularity) * t2.y;\n}\n\nvoid calcLTCLightValues()\n{\n\t\tdLTCUV = getLTCLightUV(dGlossiness, dNormalW);\n\t\tdLTCSpecFres = getLTCLightSpecFres(dLTCUV, dSpecularityNoFres); \n\n#ifdef CLEARCOAT\n\t\tccLTCUV = getLTCLightUV(ccGlossiness, ccNormalW);\n\t\tccLTCSpecFres = getLTCLightSpecFres(ccLTCUV, vec3(ccSpecularityNoFres));\n#endif\n}\n\nvoid calcRectLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n\t\tdLTCCoords = getLTCLightCoords(lightPos, halfWidth, halfHeight);\n}\nvoid calcDiskLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n\t\tcalcRectLightValues(lightPos, halfWidth, halfHeight);\n}\nvoid calcSphereLightValues(vec3 lightPos, vec3 halfWidth, vec3 halfHeight)\n{\n\t\tdLTCCoords = getSphereLightCoords(lightPos, halfWidth, halfHeight);\n}\n\n// An extended version of the implementation from\n// "How to solve a cubic equation, revisited"\n// http://momentsingraphics.de/?p=105\nvec3 SolveCubic(vec4 Coefficient)\n{\n\t\tfloat pi = 3.14159;\n\t\t// Normalize the polynomial\n\t\tCoefficient.xyz /= Coefficient.w;\n\t\t// Divide middle coefficients by three\n\t\tCoefficient.yz /= 3.0;\n\n\t\tfloat A = Coefficient.w;\n\t\tfloat B = Coefficient.z;\n\t\tfloat C = Coefficient.y;\n\t\tfloat D = Coefficient.x;\n\n\t\t// Compute the Hessian and the discriminant\n\t\tvec3 Delta = vec3(\n\t\t\t\t-Coefficient.z * Coefficient.z + Coefficient.y,\n\t\t\t\t-Coefficient.y * Coefficient.z + Coefficient.x,\n\t\t\t\tdot(vec2(Coefficient.z, -Coefficient.y), Coefficient.xy)\n\t\t);\n\n\t\tfloat Discriminant = dot(vec2(4.0 * Delta.x, -Delta.y), Delta.zy);\n\n\t\tvec3 RootsA, RootsD;\n\n\t\tvec2 xlc, xsc;\n\n\t\t// Algorithm A\n\t\t{\n\t\t\t\tfloat A_a = 1.0;\n\t\t\t\tfloat C_a = Delta.x;\n\t\t\t\tfloat D_a = -2.0 * B * Delta.x + Delta.y;\n\n\t\t\t\t// Take the cubic root of a normalized complex number\n\t\t\t\tfloat Theta = atan(sqrt(Discriminant), -D_a) / 3.0;\n\n\t\t\t\tfloat x_1a = 2.0 * sqrt(-C_a) * cos(Theta);\n\t\t\t\tfloat x_3a = 2.0 * sqrt(-C_a) * cos(Theta + (2.0 / 3.0) * pi);\n\n\t\t\t\tfloat xl;\n\t\t\t\tif ((x_1a + x_3a) > 2.0 * B)\n\t\t\t\t\t\txl = x_1a;\n\t\t\t\telse\n\t\t\t\t\t\txl = x_3a;\n\n\t\t\t\txlc = vec2(xl - B, A);\n\t\t}\n\n\t\t// Algorithm D\n\t\t{\n\t\t\t\tfloat A_d = D;\n\t\t\t\tfloat C_d = Delta.z;\n\t\t\t\tfloat D_d = -D * Delta.y + 2.0 * C * Delta.z;\n\n\t\t\t\t// Take the cubic root of a normalized complex number\n\t\t\t\tfloat Theta = atan(D * sqrt(Discriminant), -D_d) / 3.0;\n\n\t\t\t\tfloat x_1d = 2.0 * sqrt(-C_d) * cos(Theta);\n\t\t\t\tfloat x_3d = 2.0 * sqrt(-C_d) * cos(Theta + (2.0 / 3.0) * pi);\n\n\t\t\t\tfloat xs;\n\t\t\t\tif (x_1d + x_3d < 2.0 * C)\n\t\t\t\t\t\txs = x_1d;\n\t\t\t\telse\n\t\t\t\t\t\txs = x_3d;\n\n\t\t\t\txsc = vec2(-D, xs + C);\n\t\t}\n\n\t\tfloat E =\txlc.y * xsc.y;\n\t\tfloat F = -xlc.x * xsc.y - xlc.y * xsc.x;\n\t\tfloat G =\txlc.x * xsc.x;\n\n\t\tvec2 xmc = vec2(C * F - B * G, -B * F + C * E);\n\n\t\tvec3 Root = vec3(xsc.x / xsc.y, xmc.x / xmc.y, xlc.x / xlc.y);\n\n\t\tif (Root.x < Root.y && Root.x < Root.z)\n\t\t\t\tRoot.xyz = Root.yxz;\n\t\telse if (Root.z < Root.x && Root.z < Root.y)\n\t\t\t\tRoot.xyz = Root.xzy;\n\n\t\treturn Root;\n}\n\nfloat LTC_EvaluateDisk(vec3 N, vec3 V, vec3 P, mat3 Minv, Coords points)\n{\n\t\t// construct orthonormal basis around N\n\t\tvec3 T1, T2;\n\t\tT1 = normalize(V - N * dot(V, N));\n\t\tT2 = cross(N, T1);\n\n\t\t// rotate area light in (T1, T2, N) basis\n\t\t//mat3 R = transpose(mat3(T1, T2, N));\n\t\tmat3 R = transposeMat3( mat3( T1, T2, N ) );\n\t\t// polygon (allocate 5 vertices for clipping)\n\t\tvec3 L_[ 3 ];\n\t\tL_[ 0 ] = R * ( points.coord0 - P );\n\t\tL_[ 1 ] = R * ( points.coord1 - P );\n\t\tL_[ 2 ] = R * ( points.coord2 - P );\n\n\t\tvec3 Lo_i = vec3(0);\n\n\t\t// init ellipse\n\t\tvec3 C\t= 0.5 * (L_[0] + L_[2]);\n\t\tvec3 V1 = 0.5 * (L_[1] - L_[2]);\n\t\tvec3 V2 = 0.5 * (L_[1] - L_[0]);\n\n\t\tC\t= Minv * C;\n\t\tV1 = Minv * V1;\n\t\tV2 = Minv * V2;\n\n\t\t//if(dot(cross(V1, V2), C) > 0.0)\n\t\t//\t\treturn 0.0;\n\n\t\t// compute eigenvectors of ellipse\n\t\tfloat a, b;\n\t\tfloat d11 = dot(V1, V1);\n\t\tfloat d22 = dot(V2, V2);\n\t\tfloat d12 = dot(V1, V2);\n\t\tif (abs(d12) / sqrt(d11 * d22) > 0.0001)\n\t\t{\n\t\t\t\tfloat tr = d11 + d22;\n\t\t\t\tfloat det = -d12 * d12 + d11 * d22;\n\n\t\t\t\t// use sqrt matrix to solve for eigenvalues\n\t\t\t\tdet = sqrt(det);\n\t\t\t\tfloat u = 0.5 * sqrt(tr - 2.0 * det);\n\t\t\t\tfloat v = 0.5 * sqrt(tr + 2.0 * det);\n\t\t\t\tfloat e_max = (u + v) * (u + v);\n\t\t\t\tfloat e_min = (u - v) * (u - v);\n\n\t\t\t\tvec3 V1_, V2_;\n\n\t\t\t\tif (d11 > d22)\n\t\t\t\t{\n\t\t\t\t\t\tV1_ = d12 * V1 + (e_max - d11) * V2;\n\t\t\t\t\t\tV2_ = d12 * V1 + (e_min - d11) * V2;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t\tV1_ = d12*V2 + (e_max - d22)*V1;\n\t\t\t\t\t\tV2_ = d12*V2 + (e_min - d22)*V1;\n\t\t\t\t}\n\n\t\t\t\ta = 1.0 / e_max;\n\t\t\t\tb = 1.0 / e_min;\n\t\t\t\tV1 = normalize(V1_);\n\t\t\t\tV2 = normalize(V2_);\n\t\t}\n\t\telse\n\t\t{\n\t\t\t\ta = 1.0 / dot(V1, V1);\n\t\t\t\tb = 1.0 / dot(V2, V2);\n\t\t\t\tV1 *= sqrt(a);\n\t\t\t\tV2 *= sqrt(b);\n\t\t}\n\n\t\tvec3 V3 = cross(V1, V2);\n\t\tif (dot(C, V3) < 0.0)\n\t\t\t\tV3 *= -1.0;\n\n\t\tfloat L\t= dot(V3, C);\n\t\tfloat x0 = dot(V1, C) / L;\n\t\tfloat y0 = dot(V2, C) / L;\n\n\t\tfloat E1 = inversesqrt(a);\n\t\tfloat E2 = inversesqrt(b);\n\n\t\ta *= L * L;\n\t\tb *= L * L;\n\n\t\tfloat c0 = a * b;\n\t\tfloat c1 = a * b * (1.0 + x0 * x0 + y0 * y0) - a - b;\n\t\tfloat c2 = 1.0 - a * (1.0 + x0 * x0) - b * (1.0 + y0 * y0);\n\t\tfloat c3 = 1.0;\n\n\t\tvec3 roots = SolveCubic(vec4(c0, c1, c2, c3));\n\t\tfloat e1 = roots.x;\n\t\tfloat e2 = roots.y;\n\t\tfloat e3 = roots.z;\n\n\t\tvec3 avgDir = vec3(a * x0 / (a - e2), b * y0 / (b - e2), 1.0);\n\n\t\tmat3 rotate = mat3(V1, V2, V3);\n\n\t\tavgDir = rotate * avgDir;\n\t\tavgDir = normalize(avgDir);\n\n\t\tfloat L1 = sqrt(-e2 / e3);\n\t\tfloat L2 = sqrt(-e2 / e1);\n\n\t\tfloat formFactor = L1 * L2 * inversesqrt((1.0 + L1 * L1) * (1.0 + L2 * L2));\n\t\t\n\t\tconst float LUT_SIZE = 64.0;\n\t\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\t\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\n\t\t// use tabulated horizon-clipped sphere\n\t\tvec2 uv = vec2(avgDir.z * 0.5 + 0.5, formFactor);\n\t\tuv = uv*LUT_SCALE + LUT_BIAS;\n\n\t\tfloat scale = texture2D( areaLightsLutTex2, uv ).w;\n\n\t\treturn formFactor*scale;\n}\n\nfloat getRectLightDiffuse() {\n\t\treturn LTC_EvaluateRect( dNormalW, dViewDirW, vPositionW, mat3( 1.0 ), dLTCCoords );\n}\n\nfloat getDiskLightDiffuse() {\n\t\treturn LTC_EvaluateDisk( dNormalW, dViewDirW, vPositionW, mat3( 1.0 ), dLTCCoords );\n}\n\nfloat getSphereLightDiffuse() {\n\t\t// NB: this could be improved further with distance based wrap lighting\n\t\tfloat falloff = dSphereRadius / (dot(dLightDirW, dLightDirW) + dSphereRadius);\n\t\treturn getLightDiffuse()*falloff;\n}\n\nmat3 getLTCLightInvMat(vec2 uv)\n{\n\t\tvec4 t1 = texture2D( areaLightsLutTex1, uv );\n\n\t\t#ifdef AREA_R8_G8_B8_A8_LUTS\n\t\tt1 *= vec4(1.001, 0.3239, 0.60437568, 1.0);\n\t\tt1 += vec4(0.0, -0.2976, -0.01381, 0.0);\n\t\t#endif\n\n\t\treturn mat3(\n\t\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\t\tvec3(\t\t0, 1,\t\t0 ),\n\t\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n}\n\nfloat calcRectLightSpecular(vec3 tNormalW, vec2 uv) {\n\t\tmat3 mInv = getLTCLightInvMat(uv);\n\t\treturn LTC_EvaluateRect( tNormalW, dViewDirW, vPositionW, mInv, dLTCCoords );\n}\n\nfloat getRectLightSpecular() {\n\t\treturn calcRectLightSpecular(dNormalW, dLTCUV);\n}\n\n#ifdef CLEARCOAT\nfloat getRectLightSpecularCC() {\n\t\treturn calcRectLightSpecular(ccNormalW, ccLTCUV);\n}\n#endif\n\nfloat calcDiskLightSpecular(vec3 tNormalW, vec2 uv) {\n\t\tmat3 mInv = getLTCLightInvMat(uv);\n\t\treturn LTC_EvaluateDisk( tNormalW, dViewDirW, vPositionW, mInv, dLTCCoords );\n}\n\nfloat getDiskLightSpecular() {\n\t\treturn calcDiskLightSpecular(dNormalW, dLTCUV);\n}\n\n#ifdef CLEARCOAT\nfloat getDiskLightSpecularCC() {\n\t\treturn calcDiskLightSpecular(ccNormalW, ccLTCUV);\n}\n#endif\n\nfloat getSphereLightSpecular() {\n\t\treturn calcDiskLightSpecular(dNormalW, dLTCUV);\n}\n\n#ifdef CLEARCOAT\nfloat getSphereLightSpecularCC() {\n\t\treturn calcDiskLightSpecular(ccNormalW, ccLTCUV);\n}\n#endif\n',metalnessPS:"\nvoid processMetalness(float metalness) {\n\t\tconst float dielectricF0 = 0.04;\n\t\tdSpecularity = mix(vec3(dielectricF0), dAlbedo, metalness);\n\t\tdAlbedo *= 1.0 - metalness;\n}\n\n#ifdef MAPFLOAT\nuniform float material_metalness;\n#endif\n\n#ifdef MAPTEXTURE\nuniform sampler2D texture_metalnessMap;\n#endif\n\nvoid getSpecularity() {\n\t\tfloat metalness = 1.0;\n\n\t\t#ifdef MAPFLOAT\n\t\tmetalness *= material_metalness;\n\t\t#endif\n\n\t\t#ifdef MAPTEXTURE\n\t\tmetalness *= texture2D(texture_metalnessMap, $UV, textureBias).$CH;\n\t\t#endif\n\n\t\t#ifdef MAPVERTEX\n\t\tmetalness *= saturate(vVertexColor.$VC);\n\t\t#endif\n\n\t\tprocessMetalness(metalness);\n}\n",msdfPS:"\nuniform sampler2D texture_msdfMap;\n\n#ifdef GL_OES_standard_derivatives\n#define USE_FWIDTH\n#endif\n\n#ifdef GL2\n#define USE_FWIDTH\n#endif\n\nfloat median(float r, float g, float b) {\n\t\treturn max(min(r, g), min(max(r, g), b));\n}\n\nfloat map (float min, float max, float v) {\n\t\treturn (v - min) / (max - min);\n}\n\nuniform float font_sdfIntensity; // intensity is used to boost the value read from the SDF, 0 is no boost, 1.0 is max boost\nuniform float font_pxrange;\t\t\t// the number of pixels between inside and outside the font in SDF\nuniform float font_textureWidth; // the width of the texture atlas\n\nuniform vec4 outline_color;\nuniform float outline_thickness;\nuniform vec4 shadow_color;\nuniform vec2 shadow_offset;\n\nvec4 applyMsdf(vec4 color) {\n\t\t// sample the field\n\t\tvec3 tsample = texture2D(texture_msdfMap, vUv0).rgb;\n\t\tvec2 uvShdw = vUv0 - shadow_offset;\n\t\tvec3 ssample = texture2D(texture_msdfMap, uvShdw).rgb;\n\t\t// get the signed distance value\n\t\tfloat sigDist = median(tsample.r, tsample.g, tsample.b);\n\t\tfloat sigDistShdw = median(ssample.r, ssample.g, ssample.b);\n\n\t\t// smoothing limit - smaller value makes for sharper but more aliased text, especially on angles\n\t\t// too large value (0.5) creates a dark glow around the letters\n\t\tfloat smoothingMax = 0.2;\n\n\t\t#ifdef USE_FWIDTH\n\t\t// smoothing depends on size of texture on screen\n\t\tvec2 w = fwidth(vUv0);\n\t\tfloat smoothing = clamp(w.x * font_textureWidth / font_pxrange, 0.0, smoothingMax);\n\t\t#else\n\t\tfloat font_size = 16.0; // TODO fix this\n\t\t// smoothing gets smaller as the font size gets bigger\n\t\t// don't have fwidth we can approximate from font size, this doesn't account for scaling\n\t\t// so a big font scaled down will be wrong...\n\t\tfloat smoothing = clamp(font_pxrange / font_size, 0.0, smoothingMax);\n\t\t#endif\n\n\t\tfloat mapMin = 0.05;\n\t\tfloat mapMax = clamp(1.0 - font_sdfIntensity, mapMin, 1.0);\n\n\t\t// remap to a smaller range (used on smaller font sizes)\n\t\tfloat sigDistInner = map(mapMin, mapMax, sigDist);\n\t\tfloat sigDistOutline = map(mapMin, mapMax, sigDist + outline_thickness);\n\t\tsigDistShdw = map(mapMin, mapMax, sigDistShdw + outline_thickness);\n\n\t\tfloat center = 0.5;\n\t\t// calculate smoothing and use to generate opacity\n\t\tfloat inside = smoothstep(center-smoothing, center+smoothing, sigDistInner);\n\t\tfloat outline = smoothstep(center-smoothing, center+smoothing, sigDistOutline);\n\t\tfloat shadow = smoothstep(center-smoothing, center+smoothing, sigDistShdw);\n\n\t\tvec4 tcolor = (outline > inside) ? outline * vec4(outline_color.a * outline_color.rgb, outline_color.a) : vec4(0.0);\n\t\ttcolor = mix(tcolor, color, inside);\n\n\t\tvec4 scolor = (shadow > outline) ? shadow * vec4(shadow_color.a * shadow_color.rgb, shadow_color.a) : tcolor;\n\t\ttcolor = mix(scolor, tcolor, outline);\n\t\t\n\t\treturn tcolor;\n}\n",normalVS:"\n#ifdef MORPHING_TEXTURE_BASED_NORMAL\nuniform highp sampler2D morphNormalTex;\n#endif\n\nvec3 getNormal() {\n\t\t#ifdef SKIN\n\t\tdNormalMatrix = mat3(dModelMatrix[0].xyz, dModelMatrix[1].xyz, dModelMatrix[2].xyz);\n\t\t#elif defined(INSTANCING)\n\t\tdNormalMatrix = mat3(instance_line1.xyz, instance_line2.xyz, instance_line3.xyz);\n\t\t#else\n\t\tdNormalMatrix = matrix_normal;\n\t\t#endif\n\n\t\tvec3 tempNormal = vertex_normal;\n\n\t\t#ifdef MORPHING\n\t\t#ifdef MORPHING_NRM03\n\t\ttempNormal += morph_weights_a[0] * morph_nrm0;\n\t\ttempNormal += morph_weights_a[1] * morph_nrm1;\n\t\ttempNormal += morph_weights_a[2] * morph_nrm2;\n\t\ttempNormal += morph_weights_a[3] * morph_nrm3;\n\t\t#endif\n\t\t#ifdef MORPHING_NRM47\n\t\ttempNormal += morph_weights_b[0] * morph_nrm4;\n\t\ttempNormal += morph_weights_b[1] * morph_nrm5;\n\t\ttempNormal += morph_weights_b[2] * morph_nrm6;\n\t\ttempNormal += morph_weights_b[3] * morph_nrm7;\n\t\t#endif\n\t\t#endif\n\n\t\t#ifdef MORPHING_TEXTURE_BASED_NORMAL\n\t\t// apply morph offset from texture\n\t\tvec2 morphUV = getTextureMorphCoords();\n\t\tvec3 morphNormal = texture2D(morphNormalTex, morphUV).xyz;\n\t\ttempNormal += morphNormal;\n\t\t#endif\n\n\t\treturn normalize(dNormalMatrix * tempNormal);\n}\n",normalDetailMapPS:"\n#ifdef MAPTEXTURE\nuniform sampler2D texture_normalDetailMap;\nuniform float material_normalDetailMapBumpiness;\n\nvec3 blendNormals(vec3 n1, vec3 n2) {\n\t\t// https://blog.selfshadow.com/publications/blending-in-detail/#detail-oriented\n\t\tn1 += vec3(0, 0, 1);\n\t\tn2 *= vec3(-1, -1, 1);\n\t\treturn normalize(n1*dot(n1, n2)/n1.z - n2);\n}\n#endif\n\nvec3 addNormalDetail(vec3 normalMap) {\n\t\t#ifdef MAPTEXTURE\n\t\tvec3 normalDetailMap = unpackNormal(texture2D(texture_normalDetailMap, $UV, textureBias));\n\t\tnormalDetailMap = normalize(mix(vec3(0.0, 0.0, 1.0), normalDetailMap, material_normalDetailMapBumpiness));\n\t\treturn blendNormals(normalMap, normalDetailMap);\n\t\t#else\n\t\treturn normalMap;\n\t\t#endif\n}\n",normalInstancedVS:"\nvec3 getNormal() {\n\t\tdNormalMatrix = mat3(instance_line1.xyz, instance_line2.xyz, instance_line3.xyz);\n\t\treturn normalize(dNormalMatrix * vertex_normal);\n}\n",normalMapPS:"\nuniform sampler2D texture_normalMap;\nuniform float material_bumpiness;\n\nvoid getNormal() {\n\t\tvec3 normalMap = unpackNormal(texture2D(texture_normalMap, $UV, textureBias));\n\t\tnormalMap = normalize(mix(vec3(0.0, 0.0, 1.0), normalMap, material_bumpiness));\n\t\tdNormalMap = addNormalDetail(normalMap);\n\t\tdNormalW = dTBN * dNormalMap;\n}\n",normalMapFastPS:"\nuniform sampler2D texture_normalMap;\n\nvoid getNormal() {\n\t\tvec3 normalMap = unpackNormal(texture2D(texture_normalMap, $UV, textureBias));\n\t\tdNormalMap = addNormalDetail(normalMap);\n\t\tdNormalW = dTBN * dNormalMap;\n}\n",normalSkinnedVS:"\nvec3 getNormal() {\n\t\tdNormalMatrix = mat3(dModelMatrix[0].xyz, dModelMatrix[1].xyz, dModelMatrix[2].xyz);\n\t\treturn normalize(dNormalMatrix * vertex_normal);\n}\n",normalVertexPS:"\nvoid getNormal() {\n\t\tdNormalW = normalize(dVertexNormalW);\n}\n",normalXYPS:"\nvec3 unpackNormal(vec4 nmap) {\n\t\tvec3 normal;\n\t\tnormal.xy = nmap.wy * 2.0 - 1.0;\n\t\tnormal.z = sqrt(1.0 - saturate(dot(normal.xy, normal.xy)));\n\t\treturn normal;\n}\n",normalXYZPS:"\nvec3 unpackNormal(vec4 nmap) {\n\t\treturn nmap.xyz * 2.0 - 1.0;\n}\n",opacityPS:"\n#ifdef MAPFLOAT\nuniform float material_opacity;\n#endif\n\n#ifdef MAPTEXTURE\nuniform sampler2D texture_opacityMap;\n#endif\n\nvoid getOpacity() {\n\t\tdAlpha = 1.0;\n\n\t\t#ifdef MAPFLOAT\n\t\tdAlpha *= material_opacity;\n\t\t#endif\n\n\t\t#ifdef MAPTEXTURE\n\t\tdAlpha *= texture2D(texture_opacityMap, $UV, textureBias).$CH;\n\t\t#endif\n\n\t\t#ifdef MAPVERTEX\n\t\tdAlpha *= clamp(vVertexColor.$VC, 0.0, 1.0);\n\t\t#endif\n}\n",outputAlphaPS:"\ngl_FragColor.a = dAlpha;\n",outputAlphaOpaquePS:"\ngl_FragColor.a = 1.0;\n",outputAlphaPremulPS:"\ngl_FragColor.rgb *= dAlpha;\ngl_FragColor.a = dAlpha;\n",outputTex2DPS:"\nvarying vec2 vUv0;\n\nuniform sampler2D source;\n\nvoid main(void) {\n\t\tgl_FragColor = texture2D(source, vUv0);\n}\n",packDepthPS:"\n// Packing a float in GLSL with multiplication and mod\n// http://blog.gradientstudios.com/2012/08/23/shadow-map-improvement\nvec4 packFloat(float depth) {\n\t\tconst vec4 bit_shift = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n\t\tconst vec4 bit_mask\t= vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n\n\t\t// combination of mod and multiplication and division works better\n\t\tvec4 res = mod(depth * bit_shift * vec4(255), vec4(256) ) / vec4(255);\n\t\tres -= res.xxyz * bit_mask;\n\t\treturn res;\n}\n",parallaxPS:"\nuniform sampler2D texture_heightMap;\nuniform float material_heightMapFactor;\n\nvoid getParallax() {\n\t\tfloat parallaxScale = material_heightMapFactor;\n\n\t\tfloat height = texture2D(texture_heightMap, $UV, textureBias).$CH;\n\t\theight = height * parallaxScale - parallaxScale*0.5;\n\t\tvec3 viewDirT = dViewDirW * dTBN;\n\n\t\tviewDirT.z += 0.42;\n\t\tdUvOffset = height * (viewDirT.xy / viewDirT.z);\n}\n",particlePS:"\nvarying vec4 texCoordsAlphaLife;\n\nuniform sampler2D colorMap;\nuniform sampler2D colorParam;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\n\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params;\n#endif\n\nuniform float softening;\nuniform float colorMult;\n\nfloat saturate(float x) {\n\t\treturn clamp(x, 0.0, 1.0);\n}\n\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n\t\tconst vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n\t\tfloat depth = dot(rgbaDepth, bitShift);\n\t\treturn depth;\n}\n#endif\n\nvoid main(void) {\n\t\tvec4 tex\t= texture2DSRGB(colorMap, vec2(texCoordsAlphaLife.x, 1.0 - texCoordsAlphaLife.y));\n\t\tvec4 ramp = texture2DSRGB(colorParam, vec2(texCoordsAlphaLife.w, 0.0));\n\t\tramp.rgb *= colorMult;\n\n\t\tramp.a += texCoordsAlphaLife.z;\n\n\t\tvec3 rgb = tex.rgb * ramp.rgb;\n\t\tfloat a\t= tex.a * ramp.a;\n",particleVS:"\nvec3 unpack3NFloats(float src) {\n\t\tfloat r = fract(src);\n\t\tfloat g = fract(src * 256.0);\n\t\tfloat b = fract(src * 65536.0);\n\t\treturn vec3(r, g, b);\n}\n\nfloat saturate(float x) {\n\t\treturn clamp(x, 0.0, 1.0);\n}\n\nvec4 tex1Dlod_lerp(highp sampler2D tex, vec2 tc) {\n\t\treturn mix( texture2D(tex,tc), texture2D(tex,tc + graphSampleSize), fract(tc.x*graphNumSamples) );\n}\n\nvec4 tex1Dlod_lerp(highp sampler2D tex, vec2 tc, out vec3 w) {\n\t\tvec4 a = texture2D(tex,tc);\n\t\tvec4 b = texture2D(tex,tc + graphSampleSize);\n\t\tfloat c = fract(tc.x*graphNumSamples);\n\n\t\tvec3 unpackedA = unpack3NFloats(a.w);\n\t\tvec3 unpackedB = unpack3NFloats(b.w);\n\t\tw = mix(unpackedA, unpackedB, c);\n\n\t\treturn mix(a, b, c);\n}\n\nvec2 rotate(vec2 quadXY, float pRotation, out mat2 rotMatrix) {\n\t\tfloat c = cos(pRotation);\n\t\tfloat s = sin(pRotation);\n\n\t\tmat2 m = mat2(c, -s, s, c);\n\t\trotMatrix = m;\n\n\t\treturn m * quadXY;\n}\n\nvec3 billboard(vec3 InstanceCoords, vec2 quadXY) {\n\t\t#ifdef SCREEN_SPACE\n\t\t\t\tvec3 pos = vec3(-1, 0, 0) * quadXY.x + vec3(0, -1, 0) * quadXY.y;\n\t\t#else\n\t\t\t\tvec3 pos = -matrix_viewInverse[0].xyz * quadXY.x + -matrix_viewInverse[1].xyz * quadXY.y;\n\t\t#endif\n\n\t\treturn pos;\n}\n\nvec3 customFace(vec3 InstanceCoords, vec2 quadXY) {\n\t\tvec3 pos = faceTangent * quadXY.x + faceBinorm * quadXY.y;\n\t\treturn pos;\n}\n\nvec2 safeNormalize(vec2 v) {\n\t\tfloat l = length(v);\n\t\treturn (l > 1e-06) ? v / l : v;\n}\n\nvoid main(void) {\n\t\tvec3 meshLocalPos = particle_vertexData.xyz;\n\t\tfloat id = floor(particle_vertexData.w);\n\n\t\tfloat rndFactor = fract(sin(id + 1.0 + seed));\n\t\tvec3 rndFactor3 = vec3(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n\n\t\tfloat uv = id / numParticlesPot;\n\t\treadInput(uv);\n\n#ifdef LOCAL_SPACE\n\t\tinVel = mat3(matrix_model) * inVel;\n#endif\n\t\tvec2 velocityV = safeNormalize((mat3(matrix_view) * inVel).xy); // should be removed by compiler if align/stretch is not used\n\n\t\tfloat particleLifetime = lifetime;\n\n\t\tif (inLife <= 0.0 || inLife > particleLifetime || !inShow) meshLocalPos = vec3(0.0);\n\t\tvec2 quadXY = meshLocalPos.xy;\n\t\tfloat nlife = clamp(inLife / particleLifetime, 0.0, 1.0);\n\n\t\tvec3 paramDiv;\n\t\tvec4 params = tex1Dlod_lerp(internalTex2, vec2(nlife, 0), paramDiv);\n\t\tfloat scale = params.y;\n\t\tfloat scaleDiv = paramDiv.x;\n\t\tfloat alphaDiv = paramDiv.z;\n\n\t\tscale += (scaleDiv * 2.0 - 1.0) * scaleDivMult * fract(rndFactor*10000.0);\n\n#ifndef USE_MESH\n\t\ttexCoordsAlphaLife = vec4(quadXY * -0.5 + 0.5, (alphaDiv * 2.0 - 1.0) * alphaDivMult * fract(rndFactor*1000.0), nlife);\n#else\n\t\ttexCoordsAlphaLife = vec4(particle_uv, (alphaDiv * 2.0 - 1.0) * alphaDivMult * fract(rndFactor*1000.0), nlife);\n#endif\n\n\t\tvec3 particlePos = inPos;\n\t\tvec3 particlePosMoved = vec3(0.0);\n\n\t\tmat2 rotMatrix;\n",particleAnimFrameClampVS:"\n\t\tfloat animFrame = min(floor(texCoordsAlphaLife.w * animTexParams.y) + animTexParams.x, animTexParams.z);\n",particleAnimFrameLoopVS:"\n\t\tfloat animFrame = floor(mod(texCoordsAlphaLife.w * animTexParams.y + animTexParams.x, animTexParams.z + 1.0));\n",particleAnimTexVS:"\n\t\tfloat animationIndex;\n\n\t\tif (animTexIndexParams.y == 1.0) {\n\t\t\t\tanimationIndex = floor((animTexParams.w + 1.0) * rndFactor3.z) * (animTexParams.z + 1.0);\n\t\t} else {\n\t\t\t\tanimationIndex = animTexIndexParams.x * (animTexParams.z + 1.0);\n\t\t}\n\n\t\tfloat atlasX = (animationIndex + animFrame) * animTexTilesParams.x;\n\t\tfloat atlasY = 1.0 - floor(atlasX + 1.0) * animTexTilesParams.y;\n\t\tatlasX = fract(atlasX);\n\n\t\ttexCoordsAlphaLife.xy *= animTexTilesParams.xy;\n\t\ttexCoordsAlphaLife.xy += vec2(atlasX, atlasY);\n",particleInputFloatPS:"\nvoid readInput(float uv) {\n\t\tvec4 tex = texture2D(particleTexIN, vec2(uv, 0.25));\n\t\tvec4 tex2 = texture2D(particleTexIN, vec2(uv, 0.75));\n\n\t\tinPos = tex.xyz;\n\t\tinVel = tex2.xyz;\n\t\tinAngle = (tex.w < 0.0? -tex.w : tex.w) - 1000.0;\n\t\tinShow = tex.w >= 0.0;\n\t\tinLife = tex2.w;\n}\n",particleInputRgba8PS:"\n//RG=X, BA=Y\n//RG=Z, BA=A\n//RGB=V, A=visMode\n//RGBA=life\n\n#define PI2 6.283185307179586\n\nuniform vec3 inBoundsSize;\nuniform vec3 inBoundsCenter;\n\nuniform float maxVel;\n\nfloat decodeFloatRG(vec2 rg) {\n\t\treturn rg.y*(1.0/255.0) + rg.x;\n}\n\nfloat decodeFloatRGBA( vec4 rgba ) {\n\treturn dot( rgba, vec4(1.0, 1.0/255.0, 1.0/65025.0, 1.0/160581375.0) );\n}\n\nvoid readInput(float uv) {\n\t\tvec4 tex0 = texture2D(particleTexIN, vec2(uv, 0.125));\n\t\tvec4 tex1 = texture2D(particleTexIN, vec2(uv, 0.375));\n\t\tvec4 tex2 = texture2D(particleTexIN, vec2(uv, 0.625));\n\t\tvec4 tex3 = texture2D(particleTexIN, vec2(uv, 0.875));\n\n\t\tinPos = vec3(decodeFloatRG(tex0.rg), decodeFloatRG(tex0.ba), decodeFloatRG(tex1.rg));\n\t\tinPos = (inPos - vec3(0.5)) * inBoundsSize + inBoundsCenter;\n\n\t\tinVel = tex2.xyz;\n\t\tinVel = (inVel - vec3(0.5)) * maxVel;\n\n\t\tinAngle = decodeFloatRG(tex1.ba) * PI2;\n\t\tinShow = tex2.a > 0.5;\n\n\t\tinLife = decodeFloatRGBA(tex3);\n\t\tfloat maxNegLife = max(lifetime, (numParticles - 1.0) * (rate+rateDiv));\n\t\tfloat maxPosLife = lifetime+1.0;\n\t\tinLife = inLife * (maxNegLife + maxPosLife) - maxNegLife;\n}\n",particleOutputFloatPS:"\nvoid writeOutput() {\n\t\tif (gl_FragCoord.y<1.0) {\n\t\t\t\tgl_FragColor = vec4(outPos, (outAngle + 1000.0) * visMode);\n\t\t} else {\n\t\t\t\tgl_FragColor = vec4(outVel, outLife);\n\t\t}\n}\n",particleOutputRgba8PS:"\nuniform vec3 outBoundsMul;\nuniform vec3 outBoundsAdd;\n\nvec2 encodeFloatRG( float v ) {\n\t\tvec2 enc = vec2(1.0, 255.0) * v;\n\t\tenc = fract(enc);\n\t\tenc -= enc.yy * vec2(1.0/255.0, 1.0/255.0);\n\t\treturn enc;\n}\n\nvec4 encodeFloatRGBA( float v ) {\n\t\tvec4 enc = vec4(1.0, 255.0, 65025.0, 160581375.0) * v;\n\t\tenc = fract(enc);\n\t\tenc -= enc.yzww * vec4(1.0/255.0,1.0/255.0,1.0/255.0,0.0);\n\t\treturn enc;\n}\n\nvoid writeOutput() {\n\t\toutPos = outPos * outBoundsMul + outBoundsAdd;\n\t\toutAngle = fract(outAngle / PI2);\n\n\t\toutVel = (outVel / maxVel) + vec3(0.5); // TODO: mul\n\n\t\tfloat maxNegLife = max(lifetime, (numParticles - 1.0) * (rate+rateDiv));\n\t\tfloat maxPosLife = lifetime+1.0;\n\t\toutLife = (outLife + maxNegLife) / (maxNegLife + maxPosLife);\n\n\t\tif (gl_FragCoord.y < 1.0) {\n\t\t\t\tgl_FragColor = vec4(encodeFloatRG(outPos.x), encodeFloatRG(outPos.y));\n\t\t} else if (gl_FragCoord.y < 2.0) {\n\t\t\t\tgl_FragColor = vec4(encodeFloatRG(outPos.z), encodeFloatRG(outAngle));\n\t\t} else if (gl_FragCoord.y < 3.0) {\n\t\t\t\tgl_FragColor = vec4(outVel, visMode*0.5+0.5);\n\t\t} else {\n\t\t\t\tgl_FragColor = encodeFloatRGBA(outLife);\n\t\t}\n}\n",particleUpdaterAABBPS:"\nuniform mat3 spawnBounds;\nuniform vec3 spawnPosInnerRatio;\n\nvec3 calcSpawnPosition(vec3 inBounds, float rndFactor) {\n\t\tvec3 pos = inBounds - vec3(0.5);\n\n\t\tvec3 posAbs = abs(pos);\n\t\tvec3 maxPos = vec3(max(posAbs.x, max(posAbs.y, posAbs.z)));\n\n\t\tvec3 edge = maxPos + (vec3(0.5) - maxPos) * spawnPosInnerRatio;\n\n\t\tpos.x = edge.x * (maxPos.x == posAbs.x ? sign(pos.x) : 2.0 * pos.x);\n\t\tpos.y = edge.y * (maxPos.y == posAbs.y ? sign(pos.y) : 2.0 * pos.y);\n\t\tpos.z = edge.z * (maxPos.z == posAbs.z ? sign(pos.z) : 2.0 * pos.z);\n\n#ifndef LOCAL_SPACE\n\t\treturn emitterPos + spawnBounds * pos;\n#else\n\t\treturn spawnBounds * pos;\n#endif\n}\n\nvoid addInitialVelocity(inout vec3 localVelocity, vec3 inBounds) {\n\t\tlocalVelocity -= vec3(0, 0, initialVelocity);\n}\n",particleUpdaterEndPS:"\n\t\twriteOutput();\n}\n",particleUpdaterInitPS:"\nvarying vec2 vUv0;\n\nuniform highp sampler2D particleTexIN;\nuniform highp sampler2D internalTex0;\nuniform highp sampler2D internalTex1;\nuniform highp sampler2D internalTex2;\nuniform highp sampler2D internalTex3;\n\nuniform mat3 emitterMatrix, emitterMatrixInv;\nuniform vec3 emitterScale;\n\nuniform vec3 emitterPos, frameRandom, localVelocityDivMult, velocityDivMult;\nuniform float delta, rate, rateDiv, lifetime, numParticles, rotSpeedDivMult, radialSpeedDivMult, seed;\nuniform float startAngle, startAngle2;\nuniform float initialVelocity;\n\nuniform float graphSampleSize;\nuniform float graphNumSamples;\n\nvec3 inPos;\nvec3 inVel;\nfloat inAngle;\nbool inShow;\nfloat inLife;\nfloat visMode;\n\nvec3 outPos;\nvec3 outVel;\nfloat outAngle;\nbool outShow;\nfloat outLife;\n",particleUpdaterNoRespawnPS:"\n\t\tif (outLife >= lifetime) {\n\t\t\t\toutLife -= max(lifetime, (numParticles - 1.0) * particleRate);\n\t\t\t\tvisMode = -1.0;\n\t\t}\n",particleUpdaterOnStopPS:"\n\t\tvisMode = outLife < 0.0? -1.0: visMode;\n",particleUpdaterRespawnPS:"\n\t\tif (outLife >= lifetime) {\n\t\t\t\toutLife -= max(lifetime, (numParticles - 1.0) * particleRate);\n\t\t\t\tvisMode = 1.0;\n\t\t}\n\t\tvisMode = outLife < 0.0? 1.0: visMode;\n",particleUpdaterSpherePS:"\nuniform float spawnBoundsSphere;\nuniform float spawnBoundsSphereInnerRatio;\n\nvec3 calcSpawnPosition(vec3 inBounds, float rndFactor) {\n\t\tfloat rnd4 = fract(rndFactor * 1000.0);\n\t\tvec3 norm = normalize(inBounds.xyz - vec3(0.5));\n\t\tfloat r = rnd4 * (1.0 - spawnBoundsSphereInnerRatio) + spawnBoundsSphereInnerRatio;\n#ifndef LOCAL_SPACE\n\t\treturn emitterPos + norm * r * spawnBoundsSphere;\n#else\n\t\treturn norm * r * spawnBoundsSphere;\n#endif\n}\n\nvoid addInitialVelocity(inout vec3 localVelocity, vec3 inBounds) {\n\t\tlocalVelocity += normalize(inBounds - vec3(0.5)) * initialVelocity;\n}\n",particleUpdaterStartPS:"\nfloat saturate(float x) {\n\t\treturn clamp(x, 0.0, 1.0);\n}\n\nvec3 unpack3NFloats(float src) {\n\t\tfloat r = fract(src);\n\t\tfloat g = fract(src * 256.0);\n\t\tfloat b = fract(src * 65536.0);\n\t\treturn vec3(r, g, b);\n}\n\nvec3 tex1Dlod_lerp(highp sampler2D tex, vec2 tc, out vec3 w) {\n\t\tvec4 a = texture2D(tex, tc);\n\t\tvec4 b = texture2D(tex, tc + graphSampleSize);\n\t\tfloat c = fract(tc.x * graphNumSamples);\n\n\t\tvec3 unpackedA = unpack3NFloats(a.w);\n\t\tvec3 unpackedB = unpack3NFloats(b.w);\n\t\tw = mix(unpackedA, unpackedB, c);\n\n\t\treturn mix(a.xyz, b.xyz, c);\n}\n\n#define HASHSCALE4 vec4(1031, .1030, .0973, .1099)\nvec4 hash41(float p) {\n\t\tvec4 p4 = fract(vec4(p) * HASHSCALE4);\n\t\tp4 += dot(p4, p4.wzxy+19.19);\n\t\treturn fract(vec4((p4.x + p4.y)*p4.z, (p4.x + p4.z)*p4.y, (p4.y + p4.z)*p4.w, (p4.z + p4.w)*p4.x));\n}\n\nvoid main(void) {\n\t\tif (gl_FragCoord.x > numParticles) discard;\n\n\t\treadInput(vUv0.x);\n\t\tvisMode = inShow? 1.0 : -1.0;\n\n\t\tvec4 rndFactor = hash41(gl_FragCoord.x + seed);\n\n\t\tfloat particleRate = rate + rateDiv * rndFactor.x;\n\n\t\toutLife = inLife + delta;\n\t\tfloat nlife = clamp(outLife / lifetime, 0.0, 1.0);\n\n\t\tvec3 localVelocityDiv;\n\t\tvec3 velocityDiv;\n\t\tvec3 paramDiv;\n\t\tvec3 localVelocity = tex1Dlod_lerp(internalTex0, vec2(nlife, 0), localVelocityDiv);\n\t\tvec3 velocity =\t\t\ttex1Dlod_lerp(internalTex1, vec2(nlife, 0), velocityDiv);\n\t\tvec3 params =\t\t\t\ttex1Dlod_lerp(internalTex2, vec2(nlife, 0), paramDiv);\n\t\tfloat rotSpeed = params.x;\n\t\tfloat rotSpeedDiv = paramDiv.y;\n\n\t\tvec3 radialParams = tex1Dlod_lerp(internalTex3, vec2(nlife, 0), paramDiv);\n\t\tfloat radialSpeed = radialParams.x;\n\t\tfloat radialSpeedDiv = radialParams.y;\n\n\t\tbool respawn = inLife <= 0.0 || outLife >= lifetime;\n\t\tinPos = respawn ? calcSpawnPosition(rndFactor.xyz, rndFactor.x) : inPos;\n\t\tinAngle = respawn ? mix(startAngle, startAngle2, rndFactor.x) : inAngle;\n\n#ifndef LOCAL_SPACE\n\t\tvec3 radialVel = inPos - emitterPos;\n#else\n\t\tvec3 radialVel = inPos;\n#endif\n\t\tradialVel = (dot(radialVel, radialVel) > 1.0E-8) ? radialSpeed * normalize(radialVel) : vec3(0.0);\n\t\tradialVel += (radialSpeedDiv * vec3(2.0) - vec3(1.0)) * radialSpeedDivMult * rndFactor.xyz;\n\n\t\tlocalVelocity +=\t\t(localVelocityDiv * vec3(2.0) - vec3(1.0)) * localVelocityDivMult * rndFactor.xyz;\n\t\tvelocity +=\t\t\t\t (velocityDiv * vec3(2.0) - vec3(1.0)) * velocityDivMult * rndFactor.xyz;\n\t\trotSpeed +=\t\t\t\t (rotSpeedDiv * 2.0 - 1.0) * rotSpeedDivMult * rndFactor.y;\n\n\t\taddInitialVelocity(localVelocity, rndFactor.xyz);\n\n#ifndef LOCAL_SPACE\n\t\toutVel = emitterMatrix * localVelocity + (radialVel + velocity) * emitterScale;\n#else\n\t\toutVel = (localVelocity + radialVel) / emitterScale + emitterMatrixInv * velocity;\n#endif\n\n\t\toutPos = inPos + outVel * delta;\n\t\toutAngle = inAngle + rotSpeed * delta;\n",particle_billboardVS:"\n\t\tquadXY = rotate(quadXY, inAngle, rotMatrix);\n\t\tvec3 localPos = billboard(particlePos, quadXY);\n",particle_blendAddPS:"\n\t\tdBlendModeFogFactor = 0.0;\n\t\trgb *= saturate(gammaCorrectInput(max(a, 0.0)));\n\t\tif ((rgb.r + rgb.g + rgb.b) < 0.000001) discard;\n",particle_blendMultiplyPS:"\n\t\trgb = mix(vec3(1.0), rgb, vec3(a));\n\t\tif (rgb.r + rgb.g + rgb.b > 2.99) discard;\n",particle_blendNormalPS:"\n\t\tif (a < 0.01) discard;\n",particle_cpuVS:"\nattribute vec4 particle_vertexData;\t // XYZ = world pos, W = life\nattribute vec4 particle_vertexData2;\t// X = angle, Y = scale, Z = alpha, W = velocity.x\nattribute vec4 particle_vertexData3;\t// XYZ = particle local pos, W = velocity.y\nattribute float particle_vertexData4; // particle id\n#ifndef USE_MESH\n#define VDATA5TYPE vec2\n#else\n#define VDATA5TYPE vec4\n#endif\nattribute VDATA5TYPE particle_vertexData5; // VDATA4TYPE depends on useMesh property. Start with X = velocity.z, Y = particle ID and for mesh particles proceeds with Z = mesh UV.x, W = mesh UV.y\n\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\n\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n\nuniform mat3 matrix_normal;\nuniform mat4 matrix_viewInverse;\n\nuniform float numParticles;\nuniform float lifetime;\nuniform float stretch;\nuniform float seed;\nuniform vec3 wrapBounds, emitterScale, faceTangent, faceBinorm;\nuniform sampler2D texLifeAndSourcePosOUT;\nuniform highp sampler2D internalTex0;\nuniform highp sampler2D internalTex1;\nuniform highp sampler2D internalTex2;\nuniform vec3 emitterPos;\n\nvarying vec4 texCoordsAlphaLife;\n\nvec2 rotate(vec2 quadXY, float pRotation, out mat2 rotMatrix)\n{\n\t\tfloat c = cos(pRotation);\n\t\tfloat s = sin(pRotation);\n\t\t//vec4 rotationMatrix = vec4(c, -s, s, c);\n\n\t\tmat2 m = mat2(c, -s, s, c);\n\t\trotMatrix = m;\n\n\t\treturn m * quadXY;\n}\n\nvec3 billboard(vec3 InstanceCoords, vec2 quadXY)\n{\n\t\tvec3 pos = -matrix_viewInverse[0].xyz * quadXY.x + -matrix_viewInverse[1].xyz * quadXY.y;\n\t\treturn pos;\n}\n\nvec3 customFace(vec3 InstanceCoords, vec2 quadXY)\n{\n\t\tvec3 pos = faceTangent * quadXY.x + faceBinorm * quadXY.y;\n\t\treturn pos;\n}\n\nvoid main(void)\n{\n\t\tvec3 particlePos = particle_vertexData.xyz;\n\t\tvec3 inPos = particlePos;\n\t\tvec3 vertPos = particle_vertexData3.xyz;\n\t\tvec3 inVel = vec3(particle_vertexData2.w, particle_vertexData3.w, particle_vertexData5.x);\n\n\t\tfloat id = floor(particle_vertexData4);\n\t\tfloat rndFactor = fract(sin(id + 1.0 + seed));\n\t\tvec3 rndFactor3 = vec3(rndFactor, fract(rndFactor*10.0), fract(rndFactor*100.0));\n\n#ifdef LOCAL_SPACE\n\t\tinVel = mat3(matrix_model) * inVel;\n#endif\n\t\tvec2 velocityV = normalize((mat3(matrix_view) * inVel).xy); // should be removed by compiler if align/stretch is not used\n\n\t\tvec2 quadXY = vertPos.xy;\n\n#ifdef USE_MESH\n\t\ttexCoordsAlphaLife = vec4(particle_vertexData5.zw, particle_vertexData2.z, particle_vertexData.w);\n#else\n\t\ttexCoordsAlphaLife = vec4(quadXY * -0.5 + 0.5, particle_vertexData2.z, particle_vertexData.w);\n#endif\n\t\tmat2 rotMatrix;\n\n\t\tfloat inAngle = particle_vertexData2.x;\n\t\tvec3 particlePosMoved = vec3(0.0);\n\t\tvec3 meshLocalPos = particle_vertexData3.xyz;\n",particle_cpu_endVS:"\n\t\tlocalPos *= particle_vertexData2.y * emitterScale;\n\t\tlocalPos += particlePos;\n\n\t\tgl_Position = matrix_viewProjection * vec4(localPos, 1.0);\n",particle_customFaceVS:"\n\t\tquadXY = rotate(quadXY, inAngle, rotMatrix);\n\t\tvec3 localPos = customFace(particlePos, quadXY);\n",particle_endPS:"\n\t\trgb = addFog(rgb);\n\t\trgb = toneMap(rgb);\n\t\trgb = gammaCorrectOutput(rgb);\n\t\tgl_FragColor = vec4(rgb, a);\n}\n",particle_endVS:"\n\t\tlocalPos *= scale * emitterScale;\n\t\tlocalPos += particlePos;\n\n\t\t#ifdef SCREEN_SPACE\n\t\tgl_Position = vec4(localPos.x, localPos.y, 0.0, 1.0);\n\t\t#else\n\t\tgl_Position = matrix_viewProjection * vec4(localPos.xyz, 1.0);\n\t\t#endif\n",particle_halflambertPS:"\n\t\tvec3 negNormal = normal*0.5+0.5;\n\t\tvec3 posNormal = -normal*0.5+0.5;\n\t\tnegNormal *= negNormal;\n\t\tposNormal *= posNormal;\n",particle_initVS:"\nattribute vec4 particle_vertexData; // XYZ = particle position, W = particle ID + random factor\n#ifdef USE_MESH\nattribute vec2 particle_uv;\t\t\t\t // mesh UV\n#endif\n\nuniform mat4 matrix_viewProjection;\nuniform mat4 matrix_model;\nuniform mat3 matrix_normal;\nuniform mat4 matrix_viewInverse;\n\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n\nuniform float numParticles, numParticlesPot;\nuniform float graphSampleSize;\nuniform float graphNumSamples;\nuniform float stretch;\nuniform vec3 wrapBounds;\nuniform vec3 emitterScale, emitterPos, faceTangent, faceBinorm;\nuniform float rate, rateDiv, lifetime, deltaRandomnessStatic, scaleDivMult, alphaDivMult, seed, delta;\nuniform sampler2D particleTexOUT, particleTexIN;\nuniform highp sampler2D internalTex0;\nuniform highp sampler2D internalTex1;\nuniform highp sampler2D internalTex2;\n\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params;\n#endif\n\nvarying vec4 texCoordsAlphaLife;\n\nvec3 inPos;\nvec3 inVel;\nfloat inAngle;\nbool inShow;\nfloat inLife;\n",particle_lambertPS:"\n\t\tvec3 negNormal = max(normal, vec3(0.0));\n\t\tvec3 posNormal = max(-normal, vec3(0.0));\n",particle_lightingPS:"\n\t\tvec3 light = negNormal.x*lightCube[0] + posNormal.x*lightCube[1] +\n\t\t\t\t\t\t\t\t\t\t\t\tnegNormal.y*lightCube[2] + posNormal.y*lightCube[3] +\n\t\t\t\t\t\t\t\t\t\t\t\tnegNormal.z*lightCube[4] + posNormal.z*lightCube[5];\n\n\t\trgb *= light;\n",particle_localShiftVS:"\n\t\tparticlePos = (matrix_model * vec4(particlePos, 1.0)).xyz;\n",particle_meshVS:"\n\t\tvec3 localPos = meshLocalPos;\n\t\tlocalPos.xy = rotate(localPos.xy, inAngle, rotMatrix);\n\t\tlocalPos.yz = rotate(localPos.yz, inAngle, rotMatrix);\n\n\t\tbillboard(particlePos, quadXY);\n",particle_normalVS:"\n\t\tNormal = normalize(localPos + matrix_viewInverse[2].xyz);\n",particle_normalMapPS:"\n\t\tvec3 normalMap = normalize(texture2D(normalMap, vec2(texCoordsAlphaLife.x, 1.0 - texCoordsAlphaLife.y)).xyz * 2.0 - 1.0);\n\t\tvec3 normal = ParticleMat * normalMap;\n",particle_pointAlongVS:"\n\t\tinAngle = atan(velocityV.x, velocityV.y); // not the fastest way, but easier to plug in; TODO: create rot matrix right from vectors\n\n",particle_softPS:"\n\t\tfloat depth = getLinearScreenDepth();\n\t\tfloat particleDepth = vDepth;\n\t\tfloat depthDiff = saturate(abs(particleDepth - depth) * softening);\n\t\ta *= depthDiff;\n",particle_softVS:"\n\t\tvDepth = getLinearDepth(localPos);\n",particle_stretchVS:"\n\t\tvec3 moveDir = inVel * stretch;\n\t\tvec3 posPrev = particlePos - moveDir;\n\t\tposPrev += particlePosMoved;\n\n\t\tvec2 centerToVertexV = normalize((mat3(matrix_view) * localPos).xy);\n\n\t\tfloat interpolation = dot(-velocityV, centerToVertexV) * 0.5 + 0.5;\n\n\t\tparticlePos = mix(particlePos, posPrev, interpolation);\n",particle_TBNVS:"\n\t\tmat3 rot3 = mat3(rotMatrix[0][0], rotMatrix[0][1], 0.0, rotMatrix[1][0], rotMatrix[1][1], 0.0, 0.0, 0.0, 1.0);\n\t\tParticleMat = mat3(-matrix_viewInverse[0].xyz, -matrix_viewInverse[1].xyz, matrix_viewInverse[2].xyz) * rot3;\n",particle_wrapVS:"\n\t\tvec3 origParticlePos = particlePos;\n\t\tparticlePos -= matrix_model[3].xyz;\n\t\tparticlePos = mod(particlePos, wrapBounds) - wrapBounds * 0.5;\n\t\tparticlePos += matrix_model[3].xyz;\n\t\tparticlePosMoved = particlePos - origParticlePos;\n",precisionTestPS:"\nvoid main(void) {\n\t\tgl_FragColor = vec4(2147483648.0);\n}\n",precisionTest2PS:"\nuniform sampler2D source;\n\nvec4 packFloat(float depth) {\n\t\tconst vec4 bit_shift = vec4(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);\n\t\tconst vec4 bit_mask\t= vec4(0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);\n\n\t\tvec4 res = mod(depth * bit_shift * vec4(255), vec4(256) ) / vec4(255);\n\t\tres -= res.xxyz * bit_mask;\n\t\treturn res;\n}\n\nvoid main(void) {\n\t\tfloat c = texture2D(source, vec2(0.0)).r;\n\t\tfloat diff = abs(c - 2147483648.0) / 2147483648.0;\n\t\tgl_FragColor = packFloat(diff);\n}\n",reflDirPS:"\nvoid getReflDir() {\n\t\tdReflDirW = normalize(-reflect(dViewDirW, dNormalW));\n}\n",reflDirAnisoPS:"\nvoid getReflDir() {\n\t\tfloat roughness = sqrt(1.0 - min(dGlossiness, 1.0));\n\t\tfloat anisotropy = material_anisotropy * roughness;\n\t\tvec3 anisotropicDirection = anisotropy >= 0.0 ? dTBN[1] : dTBN[0];\n\t\tvec3 anisotropicTangent = cross(anisotropicDirection, dViewDirW);\n\t\tvec3 anisotropicNormal = cross(anisotropicTangent, anisotropicDirection);\n\t\tvec3 bentNormal = normalize(mix(normalize(dNormalW), normalize(anisotropicNormal), anisotropy));\n\t\tdReflDirW = reflect(-dViewDirW, bentNormal);\n}\n",reflectionCCPS:"\n#ifdef CLEARCOAT\nuniform float material_clearCoatReflectivity;\n\nvoid addReflectionCC() {\n\t\tccReflection += vec4(calcReflection(ccReflDirW, ccGlossiness), material_clearCoatReflectivity);\n}\n#endif\n",reflectionCubePS:"\nuniform samplerCube texture_cubeMap;\nuniform float material_reflectivity;\n\nvec3 calcReflection(vec3 tReflDirW, float tGlossiness) {\n\t\tvec3 lookupVec = fixSeams(cubeMapProject(tReflDirW));\n\t\tlookupVec.x *= -1.0;\n\t\treturn $DECODE(textureCube(texture_cubeMap, lookupVec));\n}\n\nvoid addReflection() {\t \n\t\tdReflection += vec4(calcReflection(dReflDirW, dGlossiness), material_reflectivity);\n}\n",reflectionEnvPS:"\n#ifndef ENV_ATLAS\n#define ENV_ATLAS\nuniform sampler2D texture_envAtlas;\n#endif\nuniform float material_reflectivity;\n\n// calculate mip level for shiny reflection given equirect coords uv.\nfloat shinyMipLevel(vec2 uv) {\n\t\tvec2 dx = dFdx(uv);\n\t\tvec2 dy = dFdy(uv);\n\n\t\t// calculate second dF at 180 degrees\n\t\tvec2 uv2 = vec2(fract(uv.x + 0.5), uv.y);\n\t\tvec2 dx2 = dFdx(uv2);\n\t\tvec2 dy2 = dFdy(uv2);\n\n\t\t// calculate min of both sets of dF to handle discontinuity at the azim edge\n\t\tfloat maxd = min(max(dot(dx, dx), dot(dy, dy)), max(dot(dx2, dx2), dot(dy2, dy2)));\n\n\t\treturn clamp(0.5 * log2(maxd) - 1.0 + textureBias, 0.0, 5.0);\n}\n\nvec3 calcReflection(vec3 tReflDirW, float tGlossiness) {\n\t\tvec3 dir = cubeMapProject(tReflDirW) * vec3(-1.0, 1.0, 1.0);\n\t\tvec2 uv = toSphericalUv(dir);\n\n\t\t// calculate roughness level\n\t\tfloat level = saturate(1.0 - tGlossiness) * 5.0;\n\t\tfloat ilevel = floor(level);\n\n\t\t// accessing the shiny (top level) reflection - perform manual mipmap lookup\n\t\tfloat level2 = shinyMipLevel(uv * atlasSize);\n\t\tfloat ilevel2 = floor(level2);\n\n\t\tvec2 uv0, uv1;\n\t\tfloat weight;\n\t\tif (ilevel == 0.0) {\n\t\t\t\tuv0 = mapMip(uv, ilevel2);\n\t\t\t\tuv1 = mapMip(uv, ilevel2 + 1.0);\n\t\t\t\tweight = level2 - ilevel2;\n\t\t} else {\n\t\t\t\t// accessing rough reflection - just sample the same part twice\n\t\t\t\tuv0 = uv1 = mapRoughnessUv(uv, ilevel);\n\t\t\t\tweight = 0.0;\n\t\t}\n\n\t\tvec3 linearA = $DECODE(texture2D(texture_envAtlas, uv0));\n\t\tvec3 linearB = $DECODE(texture2D(texture_envAtlas, uv1));\n\t\tvec3 linear0 = mix(linearA, linearB, weight);\n\t\tvec3 linear1 = $DECODE(texture2D(texture_envAtlas, mapRoughnessUv(uv, ilevel + 1.0)));\n\n\t\treturn processEnvironment(mix(linear0, linear1, level - ilevel));\n}\n\nvoid addReflection() {\t \n\t\tdReflection += vec4(calcReflection(dReflDirW, dGlossiness), material_reflectivity);\n}\n",reflectionSpherePS:"\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\nuniform sampler2D texture_sphereMap;\nuniform float material_reflectivity;\n\nvec3 calcReflection(vec3 tReflDirW, float tGlossiness) {\n\t\tvec3 reflDirV = (mat3(matrix_view) * tReflDirW).xyz;\n\n\t\tfloat m = 2.0 * sqrt( dot(reflDirV.xy, reflDirV.xy) + (reflDirV.z+1.0)*(reflDirV.z+1.0) );\n\t\tvec2 sphereMapUv = reflDirV.xy / m + 0.5;\n\n\t\treturn $DECODE(texture2D(texture_sphereMap, sphereMapUv));\n}\n\nvoid addReflection() {\t \n\t\tdReflection += vec4(calcReflection(dReflDirW, dGlossiness), material_reflectivity);\n}\n",reflectionSphereLowPS:"\nuniform sampler2D texture_sphereMap;\nuniform float material_reflectivity;\n\nvec3 calcReflection(vec3 tReflDirW, float tGlossiness) {\n\t\tvec3 reflDirV = vNormalV;\n\n\t\tvec2 sphereMapUv = reflDirV.xy * 0.5 + 0.5;\n\t\treturn $DECODE(texture2D(texture_sphereMap, sphereMapUv));\n}\n\nvoid addReflection() {\t \n\t\tdReflection += vec4(calcReflection(dReflDirW, dGlossiness), material_reflectivity);\n}\n",refractionPS:"\nuniform float material_refraction, material_refractionIndex;\n\nvec3 refract2(vec3 viewVec, vec3 Normal, float IOR) {\n\t\tfloat vn = dot(viewVec, Normal);\n\t\tfloat k = 1.0 - IOR * IOR * (1.0 - vn * vn);\n\t\tvec3 refrVec = IOR * viewVec - (IOR * vn + sqrt(k)) * Normal;\n\t\treturn refrVec;\n}\n\nvoid addRefraction() {\n\t\t// use same reflection code with refraction vector\n\t\tvec3 tmp = dReflDirW;\n\t\tvec4 tmp2 = dReflection;\n\t\tdReflection = vec4(0.0);\n\t\tdReflDirW = refract2(-dViewDirW, dNormalW, material_refractionIndex);\n\n\t\taddReflection();\n\n\t\tdDiffuseLight = mix(dDiffuseLight, dReflection.rgb * dAlbedo, material_refraction);\n\t\tdReflDirW = tmp;\n\t\tdReflection = tmp2;\n}\n",reprojectPS:'\n// This shader requires the following #DEFINEs:\n//\n// PROCESS_FUNC - must be one of reproject, prefilter\n// DECODE_FUNC - must be one of decodeRGBM, decodeRGBE, decodeGamma or decodeLinear\n// ENCODE_FUNC - must be one of encodeRGBM, encodeRGBE, encideGamma or encodeLinear\n// SOURCE_FUNC - must be one of sampleCubemap, sampleEquirect, sampleOctahedral\n// TARGET_FUNC - must be one of getDirectionCubemap, getDirectionEquirect, getDirectionOctahedral\n//\n// When filtering:\n// NUM_SAMPLES - number of samples\n// NUM_SAMPLES_SQRT - sqrt of number of samples\n//\n// SUPPORTS_TEXLOD - whether supports texlod is supported\n\nvarying vec2 vUv0;\n\n// source\nuniform sampler2D sourceTex;\nuniform samplerCube sourceCube;\n\n// samples\nuniform sampler2D samplesTex;\nuniform vec2 samplesTexInverseSize;\n\n// params:\n// x - target cubemap face 0..6\n// y - specular power (when prefiltering)\n// z - source cubemap seam scale (0 to disable)\n// w - target cubemap size for seam calc (0 to disable)\nuniform vec4 params;\n\n// params2:\n// x - target image total pixels\n// y - source cubemap size\nuniform vec2 params2;\n\nfloat targetFace() { return params.x; }\nfloat specularPower() { return params.y; }\nfloat sourceCubeSeamScale() { return params.z; }\nfloat targetCubeSeamScale() { return params.w; }\n\nfloat targetTotalPixels() { return params2.x; }\nfloat sourceTotalPixels() { return params2.y; }\n\nfloat PI = 3.141592653589793;\n\nfloat saturate(float x) {\n\t\treturn clamp(x, 0.0, 1.0);\n}\n\n//-- supported codings\n\nvec3 decodeLinear(vec4 source) {\n\t\treturn source.rgb;\n}\n\nvec4 encodeLinear(vec3 source) {\n\t\treturn vec4(source, 1.0);\n}\n\nvec3 decodeGamma(vec4 source) {\n\t\treturn pow(source.xyz, vec3(2.2));\n}\n\nvec4 encodeGamma(vec3 source) {\n\t\treturn vec4(pow(source + 0.0000001, vec3(1.0 / 2.2)), 1.0);\n}\n\nvec3 decodeRGBM(vec4 rgbm) {\n\t\tvec3 color = (8.0 * rgbm.a) * rgbm.rgb;\n\t\treturn color * color;\n}\n\nvec4 encodeRGBM(vec3 source) { // modified RGBM\n\t\tvec4 result;\n\t\tresult.rgb = pow(source.rgb, vec3(0.5));\n\t\tresult.rgb *= 1.0 / 8.0;\n\n\t\tresult.a = saturate( max( max( result.r, result.g ), max( result.b, 1.0 / 255.0 ) ) );\n\t\tresult.a = ceil(result.a * 255.0) / 255.0;\n\n\t\tresult.rgb /= result.a;\n\t\treturn result;\n}\n\nvec3 decodeRGBE(vec4 source) {\n\t\tif (source.a == 0.0) {\n\t\t\t\treturn vec3(0.0, 0.0, 0.0);\n\t\t} else {\n\t\t\t\treturn source.xyz * pow(2.0, source.w * 255.0 - 128.0);\n\t\t}\n}\n\nvec4 encodeRGBE(vec3 source) {\n\t\tfloat maxVal = max(source.x, max(source.y, source.z));\n\t\tif (maxVal < 1e-32) {\n\t\t\t\treturn vec4(0, 0, 0, 0);\n\t\t} else {\n\t\t\t\tfloat e = ceil(log2(maxVal));\n\t\t\t\treturn vec4(source / pow(2.0, e), (e + 128.0) / 255.0);\n\t\t}\n}\n\n//-- supported projections\n\nvec3 modifySeams(vec3 dir, float scale) {\n\t\tvec3 adir = abs(dir);\n\t\tfloat M = max(max(adir.x, adir.y), adir.z);\n\t\treturn dir / M * vec3(\n\t\t\t\tadir.x == M ? 1.0 : scale,\n\t\t\t\tadir.y == M ? 1.0 : scale,\n\t\t\t\tadir.z == M ? 1.0 : scale\n\t\t);\n}\n\nvec2 toSpherical(vec3 dir) {\n\t\treturn vec2(dir.xz == vec2(0.0) ? 0.0 : atan(dir.x, dir.z), asin(dir.y));\n}\n\nvec3 fromSpherical(vec2 uv) {\n\t\treturn vec3(cos(uv.y) * sin(uv.x),\n\t\t\t\t\t\t\t\tsin(uv.y),\n\t\t\t\t\t\t\t\tcos(uv.y) * cos(uv.x));\n}\n\nvec3 getDirectionEquirect() {\n\t\treturn fromSpherical((vec2(vUv0.x, 1.0 - vUv0.y) * 2.0 - 1.0) * vec2(PI, PI * 0.5));\n}\n\nvec4 sampleEquirect(vec2 sph) {\n\t\tvec2 uv = sph / vec2(PI * 2.0, PI) + 0.5;\n\t\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n}\n\nvec4 sampleEquirect(vec3 dir) {\n\t\treturn sampleEquirect(toSpherical(dir));\n}\n\nvec4 sampleCubemap(vec3 dir) {\n\t\treturn textureCube(sourceCube, modifySeams(dir, 1.0 - sourceCubeSeamScale()));\n}\n\nvec4 sampleCubemap(vec2 sph) {\n\t\treturn sampleCubemap(fromSpherical(sph));\n}\n\nvec4 sampleEquirect(vec2 sph, float mipLevel) {\n\t\tvec2 uv = sph / vec2(PI * 2.0, PI) + 0.5;\n#ifdef SUPPORTS_TEXLOD\n\t\treturn texture2DLodEXT(sourceTex, vec2(uv.x, 1.0 - uv.y), mipLevel);\n#else\n\t\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n#endif\n}\n\nvec4 sampleEquirect(vec3 dir, float mipLevel) {\n\t\treturn sampleEquirect(toSpherical(dir), mipLevel);\n}\n\nvec4 sampleCubemap(vec3 dir, float mipLevel) {\n#ifdef SUPPORTS_TEXLOD\n\t\treturn textureCubeLodEXT(sourceCube, modifySeams(dir, 1.0 - exp2(mipLevel) * sourceCubeSeamScale()), mipLevel);\n#else\n\t\treturn textureCube(sourceCube, modifySeams(dir, 1.0 - exp2(mipLevel) * sourceCubeSeamScale()));\n#endif\n}\n\nvec4 sampleCubemap(vec2 sph, float mipLevel) {\n\t\treturn sampleCubemap(fromSpherical(sph), mipLevel);\n}\n\n// octahedral code, based on http://jcgt.org/published/0003/02/01\n// "Survey of Efficient Representations for Independent Unit Vectors" by Cigolle, Donow, Evangelakos, Mara, McGuire, Meyer\n\nfloat signNotZero(float k){\n\t\treturn(k >= 0.0) ? 1.0 : -1.0;\n}\n\nvec2 signNotZero(vec2 v) {\n\t\treturn vec2(signNotZero(v.x), signNotZero(v.y));\n}\n\n// Returns a unit vector. Argument o is an octahedral vector packed via octEncode, on the [-1, +1] square\nvec3 octDecode(vec2 o) {\n\t\tvec3 v = vec3(o.x, 1.0 - abs(o.x) - abs(o.y), o.y);\n\t\tif (v.y < 0.0) {\n\t\t\t\tv.xz = (1.0 - abs(v.zx)) * signNotZero(v.xz);\n\t\t}\n\t\treturn normalize(v);\n}\n\nvec3 getDirectionOctahedral() {\n\t\treturn octDecode(vec2(vUv0.x, 1.0 - vUv0.y) * 2.0 - 1.0);\n}\n\n// Assumes that v is a unit vector. The result is an octahedral vector on the [-1, +1] square\nvec2 octEncode(in vec3 v) {\n\t\tfloat l1norm = abs(v.x) + abs(v.y) + abs(v.z);\n\t\tvec2 result = v.xz * (1.0 / l1norm);\n\t\tif (v.y < 0.0) {\n\t\t\t\tresult = (1.0 - abs(result.yx)) * signNotZero(result.xy);\n\t\t}\n\t\treturn result;\n}\n\nvec4 sampleOctahedral(vec3 dir) {\n\t\tvec2 uv = octEncode(dir) * 0.5 + 0.5;\n\t\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n}\n\nvec4 sampleOctahedral(vec2 sph) {\n\t\treturn sampleOctahedral(fromSpherical(sph));\n}\n\nvec4 sampleOctahedral(vec3 dir, float mipLevel) {\n\t\tvec2 uv = octEncode(dir) * 0.5 + 0.5;\n#ifdef SUPPORTS_TEXLOD\n\t\treturn texture2DLodEXT(sourceTex, vec2(uv.x, 1.0 - uv.y), mipLevel);\n#else\n\t\treturn texture2D(sourceTex, vec2(uv.x, 1.0 - uv.y));\n#endif\n}\n\nvec4 sampleOctahedral(vec2 sph, float mipLevel) {\n\t\treturn sampleOctahedral(fromSpherical(sph), mipLevel);\n}\n\n/////////////////////////////////////////////////////////////////////\n\nvec3 getDirectionCubemap() {\n\t\tvec2 st = vUv0 * 2.0 - 1.0;\n\t\tfloat face = targetFace();\n\n\t\tvec3 vec;\n\t\tif (face == 0.0) {\n\t\t\t\tvec = vec3(1, -st.y, -st.x);\n\t\t} else if (face == 1.0) {\n\t\t\t\tvec = vec3(-1, -st.y, st.x);\n\t\t} else if (face == 2.0) {\n\t\t\t\tvec = vec3(st.x, 1, st.y);\n\t\t} else if (face == 3.0) {\n\t\t\t\tvec = vec3(st.x, -1, -st.y);\n\t\t} else if (face == 4.0) {\n\t\t\t\tvec = vec3(st.x, -st.y, 1);\n\t\t} else {\n\t\t\t\tvec = vec3(-st.x, -st.y, -1);\n\t\t}\n\n\t\treturn normalize(modifySeams(vec, 1.0 / (1.0 - targetCubeSeamScale())));\n}\n\nmat3 matrixFromVector(vec3 n) { // frisvad\n\t\tfloat a = 1.0 / (1.0 + n.z);\n\t\tfloat b = -n.x * n.y * a;\n\t\tvec3 b1 = vec3(1.0 - n.x * n.x * a, b, -n.x);\n\t\tvec3 b2 = vec3(b, 1.0 - n.y * n.y * a, -n.y);\n\t\treturn mat3(b1, b2, n);\n}\n\nmat3 matrixFromVectorSlow(vec3 n) {\n\t\tvec3 up = (1.0 - abs(n.y) <= 0.0000001) ? vec3(0.0, 0.0, n.y > 0.0 ? 1.0 : -1.0) : vec3(0.0, 1.0, 0.0);\n\t\tvec3 x = normalize(cross(up, n));\n\t\tvec3 y = cross(n, x);\n\t\treturn mat3(x, y, n);\n}\n\nvec4 reproject() {\n\t\tif (NUM_SAMPLES <= 1) {\n\t\t\t\t// single sample\n\t\t\t\treturn ENCODE_FUNC(DECODE_FUNC(SOURCE_FUNC(TARGET_FUNC())));\n\t\t} else {\n\t\t\t\t// multi sample\n\t\t\t\tvec2 sph = toSpherical(TARGET_FUNC());\n\t\t\t\tvec2 sphu = dFdx(sph);\n\t\t\t\tvec2 sphv = dFdy(sph);\n\t\t\t\tvec3 result = vec3(0.0);\n\t\t\t\tfor (float u = 0.0; u < NUM_SAMPLES_SQRT; ++u) {\n\t\t\t\t\t\tfor (float v = 0.0; v < NUM_SAMPLES_SQRT; ++v) {\n\t\t\t\t\t\t\t\tresult += DECODE_FUNC(SOURCE_FUNC(sph +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsphu * (u / NUM_SAMPLES_SQRT - 0.5) +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsphv * (v / NUM_SAMPLES_SQRT - 0.5)));\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ENCODE_FUNC(result / (NUM_SAMPLES_SQRT * NUM_SAMPLES_SQRT));\n\t\t}\n}\n\nvec4 unpackFloat = vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0);\n\nvoid unpackSample(int i, out vec3 L, out float mipLevel) {\n\t\tfloat u = (float(i * 4) + 0.5) * samplesTexInverseSize.x;\n\t\tfloat v = (floor(u) + 0.5) * samplesTexInverseSize.y;\n\n\t\tvec4 raw;\n\t\traw.x = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\t\traw.y = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\t\traw.z = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat); u += samplesTexInverseSize.x;\n\t\traw.w = dot(texture2D(samplesTex, vec2(u, v)), unpackFloat);\n\n\t\tL.xyz = raw.xyz * 2.0 - 1.0;\n\t\tmipLevel = raw.w * 8.0;\n}\n\n// convolve an environment given pre-generated samples\nvec4 prefilterSamples() {\n\t\t// construct vector space given target direction\n\t\tmat3 vecSpace = matrixFromVectorSlow(TARGET_FUNC());\n\n\t\tvec3 L;\n\t\tfloat mipLevel;\n\n\t\tvec3 result = vec3(0.0);\n\t\tfloat totalWeight = 0.0;\n\t\tfor (int i = 0; i < NUM_SAMPLES; ++i) {\n\t\t\t\tunpackSample(i, L, mipLevel);\n\t\t\t\tresult += DECODE_FUNC(SOURCE_FUNC(vecSpace * L, mipLevel)) * L.z;\n\t\t\t\ttotalWeight += L.z;\n\t\t}\n\n\t\treturn ENCODE_FUNC(result / totalWeight);\n}\n\n// unweighted version of prefilterSamples\nvec4 prefilterSamplesUnweighted() {\n\t\t// construct vector space given target direction\n\t\tmat3 vecSpace = matrixFromVectorSlow(TARGET_FUNC());\n\n\t\tvec3 L;\n\t\tfloat mipLevel;\n\n\t\tvec3 result = vec3(0.0);\n\t\tfloat totalWeight = 0.0;\n\t\tfor (int i = 0; i < NUM_SAMPLES; ++i) {\n\t\t\t\tunpackSample(i, L, mipLevel);\n\t\t\t\tresult += DECODE_FUNC(SOURCE_FUNC(vecSpace * L, mipLevel));\n\t\t}\n\n\t\treturn ENCODE_FUNC(result / float(NUM_SAMPLES));\n}\n\nvoid main(void) {\n\t\tgl_FragColor = PROCESS_FUNC();\n}\n',rgbmPS:"\nvec3 texture2DRGBM(sampler2D tex, vec2 uv) {\n\t\treturn decodeRGBM(texture2D(tex, uv));\n}\n\nvec3 texture2DRGBM(sampler2D tex, vec2 uv, float bias) {\n\t\treturn decodeRGBM(texture2D(tex, uv, bias));\n}\n\nvec3 textureCubeRGBM(samplerCube tex, vec3 uvw) {\n\t\treturn decodeRGBM(textureCube(tex, uvw));\n}\n",screenDepthPS:"\nuniform highp sampler2D uSceneDepthMap;\n\n#ifndef SCREENSIZE\n#define SCREENSIZE\nuniform vec4 uScreenSize;\n#endif\n\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n\n#ifndef CAMERAPLANES\n#define CAMERAPLANES\nuniform vec4 camera_params; // 1 / camera_far,\t\t\tcamera_far,\t\t (1 - f / n) / 2,\t\t\t\t(1 + f / n) / 2\n#endif\n\n#ifdef GL2\nfloat linearizeDepth(float z) {\n\t\tz = z * 2.0 - 1.0;\n\t\treturn 1.0 / (camera_params.z * z + camera_params.w);\n}\n#else\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n\t\tconst vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n\t\treturn dot(rgbaDepth, bitShift);\n}\n#endif\n#endif\n\n// Retrieves rendered linear camera depth by UV\nfloat getLinearScreenDepth(vec2 uv) {\n\t\t#ifdef GL2\n\t\treturn linearizeDepth(texture2D(uSceneDepthMap, uv).r) * camera_params.y;\n\t\t#else\n\t\treturn unpackFloat(texture2D(uSceneDepthMap, uv)) * camera_params.y;\n\t\t#endif\n}\n\n#ifndef VERTEXSHADER\n// Retrieves rendered linear camera depth under the current pixel\nfloat getLinearScreenDepth() {\n\t\tvec2 uv = gl_FragCoord.xy * uScreenSize.zw;\n\t\treturn getLinearScreenDepth(uv);\n}\n#endif\n\n// Generates linear camera depth for the given world position\nfloat getLinearDepth(vec3 pos) {\n\t\treturn -(matrix_view * vec4(pos, 1.0)).z;\n}\n",shadowCascadesPS:"\nconst float maxCascades = 4.0;\n\n// shadow matrix for selected cascade\nmat4 cascadeShadowMat;\n\n// function which selects a shadow projection matrix based on cascade distances \nvoid getShadowCascadeMatrix(mat4 shadowMatrixPalette[4], float shadowCascadeDistances[4], float shadowCascadeCount) {\n\n\t\t// depth in 0 .. far plane range\n\t\tfloat depth = 1.0 / gl_FragCoord.w;\n\n\t\t// find cascade index based on the depth (loop as there is no per component vec compare operator in webgl)\n\t\tfloat cascadeIndex = 0.0;\n\t\tfor (float i = 0.0; i < maxCascades; i++) {\n\t\t\t\tif (depth < shadowCascadeDistances[int(i)]) {\n\t\t\t\t\t\tcascadeIndex = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t}\n\n\t\t// limit to actual number of used cascades\n\t\tcascadeIndex = min(cascadeIndex, shadowCascadeCount - 1.0);\n\n\t\t// pick shadow matrix\n\t\t#ifdef GL2\n\t\t\t\tcascadeShadowMat = shadowMatrixPalette[int(cascadeIndex)];\n\t\t#else\n\t\t\t\t// webgl 1 does not allow non-cost index array lookup\n\t\t\t\tif (cascadeIndex == 0.0) {\n\t\t\t\t\t\tcascadeShadowMat = shadowMatrixPalette[0];\n\t\t\t\t}\n\t\t\t\telse if (cascadeIndex == 1.0) {\n\t\t\t\t\t\tcascadeShadowMat = shadowMatrixPalette[1];\n\t\t\t\t}\n\t\t\t\telse if (cascadeIndex == 2.0) {\n\t\t\t\t\t\tcascadeShadowMat = shadowMatrixPalette[2];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t\tcascadeShadowMat = shadowMatrixPalette[3];\n\t\t\t\t}\n\t\t#endif\n}\n\nvoid fadeShadow(float shadowCascadeDistances[4]) {\t\t\t\t\t\t\t\t\t\n\n\t\t// if the pixel is past the shadow distance, remove shadow\n\t\t// this enforces straight line instead of corner of shadow which moves when camera rotates\t\n\t\tfloat depth = 1.0 / gl_FragCoord.w;\n\t\tif (depth > shadowCascadeDistances[int(maxCascades - 1.0)]) {\n\t\t\t\tdShadowCoord.z = -9999999.0;\n\t\t}\n}\n",shadowCommonPS:"\nvoid normalOffsetPointShadow(vec4 shadowParams) {\n\t\tfloat distScale = length(dLightDirW);\n\t\tvec3 wPos = vPositionW + dVertexNormalW * shadowParams.y * clamp(1.0 - dot(dVertexNormalW, -dLightDirNormW), 0.0, 1.0) * distScale; //0.02\n\t\tvec3 dir = wPos - dLightPosW;\n\t\tdLightDirW = dir;\n}\n",shadowCoordPS:"\nvoid _getShadowCoordOrtho(mat4 shadowMatrix, vec3 shadowParams, vec3 wPos) {\n\t\tdShadowCoord = (shadowMatrix * vec4(wPos, 1.0)).xyz;\n\t\tdShadowCoord.z = saturate(dShadowCoord.z) - 0.0001;\n\n\t\t#ifdef SHADOWBIAS\n\t\tdShadowCoord.z += getShadowBias(shadowParams.x, shadowParams.z);\n\t\t#endif\n}\n\nvoid _getShadowCoordPersp(mat4 shadowMatrix, vec4 shadowParams, vec3 wPos) {\n\t\tvec4 projPos = shadowMatrix * vec4(wPos, 1.0);\n\t\tprojPos.xy /= projPos.w;\n\t\tdShadowCoord.xy = projPos.xy;\n\t\tdShadowCoord.z = length(dLightDirW) * shadowParams.w;\n\n\t\t#ifdef SHADOWBIAS\n\t\tdShadowCoord.z += getShadowBias(shadowParams.x, shadowParams.z);\n\t\t#endif\n}\n\nvoid getShadowCoordOrtho(mat4 shadowMatrix, vec3 shadowParams) {\n\t\t_getShadowCoordOrtho(shadowMatrix, shadowParams, vPositionW);\n}\n\nvoid getShadowCoordPersp(mat4 shadowMatrix, vec4 shadowParams) {\n\t\t_getShadowCoordPersp(shadowMatrix, shadowParams, vPositionW);\n}\n\nvoid getShadowCoordPerspNormalOffset(mat4 shadowMatrix, vec4 shadowParams) {\n\t\tfloat distScale = abs(dot(vPositionW - dLightPosW, dLightDirNormW)); // fov?\n\t\tvec3 wPos = vPositionW + dVertexNormalW * shadowParams.y * clamp(1.0 - dot(dVertexNormalW, -dLightDirNormW), 0.0, 1.0) * distScale;\n\n\t\t_getShadowCoordPersp(shadowMatrix, shadowParams, wPos);\n}\n\nvoid getShadowCoordOrthoNormalOffset(mat4 shadowMatrix, vec3 shadowParams) {\n\t\tvec3 wPos = vPositionW + dVertexNormalW * shadowParams.y * clamp(1.0 - dot(dVertexNormalW, -dLightDirNormW), 0.0, 1.0); //0.08\n\n\t\t_getShadowCoordOrtho(shadowMatrix, shadowParams, wPos);\n}\n",shadowCoordPerspZbufferPS:"\nvoid _getShadowCoordPerspZbuffer(mat4 shadowMatrix, vec4 shadowParams, vec3 wPos) {\n\t\tvec4 projPos = shadowMatrix * vec4(wPos, 1.0);\n\t\tprojPos.xyz /= projPos.w;\n\t\tdShadowCoord = projPos.xyz;\n\t\t// depth bias is already applied on render\n}\n\nvoid getShadowCoordPerspZbufferNormalOffset(mat4 shadowMatrix, vec4 shadowParams) {\n\t\tfloat distScale = abs(dot(vPositionW - dLightPosW, dLightDirNormW)); // fov?\n\t\tvec3 wPos = vPositionW + dVertexNormalW * shadowParams.y * clamp(1.0 - dot(dVertexNormalW, -dLightDirNormW), 0.0, 1.0) * distScale;\n\t\t_getShadowCoordPerspZbuffer(shadowMatrix, shadowParams, wPos);\n}\n\nvoid getShadowCoordPerspZbuffer(mat4 shadowMatrix, vec4 shadowParams) {\n\t\t_getShadowCoordPerspZbuffer(shadowMatrix, shadowParams, vPositionW);\n}\n",shadowEVSMPS:"\nfloat VSM$(sampler2D tex, vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n\t\tvec3 moments = texture2D(tex, texCoords).xyz;\n\t\treturn calculateEVSM(moments, Z, vsmBias, exponent);\n}\n\nfloat getShadowVSM$(sampler2D shadowMap, vec3 shadowParams, float exponent) {\n\t\treturn VSM$(shadowMap, dShadowCoord.xy, shadowParams.x, dShadowCoord.z, shadowParams.y, exponent);\n}\n\nfloat getShadowSpotVSM$(sampler2D shadowMap, vec4 shadowParams, float exponent) {\n\t\treturn VSM$(shadowMap, dShadowCoord.xy, shadowParams.x, length(dLightDirW) * shadowParams.w + shadowParams.z, shadowParams.y, exponent);\n}\n",shadowEVSMnPS:"\nfloat VSM$(sampler2D tex, vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n\t\tfloat pixelSize = 1.0 / resolution;\n\t\ttexCoords -= vec2(pixelSize);\n\t\tvec3 s00 = texture2D(tex, texCoords).xyz;\n\t\tvec3 s10 = texture2D(tex, texCoords + vec2(pixelSize, 0)).xyz;\n\t\tvec3 s01 = texture2D(tex, texCoords + vec2(0, pixelSize)).xyz;\n\t\tvec3 s11 = texture2D(tex, texCoords + vec2(pixelSize)).xyz;\n\t\tvec2 fr = fract(texCoords * resolution);\n\t\tvec3 h0 = mix(s00, s10, fr.x);\n\t\tvec3 h1 = mix(s01, s11, fr.x);\n\t\tvec3 moments = mix(h0, h1, fr.y);\n\t\treturn calculateEVSM(moments, Z, vsmBias, exponent);\n}\n\nfloat getShadowVSM$(sampler2D shadowMap, vec3 shadowParams, float exponent) {\n\t\treturn VSM$(shadowMap, dShadowCoord.xy, shadowParams.x, dShadowCoord.z, shadowParams.y, exponent);\n}\n\nfloat getShadowSpotVSM$(sampler2D shadowMap, vec4 shadowParams, float exponent) {\n\t\treturn VSM$(shadowMap, dShadowCoord.xy, shadowParams.x, length(dLightDirW) * shadowParams.w + shadowParams.z, shadowParams.y, exponent);\n}\n",shadowStandardPS:"\nvec3 lessThan2(vec3 a, vec3 b) {\n\t\treturn clamp((b - a)*1000.0, 0.0, 1.0); // softer version\n}\n\n#ifndef UNPACKFLOAT\n#define UNPACKFLOAT\nfloat unpackFloat(vec4 rgbaDepth) {\n\t\tconst vec4 bitShift = vec4(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);\n\t\treturn dot(rgbaDepth, bitShift);\n}\n#endif\n\n// ----- Direct/Spot Sampling -----\n\n#ifdef GL2\nfloat _getShadowPCF3x3(sampler2DShadow shadowMap, vec3 shadowParams) {\n\t\tfloat z = dShadowCoord.z;\n\t\tvec2 uv = dShadowCoord.xy * shadowParams.x; // 1 unit - 1 texel\n\t\tfloat shadowMapSizeInv = 1.0 / shadowParams.x;\n\t\tvec2 base_uv = floor(uv + 0.5);\n\t\tfloat s = (uv.x + 0.5 - base_uv.x);\n\t\tfloat t = (uv.y + 0.5 - base_uv.y);\n\t\tbase_uv -= vec2(0.5);\n\t\tbase_uv *= shadowMapSizeInv;\n\n\t\tfloat sum = 0.0;\n\n\t\tfloat uw0 = (3.0 - 2.0 * s);\n\t\tfloat uw1 = (1.0 + 2.0 * s);\n\n\t\tfloat u0 = (2.0 - s) / uw0 - 1.0;\n\t\tfloat u1 = s / uw1 + 1.0;\n\n\t\tfloat vw0 = (3.0 - 2.0 * t);\n\t\tfloat vw1 = (1.0 + 2.0 * t);\n\n\t\tfloat v0 = (2.0 - t) / vw0 - 1.0;\n\t\tfloat v1 = t / vw1 + 1.0;\n\n\t\tu0 = u0 * shadowMapSizeInv + base_uv.x;\n\t\tv0 = v0 * shadowMapSizeInv + base_uv.y;\n\n\t\tu1 = u1 * shadowMapSizeInv + base_uv.x;\n\t\tv1 = v1 * shadowMapSizeInv + base_uv.y;\n\n\t\tsum += uw0 * vw0 * texture(shadowMap, vec3(u0, v0, z));\n\t\tsum += uw1 * vw0 * texture(shadowMap, vec3(u1, v0, z));\n\t\tsum += uw0 * vw1 * texture(shadowMap, vec3(u0, v1, z));\n\t\tsum += uw1 * vw1 * texture(shadowMap, vec3(u1, v1, z));\n\n\t\tsum *= 1.0f / 16.0;\n\t\treturn sum;\n}\n\nfloat getShadowPCF3x3(sampler2DShadow shadowMap, vec3 shadowParams) {\n\t\treturn _getShadowPCF3x3(shadowMap, shadowParams);\n}\n\nfloat getShadowSpotPCF3x3(sampler2DShadow shadowMap, vec4 shadowParams) {\n\t\treturn _getShadowPCF3x3(shadowMap, shadowParams.xyz);\n}\n#else\nfloat _xgetShadowPCF3x3(mat3 depthKernel, sampler2D shadowMap, vec3 shadowParams) {\n\t\tmat3 shadowKernel;\n\t\tvec3 shadowCoord = dShadowCoord;\n\t\tvec3 shadowZ = vec3(shadowCoord.z);\n\t\tshadowKernel[0] = vec3(greaterThan(depthKernel[0], shadowZ));\n\t\tshadowKernel[1] = vec3(greaterThan(depthKernel[1], shadowZ));\n\t\tshadowKernel[2] = vec3(greaterThan(depthKernel[2], shadowZ));\n\n\t\tvec2 fractionalCoord = fract( shadowCoord.xy * shadowParams.x );\n\n\t\tshadowKernel[0] = mix(shadowKernel[0], shadowKernel[1], fractionalCoord.x);\n\t\tshadowKernel[1] = mix(shadowKernel[1], shadowKernel[2], fractionalCoord.x);\n\n\t\tvec4 shadowValues;\n\t\tshadowValues.x = mix(shadowKernel[0][0], shadowKernel[0][1], fractionalCoord.y);\n\t\tshadowValues.y = mix(shadowKernel[0][1], shadowKernel[0][2], fractionalCoord.y);\n\t\tshadowValues.z = mix(shadowKernel[1][0], shadowKernel[1][1], fractionalCoord.y);\n\t\tshadowValues.w = mix(shadowKernel[1][1], shadowKernel[1][2], fractionalCoord.y);\n\n\t\treturn dot( shadowValues, vec4( 1.0 ) ) * 0.25;\n}\n\nfloat _getShadowPCF3x3(sampler2D shadowMap, vec3 shadowParams) {\n\t\tvec3 shadowCoord = dShadowCoord;\n\n\t\tfloat xoffset = 1.0 / shadowParams.x; // 1/shadow map width\n\t\tfloat dx0 = -xoffset;\n\t\tfloat dx1 = xoffset;\n\n\t\tmat3 depthKernel;\n\t\tdepthKernel[0][0] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx0, dx0)));\n\t\tdepthKernel[0][1] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx0, 0.0)));\n\t\tdepthKernel[0][2] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx0, dx1)));\n\t\tdepthKernel[1][0] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(0.0, dx0)));\n\t\tdepthKernel[1][1] = unpackFloat(texture2D(shadowMap, shadowCoord.xy));\n\t\tdepthKernel[1][2] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(0.0, dx1)));\n\t\tdepthKernel[2][0] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx1, dx0)));\n\t\tdepthKernel[2][1] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx1, 0.0)));\n\t\tdepthKernel[2][2] = unpackFloat(texture2D(shadowMap, shadowCoord.xy + vec2(dx1, dx1)));\n\n\t\treturn _xgetShadowPCF3x3(depthKernel, shadowMap, shadowParams);\n}\n\nfloat getShadowPCF3x3(sampler2D shadowMap, vec3 shadowParams) {\n\t\treturn _getShadowPCF3x3(shadowMap, shadowParams);\n}\n\nfloat getShadowSpotPCF3x3(sampler2D shadowMap, vec4 shadowParams) {\n\t\treturn _getShadowPCF3x3(shadowMap, shadowParams.xyz);\n}\n#endif\n\n\n// ----- Omni Sampling -----\n\nfloat _getShadowPoint(samplerCube shadowMap, vec4 shadowParams, vec3 dir) {\n\n\t\tvec3 tc = normalize(dir);\n\t\tvec3 tcAbs = abs(tc);\n\n\t\tvec4 dirX = vec4(1,0,0, tc.x);\n\t\tvec4 dirY = vec4(0,1,0, tc.y);\n\t\tfloat majorAxisLength = tc.z;\n\t\tif ((tcAbs.x > tcAbs.y) && (tcAbs.x > tcAbs.z)) {\n\t\t\t\tdirX = vec4(0,0,1, tc.z);\n\t\t\t\tdirY = vec4(0,1,0, tc.y);\n\t\t\t\tmajorAxisLength = tc.x;\n\t\t} else if ((tcAbs.y > tcAbs.x) && (tcAbs.y > tcAbs.z)) {\n\t\t\t\tdirX = vec4(1,0,0, tc.x);\n\t\t\t\tdirY = vec4(0,0,1, tc.z);\n\t\t\t\tmajorAxisLength = tc.y;\n\t\t}\n\n\t\tfloat shadowParamsInFaceSpace = ((1.0/shadowParams.x) * 2.0) * abs(majorAxisLength);\n\n\t\tvec3 xoffset = (dirX.xyz * shadowParamsInFaceSpace);\n\t\tvec3 yoffset = (dirY.xyz * shadowParamsInFaceSpace);\n\t\tvec3 dx0 = -xoffset;\n\t\tvec3 dy0 = -yoffset;\n\t\tvec3 dx1 = xoffset;\n\t\tvec3 dy1 = yoffset;\n\n\t\tmat3 shadowKernel;\n\t\tmat3 depthKernel;\n\n\t\tdepthKernel[0][0] = unpackFloat(textureCube(shadowMap, tc + dx0 + dy0));\n\t\tdepthKernel[0][1] = unpackFloat(textureCube(shadowMap, tc + dx0));\n\t\tdepthKernel[0][2] = unpackFloat(textureCube(shadowMap, tc + dx0 + dy1));\n\t\tdepthKernel[1][0] = unpackFloat(textureCube(shadowMap, tc + dy0));\n\t\tdepthKernel[1][1] = unpackFloat(textureCube(shadowMap, tc));\n\t\tdepthKernel[1][2] = unpackFloat(textureCube(shadowMap, tc + dy1));\n\t\tdepthKernel[2][0] = unpackFloat(textureCube(shadowMap, tc + dx1 + dy0));\n\t\tdepthKernel[2][1] = unpackFloat(textureCube(shadowMap, tc + dx1));\n\t\tdepthKernel[2][2] = unpackFloat(textureCube(shadowMap, tc + dx1 + dy1));\n\n\t\tvec3 shadowZ = vec3(length(dir) * shadowParams.w + shadowParams.z);\n\n\t\tshadowKernel[0] = vec3(lessThan2(depthKernel[0], shadowZ));\n\t\tshadowKernel[1] = vec3(lessThan2(depthKernel[1], shadowZ));\n\t\tshadowKernel[2] = vec3(lessThan2(depthKernel[2], shadowZ));\n\n\t\tvec2 uv = (vec2(dirX.w, dirY.w) / abs(majorAxisLength)) * 0.5;\n\n\t\tvec2 fractionalCoord = fract( uv * shadowParams.x );\n\n\t\tshadowKernel[0] = mix(shadowKernel[0], shadowKernel[1], fractionalCoord.x);\n\t\tshadowKernel[1] = mix(shadowKernel[1], shadowKernel[2], fractionalCoord.x);\n\n\t\tvec4 shadowValues;\n\t\tshadowValues.x = mix(shadowKernel[0][0], shadowKernel[0][1], fractionalCoord.y);\n\t\tshadowValues.y = mix(shadowKernel[0][1], shadowKernel[0][2], fractionalCoord.y);\n\t\tshadowValues.z = mix(shadowKernel[1][0], shadowKernel[1][1], fractionalCoord.y);\n\t\tshadowValues.w = mix(shadowKernel[1][1], shadowKernel[1][2], fractionalCoord.y);\n\n\t\treturn 1.0 - dot( shadowValues, vec4( 1.0 ) ) * 0.25;\n}\n\nfloat getShadowPointPCF3x3(samplerCube shadowMap, vec4 shadowParams) {\n\t\treturn _getShadowPoint(shadowMap, shadowParams, dLightDirW);\n}\n",shadowStandardGL2PS:"\nfloat _getShadowPCF5x5(sampler2DShadow shadowMap, vec3 shadowParams) {\n\t\t// http://the-witness.net/news/2013/09/shadow-mapping-summary-part-1/\n\n\t\tfloat z = dShadowCoord.z;\n\t\tvec2 uv = dShadowCoord.xy * shadowParams.x; // 1 unit - 1 texel\n\t\tfloat shadowMapSizeInv = 1.0 / shadowParams.x;\n\t\tvec2 base_uv = floor(uv + 0.5);\n\t\tfloat s = (uv.x + 0.5 - base_uv.x);\n\t\tfloat t = (uv.y + 0.5 - base_uv.y);\n\t\tbase_uv -= vec2(0.5);\n\t\tbase_uv *= shadowMapSizeInv;\n\n\n\t\tfloat uw0 = (4.0 - 3.0 * s);\n\t\tfloat uw1 = 7.0;\n\t\tfloat uw2 = (1.0 + 3.0 * s);\n\n\t\tfloat u0 = (3.0 - 2.0 * s) / uw0 - 2.0;\n\t\tfloat u1 = (3.0 + s) / uw1;\n\t\tfloat u2 = s / uw2 + 2.0;\n\n\t\tfloat vw0 = (4.0 - 3.0 * t);\n\t\tfloat vw1 = 7.0;\n\t\tfloat vw2 = (1.0 + 3.0 * t);\n\n\t\tfloat v0 = (3.0 - 2.0 * t) / vw0 - 2.0;\n\t\tfloat v1 = (3.0 + t) / vw1;\n\t\tfloat v2 = t / vw2 + 2.0;\n\n\t\tfloat sum = 0.0;\n\n\t\tu0 = u0 * shadowMapSizeInv + base_uv.x;\n\t\tv0 = v0 * shadowMapSizeInv + base_uv.y;\n\n\t\tu1 = u1 * shadowMapSizeInv + base_uv.x;\n\t\tv1 = v1 * shadowMapSizeInv + base_uv.y;\n\n\t\tu2 = u2 * shadowMapSizeInv + base_uv.x;\n\t\tv2 = v2 * shadowMapSizeInv + base_uv.y;\n\n\t\tsum += uw0 * vw0 * texture(shadowMap, vec3(u0, v0, z));\n\t\tsum += uw1 * vw0 * texture(shadowMap, vec3(u1, v0, z));\n\t\tsum += uw2 * vw0 * texture(shadowMap, vec3(u2, v0, z));\n\n\t\tsum += uw0 * vw1 * texture(shadowMap, vec3(u0, v1, z));\n\t\tsum += uw1 * vw1 * texture(shadowMap, vec3(u1, v1, z));\n\t\tsum += uw2 * vw1 * texture(shadowMap, vec3(u2, v1, z));\n\n\t\tsum += uw0 * vw2 * texture(shadowMap, vec3(u0, v2, z));\n\t\tsum += uw1 * vw2 * texture(shadowMap, vec3(u1, v2, z));\n\t\tsum += uw2 * vw2 * texture(shadowMap, vec3(u2, v2, z));\n\n\t\tsum *= 1.0f / 144.0;\n\n\t\tsum = gammaCorrectInput(sum); // gives softer gradient\n\t\tsum = saturate(sum);\n\n\t\treturn sum;\n}\n\nfloat getShadowPCF5x5(sampler2DShadow shadowMap, vec3 shadowParams) {\n\t\treturn _getShadowPCF5x5(shadowMap, shadowParams);\n}\n\nfloat getShadowSpotPCF5x5(sampler2DShadow shadowMap, vec4 shadowParams) {\n\t\treturn _getShadowPCF5x5(shadowMap, shadowParams.xyz);\n}\n",shadowVSM8PS:"\nfloat calculateVSM8(vec3 moments, float Z, float vsmBias) {\n\t\tfloat VSMBias = vsmBias;//0.01 * 0.25;\n\t\tfloat depthScale = VSMBias * Z;\n\t\tfloat minVariance1 = depthScale * depthScale;\n\t\treturn chebyshevUpperBound(moments.xy, Z, minVariance1, 0.1);\n}\n\nfloat decodeFloatRG(vec2 rg) {\n\t\treturn rg.y*(1.0/255.0) + rg.x;\n}\n\nfloat VSM8(sampler2D tex, vec2 texCoords, float resolution, float Z, float vsmBias, float exponent) {\n\t\tvec4 c = texture2D(tex, texCoords);\n\t\tvec3 moments = vec3(decodeFloatRG(c.xy), decodeFloatRG(c.zw), 0.0);\n\t\treturn calculateVSM8(moments, Z, vsmBias);\n}\n\nfloat getShadowVSM8(sampler2D shadowMap, vec3 shadowParams, float exponent) {\n\t\treturn VSM8(shadowMap, dShadowCoord.xy, shadowParams.x, dShadowCoord.z, shadowParams.y, 0.0);\n}\n\nfloat getShadowSpotVSM8(sampler2D shadowMap, vec4 shadowParams, float exponent) {\n\t\treturn VSM8(shadowMap, dShadowCoord.xy, shadowParams.x, length(dLightDirW) * shadowParams.w + shadowParams.z, shadowParams.y, 0.0);\n}\n",shadowVSM_commonPS:"\nfloat linstep(float a, float b, float v) {\n\t\treturn saturate((v - a) / (b - a));\n}\n\nfloat reduceLightBleeding(float pMax, float amount) {\n\t // Remove the [0, amount] tail and linearly rescale (amount, 1].\n\t return linstep(amount, 1.0, pMax);\n}\n\nfloat chebyshevUpperBound(vec2 moments, float mean, float minVariance, float lightBleedingReduction) {\n\t\t// Compute variance\n\t\tfloat variance = moments.y - (moments.x * moments.x);\n\t\tvariance = max(variance, minVariance);\n\n\t\t// Compute probabilistic upper bound\n\t\tfloat d = mean - moments.x;\n\t\tfloat pMax = variance / (variance + (d * d));\n\n\t\tpMax = reduceLightBleeding(pMax, lightBleedingReduction);\n\n\t\t// One-tailed Chebyshev\n\t\treturn (mean <= moments.x ? 1.0 : pMax);\n}\n\nfloat calculateEVSM(vec3 moments, float Z, float vsmBias, float exponent) {\n\t\tZ = 2.0 * Z - 1.0;\n\t\tfloat warpedDepth = exp(exponent * Z);\n\n\t\tmoments.xy += vec2(warpedDepth, warpedDepth*warpedDepth) * (1.0 - moments.z);\n\n\t\tfloat VSMBias = vsmBias;//0.01 * 0.25;\n\t\tfloat depthScale = VSMBias * exponent * warpedDepth;\n\t\tfloat minVariance1 = depthScale * depthScale;\n\t\treturn chebyshevUpperBound(moments.xy, warpedDepth, minVariance1, 0.1);\n}\n",skinBatchConstVS:"\nattribute float vertex_boneIndices;\n\nuniform vec4 matrix_pose[BONE_LIMIT * 3];\n\nmat4 getBoneMatrix(const in float i) {\n\t\t// read 4x3 matrix\n\t\tvec4 v1 = matrix_pose[int(3.0 * i)];\n\t\tvec4 v2 = matrix_pose[int(3.0 * i + 1.0)];\n\t\tvec4 v3 = matrix_pose[int(3.0 * i + 2.0)];\n\n\t\t// transpose to 4x4 matrix\n\t\treturn mat4(\n\t\t\t\tv1.x, v2.x, v3.x, 0,\n\t\t\t\tv1.y, v2.y, v3.y, 0,\n\t\t\t\tv1.z, v2.z, v3.z, 0,\n\t\t\t\tv1.w, v2.w, v3.w, 1\n\t\t);\n}\n",skinBatchTexVS:"\nattribute float vertex_boneIndices;\n\nuniform highp sampler2D texture_poseMap;\nuniform vec4 texture_poseMapSize;\n\nmat4 getBoneMatrix(const in float i) {\n\t\tfloat j = i * 3.0;\n\t\tfloat dx = texture_poseMapSize.z;\n\t\tfloat dy = texture_poseMapSize.w;\n\n\t\tfloat y = floor(j * dx);\n\t\tfloat x = j - (y * texture_poseMapSize.x);\n\t\ty = dy * (y + 0.5);\n\n\t\t// read elements of 4x3 matrix\n\t\tvec4 v1 = texture2D(texture_poseMap, vec2(dx * (x + 0.5), y));\n\t\tvec4 v2 = texture2D(texture_poseMap, vec2(dx * (x + 1.5), y));\n\t\tvec4 v3 = texture2D(texture_poseMap, vec2(dx * (x + 2.5), y));\n\n\t\t// transpose to 4x4 matrix\n\t\treturn mat4(\n\t\t\t\tv1.x, v2.x, v3.x, 0,\n\t\t\t\tv1.y, v2.y, v3.y, 0,\n\t\t\t\tv1.z, v2.z, v3.z, 0,\n\t\t\t\tv1.w, v2.w, v3.w, 1\n\t\t);\n}\n",skinConstVS:"\nattribute vec4 vertex_boneWeights;\nattribute vec4 vertex_boneIndices;\n\nuniform vec4 matrix_pose[BONE_LIMIT * 3];\n\nvoid getBoneMatrix(const in float i, out vec4 v1, out vec4 v2, out vec4 v3) {\n\t\t// read 4x3 matrix\n\t\tv1 = matrix_pose[int(3.0 * i)];\n\t\tv2 = matrix_pose[int(3.0 * i + 1.0)];\n\t\tv3 = matrix_pose[int(3.0 * i + 2.0)];\n}\n\nmat4 getSkinMatrix(const in vec4 indices, const in vec4 weights) {\n\t\t// get 4 bone matrices\n\t\tvec4 a1, a2, a3;\n\t\tgetBoneMatrix(indices.x, a1, a2, a3);\n\n\t\tvec4 b1, b2, b3;\n\t\tgetBoneMatrix(indices.y, b1, b2, b3);\n\n\t\tvec4 c1, c2, c3;\n\t\tgetBoneMatrix(indices.z, c1, c2, c3);\n\n\t\tvec4 d1, d2, d3;\n\t\tgetBoneMatrix(indices.w, d1, d2, d3);\n\n\t\t// multiply them by weights and add up to get final 4x3 matrix\n\t\tvec4 v1 = a1 * weights.x + b1 * weights.y + c1 * weights.z + d1 * weights.w;\n\t\tvec4 v2 = a2 * weights.x + b2 * weights.y + c2 * weights.z + d2 * weights.w;\n\t\tvec4 v3 = a3 * weights.x + b3 * weights.y + c3 * weights.z + d3 * weights.w;\n\n\t\t// add up weights\n\t\tfloat one = dot(weights, vec4(1.0));\n\n\t\t// transpose to 4x4 matrix\n\t\treturn mat4(\n\t\t\t\tv1.x, v2.x, v3.x, 0,\n\t\t\t\tv1.y, v2.y, v3.y, 0,\n\t\t\t\tv1.z, v2.z, v3.z, 0,\n\t\t\t\tv1.w, v2.w, v3.w, one\n\t\t);\n}\n",skinTexVS:"\nattribute vec4 vertex_boneWeights;\nattribute vec4 vertex_boneIndices;\n\nuniform highp sampler2D texture_poseMap;\nuniform vec4 texture_poseMapSize;\n\nvoid getBoneMatrix(const in float i, out vec4 v1, out vec4 v2, out vec4 v3) {\n\t\tfloat j = i * 3.0;\n\t\tfloat dx = texture_poseMapSize.z;\n\t\tfloat dy = texture_poseMapSize.w;\n\t\t\n\t\tfloat y = floor(j * dx);\n\t\tfloat x = j - (y * texture_poseMapSize.x);\n\t\ty = dy * (y + 0.5);\n\n\t\t// read elements of 4x3 matrix\n\t\tv1 = texture2D(texture_poseMap, vec2(dx * (x + 0.5), y));\n\t\tv2 = texture2D(texture_poseMap, vec2(dx * (x + 1.5), y));\n\t\tv3 = texture2D(texture_poseMap, vec2(dx * (x + 2.5), y));\n}\n\nmat4 getSkinMatrix(const in vec4 indices, const in vec4 weights) {\n\t\t// get 4 bone matrices\n\t\tvec4 a1, a2, a3;\n\t\tgetBoneMatrix(indices.x, a1, a2, a3);\n\n\t\tvec4 b1, b2, b3;\n\t\tgetBoneMatrix(indices.y, b1, b2, b3);\n\n\t\tvec4 c1, c2, c3;\n\t\tgetBoneMatrix(indices.z, c1, c2, c3);\n\n\t\tvec4 d1, d2, d3;\n\t\tgetBoneMatrix(indices.w, d1, d2, d3);\n\n\t\t// multiply them by weights and add up to get final 4x3 matrix\n\t\tvec4 v1 = a1 * weights.x + b1 * weights.y + c1 * weights.z + d1 * weights.w;\n\t\tvec4 v2 = a2 * weights.x + b2 * weights.y + c2 * weights.z + d2 * weights.w;\n\t\tvec4 v3 = a3 * weights.x + b3 * weights.y + c3 * weights.z + d3 * weights.w;\n\n\t\t// add up weights\n\t\tfloat one = dot(weights, vec4(1.0));\n\n\t\t// transpose to 4x4 matrix\n\t\treturn mat4(\n\t\t\t\tv1.x, v2.x, v3.x, 0,\n\t\t\t\tv1.y, v2.y, v3.y, 0,\n\t\t\t\tv1.z, v2.z, v3.z, 0,\n\t\t\t\tv1.w, v2.w, v3.w, one\n\t\t);\n}\n",skyboxEnvPS:"\nvarying vec3 vViewDir;\n\nuniform sampler2D texture_envAtlas;\nuniform float mipLevel;\n\nvoid main(void) {\n\t\tvec3 dir = vViewDir * vec3(-1.0, 1.0, 1.0);\n\t\tvec2 uv = toSphericalUv(normalize(dir));\n\n\t\tvec3 linear = $DECODE(texture2D(texture_envAtlas, mapRoughnessUv(uv, mipLevel)));\n\n\t\tgl_FragColor = vec4(gammaCorrectOutput(toneMap(processEnvironment(linear))), 1.0);\n}\n",skyboxHDRPS:"\nvarying vec3 vViewDir;\n\nuniform samplerCube texture_cubeMap;\n\nvoid main(void) {\n\t\tvec3 dir=vViewDir;\n\t\tdir.x *= -1.0;\n\t\tvec3 color = processEnvironment($textureCubeSAMPLE(texture_cubeMap, fixSeamsStatic(dir, $FIXCONST)).rgb);\n\t\tcolor = toneMap(color);\n\t\tcolor = gammaCorrectOutput(color);\n\t\tgl_FragColor = vec4(color, 1.0);\n}\n",skyboxVS:"\nattribute vec3 aPosition;\n\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n\nuniform mat4 matrix_projectionSkybox;\nuniform mat3 cubeMapRotationMatrix;\n\nvarying vec3 vViewDir;\n\nvoid main(void) {\n\t\tmat4 view = matrix_view;\n\t\tview[3][0] = view[3][1] = view[3][2] = 0.0;\n\t\tgl_Position = matrix_projectionSkybox * view * vec4(aPosition, 1.0);\n\n\t\t// Force skybox to far Z, regardless of the clip planes on the camera\n\t\t// Subtract a tiny fudge factor to ensure floating point errors don't\n\t\t// still push pixels beyond far Z. See:\n\t\t// http://www.opengl.org/discussion_boards/showthread.php/171867-skybox-problem\n\n\t\tgl_Position.z = gl_Position.w - 0.00001;\n\t\tvViewDir = aPosition * cubeMapRotationMatrix;\n}\n",specularPS:"\n#ifdef MAPCOLOR\nuniform vec3 material_specular;\n#endif\n\n#ifdef MAPTEXTURE\nuniform sampler2D texture_specularMap;\n#endif\n\nvoid getSpecularity() {\n\t\tdSpecularity = vec3(1.0);\n\n\t\t#ifdef MAPCOLOR\n\t\tdSpecularity *= material_specular;\n\t\t#endif\n\n\t\t#ifdef MAPTEXTURE\n\t\tdSpecularity *= texture2D(texture_specularMap, $UV, textureBias).$CH;\n\t\t#endif\n\n\t\t#ifdef MAPVERTEX\n\t\tdSpecularity *= saturate(vVertexColor.$VC);\n\t\t#endif\n}\n",specularAaNonePS:"\nfloat antiAliasGlossiness(float power) {\n\t\treturn power;\n}\n",specularAaToksvigPS:"\nfloat antiAliasGlossiness(float power) {\n\t\tfloat rlen = 1.0 / saturate(length(dNormalMap));\n\t\tfloat toksvig = 1.0 / (1.0 + power * (rlen - 1.0));\n\t\treturn power * mix(1.0, toksvig, material_bumpiness);\n}\n",specularAaToksvigFastPS:"\nfloat antiAliasGlossiness(float power) {\n\t\tfloat rlen = 1.0 / saturate(length(dNormalMap));\n\t\tfloat toksvig = 1.0 / (1.0 + power * (rlen - 1.0));\n\t\treturn power * toksvig;\n}\n",spotPS:"\nfloat getSpotEffect(vec3 lightSpotDirW, float lightInnerConeAngle, float lightOuterConeAngle) {\n\t\tfloat cosAngle = dot(dLightDirNormW, lightSpotDirW);\n\t\treturn smoothstep(lightOuterConeAngle, lightInnerConeAngle, cosAngle);\n}\n",startPS:"\nvoid main(void) {\n\t\tdDiffuseLight = vec3(0);\n\t\tdSpecularLight = vec3(0);\n\t\tdReflection = vec4(0);\n\t\tdSpecularity = vec3(0);\n\n\t\t#ifdef CLEARCOAT\n\t\tccSpecularLight = vec3(0);\n\t\tccReflection = vec4(0);\n\t\t#endif\n",startVS:"\nvoid main(void) {\n\t\tgl_Position = getPosition();\n",startNineSlicedPS:"\n\t\tnineSlicedUv = vUv0;\n\t\tnineSlicedUv.y = 1.0 - nineSlicedUv.y;\n\n",startNineSlicedTiledPS:"\n\t\tvec2 tileMask = step(vMask, vec2(0.99999));\n\t\tvec2 tileSize = 0.5 * (innerOffset.xy + innerOffset.zw);\n\t\tvec2 tileScale = vec2(1.0) / (vec2(1.0) - tileSize);\n\t\tvec2 clampedUv = mix(innerOffset.xy * 0.5, vec2(1.0) - innerOffset.zw * 0.5, fract((vTiledUv - tileSize) * tileScale));\n\t\tclampedUv = clampedUv * atlasRect.zw + atlasRect.xy;\n\t\tnineSlicedUv = vUv0 * tileMask + clampedUv * (vec2(1.0) - tileMask);\n\t\tnineSlicedUv.y = 1.0 - nineSlicedUv.y;\n\t\t\n",storeEVSMPS:"\nfloat exponent = VSM_EXPONENT;\n\ndepth = 2.0 * depth - 1.0;\ndepth =\texp(exponent * depth);\ngl_FragColor = vec4(depth, depth*depth, 1.0, 1.0);\n",tangentBinormalVS:"\nvec3 getTangent() {\n\t\treturn normalize(dNormalMatrix * vertex_tangent.xyz);\n}\n\nvec3 getBinormal() {\n\t\treturn cross(vNormalW, vTangentW) * vertex_tangent.w;\n}\n\nvec3 getObjectSpaceUp() {\n\t\treturn normalize(dNormalMatrix * vec3(0, 1, 0));\n}\n",TBNPS:"\nvoid getTBN() {\n\t\tdTBN = mat3(normalize(dTangentW), normalize(dBinormalW), normalize(dVertexNormalW));\n}\n",TBNderivativePS:"\nuniform float tbnBasis;\n\n// http://www.thetenthplanet.de/archives/1180\nvoid getTBN() {\n\t\tvec2 uv = $UV;\n\n\t\t// get edge vectors of the pixel triangle\n\t\tvec3 dp1 = dFdx( vPositionW );\n\t\tvec3 dp2 = dFdy( vPositionW );\n\t\tvec2 duv1 = dFdx( uv );\n\t\tvec2 duv2 = dFdy( uv );\n\n\t\t// solve the linear system\n\t\tvec3 dp2perp = cross( dp2, dVertexNormalW );\n\t\tvec3 dp1perp = cross( dVertexNormalW, dp1 );\n\t\tvec3 T = dp2perp * duv1.x + dp1perp * duv2.x;\n\t\tvec3 B = dp2perp * duv1.y + dp1perp * duv2.y;\n\n\t\t// construct a scale-invariant frame\n\t\tfloat denom = max( dot(T,T), dot(B,B) );\n\t\tfloat invmax = (denom == 0.0) ? 0.0 : tbnBasis / sqrt( denom );\n\t\tdTBN = mat3(T * invmax, -B * invmax, dVertexNormalW );\n}\n",TBNfastPS:"\nvoid getTBN() {\n\t\tdTBN = mat3(dTangentW, dBinormalW, dVertexNormalW);\n}\n",TBNObjectSpacePS:"\nvoid getTBN() {\n\n\t\tvec3 B = cross(dVertexNormalW, vObjectSpaceUpW);\n\t\tvec3 T = cross(dVertexNormalW, B);\n\n\t\tif (dot(B,B)==0.0) // deal with case when vObjectSpaceUpW dVertexNormalW are parallel\n\t\t{\n\t\t\t\tfloat major=max(max(dVertexNormalW.x, dVertexNormalW.y),dVertexNormalW.z);\n\n\t\t\t\tif (dVertexNormalW.x==major)\n\t\t\t\t{\n\t\t\t\t\t\tB=cross(dVertexNormalW, vec3(0,1,0));\n\t\t\t\t\t\tT=cross(dVertexNormalW, B);\n\t\t\t\t}\n\t\t\t\telse if (dVertexNormalW.y==major)\n\t\t\t\t{\n\t\t\t\t\t\tB=cross(dVertexNormalW, vec3(0,0,1));\n\t\t\t\t\t\tT=cross(dVertexNormalW, B);\n\t\t\t\t}\n\t\t\t\telse if (dVertexNormalW.z==major)\n\t\t\t\t{\n\t\t\t\t\t\tB=cross(dVertexNormalW, vec3(1,0,0));\n\t\t\t\t\t\tT=cross(dVertexNormalW, B);\n\t\t\t\t}\n\t\t}\n\n\t\tdTBN = mat3(normalize(T), normalize(B), normalize(dVertexNormalW));\n}\n",tonemappingAcesPS:"\nuniform float exposure;\n\nvec3 toneMap(vec3 color) {\n\t\tfloat tA = 2.51;\n\t\tfloat tB = 0.03;\n\t\tfloat tC = 2.43;\n\t\tfloat tD = 0.59;\n\t\tfloat tE = 0.14;\n\t\tvec3 x = color * exposure;\n\t\treturn (x*(tA*x+tB))/(x*(tC*x+tD)+tE);\n}\n",tonemappingAces2PS:"\nuniform float exposure;\n\n// ACES approximation by Stephen Hill\n\n// sRGB => XYZ => D65_2_D60 => AP1 => RRT_SAT\nconst mat3 ACESInputMat = mat3(\n\t\t0.59719, 0.35458, 0.04823,\n\t\t0.07600, 0.90834, 0.01566,\n\t\t0.02840, 0.13383, 0.83777\n);\n\n// ODT_SAT => XYZ => D60_2_D65 => sRGB\nconst mat3 ACESOutputMat = mat3(\n\t\t 1.60475, -0.53108, -0.07367,\n\t\t-0.10208,\t1.10813, -0.00605,\n\t\t-0.00327, -0.07276,\t1.07602\n);\n\nvec3 RRTAndODTFit(vec3 v) {\n\t\tvec3 a = v * (v + 0.0245786) - 0.000090537;\n\t\tvec3 b = v * (0.983729 * v + 0.4329510) + 0.238081;\n\t\treturn a / b;\n}\n\nvec3 toneMap(vec3 color) {\n\t\tcolor *= exposure;\n\t\tcolor = color * ACESInputMat;\n\n\t\t// Apply RRT and ODT\n\t\tcolor = RRTAndODTFit(color);\n\t\tcolor = color * ACESOutputMat;\n\n\t\t// Clamp to [0, 1]\n\t\tcolor = clamp(color, 0.0, 1.0);\n\n\t\treturn color;\n}\n",tonemappingFilmicPS:"\nconst float A =\t0.15;\nconst float B =\t0.50;\nconst float C =\t0.10;\nconst float D =\t0.20;\nconst float E =\t0.02;\nconst float F =\t0.30;\nconst float W =\t11.2;\n\nuniform float exposure;\n\nvec3 uncharted2Tonemap(vec3 x) {\n\t return ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\n}\n\nvec3 toneMap(vec3 color) {\n\t\tcolor = uncharted2Tonemap(color * exposure);\n\t\tvec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W,W,W));\n\t\tcolor = color * whiteScale;\n\n\t\treturn color;\n}\n",tonemappingHejlPS:"\nuniform float exposure;\n\nvec3 toneMap(vec3 color) {\n\t\tcolor *= exposure;\n\t\tconst float\tA = 0.22, B = 0.3, C = .1, D = 0.2, E = .01, F = 0.3;\n\t\tconst float Scl = 1.25;\n\n\t\tvec3 h = max( vec3(0.0), color - vec3(0.004) );\n\t\treturn (h*((Scl*A)*h+Scl*vec3(C*B,C*B,C*B))+Scl*vec3(D*E,D*E,D*E)) / (h*(A*h+vec3(B,B,B))+vec3(D*F,D*F,D*F)) - Scl*vec3(E/F,E/F,E/F);\n}\n",tonemappingLinearPS:"\nuniform float exposure;\n\nvec3 toneMap(vec3 color) {\n\t\treturn color * exposure;\n}\n",tonemappingNonePS:"\nvec3 toneMap(vec3 color) {\n\t\treturn color;\n}\n",transformVS:"\n#ifdef PIXELSNAP\nuniform vec4 uScreenSize;\n#endif\n\n#ifdef SCREENSPACE\nuniform float projectionFlipY;\n#endif\n\n#ifdef MORPHING\nuniform vec4 morph_weights_a;\nuniform vec4 morph_weights_b;\n#endif\n\n#ifdef MORPHING_TEXTURE_BASED\nuniform vec4 morph_tex_params;\n\nvec2 getTextureMorphCoords() {\n\t\tfloat vertexId = morph_vertex_id;\n\t\tvec2 textureSize = morph_tex_params.xy;\n\t\tvec2 invTextureSize = morph_tex_params.zw;\n\n\t\t// turn vertexId into int grid coordinates\n\t\tfloat morphGridV = floor(vertexId * invTextureSize.x);\n\t\tfloat morphGridU = vertexId - (morphGridV * textureSize.x);\n\n\t\t// convert grid coordinates to uv coordinates with half pixel offset\n\t\treturn (vec2(morphGridU, morphGridV) * invTextureSize) + (0.5 * invTextureSize);\n}\n#endif\n\n#ifdef MORPHING_TEXTURE_BASED_POSITION\nuniform highp sampler2D morphPositionTex;\n#endif\n\nmat4 getModelMatrix() {\n\t\t#ifdef DYNAMICBATCH\n\t\treturn getBoneMatrix(vertex_boneIndices);\n\t\t#elif defined(SKIN)\n\t\treturn matrix_model * getSkinMatrix(vertex_boneIndices, vertex_boneWeights);\n\t\t#elif defined(INSTANCING)\n\t\treturn mat4(instance_line1, instance_line2, instance_line3, instance_line4);\n\t\t#else\n\t\treturn matrix_model;\n\t\t#endif\n}\n\nvec4 getPosition() {\n\t\tdModelMatrix = getModelMatrix();\n\t\tvec3 localPos = vertex_position;\n\n\t\t#ifdef NINESLICED\n\t\t// outer and inner vertices are at the same position, scale both\n\t\tlocalPos.xz *= outerScale;\n\n\t\t// offset inner vertices inside\n\t\t// (original vertices must be in [-1;1] range)\n\t\tvec2 positiveUnitOffset = clamp(vertex_position.xz, vec2(0.0), vec2(1.0));\n\t\tvec2 negativeUnitOffset = clamp(-vertex_position.xz, vec2(0.0), vec2(1.0));\n\t\tlocalPos.xz += (-positiveUnitOffset * innerOffset.xy + negativeUnitOffset * innerOffset.zw) * vertex_texCoord0.xy;\n\n\t\tvTiledUv = (localPos.xz - outerScale + innerOffset.xy) * -0.5 + 1.0; // uv = local pos - inner corner\n\n\t\tlocalPos.xz *= -0.5; // move from -1;1 to -0.5;0.5\n\t\tlocalPos = localPos.xzy;\n\t\t#endif\n\n\t\t#ifdef MORPHING\n\t\t#ifdef MORPHING_POS03\n\t\tlocalPos.xyz += morph_weights_a[0] * morph_pos0;\n\t\tlocalPos.xyz += morph_weights_a[1] * morph_pos1;\n\t\tlocalPos.xyz += morph_weights_a[2] * morph_pos2;\n\t\tlocalPos.xyz += morph_weights_a[3] * morph_pos3;\n\t\t#endif // MORPHING_POS03\n\t\t#ifdef MORPHING_POS47\n\t\tlocalPos.xyz += morph_weights_b[0] * morph_pos4;\n\t\tlocalPos.xyz += morph_weights_b[1] * morph_pos5;\n\t\tlocalPos.xyz += morph_weights_b[2] * morph_pos6;\n\t\tlocalPos.xyz += morph_weights_b[3] * morph_pos7;\n\t\t#endif // MORPHING_POS47\n\t\t#endif // MORPHING\n\n\t\t#ifdef MORPHING_TEXTURE_BASED_POSITION\n\t\t// apply morph offset from texture\n\t\tvec2 morphUV = getTextureMorphCoords();\n\t\tvec3 morphPos = texture2D(morphPositionTex, morphUV).xyz;\n\t\tlocalPos += morphPos;\n\t\t#endif\n\n\t\tvec4 posW = dModelMatrix * vec4(localPos, 1.0);\n\t\t#ifdef SCREENSPACE\n\t\tposW.zw = vec2(0.0, 1.0);\n\t\t#endif\n\t\tdPositionW = posW.xyz;\n\n\t\tvec4 screenPos;\n\t\t#ifdef UV1LAYOUT\n\t\tscreenPos = vec4(vertex_texCoord1.xy * 2.0 - 1.0, 0.5, 1);\n\t\t#else\n\t\t#ifdef SCREENSPACE\n\t\tscreenPos = posW;\n\t\tscreenPos.y *= projectionFlipY;\n\t\t#else\n\t\tscreenPos = matrix_viewProjection * posW;\n\t\t#endif\n\n\t\t#ifdef PIXELSNAP\n\t\t// snap vertex to a pixel boundary\n\t\tscreenPos.xy = (screenPos.xy * 0.5) + 0.5;\n\t\tscreenPos.xy *= uScreenSize.xy;\n\t\tscreenPos.xy = floor(screenPos.xy);\n\t\tscreenPos.xy *= uScreenSize.zw;\n\t\tscreenPos.xy = (screenPos.xy * 2.0) - 1.0;\n\t\t#endif\n\t\t#endif\n\n\t\treturn screenPos;\n}\n\nvec3 getWorldPosition() {\n\t\treturn dPositionW;\n}\n",transformDeclVS:"\nattribute vec3 vertex_position;\n\nuniform mat4 matrix_model;\nuniform mat4 matrix_viewProjection;\n\nvec3 dPositionW;\nmat4 dModelMatrix;\n",uv0VS:"\n#ifdef NINESLICED\nvec2 getUv0() {\n\t\tvec2 uv = vertex_position.xz;\n\n\t\t// offset inner vertices inside\n\t\t// (original vertices must be in [-1;1] range)\n\t\tvec2 positiveUnitOffset = clamp(vertex_position.xz, vec2(0.0), vec2(1.0));\n\t\tvec2 negativeUnitOffset = clamp(-vertex_position.xz, vec2(0.0), vec2(1.0));\n\t\tuv += (-positiveUnitOffset * innerOffset.xy + negativeUnitOffset * innerOffset.zw) * vertex_texCoord0.xy;\n\n\t\tuv = uv * -0.5 + 0.5;\n\t\tuv = uv * atlasRect.zw + atlasRect.xy;\n\n\t\tvMask = vertex_texCoord0.xy;\n\n\t\treturn uv;\n}\n#else\nvec2 getUv0() {\n\t\treturn vertex_texCoord0;\n}\n#endif\n",uv1VS:"\nvec2 getUv1() {\n\t\treturn vertex_texCoord1;\n}\n",viewDirPS:"\nvoid getViewDir() {\n\t\tdViewDirW = normalize(view_position - vPositionW);\n}\n",viewNormalVS:"\n#ifndef VIEWMATRIX\n#define VIEWMATRIX\nuniform mat4 matrix_view;\n#endif\n\nvec3 getViewNormal() {\n\t\treturn mat3(matrix_view) * vNormalW;\n}\n"};function di(t,e){return e||(e=ui),1===t||2===t?e.gamma2_2PS?e.gamma2_2PS:ui.gamma2_2PS:3===t?"#define HDR\n"+(e.gamma2_2PS?e.gamma2_2PS:ui.gamma2_2PS):e.gamma1_0PS?e.gamma1_0PS:ui.gamma1_0PS}function fi(t,e){return e||(e=ui),1===t?e.tonemappingFilmicPS?e.tonemappingFilmicPS:ui.tonemappingFilmicPS:0===t?e.tonemappingLinearPS?e.tonemappingLinearPS:ui.tonemappingLinearPS:2===t?e.tonemappingHejlPS?e.tonemappingHejlPS:ui.tonemappingHejlPS:3===t?e.tonemappingAcesPS?e.tonemappingAcesPS:ui.tonemappingAcesPS:4===t?e.tonemappingAces2PS?e.tonemappingAces2PS:ui.tonemappingAces2PS:e.tonemapingNonePS?e.tonemapingNonePS:ui.tonemappingNonePS}function pi(t,e){return e||(e=ui),"linear"===t?e.fogLinearPS?e.fogLinearPS:ui.fogLinearPS:"exp"===t?e.fogExpPS?e.fogExpPS:ui.fogExpPS:"exp2"===t?e.fogExp2PS?e.fogExp2PS:ui.fogExp2PS:e.fogNonePS?e.fogNonePS:ui.fogNonePS}function mi(t,e){return e||(e=ui),t.supportsBoneTextures?e.skinTexVS:"#define BONE_LIMIT "+t.getBoneLimit()+"\n"+e.skinConstVS}function _i(t){var e="precision "+t.precision+" float;\n";return t.webgl2&&(e+="#ifdef GL2\nprecision "+t.precision+" sampler2DShadow;\n#endif\n"),e}function gi(t){return t.webgl2?"#version 300 es\n":""}function vi(){return"void main(void) {gl_FragColor = vec4(0.0);}"}function yi(){return"void main(void)\n{\n"}function xi(){return"}\n"}var bi={vertex_position:ce,vertex_normal:ue,vertex_tangent:de,vertex_texCoord0:ge,vertex_texCoord1:ve,vertex_texCoord2:ye,vertex_texCoord3:xe,vertex_texCoord4:be,vertex_texCoord5:Se,vertex_texCoord6:we,vertex_texCoord7:Te,vertex_color:me,vertex_boneIndices:pe,vertex_boneWeights:fe};function Si(t){for(var e={},i=0,n=t.indexOf("attribute");n>=0&&!(n>0&&"/"===t[n-1]);){var s=t.indexOf(";",n),a=t.lastIndexOf(" ",s),r=t.substring(a+1,s),o=bi[r];void 0!==o?e[r]=o:(e[r]="ATTR"+i,i++),n=t.indexOf("attribute",n+1)}return e}function wi(t,e,i,n){void 0===n&&(n=!1);var s=ui[e],a=_i(t)+"\n"+ui[i],r=Si(s);return t.webgl2&&(s=gi(t)+ui.gles3VS+s,a=gi(t)+ui.gles3PS+a),new ci(t,{attributes:r,vshader:s,fshader:a,useTransformFeedback:n})}function Ti(t,e,i,n,s,a){void 0===s&&(s=!1),void 0===a&&(a="");var r=t.programLib._cache,o=r[n];if(void 0!==o)return o;i=_i(t)+"\n"+(i||"void main(void) {gl_FragColor = vec4(0.0);}");var h=Si(e);return t.webgl2&&(e=gi(t)+ui.gles3VS+e,i=gi(t)+ui.gles3PS+i),r[n]=new ci(t,{attributes:h,vshader:e,fshader:a+i,useTransformFeedback:s}),r[n]}ui.collectAttribs=Si,ui.createShader=wi,ui.createShaderFromCode=Ti;var Ai=function(){function t(){this.globalId=0,this.revision=0}var e=t.prototype;return e.equals=function(t){return this.globalId===t.globalId&&this.revision===t.revision},e.copy=function(t){this.globalId=t.globalId,this.revision=t.revision},e.reset=function(){this.globalId=0,this.revision=0},t}(),Mi=0,Ci=function(){function t(){Mi++,this.version=new Ai,this.version.globalId=Mi}return t.prototype.increment=function(){this.version.revision++},t}(),Ei=function(){function t(t){this.name=t,this.value=null,this.versionObject=new Ci}var e=t.prototype;return e.setValue=function(t){this.value=t,this.versionObject.increment()},e.getValue=function(){return this.value},t}(),Pi=function(){function t(t){this.name=t,this.variables=new Map}var e=t.prototype;return e.resolve=function(t){return this.variables.has(t)||this.variables.set(t,new Ei(t)),this.variables.get(t)},e.removeValue=function(t){for(var e in this.variables){var i=this.variables[e];i.value===t&&(i.value=null)}},t}(),Ri={generateKey:function(t){var e="basic";return t.fog&&(e+="_fog"),t.alphaTest&&(e+="_atst"),t.vertexColors&&(e+="_vcol"),t.diffuseMap&&(e+="_diff"),t.skin&&(e+="_skin"),t.screenSpace&&(e+="_ss"),t.useInstancing&&(e+="_inst"),t.useMorphPosition&&(e+="_morphp"),t.useMorphNormal&&(e+="_morphn"),t.useMorphTextureBased&&(e+="_morpht"),e+="_"+t.pass},createShaderDefinition:function(t,e){var i={vertex_position:ce};e.skin&&(i.vertex_boneWeights=fe,i.vertex_boneIndices=pe),e.vertexColors&&(i.vertex_color=me),e.diffuseMap&&(i.vertex_texCoord0=ge);var n="";n+=ui.transformDeclVS,e.skin?(n+=mi(t),n+=ui.transformSkinnedVS):n+=ui.transformVS,e.vertexColors&&(n+="attribute vec4 vertex_color;\n",n+="varying vec4 vColor;\n"),e.diffuseMap&&(n+="attribute vec2 vertex_texCoord0;\n",n+="varying vec2 vUv0;\n"),2===e.pass&&(n+="varying float vDepth;\n",n+="#ifndef VIEWMATRIX\n",n+="#define VIEWMATRIX\n",n+="uniform mat4 matrix_view;\n",n+="#endif\n",n+="#ifndef CAMERAPLANES\n",n+="#define CAMERAPLANES\n",n+="uniform vec4 camera_params;\n\n",n+="#endif\n"),n+="void main(void)\n{\n",n+="\t gl_Position = getPosition();\n",2===e.pass&&(n+="\t\tvDepth = -(matrix_view * vec4(getWorldPosition(),1.0)).z * camera_params.x;\n"),e.vertexColors&&(n+="\t\tvColor = vertex_color;\n"),e.diffuseMap&&(n+="\t\tvUv0 = vertex_texCoord0;\n");var s=n+="}\n";return n=_i(t),e.vertexColors?n+="varying vec4 vColor;\n":n+="uniform vec4 uColor;\n",e.diffuseMap&&(n+="varying vec2 vUv0;\n",n+="uniform sampler2D texture_diffuseMap;\n"),e.fog&&(n+=pi(e.fog)),e.alphatest&&(n+=ui.alphaTestPS),2===e.pass&&(n+="varying float vDepth;\n",n+=ui.packDepthPS),n+="void main(void)\n{\n",e.vertexColors?n+="\t\tgl_FragColor = vColor;\n":n+="\t\tgl_FragColor = uColor;\n",e.diffuseMap&&(n+="\t\tgl_FragColor *= texture2D(texture_diffuseMap, vUv0);\n"),e.alphatest&&(n+="\t alphaTest(gl_FragColor.a);\n"),e.pass!==Wt&&(2===e.pass?n+="\t\tgl_FragColor = packFloat(vDepth);\n":e.fog&&(n+="\t glFragColor.rgb = addFog(gl_FragColor.rgb);\n")),{attributes:i,vshader:s,fshader:n+="}\n"}}},Ii={generateKey:function(t){var e="particle";for(var i in t)t.hasOwnProperty(i)&&(e+=t[i]);return e},_animTex:function(t){var e="";return e+=t.animTexLoop?ui.particleAnimFrameLoopVS:ui.particleAnimFrameClampVS,e+=ui.particleAnimTexVS},createShaderDefinition:function(t,e){var i="",n=_i(t)+"\n";n+="#define PARTICLE\n",t.webgl2&&(i+="#define GL2\n",n+="#define GL2\n"),i+="#define VERTEXSHADER\n",e.mesh&&(i+="#define USE_MESH\n"),e.localSpace&&(i+="#define LOCAL_SPACE\n"),e.screenSpace&&(i+="#define SCREEN_SPACE\n"),e.animTex&&(i+="\nuniform vec2 animTexTilesParams;\n"),e.animTex&&(i+="\nuniform vec4 animTexParams;\n"),e.animTex&&(i+="\nuniform vec2 animTexIndexParams;\n"),2===e.normal&&(i+="\nvarying mat3 ParticleMat;\n"),1===e.normal&&(i+="\nvarying vec3 Normal;\n"),e.soft&&(i+="\nvarying float vDepth;\n");var s=e.customFace?ui.particle_customFaceVS:ui.particle_billboardVS;return e.useCpu?(e.soft>0&&(i+=ui.screenDepthPS),i+=ui.particle_cpuVS,e.localSpace&&(i+=ui.particle_localShiftVS),e.animTex&&(i+=this._animTex(e)),e.alignToMotion&&(i+=ui.particle_pointAlongVS),i+=e.mesh?ui.particle_meshVS:s,1===e.normal&&(i+=ui.particle_normalVS),2===e.normal&&(i+=ui.particle_TBNVS),e.stretch>0&&(i+=ui.particle_stretchVS),i+=ui.particle_cpu_endVS,e.soft>0&&(i+=ui.particle_softVS)):(i+=ui.particle_initVS,i+=e.pack8?ui.particleInputRgba8PS:ui.particleInputFloatPS,e.soft>0&&(i+=ui.screenDepthPS),i+=ui.particleVS,e.localSpace&&(i+=ui.particle_localShiftVS),e.animTex&&(i+=this._animTex(e)),e.wrap&&(i+=ui.particle_wrapVS),e.alignToMotion&&(i+=ui.particle_pointAlongVS),i+=e.mesh?ui.particle_meshVS:s,1===e.normal&&(i+=ui.particle_normalVS),2===e.normal&&(i+=ui.particle_TBNVS),e.stretch>0&&(i+=ui.particle_stretchVS),i+=ui.particle_endVS,e.soft>0&&(i+=ui.particle_softVS)),i+="}\n",e.normal>0&&(1===e.normal?n+="\nvarying vec3 Normal;\n":2===e.normal&&(n+="\nvarying mat3 ParticleMat;\n"),n+="\nuniform vec3 lightCube[6];\n"),e.soft&&(n+="\nvarying float vDepth;\n"),0===e.normal&&"none"===e.fog&&(e.srgb=!1),n+=di(e.gamma),n+=fi(e.toneMap),"linear"===e.fog?n+=ui.fogLinearPS:"exp"===e.fog?n+=ui.fogExpPS:"exp2"===e.fog?n+=ui.fogExp2PS:n+=ui.fogNonePS,2===e.normal&&(n+="\nuniform sampler2D normalMap;\n"),e.soft>0&&(n+=ui.screenDepthPS),n+=ui.particlePS,e.soft>0&&(n+=ui.particle_softPS),1===e.normal&&(n+="\nvec3 normal = Normal;\n"),2===e.normal&&(n+=ui.particle_normalMapPS),e.normal>0&&(n+=e.halflambert?ui.particle_halflambertPS:ui.particle_lambertPS),e.normal>0&&(n+=ui.particle_lightingPS),2===e.blend?n+=ui.particle_blendNormalPS:1===e.blend?n+=ui.particle_blendAddPS:5===e.blend&&(n+=ui.particle_blendMultiplyPS),n+=ui.particle_endPS,{attributes:Si(i),vshader:i,fshader:n}}},Li={generateKey:function(t){return"cubemap"===t.type?"skybox-"+t.type+"-"+t.rgbm+"-"+t.hdr+"-"+t.fixSeams+"-"+t.toneMapping+"-"+t.gamma+"-"+t.useIntensity+"-"+t.mip:"skybox-"+t.type+"-"+t.encoding+"-"+t.useIntensity+"-"+t.gamma+"-"+t.toneMapping},createShaderDefinition:function(t,e){var i;if("cubemap"===e.type){i=_i(t),i+=e.mip?ui.fixCubemapSeamsStretchPS:ui.fixCubemapSeamsNonePS,i+=e.useIntensity?ui.envMultiplyPS:ui.envConstPS,i+=di(e.gamma),i+=fi(e.toneMapping),i+=ui.decodePS,i+=ui.rgbmPS,i+=ui.skyboxHDRPS.replace(/\$textureCubeSAMPLE/g,e.rgbm?"textureCubeRGBM":e.hdr?"textureCube":"textureCubeSRGB").replace(/\$FIXCONST/g,1-1/[128,64,16,8,4,2][e.mip]+"")}else{i=_i(t),i+=e.useIntensity?ui.envMultiplyPS:ui.envConstPS,i+=di(e.gamma),i+=fi(e.toneMapping),i+=ui.decodePS,i+=ui.skyboxEnvPS.replace(/\$DECODE/g,{rgbm:"decodeRGBM",rgbe:"decodeRGBE",linear:"decodeLinear"}[e.encoding]||"decodeGamma")}return{attributes:{aPosition:ce},vshader:ui.skyboxVS,fshader:i}}},Di=1/255,ki=new Float32Array(1),Oi=new Int32Array(ki.buffer),Fi=function(){function t(){}return t.float2Half=function(t){ki[0]=t;var e=Oi[0],i=e>>16&32768,n=e>>12&2047,s=e>>23&255;return s<103?i:s>142?(i|=31744,i|=(255===s?0:1)&&8388607&e):s<113?i|=((n|=2048)>>114-s)+(n>>113-s&1):(i|=s-112<<10|n>>1,i+=1&n)},t.float2Bytes=function(t,e,i,n){var s=255*t%1;if(e[i+0]=Math.round(255*(t%1-Di*s)),n>1){var a=65025*t%1;if(e[i+1]=Math.round(255*(s-Di*a)),n>2){var r=16581375*t%1;e[i+2]=Math.round(255*(a-Di*r)),n>3&&(e[i+3]=Math.round(255*r))}}},t.float2BytesRange=function(e,i,n,s,a,r){e=ot.clamp((e-s)/(a-s),0,1),t.float2Bytes(e,i,n,r)},t.float2MantissaExponent=function(e,i,n,s){var a=Math.floor(Math.log2(Math.abs(e)))+1;e/=Math.pow(2,a),t.float2BytesRange(e,i,n,-1,1,s-1),i[n+s-1]=Math.round(a+127)},t}(),Bi=null,Ni=null,Ui=function(){function t(t,e){this.device=t,this.name=null,this._width=4,this._height=4,this._depth=1,this._format=7,this.type=Ge,this.projection=qe,this._cubemap=!1,this._volume=!1,this.fixCubemapSeams=!1,this._flipY=!1,this._premultiplyAlpha=!1,this._isRenderTarget=!1,this._mipmaps=!0,this._minFilter=5,this._magFilter=1,this._anisotropy=1,this._addressU=0,this._addressV=0,this._addressW=0,this._compareOnRead=!1,this._compareFunc=1,void 0!==e&&(void 0!==e.name&&(this.name=e.name),this._width=void 0!==e.width?e.width:this._width,this._height=void 0!==e.height?e.height:this._height,this._format=void 0!==e.format?e.format:this._format,e.hasOwnProperty("type")?this.type=e.type:e.hasOwnProperty("rgbm")?this.type=e.rgbm?We:Ge:e.hasOwnProperty("swizzleGGGR")&&(this.type=e.swizzleGGGR?Xe:Ge),void 0!==e.mipmaps?this._mipmaps=e.mipmaps:this._mipmaps=void 0!==e.autoMipmap?e.autoMipmap:this._mipmaps,this._levels=e.levels,this._cubemap=void 0!==e.cubemap?e.cubemap:this._cubemap,this.fixCubemapSeams=void 0!==e.fixCubemapSeams?e.fixCubemapSeams:this.fixCubemapSeams,this._cubemap?this.projection=Ye:e.projection&&e.projection!==Ye&&(this.projection=e.projection),this._minFilter=void 0!==e.minFilter?e.minFilter:this._minFilter,this._magFilter=void 0!==e.magFilter?e.magFilter:this._magFilter,this._anisotropy=void 0!==e.anisotropy?e.anisotropy:this._anisotropy,this._addressU=void 0!==e.addressU?e.addressU:this._addressU,this._addressV=void 0!==e.addressV?e.addressV:this._addressV,this._compareOnRead=void 0!==e.compareOnRead?e.compareOnRead:this._compareOnRead,this._compareFunc=void 0!==e._compareFunc?e._compareFunc:this._compareFunc,this._flipY=void 0!==e.flipY?e.flipY:this._flipY,this._premultiplyAlpha=void 0!==e.premultiplyAlpha?e.premultiplyAlpha:this._premultiplyAlpha,t.webgl2&&(this._depth=void 0!==e.depth?e.depth:this._depth,this._volume=void 0!==e.volume?e.volume:this._volume,this._addressW=void 0!==e.addressW?e.addressW:this._addressW)),this._compressed=8===this._format||9===this._format||this._format===te||this._format>=oe,this._invalid=!1,this._lockedLevel=-1,this._levels||(this._levels=this._cubemap?[[null,null,null,null,null,null]]:[null]),this.dirtyAll(),this._gpuSize=0,this.impl=t.createTextureImpl(),t.textures.push(this)}var e=t.prototype;return e.destroy=function(){if(this.device){var t=this.device,e=t.textures.indexOf(this);-1!==e&&t.textures.splice(e,1),t.scope.removeValue(this),this.impl.destroy(t),this.adjustVramSizeTracking(t._vram,-this._gpuSize),this._levels=null,this.device=null}},e.loseContext=function(){this.impl.loseContext(),this.dirtyAll()},e.adjustVramSizeTracking=function(t,e){t.tex+=e},t.calcGpuSize=function(t,e,i,n,s,a){Bi||((Bi=[])[0]=1,Bi[1]=1,Bi[2]=2,Bi[3]=2,Bi[4]=2,Bi[5]=2,Bi[6]=4,Bi[7]=4,Bi[11]=8,Bi[12]=8,Bi[13]=16,Bi[14]=16,Bi[15]=4,Bi[16]=4,Bi[17]=4,Bi[18]=4,Bi[19]=4,Bi[20]=4),Ni||((Ni=[])[21]=8,Ni[22]=8,Ni[24]=8,Ni[25]=8,Ni[26]=8,Ni[27]=8,Ni[8]=8,Ni[29]=8,Ni[23]=16,Ni[9]=16,Ni[10]=16,Ni[28]=16,Ni[30]=16);for(var r=Bi.hasOwnProperty(n)?Bi[n]:0,o=Ni.hasOwnProperty(n)?Ni[n]:0,h=0;;){if(r>0)h+=t*e*i*r;else{var l=Math.floor((t+3)/4),c=Math.floor((e+3)/4),u=Math.floor((i+3)/4);n!==he&&n!==le||(l=Math.max(Math.floor(l/2),1)),h+=l*c*u*o}if(!s||1===t&&1===e&&1===i)break;t=Math.max(Math.floor(t/2),1),e=Math.max(Math.floor(e/2),1),i=Math.max(Math.floor(i/2),1)}return h*(a?6:1)},e.dirtyAll=function(){this._levelsUpdated=this._cubemap?[[!0,!0,!0,!0,!0,!0]]:[!0],this._needsUpload=!0,this._needsMipmapsUpload=this._mipmaps,this._mipmapsUploaded=!1,this._parameterFlags=255},e.lock=function(t){if(void 0===t&&(t={}),void 0===t.level&&(t.level=0),void 0===t.face&&(t.face=0),void 0===t.mode&&(t.mode=2),this._lockedLevel=t.level,null===this._levels[t.level])switch(this._format){case 0:case 1:this._levels[t.level]=new Uint8Array(this._width*this._height*this._depth);break;case 2:this._levels[t.level]=new Uint8Array(this._width*this._height*this._depth*2);break;case 3:case 4:case 5:this._levels[t.level]=new Uint16Array(this._width*this._height*this._depth);break;case 6:this._levels[t.level]=new Uint8Array(this._width*this._height*this._depth*3);break;case 7:this._levels[t.level]=new Uint8Array(this._width*this._height*this._depth*4);break;case 8:this._levels[t.level]=new Uint8Array(Math.floor((this._width+3)/4)*Math.floor((this._height+3)/4)*8*this._depth);break;case 9:case te:this._levels[t.level]=new Uint8Array(Math.floor((this._width+3)/4)*Math.floor((this._height+3)/4)*16*this._depth);break;case ee:this._levels[t.level]=new Uint16Array(this._width*this._height*this._depth*3);break;case ne:this._levels[t.level]=new Float32Array(this._width*this._height*this._depth*3);break;case ie:this._levels[t.level]=new Uint16Array(this._width*this._height*this._depth*4);break;case se:this._levels[t.level]=new Float32Array(this._width*this._height*this._depth*4)}return this._levels[t.level]},e.setSource=function(t,e){void 0===e&&(e=0);var i,n,s=!1;if(this._cubemap){if(t[0]){i=t[0].width||0,n=t[0].height||0;for(var a=0;a<6;a++){var r=t[a];if(!r||r.width!==i||r.height!==n||!this.device._isBrowserInterface(r)){s=!0;break}}}else s=!0;if(!s)for(var o=0;o<6;o++)this._levels[e][o]!==t[o]&&(this._levelsUpdated[e][o]=!0)}else this.device._isBrowserInterface(t)||(s=!0),s||(t!==this._levels[e]&&(this._levelsUpdated[e]=!0),i=t.width,n=t.height);if(s)if(this._width=4,this._height=4,this._cubemap)for(var h=0;h<6;h++)this._levels[e][h]=null,this._levelsUpdated[e][h]=!0;else this._levels[e]=null,this._levelsUpdated[e]=!0;else 0===e&&(this._width=i,this._height=n),this._levels[e]=t;this._invalid===s&&s||(this._invalid=s,this.upload())},e.getSource=function(t){return void 0===t&&(t=0),this._levels[t]},e.unlock=function(){this._lockedLevel,this.upload(),this._lockedLevel=-1},e.upload=function(){this._needsUpload=!0,this._needsMipmapsUpload=this._mipmaps},e.getDds=function(){for(var t=128,e=0;this._levels[e];){if(this.cubemap)for(var i=0;i<6;i++){if(!this._levels[e][i])return;var n=this._levels[e][i].length;if(!n)return;t+=n}else{var s=this._levels[e].length;if(!s)return;t+=s}t+=this._levels[e].length,e++}var a=new ArrayBuffer(t),r=new Uint32Array(a,0,32),o=528391;this._levels.length>1&&(o|=131072);var h=4096;this._levels.length>1&&(h|=4194304),(this._levels.length>1||this.cubemap)&&(h|=8);var l=this.cubemap?65024:0;r[0]=542327876,r[1]=124,r[2]=o,r[3]=this.height,r[4]=this.width,r[5]=this.width*this.height*4,r[6]=0,r[7]=this._levels.length;for(var c=0;c<11;c++)r[8+c]=0;r[19]=32,r[20]=65,r[21]=0,r[22]=32,r[23]=16711680,r[24]=65280,r[25]=255,r[26]=4278190080,r[27]=h,r[28]=l,r[29]=0,r[30]=0,r[31]=0;var u=128;if(this.cubemap)for(var d=0;d<6;d++)for(var f=0;f=0?t.insertChild(this,e):t.addChild(this))},i.setLocalEulerAngles=function(t,e,i){this.localRotation.setFromEulerAngles(t,e,i),this._dirtyLocal||this._dirtifyLocal()},i.setLocalPosition=function(t,e,i){t instanceof pt?this.localPosition.copy(t):this.localPosition.set(t,e,i),this._dirtyLocal||this._dirtifyLocal()},i.setLocalRotation=function(t,e,i,n){t instanceof Tt?this.localRotation.copy(t):this.localRotation.set(t,e,i,n),this._dirtyLocal||this._dirtifyLocal()},i.setLocalScale=function(t,e,i){t instanceof pt?this.localScale.copy(t):this.localScale.set(t,e,i),this._dirtyLocal||this._dirtifyLocal()},i._dirtifyLocal=function(){this._dirtyLocal||(this._dirtyLocal=!0,this._dirtyWorld||this._dirtifyWorld())},i._unfreezeParentToRoot=function(){for(var t=this._parent;t;)t._frozen=!1,t=t._parent},i._dirtifyWorld=function(){this._dirtyWorld||this._unfreezeParentToRoot(),this._dirtifyWorldInternal()},i._dirtifyWorldInternal=function(){if(!this._dirtyWorld){this._frozen=!1,this._dirtyWorld=!0;for(var t=0;t8?t.FORMAT_FLOAT:t.FORMAT_8BIT,t.initShaderDefines()},t.createTexture=function(t,e,i,n,s){return new Ui(t,{name:s,width:e,height:i,mipmaps:!1,format:n,addressU:1,addressV:1,type:Ge,magFilter:0,minFilter:0,anisotropy:1})};var e=t.prototype;return e.destroy=function(){this.lightsTexture8&&(this.lightsTexture8.destroy(),this.lightsTexture8=null),this.lightsTextureFloat&&(this.lightsTextureFloat.destroy(),this.lightsTextureFloat=null)},e.setCompressionRanges=function(t,e){this.invMaxColorValue=1/e,this.invMaxAttenuation=1/t},e.setBounds=function(t,e){this.boundsMin.copy(t),this.boundsDelta.copy(e)},e.uploadTextures=function(){this.lightsTextureFloat&&(this.lightsTextureFloat.lock().set(this.lightsFloat),this.lightsTextureFloat.unlock()),this.lightsTexture8.lock().set(this.lights8),this.lightsTexture8.unlock()},e.updateUniforms=function(){this._lightsTexture8Id.setValue(this.lightsTexture8),t.lightTextureFormat===t.FORMAT_FLOAT&&this._lightsTextureFloatId.setValue(this.lightsTextureFloat),this._lightsTextureInvSizeId.setValue(this._lightsTextureInvSizeData)},e.getSpotDirection=function(t,e){e._node.getWorldTransform().getY(t).mulScalar(-1),t.normalize()},e.getLightAreaSizes=function(t){var e=t._node.getWorldTransform();return e.transformVector(pn,dn),fn[0]=dn.x,fn[1]=dn.y,fn[2]=dn.z,e.transformVector(mn,dn),fn[3]=dn.x,fn[4]=dn.y,fn[5]=dn.z,fn},e.addLightDataFlags=function(t,e,i,n,s){t[e+0]=n?255:0,t[e+1]=64*i._shape,t[e+2]=255*i._falloffMode,t[e+3]=s?255:0},e.addLightDataColor=function(t,e,i,n,s){var a=this.invMaxColorValue,r=n?i._linearFinalColor:i._finalColor;Fi.float2Bytes(r[0]*a,t,e+0,2),Fi.float2Bytes(r[1]*a,t,e+2,2),Fi.float2Bytes(r[2]*a,t,e+4,2),t[e+6]=s?255:0;var o=!!(1&i.mask),h=!!(2&i.mask);t[e+7]=o&&h?127:h?255:0},e.addLightDataSpotAngles=function(t,e,i){Fi.float2Bytes(.499999*i._innerConeAngleCos+.5,t,e+0,2),Fi.float2Bytes(.499999*i._outerConeAngleCos+.5,t,e+2,2)},e.addLightDataShadowBias=function(t,e,i){var n=i.getRenderData(null,0),s=i._getUniformBiasValues(n);Fi.float2BytesRange(s.bias,t,e,-1,20,2),Fi.float2Bytes(s.normalBias,t,e+2,2)},e.addLightDataPositionRange=function(t,e,i,n){var s=dn.sub2(n,this.boundsMin).div(this.boundsDelta);Fi.float2Bytes(s.x,t,e+0,4),Fi.float2Bytes(s.y,t,e+4,4),Fi.float2Bytes(s.z,t,e+8,4),Fi.float2Bytes(i.attenuationEnd*this.invMaxAttenuation,t,e+12,4)},e.addLightDataSpotDirection=function(t,e,i){this.getSpotDirection(dn,i),Fi.float2Bytes(.499999*dn.x+.5,t,e+0,4),Fi.float2Bytes(.499999*dn.y+.5,t,e+4,4),Fi.float2Bytes(.499999*dn.z+.5,t,e+8,4)},e.addLightDataLightProjMatrix=function(t,e,i){for(var n=i.data,s=0;s<12;s++)Fi.float2BytesRange(n[s],t,e+4*s,-2,2,4);for(var a=12;a<16;a++)Fi.float2MantissaExponent(n[a],t,e+4*a,4)},e.addLightDataCookies=function(t,e,i){var n="rgb"===i._cookieChannel;if(t[e+0]=Math.floor(255*i.cookieIntensity),t[e+1]=n?255:0,!n){var s=i._cookieChannel;t[e+4]="rrr"===s?255:0,t[e+5]="ggg"===s?255:0,t[e+6]="bbb"===s?255:0,t[e+7]="aaa"===s?255:0}},e.addLightAtlasViewport=function(t,e,i){Fi.float2Bytes(i.x,t,e+0,2),Fi.float2Bytes(i.y,t,e+2,2),Fi.float2Bytes(i.z/3,t,e+4,2)},e.addLightAreaSizes=function(t,e,i){for(var n=this.getLightAreaSizes(i),s=0;s<6;s++)Fi.float2MantissaExponent(n[s],t,e+4*s,4)},e.addLightData=function(e,i,n){var s=2===e._type,a=e.atlasViewportAllocated,r=this.cookiesEnabled&&!!e._cookie&&a,o=this.areaLightsEnabled&&0!==e.shape,h=this.shadowsEnabled&&e.castShadows&&a,l=e._node.getPosition(),c=null,u=null;s?h?c=e.getRenderData(null,0).shadowMatrix:r&&(c=un.evalSpotCookieMatrix(e)):(h||r)&&(u=e.atlasViewport);var d=this.lights8,f=i*this.lightsTexture8.width*4;if(this.addLightDataFlags(d,f+4*_n.FLAGS,e,s,h),this.addLightDataColor(d,f+4*_n.COLOR_A,e,n,r),s&&this.addLightDataSpotAngles(d,f+4*_n.SPOT_ANGLES,e),e.castShadows&&this.addLightDataShadowBias(d,f+4*_n.SHADOW_BIAS,e),r&&this.addLightDataCookies(d,f+4*_n.COOKIE_A,e),t.lightTextureFormat===t.FORMAT_FLOAT){var p=this.lightsFloat,m=i*this.lightsTextureFloat.width*4;if(p[m+4*gn.POSITION_RANGE+0]=l.x,p[m+4*gn.POSITION_RANGE+1]=l.y,p[m+4*gn.POSITION_RANGE+2]=l.z,p[m+4*gn.POSITION_RANGE+3]=e.attenuationEnd,s&&(this.getSpotDirection(dn,e),p[m+4*gn.SPOT_DIRECTION+0]=dn.x,p[m+4*gn.SPOT_DIRECTION+1]=dn.y,p[m+4*gn.SPOT_DIRECTION+2]=dn.z),c)for(var _=c.data,g=0;g<16;g++)p[m+4*gn.PROJ_MAT_0+g]=_[g];if(u&&(p[m+4*gn.ATLAS_VIEWPORT+0]=u.x,p[m+4*gn.ATLAS_VIEWPORT+1]=u.y,p[m+4*gn.ATLAS_VIEWPORT+2]=u.z/3),o){var v=this.getLightAreaSizes(e);p[m+4*gn.AREA_DATA_WIDTH+0]=v[0],p[m+4*gn.AREA_DATA_WIDTH+1]=v[1],p[m+4*gn.AREA_DATA_WIDTH+2]=v[2],p[m+4*gn.AREA_DATA_HEIGHT+0]=v[3],p[m+4*gn.AREA_DATA_HEIGHT+1]=v[4],p[m+4*gn.AREA_DATA_HEIGHT+2]=v[5]}}else this.addLightDataPositionRange(d,f+4*_n.POSITION_X,e,l),s&&this.addLightDataSpotDirection(d,f+4*_n.SPOT_DIRECTION_X,e),c&&this.addLightDataLightProjMatrix(d,f+4*_n.PROJ_MAT_00,c),u&&this.addLightAtlasViewport(d,f+4*_n.ATLAS_VIEWPORT_A,u),o&&this.addLightAreaSizes(d,f+4*_n.AREA_DATA_WIDTH_X,e)},t}();vn.FORMAT_FLOAT=0,vn.FORMAT_8BIT=1,vn.lightTextureFormat=vn.FORMAT_8BIT,vn.shaderDefines="";var yn=[],xn={rgbm:"decodeRGBM",rgbe:"decodeRGBE",linear:"decodeLinear"},bn={optionsContext:{},optionsContextMin:{},generateKey:function(t){var e,i=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&"chunks"!==i&&"lights"!==i&&e.push(i);return e.sort()};t===this.optionsContextMin?(this.propsMin||(this.propsMin=i(t)),e=this.propsMin):t===this.optionsContext?(this.props||(this.props=i(t)),e=this.props):e=i(t);for(var n="standard",s=0;s0){if(yn[t]e.length){for(var i=e,n=i.charAt(i.length-1),s=yn[t]-i.length,a=0;a1&&(a+="getShadowCascadeMatrix(light"+n+"_shadowMatrixPalette, light"+n+"_shadowCascadeDistances, light"+n+"_shadowCascadeCount);\n",e="(cascadeShadowMat, "+i+");\n"),a+=s+e,a+="fadeShadow(light"+n+"_shadowCascadeDistances);\n"},_nonPointShadowMapProjection:function(t,e,i,n,s){var a="("+i+", "+n+");\n";return!e._normalOffsetBias||e._isVsm?2===e._type?e._isPcf&&(t.webgl2||t.extStandardDerivatives)?"\t\t\t getShadowCoordPerspZbuffer"+a:"\t\t\t getShadowCoordPersp"+a:this._directionalShadowMapProjection(e,a,n,s,"getShadowCoordOrtho"):2===e._type?e._isPcf&&(t.webgl2||t.extStandardDerivatives)?"\t\t\t getShadowCoordPerspZbufferNormalOffset"+a:"\t\t\t getShadowCoordPerspNormalOffset"+a:this._directionalShadowMapProjection(e,a,n,s,"getShadowCoordOrthoNormalOffset")},_addVaryingIfNeeded:function(t,e,i){return t.indexOf(i)>=0?"varying "+e+" "+i+";\n":""},_getLightSourceShapeString:function(t){switch(t){case 1:return"Rect";case 2:return"Disk";case 3:return"Sphere";default:return""}},_getPassDefineString:function(t){return t===Wt?"#define PICK_PASS\n":2===t?"#define DEPTH_PASS\n":t>=3&&t<=17?"#define SHADOW_PASS\n":""},_vsAddTransformCode:function(t,e,i,n){return t+=i.transformVS},_vsAddBaseCode:function(t,e,i,n){return t+=i.baseVS,1!==n.nineSlicedMode&&2!==n.nineSlicedMode||(t+=i.baseNineSlicedVS),t},_fsAddBaseCode:function(t,e,i,n){return t+=i.basePS,1===n.nineSlicedMode?t+=i.baseNineSlicedPS:2===n.nineSlicedMode&&(t+=i.baseNineSlicedTiledPS),2===n.nineSlicedMode?t+="const float textureBias = -1000.0;\n":t+="uniform float textureBias;\n",t},_decodeFunc:function(t){return xn[t]||"decodeGamma"},_fsAddStartCode:function(t,e,i,n){return t+=i.startPS,1===n.nineSlicedMode?t+=i.startNineSlicedPS:2===n.nineSlicedMode&&(t+=i.startNineSlicedTiledPS),t},_buildShadowPassFragmentCode:function(t,e,i,n,s){var a=n.pass-3,r=Math.floor(a/6),o=a-6*r;return e.extStandardDerivatives&&!e.webgl2&&(t+="uniform vec2 polygonOffset;\n"),3===o?e.textureFloatHighPrecision?t+="#define VSM_EXPONENT 15.0\n\n":t+="#define VSM_EXPONENT 5.54\n\n":2===o&&(t+="#define VSM_EXPONENT 5.54\n\n"),0!==r&&(t+="uniform vec3 view_position;\n",t+="uniform float light_radius;\n"),t+=s,n.alphaTest&&(t+="uniform float textureBias;",t+="float dAlpha;\n",t+=this._addMap("opacity","opacityPS",n,i),t+=i.alphaTestPS),0!==o||e.webgl2&&1!==r?1===o&&(t+="vec2 encodeFloatRG( float v ) {\n",t+="\t\tvec2 enc = vec2(1.0, 255.0) * v;\n",t+="\t\tenc = fract(enc);\n",t+="\t\tenc -= enc.yy * vec2(1.0/255.0, 1.0/255.0);\n",t+="\t\treturn enc;\n",t+="}\n\n"):t+=i.packDepthPS,t+="void main(void)\n{\n",n.alphaTest&&(t+="\t getOpacity();\n",t+="\t alphaTest(dAlpha);\n"),t+=1===r||(1===o||2===o||3===o)&&0!==r?"\t float depth = min(distance(view_position, vPositionW) / light_radius, 0.99999);\n":"\t float depth = gl_FragCoord.z;\n",0!==o||e.webgl2&&(1!==r||n.clusteredLightingEnabled)?0===o||4===o?(t+="\t gl_FragColor = vec4(1.0);\n",n.clusteredLightingEnabled&&1===r&&e.webgl2&&(t+="\t gl_FragDepth = depth;\n")):t+=1===o?"\t gl_FragColor = vec4(encodeFloatRG(depth), encodeFloatRG(depth*depth));\n":i.storeEVSMPS:e.extStandardDerivatives&&!e.webgl2?(t+="\t float minValue = 2.3374370500153186e-10; //(1.0 / 255.0) / (256.0 * 256.0 * 256.0);\n",t+="\t depth += polygonOffset.x * max(abs(dFdx(depth)), abs(dFdy(depth))) + minValue * polygonOffset.y;\n",t+="\t gl_FragColor = packFloat(depth);\n"):t+="\t gl_FragColor = packFloat(depth);\n",t+="}\n"},createShaderDefinition:function(t,e){var i=e.lights.length>0;e.dirLightMap&&(i=!0),e.clusteredLightingEnabled&&(i=!0),0===e.shadingModel?(e.fresnelModel=0,e.specularAntialias=!1,e.ambientSH=!1):e.fresnelModel=0===e.fresnelModel?2:e.fresnelModel;var n=!!e.reflectionSource;e.useSpecular||(e.specularMap=e.glossMap=null);var s=e.pass>=3&&e.pass<=17,a=i||n||e.ambientSH||e.heightMap||e.enableGGXSpecular||e.clusteredLightingEnabled&&!s||e.clearCoatNormalMap;this.options=e;var r,o,h="",l="",c="",u=ui,d={vertex_position:ce};if(e.chunks){var f={};for(var p in u)u.hasOwnProperty(p)&&(e.chunks[p]?((o=e.chunks[p]).indexOf("vertex_normal")>=0&&(d.vertex_normal=ue),o.indexOf("vertex_tangent")>=0&&(d.vertex_tangent=de),o.indexOf("vertex_texCoord0")>=0&&(d.vertex_texCoord0=ge),o.indexOf("vertex_texCoord1")>=0&&(d.vertex_texCoord1=ve),o.indexOf("vertex_color")>=0&&(d.vertex_color=me),o.indexOf("vertex_boneWeights")>=0&&(d.vertex_boneWeights=fe),o.indexOf("vertex_boneIndices")>=0&&(d.vertex_boneIndices=pe),f[p]=o):f[p]=u[p]);u=f}h+=this._getPassDefineString(e.pass),h=this._vsAddBaseCode(h,t,u,e),l+="\t vPositionW\t\t= getWorldPosition();\n",2===e.pass&&(h+="varying float vDepth;\n",h+="#ifndef VIEWMATRIX\n",h+="#define VIEWMATRIX\n",h+="uniform mat4 matrix_view;\n",h+="#endif\n",h+="#ifndef CAMERAPLANES\n",h+="#define CAMERAPLANES\n",h+="uniform vec4 camera_params;\n\n",h+="#endif\n",l+="\t\tvDepth = -(matrix_view * vec4(vPositionW,1.0)).z * camera_params.x;\n"),e.useInstancing&&(d.instance_line1=Ne,d.instance_line2=Ue,d.instance_line3=ze,d.instance_line4=Ve,h+=u.instancingVS),a&&(d.vertex_normal=ue,l+="\t vNormalW = getNormal();\n","sphereMap"===e.reflectionSource&&t.fragmentUniformsCount<=16&&(h+=u.viewNormalVS,l+="\t vNormalV\t\t= getViewNormal();\n"),(e.heightMap||e.normalMap||e.enableGGXSpecular)&&e.hasTangents?(d.vertex_tangent=de,h+=u.tangentBinormalVS,l+="\t vTangentW\t = getTangent();\n",l+="\t vBinormalW\t= getBinormal();\n"):e.enableGGXSpecular&&(h+=u.tangentBinormalVS,l+="\t vObjectSpaceUpW\t= getObjectSpaceUp();\n"));var m=[],_=[];for(var g in yn){var v=g+"Map";if(e[g+"VertexColor"]){var y=g+"VertexColorChannel";e[y]=this._correctChannel(g,e[y])}if(e[v]){var x=v+"Channel",b=v+"Transform",S=v+"Uv";e[S]=Math.min(e[S],1),e[x]=this._correctChannel(g,e[x]);var w=e[S];m[w]=!0,_[w]=_[w]||e[v]&&!e[b]}}e.forceUv1&&(m[1]=!0,_[1]=void 0===_[1]||_[1]);for(var T=0;T<2;T++)m[T]&&(d["vertex_texCoord"+T]="TEXCOORD"+T,h+=u["uv"+T+"VS"],l+="\t vec2 uv"+T+" = getUv"+T+"();\n"),_[T]&&(l+="\t vUv"+T+" = uv"+T+";\n");var A=[h,c,l,[]];for(var M in yn){var C=M+"Map";if(e[C]){var E=C+"Transform";if(e[E]){var P=C+"Uv";this._setMapTransform(A,M,e[E],e[P])}}}h=A[0],c=A[1],l=A[2],e.vertexColors&&(d.vertex_color=me,l+="\t vVertexColor = vertex_color;\n"),(e.useMorphPosition||e.useMorphNormal)&&(e.useMorphTextureBased?(h+="#define MORPHING_TEXTURE_BASED\n",e.useMorphPosition&&(h+="#define MORPHING_TEXTURE_BASED_POSITION\n"),e.useMorphNormal&&(h+="#define MORPHING_TEXTURE_BASED_NORMAL\n"),d.morph_vertex_id=Ve,h+="attribute float morph_vertex_id;\n"):(h+="#define MORPHING\n",e.useMorphPosition?(d.morph_pos0=ke,d.morph_pos1=Oe,d.morph_pos2=Fe,d.morph_pos3=Be,h+="#define MORPHING_POS03\n",h+="attribute vec3 morph_pos0;\n",h+="attribute vec3 morph_pos1;\n",h+="attribute vec3 morph_pos2;\n",h+="attribute vec3 morph_pos3;\n"):e.useMorphNormal&&(d.morph_nrm0=ke,d.morph_nrm1=Oe,d.morph_nrm2=Fe,d.morph_nrm3=Be,h+="#define MORPHING_NRM03\n",h+="attribute vec3 morph_nrm0;\n",h+="attribute vec3 morph_nrm1;\n",h+="attribute vec3 morph_nrm2;\n",h+="attribute vec3 morph_nrm3;\n"),e.useMorphNormal?(d.morph_nrm4=Ne,d.morph_nrm5=Ue,d.morph_nrm6=ze,d.morph_nrm7=Ve,h+="#define MORPHING_NRM47\n",h+="attribute vec3 morph_nrm4;\n",h+="attribute vec3 morph_nrm5;\n",h+="attribute vec3 morph_nrm6;\n",h+="attribute vec3 morph_nrm7;\n"):(d.morph_pos4=Ne,d.morph_pos5=Ue,d.morph_pos6=ze,d.morph_pos7=Ve,h+="#define MORPHING_POS47\n",h+="attribute vec3 morph_pos4;\n",h+="attribute vec3 morph_pos5;\n",h+="attribute vec3 morph_pos6;\n",h+="attribute vec3 morph_pos7;\n"))),e.skin?(d.vertex_boneWeights=fe,d.vertex_boneIndices=pe,h+=mi(t,u),h+="#define SKIN\n"):e.useInstancing&&(h+="#define INSTANCING\n"),e.screenSpace&&(h+="#define SCREENSPACE\n"),e.pixelSnap&&(h+="#define PIXELSNAP\n"),h=this._vsAddTransformCode(h,t,u,e),a&&(h+=u.normalVS),h+="\n",h+=u.startVS,h+=l,h+=u.endVS;var R=h+="}",I=c;c="",c+=this._addVaryingIfNeeded(h,"vec4","vVertexColor"),c+=this._addVaryingIfNeeded(h,"vec3","vPositionW"),c+=this._addVaryingIfNeeded(h,"vec3","vNormalV"),c+=this._addVaryingIfNeeded(h,"vec3","vNormalW"),c+=this._addVaryingIfNeeded(h,"vec3","vTangentW"),c+=this._addVaryingIfNeeded(h,"vec3","vBinormalW"),c+=this._addVaryingIfNeeded(h,"vec3","vObjectSpaceUpW"),c+=this._addVaryingIfNeeded(h,"vec2","vUv0"),c+=this._addVaryingIfNeeded(h,"vec2","vUv1"),R=(c+=I)+R;var L="";if(t.webgl2?(L=gi(t),u.extensionVS&&(L+=u.extensionVS+"\n"),R=L+u.gles3VS+R):(u.extensionVS&&(L=u.extensionVS+"\n"),R=L+R),e.forceFragmentPrecision&&"highp"!==e.forceFragmentPrecision&&"mediump"!==e.forceFragmentPrecision&&"lowp"!==e.forceFragmentPrecision&&(e.forceFragmentPrecision=null),e.forceFragmentPrecision&&("highp"===e.forceFragmentPrecision&&"highp"!==t.maxPrecision&&(e.forceFragmentPrecision="mediump"),"mediump"===e.forceFragmentPrecision&&"lowp"===t.maxPrecision&&(e.forceFragmentPrecision="lowp")),h="",t.webgl2&&(h+=gi(t)),t.webgl2||(t.extStandardDerivatives&&(h+="#extension GL_OES_standard_derivatives : enable\n"),t.extTextureLod&&(h+="#extension GL_EXT_shader_texture_lod : enable\n",h+="#define SUPPORTS_TEXLOD\n")),u.extensionPS&&(h+=u.extensionPS+"\n"),t.webgl2&&(h+=u.gles3PS),h+=e.forceFragmentPrecision?"precision "+e.forceFragmentPrecision+" float;\n\n":_i(t),h+=this._getPassDefineString(e.pass),e.pass===Wt)return h+="uniform vec4 uColor;\n",h+=c,e.alphaTest&&(h+="uniform float textureBias;",h+="float dAlpha;\n",h+=this._addMap("opacity","opacityPS",e,u),h+=u.alphaTestPS),h+="void main(void)\n{\n",e.alphaTest&&(h+="\t getOpacity();\n",h+="\t alphaTest(dAlpha);\n"),h+="\t\tgl_FragColor = uColor;\n",{attributes:d,vshader:R,fshader:h+="}\n"};if(2===e.pass)return h+="varying float vDepth;\n",h+=c,h+=u.packDepthPS,e.alphaTest&&(h+="uniform float textureBias;",h+="float dAlpha;\n",h+=this._addMap("opacity","opacityPS",e,u),h+=u.alphaTestPS),h+="void main(void)\n{\n",e.alphaTest&&(h+="\t getOpacity();\n",h+="\t alphaTest(dAlpha);\n"),h+="\t\tgl_FragColor = packFloat(vDepth);\n",{attributes:d,vshader:R,fshader:h+="}\n"};if(s)return{attributes:d,vshader:R,fshader:this._buildShadowPassFragmentCode(h,t,u,e,c)};if(e.customFragmentShader)return{attributes:d,vshader:R,fshader:h+e.customFragmentShader,tag:1};h+=c,h=this._fsAddBaseCode(h,t,u,e),e.detailModes&&(h+=u.detailModesPS);var D=h;h="",e.clearCoat>0&&(h+="#define CLEARCOAT\n",h+="#define CLUSTER_CLEAR_COAT\n"),!1===e.opacityFadesSpecular&&(h+="uniform float material_alphaFade;\n");var k,O=0,F=[],B=!1,N=!1,U=!1,z=e.lights.some((function(t){return t._shape&&0!==t._shape}));e.clusteredLightingEnabled&&e.clusteredLightingAreaLightsEnabled&&(z=!0),7===t.areaLightLutFormat?(h+="#define AREA_R8_G8_B8_A8_LUTS\n",h+="#define AREA_LUTS_PRECISION lowp\n"):h+="#define AREA_LUTS_PRECISION highp\n",(z||e.clusteredLightingEnabled)&&(h+="#define AREA_LIGHTS\n",h+="uniform AREA_LUTS_PRECISION sampler2D areaLightsLutTex1;\n",h+="uniform AREA_LUTS_PRECISION sampler2D areaLightsLutTex2;\n");for(var V=0;V0?u.cubeMapProjectBoxPS:u.cubeMapProjectNonePS,h+=e.skyboxIntensity?u.envMultiplyPS:u.envConstPS),e.diffuseDetail&&(h+=this._addMap("diffuseDetail","diffuseDetailMapPS",e,u)),h+=this._addMap("diffuse","diffusePS",e,u),(3!==e.blendType||e.alphaTest||e.alphaToCoverage)&&(h+=this._addMap("opacity","opacityPS",e,u)),h+=this._addMap("emissive","emissivePS",e,u,e.emissiveFormat),i&&e.useSpecular||n){e.specularAntialias&&e.normalMap?e.normalizeNormalMap&&a?h+=u.specularAaToksvigPS:h+=u.specularAaToksvigFastPS:h+=u.specularAaNonePS;var Y=e.useMetalness?"metalness":"specular";h+=this._addMap(Y,Y+"PS",e,u),h+=this._addMap("gloss","glossPS",e,u),2===e.fresnelModel&&(h+=u.fresnelSchlickPS)}if(e.clearCoat>0&&(h+=this._addMap("clearCoat","clearCoatPS",e,u),h+=this._addMap("clearCoatGloss","clearCoatGlossPS",e,u),h+=this._addMap("clearCoatNormal","clearCoatNormalPS",e,u)),e.heightMap){if(!e.normalMap){var j=this._getUvSourceExpression("heightMapTransform","heightMapUv",e);e.hasTangents||(k=k.replace(/\$UV/g,j)),h+=k}h+=this._addMap("height","parallaxPS",e,u)}var K=e.aoMap||e.aoVertexColor;if(K&&(h+=this._addMap("ao","aoPS",e,u),h+=u.aoDiffuseOccPS,e.occludeSpecular&&(1===e.occludeSpecular?h+=e.occludeSpecularFloat?u.aoSpecOccSimplePS:u.aoSpecOccConstSimplePS:h+=e.occludeSpecularFloat?u.aoSpecOccPS:u.aoSpecOccConstPS)),"envAtlas"===e.reflectionSource)h+=u.reflectionEnvPS.replace(/\$DECODE/g,this._decodeFunc(e.reflectionEncoding));else if("cubeMap"===e.reflectionSource)h+=e.fixSeams?u.fixCubemapSeamsStretchPS:u.fixCubemapSeamsNonePS,h+=u.reflectionCubePS.replace(/\$DECODE/g,this._decodeFunc(e.reflectionEncoding));else if("sphereMap"===e.reflectionSource){h+=(t.fragmentUniformsCount>16?u.reflectionSpherePS:u.reflectionSphereLowPS).replace(/\$DECODE/g,this._decodeFunc(e.reflectionEncoding))}n&&(e.clearCoat>0&&(h+=u.reflectionCCPS),e.refraction&&(h+=u.refractionPS)),e.clusteredLightingEnabled&&(h+=u.clusteredLightUtilsPS,h+=u.clusteredLightCookiesPS,F[0]=!0,F[4]=!0,U=!0),(O>0||e.clusteredLightingEnabled)&&(B&&(h+=u.shadowCascadesPS),F[0]&&(h+=u.shadowStandardPS),F[4]&&t.webgl2&&(h+=u.shadowStandardGL2PS),N&&(h+=u.shadowVSM_commonPS,F[1]&&(h+=u.shadowVSM8PS),F[2]&&(h+=t.extTextureHalfFloatLinear?u.shadowEVSMPS.replace(/\$/g,"16"):u.shadowEVSMnPS.replace(/\$/g,"16")),F[3]&&(h+=t.extTextureFloatLinear?u.shadowEVSMPS.replace(/\$/g,"32"):u.shadowEVSMnPS.replace(/\$/g,"32"))),t.webgl2||t.extStandardDerivatives||(h+=u.biasConstPS),h+=u.shadowCoordPS+u.shadowCommonPS,U&&(h+=u.shadowCoordPerspZbufferPS)),e.enableGGXSpecular&&(h+="uniform float material_anisotropy;\n"),i&&(h+=u.lightDiffuseLambertPS,(z||e.clusteredLightingEnabled)&&(h+=u.ltc)),h+="\n";var Z=!1;e.useSpecular?(h+="#define CLUSTER_SPECULAR\n",e.conserveEnergy&&(h+="#define CLUSTER_CONSERVE_ENERGY\n"),i&&(h+=0===e.shadingModel?u.lightSpecularPhongPS:e.enableGGXSpecular?u.lightSpecularAnisoGGXPS:u.lightSpecularBlinnPS),e.fresnelModel>0?e.conserveEnergy&&!z?h+=u.combineDiffuseSpecularPS:h+=u.combineDiffuseSpecularNoConservePS:n?h+=u.combineDiffuseSpecularOldPS:e.diffuseMap?h+=u.combineDiffuseSpecularNoReflPS:(h+=u.combineDiffuseSpecularNoReflSeparateAmbientPS,Z=!0)):h+=u.combineDiffusePS,e.clearCoat>0&&(h+=u.combineClearCoatPS);var $=!0;if(e.lightMap||e.lightVertexColor){var Q=e.dirLightMap&&e.useSpecular?"lightmapDirPS":"lightmapSinglePS";h+=this._addMap("light",Q,e,u,e.lightMapFormat),$=e.lightMapWithoutAmbient}$&&("ambientSH"===e.ambientSource?h+=u.ambientSHPS:"envAtlas"===e.ambientSource?h+=u.ambientEnvPS.replace(/\$DECODE/g,this._decodeFunc(e.ambientEncoding)):h+=u.ambientConstantPS),e.ambientTint&&!Z&&(h+="uniform vec3 material_ambient;\n"),e.alphaTest&&(h+=u.alphaTestPS),e.msdf&&(h+=u.msdfPS),a&&(h+=u.viewDirPS,e.useSpecular&&(h+=e.enableGGXSpecular?u.reflDirAnisoPS:u.reflDirPS));var J,tt=!1,et=!1,it=!1,nt=!1,st=!1;e.clusteredLightingEnabled&&i&&(nt=!0,tt=!0,et=!0,st=!0,h+=u.floatUnpackingPS,e.lightMaskDynamic&&(h+="\n#define CLUSTER_MESH_DYNAMIC_LIGHTS"),e.clusteredLightingCookiesEnabled&&(h+="\n#define CLUSTER_COOKIES"),e.clusteredLightingShadowsEnabled&&!e.noShadow&&(h+="\n#define CLUSTER_SHADOWS",h+="\n#define CLUSTER_SHADOW_TYPE_"+Ft[e.clusteredLightingShadowType]),e.clusteredLightingAreaLightsEnabled&&(h+="\n#define CLUSTER_AREALIGHTS"),h+=vn.shaderDefines,h+=u.clusteredLightShadowsPS,h+=u.clusteredLightPS),e.twoSidedLighting&&(h+="uniform float twoSidedLightingNegScaleFactor;\n"),h=this._fsAddStartCode(h,t,u,e),a&&(e.hasTangents||!t.extStandardDerivatives||e.fastTbn?e.twoSidedLighting?h+="\t dVertexNormalW = gl_FrontFacing ? vNormalW * twoSidedLightingNegScaleFactor : -vNormalW * twoSidedLightingNegScaleFactor;\n":h+="\t dVertexNormalW = vNormalW;\n":e.twoSidedLighting?h+="\t dVertexNormalW = normalize(gl_FrontFacing ? vNormalW * twoSidedLightingNegScaleFactor : -vNormalW * twoSidedLightingNegScaleFactor);\n":h+="\t dVertexNormalW = normalize(vNormalW);\n",(e.heightMap||e.normalMap)&&e.hasTangents&&(e.twoSidedLighting?(h+="\t dTangentW = gl_FrontFacing ? vTangentW * twoSidedLightingNegScaleFactor : -vTangentW * twoSidedLightingNegScaleFactor;\n",h+="\t dBinormalW = gl_FrontFacing ? vBinormalW * twoSidedLightingNegScaleFactor : -vBinormalW * twoSidedLightingNegScaleFactor;\n"):(h+="\t dTangentW = vTangentW;\n",h+="\t dBinormalW = vBinormalW;\n")));var at=!1;3!==e.blendType||e.alphaTest||e.alphaToCoverage?e.heightMap&&e.opacityMap?at=!0:(h+="\t getOpacity();\n",e.alphaTest&&(h+="\t alphaTest(dAlpha);\n")):h+="\t dAlpha = 1.0;\n";var rt=!1;if(a&&(h+="\t getViewDir();\n",(e.heightMap||e.normalMap||e.clearCoatNormalMap||e.enableGGXSpecular)&&(h+="\t getTBN();\n"),e.heightMap&&(h+="\t getParallax();\n"),at&&(h+="\t getOpacity();\n",e.alphaTest&&(h+="\t alphaTest(dAlpha);\n")),h+="\t getNormal();\n",e.useSpecular&&(i&&e.enableGGXSpecular&&(h+="\t getGlossiness();\n",rt=!0),h+="\t getReflDir();\n")),h+="\t getAlbedo();\n",e.clearCoat>0&&(h+="\t getClearCoat();\n",h+="\t getClearCoatGlossiness();\n",h+="\t getClearCoatNormal();\n"),(i&&e.useSpecular||n)&&(h+="\t getSpecularity();\n",rt||(h+="\t getGlossiness();\n"),z&&(h+="\t #ifdef AREA_LIGHTS\n",h+="\t dSpecularityNoFres = dSpecularity;\n",h+="\t #ifdef CLEARCOAT\n",h+="\t ccSpecularityNoFres = ccSpecularity;\n",h+="\t #endif\n",h+="\t #endif\n"),e.fresnelModel>0&&(h+="\t getFresnel();\n")),K&&(h+="\tgetAO();\n"),$&&(h+="\t addAmbient();\n",e.separateAmbient&&(h+="\n\t\t\t\t\t\t\t\t\t\tvec3 dAmbientLight = dDiffuseLight;\n\t\t\t\t\t\t\t\t\t\tdDiffuseLight = vec3(0);\n\t\t\t\t\t\t\t\t")),e.ambientTint&&!Z&&(h+="\t dDiffuseLight *= material_ambient;\n"),K&&!e.occludeDirect&&(h+="\t\toccludeDiffuse();\n"),(e.lightMap||e.lightVertexColor)&&(h+="\t addLightMap();\n"),i||n){n&&(e.clearCoat>0&&(h+="\t addReflectionCC();\n"),h+="\t addReflection();\n"),z&&(h+="\t ccReflection.rgb *= ccSpecularity;\n",h+="\t dReflection.rgb *= dSpecularity;\n",h+="\t dSpecularLight *= dSpecularity;\n",h+="\t float roughness = max((1.0 - dGlossiness) * (1.0 - dGlossiness), 0.001);\n",h+="\t calcLTCLightValues();\n");for(var ot=0;ot 0.00001) {\n",2===lt&&(J&&!ht._cookieFalloff||(h+="\t\t\t dAtten *= getSpotEffect(light"+ot+"_direction, light"+ot+"_innerConeAngle, light"+ot+"_outerConeAngle);\n",nt=!0))),h+=0!==ct?0===lt?"\t\t\t dAttenD = getLightDiffuse();\n":"\t\t\t dAttenD = get"+ut+"LightDiffuse() * 16.0;\n":"\t\t\t dAtten *= getLightDiffuse();\n",ht.castShadows&&!e.noShadow){var dt=null,ft=void 0;if(1===ht._shadowType?(dt="VSM8",ft="0.0"):2===ht._shadowType?(dt="VSM16",ft="5.54"):3===ht._shadowType?(dt="VSM32",ft=t.textureFloatHighPrecision?"15.0":"5.54"):dt=4===ht._shadowType?"PCF5x5":"PCF3x3",null!==dt)if(1===lt)r="(light"+ot+"_shadowMap, light"+ot+"_shadowParams);\n",ht._normalOffsetBias&&(h+="\t\t\t normalOffsetPointShadow(light"+ot+"_shadowParams);\n"),h+="\t\t\t dAtten *= getShadowPoint"+dt+r;else{var pt="light"+ot+"_shadowMatrix",mt="light"+ot+"_shadowParams";h+=this._nonPointShadowMapProjection(t,e.lights[ot],pt,mt,ot),2===lt&&(dt="Spot"+dt),h+="\t\t\t dAtten *= getShadow"+dt+"(light"+ot+"_shadowMap, light"+ot+"_shadowParams"+(ht._isVsm?", "+ft:"")+");\n"}}0!==ct?e.conserveEnergy&&e.useSpecular?h+="\t\t\t dDiffuseLight += mix((dAttenD * dAtten) * light"+ot+"_color"+(J?" * dAtten3":"")+", vec3(0), dLTCSpecFres);\n":h+="\t\t\t dDiffuseLight += (dAttenD * dAtten) * light"+ot+"_color"+(J?" * dAtten3":"")+";\n":z&&e.conserveEnergy&&e.useSpecular?h+="\t\t\t dDiffuseLight += mix(dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+", vec3(0), dSpecularity);\n":h+="\t\t\t dDiffuseLight += dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n",0!==ct?(e.clearCoat>0&&(h+="\t\t\t ccSpecularLight += ccLTCSpecFres * get"+ut+"LightSpecularCC() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n"),e.useSpecular&&(h+="\t\t\t dSpecularLight += dLTCSpecFres * get"+ut+"LightSpecular() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n")):z?(e.clearCoat>0&&(h+="\t\t\t ccSpecularLight += ccSpecularity * getLightSpecularCC() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n"),e.useSpecular&&(h+="\t\t\t dSpecularLight += dSpecularity * getLightSpecular() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n")):(e.clearCoat>0&&(h+="\t\t\t ccSpecularLight += getLightSpecularCC() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n"),e.useSpecular&&(h+="\t\t\t dSpecularLight += getLightSpecular() * dAtten * light"+ot+"_color"+(J?" * dAtten3":"")+";\n")),0!==lt&&(h+="\t }\n"),h+="\n"}}e.clusteredLightingEnabled&&i&&(et=!0,it=!0,tt=!0,h+="\t addClusteredLights();\n"),z&&(e.clearCoat>0&&(h+="\t ccSpecularity = 1.0;\n"),e.useSpecular&&(h+="\t dSpecularity = vec3(1);\n")),n&&e.refraction&&(h+="\t addRefraction();\n")}h+="\n",K&&(e.occludeDirect&&(h+="\t\toccludeDiffuse();\n"),e.occludeSpecular&&(h+="\t\toccludeSpecular();\n")),!1===e.opacityFadesSpecular&&(2!==e.blendType&&4!==e.blendType||(h+="float specLum = dot((dSpecularLight + dReflection.rgb * dReflection.a) * dSpecularity, vec3( 0.2126, 0.7152, 0.0722 ));\n",h+="#ifdef CLEARCOAT\n specLum += dot(ccSpecularLight * ccSpecularity + ccReflection.rgb * ccReflection.a * ccSpecularity, vec3( 0.2126, 0.7152, 0.0722 ));\n#endif\n",h+="dAlpha = clamp(dAlpha + gammaCorrectInput(specLum), 0.0, 1.0);\n"),h+="dAlpha *= material_alphaFade;\n"),h+=u.endPS,2===e.blendType||6===e.blendType||e.alphaToCoverage?h+=u.outputAlphaPS:4===e.blendType?h+=u.outputAlphaPremulPS:h+=u.outputAlphaOpaquePS,e.msdf&&(h+="\t gl_FragColor = applyMsdf(gl_FragColor);\n"),h+="\n",h+="}\n",tt&&(h=u.lightDirPointPS+h),et&&(h=u.falloffLinearPS+h),it&&(h=u.falloffInvSquaredPS+h),nt&&(h=u.spotPS+h),st&&(h=u.cookiePS+h);var _t="";return h.includes("dReflection")&&(_t+="vec4 dReflection;\n"),h.includes("dTBN")&&(_t+="mat3 dTBN;\n"),h.includes("dAlbedo")&&(_t+="vec3 dAlbedo;\n"),h.includes("dEmission")&&(_t+="vec3 dEmission;\n"),h.includes("dNormalW")&&(_t+="vec3 dNormalW;\n"),h.includes("dVertexNormalW")&&(_t+="vec3 dVertexNormalW;\n"),h.includes("dTangentW")&&(_t+="vec3 dTangentW;\n"),h.includes("dBinormalW")&&(_t+="vec3 dBinormalW;\n"),h.includes("dViewDirW")&&(_t+="vec3 dViewDirW;\n"),h.includes("dReflDirW")&&(_t+="vec3 dReflDirW;\n"),h.includes("dDiffuseLight")&&(_t+="vec3 dDiffuseLight;\n"),h.includes("dSpecularLight")&&(_t+="vec3 dSpecularLight;\n"),h.includes("dLightDirNormW")&&(_t+="vec3 dLightDirNormW;\n"),h.includes("dLightDirW")&&(_t+="vec3 dLightDirW;\n"),h.includes("dLightPosW")&&(_t+="vec3 dLightPosW;\n"),h.includes("dShadowCoord")&&(_t+="vec3 dShadowCoord;\n"),h.includes("dNormalMap")&&(_t+="vec3 dNormalMap;\n"),h.includes("dSpecularity")&&(_t+="vec3 dSpecularity;\n"),h.includes("dSpecularityNoFres")&&(_t+="vec3 dSpecularityNoFres;\n"),h.includes("dUvOffset")&&(_t+="vec2 dUvOffset;\n"),h.includes("dGlossiness")&&(_t+="float dGlossiness;\n"),h.includes("dAlpha")&&(_t+="float dAlpha;\n"),h.includes("dAtten")&&(_t+="float dAtten;\n"),h.includes("dAttenD")&&(_t+="float dAttenD;\n"),h.includes("dAtten3")&&(_t+="vec3 dAtten3;\n"),h.includes("dAo")&&(_t+="float dAo;\n"),h.includes("dMsdf")&&(_t+="vec4 dMsdf;\n"),h.includes("ccReflection")&&(_t+="vec4 ccReflection;\n"),h.includes("ccNormalW")&&(_t+="vec3 ccNormalW;\n"),h.includes("ccReflDirW")&&(_t+="vec3 ccReflDirW;\n"),h.includes("ccSpecularLight")&&(_t+="vec3 ccSpecularLight;\n"),h.includes("ccSpecularity")&&(_t+="float ccSpecularity;\n"),h.includes("ccSpecularityNoFres")&&(_t+="float ccSpecularityNoFres;\n"),h.includes("ccGlossiness")&&(_t+="float ccGlossiness;\n"),{attributes:d,vshader:R,fshader:h=D+_t+h,tag:1}}},Sn={begin:yi,dummyFragmentCode:vi,end:xi,fogCode:pi,gammaCode:di,precisionCode:_i,skinCode:mi,tonemapCode:fi,versionCode:gi,basic:Ri,particle:Ii,skybox:Li,standard:bn},wn=2.399963229728653,Tn=function(t,e,i){var n=e*wn,s=Math.sqrt(e)/Math.sqrt(i);t.x=s*Math.cos(n),t.y=s*Math.sin(n)},An=function(t,e,i,n,s){void 0===n&&(n=0),void 0===s&&(s=1),n=1-2*n,s=1-2*s;var a=ot.lerp(n,s,e/i),r=Math.sqrt(1-a*a),o=wn*e;t.x=Math.cos(o)*r,t.y=a,t.z=Math.sin(o)*r},Mn=function(t){var e=(t<<16|t>>>16)>>>0;return 2.3283064365386963e-10*(e=((16711935&(e=((252645135&(e=((858993459&(e=((1431655765&e)<<1|(2863311530&e)>>>1)>>>0))<<2|(3435973836&e)>>>2)>>>0))<<4|(4042322160&e)>>>4)>>>0))<<8|(4278255360&e)>>>8)>>>0)},Cn=function(t){switch(t.type){case We:return"RGBM";case He:return"RGBE";default:switch(t.format){case ee:case ne:case ie:case se:return"Linear";default:return"Gamma"}}},En=function(t){switch(t){case Ye:return"Cubemap";case Ke:return"Octahedral";default:return"Equirect"}},Pn=function(t,e,i){if(t<=0)e[i+0]=0,e[i+1]=0,e[i+2]=0,e[i+3]=0;else if(t>=1)e[i+0]=255,e[i+1]=0,e[i+2]=0,e[i+3]=0;else{var n=1*t%1,s=255*t%1,a=65025*t%1,r=16581375*t%1;n-=s/255,s-=a/255,a-=r/255,e[i+0]=Math.min(255,Math.floor(256*n)),e[i+1]=Math.min(255,Math.floor(256*s)),e[i+2]=Math.min(255,Math.floor(256*a)),e[i+3]=Math.min(255,Math.floor(256*r))}},Rn=function(t,e,i,n){var s=2*i*Math.PI,a=Math.pow(1-e,1/(n+1)),r=Math.sqrt(1-a*a);t.set(Math.cos(s)*r,Math.sin(s)*r,a).normalize()},In=function(t,e,i){var n=2*i*Math.PI,s=Math.sqrt(1-e),a=Math.sqrt(e);t.set(Math.cos(n)*a,Math.sin(n)*a,s).normalize()},Ln=function(t,e,i,n){var s=2*i*Math.PI,a=Math.sqrt((1-e)/(1+(n*n-1)*e)),r=Math.sqrt(1-a*a);t.set(Math.cos(s)*r,Math.sin(s)*r,a).normalize()},Dn=function(t,e){var i=t*e,n=e/(1-t*t+i*i);return n*n*(1/Math.PI)},kn={16:{2:26,8:20,32:17,128:16,512:16},32:{2:53,8:40,32:34,128:32,512:32},128:{2:214,8:163,32:139,128:130,512:128},1024:{2:1722,8:1310,32:1114,128:1041,512:1025}},On=function(t,e,i){for(var n=i/t,s=1-Math.log2(e)/11,a=s*s,r=new pt,o=new pt,h=new pt(0,0,1),l=[],c=function(t,e){var i=kn[t];return i&&i[e]||t}(t,e),u=0;u0){var f=Dn(Math.min(1,d),a)/4+.001,p=.5*Math.log2(n/f);l.push(o.x,o.y,o.z,p)}}for(;l.length<4*t;)l.push(0,0,0,0);return l},Fn=function(t,e,i){var n=function(t){for(var e=t.length,i=Math.min(e,512),n=Math.ceil(e/i),s=new Uint8Array(i*n*4),a=0,r=0;r>2*d),rect:l,seamPixels:h}),l.y+=l.w,l.z=Math.max(1,Math.floor(.5*l.z)),l.w=Math.max(1,Math.floor(.5*l.w))}return l.set(128*h,384*h,64*h,32*h),Xn(t,o,{numSamples:(null==(a=e)?void 0:a.numAmbientSamples)||2048,distribution:"lambert",rect:l,seamPixels:h}),o},t.generatePrefilteredAtlas=function(t,e){var i,n,s,a;void 0===e&&(e=null);for(var r,o=t[0].device,h=(null==(i=e)?void 0:i.target)||new Ui(o,{name:"envPrefilteredAtlas",width:(null==(n=e)?void 0:n.size)||512,height:(null==(s=e)?void 0:s.size)||512,format:7,type:We,projection:je,addressU:1,addressV:1,mipmaps:!1}),l=h.width/512,c=new gt(0,0,512*l,256*l),u=qn(512),d=0;d0,t.forceFragmentPrecision=i.forceFragmentPrecision||"",t.chunks=i.chunks||"",t.blendType=i.blendType,t.forceUv1=i.forceUv1,t.separateAmbient=!1,t.screenSpace=n&&0!=(n&Nt),t.skin=n&&0!=(2&n),t.useInstancing=n&&0!=(32&n),t.useMorphPosition=n&&0!=(n&Ut),t.useMorphNormal=n&&0!=(n&zt),t.useMorphTextureBased=n&&0!=(n&Vt),t.nineSlicedMode=i.nineSlicedMode||0,e.clusteredLightingEnabled&&(t.clusteredLightingEnabled=!0,t.clusteredLightingCookiesEnabled=e.lighting.cookiesEnabled,t.clusteredLightingShadowsEnabled=e.lighting.shadowsEnabled,t.clusteredLightingShadowType=e.lighting.shadowType,t.clusteredLightingAreaLightsEnabled=e.lighting.areaLightsEnabled)},e._updateUVOptions=function(t,e,i,n){var s=!1,a=!1,r=!1;for(var o in i&&(s=0!=(4&i),a=0!=(8&i),r=0!=(16&i)),t.vertexColors=!1,this._mapXForms=[],yn)this._updateTexOptions(t,e,o,s,a,r,n);this._mapXForms=null},e._updateMinOptions=function(t,e){t.opacityTint=1!==e.opacity&&3!==e.blendType,t.lights=[]},e._updateMaterialOptions=function(t,e){var i,n=(e.diffuseTint||!e.diffuseMap&&!e.diffuseVertexColor)&&Jn(e.diffuse),s=!!(e.useMetalness||e.specularMap||e.sphereMap||e.cubeMap||(i=e.specular,0!==i.r||0!==i.g||0!==i.b)||e.enableGGXSpecular||e.clearCoat>0),a=s&&!e.useMetalness&&(e.specularTint||!e.specularMap&&!e.specularVertexColor)&&Jn(e.specular),r=!e.emissiveMap||Jn(e.emissive)&&e.emissiveTint,o=1!==e.emissiveIntensity,h=!!e.normalMap&&(e.normalMap.format===te||e.normalMap.type===Xe);t.opacityTint=1!==e.opacity&&3!==e.blendType?1:0,t.blendMapsWithColors=!0,t.ambientTint=e.ambientTint,t.diffuseTint=n?2:0,t.specularTint=a?2:0,t.metalnessTint=e.useMetalness&&e.metalness<1?1:0,t.glossTint=1,t.emissiveTint=(r?2:0)+(o?1:0),t.alphaToCoverage=e.alphaToCoverage,t.normalizeNormalMap=e.normalizeNormalMap,t.ambientSH=!!e.ambientSH,t.useSpecular=s,t.emissiveFormat=e.emissiveMap?e.emissiveMap.type===We?1:e.emissiveMap.format===se?2:0:null,t.lightMapFormat=e.lightMap?e.lightMap.type===We?1:e.lightMap.format===se?2:0:null,t.specularAntialias=e.specularAntialias&&!!e.normalMap&&!!e.normalMap.mipmaps&&!h,t.conserveEnergy=e.conserveEnergy,t.opacityFadesSpecular=e.opacityFadesSpecular,t.alphaFade=e.alphaFade,t.occludeSpecular=e.occludeSpecular,t.occludeSpecularFloat=1!==e.occludeSpecularIntensity,t.occludeDirect=e.occludeDirect,t.shadingModel=e.shadingModel,t.fresnelModel=e.fresnelModel,t.packedNormal=h,t.fastTbn=e.fastTbn,t.cubeMapProjection=e.cubeMapProjection,t.customFragmentShader=e.customFragmentShader,t.refraction=!!e.refraction,t.useMetalness=e.useMetalness,t.enableGGXSpecular=e.enableGGXSpecular,t.msdf=!!e.msdfMap,t.twoSidedLighting=e.twoSidedLighting,t.pixelSnap=e.pixelSnap,t.aoMapUv=e.aoUvSet,t.diffuseDetail=!!e.diffuseMap,t.normalDetail=!!e.normalMap,t.diffuseDetailMode=e.diffuseDetailMode,t.detailModes=!!t.diffuseDetail,t.clearCoat=!!e.clearCoat,t.clearCoatTint=1!==e.clearCoat?1:0,t.clearCoatGlossiness=!!e.clearCoatGlossiness,t.clearCoatGlossTint=1!==e.clearCoatGlossiness?1:0},e._updateEnvOptions=function(t,e,i,n){t.fog=i.useFog?n.fog:"none",t.gamma=i.useGammaTonemap?n.gammaCorrection:0,t.toneMap=i.useGammaTonemap?n.toneMapping:-1,t.useRgbm=i.emissiveMap&&i.emissiveMap.type===We||i.lightMap&&i.lightMap.type===We,t.fixSeams=!!i.cubeMap&&i.cubeMap.fixCubemapSeams;var s=0===i.shadingModel,a=!1;if(i.envAtlas&&!s?(t.reflectionSource="envAtlas",t.reflectionEncoding=i.envAtlas.encoding):i.cubeMap?(t.reflectionSource="cubeMap",t.reflectionEncoding=i.cubeMap.encoding):i.sphereMap?(t.reflectionSource="sphereMap",t.reflectionEncoding=i.sphereMap.encoding):i.useSkybox&&n.envAtlas&&!s?(t.reflectionSource="envAtlas",t.reflectionEncoding=n.envAtlas.encoding,a=!0):(t.reflectionSource=null,t.reflectionEncoding=null),i.ambientSH&&!s)t.ambientSource="ambientSH",t.ambientEncoding=null;else{var r=i.envAtlas||(i.useSkybox&&n.envAtlas?n.envAtlas:null);r&&!s?(t.ambientSource="envAtlas",t.ambientEncoding=r.encoding):(t.ambientSource="constant",t.ambientEncoding=null)}t.skyboxIntensity=a&&1!==n.skyboxIntensity,t.useCubeMapRotation=a&&n.skyboxRotation&&!n.skyboxRotation.equals(Tt.IDENTITY)},e._updateLightOptions=function(t,e,i,n,s){if(t.lightMap=!1,t.lightMapChannel="",t.lightMapUv=0,t.lightMapTransform=0,t.lightMapWithoutAmbient=!1,t.dirLightMap=!1,i&&(t.noShadow=0!=(1&i),0!=(64&i)&&(t.lightMapFormat=1,t.lightMap=!0,t.lightMapChannel="rgb",t.lightMapUv=1,t.lightMapTransform=0,t.lightMapWithoutAmbient=!e.lightMap,t.useRgbm=!0,0!=(i&Bt)&&(t.dirLightMap=!0),0!=(i&Gt)&&(t.lightMapWithoutAmbient=!1))),e.useLighting){var a=[],r=i?i>>16:1;t.lightMaskDynamic=!!(1&r),n&&(this._collectLights(0,n[0],a,r),this._collectLights(1,n[1],a,r,s),this._collectLights(2,n[2],a,r,s)),t.lights=a}else t.lights=[];0===t.lights.length&&(t.noShadow=!0)},e._updateTexOptions=function(t,e,i,n,s,a,r){var o=i+"Map",h=i+"VertexColor",l=i+"VertexColorChannel",c=o+"Channel",u=o+"Transform",d=o+"Uv";"light"!==i&&(t[o]=!1,t[c]="",t[u]=0,t[d]=0),t[h]=!1,t[l]="";var f="opacity"===i;if((!f||3!==e.blendType||0!==e.alphaTest||e.alphaToCoverage)&&(!r||f)&&("height"!==i&&e[h]&&a&&(t[h]=e[h],t[l]=e[l],t.vertexColors=!0),e[o])){var p=!0;0!==e[d]||n||(p=!1),1!==e[d]||s||(p=!1),p&&(t[o]=!!e[o],t[u]=this._getMapTransformID(e.getUniform(u),e[d]),t[c]=e[c],t[d]=e[d])}},e._collectLights=function(t,e,i,n,s){for(var a=0;a0&&(this._setParameter("material_clearCoat",this.clearCoat),this._setParameter("material_clearCoatGlossiness",this.clearCoatGlossiness),this._setParameter("material_clearCoatReflectivity",this.clearCoat),this._setParameter("material_clearCoatBumpiness",this.clearCoatBumpiness)),this._setParameter("material_shininess",n("shininess")),this.emissiveMap&&!this.emissiveTint||this._setParameter("material_emissive",n("emissive")),1!==this.emissiveIntensity&&this._setParameter("material_emissiveIntensity",this.emissiveIntensity),this.refraction>0&&(this._setParameter("material_refraction",this.refraction),this._setParameter("material_refractionIndex",this.refractionIndex)),this._setParameter("material_opacity",this.opacity),!1===this.opacityFadesSpecular&&this._setParameter("material_alphaFade",this.alphaFade),this.occludeSpecular&&this._setParameter("material_occludeSpecularIntensity",this.occludeSpecularIntensity),1===this.cubeMapProjection&&this._setParameter(n("cubeMapProjectionBox")),yn)this._updateMap(s);this.ambientSH&&this._setParameter("ambientSH[0]",this.ambientSH),this.normalMap&&this._setParameter("material_bumpiness",this.bumpiness),this.normalMap&&this.normalDetailMap&&this._setParameter("material_normalDetailMapBumpiness",this.normalDetailMapBumpiness),this.heightMap&&this._setParameter("material_heightMapFactor",n("heightMapFactor")),this.cubeMap&&this._setParameter("texture_cubeMap",this.cubeMap),this.sphereMap&&this._setParameter("texture_sphereMap",this.sphereMap),this._setParameter("material_reflectivity",this.reflectivity),this._processParameters("_activeParams"),this._dirtyShader&&(this.shader=null,this.clearVariants())},i.updateEnvUniforms=function(t,e){var i=this.envAtlas||(this.useSkybox?e.envAtlas:null);i&&(this._setParameter("texture_envAtlas",i),this.useSkybox&&!e.skyboxRotation.equals(Tt.IDENTITY)&&e._skyboxRotationMat3&&this._setParameter("cubeMapRotationMatrix",e._skyboxRotationMat3.data)),this._processParameters("_activeLightingParams")},i.updateShader=function(t,e,i,n,s,a){this.updateEnvUniforms(t,e);var r=s>1&&s<=Wt,o=r?bn.optionsContextMin:bn.optionsContext;r?this.shaderOptBuilder.updateMinRef(o,t,e,this,i,n,s,a):this.shaderOptBuilder.updateRef(o,t,e,this,i,n,s,a),this.onUpdateShader&&(o=this.onUpdateShader(o));var h=t.getProgramLibrary();this.shader=h.getProgram("standard",o),i||(this.clearVariants(),this.variants[0]=this.shader),this._dirtyShader=!1},i.destroy=function(){for(var e in this._assetReferences)this._assetReferences[e]._unbind();this._assetReferences=null,t.prototype.destroy.call(this)},q(e,[{key:"chunks",get:function(){return this._dirtyShader=!0,this._chunks},set:function(t){this._dirtyShader=!0,this._chunks=t}}]),e}($n);ls.TEXTURE_PARAMETERS=is,ls.CUBEMAP_PARAMETERS=ss;var cs=function(t,e){os[t]=e},us=function(t,e,i,n){Object.defineProperty(ls.prototype,t,{get:n||function(){return this["_"+t]},set:i}),rs[t]={value:e}},ds=function(t){return t.defaultValue&&t.defaultValue.clone?function(t){var e="_"+t.name,i=t.dirtyShaderFunc||function(){return!0};us(t.name,(function(){return t.defaultValue.clone()}),(function(t){var n=this[e];n.equals(t)||(this._dirtyShader=this._dirtyShader||i(n,t),this[e]=n.copy(t))}),t.getterFunc)}(t):function(t){var e="_"+t.name,i=t.dirtyShaderFunc||function(){return!0};us(t.name,(function(){return t.defaultValue}),(function(t){var n=this[e];n!==t&&(this._dirtyShader=this._dirtyShader||i(n,t),this[e]=t)}),t.getterFunc)}(t)};function fs(t,e,i,n,s,a){yn[t]=i,ds({name:t+"Map",defaultValue:null,dirtyShaderFunc:function(t,e){return!!t!=!!e||t&&(t.type!==e.type||t.fixCubemapSeams!==e.fixCubemapSeams||t.format!==e.format)}}),ds({name:t+"MapTiling",defaultValue:new _t(1,1)}),ds({name:t+"MapOffset",defaultValue:new _t(0,0)}),ds({name:t+"MapRotation",defaultValue:0}),ds({name:t+"MapUv",defaultValue:e}),i>0&&ds({name:t+"MapChannel",defaultValue:n||(i>1?"rgb":"g")}),s&&(ds({name:t+"VertexColor",defaultValue:!1}),i>0&&ds({name:t+"VertexColorChannel",defaultValue:n||(i>1?"rgb":"g")})),a&&ds({name:t+"Mode",defaultValue:"mul"});var r=t+"MapTiling",o=t+"MapOffset",h=t+"MapRotation",l=t+"MapTransform";cs(l,(function(t,e,i){var n=t[r],s=t[o],a=t[h];if(1===n.x&&1===n.y&&0===s.x&&0===s.y&&0===a)return null;var c=t._allocUniform(l,(function(){return[{name:"texture_"+l+"0",value:new Float32Array(3)},{name:"texture_"+l+"1",value:new Float32Array(3)}]})),u=Math.cos(a*ot.DEG_TO_RAD),d=Math.sin(a*ot.DEG_TO_RAD),f=c[0].value;f[0]=u*n.x,f[1]=-d*n.y,f[2]=s.x;var p=c[1].value;return p[0]=d*n.x,p[1]=u*n.y,p[2]=1-n.y-s.y,c}))}function ps(t,e){ds({name:t,defaultValue:e,getterFunc:function(){return this._dirtyShader=!0,this["_"+t]}}),cs(t,(function(e,i,n){var s=e._allocUniform(t,(function(){return new Float32Array(3)})),a=e[t];return e.useGammaTonemap&&n.gammaCorrection?(s[0]=Math.pow(a.r,2.2),s[1]=Math.pow(a.g,2.2),s[2]=Math.pow(a.b,2.2)):(s[0]=a.r,s[1]=a.g,s[2]=a.b),s}))}function ms(t,e,i){ds({name:t,defaultValue:e,dirtyShaderFunc:function(t,e){return(0===t||1===t)!=(0===e||1===e)}}),cs(t,i)}function _s(t,e){ds({name:t,defaultValue:null,dirtyShaderFunc:function(t,e){return!!t==!!e}}),cs(t,e)}function gs(t,e){ds({name:t,defaultValue:e})}!function(){ps("ambient",new ct(.7,.7,.7)),ps("diffuse",new ct(1,1,1)),ps("specular",new ct(0,0,0)),ps("emissive",new ct(0,0,0)),ms("emissiveIntensity",1),ms("shininess",25,(function(t,e,i){return 0===t.shadingModel?Math.pow(2,.01*t.shininess*11):.01*t.shininess})),ms("heightMapFactor",1,(function(t,e,i){return.025*t.heightMapFactor})),ms("opacity",1),ms("alphaFade",1),ms("alphaTest",0),ms("bumpiness",1),ms("normalDetailMapBumpiness",1),ms("reflectivity",1),ms("occludeSpecularIntensity",1),ms("refraction",0),ms("refractionIndex",1/1.5),ms("metalness",1),ms("anisotropy",0),ms("clearCoat",0),ms("clearCoatGlossiness",1),ms("clearCoatBumpiness",1),ms("aoUvSet",0,null),_s("ambientSH"),_s("cubeMapProjectionBox",(function(t,e,i){var n=t._allocUniform("cubeMapProjectionBox",(function(){return[{name:"envBoxMin",value:new Float32Array(3)},{name:"envBoxMax",value:new Float32Array(3)}]})),s=t.cubeMapProjectionBox.getMin(),a=n[0].value;a[0]=s.x,a[1]=s.y,a[2]=s.z;var r=t.cubeMapProjectionBox.getMax(),o=n[1].value;return o[0]=r.x,o[1]=r.y,o[2]=r.z,n})),gs("ambientTint",!1),gs("diffuseTint",!1),gs("specularTint",!1),gs("emissiveTint",!1),gs("fastTbn",!1),gs("specularAntialias",!1),gs("useMetalness",!1),gs("enableGGXSpecular",!1),gs("occludeDirect",!1),gs("normalizeNormalMap",!0),gs("conserveEnergy",!0),gs("opacityFadesSpecular",!0),gs("occludeSpecular",1),gs("shadingModel",1),gs("fresnelModel",2),gs("cubeMapProjection",0),gs("customFragmentShader",null),gs("forceFragmentPrecision",null),gs("useFog",!0),gs("useLighting",!0),gs("useGammaTonemap",!0),gs("useSkybox",!0),gs("forceUv1",!1),gs("pixelSnap",!1),gs("twoSidedLighting",!1),gs("nineSlicedMode",void 0),fs("diffuse",0,3,"",!0),fs("specular",0,3,"",!0),fs("emissive",0,3,"",!0),fs("normal",0,-1,"",!1),fs("metalness",0,1,"",!0),fs("gloss",0,1,"",!0),fs("opacity",0,1,"a",!0),fs("height",0,1,"",!1),fs("ao",0,1,"",!0),fs("light",1,3,"",!0),fs("msdf",0,3,"",!1),fs("diffuseDetail",0,3,"",!1,!0),fs("normalDetail",0,-1,"",!1),fs("clearCoat",0,1,"",!0),fs("clearCoatGloss",0,1,"",!0),fs("clearCoatNormal",0,-1,"",!1),_s("cubeMap"),_s("sphereMap"),_s("envAtlas");var t=[null,null,null,null,null,null];us("prefilteredCubemaps",(function(){return t.slice()}),(function(t){var e=this._prefilteredCubemaps;t=t||[];for(var i=!1,n=!0,s=0;s<6;++s){var a=t[s]||null;e[s]!==a&&(e[s]=a,i=!0),n=n&&!!e[s]}i&&(n?this.envAtlas=Yn.generatePrefilteredAtlas(e,{target:this.envAtlas}):this.envAtlas&&(this.envAtlas.destroy(),this.envAtlas=null),this._dirtyShader=!0)}),(function(){return this._prefilteredCubemaps}))}();var vs=function(){function t(t){this._device=t,this._cache={},this._generators={},this._isClearingCache=!1,this._precached=!1,this._programsCollection=[],this._defaultStdMatOption={},this._defaultStdMatOptionMin={};var e=new ls;e.shaderOptBuilder.updateRef(this._defaultStdMatOption,t,{},e,null,[],0,null,null),e.shaderOptBuilder.updateMinRef(this._defaultStdMatOptionMin,t,{},e,null,[],3,null,null)}var e=t.prototype;return e.register=function(t,e){this.isRegistered(t)||(this._generators[t]=e)},e.unregister=function(t){this.isRegistered(t)&&delete this._generators[t]},e.isRegistered=function(t){return void 0!==this._generators[t]},e.getProgram=function(t,e){var i=this._generators[t];if(void 0===i)return null;var n=this._device,s=i.generateKey(e),a=this._cache[s];if(!a){var r;e.lights&&(r=e.lights,e.lights=r.map((function(t){var e=t.clone?t.clone():t;return e.key=t.key,e}))),this.storeNewProgram(t,e),e.lights&&(e.lights=r),this._precached&&console.warn("ProgramLibrary#getProgram: Cache miss for shader "+t+" key "+s+" after shaders precaching");var o=i.createShaderDefinition(n,e);a=this._cache[s]=new ci(n,o)}return a},e.storeNewProgram=function(t,e){var i={};if("standard"===t){var n=this._getDefaultStdMatOptions(e.pass);for(var s in e)(e.hasOwnProperty(s)&&n[s]!==e[s]||"pass"===s)&&(i[s]=e[s])}else i=e;this._programsCollection.push(JSON.stringify({name:t,options:i}))},e.dumpPrograms=function(){var t="let device = pc.app ? pc.app.graphicsDevice : pc.Application.getApplication().graphicsDevice;\n";t+="let shaders = [",this._programsCollection[0]&&(t+="\n\t"+this._programsCollection[0]);for(var e=1;e1&&t<=Wt?this._defaultStdMatOptionMin:this._defaultStdMatOption},e.precompile=function(t){if(t)for(var e=new Array(t.length),i=0;ie)if(ArrayBuffer.isView(t))t=t.subarray(0,e),i.set(t);else for(var n=0;nthis.vertexBuffer.numVertices&&(i=this.vertexBuffer.numVertices);var s=n.numComponents;if(this.vertexBuffer.getFormat().interleaved)for(var a=0,r=0;ri*s){var o=i*s;if(ArrayBuffer.isView(e))e=e.subarray(0,o),n.array.set(e);else for(var h=0;h<=|&+-]/g,ia=function(){function t(){}return t.run=function(t){return t=(t=t.replace(/\/\*[\s\S]*?\*\/|([^\\:]|^)\/\/.*$/gm,"$1")).split(/\r?\n/).map((function(t){return t.trimEnd()})).join("\n"),null!==(t=this._preprocess(t))&&(t=(t=t.split(/\r?\n/).map((function(t){return""===t.trim()?"":t})).join("\n")).replace(/(\n\n){3,}/gm,"\n\n")),t},t._preprocess=function(e){for(var i,n=e,s=[],a=!1,r=new Map;null!==(i=js.exec(e));){var o=i[1];switch(o){case"define":Ks.lastIndex=i.index;var h=Ks.exec(e);a||(a=null===h);var l=h[1];Js.lastIndex=h.index;var c=Js.exec(l)[1],u=l.substring(c.length).trim();""===u&&(u="true"),t._keep(s)&&r.set(c,u),js.lastIndex=h.index+h[0].length;break;case"undef":Zs.lastIndex=i.index;var d=Zs.exec(e),f=d[1].trim();t._keep(s)&&r.delete(f),js.lastIndex=d.index+d[0].length;break;case"ifdef":case"ifndef":case"if":$s.lastIndex=i.index;var p=$s.exec(e),m=p[2],_=t.evaluate(m,r);a||(a=_.error);var g=_.result;"ifndef"===o&&(g=!g),s.push({anyKeep:g,keep:g,start:i.index,end:$s.lastIndex}),js.lastIndex=p.index+p[0].length;break;case"endif":case"else":case"elif":Qs.lastIndex=i.index;var v=Qs.exec(e),y=s.pop(),x=y.keep?e.substring(y.end,i.index):"";e=e.substring(0,y.start)+x+e.substring(Qs.lastIndex),js.lastIndex=y.start+x.length;var b=v[1];if("else"===b||"elif"===b){var S=!1;if(!y.anyKeep)if("else"===b)S=!y.keep;else{var w=t.evaluate(v[2],r);S=w.result,a||(a=w.error)}s.push({anyKeep:y.anyKeep||S,keep:S,start:js.lastIndex,end:js.lastIndex})}}}return a?(console.warn("Failed to preprocess shader: ",{source:n}),n):e},t._keep=function(t){for(var e=0;ee||n>e){var s=e/Math.max(i,n),a=Math.floor(i*s),r=Math.floor(n*s),o=document.createElement("canvas");return o.width=a,o.height=r,o.getContext("2d").drawImage(t,0,0,i,n,0,0,a,r),o}return t}var ra=function(){function t(){this._glTexture=null,this._glTarget=void 0,this._glFormat=void 0,this._glInternalFormat=void 0,this._glPixelType=void 0}var e=t.prototype;return e.destroy=function(t){if(this._glTexture){for(var e=0;et.maxCubeMapSize||h.height>t.maxCubeMapSize)&&(h=aa(h,t.maxCubeMapSize),0===a&&(e._width=h.width,e._height=h.height)),t.setUnpackFlipY(!1),t.setUnpackPremultiplyAlpha(e._premultiplyAlpha),i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+o,a,this._glInternalFormat,this._glFormat,this._glPixelType,h)}}else for(s=1/Math.pow(2,a),o=0;o<6;o++)if(e._levelsUpdated[0][o]){var l=n[o];e._compressed?i.compressedTexImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+o,a,this._glInternalFormat,Math.max(e._width*s,1),Math.max(e._height*s,1),0,l):(t.setUnpackFlipY(!1),t.setUnpackPremultiplyAlpha(e._premultiplyAlpha),i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+o,a,this._glInternalFormat,Math.max(e._width*s,1),Math.max(e._height*s,1),0,this._glFormat,this._glPixelType,l))}}else e._volume?(s=1/Math.pow(2,a),e._compressed?i.compressedTexImage3D(i.TEXTURE_3D,a,this._glInternalFormat,Math.max(e._width*s,1),Math.max(e._height*s,1),Math.max(e._depth*s,1),0,n):(t.setUnpackFlipY(!1),t.setUnpackPremultiplyAlpha(e._premultiplyAlpha),i.texImage3D(i.TEXTURE_3D,a,this._glInternalFormat,Math.max(e._width*s,1),Math.max(e._height*s,1),Math.max(e._depth*s,1),0,this._glFormat,this._glPixelType,n))):(t._isBrowserInterface(n)?(n instanceof HTMLImageElement&&(n.width>t.maxTextureSize||n.height>t.maxTextureSize)&&(n=aa(n,t.maxTextureSize),0===a&&(e._width=n.width,e._height=n.height)),t.setUnpackFlipY(e._flipY),t.setUnpackPremultiplyAlpha(e._premultiplyAlpha),i.texImage2D(i.TEXTURE_2D,a,this._glInternalFormat,this._glFormat,this._glPixelType,n)):(s=1/Math.pow(2,a),e._compressed?i.compressedTexImage2D(i.TEXTURE_2D,a,this._glInternalFormat,Math.max(Math.floor(e._width*s),1),Math.max(Math.floor(e._height*s),1),0,n):(t.setUnpackFlipY(!1),t.setUnpackPremultiplyAlpha(e._premultiplyAlpha),i.texImage2D(i.TEXTURE_2D,a,this._glInternalFormat,Math.max(e._width*s,1),Math.max(e._height*s,1),0,this._glFormat,this._glPixelType,n))),e._mipmapsUploaded=0!==a);a++}else a++;if(e._needsUpload)if(e._cubemap)for(var c=0;c<6;c++)e._levelsUpdated[0][c]=!1;else e._levelsUpdated[0]=!1;!e._compressed&&e._mipmaps&&e._needsMipmapsUpload&&(e.pot||t.webgl2)&&1===e._levels.length&&(i.generateMipmap(this._glTarget),e._mipmapsUploaded=!0),e._gpuSize&&e.adjustVramSizeTracking(t._vram,-e._gpuSize),e._gpuSize=e.gpuSize,e.adjustVramSizeTracking(t._vram,e._gpuSize)}},t}(),oa=function(){function t(){this._glFrameBuffer=null,this._glDepthBuffer=null,this._glResolveFrameBuffer=null,this._glMsaaColorBuffer=null,this._glMsaaDepthBuffer=null}var e=t.prototype;return e.destroy=function(t){var e=t.gl;this._glFrameBuffer&&(e.deleteFramebuffer(this._glFrameBuffer),this._glFrameBuffer=null),this._glDepthBuffer&&(e.deleteRenderbuffer(this._glDepthBuffer),this._glDepthBuffer=null),this._glResolveFrameBuffer&&(e.deleteFramebuffer(this._glResolveFrameBuffer),this._glResolveFrameBuffer=null),this._glMsaaColorBuffer&&(e.deleteRenderbuffer(this._glMsaaColorBuffer),this._glMsaaColorBuffer=null),this._glMsaaDepthBuffer&&(e.deleteRenderbuffer(this._glMsaaDepthBuffer),this._glMsaaDepthBuffer=null)},e.init=function(t,e){var i=t.gl;this._glFrameBuffer=i.createFramebuffer(),t.setFramebuffer(this._glFrameBuffer);var n=e._colorBuffer;n&&(n.impl._glTexture||(n._width=Math.min(n.width,t.maxRenderBufferSize),n._height=Math.min(n.height,t.maxRenderBufferSize),t.setTexture(n,0)),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,n._cubemap?i.TEXTURE_CUBE_MAP_POSITIVE_X+e._face:i.TEXTURE_2D,n.impl._glTexture,0));var s=e._depthBuffer;if(s)s.impl._glTexture||(s._width=Math.min(s.width,t.maxRenderBufferSize),s._height=Math.min(s.height,t.maxRenderBufferSize),t.setTexture(s,0)),e._stencil?i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,s._cubemap?i.TEXTURE_CUBE_MAP_POSITIVE_X+e._face:i.TEXTURE_2D,e._depthBuffer.impl._glTexture,0):i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,s._cubemap?i.TEXTURE_CUBE_MAP_POSITIVE_X+e._face:i.TEXTURE_2D,e._depthBuffer.impl._glTexture,0);else if(e._depth){if(!(e._samples>1&&t.webgl2)){if(this._glDepthBuffer||(this._glDepthBuffer=i.createRenderbuffer()),i.bindRenderbuffer(i.RENDERBUFFER,this._glDepthBuffer),e._stencil)i.renderbufferStorage(i.RENDERBUFFER,i.DEPTH_STENCIL,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.RENDERBUFFER,this._glDepthBuffer);else{var a=t.webgl2?i.DEPTH_COMPONENT32F:i.DEPTH_COMPONENT16;i.renderbufferStorage(i.RENDERBUFFER,a,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.RENDERBUFFER,this._glDepthBuffer)}i.bindRenderbuffer(i.RENDERBUFFER,null)}}t.webgl2&&e._samples>1&&(this._glResolveFrameBuffer=this._glFrameBuffer,this._glFrameBuffer=i.createFramebuffer(),t.setFramebuffer(this._glFrameBuffer),n&&(this._glMsaaColorBuffer||(this._glMsaaColorBuffer=i.createRenderbuffer()),i.bindRenderbuffer(i.RENDERBUFFER,this._glMsaaColorBuffer),i.renderbufferStorageMultisample(i.RENDERBUFFER,e._samples,n.impl._glInternalFormat,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.RENDERBUFFER,this._glMsaaColorBuffer)),e._depth&&(this._glMsaaDepthBuffer||(this._glMsaaDepthBuffer=i.createRenderbuffer()),i.bindRenderbuffer(i.RENDERBUFFER,this._glMsaaDepthBuffer),e._stencil?(i.renderbufferStorageMultisample(i.RENDERBUFFER,e._samples,i.DEPTH24_STENCIL8,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_STENCIL_ATTACHMENT,i.RENDERBUFFER,this._glMsaaDepthBuffer)):(i.renderbufferStorageMultisample(i.RENDERBUFFER,e._samples,i.DEPTH_COMPONENT32F,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.RENDERBUFFER,this._glMsaaDepthBuffer))))},e._checkFbo=function(t){var e=t.gl;switch(e.checkFramebufferStatus(e.FRAMEBUFFER)){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:console.error("ERROR: FRAMEBUFFER_INCOMPLETE_ATTACHMENT");break;case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:console.error("ERROR: FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT");break;case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:console.error("ERROR: FRAMEBUFFER_INCOMPLETE_DIMENSIONS");break;case e.FRAMEBUFFER_UNSUPPORTED:console.error("ERROR: FRAMEBUFFER_UNSUPPORTED");case e.FRAMEBUFFER_COMPLETE:}},e.loseContext=function(){this._glFrameBuffer=null,this._glDepthBuffer=null,this._glResolveFrameBuffer=null,this._glMsaaColorBuffer=null,this._glMsaaDepthBuffer=null},e.resolve=function(t,e,i,n){if(t.webgl2){var s=t.gl;s.bindFramebuffer(s.READ_FRAMEBUFFER,this._glFrameBuffer),s.bindFramebuffer(s.DRAW_FRAMEBUFFER,this._glResolveFrameBuffer),s.blitFramebuffer(0,0,e.width,e.height,0,0,e.width,e.height,(i?s.COLOR_BUFFER_BIT:0)|(n?s.DEPTH_BUFFER_BIT:0),s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,this._glFrameBuffer)}},t}();function ha(t,e){var i=!0,n=t.createTexture();t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,2,2,0,t.RGBA,e,null);var s=t.createFramebuffer();return t.bindFramebuffer(t.FRAMEBUFFER,s),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,n,0),t.checkFramebufferStatus(t.FRAMEBUFFER)!==t.FRAMEBUFFER_COMPLETE&&(i=!1),t.bindTexture(t.TEXTURE_2D,null),t.deleteTexture(n),t.bindFramebuffer(t.FRAMEBUFFER,null),t.deleteFramebuffer(s),i}var la,ca=function(t){function e(e,i){var n;void 0===i&&(i={}),(n=t.call(this,e)||this).gl=void 0,n.webgl2=void 0,n.defaultFramebuffer=null,n.defaultFramebufferAlpha=i.alpha,n.updateClientRect(),n.contextLost=!1,n._contextLostHandler=function(t){t.preventDefault(),n.contextLost=!0,n.loseContext(),n.fire("devicelost")},n._contextRestoredHandler=function(){n.restoreContext(),n.contextLost=!1,n.fire("devicerestored")},i.stencil=!0,i.powerPreference||(i.powerPreference="high-performance");var s="undefined"!=typeof navigator&&navigator.userAgent;n.forceDisableMultisampling=s&&s.includes("AppleWebKit")&&(s.includes("15.4")||s.includes("15_4")),n.forceDisableMultisampling&&(i.antialias=!1);for(var a=void 0===i.preferWebGl2||i.preferWebGl2?["webgl2","webgl","experimental-webgl"]:["webgl","experimental-webgl"],r=null,o=0;o0;var _=n.vertexUniformsCount;return _-=16,_-=8,_-=1,_-=16,n.boneLimit=Math.floor(_/3),n.boneLimit=Math.min(n.boneLimit,128),"Mali-450 MP"===n.unmaskedRenderer&&(n.boneLimit=34),n.constantTexSource=n.scope.resolve("source"),n.textureBias=n.scope.resolve("textureBias"),n.textureBias.setValue(0),n.extTextureFloat?n.webgl2?n.textureFloatRenderable=!!n.extColorBufferFloat:n.textureFloatRenderable=ha(r,r.FLOAT):n.textureFloatRenderable=!1,n.extColorBufferHalfFloat?n.textureHalfFloatRenderable=!!n.extColorBufferHalfFloat:n.extTextureHalfFloat?n.webgl2?n.textureHalfFloatRenderable=!!n.extColorBufferFloat:n.textureHalfFloatRenderable=ha(r,n.extTextureHalfFloat.HALF_FLOAT_OES):n.textureHalfFloatRenderable=!1,n.supportsMorphTargetTexturesCore="highp"===n.maxPrecision&&n.maxVertexTextures>=2,n._textureFloatHighPrecision=void 0,n._textureHalfFloatUpdatable=void 0,n.areaLightLutFormat=7,n.extTextureHalfFloat&&n.textureHalfFloatUpdatable&&n.extTextureHalfFloatLinear?n.areaLightLutFormat=ie:n.extTextureFloat&&n.extTextureFloatLinear&&(n.areaLightLutFormat=se),n}j(e,t);var i=e.prototype;return i.destroy=function(){t.prototype.destroy.call(this);var e=this.gl;this.webgl2&&this.feedback&&e.deleteTransformFeedback(this.feedback),this.clearShaderCache(),this.clearVertexArrayObjectCache(),this.canvas.removeEventListener("webglcontextlost",this._contextLostHandler,!1),this.canvas.removeEventListener("webglcontextrestored",this._contextRestoredHandler,!1),this._contextLostHandler=null,this._contextRestoredHandler=null,this.gl=null,t.prototype.postDestroy.call(this)},i.createVertexBufferImpl=function(t,e){return new qs},i.createIndexBufferImpl=function(t){return new Ys(t)},i.createShaderImpl=function(t){return new sa(t)},i.createTextureImpl=function(){return new ra},i.createRenderTargetImpl=function(t){return new oa},i.getPrecision=function(){var t=this.gl,e="highp";if(t.getShaderPrecisionFormat){var i=t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT),n=t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT),s=t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT),a=t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT),r=i.precision>0&&s.precision>0,o=n.precision>0&&a.precision>0;r||(e=o?"mediump":"lowp")}return e},i.initializeExtensions=function(){var t=this.gl,e=t.getSupportedExtensions(),i=function(){for(var i=0;i1&&e.autoResolve&&e.resolve()}},i.setUnpackFlipY=function(t){if(this.unpackFlipY!==t){this.unpackFlipY=t;var e=this.gl;e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,t)}},i.setUnpackPremultiplyAlpha=function(t){if(this.unpackPremultiplyAlpha!==t){this.unpackPremultiplyAlpha=t;var e=this.gl;e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t)}},i.activeTexture=function(t){this.textureUnit!==t&&(this.gl.activeTexture(this.gl.TEXTURE0+t),this.textureUnit=t)},i.bindTexture=function(t){var e=t.impl,i=e._glTarget,n=e._glTexture,s=this.textureUnit,a=this.targetToSlot[i];this.textureUnits[s][a]!==n&&(this.gl.bindTexture(i,n),this.textureUnits[s][a]=n)},i.bindTextureOnUnit=function(t,e){var i=t.impl,n=i._glTarget,s=i._glTexture,a=this.targetToSlot[n];this.textureUnits[e][a]!==s&&(this.activeTexture(e),this.gl.bindTexture(n,s),this.textureUnits[e][a]=s)},i.setTextureParameters=function(t){var e=this.gl,i=t._parameterFlags,n=t.impl._glTarget;if(1&i){var s=t._minFilter;(!t.pot&&!this.webgl2||!t._mipmaps||t._compressed&&1===t._levels.length)&&(2===s||3===s?s=0:4!==s&&5!==s||(s=1)),e.texParameteri(n,e.TEXTURE_MIN_FILTER,this.glFilter[s])}if(2&i&&e.texParameteri(n,e.TEXTURE_MAG_FILTER,this.glFilter[t._magFilter]),4&i&&(this.webgl2?e.texParameteri(n,e.TEXTURE_WRAP_S,this.glAddress[t._addressU]):e.texParameteri(n,e.TEXTURE_WRAP_S,this.glAddress[t.pot?t._addressU:1])),8&i&&(this.webgl2?e.texParameteri(n,e.TEXTURE_WRAP_T,this.glAddress[t._addressV]):e.texParameteri(n,e.TEXTURE_WRAP_T,this.glAddress[t.pot?t._addressV:1])),16&i&&this.webgl2&&e.texParameteri(n,e.TEXTURE_WRAP_R,this.glAddress[t._addressW]),32&i&&this.webgl2&&e.texParameteri(n,e.TEXTURE_COMPARE_MODE,t._compareOnRead?e.COMPARE_REF_TO_TEXTURE:e.NONE),64&i&&this.webgl2&&e.texParameteri(n,e.TEXTURE_COMPARE_FUNC,this.glComparison[t._compareFunc]),128&i){var a=this.extTextureFilterAnisotropic;a&&e.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.max(1,Math.min(Math.round(t._anisotropy),this.maxAnisotropy)))}},i.setTexture=function(t,e){t.impl._glTexture||t.impl.initialize(this,t),t._parameterFlags>0||t._needsUpload||t._needsMipmapsUpload?(this.activeTexture(e),this.bindTexture(t),t._parameterFlags&&(this.setTextureParameters(t),t._parameterFlags=0),(t._needsUpload||t._needsMipmapsUpload)&&(t.impl.upload(this,t),t._needsUpload=!1,t._needsMipmapsUpload=!1)):this.bindTextureOnUnit(t,e)},i.createVertexArray=function(t){var e,i,n=t.length>1;if(n){e="";for(var s=0;s0?u.drawElementsInstanced(b,S,T,A,e):u.drawElements(b,S,T,A)}else{var M=t.base;e>0?u.drawArraysInstanced(b,M,S,e):u.drawArrays(b,M,S)}this.webgl2&&this.transformFeedbackBuffer&&(u.endTransformFeedback(),u.bindBufferBase(u.TRANSFORM_FEEDBACK_BUFFER,0,null)),this._drawCallsPerFrame++}},i.clear=function(t){var e=this.defaultClearOptions,i=null==(t=t||e).flags?e.flags:t.flags;if(0!==i){var n=this.gl;if(1&i){var s=null==t.color?e.color:t.color;this.setClearColor(s[0],s[1],s[2],s[3])}if(2&i){var a=null==t.depth?e.depth:t.depth;this.setClearDepth(a),this.depthWrite||n.depthMask(!0)}if(4&i){var r=null==t.stencil?e.stencil:t.stencil;this.setClearStencil(r)}n.clear(this.glClearFlag[i]),2&i&&(this.depthWrite||n.depthMask(!1))}},i.readPixels=function(t,e,i,n,s){var a=this.gl;a.readPixels(t,e,i,n,a.RGBA,a.UNSIGNED_BYTE,s)},i.setClearDepth=function(t){t!==this.clearDepth&&(this.gl.clearDepth(t),this.clearDepth=t)},i.setClearColor=function(t,e,i,n){var s=this.clearColor;t===s.r&&e===s.g&&i===s.b&&n===s.a||(this.gl.clearColor(t,e,i,n),this.clearColor.set(t,e,i,n))},i.setClearStencil=function(t){t!==this.clearStencil&&(this.gl.clearStencil(t),this.clearStencil=t)},i.getDepthTest=function(){return this.depthTest},i.setDepthTest=function(t){if(this.depthTest!==t){var e=this.gl;t?e.enable(e.DEPTH_TEST):e.disable(e.DEPTH_TEST),this.depthTest=t}},i.setDepthFunc=function(t){this.depthFunc!==t&&(this.gl.depthFunc(this.glComparison[t]),this.depthFunc=t)},i.getDepthWrite=function(){return this.depthWrite},i.setDepthWrite=function(t){this.depthWrite!==t&&(this.gl.depthMask(t),this.depthWrite=t)},i.setColorWrite=function(t,e,i,n){this.writeRed===t&&this.writeGreen===e&&this.writeBlue===i&&this.writeAlpha===n||(this.gl.colorMask(t,e,i,n),this.writeRed=t,this.writeGreen=e,this.writeBlue=i,this.writeAlpha=n)},i.setAlphaToCoverage=function(t){this.webgl2&&this.alphaToCoverage!==t&&(this.alphaToCoverage=t,t?this.gl.enable(this.gl.SAMPLE_ALPHA_TO_COVERAGE):this.gl.disable(this.gl.SAMPLE_ALPHA_TO_COVERAGE))},i.setTransformFeedbackBuffer=function(t){if(this.transformFeedbackBuffer!==t&&(this.transformFeedbackBuffer=t,this.webgl2)){var e=this.gl;t?(this.feedback||(this.feedback=e.createTransformFeedback()),e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,this.feedback)):e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,null)}},i.setRaster=function(t){this.raster!==t&&(this.raster=t,this.webgl2&&(t?this.gl.disable(this.gl.RASTERIZER_DISCARD):this.gl.enable(this.gl.RASTERIZER_DISCARD)))},i.setDepthBias=function(t){this.depthBiasEnabled!==t&&(this.depthBiasEnabled=t,t?this.gl.enable(this.gl.POLYGON_OFFSET_FILL):this.gl.disable(this.gl.POLYGON_OFFSET_FILL))},i.setDepthBiasValues=function(t,e){this.gl.polygonOffset(e,t)},i.getBlending=function(){return this.blending},i.setBlending=function(t){if(this.blending!==t){var e=this.gl;t?e.enable(e.BLEND):e.disable(e.BLEND),this.blending=t}},i.setStencilTest=function(t){if(this.stencil!==t){var e=this.gl;t?e.enable(e.STENCIL_TEST):e.disable(e.STENCIL_TEST),this.stencil=t}},i.setStencilFunc=function(t,e,i){this.stencilFuncFront===t&&this.stencilRefFront===e&&this.stencilMaskFront===i&&this.stencilFuncBack===t&&this.stencilRefBack===e&&this.stencilMaskBack===i||(this.gl.stencilFunc(this.glComparison[t],e,i),this.stencilFuncFront=this.stencilFuncBack=t,this.stencilRefFront=this.stencilRefBack=e,this.stencilMaskFront=this.stencilMaskBack=i)},i.setStencilFuncFront=function(t,e,i){if(this.stencilFuncFront!==t||this.stencilRefFront!==e||this.stencilMaskFront!==i){var n=this.gl;n.stencilFuncSeparate(n.FRONT,this.glComparison[t],e,i),this.stencilFuncFront=t,this.stencilRefFront=e,this.stencilMaskFront=i}},i.setStencilFuncBack=function(t,e,i){if(this.stencilFuncBack!==t||this.stencilRefBack!==e||this.stencilMaskBack!==i){var n=this.gl;n.stencilFuncSeparate(n.BACK,this.glComparison[t],e,i),this.stencilFuncBack=t,this.stencilRefBack=e,this.stencilMaskBack=i}},i.setStencilOperation=function(t,e,i,n){this.stencilFailFront===t&&this.stencilZfailFront===e&&this.stencilZpassFront===i&&this.stencilFailBack===t&&this.stencilZfailBack===e&&this.stencilZpassBack===i||(this.gl.stencilOp(this.glStencilOp[t],this.glStencilOp[e],this.glStencilOp[i]),this.stencilFailFront=this.stencilFailBack=t,this.stencilZfailFront=this.stencilZfailBack=e,this.stencilZpassFront=this.stencilZpassBack=i),this.stencilWriteMaskFront===n&&this.stencilWriteMaskBack===n||(this.gl.stencilMask(n),this.stencilWriteMaskFront=n,this.stencilWriteMaskBack=n)},i.setStencilOperationFront=function(t,e,i,n){this.stencilFailFront===t&&this.stencilZfailFront===e&&this.stencilZpassFront===i||(this.gl.stencilOpSeparate(this.gl.FRONT,this.glStencilOp[t],this.glStencilOp[e],this.glStencilOp[i]),this.stencilFailFront=t,this.stencilZfailFront=e,this.stencilZpassFront=i),this.stencilWriteMaskFront!==n&&(this.gl.stencilMaskSeparate(this.gl.FRONT,n),this.stencilWriteMaskFront=n)},i.setStencilOperationBack=function(t,e,i,n){this.stencilFailBack===t&&this.stencilZfailBack===e&&this.stencilZpassBack===i||(this.gl.stencilOpSeparate(this.gl.BACK,this.glStencilOp[t],this.glStencilOp[e],this.glStencilOp[i]),this.stencilFailBack=t,this.stencilZfailBack=e,this.stencilZpassBack=i),this.stencilWriteMaskBack!==n&&(this.gl.stencilMaskSeparate(this.gl.BACK,n),this.stencilWriteMaskBack=n)},i.setBlendFunction=function(t,e){(this.blendSrc!==t||this.blendDst!==e||this.separateAlphaBlend)&&(this.gl.blendFunc(this.glBlendFunction[t],this.glBlendFunction[e]),this.blendSrc=t,this.blendDst=e,this.separateAlphaBlend=!1)},i.setBlendFunctionSeparate=function(t,e,i,n){this.blendSrc===t&&this.blendDst===e&&this.blendSrcAlpha===i&&this.blendDstAlpha===n&&this.separateAlphaBlend||(this.gl.blendFuncSeparate(this.glBlendFunction[t],this.glBlendFunction[e],this.glBlendFunction[i],this.glBlendFunction[n]),this.blendSrc=t,this.blendDst=e,this.blendSrcAlpha=i,this.blendDstAlpha=n,this.separateAlphaBlend=!0)},i.setBlendEquation=function(t){(this.blendEquation!==t||this.separateAlphaEquation)&&(this.gl.blendEquation(this.glBlendEquation[t]),this.blendEquation=t,this.separateAlphaEquation=!1)},i.setBlendEquationSeparate=function(t,e){this.blendEquation===t&&this.blendAlphaEquation===e&&this.separateAlphaEquation||(this.gl.blendEquationSeparate(this.glBlendEquation[t],this.glBlendEquation[e]),this.blendEquation=t,this.blendAlphaEquation=e,this.separateAlphaEquation=!0)},i.setBlendColor=function(t,e,i,n){var s=this.blendColor;t===s.r&&e===s.g&&i===s.b&&n===s.a||(this.gl.blendColor(t,e,i,n),s.set(t,e,i,n))},i.setCullMode=function(t){if(this.cullMode!==t){if(0===t)this.gl.disable(this.gl.CULL_FACE);else{0===this.cullMode&&this.gl.enable(this.gl.CULL_FACE);var e=this.glCull[t];this.cullFace!==e&&(this.gl.cullFace(e),this.cullFace=e)}this.cullMode=t}},i.getCullMode=function(){return this.cullMode},i.setIndexBuffer=function(t){this.indexBuffer=t},i.setVertexBuffer=function(t){t&&this.vertexBuffers.push(t)},i.setShader=function(t){if(t!==this.shader){if(t.failed)return!1;if(!t.ready&&!t.impl.postLink(this,t))return t.failed=!0,!1;this.shader=t,this.gl.useProgram(t.impl.glProgram),this.attributesInvalidated=!0}return!0},i.getHdrFormat=function(){return this.textureHalfFloatRenderable?ie:this.textureFloatRenderable?se:7},i.getBoneLimit=function(){return this.boneLimit},i.setBoneLimit=function(t){this.boneLimit=t},i.clearShaderCache=function(){var t=this.gl;for(var e in this.fragmentShaderCache)t.deleteShader(this.fragmentShaderCache[e]),delete this.fragmentShaderCache[e];for(var i in this.vertexShaderCache)t.deleteShader(this.vertexShaderCache[i]),delete this.vertexShaderCache[i];this.programLib.clearCache()},i.clearVertexArrayObjectCache=function(){var t=this.gl;this._vaoMap.forEach((function(e,i,n){t.deleteVertexArray(e)})),this._vaoMap.clear()},i.removeShaderFromCache=function(t){this.programLib.removeFromCache(t)},q(e,[{key:"width",get:function(){return this.gl.drawingBufferWidth||this.canvas.width}},{key:"height",get:function(){return this.gl.drawingBufferHeight||this.canvas.height}},{key:"fullscreen",get:function(){return!!document.fullscreenElement},set:function(t){t?this.gl.canvas.requestFullscreen():document.exitFullscreen()}},{key:"textureFloatHighPrecision",get:function(){return void 0===this._textureFloatHighPrecision&&(this._textureFloatHighPrecision=function(t){if(!t.textureFloatRenderable)return!1;var e=Ti(t,ui.fullscreenQuadVS,ui.precisionTestPS,"ptest1"),i=Ti(t,ui.fullscreenQuadVS,ui.precisionTest2PS,"ptest2"),n={format:se,width:1,height:1,mipmaps:!1,minFilter:0,magFilter:0,name:"testFHP"},s=new Ui(t,n),a=new Ss({colorBuffer:s,depth:!1});li(t,a,e),n.format=7;var r=new Ui(t,n),o=new Ss({colorBuffer:r,depth:!1});t.constantTexSource.setValue(s),li(t,o,i);var h=t.activeFramebuffer;t.setFramebuffer(o.impl._glFrameBuffer);var l=new Uint8Array(4);t.readPixels(0,0,1,1,l),t.setFramebuffer(h);var c=l[0]/255/16777216+l[1]/255/65536+l[2]/255/256+l[3]/255;return s.destroy(),a.destroy(),r.destroy(),o.destroy(),0===c}(this)),this._textureFloatHighPrecision}},{key:"textureHalfFloatUpdatable",get:function(){return void 0===this._textureHalfFloatUpdatable&&(this.webgl2?this._textureHalfFloatUpdatable=!0:this._textureHalfFloatUpdatable=function(t,e){var i=!0,n=t.createTexture();t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE);var s=new Uint16Array(16);return t.texImage2D(t.TEXTURE_2D,0,t.RGBA,2,2,0,t.RGBA,e,s),t.getError()!==t.NO_ERROR&&(i=!1,console.log("Above error related to HALF_FLOAT_OES can be ignored, it was triggered by testing half float texture support")),t.bindTexture(t.TEXTURE_2D,null),t.deleteTexture(n),i}(this.gl,this.extTextureHalfFloat.HALF_FLOAT_OES)),this._textureHalfFloatUpdatable}}]),e}(xs),ua=function(){function t(){this._refCount=0}var e=t.prototype;return e.incRefCount=function(){this._refCount++},e.decRefCount=function(){this._refCount--},q(t,[{key:"refCount",get:function(){return this._refCount}}]),t}();function da(){return la}function fa(t){la=t}var pa=0,ma=function(){function t(){this.initDefaults()}var e=t.prototype;return e.initDefaults=function(){this.recreate=!1,this.verticesUsage=0,this.indicesUsage=0,this.maxVertices=0,this.maxIndices=0,this.vertexCount=0,this.indexCount=0,this.vertexStreamsUpdated=!1,this.indexStreamUpdated=!1,this.vertexStreamDictionary={},this.indices=null},e._changeVertexCount=function(t,e){this.vertexCount||(this.vertexCount=t)},t}();ma.DEFAULT_COMPONENTS_POSITION=3,ma.DEFAULT_COMPONENTS_NORMAL=3,ma.DEFAULT_COMPONENTS_UV=2,ma.DEFAULT_COMPONENTS_COLORS=4;var _a=function(t,e,i,n){this.data=t,this.componentCount=e,this.dataType=i,this.dataTypeNormalize=n},ga=function(t){function e(e){var i;return(i=t.call(this)||this).id=pa++,i.device=e||da().graphicsDevice,i.vertexBuffer=null,i.indexBuffer=[null],i.primitive=[{type:0,base:0,count:0}],i.skin=null,i._morph=null,i._geometryData=null,i._aabb=new Rt,i.boneAabb=null,i}j(e,t);var i=e.prototype;return i.destroy=function(){var t=this.morph;t&&(this.morph=null,t.refCount<1&&t.destroy()),this.vertexBuffer&&(this.vertexBuffer.destroy(),this.vertexBuffer=null);for(var e=0;e0){var b=g.array[g.index+x];if(u[b]=!0,e=m.array[m.index],i=m.array[m.index+1],n=m.array[m.index+2],s=c[b],(a=l[b]).x>e&&(a.x=e),a.y>i&&(a.y=i),a.z>n&&(a.z=n),s.xS&&(a.x=S),a.y>w&&(a.y=w),a.z>T&&(a.z=T),s.x0&&this.indexBuffer[0]&&(this._geometryData.indexCount=this.indexBuffer[0].numIndices,this._geometryData.maxIndices=this.indexBuffer[0].numIndices))},i.clear=function(t,e,i,n){void 0===i&&(i=0),void 0===n&&(n=0),this._initGeometryData(),this._geometryData.initDefaults(),this._geometryData.recreate=!0,this._geometryData.maxVertices=i,this._geometryData.maxIndices=n,this._geometryData.verticesUsage=t?0:1,this._geometryData.indicesUsage=e?0:1},i.setVertexStream=function(t,e,i,n,s,a){void 0===s&&(s=6),void 0===a&&(a=!1),this._initGeometryData();var r=n||e.length/i;this._geometryData._changeVertexCount(r,t),this._geometryData.vertexStreamsUpdated=!0,this._geometryData.vertexStreamDictionary[t]=new _a(e,i,s,a)},i.getVertexStream=function(t,e){var i=0,n=!1;if(this._geometryData){var s=this._geometryData.vertexStreamDictionary[t];s&&(n=!0,i=this._geometryData.vertexCount,ArrayBuffer.isView(e)?e.set(s.data):(e.length=0,e.push(s.data)))}n||this.vertexBuffer&&(i=new Us(this.vertexBuffer).readData(t,e));return i},i.setPositions=function(t,e,i){void 0===e&&(e=ma.DEFAULT_COMPONENTS_POSITION),this.setVertexStream(ce,t,e,i,6,!1)},i.setNormals=function(t,e,i){void 0===e&&(e=ma.DEFAULT_COMPONENTS_NORMAL),this.setVertexStream(ue,t,e,i,6,!1)},i.setUvs=function(t,e,i,n){void 0===i&&(i=ma.DEFAULT_COMPONENTS_UV),this.setVertexStream(_e+t,e,i,n,6,!1)},i.setColors=function(t,e,i){void 0===e&&(e=ma.DEFAULT_COMPONENTS_COLORS),this.setVertexStream(me,t,e,i,6,!1)},i.setColors32=function(t,e){this.setVertexStream(me,t,ma.DEFAULT_COMPONENTS_COLORS,e,1,!0)},i.setIndices=function(t,e){this._initGeometryData(),this._geometryData.indexStreamUpdated=!0,this._geometryData.indices=t,this._geometryData.indexCount=e||t.length},i.getPositions=function(t){return this.getVertexStream(ce,t)},i.getNormals=function(t){return this.getVertexStream(ue,t)},i.getUvs=function(t,e){return this.getVertexStream(_e+t,e)},i.getColors=function(t){return this.getVertexStream(me,t)},i.getIndices=function(t){var e=0;if(this._geometryData&&this._geometryData.indices){var i=this._geometryData.indices;e=this._geometryData.indexCount,ArrayBuffer.isView(t)?t.set(i):(t.length=0,t.push(i))}else{if(this.indexBuffer.length>0&&this.indexBuffer[0])e=this.indexBuffer[0].readData(t)}return e},i.update=function(t,e){if(void 0===t&&(t=4),void 0===e&&(e=!0),this._geometryData){if(e){var i=this._geometryData.vertexStreamDictionary.POSITION;i&&3===i.componentCount&&this._aabb.compute(i.data,this._geometryData.vertexCount)}var n=this._geometryData.recreate;this._geometryData.vertexCount>this._geometryData.maxVertices&&(n=!0,this._geometryData.maxVertices=this._geometryData.vertexCount),n&&this.vertexBuffer&&(this.vertexBuffer.destroy(),this.vertexBuffer=null);var s=this._geometryData.recreate;this._geometryData.indexCount>this._geometryData.maxIndices&&(s=!0,this._geometryData.maxIndices=this._geometryData.indexCount),s&&this.indexBuffer.length>0&&this.indexBuffer[0]&&(this.indexBuffer[0].destroy(),this.indexBuffer[0]=null),this._geometryData.vertexStreamsUpdated&&this._updateVertexBuffer(),this._geometryData.indexStreamUpdated&&this._updateIndexBuffer(),this.primitive[0].type=t,this.indexBuffer.length>0&&this.indexBuffer[0]?this._geometryData.indexStreamUpdated&&(this.primitive[0].count=this._geometryData.indexCount,this.primitive[0].indexed=!0):this._geometryData.vertexStreamsUpdated&&(this.primitive[0].count=this._geometryData.vertexCount,this.primitive[0].indexed=!1),this._geometryData.vertexCount=0,this._geometryData.indexCount=0,this._geometryData.vertexStreamsUpdated=!1,this._geometryData.indexStreamUpdated=!1,this._geometryData.recreate=!1,this.updateRenderStates()}},i._buildVertexFormat=function(t){var e=[];for(var i in this._geometryData.vertexStreamDictionary){var n=this._geometryData.vertexStreamDictionary[i];e.push({semantic:i,components:n.componentCount,type:n.dataType,normalize:n.dataTypeNormalize})}return new ai(this.device,e,t)},i._updateVertexBuffer=function(){if(!this.vertexBuffer){var t=this._geometryData.maxVertices,e=this._buildVertexFormat(t);this.vertexBuffer=new ni(this.device,e,t,this._geometryData.verticesUsage)}var i=new Us(this.vertexBuffer),n=this._geometryData.vertexCount;for(var s in this._geometryData.vertexStreamDictionary){var a=this._geometryData.vertexStreamDictionary[s];i.writeData(s,a.data,n),delete this._geometryData.vertexStreamDictionary[s]}i.end()},i._updateIndexBuffer=function(){if(this.indexBuffer.length<=0||!this.indexBuffer[0]){var t=this._geometryData.maxVertices>65535?2:1;this.indexBuffer[0]=new As(this.device,t,this._geometryData.maxIndices,this._geometryData.indicesUsage)}var e=this._geometryData.indices;e&&(this.indexBuffer[0].writeData(e,this._geometryData.indexCount),this._geometryData.indices=null)},i.prepareRenderState=function(t){1===t?this.generateWireframe():2===t&&(this.primitive[2]={type:0,base:0,count:this.vertexBuffer?this.vertexBuffer.numVertices:0,indexed:!1})},i.updateRenderStates=function(){this.primitive[2]&&this.prepareRenderState(2),this.primitive[1]&&this.prepareRenderState(1)},i.generateWireframe=function(){this._destroyIndexBuffer(1);var t,e=[];if(this.indexBuffer.length>0&&this.indexBuffer[0]){for(var i=[[0,1],[1,2],[2,0]],n=this.primitive[0].base,s=this.primitive[0].count,a=this.indexBuffer[0],r=new Je[a.format](a.storage),o={},h=n;hu?u<<16|c:c<<16|u;void 0===o[d]&&(o[d]=0,e.push(c,u))}t=a.format}else{for(var f=0;f65535?2:1}var p=new As(this.vertexBuffer.device,t,e.length);new Je[p.format](p.storage).set(e),p.unlock(),this.primitive[1]={type:1,base:0,count:e.length,indexed:!0},this.indexBuffer[1]=p},q(e,[{key:"morph",get:function(){return this._morph},set:function(t){t!==this._morph&&(this._morph&&this._morph.decRefCount(),this._morph=t,t&&t.incRefCount())}},{key:"aabb",get:function(){return this._aabb},set:function(t){this._aabb=t}}]),e}(ua),va=4/64,ya=.875,xa=[];function ba(t,e){for(var i=e.length/3,n=t.length/3,s=new pt,a=new pt,r=new pt,o=new pt,h=new pt,l=new pt,c=[],u=0;u0)for(var v=0;v<=n;v++)for(var y=0;y<=s;y++){var x=y/s*2*Math.PI-Math.PI,b=Math.sin(x),S=Math.cos(x);u.set(b*t,-i/2,S*t),c.set(b*e,i/2,S*e),o.lerp(u,c,v/n),h.sub2(c,u).normalize(),d.set(S,0,-b),l.cross(d,h).normalize(),f.push(o.x,o.y,o.z),p.push(l.x,l.y,l.z);var w=y/s,T=v/n;m.push(w,1-T);var A=T;if(T=w,w=(w=A)*ya+va,T=T*ya+va,w/=3,_.push(w,1-T),v0)for(var ut=0;ut1&&g.push(r,r+ut,r+ut-1)}if(r+=s,e>0)for(var yt=0;yt1&&g.push(r,r+yt-1,r+yt)}}return{positions:f,normals:p,uvs:m,uvs1:_,indices:g}}function Ma(t,e){var i=e&&(e.radius||e.baseRadius);i=void 0!==i?i:.5;var n=e&&void 0!==e.height?e.height:1,s=e&&void 0!==e.heightSegments?e.heightSegments:5,a=e&&void 0!==e.capSegments?e.capSegments:20,r=!(!e||void 0===e.calculateTangents)&&e.calculateTangents,o=Aa(i,i,n,s,a,!1);return r&&(o.tangents=Sa(o.positions,o.normals,o.uvs,o.indices)),wa(t,o.positions,o)}function Ca(t,e){var i=e&&void 0!==e.radius?e.radius:.3,n=e&&void 0!==e.height?e.height:1,s=e&&void 0!==e.heightSegments?e.heightSegments:1,a=e&&void 0!==e.sides?e.sides:20,r=!(!e||void 0===e.calculateTangents)&&e.calculateTangents,o=Aa(i,i,n-2*i,s,a,!0);return r&&(o.tangents=Sa(o.positions,o.normals,o.uvs,o.indices)),wa(t,o.positions,o)}function Ea(t,e){var i=e&&void 0!==e.baseRadius?e.baseRadius:.5,n=e&&void 0!==e.peakRadius?e.peakRadius:0,s=e&&void 0!==e.height?e.height:1,a=e&&void 0!==e.heightSegments?e.heightSegments:5,r=e&&void 0!==e.capSegments?e.capSegments:18,o=!(!e||void 0===e.calculateTangents)&&e.calculateTangents,h=Aa(i,n,s,a,r,!1);return o&&(h.tangents=Sa(h.positions,h.normals,h.uvs,h.indices)),wa(t,h.positions,h)}function Pa(t,e){for(var i=e&&void 0!==e.radius?e.radius:.5,n=e&&void 0!==e.latitudeBands?e.latitudeBands:16,s=e&&void 0!==e.longitudeBands?e.longitudeBands:16,a=!(!e||void 0===e.calculateTangents)&&e.calculateTangents,r=[],o=[],h=[],l=[],c=0;c<=n;c++)for(var u=c*Math.PI/n,d=Math.sin(u),f=Math.cos(u),p=0;p<=s;p++){var m=2*p*Math.PI/s-Math.PI/2,_=Math.sin(m),g=Math.cos(m)*d,v=f,y=_*d,x=1-p/s,b=1-c/n;r.push(g*i,v*i,y*i),o.push(g,v,y),h.push(x,1-b)}for(var S=0;S=0;i--)this.matrices[i].mulAffine2(Fa,this.bones[i].getWorldTransform()),this.matrices[i].mulAffine2(this.matrices[i],this.skin.inverseBindPose[i])}},e.updateMatrices=function(t,e){this._updateBeforeCull&&this._updateMatrices(t,e)},e.updateMatrixPalette=function(t,e){this._updateMatrices(t,e);for(var i=this.matrixPalette,n=this.bones.length,s=0;s>16},set:function(t){var e=65535&this._shaderDefs;this._shaderDefs=e|t<<16,this._shader[0]=null,this._shader[1]=null}},{key:"instancingCount",get:function(){return this.instancingData?this.instancingData.count:0},set:function(t){this.instancingData&&(this.instancingData.count=t)}}]),t}();function ja(t,e,i,n){return(15&t)<<27|(3===e?1:0)<<26|(i?1:0)<<25|(33554431&n)<<0}function Ka(t,e){if(t&&!e)return!1;if(!t&&e)return!1;if((t=t.data)===(e=e.data))return!0;if(t instanceof Float32Array&&e instanceof Float32Array){if(t.length!==e.length)return!1;for(var i=0;i=0?1:-1}var nr=function(){function t(t,e,i){this.device=t,this.rootNode=e,this.scene=i,this._init=!1,this._batchGroups={},this._batchGroupCounter=0,this._batchList=[],this._dirtyGroups=[]}var e=t.prototype;return e.destroy=function(){this.device=null,this.rootNode=null,this.scene=null,this._batchGroups={},this._batchList=[],this._dirtyGroups=[]},e.addGroup=function(t,e,i,n,s){if(void 0===n&&(n=this._batchGroupCounter,this._batchGroupCounter++),!this._batchGroups[n]){var a=new Oa(n,t,e,i,s);return this._batchGroups[n]=a,a}},e.removeGroup=function(t){if(this._batchGroups[t]){for(var e=[],i=0;i=0&&(n._obj[t].splice(s,1),this.markGroupDirty(e))}},e._extractRender=function(t,e,i,n){if(t.render){if(t.render.isStatic){for(var s=this.scene.drawCalls,a=t.render.meshInstances,r=0;r=0&&e.push(a[o])}else e=n[t.render.batchGroupId]=e.concat(t.render.meshInstances);t.render.removeFromLayers()}return e},e._extractModel=function(t,e,i,n){if(t.model&&t.model.model){if(t.model.isStatic){for(var s=this.scene.drawCalls,a=t.model.meshInstances,r=0;r=0&&e.push(a[o])}else e=n[t.model.batchGroupId]=e.concat(t.model.meshInstances);t.model.removeModelFromLayers()}return e},e._extractElement=function(t,e,i){if(t.element){var n=!1;t.element._text&&t.element._text._model.meshInstances.length>0?(e.push(t.element._text._model.meshInstances[0]),t.element.removeModelFromLayers(t.element._text._model),n=!0):t.element._image&&(e.push(t.element._image._renderable.meshInstance),t.element.removeModelFromLayers(t.element._image._renderable.model),t.element._image._renderable.unmaskMeshInstance&&(e.push(t.element._image._renderable.unmaskMeshInstance),t.element._image._renderable.unmaskMeshInstance.stencilFront&&t.element._image._renderable.unmaskMeshInstance.stencilBack||(t.element._dirtifyMask(),t.element._onPrerender())),n=!0),n&&(i._ui=!0)}},e._collectAndRemoveMeshInstances=function(t,e){for(var i=0;i0;){u[d]=[p[0]],f=[];var _=p[0].material,g=p[0].layer,v=p[0]._shaderDefs,y=p[0].parameters,x=p[0].stencilFront,b=p[0]._staticLightList,S=p[0].mesh.vertexBuffer.getNumVertices(),w=p[0].drawOrder;h.copy(p[0].aabb);var T=ir(p[0]),A=p[0].mesh.vertexBuffer.format.batchingHash,M=p[0].mesh.primitive[0].indexed;c=null;for(var C=1;C=r){f=f.concat(p.slice(C));break}if(_!==E.material||g!==E.layer||A!==E.mesh.vertexBuffer.format.batchingHash||M!==E.mesh.primitive[0].indexed||v!==E._shaderDefs||S+E.mesh.vertexBuffer.getNumVertices()>o)m(E);else if(l.copy(h),l.add(E.aabb),l.halfExtents.x>a||l.halfExtents.y>a||l.halfExtents.z>a)m(E);else if(!x||(s=E.stencilFront)&&x.func===s.func&&x.zpass===s.zpass)if(T===ir(E))if(Za(y,E.parameters)){var P=E._staticLightList;if(b&&P){if(!$a(b,P)){m(E);continue}}else if(b||P){m(E);continue}n&&c&&c.intersects(E.aabb)&&E.drawOrder!==w?m(E):(h.add(E.aabb),S+=E.mesh.vertexBuffer.getNumVertices(),u[d].push(E))}else m(E);else m(E);else m(E)}d++,p=f}return u},e.collectBatchedMeshData=function(t,e){for(var i=null,n=0,s=0,a=null,r=0;r=3)if(s===ce)for(var A=0;A0&&a.setIndices(b),a.update(4,!1),e&&((p=p.clone()).chunks.transformVS=this.transformVS,p.chunks.skinTexVS=this.skinTexVS,p.chunks.skinConstVS=this.skinConstVS,p.update());var R=new Ya(a,p,this.rootNode);R.castShadow=h.origMeshInstances[0].castShadow,R.parameters=h.origMeshInstances[0].parameters,R.isStatic=h.origMeshInstances[0].isStatic,R.layer=h.origMeshInstances[0].layer,R._staticLightList=h.origMeshInstances[0]._staticLightList,R._shaderDefs=h.origMeshInstances[0]._shaderDefs,R.cull=h.origMeshInstances[0].cull;var I=this._batchGroups[i];if(I&&I._ui&&(R.cull=!1),e){for(var L=[],D=0;D0&&this.generate(this._dirtyGroups);for(var t=0;t0&&r){if(!(n1){e.copy(t[1].min),i.copy(t[1].max);for(var n=2;n1?this.shaderCube:this.shader2d,a=this.device;n>1&&this.initInvViewProjMatrices(),this.blitTextureId.setValue(e.cookie);for(var r=0;r1){var o=vr.z/3,h=this.lightTextureAtlas.cubeSlotsOffsets[r];vr.x+=o*h.x,vr.y+=o*h.y,vr.z=o,vr.w=o,this.invViewProjId.setValue(t._invViewProjMatrices[r].data)}vr.mulScalar(i.colorBuffer.width),li(a,i,s,vr)}}},q(t,[{key:"shader2d",get:function(){return this.getShader("blitShader2d","\n\t\tvarying vec2 uv0;\n\t\tuniform sampler2D blitTexture;\n\t\tvoid main(void) {\n\t\t\t\tgl_FragColor = texture2D(blitTexture, uv0);\n\t\t}")}},{key:"shaderCube",get:function(){return this.getShader("blitShaderCube","\n\t\tvarying vec2 uv0;\n\t\tuniform samplerCube blitTexture;\n\t\tuniform mat4 invViewProj;\n\t\tvoid main(void) {\n\t\t\t\tvec4 projPos = vec4(uv0 * 2.0 - 1.0, 0.5, 1.0);\n\t\t\t\tvec4 worldPos = invViewProj * projPos;\n\t\t\t\tgl_FragColor = textureCube(blitTexture, worldPos.xyz);\n\t\t}")}}]),t}();yr._invViewProjMatrices=null;var xr=function(){function t(t,e){this.texture=t,this.cached=!1,this.renderTargets=e}return t.prototype.destroy=function(){this.texture&&(this.texture.destroy(),this.texture=null);for(var t=this.renderTargets,e=0;e1)for(var h=1/o,l=0;l1)for(var f=0;f0){for(var s=this.slots,a=0;as&&(s=r)}return Pr.min=n,Pr.max=s,Pr}function Ir(t,e){return Math.exp(-t*t/(2*e*e))}var Lr=new Rt,Dr=new wt,kr=new wt,Or=new Float32Array(2),Fr=new gt(1,1,0,0),Br={r:1,g:2,b:3,a:4},Nr=new pt,Ur=new wt;function zr(t){var e=t.material,i=t.skinInstance?10:0,n=0;if(e.opacityMap){var s=e.opacityMapChannel;s&&(n=Br[s])}return i+n}var Vr=function(){function t(t,e){this.device=t.device,this.forwardRenderer=t,this.lightTextureAtlas=e;var i=this.device.scope;this.polygonOffsetId=i.resolve("polygonOffset"),this.polygonOffset=new Float32Array(2),this.sourceId=i.resolve("source"),this.pixelOffsetId=i.resolve("pixelOffset"),this.weightId=i.resolve("weight[0]"),this.blurVsmShaderCode=[ui.blurVSMPS,"#define GAUSS\n"+ui.blurVSMPS];var n="#define PACKED\n";this.blurPackedVsmShaderCode=[n+this.blurVsmShaderCode[0],n+this.blurVsmShaderCode[1]],this.blurVsmShader=[{},{}],this.blurPackedVsmShader=[{},{}],this.blurVsmWeights={},this.shadowMapLightRadiusId=i.resolve("light_radius"),this.shadowMapCache=new Cr}var e=t.prototype;return e.destroy=function(){this.shadowMapCache.destroy(),this.shadowMapCache=null},t.createShadowCamera=function(t,e,i,n){var s=un.create("ShadowCamera",i,n);return s.clearColor=e>=1&&e<=3?new ct(0,0,0,0):new ct(1,1,1,1),s.clearDepthBuffer=!0,s.clearStencilBuffer=!1,s},t.setShadowCameraSettings=function(t,e,i,n,s){var a=4===i||0===i&&e.webgl2;1!==n||s||(a=!1),t.clearColorBuffer=!a},e.cullShadowCasters=function(t,e,i){for(var n=0,s=t.length,a=0;ap&&(p=_)}var g=o.right,v=o.up,y=o.forward,x=.25*t._shadowResolution/p,b=Math.ceil(Nr.dot(v)*x)/x,S=Math.ceil(Nr.dot(g)*x)/x,w=v.mulScalar(b),T=g.mulScalar(S),A=Nr.dot(y),M=y.mulScalar(A);Nr.add2(w,T).add(M),o.setPosition(Nr),o.translateLocal(0,0,1e6),r.nearClip=0,r.farClip=2e6,r.orthoHeight=p,this.forwardRenderer.updateCameraFrustum(r),this.cullShadowCasters(e,a.visibleCasters,r);for(var C=!0,E=a.visibleCasters,P=0;P1)this.forwardRenderer.scene.clusteredLightingEnabled&&0!==s||this.applyVsmBlur(e,i);this.restoreRenderState(n)}},e.getVsmBlurShader=function(t,e,i){var n=(t?this.blurPackedVsmShader:this.blurVsmShader)[e][i];if(!n){this.blurVsmWeights[i]=function(t){t>25&&(t=25);for(var e=(t-1)/6,i=.5*(t-1),n=new Array(t),s=0,a=0;aU&&(U=H),X>z&&(z=X),q>V&&(V=q)}var Y=6*O;p[Y]=F,p[Y+1]=B,p[Y+2]=N,p[Y+3]=U,p[Y+4]=z,p[Y+5]=V}for(var j=0;j=Z.x&&p[tt+1]<=$.y&&p[tt+4]>=Z.y&&p[tt+2]<=$.z&&p[tt+5]>=Z.z&&(d[J]|=Q,k=!0)}}if(k){for(var et={},it=0;itdt&&(dt=vt),yt>ft&&(ft=yt),xt>mt&&(mt=xt)}h.set(lt,ct,ut),l.set(dt,ft,mt);var bt=new Rt;bt.setMinMax(h,l);var St=new ga(e);St.vertexBuffer=w,St.indexBuffer[0]=ht,St.primitive[0].type=4,St.primitive[0].base=0,St.primitive[0].count=ot.length,St.primitive[0].indexed=!0,St.aabb=bt;var Tt=new Ya(St,g.material,g.node);Tt.isStatic=g.isStatic,Tt.visible=g.visible,Tt.layer=g.layer,Tt.castShadow=g.castShadow,Tt._receiveShadow=g._receiveShadow,Tt.cull=g.cull,Tt.pick=g.pick,Tt.mask=g.mask,Tt.parameters=g.parameters,Tt._shaderDefs=g._shaderDefs,Tt._staticSource=g,g._staticLightList?Tt._staticLightList=g._staticLightList:Tt._staticLightList=[];for(var At=0;At0&&(this._instancedDrawCalls++,t.setVertexBuffer(qr.vertexBuffer),t.draw(i.primitive[n],qr.count)):(Yr=e.node.worldTransform,this.modelMatrixId.setValue(Yr.data),s&&(jr=e.node.normalMatrix,e.node._dirtyNormal&&(Yr.invertTo3x3(jr),jr.transpose(),e.node._dirtyNormal=!1),this.normalMatrixId.setValue(jr.data)),t.draw(i.primitive[n]))},e.drawInstance2=function(t,e,i,n){(qr=e.instancingData)?qr.count>0&&(this._instancedDrawCalls++,t.draw(i.primitive[n],qr.count,!0)):t.draw(i.primitive[n],void 0,!0)},e.renderShadows=function(t,e){for(var i=this.scene.clusteredLightingEnabled,n=0;n0&&n.cull<3){i.flipFaces&&(a*=-1),e&&(a*=-1);var r=i.node.worldTransform;r.getX(lo),r.getY(co),r.getZ(uo),lo.cross(lo,co),lo.dot(uo)<0&&(a*=-1)}s=a<0?2===n.cull?1:2:n.cull}if(this.device.setCullMode(s),0===s&&0===n.cull){var o=i.node.worldTransform;o.getX(lo),o.getY(co),o.getZ(uo),lo.cross(lo,co),lo.dot(uo)<0?this.twoSidedLightingNegScaleFactorId.setValue(-1):this.twoSidedLightingNegScaleFactorId.setValue(1)}},e.setVertexBuffers=function(t,e){t.setVertexBuffer(e.vertexBuffer)},e.setMorphing=function(t,e){if(e)if(e.morph.useTextureMorph)t.setVertexBuffer(e.morph.vertexBufferIds),this.morphPositionTex.setValue(e.texturePositions),this.morphNormalTex.setValue(e.textureNormals),this.morphTexParams.setValue(e._textureParams);else{for(var i=0;i=0&&r._shaderVersion!==i&&(r.updateShader!==$n.prototype.updateShader&&(r.clearVariants(),r.shader=null),r._shaderVersion=i)}this.passThrough||(this._dirty=!0)},e.removeMeshInstanceFromArray=function(t,e){for(var i=-1,n=0,s=e.length,a=0;a=0)break}i>=0&&e.splice(i,n)},e.removeMeshInstances=function(t,e){for(var i=this.opaqueMeshInstances,n=this.transparentMeshInstances,s=this.shadowCasters,a=0;a=0&&s.splice(o,1)}}this._dirty=!0},e.clearMeshInstances=function(t){(0!==this.opaqueMeshInstances.length||0!==this.transparentMeshInstances.length||!t&&0!==this.shadowCasters.length)&&(this.opaqueMeshInstances.length=0,this.transparentMeshInstances.length=0,t||(this.shadowCasters.length=0),this.passThrough||(this._dirty=!0))},e.addLight=function(t){var e=t.light;this._lightsSet.has(e)||(this._lightsSet.add(e),0!==e.type&&this._clusteredLightsSet.add(e),this._lights.push(e),this._dirtyLights=!0,this._generateLightHash())},e.removeLight=function(t){var e=t.light;this._lightsSet.has(e)&&(this._lightsSet.delete(e),0!==e.type&&this._clusteredLightsSet.delete(e),this._lights.splice(this._lights.indexOf(e),1),this._dirtyLights=!0,this._generateLightHash())},e.clearLights=function(){this._lightsSet.clear(),this._clusteredLightsSet.clear(),this._lights.length=0,this._dirtyLights=!0},e.addShadowCasters=function(t){for(var e=this.shadowCasters,i=0;i=0&&e.splice(n,1)}this._dirtyLights=!0},e._generateLightHash=function(){if(this._lights.length>0){this._lights.sort(xo);for(var t="",e="",i=0;i=0||(this.cameras.push(t),this._dirtyCameras=!0)},e.removeCamera=function(t){var e=this.cameras.indexOf(t);e>=0&&(this.cameras.splice(e,1),this._dirtyCameras=!0,this.instances.delete(e))},e.clearCameras=function(){this.cameras.length=0,this._dirtyCameras=!0},e._calculateSortDistances=function(t,e,i,n){for(var s=0;s=0&&!this.directionalLightsSet.has(s)){this.directionalLightsSet.add(s),this.directionalLights.push(s);var r=i.indexOf(s);this.directionalLightsIndices.push(r)}}},q(t,[{key:"hasDirectionalShadowLights",get:function(){return this.directionalLights.length>0}}]),t}(),Po=function(){function t(){this.shadowCastersSet=new Set,this.shadowCastersList=[]}var e=t.prototype;return e.clearShadowCasters=function(){this.shadowCastersSet.clear(),this.shadowCastersList.length=0},e.addShadowCasters=function(t){for(var e=0;e1&&Co(this.cameras);for(var _=[],g=0,v=0;v0&&y.layers.indexOf(A.id)>=0){_.push(A),w||A.id!==y.disablePostEffectsLayer||(w=!0,S&&(S.triggerPostprocess=!0));var M=A.cameras.indexOf(y);M>=0&&(S=this.addRenderAction(this._renderActions,g,A,T,M,x,w),g++,x=!1)}}b=0;u--)if(t[u].camera===l&&t[u].renderTarget===h){c=!0;break}var d=a||!c,f=!!d&&l.clearColorBuffer,p=!!d&&l.clearDepthBuffer,m=!!d&&l.clearStencilBuffer;return f|=i.clearColorBuffer,p|=i.clearDepthBuffer,m|=i.clearStencilBuffer,r&&l.postEffectsEnabled&&(h=null),o.reset(),o.triggerPostprocess=!1,o.layerIndex=n,o.cameraIndex=s,o.camera=l,o.renderTarget=h,o.clearColor=f,o.clearDepth=p,o.clearStencil=m,o.firstCameraUse=a,o.lastCameraUse=!1,o},i.propagateRenderTarget=function(t,e){for(var i=t;i>=0;i--){var n=this._renderActions[i],s=this.layerList[n.layerIndex];if(n.renderTarget&&1!==s.id)break;if(1!==s.id){var a=null==n?void 0:n.camera.camera;if(a&&(!e.camera.rect.equals(a.rect)||!e.camera.scissorRect.equals(a.scissorRect)))break;n.renderTarget=e.renderTarget}}},i._logRenderActions=function(){},i._isLayerAdded=function(t){return this.layerList.indexOf(t)>=0},i._isSublayerAdded=function(t,e){for(var i=0;i=0;)this.layerList.splice(e,1),this.subLayerList.splice(e,1),this.subLayerEnabled.splice(e,1),e=this.layerList.indexOf(t),this._dirty=!0,this._dirtyLights=!0,this._dirtyCameras=!0,this.fire("remove",t);var i=this.layerList.length;this._updateOpaqueOrder(0,i-1),this._updateTransparentOrder(0,i-1)},i.pushOpaque=function(t){this._isSublayerAdded(t,!1)||(this.layerList.push(t),this._opaqueOrder[t.id]=this.subLayerList.push(!1)-1,this.subLayerEnabled.push(!0),this._dirty=!0,this._dirtyLights=!0,this._dirtyCameras=!0,this.fire("add",t))},i.insertOpaque=function(t,e){if(!this._isSublayerAdded(t,!1)){this.layerList.splice(e,0,t),this.subLayerList.splice(e,0,!1);var i=this.subLayerList.length;this._updateOpaqueOrder(e,i-1),this.subLayerEnabled.splice(e,0,!0),this._dirty=!0,this._dirtyLights=!0,this._dirtyCameras=!0,this.fire("add",t)}},i.removeOpaque=function(t){for(var e=0,i=this.layerList.length;e=1?(r[0]=Math.pow(e,2.2)*s,r[1]=Math.pow(i,2.2)*s,r[2]=Math.pow(n,2.2)*s):(r[0]=Math.pow(a[0],2.2),r[1]=Math.pow(a[1],2.2),r[2]=Math.pow(a[2],2.2))},e.setColor=function(){1===arguments.length?this._color.set(arguments[0].r,arguments[0].g,arguments[0].b):3===arguments.length&&this._color.set(arguments[0],arguments[1],arguments[2]),this._updateFinalColor()},e.updateShadow=function(){2!==this.shadowUpdateMode&&(this.shadowUpdateMode=1)},e.layersDirty=function(){var t;null!=(t=this._scene)&&t.layers&&(this._scene.layers._dirtyLights=!0)},e.updateKey=function(){var t=this._type<<29|(this._castShadows?1:0)<<28|this._shadowType<<25|this._falloffMode<<23|(0!==this._normalOffsetBias?1:0)<<22|(this._cookie?1:0)<<21|(this._cookieFalloff?1:0)<<20|Bo[this._cookieChannel.charAt(0)]<<18|(this._cookieTransform?1:0)<<12|this._shape<<10|this.numCascades-1<<8;3===this._cookieChannel.length&&(t|=Bo[this._cookieChannel.charAt(1)]<<16,t|=Bo[this._cookieChannel.charAt(2)]<<14),t!==this.key&&null!==this._scene&&this.layersDirty(),this.key=t},q(t,[{key:"numCascades",get:function(){return this.cascades.length},set:function(t){this.cascades&&this.numCascades==t||(this.cascades=No[t-1],this._shadowMatrixPalette=new Float32Array(64),this._shadowCascadeDistances=new Float32Array(4),this._destroyShadowMap(),this.updateKey())}},{key:"shadowMap",get:function(){return this._shadowMap},set:function(t){this._shadowMap!==t&&(this._destroyShadowMap(),this._shadowMap=t)}},{key:"numShadowFaces",get:function(){var t=this._type;return 0===t?this.numCascades:1===t?6:1}},{key:"type",get:function(){return this._type},set:function(t){if(this._type!==t){this._type=t,this._destroyShadowMap(),this.updateKey();var e=this._shadowType;this._shadowType=null,this.shadowType=e}}},{key:"shape",get:function(){return this._shape},set:function(t){if(this._shape!==t){this._shape=t,this._destroyShadowMap(),this.updateKey();var e=this._shadowType;this._shadowType=null,this.shadowType=e}}},{key:"shadowType",get:function(){return this._shadowType},set:function(t){if(this._shadowType!==t){var e=this.device;1===this._type&&(t=0),4!==t||e.webgl2||(t=0),3!==t||e.textureFloatRenderable||(t=2),2!==t||e.textureHalfFloatRenderable||(t=1),this._isVsm=t>=1&&t<=3,this._isPcf=4===t||0===t,this._shadowType=t,this._destroyShadowMap(),this.updateKey()}}},{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled!==t&&(this._enabled=t,this.layersDirty())}},{key:"castShadows",get:function(){return this._castShadows&&4!==this.mask&&0!==this.mask},set:function(t){this._castShadows!==t&&(this._castShadows=t,this._destroyShadowMap(),this.layersDirty(),this.updateKey())}},{key:"shadowResolution",get:function(){return this._shadowResolution},set:function(t){this._shadowResolution!==t&&(t=1===this._type?Math.min(t,this.device.maxCubeMapSize):Math.min(t,this.device.maxTextureSize),this._shadowResolution=t,this._destroyShadowMap())}},{key:"vsmBlurSize",get:function(){return this._vsmBlurSize},set:function(t){this._vsmBlurSize!==t&&(t%2==0&&t++,this._vsmBlurSize=t)}},{key:"normalOffsetBias",get:function(){return this._normalOffsetBias},set:function(t){this._normalOffsetBias!==t&&((!this._normalOffsetBias&&t||this._normalOffsetBias&&!t)&&this.updateKey(),this._normalOffsetBias=t)}},{key:"falloffMode",get:function(){return this._falloffMode},set:function(t){this._falloffMode!==t&&(this._falloffMode=t,this.updateKey())}},{key:"innerConeAngle",get:function(){return this._innerConeAngle},set:function(t){this._innerConeAngle!==t&&(this._innerConeAngle=t,this._innerConeAngleCos=Math.cos(t*Math.PI/180))}},{key:"outerConeAngle",get:function(){return this._outerConeAngle},set:function(t){this._outerConeAngle!==t&&(this._outerConeAngle=t,this._outerConeAngleCos=Math.cos(t*Math.PI/180))}},{key:"intensity",get:function(){return this._intensity},set:function(t){this._intensity!==t&&(this._intensity=t,this._updateFinalColor())}},{key:"cookieMatrix",get:function(){return this._cookieMatrix||(this._cookieMatrix=new wt),this._cookieMatrix}},{key:"atlasViewport",get:function(){return this._atlasViewport||(this._atlasViewport=new gt(0,0,1,1)),this._atlasViewport}},{key:"cookie",get:function(){return this._cookie},set:function(t){this._cookie!==t&&(this._cookie=t,this.updateKey())}},{key:"cookieFalloff",get:function(){return this._cookieFalloff},set:function(t){this._cookieFalloff!==t&&(this._cookieFalloff=t,this.updateKey())}},{key:"cookieChannel",get:function(){return this._cookieChannel},set:function(t){if(this._cookieChannel!==t){if(t.length<3)for(var e=t.charAt(t.length-1),i=3-t.length,n=0;n0){var n=i.bakeArea;Tn(Xo,t,e),Xo.mulScalar(.5*n),i._node.rotateLocal(Xo.x,0,Xo.y)}i._node.getWorldTransform();var s=this.scene.gammaCorrection?2.2:1,a=Math.pow(this.intensity,s);i.intensity=Math.pow(a/e,1/s)},q(e,[{key:"numVirtualLights",get:function(){return 0===this.light.type?this.light.bakeNumSamples:1}}]),e}(Ho),Yo=function(){function t(t){this.renderPasses=[],this.device=t}var e=t.prototype;return e.add=function(t){this.renderPasses.push(t)},e.reset=function(){this.renderPasses.length=0},e.render=function(){for(var t=this.renderPasses,e=0;ef)return!1;this.morphTextureWidth=p,this.morphTextureHeight=m;var _=!1,g=3,v=Fi.float2Half;this._textureFormat===e.FORMAT_HALF_FLOAT&&(_=!0,g=4);for(var y=this.morphTextureWidth*this.morphTextureHeight*g,x=_?new Uint16Array(y):new Float32Array(y),b=0;b0&&(e+="varying vec2 uv0;\nuniform highp float morphFactor["+t+"];\n");for(var i=0;i=this.maxSubmitCount&&(s(a,r),a=0,r=!0))}(a>0||0===o&&!this.zeroTextures)&&s(a,r)},e._updateTextureMorph=function(){this.device,(this._activeTargets.length>0||!this.zeroTextures)&&(this._updateTextureRenderTarget(this.rtPositions,"texturePositions"),this._updateTextureRenderTarget(this.rtNormals,"textureNormals"),this.zeroTextures=0===this._activeTargets.length)},e._updateVertexMorph=function(){for(var t=this.maxSubmitCount,e=0;e1e-5){this._activeTargets.length<=e&&(this._activeTargets[e]={});var s=this._activeTargets[e++];s.absWeight=n,s.weight=this.getWeight(i),s.target=t[i]}}this._activeTargets.length=e;var a=this.morph.maxActiveTargets;this._activeTargets.length>a&&(this._activeTargets.sort((function(t,e){return t.absWeight0&&this.material.transparent===e&&(this.mesh.setPositions(this.positions),this.mesh.setColors(this.colors),this.mesh.update(1,!1),this.meshInstance||(this.meshInstance=new Ya(this.mesh,this.material,th)),this.positions.length=0,this.colors.length=0,t.list.push(this.meshInstance),t.length++)},t}(),nh=function(){function t(t){this.device=t,this.map=new Map}var e=t.prototype;return e.getBatch=function(t,e){var i=this.map.get(t);return i||(i=new ih(this.device,t,e),this.map.set(t,i)),i},e.onPreRender=function(t,e){this.map.forEach((function(i){i.onPreRender(t,e)}))},t}(),sh=[],ah=function(){function t(t){this.device=t,this.quadMesh=null,this.textureShader=null,this.depthTextureShader=null,this.cubeLocalPos=null,this.cubeWorldPos=null,this.batchesMap=new Map,this.allBatches=new Set,this.updatedLayers=new Set,this._materialDepth=null,this._materialNoDepth=null,this.layerMeshInstances=new Map}var e=t.prototype;return e.createMaterial=function(t){var e=new Da;return e.vertexColors=!0,e.blend=!0,e.blendType=2,e.depthTest=t,e.update(),e},e.getBatch=function(t,e){var i=this.batchesMap.get(t);i||(i=new nh(this.device),this.batchesMap.set(t,i)),this.allBatches.add(i);var n=e?this.materialDepth:this.materialNoDepth;return i.getBatch(n,t)},t.getTextureVS=function(){return"\n\t\t\t\t\t\tattribute vec2 aPosition;\n\t\t\t\t\t\tuniform mat4 matrix_model;\n\t\t\t\t\t\tvarying vec2 uv0;\n\t\t\t\t\t\tvoid main(void) {\n\t\t\t\t\t\t\t\tgl_Position = matrix_model * vec4(aPosition, 0, 1);\n\t\t\t\t\t\t\t\tuv0 = aPosition.xy + 0.5;\n\t\t\t\t\t\t}\n\t\t\t\t"},e.getTextureShader=function(){if(!this.textureShader){var e={attributes:{aPosition:ce},vshader:t.getTextureVS(),fshader:"\n\t\t\t\t\t\t\t\t\t\tprecision lowp float;\n\t\t\t\t\t\t\t\t\t\tvarying vec2 uv0;\n\t\t\t\t\t\t\t\t\t\tuniform sampler2D colorMap;\n\t\t\t\t\t\t\t\t\t\tvoid main (void) {\n\t\t\t\t\t\t\t\t\t\t\t\tgl_FragColor = vec4(texture2D(colorMap, uv0).xyz, 1);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t"};this.textureShader=new ci(this.device,e)}return this.textureShader},e.getDepthTextureShader=function(){if(!this.depthTextureShader){var e=this.device.webgl2?"#define GL2":"",i={attributes:{aPosition:ce},vshader:t.getTextureVS(),fshader:"\n\t\t\t\t\t\t\t\t\t\tprecision "+this.device.precision+" float;\n\t\t\t\t\t\t\t\t\t\t"+e+"\n\t\t\t\t\t\t\t\t\t\t"+ui.screenDepthPS+"\n\t\t\t\t\t\t\t\t\t\tvarying vec2 uv0;\n\t\t\t\t\t\t\t\t\t\tvoid main() {\n\t\t\t\t\t\t\t\t\t\t\t\tfloat depth = getLinearScreenDepth(uv0) * camera_params.x;\n\t\t\t\t\t\t\t\t\t\t\t\tgl_FragColor = vec4(vec3(depth), 1.0);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t"};this.depthTextureShader=new ci(this.device,i)}return this.depthTextureShader},e.getQuadMesh=function(){return this.quadMesh||(this.quadMesh=new ga(this.device),this.quadMesh.setPositions([-.5,-.5,0,.5,-.5,0,-.5,.5,0,.5,.5,0]),this.quadMesh.update(5)),this.quadMesh},e.drawMesh=function(t,e,i,n,s){if(!n){var a=this.getGraphNode(e);n=new Ya(i,t,a)}var r=this.layerMeshInstances.get(s);r||(r=[],this.layerMeshInstances.set(s,r)),r.push(n)},e.drawWireAlignedBox=function(t,e,i,n,s){sh.push(t.x,t.y,t.z,t.x,e.y,t.z,t.x,e.y,t.z,e.x,e.y,t.z,e.x,e.y,t.z,e.x,t.y,t.z,e.x,t.y,t.z,t.x,t.y,t.z,t.x,t.y,e.z,t.x,e.y,e.z,t.x,e.y,e.z,e.x,e.y,e.z,e.x,e.y,e.z,e.x,t.y,e.z,e.x,t.y,e.z,t.x,t.y,e.z,t.x,t.y,t.z,t.x,t.y,e.z,t.x,e.y,t.z,t.x,e.y,e.z,e.x,e.y,t.z,e.x,e.y,e.z,e.x,t.y,t.z,e.x,t.y,e.z),this.getBatch(s,n).addLinesArrays(sh,i),sh.length=0},e.drawWireSphere=function(t,e,i,n,s,a){for(var r=2*Math.PI/n,o=0,h=0;h=0},i.getModels=function(t){return this._models},q(e,[{key:"defaultDrawLayer",get:function(){return this.layers.getLayerById(3)}},{key:"ambientBakeNumSamples",get:function(){return this._ambientBakeNumSamples},set:function(t){this._ambientBakeNumSamples=ot.clamp(Math.floor(t),1,255)}},{key:"ambientBakeSpherePart",get:function(){return this._ambientBakeSpherePart},set:function(t){this._ambientBakeSpherePart=ot.clamp(t,.001,1)}},{key:"clusteredLightingEnabled",get:function(){return this._clusteredLightingEnabled},set:function(t){!this._clusteredLightingEnabled||t?this._clusteredLightingEnabled=t:console.error("Turning off enabled clustered lighting is not currently supported")}},{key:"drawCalls",get:function(){var t=this.layers._meshInstances;return t.length||(this.layers._update(this.device,this.clusteredLightingEnabled),t=this.layers._meshInstances),t},set:function(t){}},{key:"envAtlas",get:function(){return this._envAtlas},set:function(t){t!==this._envAtlas&&(this._envAtlas=t,this.updateShaders=!0)}},{key:"fog",get:function(){return this._fog},set:function(t){t!==this._fog&&(this._fog=t,this.updateShaders=!0)}},{key:"gammaCorrection",get:function(){return this._gammaCorrection},set:function(t){t!==this._gammaCorrection&&(this._gammaCorrection=t,this.updateShaders=!0)}},{key:"layers",get:function(){return this._layers},set:function(t){var e=this._layers;this._layers=t,this.fire("set:layers",e,t)}},{key:"lighting",get:function(){return this._lightingParams}},{key:"lightmapFilterRange",get:function(){return this._lightmapFilterRange},set:function(t){this._lightmapFilterRange=Math.max(t,.001)}},{key:"lightmapFilterSmoothness",get:function(){return this._lightmapFilterSmoothness},set:function(t){this._lightmapFilterSmoothness=Math.max(t,.001)}},{key:"prefilteredCubemaps",get:function(){return this._prefilteredCubemaps},set:function(t){var e=this._prefilteredCubemaps;t=t||[];for(var i=!1,n=!0,s=0;s<6;++s){var a=t[s]||null;e[s]!==a&&(e[s]=a,i=!0),n=n&&!!e[s]}i&&(this._resetSkyboxModel(),n?(this._internalEnvAtlas=Yn.generatePrefilteredAtlas(e,{target:this._internalEnvAtlas}),this._envAtlas||(this.envAtlas=this._internalEnvAtlas)):this._internalEnvAtlas&&(this._envAtlas===this._internalEnvAtlas&&(this.envAtlas=null),this._internalEnvAtlas.destroy(),this._internalEnvAtlas=null))}},{key:"skybox",get:function(){return this._skyboxCubeMap},set:function(t){t!==this._skyboxCubeMap&&(this._skyboxCubeMap=t,this._resetSkyboxModel())}},{key:"skyboxIntensity",get:function(){return this._skyboxIntensity},set:function(t){t!==this._skyboxIntensity&&(this._skyboxIntensity=t,this._resetSkyboxModel())}},{key:"skyboxMip",get:function(){return this._skyboxMip},set:function(t){t!==this._skyboxMip&&(this._skyboxMip=t,this._resetSkyboxModel())}},{key:"skyboxRotation",get:function(){return this._skyboxRotation},set:function(t){this._skyboxRotation.equals(t)||(this._skyboxRotation.copy(t),this._resetSkyboxModel())}},{key:"toneMapping",get:function(){return this._toneMapping},set:function(t){t!==this._toneMapping&&(this._toneMapping=t,this.updateShaders=!0)}}]),e}(m),oh=function(){function t(t){this._blobUrls={};for(var e=0,i=t.length;e=s)throw new Error("Invalid PAX header data format.");var l=parseInt(e.decode(new Uint8Array(t,i+r,h-r)),10),c=e.decode(new Uint8Array(t,i+h+1,l-(h-r)-2)).split("=");if(2!==c.length)throw new Error("Invalid PAX header data format.");0===c[1].length&&(c[1]=null),o.push({name:c[0],value:c[1]}),r+=l}return new n(o)},n.prototype.applyHeader=function(t){for(var e=0;e0&&(a=p.trim()+a.trim())}var m={name:a,start:l,size:o,url:c};return this._globalPaxHeader&&this._globalPaxHeader.applyHeader(m),this._paxHeader&&(this._paxHeader.applyHeader(m),this._paxHeader=null),m},s.prototype.untar=function(t){if(!e)return console.error("Cannot untar because TextDecoder interface is not available for this platform."),[];for(var i=[];this._hasNext();){var n=this._readNextFile();n&&(t&&n.name&&(n.name=t+n.name),i.push(n))}return i},t&&(self.onmessage=function(t){var e=t.data.id;try{var i=new s(t.data.arrayBuffer).untar(t.data.prefix);postMessage({id:e,files:i,arrayBuffer:t.data.arrayBuffer},[t.data.arrayBuffer])}catch(t){postMessage({id:e,error:t.toString()})}})}var lh=null;var ch=function(){function t(t){this._requestId=0,this._pendingRequests={},this._filenamePrefix=t,this._worker=new Worker(function(){if(!lh){var t="("+hh.toString()+")(true)\n\n",e=new Blob([t],{type:"application/javascript"});lh=URL.createObjectURL(e)}return lh}()),this._worker.addEventListener("message",this._onMessage.bind(this))}var e=t.prototype;return e._onMessage=function(t){var e=t.data.id;if(this._pendingRequests[e]){var i=this._pendingRequests[e];if(delete this._pendingRequests[e],t.data.error)i(t.data.error);else{for(var n=t.data.arrayBuffer,s=0,a=t.data.files.length;s0},e.destroy=function(){this._worker&&(this._worker.terminate(),this._worker=null,this._pendingRequests=null)},t}();hh();var uh=function(){function t(t){this.handlerType="bundle",this._assets=t.assets,this._worker=null,this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i=this;lt.get(t.load,{responseType:ht.ResponseType.ARRAY_BUFFER,retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(n,s){if(n)e("Error loading bundle resource "+t.original+": "+n);else try{i._untar(s,e)}catch(i){e("Error loading bundle resource "+t.original+": "+i)}}))},e._untar=function(t,e){var i=this;if(L.workers)i._worker||(i._worker=new ch(i._assets.prefix)),i._worker.untar(t,(function(t,n){e(t,n),i._worker.hasPendingRequests()||(i._worker.destroy(),i._worker=null)}));else{var n=new eh(t).untar(i._assets.prefix);e(null,n)}},e.open=function(t,e){return new oh(e)},e.patch=function(t,e){},t}(),dh=function(){function t(t){this._handlers={},this._requests={},this._cache={},this._app=t}var e=t.prototype;return e.addHandler=function(t,e){this._handlers[t]=e,e._loader=this},e.removeHandler=function(t){delete this._handlers[t]},e.getHandler=function(t){return this._handlers[t]},e.load=function(t,e,i,n){var s=this._handlers[e];if(s)if(t){var a=t+e;if(void 0!==this._cache[a])i(null,this._cache[a]);else if(this._requests[a])this._requests[a].push(i);else{this._requests[a]=[i];var r=this,o=function(t,e){t?r._onFailure(a,t):s.load(e,(function(t,i,o){if(r._requests[a])if(t)r._onFailure(a,t);else try{r._onSuccess(a,s.open(e.original,i,n),o)}catch(t){r._onFailure(a,t)}}),n)},h=t.split("?")[0];if(this._app.enableBundles&&this._app.bundles.hasUrl(h)){if(!this._app.bundles.canLoadUrl(h))return void o("Bundle for "+t+" not loaded yet");this._app.bundles.loadUrl(h,(function(t,e){o(t,{load:e,original:h})}))}else o(null,{load:t,original:n&&n.file.filename||t})}}else this._loadNull(s,i,n);else i("No handler for asset type: '"+e+"' when loading ["+t+"]")},e._loadNull=function(t,e,i){t.load(null,(function(n,s,a){if(n)e(n);else try{e(null,t.open(null,s,i),a)}catch(t){e(t)}}),i)},e._onSuccess=function(t,e,i){this._cache[t]=e;for(var n=0;n=0&&t<=1?0:1})),_h(["fr","pt"],(function(t){return t>=0&&t<2?0:1})),_h(["da"],(function(t){return 1===t||!Number.isInteger(t)&&t>=0&&t<=1?0:1})),_h(["de","en","it","el","es","tr","fi","sv","nb","no","ur"],(function(t){return 1===t?0:1})),_h(["ru","uk"],(function(t){if(Number.isInteger(t)){var e=t%10,i=t%100;if(1===e&&11!==i)return 0;if(e>=2&&e<=4&&(i<12||i>14))return 1;if(0===e||e>=5&&e<=9||i>=11&&i<=14)return 2}return 3})),_h(["pl"],(function(t){if(Number.isInteger(t)){if(1===t)return 0;var e=t%10,i=t%100;if(e>=2&&e<=4&&(i<12||i>14))return 1;if(e>=0&&e<=1||e>=5&&e<=9||i>=12&&i<=14)return 2}return 3})),_h(["ar"],(function(t){if(0===t)return 0;if(1===t)return 1;if(2===t)return 2;if(Number.isInteger(t)){var e=t%100;if(e>=3&&e<=10)return 3;if(e>=11&&e<=99)return 4}return 5}));var yh=mh[gh(fh)];function xh(t){return mh[t]||yh}var bh=new RegExp("^\\s*(?:(?:[a-z]+[a-z0-9\\-\\+\\.]*:)?//|data:|blob:)","i"),Sh=function(){function t(t,e,i,n,s,a){this.url=t||"",this.filename=e||"",this.hash=void 0===i?null:i,this.size=void 0===n?null:n,this.opt=void 0===s?null:s,this.contents=a||null}return t.prototype.equals=function(t){return this.url===t.url&&this.filename===t.filename&&this.hash===t.hash&&this.size===t.size&&this.opt===t.opt&&this.contents===t.contents},t}(),wh=-1,Th={pvr:"extCompressedTexturePVRTC",dxt:"extCompressedTextureS3TC",etc2:"extCompressedTextureETC",etc1:"extCompressedTextureETC1",basis:"canvas"},Ah=["pvr","dxt","etc2","etc1","basis"],Mh=function(t){function e(e,i,n,s,a){var r;return(r=t.call(this)||this)._id=wh--,r.name=e||"",r.type=i,r.tags=new et(Z(r)),r._preload=!1,r._file=null,r._data=s||{},r.options=a||{},r._resources=[],r._i18n={},r.loaded=!1,r.loading=!1,r.registry=null,n&&(r.file=n),r}j(e,t);var i=e.prototype;return i.getFileUrl=function(){var t=this.file;if(!t||!t.url)return null;var e=t.url;if(this.registry&&this.registry.prefix&&!bh.test(e)&&(e=this.registry.prefix+e),"script"!==this.type&&t.hash){var i=-1!==e.indexOf("?")?"&":"?";e+=i+"t="+t.hash}return e},i.getAbsoluteUrl=function(t){if(t.startsWith("blob:")||t.startsWith("data:"))return t;var e=v.getDirectory(this.file.url);return v.join(e,t)},i.getLocalizedAssetId=function(t){return t=vh(t,this._i18n),this._i18n[t]||null},i.addLocalizedAssetId=function(t,e){this._i18n[t]=e,this.fire("add:localized",t,e)},i.removeLocalizedAssetId=function(t){var e=this._i18n[t];e&&(delete this._i18n[t],this.fire("remove:localized",t,e))},i.ready=function(t,e){e=e||this,this.resource?t.call(e,this):this.once("load",(function(i){t.call(e,i)}))},i.reload=function(){this.loaded&&(this.loaded=!1,this.registry.load(this))},i.unload=function(){if(this.loaded||0!==this._resources.length){this.fire("unload",this),this.registry.fire("unload:"+this.id,this);var t=this._resources;this.resources=[],this.loaded=!1,this.file&&this.registry._loader.clearCache(this.getFileUrl(),this.type);for(var e=0;e0,maxRetries:n},e)},q(e,[{key:"id",get:function(){return this._id},set:function(t){this._id=t}},{key:"file",get:function(){return this._file},set:function(t){var e=this;if(t&&t.variants&&-1!==["texture","textureatlas","bundle"].indexOf(this.type)){var i,n,s=(null==(i=this.registry)||null==(n=i._loader)?void 0:n._app)||da(),a=null==s?void 0:s.graphicsDevice;if(a)for(var r=function(i,n){var r=Ah[i];if(t.variants[r]&&a[Th[r]])return t=t.variants[r],"break";if(s.enableBundles){var o=s.bundles.listBundlesForAsset(e);if(o&&o.find((function(t){var e;return null==t||null==(e=t.file)?void 0:e.variants[r]})))return"break"}},o=0,h=Ah.length;o0?console.assert("Script Ordering Error. Contact support@playcanvas.com"):t._types.push(e)};var e=t.prototype;return e.load=function(e,i){var n=this;"string"==typeof e&&(e={load:e,original:e});var s=this;Ih.app=this._app,this._loadScript(e.load,(function(e,a,r){if(e)i(e);else if(Ih.legacy){var o=null;t._types.length&&(o=t._types.pop()),o?n._scripts[a]=o:o=null,i(null,o,r)}else{for(var h={},l=0;l0?i[0]:null},e}(m),Dh=function(){function t(t){this._assets=t,this._bundleAssets={},this._assetsInBundles={},this._urlsInBundles={},this._fileRequests={},this._assets.on("add",this._onAssetAdded,this),this._assets.on("remove",this._onAssetRemoved,this)}var e=t.prototype;return e._onAssetAdded=function(t){if("bundle"===t.type){this._bundleAssets[t.id]=t,this._registerBundleEventListeners(t.id);for(var e=0,i=t.data.assets.length;e=3&&i.length<=4){for(var u=0;ui.ind&&(h=i.ind),this._insertScriptInstance(r,h,o),this._scriptsIndex[a]={instance:r,onSwap:function(){n.swap(a)}},this[a]=r,i.preloading||r.__initializeAttributes(),this.fire("create",a,r),this.fire("create:"+a,r),this.system.app.scripts.on("swap:"+a,this._scriptsIndex[a].onSwap),i.preloading||(r.enabled&&!r._initialized&&(r._initialized=!0,r.initialize&&this._scriptMethod(r,e.scriptMethods.initialize)),r.enabled&&!r._postInitialized&&(r._postInitialized=!0,r.postInitialize&&this._scriptMethod(r,e.scriptMethods.postInitialize))),r}}else this._scriptsIndex[a]={awaiting:!0,ind:this._scripts.length};return null},i.destroy=function(t){var e=t,i=t;"string"==typeof i?i=this.system.app.scripts.get(i):i&&(e=i.__name);var n=this._scriptsIndex[e];if(delete this._scriptsIndex[e],!n)return!1;var s=n.instance;if(s&&!s._destroyed)if(s.enabled=!1,s._destroyed=!0,this._isLoopingThroughScripts)this._destroyedScripts.push(s);else{var a=this._removeScriptInstance(s);a>=0&&this._resetExecutionOrder(a,this._scripts.length)}return this.system.app.scripts.off("swap:"+e,n.onSwap),delete this[e],this.fire("destroy",e,s||null),this.fire("destroy:"+e,s||null),s&&s.fire("destroy"),!0},i.swap=function(t){var i=t,n=t;"string"==typeof n?n=this.system.app.scripts.get(n):n&&(i=n.__name);var s=this._scriptsIndex[i];if(!s||!s.instance)return!1;var a=s.instance,r=this._scripts.indexOf(a),o=new n({app:this.system.app,entity:this.entity,enabled:a.enabled,attributes:a.__attributes});return!!o.swap&&(o.__initializeAttributes(),this._scripts[r]=o,this._scriptsIndex[i].instance=o,this[i]=o,o.__executionOrder=r,a.update&&this._updateList.remove(a),a.postUpdate&&this._postUpdateList.remove(a),o.update&&this._updateList.insert(o),o.postUpdate&&this._postUpdateList.insert(o),this._scriptMethod(o,e.scriptMethods.swap,a),this.fire("swap",i,o),this.fire("swap:"+i,o),!0)},i.resolveDuplicatedEntityReferenceProperties=function(t,e){var i=this.entity.script;for(var n in t._scriptsIndex){var s=this.system.app.scripts.get(n);if(s){var a=t._scriptsIndex[n];if(a&&a.instance){var r=i[n].__attributesRaw,o=i[n].__attributes;if(r||o){var h=!!r,l=a.instance.__attributes;for(var c in l)if(l[c]){var u=s.attributes.get(c);if(u)if("entity"===u.type)this._resolveEntityScriptAttribute(u,c,l[c],h,r||o,e);else if("json"===u.type&&Array.isArray(u.schema))for(var d=l[c],f=r?r[c]:o[c],p=0;p=i||e<0)return!1;var n=t,s=t;"string"!=typeof s?s=t.__name:n=null;var a=this._scriptsIndex[s];if(!a||!a.instance)return!1;var r=a.instance;if(n&&!(r instanceof n))return!1;var o=this._scripts.indexOf(r);return-1!==o&&o!==e&&(this._scripts.splice(e,0,this._scripts.splice(o,1)[0]),this._resetExecutionOrder(0,i),this._updateList.sort(),this._postUpdateList.sort(),this.fire("move",s,r,e,o),this.fire("move:"+s,r,e,o),!0)},q(e,[{key:"enabled",get:function(){return this._enabled},set:function(t){var e=this._enabled;this._enabled=t,this.fire("set","enabled",e,t)}},{key:"scripts",get:function(){return this._scripts},set:function(t){for(var e in this._scriptsData=t,t)if(t.hasOwnProperty(e)){var i=this._scriptsIndex[e];if(i){if("boolean"==typeof t[e].enabled&&(i.enabled=!!t[e].enabled),"object"==typeof t[e].attributes)for(var n in t[e].attributes)if(!Bh.reservedNames.has(n)){if(!i.__attributes.hasOwnProperty(n)){var s=this.system.app.scripts.get(e);s&&s.attributes.add(n,{})}i[n]=t[e].attributes[n]}}else console.log(this.order)}}}]),e}(Nh);Uh.scriptMethods={initialize:"initialize",postInitialize:"postInitialize",update:"update",postUpdate:"postUpdate",swap:"swap"};var zh=new RegExp("^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^\\(\\s\\/]*)\\s*"),Vh=function(t){function e(e){var i;return(i=t.call(this)||this).app=void 0,i.entity=void 0,i._enabled=void 0,i._enabledOld=void 0,i._initialized=void 0,i._postInitialized=void 0,i.__destroyed=void 0,i.__attributes=void 0,i.__attributesRaw=void 0,i.__scriptType=void 0,i.__executionOrder=void 0,i.initScriptType(e),i}j(e,t);var i=e.prototype;return i.initScriptType=function(t){var e=this.constructor;this.app=t.app,this.entity=t.entity,this._enabled="boolean"!=typeof t.enabled||t.enabled,this._enabledOld=this.enabled,this.__destroyed=!1,this.__attributes={},this.__attributesRaw=t.attributes||{},this.__scriptType=e,this.__executionOrder=-1},e.__getScriptName=function(t){if("function"==typeof t){if("name"in Function.prototype)return t.name;if(t===Function||t===Function.prototype.constructor)return"Function";var e=(""+t).match(zh);return e?e[1]:void 0}},i.__initializeAttributes=function(t){if(t||this.__attributesRaw){for(var e in this.__scriptType.attributes.index)this.__attributesRaw&&this.__attributesRaw.hasOwnProperty(e)?this[e]=this.__attributesRaw[e]:this.__attributes.hasOwnProperty(e)||(this.__scriptType.attributes.index[e].hasOwnProperty("default")?this[e]=this.__scriptType.attributes.index[e].default:this[e]=null);this.__attributesRaw=null}},e.extend=function(t){for(var e in t)t.hasOwnProperty(e)&&(this.prototype[e]=t[e])},q(e,[{key:"enabled",get:function(){return this._enabled&&!this._destroyed&&this.entity.script.enabled&&this.entity.enabled},set:function(t){this._enabled=!!t,this.enabled!==this._enabledOld&&(this._enabledOld=this.enabled,this.fire(this.enabled?"enable":"disable"),this.fire("state",this.enabled),!this._initialized&&this.enabled&&(this._initialized=!0,this.__initializeAttributes(!0),this.initialize&&this.entity.script._scriptMethod(this,Uh.scriptMethods.initialize)),this._initialized&&!this._postInitialized&&this.enabled&&!this.entity.script._beingEnabled&&(this._postInitialized=!0,this.postInitialize&&this.entity.script._scriptMethod(this,Uh.scriptMethods.postInitialize)))}}],[{key:"scriptName",get:function(){return this.__name}},{key:"attributes",get:function(){return this.hasOwnProperty("__attributes")||(this.__attributes=new Bh(this)),this.__attributes}}]),e}(m);Vh.__name=null;var Gh=function(t){function e(e){var i;return(i=t.call(this)||this).app=e,i._scripts={},i._list=[],i}j(e,t);var i=e.prototype;return i.destroy=function(){this.app=null,this.off()},i.add=function(t){var e=this,i=t.__name;return this._scripts.hasOwnProperty(i)?(setTimeout((function(){if(t.prototype.swap){var n=e._scripts[i],s=e._list.indexOf(n);e._list[s]=t,e._scripts[i]=t,e.fire("swap",i,t),e.fire("swap:"+i,t)}else console.warn("script registry already has '"+i+"' script, define 'swap' method for new script type to enable code hot swapping")})),!1):(this._scripts[i]=t,this._list.push(t),this.fire("add",i,t),this.fire("add:"+i,t),setTimeout((function(){if(e._scripts.hasOwnProperty(i)&&e.app&&e.app.systems&&e.app.systems.script){var t,n=e.app.systems.script._components,s=[],a=[];for(n.loopIndex=0;n.loopIndex0&&this.loader.enableRetry(t.maxAssetRetries),t.useDevicePixelRatio||(t.useDevicePixelRatio=t.use_device_pixel_ratio),t.resolutionMode||(t.resolutionMode=t.resolution_mode),t.fillMode||(t.fillMode=t.fill_mode),this._width=t.width,this._height=t.height,t.useDevicePixelRatio&&(this.graphicsDevice.maxPixelRatio=window.devicePixelRatio),this.setCanvasResolution(t.resolutionMode,this._width,this._height),this.setCanvasFillMode(t.fillMode,this._width,this._height),t.layers&&t.layerOrder){var i=new Lo("application"),n={};for(var s in t.layers){var a=t.layers[s];a.id=parseInt(s,10),a.enabled=1!==a.id,n[s]=new To(a)}for(var r=0,o=t.layerOrder.length;r0,d.tags.add(u.tags),u.i18n)for(var f in u.i18n)d.addLocalizedAssetId(f,u.i18n[f]);this.assets.add(d)}},n._getScriptReferences=function(t){var e=[];t.settings.priority_scripts&&(e=t.settings.priority_scripts);for(var i=[],n={},s=0;sn._timeToCountFrames?(n.fps=n._fpsAccum,n._fpsAccum=0,n._timeToCountFrames=t+1e3):n._fpsAccum++,this.stats.drawCalls.total=this.graphicsDevice._drawCallsPerFrame,this.graphicsDevice._drawCallsPerFrame=0},n._fillFrameStats=function(){var t=this.stats.frame;t.cameras=this.renderer._camerasRendered,t.materials=this.renderer._materialSwitches,t.shaders=this.graphicsDevice._shaderSwitchesPerFrame,t.shadowMapUpdates=this.renderer._shadowMapUpdates,t.shadowMapTime=this.renderer._shadowMapTime,t.depthMapTime=this.renderer._depthMapTime,t.forwardTime=this.renderer._forwardTime;var e=this.graphicsDevice._primsPerFrame;t.triangles=e[4]/3+Math.max(e[5]-2,0)+Math.max(e[6]-2,0),t.cullTime=this.renderer._cullTime,t.sortTime=this.renderer._sortTime,t.skinTime=this.renderer._skinTime,t.morphTime=this.renderer._morphTime,t.lightClusters=this.renderer._lightClusters,t.lightClustersTime=this.renderer._lightClustersTime,t.otherPrimitives=0;for(var i=0;ii/n?e=(t=i)/s:t=(e=n)*s}else this._fillMode===$h&&(t=i,e=n);return this.graphicsDevice.canvas.style.width=t+"px",this.graphicsDevice.canvas.style.height=e+"px",this.updateCanvasSize(),{width:t,height:e}}},n.updateCanvasSize=function(){var t;if(this._allowResize&&(null==(t=this.xr)||!t.active)&&this._resolutionMode===Jh){var e=this.graphicsDevice.canvas;this.graphicsDevice.resizeCanvas(e.clientWidth,e.clientHeight)}},n.onLibrariesLoaded=function(){this._librariesLoaded=!0,this.systems.rigidbody&&this.systems.rigidbody.onLibraryLoaded()},n.applySceneSettings=function(t){var e;if(this.systems.rigidbody&&"undefined"!=typeof Ammo){var i=t.physics.gravity;this.systems.rigidbody.gravity.set(i[0],i[1],i[2])}this.scene.applySettings(t),t.render.hasOwnProperty("skybox")&&(t.render.skybox?(e=this.assets.get(t.render.skybox))?this.setSkybox(e):this.assets.once("add:"+t.render.skybox,this.setSkybox,this):this.setSkybox(null))},n.setAreaLightLuts=function(t){if(t){var e=this.graphicsDevice;t.ready((function(t){Zo.set(e,t.resource)})),this.assets.load(t)}},n.setSkybox=function(t){var e=this;if(t!==this._skyboxAsset){var i=function(){e.setSkybox(null)},n=function(){e.scene.setSkybox(e._skyboxAsset?e._skyboxAsset.resources:null)};this._skyboxAsset&&(this.assets.off("load:"+this._skyboxAsset.id,n,this),this.assets.off("remove:"+this._skyboxAsset.id,i,this),this._skyboxAsset.off("change",n,this)),this._skyboxAsset=t,this._skyboxAsset&&(this.assets.on("load:"+this._skyboxAsset.id,n,this),this.assets.once("remove:"+this._skyboxAsset.id,i,this),this._skyboxAsset.on("change",n,this),0!==this.scene.skyboxMip||this._skyboxAsset.loadFaces||(this._skyboxAsset.loadFaces=!0),this.assets.load(this._skyboxAsset)),n()}},n._firstBake=function(){this.lightmapper&&this.lightmapper.bake(null,this.scene.lightmapMode)},n._firstBatch=function(){this.batcher.generate()},n._processTimestamp=function(t){return t},n.drawLine=function(t,e,i,n,s){this.scene.drawLine(t,e,i,n,s)},n.drawLines=function(t,e,i,n){void 0===i&&(i=!0),void 0===n&&(n=this.scene.defaultDrawLayer),this.scene.drawLines(t,e,i,n)},n.drawLineArrays=function(t,e,i,n){void 0===i&&(i=!0),void 0===n&&(n=this.scene.defaultDrawLayer),this.scene.drawLineArrays(t,e,i,n)},n.drawWireSphere=function(t,e,i,n,s,a){void 0===i&&(i=ct.WHITE),void 0===n&&(n=20),void 0===s&&(s=!0),void 0===a&&(a=this.scene.defaultDrawLayer),this.scene.immediate.drawWireSphere(t,e,i,n,s,a)},n.drawWireAlignedBox=function(t,e,i,n,s){void 0===i&&(i=ct.WHITE),void 0===n&&(n=!0),void 0===s&&(s=this.scene.defaultDrawLayer),this.scene.immediate.drawWireAlignedBox(t,e,i,n,s)},n.drawMeshInstance=function(t,e){void 0===e&&(e=this.scene.defaultDrawLayer),this.scene.immediate.drawMesh(null,null,null,t,e)},n.drawMesh=function(t,e,i,n){void 0===n&&(n=this.scene.defaultDrawLayer),this.scene.immediate.drawMesh(e,i,t,null,n)},n.drawQuad=function(t,e,i){void 0===i&&(i=this.scene.defaultDrawLayer),this.scene.immediate.drawMesh(e,t,this.scene.immediate.getQuadMesh(),null,i)},n.drawTexture=function(t,e,i,n,s,a,r){void 0===r&&(r=this.scene.defaultDrawLayer);var o=new wt;o.setTRS(new pt(t,e,0),Tt.IDENTITY,new pt(i,n,0)),a||((a=new $n).setParameter("colorMap",s),a.shader=this.scene.immediate.getTextureShader(),a.update()),this.drawQuad(o,a,r)},n.drawDepthTexture=function(t,e,i,n,s){void 0===s&&(s=this.scene.defaultDrawLayer);var a=new $n;a.shader=this.scene.immediate.getDepthTextureShader(),a.update(),this.drawTexture(t,e,i,n,null,a,s)},n.destroy=function(){var t;if(this._inFrameUpdate)this._destroyRequested=!0;else{var e=this.graphicsDevice.canvas.id;this.off("librariesloaded"),"undefined"!=typeof document&&(document.removeEventListener("visibilitychange",this._visibilityChangeHandler,!1),document.removeEventListener("mozvisibilitychange",this._visibilityChangeHandler,!1),document.removeEventListener("msvisibilitychange",this._visibilityChangeHandler,!1),document.removeEventListener("webkitvisibilitychange",this._visibilityChangeHandler,!1)),this._visibilityChangeHandler=null,this.root.destroy(),this.root=null,this.mouse&&(this.mouse.off(),this.mouse.detach(),this.mouse=null),this.keyboard&&(this.keyboard.off(),this.keyboard.detach(),this.keyboard=null),this.touch&&(this.touch.off(),this.touch.detach(),this.touch=null),this.elementInput&&(this.elementInput.detach(),this.elementInput=null),this.controller&&(this.controller=null),this.systems.destroy(),this.scene.layers&&this.scene.layers.destroy();for(var n=this.assets.list(),s=0;s0&&e.push(new ul(t,l))}}for(var d=0;d0){var c=1===e?2:1;this.setLightmapping(o,!1,c),this.initBake(i),this.bakeInternal(c,o,h);var u=64;1===e&&(u|=Bt),this.scene.ambientBake&&(u|=Gt),this.setLightmapping(o,!0,c,u),this.finishBake(o)}var d=it();this.stats.totalRenderTime=d-n,this.stats.shadersLinked=i._shaderStats.linked-s,this.stats.compileTime=i._shaderStats.compileTime-r,this.stats.fboTime=i._renderTargetCreationTime-a,this.stats.lightmapCount=o.length},e.allocateTextures=function(t,e){for(var i=0;i0){e.copy(t[0].aabb);for(var i=1;i1&&x>1&&v.light.bakeDir&&(x=1);for(var b=0;b1&&v.prepareVirtualLight(b,x),v.startBake();var S=!1,w=this.lightCameraPrepare(s,v);for(m=0;m0&&b>0)&&!(y&&p>0);p++){var M=T.renderTargets[p],C=T.renderTargets[p].colorBuffer.width,E=this.renderTargets.get(C),P=E.colorBuffer;0===p?g=n.updateShaders:g&&(n.updateShaders=!0);var R=this.passMaterials[p];for(y&&b+1===x&&0===p&&(R=this.ambientAOMaterial),c=0;c=P)&&this.calcSpawnPosition(i,n,s,a,M);var k=R>0&&R0&&(1===u.emitterShape?(xl.copy(bl).mulScalar(2).sub(pt.ONE).normalize(),Tl.add(xl.mulScalar(u.initialVelocity))):Tl.add(pt.FORWARD.mulScalar(u.initialVelocity))),wl.x+=(Al.x-wl.x)*bl.x,wl.y+=(Al.y-wl.y)*bl.y,wl.z+=(Al.z-wl.z)*bl.z,_+=(g-_)*bl.y,L=(L+1e4*C%1*(v-L))*_l,D=1e3*C%1*(x-y),u.meshInstance.node&&(u.localSpace?(Tl.x/=hl.x,Tl.y/=hl.y,Tl.z/=hl.z):gl.transformPoint(Tl,Tl)),u.localSpace?(vl.transformPoint(wl,wl),Tl.add(wl).add(Cl)):(Tl.add(wl.mul(hl)),Tl.add(Cl.mul(hl))),Rl.copy(Tl),El.copy(Sl).add(Tl.mulScalar(r)),Pl.copy(El),i[4*M]=Pl.x,i[4*M+1]=Pl.y,i[4*M+2]=Pl.z,i[4*M+3]+=_*r,u.wrap&&u.wrapBounds&&(u.localSpace||Pl.sub(a),Pl.x=kl(Pl.x,u.wrapBounds.x)-.5*u.wrapBounds.x,Pl.y=kl(Pl.y,u.wrapBounds.y)-.5*u.wrapBounds.y,Pl.z=kl(Pl.z,u.wrapBounds.z)-.5*u.wrapBounds.z,u.localSpace||Pl.add(a)),u.sort>0&&(1===u.sort?(Il.copy(Pl).sub(S),u.particleDistance[M]=-(Il.x*Il.x+Il.y*Il.y+Il.z*Il.z)):2===u.sort?u.particleDistance[M]=R:3===u.sort&&(u.particleDistance[M]=-R))),o?R<0&&(i[4*M+3+2*u.numParticlesPot*4]=-1):(R>=P&&(R-=Math.max(P,(u.numParticles-1)*E),i[4*M+3+2*u.numParticlesPot*4]=u.loop?1:-1),R<0&&u.loop&&(i[4*M+3+2*u.numParticlesPot*4]=1)),i[4*M+3+2*u.numParticlesPot*4]<0&&(k=!1),i[4*M+3+4*u.numParticlesPot]=R;for(var O=0;O0&&u.camera){for(var V=u.useMesh?6:4,G=u.particleDistance,W=0;Wt.maxTextureSize&&(this.numParticles=t.maxTextureSize),ic("rate",1),ic("rate2",this.rate),ic("lifetime",50),ic("emitterExtents",new pt(0,0,0)),ic("emitterExtentsInner",new pt(0,0,0)),ic("emitterRadius",0),ic("emitterRadiusInner",0),ic("emitterShape",0),ic("initialVelocity",1),ic("wrap",!1),ic("localSpace",!1),ic("screenSpace",!1),ic("wrapBounds",null),ic("colorMap",this.defaultParamTexture),ic("normalMap",null),ic("loop",!0),ic("preWarm",!1),ic("sort",0),ic("mode",0),ic("scene",null),ic("lighting",!1),ic("halfLambert",!1),ic("intensity",1),ic("stretch",0),ic("alignToMotion",!1),ic("depthSoftening",0),ic("mesh",null),ic("particleNormal",new pt(0,1,0)),ic("orientation",0),ic("depthWrite",!1),ic("noFog",!1),ic("blendType",2),ic("node",null),ic("startAngle",0),ic("startAngle2",this.startAngle),ic("animTilesX",1),ic("animTilesY",1),ic("animStartFrame",0),ic("animNumFrames",1),ic("animNumAnimations",1),ic("animIndex",0),ic("randomizeAnimIndex",!1),ic("animSpeed",1),ic("animLoop",!0),this._gpuUpdater=new zl(this,i),this._cpuUpdater=new Fl(this),this.constantLightCube=i.scope.resolve("lightCube[0]"),this.emitterPosUniform=new Float32Array(3),this.wrapBoundsUniform=new Float32Array(3),this.emitterScaleUniform=new Float32Array([1,1,1]),ic("colorGraph",Kl),ic("colorGraph2",this.colorGraph),ic("scaleGraph",Yl),ic("scaleGraph2",this.scaleGraph),ic("alphaGraph",Yl),ic("alphaGraph2",this.alphaGraph),ic("localVelocityGraph",jl),ic("localVelocityGraph2",this.localVelocityGraph),ic("velocityGraph",jl),ic("velocityGraph2",this.velocityGraph),ic("rotationSpeedGraph",ql),ic("rotationSpeedGraph2",this.rotationSpeedGraph),ic("radialSpeedGraph",ql),ic("radialSpeedGraph2",this.radialSpeedGraph),this.lightCube=new Float32Array(18),this.lightCubeDir=new Array(6),this.lightCubeDir[0]=new pt(-1,0,0),this.lightCubeDir[1]=new pt(1,0,0),this.lightCubeDir[2]=new pt(0,-1,0),this.lightCubeDir[3]=new pt(0,1,0),this.lightCubeDir[4]=new pt(0,0,-1),this.lightCubeDir[5]=new pt(0,0,1),this.animTilesParams=new Float32Array(2),this.animParams=new Float32Array(4),this.animIndexParams=new Float32Array(2),this.internalTex0=null,this.internalTex1=null,this.internalTex2=null,this.colorParam=null,this.vbToSort=null,this.vbOld=null,this.particleDistance=null,this.camera=null,this.swapTex=!1,this.useMesh=!0,this.useCpu=!t.supportsGpuParticles,this.pack8=!0,this.localBounds=new Rt,this.worldBoundsNoTrail=new Rt,this.worldBoundsTrail=[new Rt,new Rt],this.worldBounds=new Rt,this.worldBoundsSize=new pt,this.prevWorldBoundsSize=new pt,this.prevWorldBoundsCenter=new pt,this.prevEmitterExtents=this.emitterExtents,this.prevEmitterRadius=this.emitterRadius,this.worldBoundsMul=new pt,this.worldBoundsAdd=new pt,this.timeToSwitchBounds=0,this.shaderParticleUpdateRespawn=null,this.shaderParticleUpdateNoRespawn=null,this.shaderParticleUpdateOnStop=null,this.numParticleVerts=0,this.numParticleIndices=0,this.material=null,this.meshInstance=null,this.drawOrder=0,this.seed=Math.random(),this.fixedTimeStep=1/60,this.maxSubSteps=10,this.simTime=0,this.simTimeTotal=0,this.beenReset=!1,this._layer=null,this.rebuild()}var e=t.prototype;return e.onChangeCamera=function(){this.regenShader(),this.resetMaterial()},e.calculateBoundsMad=function(){this.worldBoundsMul.x=1/this.worldBoundsSize.x,this.worldBoundsMul.y=1/this.worldBoundsSize.y,this.worldBoundsMul.z=1/this.worldBoundsSize.z,this.worldBoundsAdd.copy(this.worldBounds.center).mul(this.worldBoundsMul).mulScalar(-1),this.worldBoundsAdd.x+=.5,this.worldBoundsAdd.y+=.5,this.worldBoundsAdd.z+=.5},e.calculateWorldBounds=function(){if(this.node){if(this.prevWorldBoundsSize.copy(this.worldBoundsSize),this.prevWorldBoundsCenter.copy(this.worldBounds.center),!this.useCpu){(0===this.emitterShape?!this.emitterExtents.equals(this.prevEmitterExtents):!(this.emitterRadius===this.prevEmitterRadius))&&this.calculateLocalBounds()}var t=this.node.getWorldTransform();this.localSpace?this.worldBoundsNoTrail.copy(this.localBounds):this.worldBoundsNoTrail.setFromTransformedAabb(this.localBounds,t),this.worldBoundsTrail[0].add(this.worldBoundsNoTrail),this.worldBoundsTrail[1].add(this.worldBoundsNoTrail);var e=this.simTimeTotal;e>=this.timeToSwitchBounds&&(this.worldBoundsTrail[0].copy(this.worldBoundsTrail[1]),this.worldBoundsTrail[1].copy(this.worldBoundsNoTrail),this.timeToSwitchBounds=e+this.lifetime),this.worldBounds.copy(this.worldBoundsTrail[0]),this.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2),this.localSpace?(this.meshInstance.aabb.setFromTransformedAabb(this.worldBounds,t),this.meshInstance.mesh.aabb.setFromTransformedAabb(this.worldBounds,t)):(this.meshInstance.aabb.copy(this.worldBounds),this.meshInstance.mesh.aabb.copy(this.worldBounds)),this.meshInstance._aabbVer=1-this.meshInstance._aabbVer,this.pack8&&this.calculateBoundsMad()}},e.resetWorldBounds=function(){this.node&&(this.worldBoundsNoTrail.setFromTransformedAabb(this.localBounds,this.localSpace?wt.IDENTITY:this.node.getWorldTransform()),this.worldBoundsTrail[0].copy(this.worldBoundsNoTrail),this.worldBoundsTrail[1].copy(this.worldBoundsNoTrail),this.worldBounds.copy(this.worldBoundsTrail[0]),this.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2),this.prevWorldBoundsSize.copy(this.worldBoundsSize),this.prevWorldBoundsCenter.copy(this.worldBounds.center),this.simTimeTotal=0,this.timeToSwitchBounds=0)},e.calculateLocalBounds=function(){for(var t,e,i,n=Number.MAX_VALUE,s=Number.MAX_VALUE,a=Number.MAX_VALUE,r=-Number.MAX_VALUE,o=-Number.MAX_VALUE,h=-Number.MAX_VALUE,l=0,c=0,u=this.lifetime/this.precision,d=[this.qVelocity,this.qVelocity2],f=[this.qLocalVelocity,this.qLocalVelocity2],p=[0,0],m=[0,0],_=[0,0],g=[0,0],v=[0,0],y=0;y0||t.maxVertexTextures<=1||t.fragmentUniformsCount<64||t.forceCpuParticles||!t.extTextureFloat,this._destroyResources(),this.pack8=(this.pack8||!t.textureFloatRenderable)&&!this.useCpu,Zl=this.useCpu||this.pack8?4:2,this.useMesh=!1,this.mesh)&&(this.numParticles*this.mesh.vertexBuffer.numVertices>65535||(this.useMesh=!0));this.numParticlesPot=ot.nextPowerOfTwo(this.numParticles),this.rebuildGraphs(),this.calculateLocalBounds(),this.resetWorldBounds(),this.node&&(this.worldBounds.setFromTransformedAabb(this.localBounds,this.localSpace?wt.IDENTITY:this.node.getWorldTransform()),this.worldBoundsTrail[0].copy(this.worldBounds),this.worldBoundsTrail[1].copy(this.worldBounds),this.worldBoundsSize.copy(this.worldBounds.halfExtents).mulScalar(2),this.prevWorldBoundsSize.copy(this.worldBoundsSize),this.prevWorldBoundsCenter.copy(this.worldBounds.center),this.pack8&&this.calculateBoundsMad()),this.vbToSort=new Array(this.numParticles);for(var e=0;e=1&&(this.animTilesX>1||this.animTilesY>1)&&(this.colorMap&&this.colorMap!==this.defaultParamTexture||this.normalMap)},e.rebuildGraphs=function(){var t=this.precision,e=this.graphicsDevice;this.qLocalVelocity=this.localVelocityGraph.quantize(t),this.qVelocity=this.velocityGraph.quantize(t),this.qColor=this.colorGraph.quantizeClamped(t,0,1),this.qRotSpeed=this.rotationSpeedGraph.quantize(t),this.qScale=this.scaleGraph.quantize(t),this.qAlpha=this.alphaGraph.quantize(t),this.qRadialSpeed=this.radialSpeedGraph.quantize(t),this.qLocalVelocity2=this.localVelocityGraph2.quantize(t),this.qVelocity2=this.velocityGraph2.quantize(t),this.qColor2=this.colorGraph2.quantizeClamped(t,0,1),this.qRotSpeed2=this.rotationSpeedGraph2.quantize(t),this.qScale2=this.scaleGraph2.quantize(t),this.qAlpha2=this.alphaGraph2.quantize(t),this.qRadialSpeed2=this.radialSpeedGraph2.quantize(t);for(var i=0;i0&&t.setParameter("softening",1/(this.depthSoftening*this.depthSoftening*100)),this.stretch>0&&(t.cull=0),this._compParticleFaceParams()},e._compParticleFaceParams=function(){var t,e;if(0===this.orientation)t=new Float32Array([1,0,0]),e=new Float32Array([0,0,1]);else{var i;if(1===this.orientation)i=this.particleNormal.normalize();else i=(null===this.node?wt.IDENTITY:this.node.getWorldTransform()).transformVector(this.particleNormal).normalize();var n=new pt(1,0,0);1===Math.abs(n.dot(i))&&n.set(0,0,1);var s=(new pt).cross(i,n).normalize();n.cross(s,i).normalize(),t=new Float32Array([n.x,n.y,n.z]),e=new Float32Array([s.x,s.y,s.z])}this.material.setParameter("faceTangent",t),this.material.setParameter("faceBinorm",e)},e._allocate=function(t){var e=t*this.numParticleVerts,i=t*this.numParticleIndices;if(void 0===this.vertexBuffer||this.vertexBuffer.getNumVertices()!==e){if(this.useCpu){var n=[{semantic:Me,components:4,type:6},{semantic:Ce,components:4,type:6},{semantic:Ee,components:4,type:6},{semantic:Pe,components:1,type:6},{semantic:Re,components:this.useMesh?4:2,type:6}],s=new ai(this.graphicsDevice,n);this.vertexBuffer=new ni(this.graphicsDevice,s,e,1),this.indexBuffer=new As(this.graphicsDevice,1,i)}else{var a=[{semantic:Me,components:4,type:6}];this.useMesh&&a.push({semantic:Ce,components:2,type:6});var r=new ai(this.graphicsDevice,a);this.vertexBuffer=new ni(this.graphicsDevice,r,e,1),this.indexBuffer=new As(this.graphicsDevice,1,i)}var o,h,l,c=new Float32Array(this.vertexBuffer.lock());if(this.useMesh){h=(o=new Float32Array(this.mesh.vertexBuffer.lock())).length/this.mesh.vertexBuffer.numVertices;for(var u=0;uthis.endTime&&(this.onFinished&&this.onFinished(),this.meshInstance.visible=!1),this.meshInstance&&(this.meshInstance.drawOrder=this.drawOrder)},e._destroyResources=function(){this.particleTexIN&&(this.particleTexIN.destroy(),this.particleTexIN=null),this.particleTexOUT&&(this.particleTexOUT.destroy(),this.particleTexOUT=null),this.particleTexStart&&this.particleTexStart.destroy&&(this.particleTexStart.destroy(),this.particleTexStart=null),this.rtParticleTexIN&&(this.rtParticleTexIN.destroy(),this.rtParticleTexIN=null),this.rtParticleTexOUT&&(this.rtParticleTexOUT.destroy(),this.rtParticleTexOUT=null),this.internalTex0&&(this.internalTex0.destroy(),this.internalTex0=null),this.internalTex1&&(this.internalTex1.destroy(),this.internalTex1=null),this.internalTex2&&(this.internalTex2.destroy(),this.internalTex2=null),this.internalTex3&&(this.internalTex3.destroy(),this.internalTex3=null),this.colorParam&&(this.colorParam.destroy(),this.colorParam=null),this.vertexBuffer&&(this.vertexBuffer.destroy(),this.vertexBuffer=void 0),this.indexBuffer&&(this.indexBuffer.destroy(),this.indexBuffer=void 0),this.material&&(this.material.destroy(),this.material=null)},e.destroy=function(){this.camera=null,this._destroyResources()},q(t,[{key:"defaultParamTexture",get:function(){var t=this;return oc.get(this.graphicsDevice,(function(){for(var e=16,i=new Float32Array(1024),n=0;n>16&255)/255,e.pickColor[1]=(s>>8&255)/255,e.pickColor[2]=(255&s)/255,i.setValue(e.pickColor),t.setBlending(!1),e.mapping[s]=n}}),this.layer.addCamera(this.cameraEntity.camera),this.layerComp=new Lo("picker"),this.layerComp.pushOpaque(this.layer)},e.prepare=function(t,e,i){t instanceof Hi&&(t=t.node.camera),i instanceof To&&(i=[i]),this.layer.clearMeshInstances();for(var n=this.layer.opaqueMeshInstances,s=e.layers.layerList,a=e.layers.subLayerEnabled,r=e.layers.subLayerList,o=0;o=0){h._clearDepthBuffer&&n.push(this.clearDepthCommand);for(var l=r[o]?h.instances.transparentMeshInstances:h.instances.opaqueMeshInstances,c=0;ci){this._time=this.looping?0:i;for(var n=0;n=0?1:-1,l=0;l=0;m+=h){var _=d[m],g=d[m+1];if(_.time<=this._time&&g.time>=this._time){var v=(this._time-_.time)/(g.time-_.time);f._pos.lerp(_.position,g.position,v),f._quat.slerp(_.rotation,g.rotation,v),f._scale.lerp(_.scale,g.scale,v),f._written=!0,this._currKeyIndices[u]=m,p=!0;break}}(1===d.length||!p&&0===this._time&&this.looping)&&(f._pos.copy(d[0].position),f._quat.copy(d[0].rotation),f._scale.copy(d[0].scale),f._written=!0)}}}},e.blend=function(t,e,i){for(var n=this._interpolatedKeys.length,s=0;s0&&i.push(n),i},t.encode=function(t,e,i){return(Array.isArray(t)?t.join("/"):t)+"/"+e+"/"+(Array.isArray(i)?i.join("/"):i)};var e=t.prototype;return e.resolve=function(t){return null},e.unresolve=function(t){},e.update=function(t){},t}(),Ac=function(){function t(){this._left=1/0,this._right=-1/0,this._len=0,this._recip=0,this._p0=0,this._p1=0,this._t=0,this._hermite={valid:!1,p0:0,m0:0,p1:0,m1:0}}var e=t.prototype;return e.update=function(t,e){if(t=this._right){var i=e.length;if(i)if(t=e[i-1])this._left=e[i-1],this._right=1/0,this._len=0,this._recip=0,this._p0=this._p1=i-1;else{var n=this._findKey(t,e);this._left=e[n],this._right=e[n+1],this._len=this._right-this._left;var s=1/this._len;this._recip=isFinite(s)?s:0,this._p0=n,this._p1=n+1}else this._left=-1/0,this._right=1/0,this._len=0,this._recip=0,this._p0=this._p1=0}this._t=0===this._recip?0:(t-this._left)*this._recip,this._hermite.valid=!1},e._findKey=function(t,e){for(var i=0;t>=e[i+1];)i++;return i},e.eval=function(t,e,i){var n=i._data,s=i._components,a=this._p0*s;if(0===e)for(var r=0;rthis.track.duration&&(i=e-this.track.duration,e=this.track.duration);this.track.events[this.eventCursor]&&this.track.events[this.eventCursor].time>=t&&(e===this.track.duration?this.track.events[this.eventCursor].time<=e:this.track.events[this.eventCursor].time0&&i>0&&this.activeEventsForFrame(e,e+n*t),e+=n*t,n>=0?e>i&&(s?e=e%i||0:(e=this._track.duration,this.pause())):e<0&&(s?e=i+(e%i||0):(e=0,this.pause())),this._time=e}this._time!==this._snapshot._time&&this._track.eval(this._time,this._snapshot)},e.play=function(){this._playing=!0,this._time=0},e.stop=function(){this._playing=!1,this._time=0},e.pause=function(){this._playing=!1},e.resume=function(){this._playing=!0},e.reset=function(){this._time=0},q(t,[{key:"name",get:function(){return this._name},set:function(t){this._name=t}},{key:"track",get:function(){return this._track}},{key:"snapshot",get:function(){return this._snapshot}},{key:"time",get:function(){return this._time},set:function(t){this._time=t}},{key:"speed",get:function(){return this._speed},set:function(t){this._speed=t}},{key:"loop",get:function(){return this._loop},set:function(t){this._loop=t}},{key:"blendWeight",get:function(){return this._blendWeight},set:function(t){this._blendWeight=t}},{key:"blendOrder",get:function(){return this._blendOrder},set:function(t){this._blendOrder=t}},{key:"eventCursor",get:function(){return this._eventCursor},set:function(t){this._eventCursor=t}}]),t}(),Ec=function(){function t(t,e,i,n){this._paths=t,this._input=e,this._output=i,this._interpolation=n}return q(t,[{key:"paths",get:function(){return this._paths}},{key:"input",get:function(){return this._input}},{key:"output",get:function(){return this._output}},{key:"interpolation",get:function(){return this._interpolation}}]),t}(),Pc=function(){function t(t,e){this._components=t,this._data=e}return q(t,[{key:"components",get:function(){return this._components}},{key:"data",get:function(){return this._data}}]),t}(),Rc="NONE",Ic="PREV_STATE",Lc="NEXT_STATE",Dc="PREV_STATE_NEXT_STATE",kc="NEXT_STATE_PREV_STATE",Oc="GREATER_THAN",Fc="LESS_THAN",Bc="GREATER_THAN_EQUAL_TO",Nc="LESS_THAN_EQUAL_TO",Uc="EQUAL_TO",zc="NOT_EQUAL_TO",Vc="INTEGER",Gc="FLOAT",Wc="BOOLEAN",Hc="TRIGGER",Xc="2D_DIRECTIONAL",qc="2D_CARTESIAN",Yc="DIRECT",jc="START",Kc="END",Zc="ANY",$c=[jc,Kc,Zc],Qc="OVERWRITE",Jc="ADDITIVE",tu=function(){function t(e,i){this._component=e,this.mask=new Int8Array(e.layers.length),this.weights=new Float32Array(e.layers.length),this.totalWeight=0,this.counter=0,this.layerCounter=0,this.valueType=i,this.dirty=!0,this.value=i===t.TYPE_QUAT?[0,0,0,1]:[0,0,0],this.baseValue=null,this.setter=null}var e=t.prototype;return e.getWeight=function(t){return this.dirty&&this.updateWeights(),this._normalizeWeights&&0===this.totalWeight||!this.mask[t]?0:this._normalizeWeights?this.weights[t]/this.totalWeight:ot.clamp(this.weights[t],0,1)},e._layerBlendType=function(t){return this._component.layers[t].blendType},e.setMask=function(t,e){this.mask[t]=e,this._normalizeWeights&&(this._component.layers[t].blendType===Qc&&(this.mask=this.mask.fill(0,0,t)),this.dirty=!0)},e.updateWeights=function(){this.totalWeight=0;for(var t=0;t0){i=1/Math.sqrt(i);for(var n=e.length,s=0;s0&&(a=1/Math.sqrt(a));for(var r=0;r0;)this.removeClip(0)},e.findClip=function(t){for(var e=this._clips,i=0;i0&&r._update(e);var c=void 0,u=void 0,d=void 0;if(l>=1)for(var f=0;f0)for(var p=0;p0){return t.createAnimTarget((function(t){for(var e=0;e=0)this._animationList[n].animTrack=e;else{var s=this._getNodeFromPath(t);s.animTrack=e,this._animationList.push(s)}},q(t,[{key:"name",get:function(){return this._name}},{key:"animations",get:function(){return this._animationList},set:function(t){this._animationList=t}},{key:"speed",get:function(){return this._speed},set:function(t){this._speed=t}},{key:"loop",get:function(){return this._loop},set:function(t){this._loop=t}},{key:"nodeCount",get:function(){return this._blendTree&&this._blendTree.constructor!==ru?this._blendTree.getNodeCount():1}},{key:"playable",get:function(){return-1!==$c.indexOf(this.name)||this.animations.length===this.nodeCount}},{key:"looping",get:function(){if(this.animations.length>0){var t=this.name+"."+this.animations[0].animTrack.name,e=this._controller.animEvaluator.findClip(t);if(e)return e.loop}return!1}},{key:"totalWeight",get:function(){for(var t=0,e=0;et&&(t=i.animTrack.duration)}return t}}]),t}(),fu=function(){function t(t){var e=t.from,i=t.to,n=t.time,s=void 0===n?0:n,a=t.priority,r=void 0===a?0:a,o=t.conditions,h=void 0===o?[]:o,l=t.exitTime,c=void 0===l?null:l,u=t.transitionOffset,d=void 0===u?null:u,f=t.interruptionSource,p=void 0===f?Rc:f;this._from=e,this._to=i,this._time=s,this._priority=r,this._conditions=h,this._exitTime=c,this._transitionOffset=d,this._interruptionSource=p}return q(t,[{key:"from",get:function(){return this._from}},{key:"to",get:function(){return this._to},set:function(t){this._to=t}},{key:"time",get:function(){return this._time}},{key:"priority",get:function(){return this._priority}},{key:"conditions",get:function(){return this._conditions}},{key:"exitTime",get:function(){return this._exitTime}},{key:"transitionOffset",get:function(){return this._transitionOffset}},{key:"interruptionSource",get:function(){return this._interruptionSource}},{key:"hasExitTime",get:function(){return!!this.exitTime}}]),t}(),pu=function(){function t(t,e,i,n,s,a,r){this._animEvaluator=t,this._states={},this._stateNames=[],this._eventHandler=a,this._consumedTriggers=r;for(var o=0;o"+e];return i||(i=this._transitions.filter((function(i){return i.from===t&&i.to===e})),Co(i),this._findTransitionsBetweenStatesCache[t+"->"+e]=i),i},e._transitionHasConditionsMet=function(t){for(var e=t.conditions,i=0;in.value))return!1;break;case Fc:if(!(s.value=n.value))return!1;break;case Nc:if(!(s.value<=n.value))return!1;break;case Uc:if(s.value!==n.value)return!1;break;case zc:if(s.value===n.value)return!1}}return!0},e._findTransition=function(t,e){var i=this,n=[];if(t&&e)n=n.concat(this._findTransitionsBetweenStates(t,e));else if(this._isTransitioning)switch(this._transitionInterruptionSource){case Ic:n=(n=n.concat(this._findTransitionsFromState(this._previousStateName))).concat(this._findTransitionsFromState(Zc));break;case Lc:n=(n=n.concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(Zc));break;case Dc:n=(n=(n=n.concat(this._findTransitionsFromState(this._previousStateName))).concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(Zc));break;case kc:n=(n=(n=n.concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(this._previousStateName))).concat(this._findTransitionsFromState(Zc))}else n=(n=n.concat(this._findTransitionsFromState(this._activeStateName))).concat(this._findTransitionsFromState(Zc));if(n=n.filter((function(t){if(t.to===i.activeStateName)return!1;if(t.hasExitTime){var e=i._getActiveStateProgressForTime(i._timeInStateBefore),n=i._getActiveStateProgressForTime(i._timeInState);if(t.exitTime<1&&i.activeState.loop&&(e-=Math.floor(e),n-=Math.floor(n)),!(t.exitTime>e&&t.exitTime<=n))return null}return i._transitionHasConditionsMet(t)})),n.length>0){var s=n[0];if(s.to===Kc){var a=this._findTransitionsFromState(jc)[0];s.to=a.to}return s}return null},e.updateStateFromTransition=function(t){var e,i,n;this.previousState=t.from?this.activeStateName:null,this.activeState=t.to;for(var s=0;s0&&t.transitionOffset<1,u=0,d=0;if(c){var f=l.timelineDuration*t.transitionOffset;u=f,d=f}this._timeInState=u,this._timeInStateBefore=d;for(var p=0;p0?n.blendWeight=0:n.blendWeight=l.animations[p].normalizedWeight,n.play(),c)n.time=l.timelineDuration*t.transitionOffset;else{var _=l.speed>=0?0:this.activeStateDuration;n.time=_}}},e._transitionToState=function(t){if(this._findState(t)){var e=this._findTransition(this._activeStateName,t);e||(this._animEvaluator.removeClips(),e=new fu({from:null,to:t})),this.updateStateFromTransition(e)}},e.assignAnimation=function(t,e,i,n){var s=t.split("."),a=this._findState(s[0]);a||(a=new du(this,s[0],1),this._states[s[0]]=a,this._stateNames.push(s[0])),a.addAnimation(s,e),void 0!==i&&(a.speed=i),void 0!==n&&(a.loop=n),!this._playing&&this._activate&&this.playable&&this.play()},e.removeNodeAnimations=function(t){if(-1!==$c.indexOf(t))return!1;var e=this._findState(t);return!!e&&(e.animations=[],!0)},e.play=function(t){t&&this._transitionToState(t),this._playing=!0},e.pause=function(){this._playing=!1},e.reset=function(){this._previousStateName=null,this._activeStateName=jc,this._playing=!1,this._currTransitionTime=1,this._totalTransitionTime=1,this._isTransitioning=!1,this._timeInState=0,this._timeInStateBefore=0,this._animEvaluator.removeClips()},e.rebind=function(){this._animEvaluator.rebind()},e.update=function(t){if(this._playing){var e,i,n;this._timeInStateBefore=this._timeInState,this._timeInState+=t;var s=this._findTransition(this._activeStateName);if(s&&this.updateStateFromTransition(s),this._isTransitioning)if(this._currTransitionTime+=t,this._currTransitionTime<=this._totalTransitionTime){for(var a=0!==this._totalTransitionTime?this._currTransitionTime/this._totalTransitionTime:1,r=0;ryu?yu:i.width||512,a=i.height>yu?yu:i.height||512,r=document.createElement("canvas");r.height=a,r.width=s;var o=new Ui(n.app.graphicsDevice,{name:"font",format:7,minFilter:5,magFilter:1,addressU:1,addressV:1,mipmaps:!0});return o.setSource(r),n.textures=[o],n.chars="",n.data={},n}j(e,t);var i=e.prototype;return i.createTextures=function(t){var e=this._normalizeCharsSet(t);if(e.length===this.chars.length){for(var i=0;i0&&this._renderAtlas(this.chars.concat(i))},i.destroy=function(){for(var t=0;tC&&(C=this.fontSize*this.fontSize/E,c.font=this.fontWeight+" "+C.toString()+"px "+this.fontName,E=this.fontSize),this.renderCharacter(c,A,S+x,w+b,a);var P=this.padding+(this.glyphSize-E)/2,R=-this.padding+m[A].descent-p,I=E;if(this._addChar(this.data,A,M,S,w,v,y,P,R,I,e-1,n,s),(S+=v)+v>n&&(S=0,(w+=y)+y>s))if(this.textures[e-1].upload(),w=0,++e>d){(i=document.createElement("canvas")).height=s,i.width=n,c=this._getAndClearContext(i,o);var L=new Ui(this.app.graphicsDevice,{format:7,mipmaps:!0,name:"font-atlas"});L.setSource(i),L.minFilter=5,L.magFilter=1,L.addressU=1,L.addressV=1,this.textures.push(L)}else i=this.textures[e-1].getSource(),c=this._getAndClearContext(i,o)}if(this.textures[e-1].upload(),en)return 0;var o=0;return a===bu?o=1-s*(r-i)/(n-i):a===Su?o=i/(i+s*(r-i)):a===wu&&(o=Math.pow(r/i,-s)),ot.clamp(o,0,1)}(this.manager.listener.getPosition(),this.position,this.minDistance,this.maxDistance,this.rollOffFactor,this.distanceModel),i=this.getVolume();this.source.volume=i*e}},getMaxDistance:function(){return this.maxDistance},setMaxDistance:function(t){this.maxDistance=t},getMinDistance:function(){return this.minDistance},setMinDistance:function(t){this.minDistance=t},getRollOffFactor:function(){return this.rollOffFactor},setRollOffFactor:function(t){this.rollOffFactor=t},getDistanceModel:function(){return this.distanceModel},setDistanceModel:function(t){this.distanceModel=t}})}var Eu=function(){function t(t){this._manager=t,this.position=new pt,this.velocity=new pt,this.orientation=new wt}var e=t.prototype;return e.getPosition=function(){return this.position},e.setPosition=function(t){this.position.copy(t);var e=this.listener;e&&("positionX"in e?(e.positionX.value=t.x,e.positionY.value=t.y,e.positionZ.value=t.z):e.setPosition&&e.setPosition(t.x,t.y,t.z))},e.getVelocity=function(){return this.velocity},e.setVelocity=function(t){},e.setOrientation=function(t){this.orientation.copy(t);var e=this.listener;if(e){var i=t.data;"forwardX"in e?(e.forwardX.value=-i[8],e.forwardY.value=-i[9],e.forwardZ.value=-i[10],e.upX.value=i[4],e.upY.value=i[5],e.upZ.value=i[6]):e.setOrientation&&e.setOrientation(-i[8],-i[9],-i[10],i[4],i[5],i[6])}},e.getOrientation=function(){return this.orientation},q(t,[{key:"listener",get:function(){var t=this._manager.context;return t?t.listener:null}}]),t}(),Pu="running",Ru="suspended",Iu="interrupted",Lu=["click","contextmenu","auxclick","dblclick","mousedown","mouseup","pointerup","touchend","keydown","keyup"],Du=function(t){function e(e){var i;return(i=t.call(this)||this)._context=null,i._state="not created",i._forceWebAudioApi=e.forceWebAudioApi,i._resumeContext=null,i._resumeContextAttached=!1,i._unlock=null,i._unlockAttached=!1,(Tu()||i._forceWebAudioApi)&&i._addAudioContextUserInteractionListeners(),i.listener=new Eu(Z(i)),i._volume=1,i.suspended=!1,i}j(e,t);var i=e.prototype;return i.suspend=function(){this.suspended=!0,this.fire("suspend")},i.resume=function(){this.suspended=!1,this.fire("resume"),!this.context||this._state!==Iu&&this._state!==Ru||this._safelyResumeContext()},i.destroy=function(){var t=this;this._resumeContext&&this._resumeContextAttached&&Lu.forEach((function(e){window.removeEventListener(e,t._resumeContext)})),this._unlock&&this._unlockAttached&&window.removeEventListener("touchend",this._unlock),this.fire("destroy"),this._context&&this._context.close&&(this._context.close(),this._context=null)},i.playSound=function(t,e){void 0===e&&(e={});var i=null;return Au&&(i=new Au(this,t,e)).play(),i},i.playSound3d=function(t,e,i){void 0===i&&(i={});var n=null;return Mu&&((n=new Mu(this,t,i)).setPosition(e),i.volume&&n.setVolume(i.volume),i.loop&&n.setLoop(i.loop),i.maxDistance&&n.setMaxDistance(i.maxDistance),i.minDistance&&n.setMinDistance(i.minDistance),i.rollOffFactor&&n.setRollOffFactor(i.rollOffFactor),i.distanceModel&&n.setDistanceModel(i.distanceModel),n.play()),n},i._safelyResumeContext=function(){var t=this;this._context&&this._context.resume().then((function(){t._context.state!==Pu&&t._addAudioContextUserInteractionListeners()})).catch((function(){t._addAudioContextUserInteractionListeners()}))},i._addAudioContextUserInteractionListeners=function(){var t=this;this._resumeContext||(this._resumeContext=function(){t.context&&t.context.state!==Pu?t.context.resume():(Lu.forEach((function(e){window.removeEventListener(e,t._resumeContext)})),t._resumeContextAttached=!1)}),this._resumeContextAttached||(Lu.forEach((function(e){window.addEventListener(e,t._resumeContext)})),this._resumeContextAttached=!0),L.ios&&(this._unlock||(this._unlock=function(){window.removeEventListener("touchend",t._unlock),t._unlockAttached=!1;var e=t.context;if(e){var i=e.createBuffer(1,1,44100),n=e.createBufferSource();n.buffer=i,n.connect(e.destination),n.start(0),n.disconnect()}}),this._unlockAttached||(window.addEventListener("touchend",this._unlock),this._unlockAttached=!0))},q(e,[{key:"volume",get:function(){return this._volume},set:function(t){t=ot.clamp(t,0,1),this._volume=t,this.fire("volumechange",t)}},{key:"context",get:function(){var t=this;return this._context||(Tu()||this._forceWebAudioApi)&&("undefined"!=typeof AudioContext?this._context=new AudioContext:"undefined"!=typeof webkitAudioContext&&(this._context=new webkitAudioContext),this._context&&(this._state=this._context.state,this._context.onstatechange=function(){t._context&&(t._state!==Iu&&t._state!==Ru||t._safelyResumeContext(),t._state=t._context.state)})),this._context}}]),e}(m),ku=function(){function t(t){this.audio=void 0,this.buffer=void 0,t instanceof Audio?this.audio=t:this.buffer=t}return q(t,[{key:"duration",get:function(){var t=0;return this.buffer?t=this.buffer.duration:this.audio&&(t=this.audio.duration),t||0}}]),t}();function Ou(t,e){return t%e||0}var Fu=function(t){function e(e,i,n){var s;return(s=t.call(this)||this).source=null,s._manager=e,s._volume=void 0!==n.volume?ot.clamp(Number(n.volume)||0,0,1):1,s._pitch=void 0!==n.pitch?Math.max(.01,Number(n.pitch)||0):1,s._loop=!(void 0===n.loop||!n.loop),s._sound=i,s._state=2,s._suspended=!1,s._suspendEndEvent=0,s._suspendInstanceEvents=!1,s._playWhenLoaded=!0,s._startTime=Math.max(0,Number(n.startTime)||0),s._duration=Math.max(0,Number(n.duration)||0),s._startOffset=null,s._onPlayCallback=n.onPlay,s._onPauseCallback=n.onPause,s._onResumeCallback=n.onResume,s._onStopCallback=n.onStop,s._onEndCallback=n.onEnd,Tu()?(s._startedAt=0,s._currentTime=0,s._currentOffset=0,s._inputNode=null,s._connectorNode=null,s._firstNode=null,s._lastNode=null,s._initializeNodes(),s._endedHandler=s._onEnded.bind(Z(s))):(s._isReady=!1,s._loadedMetadataHandler=s._onLoadedMetadata.bind(Z(s)),s._timeUpdateHandler=s._onTimeUpdate.bind(Z(s)),s._endedHandler=s._onEnded.bind(Z(s)),s._createSource()),s}j(e,t);var i=e.prototype;return i._onPlay=function(){this.fire("play"),this._onPlayCallback&&this._onPlayCallback(this)},i._onPause=function(){this.fire("pause"),this._onPauseCallback&&this._onPauseCallback(this)},i._onResume=function(){this.fire("resume"),this._onResumeCallback&&this._onResumeCallback(this)},i._onStop=function(){this.fire("stop"),this._onStopCallback&&this._onStopCallback(this)},i._onEnded=function(){this._suspendEndEvent>0?this._suspendEndEvent--:(this.fire("end"),this._onEndCallback&&this._onEndCallback(this),this.stop())},i._onManagerVolumeChange=function(){this.volume=this._volume},i._onManagerSuspend=function(){0!==this._state||this._suspended||(this._suspended=!0,this.pause())},i._onManagerResume=function(){this._suspended&&(this._suspended=!1,this.resume())},i._initializeNodes=function(){this.gain=this._manager.context.createGain(),this._inputNode=this.gain,this._connectorNode=this.gain,this._connectorNode.connect(this._manager.context.destination)},i.play=function(){2!==this._state&&this.stop(),this.source||this._createSource();var t=Ou(this._startOffset,this.duration);return t=Ou(this._startTime+t,this._sound.duration),this._startOffset=null,this._duration?this.source.start(0,t,this._duration):this.source.start(0,t),this._startedAt=this._manager.context.currentTime,this._currentTime=0,this._currentOffset=t,this._state=0,this._playWhenLoaded=!1,this.volume=this._volume,this.loop=this._loop,this.pitch=this._pitch,this._manager.on("volumechange",this._onManagerVolumeChange,this),this._manager.on("suspend",this._onManagerSuspend,this),this._manager.on("resume",this._onManagerResume,this),this._manager.on("destroy",this._onManagerDestroy,this),this._manager.suspended&&this._onManagerSuspend(),this._suspendInstanceEvents||this._onPlay(),!0},i.pause=function(){return this._playWhenLoaded=!1,!(0!==this._state||!this.source)&&(this._updateCurrentTime(),this._state=1,this._suspendEndEvent++,this.source.stop(0),this.source=null,this._startOffset=null,this._suspendInstanceEvents||this._onPause(),!0)},i.resume=function(){if(1!==this._state)return!1;this.source||this._createSource();var t=this.currentTime;return null!==this._startOffset&&(t=Ou(this._startOffset,this.duration),t=Ou(this._startTime+t,this._sound.duration),this._startOffset=null),this._duration?this.source.start(0,t,this._duration):this.source.start(0,t),this._state=0,this._startedAt=this._manager.context.currentTime,this._currentOffset=t,this.volume=this._volume,this.loop=this._loop,this.pitch=this._pitch,this._playWhenLoaded=!1,this._suspendInstanceEvents||this._onResume(),!0},i.stop=function(){return this._playWhenLoaded=!1,!(2===this._state||!this.source)&&(this._manager.off("volumechange",this._onManagerVolumeChange,this),this._manager.off("suspend",this._onManagerSuspend,this),this._manager.off("resume",this._onManagerResume,this),this._manager.off("destroy",this._onManagerDestroy,this),this._startedAt=0,this._currentTime=0,this._currentOffset=0,this._startOffset=null,this._suspendEndEvent++,0===this._state&&this.source.stop(0),this.source=null,this._state=2,this._suspendInstanceEvents||this._onStop(),!0)},i.setExternalNodes=function(t,e){if(t){e||(e=t);var i=this._manager.context.destination;this._firstNode!==t&&(this._firstNode?this._connectorNode.disconnect(this._firstNode):this._connectorNode.disconnect(i),this._firstNode=t,this._connectorNode.connect(t)),this._lastNode!==e&&(this._lastNode&&this._lastNode.disconnect(i),this._lastNode=e,this._lastNode.connect(i))}else console.error("The firstNode must be a valid Audio Node")},i.clearExternalNodes=function(){var t=this._manager.context.destination;this._firstNode&&(this._connectorNode.disconnect(this._firstNode),this._firstNode=null),this._lastNode&&(this._lastNode.disconnect(t),this._lastNode=null),this._connectorNode.connect(t)},i.getExternalNodes=function(){return[this._firstNode,this._lastNode]},i._createSource=function(){if(!this._sound)return null;var t=this._manager.context;return this._sound.buffer&&(this.source=t.createBufferSource(),this.source.buffer=this._sound.buffer,this.source.connect(this._inputNode),this.source.onended=this._endedHandler,this.source.loopStart=Ou(this._startTime,this.source.buffer.duration),this._duration&&(this.source.loopEnd=Math.max(this.source.loopStart,Ou(this._startTime+this._duration,this.source.buffer.duration)))),this.source},i._updateCurrentTime=function(){this._currentTime=Ou((this._manager.context.currentTime-this._startedAt)*this._pitch+this._currentOffset,this.duration)},i._onManagerDestroy=function(){this.source&&0===this._state&&(this.source.stop(0),this.source=null)},q(e,[{key:"currentTime",get:function(){return null!==this._startOffset?this._startOffset:1===this._state?this._currentTime:2!==this._state&&this.source?(this._updateCurrentTime(),this._currentTime):0},set:function(t){if(!(t<0))if(0===this._state){var e=this._suspendInstanceEvents;this._suspendInstanceEvents=!0,this.stop(),this._startOffset=t,this.play(),this._suspendInstanceEvents=e}else this._startOffset=t,this._currentTime=t}},{key:"duration",get:function(){return this._sound?this._duration?Ou(this._duration,this._sound.duration):this._sound.duration:0},set:function(t){this._duration=Math.max(0,Number(t)||0);var e=0===this._state;this.stop(),e&&this.play()}},{key:"isPaused",get:function(){return 1===this._state}},{key:"isPlaying",get:function(){return 0===this._state}},{key:"isStopped",get:function(){return 2===this._state}},{key:"isSuspended",get:function(){return this._suspended}},{key:"loop",get:function(){return this._loop},set:function(t){this._loop=!!t,this.source&&(this.source.loop=this._loop)}},{key:"pitch",get:function(){return this._pitch},set:function(t){this._currentOffset=this.currentTime,this._startedAt=this._manager.context.currentTime,this._pitch=Math.max(Number(t)||0,.01),this.source&&(this.source.playbackRate.value=this._pitch)}},{key:"sound",get:function(){return this._sound},set:function(t){this._sound=t,2!==this._state?this.stop():this._createSource()}},{key:"startTime",get:function(){return this._startTime},set:function(t){this._startTime=Math.max(0,Number(t)||0);var e=0===this._state;this.stop(),e&&this.play()}},{key:"volume",get:function(){return this._volume},set:function(t){t=ot.clamp(t,0,1),this._volume=t,this.gain&&(this.gain.gain.value=t*this._manager.volume)}}]),e}(m);Tu()||(Object.assign(Fu.prototype,{play:function(){return 2!==this._state&&this.stop(),!(!this.source&&!this._createSource())&&(this.volume=this._volume,this.pitch=this._pitch,this.loop=this._loop,this.source.play(),this._state=0,this._playWhenLoaded=!1,this._manager.on("volumechange",this._onManagerVolumeChange,this),this._manager.on("suspend",this._onManagerSuspend,this),this._manager.on("resume",this._onManagerResume,this),this._manager.on("destroy",this._onManagerDestroy,this),this._manager.suspended&&this._onManagerSuspend(),this._suspendInstanceEvents||this._onPlay(),!0)},pause:function(){return!(!this.source||0!==this._state)&&(this._suspendEndEvent++,this.source.pause(),this._playWhenLoaded=!1,this._state=1,this._startOffset=null,this._suspendInstanceEvents||this._onPause(),!0)},resume:function(){return!(!this.source||1!==this._state)&&(this._state=0,this._playWhenLoaded=!1,this.source.paused&&(this.source.play(),this._suspendInstanceEvents||this._onResume()),!0)},stop:function(){return!(!this.source||2===this._state)&&(this._manager.off("volumechange",this._onManagerVolumeChange,this),this._manager.off("suspend",this._onManagerSuspend,this),this._manager.off("resume",this._onManagerResume,this),this._manager.off("destroy",this._onManagerDestroy,this),this._suspendEndEvent++,this.source.pause(),this._playWhenLoaded=!1,this._state=2,this._startOffset=null,this._suspendInstanceEvents||this._onStop(),!0)},setExternalNodes:function(){},clearExternalNodes:function(){},getExternalNodes:function(){return[null,null]},_onLoadedMetadata:function(){this.source.removeEventListener("loadedmetadata",this._loadedMetadataHandler),this._isReady=!0;var t=Ou(this._startOffset,this.duration);t=Ou(this._startTime+t,this._sound.duration),this._startOffset=null,this.source.currentTime=t},_createSource:function(){return this._sound&&this._sound.audio&&(this._isReady=!1,this.source=this._sound.audio.cloneNode(!0),this.source.addEventListener("loadedmetadata",this._loadedMetadataHandler),this.source.addEventListener("timeupdate",this._timeUpdateHandler),this.source.onended=this._endedHandler),this.source},_onTimeUpdate:function(){this._duration&&this.source.currentTime>Ou(this._startTime+this._duration,this.source.duration)&&(this.loop?this.source.currentTime=Ou(this._startTime,this.source.duration):(this.source.removeEventListener("timeupdate",this._timeUpdateHandler),this.source.pause(),this._onEnded()))},_onManagerDestroy:function(){this.source&&this.source.pause()}}),Object.defineProperty(Fu.prototype,"volume",{get:function(){return this._volume},set:function(t){t=ot.clamp(t,0,1),this._volume=t,this.source&&(this.source.volume=t*this._manager.volume)}}),Object.defineProperty(Fu.prototype,"pitch",{get:function(){return this._pitch},set:function(t){this._pitch=Math.max(Number(t)||0,.01),this.source&&(this.source.playbackRate=this._pitch)}}),Object.defineProperty(Fu.prototype,"sound",{get:function(){return this._sound},set:function(t){this.stop(),this._sound=t}}),Object.defineProperty(Fu.prototype,"currentTime",{get:function(){return null!==this._startOffset?this._startOffset:2!==this._state&&this.source?this.source.currentTime-this._startTime:0},set:function(t){t<0||(this._startOffset=t,this.source&&this._isReady&&(this.source.currentTime=Ou(this._startTime+Ou(t,this.duration),this._sound.duration),this._startOffset=null))}}));var Bu=function(t){function e(e,i,n){var s;return void 0===n&&(n={}),(s=t.call(this,e,i,n)||this)._position=new pt,s._velocity=new pt,n.position&&(s.position=n.position),s.maxDistance=void 0!==n.maxDistance?Number(n.maxDistance):1e4,s.refDistance=void 0!==n.refDistance?Number(n.refDistance):1,s.rollOffFactor=void 0!==n.rollOffFactor?Number(n.rollOffFactor):1,s.distanceModel=void 0!==n.distanceModel?n.distanceModel:bu,s}return j(e,t),e.prototype._initializeNodes=function(){this.gain=this._manager.context.createGain(),this.panner=this._manager.context.createPanner(),this.panner.connect(this.gain),this._inputNode=this.panner,this._connectorNode=this.gain,this._connectorNode.connect(this._manager.context.destination)},q(e,[{key:"position",get:function(){return this._position},set:function(t){this._position.copy(t);var e=this.panner;"positionX"in e?(e.positionX.value=t.x,e.positionY.value=t.y,e.positionZ.value=t.z):e.setPosition&&e.setPosition(t.x,t.y,t.z)}},{key:"velocity",get:function(){return this._velocity},set:function(t){this._velocity.copy(t)}},{key:"maxDistance",get:function(){return this.panner.maxDistance},set:function(t){this.panner.maxDistance=t}},{key:"refDistance",get:function(){return this.panner.refDistance},set:function(t){this.panner.refDistance=t}},{key:"rollOffFactor",get:function(){return this.panner.rolloffFactor},set:function(t){this.panner.rolloffFactor=t}},{key:"distanceModel",get:function(){return this.panner.distanceModel},set:function(t){this.panner.distanceModel=t}}]),e}(Fu);if(!Tu()){var Nu=new pt;Object.defineProperty(Bu.prototype,"position",{get:function(){return this._position},set:function(t){if(this._position.copy(t),this.source){var e=function(t,e,i,n,s,a){var r=(Nu=Nu.sub2(t,e)).length();if(rn)return 0;var o=0;return a===bu?o=1-s*(r-i)/(n-i):a===Su?o=i/(i+s*(r-i)):a===wu&&(o=Math.pow(r/i,-s)),ot.clamp(o,0,1)}(this._manager.listener.getPosition(),this._position,this.refDistance,this.maxDistance,this.rollOffFactor,this.distanceModel),i=this.volume;this.source.volume=i*e*this._manager.volume}}}),Object.defineProperty(Bu.prototype,"maxDistance",{get:function(){return this._maxDistance},set:function(t){this._maxDistance=t}}),Object.defineProperty(Bu.prototype,"refDistance",{get:function(){return this._refDistance},set:function(t){this._refDistance=t}}),Object.defineProperty(Bu.prototype,"rollOffFactor",{get:function(){return this._rollOffFactor},set:function(t){this._rollOffFactor=t}}),Object.defineProperty(Bu.prototype,"distanceModel",{get:function(){return this._distanceModel},set:function(t){this._distanceModel=t}})}function Uu(){var t,e,i,n=0,s=1,a=2,r=3,o=8,h=9,l=10,c=11,u=12,d=13,f=14,p=16,m={astc:l,dxt:a,etc1:n,etc2:n,pvr:o,atc:c,none:f},_={astc:l,dxt:r,etc1:p,etc2:s,pvr:h,atc:u,none:p},g=21,v=22,y=23,x=8,b=10,S=26,w=27,T=28,A=29,M=30,C=7,E=3,P=5,R=function(t,e){switch(t){case n:return e.formats.etc1?g:v;case s:return y;case a:return x;case r:return b;case o:return S;case h:return w;case l:return T;case c:return A;case u:return M;case d:return C;case f:return E;case p:return P}},I=function(t){for(var e=function(t,e){var i=t*(2/255)-1,n=e*(2/255)-1,s=Math.sqrt(1-Math.min(1,i*i+n*n));return Math.max(0,Math.min(255,Math.floor(.5*(s+1)*255)))},i=0;i>3}return e},D=function(){return"undefined"!=typeof performance?performance.now():0},k=function(t,n,s){if(s){if(t.formats.astc)return"astc"}else if(n){if(t.formats.etc2)return"etc2"}else if(t.formats.etc1||t.formats.etc2)return"etc1";return function(e){for(var i=0;i0?this.clients.shift().run(s):this.queue.push(s)}},e.enqueueClient=function(t){this.queue.length>0?t.run(this.queue.shift()):this.clients.push(t)},e.handleResponse=function(t,e,i){var n=this.callbacks[t];if(e)for(var s=0;s0,maxRetries:t.maxRetries};if(t.glueUrl&&t.wasmUrl&&function(){try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){var t=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(t instanceof WebAssembly.Module)return new WebAssembly.Instance(t)instanceof WebAssembly.Instance}}catch(t){}return!1}()){var s=null,a=null;lt.get(t.glueUrl,n,(function(t,n){t?e(t):a?i(n,a):s=n}));var r=fetch(t.wasmUrl),o=function(){r.then((function(t){return t.arrayBuffer()})).then((function(t){return WebAssembly.compile(t)})).then((function(t){s?i(s,t):a=t})).catch((function(t){e(t,null)}))};WebAssembly.compileStreaming?WebAssembly.compileStreaming(r).then((function(t){s?i(s,t):a=t})).catch((function(t){o()})):o()}else lt.get(t.fallbackUrl,n,(function(t,n){t?e(t,null):i(n,null)}))}(t,(function(t,e){if(t)console.error("failed to initialize basis worker: "+t);else for(var i=0;i0,maxRetries:this.maxRetries};t.load.startsWith("blob:")&&(i.responseType=ht.ResponseType.JSON),lt.get(t.load,i,(function(i,n){i?e("Error loading animation clip resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){var i=e.name,n=e.duration,s=e.inputs.map((function(t){return new Pc(1,t)})),a=e.outputs.map((function(t){return new Pc(t.components,t.data)})),r=e.curves.map((function(t){return new Ec([t.path],t.inputIndex,t.outputIndex,t.interpolation)}));return new su(i,n,s,a,r)},e.patch=function(t,e){},t}(),Qu=function(){function t(t){this.handlerType="animstategraph",this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i={retry:this.maxRetries>0,maxRetries:this.maxRetries};t.load.startsWith("blob:")&&(i.responseType=ht.ResponseType.JSON),lt.get(t.load,i,(function(i,n){i?e("Error loading animation state graph resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return new mu(e)},e.patch=function(t,e){},t}(),Ju=function(t){function e(){var e;return(e=t.call(this)||this)._meshes=null,e}j(e,t);var i=e.prototype;return i.destroy=function(){this.meshes=null},i.decRefMeshes=function(){if(this._meshes)for(var t=this._meshes.length,e=0;e=0){var a=n[s];a.decRefCount(),0===a.refCount&&(n.splice(s,1),n.length||t._skinInstanceCache.delete(i),e&&(e.destroy(),a.skinInstance=null))}}}}},t}();ed._skinInstanceCache=new Map;var id=function(){function t(e,i,n,s){for(var a=function(e,s,a){var r=t.createAsset(i.name,e,s,a);return n.add(r),r},r=[],o=0;o0&&o(n,Float32Array,1),s.length>0&&o(s,Uint16Array,65535),a.length>0&&o(a,Uint8Array,255)}(y),y.unlock(),y},_d=new wt,gd=new pt,vd=function(t,e,i,n,s,a,r){var o=[];return e.primitives.forEach((function(h){var l,c,u,d=null,f=!0;if(h.hasOwnProperty("extensions")){var p=h.extensions;if(p.hasOwnProperty("KHR_draco_mesh_compression")){var m=window.DracoDecoderModule;if(m){var _=p.KHR_draco_mesh_compression;if(_.hasOwnProperty("attributes")){var g=n[_.bufferView],v=new m.DecoderBuffer;v.Init(g,g.length);var y,x,b=new m.Decoder,S=b.GetEncodedGeometryType(v);switch(S){case m.POINT_CLOUD:l=0,y=new m.PointCloud,x=b.DecodeBufferToPointCloud(v,y);break;case m.TRIANGULAR_MESH:l=4,y=new m.Mesh,x=b.DecodeBufferToMesh(v,y);case m.INVALID_GEOMETRY_TYPE:}if(!x||!x.ok()||0==y.ptr)return void s("Failed to decode draco compressed asset: "+(x?x.error_msg():"Mesh asset - invalid draco compressed geometry type: "+S));var w=y.num_faces();if(S===m.TRIANGULAR_MESH){var T=y.num_points()>65535,A=(u=3*w)*(T?4:2),M=m._malloc(A);T?(b.GetTrianglesUInt32Array(y,A,M),d=new Uint32Array(m.HEAPU32.buffer,M,u).slice()):(b.GetTrianglesUInt16Array(y,A,M),d=new Uint16Array(m.HEAPU16.buffer,M,u).slice()),m._free(M)}c=function(t,e,i,n,s,a,r){var o=e.num_points(),h=function(t,i){var a,r,h,l,c=n.GetAttributeByUniqueId(e,t),u=o*c.num_components();switch(c.data_type()){case s.DT_UINT8:l=1,h=1,a=s._malloc(u*h),n.GetAttributeDataArrayForAllPoints(e,c,s.DT_UINT8,u*h,a),r=new Uint8Array(s.HEAPU8.buffer,a,u).slice();break;case s.DT_UINT16:l=3,h=2,a=s._malloc(u*h),n.GetAttributeDataArrayForAllPoints(e,c,s.DT_UINT16,u*h,a),r=new Uint16Array(s.HEAPU16.buffer,a,u).slice();break;case s.DT_FLOAT32:default:l=6,h=4,a=s._malloc(u*h),n.GetAttributeDataArrayForAllPoints(e,c,s.DT_FLOAT32,u*h,a),r=new Float32Array(s.HEAPF32.buffer,a,u).slice()}return s._free(a),{values:r,numComponents:c.num_components(),componentSizeInBytes:h,storageType:l,normalized:i===me&&1===l||c.normalized()}},l={},c=i.attributes;for(var u in c)if(c.hasOwnProperty(u)&&hd.hasOwnProperty(u)){var d=hd[u],f=h(c[u],d),p=f.numComponents*f.componentSizeInBytes;l[d]={values:f.values,buffer:f.values.buffer,size:p,offset:0,stride:p,count:o,components:f.numComponents,type:f.storageType,normalize:f.normalized}}return l.hasOwnProperty(ue)||fd(l,a),md(t,l,r)}(t,y,_,b,m,d,a),m.destroy(y),m.destroy(b),m.destroy(v),f=!1}}}}c||(d=h.hasOwnProperty("indices")?cd(i[h.indices],n,!0):null,c=function(t,e,i,n,s,a,r){var o={},h=[];for(var l in e)e.hasOwnProperty(l)&&hd.hasOwnProperty(l)&&(o[l]=e[l],h.push(l+":"+e[l]));h.sort();var c=h.join(),u=r[c];if(!u){var d={};for(var f in o){var p=n[e[f]],m=cd(p,s),_=s[p.bufferView],g=hd[f],v=ad(p.type)*od(p.componentType),y=_.hasOwnProperty("byteStride")?_.byteStride:v;d[g]={buffer:m.buffer,size:v,offset:m.byteOffset,stride:y,count:p.count,components:ad(p.type),type:rd(p.componentType),normalize:p.normalized}}d.hasOwnProperty(ue)||fd(d,i),u=md(t,d,a),r[c]=u}return u}(t,h.attributes,d,i,n,a,r),l=function(t){if(!t.hasOwnProperty("mode"))return 4;switch(t.mode){case 0:return 0;case 1:return 1;case 2:return 2;case 3:return 3;case 4:default:return 4;case 5:return 5;case 6:return 6}}(h));var C=null;if(c){if((C=new ga(t)).vertexBuffer=c,C.primitive[0].type=l,C.primitive[0].base=0,C.primitive[0].indexed=null!==d,null!==d){var E;2!==(E=d instanceof Uint8Array?0:d instanceof Uint16Array?1:2)||t.extUintElement||(E=1,d=new Uint16Array(d));var P=new As(t,E,d.length,0,d);C.indexBuffer[0]=P,C.primitive[0].count=d.length}else C.primitive[0].count=c.numVertices;C.materialIndex=h.material;var R=i[h.attributes.POSITION];if(C.aabb=dd(R),f&&h.hasOwnProperty("targets")){var I=[];h.targets.forEach((function(t,s){var a={};t.hasOwnProperty("POSITION")&&(R=i[t.POSITION],a.deltaPositions=ud(R,n),a.deltaPositionsType=6,a.aabb=dd(R)),t.hasOwnProperty("NORMAL")&&(R=i[t.NORMAL],a.deltaNormals=ud(R,n),a.deltaNormalsType=6),e.hasOwnProperty("extras")&&e.extras.hasOwnProperty("targetNames")?a.name=e.extras.targetNames[s]:a.name=s.toString(10),e.hasOwnProperty("weights")&&(a.defaultWeight=e.weights[s]),I.push(new ml(a))})),C.morph=new $o(I,t)}}o.push(C)})),o},yd=function(t,e,i){var n,s,a=["#ifdef MAPFLOAT","uniform float material_shininess;","#endif","","#ifdef MAPTEXTURE","uniform sampler2D texture_glossMap;","#endif","","void getGlossiness() {","\t\tdGlossiness = 1.0;","","#ifdef MAPFLOAT","\t\tdGlossiness *= material_shininess;","#endif","","#ifdef MAPTEXTURE","\t\tdGlossiness *= texture2D(texture_glossMap, $UV, textureBias).$CH;","#endif","","#ifdef MAPVERTEX","\t\tdGlossiness *= saturate(vVertexColor.$VC);","#endif","","\t\tdGlossiness = 1.0 - dGlossiness;","","\t\tdGlossiness += 0.0000001;","}"].join("\n"),r=["#ifdef MAPCOLOR","uniform vec3 material_specular;","#endif","","#ifdef MAPTEXTURE","uniform sampler2D texture_specularMap;","#endif","","void getSpecularity() {","\t\tdSpecularity = vec3(1.0);","","\t\t#ifdef MAPCOLOR","\t\t\t\tdSpecularity *= material_specular;","\t\t#endif","","\t\t#ifdef MAPTEXTURE","\t\t\t\tvec3 srgb = texture2D(texture_specularMap, $UV, textureBias).$CH;","\t\t\t\tdSpecularity *= vec3(pow(srgb.r, 2.2), pow(srgb.g, 2.2), pow(srgb.b, 2.2));","\t\t#endif","","\t\t#ifdef MAPVERTEX","\t\t\t\tdSpecularity *= saturate(vVertexColor.$VC);","\t\t#endif","}"].join("\n"),o=["#ifdef MAPFLOAT","uniform float material_clearCoatGlossiness;","#endif","","#ifdef MAPTEXTURE","uniform sampler2D texture_clearCoatGlossMap;","#endif","","void getClearCoatGlossiness() {","\t\tccGlossiness = 1.0;","","#ifdef MAPFLOAT","\t\tccGlossiness *= material_clearCoatGlossiness;","#endif","","#ifdef MAPTEXTURE","\t\tccGlossiness *= texture2D(texture_clearCoatGlossMap, $UV, textureBias).$CH;","#endif","","#ifdef MAPVERTEX","\t\tccGlossiness *= saturate(vVertexColor.$VC);","#endif","","\t\tccGlossiness = 1.0 - ccGlossiness;","","\t\tccGlossiness += 0.0000001;","}"].join("\n"),h=[0,0],l=[1,1],c=function(t,e,i){var n,s,a=t.texCoord;if(a)for(s=0;s0?i.name=t.name:i.name="node_"+e,t.hasOwnProperty("matrix")&&(_d.data.set(t.matrix),_d.getTranslation(gd),i.setLocalPosition(gd),_d.getEulerAngles(gd),i.setLocalEulerAngles(gd),_d.getScale(gd),i.setLocalScale(gd)),t.hasOwnProperty("rotation")){var n=t.rotation;i.setLocalRotation(n[0],n[1],n[2],n[3])}if(t.hasOwnProperty("translation")){var s=t.translation;i.setLocalPosition(s[0],s[1],s[2])}if(t.hasOwnProperty("scale")){var a=t.scale;i.setLocalScale(a[0],a[1],a[2])}return i},bd=function(t,e){var i="orthographic"===t.type?1:0,n=1===i?t.orthographic:t.perspective,s={enabled:!1,projection:i,nearClip:n.znear,aspectRatioMode:0};n.zfar&&(s.farClip=n.zfar),1===i?(s.orthoHeight=.5*n.ymag,n.ymag&&(s.aspectRatioMode=1,s.aspectRatio=n.xmag/n.ymag)):(s.fov=n.yfov*ot.RAD_TO_DEG,n.aspectRatio&&(s.aspectRatioMode=1,s.aspectRatio=n.aspectRatio));var a=new rl(t.name);return a.addComponent("camera",s),a},Sd=function(t,e){var i={enabled:!1,type:"point"===t.type?"omni":t.type,color:t.hasOwnProperty("color")?new ct(t.color):ct.WHITE,range:t.hasOwnProperty("range")?t.range:9999,falloffMode:1,intensity:t.hasOwnProperty("intensity")?ot.clamp(t.intensity,0,2):1};t.hasOwnProperty("spot")&&(i.innerConeAngle=t.spot.hasOwnProperty("innerConeAngle")?t.spot.innerConeAngle*ot.RAD_TO_DEG:0,i.outerConeAngle=t.spot.hasOwnProperty("outerConeAngle")?t.spot.outerConeAngle*ot.RAD_TO_DEG:Math.PI/4);var n=new rl(e.name);return n.rotateLocal(90,0,0),n.addComponent("light",i),n},wd=function(t,e,i,n){if(!e.hasOwnProperty("skins")||0===e.skins.length)return[];var s=new Map;return e.skins.map((function(a){return function(t,e,i,n,s,a){var r,o,h,l=e.joints,c=l.length,u=[];if(e.hasOwnProperty("inverseBindMatrices")){var d=e.inverseBindMatrices,f=cd(i[d],n,!0),p=[];for(r=0;r0){var s=i&&i.camera&&i.camera.preprocess,a=i&&i.camera&&i.camera.process||bd,r=i&&i.camera&&i.camera.postprocess;t.nodes.forEach((function(i,o){if(i.hasOwnProperty("camera")){var h=t.cameras[i.camera];if(h){s&&s(h);var l=a(h,e[o]);r&&r(h,l),l&&(n||(n=new Map),n.set(i,l))}}}))}return n}(e,l,s),f=Td(e,l,i,s),p=function(t,e,i,n){if(!t.hasOwnProperty("materials")||0===t.materials.length)return[];var s=i&&i.material&&i.material.preprocess,a=i&&i.material&&i.material.process||yd,r=i&&i.material&&i.material.postprocess;return t.materials.map((function(t){s&&s(t);var i=a(t,e,n);return r&&r(t,i),i}))}(e,n.map((function(t){return t.resource})),s,h),m=function(t,e,i,n,s){if(!e.hasOwnProperty("meshes")||0===e.meshes.length||!e.hasOwnProperty("accessors")||0===e.accessors.length||!e.hasOwnProperty("bufferViews")||0===e.bufferViews.length)return[];var a={};return e.meshes.map((function(r){return vd(t,r,e.accessors,i,n,s,a)}))}(t,e,i,a,h),_=wd(t,e,l,i),g=[],v=0;vi.byteLength)e("Invalid length found in glb header. Found "+a);else{for(var r=[],o=12;oi.byteLength)throw new Error("Invalid chunk length found in glb. Found "+h);var l=i.getUint32(o+4,!0),c=new Uint8Array(i.buffer,i.byteOffset+o+8,h);r.push({length:h,type:l,data:c}),o+=h+8}1===r.length||2===r.length?1313821514===r[0].type?r.length>1&&5130562!==r[1].type?e("Invalid chunk type found in glb file. Expected 0x004E4942, found 0x"+r[1].type.toString(16)):e(null,{gltfChunk:r[0].data,binaryChunk:2===r.length?r[1].data:null}):e("Invalid chunk type found in glb file. Expected 0x4E4F534A, found 0x"+r[0].type.toString(16)):e("Invalid number of chunks found in glb file.")}else e("Invalid version number found in glb header. Expected 2, found "+s);else e("Invalid magic number found in glb header. Expected 0x46546C67, found 0x"+n.toString(16))}(e,i):i(null,{gltfChunk:e,binaryChunk:null})},Rd=function(t,e,i,n){var s=[],a=i&&i.bufferView&&i.bufferView.preprocess,r=i&&i.bufferView&&i.bufferView.processAsync||function(t,e,i){i(null,null)},o=i&&i.bufferView&&i.bufferView.postprocess,h=t.bufferViews?t.bufferViews.length:0;if(h)for(var l=function(e,i){var a=t.bufferViews[e];a.hasOwnProperty("byteStride")&&(i.byteStride=a.byteStride),s[e]=i,o&&o(a,i),0==--h&&n(null,s)},c=0;c=0?t.split("?")[0]:t},e.load=function(e,i,n){var s=this;Mh.fetchArrayBuffer(e.load,(function(a,r){a?i(a):t.parseAsync(s._getUrlWithoutParams(e.original),v.extractPath(e.load),r,s._device,n.registry,n.options,(function(t,e){t?i(t):i(null,new id(e,n,s._assets,s._defaultMaterial))}))}),n,this.maxRetries)},e.open=function(t,e,i){return e},e.patch=function(t,e){},t}(),Ld=function(){function t(t){this.handlerType="animation",this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i={retry:this.maxRetries>0,maxRetries:this.maxRetries};(t.load.startsWith("blob:")||t.load.startsWith("data:"))&&(".glb"===v.getExtension(t.original).toLowerCase()?i.responseType=ht.ResponseType.ARRAY_BUFFER:i.responseType=ht.ResponseType.JSON),lt.get(t.load,i,(function(i,n){i?e("Error loading animation resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){if(".glb"===v.getExtension(t).toLowerCase()){var i=Id.parse("filename.glb",e,null);if(i){var n=i.animations;return i.destroy(),n}return null}return this["_parseAnimationV"+e.animation.version](e)},e.patch=function(t,e){},e._parseAnimationV3=function(t){var e=t.animation,i=new bc;i.name=e.name,i.duration=e.duration;for(var n=0;n0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}return!1}(),kd=[".ogg",".mp3",".wav",".mp4a",".m4a",".mp4",".aac",".opus"],Od=function(){function t(t){this.handlerType="audio",this.manager=t.soundManager,this.maxRetries=0}var e=t.prototype;return e._isSupported=function(t){var e=v.getExtension(t);return kd.indexOf(e)>-1},e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i=function(i){var n="Error loading audio url: "+t.original;i&&(n+=": "+(i.message||i)),console.warn(n),e(n)};if(this._createSound){if(!this._isSupported(t.original))return void i("Audio format for "+t.original+" not supported");this._createSound(t.load,(function(t){e(null,new ku(t))}),i)}else i(null)},e.open=function(t,e){return e},e.patch=function(t,e){},e._createSound=function(t,e,i){if(Tu()){var n=this.manager;if(!n.context)return void i("Audio manager has no audio context");var s={retry:this.maxRetries>0,maxRetries:this.maxRetries};(t.startsWith("blob:")||t.startsWith("data:"))&&(s.responseType=ht.ResponseType.ARRAY_BUFFER),lt.get(t,s,(function(t,s){t?i(t):n.context.decodeAudioData(s,e,i)}))}else{var a=null;try{a=new Audio}catch(t){return void i("No support for Audio element")}Dd&&document.body.appendChild(a);a.onerror=function(){a.onerror=null,Dd&&document.body.removeChild(a),i()},a.addEventListener("canplaythrough",(function t(){a.removeEventListener("canplaythrough",t),Dd&&document.body.removeChild(a),e(a)})),a.src=t}},t}(),Fd=function(){function t(t){this.handlerType="binary",this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t}),lt.get(t.load,{responseType:ht.ResponseType.ARRAY_BUFFER,retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?e("Error loading binary resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}(),Bd=function(){function t(){}var e=t.prototype;return e.instantiateModelEntity=function(t){return null},e.instantiateRenderEntity=function(t){return null},t}(),Nd=function(){function t(t){this.handlerType="container",this.glbParser=new Id(t.graphicsDevice,t.assets,0),this.parsers={}}var e=t.prototype;return e._getUrlWithoutParams=function(t){return t.indexOf("?")>=0?t.split("?")[0]:t},e._getParser=function(t){var e=t?v.getExtension(this._getUrlWithoutParams(t)).toLowerCase().replace(".",""):null;return this.parsers[e]||this.glbParser},e.load=function(t,e,i){"string"==typeof t&&(t={load:t,original:t}),this._getParser(t.original).load(t,e,i)},e.open=function(t,e,i){return this._getParser(t).open(t,e,i)},e.patch=function(t,e){},q(t,[{key:"maxRetries",get:function(){return this.glbParser.maxRetries},set:function(t){for(var e in this.glbParser.maxRetries=t,this.parsers)this.parsers.hasOwnProperty(e)&&(this.parsers[e].maxRetries=t)}}]),t}(),Ud=function(){function t(t){this.handlerType="css",this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t}),lt.get(t.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?e("Error loading css resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}();var zd=function(){function t(t){this.handlerType="cubemap",this._device=t.graphicsDevice,this._registry=t.assets,this._loader=t.loader}var e=t.prototype;return e.load=function(t,e,i){this.loadAssets(i,e)},e.open=function(t,e,i){return i?i.resource:null},e.patch=function(t,e){this.loadAssets(t,(function(i,n){i&&(e.fire("error",t),e.fire("error:"+t.id,i,t),t.fire("error",t))}))},e.getAssetIds=function(t){var e=[];if(e[0]=t.file,(t.loadFaces||!t.file)&&t.data&&t.data.textures)for(var i=0;i<6;++i)e[i+1]=t.data.textures[i];else e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=null;return e},e.compareAssetIds=function(t,e){return t&&e?parseInt(t,10)===t||"string"==typeof t?t===e:t.url===e.url:null!==t==(null!==e)},e.update=function(t,e,i){var n,s,a,r=t.data||{},o=t._handlerState.assets,h=t._resources,l=[null,null,null,null,null,null,null],c=function(){return r.hasOwnProperty("type")?r.type:r.hasOwnProperty("rgbm")?r.rgbm?We:Ge:null};if(t.loaded&&i[0]===o[0])l[1]=h[1]||null,l[2]=h[2]||null,l[3]=h[3]||null,l[4]=h[4]||null,l[5]=h[5]||null,l[6]=h[6]||null;else if(i[0])for(n=i[0].resource,a=0;a<6;++a)l[a+1]=new Ui(this._device,{name:t.name+"_prelitCubemap"+(n.width>>a),cubemap:!0,type:c()||n.type,width:n.width>>a,height:n.height>>a,format:n.format,levels:[n._levels[a]],fixCubemapSeams:!0,addressU:1,addressV:1,mipmaps:0===a});var u=i.slice(1);if(t.loaded&&this.cmpArrays(u,o.slice(1)))l[0]=h[0]||null;else if(-1===u.indexOf(null)){var d=u.map((function(t){return t.resource})),f=[];for(s=0;s0,maxRetries:this.maxRetries},(function(i,s){if(i)e("Error loading font resource: "+t.original+" ["+i+"]");else{var a=Gd(s);n._loadTextures(t.load.replace(".json",".png"),a,(function(t,i){if(t)return e(t);e(null,{data:a,textures:i})}))}})):(i&&i.data&&(i.data=Gd(i.data)),this._loadTextures(t.load,i&&i.data,e))},e._loadTextures=function(t,e,i){for(var n=e.info.maps.length,s=0,a=null,r=new Array(n),o=this._loader,h=function(e){var h=function(t,o){if(!a){if(t)return a=t,i(t);o.upload(),r[e]=o,++s===n&&i(null,r)}};0===e?o.load(t,"texture",h):o.load(t.replace(".png",e+".png"),"texture",h)},l=0;l0,maxRetries:e},(function(e,n){if(e){var s="Error while loading scene JSON "+t.original;e.message?(s+=": "+e.message,e.stack&&(s+="\n"+e.stack)):s+=": "+e,i(s)}else i(e,n)}))},Zd=function(){function t(t){this.handlerType="hierarchy",this._app=t,this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){Kd(t,this.maxRetries,e)},e.open=function(t,e){this._app.systems.script.preloading=!0;var i=new jd(this._app,!1).parse(e);return this._app.systems.script.preloading=!1,i},t}(),$d=function(){function t(t){this.handlerType="html",this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t}),lt.get(t.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?e("Error loading html resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}(),Qd=function(){function t(t){this.handlerType="json",this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i={retry:this.maxRetries>0,maxRetries:this.maxRetries};t.load.startsWith("blob:")&&(i.responseType=ht.ResponseType.JSON),lt.get(t.load,i,(function(i,n){i?e("Error loading JSON resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}(),Jd=function(){function t(){this.removeInvalid=!0,this.valid=!0,this.enumValidators={occludeSpecular:this._createEnumValidator([0,1,2]),cull:this._createEnumValidator([0,1,2,3]),blendType:this._createEnumValidator([0,1,2,3,4,5,6,7,8,9,10]),depthFunc:this._createEnumValidator([0,1,2,3,4,5,6,7]),shadingModel:this._createEnumValidator([0,1])}}var e=t.prototype;return e.setInvalid=function(t,e){this.valid=!1,this.removeInvalid&&delete e[t]},e.validate=function(t){var e=es,i="path"===t.mappingFormat;for(var n in t){var s=e[n];if(s)if(s.startsWith("enum")){var a=s.split(":")[1];this.enumValidators[a]&&(this.enumValidators[a](t[n])||this.setInvalid(n,t))}else if("number"===s)"number"!=typeof t[n]&&this.setInvalid(n,t);else if("boolean"===s)"boolean"!=typeof t[n]&&this.setInvalid(n,t);else if("string"===s)"string"!=typeof t[n]&&this.setInvalid(n,t);else if("vec2"===s)t[n]instanceof Array&&2===t[n].length||this.setInvalid(n,t);else if("rgb"===s)t[n]instanceof Array&&3===t[n].length||this.setInvalid(n,t);else if("texture"===s)i?"string"!=typeof t[n]&&null!==t[n]&&(t[n]instanceof Ui||this.setInvalid(n,t)):"number"!=typeof t[n]&&null!==t[n]&&(t[n]instanceof Ui||this.setInvalid(n,t));else if("boundingbox"===s)t[n].center&&t[n].center instanceof Array&&3===t[n].center.length||this.setInvalid(n,t),t[n].halfExtents&&t[n].halfExtents instanceof Array&&3===t[n].halfExtents.length||this.setInvalid(n,t);else if("cubemap"===s)"number"!=typeof t[n]&&null!==t[n]&&void 0!==t[n]&&(t[n]instanceof Ui&&t[n].cubemap||this.setInvalid(n,t));else if("chunks"===s)for(var r=Object.keys(t[n]),o=0;o=0}},t}(),tf=function(){function t(){this._validator=null}var e=t.prototype;return e.parse=function(t){var e=this.migrate(t),i=this._validate(e),n=new ls;return this.initialize(n,i),n},e.initialize=function(t,e){for(var i in e.validated||(e=this._validate(e)),e.chunks&&(t.chunks=Y({},e.chunks)),e){var n=es[i],s=e[i];if("vec2"===n)t[i]=new _t(s[0],s[1]);else if("rgb"===n)t[i]=new ct(s[0],s[1],s[2]);else if("texture"===n)s instanceof Ui?t[i]=s:t[i]instanceof Ui&&"number"==typeof s&&s>0||(t[i]=null);else if("cubemap"===n)s instanceof Ui?t[i]=s:t[i]instanceof Ui&&"number"==typeof s&&s>0||(t[i]=null),"cubeMap"!==i||s||(t.prefilteredCubemaps=null);else if("boundingbox"===n){var a=new pt(s.center[0],s.center[1],s.center[2]),r=new pt(s.halfExtents[0],s.halfExtents[1],s.halfExtents[2]);t[i]=new Rt(a,r)}else t[i]=e[i]}t.update()},e.migrate=function(t){var e;void 0===t.shadingModel&&("blinn"===t.shader?t.shadingModel=1:t.shadingModel=0),t.shader&&delete t.shader,t.mapping_format&&(t.mappingFormat=t.mapping_format,delete t.mapping_format);var i=[["bumpMapFactor","bumpiness"],["aoUvSet","aoMapUv"],["aoMapVertexColor","aoVertexColor"],["diffuseMapVertexColor","diffuseVertexColor"],["emissiveMapVertexColor","emissiveVertexColor"],["specularMapVertexColor","specularVertexColor"],["metalnessMapVertexColor","metalnessVertexColor"],["opacityMapVertexColor","opacityVertexColor"],["glossMapVertexColor","glossVertexColor"],["lightMapVertexColor","lightVertexColor"],["diffuseMapTint","diffuseTint"],["specularMapTint","specularTint"],["emissiveMapTint","emissiveTint"],["metalnessMapTint","metalnessTint"]];for(e=0;e0,maxRetries:this.maxRetries},(function(i,n){i?e&&e("Error loading material: "+t.original+" ["+i+"]"):e&&(n._engine=!0,e(null,n))}))},e.open=function(t,e){var i=this._parser.parse(e);return e._engine&&(i._data=e,delete e._engine),i},e._createPlaceholders=function(){this._placeholderTextures={};var t={white:[255,255,255,255],gray:[128,128,128,255],black:[0,0,0,255],normal:[128,128,255,255]};for(var e in t)if(t.hasOwnProperty(e)){this._placeholderTextures[e]=new Ui(this._device,{width:2,height:2,format:7,name:"material_placeholder"});for(var i=this._placeholderTextures[e].lock(),n=0;n<4;n++)for(var s=0;s<4;s++)i[4*n+s]=t[e][s];this._placeholderTextures[e].unlock()}},e.patch=function(t,e){t.resource._data&&(t._data=t.resource._data,delete t.resource._data),t.data.name=t.name,t.resource.name=t.name,this._bindAndAssignAssets(t,e),t.off("unload",this._onAssetUnload,this),t.on("unload",this._onAssetUnload,this)},e._onAssetUnload=function(t){delete t.data.parameters,delete t.data.chunks,delete t.data.name},e._assignTexture=function(t,e,i){e.resource[t]=i},e._getPlaceholderTexture=function(t){this._placeholderTextures||this._createPlaceholders();var e=nf[t];return this._placeholderTextures[e]},e._assignPlaceholderTexture=function(t,e){e.resource[t]=this._getPlaceholderTexture(t)},e._onTextureLoad=function(t,e,i){this._assignTexture(t,e,i.resource),e.resource.update()},e._onTextureAdd=function(t,e,i){this._assets.load(i)},e._onTextureRemoveOrUnload=function(t,e,i){var n=e.resource;n&&e.resource[t]===i.resource&&(this._assignPlaceholderTexture(t,e),n.update())},e._assignCubemap=function(t,e,i){e.resource[t]=i[0],"cubeMap"===t&&(e.resource.prefilteredCubemaps=i.slice(1))},e._onCubemapLoad=function(t,e,i){this._assignCubemap(t,e,i.resources),this._parser.initialize(e.resource,e.data)},e._onCubemapAdd=function(t,e,i){0===e.data.shadingModel&&(e.loadFaces=!0),this._assets.load(i)},e._onCubemapRemoveOrUnload=function(t,e,i){var n=e.resource;e.data.prefilteredCubeMap128===i.resources[1]&&(this._assignCubemap(t,e,[null,null,null,null,null,null,null]),n.update())},e._bindAndAssignAssets=function(t,e){var i,n,s,a=this._parser.migrate(t.data),r=t.resource,o="path"===a.mappingFormat,h=is;for(i=0;i0){for(var c=i.blendIndices.data[4*h+l],u=!0,d=0;dn)return!1;for(var f=0;f=0;n--)if(l[n].boneNames.length>i){var f=l.splice(n,1)[0],p=[];for(s=0;s=0;a--)u[a].mesh===_.originalMesh&&(u.push({mesh:o,node:u[a].node}),e&&e.push({material:e[a].material,path:e[a].path}));for(s=0;s=0;a--)u[a].mesh===_.originalMesh&&(u.splice(a,1),e&&e.splice(a,1))}!function(t){for(var e=t.vertices,i=t.skins,n=t.meshes,s=t.meshInstances,a=0;a0&&hf(s,null,this._device.getBoneLimit());for(i=0;i0&&(h>65535&&this._device.extUintElement?(s=new As(this._device,2,r),a=new Uint32Array(s.lock())):(s=new As(this._device,1,r),a=new Uint16Array(s.lock()))),{buffer:s,data:a}},e._parseMeshes=function(t,e,i,n,s,a){for(var r=t.model,o=[],h=0,l=0;l0,maxRetries:this.maxRetries};(t.load.startsWith("blob:")||t.load.startsWith("data:"))&&(".glb"===v.getExtension(t.original).toLowerCase()?i.responseType=ht.ResponseType.ARRAY_BUFFER:i.responseType=ht.ResponseType.JSON),lt.get(t.load,i,(function(i,n){e&&(i?e("Error loading model: "+t.original+" ["+i+"]"):e(null,n))}))},e.open=function(t,e){for(var i=0;i0,maxRetries:this.maxRetries},(function(i,n){i?e("Error loading shader resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}();function bf(t){this.resource&&(this.resource.atlas=t.resource)}function Sf(t){this.registry.load(t)}var wf=function(){function t(t){this.handlerType="sprite",this._assets=t.assets,this._device=t.graphicsDevice,this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t}),".json"===v.getExtension(t.original)&<.get(t.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(t,i){t?e(t):e(null,i)}))},e.open=function(t,e){var i=new _c(this._device);return t&&(i.__data=e),i},e.patch=function(t,e){var i=t.resource;if(i.__data&&(t.data.pixelsPerUnit=i.__data.pixelsPerUnit,t.data.renderMode=i.__data.renderMode,t.data.frameKeys=i.__data.frameKeys,i.__data.textureAtlasAsset)){var n=e.getByUrl(i.__data.textureAtlasAsset);n?t.data.textureAtlasAsset=n.id:console.warn("Could not find textureatlas with url: "+i.__data.textureAtlasAsset)}i.startUpdate(),i.renderMode=t.data.renderMode,i.pixelsPerUnit=t.data.pixelsPerUnit,i.frameKeys=t.data.frameKeys,this._updateAtlas(t),i.endUpdate(),t.off("change",this._onAssetChange,this),t.on("change",this._onAssetChange,this)},e._updateAtlas=function(t){var e=t.resource;if(t.data.textureAtlasAsset){this._assets.off("load:"+t.data.textureAtlasAsset,bf,t),this._assets.on("load:"+t.data.textureAtlasAsset,bf,t);var i=this._assets.get(t.data.textureAtlasAsset);i&&i.resource?e.atlas=i.resource:i?this._assets.load(i):(this._assets.off("add:"+t.data.textureAtlasAsset,Sf,t),this._assets.on("add:"+t.data.textureAtlasAsset,Sf,t))}else e.atlas=null},e._onAssetChange=function(t,e,i,n){"data"===e&&i&&i.textureAtlasAsset&&n&&i.textureAtlasAsset!==n.textureAtlasAsset&&(this._assets.off("load:"+n.textureAtlasAsset,bf,t),this._assets.off("add:"+n.textureAtlasAsset,Sf,t))},t}(),Tf=function(){function t(t,e){this._app=t,this._data=e,this._templateRoot=null}var e=t.prototype;return e.instantiate=function(){return this._templateRoot||this._parseTemplate(),this._templateRoot.clone()},e._parseTemplate=function(){var t=new jd(this._app,!0);this._templateRoot=t.parse(this._data)},t}(),Af=function(){function t(t){this.handlerType="template",this._app=t,this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i={retry:this.maxRetries>0,maxRetries:this.maxRetries};lt.get(t.load,i,(function(i,n){i?e("Error requesting template: "+t.original):e(i,n)}))},e.open=function(t,e){return new Tf(this._app,e)},t}(),Mf=function(){function t(t){this.handlerType="text",this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t}),lt.get(t.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(i,n){i?e("Error loading text resource: "+t.original+" ["+i+"]"):e(null,n)}))},e.open=function(t,e){return e},e.patch=function(t,e){},t}(),Cf=function(){function t(t,e){this.device=e,this.maxRetries=0}var e=t.prototype;return e.load=function(t,e,i){var n=this.device;Mh.fetchArrayBuffer(t.load,(function(s,a){s?e(s):function(s){var a,r,o;Zu(n,t.load,s,e,{isGGGR:0!=(8&(null==i||null==(a=i.file)||null==(r=a.variants)||null==(o=r.basis)?void 0:o.opt))})||e("Basis module not found. Asset '"+i.name+"' basis texture variant will not be loaded.")}(a)}),i,this.maxRetries)},e.open=function(t,e,i){var n=new Ui(i,{name:t,addressU:e.cubemap?1:0,addressV:e.cubemap?1:0,width:e.width,height:e.height,format:e.format,cubemap:e.cubemap,levels:e.levels});return n.upload(),n},t}(),Ef=function(){function t(t){this.crossOrigin=t.prefix?"anonymous":null,this.maxRetries=0,this.useImageBitmap=!1}var e=t.prototype;return e.load=function(t,e,i){var n,s=!(null==i||null==(n=i.file)||!n.contents);s&&(t={load:URL.createObjectURL(new Blob([i.file.contents])),original:t.original});var a,r=function(i,n){s&&URL.revokeObjectURL(t.load),e(i,n)};i&&i.options&&i.options.hasOwnProperty("crossOrigin")?a=i.options.crossOrigin:bh.test(t.load)&&(a=this.crossOrigin),this.useImageBitmap?this._loadImageBitmap(t.load,t.original,a,r):this._loadImage(t.load,t.original,a,r)},e.open=function(t,e,i){var n=v.getExtension(t).toLowerCase(),s=".jpg"===n||".jpeg"===n?6:7,a=new Ui(i,{name:t,width:e.width,height:e.height,format:s});return a.setSource(e),a},e._loadImage=function(t,e,i,n){var s=new Image;i&&(s.crossOrigin=i);var a,r=0,o=this.maxRetries;s.onload=function(){n(null,s)},s.onerror=function(){if(!a)if(o>0&&++r<=o){var i=100*Math.pow(2,r);console.log("Error loading Texture from: '"+e+"' - Retrying in "+i+"ms...");var h=t.indexOf("?")>=0?"&":"?";a=setTimeout((function(){s.src=t+h+"retry="+Date.now(),a=null}),i)}else n("Error loading Texture from: '"+e+"'")},s.src=t},e._loadImageBitmap=function(t,e,i,n){var s={cache:!0,responseType:"blob",retry:this.maxRetries>0,maxRetries:this.maxRetries};lt.get(t,s,(function(t,e){t?n(t):createImageBitmap(e,{premultiplyAlpha:"none"}).then((function(t){n(null,t)})).catch((function(t){n(t)}))}))},t}(),Pf=[1481919403,3140563232,169478669],Rf={33776:8,33778:9,33779:te,36196:oe,37492:22,37496:23,35840:26,35841:he,35842:27,35843:le,32849:6,32856:7,35905:19,35907:20,35898:18,34843:ee,34842:ie};var If=function(){function t(t){this.maxRetries=0}var e=t.prototype;return e.load=function(t,e,i){Mh.fetchArrayBuffer(t.load,e,i,this.maxRetries)},e.open=function(t,e,i){var n=this.parse(e);if(!n)return null;var s=new Ui(i,{name:t,addressU:n.cubemap?1:0,addressV:n.cubemap?1:0,width:n.width,height:n.height,format:n.format,cubemap:n.cubemap,levels:n.levels});return s.upload(),s},e.parse=function(t){var e=new Uint32Array(t);if(Pf[0]!==e[0]||Pf[1]!==e[1]||Pf[2]!==e[2])return null;var i={endianness:e[3],glType:e[4],glTypeSize:e[5],glFormat:e[6],glInternalFormat:e[7],glBaseInternalFormat:e[8],pixelWidth:e[9],pixelHeight:e[10],pixelDepth:e[11],numberOfArrayElements:e[12],numberOfFaces:e[13],numberOfMipmapLevels:e[14],bytesOfKeyValueData:e[15]};if(i.pixelDepth>1)return null;if(0!==i.numberOfArrayElements)return null;var n=Rf[i.glInternalFormat];if(void 0===n)return null;for(var s,a,r,o=16+i.bytesOfKeyValueData/4,h=i.numberOfFaces>1,l=[],c=0;c<(i.numberOfMipmapLevels||1);c++){var u=e[o++];h&&l.push([]);for(var d=h?l[c]:l,f=0;f<(h?6:1);++f)d.push((s=t,a=4*o,r=u,18===n?new Uint32Array(s,a,r/4):new Uint8Array(s,a,r))),o+=u+3>>2}return{format:n,width:i.pixelWidth,height:i.pixelHeight,levels:l,cubemap:h}},t}(),Lf=166,Df=function(){function t(t,e){this.maxRetries=0,this.device=e}var e=t.prototype;return e.load=function(t,e,i){var n=this;Mh.fetchArrayBuffer(t.load,(function(s,a){s?e(s,a):n.parse(a,t,e,i)}),i,this.maxRetries)},e.open=function(t,e,i){var n=new Ui(i,{name:t,addressU:e.cubemap?1:0,addressV:e.cubemap?1:0,width:e.width,height:e.height,format:e.format,cubemap:e.cubemap,levels:e.levels});return n.upload(),n},e.parse=function(t,e,i,n){var s=new J(t),a=[s.readU32be(),s.readU32be(),s.readU32be()];if(2873840728!==a[0]||540160187!==a[1]||218765834!==a[2])return null;for(var r={vkFormat:s.readU32(),typeSize:s.readU32(),pixelWidth:s.readU32(),pixelHeight:s.readU32(),pixelDepth:s.readU32(),layerCount:s.readU32(),faceCount:s.readU32(),levelCount:s.readU32(),supercompressionScheme:s.readU32()},o={dfdByteOffset:s.readU32(),dfdByteLength:s.readU32(),kvdByteOffset:s.readU32(),kvdByteLength:s.readU32(),sgdByteOffset:s.readU64(),sgdByteLength:s.readU64()},h=[],l=0;l1});for(var b,S=128,w=u?6:1,T=l===d?8:16,A=0;A32767)return this._readPixelsFlat(t,e,i);var s=[0,0,0,0];if(t.readArray(s),2!==s[0]||2!==s[1]||0!=(128&s[2]))return t.skip(-4),this._readPixelsFlat(t,e,i);var a,r,o,h,l,c,u=new ArrayBuffer(e*i*4),d=new Uint8Array(u),f=n?0:4*e*(i-1);for(r=0;r128){if(a+(l-=128)>e)return null;for(c=t.readU8(),o=0;oe)return null;for(o=0;o=0?t.split("?")[0]:t},e._getParser=function(t){var e=v.getExtension(this._getUrlWithoutParams(t)).toLowerCase().replace(".","");return this.parsers[e]||this.imgParser},e.load=function(t,e,i){"string"==typeof t&&(t={load:t,original:t}),this._getParser(t.original).load(t,e,i)},e.open=function(t,e,i){if(t){var n=this._getParser(t).open(t,e,this._device);return null===n?n=new Ui(this._device,{width:4,height:4,format:6}):(!function(t){var e=Math.log2(Math.max(t._width,t._height))+1;if(!(7!==t._format&&t._format!==se||t._volume||t._compressed||1===t._levels.length||t._levels.length===e||(i=t._cubemap?t._levels[0][0]:t._levels[0],i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement))){for(var i,n=function(t,e,i){for(var n=Math.max(1,t>>1),s=Math.max(1,e>>1),a=new i.constructor(n*s*4),r=Math.floor(t/n),o=Math.floor(e/s),h=r*o,l=0;l>s-1),r=Math.max(1,t._height>>s-1);if(t._cubemap){for(var o=[],h=0;h<6;++h)o.push(n(a,r,t._levels[s-1][h]));t._levels.push(o)}else t._levels.push(n(a,r,t._levels[s-1]))}t._levelsUpdated=t._cubemap?[[!0,!0,!0,!0,!0,!0]]:[!0]}}(n),e.unswizzledGGGR&&(i.file.variants.basis.opt&=-9)),n}},e.patch=function(t,e){var i=t.resource;if(i){t.name&&t.name.length>0&&(i.name=t.name);var n=t.data;n.hasOwnProperty("minfilter")&&(i.minFilter=Bf[n.minfilter]),n.hasOwnProperty("magfilter")&&(i.magFilter=Bf[n.magfilter]),i.cubemap||(n.hasOwnProperty("addressu")&&(i.addressU=Ff[n.addressu]),n.hasOwnProperty("addressv")&&(i.addressV=Ff[n.addressv])),n.hasOwnProperty("mipmaps")&&(i.mipmaps=n.mipmaps),n.hasOwnProperty("anisotropy")&&(i.anisotropy=n.anisotropy),n.hasOwnProperty("flipY")&&(i.flipY=!!n.flipY),n.hasOwnProperty("type")?i.type=Nf[n.type]:n.hasOwnProperty("rgbm")&&n.rgbm?i.type=We:t.file&&0!=(8&t.file.opt)&&(i.type=Xe)}},q(t,[{key:"crossOrigin",get:function(){return this.imgParser.crossOrigin},set:function(t){this.imgParser.crossOrigin=t}},{key:"maxRetries",get:function(){return this.imgParser.maxRetries},set:function(t){for(var e in this.imgParser.maxRetries=t,this.parsers)this.parsers.hasOwnProperty(e)&&(this.parsers[e].maxRetries=t)}}]),t}(),Vf={repeat:0,clamp:1,mirror:2},Gf={nearest:0,linear:1,nearest_mip_nearest:2,linear_mip_nearest:4,nearest_mip_linear:3,linear_mip_linear:5},Wf=/^data\.frames\.(\d+)$/,Hf=function(){function t(t){this.handlerType="textureatlas",this._loader=t.loader,this.maxRetries=0}var e=t.prototype;return e.load=function(t,e){"string"==typeof t&&(t={load:t,original:t});var i=this,n=this._loader.getHandler("texture");if(".json"!==v.getExtension(t.original))return n.load(t,e);lt.get(t.load,{retry:this.maxRetries>0,maxRetries:this.maxRetries},(function(n,s){if(n)e(n);else{var a=t.original.replace(".json",".png");i._loader.load(a,"texture",(function(t,i){t?e(t):e(null,{data:s,texture:i})}))}}))},e.open=function(t,e){var i=new vc;if(e.texture&&e.data)i.texture=e.texture,i.__data=e.data;else{var n=this._loader.getHandler("texture").open(t,e);if(!n)return null;i.texture=n}return i},e.patch=function(t,e){t.resource.__data&&(void 0!==t.resource.__data.minfilter&&(t.data.minfilter=t.resource.__data.minfilter),void 0!==t.resource.__data.magfilter&&(t.data.magfilter=t.resource.__data.magfilter),void 0!==t.resource.__data.addressu&&(t.data.addressu=t.resource.__data.addressu),void 0!==t.resource.__data.addressv&&(t.data.addressv=t.resource.__data.addressv),void 0!==t.resource.__data.mipmaps&&(t.data.mipmaps=t.resource.__data.mipmaps),void 0!==t.resource.__data.anisotropy&&(t.data.anisotropy=t.resource.__data.anisotropy),void 0!==t.resource.__data.rgbm&&(t.data.rgbm=!!t.resource.__data.rgbm),t.data.frames=t.resource.__data.frames,delete t.resource.__data);var i=t.resource.texture;if(i&&(i.name=t.name,t.data.hasOwnProperty("minfilter")&&i.minFilter!==Gf[t.data.minfilter]&&(i.minFilter=Gf[t.data.minfilter]),t.data.hasOwnProperty("magfilter")&&i.magFilter!==Gf[t.data.magfilter]&&(i.magFilter=Gf[t.data.magfilter]),t.data.hasOwnProperty("addressu")&&i.addressU!==Vf[t.data.addressu]&&(i.addressU=Vf[t.data.addressu]),t.data.hasOwnProperty("addressv")&&i.addressV!==Vf[t.data.addressv]&&(i.addressV=Vf[t.data.addressv]),t.data.hasOwnProperty("mipmaps")&&i.mipmaps!==t.data.mipmaps&&(i.mipmaps=t.data.mipmaps),t.data.hasOwnProperty("anisotropy")&&i.anisotropy!==t.data.anisotropy&&(i.anisotropy=t.data.anisotropy),t.data.hasOwnProperty("rgbm"))){var n=t.data.rgbm?We:Ge;i.type!==n&&(i.type=n)}t.resource.texture=i;var s={};for(var a in t.data.frames){var r=t.data.frames[a];s[a]={rect:new gt(r.rect),pivot:new _t(r.pivot),border:new gt(r.border)}}t.resource.frames=s,t.off("change",this._onAssetChange,this),t.on("change",this._onAssetChange,this)},e._onAssetChange=function(t,e,i){var n;if("data"===e||"data.frames"===e){var s={};for(var a in i.frames)n=i.frames[a],s[a]={rect:new gt(n.rect),pivot:new _t(n.pivot),border:new gt(n.border)};t.resource.frames=s}else{var r=e.match(Wf);if(r){var o=r[1];i?(t.resource.frames[o]?((n=t.resource.frames[o]).rect.set(i.rect[0],i.rect[1],i.rect[2],i.rect[3]),n.pivot.set(i.pivot[0],i.pivot[1]),n.border.set(i.border[0],i.border[1],i.border[2],i.border[3])):t.resource.frames[o]={rect:new gt(i.rect),pivot:new _t(i.pivot),border:new gt(i.border)},t.resource.fire("set:frame",o,t.resource.frames[o])):t.resource.frames[o]&&(delete t.resource.frames[o],t.resource.fire("remove:frame",o))}}},t}(),Xf=function(t){function e(e,i){var n;return(n=t.call(this)||this)._assets=new Set,n._loadingAssets=new Set,n._waitingAssets=new Set,n._registry=i,n._loading=!1,n._loaded=!1,n._failed=[],e.forEach((function(t){if(t instanceof Mh)t.registry||(t.registry=i),n._assets.add(t);else{var e=i.get(t);e?n._assets.add(e):n._waitForAsset(t)}})),n}j(e,t);var i=e.prototype;return i.destroy=function(){var t=this;this._registry.off("load",this._onLoad),this._registry.off("error",this._onError),this._waitingAssets.forEach((function(e){t._registry.off("add:"+e,this._onAddAsset)})),this.off("progress"),this.off("load")},i._assetHasDependencies=function(t){var e;return"model"===t.type&&(null==(e=t.file)?void 0:e.url)&&t.file.url&&t.file.url.match(/.json$/g)},i.load=function(t,e){var i=this;if(!this._loading){this._loading=!0,this._callback=t,this._scope=e,this._registry.on("load",this._onLoad,this),this._registry.on("error",this._onError,this);var n=!1;this._assets.forEach((function(t){t.loaded||(n=!0,i._assetHasDependencies(t)&&i._registry.loadFromUrl(t.file.url,t.type,(function(e,n){e?i._onError(e,t):i._onLoad(t)})),i._loadingAssets.add(t),i._registry.add(t))})),this._loadingAssets.forEach((function(t){i._assetHasDependencies(t)||i._registry.load(t)})),n||0!==this._waitingAssets.size||this.fire("load",Array.from(this._assets))}},i.ready=function(t,e){void 0===e&&(e=this),this._loaded?t.call(e,Array.from(this._assets)):this.once("load",(function(i){t.call(e,i)}))},i._loadingComplete=function(){this._loaded||(this._loaded=!0,this._registry.off("load",this._onLoad,this),this._registry.off("error",this._onError,this),this._failed.length?(this._callback&&this._callback.call(this._scope,"Failed to load some assets",this._failed),this.fire("error",this._failed)):(this._callback&&this._callback.call(this._scope),this.fire("load",Array.from(this._assets))))},i._onLoad=function(t){var e=this;this._loadingAssets.has(t)&&(this.fire("progress",t),this._loadingAssets.delete(t)),0===this._loadingAssets.size&&setTimeout((function(){e._loadingComplete(e._failed)}),0)},i._onError=function(t,e){var i=this;this._loadingAssets.has(e)&&(this._failed.push(e),this._loadingAssets.delete(e)),0===this._loadingAssets.size&&setTimeout((function(){i._loadingComplete(i._failed)}),0)},i._onAddAsset=function(t){this._waitingAssets.delete(t),this._assets.add(t),t.loaded||(this._loadingAssets.add(t),this._registry.load(t))},i._waitForAsset=function(t){this._waitingAssets.add(t),this._registry.once("add:"+t,this._onAddAsset,this)},e}(m),qf=function(t){function e(e){var i;return(i=t.call(this)||this)._app=e,e.i18n.on("set:locale",i._onSetLocale,Z(i)),i._autoLoad=!1,i._disableLocalization=!1,i._defaultAsset=null,i._localizedAsset=null,i}j(e,t);var i=e.prototype;return i._bindDefaultAsset=function(){var t=this._app.assets.get(this._defaultAsset);t?this._onDefaultAssetAdd(t):this._app.assets.once("add:"+this._defaultAsset,this._onDefaultAssetAdd,this)},i._unbindDefaultAsset=function(){if(this._defaultAsset){this._app.assets.off("add:"+this._defaultAsset,this._onDefaultAssetAdd,this);var t=this._app.assets.get(this._defaultAsset);t&&(t.off("add:localized",this._onLocaleAdd,this),t.off("remove:localized",this._onLocaleRemove,this),t.off("remove",this._onDefaultAssetRemove,this))}},i._onDefaultAssetAdd=function(t){this._defaultAsset===t.id&&(t.on("add:localized",this._onLocaleAdd,this),t.on("remove:localized",this._onLocaleRemove,this),t.once("remove",this._onDefaultAssetRemove,this))},i._onDefaultAssetRemove=function(t){this._defaultAsset===t.id&&(t.off("add:localized",this._onLocaleAdd,this),t.off("remove:localized",this._onLocaleAdd,this),this._app.assets.once("add:"+this._defaultAsset,this._onDefaultAssetAdd,this))},i._bindLocalizedAsset=function(){if(this._autoLoad){var t=this._app.assets.get(this._localizedAsset);t&&(t.on("load",this._onLocalizedAssetLoad,this),t.on("change",this._onLocalizedAssetChange,this),t.on("remove",this._onLocalizedAssetRemove,this),t.resource?this._onLocalizedAssetLoad(t):this._app.assets.load(t))}},i._unbindLocalizedAsset=function(){var t=this._app.assets.get(this._localizedAsset);t&&(t.off("load",this._onLocalizedAssetLoad,this),t.off("change",this._onLocalizedAssetChange,this),t.off("remove",this._onLocalizedAssetRemove,this))},i._onLocalizedAssetAdd=function(t){this._localizedAsset===t.id&&this._bindLocalizedAsset()},i._onLocalizedAssetLoad=function(t){this.fire("load",t)},i._onLocalizedAssetChange=function(t,e,i,n){this.fire("change",t,e,i,n)},i._onLocalizedAssetRemove=function(t){this._localizedAsset===t.id&&(this.localizedAsset=this._defaultAsset),this.fire("remove",t)},i._onLocaleAdd=function(t,e){this._app.i18n.locale===t&&this._onSetLocale(t)},i._onLocaleRemove=function(t,e){this._app.i18n.locale===t&&this._onSetLocale(t)},i._onSetLocale=function(t){if(this._defaultAsset){var e=this._app.assets.get(this._defaultAsset);if(e&&!this._disableLocalization){var i=e.getLocalizedAssetId(t);this.localizedAsset=i||this._defaultAsset}else this.localizedAsset=this._defaultAsset}else this.localizedAsset=null},i.destroy=function(){this.defaultAsset=null,this._app.i18n.off("set:locale",this._onSetLocale,this),this.off()},q(e,[{key:"defaultAsset",get:function(){return this._defaultAsset},set:function(t){var e=t instanceof Mh?t.id:t;this._defaultAsset!==e&&(this._defaultAsset&&this._unbindDefaultAsset(),this._defaultAsset=e,this._defaultAsset&&this._bindDefaultAsset(),this._onSetLocale(this._app.i18n.locale))}},{key:"localizedAsset",get:function(){return this._localizedAsset},set:function(t){var e=t instanceof Mh?t.id:t;this._localizedAsset!==e&&(this._localizedAsset&&(this._app.assets.off("add:"+this._localizedAsset,this._onLocalizedAssetAdd,this),this._unbindLocalizedAsset(),this._localizedAsset=null),this._localizedAsset=e,this._localizedAsset&&(this._app.assets.get(this._localizedAsset)?this._bindLocalizedAsset():this._app.assets.once("add:"+this._localizedAsset,this._onLocalizedAssetAdd,this)))}},{key:"autoLoad",get:function(){return this._autoLoad},set:function(t){this._autoLoad!==t&&(this._autoLoad=t,this._autoLoad&&this._localizedAsset&&(this._unbindLocalizedAsset(),this._bindLocalizedAsset()))}},{key:"disableLocalization",get:function(){return this._disableLocalization},set:function(t){this._disableLocalization!==t&&(this._disableLocalization=t,this._onSetLocale(this._app.i18n.locale))}}]),e}(m),Yf=new Set(["system","entity","create","destroy","swap","move","scripts","_scripts","_scriptsIndex","_scriptsData","enabled","_oldState","onEnable","onDisable","onPostStateChange","_onSetEnabled","_checkState","_onBeforeRemove","_onInitializeAttributes","_onInitialize","_onPostInitialize","_onUpdate","_onPostUpdate","_callbacks","has","get","on","off","fire","once","hasEvent"]);function jf(t,e){if(Ih.legacy)return null;if(Yf.has(t))throw new Error("script name: '"+t+"' is reserved, please change script name");var i=function(t){m.prototype.initEventHandler.call(this),Vh.prototype.initScriptType.call(this,t)};return(i.prototype=Object.create(Vh.prototype)).constructor=i,i.extend=Vh.extend,i.attributes=new Bh(i),Zf(i,t,e),i}var Kf={};function Zf(t,e,i){if(!t.legacy){if("function"!=typeof t)throw new Error("script class: '"+t+"' must be a constructor function (i.e. class).");if(!(t.prototype instanceof Vh))throw new Error("script class: '"+Vh.__getScriptName(t)+"' does not extend pc.ScriptType.");if(e=e||t.__name||Vh.__getScriptName(t),Yf.has(e))throw new Error("script name: '"+e+"' is reserved, please change script name");t.__name=e,(i?i.scripts:il.getApplication().scripts).add(t),Eh._push(t)}}Bh.reservedNames.forEach((function(t,e,i){Kf[t]=1})),jf.reservedAttributes=Kf;var $f="mouse",Qf="keyboard",Jf="gamepad",tp="mousedown",ep="mousemove",ip="mouseup",np="mousewheel",sp=function(t,e){e?(this.key=e.keyCode,this.element=e.target,this.event=e):(this.key=null,this.element=null,this.event=null)},ap=new sp;function rp(t){return ap.key=t.keyCode,ap.element=t.target,ap.event=t,ap}function op(t){return"string"==typeof t?t.toUpperCase().charCodeAt(0):t}var hp={9:"Tab",13:"Enter",16:"Shift",17:"Control",18:"Alt",27:"Escape",37:"Left",38:"Up",39:"Right",40:"Down",46:"Delete",91:"Win"},lp=function(t){function e(e,i){var n;return void 0===i&&(i={}),(n=t.call(this)||this)._element=null,n._keyDownHandler=n._handleKeyDown.bind(Z(n)),n._keyUpHandler=n._handleKeyUp.bind(Z(n)),n._keyPressHandler=n._handleKeyPress.bind(Z(n)),n._visibilityChangeHandler=n._handleVisibilityChange.bind(Z(n)),n._windowBlurHandler=n._handleWindowBlur.bind(Z(n)),n._keymap={},n._lastmap={},e&&n.attach(e),n.preventDefault=i.preventDefault||!1,n.stopPropagation=i.stopPropagation||!1,n}j(e,t);var i=e.prototype;return i.attach=function(t){this._element&&this.detach(),this._element=t,this._element.addEventListener("keydown",this._keyDownHandler,!1),this._element.addEventListener("keypress",this._keyPressHandler,!1),this._element.addEventListener("keyup",this._keyUpHandler,!1),document.addEventListener("visibilitychange",this._visibilityChangeHandler,!1),window.addEventListener("blur",this._windowBlurHandler,!1)},i.detach=function(){this._element&&(this._element.removeEventListener("keydown",this._keyDownHandler),this._element.removeEventListener("keypress",this._keyPressHandler),this._element.removeEventListener("keyup",this._keyUpHandler),this._element=null,document.removeEventListener("visibilitychange",this._visibilityChangeHandler,!1),window.removeEventListener("blur",this._windowBlurHandler,!1))},i.toKeyIdentifier=function(t){t=op(t);var e=hp[t.toString()];if(e)return e;for(var i=t.toString(16).toUpperCase(),n=i.length,s=0;s<4-n;s++)i="0"+i;return"U+"+i},i._handleKeyDown=function(t){var e=t.keyCode||t.charCode;if(void 0!==e){var i=this.toKeyIdentifier(e);this._keymap[i]=!0,this.fire("keydown",rp(t)),this.preventDefault&&t.preventDefault(),this.stopPropagation&&t.stopPropagation()}},i._handleKeyUp=function(t){var e=t.keyCode||t.charCode;if(void 0!==e){var i=this.toKeyIdentifier(e);delete this._keymap[i],this.fire("keyup",rp(t)),this.preventDefault&&t.preventDefault(),this.stopPropagation&&t.stopPropagation()}},i._handleKeyPress=function(t){this.fire("keypress",rp(t)),this.preventDefault&&t.preventDefault(),this.stopPropagation&&t.stopPropagation()},i._handleVisibilityChange=function(){"hidden"===document.visibilityState&&this._handleWindowBlur()},i._handleWindowBlur=function(){this._keymap={},this._lastmap={}},i.update=function(){for(var t in this._lastmap)delete this._lastmap[t];for(var e in this._keymap)this._keymap.hasOwnProperty(e)&&(this._lastmap[e]=this._keymap[e])},i.isPressed=function(t){var e=op(t),i=this.toKeyIdentifier(e);return!!this._keymap[i]},i.wasPressed=function(t){var e=op(t),i=this.toKeyIdentifier(e);return!!this._keymap[i]&&!this._lastmap[i]},i.wasReleased=function(t){var e=op(t),i=this.toKeyIdentifier(e);return!this._keymap[i]&&!!this._lastmap[i]},e}(m);function cp(){return!!(document.pointerLockElement||document.mozPointerLockElement||document.webkitPointerLockElement)}var up,dp,fp=function t(e,i){var n={x:0,y:0};if(i){if(i instanceof t)throw Error("Expected MouseEvent");n=e._getTargetCoords(i)}else i={};if(n)this.x=n.x,this.y=n.y;else{if(!cp())return;this.x=0,this.y=0}this.wheelDelta=0,"wheel"===i.type&&(i.deltaY>0?this.wheelDelta=1:i.deltaY<0&&(this.wheelDelta=-1)),cp()?(this.dx=i.movementX||i.webkitMovementX||i.mozMovementX||0,this.dy=i.movementY||i.webkitMovementY||i.mozMovementY||0):(this.dx=this.x-e._lastX,this.dy=this.y-e._lastY),"mousedown"===i.type||"mouseup"===i.type?this.button=i.button:this.button=-1,this.buttons=e._buttons.slice(0),this.element=i.target,this.ctrlKey=i.ctrlKey||!1,this.altKey=i.altKey||!1,this.shiftKey=i.shiftKey||!1,this.metaKey=i.metaKey||!1,this.event=i},pp=function(t){function e(e){var i;return(i=t.call(this)||this)._lastX=0,i._lastY=0,i._buttons=[!1,!1,!1],i._lastbuttons=[!1,!1,!1],i._upHandler=i._handleUp.bind(Z(i)),i._downHandler=i._handleDown.bind(Z(i)),i._moveHandler=i._handleMove.bind(Z(i)),i._wheelHandler=i._handleWheel.bind(Z(i)),i._contextMenuHandler=function(t){t.preventDefault()},i._target=null,i._attached=!1,i.attach(e),i}j(e,t),e.isPointerLocked=function(){return cp()};var i=e.prototype;return i.attach=function(t){if(this._target=t,!this._attached){this._attached=!0;var e=!!L.passiveEvents&&{passive:!1};window.addEventListener("mouseup",this._upHandler,e),window.addEventListener("mousedown",this._downHandler,e),window.addEventListener("mousemove",this._moveHandler,e),window.addEventListener("wheel",this._wheelHandler,e)}},i.detach=function(){if(this._attached){this._attached=!1,this._target=null;var t=!!L.passiveEvents&&{passive:!1};window.removeEventListener("mouseup",this._upHandler,t),window.removeEventListener("mousedown",this._downHandler,t),window.removeEventListener("mousemove",this._moveHandler,t),window.removeEventListener("wheel",this._wheelHandler,t)}},i.disableContextMenu=function(){this._target&&this._target.addEventListener("contextmenu",this._contextMenuHandler)},i.enableContextMenu=function(){this._target&&this._target.removeEventListener("contextmenu",this._contextMenuHandler)},i.enablePointerLock=function(t,e){if(document.body.requestPointerLock){t&&document.addEventListener("pointerlockchange",(function e(){t(),document.removeEventListener("pointerlockchange",e)}),!1),e&&document.addEventListener("pointerlockerror",(function t(){e(),document.removeEventListener("pointerlockerror",t)}),!1),document.body.requestPointerLock()}else e&&e()},i.disablePointerLock=function(t){if(document.exitPointerLock){t&&document.addEventListener("pointerlockchange",(function e(){t(),document.removeEventListener("pointerlockchange",e)}),!1),document.exitPointerLock()}},i.update=function(){this._lastbuttons[0]=this._buttons[0],this._lastbuttons[1]=this._buttons[1],this._lastbuttons[2]=this._buttons[2]},i.isPressed=function(t){return this._buttons[t]},i.wasPressed=function(t){return this._buttons[t]&&!this._lastbuttons[t]},i.wasReleased=function(t){return!this._buttons[t]&&this._lastbuttons[t]},i._handleUp=function(t){this._buttons[t.button]=!1;var e=new fp(this,t);e.event&&this.fire(ip,e)},i._handleDown=function(t){this._buttons[t.button]=!0;var e=new fp(this,t);e.event&&this.fire(tp,e)},i._handleMove=function(t){var e=new fp(this,t);e.event&&(this.fire(ep,e),this._lastX=e.x,this._lastY=e.y)},i._handleWheel=function(t){var e=new fp(this,t);e.event&&this.fire(np,e)},i._getTargetCoords=function(t){var e=this._target.getBoundingClientRect(),i=Math.floor(e.left),n=Math.floor(e.top);return t.clientX=i+this._target.clientWidth||t.clientY=n+this._target.clientHeight?null:{x:t.clientX-i,y:t.clientY-n}},e}(m),mp=function(){function t(t,e){void 0===e&&(e={}),this._keyboard=e.keyboard||null,this._mouse=e.mouse||null,this._gamepads=e.gamepads||null,this._element=null,this._actions={},this._axes={},this._axesValues={},t&&this.attach(t)}var e=t.prototype;return e.attach=function(t){this._element=t,this._keyboard&&this._keyboard.attach(t),this._mouse&&this._mouse.attach(t)},e.detach=function(){this._keyboard&&this._keyboard.detach(),this._mouse&&this._mouse.detach(),this._element=null},e.disableContextMenu=function(){this._mouse||this._enableMouse(),this._mouse.disableContextMenu()},e.enableContextMenu=function(){this._mouse||this._enableMouse(),this._mouse.enableContextMenu()},e.update=function(t){for(var e in this._keyboard&&this._keyboard.update(),this._mouse&&this._mouse.update(),this._gamepads&&this._gamepads.update(),this._axesValues={},this._axes)this._axesValues[e]=[]},e.registerKeys=function(t,e){if(this._keyboard||this._enableKeyboard(),this._actions[t])throw new Error("Action: "+t+" already registered");if(void 0===e)throw new Error("Invalid button");e.length||(e=[e]),this._actions[t]?this._actions[t].push({type:Qf,keys:e}):this._actions[t]=[{type:Qf,keys:e}]},e.registerMouse=function(t,e){if(this._mouse||this._enableMouse(),void 0===e)throw new Error("Invalid button");this._actions[t]?this._actions[t].push({type:$f,button:e}):this._actions[t]=[{type:$f,button:-e}]},e.registerPadButton=function(t,e,i){if(void 0===i)throw new Error("Invalid button");this._actions[t]?this._actions[t].push({type:Jf,button:i,pad:e}):this._actions[t]=[{type:Jf,button:i,pad:e}]},e.registerAxis=function(t){var e=t.name;this._axes[e]||(this._axes[e]=[]);var i=this._axes[e].push(e);(t=t||{}).pad=t.pad||0;var n=function(n,s,a,r){switch(s){case"mousex":n._mouse.on(ep,(function(t){n._axesValues[e][i]=t.dx/10}));break;case"mousey":n._mouse.on(ep,(function(t){n._axesValues[e][i]=t.dy/10}));break;case"key":n._axes[e].push((function(){return n._keyboard.isPressed(r)?a:0}));break;case"padrx":n._axes[e].push((function(){return n._gamepads.getAxis(t.pad,2)}));break;case"padry":n._axes[e].push((function(){return n._gamepads.getAxis(t.pad,3)}));break;case"padlx":n._axes[e].push((function(){return n._gamepads.getAxis(t.pad,0)}));break;case"padly":n._axes[e].push((function(){return n._gamepads.getAxis(t.pad,1)}));break;default:throw new Error("Unknown axis")}};n(this,t.positive,1,t.positiveKey),(t.negativeKey||t.negative!==t.positive)&&n(this,t.negative,-1,t.negativeKey)},e.isPressed=function(t){if(!this._actions[t])return!1;for(var e=this._actions[t].length,i=0;iMath.abs(e)&&(e=s)}else this._axesValues[t]&&Math.abs(this._axesValues[t][n])>Math.abs(e)&&(e=this._axesValues[t][n]);return e},e._enableMouse=function(){if(this._mouse=new pp,!this._element)throw new Error("Controller must be attached to an Element");this._mouse.attach(this._element)},e._enableKeyboard=function(){if(this._keyboard=new lp,!this._element)throw new Error("Controller must be attached to an Element");this._keyboard.attach(this._element)},t}(),_p=new pt,gp=new pt,vp=new qt,yp=new qt,xp=new qt;vp.end=new pt,yp.end=new pt,xp.end=new pt;var bp=new pt,Sp=new pt,wp=new pt,Tp=new pt,Ap=new pt,Mp=new pt,Cp=new pt,Ep=new pt,Pp=new pt,Rp=new pt,Ip=new pt,Lp=new pt,Dp=new pt,kp=new pt,Op=new pt,Fp=new pt,Bp=new pt,Np=new pt,Up=new pt,zp=new pt,Vp=new gt;function Gp(t,e,i){return Ip.cross(t,e).dot(i)}var Wp=function(){function t(t,e,i){this.event=t,this.element=e,this.camera=i,this._stopPropagation=!1}return t.prototype.stopPropagation=function(){this._stopPropagation=!0,this.event&&(this.event.stopImmediatePropagation(),this.event.stopPropagation())},t}(),Hp=function(t){function e(e,i,n,s,a,r,o){var h;return(h=t.call(this,e,i,n)||this).x=s,h.y=a,h.ctrlKey=e.ctrlKey||!1,h.altKey=e.altKey||!1,h.shiftKey=e.shiftKey||!1,h.metaKey=e.metaKey||!1,h.button=e.button,pp.isPointerLocked()?(h.dx=e.movementX||e.webkitMovementX||e.mozMovementX||0,h.dy=e.movementY||e.webkitMovementY||e.mozMovementY||0):(h.dx=s-r,h.dy=a-o),h.wheelDelta=0,"wheel"===e.type&&(e.deltaY>0?h.wheelDelta=1:e.deltaY<0&&(h.wheelDelta=-1)),h}return j(e,t),e}(Wp),Xp=function(t){function e(e,i,n,s,a,r){var o;return(o=t.call(this,e,i,n)||this).touches=e.touches,o.changedTouches=e.changedTouches,o.x=s,o.y=a,o.touch=r,o}return j(e,t),e}(Wp),qp=function(t){function e(e,i,n,s){var a;return(a=t.call(this,e,i,n)||this).inputSource=s,a}return j(e,t),e}(Wp),Yp=function(){function t(t,e){this._app=null,this._attached=!1,this._target=null,this._enabled=!0,this._lastX=0,this._lastY=0,this._upHandler=this._handleUp.bind(this),this._downHandler=this._handleDown.bind(this),this._moveHandler=this._handleMove.bind(this),this._wheelHandler=this._handleWheel.bind(this),this._touchstartHandler=this._handleTouchStart.bind(this),this._touchendHandler=this._handleTouchEnd.bind(this),this._touchcancelHandler=this._touchendHandler,this._touchmoveHandler=this._handleTouchMove.bind(this),this._sortHandler=this._sortElements.bind(this),this._elements=[],this._hoveredElement=null,this._pressedElement=null,this._touchedElements={},this._touchesForWhichTouchLeaveHasFired={},this._selectedElements={},this._selectedPressedElements={},this._useMouse=!e||!1!==e.useMouse,this._useTouch=!e||!1!==e.useTouch,this._useXr=!e||!1!==e.useXr,this._selectEventsAttached=!1,L.touch&&(this._clickedEntities={}),this.attach(t)}var e=t.prototype;return e.attach=function(t){this._attached&&(this._attached=!1,this.detach()),this._target=t,this._attached=!0;var e=!!L.passiveEvents&&{passive:!0};this._useMouse&&(window.addEventListener("mouseup",this._upHandler,e),window.addEventListener("mousedown",this._downHandler,e),window.addEventListener("mousemove",this._moveHandler,e),window.addEventListener("wheel",this._wheelHandler,e)),this._useTouch&&L.touch&&(this._target.addEventListener("touchstart",this._touchstartHandler,e),this._target.addEventListener("touchend",this._touchendHandler,!1),this._target.addEventListener("touchmove",this._touchmoveHandler,!1),this._target.addEventListener("touchcancel",this._touchcancelHandler,!1)),this.attachSelectEvents()},e.attachSelectEvents=function(){!this._selectEventsAttached&&this._useXr&&this.app&&this.app.xr&&this.app.xr.supported&&(this._clickedEntities||(this._clickedEntities={}),this._selectEventsAttached=!0,this.app.xr.on("start",this._onXrStart,this))},e.detach=function(){if(this._attached){this._attached=!1;var t=!!L.passiveEvents&&{passive:!0};this._useMouse&&(window.removeEventListener("mouseup",this._upHandler,t),window.removeEventListener("mousedown",this._downHandler,t),window.removeEventListener("mousemove",this._moveHandler,t),window.removeEventListener("wheel",this._wheelHandler,t)),this._useTouch&&(this._target.removeEventListener("touchstart",this._touchstartHandler,t),this._target.removeEventListener("touchend",this._touchendHandler,!1),this._target.removeEventListener("touchmove",this._touchmoveHandler,!1),this._target.removeEventListener("touchcancel",this._touchcancelHandler,!1)),this._selectEventsAttached&&(this._selectEventsAttached=!1,this.app.xr.off("start",this._onXrStart,this),this.app.xr.off("end",this._onXrEnd,this),this.app.xr.off("update",this._onXrUpdate,this),this.app.xr.input.off("selectstart",this._onSelectStart,this),this.app.xr.input.off("selectend",this._onSelectEnd,this),this.app.xr.input.off("remove",this._onXrInputRemove,this)),this._target=null}},e.addElement=function(t){-1===this._elements.indexOf(t)&&this._elements.push(t)},e.removeElement=function(t){var e=this._elements.indexOf(t);-1!==e&&this._elements.splice(e,1)},e._handleUp=function(t){this._enabled&&(pp.isPointerLocked()||(this._calcMouseCoords(t),null!==up&&this._onElementMouseEvent("mouseup",t)))},e._handleDown=function(t){this._enabled&&(pp.isPointerLocked()||(this._calcMouseCoords(t),null!==up&&this._onElementMouseEvent("mousedown",t)))},e._handleMove=function(t){this._enabled&&(this._calcMouseCoords(t),null!==up&&(this._onElementMouseEvent("mousemove",t),this._lastX=up,this._lastY=dp))},e._handleWheel=function(t){this._enabled&&(this._calcMouseCoords(t),null!==up&&this._onElementMouseEvent("mousewheel",t))},e._determineTouchedElements=function(t){for(var e={},i=this.app.systems.camera.cameras,n=i.length-1;n>=0;n--){for(var s=i[n],a=0,r=t.changedTouches.length,o=0;o=0;d--){this._getTargetElement(e[d],u.x,u.y)===o&&(this._clickedEntities[o.entity.getGuid()]||(this._fireEvent("click",new Xp(t,o,h,l,c,a)),this._clickedEntities[o.entity.getGuid()]=!0))}}}}},e._handleTouchMove=function(t){if(t.preventDefault(),this._enabled)for(var e=this._determineTouchedElements(t),i=0,n=t.changedTouches.length;i=0&&(s=a[r],!(i=this._getTargetElement(s,up,dp)));r--);i&&(this._fireEvent(t,new Hp(e,i,s,up,dp,this._lastX,this._lastY)),this._hoveredElement=i,"mousedown"===t&&(this._pressedElement=i)),n!==this._hoveredElement&&(n&&this._fireEvent("mouseleave",new Hp(e,n,s,up,dp,this._lastX,this._lastY)),this._hoveredElement&&this._fireEvent("mouseenter",new Hp(e,this._hoveredElement,s,up,dp,this._lastX,this._lastY))),"mouseup"===t&&this._pressedElement&&(this._pressedElement===this._hoveredElement?(this._pressedElement=null,this._clickedEntities&&this._clickedEntities[this._hoveredElement.entity.getGuid()]||this._fireEvent("click",new Hp(e,this._hoveredElement,s,up,dp,this._lastX,this._lastY))):this._pressedElement=null)},e._onXrStart=function(){this.app.xr.on("end",this._onXrEnd,this),this.app.xr.on("update",this._onXrUpdate,this),this.app.xr.input.on("selectstart",this._onSelectStart,this),this.app.xr.input.on("selectend",this._onSelectEnd,this),this.app.xr.input.on("remove",this._onXrInputRemove,this)},e._onXrEnd=function(){this.app.xr.off("update",this._onXrUpdate,this),this.app.xr.input.off("selectstart",this._onSelectStart,this),this.app.xr.input.off("selectend",this._onSelectEnd,this),this.app.xr.input.off("remove",this._onXrInputRemove,this)},e._onXrUpdate=function(){if(this._enabled)for(var t=this.app.xr.input.inputSources,e=0;e=0&&(a=o[h],!(n=this._getTargetElementByRay(xp,a)));h--);}e._elementEntity=n||null,n?(this._selectedElements[e.id]=n,s=n):delete this._selectedElements[e.id],r!==s&&(r&&this._fireEvent("selectleave",new qp(i,r,a,e)),s&&this._fireEvent("selectenter",new qp(i,s,a,e))),"selectstart"===t&&(this._selectedPressedElements[e.id]=s,s&&this._fireEvent("selectstart",new qp(i,s,a,e)));var l=this._selectedPressedElements[e.id];!e.elementInput&&l&&(delete this._selectedPressedElements[e.id],r&&this._fireEvent("selectend",new qp(i,r,a,e))),"selectend"===t&&e.elementInput&&(delete this._selectedPressedElements[e.id],r&&this._fireEvent("selectend",new qp(i,r,a,e)),l&&l===r&&this._fireEvent("click",new qp(i,l,a,e)))},e._fireEvent=function(t,e){for(var i=e.element;i.fire(t,e),!e._stopPropagation&&i.entity.parent&&(i=i.entity.parent.element););},e._calcMouseCoords=function(t){var e=this._target.getBoundingClientRect(),i=Math.floor(e.left),n=Math.floor(e.top);t.clientX=i+this._target.clientWidth||t.clientY=n+this._target.clientHeight?(up=null,dp=null):(up=t.clientX-i,dp=t.clientY-n)},e._calcTouchCoords=function(t){for(var e=0,i=0,n=t.target;!(n instanceof HTMLElement);)n=n.parentNode;var s=n;do{e+=s.offsetLeft-s.scrollLeft,i+=s.offsetTop-s.scrollTop,s=s.offsetParent}while(s);return{x:t.pageX-e,y:t.pageY-i}},e._sortElements=function(t,e){var i=this.app.scene.layers.sortTransparentLayers(t.layers,e.layers);return 0!==i?i:t.screen&&!e.screen?-1:!t.screen&&e.screen?1:t.screen||e.screen?t.screen.screen.screenSpace&&!e.screen.screen.screenSpace?-1:e.screen.screen.screenSpace&&!t.screen.screen.screenSpace?1:e.drawOrder-t.drawOrder:0},e._getTargetElement=function(t,e,i){var n,s,a=null,r=1/0;this._elements.sort(this._sortHandler);for(var o=0,h=this._elements.length;o=0){a=l;break}}else{if(void 0===s&&(s=this._calculateRay3d(e,i,t,yp)?yp:null),!s)continue;var c=this._checkElement(s,l,!1);if(c>=0&&(c=0){i=a;break}}return i},e._buildHitCorners=function(t,e,i,n,s){var a=e;if(t.entity&&t.entity.button){var r=t.entity.button.hitPadding||Vp;Dp.copy(t.entity.up),kp.copy(Dp).mulScalar(-1),Fp.copy(t.entity.right),Op.copy(Fp).mulScalar(-1),Dp.mulScalar(r.w*n),kp.mulScalar(r.y*n),Fp.mulScalar(r.z*i),Op.mulScalar(r.x*i),Bp.copy(a[0]).add(kp).add(Op),Np.copy(a[1]).add(kp).add(Fp),Up.copy(a[2]).add(Dp).add(Fp),zp.copy(a[3]).add(Dp).add(Op),a=[Bp,Np,Up,zp]}if(i<0){var o=a[2].x,h=a[0].x;a[0].x=o,a[1].x=h,a[2].x=h,a[3].x=o}if(n<0){var l=a[2].y,c=a[0].y;a[0].y=l,a[1].y=l,a[2].y=c,a[3].y=c}if(s<0){var u=a[2].x,d=a[2].y,f=a[2].z;a[2].x=a[0].x,a[2].y=a[0].y,a[2].z=a[0].z,a[0].x=u,a[0].y=d,a[0].z=f}return a},e._calculateScaleToScreen=function(t){var e=t.entity,i=t.screen.screen.scale;for(Lp.set(i,i,i);e&&!e.screen;)Lp.mul(e.getLocalScale()),e=e.parent;return Lp},e._calculateScaleToWorld=function(t){var e=t.entity;for(Lp.set(1,1,1);e;)Lp.mul(e.getLocalScale()),e=e.parent;return Lp},e._calculateRayScreen=function(t,e,i,n){var s=this.app.graphicsDevice.width,a=this.app.graphicsDevice.height,r=i.rect.z*s,o=i.rect.w*a,h=i.rect.x*s,l=h+r,c=(1-i.rect.y)*a,u=c-o,d=t*s/this._target.clientWidth,f=e*a/this._target.clientHeight;return d>=h&&d<=l&&f<=c&&f>=u&&(d=s*(d-h)/r,f=a-(f=a*(f-u)/o),n.origin.set(d,f,1),n.direction.set(0,0,-1),n.end.copy(n.direction).mulScalar(2).add(n.origin),!0)},e._calculateRay3d=function(t,e,i,n){var s=this._target.clientWidth,a=this._target.clientHeight,r=i.rect.z*s,o=i.rect.w*a,h=i.rect.x*s,l=h+r,c=(1-i.rect.y)*a,u=c-o,d=t,f=e;return t>=h&&t<=l&&e<=c&&f>=u&&(d=s*(d-h)/r,f=a*(f-u)/o,i.screenToWorld(d,f,i.nearClip,_p),i.screenToWorld(d,f,i.farClip,gp),n.origin.copy(_p),n.direction.set(0,0,-1),n.end.copy(gp),!0)},e._checkElement=function(t,e,i){if(e.maskedBy&&this._checkElement(t,e.maskedBy.element,i)<0)return-1;var n;n=i?this._calculateScaleToScreen(e):this._calculateScaleToWorld(e);var s=this._buildHitCorners(e,i?e.screenCorners:e.worldCorners,n.x,n.y,n.z);return function(t,e,i){bp.sub2(e,t),Sp.sub2(i[0],t),wp.sub2(i[1],t),Tp.sub2(i[2],t),Mp.cross(Tp,bp);var n,s,a=Sp.dot(Mp);if(a>=0){if((n=-wp.dot(Mp))<0)return-1;if((s=Gp(bp,wp,Sp))<0)return-1;var r=1/(n+a+s);Cp.copy(i[0]).mulScalar(n*r),Ep.copy(i[1]).mulScalar(a*r),Pp.copy(i[2]).mulScalar(s*r),Rp.copy(Cp).add(Ep).add(Pp)}else{if(Ap.sub2(i[3],t),(n=Ap.dot(Mp))<0)return-1;if((s=Gp(bp,Sp,Ap))<0)return-1;var o=1/(n+(a=-a)+s);Cp.copy(i[0]).mulScalar(n*o),Ep.copy(i[3]).mulScalar(a*o),Pp.copy(i[2]).mulScalar(s*o),Rp.copy(Cp).add(Ep).add(Pp)}return bp.sub2(i[0],i[2]).lengthSq()<1e-8||bp.sub2(i[1],i[3]).lengthSq()<1e-8?-1:Rp.sub(t).lengthSq()}(t.origin,t.end,s)},q(t,[{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled=t}},{key:"app",get:function(){return this._app||da()},set:function(t){this._app=t}}]),t}(),jp={DEFAULT:{buttons:["PAD_FACE_1","PAD_FACE_2","PAD_FACE_3","PAD_FACE_4","PAD_L_SHOULDER_1","PAD_R_SHOULDER_1","PAD_L_SHOULDER_2","PAD_R_SHOULDER_2","PAD_SELECT","PAD_START","PAD_L_STICK_BUTTON","PAD_R_STICK_BUTTON","PAD_UP","PAD_DOWN","PAD_LEFT","PAD_RIGHT","PAD_VENDOR"],axes:["PAD_L_STICK_X","PAD_L_STICK_Y","PAD_R_STICK_X","PAD_R_STICK_Y"]},PS3:{buttons:["PAD_FACE_1","PAD_FACE_2","PAD_FACE_4","PAD_FACE_3","PAD_L_SHOULDER_1","PAD_R_SHOULDER_1","PAD_L_SHOULDER_2","PAD_R_SHOULDER_2","PAD_SELECT","PAD_START","PAD_L_STICK_BUTTON","PAD_R_STICK_BUTTON","PAD_UP","PAD_DOWN","PAD_LEFT","PAD_RIGHT","PAD_VENDOR"],axes:["PAD_L_STICK_X","PAD_L_STICK_Y","PAD_R_STICK_X","PAD_R_STICK_Y"]}},Kp={"Product: 0268":"PS3"},Zp=function(){function t(){this.gamepadsSupported=!!navigator.getGamepads||!!navigator.webkitGetGamepads,this.current=[],this.previous=[],this.deadZone=.25}var e=t.prototype;return e.update=function(){for(var t=0,e=this.current.length;t0&&(t.length=0),this.gamepadsSupported)for(var e=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads(),i=0,n=e.length;i=0)return jp[Kp[e]];return jp.DEFAULT},e.isPressed=function(t,e){if(!this.current[t])return!1;var i=this.current[t].map.buttons[e];return this.current[t].pad.buttons[pc[i]].pressed},e.wasPressed=function(t,e){if(!this.current[t])return!1;var i=this.current[t].map.buttons[e],n=pc[i];return this.current[t].pad.buttons[n].pressed&&!(this.previous[t]&&this.previous[t][n])},e.wasReleased=function(t,e){if(!this.current[t])return!1;var i=this.current[t].map.buttons[e],n=pc[i];return!this.current[t].pad.buttons[n].pressed&&this.previous[t]&&this.previous[t][n]},e.getAxis=function(t,e){if(!this.current[t])return 0;var i=this.current[t].map.axes[e],n=this.current[t].pad.axes[pc[i]];return Math.abs(n)0&&!!this.prevAnim,this.blending&&(this.blend=0,this.blendSpeed=1/e),this.skeleton&&(this.blending?(this.fromSkel.animation=i,this.fromSkel.addTime(this.skeleton._time),this.toSkel.animation=n):this.skeleton.animation=n),this.animEvaluator){var s=this.animEvaluator;if(this.blending)for(;s.clips.length>1;)s.removeClip(0);else this.animEvaluator.removeClips();var a=new Cc(this.animations[this.currAnim],0,1,!0,this.loop);a.name=this.currAnim,a.blendWeight=this.blending?0:1,a.reset(),this.animEvaluator.addClip(a)}}this.playing=!0}},i.getAnimation=function(t){return this.animations[t]},i.setModel=function(t){t!==this.model&&(this._resetAnimationController(),this.model=t,this.animations&&this.currAnim&&this.animations[this.currAnim]&&this.play(this.currAnim))},i.onSetAnimations=function(){var t=this.entity.model;if(t){var e=t.model;e&&e!==this.model&&this.setModel(e)}if(!this.currAnim&&this.activate&&this.enabled&&this.entity.enabled){var i=Object.keys(this._animations);i.length>0&&this.play(i[0])}},i._resetAnimationController=function(){this.skeleton=null,this.fromSkel=null,this.toSkel=null,this.animEvaluator=null},i._createAnimationController=function(){var t=this.model,e=this.animations,i=!1,n=!1;for(var s in e){if(e.hasOwnProperty(s))e[s].constructor===su?n=!0:i=!0}var a=t.getGraph();i?(this.fromSkel=new wc(a),this.toSkel=new wc(a),this.skeleton=new wc(a),this.skeleton.looping=this.loop,this.skeleton.setGraph(a)):n&&(this.animEvaluator=new eu(new au(this.entity)))},i.loadAnimationAssets=function(t){var e=this;if(t&&t.length)for(var i=this.system.app.assets,n=function(t){if(t.resources.length>1)for(var i=0;i1){if(n&&n.length>1)for(var a=0;a1)for(var o=0;o1)for(var h=0;h1)for(var e=0;e0&&this.play(r[0])}},i.onBeforeRemove=function(){for(var t=0;t=1&&(this.blend=1)),this.playing){var e=this.skeleton;if(null!==e&&null!==this.model){if(this.blending)e.blend(this.fromSkel,this.toSkel,this.blend);else{var i=t*this.speed;e.addTime(i),(this.speed>0&&e._time===e.animation.duration&&!this.loop||this.speed<0&&0===e._time&&!this.loop)&&(this.playing=!1)}this.blending&&1===this.blend&&(e.animation=this.toSkel.animation),e.updateGraph()}}var n=this.animEvaluator;if(n){for(var s=0;s1&&(n.clips[1].blendWeight=this.blend),n.update(t)}this.blending&&1===this.blend&&(this.blending=!1)},q(e,[{key:"animations",get:function(){return this._animations},set:function(t){this._animations=t,this.onSetAnimations()}},{key:"assets",get:function(){return this._assets},set:function(t){var e=this._assets;if(e&&e.length)for(var i=0;i0)return t[t.length-1].time}return 0},set:function(t){if(this.skeleton&&(this.skeleton.currentTime=t,this.skeleton.addTime(0),this.skeleton.updateGraph()),this.animEvaluator)for(var e=this.animEvaluator.clips,i=0;i1){var l=e.length>2?this._resolvePath(t,e.slice(0,-1)):t,c=e[e.length-2];return function(t){n[s]=i(t),l[c]=n}}return function(t){n[s]=i(t)}},i._createAnimTargetForProperty=function(t,i,n){if(this.handlers&&"weights"===i[0])return this.handlers.weights(t);if(this.handlers&&"material"===i[0]&&2===i.length){var s=i[1];if(s.endsWith("Map"))return this.handlers.materialTexture(t,s)}var a,r,o,h=this._resolvePath(t,i,!0);if(void 0===h)return null;if("number"==typeof h)a=this._setter(t,i,e._packFloat),r="vector",o=1;else if("boolean"==typeof h)a=this._setter(t,i,e._packBoolean),r="vector",o=1;else if("object"==typeof h)switch(h.constructor){case _t:a=this._setter(t,i,e._packVec2),r="vector",o=2;break;case pt:a=this._setter(t,i,e._packVec3),r="vector",o=3;break;case gt:a=this._setter(t,i,e._packVec4),r="vector",o=4;break;case ct:a=this._setter(t,i,e._packColor),r="vector",o=4;break;case Tt:a=this._setter(t,i,e._packQuat),r="quaternion",o=4;break;default:return null}return-1!==i.indexOf("material")?new iu((function(e){a(e),t.material.update()}),r,o,n):new iu(a,r,o,n)},i.rebind=function(){this.targetCache={},this.animComponent.rootBone?this.graph=this.animComponent.rootBone:this.graph=this.animComponent.entity;var t={};!function e(i){t[i.name]=i;for(var n=0;n0?this._layers[0]:null}}]),e}(Nh),_m=function(){this.enabled=!0},gm=["enabled"],vm=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="anim",i.ComponentType=mm,i.DataType=_m,i.schema=gm,i.on("beforeremove",i.onBeforeRemove,Z(i)),i.app.systems.on("animationUpdate",i.onAnimationUpdate,Z(i)),i}j(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){t.prototype.initializeComponentData.call(this,e,i,gm);var s=["animationAssets","stateGraph","layers","masks"];Object.keys(i).forEach((function(t){s.includes(t)||(e[t]=i[t])})),i.stateGraph&&(e.stateGraph=i.stateGraph,e.loadStateGraph(e.stateGraph)),i.layers?i.layers.forEach((function(t,i){t._controller.states.forEach((function(n){t._controller._states[n]._animationList.forEach((function(t){e.layers[i].assignAnimation(t.name,t.animTrack)}))}))})):i.animationAssets&&(e.animationAssets=Object.assign(e.animationAssets,i.animationAssets)),i.masks&&Object.keys(i.masks).forEach((function(t){if(e.layers[t]){var n=i.masks[t].mask,s={};Object.keys(n).forEach((function(t){s[decodeURI(t)]=n[t]})),e.layers[t].mask=s}}))},i.onAnimationUpdate=function(t){var e=this.store;for(var i in e)if(e.hasOwnProperty(i)){var n=e[i].entity.anim;n.data.enabled&&n.entity.enabled&&n.playing&&n.update(t)}},i.cloneComponent=function(t,e){var i;t.anim.rootBone&&t.anim.rootBone!==t||(i={},t.anim.layers.forEach((function(t,n){if(t.mask){var s={};Object.keys(t.mask).forEach((function(i){var n=i.split("/");n.shift();var a=[e.name].concat(n).join("/");s[a]=t.mask[i]})),i[n]={mask:s}}})));var n={stateGraphAsset:t.anim.stateGraphAsset,animationAssets:t.anim.animationAssets,speed:t.anim.speed,activate:t.anim.activate,playing:t.anim.playing,rootBone:t.anim.rootBone,stateGraph:t.anim.stateGraph,layers:t.anim.layers,layerIndices:t.anim.layerIndices,parameters:t.anim.parameters,normalizeWeights:t.anim.normalizeWeights,masks:i};return this.addComponent(e,n)},i.onBeforeRemove=function(t,e){e.onBeforeRemove()},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("animationUpdate",this.onAnimationUpdate,this)},e}(im);Nh._buildAccessors(mm.prototype,gm);var ym=function(t){function e(e,i){return t.call(this,e,i)||this}j(e,t);var i=e.prototype;return i.setCurrentListener=function(){if(this.enabled&&this.entity.audiolistener&&this.entity.enabled){this.system.current=this.entity;var t=this.system.current.getPosition();this.system.manager.listener.setPosition(t)}},i.onEnable=function(){this.setCurrentListener()},i.onDisable=function(){this.system.current===this.entity&&(this.system.current=null)},e}(Nh),xm=function(){this.enabled=!0},bm=["enabled"],Sm=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="audiolistener",i.ComponentType=ym,i.DataType=xm,i.schema=bm,i.manager=e.soundManager,i.current=null,i.app.systems.on("update",i.onUpdate,Z(i)),i}j(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){n=["enabled"],t.prototype.initializeComponentData.call(this,e,i,n)},i.onUpdate=function(t){if(this.current){var e=this.current.getPosition();this.manager.listener.setPosition(e);var i=this.current.getWorldTransform();this.manager.listener.setOrientation(i)}},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this)},e}(im);Nh._buildAccessors(ym.prototype,bm);var wm=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this).on("set_assets",n.onSetAssets,Z(n)),n.on("set_loop",n.onSetLoop,Z(n)),n.on("set_volume",n.onSetVolume,Z(n)),n.on("set_pitch",n.onSetPitch,Z(n)),n.on("set_minDistance",n.onSetMinDistance,Z(n)),n.on("set_maxDistance",n.onSetMaxDistance,Z(n)),n.on("set_rollOffFactor",n.onSetRollOffFactor,Z(n)),n.on("set_distanceModel",n.onSetDistanceModel,Z(n)),n.on("set_3d",n.onSet3d,Z(n)),n}j(e,t);var i=e.prototype;return i.play=function(t){if(this.enabled&&this.entity.enabled){var e;this.channel&&this.stop();var i=this.data;if(i.sources[t])if(i["3d"]){var n=this.entity.getPosition();e=this.system.manager.playSound3d(i.sources[t],n,i),i.currentSource=t,i.channel=e}else e=this.system.manager.playSound(i.sources[t],i),i.currentSource=t,i.channel=e}},i.pause=function(){this.channel&&this.channel.pause()},i.unpause=function(){this.channel&&this.channel.paused&&this.channel.unpause()},i.stop=function(){this.channel&&(this.channel.stop(),this.channel=null)},i.onSetAssets=function(t,e,i){var n=[],s=i.length;if(e&&e.length)for(var a=0;a1e-5){var i=this._tweenInfo.lerpColor;i.lerp(this._tweenInfo.from,this._tweenInfo.to,e),this._applyTintImmediately(new ct(i.r,i.g,i.b,i.a))}else this._applyTintImmediately(this._tweenInfo.to),this._cancelTween()},i._cancelTween=function(){delete this._tweenInfo},i.onUpdate=function(){this._tweenInfo&&this._updateTintTween()},i.onEnable=function(){this._isHovering=!1,this._hoveringCounter=0,this._isPressed=!1,this._imageReference.onParentComponentEnable(),this._toggleHitElementListeners("on"),this._forceReapplyVisualState()},i.onDisable=function(){this._toggleHitElementListeners("off"),this._resetToDefaultVisualState(this.transitionMode)},i.onRemove=function(){this._toggleLifecycleListeners("off",this.system),this.onDisable()},e}(Nh);function Gm(t){return new ct(t.r,t.g,t.b)}var Wm=function(){this.enabled=!0,this.active=!0,this.imageEntity=null,this.hitPadding=new gt,this.transitionMode=0,this.hoverTint=new ct(.75,.75,.75),this.pressedTint=new ct(.5,.5,.5),this.inactiveTint=new ct(.25,.25,.25),this.fadeDuration=0,this.hoverSpriteAsset=null,this.hoverSpriteFrame=0,this.pressedSpriteAsset=null,this.pressedSpriteFrame=0,this.inactiveSpriteAsset=null,this.inactiveSpriteFrame=0},Hm=["enabled","active",{name:"imageEntity",type:"entity"},{name:"hitPadding",type:"vec4"},"transitionMode",{name:"hoverTint",type:"rgba"},{name:"pressedTint",type:"rgba"},{name:"inactiveTint",type:"rgba"},"fadeDuration","hoverSpriteAsset","hoverSpriteFrame","pressedSpriteAsset","pressedSpriteFrame","inactiveSpriteAsset","inactiveSpriteFrame"],Xm=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="button",i.ComponentType=Vm,i.DataType=Wm,i.schema=Hm,i.on("beforeremove",i._onRemoveComponent,Z(i)),i.app.systems.on("update",i.onUpdate,Z(i)),i}j(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){t.prototype.initializeComponentData.call(this,e,i,Hm)},i.onUpdate=function(t){var e=this.store;for(var i in e){var n=e[i].entity,s=n.button;s.enabled&&n.enabled&&s.onUpdate()}},i._onRemoveComponent=function(t,e){e.onRemove()},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this)},e}(im);Nh._buildAccessors(Vm.prototype,Hm);var qm,Ym,jm,Km=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._compoundParent=null,n.entity.on("insert",n._onInsert,Z(n)),n.on("set_type",n.onSetType,Z(n)),n.on("set_halfExtents",n.onSetHalfExtents,Z(n)),n.on("set_radius",n.onSetRadius,Z(n)),n.on("set_height",n.onSetHeight,Z(n)),n.on("set_axis",n.onSetAxis,Z(n)),n.on("set_asset",n.onSetAsset,Z(n)),n.on("set_renderAsset",n.onSetRenderAsset,Z(n)),n.on("set_model",n.onSetModel,Z(n)),n.on("set_render",n.onSetRender,Z(n)),n}j(e,t);var i=e.prototype;return i.onSetType=function(t,e,i){e!==i&&this.system.changeType(this,e,i)},i.onSetHalfExtents=function(t,e,i){var n=this.data.type;this.data.initialized&&"box"===n&&this.system.recreatePhysicalShapes(this)},i.onSetRadius=function(t,e,i){var n=this.data.type;!this.data.initialized||"sphere"!==n&&"capsule"!==n&&"cylinder"!==n&&"cone"!==n||this.system.recreatePhysicalShapes(this)},i.onSetHeight=function(t,e,i){var n=this.data.type;!this.data.initialized||"capsule"!==n&&"cylinder"!==n&&"cone"!==n||this.system.recreatePhysicalShapes(this)},i.onSetAxis=function(t,e,i){var n=this.data.type;!this.data.initialized||"capsule"!==n&&"cylinder"!==n&&"cone"!==n||this.system.recreatePhysicalShapes(this)},i.onSetAsset=function(t,e,i){var n=this.system.app.assets;if(e){var s=n.get(e);s&&s.off("remove",this.onAssetRemoved,this)}if(i){i instanceof Mh&&(this.data.asset=i.id);var a=n.get(this.data.asset);a&&(a.off("remove",this.onAssetRemoved,this),a.on("remove",this.onAssetRemoved,this))}this.data.initialized&&"mesh"===this.data.type&&(i||(this.data.model=null),this.system.recreatePhysicalShapes(this))},i.onSetRenderAsset=function(t,e,i){var n=this.system.app.assets;if(e){var s=n.get(e);s&&s.off("remove",this.onRenderAssetRemoved,this)}if(i){i instanceof Mh&&(this.data.renderAsset=i.id);var a=n.get(this.data.renderAsset);a&&(a.off("remove",this.onRenderAssetRemoved,this),a.on("remove",this.onRenderAssetRemoved,this))}this.data.initialized&&"mesh"===this.data.type&&(i||(this.data.render=null),this.system.recreatePhysicalShapes(this))},i.onSetModel=function(t,e,i){this.data.initialized&&"mesh"===this.data.type&&this.system.implementations.mesh.doRecreatePhysicalShape(this)},i.onSetRender=function(t,e,i){this.onSetModel(t,e,i)},i.onAssetRemoved=function(t){t.off("remove",this.onAssetRemoved,this),this.data.asset===t.id&&(this.asset=null)},i.onRenderAssetRemoved=function(t){t.off("remove",this.onRenderAssetRemoved,this),this.data.renderAsset===t.id&&(this.renderAsset=null)},i._getCompoundChildShapeIndex=function(t){for(var e=this.data.shape,i=e.getNumChildShapes(),n=0;n-1&&e.rigidbody._triggers.splice(i,1),e.rigidbody.removeBody(t),t.forceActivationState(5)}},t}(),n_=new wt,s_=new pt,a_=new Tt,r_=new on,o_=["enabled","type","halfExtents","radius","axis","height","asset","renderAsset","shape","model","render"],h_=function(){function t(t){this.system=t}var e=t.prototype;return e.beforeInitialize=function(t,e){e.shape=null,e.model=new Jo,e.model.graph=new on},e.afterInitialize=function(t,e){this.recreatePhysicalShapes(t),t.data.initialized=!0},e.reset=function(t,e){this.beforeInitialize(t,e),this.afterInitialize(t,e)},e.recreatePhysicalShapes=function(t){var e=t.entity,i=t.data;if("undefined"!=typeof Ammo){e.trigger&&(e.trigger.destroy(),delete e.trigger),i.shape&&(t._compoundParent&&(this.system._removeCompoundChild(t._compoundParent,i.shape),t._compoundParent.entity.rigidbody&&t._compoundParent.entity.rigidbody.activate()),Ammo.destroy(i.shape),i.shape=null),i.shape=this.createPhysicalShape(t.entity,i);var n=!t._compoundParent;if("compound"!==i.type||t._compoundParent&&t!==t._compoundParent){if("compound"!==i.type&&(t._compoundParent&&t===t._compoundParent&&e.forEach(this.system.implementations.compound._updateEachDescendant,t),!t.rigidbody)){t._compoundParent=null;for(var s=e.parent;s;){if(s.collision&&"compound"===s.collision.type){t._compoundParent=s.collision;break}s=s.parent}}}else t._compoundParent=t,e.forEach(this._addEachDescendant,t);t._compoundParent&&t!==t._compoundParent&&(n&&0===t._compoundParent.shape.getNumChildShapes()?this.system.recreatePhysicalShapes(t._compoundParent):(this.system.updateCompoundChildTransform(e),t._compoundParent.entity.rigidbody&&t._compoundParent.entity.rigidbody.activate())),e.rigidbody?(e.rigidbody.disableSimulation(),e.rigidbody.createBody(),e.enabled&&e.rigidbody.enabled&&e.rigidbody.enableSimulation()):t._compoundParent||(e.trigger?e.trigger.initialize(i):e.trigger=new i_(this.system.app,t,i))}},e.createPhysicalShape=function(t,e){},e.updateTransform=function(t,e,i,n){t.entity.trigger&&t.entity.trigger.updateTransform()},e.beforeRemove=function(t,e){e.data.shape&&(e._compoundParent&&!e._compoundParent.entity._destroying&&(this.system._removeCompoundChild(e._compoundParent,e.data.shape),e._compoundParent.entity.rigidbody&&e._compoundParent.entity.rigidbody.activate()),e._compoundParent=null,Ammo.destroy(e.data.shape),e.data.shape=null)},e.remove=function(t,e){var i=this.system.app;t.rigidbody&&t.rigidbody.body&&t.rigidbody.disableSimulation(),t.trigger&&(t.trigger.destroy(),delete t.trigger),i.scene.containsModel(e.model)&&(i.root.removeChild(e.model.graph),i.scene.removeModel(e.model))},e.clone=function(t,e){var i=this.system.store[t.getGuid()],n={enabled:i.data.enabled,type:i.data.type,halfExtents:[i.data.halfExtents.x,i.data.halfExtents.y,i.data.halfExtents.z],radius:i.data.radius,axis:i.data.axis,height:i.data.height,asset:i.data.asset,renderAsset:i.data.renderAsset,model:i.data.model,render:i.data.render};return this.system.addComponent(e,n)},t}(),l_=function(t){function e(){return t.apply(this,arguments)||this}return j(e,t),e.prototype.createPhysicalShape=function(t,e){if("undefined"!=typeof Ammo){var i=e.halfExtents,n=new Ammo.btVector3(i?i.x:.5,i?i.y:.5,i?i.z:.5),s=new Ammo.btBoxShape(n);return Ammo.destroy(n),s}},e}(h_),c_=function(t){function e(){return t.apply(this,arguments)||this}return j(e,t),e.prototype.createPhysicalShape=function(t,e){if("undefined"!=typeof Ammo)return new Ammo.btSphereShape(e.radius)},e}(h_),u_=function(t){function e(){return t.apply(this,arguments)||this}return j(e,t),e.prototype.createPhysicalShape=function(t,e){var i=void 0!==e.axis?e.axis:1,n=e.radius||.5,s=Math.max((e.height||2)-2*n,0),a=null;if("undefined"!=typeof Ammo)switch(i){case 0:a=new Ammo.btCapsuleShapeX(n,s);break;case 1:a=new Ammo.btCapsuleShape(n,s);break;case 2:a=new Ammo.btCapsuleShapeZ(n,s)}return a},e}(h_),d_=function(t){function e(){return t.apply(this,arguments)||this}return j(e,t),e.prototype.createPhysicalShape=function(t,e){var i=void 0!==e.axis?e.axis:1,n=void 0!==e.radius?e.radius:.5,s=void 0!==e.height?e.height:1,a=null,r=null;if("undefined"!=typeof Ammo)switch(i){case 0:a=new Ammo.btVector3(.5*s,n,n),r=new Ammo.btCylinderShapeX(a);break;case 1:a=new Ammo.btVector3(n,.5*s,n),r=new Ammo.btCylinderShape(a);break;case 2:a=new Ammo.btVector3(n,n,.5*s),r=new Ammo.btCylinderShapeZ(a)}return a&&Ammo.destroy(a),r},e}(h_),f_=function(t){function e(){return t.apply(this,arguments)||this}return j(e,t),e.prototype.createPhysicalShape=function(t,e){var i=void 0!==e.axis?e.axis:1,n=void 0!==e.radius?e.radius:.5,s=void 0!==e.height?e.height:1,a=null;if("undefined"!=typeof Ammo)switch(i){case 0:a=new Ammo.btConeShapeX(n,s);break;case 1:a=new Ammo.btConeShape(n,s);break;case 2:a=new Ammo.btConeShapeZ(n,s)}return a},e}(h_),p_=function(t){function e(){return t.apply(this,arguments)||this}j(e,t);var i=e.prototype;return i.beforeInitialize=function(t,e){},i.createAmmoMesh=function(t,e,i){var n;if(this.system._triMeshCache[t.id])n=this.system._triMeshCache[t.id];else{for(var s,a,r=t.vertexBuffer,o=r.getFormat(),h=0;h=0&&this.model.meshInstances.splice(i,1),this.unmaskMeshInstance=null}this._entity.enabled&&this._element.enabled&&(this._element.removeModelFromLayers(this.model),this._element.addModelToLayers(this.model))}},e.setMaterial=function(t){this.meshInstance&&(this.meshInstance.material=t,this.unmaskMeshInstance&&(this.unmaskMeshInstance.material=t))},e.setParameter=function(t,e){this.meshInstance&&(this.meshInstance.setParameter(t,e),this.unmaskMeshInstance&&this.unmaskMeshInstance.setParameter(t,e))},e.deleteParameter=function(t){this.meshInstance&&(this.meshInstance.deleteParameter(t),this.unmaskMeshInstance&&this.unmaskMeshInstance.deleteParameter(t))},e.setUnmaskDrawOrder=function(){if(this.meshInstance){if(this.unmaskMeshInstance){var t=function t(e){var i,n=e.children,s=n.length;if(s){for(var a=0;a0){var s=e.calculatedWidth/e.calculatedHeight;e.fitMode===Lm&&s>this._targetAspectRatio||e.fitMode===Dm&&s0&&(this._targetAspectRatio=i.rect.z/i.rect.w)}this.mesh=t?e:this._defaultMesh,this.refreshMesh()},e.refreshMesh=function(){this.mesh&&(this._element._beingInitialized?this._meshDirty=!0:this._updateMesh(this.mesh))},e._updateAabb=function(t){return t.center.set(0,0,0),t.halfExtents.set(.5*this._outerScale.x,.5*this._outerScale.y,.001),t.setFromTransformedAabb(t,this._renderable.node.getWorldTransform()),t},e._toggleMask=function(){this._element._dirtifyMask();var t=this._element._isScreenSpace();this._updateMaterial(t),this._renderable.setMask(!!this._mask)},e._onMaterialLoad=function(t){this.material=t.resource},e._onMaterialAdded=function(t){this._system.app.assets.off("add:"+t.id,this._onMaterialAdded,this),this._materialAsset===t.id&&this._bindMaterialAsset(t)},e._bindMaterialAsset=function(t){this._entity.enabled&&(t.on("load",this._onMaterialLoad,this),t.on("change",this._onMaterialChange,this),t.on("remove",this._onMaterialRemove,this),t.resource?this._onMaterialLoad(t):this._system.app.assets.load(t))},e._unbindMaterialAsset=function(t){t.off("load",this._onMaterialLoad,this),t.off("change",this._onMaterialChange,this),t.off("remove",this._onMaterialRemove,this)},e._onMaterialChange=function(){},e._onMaterialRemove=function(){},e._onTextureAdded=function(t){this._system.app.assets.off("add:"+t.id,this._onTextureAdded,this),this._textureAsset===t.id&&this._bindTextureAsset(t)},e._bindTextureAsset=function(t){this._entity.enabled&&(t.on("load",this._onTextureLoad,this),t.on("change",this._onTextureChange,this),t.on("remove",this._onTextureRemove,this),t.resource?this._onTextureLoad(t):this._system.app.assets.load(t))},e._unbindTextureAsset=function(t){t.off("load",this._onTextureLoad,this),t.off("change",this._onTextureChange,this),t.off("remove",this._onTextureRemove,this)},e._onTextureLoad=function(t){this.texture=t.resource},e._onTextureChange=function(t){},e._onTextureRemove=function(t){},e._onSpriteAssetAdded=function(t){this._system.app.assets.off("add:"+t.id,this._onSpriteAssetAdded,this),this._spriteAsset===t.id&&this._bindSpriteAsset(t)},e._bindSpriteAsset=function(t){this._entity.enabled&&(t.on("load",this._onSpriteAssetLoad,this),t.on("change",this._onSpriteAssetChange,this),t.on("remove",this._onSpriteAssetRemove,this),t.resource?this._onSpriteAssetLoad(t):this._system.app.assets.load(t))},e._unbindSpriteAsset=function(t){t.off("load",this._onSpriteAssetLoad,this),t.off("change",this._onSpriteAssetChange,this),t.off("remove",this._onSpriteAssetRemove,this),t.data.textureAtlasAsset&&this._system.app.assets.off("load:"+t.data.textureAtlasAsset,this._onTextureAtlasLoad,this)},e._onSpriteAssetLoad=function(t){if(t&&t.resource)if(t.resource.atlas)this.sprite=t.resource;else{var e=t.data.textureAtlasAsset;if(e){var i=this._system.app.assets;i.off("load:"+e,this._onTextureAtlasLoad,this),i.once("load:"+e,this._onTextureAtlasLoad,this)}}else this.sprite=null},e._onSpriteAssetChange=function(t){this._onSpriteAssetLoad(t)},e._onSpriteAssetRemove=function(t){},e._bindSprite=function(t){t.on("set:meshes",this._onSpriteMeshesChange,this),t.on("set:pixelsPerUnit",this._onSpritePpuChange,this),t.on("set:atlas",this._onAtlasTextureChange,this),t.atlas&&t.atlas.on("set:texture",this._onAtlasTextureChange,this)},e._unbindSprite=function(t){t.off("set:meshes",this._onSpriteMeshesChange,this),t.off("set:pixelsPerUnit",this._onSpritePpuChange,this),t.off("set:atlas",this._onAtlasTextureChange,this),t.atlas&&t.atlas.off("set:texture",this._onAtlasTextureChange,this)},e._onSpriteMeshesChange=function(){this._sprite&&(this._spriteFrame=ot.clamp(this._spriteFrame,0,this._sprite.frameKeys.length-1)),this._updateSprite()},e._onSpritePpuChange=function(){0!==this.sprite.renderMode&&null===this._pixelsPerUnit&&this._updateSprite()},e._onAtlasTextureChange=function(){this.sprite&&this.sprite.atlas&&this.sprite.atlas.texture?(this._renderable.setParameter("texture_emissiveMap",this._sprite.atlas.texture),this._renderable.setParameter("texture_opacityMap",this._sprite.atlas.texture)):(this._renderable.deleteParameter("texture_emissiveMap"),this._renderable.deleteParameter("texture_opacityMap"))},e._onTextureAtlasLoad=function(t){var e=this._spriteAsset;e instanceof Mh?this._onSpriteAssetLoad(e):this._onSpriteAssetLoad(this._system.app.assets.get(e))},e.onEnable=function(){if(this._materialAsset){var t=this._system.app.assets.get(this._materialAsset);t&&t.resource!==this._material&&this._bindMaterialAsset(t)}if(this._textureAsset){var e=this._system.app.assets.get(this._textureAsset);e&&e.resource!==this._texture&&this._bindTextureAsset(e)}if(this._spriteAsset){var i=this._system.app.assets.get(this._spriteAsset);i&&i.resource!==this._sprite&&this._bindSpriteAsset(i)}this._element.addModelToLayers(this._renderable.model)},e.onDisable=function(){this._element.removeModelFromLayers(this._renderable.model)},e._setStencil=function(t){this._renderable.meshInstance.stencilFront=t,this._renderable.meshInstance.stencilBack=t;var e=0;if(this._element.maskedBy&&(e=this._element.maskedBy.element._image._maskRef),this._renderable.unmaskMeshInstance){var i=new gc({ref:e+1,func:2,zpass:5});this._renderable.unmaskMeshInstance.stencilFront=i,this._renderable.unmaskMeshInstance.stencilBack=i}},q(t,[{key:"color",get:function(){return this._color},set:function(t){var e=t.r,i=t.g,n=t.b;this._color.r===e&&this._color.g===i&&this._color.b===n||(this._color.r=e,this._color.g=i,this._color.b=n,this._colorUniform[0]=e,this._colorUniform[1]=i,this._colorUniform[2]=n,this._renderable.setParameter("material_emissive",this._colorUniform)),this._element&&this._element.fire("set:color",this._color)}},{key:"opacity",get:function(){return this._color.a},set:function(t){t!==this._color.a&&(this._color.a=t,this._renderable.setParameter("material_opacity",t)),this._element&&this._element.fire("set:opacity",t)}},{key:"rect",get:function(){return this._rect},set:function(t){var e,i,n,s;t instanceof gt?(e=t.x,i=t.y,n=t.z,s=t.w):(e=t[0],i=t[1],n=t[2],s=t[3]),e===this._rect.x&&i===this._rect.y&&n===this._rect.z&&s===this._rect.w||(this._rect.set(e,i,n,s),this._renderable.mesh&&(this._element._beingInitialized?this._meshDirty=!0:this._updateMesh(this._renderable.mesh)))}},{key:"material",get:function(){return this._material},set:function(t){if(this._material!==t){if(!t){var e=this._element._isScreenSpace();t=this.mask?e?this._system.defaultScreenSpaceImageMaskMaterial:this._system.defaultImageMaskMaterial:e?this._system.defaultScreenSpaceImageMaterial:this._system.defaultImageMaterial}this._material=t,t&&(this._renderable.setMaterial(t),this._hasUserMaterial()?(this._renderable.deleteParameter("material_opacity"),this._renderable.deleteParameter("material_emissive")):(this._colorUniform[0]=this._color.r,this._colorUniform[1]=this._color.g,this._colorUniform[2]=this._color.b,this._renderable.setParameter("material_emissive",this._colorUniform),this._renderable.setParameter("material_opacity",this._color.a)))}}},{key:"materialAsset",get:function(){return this._materialAsset},set:function(t){var e=this._system.app.assets,i=t;if(t instanceof Mh&&(i=t.id),this._materialAsset!==i){if(this._materialAsset){e.off("add:"+this._materialAsset,this._onMaterialAdded,this);var n=e.get(this._materialAsset);n&&(n.off("load",this._onMaterialLoad,this),n.off("change",this._onMaterialChange,this),n.off("remove",this._onMaterialRemove,this))}if(this._materialAsset=i,this._materialAsset){var s=e.get(this._materialAsset);s?this._bindMaterialAsset(s):(this.material=null,e.on("add:"+this._materialAsset,this._onMaterialAdded,this))}else this.material=null}}},{key:"texture",get:function(){return this._texture},set:function(t){if(this._texture!==t){if(this._textureAsset){var e=this._system.app.assets.get(this._textureAsset);e&&e.resource!==t&&(this.textureAsset=null)}if(this._texture=t,t){this._spriteAsset&&(this.spriteAsset=null),this._renderable.setParameter("texture_emissiveMap",this._texture),this._renderable.setParameter("texture_opacityMap",this._texture),this._colorUniform[0]=this._color.r,this._colorUniform[1]=this._color.g,this._colorUniform[2]=this._color.b,this._renderable.setParameter("material_emissive",this._colorUniform),this._renderable.setParameter("material_opacity",this._color.a);var i=this._texture.width/this._texture.height;i!=this._targetAspectRatio&&(this._targetAspectRatio=i,this._element.fitMode!==Im&&this.refreshMesh())}else this._renderable.deleteParameter("texture_emissiveMap"),this._renderable.deleteParameter("texture_opacityMap"),this._targetAspectRatio=-1,this._element.fitMode!==Im&&this.refreshMesh()}}},{key:"textureAsset",get:function(){return this._textureAsset},set:function(t){var e=this._system.app.assets,i=t;if(t instanceof Mh&&(i=t.id),this._textureAsset!==i){if(this._textureAsset){e.off("add:"+this._textureAsset,this._onTextureAdded,this);var n=e.get(this._textureAsset);n&&(n.off("load",this._onTextureLoad,this),n.off("change",this._onTextureChange,this),n.off("remove",this._onTextureRemove,this))}if(this._textureAsset=i,this._textureAsset){var s=e.get(this._textureAsset);s?this._bindTextureAsset(s):(this.texture=null,e.on("add:"+this._textureAsset,this._onTextureAdded,this))}else this.texture=null}}},{key:"spriteAsset",get:function(){return this._spriteAsset},set:function(t){var e=this._system.app.assets,i=t;if(t instanceof Mh&&(i=t.id),this._spriteAsset!==i){if(this._spriteAsset){e.off("add:"+this._spriteAsset,this._onSpriteAssetAdded,this);var n=e.get(this._spriteAsset);n&&this._unbindSpriteAsset(n)}if(this._spriteAsset=i,this._spriteAsset){var s=e.get(this._spriteAsset);s?this._bindSpriteAsset(s):(this.sprite=null,e.on("add:"+this._spriteAsset,this._onSpriteAssetAdded,this))}else this.sprite=null}this._element&&this._element.fire("set:spriteAsset",i)}},{key:"sprite",get:function(){return this._sprite},set:function(t){if(this._sprite!==t){if(this._sprite&&this._unbindSprite(this._sprite),this._spriteAsset){var e=this._system.app.assets.get(this._spriteAsset);e&&e.resource!==t&&(this.spriteAsset=null)}this._sprite=t,this._sprite&&(this._bindSprite(this._sprite),this._textureAsset&&(this.textureAsset=null)),this._sprite&&this._sprite.atlas&&this._sprite.atlas.texture?(this._renderable.setParameter("texture_emissiveMap",this._sprite.atlas.texture),this._renderable.setParameter("texture_opacityMap",this._sprite.atlas.texture)):(this._renderable.deleteParameter("texture_emissiveMap"),this._renderable.deleteParameter("texture_opacityMap")),this._sprite&&(this._spriteFrame=ot.clamp(this._spriteFrame,0,this._sprite.frameKeys.length-1)),this._updateSprite()}}},{key:"spriteFrame",get:function(){return this._spriteFrame},set:function(t){var e=this._spriteFrame;this._sprite?this._spriteFrame=ot.clamp(t,0,this._sprite.frameKeys.length-1):this._spriteFrame=t,this._spriteFrame!==e&&this._updateSprite(),this._element&&this._element.fire("set:spriteFrame",t)}},{key:"mesh",get:function(){return this._renderable.mesh},set:function(t){this._renderable.setMesh(t),this._defaultMesh===t?this._renderable.setAabbFunc(null):this._renderable.setAabbFunc(this._updateAabbFunc)}},{key:"mask",get:function(){return this._mask},set:function(t){this._mask!==t&&(this._mask=t,this._toggleMask())}},{key:"pixelsPerUnit",get:function(){return this._pixelsPerUnit},set:function(t){this._pixelsPerUnit!==t&&(this._pixelsPerUnit=t,!this._sprite||1!==this._sprite.renderMode&&2!==this._sprite.renderMode||this._updateSprite())}},{key:"aabb",get:function(){return this._renderable.meshInstance?this._renderable.meshInstance.aabb:null}}]),t}(),y_=/[A-Z|a-z|0-9|_|-|/]/,x_=function(){function t(t){this._symbols=t,this._index=0,this._last=0,this._cur=this._symbols.length>0?this._symbols[0]:null,this._buf=[],this._mode="text",this._error=null}var e=t.prototype;return e.read=function(){for(var t=this._read();8===t;)t=this._read();return 0!==t&&1!==t&&(this._last=this._index),t},e.buf=function(){return this._buf},e.last=function(){return this._last},e.error=function(){return this._error},e.debugPrint=function(){for(var t=["EOF","ERROR","TEXT","OPEN_BRACKET","CLOSE_BRACKET","EQUALS","STRING","IDENTIFIER","WHITESPACE"],e=this.read(),i="";i+=(i.length>0?"\n":"")+t[e]+" '"+this.buf().join("")+"'",0!==e&&1!==e;)e=this.read();return i},e._read=function(){return this._buf=[],this._eof()?0:"text"===this._mode?this._text():this._tag()},e._text=function(){for(;;)switch(this._cur){case null:return this._buf.length>0?2:0;case"[":return this._mode="tag",this._buf.length>0?2:this._tag();case"\\":if(this._next(),"["===this._cur)this._store();else this._output("\\");break;default:this._store()}},e._tag=function(){switch(this._cur){case null:return this._error="unexpected end of input reading tag",1;case"[":return this._store(),3;case"]":return this._store(),this._mode="text",4;case"=":return this._store(),5;case" ":case"\t":case"\n":case"\r":case"\v":case"\f":return this._whitespace();case'"':return this._string();default:return this._isIdentifierSymbol(this._cur)?this._identifier():(this._error="unrecognized character",1)}},e._whitespace=function(){for(this._store();-1!==" \t\n\r\v\f".indexOf(this._cur);)this._store();return 8},e._string=function(){for(this._next();;)switch(this._cur){case null:return this._error="unexpected end of input reading string",1;case'"':return this._next(),6;default:this._store()}},e._identifier=function(){for(this._store();null!==this._cur&&this._isIdentifierSymbol(this._cur);)this._store();return 7},e._isIdentifierSymbol=function(t){return 1===t.length&&null!==t.match(y_)},e._eof=function(){return null===this._cur},e._next=function(){return this._eof()||(this._index++,this._cur=this._index=0;--s)if(n==="/"+e[s].name&&null===e[s].end)return e[s].end=t.length,4===(i=this._scanner.read())||(this._error="expected close bracket",!1);return this._error="failed to find matching tag",!1}var a={name:n,value:null,attributes:{},start:t.length,end:null};if(5===(i=this._scanner.read())){if(6!==(i=this._scanner.read()))return this._error="expected string",!1;a.value=this._scanner.buf().join(""),i=this._scanner.read()}for(;;){switch(i){case 4:return e.push(a),!0;case 7:var r=this._scanner.buf().join("");if(5!==(i=this._scanner.read()))return this._error="expected equals",!1;if(6!==(i=this._scanner.read()))return this._error="expected string",!1;var o=this._scanner.buf().join("");a.attributes[r]=o;break;default:return this._error="expected close bracket or identifier",!1}i=this._scanner.read()}},t}();function S_(t,e){for(var i in e)if(e.hasOwnProperty(i)){var n=e[i];n instanceof Object?(t.hasOwnProperty(i)||(t[i]={}),S_(t[i],e[i])):t[i]=n}}function w_(t){if(0===t.length)return null;for(var e={},i=0;i=1e-4,v=this._element.calculatedWidth;(this.autoWidth&&!g||!this._wrapLines)&&(v=Number.POSITIVE_INFINITY);var y,x,b,S,w=0,T=0;function A(t,i,n){e._lineWidths.push(Math.abs(n));var s=f>i?i+1:f,a=f>i?f+1:i,h=t.slice(s,a);if(_)for(var l=h.length;l--&&_>0;)C_.test(h[l])&&(h.splice(l,1),_--);e._lineContents.push(h.join("")),r=0,o-=e._scaledLineHeight,c++,p=0,m=0,_=0,u=0,f=i}for(var M=!0;M;){M=!1,this._scaledLineHeight=s?this._lineHeight*this._fontSize/(this._maxFontSize||1e-4):this._lineHeight,this.width=0,this.height=0,this._lineWidths=[],this._lineContents=[],r=0,o=0,h=0,l=0,c=1,u=0,d=0,f=0,p=0,m=0,_=0;var C=this._fontSize/32;w=this._fontMinY*C,T=this._fontMaxY*C;for(var E=0;E=a?null:this._symbols[L+1],C_.test(y))_++,(!this._wrapLines||this._maxLines<0||c0){var z=this._font.data.kerning;if(z){var V=z[W.getCodePoint(this._symbols[L-1])||0];V&&(U=V[W.getCodePoint(this._symbols[L])||0]||0)}}B=x.scale||1,F=C*((x.width+x.height)/2)/B,O=(x.xadvance+U)*C,D=(x.xoffset-U)*C,k=x.yoffset*C}else console.error("Couldn't substitute missing character: '"+y+"'");var G=E_.test(y),H=this._meshInfo[x&&x.map||0],X=r+this._spacing*O;if(X>v&&m>0&&!G&&(this._maxLines<0||cthis._element.calculatedWidth&&(nt=Math.floor(this._element.fontSize*this._element.calculatedWidth/(this.width||1e-4)),(nt=ot.clamp(nt,i,n))!==this._element.fontSize)){this._fontSize=nt,M=!0;break}if(this.height=Math.max(this.height,T-(o+w)),this._shouldAutoFitHeight()&&this.height>this._element.calculatedHeight&&(nt=ot.clamp(this._fontSize-1,i,n))!==this._element.fontSize){this._fontSize=nt,M=!0;break}r+=this._spacing*O,G||(l=r),(this._isWordBoundary(y)||this._isValidNextChar(S)&&(this._isNextCJKBoundary(y,S)||this._isNextCJKWholeWord(S)))&&(p++,u=l,d=L+1),m++;var st=this._getUv(y);if(H.uvs[4*b*2+0]=st[0],H.uvs[4*b*2+1]=1-st[1],H.uvs[4*b*2+2]=st[2],H.uvs[4*b*2+3]=1-st[1],H.uvs[4*b*2+4]=st[2],H.uvs[4*b*2+5]=1-st[3],H.uvs[4*b*2+6]=st[0],H.uvs[4*b*2+7]=1-st[3],this._symbolColors){var at=3*this._symbolColors[L];P=this._colorPalette[at],R=this._colorPalette[at+1],I=this._colorPalette[at+2]}H.colors[4*b*4+0]=P,H.colors[4*b*4+1]=R,H.colors[4*b*4+2]=I,H.colors[4*b*4+3]=255,H.colors[4*b*4+4]=P,H.colors[4*b*4+5]=R,H.colors[4*b*4+6]=I,H.colors[4*b*4+7]=255,H.colors[4*b*4+8]=P,H.colors[4*b*4+9]=R,H.colors[4*b*4+10]=I,H.colors[4*b*4+11]=255,H.colors[4*b*4+12]=P,H.colors[4*b*4+13]=R,H.colors[4*b*4+14]=I,H.colors[4*b*4+15]=255,H.quad++}}M||f=At?(Mt.element.POSITION.set(0,0,0),Mt.element.TEXCOORD0.set(0,0),Mt.element.COLOR.set(0,0,0,0)):(Mt.element.POSITION.set(this._meshInfo[ut].positions[3*Ct+0],this._meshInfo[ut].positions[3*Ct+1],this._meshInfo[ut].positions[3*Ct+2]),Mt.element.TEXCOORD0.set(this._meshInfo[ut].uvs[2*Ct+0],this._meshInfo[ut].uvs[2*Ct+1]),Mt.element.COLOR.set(this._meshInfo[ut].colors[4*Ct+0],this._meshInfo[ut].colors[4*Ct+1],this._meshInfo[ut].colors[4*Ct+2],this._meshInfo[ut].colors[4*Ct+3])),Mt.next();Mt.end(),this._meshInfo[ut].meshInstance.mesh.aabb.compute(this._meshInfo[ut].positions),this._meshInfo[ut].meshInstance._aabbVer=-1}this._aabbDirty=!0},e._onFontRender=function(){this.font=this._font},e._onFontLoad=function(t){this.font!==t.resource&&(this.font=t.resource)},e._onFontChange=function(t,e,i,n){if("data"===e){this._font.data=i;for(var s=this._font.data.info.maps.length,a=0;athis._font.textures.length&&(this._meshInfo.length=this._font.textures.length),this._updateText()}}},{key:"alignment",get:function(){return this._alignment},set:function(t){t instanceof _t?this._alignment.set(t.x,t.y):this._alignment.set(t[0],t[1]),this._font&&this._updateText()}},{key:"autoWidth",get:function(){return this._autoWidth},set:function(t){var e=this._autoWidth;if(this._autoWidth=t,t&&Math.abs(this._element.anchor.x-this._element.anchor.z)<1e-4&&(this._element.width=this.width),e!==t){var i=this._shouldAutoFit()?this._maxFontSize:this._originalFontSize;i!==this._fontSize&&(this._fontSize=i,this._font&&this._updateText())}}},{key:"autoHeight",get:function(){return this._autoHeight},set:function(t){var e=this._autoHeight;if(this._autoHeight=t,t&&Math.abs(this._element.anchor.y-this._element.anchor.w)<1e-4&&(this._element.height=this.height),e!==t){var i=this._shouldAutoFit()?this._maxFontSize:this._originalFontSize;i!==this._fontSize&&(this._fontSize=i,this._font&&this._updateText())}}},{key:"rtlReorder",get:function(){return this._rtlReorder},set:function(t){this._rtlReorder!==t&&(this._rtlReorder=t,this._font&&this._updateText())}},{key:"unicodeConverter",get:function(){return this._unicodeConverter},set:function(t){this._unicodeConverter!==t&&(this._unicodeConverter=t,this._setText(this._text))}},{key:"aabb",get:function(){if(this._aabbDirty){for(var t=!1,e=0;e=0&&this.system._prerender.splice(i,1),this.system._prerender.indexOf(t)<0&&this.system._prerender.push(t)}t=e}},i._onPrerender=function(){for(var t=0;t=0)&&(null==(t=this.system.app.batcher)||t.insert(Oa.ELEMENT,this.batchGroupId,this.entity));this.fire("enableelement")},i.onDisable=function(){var t;(this.system.app.scene.off("set:layers",this.onLayersChanged,this),this.system.app.scene.layers&&(this.system.app.scene.layers.off("add",this.onLayerAdded,this),this.system.app.scene.layers.off("remove",this.onLayerRemoved,this)),this._image&&this._image.onDisable(),this._text&&this._text.onDisable(),this._group&&this._group.onDisable(),this.system.app.elementInput&&this.useInput&&this.system.app.elementInput.removeElement(this),this._batchGroupId>=0)&&(null==(t=this.system.app.batcher)||t.remove(Oa.ELEMENT,this.batchGroupId,this.entity));this.fire("disableelement")},i.onRemove=function(){this.entity.off("insert",this._onInsert,this),this._unpatch(),this._image&&this._image.destroy(),this._text&&this._text.destroy(),this.system.app.elementInput&&this.useInput&&this.system.app.elementInput.removeElement(this),this.screen&&this.screen.screen&&(this._unbindScreen(this.screen.screen),this.screen.screen.syncDrawOrder()),this.off()},i._calculateSize=function(t,e){if(this.entity._parent||this.screen){this._calculateLocalAnchors();var i=this._absRight-this._absLeft,n=this._absTop-this._absBottom;t?this._setWidth(i):this._setCalculatedWidth(i,!1),e?this._setHeight(n):this._setCalculatedHeight(n,!1);var s=this.entity.getLocalPosition();s.x=this._margin.x+this._calculatedWidth*this._pivot.x,s.y=this._margin.y+this._calculatedHeight*this._pivot.y,this.entity.setLocalPosition(s),this._sizeDirty=!1}},i._setWidth=function(t){this._width=t,this._setCalculatedWidth(t,!1),this.fire("set:width",this._width)},i._setHeight=function(t){this._height=t,this._setCalculatedHeight(t,!1),this.fire("set:height",this._height)},i._setCalculatedWidth=function(t,e){if(!(Math.abs(t-this._calculatedWidth)<=1e-4)){if(this._calculatedWidth=t,this.entity._dirtifyLocal(),e){var i=this.entity.getLocalPosition(),n=this._pivot;this._margin.x=i.x-this._calculatedWidth*n.x,this._margin.z=this._localAnchor.z-this._localAnchor.x-this._calculatedWidth-this._margin.x}this._flagChildrenAsDirty(),this.fire("set:calculatedWidth",this._calculatedWidth),this.fire("resize",this._calculatedWidth,this._calculatedHeight)}},i._setCalculatedHeight=function(t,e){if(!(Math.abs(t-this._calculatedHeight)<=1e-4)){if(this._calculatedHeight=t,this.entity._dirtifyLocal(),e){var i=this.entity.getLocalPosition(),n=this._pivot;this._margin.y=i.y-this._calculatedHeight*n.y,this._margin.w=this._localAnchor.w-this._localAnchor.y-this._calculatedHeight-this._margin.y}this._flagChildrenAsDirty(),this.fire("set:calculatedHeight",this._calculatedHeight),this.fire("resize",this._calculatedWidth,this._calculatedHeight)}},i._flagChildrenAsDirty=function(){for(var t=this.entity._children,e=0,i=t.length;e=0&&this._addedModels.splice(e,1);for(var i=0;ii||f>n||p.001}},{key:"_hasSplitAnchorsY",get:function(){return Math.abs(this._anchor.y-this._anchor.w)>.001}},{key:"aabb",get:function(){return this._image?this._image.aabb:this._text?this._text.aabb:null}},{key:"anchor",get:function(){return this._anchor},set:function(t){t instanceof gt?this._anchor.set(t.x,t.y,t.z,t.w):this._anchor.set(t[0],t[1],t[2],t[3]),this.entity._parent||this.screen?this._calculateSize(this._hasSplitAnchorsX,this._hasSplitAnchorsY):this._calculateLocalAnchors(),this._anchorDirty=!0,this.entity._dirtyLocal||this.entity._dirtifyLocal(),this.fire("set:anchor",this._anchor)}},{key:"batchGroupId",get:function(){return this._batchGroupId},set:function(t){if(this._batchGroupId!==t){var e,i;if(this.entity.enabled&&this._batchGroupId>=0)null==(e=this.system.app.batcher)||e.remove(Oa.ELEMENT,this.batchGroupId,this.entity);if(this.entity.enabled&&t>=0)null==(i=this.system.app.batcher)||i.insert(Oa.ELEMENT,t,this.entity);t<0&&this._batchGroupId>=0&&this.enabled&&this.entity.enabled&&(this._image&&this._image._renderable.model?this.addModelToLayers(this._image._renderable.model):this._text&&this._text._model&&this.addModelToLayers(this._text._model)),this._batchGroupId=t}}},{key:"bottom",get:function(){return this._margin.y},set:function(t){this._margin.y=t;var e=this.entity.getLocalPosition(),i=this._absTop,n=this._localAnchor.y+t;this._setHeight(i-n),e.y=t+this._calculatedHeight*this._pivot.y,this.entity.setLocalPosition(e)}},{key:"calculatedWidth",get:function(){return this._calculatedWidth},set:function(t){this._setCalculatedWidth(t,!0)}},{key:"calculatedHeight",get:function(){return this._calculatedHeight},set:function(t){this._setCalculatedHeight(t,!0)}},{key:"canvasCorners",get:function(){if(!this._canvasCornersDirty||!this.screen||!this.screen.screen.screenSpace)return this._canvasCorners;for(var t=this.system.app.graphicsDevice,e=this.screenCorners,i=t.canvas.clientWidth/t.width,n=t.canvas.clientHeight/t.height,s=0;s<4;s++)this._canvasCorners[s].set(e[s].x*i,(t.height-e[s].y)*n);return this._canvasCornersDirty=!1,this._canvasCorners}},{key:"drawOrder",get:function(){return this._drawOrder},set:function(t){var e=0;this.screen&&(e=this.screen.screen.priority),t>16777215&&(t=16777215),this._drawOrder=(e<<24)+t,this.fire("set:draworder",this._drawOrder)}},{key:"height",get:function(){return this._height},set:function(t){this._height=t,this._hasSplitAnchorsY||this._setCalculatedHeight(t,!0),this.fire("set:height",this._height)}},{key:"layers",get:function(){return this._layers},set:function(t){if(this._addedModels.length)for(var e=0;e.001,r=Math.abs(e.anchor.y-e.anchor.w)>.001,o=!1;void 0!==i.margin&&(i.margin instanceof gt?e.margin.copy(i.margin):e._margin.set(i.margin[0],i.margin[1],i.margin[2],i.margin[3]),o=!0),void 0!==i.left&&(e._margin.x=i.left,o=!0),void 0!==i.bottom&&(e._margin.y=i.bottom,o=!0),void 0!==i.right&&(e._margin.z=i.right,o=!0),void 0!==i.top&&(e._margin.w=i.top,o=!0),o&&(e.margin=e._margin);var h=!1;void 0===i.width||a?a&&(h=!0):e.width=i.width,void 0===i.height||r?r&&(h=!0):e.height=i.height,h&&(e.anchor=e.anchor),void 0!==i.enabled&&(e.enabled=i.enabled),void 0!==i.useInput&&(e.useInput=i.useInput),void 0!==i.fitMode&&(e.fitMode=i.fitMode),e.batchGroupId=void 0===i.batchGroupId||null===i.batchGroupId?-1:i.batchGroupId,i.layers&&Array.isArray(i.layers)&&(e.layers=i.layers.slice(0)),void 0!==i.type&&(e.type=i.type),e.type===Pm?(void 0!==i.rect&&(e.rect=i.rect),void 0!==i.color&&((s=i.color)instanceof ct||(s=new ct(i.color[0],i.color[1],i.color[2])),e.color=s),void 0!==i.opacity&&(e.opacity=i.opacity),void 0!==i.textureAsset&&(e.textureAsset=i.textureAsset),i.texture&&(e.texture=i.texture),void 0!==i.spriteAsset&&(e.spriteAsset=i.spriteAsset),i.sprite&&(e.sprite=i.sprite),void 0!==i.spriteFrame&&(e.spriteFrame=i.spriteFrame),void 0!==i.pixelsPerUnit&&null!==i.pixelsPerUnit&&(e.pixelsPerUnit=i.pixelsPerUnit),void 0!==i.materialAsset&&(e.materialAsset=i.materialAsset),i.material&&(e.material=i.material),void 0!==i.mask&&(e.mask=i.mask)):e.type===Rm&&(void 0!==i.autoWidth&&(e.autoWidth=i.autoWidth),void 0!==i.autoHeight&&(e.autoHeight=i.autoHeight),void 0!==i.rtlReorder&&(e.rtlReorder=i.rtlReorder),void 0!==i.unicodeConverter&&(e.unicodeConverter=i.unicodeConverter),null!==i.text&&void 0!==i.text?e.text=i.text:null!==i.key&&void 0!==i.key&&(e.key=i.key),void 0!==i.color&&((s=i.color)instanceof ct||(s=new ct(s[0],s[1],s[2])),e.color=s),void 0!==i.opacity&&(e.opacity=i.opacity),void 0!==i.spacing&&(e.spacing=i.spacing),void 0!==i.fontSize&&(e.fontSize=i.fontSize,i.lineHeight||(e.lineHeight=i.fontSize)),void 0!==i.lineHeight&&(e.lineHeight=i.lineHeight),void 0!==i.maxLines&&(e.maxLines=i.maxLines),void 0!==i.wrapLines&&(e.wrapLines=i.wrapLines),void 0!==i.minFontSize&&(e.minFontSize=i.minFontSize),void 0!==i.maxFontSize&&(e.maxFontSize=i.maxFontSize),i.autoFitWidth&&(e.autoFitWidth=i.autoFitWidth),i.autoFitHeight&&(e.autoFitHeight=i.autoFitHeight),void 0!==i.fontAsset&&(e.fontAsset=i.fontAsset),void 0!==i.font&&(e.font=i.font),void 0!==i.alignment&&(e.alignment=i.alignment),void 0!==i.outlineColor&&(e.outlineColor=i.outlineColor),void 0!==i.outlineThickness&&(e.outlineThickness=i.outlineThickness),void 0!==i.shadowColor&&(e.shadowColor=i.shadowColor),void 0!==i.shadowOffset&&(e.shadowOffset=i.shadowOffset),void 0!==i.enableMarkup&&(e.enableMarkup=i.enableMarkup));var l=e._parseUpToScreen();l.screen&&e._updateScreen(l.screen),t.prototype.initializeComponentData.call(this,e,i,n),e._beingInitialized=!1,e.type===Pm&&e._image._meshDirty&&e._image._updateMesh(e._image.mesh)},i.onRemoveComponent=function(t,e){e.onRemove()},i.cloneComponent=function(t,e){var i=t.element,n={enabled:i.enabled,width:i.width,height:i.height,anchor:i.anchor.clone(),pivot:i.pivot.clone(),margin:i.margin.clone(),alignment:i.alignment&&i.alignment.clone()||i.alignment,autoWidth:i.autoWidth,autoHeight:i.autoHeight,type:i.type,rect:i.rect&&i.rect.clone()||i.rect,rtlReorder:i.rtlReorder,unicodeConverter:i.unicodeConverter,materialAsset:i.materialAsset,material:i.material,color:i.color&&i.color.clone()||i.color,opacity:i.opacity,textureAsset:i.textureAsset,texture:i.texture,spriteAsset:i.spriteAsset,sprite:i.sprite,spriteFrame:i.spriteFrame,pixelsPerUnit:i.pixelsPerUnit,spacing:i.spacing,lineHeight:i.lineHeight,wrapLines:i.wrapLines,layers:i.layers,fontSize:i.fontSize,minFontSize:i.minFontSize,maxFontSize:i.maxFontSize,autoFitWidth:i.autoFitWidth,autoFitHeight:i.autoFitHeight,maxLines:i.maxLines,fontAsset:i.fontAsset,font:i.font,useInput:i.useInput,fitMode:i.fitMode,batchGroupId:i.batchGroupId,mask:i.mask,outlineColor:i.outlineColor&&i.outlineColor.clone()||i.outlineColor,outlineThickness:i.outlineThickness,shadowColor:i.shadowColor&&i.shadowColor.clone()||i.shadowColor,shadowOffset:i.shadowOffset&&i.shadowOffset.clone()||i.shadowOffset,enableMarkup:i.enableMarkup};return void 0!==i.key&&null!==i.key?n.key=i.key:n.text=i.text,this.addComponent(e,n)},i.getTextElementMaterial=function(t,e){return t?e?(this.defaultScreenSpaceTextMaterial||(this.defaultScreenSpaceTextMaterial=new ls,this.defaultScreenSpaceTextMaterial.name="defaultScreenSpaceTextMaterial",this.defaultScreenSpaceTextMaterial.msdfMap=this._defaultTexture,this.defaultScreenSpaceTextMaterial.useLighting=!1,this.defaultScreenSpaceTextMaterial.useGammaTonemap=!1,this.defaultScreenSpaceTextMaterial.useFog=!1,this.defaultScreenSpaceTextMaterial.useSkybox=!1,this.defaultScreenSpaceTextMaterial.diffuse.set(0,0,0),this.defaultScreenSpaceTextMaterial.emissive.set(1,1,1),this.defaultScreenSpaceTextMaterial.opacity=.5,this.defaultScreenSpaceTextMaterial.blendType=4,this.defaultScreenSpaceTextMaterial.depthWrite=!1,this.defaultScreenSpaceTextMaterial.depthTest=!1,this.defaultScreenSpaceTextMaterial.emissiveVertexColor=!0,this.defaultScreenSpaceTextMaterial.update()),this.defaultScreenSpaceTextMaterial):(this.defaultScreenSpaceBitmapTextMaterial||(this.defaultScreenSpaceBitmapTextMaterial=new ls,this.defaultScreenSpaceBitmapTextMaterial.name="defaultScreenSpaceBitmapTextMaterial",this.defaultScreenSpaceBitmapTextMaterial.emissive.set(.5,.5,.5),this.defaultScreenSpaceBitmapTextMaterial.emissiveMap=this._defaultTexture,this.defaultScreenSpaceBitmapTextMaterial.emissiveTint=!0,this.defaultScreenSpaceBitmapTextMaterial.opacity=.5,this.defaultScreenSpaceBitmapTextMaterial.opacityMap=this._defaultTexture,this.defaultScreenSpaceBitmapTextMaterial.opacityMapChannel="a",this.defaultScreenSpaceBitmapTextMaterial.useLighting=!1,this.defaultScreenSpaceBitmapTextMaterial.useGammaTonemap=!1,this.defaultScreenSpaceBitmapTextMaterial.useFog=!1,this.defaultScreenSpaceBitmapTextMaterial.useSkybox=!1,this.defaultScreenSpaceBitmapTextMaterial.diffuse.set(0,0,0),this.defaultScreenSpaceBitmapTextMaterial.blendType=4,this.defaultScreenSpaceBitmapTextMaterial.depthWrite=!1,this.defaultScreenSpaceBitmapTextMaterial.depthTest=!1,this.defaultScreenSpaceBitmapTextMaterial.emissiveVertexColor=!0,this.defaultScreenSpaceBitmapTextMaterial.update()),this.defaultScreenSpaceBitmapTextMaterial):e?(this.defaultTextMaterial||(this.defaultTextMaterial=new ls,this.defaultTextMaterial.name="defaultTextMaterial",this.defaultTextMaterial.msdfMap=this._defaultTexture,this.defaultTextMaterial.useLighting=!1,this.defaultTextMaterial.useGammaTonemap=!1,this.defaultTextMaterial.useFog=!1,this.defaultTextMaterial.useSkybox=!1,this.defaultTextMaterial.diffuse.set(0,0,0),this.defaultTextMaterial.emissive.set(1,1,1),this.defaultTextMaterial.opacity=.5,this.defaultTextMaterial.blendType=4,this.defaultTextMaterial.depthWrite=!1,this.defaultTextMaterial.emissiveVertexColor=!0,this.defaultTextMaterial.update()),this.defaultTextMaterial):(this.defaultBitmapTextMaterial||(this.defaultBitmapTextMaterial=new ls,this.defaultBitmapTextMaterial.name="defaultBitmapTextMaterial",this.defaultBitmapTextMaterial.emissive.set(.5,.5,.5),this.defaultBitmapTextMaterial.emissiveTint=!0,this.defaultBitmapTextMaterial.emissiveMap=this._defaultTexture,this.defaultBitmapTextMaterial.opacity=.5,this.defaultBitmapTextMaterial.opacityMap=this._defaultTexture,this.defaultBitmapTextMaterial.opacityMapChannel="a",this.defaultBitmapTextMaterial.useLighting=!1,this.defaultBitmapTextMaterial.useGammaTonemap=!1,this.defaultBitmapTextMaterial.useFog=!1,this.defaultBitmapTextMaterial.useSkybox=!1,this.defaultBitmapTextMaterial.diffuse.set(0,0,0),this.defaultBitmapTextMaterial.blendType=4,this.defaultBitmapTextMaterial.depthWrite=!1,this.defaultBitmapTextMaterial.emissiveVertexColor=!0,this.defaultBitmapTextMaterial.update()),this.defaultBitmapTextMaterial)},i._createBaseImageMaterial=function(){var t=new ls;return t.diffuse.set(0,0,0),t.emissive.set(.5,.5,.5),t.emissiveMap=this._defaultTexture,t.emissiveTint=!0,t.opacityMap=this._defaultTexture,t.opacityMapChannel="a",t.opacityTint=!0,t.opacity=0,t.useLighting=!1,t.useGammaTonemap=!1,t.useFog=!1,t.useSkybox=!1,t.blendType=4,t.depthWrite=!1,t},i.getImageElementMaterial=function(t,e,i,n){return t?e?i?(this.defaultScreenSpaceImageMask9SlicedMaterial||(this.defaultScreenSpaceImageMask9SlicedMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImageMask9SlicedMaterial.name="defaultScreenSpaceImageMask9SlicedMaterial",this.defaultScreenSpaceImageMask9SlicedMaterial.nineSlicedMode=1,this.defaultScreenSpaceImageMask9SlicedMaterial.depthTest=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.alphaTest=1,this.defaultScreenSpaceImageMask9SlicedMaterial.redWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.greenWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.blueWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.alphaWrite=!1,this.defaultScreenSpaceImageMask9SlicedMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMask9SlicedMaterial)),this.defaultScreenSpaceImageMask9SlicedMaterial):n?(this.defaultScreenSpaceImageMask9TiledMaterial||(this.defaultScreenSpaceImageMask9TiledMaterial=this.defaultScreenSpaceImage9TiledMaterial.clone(),this.defaultScreenSpaceImageMask9TiledMaterial.name="defaultScreenSpaceImageMask9TiledMaterial",this.defaultScreenSpaceImageMask9TiledMaterial.nineSlicedMode=2,this.defaultScreenSpaceImageMask9TiledMaterial.depthTest=!1,this.defaultScreenSpaceImageMask9TiledMaterial.alphaTest=1,this.defaultScreenSpaceImageMask9TiledMaterial.redWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.greenWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.blueWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.alphaWrite=!1,this.defaultScreenSpaceImageMask9TiledMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMask9TiledMaterial)),this.defaultScreenSpaceImageMask9TiledMaterial):(this.defaultScreenSpaceImageMaskMaterial||(this.defaultScreenSpaceImageMaskMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImageMaskMaterial.name="defaultScreenSpaceImageMaskMaterial",this.defaultScreenSpaceImageMaskMaterial.depthTest=!1,this.defaultScreenSpaceImageMaskMaterial.alphaTest=1,this.defaultScreenSpaceImageMaskMaterial.redWrite=!1,this.defaultScreenSpaceImageMaskMaterial.greenWrite=!1,this.defaultScreenSpaceImageMaskMaterial.blueWrite=!1,this.defaultScreenSpaceImageMaskMaterial.alphaWrite=!1,this.defaultScreenSpaceImageMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMaskMaterial)),this.defaultScreenSpaceImageMaskMaterial):i?(this.defaultScreenSpaceImage9SlicedMaterial||(this.defaultScreenSpaceImage9SlicedMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImage9SlicedMaterial.name="defaultScreenSpaceImage9SlicedMaterial",this.defaultScreenSpaceImage9SlicedMaterial.nineSlicedMode=1,this.defaultScreenSpaceImage9SlicedMaterial.depthTest=!1,this.defaultScreenSpaceImage9SlicedMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImage9SlicedMaterial)),this.defaultScreenSpaceImage9SlicedMaterial):n?(this.defaultScreenSpaceImage9TiledMaterial||(this.defaultScreenSpaceImage9TiledMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImage9TiledMaterial.name="defaultScreenSpaceImage9TiledMaterial",this.defaultScreenSpaceImage9TiledMaterial.nineSlicedMode=2,this.defaultScreenSpaceImage9TiledMaterial.depthTest=!1,this.defaultScreenSpaceImage9TiledMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImage9TiledMaterial)),this.defaultScreenSpaceImage9TiledMaterial):(this.defaultScreenSpaceImageMaterial||(this.defaultScreenSpaceImageMaterial=this._createBaseImageMaterial(),this.defaultScreenSpaceImageMaterial.name="defaultScreenSpaceImageMaterial",this.defaultScreenSpaceImageMaterial.depthTest=!1,this.defaultScreenSpaceImageMaterial.update(),this.defaultImageMaterials.push(this.defaultScreenSpaceImageMaterial)),this.defaultScreenSpaceImageMaterial):e?i?(this.defaultImage9SlicedMaskMaterial||(this.defaultImage9SlicedMaskMaterial=this._createBaseImageMaterial(),this.defaultImage9SlicedMaskMaterial.name="defaultImage9SlicedMaskMaterial",this.defaultImage9SlicedMaskMaterial.nineSlicedMode=1,this.defaultImage9SlicedMaskMaterial.alphaTest=1,this.defaultImage9SlicedMaskMaterial.redWrite=!1,this.defaultImage9SlicedMaskMaterial.greenWrite=!1,this.defaultImage9SlicedMaskMaterial.blueWrite=!1,this.defaultImage9SlicedMaskMaterial.alphaWrite=!1,this.defaultImage9SlicedMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9SlicedMaskMaterial)),this.defaultImage9SlicedMaskMaterial):n?(this.defaultImage9TiledMaskMaterial||(this.defaultImage9TiledMaskMaterial=this._createBaseImageMaterial(),this.defaultImage9TiledMaskMaterial.name="defaultImage9TiledMaskMaterial",this.defaultImage9TiledMaskMaterial.nineSlicedMode=2,this.defaultImage9TiledMaskMaterial.alphaTest=1,this.defaultImage9TiledMaskMaterial.redWrite=!1,this.defaultImage9TiledMaskMaterial.greenWrite=!1,this.defaultImage9TiledMaskMaterial.blueWrite=!1,this.defaultImage9TiledMaskMaterial.alphaWrite=!1,this.defaultImage9TiledMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9TiledMaskMaterial)),this.defaultImage9TiledMaskMaterial):(this.defaultImageMaskMaterial||(this.defaultImageMaskMaterial=this._createBaseImageMaterial(),this.defaultImageMaskMaterial.name="defaultImageMaskMaterial",this.defaultImageMaskMaterial.alphaTest=1,this.defaultImageMaskMaterial.redWrite=!1,this.defaultImageMaskMaterial.greenWrite=!1,this.defaultImageMaskMaterial.blueWrite=!1,this.defaultImageMaskMaterial.alphaWrite=!1,this.defaultImageMaskMaterial.update(),this.defaultImageMaterials.push(this.defaultImageMaskMaterial)),this.defaultImageMaskMaterial):i?(this.defaultImage9SlicedMaterial||(this.defaultImage9SlicedMaterial=this._createBaseImageMaterial(),this.defaultImage9SlicedMaterial.name="defaultImage9SlicedMaterial",this.defaultImage9SlicedMaterial.nineSlicedMode=1,this.defaultImage9SlicedMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9SlicedMaterial)),this.defaultImage9SlicedMaterial):n?(this.defaultImage9TiledMaterial||(this.defaultImage9TiledMaterial=this._createBaseImageMaterial(),this.defaultImage9TiledMaterial.name="defaultImage9TiledMaterial",this.defaultImage9TiledMaterial.nineSlicedMode=2,this.defaultImage9TiledMaterial.update(),this.defaultImageMaterials.push(this.defaultImage9TiledMaterial)),this.defaultImage9TiledMaterial):(this.defaultImageMaterial||(this.defaultImageMaterial=this._createBaseImageMaterial(),this.defaultImageMaterial.name="defaultImageMaterial",this.defaultImageMaterial.update(),this.defaultImageMaterials.push(this.defaultImageMaterial)),this.defaultImageMaterial)},i.registerUnicodeConverter=function(t){this._unicodeConverter=t},i.registerRtlReorder=function(t){this._rtlReorder=t},i.getUnicodeConverter=function(){return this._unicodeConverter},i.getRtlReorder=function(){return this._rtlReorder},e}(im);Nh._buildAccessors(H_.prototype,Y_);var K_="free",Z_="limited",$_="locked",Q_=["angularDampingX","angularDampingY","angularDampingZ","angularEquilibriumX","angularEquilibriumY","angularEquilibriumZ","angularLimitsX","angularLimitsY","angularLimitsZ","angularMotionX","angularMotionY","angularMotionZ","angularSpringX","angularSpringY","angularSpringZ","angularStiffnessX","angularStiffnessY","angularStiffnessZ","breakForce","enableCollision","enabled","entityA","entityB","linearDampingX","linearDampingY","linearDampingZ","linearEquilibriumX","linearEquilibriumY","linearEquilibriumZ","linearLimitsX","linearLimitsY","linearLimitsZ","linearMotionX","linearMotionY","linearMotionZ","linearSpringX","linearSpringY","linearSpringZ","linearStiffnessX","linearStiffnessY","linearStiffnessZ"],J_=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._constraint=null,n._entityA=null,n._entityB=null,n._breakForce=34e37,n._enableCollision=!0,n._linearMotionX=$_,n._linearLimitsX=new _t(0,0),n._linearSpringX=!1,n._linearStiffnessX=0,n._linearDampingX=1,n._linearEquilibriumX=0,n._linearMotionY=$_,n._linearLimitsY=new _t(0,0),n._linearSpringY=!1,n._linearStiffnessY=0,n._linearDampingY=1,n._linearEquilibriumY=0,n._linearMotionZ=$_,n._linearLimitsZ=new _t(0,0),n._linearSpringZ=!1,n._linearStiffnessZ=0,n._linearDampingZ=1,n._linearEquilibriumZ=0,n._angularMotionX=$_,n._angularLimitsX=new _t(0,0),n._angularSpringX=!1,n._angularStiffnessX=0,n._angularDampingX=1,n._angularEquilibriumX=0,n._angularMotionY=$_,n._angularLimitsY=new _t(0,0),n._angularSpringY=!1,n._angularStiffnessY=0,n._angularDampingY=1,n._angularEquilibriumY=0,n._angularMotionZ=$_,n._angularLimitsZ=new _t(0,0),n._angularSpringZ=!1,n._angularEquilibriumZ=0,n._angularDampingZ=1,n._angularStiffnessZ=0,n.on("set_enabled",n._onSetEnabled,Z(n)),n}j(e,t);var i=e.prototype;return i._convertTransform=function(t,e){var i=t.getTranslation(),n=new Tt;n.setFromMat4(t);var s=new Ammo.btVector3(i.x,i.y,i.z),a=new Ammo.btQuaternion(n.x,n.y,n.z,n.w);e.setOrigin(s),e.setRotation(a),Ammo.destroy(s),Ammo.destroy(a)},i._updateAngularLimits=function(){var t=this._constraint;if(t){var e,i,n,s,a,r;this._angularMotionX===Z_?(e=this._angularLimitsX.x*ot.DEG_TO_RAD,s=this._angularLimitsX.y*ot.DEG_TO_RAD):this._angularMotionX===K_?(e=1,s=0):e=s=0,this._angularMotionY===Z_?(i=this._angularLimitsY.x*ot.DEG_TO_RAD,a=this._angularLimitsY.y*ot.DEG_TO_RAD):this._angularMotionY===K_?(i=1,a=0):i=a=0,this._angularMotionZ===Z_?(n=this._angularLimitsZ.x*ot.DEG_TO_RAD,r=this._angularLimitsZ.y*ot.DEG_TO_RAD):this._angularMotionZ===K_?(n=1,r=0):n=r=0;var o=new Ammo.btVector3(e,i,n);t.setAngularLowerLimit(o),o.setValue(s,a,r),t.setAngularUpperLimit(o),Ammo.destroy(o)}},i._updateLinearLimits=function(){var t=this._constraint;if(t){var e,i,n,s,a,r;this._linearMotionX===Z_?(e=this._linearLimitsX.x,s=this._linearLimitsX.y):this._linearMotionX===K_?(e=1,s=0):e=s=0,this._linearMotionY===Z_?(i=this._linearLimitsY.x,a=this._linearLimitsY.y):this._linearMotionY===K_?(i=1,a=0):i=a=0,this._linearMotionZ===Z_?(n=this._linearLimitsZ.x,r=this._linearLimitsZ.y):this._linearMotionZ===K_?(n=1,r=0):n=r=0;var o=new Ammo.btVector3(e,i,n);t.setLinearLowerLimit(o),o.setValue(s,a,r),t.setLinearUpperLimit(o),Ammo.destroy(o)}},i._createConstraint=function(){if(this._entityA&&this._entityA.rigidbody){this._destroyConstraint();var t=new wt,e=this._entityA.rigidbody.body;e.activate();var i=this.entity.getWorldTransform(),n=this._entityA.getWorldTransform().clone().invert();t.mul2(n,i);var s=new Ammo.btTransform;if(this._convertTransform(t,s),this._entityB&&this._entityB.rigidbody){var a=this._entityB.rigidbody.body;a.activate();var r=this._entityB.getWorldTransform().clone().invert();t.mul2(r,i);var o=new Ammo.btTransform;this._convertTransform(t,o),this._constraint=new Ammo.btGeneric6DofSpringConstraint(e,a,s,o,!this._enableCollision),Ammo.destroy(o)}else this._constraint=new Ammo.btGeneric6DofSpringConstraint(e,s,!this._enableCollision);Ammo.destroy(s);for(var h=["X","Y","Z","X","Y","Z"],l=0;l<6;l++){var c=l<3?"_linear":"_angular";this._constraint.enableSpring(l,this[c+"Spring"+h[l]]),this._constraint.setDamping(l,this[c+"Damping"+h[l]]),this._constraint.setEquilibriumPoint(l,this[c+"Equilibrium"+h[l]]),this._constraint.setStiffness(l,this[c+"Stiffness"+h[l]])}this._constraint.setBreakingImpulseThreshold(this._breakForce),this._updateLinearLimits(),this._updateAngularLimits(),this.system.app.systems.rigidbody.dynamicsWorld.addConstraint(this._constraint,!this._enableCollision)}},i._destroyConstraint=function(){this._constraint&&(this.system.app.systems.rigidbody.dynamicsWorld.removeConstraint(this._constraint),Ammo.destroy(this._constraint),this._constraint=null)},i.initFromData=function(t){for(var e,i=Q(Q_);!(e=i()).done;){var n=e.value;t.hasOwnProperty(n)&&(t[n]instanceof _t?this["_"+n].copy(t[n]):this["_"+n]=t[n])}this._createConstraint()},i.onEnable=function(){this._createConstraint()},i.onDisable=function(){this._destroyConstraint()},i._onSetEnabled=function(t,e,i){},i._onBeforeRemove=function(){this.fire("remove")},q(e,[{key:"entityA",get:function(){return this._entityA},set:function(t){this._destroyConstraint(),this._entityA=t,this._createConstraint()}},{key:"entityB",get:function(){return this._entityB},set:function(t){this._destroyConstraint(),this._entityB=t,this._createConstraint()}},{key:"breakForce",get:function(){return this._breakForce},set:function(t){this._constraint&&this._breakForce!==t&&(this._constraint.setBreakingImpulseThreshold(t),this._breakForce=t)}},{key:"enableCollision",get:function(){return this._enableCollision},set:function(t){this._destroyConstraint(),this._enableCollision=t,this._createConstraint()}},{key:"angularLimitsX",get:function(){return this._angularLimitsX},set:function(t){this._angularLimitsX.equals(t)||(this._angularLimitsX.copy(t),this._updateAngularLimits())}},{key:"angularMotionX",get:function(){return this._angularMotionX},set:function(t){this._angularMotionX!==t&&(this._angularMotionX=t,this._updateAngularLimits())}},{key:"angularLimitsY",get:function(){return this._angularLimitsY},set:function(t){this._angularLimitsY.equals(t)||(this._angularLimitsY.copy(t),this._updateAngularLimits())}},{key:"angularMotionY",get:function(){return this._angularMotionY},set:function(t){this._angularMotionY!==t&&(this._angularMotionY=t,this._updateAngularLimits())}},{key:"angularLimitsZ",get:function(){return this._angularLimitsZ},set:function(t){this._angularLimitsZ.equals(t)||(this._angularLimitsZ.copy(t),this._updateAngularLimits())}},{key:"angularMotionZ",get:function(){return this._angularMotionZ},set:function(t){this._angularMotionZ!==t&&(this._angularMotionZ=t,this._updateAngularLimits())}},{key:"linearLimitsX",get:function(){return this._linearLimitsX},set:function(t){this._linearLimitsX.equals(t)||(this._linearLimitsX.copy(t),this._updateLinearLimits())}},{key:"linearMotionX",get:function(){return this._linearMotionX},set:function(t){this._linearMotionX!==t&&(this._linearMotionX=t,this._updateLinearLimits())}},{key:"linearLimitsY",get:function(){return this._linearLimitsY},set:function(t){this._linearLimitsY.equals(t)||(this._linearLimitsY.copy(t),this._updateLinearLimits())}},{key:"linearMotionY",get:function(){return this._linearMotionY},set:function(t){this._linearMotionY!==t&&(this._linearMotionY=t,this._updateLinearLimits())}},{key:"linearLimitsZ",get:function(){return this._linearLimitsZ},set:function(t){this._linearLimitsZ.equals(t)||(this._linearLimitsZ.copy(t),this._updateLinearLimits())}},{key:"linearMotionZ",get:function(){return this._linearMotionZ},set:function(t){this._linearMotionZ!==t&&(this._linearMotionZ=t,this._updateLinearLimits())}}]),e}(Nh),tg={Damping:"setDamping",Equilibrium:"setEquilibriumPoint",Spring:"enableSpring",Stiffness:"setStiffness"};["linear","angular"].forEach((function(t){["Damping","Equilibrium","Spring","Stiffness"].forEach((function(e){["X","Y","Z"].forEach((function(i){var n=t+e+i,s="_"+n,a="linear"===t?0:3;"Y"===i&&(a+=1),"Z"===i&&(a+=2),Object.defineProperty(J_.prototype,n,{get:function(){return this[s]},set:function(t){this[s]!==t&&(this[s]=t,this._constraint[tg[e]](a,t))}})}))}))}));var eg=function(){this.enabled=!0},ig=["enabled"],ng=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="joint",i.app=e,i.ComponentType=J_,i.DataType=eg,i.schema=ig,i}return j(e,t),e.prototype.initializeComponentData=function(t,e,i){t.initFromData(e)},e}(im);Nh._buildAccessors(J_.prototype,ig);var sg=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._minWidth=0,n._minHeight=0,n._maxWidth=null,n._maxHeight=null,n._fitWidthProportion=0,n._fitHeightProportion=0,n._excludeFromLayout=!1,n}return j(e,t),q(e,[{key:"minWidth",get:function(){return this._minWidth},set:function(t){t!==this._minWidth&&(this._minWidth=t,this.fire("resize"))}},{key:"minHeight",get:function(){return this._minHeight},set:function(t){t!==this._minHeight&&(this._minHeight=t,this.fire("resize"))}},{key:"maxWidth",get:function(){return this._maxWidth},set:function(t){t!==this._maxWidth&&(this._maxWidth=t,this.fire("resize"))}},{key:"maxHeight",get:function(){return this._maxHeight},set:function(t){t!==this._maxHeight&&(this._maxHeight=t,this.fire("resize"))}},{key:"fitWidthProportion",get:function(){return this._fitWidthProportion},set:function(t){t!==this._fitWidthProportion&&(this._fitWidthProportion=t,this.fire("resize"))}},{key:"fitHeightProportion",get:function(){return this._fitHeightProportion},set:function(t){t!==this._fitHeightProportion&&(this._fitHeightProportion=t,this.fire("resize"))}},{key:"excludeFromLayout",get:function(){return this._excludeFromLayout},set:function(t){t!==this._excludeFromLayout&&(this._excludeFromLayout=t,this.fire("resize"))}}]),e}(Nh),ag=function(){this.enabled=!0},rg=["enabled"],og=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="layoutchild",i.ComponentType=sg,i.DataType=ag,i.schema=rg,i}j(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){void 0!==i.enabled&&(e.enabled=i.enabled),void 0!==i.minWidth&&(e.minWidth=i.minWidth),void 0!==i.minHeight&&(e.minHeight=i.minHeight),void 0!==i.maxWidth&&(e.maxWidth=i.maxWidth),void 0!==i.maxHeight&&(e.maxHeight=i.maxHeight),void 0!==i.fitWidthProportion&&(e.fitWidthProportion=i.fitWidthProportion),void 0!==i.fitHeightProportion&&(e.fitHeightProportion=i.fitHeightProportion),void 0!==i.excludeFromLayout&&(e.excludeFromLayout=i.excludeFromLayout),t.prototype.initializeComponentData.call(this,e,i,n)},i.cloneComponent=function(t,e){var i=t.layoutchild;return this.addComponent(e,{enabled:i.enabled,minWidth:i.minWidth,minHeight:i.minHeight,maxWidth:i.maxWidth,maxHeight:i.maxHeight,fitWidthProportion:i.fitWidthProportion,fitHeightProportion:i.fitHeightProportion,excludeFromLayout:i.excludeFromLayout})},e}(im);Nh._buildAccessors(sg.prototype,rg);var hg={0:{axis:"x",size:"width",calculatedSize:"calculatedWidth",minSize:"minWidth",maxSize:"maxWidth",fitting:"widthFitting",fittingProportion:"fitWidthProportion"},1:{axis:"y",size:"height",calculatedSize:"calculatedHeight",minSize:"minHeight",maxSize:"maxHeight",fitting:"heightFitting",fittingProportion:"fitHeightProportion"}},lg={0:1,1:0},cg={minWidth:0,minHeight:0,maxWidth:Number.POSITIVE_INFINITY,maxHeight:Number.POSITIVE_INFINITY,width:null,height:null,fitWidthProportion:0,fitHeightProportion:0},ug="NONE",dg="APPLY_STRETCHING",fg="APPLY_SHRINKING",pg=new _t;function mg(t){var e,i=hg[t],n=hg[lg[t]];function s(t,e){return-e[i.size]*t.pivot[i.axis]}function a(t,e){return-e[n.size]*t.pivot[n.axis]}function r(t,e){return e[i.size]*(1-t.pivot[i.axis])}function o(t){var e=t.entity.layoutchild;return!e||!e.enabled||!e.excludeFromLayout}function h(t,e,i){switch(t){case 0:return ug;case 1:return e=i?fg:ug;case 3:return e=0;--n)i[e[n]]=i[e[n+1]]+t[e[n]];return i}return function(t,d){t=t.filter(o),e=d,pg.x=e.containerSize.x-e.padding.x-e.padding.z,pg.y=e.containerSize.y-e.padding.y-e.padding.w,function(t){for(var e=0;e0&&(a+=e.spacing[i.axis]);var h=s[o][i.size];a+=h,!r&&a>pg[i.axis]&&0!==n[n.length-1].length&&(a=h,n.push([])),n[n.length-1].push(t[o]),r&&a>pg[i.axis]&&o!==t.length-1&&(a=0,n.push([]))}return n}(t)),m=function(t,i){for(var s=[],a=[],r=0;ro.largestSize[n.size]&&(o.largestElement=o[d],o.largestSize=f)}s.push(o.largestElement),a.push(o.largestSize)}var p=l(a,n),m=h(e[n.fitting],p,pg[n.axis]);m===dg?c(a,p,n):m===fg&&u(a,p,n);for(var _=0;_0;){var e=this._reflowQueue.slice();this._reflowQueue.length=0,e.sort((function(t,e){return t.entity.graphDepth-e.entity.graphDepth}));for(var i=0;i=100){console.warn("Max reflow iterations limit reached, bailing.");break}}},i._onRemoveComponent=function(t,e){e.onRemove()},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("postUpdate",this._onPostUpdate,this)},e}(im);Nh._buildAccessors(xg.prototype,Sg);var Tg=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._type="asset",n._asset=null,n._model=null,n._mapping={},n._castShadows=!0,n._receiveShadows=!0,n._materialAsset=null,n._material=void 0,n._castShadowsLightmap=!0,n._lightmapped=!1,n._lightmapSizeMultiplier=1,n._isStatic=!1,n._layers=[0],n._batchGroupId=-1,n._customAabb=null,n._area=null,n._materialEvents=null,n._clonedModel=!1,n._material=e.defaultMaterial,i.on("remove",n.onRemoveChild,Z(n)),i.on("removehierarchy",n.onRemoveChild,Z(n)),i.on("insert",n.onInsertChild,Z(n)),i.on("inserthierarchy",n.onInsertChild,Z(n)),n}j(e,t);var i=e.prototype;return i.addModelToLayers=function(){for(var t=this.system.app.scene.layers,e=0;e=0&&(null==(n=t.batcher)||n.insert(Oa.MODEL,this.batchGroupId,this.entity))},i.onDisable=function(){var t,e=this.system.app,i=e.scene;(i.off("set:layers",this.onLayersChanged,this),i.layers&&(i.layers.off("add",this.onLayerAdded,this),i.layers.off("remove",this.onLayerRemoved,this)),this._batchGroupId>=0)&&(null==(t=e.batcher)||t.remove(Oa.MODEL,this.batchGroupId,this.entity));this._model&&this.removeModelFromLayers()},i.hide=function(){if(this._model)for(var t=this._model.meshInstances,e=0,i=t.length;e=0)null==(e=this.system.app.batcher)||e.remove(Oa.MODEL,this.batchGroupId,this.entity);if(this.entity.enabled&&t>=0)null==(i=this.system.app.batcher)||i.insert(Oa.MODEL,t,this.entity);t<0&&this._batchGroupId>=0&&this.enabled&&this.entity.enabled&&this.addModelToLayers(),this._batchGroupId=t}}},{key:"materialAsset",get:function(){return this._materialAsset},set:function(t){var e=t;t instanceof Mh&&(e=t.id);var i=this.system.app.assets;if(e!==this._materialAsset){if(this._materialAsset){i.off("add:"+this._materialAsset,this._onMaterialAssetAdd,this);var n=i.get(this._materialAsset);n&&this._unbindMaterialAsset(n)}if(this._materialAsset=e,this._materialAsset){var s=i.get(this._materialAsset);s?this._bindMaterialAsset(s):(this._setMaterial(this.system.defaultMaterial),i.on("add:"+this._materialAsset,this._onMaterialAssetAdd,this))}else this._setMaterial(this.system.defaultMaterial)}}},{key:"material",get:function(){return this._material},set:function(t){this._material!==t&&(this.materialAsset=null,this._setMaterial(t))}},{key:"mapping",get:function(){return this._mapping},set:function(t){if("asset"===this._type&&(this._unsetMaterialEvents(),t||(t={}),this._mapping=t,this._model))for(var e=this._model.meshInstances,i=this.asset?this.system.app.assets.get(this.asset):null,n=i?i.data.mapping:null,s=null,a=0,r=e.length;a=0))continue;n=this.system.app.assets.get(n)}n&&!n.resource&&this.system.app.assets.load(n)}}if(!this.emitter){var s=t.mesh;s instanceof ga||(s=null),this.emitter=new hc(this.system.app.graphicsDevice,{numParticles:t.numParticles,emitterExtents:t.emitterExtents,emitterExtentsInner:t.emitterExtentsInner,emitterRadius:t.emitterRadius,emitterRadiusInner:t.emitterRadiusInner,emitterShape:t.emitterShape,initialVelocity:t.initialVelocity,wrap:t.wrap,localSpace:t.localSpace,screenSpace:t.screenSpace,wrapBounds:t.wrapBounds,lifetime:t.lifetime,rate:t.rate,rate2:t.rate2,orientation:t.orientation,particleNormal:t.particleNormal,animTilesX:t.animTilesX,animTilesY:t.animTilesY,animStartFrame:t.animStartFrame,animNumFrames:t.animNumFrames,animNumAnimations:t.animNumAnimations,animIndex:t.animIndex,randomizeAnimIndex:t.randomizeAnimIndex,animSpeed:t.animSpeed,animLoop:t.animLoop,startAngle:t.startAngle,startAngle2:t.startAngle2,scaleGraph:t.scaleGraph,scaleGraph2:t.scaleGraph2,colorGraph:t.colorGraph,colorGraph2:t.colorGraph2,alphaGraph:t.alphaGraph,alphaGraph2:t.alphaGraph2,localVelocityGraph:t.localVelocityGraph,localVelocityGraph2:t.localVelocityGraph2,velocityGraph:t.velocityGraph,velocityGraph2:t.velocityGraph2,rotationSpeedGraph:t.rotationSpeedGraph,rotationSpeedGraph2:t.rotationSpeedGraph2,radialSpeedGraph:t.radialSpeedGraph,radialSpeedGraph2:t.radialSpeedGraph2,colorMap:t.colorMap,normalMap:t.normalMap,loop:t.loop,preWarm:t.preWarm,sort:t.sort,stretch:t.stretch,alignToMotion:t.alignToMotion,lighting:t.lighting,halfLambert:t.halfLambert,intensity:t.intensity,depthSoftening:t.depthSoftening,scene:this.system.app.scene,mesh:s,depthWrite:t.depthWrite,noFog:t.noFog,node:this.entity,blendType:t.blendType}),this.emitter.meshInstance.node=this.entity,this.emitter.drawOrder=this.drawOrder,t.autoPlay||(this.pause(),this.emitter.meshInstance.visible=!1)}this.emitter.colorMap&&this.addMeshInstanceToLayers(),this.system.app.scene.on("set:layers",this.onLayersChanged,this),this.system.app.scene.layers&&(this.system.app.scene.layers.on("add",this.onLayerAdded,this),this.system.app.scene.layers.on("remove",this.onLayerRemoved,this)),this.enabled&&this.entity.enabled&&t.depthSoftening&&this._requestDepth()},i.onDisable=function(){this.system.app.scene.off("set:layers",this.onLayersChanged,this),this.system.app.scene.layers&&(this.system.app.scene.layers.off("add",this.onLayerAdded,this),this.system.app.scene.layers.off("remove",this.onLayerRemoved,this)),this.emitter&&(this.removeMeshInstanceFromLayers(),this.data.depthSoftening&&this._releaseDepth(),this.emitter.camera=null)},i.onBeforeRemove=function(){this.enabled&&(this.enabled=!1),this.emitter&&(this.emitter.destroy(),this.emitter=null);for(var t=0;th.fixedTimeStep&&(e=Math.floor(h.simTime/h.fixedTimeStep),h.simTime-=e*h.fixedTimeStep),e){e=Math.min(e,h.maxSubSteps);for(var v=0;v=0&&(null==(i=t.batcher)||i.insert(Oa.RENDER,this.batchGroupId,this.entity))},i.onDisable=function(){var t,e=this.system.app,i=e.scene;(i.off("set:layers",this.onLayersChanged,this),i.layers&&(i.layers.off("add",this.onLayerAdded,this),i.layers.off("remove",this.onLayerRemoved,this)),this._batchGroupId>=0)&&(null==(t=e.batcher)||t.remove(Oa.RENDER,this.batchGroupId,this.entity));this.removeFromLayers()},i.hide=function(){if(this._meshInstances)for(var t=0;t=0)null==(e=this.system.app.batcher)||e.remove(Oa.RENDER,this.batchGroupId,this.entity);if(this.entity.enabled&&t>=0)null==(i=this.system.app.batcher)||i.insert(Oa.RENDER,t,this.entity);t<0&&this._batchGroupId>=0&&this.enabled&&this.entity.enabled&&this.addToLayers(),this._batchGroupId=t}}},{key:"material",get:function(){return this._material},set:function(t){if(this._material!==t&&(this._material=t,this._meshInstances&&"asset"!==this._type))for(var e=0;et.length){for(var e=t.length;ethis._pool.length)for(var e=this._pool.length;e=this._pool.length&&this._resize(2*this._pool.length),this._pool[this._count++]},e.freeAll=function(){this._count=0},t}(),Zg=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._angularDamping=0,n._angularFactor=new pt(1,1,1),n._angularVelocity=new pt,n._body=null,n._friction=.5,n._group=2,n._linearDamping=0,n._linearFactor=new pt(1,1,1),n._linearVelocity=new pt,n._mask=e_,n._mass=1,n._restitution=0,n._rollingFriction=0,n._simulationEnabled=!1,n._type=$m,n}j(e,t),e.onLibraryLoaded=function(){"undefined"==typeof Ammo||Gg||(Gg=new Ammo.btTransform,Wg=new Ammo.btVector3,Hg=new Ammo.btVector3,Xg=new Ammo.btQuaternion,qg=new Ammo.btVector3(0,0,0))};var i=e.prototype;return i.createBody=function(){var t,e=this.entity;if(e.collision&&(t=e.collision.shape,e.trigger&&(e.trigger.destroy(),delete e.trigger)),t){this._body&&this.system.onRemove(e,this);var i=this._type===Qm?this._mass:0;this._getEntityTransform(Gg);var n=this.system.createBody(i,t,Gg);if(n.setRestitution(this._restitution),n.setFriction(this._friction),n.setRollingFriction(this._rollingFriction),n.setDamping(this._linearDamping,this._angularDamping),this._type===Qm){var s=this._linearFactor;Wg.setValue(s.x,s.y,s.z),n.setLinearFactor(Wg);var a=this._angularFactor;Wg.setValue(a.x,a.y,a.z),n.setAngularFactor(Wg)}else this._type===Jm&&(n.setCollisionFlags(2|n.getCollisionFlags()),n.setActivationState(4));n.entity=e,this.body=n,this.enabled&&e.enabled&&this.enableSimulation()}},i.isActive=function(){return!!this._body&&this._body.isActive()},i.activate=function(){this._body&&this._body.activate()},i.enableSimulation=function(){var t=this.entity;if(t.collision&&t.collision.enabled&&!this._simulationEnabled){var e=this._body;if(e){switch(this.system.addBody(e,this._group,this._mask),this._type){case Qm:this.system._dynamic.push(this),e.forceActivationState(1),this.syncEntityToBody();break;case Jm:this.system._kinematic.push(this),e.forceActivationState(4);break;case $m:e.forceActivationState(1),this.syncEntityToBody()}"compound"===t.collision.type&&this.system._compounds.push(t.collision),e.activate(),this._simulationEnabled=!0}}},i.disableSimulation=function(){var t=this._body;if(t&&this._simulationEnabled){var e=this.system,i=e._compounds.indexOf(this.entity.collision);i>-1&&e._compounds.splice(i,1),(i=e._dynamic.indexOf(this))>-1&&e._dynamic.splice(i,1),(i=e._kinematic.indexOf(this))>-1&&e._kinematic.splice(i,1),e.removeBody(t),t.forceActivationState(5),this._simulationEnabled=!1}},i.applyForce=function(){var t,e,i,n,s,a;switch(arguments.length){case 1:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z;break;case 2:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z,n=arguments[1].x,s=arguments[1].y,a=arguments[1].z;break;case 3:t=arguments[0],e=arguments[1],i=arguments[2];break;case 6:t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3],s=arguments[4],a=arguments[5]}var r=this._body;r&&(r.activate(),Wg.setValue(t,e,i),void 0!==n?(Hg.setValue(n,s,a),r.applyForce(Wg,Hg)):r.applyForce(Wg,qg))},i.applyTorque=function(){var t,e,i;switch(arguments.length){case 1:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z;break;case 3:t=arguments[0],e=arguments[1],i=arguments[2];break;default:return}var n=this._body;n&&(n.activate(),Wg.setValue(t,e,i),n.applyTorque(Wg))},i.applyImpulse=function(){var t,e,i,n,s,a;switch(arguments.length){case 1:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z;break;case 2:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z,n=arguments[1].x,s=arguments[1].y,a=arguments[1].z;break;case 3:t=arguments[0],e=arguments[1],i=arguments[2];break;case 6:t=arguments[0],e=arguments[1],i=arguments[2],n=arguments[3],s=arguments[4],a=arguments[5];break;default:return}var r=this._body;r&&(r.activate(),Wg.setValue(t,e,i),void 0!==n?(Hg.setValue(n,s,a),r.applyImpulse(Wg,Hg)):r.applyImpulse(Wg,qg))},i.applyTorqueImpulse=function(){var t,e,i;switch(arguments.length){case 1:t=arguments[0].x,e=arguments[0].y,i=arguments[0].z;break;case 3:t=arguments[0],e=arguments[1],i=arguments[2];break;default:return}var n=this._body;n&&(n.activate(),Wg.setValue(t,e,i),n.applyTorqueImpulse(Wg))},i.isStatic=function(){return this._type===$m},i.isStaticOrKinematic=function(){return this._type===$m||this._type===Jm},i.isKinematic=function(){return this._type===Jm},i._getEntityTransform=function(t){var e=this.entity,i=e.getPosition(),n=e.getRotation();Wg.setValue(i.x,i.y,i.z),Xg.setValue(n.x,n.y,n.z,n.w),t.setOrigin(Wg),t.setRotation(Xg)},i.syncEntityToBody=function(){var t=this._body;if(t){if(this._getEntityTransform(Gg),t.setWorldTransform(Gg),this._type===Jm){var e=t.getMotionState();e&&e.setWorldTransform(Gg)}t.activate()}},i._updateDynamic=function(){var t=this._body;if(t.isActive()){var e=t.getMotionState();if(e){e.getWorldTransform(Gg);var i=Gg.getOrigin(),n=Gg.getRotation();this.entity.setPosition(i.x(),i.y(),i.z()),this.entity.setRotation(n.x(),n.y(),n.z(),n.w())}}},i._updateKinematic=function(){var t=this._body.getMotionState();t&&(this._getEntityTransform(Gg),t.setWorldTransform(Gg))},i.teleport=function(){arguments.length<3?(arguments[0]&&this.entity.setPosition(arguments[0]),arguments[1]&&(arguments[1]instanceof Tt?this.entity.setRotation(arguments[1]):this.entity.setEulerAngles(arguments[1]))):(6===arguments.length&&this.entity.setEulerAngles(arguments[3],arguments[4],arguments[5]),this.entity.setPosition(arguments[0],arguments[1],arguments[2])),this.syncEntityToBody()},i.onEnable=function(){this._body||this.createBody(),this.enableSimulation()},i.onDisable=function(){this.disableSimulation()},q(e,[{key:"angularDamping",get:function(){return this._angularDamping},set:function(t){this._angularDamping!==t&&(this._angularDamping=t,this._body&&this._body.setDamping(this._linearDamping,t))}},{key:"angularFactor",get:function(){return this._angularFactor},set:function(t){this._angularFactor.equals(t)||(this._angularFactor.copy(t),this._body&&this._type===Qm&&(Wg.setValue(t.x,t.y,t.z),this._body.setAngularFactor(Wg)))}},{key:"angularVelocity",get:function(){if(this._body&&this._type===Qm){var t=this._body.getAngularVelocity();this._angularVelocity.set(t.x(),t.y(),t.z())}return this._angularVelocity},set:function(t){this._body&&this._type===Qm&&(this._body.activate(),Wg.setValue(t.x,t.y,t.z),this._body.setAngularVelocity(Wg),this._angularVelocity.copy(t))}},{key:"body",get:function(){return this._body},set:function(t){this._body!==t&&(this._body=t,t&&this._simulationEnabled&&t.activate())}},{key:"friction",get:function(){return this._friction},set:function(t){this._friction!==t&&(this._friction=t,this._body&&this._body.setFriction(t))}},{key:"group",get:function(){return this._group},set:function(t){this._group!==t&&(this._group=t,this.enabled&&this.entity.enabled&&(this.disableSimulation(),this.enableSimulation()))}},{key:"linearDamping",get:function(){return this._linearDamping},set:function(t){this._linearDamping!==t&&(this._linearDamping=t,this._body&&this._body.setDamping(t,this._angularDamping))}},{key:"linearFactor",get:function(){return this._linearFactor},set:function(t){this._linearFactor.equals(t)||(this._linearFactor.copy(t),this._body&&this._type===Qm&&(Wg.setValue(t.x,t.y,t.z),this._body.setLinearFactor(Wg)))}},{key:"linearVelocity",get:function(){if(this._body&&this._type===Qm){var t=this._body.getLinearVelocity();this._linearVelocity.set(t.x(),t.y(),t.z())}return this._linearVelocity},set:function(t){this._body&&this._type===Qm&&(this._body.activate(),Wg.setValue(t.x,t.y,t.z),this._body.setLinearVelocity(Wg),this._linearVelocity.copy(t))}},{key:"mask",get:function(){return this._mask},set:function(t){this._mask!==t&&(this._mask=t,this.enabled&&this.entity.enabled&&(this.disableSimulation(),this.enableSimulation()))}},{key:"mass",get:function(){return this._mass},set:function(t){if(this._mass!==t&&(this._mass=t,this._body&&this._type===Qm)){var e=this.enabled&&this.entity.enabled;e&&this.disableSimulation(),this._body.getCollisionShape().calculateLocalInertia(t,Wg),this._body.setMassProps(t,Wg),this._body.updateInertiaTensor(),e&&this.enableSimulation()}}},{key:"restitution",get:function(){return this._restitution},set:function(t){this._restitution!==t&&(this._restitution=t,this._body&&this._body.setRestitution(t))}},{key:"rollingFriction",get:function(){return this._rollingFriction},set:function(t){this._rollingFriction!==t&&(this._rollingFriction=t,this._body&&this._body.setRollingFriction(t))}},{key:"type",get:function(){return this._type},set:function(t){if(this._type!==t){switch(this._type=t,this.disableSimulation(),t){case Qm:this._group=1,this._mask=t_;break;case Jm:this._group=4,this._mask=t_;break;default:this._group=2,this._mask=e_}this.createBody()}}}]),e}(Nh),$g=function(){this.enabled=!0},Qg=function(t,e,i){this.entity=t,this.point=e,this.normal=i},Jg=function(t,e,i){0===arguments.length?(this.a=null,this.b=null,this.impulse=0,this.localPointA=new pt,this.localPointB=new pt,this.pointA=new pt,this.pointB=new pt,this.normal=new pt):(this.a=t,this.b=e,this.impulse=i.impulse,this.localPointA=i.localPoint,this.localPointB=i.localPointOther,this.pointA=i.point,this.pointB=i.pointOther,this.normal=i.normal)},tv=function(t,e,i,n,s,a){void 0===t&&(t=new pt),void 0===e&&(e=new pt),void 0===i&&(i=new pt),void 0===n&&(n=new pt),void 0===s&&(s=new pt),void 0===a&&(a=0),this.localPoint=t,this.localPointOther=e,this.point=i,this.pointOther=n,this.normal=s,this.impulse=a},ev=function(t,e){this.other=t,this.contacts=e},iv=["enabled"],nv=function(t){function e(e){var i;return(i=t.call(this,e)||this).maxSubSteps=10,i.fixedTimeStep=1/60,i.gravity=new pt(0,-9.81,0),i._dynamic=[],i._kinematic=[],i._triggers=[],i._compounds=[],i.id="rigidbody",i._stats=e.stats.frame,i.ComponentType=Zg,i.DataType=$g,i.contactPointPool=null,i.contactResultPool=null,i.singleContactResultPool=null,i.schema=iv,i.collisions={},i.frameCollisions={},i.on("beforeremove",i.onBeforeRemove,Z(i)),i.on("remove",i.onRemove,Z(i)),i}j(e,t);var i=e.prototype;return i.onLibraryLoaded=function(){if("undefined"!=typeof Ammo){if(this.collisionConfiguration=new Ammo.btDefaultCollisionConfiguration,this.dispatcher=new Ammo.btCollisionDispatcher(this.collisionConfiguration),this.overlappingPairCache=new Ammo.btDbvtBroadphase,this.solver=new Ammo.btSequentialImpulseConstraintSolver,this.dynamicsWorld=new Ammo.btDiscreteDynamicsWorld(this.dispatcher,this.overlappingPairCache,this.solver,this.collisionConfiguration),this.dynamicsWorld.setInternalTickCallback){var t=Ammo.addFunction(this._checkForCollisions.bind(this),"vif");this.dynamicsWorld.setInternalTickCallback(t)}Yg=new Ammo.btVector3,jg=new Ammo.btVector3,Zg.onLibraryLoaded(),this.contactPointPool=new Kg(tv,1),this.contactResultPool=new Kg(ev,1),this.singleContactResultPool=new Kg(Jg,1),this.app.systems.on("update",this.onUpdate,this)}else this.app.systems.off("update",this.onUpdate,this)},i.initializeComponentData=function(e,i,n){for(var s=0,a=["mass","linearDamping","angularDamping","linearFactor","angularFactor","friction","rollingFriction","restitution","type","group","mask"];s2){var h=arguments[2];h(i)}}}return Ammo.destroy(n),i},i.raycastAll=function(t,e){var i=[];Yg.setValue(t.x,t.y,t.z),jg.setValue(e.x,e.y,e.z);var n=new Ammo.AllHitsRayResultCallback(Yg,jg);if(this.dynamicsWorld.rayTest(Yg,jg,n),n.hasHit())for(var s=n.get_m_collisionObjects(),a=n.get_m_hitPointWorld(),r=n.get_m_hitNormalWorld(),o=s.size(),h=0;h0)if(4&d||4&f){var v=c.collision&&(c.collision.hasEvent("triggerenter")||c.collision.hasEvent("triggerleave")),y=u.collision&&(u.collision.hasEvent("triggerenter")||u.collision.hasEvent("triggerleave")),x=c.rigidbody&&(c.rigidbody.hasEvent("triggerenter")||c.rigidbody.hasEvent("triggerleave")),b=u.rigidbody&&(u.rigidbody.hasEvent("triggerenter")||u.rigidbody.hasEvent("triggerleave"));v&&(!(g=this._storeCollision(c,u))||4&f||c.collision.fire("triggerenter",u)),y&&(!(g=this._storeCollision(u,c))||4&d||u.collision.fire("triggerenter",c)),x&&(g||(g=this._storeCollision(u,c)),g&&c.rigidbody.fire("triggerenter",u)),b&&(g||(g=this._storeCollision(c,u)),g&&u.rigidbody.fire("triggerenter",c))}else{var S=this._hasContactEvent(c),w=this._hasContactEvent(u),T=this.hasEvent("contact");if(T||S||w){for(var A=0;A=0&&n!==t.element.drawOrder)null==(i=this.system.app.batcher)||i.markGroupDirty(t.element._batchGroupId)}t.particlesystem&&(t.particlesystem.drawOrder=e++);for(var s=t.children,a=0;a255&&(t=255),this._priority=t}}]),e}(Nh),hv=function(){this.enabled=!0},lv=["enabled"],cv=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="screen",i.ComponentType=ov,i.DataType=hv,i.schema=lv,i.windowResolution=new _t,i._drawOrderSyncQueue=new H,i.app.graphicsDevice.on("resizecanvas",i._onResize,Z(i)),i.app.systems.on("update",i._onUpdate,Z(i)),i.on("beforeremove",i.onRemoveComponent,Z(i)),i}j(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){void 0!==i.priority&&(e.priority=i.priority),void 0!==i.screenSpace&&(e.screenSpace=i.screenSpace),e.cull=e.screenSpace,void 0!==i.scaleMode&&(e.scaleMode=i.scaleMode),void 0!==i.scaleBlend&&(e.scaleBlend=i.scaleBlend),void 0!==i.resolution&&(i.resolution instanceof _t?e._resolution.copy(i.resolution):e._resolution.set(i.resolution[0],i.resolution[1]),e.resolution=e._resolution),void 0!==i.referenceResolution&&(i.referenceResolution instanceof _t?e._referenceResolution.copy(i.referenceResolution):e._referenceResolution.set(i.referenceResolution[0],i.referenceResolution[1]),e.referenceResolution=e._referenceResolution),e.syncDrawOrder(),t.prototype.initializeComponentData.call(this,e,i,n)},i.destroy=function(){t.prototype.destroy.call(this),this.app.graphicsDevice.off("resizecanvas",this._onResize,this),this.app.systems.off("update",this._onUpdate,this)},i._onUpdate=function(t){var e=this.store;for(var i in e)e[i].entity.screen.update&&e[i].entity.screen.update(t)},i._onResize=function(t,e){this.windowResolution.x=t,this.windowResolution.y=e},i.cloneComponent=function(t,e){var i=t.screen;return this.addComponent(e,{enabled:i.enabled,screenSpace:i.screenSpace,scaleMode:i.scaleMode,resolution:i.resolution.clone(),referenceResolution:i.referenceResolution.clone()})},i.onRemoveComponent=function(t,e){e.onRemove()},i.processDrawOrderSyncQueue=function(){for(var t=this._drawOrderSyncQueue.list(),e=0;e=0&&this.instancesWithUpdate.splice(s,1)}if(n.fixedUpdate){var a=this.instancesWithFixedUpdate.indexOf(n);a>=0&&this.instancesWithFixedUpdate.splice(a,1)}if(n.postUpdate){var r=this.instancesWithPostUpdate.indexOf(n);r>=0&&this.instancesWithPostUpdate.splice(r,1)}if(n.toolsUpdate){var o=this.instancesWithToolsUpdate.indexOf(n);o>=0&&this.instancesWithToolsUpdate.splice(o,1)}t.instances[i].instance===t[i]&&delete t[i],delete t.instances[i]}},i._postInitializeScriptComponent=function(t){this._callInstancesMethod(t,mv),t.data.postInitialized=!0},i._updateInstances=function(t,e,i){for(var n=0,s=e.length;n0){var i=Av.sub(wv).dot(Mv)/e,n=wv.add(Tv.mulScalar(i));return Cv.copy(this._element.entity.getRotation()).invert().transformVector(n,n),n.mul(this._dragScale),n}return null},i._determineInputPosition=function(t){var e=this._app.graphicsDevice.maxPixelRatio;void 0!==t.x&&void 0!==t.y?(bv.x=t.x*e,bv.y=t.y*e):t.changedTouches?(bv.x=t.changedTouches[0].x*e,bv.y=t.changedTouches[0].y*e):console.warn("Could not determine position from input event")},i._chooseRayOriginAndDirection=function(){this._element.screen&&this._element.screen.screen.screenSpace?(wv.set(bv.x,-bv.y,0),Tv.set(0,0,-1)):(Sv.copy(this._dragCamera.screenToWorld(bv.x,bv.y,1)),wv.copy(this._dragCamera.entity.getPosition()),Tv.copy(Sv).sub(wv).normalize())},i._calculateDragScale=function(){var t=this._element.entity.parent,e=this._element.screen&&this._element.screen.screen,i=e&&e.screenSpace,n=i?e.scale:1,s=this._dragScale;for(s.set(n,n,n);t&&(s.mul(t.getLocalScale()),t=t.parent,!i||!t.screen););s.x=1/s.x,s.y=1/s.y,s.z=1/s.z},i._onMove=function(t){if(this._element&&this._isDragging&&this.enabled&&this._element.enabled&&this._element.entity.enabled){var e=this._screenToLocal(t);if(this._dragStartMousePosition&&e){if(this._deltaMousePosition.copy(e).sub(this._dragStartMousePosition),this._deltaHandlePosition.copy(this._dragStartHandlePosition).add(this._deltaMousePosition),this._axis){var i=this._element.entity.getLocalPosition(),n=Ev[this._axis];this._deltaHandlePosition[n]=i[n]}this._element.entity.setLocalPosition(this._deltaHandlePosition),this.fire("drag:move",this._deltaHandlePosition)}}},i.destroy=function(){this._toggleLifecycleListeners("off"),this._toggleDragListeners("off")},q(e,[{key:"enabled",get:function(){return this._enabled},set:function(t){this._enabled=t}},{key:"isDragging",get:function(){return this._isDragging}}]),e}(m),Rv=new _t,Iv=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._viewportReference=new Cm(Z(n),"viewportEntity",{"element#gain":n._onViewportElementGain,"element#resize":n._onSetContentOrViewportSize}),n._contentReference=new Cm(Z(n),"contentEntity",{"element#gain":n._onContentElementGain,"element#lose":n._onContentElementLose,"element#resize":n._onSetContentOrViewportSize}),n._scrollbarUpdateFlags={},n._scrollbarReferences={},n._scrollbarReferences[0]=new Cm(Z(n),"horizontalScrollbarEntity",{"scrollbar#set:value":n._onSetHorizontalScrollbarValue,"scrollbar#gain":n._onHorizontalScrollbarGain}),n._scrollbarReferences[1]=new Cm(Z(n),"verticalScrollbarEntity",{"scrollbar#set:value":n._onSetVerticalScrollbarValue,"scrollbar#gain":n._onVerticalScrollbarGain}),n._prevContentSizes={},n._prevContentSizes[0]=null,n._prevContentSizes[1]=null,n._scroll=new _t,n._velocity=new pt,n._dragStartPosition=new pt,n._disabledContentInput=!1,n._disabledContentInputEntities=[],n._toggleLifecycleListeners("on",e),n._toggleElementListeners("on"),n}j(e,t);var i=e.prototype;return i._toggleLifecycleListeners=function(t,e){this[t]("set_horizontal",this._onSetHorizontalScrollingEnabled,this),this[t]("set_vertical",this._onSetVerticalScrollingEnabled,this),e.app.systems.element[t]("add",this._onElementComponentAdd,this),e.app.systems.element[t]("beforeremove",this._onElementComponentRemove,this)},i._toggleElementListeners=function(t){if(this.entity.element){if("on"===t&&this._hasElementListeners)return;this.entity.element[t]("resize",this._onSetContentOrViewportSize,this),this.entity.element[t](np,this._onMouseWheel,this),this._hasElementListeners="on"===t}},i._onElementComponentAdd=function(t){this.entity===t&&this._toggleElementListeners("on")},i._onElementComponentRemove=function(t){this.entity===t&&this._toggleElementListeners("off")},i._onViewportElementGain=function(){this._syncAll()},i._onContentElementGain=function(){this._destroyDragHelper(),this._contentDragHelper=new Pv(this._contentReference.entity.element),this._contentDragHelper.on("drag:start",this._onContentDragStart,this),this._contentDragHelper.on("drag:end",this._onContentDragEnd,this),this._contentDragHelper.on("drag:move",this._onContentDragMove,this),this._prevContentSizes[0]=null,this._prevContentSizes[1]=null,this._syncAll()},i._onContentElementLose=function(){this._destroyDragHelper()},i._onContentDragStart=function(){this._contentReference.entity&&this.enabled&&this.entity.enabled&&this._dragStartPosition.copy(this._contentReference.entity.getLocalPosition())},i._onContentDragEnd=function(){this._prevContentDragPosition=null,this._enableContentInput()},i._onContentDragMove=function(t){if(this._contentReference.entity&&this.enabled&&this.entity.enabled&&(this._wasDragged=!0,this._setScrollFromContentPosition(t),this._setVelocityFromContentPositionDelta(t),!this._disabledContentInput)){var e=t.x-this._dragStartPosition.x,i=t.y-this._dragStartPosition.y;(Math.abs(e)>this.dragThreshold||Math.abs(i)>this.dragThreshold)&&this._disableContentInput()}},i._onSetContentOrViewportSize=function(){this._syncAll()},i._onSetHorizontalScrollbarValue=function(t){!this._scrollbarUpdateFlags[0]&&this.enabled&&this.entity.enabled&&this._onSetScroll(t,null)},i._onSetVerticalScrollbarValue=function(t){!this._scrollbarUpdateFlags[1]&&this.enabled&&this.entity.enabled&&this._onSetScroll(null,t)},i._onSetHorizontalScrollingEnabled=function(){this._syncScrollbarEnabledState(0)},i._onSetVerticalScrollingEnabled=function(){this._syncScrollbarEnabledState(1)},i._onHorizontalScrollbarGain=function(){this._syncScrollbarEnabledState(0),this._syncScrollbarPosition(0)},i._onVerticalScrollbarGain=function(){this._syncScrollbarEnabledState(1),this._syncScrollbarPosition(1)},i._onSetScroll=function(t,e,i){!1!==i&&this._velocity.set(0,0,0);var n=this._updateAxis(t,"x",0),s=this._updateAxis(e,"y",1);(n||s)&&this.fire("set:scroll",this._scroll)},i._updateAxis=function(t,e,i){var n=null!==t&&Math.abs(t-this._scroll[e])>1e-5;return(n||this._isDragging()||0===t)&&(this._scroll[e]=this._determineNewScrollValue(t,e,i),this._syncContentPosition(i),this._syncScrollbarPosition(i)),n},i._determineNewScrollValue=function(t,e,i){if(!this._getScrollingEnabled(i))return this._scroll[e];switch(this.scrollMode){case 0:return ot.clamp(t,0,this._getMaxScrollValue(i));case 1:return this._setVelocityFromOvershoot(t,e,i),t;case 2:return t;default:return console.warn("Unhandled scroll mode:"+this.scrollMode),t}},i._syncAll=function(){this._syncContentPosition(0),this._syncContentPosition(1),this._syncScrollbarPosition(0),this._syncScrollbarPosition(1),this._syncScrollbarEnabledState(0),this._syncScrollbarEnabledState(1)},i._syncContentPosition=function(t){var e=this._getAxis(t),i=this._getSign(t),n=this._contentReference.entity;if(n){var s=this._prevContentSizes[t],a=this._getContentSize(t);if(null!==s&&Math.abs(s-a)>1e-4){var r=this._getMaxOffset(t,s),o=this._getMaxOffset(t,a);this._scroll[e]=0===o?1:ot.clamp(this._scroll[e]*r/o,0,1)}var h=this._scroll[e]*this._getMaxOffset(t),l=n.getLocalPosition();l[e]=h*i,n.setLocalPosition(l),this._prevContentSizes[t]=a}},i._syncScrollbarPosition=function(t){var e=this._getAxis(t),i=this._scrollbarReferences[t].entity;i&&i.scrollbar&&(this._scrollbarUpdateFlags[t]=!0,i.scrollbar.value=this._scroll[e],i.scrollbar.handleSize=this._getScrollbarHandleSize(e,t),this._scrollbarUpdateFlags[t]=!1)},i._syncScrollbarEnabledState=function(t){var e=this._scrollbarReferences[t].entity;if(e){var i=this._getScrollingEnabled(t),n=this._getScrollbarVisibility(t);switch(n){case 0:return void(e.enabled=i);case 1:return void(e.enabled=i&&this._contentIsLargerThanViewport(t));default:console.warn("Unhandled scrollbar visibility:"+n),e.enabled=i}}},i._contentIsLargerThanViewport=function(t){return this._getContentSize(t)>this._getViewportSize(t)},i._contentPositionToScrollValue=function(t){var e=this._getMaxOffset(0),i=this._getMaxOffset(1);return Rv.x=0===e?0:t.x/e,Rv.y=0===i?0:t.y/-i,Rv},i._getMaxOffset=function(t,e){e=void 0===e?this._getContentSize(t):e;var i=this._getViewportSize(t);return e1e-4||Math.abs(this._velocity.y)>1e-4){var t=this._contentReference.entity.getLocalPosition();t.x+=this._velocity.x,t.y+=this._velocity.y,this._contentReference.entity.setLocalPosition(t),this._setScrollFromContentPosition(t)}this._velocity.x*=1-this.friction,this._velocity.y*=1-this.friction}},i._hasOvershoot=function(t,e){return Math.abs(this._toOvershoot(this.scroll[t],e))>.001},i._toOvershoot=function(t,e){var i=this._getMaxScrollValue(e);return t<0?t:t>i?t-i:0},i._setVelocityFromOvershoot=function(t,e,i){var n=this._toOvershoot(t,i)*this._getMaxOffset(i)*this._getSign(i);Math.abs(n)>0&&(this._velocity[e]=-n/(50*this.bounceAmount+1))},i._setVelocityFromContentPositionDelta=function(t){this._prevContentDragPosition?(this._velocity.sub2(t,this._prevContentDragPosition),this._prevContentDragPosition.copy(t)):(this._velocity.set(0,0,0),this._prevContentDragPosition=t.clone())},i._setScrollFromContentPosition=function(t){var e=this._contentPositionToScrollValue(t);this._isDragging()&&(e=this._applyScrollValueTension(e)),this._onSetScroll(e.x,e.y,!1)},i._applyScrollValueTension=function(t){var e=this._getMaxScrollValue(0),i=this._toOvershoot(t.x,0);return i>0?t.x=e+1*Math.log10(1+i):i<0&&(t.x=-1*Math.log10(1-i)),e=this._getMaxScrollValue(1),(i=this._toOvershoot(t.y,1))>0?t.y=e+1*Math.log10(1+i):i<0&&(t.y=-1*Math.log10(1-i)),t},i._isDragging=function(){return this._contentDragHelper&&this._contentDragHelper.isDragging},i._setScrollbarComponentsEnabled=function(t){this._scrollbarReferences[0].hasComponent("scrollbar")&&(this._scrollbarReferences[0].entity.scrollbar.enabled=t),this._scrollbarReferences[1].hasComponent("scrollbar")&&(this._scrollbarReferences[1].entity.scrollbar.enabled=t)},i._setContentDraggingEnabled=function(t){this._contentDragHelper&&(this._contentDragHelper.enabled=t)},i._onMouseWheel=function(t){if(this.useMouseWheel){var e=t.event,i=e.deltaX/this._contentReference.entity.element.calculatedWidth*this.mouseWheelSensitivity.x,n=e.deltaY/this._contentReference.entity.element.calculatedHeight*this.mouseWheelSensitivity.y,s=ot.clamp(this._scroll.x+i,0,this._getMaxScrollValue(0)),a=ot.clamp(this._scroll.y+n,0,this._getMaxScrollValue(1));this.scroll=new _t(s,a)}},i._enableContentInput=function(){for(;this._disabledContentInputEntities.length;){var t=this._disabledContentInputEntities.pop();t.element&&(t.element.useInput=!0)}this._disabledContentInput=!1},i._disableContentInput=function(){var t=this,e=function e(i){i.element&&i.element.useInput&&(t._disabledContentInputEntities.push(i),i.element.useInput=!1);for(var n=i.children,s=0,a=n.length;s1e-5&&(this.data.value=ot.clamp(i,0,1),this._updateHandlePositionAndSize(),this.fire("set:value",this.data.value))},i._onSetHandleSize=function(t,e,i){Math.abs(i-e)>1e-5&&(this.data.handleSize=ot.clamp(i,0,1),this._updateHandlePositionAndSize())},i._onSetHandleAlignment=function(){this._updateHandlePositionAndSize()},i._onSetOrientation=function(t,e,i){i!==e&&this._handleReference.hasComponent("element")&&(this._handleReference.entity.element[this._getOppositeDimension()]=0)},i._updateHandlePositionAndSize=function(){var t=this._handleReference.entity,e=t&&t.element;if(t){var i=t.getLocalPosition();i[this._getAxis()]=this._getHandlePosition(),this._handleReference.entity.setLocalPosition(i)}e&&(e[this._getDimension()]=this._getHandleLength())},i._handlePositionToScrollValue=function(t){return t*this._getSign()/this._getUsableTrackLength()},i._scrollValueToHandlePosition=function(t){return t*this._getSign()*this._getUsableTrackLength()},i._getUsableTrackLength=function(){return Math.max(this._getTrackLength()-this._getHandleLength(),.001)},i._getTrackLength=function(){return this.entity.element?0===this.orientation?this.entity.element.calculatedWidth:this.entity.element.calculatedHeight:0},i._getHandleLength=function(){return this._getTrackLength()*this.handleSize},i._getHandlePosition=function(){return this._scrollValueToHandlePosition(this.value)},i._getSign=function(){return 0===this.orientation?1:-1},i._getAxis=function(){return 0===this.orientation?"x":"y"},i._getDimension=function(){return 0===this.orientation?"width":"height"},i._getOppositeDimension=function(){return 0===this.orientation?"height":"width"},i._destroyDragHelper=function(){this._handleDragHelper&&this._handleDragHelper.destroy()},i._setHandleDraggingEnabled=function(t){this._handleDragHelper&&(this._handleDragHelper.enabled=t)},i.onEnable=function(){this._handleReference.onParentComponentEnable(),this._setHandleDraggingEnabled(!0)},i.onDisable=function(){this._setHandleDraggingEnabled(!1)},i.onRemove=function(){this._destroyDragHelper(),this._toggleLifecycleListeners("off")},e}(Nh),Fv=function(){this.enabled=!0},Bv=[{name:"enabled",type:"boolean"},{name:"orientation",type:"number"},{name:"value",type:"number"},{name:"handleSize",type:"number"},{name:"handleEntity",type:"entity"}],Nv=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="scrollbar",i.ComponentType=Ov,i.DataType=Fv,i.schema=Bv,i.on("beforeremove",i._onRemoveComponent,Z(i)),i}j(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){t.prototype.initializeComponentData.call(this,e,i,Bv)},i._onRemoveComponent=function(t,e){e.onRemove()},e}(im);Nh._buildAccessors(Ov.prototype,Bv);var Uv={volume:0,pitch:0,loop:!1,startTime:0,duration:0,position:new pt,maxDistance:0,refDistance:0,rollOffFactor:0,distanceModel:0,onPlay:null,onPause:null,onResume:null,onStop:null,onEnd:null},zv=function(t){function e(e,i,n){var s;return void 0===i&&(i="Untitled"),void 0===n&&(n={}),(s=t.call(this)||this).name=void 0,s.instances=[],s._component=e,s._assets=e.system.app.assets,s._manager=e.system.manager,s.name=i,s._volume=void 0!==n.volume?ot.clamp(Number(n.volume)||0,0,1):1,s._pitch=void 0!==n.pitch?Math.max(.01,Number(n.pitch)||0):1,s._loop=!(void 0===n.loop||!n.loop),s._duration=n.duration>0?n.duration:null,s._startTime=Math.max(0,Number(n.startTime)||0),s._overlap=!!n.overlap,s._autoPlay=!!n.autoPlay,s._firstNode=null,s._lastNode=null,s._asset=n.asset,s._asset instanceof Mh&&(s._asset=s._asset.id),s._onInstancePlayHandler=s._onInstancePlay.bind(Z(s)),s._onInstancePauseHandler=s._onInstancePause.bind(Z(s)),s._onInstanceResumeHandler=s._onInstanceResume.bind(Z(s)),s._onInstanceStopHandler=s._onInstanceStop.bind(Z(s)),s._onInstanceEndHandler=s._onInstanceEnd.bind(Z(s)),s}j(e,t);var i=e.prototype;return i.play=function(){if(this.overlap||this.stop(),this.isLoaded||this._hasAsset()){var t=this._createInstance();if(this.instances.push(t),this.isLoaded)t.play();else{var e=function(e){var i=t._playWhenLoaded;t.sound=e,i&&t.play()};this.off("load",e),this.once("load",e),this.load()}return t}},i.pause=function(){for(var t=!1,e=this.instances,i=0,n=e.length;i=0;a--){var r=s[a].isPlaying||s[a].isSuspended,o=s[a].currentTime;r&&s[a].stop();var h=n._createInstance();r&&(h.play(),h.currentTime=o),s.push(h)}}}},{key:"slots",get:function(){return this._slots},set:function(t){var e=this._slots;if(e)for(var i in e)e[i].stop();var n={};for(var s in t)t[s]instanceof zv?n[t[s].name]=t[s]:t[s].name&&(n[t[s].name]=new zv(this,t[s].name,t[s]));this._slots=n,this.enabled&&this.entity.enabled&&this.onEnable()}}]),e}(Nh),Gv=function(){this.enabled=!0},Wv=["enabled"],Hv=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="sound",i.ComponentType=Vv,i.DataType=Gv,i.schema=Wv,i.manager=e.soundManager,i.app.systems.on("update",i.onUpdate,Z(i)),i.on("beforeremove",i.onBeforeRemove,Z(i)),i}j(e,t);var i=e.prototype;return i.initializeComponentData=function(e,i,n){n=["volume","pitch","positional","refDistance","maxDistance","rollOffFactor","distanceModel","slots"];for(var s=0;sn||i<0;this._setTime(i);var a=this.frame;(a=this._sprite?Math.floor(this._sprite.frameKeys.length*this._time/n):0)!==this._frame&&this._setFrame(a),s&&(this.loop?(this.fire("loop"),this._component.fire("loop",this)):(this._playing=!1,this._paused=!1,this.fire("end"),this._component.fire("end",this)))}},i._setTime=function(t){this._time=t;var e=this.duration;this._time<0?this.loop?this._time=this._time%e+e:this._time=0:this._time>e&&(this.loop?this._time%=e:this._time=e)},i._setFrame=function(t){this._sprite?this._frame=ot.clamp(t,0,this._sprite.frameKeys.length-1):this._frame=t,this._component.currentClip===this&&this._component._showFrame(this._frame)},i._destroy=function(){this._sprite&&(this.sprite=null),this._spriteAsset&&(this.spriteAsset=null)},i.play=function(){this._playing||(this._playing=!0,this._paused=!1,this.frame=0,this.fire("play"),this._component.fire("play",this))},i.pause=function(){this._playing&&!this._paused&&(this._paused=!0,this.fire("pause"),this._component.fire("pause",this))},i.resume=function(){this._paused&&(this._paused=!1,this.fire("resume"),this._component.fire("resume",this))},i.stop=function(){this._playing&&(this._playing=!1,this._paused=!1,this._time=0,this.frame=0,this.fire("stop"),this._component.fire("stop",this))},q(e,[{key:"duration",get:function(){if(this._sprite){var t=this.fps||Number.MIN_VALUE;return this._sprite.frameKeys.length/Math.abs(t)}return 0}},{key:"frame",get:function(){return this._frame},set:function(t){this._setFrame(t);var e=this.fps||Number.MIN_VALUE;this._setTime(this._frame/e)}},{key:"isPaused",get:function(){return this._paused}},{key:"isPlaying",get:function(){return this._playing}},{key:"sprite",get:function(){return this._sprite},set:function(t){var e;(this._sprite&&(this._sprite.off("set:meshes",this._onSpriteMeshesChange,this),this._sprite.off("set:pixelsPerUnit",this._onSpritePpuChanged,this),this._sprite.off("set:atlas",this._onSpriteMeshesChange,this),this._sprite.atlas&&this._sprite.atlas.off("set:texture",this._onSpriteMeshesChange,this)),this._sprite=t,this._sprite&&(this._sprite.on("set:meshes",this._onSpriteMeshesChange,this),this._sprite.on("set:pixelsPerUnit",this._onSpritePpuChanged,this),this._sprite.on("set:atlas",this._onSpriteMeshesChange,this),this._sprite.atlas&&this._sprite.atlas.on("set:texture",this._onSpriteMeshesChange,this)),this._component.currentClip===this)&&(t&&t.atlas?(t.atlas.texture&&((e=this._component._meshInstance)&&(e.setParameter("texture_emissiveMap",t.atlas.texture),e.setParameter("texture_opacityMap",t.atlas.texture)),this._component.enabled&&this._component.entity.enabled&&this._component._showModel()),this.time&&this.fps?this.time=this.time:this.frame=this.frame):((e=this._component._meshInstance)&&(e.deleteParameter("texture_emissiveMap"),e.deleteParameter("texture_opacityMap")),this._component._hideModel()))}},{key:"spriteAsset",get:function(){return this._spriteAsset},set:function(t){var e=this._component.system.app.assets,i=t;if(t instanceof Mh&&(i=t.id),this._spriteAsset!==i){if(this._spriteAsset){var n=e.get(this._spriteAsset);n&&this._unbindSpriteAsset(n)}if(this._spriteAsset=i,this._spriteAsset){var s=e.get(this._spriteAsset);s?this._bindSpriteAsset(s):(this.sprite=null,e.on("add:"+this._spriteAsset,this._onSpriteAssetAdded,this))}else this.sprite=null}}},{key:"time",get:function(){return this._time},set:function(t){this._setTime(t),this._sprite?this.frame=Math.min(this._sprite.frameKeys.length-1,Math.floor(this._time*Math.abs(this.fps))):this.frame=0}}]),e}(m),jv="texture_emissiveMap",Kv="texture_opacityMap",Zv="material_emissive",$v="material_opacity",Qv=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._type=Xv,n._material=e.defaultMaterial,n._color=new ct(1,1,1,1),n._colorUniform=new Float32Array(3),n._speed=1,n._flipX=!1,n._flipY=!1,n._width=1,n._height=1,n._drawOrder=0,n._layers=[0],n._outerScale=new _t(1,1),n._outerScaleUniform=new Float32Array(2),n._innerOffset=new gt,n._innerOffsetUniform=new Float32Array(4),n._atlasRect=new gt,n._atlasRectUniform=new Float32Array(4),n._batchGroupId=-1,n._batchGroup=null,n._node=new on,n._model=new Jo,n._model.graph=n._node,n._meshInstance=null,i.addChild(n._model.graph),n._model._entity=i,n._updateAabbFunc=n._updateAabb.bind(Z(n)),n._addedModel=!1,n._autoPlayClip=null,n._clips={},n._defaultClip=new Yv(Z(n),{name:n.entity.name,fps:0,loop:!1,spriteAsset:null}),n._currentClip=n._defaultClip,n}j(e,t);var i=e.prototype;return i.onEnable=function(){var t,e=this.system.app,i=e.scene;(i.on("set:layers",this._onLayersChanged,this),i.layers&&(i.layers.on("add",this._onLayerAdded,this),i.layers.on("remove",this._onLayerRemoved,this)),this._showModel(),this._autoPlayClip&&this._tryAutoPlay(),this._batchGroupId>=0)&&(null==(t=e.batcher)||t.insert(Oa.SPRITE,this._batchGroupId,this.entity))},i.onDisable=function(){var t,e=this.system.app,i=e.scene;(i.off("set:layers",this._onLayersChanged,this),i.layers&&(i.layers.off("add",this._onLayerAdded,this),i.layers.off("remove",this._onLayerRemoved,this)),this.stop(),this._hideModel(),this._batchGroupId>=0)&&(null==(t=e.batcher)||t.remove(Oa.SPRITE,this._batchGroupId,this.entity))},i.onDestroy=function(){for(var t in this._currentClip=null,this._defaultClip&&(this._defaultClip._destroy(),this._defaultClip=null),this._clips)this._clips[t]._destroy();this._clips=null,this._hideModel(),this._model=null,this._node&&(this._node.parent&&this._node.parent.removeChild(this._node),this._node=null),this._meshInstance&&(this._meshInstance.material=null,this._meshInstance.mesh=null,this._meshInstance=null)},i._showModel=function(){if(!this._addedModel&&this._meshInstance){for(var t=[this._meshInstance],e=0,i=this._layers.length;e=0)null==(e=this.system.app.batcher)||e.remove(Oa.SPRITE,n,this.entity);if(this.entity.enabled&&t>=0)null==(i=this.system.app.batcher)||i.insert(Oa.SPRITE,t,this.entity);else n>=0&&this._currentClip&&this._currentClip.sprite&&this.enabled&&this.entity.enabled&&this._showModel()}}},{key:"autoPlayClip",get:function(){return this._autoPlayClip},set:function(t){this._autoPlayClip=t instanceof Yv?t.name:t,this._tryAutoPlay()}},{key:"drawOrder",get:function(){return this._drawOrder},set:function(t){this._drawOrder=t,this._meshInstance&&(this._meshInstance.drawOrder=t)}},{key:"layers",get:function(){return this._layers},set:function(t){this._addedModel&&this._hideModel(),this._layers=t,this._meshInstance&&this.enabled&&this.entity.enabled&&this._showModel()}},{key:"aabb",get:function(){return this._meshInstance?this._meshInstance.aabb:null}}]),e}(Nh),Jv=function(){this.enabled=!0},ty=["enabled"],ey=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="sprite",i.ComponentType=Qv,i.DataType=Jv,i.schema=ty,i._defaultTexture=null,i._defaultMaterial=null,i._default9SlicedMaterialSlicedMode=null,i._default9SlicedMaterialTiledMode=null,i.app.systems.on("update",i.onUpdate,Z(i)),i.on("beforeremove",i.onBeforeRemove,Z(i)),i}j(e,t);var i=e.prototype;return i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this),this._defaultTexture&&(this._defaultTexture.destroy(),this._defaultTexture=null)},i.initializeComponentData=function(e,i,n){if(void 0!==i.enabled&&(e.enabled=i.enabled),e.type=i.type,i.layers&&Array.isArray(i.layers)&&(e.layers=i.layers.slice(0)),void 0!==i.drawOrder&&(e.drawOrder=i.drawOrder),void 0!==i.color&&(i.color instanceof ct?e.color.set(i.color.r,i.color.g,i.color.b,void 0!==i.opacity?i.opacity:1):e.color.set(i.color[0],i.color[1],i.color[2],void 0!==i.opacity?i.opacity:1),e.color=e.color),void 0!==i.opacity&&(e.opacity=i.opacity),void 0!==i.flipX&&(e.flipX=i.flipX),void 0!==i.flipY&&(e.flipY=i.flipY),void 0!==i.width&&(e.width=i.width),void 0!==i.height&&(e.height=i.height),void 0!==i.spriteAsset&&(e.spriteAsset=i.spriteAsset),i.sprite&&(e.sprite=i.sprite),void 0!==i.frame&&(e.frame=i.frame),i.clips)for(var s in i.clips)e.addClip(i.clips[s]);void 0!==i.speed&&(e.speed=i.speed),i.autoPlayClip&&(e.autoPlayClip=i.autoPlayClip),e.batchGroupId=void 0===i.batchGroupId||null===i.batchGroupId?-1:i.batchGroupId,t.prototype.initializeComponentData.call(this,e,i,n)},i.cloneComponent=function(t,e){var i=t.sprite;return this.addComponent(e,{enabled:i.enabled,type:i.type,spriteAsset:i.spriteAsset,sprite:i.sprite,frame:i.frame,color:i.color.clone(),opacity:i.opacity,flipX:i.flipX,flipY:i.flipY,speed:i.speed,clips:i.clips,autoPlayClip:i.autoPlayClip,batchGroupId:i.batchGroupId,drawOrder:i.drawOrder,layers:i.layers.slice(0)})},i.onUpdate=function(t){var e=this.store;for(var i in e)if(e.hasOwnProperty(i)){var n=e[i];if(n.data.enabled&&n.entity.enabled){var s=n.entity.sprite;s._currentClip&&s._currentClip._update(t)}}},i.onBeforeRemove=function(t,e){e.onDestroy()},q(e,[{key:"defaultMaterial",get:function(){if(!this._defaultMaterial){var t=new Ui(this.app.graphicsDevice,{width:1,height:1,format:7,name:"sprite"}),e=new Uint8Array(t.lock());e[0]=e[1]=e[2]=e[3]=255,t.unlock();var i=new ls;i.diffuse.set(0,0,0),i.emissive.set(.5,.5,.5),i.emissiveMap=t,i.emissiveMapTint=!0,i.opacityMap=t,i.opacityMapChannel="a",i.opacityTint=!0,i.opacity=0,i.useLighting=!1,i.useGammaTonemap=!1,i.useFog=!1,i.useSkybox=!1,i.blendType=4,i.depthWrite=!1,i.pixelSnap=!1,i.cull=0,i.update(),this._defaultTexture=t,this._defaultMaterial=i}return this._defaultMaterial},set:function(t){this._defaultMaterial=t}},{key:"default9SlicedMaterialSlicedMode",get:function(){if(!this._default9SlicedMaterialSlicedMode){var t=this.defaultMaterial.clone();t.nineSlicedMode=1,t.update(),this._default9SlicedMaterialSlicedMode=t}return this._default9SlicedMaterialSlicedMode},set:function(t){this._default9SlicedMaterialSlicedMode=t}},{key:"default9SlicedMaterialTiledMode",get:function(){if(!this._default9SlicedMaterialTiledMode){var t=this.defaultMaterial.clone();t.nineSlicedMode=2,t.update(),this._default9SlicedMaterialTiledMode=t}return this._default9SlicedMaterialTiledMode},set:function(t){this._default9SlicedMaterialTiledMode=t}}]),e}(im);Nh._buildAccessors(Qv.prototype,ty);var iy=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._oldState=!0,n._size=new pt,n.on("set_enabled",n._onSetEnabled,Z(n)),n}j(e,t);var i=e.prototype;return i.onEnable=function(){this._checkState()},i.onDisable=function(){this._checkState()},i._onSetEnabled=function(t,e,i){this._checkState()},i._checkState=function(){var t=this.enabled&&this.entity.enabled;t!==this._oldState&&(this._oldState=t,this.fire("enable"),this.fire("state",this.enabled))},i._onBeforeRemove=function(){this.fire("remove")},q(e,[{key:"size",get:function(){return this._size},set:function(t){t instanceof pt?this._size.copy(t):t instanceof Array&&t.length>=3&&this.size.set(t[0],t[1],t[2])}}]),e}(Nh),ny=function(){this.enabled=!0},sy=["enabled"],ay=function(t){function e(e){var i;return(i=t.call(this,e)||this).id="zone",i.ComponentType=iy,i.DataType=ny,i.schema=sy,i.on("beforeremove",i._onBeforeRemove,Z(i)),i}j(e,t);var i=e.prototype;return i.initializeComponentData=function(t,e,i){t.enabled=!e.hasOwnProperty("enabled")||!!e.enabled,e.size&&(e.size instanceof pt?t.size.copy(e.size):e.size instanceof Array&&e.size.length>=3&&t.size.set(e.size[0],e.size[1],e.size[2]))},i.cloneComponent=function(t,e){var i={size:t.zone.size};return this.addComponent(e,i)},i._onBeforeRemove=function(t,e){e._onBeforeRemove()},e}(im);Nh._buildAccessors(iy.prototype,sy);var ry=function(t,e){this.effect=t,this.inputTarget=e,this.outputTarget=null,this.name=t.constructor.name},oy=function(){function t(t,e){var i=this;this.app=t,this.camera=e,this.destinationRenderTarget=null,this.effects=[],this.enabled=!1,this.depthTarget=null,this.renderTargetScale=1,this.resizeTimeout=null,this.resizeLast=0,this._resizeTimeoutCallback=function(){i.resizeRenderTargets()},e.on("set:rect",this.onCameraRectChanged,this)}var e=t.prototype;return e._allocateColorBuffer=function(t,e){var i=this.camera.rect,n=Math.floor(i.z*this.app.graphicsDevice.width*this.renderTargetScale),s=Math.floor(i.w*this.app.graphicsDevice.height*this.renderTargetScale);return new Ui(this.app.graphicsDevice,{name:e,format:t,width:n,height:s,mipmaps:!1,minFilter:0,magFilter:0,addressU:1,addressV:1})},e._createOffscreenTarget=function(t,e){var i=this.app.graphicsDevice,n=e?i.getHdrFormat():7,s=this.camera.entity.name+"-posteffect-"+this.effects.length,a=this._allocateColorBuffer(n,s),r=this.app.graphicsDevice.supportsStencil,o=t?i.samples:1;return new Ss({colorBuffer:a,depth:t,stencil:r,samples:o})},e._resizeOffscreenTarget=function(t){var e=t.colorBuffer.format,i=t.colorBuffer.name;t.destroyFrameBuffers(),t.destroyTextureBuffers(),t._colorBuffer=this._allocateColorBuffer(e,i)},e._destroyOffscreenTarget=function(t){t.destroyTextureBuffers(),t.destroy()},e.setRenderTargetScale=function(t){this.renderTargetScale=t,this.resizeRenderTargets()},e.addEffect=function(t){var e=this.effects,i=0===e.length,n=this._createOffscreenTarget(i,t.hdr),s=new ry(t,n);e.push(s),this._sourceTarget=s.inputTarget,e.length>1&&(e[e.length-2].outputTarget=s.inputTarget),this._newPostEffect=t,t.needsDepthBuffer&&this._requestDepthMap(),this.enable(),this._newPostEffect=void 0},e.removeEffect=function(t){for(var e=-1,i=0,n=this.effects.length;i=0&&(e>0?this.effects[e-1].outputTarget=e+11&&(this.effects[1].inputTarget._depth||(this._destroyOffscreenTarget(this.effects[1].inputTarget),this.effects[1].inputTarget=this._createOffscreenTarget(!0,this.effects[1].hdr),this._sourceTarget=this.effects[1].inputTarget),this.camera.renderTarget=this.effects[1].inputTarget),this._destroyOffscreenTarget(this.effects[e].inputTarget),this.effects.splice(e,1)),this.enabled&&t.needsDepthBuffer&&this._releaseDepthMap(),0===this.effects.length&&this.disable()},e._requestDepthMaps=function(){for(var t=0,e=this.effects.length;t100?this.resizeRenderTargets():this.resizeTimeout=setTimeout(this._resizeTimeoutCallback,100))},e.resizeRenderTargets=function(){this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),this.resizeLast=it();for(var t=this.camera.rect,e=Math.floor(t.z*this.app.graphicsDevice.width*this.renderTargetScale),i=Math.floor(t.w*this.app.graphicsDevice.height*this.renderTargetScale),n=this.effects,s=0,a=n.length;s0}},{key:"renderSceneDepthMap",get:function(){return this._renderSceneDepthMap>0}},{key:"frustum",get:function(){return this._camera.frustum}},{key:"layers",get:function(){return this._camera.layers},set:function(t){for(var e=this._camera.layers,i=0;i=0&&(this.cameras.splice(e,1),Co(this.cameras))},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("update",this.onUpdate,this)},e}(im);Nh._buildAccessors(ly.prototype,uy);var fy=[],py=[],my=function(t){function e(e,i){var n;return(n=t.call(this,e,i)||this)._cookieAsset=null,n._cookieAssetId=null,n._cookieAssetAdd=!1,n._cookieMatrix=null,n}j(e,t);var i=e.prototype;return i.addLightToLayers=function(){for(var t=0;t=0&&this.enabled&&this.entity.enabled&&t.addLight(this)},i.onLayerRemoved=function(t){this.layers.indexOf(t.id)>=0&&t.removeLight(this)},i.refreshProperties=function(){for(var t=0;tNumber.MAX_SAFE_INTEGER&&this._resetExecutionOrder(),t.enabled=!e.hasOwnProperty("enabled")||!!e.enabled,t.enabled&&t.entity.enabled&&this._enabledComponents.append(t),e.hasOwnProperty("order")&&e.hasOwnProperty("scripts")){t._scriptsData=e.scripts;for(var i=0;i=0&&e._onBeforeRemove(),this._removeComponentFromEnabled(e),this._components.remove(e)},i.destroy=function(){t.prototype.destroy.call(this),this.app.systems.off("initialize",this._onInitialize,this),this.app.systems.off("postInitialize",this._onPostInitialize,this),this.app.systems.off("update",this._onUpdate,this),this.app.systems.off("postUpdate",this._onPostUpdate,this)},e}(im),wy="inline",Ty="immersive-vr",Ay="immersive-ar",My="viewer",Cy="left",Ey="cpu-optimized",Py="gpu-optimized",Ry="luminance-alpha",Iy=[],Ly=[],Dy=function(t){function e(e,i,n){var s;return(s=t.call(this)||this).manager=void 0,s._xrHitTestSource=void 0,s._transient=void 0,s.manager=e,s._xrHitTestSource=i,s._transient=n,s}j(e,t);var i=e.prototype;return i.remove=function(){if(this._xrHitTestSource){var t=this.manager.hitTest.sources,e=t.indexOf(this);-1!==e&&t.splice(e,1),this.onStop()}},i.onStop=function(){this._xrHitTestSource.cancel(),this._xrHitTestSource=null,this.fire("remove"),this.manager.hitTest.fire("remove",this)},i.update=function(t){if(this._transient)for(var e=t.getHitTestResultsForTransientInput(this._xrHitTestSource),i=0;ithis.views.length)for(var a=0;a<=s-this.views.length;a++){var r=this.viewsPool.pop();r||(r={viewport:new gt,projMat:new wt,viewMat:new wt,viewOffMat:new wt,viewInvMat:new wt,viewInvOffMat:new wt,projViewOffMat:new wt,viewMat3:new mt,position:new Float32Array(3),rotation:new Tt}),this.views.push(r)}else if(s<=this.views.length)for(var o=0;o=0&&(this._count++,this.fire("progress",t)),this._count===this._total&&setTimeout((function(){e._loadingComplete(e._failed)}),0)},i._onError=function(t,e){var i=this;this._assets.indexOf(e)>=0&&(this._count++,this._failed.push(e)),this._count===this._total&&setTimeout((function(){i._loadingComplete(i._failed)}),0)},i._onAddAsset=function(t){var e=this._waitingAssets.indexOf(t);e>=0&&this._waitingAssets.splice(e,1),this._assets.push(t);for(var i=0,n=this._assets.length;i