@uptimizr/dashboard 0.4.5 → 0.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/404.html +1 -1
- package/out/__next.__PAGE__.txt +19 -5
- package/out/__next._full.txt +11 -11
- package/out/__next._tree.txt +2 -2
- package/out/_next/static/chunks/{3kalvwsf11-ss.js → 0-_j1khfoib6l.js} +119 -115
- package/out/_next/static/chunks/{0-tzsd_n-ywom.js → 005bbq_px7lke.js} +2 -2
- package/out/_next/static/chunks/00fbhtmui-yxg.js +1 -0
- package/out/_next/static/chunks/017pn-pen381_.js +1 -0
- package/out/_next/static/chunks/01vov6inx1zzt.js +1 -0
- package/out/_next/static/chunks/{3d76e_yd8l_0x.js → 02qk_wmkf9at-.js} +211 -211
- package/out/_next/static/chunks/03bd5plut08tg.js +1 -0
- package/out/_next/static/chunks/03dwfqmo73w_z.js +1 -0
- package/out/_next/static/chunks/03sn4419dam-h.js +5 -0
- package/out/_next/static/chunks/05ere0-228syf.js +1 -0
- package/out/_next/static/chunks/{2g_1ov-0j2kwd.js → 05h8u5lrypn5m.js} +1 -1
- package/out/_next/static/chunks/05s0t-besbvu1.css +3 -0
- package/out/_next/static/chunks/{3go-mst7n3udd.js → 05v-nubi896jg.js} +1 -1
- package/out/_next/static/chunks/05z79zh625ezu.js +1 -0
- package/out/_next/static/chunks/{1t2exh89lnazc.js → 060iult6f68_e.js} +504 -571
- package/out/_next/static/chunks/08lvtnv7b1cxp.js +1 -0
- package/out/_next/static/chunks/0_v2luu_qmeid.js +1 -0
- package/out/_next/static/chunks/0ai0zgbgjqb92.js +1 -0
- package/out/_next/static/chunks/0boov9mwycanf.js +1 -0
- package/out/_next/static/chunks/{0av6n_6q6kzo3.js → 0btmk0wmekl02.js} +2 -2
- package/out/_next/static/chunks/0d8x8m2x6ca_m.js +1 -0
- package/out/_next/static/chunks/0dmrdrwtd093b.js +1 -0
- package/out/_next/static/chunks/0e1jfrmioeuws.js +1 -0
- package/out/_next/static/chunks/0e7nlxmneb2j_.js +1 -0
- package/out/_next/static/chunks/0es97pusfxupl.js +1 -0
- package/out/_next/static/chunks/{05uqfgf-hh-p5.js → 0fd-0i1yt23kz.js} +1 -1
- package/out/_next/static/chunks/0fxdyvb1w23d1.js +1 -0
- package/out/_next/static/chunks/0fxhc24djjcgq.js +1 -0
- package/out/_next/static/chunks/0gf-ztg86zd80.js +1 -0
- package/out/_next/static/chunks/{380ivzcfb4o_3.js → 0grasqqf5dw7r.js} +2 -2
- package/out/_next/static/chunks/{0okbyggxe6mx5.js → 0hajwk2yd-rwr.js} +1 -1
- package/out/_next/static/chunks/0hk1wg7h4araz.js +1 -0
- package/out/_next/static/chunks/{1vmpltnr0cyos.js → 0j74ipw4fps-n.js} +1 -1
- package/out/_next/static/chunks/{03zip1uidm6x9.js → 0kj-vckdn7t5p.js} +1 -1
- package/out/_next/static/chunks/0lbs5xdyjuzuo.js +1 -0
- package/out/_next/static/chunks/0lep3_bqwfuin.js +1 -0
- package/out/_next/static/chunks/0mp0jh1gj7290.js +1 -0
- package/out/_next/static/chunks/0ngpoj2g5i4kz.js +1 -0
- package/out/_next/static/chunks/0nhljhguceh66.js +1 -0
- package/out/_next/static/chunks/0p6z73afb9dj2.js +1 -0
- package/out/_next/static/chunks/0p9zfmidzqkps.js +1 -0
- package/out/_next/static/chunks/0q75860p8u_ii.js +1 -0
- package/out/_next/static/chunks/{0-0hui1_v3h8b.js → 0rracz73p38mo.js} +26 -23
- package/out/_next/static/chunks/{3z4suna4kq4j5.js → 0sw-8gxbg4x0l.js} +568 -569
- package/out/_next/static/chunks/0sx-6rf3eteqn.js +1 -0
- package/out/_next/static/chunks/0thw099xk3_0p.js +3 -0
- package/out/_next/static/chunks/0u85f0dhb4i8e.js +1 -0
- package/out/_next/static/chunks/0uk7kigzm4vi2.js +31 -0
- package/out/_next/static/chunks/0ulufxnsrou61.js +1 -0
- package/out/_next/static/chunks/0xa9dyg6ezzyd.js +2 -0
- package/out/_next/static/chunks/0xvrfvur0p534.js +1 -0
- package/out/_next/static/chunks/{35aagg46wp139.js → 0ybs1u66q26su.js} +1 -1
- package/out/_next/static/chunks/0ydfhk-p6zvm0.js +1 -0
- package/out/_next/static/chunks/{29gv2swsp7tzu.js → 0z004fn14pbcu.js} +1 -1
- package/out/_next/static/chunks/{2z9mdtudj8crz.js → 0z9erbl3llr_b.js} +226 -224
- package/out/_next/static/chunks/0zcsxvcvog9ue.js +1 -0
- package/out/_next/static/chunks/0zqgq0lwtz9tn.js +1 -0
- package/out/_next/static/chunks/1-ogak5u00kwa.js +1 -0
- package/out/_next/static/chunks/{1ng-fqh2_n984.js → 10_5p5-xf2aoo.js} +1 -1
- package/out/_next/static/chunks/118qlrzdwpfmo.js +1 -0
- package/out/_next/static/chunks/11km5p4gd0ut4.js +1 -0
- package/out/_next/static/chunks/120rl4l29q9xs.js +1 -0
- package/out/_next/static/chunks/{1ho02fc091nj2.js → 129m5i93ltoym.js} +1 -1
- package/out/_next/static/chunks/12n73o884lyyl.js +1 -0
- package/out/_next/static/chunks/{3n-7bcmfbh299.js → 13zcn4lv0qj76.js} +11 -11
- package/out/_next/static/chunks/15jlgfcaeaki9.js +1 -0
- package/out/_next/static/chunks/{1ux1rpe-n1mai.js → 15o4_2t-l3rj5.js} +1 -1
- package/out/_next/static/chunks/{00o9hr_3hd0r8.js → 175st2ogkg_1o.js} +1 -1
- package/out/_next/static/chunks/19rsodtu91ja_.js +1 -0
- package/out/_next/static/chunks/1a2ouhup611bz.js +1 -0
- package/out/_next/static/chunks/{1solqr18og2ot.js → 1by60_b14x-3o.js} +1 -1
- package/out/_next/static/chunks/1cyq7i39885sl.js +1 -0
- package/out/_next/static/chunks/1d9it6yocgt54.js +1 -0
- package/out/_next/static/chunks/1dp1s1t-y7gal.js +1 -0
- package/out/_next/static/chunks/1dr7gh6xgypl8.js +1 -0
- package/out/_next/static/chunks/{32vaw89wdwv5_.js → 1dt30s_sp8415.js} +1 -1
- package/out/_next/static/chunks/{1t7nl8rx7mabd.js → 1e8_jl2cxd3rp.js} +576 -576
- package/out/_next/static/chunks/1f1rek_fxk3of.js +1 -0
- package/out/_next/static/chunks/1f2mna0k5efeq.js +1 -0
- package/out/_next/static/chunks/1gfz3sxwkkg3d.js +1 -0
- package/out/_next/static/chunks/1gr35qeguuws0.js +1 -0
- package/out/_next/static/chunks/{0g2wngc6oe7fd.js → 1gttu-n9am66k.js} +255 -253
- package/out/_next/static/chunks/1imi0xwi9hd99.js +1 -0
- package/out/_next/static/chunks/1ka5v5zu0cstt.js +1 -0
- package/out/_next/static/chunks/{17aahvhpls1l7.js → 1l_3oidssbhns.js} +298 -231
- package/out/_next/static/chunks/1m9zc5gm-327d.js +112 -0
- package/out/_next/static/chunks/1n9nhz-6azcp3.js +3 -0
- package/out/_next/static/chunks/1ncqwe81t_9_x.js +1 -0
- package/out/_next/static/chunks/1nix_lulkpklo.js +1 -0
- package/out/_next/static/chunks/{141tngxsk32hq.js → 1ntqovuz2c217.js} +1 -1
- package/out/_next/static/chunks/1pgs-98tfkq9_.js +1 -0
- package/out/_next/static/chunks/1q2z0aeopo8t8.js +1 -0
- package/out/_next/static/chunks/{2zpn7010iqgsy.js → 1q4lkgxfnqnew.js} +1 -1
- package/out/_next/static/chunks/{2khh_pmm224k5.js → 1qg1l7t00nyib.js} +97 -300
- package/out/_next/static/chunks/{1qxhgauuomthl.js → 1rcdimhu0qhlu.js} +407 -407
- package/out/_next/static/chunks/1rlfg62jxqj3z.js +1 -0
- package/out/_next/static/chunks/1ses023uud001.js +1 -0
- package/out/_next/static/chunks/1t5oynmttpfsw.js +1 -0
- package/out/_next/static/chunks/{25gf6xn9u1c57.js → 1t9i20i5-f8ze.js} +1 -1
- package/out/_next/static/chunks/{2h5nvlgky7fpa.js → 1tgj55b305g4h.js} +1 -1
- package/out/_next/static/chunks/{255knovck7pv2.js → 1u8snlm6a7uhi.js} +4 -4
- package/out/_next/static/chunks/{04_3ri5emyfcu.js → 1ug4k-1zhr63a.js} +1 -1
- package/out/_next/static/chunks/{3-_08i4_7yhno.js → 1uh9zgsy69g92.js} +1 -1
- package/out/_next/static/chunks/1vrpzlif-z_p0.js +1 -0
- package/out/_next/static/chunks/1vurgl6oz2qey.js +17 -0
- package/out/_next/static/chunks/1w-qc09n9ijtq.js +1 -0
- package/out/_next/static/chunks/1ycqxcht6x54p.js +1 -0
- package/out/_next/static/chunks/{2zyjw8g4tiu51.js → 1zj4307ugq0qz.js} +1 -1
- package/out/_next/static/chunks/{425epvuw3yy-n.js → 1zkd8v-qka--j.js} +169 -174
- package/out/_next/static/chunks/1zm52cjrfrq7c.js +1 -0
- package/out/_next/static/chunks/{267q_eg-c6f6m.js → 1zm6eo861i3c8.js} +1 -1
- package/out/_next/static/chunks/{1e_-_7biavwmb.js → 1zp9363yfhpom.js} +1 -1
- package/out/_next/static/chunks/1zt1xxovnjhkm.js +1 -0
- package/out/_next/static/chunks/2-3hk_db5fpok.js +1 -0
- package/out/_next/static/chunks/2-bv9a_0zgw1f.js +1 -0
- package/out/_next/static/chunks/209sxygecny37.js +1 -0
- package/out/_next/static/chunks/{1ccn725by19i1.js → 216uiih3_vdfd.js} +1 -1
- package/out/_next/static/chunks/21kfpd_bityxt.js +1 -0
- package/out/_next/static/chunks/22yqh0zlo_vwr.js +1 -0
- package/out/_next/static/chunks/24ecas0m9tao7.js +3 -0
- package/out/_next/static/chunks/24pq9210rng3f.js +1 -0
- package/out/_next/static/chunks/{0zf26k6juhlzo.js → 267prao6fyt22.js} +23 -20
- package/out/_next/static/chunks/26skkagvj1z96.js +1 -0
- package/out/_next/static/chunks/26y9sv8_-ykxf.js +1 -0
- package/out/_next/static/chunks/2701xfv_07wz_.js +1 -0
- package/out/_next/static/chunks/{1x99m91nt1m3b.js → 271333m8y3k0e.js} +1 -1
- package/out/_next/static/chunks/29rkmguzky-bp.js +1 -0
- package/out/_next/static/chunks/{077eo-0dhbxz-.js → 2a07so920b6aa.js} +1 -1
- package/out/_next/static/chunks/2a2oy8ryz2tsk.js +1 -0
- package/out/_next/static/chunks/2ao-3jzz7yw3p.js +532 -0
- package/out/_next/static/chunks/2apihn9ra2ufp.js +1 -0
- package/out/_next/static/chunks/2apnpj0-fs9ks.js +1 -0
- package/out/_next/static/chunks/2b481pitl4k85.js +1 -0
- package/out/_next/static/chunks/2bettxaqt3d2p.js +1 -0
- package/out/_next/static/chunks/{1fyh50hjt7hi_.js → 2c721vfva711t.js} +1 -1
- package/out/_next/static/chunks/{442e2l3jzxd-_.js → 2d2kl_m64j9cb.js} +1 -1
- package/out/_next/static/chunks/2droqjmvmgj13.js +1 -0
- package/out/_next/static/chunks/2dxbvwbbgpzoq.js +1 -0
- package/out/_next/static/chunks/2eqbsut829r5l.js +1 -0
- package/out/_next/static/chunks/2f3_mzxjh3gso.js +1 -0
- package/out/_next/static/chunks/2fsde0jwi5qtt.js +1 -0
- package/out/_next/static/chunks/2h249uvhh2sij.js +114 -0
- package/out/_next/static/chunks/{1gvdmbr65lpud.js → 2izok2otbk8-2.js} +505 -505
- package/out/_next/static/chunks/{0yvevihll7sz-.js → 2j120dkh7q3uf.js} +1 -1
- package/out/_next/static/chunks/2j2ynchpqh34-.js +1 -0
- package/out/_next/static/chunks/2kj6pzs_wap1v.js +1 -0
- package/out/_next/static/chunks/{2-p206i_ihx09.js → 2kok6zedeeltw.js} +1 -1
- package/out/_next/static/chunks/2lnj9jruy4nrv.js +1 -0
- package/out/_next/static/chunks/{41yy4p3-rtyz1.js → 2lsvk7xcfkarc.js} +1 -1
- package/out/_next/static/chunks/2n-pveub8b_5t.js +1 -0
- package/out/_next/static/chunks/{00xc-0pj7on2s.js → 2n3xu_wbvtj7h.js} +29 -29
- package/out/_next/static/chunks/{1oljzgz5jistn.js → 2of8q0kaeqpf0.js} +1 -1
- package/out/_next/static/chunks/2ofwtw6p08sfz.js +1 -0
- package/out/_next/static/chunks/2phl5ta4iim7l.js +12 -0
- package/out/_next/static/chunks/2q6l-xdqzgmpf.js +1 -0
- package/out/_next/static/chunks/2q8yg63br2jc9.js +1 -0
- package/out/_next/static/chunks/2r5qgieqldcd9.js +1 -0
- package/out/_next/static/chunks/2r7y401cvjc1s.js +1 -0
- package/out/_next/static/chunks/{22ja7c3gk0_ko.js → 2r96kyeehsji9.js} +1 -1
- package/out/_next/static/chunks/{3gyyjsot8mdav.js → 2rmc6ru7mc-kg.js} +1 -1
- package/out/_next/static/chunks/{1ephzzweysylq.js → 2s6kpclh6ie7o.js} +901 -973
- package/out/_next/static/chunks/{0vso09vdz38sr.js → 2sys9nj8lo3uk.js} +1 -1
- package/out/_next/static/chunks/{0w-hm7g7trtjg.js → 2tc3e-iqv71y_.js} +1 -1
- package/out/_next/static/chunks/2uo6vm7mfgrbf.js +1 -0
- package/out/_next/static/chunks/2urx6fow8c8c9.js +505 -0
- package/out/_next/static/chunks/2w2k1gveljyb7.js +1 -0
- package/out/_next/static/chunks/{22rl_arnzs-ve.js → 2w99knknr5i8c.js} +1 -1
- package/out/_next/static/chunks/2w_ptlw-ad8-9.js +4 -0
- package/out/_next/static/chunks/2ws1s9d52ayv8.js +1 -0
- package/out/_next/static/chunks/2x7enks3ydgai.js +1 -0
- package/out/_next/static/chunks/{2e46-2ubc90do.js → 2y8i7_nxm4r05.js} +5 -5
- package/out/_next/static/chunks/2ydub0t01728d.js +1 -0
- package/out/_next/static/chunks/{309f81l5ucsb_.js → 2z_iab7ozohhq.js} +60 -60
- package/out/_next/static/chunks/3-m_vzabs1uez.js +1 -0
- package/out/_next/static/chunks/{0t89-lfct-7m6.js → 302qk2fjdrthp.js} +5 -5
- package/out/_next/static/chunks/30bhz7czzs4mf.js +1 -0
- package/out/_next/static/chunks/{0tn-9w46cwydp.js → 30n4y_uu8chbh.js} +515 -514
- package/out/_next/static/chunks/{2-hdejef-mpka.js → 32_c4mbb6j1l6.js} +372 -169
- package/out/_next/static/chunks/33hp-khdfohdq.js +1 -0
- package/out/_next/static/chunks/{28ndw4nsw2t_4.js → 33i36o_l69sm5.js} +1 -1
- package/out/_next/static/chunks/3527r3jo5fj3i.js +1 -0
- package/out/_next/static/chunks/355dg8yaa94hr.js +1 -0
- package/out/_next/static/chunks/{11p92pnn5el0v.js → 35ntbr_c-yx44.js} +1 -1
- package/out/_next/static/chunks/{2rjfrjhp4kjev.js → 35sne1llxnc-m.js} +57 -57
- package/out/_next/static/chunks/36enkx1skkv2-.js +4 -0
- package/out/_next/static/chunks/{3-x7522okdy-7.js → 3772oce1n3t_g.js} +1 -1
- package/out/_next/static/chunks/{1rb8wewjbdisv.js → 37cnbm5ft1mqf.js} +1 -1
- package/out/_next/static/chunks/38xdo3cifphut.js +1 -0
- package/out/_next/static/chunks/{1tt1bbry-4f-6.js → 3_dgblylldcgb.js} +1 -1
- package/out/_next/static/chunks/3beawo-qwuk8k.js +1 -0
- package/out/_next/static/chunks/3cj_6sl9kr3e9.js +1 -0
- package/out/_next/static/chunks/3d-i_skta_wes.js +1 -0
- package/out/_next/static/chunks/3df_l2we755bb.js +1 -0
- package/out/_next/static/chunks/{43hwl25uke0l_.js → 3eve5y7fpzx2h.js} +1 -1
- package/out/_next/static/chunks/3ewgyb4y19w-3.js +1 -0
- package/out/_next/static/chunks/3f3789eh18_oy.js +1 -0
- package/out/_next/static/chunks/{1n_gxvu31aofy.js → 3f8qelpscqfym.js} +2 -2
- package/out/_next/static/chunks/3g3-e9m1en45q.js +1 -0
- package/out/_next/static/chunks/{0uxdbfa8gv6tk.js → 3h6akt2uu05ku.js} +29 -29
- package/out/_next/static/chunks/{3w4qettzp7khe.js → 3huu0tqmxwowu.js} +523 -522
- package/out/_next/static/chunks/3i239y-1hbkm-.js +1 -0
- package/out/_next/static/chunks/{1qsut_e3msg0l.js → 3ipx7xbxchsq9.js} +1 -1
- package/out/_next/static/chunks/{2ftp5xmq_w23j.js → 3j9xvdz55bi4p.js} +345 -345
- package/out/_next/static/chunks/3kp8qmhoi24oz.js +1 -0
- package/out/_next/static/chunks/3ksq69yq-40_r.js +1 -0
- package/out/_next/static/chunks/{2x83vs8ns4pww.js → 3njwfothmmg7u.js} +3 -3
- package/out/_next/static/chunks/{0bj_310rugcn1.js → 3oqxl46ukaojj.js} +11 -11
- package/out/_next/static/chunks/{1upkv4ltuh3s5.js → 3qn6r8-0u6dij.js} +352 -352
- package/out/_next/static/chunks/3qye1lytea2i8.js +1 -0
- package/out/_next/static/chunks/3rlp9yr75liz7.js +1 -0
- package/out/_next/static/chunks/{2i82rmjta9ijs.js → 3sa_hlx3konc7.js} +1 -1
- package/out/_next/static/chunks/3tyo643l62h3m.js +1 -0
- package/out/_next/static/chunks/3tz2tpqa9uvwm.js +1 -0
- package/out/_next/static/chunks/{2pbgsq7vvtk8_.js → 3utpc-fc6_y0f.js} +1 -1
- package/out/_next/static/chunks/3v-0c2aj6c0on.js +1 -0
- package/out/_next/static/chunks/3v6nxa28rxngq.js +1 -0
- package/out/_next/static/chunks/{1og49_atcksim.js → 3vbamaoiuk9yj.js} +1 -1
- package/out/_next/static/chunks/3vv99btjc-mky.js +1 -0
- package/out/_next/static/chunks/{1nqojcig-0m3c.js → 3w59kt5ztyvoq.js} +1 -1
- package/out/_next/static/chunks/3x02lxdo28u9i.js +1 -0
- package/out/_next/static/chunks/3xl-op0hwxytg.js +272 -0
- package/out/_next/static/chunks/3ydnxyc4rvad_.js +1 -0
- package/out/_next/static/chunks/3ylg4gfetwgxw.js +1 -0
- package/out/_next/static/chunks/{1-4v8oivkgnyl.js → 3zdtteq-r2fs5.js} +3 -3
- package/out/_next/static/chunks/3zkwt0gybqtgm.js +1 -0
- package/out/_next/static/chunks/{0wq_9f98weoe3.js → 3zs7l4362msjd.js} +1 -1
- package/out/_next/static/chunks/40etabvml_71y.js +1 -0
- package/out/_next/static/chunks/417jkzz0slv9m.js +1 -0
- package/out/_next/static/chunks/41b5gpyqbj58m.js +338 -0
- package/out/_next/static/chunks/41u2-5jayyajf.js +22 -0
- package/out/_next/static/chunks/42gcpy51w7lk1.js +1 -0
- package/out/_next/static/chunks/{1ph0tfo-4hl-f.js → 42ymanq326mo7.js} +1 -1
- package/out/_next/static/chunks/{3w_umk1xtj6to.js → 43fp64xnfy646.js} +1 -1
- package/out/_next/static/chunks/43v4y2gu5z9_h.js +1 -0
- package/out/_next/static/chunks/44cer242u-f8v.js +1 -0
- package/out/_next/static/chunks/{1ozi46t8jajqh.js → 44zi0gl0a6a8w.js} +1 -1
- package/out/_next/static/chunks/turbopack-0n2o5_bkskckx.js +1 -0
- package/out/_not-found/__next._full.txt +12 -12
- package/out/_not-found/__next._not-found.__PAGE__.txt +19 -2
- package/out/_not-found/__next._tree.txt +2 -2
- package/out/_not-found.html +1 -1
- package/out/_not-found.txt +12 -12
- package/out/index.html +1 -1
- package/out/index.txt +11 -11
- package/package.json +15 -15
- package/out/__next._head.txt +0 -6
- package/out/__next._index.txt +0 -5
- package/out/_next/static/chunks/00g5suuoa-_wn.js +0 -1
- package/out/_next/static/chunks/01fh3_bncbe5u.js +0 -1
- package/out/_next/static/chunks/01urdkl1j8o6l.js +0 -1
- package/out/_next/static/chunks/026vw95s88gsy.js +0 -1
- package/out/_next/static/chunks/02eui3ctddbd2.js +0 -1
- package/out/_next/static/chunks/04c4nksb5y9r-.js +0 -1
- package/out/_next/static/chunks/04g-l-_b4payc.js +0 -1
- package/out/_next/static/chunks/04j9pexbmysdy.js +0 -1
- package/out/_next/static/chunks/055baac5e-c2o.js +0 -1
- package/out/_next/static/chunks/05bdni_jrobq1.js +0 -1
- package/out/_next/static/chunks/05o0tb8l_htmw.js +0 -1
- package/out/_next/static/chunks/07z6p262h5hgl.js +0 -1
- package/out/_next/static/chunks/08m_4cihfmik8.js +0 -1
- package/out/_next/static/chunks/08obqw64faj8j.js +0 -1
- package/out/_next/static/chunks/099ilz3dmm1jw.js +0 -1
- package/out/_next/static/chunks/09ppu_k464q-n.js +0 -1
- package/out/_next/static/chunks/0bgcaf2x51kms.js +0 -1
- package/out/_next/static/chunks/0c5d3qn2mb3ew.js +0 -1
- package/out/_next/static/chunks/0dck67in84de0.js +0 -1
- package/out/_next/static/chunks/0dg4wxz-6u5lo.js +0 -1
- package/out/_next/static/chunks/0dva036n8ab62.js +0 -1
- package/out/_next/static/chunks/0erga_bzezbza.js +0 -1
- package/out/_next/static/chunks/0f0-i105odxqd.js +0 -1
- package/out/_next/static/chunks/0gyeqz9pagssf.js +0 -1
- package/out/_next/static/chunks/0i82k-t0fbn8f.js +0 -1
- package/out/_next/static/chunks/0kzw45f61wm3j.js +0 -1
- package/out/_next/static/chunks/0l8bfa2xewq69.js +0 -1
- package/out/_next/static/chunks/0n-zml1gn0o1u.js +0 -1
- package/out/_next/static/chunks/0n92hec_jb_-_.js +0 -1
- package/out/_next/static/chunks/0pv2wirx45e1m.js +0 -1
- package/out/_next/static/chunks/0qxd_8t3nca36.js +0 -1
- package/out/_next/static/chunks/0s1jghzw8jufz.js +0 -1
- package/out/_next/static/chunks/0s84ekz_f9ngx.js +0 -1
- package/out/_next/static/chunks/0ti58h622yo-_.js +0 -2
- package/out/_next/static/chunks/0u8yr4k1y6m2t.js +0 -1
- package/out/_next/static/chunks/0ubxyut5rr600.js +0 -1
- package/out/_next/static/chunks/0wbw9h7rsis2r.js +0 -1
- package/out/_next/static/chunks/0y4e49hpuucdi.js +0 -1
- package/out/_next/static/chunks/1-b44873bjsdw.js +0 -1
- package/out/_next/static/chunks/1-c3a1vnl8v1q.js +0 -1
- package/out/_next/static/chunks/1-xf86jgea22y.js +0 -1
- package/out/_next/static/chunks/10b0qqdnb_nox.js +0 -1
- package/out/_next/static/chunks/12kdmh0h_mboy.js +0 -1
- package/out/_next/static/chunks/14ijcpo72av4r.js +0 -1
- package/out/_next/static/chunks/16hdip1drt8o-.js +0 -1
- package/out/_next/static/chunks/18txc1wwwu9f9.js +0 -1
- package/out/_next/static/chunks/18wa83g0qfh-b.js +0 -1
- package/out/_next/static/chunks/19dp8nr4uygg2.js +0 -5
- package/out/_next/static/chunks/1_8acnu6_-qe-.js +0 -1
- package/out/_next/static/chunks/1__nujzr9e352.js +0 -3
- package/out/_next/static/chunks/1bmyq1b0by7ug.js +0 -1
- package/out/_next/static/chunks/1d1tpj9nm1nhf.js +0 -1
- package/out/_next/static/chunks/1dfwa563iciz3.js +0 -1
- package/out/_next/static/chunks/1di5enkavl9vx.js +0 -4
- package/out/_next/static/chunks/1fwsjnd1y-lx_.js +0 -1
- package/out/_next/static/chunks/1gaexq_suxai0.js +0 -1
- package/out/_next/static/chunks/1gnggc6370ji-.js +0 -1
- package/out/_next/static/chunks/1gtj_l5ame5mw.js +0 -1
- package/out/_next/static/chunks/1hsvckd0sgdgr.js +0 -1
- package/out/_next/static/chunks/1i4f3n_2_3ery.js +0 -1
- package/out/_next/static/chunks/1j7e3qpjuj89a.js +0 -1
- package/out/_next/static/chunks/1mrvp94tietcv.js +0 -1
- package/out/_next/static/chunks/1mvadj46owrck.js +0 -1
- package/out/_next/static/chunks/1nasz7q3tvb53.js +0 -1
- package/out/_next/static/chunks/1o3ggu95lfu6i.js +0 -1
- package/out/_next/static/chunks/1qjsgebn9m-0l.js +0 -1
- package/out/_next/static/chunks/1rr74xxjtckyv.js +0 -1
- package/out/_next/static/chunks/1uu55ejvi7q5u.js +0 -1
- package/out/_next/static/chunks/1xbzxfeq9789f.js +0 -1
- package/out/_next/static/chunks/1ybiu-rkt50_1.js +0 -1
- package/out/_next/static/chunks/20qelrstvz9_n.js +0 -1
- package/out/_next/static/chunks/21at65obnoo8z.js +0 -1
- package/out/_next/static/chunks/21ko5mxfderw0.js +0 -1
- package/out/_next/static/chunks/21muzwu43o8xg.js +0 -1
- package/out/_next/static/chunks/23d-hvrwpixpm.js +0 -1
- package/out/_next/static/chunks/2569rrrffvm2w.js +0 -31
- package/out/_next/static/chunks/29o74k0d6hkdf.js +0 -1
- package/out/_next/static/chunks/2bm95r0011asw.js +0 -1
- package/out/_next/static/chunks/2btabnibkm0db.js +0 -1
- package/out/_next/static/chunks/2c--awgkdcikq.js +0 -1
- package/out/_next/static/chunks/2c2dspoukng-5.js +0 -1
- package/out/_next/static/chunks/2ep7mjbaoeou0.js +0 -1
- package/out/_next/static/chunks/2ezgqm7atphi6.js +0 -1
- package/out/_next/static/chunks/2gfjzq_vjea4w.js +0 -1
- package/out/_next/static/chunks/2h5hase6ewoyc.js +0 -1
- package/out/_next/static/chunks/2hghi41nhdww2.css +0 -3
- package/out/_next/static/chunks/2ies66gmou203.js +0 -1
- package/out/_next/static/chunks/2jenu2eek9viz.js +0 -1
- package/out/_next/static/chunks/2luaj_cf5f19-.js +0 -1
- package/out/_next/static/chunks/2mgmvz66gh5ub.js +0 -1
- package/out/_next/static/chunks/2nwlqtv3vrzcv.js +0 -1
- package/out/_next/static/chunks/2o8k8x5zcepfy.js +0 -1
- package/out/_next/static/chunks/2pcdnd4nzcw4c.js +0 -1
- package/out/_next/static/chunks/2q0rz76kj6h5z.js +0 -1
- package/out/_next/static/chunks/2si5cg3hl5dtf.js +0 -4
- package/out/_next/static/chunks/2uhrhq35bki6u.js +0 -1
- package/out/_next/static/chunks/2wi7y3sfqyqdo.js +0 -3
- package/out/_next/static/chunks/2ymtumj-hfrjo.js +0 -1
- package/out/_next/static/chunks/2zdzgmacaoor9.js +0 -1
- package/out/_next/static/chunks/3-irhmtm1q5qw.js +0 -1
- package/out/_next/static/chunks/3-k74vn9exnb6.js +0 -1
- package/out/_next/static/chunks/31ei992g8gqz9.js +0 -1
- package/out/_next/static/chunks/34845aqksy1dl.js +0 -3
- package/out/_next/static/chunks/34y7nx6qmat06.js +0 -1
- package/out/_next/static/chunks/36rqw8h6ildpl.js +0 -1
- package/out/_next/static/chunks/3a_khw6q6pyh1.js +0 -1
- package/out/_next/static/chunks/3c_31f20z4jrl.js +0 -1
- package/out/_next/static/chunks/3ckp70rgr63u9.js +0 -1
- package/out/_next/static/chunks/3ed24zmt8qfys.js +0 -1
- package/out/_next/static/chunks/3ez20hi1mxw0w.js +0 -1
- package/out/_next/static/chunks/3fdx-rnos5ft-.js +0 -1
- package/out/_next/static/chunks/3fgfbxxb-j_bn.js +0 -4
- package/out/_next/static/chunks/3k-gz8qf-mj-p.js +0 -1
- package/out/_next/static/chunks/3lehc5pujwhsz.js +0 -1
- package/out/_next/static/chunks/3m0ytnc241yfz.js +0 -1
- package/out/_next/static/chunks/3mpe7c3iyxn5h.js +0 -1
- package/out/_next/static/chunks/3mvaub8qjdyuc.js +0 -1
- package/out/_next/static/chunks/3nw7u4bie0-g6.js +0 -1
- package/out/_next/static/chunks/3qatb38-tk_gd.js +0 -1
- package/out/_next/static/chunks/3tdcdi_utmoy_.js +0 -1
- package/out/_next/static/chunks/3tdzweqszru4y.js +0 -1
- package/out/_next/static/chunks/3tt_ir_va6262.js +0 -1
- package/out/_next/static/chunks/3y_51bmdnc0ey.js +0 -1
- package/out/_next/static/chunks/3yr66ufoli71t.js +0 -1
- package/out/_next/static/chunks/41qxc142snm22.js +0 -1
- package/out/_next/static/chunks/43qmngblcab8f.js +0 -1
- package/out/_next/static/chunks/turbopack-3r8yn0j92tqw_.js +0 -1
- package/out/_not-found/__next._head.txt +0 -6
- package/out/_not-found/__next._index.txt +0 -5
- package/out/_not-found/__next._not-found.txt +0 -5
- /package/out/_next/static/{BvOGdrl2Cfw-jVV73WY6a → A1hxMz783bIWo0Q9qqV3L}/_buildManifest.js +0 -0
- /package/out/_next/static/{BvOGdrl2Cfw-jVV73WY6a → A1hxMz783bIWo0Q9qqV3L}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{BvOGdrl2Cfw-jVV73WY6a → A1hxMz783bIWo0Q9qqV3L}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,36995,e=>{"use strict";var t,s,r=e.i(72003),i=e.i(55206),a=e.i(56145),o=e.i(23037),n=e.i(58773);function l(e){let t,s,r,i,l,h,u,c,d,p,f,x,g,m=e.pathArray,V=e.closeArray||!1,O=e.closePath||!1,_=e.invertUV||!1,M=Math.floor(m[0].length/2),y=e.offset||M;y=y>M?M:Math.floor(y);let T=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,b=e.uvs,v=e.colors,D=[],A=[],I=[],w=[],F=[],C=[],P=[],L=[],B=[],z=[];if(m.length<2){let e=[],t=[];for(r=0;r<m[0].length-y;r++)e.push(m[0][r]),t.push(m[0][r+y]);m=[e,t]}let E=0,S=+!!O,R=+!!V;for(t=m[0].length,s=0;s<m.length+R;s++){for(P[s]=0,F[s]=[0],t=t<(h=(l=s===m.length?m[0]:m[s]).length)?t:h,i=0;i<h;)D.push(l[i].x,l[i].y,l[i].z),i>0&&(u=l[i].subtract(l[i-1]).length()+P[s],F[s].push(u),P[s]=u),i++;O&&(i--,D.push(l[0].x,l[0].y,l[0].z),u=l[i].subtract(l[0]).length()+P[s],F[s].push(u),P[s]=u),B[s]=h+S,z[s]=E,E+=h+S}for(r=0;r<t+S;r++)for(L[r]=0,C[r]=[0],s=0;s<m.length-1+R;s++)c=m[s],d=s===m.length-1?m[0]:m[s+1],r===t?(p=c[0],f=d[0]):(p=c[r],f=d[r]),u=f.subtract(p).length()+L[r],C[r].push(u),L[r]=u;if(b)for(s=0;s<b.length;s++)w.push(b[s].x,n.useOpenGLOrientationForUV?1-b[s].y:b[s].y);else for(s=0;s<m.length+R;s++)for(r=0;r<t+S;r++)x=0!=P[s]?F[s][r]/P[s]:0,g=0!=L[r]?C[r][s]/L[r]:0,_?w.push(g,x):w.push(x,n.useOpenGLOrientationForUV?1-g:g);let U=0,N=B[s=0]-1,W=B[s+1]-1,G=N<W?N:W,H=z[1]-z[0],Z=B.length-1;for(;U<=G&&s<Z;)A.push(U,U+H,U+1),A.push(U+H+1,U+1,U+H),(U+=1)===G&&(H=z[++s+1]-z[s],N=B[s]-1,W=B[s+1]-1,U=z[s],G=N<W?N+U:W+U);if(o.VertexData.ComputeNormals(D,A,I),O){let e,t;for(s=0;s<m.length;s++){e=3*z[s],t=s+1<m.length?(z[s+1]-1)*3:I.length-3,I[e]=(I[e]+I[t])*.5,I[e+1]=(I[e+1]+I[t+1])*.5,I[e+2]=(I[e+2]+I[t+2])*.5;let r=Math.sqrt(I[e]*I[e]+I[e+1]*I[e+1]+I[e+2]*I[e+2]);I[e]/=r,I[e+1]/=r,I[e+2]/=r,I[t]=I[e],I[t+1]=I[e+1],I[t+2]=I[e+2]}}if(V){let e=3*z[0],s=3*z[m.length];for(r=0;r<t+S;r++){I[e]=(I[e]+I[s])*.5,I[e+1]=(I[e+1]+I[s+1])*.5,I[e+2]=(I[e+2]+I[s+2])*.5;let t=Math.sqrt(I[e]*I[e]+I[e+1]*I[e+1]+I[e+2]*I[e+2]);I[e]/=t,I[e+1]/=t,I[e+2]/=t,I[s]=I[e],I[s+1]=I[e+1],I[s+2]=I[e+2],e+=3,s+=3}}o.VertexData._ComputeSides(T,D,A,I,w,e.frontUVs,e.backUVs);let X=null;if(v){X=new Float32Array(4*v.length);for(let e=0;e<v.length;e++)X[4*e]=v[e].r,X[4*e+1]=v[e].g,X[4*e+2]=v[e].b,X[4*e+3]=v[e].a}let k=new o.VertexData,Y=new Float32Array(D),K=new Float32Array(I),Q=new Float32Array(w);return k.indices=A,k.positions=Y,k.normals=K,k.uvs=Q,X&&k.set(X,a.VertexBuffer.ColorKind),O&&(k._idx=z),k}function h(e,t,s=null){let u=t.pathArray,c=t.closeArray,d=t.closePath,p=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),f=t.instance,x=t.updatable;if(f){let e=r.TmpVectors.Vector3[0].setAll(Number.MAX_VALUE),s=r.TmpVectors.Vector3[1].setAll(-Number.MAX_VALUE),l=f.getVerticesData(a.VertexBuffer.PositionKind);if((t=>{let r=u[0].length,a=0,o=f._originalBuilderSideOrientation===i.Mesh.DOUBLESIDE?2:1;for(let i=1;i<=o;++i)for(let i=0;i<u.length;++i){let o=u[i],n=o.length;r=r<n?r:n;for(let i=0;i<r;++i){let r=o[i];t[a]=r.x,t[a+1]=r.y,t[a+2]=r.z,e.minimizeInPlaceFromFloats(r.x,r.y,r.z),s.maximizeInPlaceFromFloats(r.x,r.y,r.z),a+=3}if(f._creationDataStorage&&f._creationDataStorage.closePath){let e=o[0];t[a]=e.x,t[a+1]=e.y,t[a+2]=e.z,a+=3}}})(l),f.hasBoundingInfo?f.getBoundingInfo().reConstruct(e,s,f._worldMatrix):f.buildBoundingInfo(e,s,f._worldMatrix),f.updateVerticesData(a.VertexBuffer.PositionKind,l,!1,!1),t.colors){let e=f.getVerticesData(a.VertexBuffer.ColorKind);for(let s=0,r=0;s<t.colors.length;s++,r+=4){let i=t.colors[s];e[r]=i.r,e[r+1]=i.g,e[r+2]=i.b,e[r+3]=i.a}f.updateVerticesData(a.VertexBuffer.ColorKind,e,!1,!1)}if(t.uvs){let e=f.getVerticesData(a.VertexBuffer.UVKind);for(let s=0;s<t.uvs.length;s++)e[2*s]=t.uvs[s].x,e[2*s+1]=n.useOpenGLOrientationForUV?1-t.uvs[s].y:t.uvs[s].y;f.updateVerticesData(a.VertexBuffer.UVKind,e,!1,!1)}if(!f.areNormalsFrozen||f.isFacetDataEnabled){let e=f.getIndices(),t=f.getVerticesData(a.VertexBuffer.NormalKind),s=f.isFacetDataEnabled?f.getFacetDataParameters():null;if(o.VertexData.ComputeNormals(l,e,t,s),f._creationDataStorage&&f._creationDataStorage.closePath){let e,s;for(let r=0;r<u.length;r++)e=3*f._creationDataStorage.idx[r],s=r+1<u.length?(f._creationDataStorage.idx[r+1]-1)*3:t.length-3,t[e]=(t[e]+t[s])*.5,t[e+1]=(t[e+1]+t[s+1])*.5,t[e+2]=(t[e+2]+t[s+2])*.5,t[s]=t[e],t[s+1]=t[e+1],t[s+2]=t[e+2]}f.areNormalsFrozen||f.updateVerticesData(a.VertexBuffer.NormalKind,t,!1,!1)}return f}{let r=new i.Mesh(e,s);r._originalBuilderSideOrientation=p,r._creationDataStorage=new i._CreationDataStorage;let a=l(t);return d&&(r._creationDataStorage.idx=a._idx),r._creationDataStorage.closePath=d,r._creationDataStorage.closeArray=c,a.applyToMesh(r,x),r}}let u=!1;function c(e){let t=[],s=[],r=[],i=[],a=e.radius||.5,l=e.tessellation||64,h=e.arc&&(e.arc<=0||e.arc>1)?1:e.arc||1,u=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE;t.push(0,0,0),i.push(.5,.5);let c=2*Math.PI*h,d=1===h?c/l:c/(l-1),p=0;for(let e=0;e<l;e++){let e=Math.cos(p),s=Math.sin(p),r=(e+1)/2,o=(1-s)/2;t.push(a*e,a*s,0),i.push(r,n.useOpenGLOrientationForUV?1-o:o),p+=d}1===h&&(t.push(t[3],t[4],t[5]),i.push(i[2],n.useOpenGLOrientationForUV?1-i[3]:i[3]));let f=t.length/3;for(let e=1;e<f-1;e++)s.push(e+1,0,e);o.VertexData.ComputeNormals(t,s,r),o.VertexData._ComputeSides(u,t,s,r,i,e.frontUVs,e.backUVs);let x=new o.VertexData;return x.indices=s,x.positions=t,x.normals=r,x.uvs=i,x}function d(e,t={},s=null){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,c(t).applyToMesh(r,t.updatable),r}u=!0,o.VertexData.CreateRibbon=l,i.Mesh.CreateRibbon=(e,t,s=!1,r,i,a,o=!1,n,l)=>h(e,{pathArray:t,closeArray:s,closePath:r,offset:i,updatable:o,sideOrientation:n,instance:l},a);let p=!1;p=!0,o.VertexData.CreateDisc=c,i.Mesh.CreateDisc=(e,t,s,r=null,i,a)=>d(e,{radius:t,tessellation:s,sideOrientation:a,updatable:i},r);var f=e.i(64073);function x(e){let t=[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23],s=[0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0],i=[],a=e.width||e.size||1,l=e.height||e.size||1,h=e.depth||e.size||1,u=e.wrap||!1,c=void 0===e.topBaseAt?1:e.topBaseAt,d=void 0===e.bottomBaseAt?0:e.bottomBaseAt;c=(c+4)%4,d=(d+4)%4;let p=[2,0,3,1][c],x=[2,0,1,3][d],g=[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,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,-1,1];if(u){t=[2,3,0,2,0,1,4,5,6,4,6,7,9,10,11,9,11,8,12,14,15,12,13,14],g=[-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,1,-1,1,-1,-1,1,1,-1,-1,1,-1,-1,-1];let e=[[1,1,1],[-1,1,1],[-1,1,-1],[1,1,-1]],s=[[-1,-1,1],[1,-1,1],[1,-1,-1],[-1,-1,-1]],r=[17,18,19,16],i=[22,23,20,21];for(;p>0;)e.unshift(e.pop()),r.unshift(r.pop()),p--;for(;x>0;)s.unshift(s.pop()),i.unshift(i.pop()),x--;e=e.flat(),s=s.flat(),g=g.concat(e).concat(s),t.push(r[0],r[2],r[3],r[0],r[1],r[2]),t.push(i[0],i[2],i[3],i[0],i[1],i[2])}let m=[a/2,l/2,h/2],V=g.reduce((e,t,s)=>e.concat(t*m[s%3]),[]),O=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,_=e.faceUV||Array(6),M=e.faceColors,y=[];for(let e=0;e<6;e++)void 0===_[e]&&(_[e]=new r.Vector4(0,0,1,1)),M&&void 0===M[e]&&(M[e]=new f.Color4(1,1,1,1));for(let e=0;e<6;e++)if(i.push(_[e].z,n.useOpenGLOrientationForUV?1-_[e].w:_[e].w),i.push(_[e].x,n.useOpenGLOrientationForUV?1-_[e].w:_[e].w),i.push(_[e].x,n.useOpenGLOrientationForUV?1-_[e].y:_[e].y),i.push(_[e].z,n.useOpenGLOrientationForUV?1-_[e].y:_[e].y),M)for(let t=0;t<4;t++)y.push(M[e].r,M[e].g,M[e].b,M[e].a);o.VertexData._ComputeSides(O,V,t,s,i,e.frontUVs,e.backUVs);let T=new o.VertexData;return T.indices=t,T.positions=V,T.normals=s,T.uvs=i,M&&(T.colors=O===o.VertexData.DOUBLESIDE?y.concat(y):y),T}function g(e,t={},s=null){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,x(t).applyToMesh(r,t.updatable),r}let m=!1;function V(e){let t=e.pattern||i.Mesh.NO_FLIP,s=e.tileWidth||e.tileSize||1,r=e.tileHeight||e.tileSize||1,a=e.alignHorizontal||0,n=e.alignVertical||0,l=e.width||e.size||1,h=Math.floor(l/s),u=l-h*s,c=e.height||e.size||1,d=Math.floor(c/r),p=c-d*r,f=s*h/2,x=r*d/2,g=0,m=0,V=0,O=0,_=0,M=0;if(u>0||p>0){switch(V=-f,O=-x,_=f,M=x,a){case i.Mesh.CENTER:u/=2,V-=u,_+=u;break;case i.Mesh.LEFT:_+=u,g=-u/2;break;case i.Mesh.RIGHT:V-=u,g=u/2}switch(n){case i.Mesh.CENTER:p/=2,O-=p,M+=p;break;case i.Mesh.BOTTOM:M+=p,m=-p/2;break;case i.Mesh.TOP:O-=p,m=p/2}}let y=[],T=[],b=[];b[0]=[0,0,1,0,1,1,0,1],b[1]=[0,0,1,0,1,1,0,1],(t===i.Mesh.ROTATE_TILE||t===i.Mesh.ROTATE_ROW)&&(b[1]=[1,1,0,1,0,0,1,0]),(t===i.Mesh.FLIP_TILE||t===i.Mesh.FLIP_ROW)&&(b[1]=[1,0,0,0,0,1,1,1]),(t===i.Mesh.FLIP_N_ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_ROW)&&(b[1]=[0,1,1,1,1,0,0,0]);let v=[],D=[],A=[],I=0;for(let e=0;e<d;e++)for(let a=0;a<h;a++)y.push(-f+a*s+g,-x+e*r+m,0),y.push(-f+(a+1)*s+g,-x+e*r+m,0),y.push(-f+(a+1)*s+g,-x+(e+1)*r+m,0),y.push(-f+a*s+g,-x+(e+1)*r+m,0),A.push(I,I+1,I+3,I+1,I+2,I+3),v=t===i.Mesh.FLIP_TILE||t===i.Mesh.ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_TILE?v.concat(b[(a%2+e%2)%2]):t===i.Mesh.FLIP_ROW||t===i.Mesh.ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_ROW?v.concat(b[e%2]):v.concat(b[0]),D.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1),I+=4;if(u>0||p>0){let e,o,l,c,b,w=p>0&&(n===i.Mesh.CENTER||n===i.Mesh.TOP),F=p>0&&(n===i.Mesh.CENTER||n===i.Mesh.BOTTOM),C=u>0&&(a===i.Mesh.CENTER||a===i.Mesh.RIGHT),P=u>0&&(a===i.Mesh.CENTER||a===i.Mesh.LEFT);if(w&&C&&(y.push(V+g,O+m,0),y.push(-f+g,O+m,0),y.push(-f+g,O+p+m,0),y.push(V+g,O+p+m,0),A.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,c=1,b=1,e=[o=1-u/s,l=1-p/r,c,l,c,b,o,b],t===i.Mesh.ROTATE_ROW&&(e=[1-o,1-l,1-c,1-l,1-c,1-b,1-o,1-b]),t===i.Mesh.FLIP_ROW&&(e=[1-o,l,1-c,l,1-c,b,1-o,b]),t===i.Mesh.FLIP_N_ROTATE_ROW&&(e=[o,1-l,c,1-l,c,1-b,o,1-b]),v=v.concat(e),D.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),w&&P&&(y.push(f+g,O+m,0),y.push(_+g,O+m,0),y.push(_+g,O+p+m,0),y.push(f+g,O+p+m,0),A.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,b=1,e=[o=0,l=1-p/r,c=u/s,l,c,b,o,b],(t===i.Mesh.ROTATE_ROW||t===i.Mesh.ROTATE_TILE&&h%2==0)&&(e=[1-o,1-l,1-c,1-l,1-c,1-b,1-o,1-b]),(t===i.Mesh.FLIP_ROW||t===i.Mesh.FLIP_TILE&&h%2==0)&&(e=[1-o,l,1-c,l,1-c,b,1-o,b]),(t===i.Mesh.FLIP_N_ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_TILE&&h%2==0)&&(e=[o,1-l,c,1-l,c,1-b,o,1-b]),v=v.concat(e),D.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),F&&C&&(y.push(V+g,x+m,0),y.push(-f+g,x+m,0),y.push(-f+g,M+m,0),y.push(V+g,M+m,0),A.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,l=0,c=1,e=[o=1-u/s,l,c,l,c,b=p/r,o,b],(t===i.Mesh.ROTATE_ROW&&d%2==1||t===i.Mesh.ROTATE_TILE&&d%1==0)&&(e=[1-o,1-l,1-c,1-l,1-c,1-b,1-o,1-b]),(t===i.Mesh.FLIP_ROW&&d%2==1||t===i.Mesh.FLIP_TILE&&d%2==0)&&(e=[1-o,l,1-c,l,1-c,b,1-o,b]),(t===i.Mesh.FLIP_N_ROTATE_ROW&&d%2==1||t===i.Mesh.FLIP_N_ROTATE_TILE&&d%2==0)&&(e=[o,1-l,c,1-l,c,1-b,o,1-b]),v=v.concat(e),D.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),F&&P&&(y.push(f+g,x+m,0),y.push(_+g,x+m,0),y.push(_+g,M+m,0),y.push(f+g,M+m,0),A.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,e=[o=0,l=0,c=u/s,l,c,b=p/r,o,b],(t===i.Mesh.ROTATE_ROW&&d%2==1||t===i.Mesh.ROTATE_TILE&&(d+h)%2==1)&&(e=[1-o,1-l,1-c,1-l,1-c,1-b,1-o,1-b]),(t===i.Mesh.FLIP_ROW&&d%2==1||t===i.Mesh.FLIP_TILE&&(d+h)%2==1)&&(e=[1-o,l,1-c,l,1-c,b,1-o,b]),(t===i.Mesh.FLIP_N_ROTATE_ROW&&d%2==1||t===i.Mesh.FLIP_N_ROTATE_TILE&&(d+h)%2==1)&&(e=[o,1-l,c,1-l,c,1-b,o,1-b]),v=v.concat(e),D.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)),w){let e=[];o=0,l=1-p/r,c=1,b=1,e[0]=[o,l,c,l,c,b,o,b],e[1]=[o,l,c,l,c,b,o,b],(t===i.Mesh.ROTATE_TILE||t===i.Mesh.ROTATE_ROW)&&(e[1]=[1-o,1-l,1-c,1-l,1-c,1-b,1-o,1-b]),(t===i.Mesh.FLIP_TILE||t===i.Mesh.FLIP_ROW)&&(e[1]=[1-o,l,1-c,l,1-c,b,1-o,b]),(t===i.Mesh.FLIP_N_ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_ROW)&&(e[1]=[o,1-l,c,1-l,c,1-b,o,1-b]);for(let r=0;r<h;r++)y.push(-f+r*s+g,O+m,0),y.push(-f+(r+1)*s+g,O+m,0),y.push(-f+(r+1)*s+g,O+p+m,0),y.push(-f+r*s+g,O+p+m,0),A.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,v=t===i.Mesh.FLIP_TILE||t===i.Mesh.ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_TILE?v.concat(e[(r+1)%2]):t===i.Mesh.FLIP_ROW||t===i.Mesh.ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_ROW?v.concat(e[1]):v.concat(e[0]),D.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)}if(F){let e=[];o=0,l=0,c=1,b=p/r,e[0]=[o,l,c,l,c,b,o,b],e[1]=[o,l,c,l,c,b,o,b],(t===i.Mesh.ROTATE_TILE||t===i.Mesh.ROTATE_ROW)&&(e[1]=[1-o,1-l,1-c,1-l,1-c,1-b,1-o,1-b]),(t===i.Mesh.FLIP_TILE||t===i.Mesh.FLIP_ROW)&&(e[1]=[1-o,l,1-c,l,1-c,b,1-o,b]),(t===i.Mesh.FLIP_N_ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_ROW)&&(e[1]=[o,1-l,c,1-l,c,1-b,o,1-b]);for(let r=0;r<h;r++)y.push(-f+r*s+g,M-p+m,0),y.push(-f+(r+1)*s+g,M-p+m,0),y.push(-f+(r+1)*s+g,M+m,0),y.push(-f+r*s+g,M+m,0),A.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,v=t===i.Mesh.FLIP_TILE||t===i.Mesh.ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_TILE?v.concat(e[(r+d)%2]):t===i.Mesh.FLIP_ROW||t===i.Mesh.ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_ROW?v.concat(e[d%2]):v.concat(e[0]),D.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)}if(C){let e=[];o=1-u/s,l=0,c=1,b=1,e[0]=[o,l,c,l,c,b,o,b],e[1]=[o,l,c,l,c,b,o,b],(t===i.Mesh.ROTATE_TILE||t===i.Mesh.ROTATE_ROW)&&(e[1]=[1-o,1-l,1-c,1-l,1-c,1-b,1-o,1-b]),(t===i.Mesh.FLIP_TILE||t===i.Mesh.FLIP_ROW)&&(e[1]=[1-o,l,1-c,l,1-c,b,1-o,b]),(t===i.Mesh.FLIP_N_ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_ROW)&&(e[1]=[o,1-l,c,1-l,c,1-b,o,1-b]);for(let s=0;s<d;s++)y.push(V+g,-x+s*r+m,0),y.push(V+u+g,-x+s*r+m,0),y.push(V+u+g,-x+(s+1)*r+m,0),y.push(V+g,-x+(s+1)*r+m,0),A.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,v=t===i.Mesh.FLIP_TILE||t===i.Mesh.ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_TILE?v.concat(e[(s+1)%2]):t===i.Mesh.FLIP_ROW||t===i.Mesh.ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_ROW?v.concat(e[s%2]):v.concat(e[0]),D.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)}if(P){let e=[];o=0,l=0,c=u/r,b=1,e[0]=[o,l,c,l,c,b,o,b],e[1]=[o,l,c,l,c,b,o,b],(t===i.Mesh.ROTATE_TILE||t===i.Mesh.ROTATE_ROW)&&(e[1]=[1-o,1-l,1-c,1-l,1-c,1-b,1-o,1-b]),(t===i.Mesh.FLIP_TILE||t===i.Mesh.FLIP_ROW)&&(e[1]=[1-o,l,1-c,l,1-c,b,1-o,b]),(t===i.Mesh.FLIP_N_ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_ROW)&&(e[1]=[o,1-l,c,1-l,c,1-b,o,1-b]);for(let s=0;s<d;s++)y.push(_-u+g,-x+s*r+m,0),y.push(_+g,-x+s*r+m,0),y.push(_+g,-x+(s+1)*r+m,0),y.push(_-u+g,-x+(s+1)*r+m,0),A.push(I,I+1,I+3,I+1,I+2,I+3),I+=4,v=t===i.Mesh.FLIP_TILE||t===i.Mesh.ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_TILE?v.concat(e[(s+h)%2]):t===i.Mesh.FLIP_ROW||t===i.Mesh.ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_ROW?v.concat(e[s%2]):v.concat(e[0]),D.push(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),T.push(0,0,-1,0,0,-1,0,0,-1,0,0,-1)}}let w=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE;o.VertexData._ComputeSides(w,y,A,T,v,e.frontUVs,e.backUVs);let F=new o.VertexData;return F.indices=A,F.positions=y,F.normals=T,F.uvs=v,F.colors=w===o.VertexData.DOUBLESIDE?D.concat(D):D,F}m=!0,o.VertexData.CreateBox=x,i.Mesh.CreateBox=(e,t,s=null,r,i)=>g(e,{size:t,sideOrientation:i,updatable:r},s);let O=!1;function _(){O||(O=!0,o.VertexData.CreateTiledPlane=V)}function M(e){let t,s=e.faceUV||Array(6),a=e.faceColors,l=e.pattern||i.Mesh.NO_FLIP,h=e.width||e.size||1,u=e.height||e.size||1,c=e.depth||e.size||1,d=e.tileWidth||e.tileSize||1,p=e.tileHeight||e.tileSize||1,x=e.alignHorizontal||0,g=e.alignVertical||0,m=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE;for(let e=0;e<6;e++)void 0===s[e]&&(s[e]=new r.Vector4(0,0,1,1)),a&&void 0===a[e]&&(a[e]=new f.Color4(1,1,1,1));let O=h/2,_=u/2,M=c/2,y=[];for(let e=0;e<2;e++)y[e]=V({pattern:l,tileWidth:d,tileHeight:p,width:h,height:u,alignVertical:g,alignHorizontal:x,sideOrientation:m});for(let e=2;e<4;e++)y[e]=V({pattern:l,tileWidth:d,tileHeight:p,width:c,height:u,alignVertical:g,alignHorizontal:x,sideOrientation:m});let T=g;g===i.Mesh.BOTTOM?T=i.Mesh.TOP:g===i.Mesh.TOP&&(T=i.Mesh.BOTTOM);for(let e=4;e<6;e++)y[e]=V({pattern:l,tileWidth:d,tileHeight:p,width:h,height:c,alignVertical:T,alignHorizontal:x,sideOrientation:m});let b=[],v=[],D=[],A=[],I=[],w=[],F=[],C=[],P=0;for(let e=0;e<6;e++){let i=y[e].positions.length;w[e]=[],F[e]=[];for(let t=0;t<i/3;t++)w[e].push(new r.Vector3(y[e].positions[3*t],y[e].positions[3*t+1],y[e].positions[3*t+2])),F[e].push(new r.Vector3(y[e].normals[3*t],y[e].normals[3*t+1],y[e].normals[3*t+2]));t=y[e].uvs.length,C[e]=[];for(let r=0;r<t;r+=2)C[e][r]=s[e].x+(s[e].z-s[e].x)*y[e].uvs[r],C[e][r+1]=s[e].y+(s[e].w-s[e].y)*y[e].uvs[r+1],n.useOpenGLOrientationForUV&&(C[e][r+1]=1-C[e][r+1]);if(D=D.concat(C[e]),A=A.concat(y[e].indices.map(e=>e+P)),P+=w[e].length,a){let t=a[e];for(let s=0;s<w[e].length;s++)I.push(t.r,t.g,t.b,t.a)}}let L=[{m:r.Matrix.RotationY(Math.PI),t:new r.Vector3(0,0,M),op:1},{m:r.Matrix.Identity(),t:new r.Vector3(0,0,M),op:-1},{m:r.Matrix.RotationY(-Math.PI/2),t:new r.Vector3(O,0,0),op:1},{m:r.Matrix.RotationY(Math.PI/2),t:new r.Vector3(O,0,0),op:-1},{m:r.Matrix.RotationX(Math.PI/2),t:new r.Vector3(0,_,0),op:1},{m:r.Matrix.RotationX(-Math.PI/2),t:new r.Vector3(0,_,0),op:-1}];for(let e=0;e<6;e++){let{m:t,t:s,op:i}=L[e];for(let a of w[e]){let e=r.Vector3.TransformCoordinates(a,t),o=1===i?e.add(s):e.subtract(s);b.push(o.x,o.y,o.z)}for(let s of F[e]){let e=r.Vector3.TransformNormal(s,t);v.push(e.x,e.y,e.z)}}let B=new o.VertexData;return B.indices=A,B.positions=b,B.normals=v,B.uvs=D,a&&(B.colors=m===o.VertexData.DOUBLESIDE?I.concat(I):I),B}let y=!1;function T(e){let t=0|(e.segments||32),s=e.diameterX||e.diameter||1,i=e.diameterY||e.diameter||1,a=e.diameterZ||e.diameter||1,l=e.arc&&(e.arc<=0||e.arc>1)?1:e.arc||1,h=e.slice&&e.slice<=0?1:e.slice||1,u=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,c=!!e.dedupTopBottomIndices,d=new r.Vector3(s/2,i/2,a/2),p=2+t,f=2*p,x=[],g=[],m=[],V=[];for(let e=0;e<=p;e++){let t=e/p,s=t*Math.PI*h;for(let e=0;e<=f;e++){let i=e/f,a=i*Math.PI*2*l,o=r.Matrix.RotationZ(-s),h=r.Matrix.RotationY(a),u=r.Vector3.TransformCoordinates(r.Vector3.Up(),o),c=r.Vector3.TransformCoordinates(u,h),p=c.multiply(d),x=c.divide(d).normalize();g.push(p.x,p.y,p.z),m.push(x.x,x.y,x.z),V.push(i,n.useOpenGLOrientationForUV?1-t:t)}if(e>0){let t=g.length/3;for(let s=t-2*(f+1);s+f+2<t;s++)c?(e>1&&(x.push(s),x.push(s+1),x.push(s+f+1)),(e<p||h<1)&&(x.push(s+f+1),x.push(s+1),x.push(s+f+2))):(x.push(s),x.push(s+1),x.push(s+f+1),x.push(s+f+1),x.push(s+1),x.push(s+f+2))}}o.VertexData._ComputeSides(u,g,x,m,V,e.frontUVs,e.backUVs);let O=new o.VertexData;return O.indices=x,O.positions=g,O.normals=m,O.uvs=V,O}function b(e,t={},s=null){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,T(t).applyToMesh(r,t.updatable),r}y=!0,_(),o.VertexData.CreateTiledBox=M;let v=!1;v=!0,o.VertexData.CreateSphere=T,i.Mesh.CreateSphere=(e,t,s,r,i,a)=>b(e,{segments:t,diameterX:s,diameterY:s,diameterZ:s,sideOrientation:a,updatable:i},r);var D=e.i(87710),A=e.i(92356);function I(e){let t,s,a,l,h,u,c,d,p,x=e.height||2,g=0===e.diameterTop?0:e.diameterTop||e.diameter||1,m=0===e.diameterBottom?0:e.diameterBottom||e.diameter||1;g=g||1e-5,m=m||1e-5;let V=0|(e.tessellation||24),O=0|(e.subdivisions||1),_=!!e.hasRings,M=!!e.enclose,y=0===e.cap?0:e.cap||i.Mesh.CAP_ALL,T=e.arc&&(e.arc<=0||e.arc>1)?1:e.arc||1,b=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,v=e.faceUV||[,,,],D=e.faceColors,I=2+(1+(1!==T&&M?2:0))*(_?O:1);for(t=0;t<I;t++)D&&void 0===D[t]&&(D[t]=new f.Color4(1,1,1,1));for(t=0;t<I;t++)v&&void 0===v[t]&&(v[t]=new r.Vector4(0,0,1,1));let w=[],F=[],C=[],P=[],L=[],B=2*Math.PI*T/V,z=(m-g)/2/x,E=r.Vector3.Zero(),S=r.Vector3.Zero(),R=r.Vector3.Zero(),U=r.Vector3.Zero(),N=r.Vector3.Zero(),W=A.Axis.Y,G=1,H=0;for(h=0;h<=O;h++)for(l=((a=h/O)*(g-m)+m)/2,d=_&&0!==h&&h!==O?2:1,c=0;c<d;c++){for(_&&(G+=c),M&&(G+=2*c),u=0;u<=V;u++)E.x=Math.cos(-(s=u*B))*l,E.y=-x/2+a*x,E.z=Math.sin(-s)*l,0===g&&h===O?(S.x=C[C.length-(V+1)*3],S.y=C[C.length-(V+1)*3+1],S.z=C[C.length-(V+1)*3+2]):(S.x=E.x,S.z=E.z,S.y=Math.sqrt(S.x*S.x+S.z*S.z)*z,S.normalize()),0===u&&(R.copyFrom(E),U.copyFrom(S)),F.push(E.x,E.y,E.z),C.push(S.x,S.y,S.z),p=_?H!==G?v[G].y:v[G].w:v[G].y+(v[G].w-v[G].y)*a,P.push(v[G].x+(v[G].z-v[G].x)*u/V,n.useOpenGLOrientationForUV?1-p:p),D&&L.push(D[G].r,D[G].g,D[G].b,D[G].a);1!==T&&M&&(F.push(E.x,E.y,E.z),F.push(0,E.y,0),F.push(0,E.y,0),F.push(R.x,R.y,R.z),r.Vector3.CrossToRef(W,S,N),N.normalize(),C.push(N.x,N.y,N.z,N.x,N.y,N.z),r.Vector3.CrossToRef(U,W,N),N.normalize(),C.push(N.x,N.y,N.z,N.x,N.y,N.z),p=_?H!==G?v[G+1].y:v[G+1].w:v[G+1].y+(v[G+1].w-v[G+1].y)*a,P.push(v[G+1].x,n.useOpenGLOrientationForUV?1-p:p),P.push(v[G+1].z,n.useOpenGLOrientationForUV?1-p:p),p=_?H!==G?v[G+2].y:v[G+2].w:v[G+2].y+(v[G+2].w-v[G+2].y)*a,P.push(v[G+2].x,n.useOpenGLOrientationForUV?1-p:p),P.push(v[G+2].z,n.useOpenGLOrientationForUV?1-p:p),D&&(L.push(D[G+1].r,D[G+1].g,D[G+1].b,D[G+1].a),L.push(D[G+1].r,D[G+1].g,D[G+1].b,D[G+1].a),L.push(D[G+2].r,D[G+2].g,D[G+2].b,D[G+2].a),L.push(D[G+2].r,D[G+2].g,D[G+2].b,D[G+2].a))),H!==G&&(H=G)}let Z=1!==T&&M?V+4:V;for(G=0,h=0;G<O;G++){let e=0,t=0,s=0,r=0;for(u=0;u<V;u++)e=h*(Z+1)+u,t=(h+1)*(Z+1)+u,s=h*(Z+1)+(u+1),r=(h+1)*(Z+1)+(u+1),w.push(e,t,s),w.push(r,s,t);1!==T&&M&&(w.push(e+2,t+2,s+2),w.push(r+2,s+2,t+2),w.push(e+4,t+4,s+4),w.push(r+4,s+4,t+4)),h=_?h+2:h+1}let X=e=>{let t,s,i,a=e?g/2:m/2;if(0===a)return;let o=e?v[I-1]:v[0],l=null;D&&(l=e?D[I-1]:D[0]);let h=F.length/3,u=e?x/2:-x/2,c=new r.Vector3(0,u,0);F.push(c.x,c.y,c.z),C.push(0,e?1:-1,0);let d=o.y+(o.w-o.y)*.5;P.push(o.x+(o.z-o.x)*.5,n.useOpenGLOrientationForUV?1-d:d),l&&L.push(l.r,l.g,l.b,l.a);let p=new r.Vector2(.5,.5);for(i=0;i<=V;i++){let h=Math.cos(-(t=2*Math.PI*i*T/V)),c=Math.sin(-t);s=new r.Vector3(h*a,u,c*a);let d=new r.Vector2(h*p.x+.5,c*p.y+.5);F.push(s.x,s.y,s.z),C.push(0,e?1:-1,0);let f=o.y+(o.w-o.y)*d.y;P.push(o.x+(o.z-o.x)*d.x,n.useOpenGLOrientationForUV?1-f:f),l&&L.push(l.r,l.g,l.b,l.a)}for(i=0;i<V;i++)e?(w.push(h),w.push(h+(i+2)),w.push(h+(i+1))):(w.push(h),w.push(h+(i+1)),w.push(h+(i+2)))};(y===i.Mesh.CAP_START||y===i.Mesh.CAP_ALL)&&X(!1),(y===i.Mesh.CAP_END||y===i.Mesh.CAP_ALL)&&X(!0),o.VertexData._ComputeSides(b,F,w,C,P,e.frontUVs,e.backUVs);let k=new o.VertexData;return k.indices=w,k.positions=F,k.normals=C,k.uvs=P,D&&(k.colors=L),k}function w(e,t={},s){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,I(t).applyToMesh(r,t.updatable),r}let F=!1;function C(e){let t=[],s=[],i=[],a=[],l=e.diameter||1,h=e.thickness||.5,u=0|(e.tessellation||16),c=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,d=u+1;for(let e=0;e<=u;e++){let o=e/u,c=e*Math.PI*2/u-Math.PI/2,p=r.Matrix.Translation(l/2,0,0).multiply(r.Matrix.RotationY(c));for(let l=0;l<=u;l++){let c=1-l/u,f=l*Math.PI*2/u+Math.PI,x=Math.cos(f),g=Math.sin(f),m=new r.Vector3(x,g,0),V=m.scale(h/2),O=new r.Vector2(o,c);V=r.Vector3.TransformCoordinates(V,p),m=r.Vector3.TransformNormal(m,p),s.push(V.x,V.y,V.z),i.push(m.x,m.y,m.z),a.push(O.x,n.useOpenGLOrientationForUV?1-O.y:O.y);let _=(e+1)%d,M=(l+1)%d;t.push(e*d+l),t.push(e*d+M),t.push(_*d+l),t.push(e*d+M),t.push(_*d+M),t.push(_*d+l)}}o.VertexData._ComputeSides(c,s,t,i,a,e.frontUVs,e.backUVs);let p=new o.VertexData;return p.indices=t,p.positions=s,p.normals=i,p.uvs=a,p}function P(e,t={},s){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,C(t).applyToMesh(r,t.updatable),r}F=!0,o.VertexData.CreateCylinder=I,i.Mesh.CreateCylinder=(e,t,s,r,a,o,n,l,h)=>(void 0!==n&&n instanceof D.Scene||(void 0!==n&&(h=l||i.Mesh.DEFAULTSIDE,l=n),n=o,o=1),w(e,{height:t,diameterTop:s,diameterBottom:r,tessellation:a,subdivisions:o,sideOrientation:h,updatable:l},n));let L=!1;function B(e){let t,s,i=[],a=[],l=[],h=[],u=e.radius||2,c=e.tube||.5,d=e.radialSegments||32,p=e.tubularSegments||32,f=e.p||2,x=e.q||3,g=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,m=e=>{let t=Math.cos(e),s=Math.sin(e),i=x/f*e,a=Math.cos(i),o=u*Math.sin(i)*.5;return new r.Vector3(u*(2+a)*.5*t,u*(2+a)*s*.5,o)};for(t=0;t<=d;t++){let e=t%d/d*2*f*Math.PI,i=m(e),o=m(e+.01),l=o.subtract(i),u=o.add(i),x=r.Vector3.Cross(l,u);for(u=r.Vector3.Cross(x,l),x.normalize(),u.normalize(),s=0;s<p;s++){let e=s%p/p*2*Math.PI,r=-c*Math.cos(e),o=c*Math.sin(e);a.push(i.x+r*u.x+o*x.x),a.push(i.y+r*u.y+o*x.y),a.push(i.z+r*u.z+o*x.z),h.push(t/d),h.push(n.useOpenGLOrientationForUV?1-s/p:s/p)}}for(t=0;t<d;t++)for(s=0;s<p;s++){let e=(s+1)%p,r=t*p+s,a=(t+1)*p+s,o=(t+1)*p+e,n=t*p+e;i.push(n),i.push(a),i.push(r),i.push(n),i.push(o),i.push(a)}o.VertexData.ComputeNormals(a,i,l),o.VertexData._ComputeSides(g,a,i,l,h,e.frontUVs,e.backUVs);let V=new o.VertexData;return V.indices=i,V.positions=a,V.normals=l,V.uvs=h,V}function z(e,t={},s){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,B(t).applyToMesh(r,t.updatable),r}L=!0,o.VertexData.CreateTorus=C,i.Mesh.CreateTorus=(e,t,s,r,i,a,o)=>P(e,{diameter:t,thickness:s,tessellation:r,sideOrientation:o,updatable:a},i);let E=!1;E=!0,o.VertexData.CreateTorusKnot=B,i.Mesh.CreateTorusKnot=(e,t,s,r,i,a,o,n,l,h)=>z(e,{radius:t,tube:s,radialSegments:r,tubularSegments:i,p:a,q:o,sideOrientation:h,updatable:l},n);var S=i,R=e.i(45930),U=e.i(7361),N=e.i(43298),W=e.i(43880);class G extends S.Mesh{_isShaderMaterial(e){return!!e&&"ShaderMaterial"===e.getClassName()}constructor(t,s=null,r=null,i=null,o,n,l,h){super(t,s,r,i,o),this.useVertexColor=n,this.useVertexAlpha=l,this.color=new f.Color3(1,1,1),this.alpha=1,this._shaderLanguage=0,this._ownsMaterial=!1,i&&(this.color=i.color.clone(),this.alpha=i.alpha,this.useVertexColor=i.useVertexColor,this.useVertexAlpha=i.useVertexAlpha),this.intersectionThreshold=.1;const u={attributes:[a.VertexBuffer.PositionKind],uniforms:["world","viewProjection"],needAlphaBlending:!0,defines:[],useClipPlane:null,shaderLanguage:0};if(this.useVertexAlpha?u.defines.push("#define VERTEXALPHA"):u.needAlphaBlending=!1,this.useVertexColor?(u.defines.push("#define VERTEXCOLOR"),u.attributes.push(a.VertexBuffer.ColorKind)):(u.uniforms.push("color"),this._color4=new f.Color4),h)this.material=h;else{this.getScene().getEngine().isWebGPU&&!G.ForceGLSL&&(this._shaderLanguage=1),u.shaderLanguage=this._shaderLanguage,u.extraInitializationsAsync=async()=>{1===this._shaderLanguage?await Promise.all([e.A(78526),e.A(76609)]):await Promise.all([e.A(10909),e.A(20954)])};const t=new N.ShaderMaterial("colorShader",this.getScene(),"color",u,!1);t.doNotSerialize=!0,this._ownsMaterial=!0,this._setInternalMaterial(t)}}getClassName(){return"LinesMesh"}get material(){return this._internalAbstractMeshDataInfo._material}set material(e){let t=this.material;if(t===e)return;let s=t&&this._ownsMaterial;this._ownsMaterial=!1,this._setInternalMaterial(e),s&&t?.dispose()}_setInternalMaterial(e){this._setMaterial(e),this.material&&(this.material.fillMode=U.Material.LineListDrawMode,this.material.disableLighting=!0)}get checkCollisions(){return!1}set checkCollisions(e){}_bind(e,t){if(!this._geometry)return this;let s=this.isUnIndexed?null:this._geometry.getIndexBuffer();if(!this._userInstancedBuffersStorage||this.hasThinInstances?this._geometry._bind(t,s):this._geometry._bind(t,s,this._userInstancedBuffersStorage.vertexBuffers,this._userInstancedBuffersStorage.vertexArrayObjects),!this.useVertexColor&&this._isShaderMaterial(this.material)){let{r:e,g:t,b:s}=this.color;this._color4.set(e,t,s,this.alpha),this.material.setColor4("color",this._color4)}return this}_draw(e,t,s){if(!this._geometry||!this._geometry.getVertexBuffers()||!this._unIndexed&&!this._geometry.getIndexBuffer())return this;let r=this.getScene().getEngine();return this._unIndexed?r.drawArraysType(U.Material.LineListDrawMode,e.verticesStart,e.verticesCount,s):r.drawElementsType(U.Material.LineListDrawMode,e.indexStart,e.indexCount,s),this}dispose(e,t=!1,s){!s&&(this._ownsMaterial?this.material?.dispose(!1,!1,!0):t&&this.material?.dispose(!1,!1,!0)),super.dispose(e)}clone(e,t=null,s){return t&&void 0===t._addToSceneRootNodes?(t.source=this,new G(e,this.getScene(),t.parent,t.source,t.doNotCloneChildren)):new G(e,this.getScene(),t,this,s)}createInstance(e){let t=new H(e,this);if(this.instancedBuffers)for(let e in t.instancedBuffers={},this.instancedBuffers)t.instancedBuffers[e]=this.instancedBuffers[e];return t}serialize(e){super.serialize(e),e.color=this.color.asArray(),e.alpha=this.alpha}static Parse(e,t){let s=new G(e.name,t);return s.color=f.Color3.FromArray(e.color),s.alpha=e.alpha,s}}G.ForceGLSL=!1;class H extends R.InstancedMesh{constructor(e,t){super(e,t),this.intersectionThreshold=t.intersectionThreshold}getClassName(){return"InstancedLinesMesh"}}(t=G.prototype).enableEdgesRendering??(t.enableEdgesRendering=(0,W._MissingSideEffect)("LinesMesh","enableEdgesRendering")),(s=H.prototype).enableEdgesRendering??(s.enableEdgesRendering=(0,W._MissingSideEffect)("InstancedLinesMesh","enableEdgesRendering"));var Z=e.i(85789);function X(e){let t=[],s=[],r=e.lines,i=e.colors,a=[],n=0;for(let e=0;e<r.length;e++){let o=r[e];for(let r=0;r<o.length;r++){let{x:l,y:h,z:u}=o[r];if(s.push(l,h,u),i){let{r:t,g:s,b:o,a:n}=i[e][r];a.push(t,s,o,n)}r>0&&(t.push(n-1),t.push(n)),n++}}let l=new o.VertexData;return l.indices=t,l.positions=s,i&&(l.colors=a),l}function k(e){let t,s,i,a=e.dashSize||3,n=e.gapSize||1,l=e.dashNb||200,h=e.points,u=[],c=[],d=r.Vector3.Zero(),p=0,f=0;for(i=0;i<h.length-1;i++)h[i+1].subtractToRef(h[i],d),p+=d.length();let x=p/l,g=a*x/(a+n);for(i=0;i<h.length-1;i++){h[i+1].subtractToRef(h[i],d),t=Math.floor(d.length()/x),d.normalize();for(let e=0;e<t;e++)s=x*e,u.push(h[i].x+s*d.x,h[i].y+s*d.y,h[i].z+s*d.z),u.push(h[i].x+(s+g)*d.x,h[i].y+(s+g)*d.y,h[i].z+(s+g)*d.z),c.push(f,f+1),f+=2}let m=new o.VertexData;return m.positions=u,m.indices=c,m}function Y(e,t,s=null){let r=t.instance,i=t.lines,o=t.colors;if(r){let e,t,s=r.getVerticesData(a.VertexBuffer.PositionKind);o&&(e=r.getVerticesData(a.VertexBuffer.ColorKind));let n=0,l=0;for(let r=0;r<i.length;r++){let a=i[r];for(let i=0;i<a.length;i++)s[n]=a[i].x,s[n+1]=a[i].y,s[n+2]=a[i].z,o&&e&&(t=o[r],e[l]=t[i].r,e[l+1]=t[i].g,e[l+2]=t[i].b,e[l+3]=t[i].a,l+=4),n+=3}return r.updateVerticesData(a.VertexBuffer.PositionKind,s,!1,!1),o&&e&&r.updateVerticesData(a.VertexBuffer.ColorKind,e,!1,!1),r.refreshBoundingInfo(),r}let n=new G(e,s,null,void 0,void 0,!!o,t.useVertexAlpha,t.material);return X(t).applyToMesh(n,t.updatable),n}function K(e,t,s=null){let r=t.colors?[t.colors]:null;return Y(e,{lines:[t.points],updatable:t.updatable,instance:t.instance,colors:r,useVertexAlpha:t.useVertexAlpha,material:t.material},s)}function Q(e,t,s=null){let a=t.points,o=t.instance,n=t.gapSize||1,l=t.dashSize||3;if(o)return(t.dashNb||t.dashSize||t.gapSize||t.useVertexAlpha||t.material)&&Z.Logger.Warn("You have used an option other than points with the instance option. Please be aware that these other options will be ignored."),o.updateMeshPositions(e=>{let t,s,i,n,l=r.Vector3.Zero(),h=e.length/6,u=0,c=0;for(i=0;i<a.length-1;i++)a[i+1].subtractToRef(a[i],l),u+=l.length();let d=u/h,p=o._creationDataStorage.dashSize,f=p*d/(p+o._creationDataStorage.gapSize);for(i=0;i<a.length-1;i++)for(a[i+1].subtractToRef(a[i],l),t=Math.floor(l.length()/d),l.normalize(),n=0;n<t&&c<e.length;)s=d*n,e[c]=a[i].x+s*l.x,e[c+1]=a[i].y+s*l.y,e[c+2]=a[i].z+s*l.z,e[c+3]=a[i].x+(s+f)*l.x,e[c+4]=a[i].y+(s+f)*l.y,e[c+5]=a[i].z+(s+f)*l.z,c+=6,n++;for(;c<e.length;)e[c]=a[i].x,e[c+1]=a[i].y,e[c+2]=a[i].z,c+=3},!1),o;let h=new G(e,s,null,void 0,void 0,void 0,t.useVertexAlpha,t.material);return k(t).applyToMesh(h,t.updatable),h._creationDataStorage=new i._CreationDataStorage,h._creationDataStorage.dashSize=l,h._creationDataStorage.gapSize=n,h}let q=!1;q=!0,o.VertexData.CreateLineSystem=X,o.VertexData.CreateDashedLines=k,i.Mesh.CreateLines=(e,t,s=null,r=!1,i=null)=>K(e,{points:t,updatable:r,instance:i},s),i.Mesh.CreateDashedLines=(e,t,s,r,i,a=null,o,n)=>Q(e,{points:t,dashSize:s,gapSize:r,dashNb:i,updatable:o,instance:n},a);var j=r,J=e.i(40974),$=e.i(26747),ee=e.i(72986);class et extends j.Vector2{constructor(e,t){super(e.x,e.y),this.index=t}}class es{constructor(){this.elements=[]}add(e){let t=[];for(let s of e){let e=new et(s,this.elements.length);t.push(e),this.elements.push(e)}return t}computeBounds(){let e=new j.Vector2(this.elements[0].x,this.elements[0].y),t=new j.Vector2(this.elements[0].x,this.elements[0].y);for(let s of this.elements)s.x<e.x?e.x=s.x:s.x>t.x&&(t.x=s.x),s.y<e.y?e.y=s.y:s.y>t.y&&(t.y=s.y);return{min:e,max:t,width:t.x-e.x,height:t.y-e.y}}}class er{_addToepoint(e){for(let t of e)this._epoints.push(t.x,t.y)}constructor(e,t,s,r=earcut){let i;this._points=new es,this._outlinepoints=new es,this._holes=[],this._epoints=[],this._eholes=[],this.bjsEarcut=r,this._name=e,this._scene=s||ee.EngineStore.LastCreatedScene,i=t instanceof J.Path2?t.getPoints():t,this._addToepoint(i),this._points.add(i),this._outlinepoints.add(i),void 0===this.bjsEarcut&&Z.Logger.Warn("Earcut was not found, the polygon will not be built.")}addHole(e){this._points.add(e);let t=new es;return t.add(e),this._holes.push(t),this._eholes.push(this._epoints.length/2),this._addToepoint(e),this}build(e=!1,t=0,s=2){let r=new i.Mesh(this._name,this._scene),o=this.buildVertexData(t,s);return r.setVerticesData(a.VertexBuffer.PositionKind,o.positions,e),r.setVerticesData(a.VertexBuffer.NormalKind,o.normals,e),r.setVerticesData(a.VertexBuffer.UVKind,o.uvs,e),r.setIndices(o.indices),r}buildVertexData(e=0,t=2){let s=new o.VertexData,r=[],i=[],a=[],n=this._points.computeBounds();for(let e of this._points.elements)r.push(0,1,0),i.push(e.x,0,e.y),a.push((e.x-n.min.x)/n.width,(e.y-n.min.y)/n.height);let l=[],h=this.bjsEarcut(this._epoints,this._eholes,2);for(let e=0;e<h.length;e++)l.push(h[e]);if(e>0){let s=i.length/3;for(let t of this._points.elements)r.push(0,-1,0),i.push(t.x,-e,t.y),a.push(1-(t.x-n.min.x)/n.width,1-(t.y-n.min.y)/n.height);let o=l.length;for(let e=0;e<o;e+=3){let t=l[e+0],r=l[e+1],i=l[e+2];l.push(i+s),l.push(r+s),l.push(t+s)}for(let s of(this._addSide(i,r,a,l,n,this._outlinepoints,e,!1,t),this._holes))this._addSide(i,r,a,l,n,s,e,!0,t)}return s.indices=l,s.positions=i,s.normals=r,s.uvs=a,s}_addSide(e,t,s,r,i,a,o,n,l){let h=e.length/3,u=0;for(let c=0;c<a.elements.length;c++){let d,p=a.elements[c],f=a.elements[(c+1)%a.elements.length];e.push(p.x,0,p.y),e.push(p.x,-o,p.y),e.push(f.x,0,f.y),e.push(f.x,-o,f.y);let x=a.elements[(c+a.elements.length-1)%a.elements.length],g=a.elements[(c+2)%a.elements.length],m=new j.Vector3(-(f.y-p.y),0,f.x-p.x),V=new j.Vector3(-(p.y-x.y),0,p.x-x.x),O=new j.Vector3(-(g.y-f.y),0,g.x-f.x);n||(m=m.scale(-1),V=V.scale(-1),O=O.scale(-1));let _=m.normalizeToNew(),M=V.normalizeToNew(),y=j.Vector3.Dot(M,_);M=y>l?y<$.Epsilon-1?new j.Vector3(p.x,0,p.y).subtract(new j.Vector3(f.x,0,f.y)).normalize():V.add(m).normalize():_;let T=j.Vector3.Dot(O,m);d=T>l?T<$.Epsilon-1?new j.Vector3(f.x,0,f.y).subtract(new j.Vector3(p.x,0,p.y)).normalize():O.add(m).normalize():_,s.push(u/i.width,0),s.push(u/i.width,1),u+=m.length(),s.push(u/i.width,0),s.push(u/i.width,1),t.push(M.x,M.y,M.z),t.push(M.x,M.y,M.z),t.push(d.x,d.y,d.z),t.push(d.x,d.y,d.z),n?(r.push(h),r.push(h+2),r.push(h+1),r.push(h+1),r.push(h+2),r.push(h+3)):(r.push(h),r.push(h+1),r.push(h+2),r.push(h+1),r.push(h+3),r.push(h+2)),h+=4}}}function ei(e,t,s,i,l,h,u){let c,d,p,x,g=s||[,,,],m=[],V=u||!1;for(let e=0;e<3;e++)void 0===g[e]&&(g[e]=new r.Vector4(0,0,1,1)),i&&void 0===i[e]&&(i[e]=new f.Color4(1,1,1,1));let O=e.getVerticesData(a.VertexBuffer.PositionKind),_=e.getVerticesData(a.VertexBuffer.NormalKind),M=e.getVerticesData(a.VertexBuffer.UVKind),y=e.getIndices(),T=O.length/9,b=0,v=[0];if(V)for(let e=T;e<O.length/3;e+=4)v.push(b+=Math.sqrt((d=O[3*(e+2)]-O[3*e])*d+(p=O[3*(e+2)+2]-O[3*e+2])*p));let D=0;for(let e=0;e<_.length;e+=3).001>Math.abs(_[e+1])&&(D=1),.001>Math.abs(_[e+1]-1)&&(D=0),.001>Math.abs(_[e+1]+1)&&(D=2),x=e/3,1===D?((c=x-T)%4<1.5?V?M[2*x]=g[D].x+(g[D].z-g[D].x)*v[Math.floor(c/4)]/b:M[2*x]=g[D].x:V?M[2*x]=g[D].x+(g[D].z-g[D].x)*v[Math.floor(c/4)+1]/b:M[2*x]=g[D].z,c%2==0?M[2*x+1]=n.useOpenGLOrientationForUV?1-g[D].w:g[D].w:M[2*x+1]=n.useOpenGLOrientationForUV?1-g[D].y:g[D].y):(M[2*x]=(1-M[2*x])*g[D].x+M[2*x]*g[D].z,M[2*x+1]=(1-M[2*x+1])*g[D].y+M[2*x+1]*g[D].w,n.useOpenGLOrientationForUV&&(M[2*x+1]=1-M[2*x+1])),i&&m.push(i[D].r,i[D].g,i[D].b,i[D].a);o.VertexData._ComputeSides(t,O,y,_,M,l,h);let A=new o.VertexData;return A.indices=y,A.positions=O,A.normals=_,A.uvs=M,i&&(A.colors=t===o.VertexData.DOUBLESIDE?m.concat(m):m),A}function ea(e,t,s=null,a=earcut){let o;t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation);let n=t.shape,l=t.holes||[],h=t.depth||0,u=t.smoothingThreshold||2,c=[];for(let e=0;e<n.length;e++)c[e]=new r.Vector2(n[e].x,n[e].z);c[0].equalsWithEpsilon(c[c.length-1],1e-8)&&c.pop();let d=new er(e,c,s||ee.EngineStore.LastCreatedScene,a);for(let e=0;e<l.length;e++){o=[];for(let t=0;t<l[e].length;t++)o.push(new r.Vector2(l[e][t].x,l[e][t].z));d.addHole(o)}let p=d.build(!1,h,u);return p._originalBuilderSideOrientation=t.sideOrientation,ei(p,t.sideOrientation,t.faceUV,t.faceColors,t.frontUVs,t.backUVs,t.wrap).applyToMesh(p,t.updatable),p}function eo(e,t,s=null,r=earcut){return ea(e,t,s,r)}let en=!1;function el(e,t,s=null){let r=t.path,a=t.shape,o=t.scale||1,n=t.rotation||0,l=0===t.cap?0:t.cap||i.Mesh.NO_CAP,h=t.updatable,u=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),c=t.instance||null,d=t.invertUV||!1,p=t.closeShape||!1,f=t.closePath||!1,x=t.capFunction||null;return eu(e,a,r,o,n,null,null,f,p,l,!1,s,!!h,u,c,d,t.frontUVs||null,t.backUVs||null,t.firstNormal||null,!!t.adjustFrame,x)}function eh(e,t,s=null){let a=t.path,o=t.shape,n=r.Vector3.Zero(),l=t.rotationFunction||(()=>0),h=t.closePath||t.ribbonCloseArray||!1,u=t.closeShape||t.ribbonClosePath||!1,c=0===t.cap?0:t.cap||i.Mesh.NO_CAP,d=t.updatable,p=t.firstNormal||null,f=t.adjustFrame||!1,x=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),g=t.instance,m=t.invertUV||!1,V=t.capFunction||null;return eu(e,o,a,null,null,t.scaleVectorFunction??((e,s)=>{let r=t.scaleFunction?.(e,s)??1;return n.copyFromFloats(r,r,r)}),l,h,u,c,!0,s,!!d,x,g||null,m,t.frontUVs||null,t.backUVs||null,p,f,V||null)}function eu(e,t,s,a,o,n,l,u,c,d,p,f,x,g,m,V,O,_,M,y,T){let b,v=(e,t,s,a,o,n,l,h,u,c,d)=>{let p=s.getTangents(),f=s.getNormals(),x=s.getBinormals(),g=s.getDistances();if(d){for(let e=0;e<p.length;e++)if(0==p[e].x&&0==p[e].y&&0==p[e].z&&p[e].copyFrom(p[e-1]),0==f[e].x&&0==f[e].y&&0==f[e].z&&f[e].copyFrom(f[e-1]),0==x[e].x&&0==x[e].y&&0==x[e].z&&x[e].copyFrom(x[e-1]),e>0){let t=p[e-1];0>r.Vector3.Dot(t,p[e])&&p[e].scaleInPlace(-1),t=f[e-1],0>r.Vector3.Dot(t,f[e])&&f[e].scaleInPlace(-1),t=x[e-1],0>r.Vector3.Dot(t,x[e])&&x[e].scaleInPlace(-1)}}let m=0,V=c&&h?h:()=>null!==n?n:0,O=c&&l?l:()=>null!==o?o:r.Vector3.OneReadOnly,_=2*(u!==i.Mesh.NO_CAP&&u!==i.Mesh.CAP_END),M=r.TmpVectors.Matrix[0];for(let s=0;s<t.length;s++){let i=[],o=V(s,g[s]),n=O(s,g[s]);r.Matrix.RotationAxisToRef(p[s],m,M);for(let a=0;a<e.length;a++){let o=p[s].scale(e[a].z).add(f[s].scale(e[a].x)).add(x[s].scale(e[a].y)),l=r.Vector3.Zero();r.Vector3.TransformCoordinatesToRef(o,M,l),l.multiplyInPlace(n).addInPlace(t[s]),i[a]=l}a[_]=i,m+=o,_++}let y=T||(e=>{let t,s=[],i=r.Vector3.Zero();for(t=0;t<e.length;t++)i.addInPlace(e[t]);for(i.scaleInPlace(1/e.length),t=0;t<e.length;t++)s.push(i);return s});switch(u){case i.Mesh.NO_CAP:break;case i.Mesh.CAP_START:a[0]=y(a[2]),a[1]=a[2];break;case i.Mesh.CAP_END:a[_]=a[_-1],a[_+1]=y(a[_-1]);break;case i.Mesh.CAP_ALL:a[0]=y(a[2]),a[1]=a[2],a[_]=a[_-1],a[_+1]=y(a[_-1])}return a},D=null!==a?new r.Vector3(a,a,a):null;if(m){let e=m._creationDataStorage;return M?e.path3D.update(s,M):e.path3D.update(s),m=h("",{pathArray:b=v(t,s,e.path3D,e.pathArray,D,o,n,l,e.cap,p,y),closeArray:!1,closePath:!1,offset:0,updatable:!1,sideOrientation:0,instance:m},f||void 0)}let A=M?new J.Path3D(s,M):new J.Path3D(s),I=h(e,{pathArray:b=v(t,s,A,[],D,o,n,l,d=d<0||d>3?0:d,p,y),closeArray:u,closePath:c,updatable:x,sideOrientation:g,invertUV:V,frontUVs:O||void 0,backUVs:_||void 0},f);return I._creationDataStorage.pathArray=b,I._creationDataStorage.path3D=A,I._creationDataStorage.cap=d,I}en=!0,o.VertexData.CreatePolygon=ei,i.Mesh.CreatePolygon=(e,t,s,r,i,a,o=earcut)=>ea(e,{shape:t,holes:r,updatable:i,sideOrientation:a},s,o),i.Mesh.ExtrudePolygon=(e,t,s,r,i,a,o,n=earcut)=>eo(e,{shape:t,holes:i,depth:s,updatable:a,sideOrientation:o},r,n);let ec=!1;function ed(e,t,s=null){let a,o,n,l,u=t.arc?t.arc<=0||t.arc>1?1:t.arc:1,c=void 0===t.closed||t.closed,d=t.shape,p=t.radius||1,f=t.tessellation||64,x=t.clip||0,g=t.updatable,m=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),V=t.cap||i.Mesh.NO_CAP,O=2*Math.PI,_=[],M=t.invertUV||!1,y=O/f*u;for(a=0;a<=f-x;a++){for(l=[],(V==i.Mesh.CAP_START||V==i.Mesh.CAP_ALL)&&(l.push(new r.Vector3(0,d[0].y,0)),l.push(new r.Vector3(Math.cos(a*y)*d[0].x*p,d[0].y,Math.sin(a*y)*d[0].x*p))),o=0;o<d.length;o++)n=new r.Vector3(Math.cos(a*y)*d[o].x*p,d[o].y,Math.sin(a*y)*d[o].x*p),l.push(n);(V==i.Mesh.CAP_END||V==i.Mesh.CAP_ALL)&&(l.push(new r.Vector3(Math.cos(a*y)*d[d.length-1].x*p,d[d.length-1].y,Math.sin(a*y)*d[d.length-1].x*p)),l.push(new r.Vector3(0,d[d.length-1].y,0))),_.push(l)}return h(e,{pathArray:_,closeArray:c,sideOrientation:m,updatable:g,invertUV:M,frontUVs:t.frontUVs,backUVs:t.backUVs},s)}ec=!0,i.Mesh.ExtrudeShape=(e,t,s,r,a,o,n=null,l,h,u)=>el(e,{shape:t,path:s,scale:r,rotation:a,cap:0===o?0:o||i.Mesh.NO_CAP,sideOrientation:h,instance:u,updatable:l},n),i.Mesh.ExtrudeShapeCustom=(e,t,s,r,a,o,n,l,h,u,c,d)=>eh(e,{shape:t,path:s,scaleFunction:r,rotationFunction:a,ribbonCloseArray:o,ribbonClosePath:n,cap:0===l?0:l||i.Mesh.NO_CAP,sideOrientation:c,instance:d,updatable:u},h);let ep=!1;function ef(e){let t=[],s=[],r=[],i=[],a=void 0!==e.width?e.width:void 0!==e.size?e.size:1,l=void 0!==e.height?e.height:void 0!==e.size?e.size:1,h=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,u=a/2,c=l/2;s.push(-u,-c,0),r.push(0,0,-1),i.push(0,+!!n.useOpenGLOrientationForUV),s.push(u,-c,0),r.push(0,0,-1),i.push(1,+!!n.useOpenGLOrientationForUV),s.push(u,c,0),r.push(0,0,-1),i.push(1,+!n.useOpenGLOrientationForUV),s.push(-u,c,0),r.push(0,0,-1),i.push(0,+!n.useOpenGLOrientationForUV),t.push(0),t.push(1),t.push(2),t.push(0),t.push(2),t.push(3),o.VertexData._ComputeSides(h,s,t,r,i,e.frontUVs,e.backUVs);let d=new o.VertexData;return d.indices=t,d.positions=s,d.normals=r,d.uvs=i,d}function ex(e,t={},s=null){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,ef(t).applyToMesh(r,t.updatable),t.sourcePlane&&(r.translate(t.sourcePlane.normal,-t.sourcePlane.d),r.setDirection(t.sourcePlane.normal.scale(-1))),r}ep=!0,i.Mesh.CreateLathe=(e,t,s,r,i,a,o)=>ed(e,{shape:t,radius:s,tessellation:r,sideOrientation:o,updatable:a},i);let eg=!1;eg=!0,o.VertexData.CreatePlane=ef,i.Mesh.CreatePlane=(e,t,s,r,i)=>ex(e,{size:t,width:t,height:t,sideOrientation:i,updatable:r},s),_();var em=i;class eV extends em.Mesh{constructor(e,t){super(e,t),this.generateOctree=!1}getClassName(){return"GroundMesh"}get subdivisions(){return Math.min(this._subdivisionsX,this._subdivisionsY)}get subdivisionsX(){return this._subdivisionsX}get subdivisionsY(){return this._subdivisionsY}optimize(e,t=32){this._subdivisionsX=e,this._subdivisionsY=e,this.subdivide(e),(0,W._IsSideEffectImplemented)(this.createOrUpdateSubmeshesOctree)&&this.createOrUpdateSubmeshesOctree(t)}getHeightAtCoordinates(e,t){let s=this.getWorldMatrix(),i=r.TmpVectors.Matrix[5];s.invertToRef(i);let a=r.TmpVectors.Vector3[8];if(r.Vector3.TransformCoordinatesFromFloatsToRef(e,0,t,i,a),e=a.x,t=a.z,e<this._minX||e>=this._maxX||t<=this._minZ||t>this._maxZ)return this.position.y;this._heightQuads&&0!=this._heightQuads.length||(this._initHeightQuads(),this._computeHeightQuads());let o=this._getFacetAt(e,t),n=-(o.x*e+o.z*t+o.w)/o.y;return r.Vector3.TransformCoordinatesFromFloatsToRef(0,n,0,s,a),a.y}getNormalAtCoordinates(e,t){let s=new r.Vector3(0,1,0);return this.getNormalAtCoordinatesToRef(e,t,s),s}getNormalAtCoordinatesToRef(e,t,s){let i=this.getWorldMatrix(),a=r.TmpVectors.Matrix[5];i.invertToRef(a);let o=r.TmpVectors.Vector3[8];if(r.Vector3.TransformCoordinatesFromFloatsToRef(e,0,t,a,o),e=o.x,t=o.z,e<this._minX||e>this._maxX||t<this._minZ||t>this._maxZ)return this;this._heightQuads&&0!=this._heightQuads.length||(this._initHeightQuads(),this._computeHeightQuads());let n=this._getFacetAt(e,t);return r.Vector3.TransformNormalFromFloatsToRef(n.x,n.y,n.z,i,s),this}updateCoordinateHeights(){return this._heightQuads&&0!=this._heightQuads.length||this._initHeightQuads(),this._computeHeightQuads(),this}_getFacetAt(e,t){let s=Math.floor((e+this._maxX)*this._subdivisionsX/this._width),r=Math.floor(-(t+this._maxZ)*this._subdivisionsY/this._height+this._subdivisionsY),i=this._heightQuads[r*this._subdivisionsX+s];return t<i.slope.x*e+i.slope.y?i.facet1:i.facet2}_initHeightQuads(){let e=this._subdivisionsX,t=this._subdivisionsY;this._heightQuads=[];for(let s=0;s<t;s++)for(let t=0;t<e;t++){let i={slope:r.Vector2.Zero(),facet1:new r.Vector4(0,0,0,0),facet2:new r.Vector4(0,0,0,0)};this._heightQuads[s*e+t]=i}return this}_computeHeightQuads(){let e,t,s,i,o,n,l,h=this.getVerticesData(a.VertexBuffer.PositionKind);if(!h)return this;let u=r.TmpVectors.Vector3[3],c=r.TmpVectors.Vector3[2],d=r.TmpVectors.Vector3[1],p=r.TmpVectors.Vector3[0],f=r.TmpVectors.Vector3[4],x=r.TmpVectors.Vector3[5],g=r.TmpVectors.Vector3[6],m=r.TmpVectors.Vector3[7],V=r.TmpVectors.Vector3[8],O=this._subdivisionsX,_=this._subdivisionsY;for(let a=0;a<_;a++)for(let _=0;_<O;_++){e=3*_,t=a*(O+1)*3,s=(a+1)*(O+1)*3,u.x=h[t+e],u.y=h[t+e+1],u.z=h[t+e+2],c.x=h[t+e+3],c.y=h[t+e+4],c.z=h[t+e+5],d.x=h[s+e],d.y=h[s+e+1],d.z=h[s+e+2],p.x=h[s+e+3],p.y=h[s+e+4],p.z=h[s+e+5],i=(p.z-u.z)/(p.x-u.x),o=u.z-i*u.x,c.subtractToRef(u,f),d.subtractToRef(u,x),p.subtractToRef(u,g),r.Vector3.CrossToRef(g,x,m),r.Vector3.CrossToRef(f,g,V),m.normalize(),V.normalize(),n=-(m.x*u.x+m.y*u.y+m.z*u.z),l=-(V.x*c.x+V.y*c.y+V.z*c.z);let M=this._heightQuads[a*O+_];M.slope.copyFromFloats(i,o),M.facet1.copyFromFloats(m.x,m.y,m.z,n),M.facet2.copyFromFloats(V.x,V.y,V.z,l)}return this}serialize(e){super.serialize(e),e.subdivisionsX=this._subdivisionsX,e.subdivisionsY=this._subdivisionsY,e.minX=this._minX,e.maxX=this._maxX,e.minZ=this._minZ,e.maxZ=this._maxZ,e.width=this._width,e.height=this._height}static Parse(e,t){let s=new eV(e.name,t);return s._subdivisionsX=e.subdivisionsX||1,s._subdivisionsY=e.subdivisionsY||1,s._minX=e.minX,s._maxX=e.maxX,s._minZ=e.minZ,s._maxZ=e.maxZ,s._width=e.width,s._height=e.height,s}}var eO=e.i(40379);function e_(e){let t,s,i=[],a=[],l=[],h=[],u=e.width||e.size||1,c=e.height||e.size||1,d=0|(e.subdivisionsX||e.subdivisions||1),p=0|(e.subdivisionsY||e.subdivisions||1);for(t=0;t<=p;t++)for(s=0;s<=d;s++){let e=new r.Vector3(s*u/d-u/2,0,(p-t)*c/p-c/2),i=new r.Vector3(0,1,0);a.push(e.x,e.y,e.z),l.push(i.x,i.y,i.z),h.push(s/d,n.useOpenGLOrientationForUV?t/p:1-t/p)}for(t=0;t<p;t++)for(s=0;s<d;s++)i.push(s+1+(t+1)*(d+1)),i.push(s+1+t*(d+1)),i.push(s+t*(d+1)),i.push(s+(t+1)*(d+1)),i.push(s+1+(t+1)*(d+1)),i.push(s+t*(d+1));let f=new o.VertexData;return f.indices=i,f.positions=a,f.normals=l,f.uvs=h,f}function eM(e){let t,s,i,a,n=void 0!==e.xmin&&null!==e.xmin?e.xmin:-1,l=void 0!==e.zmin&&null!==e.zmin?e.zmin:-1,h=void 0!==e.xmax&&null!==e.xmax?e.xmax:1,u=void 0!==e.zmax&&null!==e.zmax?e.zmax:1,c=e.subdivisions||{w:1,h:1},d=e.precision||{w:1,h:1},p=[],f=[],x=[],g=[];c.h=c.h<1?1:c.h,c.w=c.w<1?1:c.w,d.w=d.w<1?1:d.w,d.h=d.h<1?1:d.h;let m={w:(h-n)/c.w,h:(u-l)/c.h};for(i=0;i<c.h;i++)for(a=0;a<c.w;a++)!function(e,i,a,o){let n=f.length/3,l=d.w+1;for(t=0;t<d.h;t++)for(s=0;s<d.w;s++){let e=[n+s+t*l,n+(s+1)+t*l,n+(s+1)+(t+1)*l,n+s+(t+1)*l];p.push(e[1]),p.push(e[2]),p.push(e[3]),p.push(e[0]),p.push(e[1]),p.push(e[3])}let h=r.Vector3.Zero(),u=new r.Vector3(0,1,0);for(t=0;t<=d.h;t++)for(h.z=t*(o-i)/d.h+i,s=0;s<=d.w;s++)h.x=s*(a-e)/d.w+e,h.y=0,f.push(h.x,h.y,h.z),x.push(u.x,u.y,u.z),g.push(s/d.w,t/d.h)}(n+a*m.w,l+i*m.h,n+(a+1)*m.w,l+(i+1)*m.h);let V=new o.VertexData;return V.indices=p,V.positions=f,V.normals=x,V.uvs=g,V}function ey(e){let t,s,i=[],a=[],n=[],l=[],h=e.colorFilter||new f.Color3(.3,.59,.11),u=e.alphaFilter||0,c=!1;if(e.minHeight>e.maxHeight){c=!0;let t=e.maxHeight;e.maxHeight=e.minHeight,e.minHeight=t}for(t=0;t<=e.subdivisions;t++)for(s=0;s<=e.subdivisions;s++){let i=new r.Vector3(s*e.width/e.subdivisions-e.width/2,0,(e.subdivisions-t)*e.height/e.subdivisions-e.height/2),o=(((i.x+e.width/2)/e.width*(e.bufferWidth-1)|0)+((1-(i.z+e.height/2)/e.height)*(e.bufferHeight-1)|0)*e.bufferWidth)*4,d=e.buffer[o]/255,p=e.buffer[o+1]/255,f=e.buffer[o+2]/255,x=e.buffer[o+3]/255;c&&(d=1-d,p=1-p,f=1-f);let g=d*h.r+p*h.g+f*h.b;x>=u?i.y=e.minHeight+(e.maxHeight-e.minHeight)*g:i.y=e.minHeight-$.Epsilon,e.heightBuffer&&(e.heightBuffer[t*(e.subdivisions+1)+s]=i.y),a.push(i.x,i.y,i.z),n.push(0,0,0),l.push(s/e.subdivisions,1-t/e.subdivisions)}for(t=0;t<e.subdivisions;t++)for(s=0;s<e.subdivisions;s++){let r=s+1+(t+1)*(e.subdivisions+1),o=s+1+t*(e.subdivisions+1),n=s+t*(e.subdivisions+1),l=s+(t+1)*(e.subdivisions+1),h=a[3*r+1]>=e.minHeight,u=a[3*o+1]>=e.minHeight,c=a[3*n+1]>=e.minHeight;h&&u&&c&&(i.push(r),i.push(o),i.push(n)),a[3*l+1]>=e.minHeight&&h&&c&&(i.push(l),i.push(r),i.push(n))}o.VertexData.ComputeNormals(a,i,n);let d=new o.VertexData;return d.indices=i,d.positions=a,d.normals=n,d.uvs=l,d}function eT(e,t={},s){let r=new eV(e,s);return r._setReady(!1),r._subdivisionsX=t.subdivisionsX||t.subdivisions||1,r._subdivisionsY=t.subdivisionsY||t.subdivisions||1,r._width=t.width||1,r._height=t.height||1,r._maxX=r._width/2,r._maxZ=r._height/2,r._minX=-r._maxX,r._minZ=-r._maxZ,e_(t).applyToMesh(r,t.updatable),r._setReady(!0),r}function eb(e,t,s=null){let r=new i.Mesh(e,s);return eM(t).applyToMesh(r,t.updatable),r}function ev(e,t,s={},r=null){let i,a=s.width||10,o=s.height||10,n=s.subdivisions||1,l=s.minHeight||0,h=s.maxHeight||1,u=s.colorFilter||new f.Color3(.3,.59,.11),c=s.alphaFilter||0,d=s.updatable,p=s.onReady,x=new eV(e,r=r||ee.EngineStore.LastCreatedScene);x._subdivisionsX=n,x._subdivisionsY=n,x._width=a,x._height=o,x._maxX=x._width/2,x._maxZ=x._height/2,x._minX=-x._maxX,x._minZ=-x._maxZ,x._setReady(!1),s.passHeightBufferInCallback&&(i=new Float32Array((n+1)*(n+1)));let g=(e,t,s)=>{ey({width:a,height:o,subdivisions:n,minHeight:l,maxHeight:h,colorFilter:u,buffer:e,bufferWidth:t,bufferHeight:s,alphaFilter:c,heightBuffer:i}).applyToMesh(x,d),p&&p(x,i),x._setReady(!0)};return"string"==typeof t?(r.addPendingData(x),eO.Tools.LoadImage(t,e=>{let t=e.width,s=e.height;r.isDisposed||g(r?.getEngine().resizeImageBitmap(e,t,s),t,s),r.removePendingData(x)},(e,t)=>{r.removePendingData(x),s.onError&&s.onError(e,t)},r.offlineProvider)):g(t.data,t.width,t.height),x}let eD=!1;function eA(e,t,s=null){let a,o,n=t.path,l=t.instance,u=1;void 0!==t.radius?u=t.radius:l&&(u=l._creationDataStorage.radius);let c=t.tessellation||64,d=t.radiusFunction||null,p=t.cap||i.Mesh.NO_CAP,f=t.invertUV||!1,x=t.updatable,g=i.Mesh._GetDefaultSideOrientation(t.sideOrientation);t.arc=t.arc&&(t.arc<=0||t.arc>1)?1:t.arc||1;let m=(e,t,s,a,o,n,l,h)=>{let u,c,d,p,f=t.getTangents(),x=t.getNormals(),g=t.getDistances(),m=2*Math.PI/o*h,V=n||(()=>a),O=r.TmpVectors.Matrix[0],_=2*(l!==i.Mesh.NO_CAP&&l!==i.Mesh.CAP_END);for(let t=0;t<e.length;t++){c=V(t,g[t]),u=[],d=x[t];for(let s=0;s<o;s++)r.Matrix.RotationAxisToRef(f[t],m*s,O),p=u[s]?u[s]:r.Vector3.Zero(),r.Vector3.TransformCoordinatesToRef(d,O,p),p.scaleInPlace(c).addInPlace(e[t]),u[s]=p;s[_]=u,_++}let M=(t,s)=>{let r=[];for(let i=0;i<t;i++)r.push(e[s]);return r};switch(l){case i.Mesh.NO_CAP:break;case i.Mesh.CAP_START:s[0]=M(o,0),s[1]=s[2].slice(0);break;case i.Mesh.CAP_END:s[_]=s[_-1].slice(0),s[_+1]=M(o,e.length-1);break;case i.Mesh.CAP_ALL:s[0]=M(o,0),s[1]=s[2].slice(0),s[_]=s[_-1].slice(0),s[_+1]=M(o,e.length-1)}return s};if(l){let e=l._creationDataStorage,s=t.arc||e.arc;return a=e.path3D.update(n),l=h("",{pathArray:o=m(n,a,e.pathArray,u,e.tessellation,d,e.cap,s),instance:l}),e.path3D=a,e.pathArray=o,e.arc=s,e.radius=u,l}a=new J.Path3D(n);let V=h(e,{pathArray:o=m(n,a,[],u,c,d,p=p<0||p>3?0:p,t.arc),closePath:!0,closeArray:!1,updatable:x,sideOrientation:g,invertUV:f,frontUVs:t.frontUVs,backUVs:t.backUVs},s);return V._creationDataStorage.pathArray=o,V._creationDataStorage.path3D=a,V._creationDataStorage.tessellation=c,V._creationDataStorage.cap=p,V._creationDataStorage.arc=t.arc,V._creationDataStorage.radius=u,V}eD=!0,o.VertexData.CreateGround=e_,o.VertexData.CreateTiledGround=eM,o.VertexData.CreateGroundFromHeightMap=ey,i.Mesh.CreateGround=(e,t,s,r,i,a)=>eT(e,{width:t,height:s,subdivisions:r,updatable:a},i),i.Mesh.CreateTiledGround=(e,t,s,r,i,a,o,n,l)=>eb(e,{xmin:t,zmin:s,xmax:r,zmax:i,subdivisions:a,precision:o,updatable:l},n),i.Mesh.CreateGroundFromHeightMap=(e,t,s,r,i,a,o,n,l,h,u)=>ev(e,t,{width:s,height:r,subdivisions:i,minHeight:a,maxHeight:o,updatable:l,onReady:h,alphaFilter:u},n);let eI=!1;function ew(e){let t,s,i,a,l,h,u,c,d=[];d[0]={vertex:[[0,0,1.732051],[1.632993,0,-.5773503],[-.8164966,1.414214,-.5773503],[-.8164966,-1.414214,-.5773503]],face:[[0,1,2],[0,2,3],[0,3,1],[1,3,2]]},d[1]={vertex:[[0,0,1.414214],[1.414214,0,0],[0,1.414214,0],[-1.414214,0,0],[0,-1.414214,0],[0,0,-1.414214]],face:[[0,1,2],[0,2,3],[0,3,4],[0,4,1],[1,4,5],[1,5,2],[2,5,3],[3,5,4]]},d[2]={vertex:[[0,0,1.070466],[.7136442,0,.7978784],[-.3568221,.618034,.7978784],[-.3568221,-.618034,.7978784],[.7978784,.618034,.3568221],[.7978784,-.618034,.3568221],[-.9341724,.381966,.3568221],[.1362939,1,.3568221],[.1362939,-1,.3568221],[-.9341724,-.381966,.3568221],[.9341724,.381966,-.3568221],[.9341724,-.381966,-.3568221],[-.7978784,.618034,-.3568221],[-.1362939,1,-.3568221],[-.1362939,-1,-.3568221],[-.7978784,-.618034,-.3568221],[.3568221,.618034,-.7978784],[.3568221,-.618034,-.7978784],[-.7136442,0,-.7978784],[0,0,-1.070466]],face:[[0,1,4,7,2],[0,2,6,9,3],[0,3,8,5,1],[1,5,11,10,4],[2,7,13,12,6],[3,9,15,14,8],[4,10,16,13,7],[5,8,14,17,11],[6,12,18,15,9],[10,11,17,19,16],[12,13,16,19,18],[14,15,18,19,17]]},d[3]={vertex:[[0,0,1.175571],[1.051462,0,.5257311],[.3249197,1,.5257311],[-.8506508,.618034,.5257311],[-.8506508,-.618034,.5257311],[.3249197,-1,.5257311],[.8506508,.618034,-.5257311],[.8506508,-.618034,-.5257311],[-.3249197,1,-.5257311],[-1.051462,0,-.5257311],[-.3249197,-1,-.5257311],[0,0,-1.175571]],face:[[0,1,2],[0,2,3],[0,3,4],[0,4,5],[0,5,1],[1,5,7],[1,7,6],[1,6,2],[2,6,8],[2,8,3],[3,8,9],[3,9,4],[4,9,10],[4,10,5],[5,10,7],[6,7,11],[6,11,8],[7,10,11],[8,11,9],[9,11,10]]},d[4]={vertex:[[0,0,1.070722],[.7148135,0,.7971752],[-.104682,.7071068,.7971752],[-.6841528,.2071068,.7971752],[-.104682,-.7071068,.7971752],[.6101315,.7071068,.5236279],[1.04156,.2071068,.1367736],[.6101315,-.7071068,.5236279],[-.3574067,1,.1367736],[-.7888348,-.5,.5236279],[-.9368776,.5,.1367736],[-.3574067,-1,.1367736],[.3574067,1,-.1367736],[.9368776,-.5,-.1367736],[.7888348,.5,-.5236279],[.3574067,-1,-.1367736],[-.6101315,.7071068,-.5236279],[-1.04156,-.2071068,-.1367736],[-.6101315,-.7071068,-.5236279],[.104682,.7071068,-.7971752],[.6841528,-.2071068,-.7971752],[.104682,-.7071068,-.7971752],[-.7148135,0,-.7971752],[0,0,-1.070722]],face:[[0,2,3],[1,6,5],[4,9,11],[7,15,13],[8,16,10],[12,14,19],[17,22,18],[20,21,23],[0,1,5,2],[0,3,9,4],[0,4,7,1],[1,7,13,6],[2,5,12,8],[2,8,10,3],[3,10,17,9],[4,11,15,7],[5,6,14,12],[6,13,20,14],[8,12,19,16],[9,17,18,11],[10,16,22,17],[11,18,21,15],[13,15,21,20],[14,20,23,19],[16,19,23,22],[18,22,23,21]]},d[5]={vertex:[[0,0,1.322876],[1.309307,0,.1889822],[-.9819805,.8660254,.1889822],[.1636634,-1.299038,.1889822],[.3273268,.8660254,-.9449112],[-.8183171,-.4330127,-.9449112]],face:[[0,3,1],[2,4,5],[0,1,4,2],[0,2,5,3],[1,3,5,4]]},d[6]={vertex:[[0,0,1.159953],[1.013464,0,.5642542],[-.3501431,.9510565,.5642542],[-.7715208,-.6571639,.5642542],[.6633206,.9510565,-.03144481],[.8682979,-.6571639,-.3996071],[-1.121664,.2938926,-.03144481],[-.2348831,-1.063314,-.3996071],[.5181548,.2938926,-.9953061],[-.5850262,-.112257,-.9953061]],face:[[0,1,4,2],[0,2,6,3],[1,5,8,4],[3,6,9,7],[5,7,9,8],[0,3,7,5,1],[2,4,8,9,6]]},d[7]={vertex:[[0,0,1.118034],[.8944272,0,.6708204],[-.2236068,.8660254,.6708204],[-.7826238,-.4330127,.6708204],[.6708204,.8660254,.2236068],[1.006231,-.4330127,-.2236068],[-1.006231,.4330127,.2236068],[-.6708204,-.8660254,-.2236068],[.7826238,.4330127,-.6708204],[.2236068,-.8660254,-.6708204],[-.8944272,0,-.6708204],[0,0,-1.118034]],face:[[0,1,4,2],[0,2,6,3],[1,5,8,4],[3,6,10,7],[5,9,11,8],[7,10,11,9],[0,3,7,9,5,1],[2,4,8,11,10,6]]},d[8]={vertex:[[-.729665,.670121,.319155],[-.655235,-.29213,-.754096],[-.093922,-.607123,.537818],[.702196,.595691,.485187],[.776626,-.36656,-.588064]],face:[[1,4,2],[0,1,2],[3,0,2],[4,3,2],[4,1,0,3]]},d[9]={vertex:[[-.868849,-.100041,.61257],[-.329458,.976099,.28078],[-.26629,-.013796,-.477654],[-.13392,-1.034115,.229829],[.738834,.707117,-.307018],[.859683,-.535264,-.338508]],face:[[3,0,2],[5,3,2],[4,5,2],[1,4,2],[0,1,2],[0,3,5,4,1]]},d[10]={vertex:[[-.610389,.243975,.531213],[-.187812,-.48795,-.664016],[-.187812,.9759,-.664016],[.187812,-.9759,.664016],[.798201,.243975,.132803]],face:[[1,3,0],[3,4,0],[3,1,4],[0,2,1],[0,4,2],[2,4,1]]},d[11]={vertex:[[-1.028778,.392027,-.048786],[-.640503,-.646161,.621837],[-.125162,-.395663,-.540059],[.004683,.888447,-.651988],[.125161,.395663,.540059],[.632925,-.791376,.433102],[1.031672,.157063,-.354165]],face:[[3,2,0],[2,1,0],[2,5,1],[0,4,3],[0,1,4],[4,1,5],[2,3,6],[3,4,6],[5,2,6],[4,5,6]]},d[12]={vertex:[[-.669867,.334933,-.529576],[-.669867,.334933,.529577],[-.4043,1.212901,0],[-.334933,-.669867,-.529576],[-.334933,-.669867,.529577],[.334933,.669867,-.529576],[.334933,.669867,.529577],[.4043,-1.212901,0],[.669867,-.334933,-.529576],[.669867,-.334933,.529577]],face:[[8,9,7],[6,5,2],[3,8,7],[5,0,2],[4,3,7],[0,1,2],[9,4,7],[1,6,2],[9,8,5,6],[8,3,0,5],[3,4,1,0],[4,9,6,1]]},d[13]={vertex:[[-.931836,.219976,-.264632],[-.636706,.318353,.692816],[-.613483,-.735083,-.264632],[-.326545,.979634,0],[-.318353,-.636706,.692816],[-.159176,.477529,-.856368],[.159176,-.477529,-.856368],[.318353,.636706,.692816],[.326545,-.979634,0],[.613482,.735082,-.264632],[.636706,-.318353,.692816],[.931835,-.219977,-.264632]],face:[[11,10,8],[7,9,3],[6,11,8],[9,5,3],[2,6,8],[5,0,3],[4,2,8],[0,1,3],[10,4,8],[1,7,3],[10,11,9,7],[11,6,5,9],[6,2,0,5],[2,4,1,0],[4,10,7,1]]},d[14]={vertex:[[-.93465,.300459,-.271185],[-.838689,-.260219,-.516017],[-.711319,.717591,.128359],[-.710334,-.156922,.080946],[-.599799,.556003,-.725148],[-.503838,-.004675,-.969981],[-.487004,.26021,.48049],[-.460089,-.750282,-.512622],[-.376468,.973135,-.325605],[-.331735,-.646985,.084342],[-.254001,.831847,.530001],[-.125239,-.494738,-.966586],[.029622,.027949,.730817],[.056536,-.982543,-.262295],[.08085,1.087391,.076037],[.125583,-.532729,.485984],[.262625,.599586,.780328],[.391387,-.726999,-.716259],[.513854,-.868287,.139347],[.597475,.85513,.326364],[.641224,.109523,.783723],[.737185,-.451155,.538891],[.848705,-.612742,-.314616],[.976075,.365067,.32976],[1.072036,-.19561,.084927]],face:[[15,18,21],[12,20,16],[6,10,2],[3,0,1],[9,7,13],[2,8,4,0],[0,4,5,1],[1,5,11,7],[7,11,17,13],[13,17,22,18],[18,22,24,21],[21,24,23,20],[20,23,19,16],[16,19,14,10],[10,14,8,2],[15,9,13,18],[12,15,21,20],[6,12,16,10],[3,6,2,0],[9,3,1,7],[9,15,12,6,3],[22,17,11,5,4,8,14,19,23,24]]};let p=e.type&&(e.type<0||e.type>=d.length)?0:e.type||0,x=e.size,g=e.sizeX||x||1,m=e.sizeY||x||1,V=e.sizeZ||x||1,O=e.custom||d[p],_=O.face.length,M=e.faceUV||Array(_),y=e.faceColors,T=void 0===e.flat||e.flat,b=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,v=[],D=[],A=[],I=[],w=[],F=0,C=0,P=[];if(T)for(s=0;s<_;s++)y&&void 0===y[s]&&(y[s]=new f.Color4(1,1,1,1)),M&&void 0===M[s]&&(M[s]=new r.Vector4(0,0,1,1));if(T)for(s=0;s<_;s++){let e=O.face[s].length;for(h=.5*Math.tan((l=2*Math.PI/e)/2),u=.5,t=0;t<e;t++)v.push(O.vertex[O.face[s][t]][0]*g,O.vertex[O.face[s][t]][1]*m,O.vertex[O.face[s][t]][2]*V),P.push(F),F++,i=M[s].x+(M[s].z-M[s].x)*(.5+h),a=M[s].y+(M[s].w-M[s].y)*(u-.5),I.push(i,n.useOpenGLOrientationForUV?1-a:a),c=h*Math.cos(l)-u*Math.sin(l),u=h*Math.sin(l)+u*Math.cos(l),h=c,y&&w.push(y[s].r,y[s].g,y[s].b,y[s].a);for(t=0;t<e-2;t++)D.push(P[0+C],P[t+2+C],P[t+1+C]);C+=e}else{for(t=0;t<O.vertex.length;t++)v.push(O.vertex[t][0]*g,O.vertex[t][1]*m,O.vertex[t][2]*V),I.push(0,+!!n.useOpenGLOrientationForUV);for(s=0;s<_;s++)for(t=0;t<O.face[s].length-2;t++)D.push(O.face[s][0],O.face[s][t+2],O.face[s][t+1])}o.VertexData.ComputeNormals(v,D,A),o.VertexData._ComputeSides(b,v,D,A,I,e.frontUVs,e.backUVs);let L=new o.VertexData;return L.positions=v,L.indices=D,L.normals=A,L.uvs=I,y&&T&&(L.colors=w),L}function eF(e,t={},s=null){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,ew(t).applyToMesh(r,t.updatable),r}eI=!0,i.Mesh.CreateTube=(e,t,s,r,i,a,o,n,l,h)=>eA(e,{path:t,radius:s,tessellation:r,radiusFunction:i,arc:1,cap:a,updatable:n,sideOrientation:l,instance:h},o);let eC=!1;function eP(e){let t,s=e.sideOrientation||o.VertexData.DEFAULTSIDE,i=e.radius||1,a=void 0===e.flat||e.flat,l=0|(e.subdivisions||4),h=e.radiusX||i,u=e.radiusY||i,c=e.radiusZ||i,d=(1+Math.sqrt(5))/2,p=[-1,d,-0,1,d,0,-1,-d,0,1,-d,0,0,-1,-d,0,1,-d,0,-1,d,0,1,d,d,0,1,d,0,-1,-d,0,1,-d,0,-1],f=[0,11,5,0,5,1,0,1,7,0,7,10,12,22,23,1,5,20,5,11,4,23,22,13,22,18,6,7,1,8,14,21,4,14,4,2,16,13,6,15,6,19,3,8,9,4,21,5,13,17,23,6,13,22,19,6,18,9,8,1],x=[0,1,2,3,4,5,6,7,8,9,10,11,0,2,3,3,3,4,7,8,9,9,10,11],g=[5,1,3,1,6,4,0,0,5,3,4,2,2,2,4,0,2,0,1,1,6,0,6,2,0,4,3,3,4,4,3,1,4,2,4,4,0,2,1,1,2,2,3,3,1,3,2,4],m=138/1024,V=239/1024,O=60/1024,_=26/1024,M=-40/1024,y=20/1024,T=[0,0,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,1,1,0],b=[],v=[],D=[],A=[],I=0,w=[,,,],F=[,,,];for(t=0;t<3;t++)w[t]=r.Vector3.Zero(),F[t]=r.Vector2.Zero();for(let e=0;e<20;e++){for(t=0;t<3;t++){let s=f[3*e+t];w[t].copyFromFloats(p[3*x[s]],p[3*x[s]+1],p[3*x[s]+2]),w[t].normalize(),F[t].copyFromFloats(g[2*s]*m+O+T[e]*M,g[2*s+1]*V+_+T[e]*y)}let s=(e,t,s,i)=>{let o,d=r.Vector3.Lerp(w[0],w[2],t/l),p=r.Vector3.Lerp(w[1],w[2],t/l),f=l===t?w[2]:r.Vector3.Lerp(d,p,e/(l-t));if(f.normalize(),a){let e=r.Vector3.Lerp(w[0],w[2],i/l),t=r.Vector3.Lerp(w[1],w[2],i/l);o=r.Vector3.Lerp(e,t,s/(l-i))}else o=new r.Vector3(f.x,f.y,f.z);o.x/=h,o.y/=u,o.z/=c,o.normalize();let x=r.Vector2.Lerp(F[0],F[2],t/l),g=r.Vector2.Lerp(F[1],F[2],t/l),m=l===t?F[2]:r.Vector2.Lerp(x,g,e/(l-t));v.push(f.x*h,f.y*u,f.z*c),D.push(o.x,o.y,o.z),A.push(m.x,n.useOpenGLOrientationForUV?1-m.y:m.y),b.push(I),I++};for(let e=0;e<l;e++)for(let t=0;t+e<l;t++)s(t,e,t+1/3,e+1/3),s(t+1,e,t+1/3,e+1/3),s(t,e+1,t+1/3,e+1/3),t+e+1<l&&(s(t+1,e,t+2/3,e+2/3),s(t+1,e+1,t+2/3,e+2/3),s(t,e+1,t+2/3,e+2/3))}o.VertexData._ComputeSides(s,v,b,D,A,e.frontUVs,e.backUVs);let C=new o.VertexData;return C.indices=b,C.positions=v,C.normals=D,C.uvs=A,C}function eL(e,t={},s=null){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,eP(t).applyToMesh(r,t.updatable),r}eC=!0,o.VertexData.CreatePolyhedron=ew,i.Mesh.CreatePolyhedron=(e,t,s)=>eF(e,t,s);let eB=!1;eB=!0,o.VertexData.CreateIcoSphere=eP,i.Mesh.CreateIcoSphere=(e,t,s)=>eL(e,t,s);var ez=e.i(46202);let eE=new r.Vector3(1,0,0),eS=new r.Vector3(-1,0,0),eR=new r.Vector3(0,1,0),eU=new r.Vector3(0,-1,0),eN=new r.Vector3(0,0,1),eW=new r.Vector3(0,0,-1);class eG{constructor(e=r.Vector3.Zero(),t=r.Vector3.Up(),s=r.Vector2.Zero(),i=0,a=0,o=null,n=null,l=null,h=null){this.position=e,this.normal=t,this.uv=s,this.vertexIdx=i,this.vertexIdxForBones=a,this.localPositionOverride=o,this.localNormalOverride=n,this.matrixIndicesOverride=l,this.matrixWeightsOverride=h}clone(){return new eG(this.position.clone(),this.normal.clone(),this.uv.clone(),this.vertexIdx,this.vertexIdxForBones,this.localPositionOverride?.slice(),this.localNormalOverride?.slice(),this.matrixIndicesOverride?.slice(),this.matrixWeightsOverride?.slice())}}function eH(e,t,s){let l=!!t.skeleton,h=!!t.morphTargetManager?.numTargets,u=s.localMode||l,c=t.getIndices(),d=l||h?t.getPositionData(!0,!0):t.getVerticesData(a.VertexBuffer.PositionKind),p=l||h?t.getNormalsData(!0,!0):t.getVerticesData(a.VertexBuffer.NormalKind),f=u?l?t.getVerticesData(a.VertexBuffer.PositionKind):d:null,x=u?l?t.getVerticesData(a.VertexBuffer.NormalKind):p:null,g=t.getVerticesData(a.VertexBuffer.UVKind),m=l?t.getVerticesData(a.VertexBuffer.MatricesIndicesKind):null,V=l?t.getVerticesData(a.VertexBuffer.MatricesWeightsKind):null,O=l?t.getVerticesData(a.VertexBuffer.MatricesIndicesExtraKind):null,_=l?t.getVerticesData(a.VertexBuffer.MatricesWeightsExtraKind):null,M=s.position||r.Vector3.Zero(),y=s.normal||r.Vector3.Up(),T=s.size||r.Vector3.One(),b=s.angle||0;if(!y){let e=new r.Vector3(0,0,1),s=t.getScene().activeCamera,i=r.Vector3.TransformCoordinates(e,s.getWorldMatrix());y=s.globalPosition.subtract(i)}let v=-Math.atan2(y.z,y.x)-Math.PI/2,D=Math.sqrt(y.x*y.x+y.z*y.z),A=Math.atan2(y.y,D),I=new o.VertexData;I.indices=[],I.positions=[],I.normals=[],I.uvs=[],I.matricesIndices=l?[]:null,I.matricesWeights=l?[]:null,I.matricesIndicesExtra=O?[]:null,I.matricesWeightsExtra=_?[]:null;let w=0,F=(e,t)=>{let i=new eG;if(!c||!d||!p)return i;let a=c[e];if(i.vertexIdx=3*a,i.vertexIdxForBones=4*a,i.position=new r.Vector3(d[3*a],d[3*a+1],d[3*a+2]),r.Vector3.TransformCoordinatesToRef(i.position,t,i.position),i.normal=new r.Vector3(p[3*a],p[3*a+1],p[3*a+2]),r.Vector3.TransformNormalToRef(i.normal,t,i.normal),s.captureUVS&&g){let e=g[2*a+1];i.uv=new r.Vector2(g[2*a],n.useOpenGLOrientationForUV?1-e:e)}return i},C=[0,0,0,0],P=(e,t)=>{if(0===e.length)return e;let s=.5*Math.abs(r.Vector3.Dot(T,t)),i=(e,t,s,r)=>{for(let i=0;i<r;++i)if(e[s+i]===t)return s+i;return -1},a=(e,a)=>{let o=r.Vector3.GetClipFactor(e.position,a.position,t,s),n=C,l=C;if(m&&V){let t=e.matrixIndicesOverride?0:e.vertexIdxForBones,s=e.matrixIndicesOverride??m,r=e.matrixWeightsOverride??V,h=a.matrixIndicesOverride?0:a.vertexIdxForBones,u=a.matrixIndicesOverride??m,c=a.matrixWeightsOverride??V;n=[0,0,0,0],l=[0,0,0,0];let d=0;for(let e=0;e<4;++e)if(r[t+e]>0){let a=i(u,s[t+e],h,4);n[d]=s[t+e],l[d]=(0,ez.Lerp)(r[t+e],a>=0?c[a]:0,o),d++}for(let e=0;e<4&&d<4;++e){let r=u[h+e];-1===i(s,r,t,4)&&(n[d]=r,l[d]=(0,ez.Lerp)(0,c[h+e],o),d++)}let p=l[0]+l[1]+l[2]+l[3];l[0]/=p,l[1]/=p,l[2]/=p,l[3]/=p}let h=e.localPositionOverride?e.localPositionOverride[0]:f?.[e.vertexIdx]??0,u=e.localPositionOverride?e.localPositionOverride[1]:f?.[e.vertexIdx+1]??0,c=e.localPositionOverride?e.localPositionOverride[2]:f?.[e.vertexIdx+2]??0,d=a.localPositionOverride?a.localPositionOverride[0]:f?.[a.vertexIdx]??0,p=a.localPositionOverride?a.localPositionOverride[1]:f?.[a.vertexIdx+1]??0,g=a.localPositionOverride?a.localPositionOverride[2]:f?.[a.vertexIdx+2]??0,O=e.localNormalOverride?e.localNormalOverride[0]:x?.[e.vertexIdx]??0,_=e.localNormalOverride?e.localNormalOverride[1]:x?.[e.vertexIdx+1]??0,M=e.localNormalOverride?e.localNormalOverride[2]:x?.[e.vertexIdx+2]??0,y=a.localNormalOverride?a.localNormalOverride[0]:x?.[a.vertexIdx]??0,T=a.localNormalOverride?a.localNormalOverride[1]:x?.[a.vertexIdx+1]??0,b=a.localNormalOverride?a.localNormalOverride[2]:x?.[a.vertexIdx+2]??0,v=O+(y-O)*o,D=_+(T-_)*o,A=M+(b-M)*o,I=Math.sqrt(v*v+D*D+A*A);return new eG(r.Vector3.Lerp(e.position,a.position,o),r.Vector3.Lerp(e.normal,a.normal,o).normalize(),r.Vector2.Lerp(e.uv,a.uv,o),-1,-1,f?[h+(d-h)*o,u+(p-u)*o,c+(g-c)*o]:null,x?[v/I,D/I,A/I]:null,n,l)},o=null;e.length>3&&(o=[]);for(let i=0;i<e.length;i+=3){let n=null,l=null,h=null,u=null,c=r.Vector3.Dot(e[i].position,t)-s,d=r.Vector3.Dot(e[i+1].position,t)-s,p=r.Vector3.Dot(e[i+2].position,t)-s,f=c>0,x=d>0,g=p>0;switch(+!!f+ +!!x+ +!!g){case 0:e.length>3?(o.push(e[i]),o.push(e[i+1]),o.push(e[i+2])):o=e;break;case 1:if(o=o??[],f&&(n=e[i+1],l=e[i+2],h=a(e[i],n),u=a(e[i],l)),x){n=e[i],l=e[i+2],h=a(e[i+1],n),u=a(e[i+1],l),o.push(h),o.push(l.clone()),o.push(n.clone()),o.push(l.clone()),o.push(h.clone()),o.push(u);break}g&&(n=e[i],l=e[i+1],h=a(e[i+2],n),u=a(e[i+2],l)),n&&l&&h&&u&&(o.push(n.clone()),o.push(l.clone()),o.push(h),o.push(u),o.push(h.clone()),o.push(l.clone()));break;case 2:o=o??[],f||(l=a(n=e[i].clone(),e[i+1]),h=a(n,e[i+2]),o.push(n),o.push(l),o.push(h)),x||(l=a(n=e[i+1].clone(),e[i+2]),h=a(n,e[i]),o.push(n),o.push(l),o.push(h)),g||(l=a(n=e[i+2].clone(),e[i]),h=a(n,e[i+1]),o.push(n),o.push(l),o.push(h))}}return o},L=t instanceof i.Mesh?t:null,B=L?._thinInstanceDataStorage.matrixData,z=L?.thinInstanceCount||1,E=r.TmpVectors.Matrix[0];E.copyFrom(r.Matrix.IdentityReadOnly);for(let e=0;e<z;++e){if(L?.hasThinInstances&&B){let t=16*e;E.setRowFromFloats(0,B[t+0],B[t+1],B[t+2],B[t+3]),E.setRowFromFloats(1,B[t+4],B[t+5],B[t+6],B[t+7]),E.setRowFromFloats(2,B[t+8],B[t+9],B[t+10],B[t+11]),E.setRowFromFloats(3,B[t+12],B[t+13],B[t+14],B[t+15])}let i=r.Matrix.RotationYawPitchRoll(v,A,b).multiply(r.Matrix.Translation(M.x,M.y,M.z)),a=r.Matrix.Invert(i),o=t.getWorldMatrix(),l=E.multiply(o).multiply(a),h=[,,,];for(let e=0;e<c.length;e+=3){let t=h;if((t[0]=F(e,l),t[1]=F(e+1,l),t[2]=F(e+2,l),!(s.cullBackFaces&&0>=-t[0].normal.z&&0>=-t[1].normal.z&&0>=-t[2].normal.z)&&(t=P(t,eE))&&(t=P(t,eS))&&(t=P(t,eR))&&(t=P(t,eU))&&(t=P(t,eN)))&&(t=P(t,eW)))for(let e=0;e<t.length;e++){let r=t[e];if(I.indices.push(w),u?(r.localPositionOverride?(I.positions[3*w]=r.localPositionOverride[0],I.positions[3*w+1]=r.localPositionOverride[1],I.positions[3*w+2]=r.localPositionOverride[2]):f&&(I.positions[3*w]=f[r.vertexIdx],I.positions[3*w+1]=f[r.vertexIdx+1],I.positions[3*w+2]=f[r.vertexIdx+2]),r.localNormalOverride?(I.normals[3*w]=r.localNormalOverride[0],I.normals[3*w+1]=r.localNormalOverride[1],I.normals[3*w+2]=r.localNormalOverride[2]):x&&(I.normals[3*w]=x[r.vertexIdx],I.normals[3*w+1]=x[r.vertexIdx+1],I.normals[3*w+2]=x[r.vertexIdx+2])):(r.position.toArray(I.positions,3*w),r.normal.toArray(I.normals,3*w)),I.matricesIndices&&I.matricesWeights&&(r.matrixIndicesOverride?(I.matricesIndices[4*w]=r.matrixIndicesOverride[0],I.matricesIndices[4*w+1]=r.matrixIndicesOverride[1],I.matricesIndices[4*w+2]=r.matrixIndicesOverride[2],I.matricesIndices[4*w+3]=r.matrixIndicesOverride[3]):(m&&(I.matricesIndices[4*w]=m[r.vertexIdxForBones],I.matricesIndices[4*w+1]=m[r.vertexIdxForBones+1],I.matricesIndices[4*w+2]=m[r.vertexIdxForBones+2],I.matricesIndices[4*w+3]=m[r.vertexIdxForBones+3]),O&&I.matricesIndicesExtra&&(I.matricesIndicesExtra[4*w]=O[r.vertexIdxForBones],I.matricesIndicesExtra[4*w+1]=O[r.vertexIdxForBones+1],I.matricesIndicesExtra[4*w+2]=O[r.vertexIdxForBones+2],I.matricesIndicesExtra[4*w+3]=O[r.vertexIdxForBones+3])),r.matrixWeightsOverride?(I.matricesWeights[4*w]=r.matrixWeightsOverride[0],I.matricesWeights[4*w+1]=r.matrixWeightsOverride[1],I.matricesWeights[4*w+2]=r.matrixWeightsOverride[2],I.matricesWeights[4*w+3]=r.matrixWeightsOverride[3]):(V&&(I.matricesWeights[4*w]=V[r.vertexIdxForBones],I.matricesWeights[4*w+1]=V[r.vertexIdxForBones+1],I.matricesWeights[4*w+2]=V[r.vertexIdxForBones+2],I.matricesWeights[4*w+3]=V[r.vertexIdxForBones+3]),_&&I.matricesWeightsExtra&&(I.matricesWeightsExtra[4*w]=_[r.vertexIdxForBones],I.matricesWeightsExtra[4*w+1]=_[r.vertexIdxForBones+1],I.matricesWeightsExtra[4*w+2]=_[r.vertexIdxForBones+2],I.matricesWeightsExtra[4*w+3]=_[r.vertexIdxForBones+3]))),s.captureUVS)r.uv.toArray(I.uvs,2*w);else{I.uvs.push(.5+r.position.x/T.x);let e=.5+r.position.y/T.y;I.uvs.push(n.useOpenGLOrientationForUV?1-e:e)}w++}}}0===I.indices.length&&(I.indices=null),0===I.positions.length&&(I.positions=null),0===I.normals.length&&(I.normals=null),0===I.uvs.length&&(I.uvs=null),I.matricesIndices?.length===0&&(I.matricesIndices=null),I.matricesWeights?.length===0&&(I.matricesWeights=null),I.matricesIndicesExtra?.length===0&&(I.matricesIndicesExtra=null),I.matricesWeightsExtra?.length===0&&(I.matricesWeightsExtra=null);let S=new i.Mesh(e,t.getScene());return I.applyToMesh(S),u?(S.skeleton=t.skeleton,S.parent=t):(S.position=M.clone(),S.rotation=new r.Vector3(A,v,b)),S.computeWorldMatrix(!0),S.refreshBoundingInfo(!0,!0),S}let eZ=!1;function eX(e={subdivisions:2,tessellation:16,height:1,radius:.25,capSubdivisions:6}){let t,s,i=0|Math.max(e.subdivisions?e.subdivisions:2,1),a=0|Math.max(e.tessellation?e.tessellation:16,3),l=Math.max(e.height?e.height:1,0),h=Math.max(e.radius?e.radius:.25,0),u=0|Math.max(e.capSubdivisions?e.capSubdivisions:6,1),c=Math.max(e.radiusTop?e.radiusTop:h,0),d=Math.max(e.radiusBottom?e.radiusBottom:h,0),p=2*Math.PI,f=Math.max(e.topCapSubdivisions?e.topCapSubdivisions:u,1),x=Math.max(e.bottomCapSubdivisions?e.bottomCapSubdivisions:u,1),g=Math.acos((d-c)/l),m=[],V=[],O=[],_=[],M=0,y=[],T=.5*(l-(c+d)),b=.5*Math.PI,v=r.Vector3.Zero(),D=r.Vector3.Zero(),A=Math.cos(g),I=Math.sin(g),w=new r.Vector2(c*I,T+c*A).subtract(new r.Vector2(d*I,-T+d*A)).length(),F=c*g+w+d*(b-g),C=0;for(s=0;s<=f;s++){let e=[],r=b-s/f*g;C+=c*g/f;let i=Math.cos(r),o=Math.sin(r),l=i*c;for(t=0;t<=a;t++){let s=t/a,r=s*p+0,h=Math.sin(r),u=Math.cos(r);D.x=l*h,D.y=T+o*c,D.z=l*u,V.push(D.x,D.y,D.z),v.set(i*h,o,i*u),O.push(v.x,v.y,v.z),_.push(s,n.useOpenGLOrientationForUV?C/F:1-C/F),e.push(M),M++}y.push(e)}let P=l-c-d+A*c-A*d,L=I*(d-c)/P;for(s=1;s<=i;s++){let e=[];C+=w/i;let r=I*(s*(d-c)/i+c);for(t=0;t<=a;t++){let o=t/a,l=o*p+0,h=Math.sin(l),u=Math.cos(l);D.x=r*h,D.y=T+A*c-s*P/i,D.z=r*u,V.push(D.x,D.y,D.z),v.set(h,L,u).normalize(),O.push(v.x,v.y,v.z),_.push(o,n.useOpenGLOrientationForUV?C/F:1-C/F),e.push(M),M++}y.push(e)}for(s=1;s<=x;s++){let e=[],r=b-g-s/x*(Math.PI-g);C+=d*g/x;let i=Math.cos(r),o=Math.sin(r),l=i*d;for(t=0;t<=a;t++){let s=t/a,r=s*p+0,h=Math.sin(r),u=Math.cos(r);D.x=l*h,D.y=-T+o*d,D.z=l*u,V.push(D.x,D.y,D.z),v.set(i*h,o,i*u),O.push(v.x,v.y,v.z),_.push(s,n.useOpenGLOrientationForUV?C/F:1-C/F),e.push(M),M++}y.push(e)}for(t=0;t<a;t++)for(s=0;s<f+i+x;s++){let e=y[s][t],r=y[s+1][t],i=y[s+1][t+1],a=y[s][t+1];m.push(e),m.push(r),m.push(a),m.push(r),m.push(i),m.push(a)}if(m=m.reverse(),e.orientation&&!e.orientation.equals(r.Vector3.Up())){let t=new r.Matrix;e.orientation.clone().scale(.5*Math.PI).cross(r.Vector3.Up()).toQuaternion().toRotationMatrix(t);let s=r.Vector3.Zero();for(let e=0;e<V.length;e+=3)s.set(V[e],V[e+1],V[e+2]),r.Vector3.TransformCoordinatesToRef(s.clone(),t,s),V[e]=s.x,V[e+1]=s.y,V[e+2]=s.z}let B=new o.VertexData;return B.positions=V,B.normals=O,B.uvs=_,B.indices=m,B}function ek(e,t={orientation:r.Vector3.Up(),subdivisions:2,tessellation:16,height:1,radius:.25,capSubdivisions:6,updatable:!1},s=null){let a=new i.Mesh(e,s);return eX(t).applyToMesh(a,t.updatable),a}eZ=!0,i.Mesh.CreateDecal=(e,t,s,r,i,a)=>eH(e,t,{position:s,normal:r,size:i,angle:a});let eY=!1;eY=!0,i.Mesh.CreateCapsule=(e,t,s)=>ek(e,t,s),o.VertexData.CreateCapsule=eX,e.s([],38728),e.i(38728);class eK{constructor(e=0,t=0){this.x=e,this.y=t,e!==Math.floor(e)&&(e=Math.floor(e),Z.Logger.Warn("x is not an integer, floor(x) used")),t!==Math.floor(t)&&(t=Math.floor(t),Z.Logger.Warn("y is not an integer, floor(y) used"))}clone(){return new eK(this.x,this.y)}rotate60About(e){let t=this.x;return this.x=e.x+e.y-this.y,this.y=t+this.y-e.x,this}rotateNeg60About(e){let t=this.x;return this.x=t+this.y-e.y,this.y=e.x+e.y-t,this}rotate120(e,t){e!==Math.floor(e)&&(e=Math.floor(e),Z.Logger.Warn("m not an integer only floor(m) used")),t!==Math.floor(t)&&(t=Math.floor(t),Z.Logger.Warn("n not an integer only floor(n) used"));let s=this.x;return this.x=e-s-this.y,this.y=t+s,this}rotateNeg120(e,t){e!==Math.floor(e)&&(e=Math.floor(e),Z.Logger.Warn("m is not an integer, floor(m) used")),t!==Math.floor(t)&&(t=Math.floor(t),Z.Logger.Warn("n is not an integer, floor(n) used"));let s=this.x;return this.x=this.y-t,this.y=e+t-s-this.y,this}toCartesianOrigin(e,t){let s=r.Vector3.Zero();return s.x=e.x+2*this.x*t+this.y*t,s.y=e.y+Math.sqrt(3)*this.y*t,s}static Zero(){return new eK(0,0)}}class eQ{constructor(){this.cartesian=[],this.vertices=[],this.max=[],this.min=[],this.closestTo=[],this.innerFacets=[],this.isoVecsABOB=[],this.isoVecsOBOA=[],this.isoVecsBAOA=[],this.vertexTypes=[],this.IDATA=new eq("icosahedron","Regular",[[0,$.PHI,-1],[-$.PHI,1,0],[-1,0,-$.PHI],[1,0,-$.PHI],[$.PHI,1,0],[0,$.PHI,1],[-1,0,$.PHI],[-$.PHI,-1,0],[0,-$.PHI,-1],[$.PHI,-1,0],[1,0,$.PHI],[0,-$.PHI,1]],[[0,2,1],[0,3,2],[0,4,3],[0,5,4],[0,1,5],[7,6,1],[8,7,2],[9,8,3],[10,9,4],[6,10,5],[2,7,1],[3,8,2],[4,9,3],[5,10,4],[1,6,5],[11,6,7],[11,7,8],[11,8,9],[11,9,10],[11,10,6]])}setIndices(){let e,t,s,r,i,a,o,n,l=12,h={},u=this.m,c=this.n,d=u;0!==c&&(d=(0,ez.HighestCommonFactor)(u,c));let p=u/d,f=c/d,x=eK.Zero(),g=new eK(u,c),m=new eK(-c,u+c),V=eK.Zero(),O=eK.Zero(),_=eK.Zero(),M=[],y=[],T=this.vertByDist,b=(e,t,s,r)=>{a=e+"|"+s,o=t+"|"+r,a in h||o in h?a in h&&!(o in h)?h[o]=h[a]:o in h&&!(a in h)&&(h[a]=h[o]):(h[a]=l,h[o]=l,l++),T[s][0]>2?y[h[a]]=[-T[s][0],T[s][1],h[a]]:y[h[a]]=[M[T[s][0]],T[s][1],h[a]]};this.IDATA.edgematch=[[1,"B"],[2,"B"],[3,"B"],[4,"B"],[0,"B"],[10,"O",14,"A"],[11,"O",10,"A"],[12,"O",11,"A"],[13,"O",12,"A"],[14,"O",13,"A"],[0,"O"],[1,"O"],[2,"O"],[3,"O"],[4,"O"],[19,"B",5,"A"],[15,"B",6,"A"],[16,"B",7,"A"],[17,"B",8,"A"],[18,"B",9,"A"]];for(let o=0;o<20;o++){if(s=(M=this.IDATA.face[o])[2],r=M[1],i=M[0],(a=o+"|"+(n=x.x+"|"+x.y))in h||(h[a]=s,y[s]=[M[T[n][0]],T[n][1]]),(a=o+"|"+(n=g.x+"|"+g.y))in h||(h[a]=r,y[r]=[M[T[n][0]],T[n][1]]),(a=o+"|"+(n=m.x+"|"+m.y))in h||(h[a]=i,y[i]=[M[T[n][0]],T[n][1]]),e=this.IDATA.edgematch[o][0],"B"===(t=this.IDATA.edgematch[o][1]))for(let t=1;t<d;t++)O.x=u-t*(p+f),O.y=c+t*p,_.x=-t*f,_.y=t*(p+f),b(o,e,n=O.x+"|"+O.y,_.x+"|"+_.y);if("O"===t)for(let t=1;t<d;t++)_.x=-t*f,_.y=t*(p+f),V.x=t*p,V.y=t*f,b(o,e,n=_.x+"|"+_.y,V.x+"|"+V.y);if(e=this.IDATA.edgematch[o][2],(t=this.IDATA.edgematch[o][3])&&"A"===t)for(let t=1;t<d;t++)V.x=t*p,V.y=t*f,O.x=u-(d-t)*(p+f),O.y=c+(d-t)*p,b(o,e,n=V.x+"|"+V.y,O.x+"|"+O.y);for(let e=0;e<this.vertices.length;e++)(a=o+"|"+(n=this.vertices[e].x+"|"+this.vertices[e].y))in h||(h[a]=l++,T[n][0]>2?y[h[a]]=[-T[n][0],T[n][1],h[a]]:y[h[a]]=[M[T[n][0]],T[n][1],h[a]])}this.closestTo=y,this.vecToidx=h}calcCoeffs(){let e=this.m,t=this.n,s=Math.sqrt(3)/3,r=e*e+t*t+e*t;this.coau=(e+t)/r,this.cobu=-t/r,this.coav=-s*(e-t)/r,this.cobv=s*(2*e+t)/r}createInnerFacets(){let e=this.m,t=this.n;for(let s=0;s<t+e+1;s++)for(let e=this.min[s];e<this.max[s]+1;e++)e<this.max[s]&&e<this.max[s+1]+1&&this.innerFacets.push(["|"+e+"|"+s,"|"+e+"|"+(s+1),"|"+(e+1)+"|"+s]),s>0&&e<this.max[s-1]&&e+1<this.max[s]+1&&this.innerFacets.push(["|"+e+"|"+s,"|"+(e+1)+"|"+s,"|"+(e+1)+"|"+(s-1)])}edgeVecsABOB(){let e=this.m,t=this.n,s=new eK(-t,e+t);for(let r=1;r<e+t;r++){let e=new eK(this.min[r],r),t=new eK(this.min[r-1],r-1),i=new eK(this.min[r+1],r+1),a=e.clone(),o=t.clone(),n=i.clone();a.rotate60About(s),o.rotate60About(s),n.rotate60About(s);let l=new eK(this.max[a.y],a.y),h=new eK(this.max[a.y-1],a.y-1),u=new eK(this.max[a.y-1]-1,a.y-1);(a.x!==l.x||a.y!==l.y)&&(a.x!==h.x?(this.vertexTypes.push([1,0,0]),this.isoVecsABOB.push([e,h,u]),this.vertexTypes.push([1,0,0]),this.isoVecsABOB.push([e,u,l])):a.y===n.y?(this.vertexTypes.push([1,1,0]),this.isoVecsABOB.push([e,t,h]),this.vertexTypes.push([1,0,1]),this.isoVecsABOB.push([e,h,i])):(this.vertexTypes.push([1,1,0]),this.isoVecsABOB.push([e,t,h]),this.vertexTypes.push([1,0,0]),this.isoVecsABOB.push([e,h,l])))}}mapABOBtoOBOA(){let e=new eK(0,0);for(let t=0;t<this.isoVecsABOB.length;t++){let s=[];for(let r=0;r<3;r++)e.x=this.isoVecsABOB[t][r].x,e.y=this.isoVecsABOB[t][r].y,0===this.vertexTypes[t][r]&&e.rotateNeg120(this.m,this.n),s.push(e.clone());this.isoVecsOBOA.push(s)}}mapABOBtoBAOA(){let e=new eK(0,0);for(let t=0;t<this.isoVecsABOB.length;t++){let s=[];for(let r=0;r<3;r++)e.x=this.isoVecsABOB[t][r].x,e.y=this.isoVecsABOB[t][r].y,1===this.vertexTypes[t][r]&&e.rotate120(this.m,this.n),s.push(e.clone());this.isoVecsBAOA.push(s)}}MapToFace(e,t){let s,i,a=this.IDATA.face[e],o=a[2],n=a[1],l=a[0],h=r.Vector3.FromArray(this.IDATA.vertex[o]),u=r.Vector3.FromArray(this.IDATA.vertex[n]),c=r.Vector3.FromArray(this.IDATA.vertex[l]),d=u.subtract(h),p=c.subtract(h),f=d.scale(this.coau).add(p.scale(this.cobu)),x=d.scale(this.coav).add(p.scale(this.cobv)),g=[];for(let r=0;r<this.cartesian.length;r++)i=f.scale(this.cartesian[r].x).add(x.scale(this.cartesian[r].y)).add(h),g[r]=[i.x,i.y,i.z],s=e+"|"+this.vertices[r].x+"|"+this.vertices[r].y,t.vertex[this.vecToidx[s]]=[i.x,i.y,i.z]}build(e,t){let s,r,i=[],a=eK.Zero(),o=new eK(e,t),n=new eK(-t,e+t);i.push(a,o,n);for(let s=t;s<e+1;s++)for(let t=0;t<e+1-s;t++)i.push(new eK(t,s));if(t>0){let s=(0,ez.HighestCommonFactor)(e,t),r=e/s,a=t/s;for(let o=1;o<s;o++)i.push(new eK(o*r,o*a)),i.push(new eK(-o*a,o*(r+a))),i.push(new eK(e-o*(r+a),t+o*r));let o=e/t;for(let s=1;s<t;s++)for(let r=0;r<s*o;r++)i.push(new eK(r,s)),i.push(new eK(r,s).rotate120(e,t)),i.push(new eK(r,s).rotateNeg120(e,t))}i.sort((e,t)=>e.x-t.x),i.sort((e,t)=>e.y-t.y);let l=Array(e+t+1),h=Array(e+t+1);for(let e=0;e<l.length;e++)l[e]=1/0,h[e]=-1/0;let u=i.length;for(let e=0;e<u;e++)r=i[e].x,l[s=i[e].y]=Math.min(r,l[s]),h[s]=Math.max(r,h[s]);let c=(s,r)=>{let i=s.clone();return("A"===r&&i.rotateNeg120(e,t),"B"===r&&i.rotate120(e,t),i.x<0)?i.y:i.x+i.y},d=[],p=[],f=[],x=[],g={},m=[],V=-1,O=-1;for(let e=0;e<u;e++)d[e]=i[e].toCartesianOrigin(new eK(0,0),.5),p[e]=c(i[e],"O"),f[e]=c(i[e],"A"),x[e]=c(i[e],"B"),p[e]===f[e]&&f[e]===x[e]?(V=3,O=p[e]):p[e]===f[e]?(V=4,O=p[e]):f[e]===x[e]?(V=5,O=f[e]):x[e]===p[e]&&(V=6,O=p[e]),p[e]<f[e]&&p[e]<x[e]&&(V=2,O=p[e]),f[e]<p[e]&&f[e]<x[e]&&(V=1,O=f[e]),x[e]<f[e]&&x[e]<p[e]&&(V=0,O=x[e]),m.push([V,O,i[e].x,i[e].y]);m.sort((e,t)=>e[2]-t[2]),m.sort((e,t)=>e[3]-t[3]),m.sort((e,t)=>e[1]-t[1]),m.sort((e,t)=>e[0]-t[0]);for(let e=0;e<m.length;e++)g[m[e][2]+"|"+m[e][3]]=[m[e][0],m[e][1],e];return this.m=e,this.n=t,this.vertices=i,this.vertByDist=g,this.cartesian=d,this.min=l,this.max=h,this}}class eq{constructor(e,t,s,r){this.name=e,this.category=t,this.vertex=s,this.face=r}}class ej extends eq{innerToData(e,t){for(let s=0;s<t.innerFacets.length;s++)this.face.push(t.innerFacets[s].map(s=>t.vecToidx[e+s]))}mapABOBtoDATA(e,t){let s=t.IDATA.edgematch[e][0];for(let r=0;r<t.isoVecsABOB.length;r++){let i=[];for(let a=0;a<3;a++)0===t.vertexTypes[r][a]?i.push(e+"|"+t.isoVecsABOB[r][a].x+"|"+t.isoVecsABOB[r][a].y):i.push(s+"|"+t.isoVecsABOB[r][a].x+"|"+t.isoVecsABOB[r][a].y);this.face.push([t.vecToidx[i[0]],t.vecToidx[i[1]],t.vecToidx[i[2]]])}}mapOBOAtoDATA(e,t){let s=t.IDATA.edgematch[e][0];for(let r=0;r<t.isoVecsOBOA.length;r++){let i=[];for(let a=0;a<3;a++)1===t.vertexTypes[r][a]?i.push(e+"|"+t.isoVecsOBOA[r][a].x+"|"+t.isoVecsOBOA[r][a].y):i.push(s+"|"+t.isoVecsOBOA[r][a].x+"|"+t.isoVecsOBOA[r][a].y);this.face.push([t.vecToidx[i[0]],t.vecToidx[i[1]],t.vecToidx[i[2]]])}}mapBAOAtoDATA(e,t){let s=t.IDATA.edgematch[e][2];for(let r=0;r<t.isoVecsBAOA.length;r++){let i=[];for(let a=0;a<3;a++)1===t.vertexTypes[r][a]?i.push(e+"|"+t.isoVecsBAOA[r][a].x+"|"+t.isoVecsBAOA[r][a].y):i.push(s+"|"+t.isoVecsBAOA[r][a].x+"|"+t.isoVecsBAOA[r][a].y);this.face.push([t.vecToidx[i[0]],t.vecToidx[i[1]],t.vecToidx[i[2]]])}}orderData(e){let t=[];for(let e=0;e<13;e++)t[e]=[];let s=e.closestTo;for(let e=0;e<s.length;e++)s[e][0]>-1?s[e][1]>0&&t[s[e][0]].push([e,s[e][1]]):t[12].push([e,s[e][0]]);let r=[];for(let e=0;e<12;e++)r[e]=e;let i=12;for(let e=0;e<12;e++){t[e].sort((e,t)=>e[1]-t[1]);for(let s=0;s<t[e].length;s++)r[t[e][s][0]]=i++}for(let e=0;e<t[12].length;e++)r[t[12][e][0]]=i++;for(let e=0;e<this.vertex.length;e++)this.vertex[e].push(r[e]);this.vertex.sort((e,t)=>e[3]-t[3]);for(let e=0;e<this.vertex.length;e++)this.vertex[e].pop();for(let e=0;e<this.face.length;e++)for(let t=0;t<this.face[e].length;t++)this.face[e][t]=r[this.face[e][t]];this.sharedNodes=t[12].length,this.poleNodes=this.vertex.length-this.sharedNodes}setOrder(e,t){let s=[],r=[],i=t.pop();r.push(i);let a=this.face[i].indexOf(e);a=(a+2)%3;let o=this.face[i][a];s.push(o);let n=0;for(;t.length>0;)i=t[n],this.face[i].indexOf(o)>-1?(a=(this.face[i].indexOf(o)+1)%3,o=this.face[i][a],s.push(o),r.push(i),t.splice(n,1),n=0):n++;return this.adjacentFaces.push(s),r}toGoldbergPolyhedronData(){let e,t,s,r,i,a=new eq("GeoDual","Goldberg",[],[]);a.name="GD dual";let o=this.vertex.length,n=Array(o);for(let e=0;e<o;e++)n[e]=[];for(let e=0;e<this.face.length;e++)for(let t=0;t<3;t++)n[this.face[e][t]].push(e);this.adjacentFaces=[];for(let o=0;o<n.length;o++)for(let l of(a.face[o]=this.setOrder(o,n[o].concat([])),n[o])){e=0,t=0,s=0,r=this.face[l];for(let a=0;a<3;a++)e+=(i=this.vertex[r[a]])[0],t+=i[1],s+=i[2];a.vertex[l]=[e/3,t/3,s/3]}return a}static BuildGeodesicData(e){let t=new ej("Geodesic-m-n","Geodesic",[[0,$.PHI,-1],[-$.PHI,1,0],[-1,0,-$.PHI],[1,0,-$.PHI],[$.PHI,1,0],[0,$.PHI,1],[-1,0,$.PHI],[-$.PHI,-1,0],[0,-$.PHI,-1],[$.PHI,-1,0],[1,0,$.PHI],[0,-$.PHI,1]],[]);e.setIndices(),e.calcCoeffs(),e.createInnerFacets(),e.edgeVecsABOB(),e.mapABOBtoOBOA(),e.mapABOBtoBAOA();for(let s=0;s<e.IDATA.face.length;s++)e.MapToFace(s,t),t.innerToData(s,e),"B"===e.IDATA.edgematch[s][1]&&t.mapABOBtoDATA(s,e),"O"===e.IDATA.edgematch[s][1]&&t.mapOBOAtoDATA(s,e),"A"===e.IDATA.edgematch[s][3]&&t.mapBAOAtoDATA(s,e);return t.orderData(e),t.vertex=t.vertex.map(function(e){let t=e[0],s=e[1],r=e[2],i=Math.sqrt(t*t+s*s+r*r);return e[0]*=1/i,e[1]*=1/i,e[2]*=1/i,e}),t}}var eJ=i;class e$ extends eJ.Mesh{constructor(){super(...arguments),this.goldbergData={faceColors:[],faceCenters:[],faceZaxis:[],faceXaxis:[],faceYaxis:[],nbSharedFaces:0,nbUnsharedFaces:0,nbFaces:0,nbFacesAtPole:0,adjacentFaces:[]}}relatedGoldbergFace(e,t){return void 0===t?(e>this.goldbergData.nbUnsharedFaces-1&&(Z.Logger.Warn("Maximum number of unshared faces used"),e=this.goldbergData.nbUnsharedFaces-1),this.goldbergData.nbUnsharedFaces+e):(e>11&&(Z.Logger.Warn("Last pole used"),e=11),t>this.goldbergData.nbFacesAtPole-1&&(Z.Logger.Warn("Maximum number of faces at a pole used"),t=this.goldbergData.nbFacesAtPole-1),12+e*this.goldbergData.nbFacesAtPole+t)}_changeGoldbergFaceColors(e){for(let t=0;t<e.length;t++){let s=e[t][0],r=e[t][1],i=e[t][2];for(let e=s;e<r+1;e++)this.goldbergData.faceColors[e]=i}let t=[];for(let e=0;e<12;e++)for(let s=0;s<5;s++)t.push(this.goldbergData.faceColors[e].r,this.goldbergData.faceColors[e].g,this.goldbergData.faceColors[e].b,this.goldbergData.faceColors[e].a);for(let e=12;e<this.goldbergData.faceColors.length;e++)for(let s=0;s<6;s++)t.push(this.goldbergData.faceColors[e].r,this.goldbergData.faceColors[e].g,this.goldbergData.faceColors[e].b,this.goldbergData.faceColors[e].a);return t}setGoldbergFaceColors(e){let t=this._changeGoldbergFaceColors(e);this.setVerticesData(a.VertexBuffer.ColorKind,t)}updateGoldbergFaceColors(e){let t=this._changeGoldbergFaceColors(e);this.updateVerticesData(a.VertexBuffer.ColorKind,t)}_changeGoldbergFaceUVs(e){let t=this.getVerticesData(a.VertexBuffer.UVKind);for(let s=0;s<e.length;s++){let r,i,a=e[s][0],o=e[s][1],n=e[s][2],l=e[s][3],h=e[s][4],u=[],c=[];for(let e=0;e<5;e++)r=n.x+l*Math.cos(h+e*Math.PI/2.5),i=n.y+l*Math.sin(h+e*Math.PI/2.5),r<0&&(r=0),r>1&&(r=1),u.push(r,i);for(let e=0;e<6;e++)r=n.x+l*Math.cos(h+e*Math.PI/3),i=n.y+l*Math.sin(h+e*Math.PI/3),r<0&&(r=0),r>1&&(r=1),c.push(r,i);for(let e=a;e<Math.min(12,o+1);e++)for(let s=0;s<5;s++)t[10*e+2*s]=u[2*s],t[10*e+2*s+1]=u[2*s+1];for(let e=Math.max(12,a);e<o+1;e++)for(let s=0;s<6;s++)t[12*e-24+2*s]=c[2*s],t[12*e-23+2*s]=c[2*s+1]}return t}setGoldbergFaceUVs(e){let t=this._changeGoldbergFaceUVs(e);this.setVerticesData(a.VertexBuffer.UVKind,t)}updateGoldbergFaceUVs(e){let t=this._changeGoldbergFaceUVs(e);this.updateVerticesData(a.VertexBuffer.UVKind,t)}placeOnGoldbergFaceAt(e,t,s){e.rotation=r.Vector3.RotationFromAxis(this.goldbergData.faceXaxis[t],this.goldbergData.faceYaxis[t],this.goldbergData.faceZaxis[t]),e.position=this.goldbergData.faceCenters[t].add(this.goldbergData.faceXaxis[t].scale(s.x)).add(this.goldbergData.faceYaxis[t].scale(s.y)).add(this.goldbergData.faceZaxis[t].scale(s.z))}serialize(e){super.serialize(e),e.type="GoldbergMesh";let t={};if(t.adjacentFaces=this.goldbergData.adjacentFaces,t.nbSharedFaces=this.goldbergData.nbSharedFaces,t.nbUnsharedFaces=this.goldbergData.nbUnsharedFaces,t.nbFaces=this.goldbergData.nbFaces,t.nbFacesAtPole=this.goldbergData.nbFacesAtPole,this.goldbergData.faceColors)for(let e of(t.faceColors=[],this.goldbergData.faceColors))t.faceColors.push(e.asArray());if(this.goldbergData.faceCenters)for(let e of(t.faceCenters=[],this.goldbergData.faceCenters))t.faceCenters.push(e.asArray());if(this.goldbergData.faceZaxis)for(let e of(t.faceZaxis=[],this.goldbergData.faceZaxis))t.faceZaxis.push(e.asArray());if(this.goldbergData.faceYaxis)for(let e of(t.faceYaxis=[],this.goldbergData.faceYaxis))t.faceYaxis.push(e.asArray());if(this.goldbergData.faceXaxis)for(let e of(t.faceXaxis=[],this.goldbergData.faceXaxis))t.faceXaxis.push(e.asArray());e.goldbergData=t}static Parse(e,t){let s=e.goldbergData;s.faceColors=s.faceColors.map(e=>f.Color4.FromArray(e)),s.faceCenters=s.faceCenters.map(e=>r.Vector3.FromArray(e)),s.faceZaxis=s.faceZaxis.map(e=>r.Vector3.FromArray(e)),s.faceXaxis=s.faceXaxis.map(e=>r.Vector3.FromArray(e)),s.faceYaxis=s.faceYaxis.map(e=>r.Vector3.FromArray(e));let i=new e$(e.name,t);return i.goldbergData=s,i}}var e1=e.i(17462);class e0{constructor(e){this._paths=[],this._tempPaths=[],this._holes=[],this._resolution=e}moveTo(e,t){this._currentPath=new J.Path2(e,t),this._tempPaths.push(this._currentPath)}lineTo(e,t){this._currentPath.addLineTo(e,t)}quadraticCurveTo(e,t,s,r){this._currentPath.addQuadraticCurveTo(e,t,s,r,this._resolution)}bezierCurveTo(e,t,s,r,i,a){this._currentPath.addBezierCurveTo(e,t,s,r,i,a,this._resolution)}extractHoles(){for(let e of this._tempPaths)e.area()>0?this._holes.push(e):this._paths.push(e);if(!this._paths.length&&this._holes.length){let e=this._holes;this._holes=this._paths,this._paths=e}this._tempPaths.length=0}get paths(){return this._paths}get holes(){return this._holes}}let e2={CreateBox:g,CreateTiledBox:function(e,t,s=null){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,M(t).applyToMesh(r,t.updatable),r},CreateSphere:b,CreateDisc:d,CreateIcoSphere:eL,CreateRibbon:h,CreateCylinder:w,CreateTorus:P,CreateTorusKnot:z,CreateLineSystem:Y,CreateLines:K,CreateDashedLines:Q,ExtrudeShape:el,ExtrudeShapeCustom:eh,CreateLathe:ed,CreateTiledPlane:function(e,t,s=null){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,V(t).applyToMesh(r,t.updatable),r},CreatePlane:ex,CreateGround:eT,CreateTiledGround:eb,CreateGroundFromHeightMap:ev,CreatePolygon:ea,ExtrudePolygon:eo,CreateTube:eA,CreatePolyhedron:eF,CreateGeodesic:function(e,t,s=null){let r=t.m||1;r!==Math.floor(r)&&(r=Math.floor(r),Z.Logger.Warn("m not an integer only floor(m) used"));let i=t.n||0;if(i!==Math.floor(i)&&(i=Math.floor(i),Z.Logger.Warn("n not an integer only floor(n) used")),i>r){let e=i;i=r,r=e,Z.Logger.Warn("n > m therefore m and n swapped")}let a=new eQ;return a.build(r,i),eF(e,{custom:ej.BuildGeodesicData(a),size:t.size,sizeX:t.sizeX,sizeY:t.sizeY,sizeZ:t.sizeZ,faceUV:t.faceUV,faceColors:t.faceColors,flat:t.flat,updatable:t.updatable,sideOrientation:t.sideOrientation,frontUVs:t.frontUVs,backUVs:t.backUVs},s)},CreateGoldberg:function(e,t,s=null){let a=t.size,l=t.sizeX||a||1,h=t.sizeY||a||1,u=t.sizeZ||a||1,c=t.m||1;c!==Math.floor(c)&&(c=Math.floor(c),Z.Logger.Warn("m not an integer only floor(m) used"));let d=t.n||0;if(d!==Math.floor(d)&&(d=Math.floor(d),Z.Logger.Warn("n not an integer only floor(n) used")),d>c){let e=d;d=c,c=e,Z.Logger.Warn("n > m therefore m and n swapped")}let p=new eQ;p.build(c,d);let x=ej.BuildGeodesicData(p),g=x.toGoldbergPolyhedronData(),m=new e$(e,s);t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),m._originalBuilderSideOrientation=t.sideOrientation,(function(e,t){let s=e.size,i=e.sizeX||s||1,a=e.sizeY||s||1,l=e.sizeZ||s||1,h=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,u=[],c=[],d=[],p=[],f=1/0,x=-1/0,g=1/0,m=-1/0;for(let e=0;e<t.vertex.length;e++)f=Math.min(f,t.vertex[e][0]*i),x=Math.max(x,t.vertex[e][0]*i),g=Math.min(g,t.vertex[e][1]*a),m=Math.max(m,t.vertex[e][1]*a);let V=0;for(let e=0;e<t.face.length;e++){let s=t.face[e],o=r.Vector3.FromArray(t.vertex[s[0]]),h=r.Vector3.FromArray(t.vertex[s[2]]),O=r.Vector3.FromArray(t.vertex[s[1]]),_=h.subtract(o),M=O.subtract(o),y=r.Vector3.Cross(M,_).normalize();for(let e=0;e<s.length;e++){d.push(y.x,y.y,y.z);let r=t.vertex[s[e]];u.push(r[0]*i,r[1]*a,r[2]*l);let o=(r[1]*a-g)/(m-g);p.push((r[0]*i-f)/(x-f),n.useOpenGLOrientationForUV?1-o:o)}for(let e=0;e<s.length-2;e++)c.push(V,V+e+2,V+e+1);V+=s.length}o.VertexData._ComputeSides(h,u,c,d,p);let O=new o.VertexData;return O.positions=u,O.indices=c,O.normals=d,O.uvs=p,O})(t,g).applyToMesh(m,t.updatable),m.goldbergData.nbSharedFaces=x.sharedNodes,m.goldbergData.nbUnsharedFaces=x.poleNodes,m.goldbergData.adjacentFaces=x.adjacentFaces,m.goldbergData.nbFaces=m.goldbergData.nbSharedFaces+m.goldbergData.nbUnsharedFaces,m.goldbergData.nbFacesAtPole=(m.goldbergData.nbUnsharedFaces-12)/12;for(let e=0;e<x.vertex.length;e++)m.goldbergData.faceCenters.push(r.Vector3.FromArray(x.vertex[e])),m.goldbergData.faceCenters[e].x*=l,m.goldbergData.faceCenters[e].y*=h,m.goldbergData.faceCenters[e].z*=u,m.goldbergData.faceColors.push(new f.Color4(1,1,1,1));for(let e=0;e<g.face.length;e++){let t=g.face[e],s=r.Vector3.FromArray(g.vertex[t[0]]),i=r.Vector3.FromArray(g.vertex[t[2]]),a=r.Vector3.FromArray(g.vertex[t[1]]),o=i.subtract(s),n=a.subtract(s),l=r.Vector3.Cross(n,o).normalize(),h=r.Vector3.Cross(n,l).normalize();m.goldbergData.faceXaxis.push(n.normalize()),m.goldbergData.faceYaxis.push(l),m.goldbergData.faceZaxis.push(h)}return m},CreateDecal:eH,CreateCapsule:ek,CreateText:function(e,t,s,a={size:50,resolution:8,depth:1},o=null,n=earcut){let l=function(e,t,s,r){let i=Array.from(e),a=t/r.resolution,o=(r.boundingBox.yMax-r.boundingBox.yMin+r.underlineThickness)*a,n=[],l=0,h=0;for(let e=0;e<i.length;e++){let t=i[e];if("\n"===t)l=0,h-=o;else{let e=function(e,t,s,r,i,a){let o=a.glyphs[e]||a.glyphs["?"];if(!o)return null;let n=new e0(i);if(o.o){let e=o.o.split(" ");for(let i=0,a=e.length;i<a;)switch(e[i++]){case"m":{let a=parseInt(e[i++])*t+s,o=parseInt(e[i++])*t+r;n.moveTo(a,o);break}case"l":{let a=parseInt(e[i++])*t+s,o=parseInt(e[i++])*t+r;n.lineTo(a,o);break}case"q":{let a=parseInt(e[i++])*t+s,o=parseInt(e[i++])*t+r,l=parseInt(e[i++])*t+s,h=parseInt(e[i++])*t+r;n.quadraticCurveTo(l,h,a,o);break}case"b":{let a=parseInt(e[i++])*t+s,o=parseInt(e[i++])*t+r,l=parseInt(e[i++])*t+s,h=parseInt(e[i++])*t+r,u=parseInt(e[i++])*t+s,c=parseInt(e[i++])*t+r;n.bezierCurveTo(l,h,u,c,a,o)}}}return n.extractHoles(),{offsetX:o.ha*t,shapePath:n}}(t,a,l,h,s,r);e&&(l+=e.offsetX,n.push(e.shapePath))}}return n}(t,a.size||50,a.resolution||8,s),h=[],u=0;for(let t of l){if(!t.paths.length)continue;let s=t.holes.slice();for(let l of t.paths){let t=[],c=[];for(let e of l.getPoints())c.push(new r.Vector3(e.x,0,e.y));for(let e of s.slice()){let i=e.getPoints(),a=!1;for(let e of i)if(l.isPointInside(e)){a=!0;break}if(!a)continue;let o=[];for(let e of i)o.push(new r.Vector3(e.x,0,e.y));t.push(o),s.splice(s.indexOf(e),1)}if(!t.length&&s.length)for(let e of s){let s=e.getPoints(),i=[];for(let e of s)i.push(new r.Vector3(e.x,0,e.y));t.push(i)}let d=eo(e,{shape:c,holes:t.length?t:void 0,depth:a.depth||1,faceUV:a.faceUV||a.perLetterFaceUV?.(u),faceColors:a.faceColors||a.perLetterFaceColors?.(u),sideOrientation:i.Mesh._GetDefaultSideOrientation(a.sideOrientation||i.Mesh.DOUBLESIDE)},o,n);h.push(d),u++}}let c=i.Mesh.MergeMeshes(h,!0,!0);if(c){let t=c.getBoundingInfo().boundingBox;c.position.x+=-(t.minimumWorld.x+t.maximumWorld.x)/2,c.position.y+=-(t.minimumWorld.y+t.maximumWorld.y)/2,c.position.z+=-(t.minimumWorld.z+t.maximumWorld.z)/2+t.extendSize.z,c.name=e;let s=new e1.TransformNode("pivot",o);s.rotation.x=-Math.PI/2,c.parent=s,c.bakeCurrentTransformIntoVertices(),c.parent=null,s.dispose()}return c}};e.s(["MeshBuilder",0,e2],5277),e.i(5277),e.s(["MeshBuilder",0,e2],36995)}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,86641,A=>{"use strict";var B=A.i(86823),g=A.i(41339);let w=0,f=(A,f,D,P)=>{if(!A[D]){let C=A.useDelayedTextureLoading;A.useDelayedTextureLoading=!1;let v=A._blockEntityCollection;A._blockEntityCollection=!1;let e=B.Texture.CreateFromBase64String(f,P+w++,A,!0,!1,B.Texture.BILINEAR_SAMPLINGMODE);A._blockEntityCollection=v;let Q=A.getEngine().getLoadedTexturesCache(),H=Q.indexOf(e.getInternalTexture());-1!==H&&Q.splice(H,1),e.isRGBD=!0,e.wrapU=B.Texture.CLAMP_ADDRESSMODE,e.wrapV=B.Texture.CLAMP_ADDRESSMODE,A[D]=e,A.useDelayedTextureLoading=C,g.RGBDTextureTools.ExpandRGBDTexture(e);let I=A.getEngine().onContextRestoredObservable.add(()=>{e.isRGBD=!0;let B=A.onBeforeRenderObservable.add(()=>{e.isReady()&&(A.onBeforeRenderObservable.remove(B),g.RGBDTextureTools.ExpandRGBDTexture(e))})});A.onDisposeObservable.add(()=>{A.getEngine().onContextRestoredObservable.remove(I)})}return A[D]};A.s(["GetEnvironmentBRDFTexture",0,A=>f(A,"data:image/png;base64,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","environmentBRDFTexture","EnvironmentBRDFTexture"),"GetEnvironmentFuzzBRDFTexture",0,A=>f(A,"data:image/png;base64,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","environmentFuzzBRDFTexture","EnvironmentFuzzBRDFTexture"),"GetOpenPBREnvironmentBRDFTexture",0,A=>f(A,"data:image/png;base64,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","openPBREnvironmentBRDFTexture","OpenPBREnvironmentBRDFTexture")])},28737,A=>{A.v(B=>Promise.all(["static/chunks/1zkd8v-qka--j.js"].map(B=>A.l(B))).then(()=>B(73314)))},2362,A=>{A.v(B=>Promise.all(["static/chunks/35sne1llxnc-m.js"].map(B=>A.l(B))).then(()=>B(77971)))},94291,A=>{A.v(B=>Promise.all(["static/chunks/1l_3oidssbhns.js","static/chunks/13zcn4lv0qj76.js","static/chunks/2s6kpclh6ie7o.js"].map(B=>A.l(B))).then(()=>B(57436)))},1872,A=>{A.v(B=>Promise.all(["static/chunks/1e8_jl2cxd3rp.js"].map(B=>A.l(B))).then(()=>B(75363)))},49830,A=>{A.v(B=>Promise.all(["static/chunks/0sw-8gxbg4x0l.js"].map(B=>A.l(B))).then(()=>B(48824)))},68148,A=>{A.v(B=>Promise.all(["static/chunks/2z_iab7ozohhq.js"].map(B=>A.l(B))).then(()=>B(49590)))},36592,A=>{A.v(B=>Promise.all(["static/chunks/0z9erbl3llr_b.js","static/chunks/267prao6fyt22.js","static/chunks/30n4y_uu8chbh.js"].map(B=>A.l(B))).then(()=>B(97311)))},59899,A=>{A.v(B=>Promise.all(["static/chunks/3qn6r8-0u6dij.js"].map(B=>A.l(B))).then(()=>B(63557)))}]);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,33892,e=>{"use strict";var r=e.i(2342);let o="lod3DPixelShader",t=`precision highp float;precision highp sampler3D;const float GammaEncodePowerApprox=1.0/2.2;varying vec2 vUV;uniform sampler3D textureSampler;uniform float lod;uniform float slice;uniform int gamma;void main(void)
|
|
2
|
+
{ivec3 textureCoordinates=ivec3(vUV*vec2(textureSize(textureSampler,0).xy),int(slice));gl_FragColor=texelFetch(textureSampler,textureCoordinates,int(lod));if (gamma==0) {gl_FragColor.rgb=pow(gl_FragColor.rgb,vec3(GammaEncodePowerApprox));}}
|
|
3
|
+
`;r.ShaderStore.ShadersStore[o]||(r.ShaderStore.ShadersStore[o]=t),e.s(["lod3DPixelShader",0,{name:o,shader:t}])}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,25346,e=>{e.v(t=>Promise.all(["static/chunks/43v4y2gu5z9_h.js","static/chunks/0q75860p8u_ii.js","static/chunks/1vrpzlif-z_p0.js","static/chunks/2701xfv_07wz_.js","static/chunks/0nhljhguceh66.js","static/chunks/2bettxaqt3d2p.js","static/chunks/0xa9dyg6ezzyd.js","static/chunks/2apnpj0-fs9ks.js","static/chunks/08lvtnv7b1cxp.js","static/chunks/3zkwt0gybqtgm.js","static/chunks/2ofwtw6p08sfz.js","static/chunks/36enkx1skkv2-.js","static/chunks/3rlp9yr75liz7.js"].map(t=>e.l(t))).then(()=>t(61238)))},8179,e=>{e.v(t=>Promise.all(["static/chunks/1vrpzlif-z_p0.js","static/chunks/3d-i_skta_wes.js","static/chunks/0q75860p8u_ii.js","static/chunks/2ofwtw6p08sfz.js","static/chunks/0nhljhguceh66.js","static/chunks/03bd5plut08tg.js","static/chunks/2701xfv_07wz_.js","static/chunks/36enkx1skkv2-.js","static/chunks/0xa9dyg6ezzyd.js","static/chunks/08lvtnv7b1cxp.js"].map(t=>e.l(t))).then(()=>t(86790)))},45852,e=>{e.v(t=>Promise.all(["static/chunks/0u85f0dhb4i8e.js","static/chunks/2ydub0t01728d.js","static/chunks/0q75860p8u_ii.js","static/chunks/0fxdyvb1w23d1.js","static/chunks/0xa9dyg6ezzyd.js","static/chunks/08lvtnv7b1cxp.js","static/chunks/0e7nlxmneb2j_.js","static/chunks/36enkx1skkv2-.js","static/chunks/0fxhc24djjcgq.js"].map(t=>e.l(t))).then(()=>t(69260)))},19257,e=>{e.v(t=>Promise.all(["static/chunks/15jlgfcaeaki9.js","static/chunks/1pgs-98tfkq9_.js","static/chunks/0q75860p8u_ii.js","static/chunks/36enkx1skkv2-.js","static/chunks/0lbs5xdyjuzuo.js","static/chunks/2701xfv_07wz_.js"].map(t=>e.l(t))).then(()=>t(33738)))},76269,e=>{e.v(t=>Promise.all(["static/chunks/1ncqwe81t_9_x.js","static/chunks/3ksq69yq-40_r.js","static/chunks/1vrpzlif-z_p0.js","static/chunks/2701xfv_07wz_.js","static/chunks/0q75860p8u_ii.js","static/chunks/2w_ptlw-ad8-9.js","static/chunks/1f2mna0k5efeq.js","static/chunks/36enkx1skkv2-.js","static/chunks/08lvtnv7b1cxp.js","static/chunks/03bd5plut08tg.js","static/chunks/0nhljhguceh66.js","static/chunks/2apnpj0-fs9ks.js","static/chunks/0xa9dyg6ezzyd.js"].map(t=>e.l(t))).then(()=>t(37719)))},69819,e=>{e.v(t=>Promise.all(["static/chunks/1gr35qeguuws0.js","static/chunks/36enkx1skkv2-.js","static/chunks/0q75860p8u_ii.js"].map(t=>e.l(t))).then(()=>t(81591)))},67116,e=>{e.v(t=>Promise.all(["static/chunks/0p6z73afb9dj2.js","static/chunks/1vrpzlif-z_p0.js","static/chunks/0lep3_bqwfuin.js","static/chunks/0xvrfvur0p534.js","static/chunks/0nhljhguceh66.js","static/chunks/2q6l-xdqzgmpf.js","static/chunks/1d9it6yocgt54.js","static/chunks/0q75860p8u_ii.js","static/chunks/08lvtnv7b1cxp.js","static/chunks/2apnpj0-fs9ks.js","static/chunks/2701xfv_07wz_.js","static/chunks/36enkx1skkv2-.js","static/chunks/21kfpd_bityxt.js","static/chunks/03bd5plut08tg.js","static/chunks/2ofwtw6p08sfz.js","static/chunks/3zkwt0gybqtgm.js","static/chunks/0xa9dyg6ezzyd.js"].map(t=>e.l(t))).then(()=>t(36995)))},21020,e=>{e.v(t=>Promise.all(["static/chunks/1dr7gh6xgypl8.js","static/chunks/1vrpzlif-z_p0.js","static/chunks/2701xfv_07wz_.js","static/chunks/0nhljhguceh66.js","static/chunks/0q75860p8u_ii.js","static/chunks/3zkwt0gybqtgm.js","static/chunks/0xa9dyg6ezzyd.js","static/chunks/2apnpj0-fs9ks.js","static/chunks/08lvtnv7b1cxp.js","static/chunks/36enkx1skkv2-.js","static/chunks/26skkagvj1z96.js"].map(t=>e.l(t))).then(()=>t(21931)))},32502,e=>{e.v(t=>Promise.all(["static/chunks/44cer242u-f8v.js","static/chunks/1vrpzlif-z_p0.js","static/chunks/0q75860p8u_ii.js","static/chunks/0nhljhguceh66.js","static/chunks/36enkx1skkv2-.js","static/chunks/08lvtnv7b1cxp.js","static/chunks/2701xfv_07wz_.js","static/chunks/03bd5plut08tg.js","static/chunks/0xa9dyg6ezzyd.js"].map(t=>e.l(t))).then(()=>t(13455)))},2348,2413,e=>{"use strict";let t=1/1.2;e.s(["ZOOM_IN_FACTOR",0,t,"ZOOM_OUT_FACTOR",0,1.2,"attachDoubleClickFocus",0,function(e,t,s){let n=()=>{let t=e.pick(e.pointerX,e.pointerY);t?.hit&&t.pickedPoint&&s.setTarget(t.pickedPoint)};return t.addEventListener("dblclick",n),()=>t.removeEventListener("dblclick",n)},"disableWheelZoom",0,function(e){e.inputs.removeByType("ArcRotateCameraMouseWheelInput")},"resetFocus",0,function(e,t){e.setTarget(t.target),e.alpha=t.alpha,e.beta=t.beta,e.radius=t.radius},"stepZoom",0,function(e,t){let s=e.lowerRadiusLimit??.01,n=e.upperRadiusLimit??1/0;e.radius=Math.min(n,Math.max(s,e.radius*t))}],2348);var s=e.i(61284);e.s(["ZoomButtons",0,function({onZoom:e,onReset:n}){let a="grid h-8 w-8 place-items-center rounded-md border border-edge bg-ink/80 text-lg leading-none text-fg backdrop-blur transition hover:bg-ink hover:text-white";return(0,s.jsxs)("div",{className:"absolute right-3 top-3 flex flex-col gap-1",children:[(0,s.jsx)("button",{type:"button","aria-label":"Zoom in",className:a,onClick:()=>e(t),children:"+"}),(0,s.jsx)("button",{type:"button","aria-label":"Zoom out",className:a,onClick:()=>e(1.2),children:"−"}),n?(0,s.jsx)("button",{type:"button","aria-label":"Reset camera focus to center",title:"Reset focus to center",className:a,onClick:n,children:(0,s.jsxs)("svg",{viewBox:"0 0 16 16",width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round","aria-hidden":"true",children:[(0,s.jsx)("circle",{cx:"8",cy:"8",r:"3"}),(0,s.jsx)("path",{d:"M8 1v2.5M8 12.5V15M1 8h2.5M12.5 8H15"})]})}):null]})}],2413)},87456,e=>{"use strict";e.s(["attachMeshHover",0,function(e,t,s){let n=0,a=null,c=t=>{let c=t.offsetX,i=t.offsetY;n||(n=requestAnimationFrame(()=>{var t,r;let l;n=0;let u=e.pick(c,i,e=>e.isPickable&&e.isEnabled()),o=u?.pickedMesh?(t=u.pickedMesh,r=u.thinInstanceIndex??-1,(l=t.metadata)?r>=0&&l.hoverLabels?l.hoverLabels[r]??null:l.hoverLabel??null:null):null;o?s({label:o,x:c,y:i}):null!==a&&s(null),a=o}))},i=()=>{n&&(cancelAnimationFrame(n),n=0),null!==a&&(a=null,s(null))};return t.addEventListener("pointermove",c),t.addEventListener("pointerleave",i),()=>{t.removeEventListener("pointermove",c),t.removeEventListener("pointerleave",i),n&&cancelAnimationFrame(n)}}])},39592,e=>{"use strict";var t=e.i(61284),s=e.i(60951),n=e.i(56054),a=e.i(2348),c=e.i(87456),i=e.i(2413);function r(e){let t=Math.min(1,Math.max(0,e));return[.118+(.22-.118)*t,.227+.513*t,.541+(.97-.541)*t]}function l(e){return`${e.vx}|${e.vy}|${e.vz}`}function u({mode:e}){return(0,t.jsxs)("div",{className:"absolute bottom-3 right-3 max-w-72 rounded-md border border-edge bg-ink/80 px-2 py-1.5 text-xs text-fg backdrop-blur",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-sm bg-[#38bdf8]"}),"divergence"===e?"Gaze-heavy":"Gaze"]}),(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-sm bg-[#f4c84b]"}),"divergence"===e?"Click-heavy":"Clicks"]})]}),(0,t.jsx)("p",{className:"mt-1 text-fg-muted",children:"divergence"===e?"Per-voxel normalized difference: which signal dominates each cell. Color & size scale with the gap.":"Gaze = where viewers looked; Clicks = where they acted. Cells with gaze but no clicks are looked-at but un-acted-on."})]})}function o({active:e,onClick:s,children:n}){return(0,t.jsx)("button",{type:"button",onClick:s,className:`rounded px-2 py-0.5 font-medium transition ${e?"bg-amber text-ink":"text-fg-muted hover:text-fg"}`,children:n})}e.s(["GazeClickDivergence3DView",0,function({gazeVoxels:h,clickVoxels:k,cellSize:d,proxyMeshes:p=[]}){let v=(0,s.useRef)(null),j=(0,s.useRef)(null),m=(0,s.useRef)(null),[b,x]=(0,s.useState)("loading"),[f,g]=(0,s.useState)(null),[y,z]=(0,s.useState)("overlay"),[w,_]=(0,s.useState)(null),C=(0,s.useRef)(h),M=(0,s.useRef)(k),q=(0,s.useRef)(p),A=(0,s.useRef)(y);C.current=h,M.current=k,q.current=p,A.current=y;let R=(0,s.useRef)(null),P=h.length>0||k.length>0||p.length>0;return(0,s.useEffect)(()=>{let t=v.current;if(!t)return;if(!P)return void x("empty");let s=!1,i=null;return x("loading"),g(null),(async()=>{try{let[{Engine:u},{Scene:o},{ArcRotateCamera:h},{HemisphericLight:k},{Vector3:p,Color3:v,Color4:b,Matrix:f},{MeshBuilder:g},{StandardMaterial:y}]=await Promise.all([e.A(45852),e.A(32502),e.A(25346),e.A(19257),e.A(69819),e.A(67116),e.A(76269),e.A(21020),e.A(8179)]);if(s)return;let z=C.current,w=M.current,P=q.current,N=[...z,...w],L=0,E=0,F=0,T=0;for(let e of N)L+=(e.vx+.5)*d,E+=(e.vy+.5)*d,F+=(e.vz+.5)*d,T++;if(0===T)for(let e of P)L+=(e.aabb[0]+e.aabb[3])/2,E+=(e.aabb[1]+e.aabb[4])/2,F+=(e.aabb[2]+e.aabb[5])/2,T++;let S=new p(L/T,E/T,F/T),B=4*d;for(let e of N){let t=(e.vx+.5)*d-S.x,s=(e.vy+.5)*d-S.y,n=(e.vz+.5)*d-S.z;B=Math.max(B,Math.sqrt(t*t+s*s+n*n))}for(let e of P){let t=(e.aabb[0]+e.aabb[3])/2-S.x,s=(e.aabb[1]+e.aabb[4])/2-S.y,n=(e.aabb[2]+e.aabb[5])/2-S.z;B=Math.max(B,Math.sqrt(t*t+s*s+n*n))}let O=new u(t,!0,{preserveDrawingBuffer:!1}),Z=new o(O);Z.clearColor=new b(.04,.05,.07,1);let I=new h("divergence-cam",Math.PI/4,Math.PI/3,2.4*B,S,Z);I.attachControl(t,!0),(0,a.disableWheelZoom)(I),j.current=I,m.current={target:S,alpha:I.alpha,beta:I.beta,radius:I.radius},new k("divergence-light",new p(.4,1,.3),Z);let D=null,G="\0",$=Math.max(.02*B,.25*d)/(.9*d),W=[],H=(e,t,s,n,a)=>{if(0===t.length)return;let c=g.CreateSphere(e,{diameter:.9*d,segments:6},Z),i=new y(`${e}-mat`,Z);i.diffuseColor=new v(1,1,1),i.specularColor=new v(0,0,0),c.material=i,c.metadata={hoverLabel:a},W.push(c);let r=t.length,l=new Float32Array(16*r),u=new Float32Array(4*r);for(let e=0;e<r;e++){let a=t[e],c=a.count/s,i=$*(.5+.5*c);f.Scaling(i,i,i).multiply(f.Translation((a.vx+.5)*d,(a.vy+.5)*d,(a.vz+.5)*d)).copyToArray(l,16*e);let[r,o,h]=n(c);u[4*e]=r,u[4*e+1]=o,u[4*e+2]=h,u[4*e+3]=1}c.thinInstanceSetBuffer("matrix",l,16,!1),c.thinInstanceSetBuffer("color",u,4,!0)},K=()=>{for(let e of((()=>{let e=q.current,t=e.map(e=>`${e.name}:${e.aabb.join(",")}`).join("|");if(t===G||(G=t,D&&(D.dispose(!1,!0),D=null),0===e.length))return;D=g.CreateBox("scene-proxy",{size:1},Z);let s=new y("scene-proxy-mat",Z);s.wireframe=!0,s.disableLighting=!0,s.emissiveColor=new v(.32,.4,.52),s.alpha=.35,D.material=s,D.isPickable=!0,D.thinInstanceEnablePicking=!0,D.metadata={hoverLabels:e.map(e=>e.name)};let n=e.length,a=new Float32Array(16*n);for(let t=0;t<n;t++){let s=e[t].aabb,n=Math.max(s[3]-s[0],.001),c=Math.max(s[4]-s[1],.001),i=Math.max(s[5]-s[2],.001);f.Scaling(n,c,i).multiply(f.Translation((s[0]+s[3])/2,(s[1]+s[4])/2,(s[2]+s[5])/2)).copyToArray(a,16*t)}D.thinInstanceSetBuffer("matrix",a,16,!0)})(),W))e.dispose(!1,!0);W=[];let e=C.current,t=M.current,s=e.reduce((e,t)=>Math.max(e,t.count),1),a=t.reduce((e,t)=>Math.max(e,t.count),1),c=A.current;if("divergence"===c){let c=new Map(e.map(e=>[l(e),e])),i=new Map(t.map(e=>[l(e),e])),u=new Set([...c.keys(),...i.keys()]),o=[],h=[];for(let e of u){let t=(c.get(e)?.count??0)/s,n=(i.get(e)?.count??0)/a,r=i.get(e)??c.get(e),l=n-t,u={vx:r.vx,vy:r.vy,vz:r.vz,count:1e3*Math.abs(l)};(l>=0?o:h).push(u)}H("div-click",o,1e3,n.heatRgb,"Click-heavy"),H("div-gaze",h,1e3,r,"Gaze-heavy")}else("overlay"===c||"gaze"===c)&&H("gaze-voxel",e,s,r,"Gaze"),("overlay"===c||"click"===c)&&H("click-voxel",t,a,n.heatRgb,"Click")};R.current=K,K(),O.runRenderLoop(()=>Z.render());let U=()=>O.resize();window.addEventListener("resize",U);let V=(0,c.attachMeshHover)(Z,t,_),X=(0,a.attachDoubleClickFocus)(Z,t,I);x("ready"),i=()=>{window.removeEventListener("resize",U),V(),X(),_(null),R.current=null,j.current=null,m.current=null,Z.dispose(),O.dispose()}}catch(e){if(s)return;x("error"),g(e instanceof Error?e.message:"Failed to render overlay.")}})(),()=>{s=!0,i?.()}},[P,d]),(0,s.useEffect)(()=>{R.current?.()},[h,k,p,d,y]),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("canvas",{ref:v,className:"aspect-video w-full rounded-lg border border-edge bg-ink"}),w?(0,t.jsx)("div",{className:"pointer-events-none absolute z-10 max-w-64 truncate rounded border border-edge bg-ink/90 px-1.5 py-0.5 text-xs text-white shadow backdrop-blur",style:{left:w.x+12,top:w.y+12},children:w.label}):null,"ready"===b?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"absolute left-3 top-3 flex items-center gap-1 rounded-md border border-edge bg-ink/80 p-0.5 text-xs backdrop-blur",children:[(0,t.jsx)(o,{active:"overlay"===y,onClick:()=>z("overlay"),children:"Overlay"}),(0,t.jsx)(o,{active:"gaze"===y,onClick:()=>z("gaze"),children:"Gaze"}),(0,t.jsx)(o,{active:"click"===y,onClick:()=>z("click"),children:"Clicks"}),(0,t.jsx)(o,{active:"divergence"===y,onClick:()=>z("divergence"),children:"Divergence"})]}),(0,t.jsx)(i.ZoomButtons,{onZoom:e=>j.current&&(0,a.stepZoom)(j.current,e),onReset:()=>j.current&&m.current&&(0,a.resetFocus)(j.current,m.current)}),(0,t.jsx)(u,{mode:y})]}):(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 grid place-items-center text-sm text-fg-muted",children:"loading"===b?"Rendering…":"empty"===b?"No gaze or click hit-points in range. Enable gaze + pointer capture in the SDK.":"error"===b?f??"Overlay unavailable.":null})]})}])}]);
|