@uptimizr/dashboard 0.3.0 → 0.3.2

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.
Files changed (360) hide show
  1. package/out/404.html +1 -1
  2. package/out/__next.__PAGE__.txt +4 -4
  3. package/out/__next._full.txt +11 -11
  4. package/out/__next._head.txt +4 -4
  5. package/out/__next._index.txt +4 -4
  6. package/out/__next._tree.txt +2 -2
  7. package/out/_next/static/chunks/0-29qf-q72olu.js +1 -0
  8. package/out/_next/static/chunks/0-tk5ptli--r0.js +1 -0
  9. package/out/_next/static/chunks/006nix8mv66z_.js +1 -0
  10. package/out/_next/static/chunks/01aeari2x_tlz.js +1 -0
  11. package/out/_next/static/chunks/0296l8lzd69ns.js +1 -0
  12. package/out/_next/static/chunks/02tc9r3sc7fgc.js +1 -0
  13. package/out/_next/static/chunks/{256k1jw1m--l7.js → 03st_hmor6qju.js} +1 -1
  14. package/out/_next/static/chunks/{2ue1wo4ryk87z.js → 04pk6n3z75dcy.js} +1 -1
  15. package/out/_next/static/chunks/05l3dluxivcor.js +1 -0
  16. package/out/_next/static/chunks/06ljadw2-i91-.js +1 -0
  17. package/out/_next/static/chunks/06m_64ysu9kn0.js +1 -0
  18. package/out/_next/static/chunks/{2ycvtdd68gub7.js → 08bm3ye5govev.js} +1 -1
  19. package/out/_next/static/chunks/{32ahba5ezp467.js → 08rk1dp1wb-gm.js} +38 -38
  20. package/out/_next/static/chunks/091ll-lp6spu3.js +1 -0
  21. package/out/_next/static/chunks/09p5fltt7o3to.js +1 -0
  22. package/out/_next/static/chunks/{3mbnfpufs2-7e.js → 0_tqu60oxaj7q.js} +1 -1
  23. package/out/_next/static/chunks/{3riekaxl3uxfb.js → 0_ux41xcoea3u.js} +40 -40
  24. package/out/_next/static/chunks/0b7-mrrg7ryj2.js +1 -0
  25. package/out/_next/static/chunks/{29tfeb6amdkjb.js → 0c2k-gvwph4qs.js} +1 -1
  26. package/out/_next/static/chunks/0e7xuupmrw4-e.js +1 -0
  27. package/out/_next/static/chunks/0f_nv15a8q415.js +1 -0
  28. package/out/_next/static/chunks/0fxfsshoxnnh6.js +4 -0
  29. package/out/_next/static/chunks/0g6u34xkzrpjn.js +1 -0
  30. package/out/_next/static/chunks/0g7p8zp2kxve5.js +1 -0
  31. package/out/_next/static/chunks/0gblbgw7w7r9w.js +1 -0
  32. package/out/_next/static/chunks/0gwa154w_0wuh.js +1 -0
  33. package/out/_next/static/chunks/0h-ohf4gntwtj.js +1 -0
  34. package/out/_next/static/chunks/0h1o0cr3327tt.js +1 -0
  35. package/out/_next/static/chunks/0i9oqg-xbq-a9.js +1 -0
  36. package/out/_next/static/chunks/0ioyy42h35hnd.js +1 -0
  37. package/out/_next/static/chunks/{242xhzxxetctz.js → 0jf3n5n5yrr4o.js} +1 -1
  38. package/out/_next/static/chunks/{3idaz_s77e-j_.js → 0jxklh_ayjd4b.js} +12 -12
  39. package/out/_next/static/chunks/{07eeopuufsqp-.js → 0k79ryqehst0b.js} +11 -11
  40. package/out/_next/static/chunks/{3be6s4_kn9q-o.js → 0kcbdjbdxu_wa.js} +1 -1
  41. package/out/_next/static/chunks/0kr-bd6fuqc2s.js +1 -0
  42. package/out/_next/static/chunks/0l3wwyl93sqh9.js +1 -0
  43. package/out/_next/static/chunks/{3l1dr_qm_x5kp.js → 0m0n7kjzscx0y.js} +1 -1
  44. package/out/_next/static/chunks/0m3yjobjg36ce.js +1 -0
  45. package/out/_next/static/chunks/{1a9l89j7e6mqu.js → 0mk8tangq9equ.js} +1 -1
  46. package/out/_next/static/chunks/0mqi0xn_c010j.js +1 -0
  47. package/out/_next/static/chunks/0msckddycfy76.js +1 -0
  48. package/out/_next/static/chunks/0ngai1_zxwsk8.js +1 -0
  49. package/out/_next/static/chunks/0ngiuj5k-or6g.js +1 -0
  50. package/out/_next/static/chunks/0nx_t8iq-324h.js +1 -0
  51. package/out/_next/static/chunks/0oap0o8a8a_cl.js +1 -0
  52. package/out/_next/static/chunks/{3tm-pqpmq_ppw.js → 0ostjlqtwkhqr.js} +1 -1
  53. package/out/_next/static/chunks/{1uu-rt_8p1edp.js → 0ptp4ne7j6yg6.js} +11 -11
  54. package/out/_next/static/chunks/0rruvj1cyflrh.js +1 -0
  55. package/out/_next/static/chunks/{0o_mp98xzqfyf.js → 0tl8j9f8lt0yf.js} +1 -1
  56. package/out/_next/static/chunks/{0sqys6o2pbe1q.js → 0ufakw529sr9d.js} +38 -38
  57. package/out/_next/static/chunks/{3ne77mjdz2y7o.js → 0vddljjnmozzx.js} +1 -1
  58. package/out/_next/static/chunks/{0dm32-jq30tg8.js → 0w0sx062qmcsh.js} +1 -1
  59. package/out/_next/static/chunks/{0rys92_73hdb0.js → 0x4-zyy8pzmlq.js} +1 -1
  60. package/out/_next/static/chunks/0x6i6e6863tir.js +1 -0
  61. package/out/_next/static/chunks/{3k9d4ylc3li2t.js → 0zcdc17ie6lmh.js} +10 -10
  62. package/out/_next/static/chunks/{44nxswtahaq4w.js → 0zo4x1j8ug-kb.js} +5 -5
  63. package/out/_next/static/chunks/{0jmn7u31w95ly.js → 0zwkmsojeuekb.js} +2 -2
  64. package/out/_next/static/chunks/{3m6nmp2dca6un.js → 1--aypw9o8yng.js} +37 -37
  65. package/out/_next/static/chunks/1--kelnig7pxx.js +1 -0
  66. package/out/_next/static/chunks/1-ud6hztxiazp.js +1 -0
  67. package/out/_next/static/chunks/10v4rskkrjgd_.js +1 -0
  68. package/out/_next/static/chunks/117ys3lltfmcu.js +1 -0
  69. package/out/_next/static/chunks/14klj_i6-l-10.js +1 -0
  70. package/out/_next/static/chunks/159u-hx80yfaw.js +1 -0
  71. package/out/_next/static/chunks/{3gimb3z_mteou.js → 168r9r65o9jnc.js} +1 -1
  72. package/out/_next/static/chunks/{0w8_1yjvol1f0.js → 16d4a4iopj2if.js} +5 -5
  73. package/out/_next/static/chunks/{2z_jn9ud28fk7.js → 17d1isrw8gtnb.js} +1 -1
  74. package/out/_next/static/chunks/17dabmbnkkplu.js +1 -0
  75. package/out/_next/static/chunks/17dmbt396_tyq.js +1 -0
  76. package/out/_next/static/chunks/17ev44x54_jrd.js +1 -0
  77. package/out/_next/static/chunks/17svumd4o0qnc.js +1 -0
  78. package/out/_next/static/chunks/17v12p4sfraa0.js +1 -0
  79. package/out/_next/static/chunks/18avgwx9nlxp9.js +1 -0
  80. package/out/_next/static/chunks/{0tw4dyl-cp-hd.js → 18k-0jn63_5ie.js} +1 -1
  81. package/out/_next/static/chunks/18r387bj9iv0j.js +1 -0
  82. package/out/_next/static/chunks/18ss4ls60s31e.js +1 -0
  83. package/out/_next/static/chunks/1a7cup181rjod.js +1 -0
  84. package/out/_next/static/chunks/1ajmblsp0wj0_.js +1 -0
  85. package/out/_next/static/chunks/{1dsy2ngmfflis.js → 1b2tkk7e_2o0k.js} +2 -2
  86. package/out/_next/static/chunks/{1ltux4lwz7muf.js → 1bv97vf67p_ri.js} +33 -33
  87. package/out/_next/static/chunks/1e1zozntzsx42.js +1 -0
  88. package/out/_next/static/chunks/1ek5rtpo6rxev.js +1 -0
  89. package/out/_next/static/chunks/1evp209qbr4cr.js +5 -0
  90. package/out/_next/static/chunks/1f1vq3goue1w4.js +1 -0
  91. package/out/_next/static/chunks/{296w2ke-v5tbm.js → 1f92k-xa0pl-3.js} +1 -1
  92. package/out/_next/static/chunks/1fa265388524p.js +1 -0
  93. package/out/_next/static/chunks/1fruncg3k-3pu.js +3 -0
  94. package/out/_next/static/chunks/{1_qzlkuxukhpq.js → 1fvlbwp6r93wo.js} +22 -22
  95. package/out/_next/static/chunks/1g3z43o3h-024.js +31 -0
  96. package/out/_next/static/chunks/1g_27texazqcj.js +1 -0
  97. package/out/_next/static/chunks/1iaxzjly2pap1.js +1 -0
  98. package/out/_next/static/chunks/{0c83pe1mpx456.js → 1j--a56ji33_x.js} +1 -1
  99. package/out/_next/static/chunks/{112hws17nz665.js → 1kl5xxohpr6-4.js} +1 -1
  100. package/out/_next/static/chunks/1kmsg9ef5djl3.js +1 -0
  101. package/out/_next/static/chunks/1kq86iv41cet4.js +1 -0
  102. package/out/_next/static/chunks/1l12hkz1g7uhf.js +1 -0
  103. package/out/_next/static/chunks/{3figbil1t4ssj.js → 1ll0ta8a2qx1p.js} +16 -16
  104. package/out/_next/static/chunks/{1ynju1jqfrcv0.js → 1oara6fkfvgs3.js} +1 -1
  105. package/out/_next/static/chunks/1par9m038tiov.js +1 -0
  106. package/out/_next/static/chunks/1rcfy_gzean3n.js +1 -0
  107. package/out/_next/static/chunks/{35h5n42wxwgzk.js → 1rne-b-ktit5c.js} +2 -2
  108. package/out/_next/static/chunks/1t60cososq7b0.js +1 -0
  109. package/out/_next/static/chunks/1tdg_eolxlcdl.js +1 -0
  110. package/out/_next/static/chunks/1vkww9l6lgqag.js +1 -0
  111. package/out/_next/static/chunks/1vpcaaf-0dn7q.js +1 -0
  112. package/out/_next/static/chunks/1vzmzrjhlm1q5.js +1 -0
  113. package/out/_next/static/chunks/1w9xu1qa9-wmv.js +1 -0
  114. package/out/_next/static/chunks/1wyr4at61q29n.js +1 -0
  115. package/out/_next/static/chunks/{3_mu-4rdjajna.js → 1y12bjsbq18_t.js} +34 -34
  116. package/out/_next/static/chunks/1y20bv6vl4ylk.js +1 -0
  117. package/out/_next/static/chunks/{0tnlbw78tgaxp.js → 1zcrrq1fx8g2y.js} +2 -2
  118. package/out/_next/static/chunks/224_scesvd739.js +1 -0
  119. package/out/_next/static/chunks/229mkx-mtfcgf.js +1 -0
  120. package/out/_next/static/chunks/{3yfrsm8lfi6ls.js → 22qzld31fbhbv.js} +1 -1
  121. package/out/_next/static/chunks/245h82k-g1nxr.js +1 -0
  122. package/out/_next/static/chunks/24cqjhy669845.js +1 -0
  123. package/out/_next/static/chunks/25ctnyh7njp-d.js +4 -0
  124. package/out/_next/static/chunks/2716si10ouwu-.js +1 -0
  125. package/out/_next/static/chunks/286ggpetqnwyo.js +3 -0
  126. package/out/_next/static/chunks/28f1onw3nywbz.js +1 -0
  127. package/out/_next/static/chunks/28ycc-1519hl2.js +1 -0
  128. package/out/_next/static/chunks/{17xd8hnazzr0g.js → 29v8falcmjvev.js} +34 -33
  129. package/out/_next/static/chunks/{0o6ayai0s01js.js → 2_7dp91937mqi.js} +1 -1
  130. package/out/_next/static/chunks/2_hgfg-cjqw1-.js +1 -0
  131. package/out/_next/static/chunks/2ab-99frxpah-.js +1 -0
  132. package/out/_next/static/chunks/2apt1vh-7rl2l.js +1 -0
  133. package/out/_next/static/chunks/2bn9u9r0rfhvc.js +1 -0
  134. package/out/_next/static/chunks/{45bwefvdpztfs.js → 2btqzk0tj0gz6.js} +1 -1
  135. package/out/_next/static/chunks/2cvvxifoedn6j.js +1 -0
  136. package/out/_next/static/chunks/2dhv35o59yzao.js +1 -0
  137. package/out/_next/static/chunks/{17q0c2h5ui10r.js → 2dolerz81xb52.js} +1 -1
  138. package/out/_next/static/chunks/{2xwy0-qfho1iz.js → 2dqg85hsevk3c.js} +2 -2
  139. package/out/_next/static/chunks/{41wt50z9tx9cx.js → 2enlv4yy0t-9j.js} +12 -12
  140. package/out/_next/static/chunks/2ey30qeaob985.js +1 -0
  141. package/out/_next/static/chunks/2f0r-df7tb3pu.js +1 -0
  142. package/out/_next/static/chunks/2gh4z57fem0_v.js +1 -0
  143. package/out/_next/static/chunks/2gtebfttq1v0o.js +1 -0
  144. package/out/_next/static/chunks/{1ua15kzid0_8p.js → 2h051-1hu4co_.js} +9 -9
  145. package/out/_next/static/chunks/2h1uw3cluvmmo.js +1 -0
  146. package/out/_next/static/chunks/2ib62lnqqaf4p.js +1 -0
  147. package/out/_next/static/chunks/2j-sax2xfdv7l.js +1 -0
  148. package/out/_next/static/chunks/{3z84au-mitjjw.js → 2k4s5rt7-l8jr.js} +1 -1
  149. package/out/_next/static/chunks/2kje_jvmwsvwo.js +1 -0
  150. package/out/_next/static/chunks/{2cbmf9m7lqv6k.js → 2kn_dqzbyabtn.js} +1 -1
  151. package/out/_next/static/chunks/2ktxjmx03u9l3.js +1 -0
  152. package/out/_next/static/chunks/2kw33jl_i9o5j.css +3 -0
  153. package/out/_next/static/chunks/2l_oqx9idxcs8.js +1 -0
  154. package/out/_next/static/chunks/{42k2-4_2hrg6u.js → 2mleh3pbge181.js} +1 -1
  155. package/out/_next/static/chunks/{31u5lbu1vxznh.js → 2npk7tr63h7rl.js} +1 -1
  156. package/out/_next/static/chunks/2op88btas-hl8.js +1 -0
  157. package/out/_next/static/chunks/{1gs-5722l4u59.js → 2p8dbh81chhon.js} +1 -1
  158. package/out/_next/static/chunks/{2yph6f7khgqii.js → 2reukv9c7cq_9.js} +1 -1
  159. package/out/_next/static/chunks/{14ggsmqwej_tt.js → 2rjc8yn50ducj.js} +34 -34
  160. package/out/_next/static/chunks/2s0dwzg7kq36n.js +1 -0
  161. package/out/_next/static/chunks/2vaoftqgc44cg.js +1 -0
  162. package/out/_next/static/chunks/{3_gku1pwluoo0.js → 2vmybybb3dvia.js} +1 -1
  163. package/out/_next/static/chunks/2w7yf7ouyrlkb.js +1 -0
  164. package/out/_next/static/chunks/{3218lp8l0a5g_.js → 2y75diyxqlhzl.js} +1 -1
  165. package/out/_next/static/chunks/{0fh-9h9ylxskr.js → 2yr9wt421xdjr.js} +17 -17
  166. package/out/_next/static/chunks/{0otsec99kdkt7.js → 2yzui3v-besdu.js} +4 -4
  167. package/out/_next/static/chunks/{3wi9gzq2mtr_q.js → 2z9ot-w1x60fv.js} +1 -1
  168. package/out/_next/static/chunks/2zljunurdji0q.js +1 -0
  169. package/out/_next/static/chunks/30363ptka3vzy.js +1 -0
  170. package/out/_next/static/chunks/{38x3c1ra5slhe.js → 3043pprgv9ors.js} +23 -23
  171. package/out/_next/static/chunks/340pg0qkv5tqq.js +1 -0
  172. package/out/_next/static/chunks/{37epa8fz59vba.js → 348hdbpkkcq_2.js} +22 -21
  173. package/out/_next/static/chunks/34gp3hvr3j6um.js +1 -0
  174. package/out/_next/static/chunks/38ea9kqlbxt86.js +1 -0
  175. package/out/_next/static/chunks/38g9jpxjoxn2x.js +1 -0
  176. package/out/_next/static/chunks/390fogn9oz13i.js +1 -0
  177. package/out/_next/static/chunks/{3w9go565cjhq3.js → 39lxb7c--3_2u.js} +30 -30
  178. package/out/_next/static/chunks/39ojyykom0z2r.js +1 -0
  179. package/out/_next/static/chunks/{2bjlls8-qe05r.js → 3_bzxvqtk1t53.js} +12 -12
  180. package/out/_next/static/chunks/3ajhvedcs_lzb.js +1 -0
  181. package/out/_next/static/chunks/3bsvp8qhjqdu0.js +1 -0
  182. package/out/_next/static/chunks/{023axeoslq39i.js → 3d0ejsnhbzi-j.js} +1 -1
  183. package/out/_next/static/chunks/3d5yb9ybkz7hx.js +1 -0
  184. package/out/_next/static/chunks/{0echnagbkyx79.js → 3efuvh_35yhes.js} +39 -39
  185. package/out/_next/static/chunks/3fx3sriw1w3sa.js +1 -0
  186. package/out/_next/static/chunks/{2qq3uzsbiicw3.js → 3fz7tc-4j13uv.js} +21 -21
  187. package/out/_next/static/chunks/3g4e2txsrb2p2.js +1 -0
  188. package/out/_next/static/chunks/{1m_buecgcq67j.js → 3g5ae-38cepwm.js} +199 -199
  189. package/out/_next/static/chunks/3g_h_00xs9u59.js +1 -0
  190. package/out/_next/static/chunks/3gi0f1kg72xsf.js +1 -0
  191. package/out/_next/static/chunks/{38fhw7fatsyvd.js → 3he9bxsc67ivq.js} +1 -1
  192. package/out/_next/static/chunks/3hr-mlwi78nov.js +1 -0
  193. package/out/_next/static/chunks/3jha6wlqw8459.js +1 -0
  194. package/out/_next/static/chunks/3kr1polwvt6o_.js +1 -0
  195. package/out/_next/static/chunks/{0j__xaq_8_di1.js → 3mwoauxszd3mn.js} +1 -1
  196. package/out/_next/static/chunks/3ovd8o_usay7j.js +1 -0
  197. package/out/_next/static/chunks/3pdpaqzwhhijn.js +1 -0
  198. package/out/_next/static/chunks/3pyggl13glbdc.js +1 -0
  199. package/out/_next/static/chunks/3rl45k759wfi1.js +1 -0
  200. package/out/_next/static/chunks/{0flc7nppbmsl1.js → 3sbm1ak54_2ep.js} +1 -1
  201. package/out/_next/static/chunks/3sg4zff4-h3t1.js +1 -0
  202. package/out/_next/static/chunks/3urd7r018nel4.js +1 -0
  203. package/out/_next/static/chunks/3v0td-ziuai2i.js +1 -0
  204. package/out/_next/static/chunks/3vaho-xrtuchd.js +2 -0
  205. package/out/_next/static/chunks/3vxkkhs0vi_xa.js +1 -0
  206. package/out/_next/static/chunks/{1g7emwu85bifo.js → 3w1a2o8nevap8.js} +18 -18
  207. package/out/_next/static/chunks/3wqs57qehored.js +1 -0
  208. package/out/_next/static/chunks/3x6wpv_z5m6rz.js +1 -0
  209. package/out/_next/static/chunks/{1qg_etglhvp9h.js → 3y9c26fv1poq_.js} +199 -199
  210. package/out/_next/static/chunks/{0ql-s-tsmel_u.js → 404f_93w2e8ty.js} +1 -1
  211. package/out/_next/static/chunks/40acif2eh_unv.js +1 -0
  212. package/out/_next/static/chunks/{1hatz-jlztrn0.js → 4227p7752rnny.js} +1 -1
  213. package/out/_next/static/chunks/42oyfkhdvb-u3.js +1 -0
  214. package/out/_next/static/chunks/44gsjajjdhf51.js +1 -0
  215. package/out/_next/static/chunks/{turbopack-19105pdhzxp1x.js → turbopack-16ab30_1p4vhq.js} +1 -1
  216. package/out/_not-found/__next._full.txt +9 -9
  217. package/out/_not-found/__next._head.txt +4 -4
  218. package/out/_not-found/__next._index.txt +4 -4
  219. package/out/_not-found/__next._not-found.__PAGE__.txt +2 -2
  220. package/out/_not-found/__next._not-found.txt +3 -3
  221. package/out/_not-found/__next._tree.txt +2 -2
  222. package/out/_not-found.html +1 -1
  223. package/out/_not-found.txt +9 -9
  224. package/out/index.html +1 -1
  225. package/out/index.txt +11 -11
  226. package/package.json +8 -8
  227. package/out/_next/static/chunks/002cjeoit6-up.js +0 -1
  228. package/out/_next/static/chunks/02n1uiltexy3w.js +0 -1
  229. package/out/_next/static/chunks/03ab2khhe8-x5.js +0 -1
  230. package/out/_next/static/chunks/04_yytpc2paxy.js +0 -1
  231. package/out/_next/static/chunks/06qot1qvlsqaz.js +0 -1
  232. package/out/_next/static/chunks/08a5xek662n8n.js +0 -1
  233. package/out/_next/static/chunks/08wuc9--s8zn_.js +0 -1
  234. package/out/_next/static/chunks/0927l-ygd5c8d.js +0 -1
  235. package/out/_next/static/chunks/09510356f0lad.js +0 -1
  236. package/out/_next/static/chunks/0_eu72k69lxj7.js +0 -1
  237. package/out/_next/static/chunks/0beajlqy8p8b5.js +0 -1
  238. package/out/_next/static/chunks/0dn0yx0rn6mpf.js +0 -1
  239. package/out/_next/static/chunks/0eh1ml86u8dh7.js +0 -1
  240. package/out/_next/static/chunks/0fzmc1up21g1i.js +0 -1
  241. package/out/_next/static/chunks/0g_v2zswo4l6f.js +0 -1
  242. package/out/_next/static/chunks/0grlb9lo8e502.js +0 -1
  243. package/out/_next/static/chunks/0h22pg-0xrxnm.js +0 -1
  244. package/out/_next/static/chunks/0j6p1pmc14t96.js +0 -1
  245. package/out/_next/static/chunks/0j_6dx-sttgsy.js +0 -1
  246. package/out/_next/static/chunks/0kfd-cvj5fvtz.js +0 -1
  247. package/out/_next/static/chunks/0r47gs_e93cka.js +0 -1
  248. package/out/_next/static/chunks/0titqrn1qmcsv.js +0 -1
  249. package/out/_next/static/chunks/0tl_moiyi2txt.js +0 -1
  250. package/out/_next/static/chunks/0v82oqyoy9zol.js +0 -1
  251. package/out/_next/static/chunks/0vbce-8omgurc.js +0 -1
  252. package/out/_next/static/chunks/0vfsg5byzep_0.js +0 -1
  253. package/out/_next/static/chunks/0xh144a5fz58h.js +0 -1
  254. package/out/_next/static/chunks/0xjltg_pph0c8.js +0 -1
  255. package/out/_next/static/chunks/0yeqgh0dnas8d.js +0 -1
  256. package/out/_next/static/chunks/101-7e_7up7rk.js +0 -1
  257. package/out/_next/static/chunks/128e51hj_04r0.js +0 -1
  258. package/out/_next/static/chunks/12kv810lohbsx.js +0 -5
  259. package/out/_next/static/chunks/14bws-suyy5zu.js +0 -1
  260. package/out/_next/static/chunks/15s7425ffrec9.js +0 -3
  261. package/out/_next/static/chunks/17genz6pkmty_.js +0 -1
  262. package/out/_next/static/chunks/18dczy9ylt2s_.js +0 -1
  263. package/out/_next/static/chunks/18xs_kvsaolb0.js +0 -1
  264. package/out/_next/static/chunks/19016f8-ry0z6.js +0 -1
  265. package/out/_next/static/chunks/1_6oejyxj39li.js +0 -1
  266. package/out/_next/static/chunks/1_aon8nz9p1fr.js +0 -1
  267. package/out/_next/static/chunks/1akaj5rhgitn3.js +0 -1
  268. package/out/_next/static/chunks/1bvl1ws7b_3gn.js +0 -1
  269. package/out/_next/static/chunks/1cdbk6kxyr1c9.js +0 -1
  270. package/out/_next/static/chunks/1fbjkk55uu4_g.js +0 -1
  271. package/out/_next/static/chunks/1furcfsgrw_3g.js +0 -1
  272. package/out/_next/static/chunks/1g0-f1g3gn_rs.js +0 -1
  273. package/out/_next/static/chunks/1gt4kh0_xmigy.js +0 -1
  274. package/out/_next/static/chunks/1h8xzuuhhglu9.js +0 -1
  275. package/out/_next/static/chunks/1iioifo7i0t0_.js +0 -1
  276. package/out/_next/static/chunks/1iiz7jqgj20z0.js +0 -1
  277. package/out/_next/static/chunks/1kujmd5n0j9nk.js +0 -1
  278. package/out/_next/static/chunks/1n9sy0yt5d2vq.js +0 -1
  279. package/out/_next/static/chunks/1nj82er7msdto.js +0 -2
  280. package/out/_next/static/chunks/1p1gz6dseck--.js +0 -1
  281. package/out/_next/static/chunks/1p1xtsfwvpuqo.js +0 -1
  282. package/out/_next/static/chunks/1p8f6okk2ewbz.js +0 -1
  283. package/out/_next/static/chunks/1pdep2_c530sg.js +0 -1
  284. package/out/_next/static/chunks/1th_t5ujeqlkf.js +0 -1
  285. package/out/_next/static/chunks/1thr-mdzbu96v.js +0 -1
  286. package/out/_next/static/chunks/1tta1a064979p.js +0 -1
  287. package/out/_next/static/chunks/1u_riwm0nfww7.js +0 -1
  288. package/out/_next/static/chunks/1uu93wuxigx4k.js +0 -1
  289. package/out/_next/static/chunks/1vuq3dos1406d.css +0 -3
  290. package/out/_next/static/chunks/1zfojlgb15okk.js +0 -1
  291. package/out/_next/static/chunks/1zj8x5wbgnzz-.js +0 -1
  292. package/out/_next/static/chunks/1zl6t15gh34nn.js +0 -1
  293. package/out/_next/static/chunks/2-qo2o1_fmpy-.js +0 -3
  294. package/out/_next/static/chunks/223vrr_4sfhsj.js +0 -1
  295. package/out/_next/static/chunks/22cr2b04btguf.js +0 -1
  296. package/out/_next/static/chunks/24essz5mmvx-6.js +0 -1
  297. package/out/_next/static/chunks/259obyrpxcv6r.js +0 -1
  298. package/out/_next/static/chunks/26v9yqicofqba.js +0 -1
  299. package/out/_next/static/chunks/2712627rfsmwn.js +0 -1
  300. package/out/_next/static/chunks/290d93hmm_e8b.js +0 -1
  301. package/out/_next/static/chunks/2_2fk7iddrs43.js +0 -1
  302. package/out/_next/static/chunks/2ckd7f1wbfod-.js +0 -1
  303. package/out/_next/static/chunks/2d6hru4qo23tt.js +0 -1
  304. package/out/_next/static/chunks/2ejvntxtvf5o9.js +0 -1
  305. package/out/_next/static/chunks/2f7_3tzf7xhps.js +0 -1
  306. package/out/_next/static/chunks/2gxd_o1g89_bv.js +0 -1
  307. package/out/_next/static/chunks/2hd2txb4-m9k1.js +0 -1
  308. package/out/_next/static/chunks/2hpxou_cnp4f_.js +0 -1
  309. package/out/_next/static/chunks/2izioctrfc0s5.js +0 -1
  310. package/out/_next/static/chunks/2jhnk4h4n0udv.js +0 -1
  311. package/out/_next/static/chunks/2jpkhkk9zi8-f.js +0 -1
  312. package/out/_next/static/chunks/2kpet_l1kq2sx.js +0 -1
  313. package/out/_next/static/chunks/2nck5w4c7leb7.js +0 -1
  314. package/out/_next/static/chunks/2qqqpu0ahfdda.js +0 -1
  315. package/out/_next/static/chunks/2r3ct6se2qn8z.js +0 -1
  316. package/out/_next/static/chunks/2u-f7mmxvk8wj.js +0 -1
  317. package/out/_next/static/chunks/2uk-vwlxe9-xr.js +0 -1
  318. package/out/_next/static/chunks/2ur5-lxdvv1jm.js +0 -1
  319. package/out/_next/static/chunks/2veqsohwfhfqc.js +0 -1
  320. package/out/_next/static/chunks/2vqlv9wnewhu9.js +0 -1
  321. package/out/_next/static/chunks/2wzshintp5lf8.js +0 -1
  322. package/out/_next/static/chunks/2x-00glogc485.js +0 -1
  323. package/out/_next/static/chunks/2yfxy0f5fqs4o.js +0 -1
  324. package/out/_next/static/chunks/2z88mt3ixktu3.js +0 -1
  325. package/out/_next/static/chunks/3-eswqjobiqk1.js +0 -1
  326. package/out/_next/static/chunks/30-tbi7pys6fp.js +0 -4
  327. package/out/_next/static/chunks/30c-nsedy_ce0.js +0 -1
  328. package/out/_next/static/chunks/337hn35kts7ud.js +0 -1
  329. package/out/_next/static/chunks/33dgpebv-tf73.js +0 -1
  330. package/out/_next/static/chunks/36jkdhq6kb-cf.js +0 -1
  331. package/out/_next/static/chunks/3833xfnz0a-ub.js +0 -1
  332. package/out/_next/static/chunks/38awrh_qxn22k.js +0 -1
  333. package/out/_next/static/chunks/39idqlqlcp5b9.js +0 -1
  334. package/out/_next/static/chunks/3coacc4-g-g5c.js +0 -1
  335. package/out/_next/static/chunks/3e00fzdfkclzq.js +0 -1
  336. package/out/_next/static/chunks/3e8fmlq0k5wkg.js +0 -1
  337. package/out/_next/static/chunks/3e9tzyrt4_98z.js +0 -1
  338. package/out/_next/static/chunks/3edelqkq92pil.js +0 -1
  339. package/out/_next/static/chunks/3j-4wuhs5weba.js +0 -1
  340. package/out/_next/static/chunks/3jjfnwvybayy7.js +0 -1
  341. package/out/_next/static/chunks/3jwm5dfk_78gc.js +0 -1
  342. package/out/_next/static/chunks/3l3_0ack3gy4k.js +0 -1
  343. package/out/_next/static/chunks/3lwhs5ja7tun3.js +0 -1
  344. package/out/_next/static/chunks/3mcd08gmt038z.js +0 -1
  345. package/out/_next/static/chunks/3mt5th7b1i_u9.js +0 -1
  346. package/out/_next/static/chunks/3puhrqtujktyv.js +0 -1
  347. package/out/_next/static/chunks/3rdifucupcgkg.js +0 -1
  348. package/out/_next/static/chunks/3sdoskq_buttj.js +0 -1
  349. package/out/_next/static/chunks/3sjq_xoi4rbyg.js +0 -31
  350. package/out/_next/static/chunks/3tg-ma9tv9xu4.js +0 -1
  351. package/out/_next/static/chunks/3xagd_2_9zft2.js +0 -1
  352. package/out/_next/static/chunks/3xsq_anpad-fb.js +0 -1
  353. package/out/_next/static/chunks/3ycv2qq7vpbua.js +0 -1
  354. package/out/_next/static/chunks/4030dhur2h70-.js +0 -1
  355. package/out/_next/static/chunks/40ffffml4h_3r.js +0 -4
  356. package/out/_next/static/chunks/431slrqh0wa0g.js +0 -1
  357. package/out/_next/static/chunks/43s_lbd1i2krj.js +0 -1
  358. /package/out/_next/static/{1NTbwHeIsn3AW-SeH9aP0 → 2AsIePMYsPfJoAl46w-g4}/_buildManifest.js +0 -0
  359. /package/out/_next/static/{1NTbwHeIsn3AW-SeH9aP0 → 2AsIePMYsPfJoAl46w-g4}/_clientMiddlewareManifest.js +0 -0
  360. /package/out/_next/static/{1NTbwHeIsn3AW-SeH9aP0 → 2AsIePMYsPfJoAl46w-g4}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,97998,e=>{"use strict";var t,s,r=e.i(96265),i=e.i(40408),a=e.i(35407),o=e.i(21249),n=e.i(1773);function l(e,t,s=null){let h=t.pathArray,c=t.closeArray,u=t.closePath,d=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),p=t.instance,f=t.updatable;if(p){let e=r.TmpVectors.Vector3[0].setAll(Number.MAX_VALUE),s=r.TmpVectors.Vector3[1].setAll(-Number.MAX_VALUE),l=p.getVerticesData(a.VertexBuffer.PositionKind);if((t=>{let r=h[0].length,a=0,o=p._originalBuilderSideOrientation===i.Mesh.DOUBLESIDE?2:1;for(let i=1;i<=o;++i)for(let i=0;i<h.length;++i){let o=h[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(p._creationDataStorage&&p._creationDataStorage.closePath){let e=o[0];t[a]=e.x,t[a+1]=e.y,t[a+2]=e.z,a+=3}}})(l),p.hasBoundingInfo?p.getBoundingInfo().reConstruct(e,s,p._worldMatrix):p.buildBoundingInfo(e,s,p._worldMatrix),p.updateVerticesData(a.VertexBuffer.PositionKind,l,!1,!1),t.colors){let e=p.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}p.updateVerticesData(a.VertexBuffer.ColorKind,e,!1,!1)}if(t.uvs){let e=p.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;p.updateVerticesData(a.VertexBuffer.UVKind,e,!1,!1)}if(!p.areNormalsFrozen||p.isFacetDataEnabled){let e=p.getIndices(),t=p.getVerticesData(a.VertexBuffer.NormalKind),s=p.isFacetDataEnabled?p.getFacetDataParameters():null;if(o.VertexData.ComputeNormals(l,e,t,s),p._creationDataStorage&&p._creationDataStorage.closePath){let e,s;for(let r=0;r<h.length;r++)e=3*p._creationDataStorage.idx[r],s=r+1<h.length?(p._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]}p.areNormalsFrozen||p.updateVerticesData(a.VertexBuffer.NormalKind,t,!1,!1)}return p}{let r=new i.Mesh(e,s);r._originalBuilderSideOrientation=d,r._creationDataStorage=new i._CreationDataStorage;let l=function(e){let t,s,r,i,l,h,c,u,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,v=e.uvs,b=e.colors,A=[],I=[],D=[],w=[],F=[],P=[],L=[],z=[],B=[],C=[];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(s=0,t=m[0].length;s<m.length+R;s++){for(L[s]=0,F[s]=[0],t=t<(h=(l=s===m.length?m[0]:m[s]).length)?t:h,i=0;i<h;)A.push(l[i].x,l[i].y,l[i].z),i>0&&(c=l[i].subtract(l[i-1]).length()+L[s],F[s].push(c),L[s]=c),i++;O&&(i--,A.push(l[0].x,l[0].y,l[0].z),c=l[i].subtract(l[0]).length()+L[s],F[s].push(c),L[s]=c),B[s]=h+S,C[s]=E,E+=h+S}for(r=0;r<t+S;r++)for(s=0,z[r]=0,P[r]=[0];s<m.length-1+R;s++)u=m[s],d=s===m.length-1?m[0]:m[s+1],r===t?(p=u[0],f=d[0]):(p=u[r],f=d[r]),c=f.subtract(p).length()+z[r],P[r].push(c),z[r]=c;if(v)for(s=0;s<v.length;s++)w.push(v[s].x,n.useOpenGLOrientationForUV?1-v[s].y:v[s].y);else for(s=0;s<m.length+R;s++)for(r=0;r<t+S;r++)x=0!=L[s]?F[s][r]/L[s]:0,g=0!=z[r]?P[r][s]/z[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=C[1]-C[0],Z=B.length-1;for(;U<=G&&s<Z;)I.push(U,U+H,U+1),I.push(U+H+1,U+1,U+H),(U+=1)===G&&(H=C[++s+1]-C[s],N=B[s]-1,W=B[s+1]-1,U=C[s],G=N<W?N+U:W+U);if(o.VertexData.ComputeNormals(A,I,D),O){let e,t;for(s=0;s<m.length;s++){e=3*C[s],t=s+1<m.length?(C[s+1]-1)*3:D.length-3,D[e]=(D[e]+D[t])*.5,D[e+1]=(D[e+1]+D[t+1])*.5,D[e+2]=(D[e+2]+D[t+2])*.5;let r=Math.sqrt(D[e]*D[e]+D[e+1]*D[e+1]+D[e+2]*D[e+2]);D[e]/=r,D[e+1]/=r,D[e+2]/=r,D[t]=D[e],D[t+1]=D[e+1],D[t+2]=D[e+2]}}if(V){let e=3*C[0],s=3*C[m.length];for(r=0;r<t+S;r++){D[e]=(D[e]+D[s])*.5,D[e+1]=(D[e+1]+D[s+1])*.5,D[e+2]=(D[e+2]+D[s+2])*.5;let t=Math.sqrt(D[e]*D[e]+D[e+1]*D[e+1]+D[e+2]*D[e+2]);D[e]/=t,D[e+1]/=t,D[e+2]/=t,D[s]=D[e],D[s+1]=D[e+1],D[s+2]=D[e+2],e+=3,s+=3}}o.VertexData._ComputeSides(T,A,I,D,w,e.frontUVs,e.backUVs);let X=null;if(b){X=new Float32Array(4*b.length);for(let e=0;e<b.length;e++)X[4*e]=b[e].r,X[4*e+1]=b[e].g,X[4*e+2]=b[e].b,X[4*e+3]=b[e].a}let k=new o.VertexData,Y=new Float32Array(A),K=new Float32Array(D),Q=new Float32Array(w);return k.indices=I,k.positions=Y,k.normals=K,k.uvs=Q,X&&k.set(X,a.VertexBuffer.ColorKind),O&&(k._idx=C),k}(t);return u&&(r._creationDataStorage.idx=l._idx),r._creationDataStorage.closePath=u,r._creationDataStorage.closeArray=c,l.applyToMesh(r,f),r}}var h=e.i(70653);function c(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),c=l-h*s,u=e.height||e.size||1,d=Math.floor(u/r),p=u-d*r,f=s*h/2,x=r*d/2,g=0,m=0,V=0,O=0,_=0,M=0;if(c>0||p>0){switch(V=-f,O=-x,_=f,M=x,a){case i.Mesh.CENTER:c/=2,V-=c,_+=c;break;case i.Mesh.LEFT:_+=c,g=-c/2;break;case i.Mesh.RIGHT:V-=c,g=c/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=[],v=[];v[0]=[0,0,1,0,1,1,0,1],v[1]=[0,0,1,0,1,1,0,1],(t===i.Mesh.ROTATE_TILE||t===i.Mesh.ROTATE_ROW)&&(v[1]=[1,1,0,1,0,0,1,0]),(t===i.Mesh.FLIP_TILE||t===i.Mesh.FLIP_ROW)&&(v[1]=[1,0,0,0,0,1,1,1]),(t===i.Mesh.FLIP_N_ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_ROW)&&(v[1]=[0,1,1,1,1,0,0,0]);let b=[],A=[],I=[],D=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),I.push(D,D+1,D+3,D+1,D+2,D+3),b=t===i.Mesh.FLIP_TILE||t===i.Mesh.ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_TILE?b.concat(v[(a%2+e%2)%2]):t===i.Mesh.FLIP_ROW||t===i.Mesh.ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_ROW?b.concat(v[e%2]):b.concat(v[0]),A.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),D+=4;if(c>0||p>0){let e,o,l,u,v,w=p>0&&(n===i.Mesh.CENTER||n===i.Mesh.TOP),F=p>0&&(n===i.Mesh.CENTER||n===i.Mesh.BOTTOM),P=c>0&&(a===i.Mesh.CENTER||a===i.Mesh.RIGHT),L=c>0&&(a===i.Mesh.CENTER||a===i.Mesh.LEFT);if(w&&P&&(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),I.push(D,D+1,D+3,D+1,D+2,D+3),D+=4,u=1,v=1,e=[o=1-c/s,l=1-p/r,u,l,u,v,o,v],t===i.Mesh.ROTATE_ROW&&(e=[1-o,1-l,1-u,1-l,1-u,1-v,1-o,1-v]),t===i.Mesh.FLIP_ROW&&(e=[1-o,l,1-u,l,1-u,v,1-o,v]),t===i.Mesh.FLIP_N_ROTATE_ROW&&(e=[o,1-l,u,1-l,u,1-v,o,1-v]),b=b.concat(e),A.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&&L&&(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),I.push(D,D+1,D+3,D+1,D+2,D+3),D+=4,v=1,e=[o=0,l=1-p/r,u=c/s,l,u,v,o,v],(t===i.Mesh.ROTATE_ROW||t===i.Mesh.ROTATE_TILE&&h%2==0)&&(e=[1-o,1-l,1-u,1-l,1-u,1-v,1-o,1-v]),(t===i.Mesh.FLIP_ROW||t===i.Mesh.FLIP_TILE&&h%2==0)&&(e=[1-o,l,1-u,l,1-u,v,1-o,v]),(t===i.Mesh.FLIP_N_ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_TILE&&h%2==0)&&(e=[o,1-l,u,1-l,u,1-v,o,1-v]),b=b.concat(e),A.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(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),I.push(D,D+1,D+3,D+1,D+2,D+3),D+=4,l=0,u=1,e=[o=1-c/s,l,u,l,u,v=p/r,o,v],(t===i.Mesh.ROTATE_ROW&&d%2==1||t===i.Mesh.ROTATE_TILE&&d%1==0)&&(e=[1-o,1-l,1-u,1-l,1-u,1-v,1-o,1-v]),(t===i.Mesh.FLIP_ROW&&d%2==1||t===i.Mesh.FLIP_TILE&&d%2==0)&&(e=[1-o,l,1-u,l,1-u,v,1-o,v]),(t===i.Mesh.FLIP_N_ROTATE_ROW&&d%2==1||t===i.Mesh.FLIP_N_ROTATE_TILE&&d%2==0)&&(e=[o,1-l,u,1-l,u,1-v,o,1-v]),b=b.concat(e),A.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&&L&&(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),I.push(D,D+1,D+3,D+1,D+2,D+3),D+=4,e=[o=0,l=0,u=c/s,l,u,v=p/r,o,v],(t===i.Mesh.ROTATE_ROW&&d%2==1||t===i.Mesh.ROTATE_TILE&&(d+h)%2==1)&&(e=[1-o,1-l,1-u,1-l,1-u,1-v,1-o,1-v]),(t===i.Mesh.FLIP_ROW&&d%2==1||t===i.Mesh.FLIP_TILE&&(d+h)%2==1)&&(e=[1-o,l,1-u,l,1-u,v,1-o,v]),(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,u,1-l,u,1-v,o,1-v]),b=b.concat(e),A.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,u=1,v=1,e[0]=[o,l,u,l,u,v,o,v],e[1]=[o,l,u,l,u,v,o,v],(t===i.Mesh.ROTATE_TILE||t===i.Mesh.ROTATE_ROW)&&(e[1]=[1-o,1-l,1-u,1-l,1-u,1-v,1-o,1-v]),(t===i.Mesh.FLIP_TILE||t===i.Mesh.FLIP_ROW)&&(e[1]=[1-o,l,1-u,l,1-u,v,1-o,v]),(t===i.Mesh.FLIP_N_ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_ROW)&&(e[1]=[o,1-l,u,1-l,u,1-v,o,1-v]);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),I.push(D,D+1,D+3,D+1,D+2,D+3),D+=4,b=t===i.Mesh.FLIP_TILE||t===i.Mesh.ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_TILE?b.concat(e[(r+1)%2]):t===i.Mesh.FLIP_ROW||t===i.Mesh.ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_ROW?b.concat(e[1]):b.concat(e[0]),A.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,u=1,v=p/r,e[0]=[o,l,u,l,u,v,o,v],e[1]=[o,l,u,l,u,v,o,v],(t===i.Mesh.ROTATE_TILE||t===i.Mesh.ROTATE_ROW)&&(e[1]=[1-o,1-l,1-u,1-l,1-u,1-v,1-o,1-v]),(t===i.Mesh.FLIP_TILE||t===i.Mesh.FLIP_ROW)&&(e[1]=[1-o,l,1-u,l,1-u,v,1-o,v]),(t===i.Mesh.FLIP_N_ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_ROW)&&(e[1]=[o,1-l,u,1-l,u,1-v,o,1-v]);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),I.push(D,D+1,D+3,D+1,D+2,D+3),D+=4,b=t===i.Mesh.FLIP_TILE||t===i.Mesh.ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_TILE?b.concat(e[(r+d)%2]):t===i.Mesh.FLIP_ROW||t===i.Mesh.ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_ROW?b.concat(e[d%2]):b.concat(e[0]),A.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=1-c/s,l=0,u=1,v=1,e[0]=[o,l,u,l,u,v,o,v],e[1]=[o,l,u,l,u,v,o,v],(t===i.Mesh.ROTATE_TILE||t===i.Mesh.ROTATE_ROW)&&(e[1]=[1-o,1-l,1-u,1-l,1-u,1-v,1-o,1-v]),(t===i.Mesh.FLIP_TILE||t===i.Mesh.FLIP_ROW)&&(e[1]=[1-o,l,1-u,l,1-u,v,1-o,v]),(t===i.Mesh.FLIP_N_ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_ROW)&&(e[1]=[o,1-l,u,1-l,u,1-v,o,1-v]);for(let s=0;s<d;s++)y.push(V+g,-x+s*r+m,0),y.push(V+c+g,-x+s*r+m,0),y.push(V+c+g,-x+(s+1)*r+m,0),y.push(V+g,-x+(s+1)*r+m,0),I.push(D,D+1,D+3,D+1,D+2,D+3),D+=4,b=t===i.Mesh.FLIP_TILE||t===i.Mesh.ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_TILE?b.concat(e[(s+1)%2]):t===i.Mesh.FLIP_ROW||t===i.Mesh.ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_ROW?b.concat(e[s%2]):b.concat(e[0]),A.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(L){let e=[];o=0,l=0,u=c/r,v=1,e[0]=[o,l,u,l,u,v,o,v],e[1]=[o,l,u,l,u,v,o,v],(t===i.Mesh.ROTATE_TILE||t===i.Mesh.ROTATE_ROW)&&(e[1]=[1-o,1-l,1-u,1-l,1-u,1-v,1-o,1-v]),(t===i.Mesh.FLIP_TILE||t===i.Mesh.FLIP_ROW)&&(e[1]=[1-o,l,1-u,l,1-u,v,1-o,v]),(t===i.Mesh.FLIP_N_ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_ROW)&&(e[1]=[o,1-l,u,1-l,u,1-v,o,1-v]);for(let s=0;s<d;s++)y.push(_-c+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(_-c+g,-x+(s+1)*r+m,0),I.push(D,D+1,D+3,D+1,D+2,D+3),D+=4,b=t===i.Mesh.FLIP_TILE||t===i.Mesh.ROTATE_TILE||t===i.Mesh.FLIP_N_ROTATE_TILE?b.concat(e[(s+h)%2]):t===i.Mesh.FLIP_ROW||t===i.Mesh.ROTATE_ROW||t===i.Mesh.FLIP_N_ROTATE_ROW?b.concat(e[s%2]):b.concat(e[0]),A.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,I,T,b,e.frontUVs,e.backUVs);let F=new o.VertexData;return F.indices=I,F.positions=y,F.normals=T,F.uvs=b,F.colors=w===o.VertexData.DOUBLESIDE?A.concat(A):A,F}function u(e){let t,s=e.faceUV||Array(6),a=e.faceColors,l=e.pattern||i.Mesh.NO_FLIP,u=e.width||e.size||1,d=e.height||e.size||1,p=e.depth||e.size||1,f=e.tileWidth||e.tileSize||1,x=e.tileHeight||e.tileSize||1,g=e.alignHorizontal||0,m=e.alignVertical||0,V=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 h.Color4(1,1,1,1));let O=u/2,_=d/2,M=p/2,y=[];for(let e=0;e<2;e++)y[e]=c({pattern:l,tileWidth:f,tileHeight:x,width:u,height:d,alignVertical:m,alignHorizontal:g,sideOrientation:V});for(let e=2;e<4;e++)y[e]=c({pattern:l,tileWidth:f,tileHeight:x,width:p,height:d,alignVertical:m,alignHorizontal:g,sideOrientation:V});let T=m;m===i.Mesh.BOTTOM?T=i.Mesh.TOP:m===i.Mesh.TOP&&(T=i.Mesh.BOTTOM);for(let e=4;e<6;e++)y[e]=c({pattern:l,tileWidth:f,tileHeight:x,width:u,height:p,alignVertical:T,alignHorizontal:g,sideOrientation:V});let v=[],b=[],A=[],I=[],D=[],w=[],F=[],P=[],L=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,P[e]=[];for(let r=0;r<t;r+=2)P[e][r]=s[e].x+(s[e].z-s[e].x)*y[e].uvs[r],P[e][r+1]=s[e].y+(s[e].w-s[e].y)*y[e].uvs[r+1],n.useOpenGLOrientationForUV&&(P[e][r+1]=1-P[e][r+1]);if(A=A.concat(P[e]),I=I.concat(y[e].indices.map(e=>e+L)),L+=w[e].length,a){let t=a[e];for(let s=0;s<w[e].length;s++)D.push(t.r,t.g,t.b,t.a)}}let z=[{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}=z[e];for(let a of w[e]){let e=r.Vector3.TransformCoordinates(a,t),o=1===i?e.add(s):e.subtract(s);v.push(o.x,o.y,o.z)}for(let s of F[e]){let e=r.Vector3.TransformNormal(s,t);b.push(e.x,e.y,e.z)}}let B=new o.VertexData;return B.indices=I,B.positions=v,B.normals=b,B.uvs=A,a&&(B.colors=V===o.VertexData.DOUBLESIDE?D.concat(D):D),B}o.VertexData.CreateTiledPlane=c,o.VertexData.CreateTiledBox=u;var d=e.i(70247),p=i,f=e.i(595),x=e.i(23507),g=e.i(82549),m=e.i(75405);class V extends p.Mesh{_isShaderMaterial(e){return!!e&&"ShaderMaterial"===e.getClassName()}constructor(t,s=null,r=null,i=null,o,n,l,c){super(t,s,r,i,o),this.useVertexColor=n,this.useVertexAlpha=l,this.color=new h.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 h.Color4),c)this.material=c;else{this.getScene().getEngine().isWebGPU&&!V.ForceGLSL&&(this._shaderLanguage=1),u.shaderLanguage=this._shaderLanguage,u.extraInitializationsAsync=async()=>{1===this._shaderLanguage?await Promise.all([e.A(20169),e.A(57284)]):await Promise.all([e.A(76121),e.A(83228)])};const t=new g.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=x.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(x.Material.LineListDrawMode,e.verticesStart,e.verticesCount,s):r.drawElementsType(x.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 V(e,this.getScene(),t.parent,t.source,t.doNotCloneChildren)):new V(e,this.getScene(),t,this,s)}createInstance(e){let t=new O(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 V(e.name,t);return s.color=h.Color3.FromArray(e.color),s.alpha=e.alpha,s}}V.ForceGLSL=!1;class O extends f.InstancedMesh{constructor(e,t){super(e,t),this.intersectionThreshold=t.intersectionThreshold}getClassName(){return"InstancedLinesMesh"}}(t=V.prototype).enableEdgesRendering??(t.enableEdgesRendering=(0,m._MissingSideEffect)("LinesMesh","enableEdgesRendering")),(s=O.prototype).enableEdgesRendering??(s.enableEdgesRendering=(0,m._MissingSideEffect)("InstancedLinesMesh","enableEdgesRendering"));var _=e.i(13379);function M(e,t,s=null){let r=t.instance,i=t.lines,n=t.colors;if(r){let e,t,s=r.getVerticesData(a.VertexBuffer.PositionKind);n&&(e=r.getVerticesData(a.VertexBuffer.ColorKind));let o=0,l=0;for(let r=0;r<i.length;r++){let a=i[r];for(let i=0;i<a.length;i++)s[o]=a[i].x,s[o+1]=a[i].y,s[o+2]=a[i].z,n&&e&&(t=n[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),o+=3}return r.updateVerticesData(a.VertexBuffer.PositionKind,s,!1,!1),n&&e&&r.updateVerticesData(a.VertexBuffer.ColorKind,e,!1,!1),r.refreshBoundingInfo(),r}let l=new V(e,s,null,void 0,void 0,!!n,t.useVertexAlpha,t.material);return(function(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:c}=o[r];if(s.push(l,h,c),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})(t).applyToMesh(l,t.updatable),l}var y=r,T=e.i(75991),v=e.i(89030),b=e.i(81623);class A extends y.Vector2{constructor(e,t){super(e.x,e.y),this.index=t}}class I{constructor(){this.elements=[]}add(e){let t=[];for(let s of e){let e=new A(s,this.elements.length);t.push(e),this.elements.push(e)}return t}computeBounds(){let e=new y.Vector2(this.elements[0].x,this.elements[0].y),t=new y.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 D{_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 I,this._outlinepoints=new I,this._holes=[],this._epoints=[],this._eholes=[],this.bjsEarcut=r,this._name=e,this._scene=s||b.EngineStore.LastCreatedScene,i=t instanceof T.Path2?t.getPoints():t,this._addToepoint(i),this._points.add(i),this._outlinepoints.add(i),void 0===this.bjsEarcut&&_.Logger.Warn("Earcut was not found, the polygon will not be built.")}addHole(e){this._points.add(e);let t=new I;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,c=0;for(let u=0;u<a.elements.length;u++){let d,p=a.elements[u],f=a.elements[(u+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[(u+a.elements.length-1)%a.elements.length],g=a.elements[(u+2)%a.elements.length],m=new y.Vector3(-(f.y-p.y),0,f.x-p.x),V=new y.Vector3(-(p.y-x.y),0,p.x-x.x),O=new y.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(),T=y.Vector3.Dot(M,_);M=T>l?T<v.Epsilon-1?new y.Vector3(p.x,0,p.y).subtract(new y.Vector3(f.x,0,f.y)).normalize():V.add(m).normalize():_;let b=y.Vector3.Dot(O,m);d=b>l?b<v.Epsilon-1?new y.Vector3(f.x,0,f.y).subtract(new y.Vector3(p.x,0,p.y)).normalize():O.add(m).normalize():_,s.push(c/i.width,0),s.push(c/i.width,1),c+=m.length(),s.push(c/i.width,0),s.push(c/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 w(e,t,s=null,l=earcut){let c;t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation);let u=t.shape,d=t.holes||[],p=t.depth||0,f=t.smoothingThreshold||2,x=[];for(let e=0;e<u.length;e++)x[e]=new r.Vector2(u[e].x,u[e].z);x[0].equalsWithEpsilon(x[x.length-1],1e-8)&&x.pop();let g=new D(e,x,s||b.EngineStore.LastCreatedScene,l);for(let e=0;e<d.length;e++){c=[];for(let t=0;t<d[e].length;t++)c.push(new r.Vector2(d[e][t].x,d[e][t].z));g.addHole(c)}let m=g.build(!1,p,f);return m._originalBuilderSideOrientation=t.sideOrientation,(function(e,t,s,i,l,c,u){let d,p,f,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 h.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,v=0,b=[0];if(V)for(let e=T;e<O.length/3;e+=4)b.push(v+=Math.sqrt((p=O[3*(e+2)]-O[3*e])*p+(f=O[3*(e+2)+2]-O[3*e+2])*f));let A=0;for(let e=0;e<_.length;e+=3).001>Math.abs(_[e+1])&&(A=1),.001>Math.abs(_[e+1]-1)&&(A=0),.001>Math.abs(_[e+1]+1)&&(A=2),x=e/3,1===A?((d=x-T)%4<1.5?V?M[2*x]=g[A].x+(g[A].z-g[A].x)*b[Math.floor(d/4)]/v:M[2*x]=g[A].x:V?M[2*x]=g[A].x+(g[A].z-g[A].x)*b[Math.floor(d/4)+1]/v:M[2*x]=g[A].z,d%2==0?M[2*x+1]=n.useOpenGLOrientationForUV?1-g[A].w:g[A].w:M[2*x+1]=n.useOpenGLOrientationForUV?1-g[A].y:g[A].y):(M[2*x]=(1-M[2*x])*g[A].x+M[2*x]*g[A].z,M[2*x+1]=(1-M[2*x+1])*g[A].y+M[2*x+1]*g[A].w,n.useOpenGLOrientationForUV&&(M[2*x+1]=1-M[2*x+1])),i&&m.push(i[A].r,i[A].g,i[A].b,i[A].a);o.VertexData._ComputeSides(t,O,y,_,M,l,c);let I=new o.VertexData;return I.indices=y,I.positions=O,I.normals=_,I.uvs=M,i&&(I.colors=t===o.VertexData.DOUBLESIDE?m.concat(m):m),I})(m,t.sideOrientation,t.faceUV,t.faceColors,t.frontUVs,t.backUVs,t.wrap).applyToMesh(m,t.updatable),m}function F(e,t,s=null,r=earcut){return w(e,t,s,r)}function P(e,t,s,a,o,n,h,c,u,d,p,f,x,g,m,V,O,_,M,y,v){let b,A=(e,t,s,a,o,n,l,h,c,u,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=u&&h?h:()=>null!==n?n:0,O=u&&l?l:()=>null!==o?o:r.Vector3.OneReadOnly,_=2*(c!==i.Mesh.NO_CAP&&c!==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=v||(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(c){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},I=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=l("",{pathArray:b=A(t,s,e.path3D,e.pathArray,I,o,n,h,e.cap,p,y),closeArray:!1,closePath:!1,offset:0,updatable:!1,sideOrientation:0,instance:m},f||void 0)}let D=M?new T.Path3D(s,M):new T.Path3D(s),w=l(e,{pathArray:b=A(t,s,D,[],I,o,n,h,d=d<0||d>3?0:d,p,y),closeArray:c,closePath:u,updatable:x,sideOrientation:g,invertUV:V,frontUVs:O||void 0,backUVs:_||void 0},f);return w._creationDataStorage.pathArray=b,w._creationDataStorage.path3D=D,w._creationDataStorage.cap=d,w}var L=i;class z extends L.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,m._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 c=r.TmpVectors.Vector3[3],u=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,c.x=h[t+e],c.y=h[t+e+1],c.z=h[t+e+2],u.x=h[t+e+3],u.y=h[t+e+4],u.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-c.z)/(p.x-c.x),o=c.z-i*c.x,u.subtractToRef(c,f),d.subtractToRef(c,x),p.subtractToRef(c,g),r.Vector3.CrossToRef(g,x,m),r.Vector3.CrossToRef(f,g,V),m.normalize(),V.normalize(),n=-(m.x*c.x+m.y*c.y+m.z*c.z),l=-(V.x*u.x+V.y*u.y+V.z*u.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 z(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 B=e.i(65740);function C(e,t={},s=null){let a=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),a._originalBuilderSideOrientation=t.sideOrientation,(function(e){let t,s,i,a,l,c,u,d,p=[];p[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]]},p[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]]},p[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]]},p[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]]},p[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]]},p[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]]},p[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]]},p[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]]},p[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]]},p[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]]},p[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]]},p[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]]},p[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]]},p[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]]},p[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 f=e.type&&(e.type<0||e.type>=p.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||p[f],_=O.face.length,M=e.faceUV||Array(_),y=e.faceColors,T=void 0===e.flat||e.flat,v=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,b=[],A=[],I=[],D=[],w=[],F=0,P=0,L=[];if(T)for(s=0;s<_;s++)y&&void 0===y[s]&&(y[s]=new h.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(t=0,c=.5*Math.tan((l=2*Math.PI/e)/2),u=.5;t<e;t++)b.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),L.push(F),F++,i=M[s].x+(M[s].z-M[s].x)*(.5+c),a=M[s].y+(M[s].w-M[s].y)*(u-.5),D.push(i,n.useOpenGLOrientationForUV?1-a:a),d=c*Math.cos(l)-u*Math.sin(l),u=c*Math.sin(l)+u*Math.cos(l),c=d,y&&w.push(y[s].r,y[s].g,y[s].b,y[s].a);for(t=0;t<e-2;t++)A.push(L[0+P],L[t+2+P],L[t+1+P]);P+=e}else{for(t=0;t<O.vertex.length;t++)b.push(O.vertex[t][0]*g,O.vertex[t][1]*m,O.vertex[t][2]*V),D.push(0,+!!n.useOpenGLOrientationForUV);for(s=0;s<_;s++)for(t=0;t<O.face[s].length-2;t++)A.push(O.face[s][0],O.face[s][t+2],O.face[s][t+1])}o.VertexData.ComputeNormals(b,A,I),o.VertexData._ComputeSides(v,b,A,I,D,e.frontUVs,e.backUVs);let z=new o.VertexData;return z.positions=b,z.indices=A,z.normals=I,z.uvs=D,y&&T&&(z.colors=w),z})(t).applyToMesh(a,t.updatable),a}var E=e.i(46703);let S=new r.Vector3(1,0,0),R=new r.Vector3(-1,0,0),U=new r.Vector3(0,1,0),N=new r.Vector3(0,-1,0),W=new r.Vector3(0,0,1),G=new r.Vector3(0,0,-1);class H{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 H(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())}}class Z{constructor(e=0,t=0){this.x=e,this.y=t,e!==Math.floor(e)&&(e=Math.floor(e),_.Logger.Warn("x is not an integer, floor(x) used")),t!==Math.floor(t)&&(t=Math.floor(t),_.Logger.Warn("y is not an integer, floor(y) used"))}clone(){return new Z(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),_.Logger.Warn("m not an integer only floor(m) used")),t!==Math.floor(t)&&(t=Math.floor(t),_.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),_.Logger.Warn("m is not an integer, floor(m) used")),t!==Math.floor(t)&&(t=Math.floor(t),_.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 Z(0,0)}}class X{constructor(){this.cartesian=[],this.vertices=[],this.max=[],this.min=[],this.closestTo=[],this.innerFacets=[],this.isoVecsABOB=[],this.isoVecsOBOA=[],this.isoVecsBAOA=[],this.vertexTypes=[],this.IDATA=new k("icosahedron","Regular",[[0,v.PHI,-1],[-v.PHI,1,0],[-1,0,-v.PHI],[1,0,-v.PHI],[v.PHI,1,0],[0,v.PHI,1],[-1,0,v.PHI],[-v.PHI,-1,0],[0,-v.PHI,-1],[v.PHI,-1,0],[1,0,v.PHI],[0,-v.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={},c=this.m,u=this.n,d=c;0!==u&&(d=(0,E.HighestCommonFactor)(c,u));let p=c/d,f=u/d,x=Z.Zero(),g=new Z(c,u),m=new Z(-u,c+u),V=Z.Zero(),O=Z.Zero(),_=Z.Zero(),M=[],y=[],T=this.vertByDist,v=(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=c-t*(p+f),O.y=u+t*p,_.x=-t*f,_.y=t*(p+f),v(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,v(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=c-(d-t)*(p+f),O.y=u+(d-t)*p,v(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 Z(-t,e+t);for(let r=1;r<e+t;r++){let e=new Z(this.min[r],r),t=new Z(this.min[r-1],r-1),i=new Z(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 Z(this.max[a.y],a.y),h=new Z(this.max[a.y-1],a.y-1),c=new Z(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,c]),this.vertexTypes.push([1,0,0]),this.isoVecsABOB.push([e,c,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 Z(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 Z(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]),c=r.Vector3.FromArray(this.IDATA.vertex[n]),u=r.Vector3.FromArray(this.IDATA.vertex[l]),d=c.subtract(h),p=u.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=Z.Zero(),o=new Z(e,t),n=new Z(-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 Z(t,s));if(t>0){let s=(0,E.HighestCommonFactor)(e,t),r=e/s,a=t/s;for(let o=1;o<s;o++)i.push(new Z(o*r,o*a)),i.push(new Z(-o*a,o*(r+a))),i.push(new Z(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 Z(r,s)),i.push(new Z(r,s).rotate120(e,t)),i.push(new Z(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 c=i.length;for(let e=0;e<c;e++)r=i[e].x,l[s=i[e].y]=Math.min(r,l[s]),h[s]=Math.max(r,h[s]);let u=(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<c;e++)d[e]=i[e].toCartesianOrigin(new Z(0,0),.5),p[e]=u(i[e],"O"),f[e]=u(i[e],"A"),x[e]=u(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 k{constructor(e,t,s,r){this.name=e,this.category=t,this.vertex=s,this.face=r}}class Y extends k{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 k("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 Y("Geodesic-m-n","Geodesic",[[0,v.PHI,-1],[-v.PHI,1,0],[-1,0,-v.PHI],[1,0,-v.PHI],[v.PHI,1,0],[0,v.PHI,1],[-1,0,v.PHI],[-v.PHI,-1,0],[0,-v.PHI,-1],[v.PHI,-1,0],[1,0,v.PHI],[0,-v.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 K=i;class Q extends K.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&&(_.Logger.Warn("Maximum number of unshared faces used"),e=this.goldbergData.nbUnsharedFaces-1),this.goldbergData.nbUnsharedFaces+e):(e>11&&(_.Logger.Warn("Last pole used"),e=11),t>this.goldbergData.nbFacesAtPole-1&&(_.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],c=[],u=[];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),c.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),u.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]=c[2*s],t[10*e+2*s+1]=c[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]=u[2*s],t[12*e-23+2*s]=u[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=>h.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 Q(e.name,t);return i.goldbergData=s,i}}var q=e.i(24632);class j{constructor(e){this._paths=[],this._tempPaths=[],this._holes=[],this._resolution=e}moveTo(e,t){this._currentPath=new T.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}}e.s(["MeshBuilder",0,{CreateBox:function(e,t={},s=null){let a=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),a._originalBuilderSideOrientation=t.sideOrientation,(function(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,c=e.depth||e.size||1,u=e.wrap||!1,d=void 0===e.topBaseAt?1:e.topBaseAt,p=void 0===e.bottomBaseAt?0:e.bottomBaseAt;d=(d+4)%4,p=(p+4)%4;let f=[2,0,3,1][d],x=[2,0,1,3][p],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(;f>0;)e.unshift(e.pop()),r.unshift(r.pop()),f--;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,c/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 h.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})(t).applyToMesh(a,t.updatable),a},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,u(t).applyToMesh(r,t.updatable),r},CreateSphere:function(e,t={},s=null){let a=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),a._originalBuilderSideOrientation=t.sideOrientation,(function(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,c=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,u=!!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),c=r.Vector3.TransformCoordinates(r.Vector3.Up(),o),u=r.Vector3.TransformCoordinates(c,h),p=u.multiply(d),x=u.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++)u?(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(c,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})(t).applyToMesh(a,t.updatable),a},CreateDisc:function(e,t={},s=null){let r=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),r._originalBuilderSideOrientation=t.sideOrientation,(function(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,c=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE;t.push(0,0,0),i.push(.5,.5);let u=2*Math.PI*h,d=1===h?u/l:u/(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(c,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})(t).applyToMesh(r,t.updatable),r},CreateIcoSphere:function(e,t={},s=null){let a=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),a._originalBuilderSideOrientation=t.sideOrientation,(function(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,c=e.radiusY||i,u=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],v=[],b=[],A=[],I=[],D=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/=c,o.z/=u,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));b.push(f.x*h,f.y*c,f.z*u),A.push(o.x,o.y,o.z),I.push(m.x,n.useOpenGLOrientationForUV?1-m.y:m.y),v.push(D),D++};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,b,v,A,I,e.frontUVs,e.backUVs);let P=new o.VertexData;return P.indices=v,P.positions=b,P.normals=A,P.uvs=I,P})(t).applyToMesh(a,t.updatable),a},CreateRibbon:l,CreateCylinder:function(e,t={},s){let a=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),a._originalBuilderSideOrientation=t.sideOrientation,(function(e){let t,s,a,l,c,u,p,f,x,g=e.height||2,m=0===e.diameterTop?0:e.diameterTop||e.diameter||1,V=0===e.diameterBottom?0:e.diameterBottom||e.diameter||1;m=m||1e-5,V=V||1e-5;let O=0|(e.tessellation||24),_=0|(e.subdivisions||1),M=!!e.hasRings,y=!!e.enclose,T=0===e.cap?0:e.cap||i.Mesh.CAP_ALL,v=e.arc&&(e.arc<=0||e.arc>1)?1:e.arc||1,b=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,A=e.faceUV||[,,,],I=e.faceColors,D=2+(1+(1!==v&&y?2:0))*(M?_:1);for(t=0;t<D;t++)I&&void 0===I[t]&&(I[t]=new h.Color4(1,1,1,1));for(t=0;t<D;t++)A&&void 0===A[t]&&(A[t]=new r.Vector4(0,0,1,1));let w=[],F=[],P=[],L=[],z=[],B=2*Math.PI*v/O,C=(V-m)/2/g,E=r.Vector3.Zero(),S=r.Vector3.Zero(),R=r.Vector3.Zero(),U=r.Vector3.Zero(),N=r.Vector3.Zero(),W=d.Axis.Y,G=1,H=0;for(c=0;c<=_;c++)for(p=0,l=((a=c/_)*(m-V)+V)/2,f=M&&0!==c&&c!==_?2:1;p<f;p++){for(M&&(G+=p),y&&(G+=2*p),u=0;u<=O;u++)E.x=Math.cos(-(s=u*B))*l,E.y=-g/2+a*g,E.z=Math.sin(-s)*l,0===m&&c===_?(S.x=P[P.length-(O+1)*3],S.y=P[P.length-(O+1)*3+1],S.z=P[P.length-(O+1)*3+2]):(S.x=E.x,S.z=E.z,S.y=Math.sqrt(S.x*S.x+S.z*S.z)*C,S.normalize()),0===u&&(R.copyFrom(E),U.copyFrom(S)),F.push(E.x,E.y,E.z),P.push(S.x,S.y,S.z),x=M?H!==G?A[G].y:A[G].w:A[G].y+(A[G].w-A[G].y)*a,L.push(A[G].x+(A[G].z-A[G].x)*u/O,n.useOpenGLOrientationForUV?1-x:x),I&&z.push(I[G].r,I[G].g,I[G].b,I[G].a);1!==v&&y&&(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(),P.push(N.x,N.y,N.z,N.x,N.y,N.z),r.Vector3.CrossToRef(U,W,N),N.normalize(),P.push(N.x,N.y,N.z,N.x,N.y,N.z),x=M?H!==G?A[G+1].y:A[G+1].w:A[G+1].y+(A[G+1].w-A[G+1].y)*a,L.push(A[G+1].x,n.useOpenGLOrientationForUV?1-x:x),L.push(A[G+1].z,n.useOpenGLOrientationForUV?1-x:x),x=M?H!==G?A[G+2].y:A[G+2].w:A[G+2].y+(A[G+2].w-A[G+2].y)*a,L.push(A[G+2].x,n.useOpenGLOrientationForUV?1-x:x),L.push(A[G+2].z,n.useOpenGLOrientationForUV?1-x:x),I&&(z.push(I[G+1].r,I[G+1].g,I[G+1].b,I[G+1].a),z.push(I[G+1].r,I[G+1].g,I[G+1].b,I[G+1].a),z.push(I[G+2].r,I[G+2].g,I[G+2].b,I[G+2].a),z.push(I[G+2].r,I[G+2].g,I[G+2].b,I[G+2].a))),H!==G&&(H=G)}let Z=1!==v&&y?O+4:O;for(G=0,c=0;G<_;G++){let e=0,t=0,s=0,r=0;for(u=0;u<O;u++)e=c*(Z+1)+u,t=(c+1)*(Z+1)+u,s=c*(Z+1)+(u+1),r=(c+1)*(Z+1)+(u+1),w.push(e,t,s),w.push(r,s,t);1!==v&&y&&(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)),c=M?c+2:c+1}let X=e=>{let t,s,i,a=e?m/2:V/2;if(0===a)return;let o=e?A[D-1]:A[0],l=null;I&&(l=e?I[D-1]:I[0]);let h=F.length/3,c=e?g/2:-g/2,u=new r.Vector3(0,c,0);F.push(u.x,u.y,u.z),P.push(0,e?1:-1,0);let d=o.y+(o.w-o.y)*.5;L.push(o.x+(o.z-o.x)*.5,n.useOpenGLOrientationForUV?1-d:d),l&&z.push(l.r,l.g,l.b,l.a);let p=new r.Vector2(.5,.5);for(i=0;i<=O;i++){let h=Math.cos(-(t=2*Math.PI*i*v/O)),u=Math.sin(-t);s=new r.Vector3(h*a,c,u*a);let d=new r.Vector2(h*p.x+.5,u*p.y+.5);F.push(s.x,s.y,s.z),P.push(0,e?1:-1,0);let f=o.y+(o.w-o.y)*d.y;L.push(o.x+(o.z-o.x)*d.x,n.useOpenGLOrientationForUV?1-f:f),l&&z.push(l.r,l.g,l.b,l.a)}for(i=0;i<O;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)))};(T===i.Mesh.CAP_START||T===i.Mesh.CAP_ALL)&&X(!1),(T===i.Mesh.CAP_END||T===i.Mesh.CAP_ALL)&&X(!0),o.VertexData._ComputeSides(b,F,w,P,L,e.frontUVs,e.backUVs);let k=new o.VertexData;return k.indices=w,k.positions=F,k.normals=P,k.uvs=L,I&&(k.colors=z),k})(t).applyToMesh(a,t.updatable),a},CreateTorus:function(e,t={},s){let a=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),a._originalBuilderSideOrientation=t.sideOrientation,(function(e){let t=[],s=[],i=[],a=[],l=e.diameter||1,h=e.thickness||.5,c=0|(e.tessellation||16),u=0===e.sideOrientation?0:e.sideOrientation||o.VertexData.DEFAULTSIDE,d=c+1;for(let e=0;e<=c;e++){let o=e/c,u=e*Math.PI*2/c-Math.PI/2,p=r.Matrix.Translation(l/2,0,0).multiply(r.Matrix.RotationY(u));for(let l=0;l<=c;l++){let u=1-l/c,f=l*Math.PI*2/c+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,u);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(u,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})(t).applyToMesh(a,t.updatable),a},CreateTorusKnot:function(e,t={},s){let a=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),a._originalBuilderSideOrientation=t.sideOrientation,(function(e){let t,s,i=[],a=[],l=[],h=[],c=e.radius||2,u=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=c*Math.sin(i)*.5;return new r.Vector3(c*(2+a)*.5*t,c*(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),c=o.add(i),x=r.Vector3.Cross(l,c);for(c=r.Vector3.Cross(x,l),x.normalize(),c.normalize(),s=0;s<p;s++){let e=s%p/p*2*Math.PI,r=-u*Math.cos(e),o=u*Math.sin(e);a.push(i.x+r*c.x+o*x.x),a.push(i.y+r*c.y+o*x.y),a.push(i.z+r*c.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})(t).applyToMesh(a,t.updatable),a},CreateLineSystem:M,CreateLines:function(e,t,s=null){let r=t.colors?[t.colors]:null;return M(e,{lines:[t.points],updatable:t.updatable,instance:t.instance,colors:r,useVertexAlpha:t.useVertexAlpha,material:t.material},s)},CreateDashedLines:function(e,t,s=null){let a=t.points,n=t.instance,l=t.gapSize||1,h=t.dashSize||3;if(n)return(t.dashNb||t.dashSize||t.gapSize||t.useVertexAlpha||t.material)&&_.Logger.Warn("You have used an option other than points with the instance option. Please be aware that these other options will be ignored."),n.updateMeshPositions(e=>{let t,s,i,o,l=r.Vector3.Zero(),h=e.length/6,c=0,u=0;for(i=0;i<a.length-1;i++)a[i+1].subtractToRef(a[i],l),c+=l.length();let d=c/h,p=n._creationDataStorage.dashSize,f=p*d/(p+n._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(),o=0;o<t&&u<e.length;)s=d*o,e[u]=a[i].x+s*l.x,e[u+1]=a[i].y+s*l.y,e[u+2]=a[i].z+s*l.z,e[u+3]=a[i].x+(s+f)*l.x,e[u+4]=a[i].y+(s+f)*l.y,e[u+5]=a[i].z+(s+f)*l.z,u+=6,o++;for(;u<e.length;)e[u]=a[i].x,e[u+1]=a[i].y,e[u+2]=a[i].z,u+=3},!1),n;let c=new V(e,s,null,void 0,void 0,void 0,t.useVertexAlpha,t.material);return(function(e){let t,s,i,a=e.dashSize||3,n=e.gapSize||1,l=e.dashNb||200,h=e.points,c=[],u=[],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,c.push(h[i].x+s*d.x,h[i].y+s*d.y,h[i].z+s*d.z),c.push(h[i].x+(s+g)*d.x,h[i].y+(s+g)*d.y,h[i].z+(s+g)*d.z),u.push(f,f+1),f+=2}let m=new o.VertexData;return m.positions=c,m.indices=u,m})(t).applyToMesh(c,t.updatable),c._creationDataStorage=new i._CreationDataStorage,c._creationDataStorage.dashSize=h,c._creationDataStorage.gapSize=l,c},ExtrudeShape:function(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,c=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),u=t.instance||null,d=t.invertUV||!1,p=t.closeShape||!1,f=t.closePath||!1,x=t.capFunction||null;return P(e,a,r,o,n,null,null,f,p,l,!1,s,!!h,c,u,d,t.frontUVs||null,t.backUVs||null,t.firstNormal||null,!!t.adjustFrame,x)},ExtrudeShapeCustom:function(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,c=t.closeShape||t.ribbonClosePath||!1,u=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 P(e,o,a,null,null,t.scaleVectorFunction??((e,s)=>{let r=t.scaleFunction?.(e,s)??1;return n.copyFromFloats(r,r,r)}),l,h,c,u,!0,s,!!d,x,g||null,m,t.frontUVs||null,t.backUVs||null,p,f,V||null)},CreateLathe:function(e,t,s=null){let a,o,n,h,c=t.arc?t.arc<=0||t.arc>1?1:t.arc:1,u=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*c;for(a=0;a<=f-x;a++){for(h=[],(V==i.Mesh.CAP_START||V==i.Mesh.CAP_ALL)&&(h.push(new r.Vector3(0,d[0].y,0)),h.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),h.push(n);(V==i.Mesh.CAP_END||V==i.Mesh.CAP_ALL)&&(h.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)),h.push(new r.Vector3(0,d[d.length-1].y,0))),_.push(h)}return l(e,{pathArray:_,closeArray:u,sideOrientation:m,updatable:g,invertUV:M,frontUVs:t.frontUVs,backUVs:t.backUVs},s)},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,c(t).applyToMesh(r,t.updatable),r},CreatePlane:function(e,t={},s=null){let r,a,l,h,c,u,d,p,f,x,g=new i.Mesh(e,s);return t.sideOrientation=i.Mesh._GetDefaultSideOrientation(t.sideOrientation),g._originalBuilderSideOrientation=t.sideOrientation,(r=[],a=[],l=[],h=[],c=void 0!==t.width?t.width:void 0!==t.size?t.size:1,u=void 0!==t.height?t.height:void 0!==t.size?t.size:1,d=0===t.sideOrientation?0:t.sideOrientation||o.VertexData.DEFAULTSIDE,p=c/2,f=u/2,a.push(-p,-f,0),l.push(0,0,-1),h.push(0,+!!n.useOpenGLOrientationForUV),a.push(p,-f,0),l.push(0,0,-1),h.push(1,+!!n.useOpenGLOrientationForUV),a.push(p,f,0),l.push(0,0,-1),h.push(1,+!n.useOpenGLOrientationForUV),a.push(-p,f,0),l.push(0,0,-1),h.push(0,+!n.useOpenGLOrientationForUV),r.push(0),r.push(1),r.push(2),r.push(0),r.push(2),r.push(3),o.VertexData._ComputeSides(d,a,r,l,h,t.frontUVs,t.backUVs),(x=new o.VertexData).indices=r,x.positions=a,x.normals=l,x.uvs=h,x).applyToMesh(g,t.updatable),t.sourcePlane&&(g.translate(t.sourcePlane.normal,-t.sourcePlane.d),g.setDirection(t.sourcePlane.normal.scale(-1))),g},CreateGround:function(e,t={},s){let i=new z(e,s);return i._setReady(!1),i._subdivisionsX=t.subdivisionsX||t.subdivisions||1,i._subdivisionsY=t.subdivisionsY||t.subdivisions||1,i._width=t.width||1,i._height=t.height||1,i._maxX=i._width/2,i._maxZ=i._height/2,i._minX=-i._maxX,i._minZ=-i._maxZ,(function(e){let t,s,i=[],a=[],l=[],h=[],c=e.width||e.size||1,u=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*c/d-c/2,0,(p-t)*u/p-u/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})(t).applyToMesh(i,t.updatable),i._setReady(!0),i},CreateTiledGround:function(e,t,s=null){let a=new i.Mesh(e,s);return(function(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,c=void 0!==e.zmax&&null!==e.zmax?e.zmax:1,u=e.subdivisions||{w:1,h:1},d=e.precision||{w:1,h:1},p=[],f=[],x=[],g=[];u.h=u.h<1?1:u.h,u.w=u.w<1?1:u.w,d.w=d.w<1?1:d.w,d.h=d.h<1?1:d.h;let m={w:(h-n)/u.w,h:(c-l)/u.h};for(i=0;i<u.h;i++)for(a=0;a<u.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(),c=new r.Vector3(0,1,0);for(t=0;t<=d.h;t++)for(s=0,h.z=t*(o-i)/d.h+i;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(c.x,c.y,c.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})(t).applyToMesh(a,t.updatable),a},CreateGroundFromHeightMap:function(e,t,s={},i=null){let a,n=s.width||10,l=s.height||10,c=s.subdivisions||1,u=s.minHeight||0,d=s.maxHeight||1,p=s.colorFilter||new h.Color3(.3,.59,.11),f=s.alphaFilter||0,x=s.updatable,g=s.onReady,m=new z(e,i=i||b.EngineStore.LastCreatedScene);m._subdivisionsX=c,m._subdivisionsY=c,m._width=n,m._height=l,m._maxX=m._width/2,m._maxZ=m._height/2,m._minX=-m._maxX,m._minZ=-m._maxZ,m._setReady(!1),s.passHeightBufferInCallback&&(a=new Float32Array((c+1)*(c+1)));let V=(e,t,s)=>{(function(e){let t,s,i=[],a=[],n=[],l=[],c=e.colorFilter||new h.Color3(.3,.59,.11),u=e.alphaFilter||0,d=!1;if(e.minHeight>e.maxHeight){d=!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,h=e.buffer[o]/255,p=e.buffer[o+1]/255,f=e.buffer[o+2]/255,x=e.buffer[o+3]/255;d&&(h=1-h,p=1-p,f=1-f);let g=h*c.r+p*c.g+f*c.b;x>=u?i.y=e.minHeight+(e.maxHeight-e.minHeight)*g:i.y=e.minHeight-v.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,c=a[3*o+1]>=e.minHeight,u=a[3*n+1]>=e.minHeight;h&&c&&u&&(i.push(r),i.push(o),i.push(n)),a[3*l+1]>=e.minHeight&&h&&u&&(i.push(l),i.push(r),i.push(n))}o.VertexData.ComputeNormals(a,i,n);let p=new o.VertexData;return p.indices=i,p.positions=a,p.normals=n,p.uvs=l,p})({width:n,height:l,subdivisions:c,minHeight:u,maxHeight:d,colorFilter:p,buffer:e,bufferWidth:t,bufferHeight:s,alphaFilter:f,heightBuffer:a}).applyToMesh(m,x),g&&g(m,a),m._setReady(!0)};return"string"==typeof t?(i.addPendingData(m),B.Tools.LoadImage(t,e=>{let t=e.width,s=e.height;i.isDisposed||V(i?.getEngine().resizeImageBitmap(e,t,s),t,s),i.removePendingData(m)},(e,t)=>{i.removePendingData(m),s.onError&&s.onError(e,t)},i.offlineProvider)):V(t.data,t.width,t.height),m},CreatePolygon:w,ExtrudePolygon:F,CreateTube:function(e,t,s=null){let a,o,n=t.path,h=t.instance,c=1;void 0!==t.radius?c=t.radius:h&&(c=h._creationDataStorage.radius);let u=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 c,u,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++){u=V(t,g[t]),c=[],d=x[t];for(let s=0;s<o;s++)r.Matrix.RotationAxisToRef(f[t],m*s,O),p=c[s]?c[s]:r.Vector3.Zero(),r.Vector3.TransformCoordinatesToRef(d,O,p),p.scaleInPlace(u).addInPlace(e[t]),c[s]=p;s[_]=c,_++}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(h){let e=h._creationDataStorage,s=t.arc||e.arc;return a=e.path3D.update(n),h=l("",{pathArray:o=m(n,a,e.pathArray,c,e.tessellation,d,e.cap,s),instance:h}),e.path3D=a,e.pathArray=o,e.arc=s,e.radius=c,h}a=new T.Path3D(n);let V=l(e,{pathArray:o=m(n,a,[],c,u,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=u,V._creationDataStorage.cap=p,V._creationDataStorage.arc=t.arc,V._creationDataStorage.radius=c,V},CreatePolyhedron:C,CreateGeodesic:function(e,t,s=null){let r=t.m||1;r!==Math.floor(r)&&(r=Math.floor(r),_.Logger.Warn("m not an integer only floor(m) used"));let i=t.n||0;if(i!==Math.floor(i)&&(i=Math.floor(i),_.Logger.Warn("n not an integer only floor(n) used")),i>r){let e=i;i=r,r=e,_.Logger.Warn("n > m therefore m and n swapped")}let a=new X;return a.build(r,i),C(e,{custom:Y.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,c=t.sizeY||a||1,u=t.sizeZ||a||1,d=t.m||1;d!==Math.floor(d)&&(d=Math.floor(d),_.Logger.Warn("m not an integer only floor(m) used"));let p=t.n||0;if(p!==Math.floor(p)&&(p=Math.floor(p),_.Logger.Warn("n not an integer only floor(n) used")),p>d){let e=p;p=d,d=e,_.Logger.Warn("n > m therefore m and n swapped")}let f=new X;f.build(d,p);let x=Y.BuildGeodesicData(f),g=x.toGoldbergPolyhedronData(),m=new Q(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,c=[],u=[],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]];c.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++)u.push(V,V+e+2,V+e+1);V+=s.length}o.VertexData._ComputeSides(h,c,u,d,p);let O=new o.VertexData;return O.positions=c,O.indices=u,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*=c,m.goldbergData.faceCenters[e].z*=u,m.goldbergData.faceColors.push(new h.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:function(e,t,s){let l=!!t.skeleton,h=!!t.morphTargetManager?.numTargets,c=s.localMode||l,u=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=c?l?t.getVerticesData(a.VertexBuffer.PositionKind):d:null,x=c?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(),v=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 b=-Math.atan2(y.z,y.x)-Math.PI/2,A=Math.sqrt(y.x*y.x+y.z*y.z),I=Math.atan2(y.y,A),D=new o.VertexData;D.indices=[],D.positions=[],D.normals=[],D.uvs=[],D.matricesIndices=l?[]:null,D.matricesWeights=l?[]:null,D.matricesIndicesExtra=O?[]:null,D.matricesWeightsExtra=_?[]:null;let w=0,F=(e,t)=>{let i=new H;if(!u||!d||!p)return i;let a=u[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},P=[0,0,0,0],L=(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=P,l=P;if(m&&V){let t=e.matrixIndicesOverride?0:e.vertexIdxForBones,s=e.matrixIndicesOverride??m,r=e.matrixWeightsOverride??V,h=a.matrixIndicesOverride?0:a.vertexIdxForBones,c=a.matrixIndicesOverride??m,u=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(c,s[t+e],h,4);n[d]=s[t+e],l[d]=(0,E.Lerp)(r[t+e],a>=0?u[a]:0,o),d++}for(let e=0;e<4&&d<4;++e){let r=c[h+e];-1===i(s,r,t,4)&&(n[d]=r,l[d]=(0,E.Lerp)(0,u[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,c=e.localPositionOverride?e.localPositionOverride[1]:f?.[e.vertexIdx+1]??0,u=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,v=a.localNormalOverride?a.localNormalOverride[2]:x?.[a.vertexIdx+2]??0,b=O+(y-O)*o,A=_+(T-_)*o,I=M+(v-M)*o,D=Math.sqrt(b*b+A*A+I*I);return new H(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,c+(p-c)*o,u+(g-u)*o]:null,x?[b/D,A/D,I/D]: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,c=null,u=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=u>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),c=a(e[i],l)),x){n=e[i],l=e[i+2],h=a(e[i+1],n),c=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(c);break}g&&(n=e[i],l=e[i+1],h=a(e[i+2],n),c=a(e[i+2],l)),n&&l&&h&&c&&(o.push(n.clone()),o.push(l.clone()),o.push(h),o.push(c),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},z=t instanceof i.Mesh?t:null,B=z?._thinInstanceDataStorage.matrixData,C=z?.thinInstanceCount||1,Z=r.TmpVectors.Matrix[0];Z.copyFrom(r.Matrix.IdentityReadOnly);for(let e=0;e<C;++e){if(z?.hasThinInstances&&B){let t=16*e;Z.setRowFromFloats(0,B[t+0],B[t+1],B[t+2],B[t+3]),Z.setRowFromFloats(1,B[t+4],B[t+5],B[t+6],B[t+7]),Z.setRowFromFloats(2,B[t+8],B[t+9],B[t+10],B[t+11]),Z.setRowFromFloats(3,B[t+12],B[t+13],B[t+14],B[t+15])}let i=r.Matrix.RotationYawPitchRoll(b,I,v).multiply(r.Matrix.Translation(M.x,M.y,M.z)),a=r.Matrix.Invert(i),o=t.getWorldMatrix(),l=Z.multiply(o).multiply(a),h=[,,,];for(let e=0;e<u.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=L(t,S))&&(t=L(t,R))&&(t=L(t,U))&&(t=L(t,N))&&(t=L(t,W)))&&(t=L(t,G)))for(let e=0;e<t.length;e++){let r=t[e];if(D.indices.push(w),c?(r.localPositionOverride?(D.positions[3*w]=r.localPositionOverride[0],D.positions[3*w+1]=r.localPositionOverride[1],D.positions[3*w+2]=r.localPositionOverride[2]):f&&(D.positions[3*w]=f[r.vertexIdx],D.positions[3*w+1]=f[r.vertexIdx+1],D.positions[3*w+2]=f[r.vertexIdx+2]),r.localNormalOverride?(D.normals[3*w]=r.localNormalOverride[0],D.normals[3*w+1]=r.localNormalOverride[1],D.normals[3*w+2]=r.localNormalOverride[2]):x&&(D.normals[3*w]=x[r.vertexIdx],D.normals[3*w+1]=x[r.vertexIdx+1],D.normals[3*w+2]=x[r.vertexIdx+2])):(r.position.toArray(D.positions,3*w),r.normal.toArray(D.normals,3*w)),D.matricesIndices&&D.matricesWeights&&(r.matrixIndicesOverride?(D.matricesIndices[4*w]=r.matrixIndicesOverride[0],D.matricesIndices[4*w+1]=r.matrixIndicesOverride[1],D.matricesIndices[4*w+2]=r.matrixIndicesOverride[2],D.matricesIndices[4*w+3]=r.matrixIndicesOverride[3]):(m&&(D.matricesIndices[4*w]=m[r.vertexIdxForBones],D.matricesIndices[4*w+1]=m[r.vertexIdxForBones+1],D.matricesIndices[4*w+2]=m[r.vertexIdxForBones+2],D.matricesIndices[4*w+3]=m[r.vertexIdxForBones+3]),O&&D.matricesIndicesExtra&&(D.matricesIndicesExtra[4*w]=O[r.vertexIdxForBones],D.matricesIndicesExtra[4*w+1]=O[r.vertexIdxForBones+1],D.matricesIndicesExtra[4*w+2]=O[r.vertexIdxForBones+2],D.matricesIndicesExtra[4*w+3]=O[r.vertexIdxForBones+3])),r.matrixWeightsOverride?(D.matricesWeights[4*w]=r.matrixWeightsOverride[0],D.matricesWeights[4*w+1]=r.matrixWeightsOverride[1],D.matricesWeights[4*w+2]=r.matrixWeightsOverride[2],D.matricesWeights[4*w+3]=r.matrixWeightsOverride[3]):(V&&(D.matricesWeights[4*w]=V[r.vertexIdxForBones],D.matricesWeights[4*w+1]=V[r.vertexIdxForBones+1],D.matricesWeights[4*w+2]=V[r.vertexIdxForBones+2],D.matricesWeights[4*w+3]=V[r.vertexIdxForBones+3]),_&&D.matricesWeightsExtra&&(D.matricesWeightsExtra[4*w]=_[r.vertexIdxForBones],D.matricesWeightsExtra[4*w+1]=_[r.vertexIdxForBones+1],D.matricesWeightsExtra[4*w+2]=_[r.vertexIdxForBones+2],D.matricesWeightsExtra[4*w+3]=_[r.vertexIdxForBones+3]))),s.captureUVS)r.uv.toArray(D.uvs,2*w);else{D.uvs.push(.5+r.position.x/T.x);let e=.5+r.position.y/T.y;D.uvs.push(n.useOpenGLOrientationForUV?1-e:e)}w++}}}0===D.indices.length&&(D.indices=null),0===D.positions.length&&(D.positions=null),0===D.normals.length&&(D.normals=null),0===D.uvs.length&&(D.uvs=null),D.matricesIndices?.length===0&&(D.matricesIndices=null),D.matricesWeights?.length===0&&(D.matricesWeights=null),D.matricesIndicesExtra?.length===0&&(D.matricesIndicesExtra=null),D.matricesWeightsExtra?.length===0&&(D.matricesWeightsExtra=null);let X=new i.Mesh(e,t.getScene());return D.applyToMesh(X),c?(X.skeleton=t.skeleton,X.parent=t):(X.position=M.clone(),X.rotation=new r.Vector3(I,b,v)),X.computeWorldMatrix(!0),X.refreshBoundingInfo(!0,!0),X},CreateCapsule:function(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(function(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),c=0|Math.max(e.capSubdivisions?e.capSubdivisions:6,1),u=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:c,1),x=Math.max(e.bottomCapSubdivisions?e.bottomCapSubdivisions:c,1),g=Math.acos((d-u)/l),m=[],V=[],O=[],_=[],M=0,y=[],T=.5*(l-(u+d)),v=.5*Math.PI,b=r.Vector3.Zero(),A=r.Vector3.Zero(),I=Math.cos(g),D=Math.sin(g),w=new r.Vector2(u*D,T+u*I).subtract(new r.Vector2(d*D,-T+d*I)).length(),F=u*g+w+d*(v-g),P=0;for(s=0;s<=f;s++){let e=[],r=v-s/f*g;P+=u*g/f;let i=Math.cos(r),o=Math.sin(r),l=i*u;for(t=0;t<=a;t++){let s=t/a,r=s*p+0,h=Math.sin(r),c=Math.cos(r);A.x=l*h,A.y=T+o*u,A.z=l*c,V.push(A.x,A.y,A.z),b.set(i*h,o,i*c),O.push(b.x,b.y,b.z),_.push(s,n.useOpenGLOrientationForUV?P/F:1-P/F),e.push(M),M++}y.push(e)}let L=l-u-d+I*u-I*d,z=D*(d-u)/L;for(s=1;s<=i;s++){let e=[];P+=w/i;let r=D*(s*(d-u)/i+u);for(t=0;t<=a;t++){let o=t/a,l=o*p+0,h=Math.sin(l),c=Math.cos(l);A.x=r*h,A.y=T+I*u-s*L/i,A.z=r*c,V.push(A.x,A.y,A.z),b.set(h,z,c).normalize(),O.push(b.x,b.y,b.z),_.push(o,n.useOpenGLOrientationForUV?P/F:1-P/F),e.push(M),M++}y.push(e)}for(s=1;s<=x;s++){let e=[],r=v-g-s/x*(Math.PI-g);P+=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),c=Math.cos(r);A.x=l*h,A.y=-T+o*d,A.z=l*c,V.push(A.x,A.y,A.z),b.set(i*h,o,i*c),O.push(b.x,b.y,b.z),_.push(s,n.useOpenGLOrientationForUV?P/F:1-P/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})(t).applyToMesh(a,t.updatable),a},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 j(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,c=parseInt(e[i++])*t+s,u=parseInt(e[i++])*t+r;n.bezierCurveTo(l,h,c,u,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=[],c=0;for(let t of l){if(!t.paths.length)continue;let s=t.holes.slice();for(let l of t.paths){let t=[],u=[];for(let e of l.getPoints())u.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=F(e,{shape:u,holes:t.length?t:void 0,depth:a.depth||1,faceUV:a.faceUV||a.perLetterFaceUV?.(c),faceColors:a.faceColors||a.perLetterFaceColors?.(c),sideOrientation:i.Mesh._GetDefaultSideOrientation(a.sideOrientation||i.Mesh.DOUBLESIDE)},o,n);h.push(d),c++}}let u=i.Mesh.MergeMeshes(h,!0,!0);if(u){let t=u.getBoundingInfo().boundingBox;u.position.x+=-(t.minimumWorld.x+t.maximumWorld.x)/2,u.position.y+=-(t.minimumWorld.y+t.maximumWorld.y)/2,u.position.z+=-(t.minimumWorld.z+t.maximumWorld.z)/2+t.extendSize.z,u.name=e;let s=new q.TransformNode("pivot",o);s.rotation.x=-Math.PI/2,u.parent=s,u.bakeCurrentTransformIntoVertices(),u.parent=null,s.dispose()}return u}}],97998)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,84024,e=>{"use strict";var a=e.i(44023),i=e.i(5110),t=e.i(77052);class r extends a.FlowGraphExecutionBlockWithOutSignal{constructor(e){if(super(e),e.variables&&e.variable)throw Error("FlowGraphSetVariableBlock: variable and variables are both defined");if(e.variables)for(const a of e.variables)this.registerDataInput(a,i.RichTypeAny);else this.registerDataInput("value",i.RichTypeAny)}_execute(e,a){if(this.config?.variables)for(let a of this.config.variables)this._saveVariable(e,a);else this._saveVariable(e,this.config?.variable,"value");this.out._activateSignal(e)}_saveVariable(e,a,i){let t=e._getGlobalContextVariable("currentlyRunningAnimationGroups",[]);for(let i of t){let r=e.assetsContext.animationGroups.find(e=>e.uniqueId==i);if(r){for(let l of r.targetedAnimations)if(l.target===e&&l.animation.targetProperty===a){r.stop();let a=t.indexOf(i);a>-1&&t.splice(a,1),e._setGlobalContextVariable("currentlyRunningAnimationGroups",t);break}}}let r=this.getDataInput(i||a)?.getValue(e);e.setVariable(a,r)}getClassName(){return"FlowGraphSetVariableBlock"}serialize(e){super.serialize(e),e.config.variable=this.config?.variable}}let l=!1;function o(){l||(l=!0,(0,t.RegisterClass)("FlowGraphSetVariableBlock",r))}e.s(["FlowGraphSetVariableBlock",0,r,"RegisterFlowGraphSetVariableBlock",0,o],23258),o(),e.s([],12355),e.i(12355),e.i(23258),e.s(["FlowGraphSetVariableBlock",0,r],84024)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,65002,e=>{"use strict";var t=e.i(96265);class i{constructor(e,i,r,a){this.normal=new t.Vector3(e,i,r),this.d=a}asArray(){return[this.normal.x,this.normal.y,this.normal.z,this.d]}clone(){return new i(this.normal.x,this.normal.y,this.normal.z,this.d)}getClassName(){return"Plane"}getHashCode(){let e=this.normal.getHashCode();return 397*e^this.d}normalize(){let e=Math.sqrt(this.normal.x*this.normal.x+this.normal.y*this.normal.y+this.normal.z*this.normal.z),t=0;return 0!==e&&(t=1/e),this.normal.x*=t,this.normal.y*=t,this.normal.z*=t,this.d*=t,this}transform(e){let t=i._TmpMatrix;e.invertToRef(t);let r=t.m,a=this.normal.x,s=this.normal.y,n=this.normal.z,o=this.d;return new i(a*r[0]+s*r[1]+n*r[2]+o*r[3],a*r[4]+s*r[5]+n*r[6]+o*r[7],a*r[8]+s*r[9]+n*r[10]+o*r[11],a*r[12]+s*r[13]+n*r[14]+o*r[15])}dotCoordinate(e){return this.normal.x*e.x+this.normal.y*e.y+this.normal.z*e.z+this.d}copyFromPoints(e,t,i){let r,a=t.x-e.x,s=t.y-e.y,n=t.z-e.z,o=i.x-e.x,l=i.y-e.y,h=i.z-e.z,c=s*h-n*l,d=n*o-a*h,u=a*l-s*o,_=Math.sqrt(c*c+d*d+u*u);return r=0!==_?1/_:0,this.normal.x=c*r,this.normal.y=d*r,this.normal.z=u*r,this.d=-(this.normal.x*e.x+this.normal.y*e.y+this.normal.z*e.z),this}isFrontFacingTo(e,i){return t.Vector3.Dot(this.normal,e)<=i}signedDistanceTo(e){return t.Vector3.Dot(e,this.normal)+this.d}static FromArray(e){return new i(e[0],e[1],e[2],e[3])}static FromPoints(e,t,r){let a=new i(0,0,0,0);return a.copyFromPoints(e,t,r),a}static FromPositionAndNormal(e,t){let r=new i(0,0,0,0);return this.FromPositionAndNormalToRef(e,t,r)}static FromPositionAndNormalToRef(e,t,i){return i.normal.copyFrom(t),i.normal.normalize(),i.d=-e.dot(i.normal),i}static SignedDistanceToPlaneFromPositionAndNormal(e,i,r){let a=-(i.x*e.x+i.y*e.y+i.z*e.z);return t.Vector3.Dot(r,i)+a}}i._TmpMatrix=t.Matrix.Identity(),e.s(["Plane",0,i])},1773,e=>{"use strict";e.s(["useOpenGLOrientationForUV",()=>!1])},58720,e=>{"use strict";var t=e.i(10272),i=e.i(37143),r=e.i(99267),a=e.i(96265),s=e.i(52153),n=e.i(77052),o=e.i(75405),l=e.i(23240),h=e.i(98105),c=e.i(65002),d=e.i(49311);function u(e,t,i=!1){let r=t.width,a=t.height;if(e instanceof Float32Array){let t=e.byteLength/e.BYTES_PER_ELEMENT,i=new Uint8Array(t);for(;--t>=0;){let r=e[t];r<0?r=0:r>1&&(r=1),i[t]=255*r}e=i}let s=document.createElement("canvas");s.width=r,s.height=a;let n=s.getContext("2d");if(!n)return null;let o=n.createImageData(r,a);if(o.data.set(e),n.putImageData(o,0,0),i){let e=document.createElement("canvas");e.width=r,e.height=a;let t=e.getContext("2d");return t?(t.translate(0,a),t.scale(1,-1),t.drawImage(s,0,0),e.toDataURL("image/png")):null}return s.toDataURL("image/png")}async function _(e,t=0,i=0){let r=e.getInternalTexture();if(!r)return null;let a=await e.readPixels(t,i);return a?u(a,e.getSize(),r.invertY):null}var f=e.i(1773),m=e.i(80871);class T extends s.BaseTexture{static _CreateVideoTexture(e,t,i,r=!1,a=!1,s=T.TRILINEAR_SAMPLINGMODE,n={},l,h=5){throw(0,o._WarnImport)("VideoTexture")}get noMipmap(){return this._noMipmap}get mimeType(){return this._mimeType}set isBlocking(e){this._isBlocking=e}get isBlocking(){return this._isBlocking}get invertY(){return this._invertY}constructor(e,t,i,a,s=T.TRILINEAR_SAMPLINGMODE,n=null,o=null,h=null,c=!1,d,u,_,m,p){let g;super(t),this.url=null,this.uOffset=0,this.vOffset=0,this.uScale=1,this.vScale=1,this.uAng=0,this.vAng=0,this.wAng=0,this.uRotationCenter=.5,this.vRotationCenter=.5,this.wRotationCenter=.5,this.homogeneousRotationInUVTransform=!1,this.inspectableCustomProperties=null,this._noMipmap=!1,this._invertY=!1,this._rowGenerationMatrix=null,this._cachedTextureMatrix=null,this._projectionModeMatrix=null,this._t0=null,this._t1=null,this._t2=null,this._cachedUOffset=-1,this._cachedVOffset=-1,this._cachedUScale=0,this._cachedVScale=0,this._cachedUAng=-1,this._cachedVAng=-1,this._cachedWAng=-1,this._cachedReflectionProjectionMatrixId=-1,this._cachedURotationCenter=-1,this._cachedVRotationCenter=-1,this._cachedWRotationCenter=-1,this._cachedHomogeneousRotationInUVTransform=!1,this._cachedIdentity3x2=!0,this._cachedReflectionTextureMatrix=null,this._cachedReflectionUOffset=-1,this._cachedReflectionVOffset=-1,this._cachedReflectionUScale=0,this._cachedReflectionVScale=0,this._cachedReflectionCoordinatesMode=-1,this._buffer=null,this._deleteBuffer=!1,this._format=null,this._delayedOnLoad=null,this._delayedOnError=null,this.onLoadObservable=new r.Observable,this._isBlocking=!0,this.name=e||"",this.url=e;let R=!1,x=null,M=!0;"object"==typeof i&&null!==i?(g=i.noMipmap??!1,a=i.invertY??!f.useOpenGLOrientationForUV,s=i.samplingMode??T.TRILINEAR_SAMPLINGMODE,n=i.onLoad??null,o=i.onError??null,h=i.buffer??null,c=i.deleteBuffer??!1,d=i.format,u=i.mimeType,_=i.loaderOptions,m=i.creationFlags,R=i.useSRGBBuffer??!1,x=i.internalTexture??null,M=i.gammaSpace??M,p=i.forcedExtension??p):g=!!i,this._gammaSpace=M,this._noMipmap=g,this._invertY=void 0===a?!f.useOpenGLOrientationForUV:a,this._initialSamplingMode=s,this._buffer=h,this._deleteBuffer=c,this._mimeType=u,this._loaderOptions=_,this._creationFlags=m,this._useSRGBBuffer=R,this._forcedExtension=p,void 0!==d&&(this._format=d);const A=this.getScene(),S=this._getEngine();if(!S)return;S.onBeforeTextureInitObservable.notifyObservers(this);const E=()=>{this._texture&&(this._texture._invertVScale&&(this.vScale*=-1,this.vOffset+=1),null!==this._texture._cachedWrapU&&(this.wrapU=this._texture._cachedWrapU,this._texture._cachedWrapU=null),null!==this._texture._cachedWrapV&&(this.wrapV=this._texture._cachedWrapV,this._texture._cachedWrapV=null),null!==this._texture._cachedWrapR&&(this.wrapR=this._texture._cachedWrapR,this._texture._cachedWrapR=null)),this.onLoadObservable.hasObservers()&&this.onLoadObservable.notifyObservers(this),n&&n(),!this.isBlocking&&A&&A.resetCachedMaterial()},y=(e,t)=>{this._loadingError=!0,this._errorObject={message:e,exception:t},o&&o(e,t),T.OnTextureLoadErrorObservable.notifyObservers(this)};if(!this.url&&!x){this._delayedOnLoad=E,this._delayedOnError=y;return}if(this._texture=x??this._getFromCache(this.url,g,s,this._invertY,R,this.isCube),this._texture)if(this._texture.isReady)l.TimingTools.SetImmediate(()=>E());else{const e=this._texture.onLoadedObservable.add(E);this._texture.onErrorObservable.add(t=>{y(t.message,t.exception),this._texture?.onLoadedObservable.remove(e)})}else if(A&&A.useDelayedTextureLoading)this.delayLoadState=4,this._delayedOnLoad=E,this._delayedOnError=y;else{try{this._texture=S.createTexture(this.url,g,this._invertY,A,s,E,y,this._buffer,void 0,this._format,this._forcedExtension,u,_,m,R)}catch(e){throw y("error loading",e),e}c&&(this._buffer=null)}}updateURL(e,t=null,i,r){this.url&&(this.releaseInternalTexture(),this.getScene().markAllMaterialsAsDirty(1,e=>e.hasTexture(this))),(!this.name||this.name.startsWith("data:"))&&(this.name=e),this.url=e,this._buffer=t,this._forcedExtension=r,this.delayLoadState=4;let a=this._delayedOnLoad,s=()=>{a?a():this.onLoadObservable.hasObservers()&&this.onLoadObservable.notifyObservers(this),i&&i()};this._delayedOnLoad=s,this.delayLoad()}delayLoad(){if(4!==this.delayLoadState)return;let e=this.getScene();if(!e)return;let t=this.url;!t&&(this.name.indexOf("://")>0||this.name.startsWith("data:"))&&(t=this.name),this.delayLoadState=1,this._texture=this._getFromCache(t,this._noMipmap,this.samplingMode,this._invertY,this._useSRGBBuffer,this.isCube),this._texture?this._delayedOnLoad&&(this._texture.isReady?l.TimingTools.SetImmediate(this._delayedOnLoad):this._texture.onLoadedObservable.add(this._delayedOnLoad)):(this._texture=e.getEngine().createTexture(t,this._noMipmap,this._invertY,e,this.samplingMode,this._delayedOnLoad,this._delayedOnError,this._buffer,null,this._format,this._forcedExtension,this._mimeType,this._loaderOptions,this._creationFlags,this._useSRGBBuffer),this._deleteBuffer&&(this._buffer=null)),this._delayedOnLoad=null,this._delayedOnError=null}_prepareRowForTextureGeneration(e,t,i,r){e*=this._cachedUScale,t*=this._cachedVScale,e-=this.uRotationCenter*this._cachedUScale,t-=this.vRotationCenter*this._cachedVScale,i-=this.wRotationCenter,a.Vector3.TransformCoordinatesFromFloatsToRef(e,t,i,this._rowGenerationMatrix,r),r.x+=this.uRotationCenter*this._cachedUScale+this._cachedUOffset,r.y+=this.vRotationCenter*this._cachedVScale+this._cachedVOffset,r.z+=this.wRotationCenter}getTextureMatrix(e=1){if(this.uOffset===this._cachedUOffset&&this.vOffset===this._cachedVOffset&&this.uScale*e===this._cachedUScale&&this.vScale===this._cachedVScale&&this.uAng===this._cachedUAng&&this.vAng===this._cachedVAng&&this.wAng===this._cachedWAng&&this.uRotationCenter===this._cachedURotationCenter&&this.vRotationCenter===this._cachedVRotationCenter&&this.wRotationCenter===this._cachedWRotationCenter&&this.homogeneousRotationInUVTransform===this._cachedHomogeneousRotationInUVTransform)return this._cachedTextureMatrix;this._cachedUOffset=this.uOffset,this._cachedVOffset=this.vOffset,this._cachedUScale=this.uScale*e,this._cachedVScale=this.vScale,this._cachedUAng=this.uAng,this._cachedVAng=this.vAng,this._cachedWAng=this.wAng,this._cachedURotationCenter=this.uRotationCenter,this._cachedVRotationCenter=this.vRotationCenter,this._cachedWRotationCenter=this.wRotationCenter,this._cachedHomogeneousRotationInUVTransform=this.homogeneousRotationInUVTransform,this._cachedTextureMatrix&&this._rowGenerationMatrix||(this._cachedTextureMatrix=a.Matrix.Zero(),this._rowGenerationMatrix=new a.Matrix,this._t0=a.Vector3.Zero(),this._t1=a.Vector3.Zero(),this._t2=a.Vector3.Zero()),a.Matrix.RotationYawPitchRollToRef(this.vAng,this.uAng,this.wAng,this._rowGenerationMatrix),this.homogeneousRotationInUVTransform?(a.Matrix.TranslationToRef(-this._cachedURotationCenter,-this._cachedVRotationCenter,-this._cachedWRotationCenter,a.TmpVectors.Matrix[0]),a.Matrix.TranslationToRef(this._cachedURotationCenter,this._cachedVRotationCenter,this._cachedWRotationCenter,a.TmpVectors.Matrix[1]),a.Matrix.ScalingToRef(this._cachedUScale,this._cachedVScale,0,a.TmpVectors.Matrix[2]),a.Matrix.TranslationToRef(this._cachedUOffset,this._cachedVOffset,0,a.TmpVectors.Matrix[3]),a.TmpVectors.Matrix[0].multiplyToRef(this._rowGenerationMatrix,this._cachedTextureMatrix),this._cachedTextureMatrix.multiplyToRef(a.TmpVectors.Matrix[1],this._cachedTextureMatrix),this._cachedTextureMatrix.multiplyToRef(a.TmpVectors.Matrix[2],this._cachedTextureMatrix),this._cachedTextureMatrix.multiplyToRef(a.TmpVectors.Matrix[3],this._cachedTextureMatrix),this._cachedTextureMatrix.setRowFromFloats(2,this._cachedTextureMatrix.m[12],this._cachedTextureMatrix.m[13],this._cachedTextureMatrix.m[14],1)):(this._prepareRowForTextureGeneration(0,0,0,this._t0),this._prepareRowForTextureGeneration(1,0,0,this._t1),this._prepareRowForTextureGeneration(0,1,0,this._t2),this._t1.subtractInPlace(this._t0),this._t2.subtractInPlace(this._t0),a.Matrix.FromValuesToRef(this._t1.x,this._t1.y,this._t1.z,0,this._t2.x,this._t2.y,this._t2.z,0,this._t0.x,this._t0.y,this._t0.z,0,0,0,0,1,this._cachedTextureMatrix));let t=this.getScene();if(!t)return this._cachedTextureMatrix;let i=this._cachedIdentity3x2;return this._cachedIdentity3x2=this._cachedTextureMatrix.isIdentityAs3x2(),this.optimizeUVAllocation&&i!==this._cachedIdentity3x2&&t.markAllMaterialsAsDirty(1,e=>e.hasTexture(this)),this._cachedTextureMatrix}getReflectionTextureMatrix(){let e=this.getScene();if(!e)return this._cachedReflectionTextureMatrix;if(this.uOffset===this._cachedReflectionUOffset&&this.vOffset===this._cachedReflectionVOffset&&this.uScale===this._cachedReflectionUScale&&this.vScale===this._cachedReflectionVScale&&this.coordinatesMode===this._cachedReflectionCoordinatesMode){if(this.coordinatesMode!==T.PROJECTION_MODE)return this._cachedReflectionTextureMatrix;else if(this._cachedReflectionProjectionMatrixId===e.getProjectionMatrix().updateFlag)return this._cachedReflectionTextureMatrix}this._cachedReflectionTextureMatrix||(this._cachedReflectionTextureMatrix=a.Matrix.Zero()),this._projectionModeMatrix||(this._projectionModeMatrix=a.Matrix.Zero());let t=this._cachedReflectionCoordinatesMode!==this.coordinatesMode;switch(this._cachedReflectionUOffset=this.uOffset,this._cachedReflectionVOffset=this.vOffset,this._cachedReflectionUScale=this.uScale,this._cachedReflectionVScale=this.vScale,this._cachedReflectionCoordinatesMode=this.coordinatesMode,this.coordinatesMode){case T.PLANAR_MODE:a.Matrix.IdentityToRef(this._cachedReflectionTextureMatrix),this._cachedReflectionTextureMatrix[0]=this.uScale,this._cachedReflectionTextureMatrix[5]=this.vScale,this._cachedReflectionTextureMatrix[12]=this.uOffset,this._cachedReflectionTextureMatrix[13]=this.vOffset;break;case T.PROJECTION_MODE:{a.Matrix.FromValuesToRef(.5,0,0,0,0,-.5,0,0,0,0,0,0,.5,.5,1,1,this._projectionModeMatrix);let t=e.getProjectionMatrix();this._cachedReflectionProjectionMatrixId=t.updateFlag,t.multiplyToRef(this._projectionModeMatrix,this._cachedReflectionTextureMatrix);break}default:a.Matrix.IdentityToRef(this._cachedReflectionTextureMatrix)}return t&&e.markAllMaterialsAsDirty(1,e=>e.hasTexture(this)),this._cachedReflectionTextureMatrix}clone(){let e={noMipmap:this._noMipmap,invertY:this._invertY,samplingMode:this.samplingMode,onLoad:void 0,onError:void 0,buffer:this._texture?this._texture._buffer:void 0,deleteBuffer:this._deleteBuffer,format:this.textureFormat,mimeType:this.mimeType,loaderOptions:this._loaderOptions,creationFlags:this._creationFlags,useSRGBBuffer:this._useSRGBBuffer};return m.SerializationHelper.Clone(()=>new T(this._texture?this._texture.url:null,this.getScene(),e),this)}serialize(){let e=this.name;!T.SerializeBuffers&&this.name.startsWith("data:")&&(this.name=""),this.name.startsWith("data:")&&this.url===this.name&&(this.url="");let t=super.serialize(T._SerializeInternalTextureUniqueId);if(!t)return null;if(T.SerializeBuffers||T.ForceSerializeBuffers)if("string"==typeof this._buffer&&this._buffer.startsWith("data:"))t.base64String=this._buffer,t.name=t.name.replace("data:","");else if(this.url&&this.url.startsWith("data:")&&this._buffer instanceof Uint8Array){let e=this.mimeType||"image/png";t.base64String=`data:${e};base64,${(0,d.EncodeArrayBufferToBase64)(this._buffer)}`}else(T.ForceSerializeBuffers||this.url&&this.url.startsWith("blob:")||this._forceSerialize)&&(t.base64String=!this._engine||this._engine._features.supportSyncTextureRead?function(e,t=0,i=0){let r=e.getInternalTexture();if(!r)return null;let a=e._readPixelsSync(t,i);return a?u(a,e.getSize(),r.invertY):null}(this):_(this));return t.invertY=this._invertY,t.samplingMode=this.samplingMode,t._creationFlags=this._creationFlags,t._useSRGBBuffer=this._useSRGBBuffer,T._SerializeInternalTextureUniqueId&&(t.internalTextureUniqueId=this._texture?.uniqueId),t.internalTextureLabel=this._texture?.label,t.noMipmap=this._noMipmap,this.name=e,t}getClassName(){return"Texture"}dispose(){super.dispose(),this.onLoadObservable.clear(),this._delayedOnLoad=null,this._delayedOnError=null,this._buffer=null}static Parse(e,t,i){let r;if(e.customType){let r=h.InstantiationTools.Instantiate(e.customType).Parse(e,t,i);return e.samplingMode&&r.updateSamplingMode&&r._samplingMode&&r._samplingMode!==e.samplingMode&&r.updateSamplingMode(e.samplingMode),r}if(e.isCube&&!e.isRenderTarget)return T._CubeTextureParser(e,t,i);let a=void 0!==e.internalTextureUniqueId;if(!e.name&&!e.isRenderTarget&&!a)return null;if(a){for(let i of t.getEngine().getLoadedTexturesCache())if(i.uniqueId===e.internalTextureUniqueId){r=i;break}}let s=t=>{if(t&&t._texture&&(t._texture._cachedWrapU=null,t._texture._cachedWrapV=null,t._texture._cachedWrapR=null),e.samplingMode){let i=e.samplingMode;t&&t.samplingMode!==i&&t.updateSamplingMode(i)}if(t&&e.animations)for(let i=0;i<e.animations.length;i++){let r=e.animations[i],a=(0,n.GetClass)("BABYLON.Animation");a&&t.animations.push(a.Parse(r))}t&&t._texture&&(a&&!r&&t._texture._setUniqueId(e.internalTextureUniqueId),t._texture.label=e.internalTextureLabel)};return m.SerializationHelper.Parse(()=>{let a=!0;if(e.noMipmap&&(a=!1),e.mirrorPlane){let i=T._CreateMirror(e.name,e.renderTargetSize,t,a);return i._waitingRenderList=e.renderList,i.mirrorPlane=c.Plane.FromArray(e.mirrorPlane),s(i),i}if(e.isRenderTarget&&!e.base64String){let i=null;if(e.isCube){if(t.reflectionProbes)for(let i=0;i<t.reflectionProbes.length;i++){let r=t.reflectionProbes[i];if(r.name===e.name)return r.cubeTexture}}else(i=T._CreateRenderTargetTexture(e.name,e.renderTargetSize,t,a,e._creationFlags??0))._waitingRenderList=e.renderList;return s(i),i}if(e.isVideo){let r=T._CreateVideoTexture(i+(e.url||e.name),i+(e.src||e.url),t,a,e.invertY,e.samplingMode,e.settings||{});return s(r),r}{let n;if("string"==typeof e.base64String&&e.base64String&&!r){let i={buffer:e.base64String,noMipmap:!a,invertY:e.invertY,samplingMode:e.samplingMode,useSRGBBuffer:e._useSRGBBuffer??!1,creationFlags:e._creationFlags??0,onLoad:()=>{s(n)}},r=e.base64String,o=r.startsWith("data:")?r.substring(5):r;(n=T.CreateFromBase64String("",o,t,i)).name=e.name}else{let o;o=e.name&&(e.name.indexOf("://")>0||e.name.startsWith("data:"))?e.name:i+e.name,e.url&&(e.url.startsWith("data:")||T.UseSerializedUrlIfAny)&&(o=e.url),n=new T(o,t,{noMipmap:!a,invertY:e.invertY,samplingMode:e.samplingMode,useSRGBBuffer:e._useSRGBBuffer??!1,creationFlags:e._creationFlags??0,onLoad:()=>{s(n)},internalTexture:r})}return n}},e,t)}static CreateFromBase64String(e,t,i,r,a,s=T.TRILINEAR_SAMPLINGMODE,n=null,o=null,l=5,h,c){return new T("data:"+t,i,r,a,s,n,o,e,!1,l,void 0,void 0,h,c)}static LoadFromDataString(e,t,i,r=!1,a,s=!0,n=T.TRILINEAR_SAMPLINGMODE,o=null,l=null,h=5,c,d){return"data:"!==e.substring(0,5)&&(e="data:"+e),new T(e,i,a,s,n,o,l,t,r,h,void 0,void 0,c,d)}}T.SerializeBuffers=!0,T.ForceSerializeBuffers=!1,T.OnTextureLoadErrorObservable=new r.Observable,T._SerializeInternalTextureUniqueId=!1,T._CubeTextureParser=(e,t,i)=>{throw(0,o._WarnImport)("CubeTexture")},T._CreateMirror=(e,t,i,r)=>{throw(0,o._WarnImport)("MirrorTexture")},T._CreateRenderTargetTexture=(e,t,i,r,a)=>{throw(0,o._WarnImport)("RenderTargetTexture")},T.NEAREST_SAMPLINGMODE=1,T.NEAREST_NEAREST_MIPLINEAR=8,T.BILINEAR_SAMPLINGMODE=2,T.LINEAR_LINEAR_MIPNEAREST=11,T.TRILINEAR_SAMPLINGMODE=3,T.LINEAR_LINEAR_MIPLINEAR=3,T.NEAREST_NEAREST_MIPNEAREST=4,T.NEAREST_LINEAR_MIPNEAREST=5,T.NEAREST_LINEAR_MIPLINEAR=6,T.NEAREST_LINEAR=7,T.NEAREST_NEAREST=1,T.LINEAR_NEAREST_MIPNEAREST=9,T.LINEAR_NEAREST_MIPLINEAR=10,T.LINEAR_LINEAR=2,T.LINEAR_NEAREST=12,T.EXPLICIT_MODE=0,T.SPHERICAL_MODE=1,T.PLANAR_MODE=2,T.CUBIC_MODE=3,T.PROJECTION_MODE=4,T.SKYBOX_MODE=5,T.INVCUBIC_MODE=6,T.EQUIRECTANGULAR_MODE=7,T.FIXED_EQUIRECTANGULAR_MODE=8,T.FIXED_EQUIRECTANGULAR_MIRRORED_MODE=9,T.CLAMP_ADDRESSMODE=0,T.WRAP_ADDRESSMODE=1,T.MIRROR_ADDRESSMODE=2,T.UseSerializedUrlIfAny=!1,(0,t.__decorate)([(0,i.serialize)()],T.prototype,"url",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"uOffset",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"vOffset",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"uScale",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"vScale",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"uAng",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"vAng",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"wAng",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"uRotationCenter",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"vRotationCenter",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"wRotationCenter",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"homogeneousRotationInUVTransform",void 0),(0,t.__decorate)([(0,i.serialize)()],T.prototype,"isBlocking",null);let p=!1;e.s(["RegisterTexture",0,function(){p||(p=!0,(0,n.RegisterClass)("BABYLON.Texture",T),m.SerializationHelper._TextureParser=T.Parse)},"Texture",0,T],58720)},26660,e=>{"use strict";var t,i,r=e.i(65740),a=e.i(13379),s=e.i(58720),n=e.i(84201);function o(){let e=null;onmessage=t=>{if("init"===t.data.action){if(t.data.url)try{importScripts(t.data.url)}catch(e){postMessage({action:"error",error:e})}e||(e=BASIS({wasmBinary:t.data.wasmBinary})),null!==e&&e.then(e=>{BASIS=e,e.initializeBasis(),postMessage({action:"init"})})}else if("transcode"===t.data.action){var i,r;let e,a=t.data.config,s=t.data.imageData,n=new BASIS.BasisFile(s),o=function(e){let t=e.getHasAlpha(),i=e.getNumImages(),r=[];for(let t=0;t<i;t++){let i={levels:[]},a=e.getNumLevels(t);for(let r=0;r<a;r++){let a={width:e.getImageWidth(t,r),height:e.getImageHeight(t,r)};i.levels.push(a)}r.push(i)}return{hasAlpha:t,images:r}}(n),l=t.data.ignoreSupportedFormats?null:(i=t.data.config,r=o,e=null,i.supportedCompressionFormats&&(e=i.supportedCompressionFormats.astc?10:i.supportedCompressionFormats.bc7?6:i.supportedCompressionFormats.s3tc?r.hasAlpha?3:2:i.supportedCompressionFormats.pvrtc?r.hasAlpha?9:8:i.supportedCompressionFormats.etc2?1:14*!i.supportedCompressionFormats.etc1),e),h=!1;null===l&&(h=!0,l=o.hasAlpha?3:2);let c=!0;n.startTranscoding()||(c=!1);let d=[];for(let e=0;e<o.images.length&&c;e++){let t=o.images[e];if(void 0===a.loadSingleImage||a.loadSingleImage===e){let i=t.levels.length;!1===a.loadMipmapLevels&&(i=1);for(let r=0;r<i;r++){let i=t.levels[r],a=function(e,t,i,r,a){let s=new Uint8Array(e.getImageTranscodedSizeInBytes(t,i,r));return e.transcodeImage(s,t,i,r,1,0)?(a&&(s=function(e,t,i){let r=new Uint16Array(4),a=new Uint16Array(t*i),s=t/4,n=i/4;for(let i=0;i<n;i++)for(let n=0;n<s;n++){let o=0+8*(i*s+n);r[0]=e[o]|e[o+1]<<8,r[1]=e[o+2]|e[o+3]<<8,r[2]=(2*(31&r[0])+ +(31&r[1]))/3|(2*(2016&r[0])+ +(2016&r[1]))/3&2016|(2*(63488&r[0])+ +(63488&r[1]))/3&63488,r[3]=(2*(31&r[1])+ +(31&r[0]))/3|(2*(2016&r[1])+ +(2016&r[0]))/3&2016|(2*(63488&r[1])+ +(63488&r[0]))/3&63488;for(let s=0;s<4;s++){let l=e[o+4+s],h=(4*i+s)*t+4*n;a[h++]=r[3&l],a[h++]=r[l>>2&3],a[h++]=r[l>>4&3],a[h]=r[l>>6&3]}}return a}(s,e.getImageWidth(t,i)+3&-4,e.getImageHeight(t,i)+3&-4)),s):null}(n,e,r,l,h);if(!a){c=!1;break}i.transcodedPixels=a,d.push(i.transcodedPixels.buffer)}}}n.close(),n.delete(),h&&(l=-1),c?postMessage({action:"transcode",success:c,id:t.data.id,fileInfo:o,format:l},d):postMessage({action:"transcode",success:c,id:t.data.id})}}}async function l(e,t,i){return await new Promise((a,s)=>{let n=t=>{"init"===t.data.action?(e.removeEventListener("message",n),a(e)):"error"===t.data.action&&s(t.data.error||"error initializing worker")};e.addEventListener("message",n),e.postMessage({action:"init",url:i?r.Tools.GetBabylonScriptURL(i):void 0,wasmBinary:t},[t])})}(t=i||(i={}))[t.cTFETC1=0]="cTFETC1",t[t.cTFETC2=1]="cTFETC2",t[t.cTFBC1=2]="cTFBC1",t[t.cTFBC3=3]="cTFBC3",t[t.cTFBC4=4]="cTFBC4",t[t.cTFBC5=5]="cTFBC5",t[t.cTFBC7=6]="cTFBC7",t[t.cTFPVRTC1_4_RGB=8]="cTFPVRTC1_4_RGB",t[t.cTFPVRTC1_4_RGBA=9]="cTFPVRTC1_4_RGBA",t[t.cTFASTC_4x4=10]="cTFASTC_4x4",t[t.cTFATC_RGB=11]="cTFATC_RGB",t[t.cTFATC_RGBA_INTERPOLATED_ALPHA=12]="cTFATC_RGBA_INTERPOLATED_ALPHA",t[t.cTFRGBA32=13]="cTFRGBA32",t[t.cTFRGB565=14]="cTFRGB565",t[t.cTFBGR565=15]="cTFBGR565",t[t.cTFRGBA4444=16]="cTFRGBA4444",t[t.cTFFXT1_RGB=17]="cTFFXT1_RGB",t[t.cTFPVRTC2_4_RGB=18]="cTFPVRTC2_4_RGB",t[t.cTFPVRTC2_4_RGBA=19]="cTFPVRTC2_4_RGBA",t[t.cTFETC2_EAC_R11=20]="cTFETC2_EAC_R11",t[t.cTFETC2_EAC_RG11=21]="cTFETC2_EAC_RG11";let h={JSModuleURL:`${r.Tools._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.js`,WasmModuleURL:`${r.Tools._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.wasm`},c=null,d=null,u=0,_=async()=>(c||(c=new Promise((e,t)=>{d?e(d):r.Tools.LoadFileAsync(r.Tools.GetBabylonScriptURL(h.WasmModuleURL)).then(i=>{if("function"!=typeof URL)return t("Basis transcoder requires an environment with a URL constructor");l(d=new Worker(URL.createObjectURL(new Blob([`(${o})()`],{type:"application/javascript"}))),i,h.JSModuleURL).then(e,t)}).catch(t)})),await c),f=async(e,t)=>{let i=e instanceof ArrayBuffer?new Uint8Array(e):e;return await new Promise((e,r)=>{_().then(()=>{let a=u++,s=t=>{"transcode"===t.data.action&&t.data.id===a&&(d.removeEventListener("message",s),t.data.success?e(t.data):r("Transcode is not supported on this device"))};d.addEventListener("message",s);let n=new Uint8Array(i.byteLength);n.set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)),d.postMessage({action:"transcode",id:a,imageData:n,config:t,ignoreSupportedFormats:!1},[n.buffer])},e=>{r(e)})})},m=(e,t)=>{let i=t._gl?.TEXTURE_2D;e.isCube&&(i=t._gl?.TEXTURE_CUBE_MAP),t._bindTextureDirectly(i,e,!0)},T=(e,t)=>{let r=e.getEngine();for(let o=0;o<t.fileInfo.images.length;o++){let l=t.fileInfo.images[o].levels[0];if(e._invertVScale=e.invertY,-1===t.format||t.format===i.cTFRGB565)if(e.type=10,e.format=4,r._features.basisNeedsPOT&&(Math.log2(l.width)%1!=0||Math.log2(l.height)%1!=0)){let t=new n.InternalTexture(r,2);e._invertVScale=e.invertY,t.type=10,t.format=4,t.width=l.width+3&-4,t.height=l.height+3&-4,m(t,r),r._uploadDataToTextureDirectly(t,new Uint16Array(l.transcodedPixels.buffer),o,0,4,!0),r._rescaleTexture(t,e,r.scenes[0],r._getInternalFormat(4),()=>{r._releaseTexture(t),m(e,r)})}else e._invertVScale=!e.invertY,e.width=l.width+3&-4,e.height=l.height+3&-4,e.samplingMode=2,m(e,r),r._uploadDataToTextureDirectly(e,new Uint16Array(l.transcodedPixels.buffer),o,0,4,!0);else{e.width=l.width,e.height=l.height,e.generateMipMaps=t.fileInfo.images[o].levels.length>1;let i=p.GetInternalFormatFromBasisFormat(t.format,r);e.format=i,m(e,r);let n=t.fileInfo.images[o].levels;for(let t=0;t<n.length;t++){let a=n[t];r._uploadCompressedDataToTextureDirectly(e,i,a.width,a.height,a.transcodedPixels,o,t)}r._features.basisNeedsPOT&&(Math.log2(e.width)%1!=0||Math.log2(e.height)%1!=0)&&(a.Logger.Warn("Loaded .basis texture width and height are not a power of two. Texture wrapping will be set to Texture.CLAMP_ADDRESSMODE as other modes are not supported with non power of two dimensions in webGL 1."),e._cachedWrapU=s.Texture.CLAMP_ADDRESSMODE,e._cachedWrapV=s.Texture.CLAMP_ADDRESSMODE)}}},p={JSModuleURL:h.JSModuleURL,WasmModuleURL:h.WasmModuleURL,GetInternalFormatFromBasisFormat:(e,t)=>{let r;switch(e){case i.cTFETC1:r=36196;break;case i.cTFBC1:r=33776;break;case i.cTFBC4:r=33779;break;case i.cTFASTC_4x4:r=37808;break;case i.cTFETC2:r=37496;break;case i.cTFBC7:r=36492}if(void 0===r)throw"The chosen Basis transcoder format is not currently supported";return r},TranscodeAsync:f,LoadTextureFromTranscodeResult:T};e.s(["_BasisTextureLoader",0,class{constructor(){this.supportCascades=!1}loadCubeData(e,t,i,a,s){if(Array.isArray(e))return;let n=t.getEngine().getCaps();f(e,{supportedCompressionFormats:{etc1:!!n.etc1,s3tc:!!n.s3tc,pvrtc:!!n.pvrtc,etc2:!!n.etc2,astc:!!n.astc,bc7:!!n.bptc}}).then(e=>{let i=e.fileInfo.images[0].levels.length>1&&t.generateMipMaps;T(t,e),t.getEngine()._setCubeMapTextureParams(t,i),t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),a&&a()}).catch(e=>{r.Tools.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"),t.isReady=!0,s&&s(e)})}loadData(e,t,i){let a=t.getEngine().getCaps();f(e,{supportedCompressionFormats:{etc1:!!a.etc1,s3tc:!!a.s3tc,pvrtc:!!a.pvrtc,etc2:!!a.etc2,astc:!!a.astc,bc7:!!a.bptc}}).then(e=>{let r=e.fileInfo.images[0].levels[0],a=e.fileInfo.images[0].levels.length>1&&t.generateMipMaps;i(r.width,r.height,a,-1!==e.format,()=>{T(t,e)})}).catch(e=>{r.Tools.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"),r.Tools.Warn(`Failed to transcode Basis file: ${e}`),i(0,0,!1,!1,()=>{},!0)})}}],26660)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,25877,t=>{"use strict";var e=t.i(25742),i=t.i(5110);let a="cachedOperationValue",s="cachedExecutionId";class r extends e.FlowGraphBlock{constructor(t,e){super(e),this.value=this.registerDataOutput("value",t),this.isValid=this.registerDataOutput("isValid",i.RichTypeBoolean)}_updateOutputs(t){let e=t._getExecutionVariable(this,s,-1),i=t._getExecutionVariable(this,a,null);if(null!=i&&e===t.executionId)this.isValid.setValue(!0,t),this.value.setValue(i,t);else try{let e=this._doOperation(t);if(null==e)return void this.isValid.setValue(!1,t);t._setExecutionVariable(this,a,e),t._setExecutionVariable(this,s,t.executionId),this.value.setValue(e,t),this.isValid.setValue(!0,t)}catch(e){this.isValid.setValue(!1,t)}}}t.s(["FlowGraphCachedOperationBlock",0,r])},69823,t=>{"use strict";var e=t.i(25877);class i extends e.FlowGraphCachedOperationBlock{constructor(t,e,i,a,s){super(e,s),this._operation=i,this._className=a,this.a=this.registerDataInput("a",t)}_doOperation(t){return this._operation(this.a.getValue(t))}getClassName(){return this._className}}t.s(["FlowGraphUnaryOperationBlock",0,i])},16357,t=>{"use strict";var e=t.i(25877);class i extends e.FlowGraphCachedOperationBlock{constructor(t,e,i,a,s,r){super(i,r),this._operation=a,this._className=s,this.a=this.registerDataInput("a",t),this.b=this.registerDataInput("b",e)}_doOperation(t){let e=this.a.getValue(t),i=this.b.getValue(t);return this._operation(e,i)}getClassName(){return this._className}}t.s(["FlowGraphBinaryOperationBlock",0,i])},9954,t=>{"use strict";var e=t.i(25742),i=t.i(5110),a=t.i(96265),s=t.i(69823),r=t.i(16357),o=t.i(77052);class l extends s.FlowGraphUnaryOperationBlock{constructor(t){super((0,i.getRichTypeByFlowGraphType)(t?.matrixType||"Matrix"),(0,i.getRichTypeByFlowGraphType)(t?.matrixType||"Matrix"),t=>t.transpose?t.transpose():a.Matrix.Transpose(t),"FlowGraphTransposeBlock",t)}}class n extends s.FlowGraphUnaryOperationBlock{constructor(t){super((0,i.getRichTypeByFlowGraphType)(t?.matrixType||"Matrix"),i.RichTypeNumber,t=>t.determinant(),"FlowGraphDeterminantBlock",t)}}class c extends s.FlowGraphUnaryOperationBlock{constructor(t){super((0,i.getRichTypeByFlowGraphType)(t?.matrixType||"Matrix"),(0,i.getRichTypeByFlowGraphType)(t?.matrixType||"Matrix"),t=>t.inverse?t.inverse():a.Matrix.Invert(t),"FlowGraphInvertMatrixBlock",t)}}class h extends r.FlowGraphBinaryOperationBlock{constructor(t){super((0,i.getRichTypeByFlowGraphType)(t?.matrixType||"Matrix"),(0,i.getRichTypeByFlowGraphType)(t?.matrixType||"Matrix"),(0,i.getRichTypeByFlowGraphType)(t?.matrixType||"Matrix"),(t,e)=>e.multiply(t),"FlowGraphMatrixMultiplicationBlock",t)}}class p extends e.FlowGraphBlock{constructor(t){super(t),this.input=this.registerDataInput("input",i.RichTypeMatrix),this.position=this.registerDataOutput("position",i.RichTypeVector3),this.rotationQuaternion=this.registerDataOutput("rotationQuaternion",i.RichTypeQuaternion),this.scaling=this.registerDataOutput("scaling",i.RichTypeVector3),this.isValid=this.registerDataOutput("isValid",i.RichTypeBoolean,!1)}_updateOutputs(t){let e=t._getExecutionVariable(this,"executionId",-1),i=t._getExecutionVariable(this,"cachedPosition",null),s=t._getExecutionVariable(this,"cachedRotation",null),r=t._getExecutionVariable(this,"cachedScaling",null);if(e===t.executionId&&i&&s&&r)this.position.setValue(i,t),this.rotationQuaternion.setValue(s,t),this.scaling.setValue(r,t);else{let e=this.input.getValue(t),o=i||new a.Vector3,l=s||new a.Quaternion,n=r||new a.Vector3,c=Math.round(1e4*e.m[3])/1e4,h=Math.round(1e4*e.m[7])/1e4,p=Math.round(1e4*e.m[11])/1e4,u=Math.round(1e4*e.m[15])/1e4;if(0!==c||0!==h||0!==p||1!==u){this.isValid.setValue(!1,t),this.position.setValue(a.Vector3.Zero(),t),this.rotationQuaternion.setValue(a.Quaternion.Identity(),t),this.scaling.setValue(a.Vector3.One(),t);return}let x=e.decompose(n,l,o);this.isValid.setValue(x,t),this.position.setValue(o,t),this.rotationQuaternion.setValue(l,t),this.scaling.setValue(n,t),t._setExecutionVariable(this,"cachedPosition",o),t._setExecutionVariable(this,"cachedRotation",l),t._setExecutionVariable(this,"cachedScaling",n),t._setExecutionVariable(this,"executionId",t.executionId)}}getClassName(){return"FlowGraphMatrixDecompose"}}class u extends e.FlowGraphBlock{constructor(t){super(t),this.position=this.registerDataInput("position",i.RichTypeVector3),this.rotationQuaternion=this.registerDataInput("rotationQuaternion",i.RichTypeQuaternion),this.scaling=this.registerDataInput("scaling",i.RichTypeVector3),this.value=this.registerDataOutput("value",i.RichTypeMatrix)}_updateOutputs(t){let e=t._getExecutionVariable(this,"executionId",-1),i=t._getExecutionVariable(this,"cachedMatrix",null);if(e===t.executionId&&i)this.value.setValue(i,t);else{let e=a.Matrix.Compose(this.scaling.getValue(t),this.rotationQuaternion.getValue(t),this.position.getValue(t));this.value.setValue(e,t),t._setExecutionVariable(this,"cachedMatrix",e),t._setExecutionVariable(this,"executionId",t.executionId)}}getClassName(){return"FlowGraphMatrixCompose"}}let x=!1;function V(){x||(x=!0,(0,o.RegisterClass)("FlowGraphTransposeBlock",l),(0,o.RegisterClass)("FlowGraphDeterminantBlock",n),(0,o.RegisterClass)("FlowGraphInvertMatrixBlock",c),(0,o.RegisterClass)("FlowGraphMatrixMultiplicationBlock",h),(0,o.RegisterClass)("FlowGraphMatrixDecompose",p),(0,o.RegisterClass)("FlowGraphMatrixCompose",u))}t.s(["FlowGraphDeterminantBlock",0,n,"FlowGraphInvertMatrixBlock",0,c,"FlowGraphMatrixComposeBlock",0,u,"FlowGraphMatrixDecomposeBlock",0,p,"FlowGraphMatrixMultiplicationBlock",0,h,"FlowGraphTransposeBlock",0,l,"RegisterFlowGraphMatrixMathBlocks",0,V],46656),V(),t.s([],29647),t.i(29647),t.i(46656),t.s(["FlowGraphDeterminantBlock",0,n,"FlowGraphInvertMatrixBlock",0,c,"FlowGraphMatrixComposeBlock",0,u,"FlowGraphMatrixDecomposeBlock",0,p,"FlowGraphMatrixMultiplicationBlock",0,h,"FlowGraphTransposeBlock",0,l],9954)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,25877,t=>{"use strict";var e=t.i(25742),o=t.i(5110);let i="cachedOperationValue",r="cachedExecutionId";class n extends e.FlowGraphBlock{constructor(t,e){super(e),this.value=this.registerDataOutput("value",t),this.isValid=this.registerDataOutput("isValid",o.RichTypeBoolean)}_updateOutputs(t){let e=t._getExecutionVariable(this,r,-1),o=t._getExecutionVariable(this,i,null);if(null!=o&&e===t.executionId)this.isValid.setValue(!0,t),this.value.setValue(o,t);else try{let e=this._doOperation(t);if(null==e)return void this.isValid.setValue(!1,t);t._setExecutionVariable(this,i,e),t._setExecutionVariable(this,r,t.executionId),this.value.setValue(e,t),this.isValid.setValue(!0,t)}catch(e){this.isValid.setValue(!1,t)}}}t.s(["FlowGraphCachedOperationBlock",0,n])},21131,t=>{"use strict";var e=t.i(65487),o=t.i(5110);let i=new RegExp(/\/\{(\w+)\}(?=\/|$)/g);class r{constructor(t,r){this.path=t,this.ownerBlock=r,this.templatedInputs=[];let n=i.exec(t);const a=new Set;for(;n;){const[,s]=n;if(a.has(s))throw Error("Duplicate template variable detected.");a.add(s),this.templatedInputs.push(r.registerDataInput(s,o.RichTypeFlowGraphInteger,new e.FlowGraphInteger(0))),n=i.exec(t)}}getAccessor(t,e){let o=this.path;for(let t of this.templatedInputs){let i=t.getValue(e).value;if("number"!=typeof i||i<0)throw Error("Invalid value for templated input.");o=o.replace(`{${t.name}}`,i.toString())}return t.convert(o)}}var n=t.i(96265),a=t.i(70653),s=t.i(25877),l=t.i(77052);class c extends s.FlowGraphCachedOperationBlock{constructor(t){super(o.RichTypeAny,t),this.config=t,this.object=this.registerDataOutput("object",o.RichTypeAny),this.propertyName=this.registerDataOutput("propertyName",o.RichTypeAny),this.setterFunction=this.registerDataOutput("setFunction",o.RichTypeAny,this._setPropertyValue.bind(this)),this.getterFunction=this.registerDataOutput("getFunction",o.RichTypeAny,this._getPropertyValue.bind(this)),this.generateAnimationsFunction=this.registerDataOutput("generateAnimationsFunction",o.RichTypeAny,this._getInterpolationAnimationPropertyInfo.bind(this)),this.templateComponent=new r(t.jsonPointer,this)}_doOperation(t){let e=this.templateComponent.getAccessor(this.config.pathConverter,t),o=e.info.get(e.object),i=e.info.getTarget?.(e.object),r=e.info.getPropertyName?.[0](e.object);if(i)this.object.setValue(i,t),r&&this.propertyName.setValue(r,t);else throw Error("Object is undefined");return o}_setPropertyValue(t,e,o,i){let r=this.templateComponent.getAccessor(this.config.pathConverter,i),n=r.info.type;n.startsWith("Color")&&(o=u(o,n)),r.info.set?.(o,r.object)}_getPropertyValue(t,e,o){let i=this.templateComponent.getAccessor(this.config.pathConverter,o),r=i.info.type,s=i.info.get(i.object);return r.startsWith("Color")?function(t){if(t instanceof a.Color3)return new n.Vector3(t.r,t.g,t.b);if(t instanceof a.Color4)return new n.Vector4(t.r,t.g,t.b,t.a);throw Error("Invalid color type")}(s):s}_getInterpolationAnimationPropertyInfo(t,e,o){let i=this.templateComponent.getAccessor(this.config.pathConverter,o);return(t,e,o,r)=>{let n=[],a=i.info.type;return a.startsWith("Color")&&(t=t.map(t=>({frame:t.frame,value:u(t.value,a)}))),i.info.interpolation?.forEach((e,a)=>{let s=i.info.getPropertyName?.[a](i.object)||"Animation-interpolation-"+a,l=t;for(let a of(o!==e.type&&(l=t.map(t=>({frame:t.frame,value:e.getValue(void 0,t.value.asArray?t.value.asArray():[t.value],0,1)}))),e.buildAnimations(i.object,s,60,l)))r&&a.babylonAnimation.setEasingFunction(r),n.push(a.babylonAnimation)}),n}}getClassName(){return"FlowGraphJsonPointerParserBlock"}}function u(t,e){return t.getClassName().startsWith("Color")?t:"Color3"===e?new a.Color3(t.x,t.y,t.z):"Color4"===e?new a.Color4(t.x,t.y,t.z,t.w):t}let h=!1;function p(){h||(h=!0,(0,l.RegisterClass)("FlowGraphJsonPointerParserBlock",c))}t.s(["FlowGraphJsonPointerParserBlock",0,c,"RegisterFlowGraphJsonPointerParserBlock",0,p],11297),p(),t.s([],99523),t.i(99523),t.i(11297),t.s(["FlowGraphJsonPointerParserBlock",0,c],21131)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,21555,e=>{"use strict";var t=e.i(43350),r=e.i(5110),s=e.i(63719),i=e.i(77052);class n extends t.FlowGraphEventBlock{constructor(e){super(e),this.type="PointerOver",this.pointerId=this.registerDataOutput("pointerId",r.RichTypeNumber),this.targetMesh=this.registerDataInput("targetMesh",r.RichTypeAny,e?.targetMesh),this.meshUnderPointer=this.registerDataOutput("meshUnderPointer",r.RichTypeAny)}_executeEvent(e,t){let r=this.targetMesh.getValue(e);this.meshUnderPointer.setValue(t.mesh,e);let i=t.out&&(0,s._IsDescendantOf)(t.out,r);return this.pointerId.setValue(t.pointerId,e),!(!i&&(t.mesh===r||(0,s._IsDescendantOf)(t.mesh,r)))||(this._execute(e),!this.config?.stopPropagation)}_preparePendingTasks(e){}_cancelPendingTasks(e){}getClassName(){return"FlowGraphPointerOverEventBlock"}}let o=!1;function a(){o||(o=!0,(0,i.RegisterClass)("FlowGraphPointerOverEventBlock",n))}e.s(["FlowGraphPointerOverEventBlock",0,n,"RegisterFlowGraphPointerOverEventBlock",0,a],67468),a(),e.s([],37843),e.i(37843),e.i(67468),e.s(["FlowGraphPointerOverEventBlock",0,n],21555)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24574,e=>{"use strict";class t{get underlyingResource(){return null}constructor(){this.references=0,this.capacity=0,this.is32Bits=!1,this.uniqueId=t._Counter++}}t._Counter=0,e.s(["DataBuffer",0,t])},18064,30419,29485,e=>{"use strict";e.s(["IsWrapper",0,function(e){return void 0===e.getPipelineContext}],18064),e.s(["WebGLShaderProcessor",0,class{constructor(){this.shaderLanguage=0}postProcessor(e,t,r,i,s){return s.drawBuffersExtensionDisabled&&(e=e.replace(/#extension.+GL_EXT_draw_buffers.+(enable|require)/g,"")),e}}],30419);let t=/(flat\s)?\s*varying\s*.*/;e.s(["WebGL2ShaderProcessor",0,class{constructor(){this.shaderLanguage=0}attributeProcessor(e){return e.replace("attribute","in")}varyingCheck(e,r){return t.test(e)}varyingProcessor(e,t){return e.replace("varying",t?"in":"out")}postProcessor(e,t,r){let i=-1!==e.search(/#extension.+GL_EXT_draw_buffers.+require/);if(e=(e=e.replace(/#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g,"")).replace(/texture2D\s*\(/g,"texture("),r){let r=-1!==e.search(/layout *\(location *= *0\) *out/g),s=-1!==t.indexOf("#define DUAL_SOURCE_BLENDING");s&&(e="#extension GL_EXT_blend_func_extended : require\n"+e),e=(e=(e=(e=(e=(e=(e=e.replace(/texture2DLodEXT\s*\(/g,"textureLod(")).replace(/textureCubeLodEXT\s*\(/g,"textureLod(")).replace(/textureCube\s*\(/g,"texture(")).replace(/gl_FragDepthEXT/g,"gl_FragDepth")).replace(/gl_FragColor/g,"glFragColor")).replace(/gl_FragData/g,"glFragData")).replace(/void\s+?main\s*\(/g,(i||r?"":s?"layout(location = 0, index = 0) out vec4 glFragColor;\nlayout(location = 0, index = 1) out vec4 glFragColor2;\n":"layout(location = 0) out vec4 glFragColor;\n")+"void main(")}else if(t.indexOf("#define VERTEXOUTPUT_INVARIANT")>=0&&(e="invariant gl_Position;\n"+e),-1!==t.indexOf("#define MULTIVIEW"))return"#extension GL_OVR_multiview2 : require\nlayout (num_views = 2) in;\n"+e;return e}}],29485)},71379,20483,40462,79814,e=>{"use strict";var t,r,i,s,a,n,_,l,h=e.i(99904),u=e.i(8881),o=e.i(76535),c=e.i(18064),g=e.i(13379),f=e.i(64545),d=e.i(30419),E=e.i(29485),T=e.i(24574);class R extends T.DataBuffer{constructor(e){super(),this._buffer=e}get underlyingResource(){return this._buffer}}e.s(["WebGLDataBuffer",0,R],20483);var p=e.i(68179);class A{get underlyingResource(){return this._webGLTexture}constructor(e=null,t){if(this._MSAARenderBuffers=null,this._context=t,!e&&!(e=t.createTexture()))throw Error("Unable to create webGL texture");this.set(e)}setUsage(){}set(e){this._webGLTexture=e}reset(){this._webGLTexture=null,this._MSAARenderBuffers=null}addMSAARenderBuffer(e){this._MSAARenderBuffers||(this._MSAARenderBuffers=[]),this._MSAARenderBuffers.push(e)}releaseMSAARenderBuffers(){if(this._MSAARenderBuffers){for(let e of this._MSAARenderBuffers)this._context.deleteRenderbuffer(e);this._MSAARenderBuffers=null}}getMSAARenderBuffer(e=0){return this._MSAARenderBuffers?.[e]??null}release(){this.releaseMSAARenderBuffers(),this._webGLTexture&&this._context.deleteTexture(this._webGLTexture),this.reset()}}e.s(["WebGLHardwareTexture",0,A],40462);var x=e.i(84201),S=e.i(75017),b=e.i(28799);function m(e){return 13===e||14===e||15===e||16===e||17===e||18===e||19===e}function B(e){return 13===e||17===e||18===e||19===e}e.s(["HasStencilAspect",0,B,"IsDepthTexture",0,m],79814);var C=e.i(41520),P=e.i(75405);class L{}class M extends o.AbstractEngine{get name(){return this._name}set name(e){this._name=e}get version(){return this._webGLVersion}static get ShadersRepository(){return h.Effect.ShadersRepository}static set ShadersRepository(e){h.Effect.ShadersRepository=e}get supportsUniformBuffers(){return this.webGLVersion>1&&!this.disableUniformBuffers}get needPOTTextures(){return this._webGLVersion<2||this.forcePOTTextures}get _supportsHardwareTextureRescaling(){return!1}set framebufferDimensionsObject(e){this._framebufferDimensionsObject=e}snapshotRenderingReset(){this.snapshotRendering=!1}constructor(e,t,r,i){let s;if(r=r||{},super(t??r.antialias,r,i),this._name="WebGL",this.forcePOTTextures=!1,this.validateShaderPrograms=!1,this.disableUniformBuffers=!1,this._webGLVersion=1,this._vertexAttribArraysEnabled=[],this._uintIndicesCurrentlySet=!1,this._currentBoundBuffer=[],this._currentFramebuffer=null,this._dummyFramebuffer=null,this._currentBufferPointers=[],this._currentInstanceLocations=[],this._currentInstanceBuffers=[],this._vaoRecordInProgress=!1,this._mustWipeVertexAttributes=!1,this._nextFreeTextureSlots=[],this._maxSimultaneousTextures=0,this._maxMSAASamplesOverride=null,this._unpackFlipYCached=null,this.enableUnpackFlipYCached=!0,this._boundUniforms={},!e)return;if(e.getContext){if(s=e,void 0===r.preserveDrawingBuffer&&(r.preserveDrawingBuffer=!1),void 0===r.xrCompatible&&(r.xrCompatible=!1),navigator&&navigator.userAgent){this._setupMobileChecks();const e=navigator.userAgent;for(const t of M.ExceptionList){const i=t.key,s=t.targets;if(new RegExp(i).test(e)){if(t.capture&&t.captureConstraint){const r=t.capture,i=t.captureConstraint,s=new RegExp(r).exec(e);if(s&&s.length>0&&parseInt(s[s.length-1])>=i)continue}for(const e of s)switch(e){case"uniformBuffer":this.disableUniformBuffers=!0;break;case"vao":this.disableVertexArrayObjects=!0;break;case"antialias":r.antialias=!1;break;case"maxMSAASamples":this._maxMSAASamplesOverride=1}}}}if(this._doNotHandleContextLost?this._onContextLost=()=>{(0,u.deleteStateObject)(this._gl)}:(this._onContextLost=e=>{e.preventDefault(),this._contextWasLost=!0,(0,u.deleteStateObject)(this._gl),g.Logger.Warn("WebGL context lost."),this.onContextLostObservable.notifyObservers(this)},this._onContextRestored=()=>{this._restoreEngineAfterContextLost(()=>this._initGLContext())},s.addEventListener("webglcontextrestored",this._onContextRestored,!1),r.powerPreference=r.powerPreference||"high-performance"),s.addEventListener("webglcontextlost",this._onContextLost,!1),this._badDesktopOS&&(r.xrCompatible=!1),!r.disableWebGL2Support)try{this._gl=s.getContext("webgl2",r)||s.getContext("experimental-webgl2",r),this._gl&&(this._webGLVersion=2,this._shaderPlatformName="WEBGL2",this._gl.deleteQuery||(this._webGLVersion=1,this._shaderPlatformName="WEBGL1"))}catch(e){}if(!this._gl){if(!s)throw Error("The provided canvas is null or undefined.");try{this._gl=s.getContext("webgl",r)||s.getContext("experimental-webgl",r)}catch(e){throw Error("WebGL not supported",{cause:e})}}if(!this._gl)throw Error("WebGL not supported")}else{this._gl=e,s=this._gl.canvas,this._gl.renderbufferStorageMultisample?(this._webGLVersion=2,this._shaderPlatformName="WEBGL2"):this._shaderPlatformName="WEBGL1";const t=this._gl.getContextAttributes();t&&(r.stencil=t.stencil)}this._sharedInit(s),this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,this._gl.NONE),void 0!==r.useHighPrecisionFloats&&(this._highPrecisionShadersAllowed=r.useHighPrecisionFloats),this.resize(),this._initGLContext(),this._initFeatures();for(let e=0;e<this._caps.maxVertexAttribs;e++)this._currentBufferPointers[e]=new L;this._shaderProcessor=this.webGLVersion>1?new E.WebGL2ShaderProcessor:new d.WebGLShaderProcessor;const a=`Babylon.js v${M.Version}`;g.Logger.Log(a+` - ${this.description}`),this._renderingCanvas&&this._renderingCanvas.setAttribute&&this._renderingCanvas.setAttribute("data-engine",a);const n=(0,u.getStateObject)(this._gl);n.validateShaderPrograms=this.validateShaderPrograms,n.parallelShaderCompile=this._caps.parallelShaderCompile}_clearEmptyResources(){this._dummyFramebuffer=null,super._clearEmptyResources()}_getShaderProcessingContext(e){return null}areAllEffectsReady(){for(let e in this._compiledEffects)if(!this._compiledEffects[e].isReady())return!1;return!0}_initGLContext(){this._caps={maxTexturesImageUnits:this._gl.getParameter(this._gl.MAX_TEXTURE_IMAGE_UNITS),maxCombinedTexturesImageUnits:this._gl.getParameter(this._gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS),maxVertexTextureImageUnits:this._gl.getParameter(this._gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS),maxTextureSize:this._gl.getParameter(this._gl.MAX_TEXTURE_SIZE),maxSamples:this._webGLVersion>1?this._gl.getParameter(this._gl.MAX_SAMPLES):1,maxCubemapTextureSize:this._gl.getParameter(this._gl.MAX_CUBE_MAP_TEXTURE_SIZE),maxRenderTextureSize:this._gl.getParameter(this._gl.MAX_RENDERBUFFER_SIZE),maxVertexAttribs:this._gl.getParameter(this._gl.MAX_VERTEX_ATTRIBS),maxVaryingVectors:this._gl.getParameter(this._gl.MAX_VARYING_VECTORS),maxFragmentUniformVectors:this._gl.getParameter(this._gl.MAX_FRAGMENT_UNIFORM_VECTORS),maxVertexUniformVectors:this._gl.getParameter(this._gl.MAX_VERTEX_UNIFORM_VECTORS),shaderFloatPrecision:0,parallelShaderCompile:this._gl.getExtension("KHR_parallel_shader_compile")||void 0,standardDerivatives:this._webGLVersion>1||null!==this._gl.getExtension("OES_standard_derivatives"),maxAnisotropy:1,astc:this._gl.getExtension("WEBGL_compressed_texture_astc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_astc"),bptc:this._gl.getExtension("EXT_texture_compression_bptc")||this._gl.getExtension("WEBKIT_EXT_texture_compression_bptc"),s3tc:this._gl.getExtension("WEBGL_compressed_texture_s3tc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc"),s3tc_srgb:this._gl.getExtension("WEBGL_compressed_texture_s3tc_srgb")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc_srgb"),pvrtc:this._gl.getExtension("WEBGL_compressed_texture_pvrtc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),etc1:this._gl.getExtension("WEBGL_compressed_texture_etc1")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc1"),etc2:this._gl.getExtension("WEBGL_compressed_texture_etc")||this._gl.getExtension("WEBKIT_WEBGL_compressed_texture_etc")||this._gl.getExtension("WEBGL_compressed_texture_es3_0"),textureAnisotropicFilterExtension:this._gl.getExtension("EXT_texture_filter_anisotropic")||this._gl.getExtension("WEBKIT_EXT_texture_filter_anisotropic")||this._gl.getExtension("MOZ_EXT_texture_filter_anisotropic"),uintIndices:this._webGLVersion>1||null!==this._gl.getExtension("OES_element_index_uint"),fragmentDepthSupported:this._webGLVersion>1||null!==this._gl.getExtension("EXT_frag_depth"),highPrecisionShaderSupported:!1,timerQuery:this._gl.getExtension("EXT_disjoint_timer_query_webgl2")||this._gl.getExtension("EXT_disjoint_timer_query"),supportOcclusionQuery:this._webGLVersion>1,canUseTimestampForTimerQuery:!1,drawBuffersExtension:!1,maxMSAASamples:1,colorBufferFloat:!!(this._webGLVersion>1&&this._gl.getExtension("EXT_color_buffer_float")),blendFloat:null!==this._gl.getExtension("EXT_float_blend"),supportFloatTexturesResolve:!1,rg11b10ufColorRenderable:!1,colorBufferHalfFloat:!!(this._webGLVersion>1&&this._gl.getExtension("EXT_color_buffer_half_float")),textureFloat:!!(this._webGLVersion>1||this._gl.getExtension("OES_texture_float")),textureHalfFloat:!!(this._webGLVersion>1||this._gl.getExtension("OES_texture_half_float")),textureHalfFloatRender:!1,textureFloatLinearFiltering:!1,textureFloatRender:!1,textureHalfFloatLinearFiltering:!1,vertexArrayObject:!1,instancedArrays:!1,textureLOD:!!(this._webGLVersion>1||this._gl.getExtension("EXT_shader_texture_lod")),texelFetch:1!==this._webGLVersion,blendMinMax:!1,multiview:this._gl.getExtension("OVR_multiview2"),oculusMultiview:this._gl.getExtension("OCULUS_multiview"),depthTextureExtension:!1,canUseGLInstanceID:this._webGLVersion>1,canUseGLVertexID:this._webGLVersion>1,supportComputeShaders:!1,supportSRGBBuffers:!1,supportTransformFeedbacks:this._webGLVersion>1,textureMaxLevel:this._webGLVersion>1,texture2DArrayMaxLayerCount:this._webGLVersion>1?this._gl.getParameter(this._gl.MAX_ARRAY_TEXTURE_LAYERS):128,disableMorphTargetTexture:!1,textureNorm16:!!this._gl.getExtension("EXT_texture_norm16"),blendParametersPerTarget:!1,dualSourceBlending:!1,supportReadWriteStorageTextures:!1},this._caps.supportFloatTexturesResolve=this._caps.colorBufferFloat,this._caps.rg11b10ufColorRenderable=this._caps.colorBufferFloat,this._glVersion=this._gl.getParameter(this._gl.VERSION);let e=this._gl.getExtension("WEBGL_debug_renderer_info");null!=e&&(this._glRenderer=this._gl.getParameter(e.UNMASKED_RENDERER_WEBGL),this._glVendor=this._gl.getParameter(e.UNMASKED_VENDOR_WEBGL)),this._glVendor||(this._glVendor=this._gl.getParameter(this._gl.VENDOR)||"Unknown vendor"),this._glRenderer||(this._glRenderer=this._gl.getParameter(this._gl.RENDERER)||"Unknown renderer"),36193!==this._gl.HALF_FLOAT_OES&&(this._gl.HALF_FLOAT_OES=36193),34842!==this._gl.RGBA16F&&(this._gl.RGBA16F=34842),34836!==this._gl.RGBA32F&&(this._gl.RGBA32F=34836),35056!==this._gl.DEPTH24_STENCIL8&&(this._gl.DEPTH24_STENCIL8=35056),this._caps.timerQuery&&(1===this._webGLVersion&&(this._gl.getQuery=this._caps.timerQuery.getQueryEXT.bind(this._caps.timerQuery)),this._caps.canUseTimestampForTimerQuery=(this._gl.getQuery(this._caps.timerQuery.TIMESTAMP_EXT,this._caps.timerQuery.QUERY_COUNTER_BITS_EXT)??0)>0),this._caps.maxAnisotropy=this._caps.textureAnisotropicFilterExtension?this._gl.getParameter(this._caps.textureAnisotropicFilterExtension.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0,this._caps.textureFloatLinearFiltering=!!(this._caps.textureFloat&&this._gl.getExtension("OES_texture_float_linear")),this._caps.textureFloatRender=!!(this._caps.textureFloat&&this._canRenderToFloatFramebuffer()),this._caps.textureHalfFloatLinearFiltering=!!(this._webGLVersion>1||this._caps.textureHalfFloat&&this._gl.getExtension("OES_texture_half_float_linear")),this._caps.textureNorm16&&(this._gl.R16_EXT=33322,this._gl.RG16_EXT=33324,this._gl.RGB16_EXT=32852,this._gl.RGBA16_EXT=32859,this._gl.R16_SNORM_EXT=36760,this._gl.RG16_SNORM_EXT=36761,this._gl.RGB16_SNORM_EXT=36762,this._gl.RGBA16_SNORM_EXT=36763);let t=this._gl.getExtension("OES_draw_buffers_indexed");if(this._caps.blendParametersPerTarget=!!t,this._alphaState=new C.AlphaState(this._caps.blendParametersPerTarget),t&&(this._gl.blendEquationSeparateIndexed=t.blendEquationSeparateiOES.bind(t),this._gl.blendEquationIndexed=t.blendEquationiOES.bind(t),this._gl.blendFuncSeparateIndexed=t.blendFuncSeparateiOES.bind(t),this._gl.blendFuncIndexed=t.blendFunciOES.bind(t),this._gl.colorMaskIndexed=t.colorMaskiOES.bind(t),this._gl.disableIndexed=t.disableiOES.bind(t),this._gl.enableIndexed=t.enableiOES.bind(t)),this._caps.dualSourceBlending=!!this._gl.getExtension("WEBGL_blend_func_extended"),this._caps.astc&&(this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,this._gl.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=this._caps.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR),this._caps.bptc&&(this._gl.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=this._caps.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT),this._caps.s3tc_srgb&&(this._gl.COMPRESSED_SRGB_S3TC_DXT1_EXT=this._caps.s3tc_srgb.COMPRESSED_SRGB_S3TC_DXT1_EXT,this._gl.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=this._caps.s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,this._gl.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=this._caps.s3tc_srgb.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT),this._caps.etc2&&(this._gl.COMPRESSED_SRGB8_ETC2=this._caps.etc2.COMPRESSED_SRGB8_ETC2,this._gl.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=this._caps.etc2.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC),this._webGLVersion>1&&5131!==this._gl.HALF_FLOAT_OES&&(this._gl.HALF_FLOAT_OES=5131),this._caps.textureHalfFloatRender=this._caps.textureHalfFloat&&this._canRenderToHalfFloatFramebuffer(),this._webGLVersion>1)this._caps.drawBuffersExtension=!0,this._caps.maxMSAASamples=null!==this._maxMSAASamplesOverride?this._maxMSAASamplesOverride:this._gl.getParameter(this._gl.MAX_SAMPLES),this._caps.maxDrawBuffers=this._gl.getParameter(this._gl.MAX_DRAW_BUFFERS);else{let e=this._gl.getExtension("WEBGL_draw_buffers");if(null!==e){this._caps.drawBuffersExtension=!0,this._gl.drawBuffers=e.drawBuffersWEBGL.bind(e),this._caps.maxDrawBuffers=this._gl.getParameter(e.MAX_DRAW_BUFFERS_WEBGL),this._gl.DRAW_FRAMEBUFFER=this._gl.FRAMEBUFFER;for(let t=0;t<16;t++)this._gl["COLOR_ATTACHMENT"+t+"_WEBGL"]=e["COLOR_ATTACHMENT"+t+"_WEBGL"]}}if(this._webGLVersion>1)this._caps.depthTextureExtension=!0;else{let e=this._gl.getExtension("WEBGL_depth_texture");null!=e&&(this._caps.depthTextureExtension=!0,this._gl.UNSIGNED_INT_24_8=e.UNSIGNED_INT_24_8_WEBGL)}if(this.disableVertexArrayObjects)this._caps.vertexArrayObject=!1;else if(this._webGLVersion>1)this._caps.vertexArrayObject=!0;else{let e=this._gl.getExtension("OES_vertex_array_object");null!=e&&(this._caps.vertexArrayObject=!0,this._gl.createVertexArray=e.createVertexArrayOES.bind(e),this._gl.bindVertexArray=e.bindVertexArrayOES.bind(e),this._gl.deleteVertexArray=e.deleteVertexArrayOES.bind(e))}if(this._webGLVersion>1)this._caps.instancedArrays=!0;else{let e=this._gl.getExtension("ANGLE_instanced_arrays");null!=e?(this._caps.instancedArrays=!0,this._gl.drawArraysInstanced=e.drawArraysInstancedANGLE.bind(e),this._gl.drawElementsInstanced=e.drawElementsInstancedANGLE.bind(e),this._gl.vertexAttribDivisor=e.vertexAttribDivisorANGLE.bind(e)):this._caps.instancedArrays=!1}if(this._gl.getShaderPrecisionFormat){let e=this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER,this._gl.HIGH_FLOAT),t=this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER,this._gl.HIGH_FLOAT);if(e&&t&&(this._caps.highPrecisionShaderSupported=0!==e.precision&&0!==t.precision,this._caps.shaderFloatPrecision=Math.min(e.precision,t.precision)),!this._shouldUseHighPrecisionShader){let e=this._gl.getShaderPrecisionFormat(this._gl.VERTEX_SHADER,this._gl.MEDIUM_FLOAT),t=this._gl.getShaderPrecisionFormat(this._gl.FRAGMENT_SHADER,this._gl.MEDIUM_FLOAT);e&&t&&(this._caps.shaderFloatPrecision=Math.min(e.precision,t.precision))}this._caps.shaderFloatPrecision<10&&(this._caps.shaderFloatPrecision=10)}if(this._webGLVersion>1)this._caps.blendMinMax=!0;else{let e=this._gl.getExtension("EXT_blend_minmax");null!=e&&(this._caps.blendMinMax=!0,this._gl.MAX=e.MAX_EXT,this._gl.MIN=e.MIN_EXT)}if(!this._caps.supportSRGBBuffers){if(this._webGLVersion>1)this._caps.supportSRGBBuffers=!0,this._glSRGBExtensionValues={SRGB:WebGL2RenderingContext.SRGB,SRGB8:WebGL2RenderingContext.SRGB8,SRGB8_ALPHA8:WebGL2RenderingContext.SRGB8_ALPHA8};else{let e=this._gl.getExtension("EXT_sRGB");null!=e&&(this._caps.supportSRGBBuffers=!0,this._glSRGBExtensionValues={SRGB:e.SRGB_EXT,SRGB8:e.SRGB_ALPHA_EXT,SRGB8_ALPHA8:e.SRGB_ALPHA_EXT})}if(this._creationOptions){let e=this._creationOptions.forceSRGBBufferSupportState;void 0!==e&&(this._caps.supportSRGBBuffers=this._caps.supportSRGBBuffers&&e)}}this._depthCullingState.depthTest=!0,this._depthCullingState.depthFunc=this._gl.LEQUAL,this._depthCullingState.depthMask=!0,this._maxSimultaneousTextures=this._caps.maxCombinedTexturesImageUnits;for(let e=0;e<this._maxSimultaneousTextures;e++)this._nextFreeTextureSlots.push(e);"Mali-G72"===this._glRenderer&&(this._caps.disableMorphTargetTexture=!0)}_initFeatures(){this._features={forceBitmapOverHTMLImageElement:"u"<typeof HTMLImageElement,supportRenderAndCopyToLodForFloatTextures:1!==this._webGLVersion,supportDepthStencilTexture:1!==this._webGLVersion,supportShadowSamplers:1!==this._webGLVersion,uniformBufferHardCheckMatrix:!1,allowTexturePrefiltering:1!==this._webGLVersion,trackUbosInFrame:!1,checkUbosContentBeforeUpload:!1,supportCSM:1!==this._webGLVersion,basisNeedsPOT:1===this._webGLVersion,support3DTextures:1!==this._webGLVersion,needTypeSuffixInShaderConstants:1!==this._webGLVersion,supportMSAA:1!==this._webGLVersion,supportSSAO2:1!==this._webGLVersion,supportIBLShadows:1!==this._webGLVersion,supportExtendedTextureFormats:1!==this._webGLVersion,supportSwitchCaseInShader:1!==this._webGLVersion,supportSyncTextureRead:!0,needsInvertingBitmap:!0,useUBOBindingCache:!0,needShaderCodeInlining:!1,needToAlwaysBindUniformBuffers:!1,supportRenderPasses:!1,supportSpriteInstancing:!0,forceVertexBufferStrideAndOffsetMultiple4Bytes:!1,_checkNonFloatVertexBuffersDontRecreatePipelineContext:!1}}get webGLVersion(){return this._webGLVersion}getClassName(){return"ThinEngine"}_prepareWorkingCanvas(){if(this._workingCanvas)return;this._workingCanvas=this.createCanvas(1,1);let e=this._workingCanvas.getContext("2d");e&&(this._workingContext=e)}getInfo(){return this.getGlInfo()}getGlInfo(){return{vendor:this._glVendor,renderer:this._glRenderer,version:this._glVersion}}extractDriverInfo(){let e=this.getGlInfo();return e&&e.renderer?e.renderer:""}getRenderWidth(e=!1){return!e&&this._currentRenderTarget?this._currentRenderTarget.width:this._framebufferDimensionsObject?this._framebufferDimensionsObject.framebufferWidth:this._gl.drawingBufferWidth}getRenderHeight(e=!1){return!e&&this._currentRenderTarget?this._currentRenderTarget.height:this._framebufferDimensionsObject?this._framebufferDimensionsObject.framebufferHeight:this._gl.drawingBufferHeight}clear(e,t,r,i=!1,s=0){let a=this.stencilStateComposer.useStencilGlobalOnly;this.stencilStateComposer.useStencilGlobalOnly=!0,this.applyStates(),this.stencilStateComposer.useStencilGlobalOnly=a;let n=0;if(t&&e){let t=!0;if(this._currentRenderTarget){let r=this._currentRenderTarget.texture?.format;if(8===r||9===r||10===r||11===r){let r=this._currentRenderTarget.texture?.type;7===r||5===r?(M._TempClearColorUint32[0]=255*e.r,M._TempClearColorUint32[1]=255*e.g,M._TempClearColorUint32[2]=255*e.b,M._TempClearColorUint32[3]=255*e.a,this._gl.clearBufferuiv(this._gl.COLOR,0,M._TempClearColorUint32)):(M._TempClearColorInt32[0]=255*e.r,M._TempClearColorInt32[1]=255*e.g,M._TempClearColorInt32[2]=255*e.b,M._TempClearColorInt32[3]=255*e.a,this._gl.clearBufferiv(this._gl.COLOR,0,M._TempClearColorInt32)),t=!1}}t&&(this._gl.clearColor(e.r,e.g,e.b,void 0!==e.a?e.a:1),n|=this._gl.COLOR_BUFFER_BIT)}r&&(this.useReverseDepthBuffer?(this._depthCullingState.depthFunc=this._gl.GEQUAL,this._gl.clearDepth(0)):this._gl.clearDepth(1),n|=this._gl.DEPTH_BUFFER_BIT),i&&(this._gl.clearStencil(s),n|=this._gl.STENCIL_BUFFER_BIT),this._gl.clear(n)}_viewport(e,t,r,i){(e!==this._viewportCached.x||t!==this._viewportCached.y||r!==this._viewportCached.z||i!==this._viewportCached.w)&&(this._viewportCached.x=e,this._viewportCached.y=t,this._viewportCached.z=r,this._viewportCached.w=i,this._gl.viewport(e,t,r,i))}endFrame(){super.endFrame(),this._badOS&&this.flushFramebuffer()}get performanceMonitor(){throw Error("Not Supported by ThinEngine")}bindFramebuffer(e,t=0,r,i,s,a=0,n=0){this._currentRenderTarget&&this._resolveAndGenerateMipMapsFramebuffer(this._currentRenderTarget),this._currentRenderTarget=e,this._bindUnboundFramebuffer(e._framebuffer);let _=this._gl;e.isMulti||(e.is2DArray||e.is3D?(_.framebufferTextureLayer(_.FRAMEBUFFER,_.COLOR_ATTACHMENT0,e.texture._hardwareTexture?.underlyingResource,a,n),e._currentLOD=a):e.isCube?_.framebufferTexture2D(_.FRAMEBUFFER,_.COLOR_ATTACHMENT0,_.TEXTURE_CUBE_MAP_POSITIVE_X+t,e.texture._hardwareTexture?.underlyingResource,a):e._currentLOD!==a&&(_.framebufferTexture2D(_.FRAMEBUFFER,_.COLOR_ATTACHMENT0,_.TEXTURE_2D,e.texture._hardwareTexture?.underlyingResource,a),e._currentLOD=a));let l=e._depthStencilTexture;if(l){e.is3D&&(e.texture.width!==l.width||e.texture.height!==l.height||e.texture.depth!==l.depth)&&g.Logger.Warn("Depth/Stencil attachment for 3D target must have same dimensions as color attachment");let r=e._depthStencilTextureWithStencil?_.DEPTH_STENCIL_ATTACHMENT:_.DEPTH_ATTACHMENT;e.is2DArray||e.is3D?_.framebufferTextureLayer(_.FRAMEBUFFER,r,l._hardwareTexture?.underlyingResource,a,n):e.isCube?_.framebufferTexture2D(_.FRAMEBUFFER,r,_.TEXTURE_CUBE_MAP_POSITIVE_X+t,l._hardwareTexture?.underlyingResource,a):_.framebufferTexture2D(_.FRAMEBUFFER,r,_.TEXTURE_2D,l._hardwareTexture?.underlyingResource,a)}e._MSAAFramebuffer&&this._bindUnboundFramebuffer(e._MSAAFramebuffer),this._cachedViewport&&!s?this.setViewport(this._cachedViewport,r,i):(!r&&(r=e.width,a&&(r/=Math.pow(2,a))),!i&&(i=e.height,a&&(i/=Math.pow(2,a))),this._viewport(0,0,r,i)),this.wipeCaches()}setStateCullFaceType(e,t){let r=this.cullBackFaces??e??!0?this._gl.BACK:this._gl.FRONT;(this._depthCullingState.cullFace!==r||t)&&(this._depthCullingState.cullFace=r)}setState(e,t=0,r,i=!1,s,a,n=0){(this._depthCullingState.cull!==e||r)&&(this._depthCullingState.cull=e),this.setStateCullFaceType(s,r),this.setZOffset(t),this.setZOffsetUnits(n);let _=i?this._gl.CW:this._gl.CCW;(this._depthCullingState.frontFace!==_||r)&&(this._depthCullingState.frontFace=_),this._stencilStateComposer.stencilMaterial=a}_resolveAndGenerateMipMapsFramebuffer(e,t=!1){e.disableAutomaticMSAAResolve||(e.isMulti?this.resolveMultiFramebuffer(e):this.resolveFramebuffer(e)),t||(e.isMulti?this.generateMipMapsMultiFramebuffer(e):this.generateMipMapsFramebuffer(e))}_bindUnboundFramebuffer(e){this._currentFramebuffer!==e&&(this._gl.bindFramebuffer(this._gl.FRAMEBUFFER,e),this._currentFramebuffer=e)}_currentFrameBufferIsDefaultFrameBuffer(){return null===this._currentFramebuffer}generateMipmaps(e){let t=this._getTextureTarget(e);this._bindTextureDirectly(t,e,!0),this._gl.generateMipmap(t),this._bindTextureDirectly(t,null)}unBindFramebuffer(e,t,r){this._currentRenderTarget=null,this._resolveAndGenerateMipMapsFramebuffer(e,t),r&&(e._MSAAFramebuffer&&this._bindUnboundFramebuffer(e._framebuffer),r()),this._bindUnboundFramebuffer(null)}generateMipMapsFramebuffer(e){!e.isMulti&&e.texture?.generateMipMaps&&!e.isCube&&this.generateMipmaps(e.texture)}resolveFramebuffer(e){let t=this._gl;if(!e._MSAAFramebuffer||e.isMulti)return;let r=e.resolveMSAAColors?t.COLOR_BUFFER_BIT:0;r|=e._generateDepthBuffer&&e.resolveMSAADepth?t.DEPTH_BUFFER_BIT:0,r|=e._generateStencilBuffer&&e.resolveMSAAStencil?t.STENCIL_BUFFER_BIT:0,t.bindFramebuffer(t.READ_FRAMEBUFFER,e._MSAAFramebuffer),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,e._framebuffer),t.blitFramebuffer(0,0,e.width,e.height,0,0,e.width,e.height,r,t.NEAREST)}flushFramebuffer(){this._gl.flush()}restoreDefaultFramebuffer(){this._currentRenderTarget?this.unBindFramebuffer(this._currentRenderTarget):this._bindUnboundFramebuffer(null),this._cachedViewport&&this.setViewport(this._cachedViewport),this.wipeCaches()}_resetVertexBufferBinding(){this.bindArrayBuffer(null),this._cachedVertexBuffers=null}createVertexBuffer(e,t,r){return this._createVertexBuffer(e,this._gl.STATIC_DRAW)}_createVertexBuffer(e,t){let r=this._gl.createBuffer();if(!r)throw Error("Unable to create vertex buffer");let i=new R(r);return this.bindArrayBuffer(i),"number"!=typeof e?e instanceof Array?(this._gl.bufferData(this._gl.ARRAY_BUFFER,new Float32Array(e),t),i.capacity=4*e.length):(this._gl.bufferData(this._gl.ARRAY_BUFFER,e,t),i.capacity=e.byteLength):(this._gl.bufferData(this._gl.ARRAY_BUFFER,new Uint8Array(e),t),i.capacity=e),this._resetVertexBufferBinding(),i.references=1,i}createDynamicVertexBuffer(e,t){return this._createVertexBuffer(e,this._gl.DYNAMIC_DRAW)}_resetIndexBufferBinding(){this.bindIndexBuffer(null),this._cachedIndexBuffer=null}createIndexBuffer(e,t,r){let i=this._gl.createBuffer(),s=new R(i);if(!i)throw Error("Unable to create index buffer");this.bindIndexBuffer(s);let a=this._normalizeIndexData(e);return this._gl.bufferData(this._gl.ELEMENT_ARRAY_BUFFER,a,t?this._gl.DYNAMIC_DRAW:this._gl.STATIC_DRAW),this._resetIndexBufferBinding(),s.references=1,s.is32Bits=4===a.BYTES_PER_ELEMENT,s}_normalizeIndexData(e){if(2===e.BYTES_PER_ELEMENT)return e;if(this._caps.uintIndices){if(e instanceof Uint32Array)return e;else for(let t=0;t<e.length;t++)if(e[t]>=65535)return new Uint32Array(e)}return new Uint16Array(e)}bindArrayBuffer(e){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this._bindBuffer(e,this._gl.ARRAY_BUFFER)}bindUniformBlock(e,t,r){let i=e.program,s=this._gl.getUniformBlockIndex(i,t);this._gl.uniformBlockBinding(i,s,r)}bindIndexBuffer(e){this._vaoRecordInProgress||this._unbindVertexArrayObject(),this._bindBuffer(e,this._gl.ELEMENT_ARRAY_BUFFER)}_bindBuffer(e,t){(this._vaoRecordInProgress||this._currentBoundBuffer[t]!==e)&&(this._gl.bindBuffer(t,e?e.underlyingResource:null),this._currentBoundBuffer[t]=e)}updateArrayBuffer(e){this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,e)}_vertexAttribPointer(e,t,r,i,s,a,n){let _=this._currentBufferPointers[t];if(!_)return;let l=!1;_.active?(_.buffer!==e&&(_.buffer=e,l=!0),_.size!==r&&(_.size=r,l=!0),_.type!==i&&(_.type=i,l=!0),_.normalized!==s&&(_.normalized=s,l=!0),_.stride!==a&&(_.stride=a,l=!0),_.offset!==n&&(_.offset=n,l=!0)):(l=!0,_.active=!0,_.index=t,_.size=r,_.type=i,_.normalized=s,_.stride=a,_.offset=n,_.buffer=e),(l||this._vaoRecordInProgress)&&(this.bindArrayBuffer(e),i===this._gl.UNSIGNED_INT||i===this._gl.INT?this._gl.vertexAttribIPointer(t,r,i,a,n):this._gl.vertexAttribPointer(t,r,i,s,a,n))}_bindIndexBufferWithCache(e){null!=e&&this._cachedIndexBuffer!==e&&(this._cachedIndexBuffer=e,this.bindIndexBuffer(e),this._uintIndicesCurrentlySet=e.is32Bits)}_bindVertexBuffersAttributes(e,t,r){let i=t.getAttributesNames();this._vaoRecordInProgress||this._unbindVertexArrayObject(),this.unbindAllAttributes();for(let s=0;s<i.length;s++){let a=t.getAttributeLocation(s);if(a>=0){let t=i[s],n=null;if(r&&(n=r[t]),n||(n=e[t]),!n)continue;this._gl.enableVertexAttribArray(a),this._vaoRecordInProgress||(this._vertexAttribArraysEnabled[a]=!0);let _=n.getBuffer();_&&(this._vertexAttribPointer(_,a,n.getSize(),n.type,n.normalized,n.byteStride,n.byteOffset),n.getIsInstanced()&&(this._gl.vertexAttribDivisor(a,n.getInstanceDivisor()),this._vaoRecordInProgress||(this._currentInstanceLocations.push(a),this._currentInstanceBuffers.push(_))))}}}recordVertexArrayObject(e,t,r,i){let s=this._gl.createVertexArray();if(!s)throw Error("Unable to create VAO");return this._vaoRecordInProgress=!0,this._gl.bindVertexArray(s),this._mustWipeVertexAttributes=!0,this._bindVertexBuffersAttributes(e,r,i),this.bindIndexBuffer(t),this._vaoRecordInProgress=!1,this._gl.bindVertexArray(null),s}bindVertexArrayObject(e,t){this._cachedVertexArrayObject!==e&&(this._cachedVertexArrayObject=e,this._gl.bindVertexArray(e),this._cachedVertexBuffers=null,this._cachedIndexBuffer=null,this._uintIndicesCurrentlySet=null!=t&&t.is32Bits,this._mustWipeVertexAttributes=!0)}bindBuffersDirectly(e,t,r,i,s){if(this._cachedVertexBuffers!==e||this._cachedEffectForVertexBuffers!==s){this._cachedVertexBuffers=e,this._cachedEffectForVertexBuffers=s;let t=s.getAttributesCount();this._unbindVertexArrayObject(),this.unbindAllAttributes();let a=0;for(let n=0;n<t;n++)if(n<r.length){let t=s.getAttributeLocation(n);t>=0&&(this._gl.enableVertexAttribArray(t),this._vertexAttribArraysEnabled[t]=!0,this._vertexAttribPointer(e,t,r[n],this._gl.FLOAT,!1,i,a)),a+=4*r[n]}}this._bindIndexBufferWithCache(t)}_unbindVertexArrayObject(){this._cachedVertexArrayObject&&(this._cachedVertexArrayObject=null,this._gl.bindVertexArray(null))}bindBuffers(e,t,r,i){(this._cachedVertexBuffers!==e||this._cachedEffectForVertexBuffers!==r)&&(this._cachedVertexBuffers=e,this._cachedEffectForVertexBuffers=r,this._bindVertexBuffersAttributes(e,r,i)),this._bindIndexBufferWithCache(t)}unbindInstanceAttributes(){let e;for(let t=0,r=this._currentInstanceLocations.length;t<r;t++){let r=this._currentInstanceBuffers[t];e!=r&&r.references&&(e=r,this.bindArrayBuffer(r));let i=this._currentInstanceLocations[t];this._gl.vertexAttribDivisor(i,0)}this._currentInstanceBuffers.length=0,this._currentInstanceLocations.length=0}releaseVertexArrayObject(e){this._gl.deleteVertexArray(e)}_releaseBuffer(e){return e.references--,0===e.references&&(this._deleteBuffer(e),!0)}_deleteBuffer(e){this._gl.deleteBuffer(e.underlyingResource)}updateAndBindInstancesBuffer(e,t,r){if(this.bindArrayBuffer(e),t&&this._gl.bufferSubData(this._gl.ARRAY_BUFFER,0,t),void 0!==r[0].index)this.bindInstancesBuffer(e,r,!0);else for(let t=0;t<4;t++){let i=r[t];this._vertexAttribArraysEnabled[i]||(this._gl.enableVertexAttribArray(i),this._vertexAttribArraysEnabled[i]=!0),this._vertexAttribPointer(e,i,4,this._gl.FLOAT,!1,64,16*t),this._gl.vertexAttribDivisor(i,1),this._currentInstanceLocations.push(i),this._currentInstanceBuffers.push(e)}}bindInstancesBuffer(e,t,r=!0){this.bindArrayBuffer(e);let i=0;if(r)for(let e=0;e<t.length;e++)i+=4*t[e].attributeSize;for(let r=0;r<t.length;r++){let s=t[r];void 0===s.index&&(s.index=this._currentEffect.getAttributeLocationByName(s.attributeName)),s.index<0||(this._vertexAttribArraysEnabled[s.index]||(this._gl.enableVertexAttribArray(s.index),this._vertexAttribArraysEnabled[s.index]=!0),this._vertexAttribPointer(e,s.index,s.attributeSize,s.attributeType||this._gl.FLOAT,s.normalized||!1,i,s.offset),this._gl.vertexAttribDivisor(s.index,void 0===s.divisor?1:s.divisor),this._currentInstanceLocations.push(s.index),this._currentInstanceBuffers.push(e))}}disableInstanceAttributeByName(e){if(!this._currentEffect)return;let t=this._currentEffect.getAttributeLocationByName(e);this.disableInstanceAttribute(t)}disableInstanceAttribute(e){let t,r=!1;for(;-1!==(t=this._currentInstanceLocations.indexOf(e));)this._currentInstanceLocations.splice(t,1),this._currentInstanceBuffers.splice(t,1),r=!0;r&&(this._gl.vertexAttribDivisor(e,0),this.disableAttributeByIndex(e))}disableAttributeByIndex(e){this._gl.disableVertexAttribArray(e),this._vertexAttribArraysEnabled[e]=!1,this._currentBufferPointers[e].active=!1}draw(e,t,r,i){this.drawElementsType(+!e,t,r,i)}drawPointClouds(e,t,r){this.drawArraysType(2,e,t,r)}drawUnIndexed(e,t,r,i){this.drawArraysType(+!e,t,r,i)}drawElementsType(e,t,r,i){this.applyStates(),this._reportDrawCall();let s=this._drawMode(e),a=this._uintIndicesCurrentlySet?this._gl.UNSIGNED_INT:this._gl.UNSIGNED_SHORT,n=this._uintIndicesCurrentlySet?4:2;i?this._gl.drawElementsInstanced(s,r,a,t*n,i):this._gl.drawElements(s,r,a,t*n)}drawArraysType(e,t,r,i){this.applyStates(),this._reportDrawCall();let s=this._drawMode(e);i?this._gl.drawArraysInstanced(s,t,r,i):this._gl.drawArrays(s,t,r)}_drawMode(e){switch(e){case 0:default:return this._gl.TRIANGLES;case 2:case 3:return this._gl.POINTS;case 1:case 4:return this._gl.LINES;case 5:return this._gl.LINE_LOOP;case 6:return this._gl.LINE_STRIP;case 7:return this._gl.TRIANGLE_STRIP;case 8:return this._gl.TRIANGLE_FAN}}_releaseEffect(e){this._compiledEffects[e._key]&&delete this._compiledEffects[e._key];let t=e.getPipelineContext();t&&this._deletePipelineContext(t)}_deletePipelineContext(e){e&&e.program&&(e.program.__SPECTOR_rebuildProgram=null,(0,b.resetCachedPipeline)(e),this._gl&&(this._currentProgram===e.program&&this._setProgram(null),this._gl.deleteProgram(e.program)))}_getGlobalDefines(e){return(0,S._GetGlobalDefines)(e,this.isNDCHalfZRange,this.useReverseDepthBuffer,this.useExactSrgbConversions)}createEffect(e,t,r,i,s,a,n,_,l,o=0,c){let g="string"==typeof e?e:e.vertexToken||e.vertexSource||e.vertexElement||e.vertex,f="string"==typeof e?e:e.fragmentToken||e.fragmentSource||e.fragmentElement||e.fragment,d=this._getGlobalDefines(),E=void 0!==t.attributes,T=s??t.defines??"";d&&(T+=d);let R=g+"+"+f+"@"+T;if(this._compiledEffects[R]){let e=this._compiledEffects[R];return n&&e.isReady()&&n(e),e._refCount++,e}this._gl&&(0,u.getStateObject)(this._gl);let p=new h.Effect(e,t,E?this:r,i,this,s,a,n,_,l,R,t.shaderLanguage??o,t.extraInitializationsAsync??c);return this._compiledEffects[R]=p,p}_getShaderSource(e){return this._gl.getShaderSource(e)}createRawShaderProgram(e,t,r,i,s=null){let a=(0,u.getStateObject)(this._gl);return a._contextWasLost=this._contextWasLost,a.validateShaderPrograms=this.validateShaderPrograms,(0,u.createRawShaderProgram)(e,t,r,i||this._gl,s)}createShaderProgram(e,t,r,i,s,a=null){let n=(0,u.getStateObject)(this._gl);return n._contextWasLost=this._contextWasLost,n.validateShaderPrograms=this.validateShaderPrograms,(0,u.createShaderProgram)(e,t,r,i,s||this._gl,a)}inlineShaderCode(e){return e}createPipelineContext(e){this._gl&&((0,u.getStateObject)(this._gl).parallelShaderCompile=this._caps.parallelShaderCompile);let t=(0,u.createPipelineContext)(this._gl,e);return t.engine=this,t}createMaterialContext(){}createDrawContext(){}_finalizePipelineContext(e){return(0,u._finalizePipelineContext)(e,this._gl,this.validateShaderPrograms)}_preparePipelineContextAsync(e,t,r,i,s,a,n,_,l,h,o){let c=(0,u.getStateObject)(this._gl);return c._contextWasLost=this._contextWasLost,c.validateShaderPrograms=this.validateShaderPrograms,c._createShaderProgramInjection=this._createShaderProgram.bind(this),c.createRawShaderProgramInjection=this.createRawShaderProgram.bind(this),c.createShaderProgramInjection=this.createShaderProgram.bind(this),c.loadFileInjection=this._loadFile.bind(this),(0,u._preparePipelineContext)(e,t,r,i,s,a,n,_,l,h,o)}_createShaderProgram(e,t,r,i,s=null){return(0,u._createShaderProgram)(e,t,r,i,s)}_isRenderingStateCompiled(e){return!this._isDisposed&&(0,u._isRenderingStateCompiled)(e,this._gl,this.validateShaderPrograms)}_executeWhenRenderingStateIsCompiled(e,t){(0,u._executeWhenRenderingStateIsCompiled)(e,t)}getUniforms(e,t){let r=[];for(let i=0;i<t.length;i++)r.push(this._gl.getUniformLocation(e.program,t[i]));return r}getAttributes(e,t){let r=[];for(let i=0;i<t.length;i++)try{r.push(this._gl.getAttribLocation(e.program,t[i]))}catch(e){r.push(-1)}return r}enableEffect(e){(e=null!==e&&(0,c.IsWrapper)(e)?e.effect:e)&&e!==this._currentEffect&&(this._stencilStateComposer.stencilMaterial=void 0,this.bindSamplers(e),this._currentEffect=e,e.onBind&&e.onBind(e),e._onBindObservable&&e._onBindObservable.notifyObservers(e))}setInt(e,t){return!!e&&(this._gl.uniform1i(e,t),!0)}setInt2(e,t,r){return!!e&&(this._gl.uniform2i(e,t,r),!0)}setInt3(e,t,r,i){return!!e&&(this._gl.uniform3i(e,t,r,i),!0)}setInt4(e,t,r,i,s){return!!e&&(this._gl.uniform4i(e,t,r,i,s),!0)}setIntArray(e,t){return!!e&&(this._gl.uniform1iv(e,t),!0)}setIntArray2(e,t){return!!e&&t.length%2==0&&(this._gl.uniform2iv(e,t),!0)}setIntArray3(e,t){return!!e&&t.length%3==0&&(this._gl.uniform3iv(e,t),!0)}setIntArray4(e,t){return!!e&&t.length%4==0&&(this._gl.uniform4iv(e,t),!0)}setUInt(e,t){return!!e&&(this._gl.uniform1ui(e,t),!0)}setUInt2(e,t,r){return!!e&&(this._gl.uniform2ui(e,t,r),!0)}setUInt3(e,t,r,i){return!!e&&(this._gl.uniform3ui(e,t,r,i),!0)}setUInt4(e,t,r,i,s){return!!e&&(this._gl.uniform4ui(e,t,r,i,s),!0)}setUIntArray(e,t){return!!e&&(this._gl.uniform1uiv(e,t),!0)}setUIntArray2(e,t){return!!e&&t.length%2==0&&(this._gl.uniform2uiv(e,t),!0)}setUIntArray3(e,t){return!!e&&t.length%3==0&&(this._gl.uniform3uiv(e,t),!0)}setUIntArray4(e,t){return!!e&&t.length%4==0&&(this._gl.uniform4uiv(e,t),!0)}setArray(e,t){return!!e&&!(t.length<1)&&(this._gl.uniform1fv(e,t),!0)}setArray2(e,t){return!!e&&t.length%2==0&&(this._gl.uniform2fv(e,t),!0)}setArray3(e,t){return!!e&&t.length%3==0&&(this._gl.uniform3fv(e,t),!0)}setArray4(e,t){return!!e&&t.length%4==0&&(this._gl.uniform4fv(e,t),!0)}setMatrices(e,t){return!!e&&(this._gl.uniformMatrix4fv(e,!1,t),!0)}setMatrix3x3(e,t){return!!e&&(this._gl.uniformMatrix3fv(e,!1,t),!0)}setMatrix2x2(e,t){return!!e&&(this._gl.uniformMatrix2fv(e,!1,t),!0)}setFloat(e,t){return!!e&&(this._gl.uniform1f(e,t),!0)}setFloat2(e,t,r){return!!e&&(this._gl.uniform2f(e,t,r),!0)}setFloat3(e,t,r,i){return!!e&&(this._gl.uniform3f(e,t,r,i),!0)}setFloat4(e,t,r,i,s){return!!e&&(this._gl.uniform4f(e,t,r,i,s),!0)}applyStates(){if(this._depthCullingState.apply(this._gl),this._stencilStateComposer.apply(this._gl),this._alphaState.apply(this._gl,this._currentRenderTarget&&this._currentRenderTarget.textures?this._currentRenderTarget.textures.length:1),this._colorWriteChanged){this._colorWriteChanged=!1;let e=this._colorWrite;this._gl.colorMask(e,e,e,e)}}wipeCaches(e){(!this.preventCacheWipeBetweenFrames||e)&&(this._currentEffect=null,this._viewportCached.x=0,this._viewportCached.y=0,this._viewportCached.z=0,this._viewportCached.w=0,this._unbindVertexArrayObject(),e&&(this._currentProgram=null,this.resetTextureCache(),this._stencilStateComposer.reset(),this._depthCullingState.reset(),this._depthCullingState.depthFunc=this._gl.LEQUAL,this._alphaState.reset(),this._resetAlphaMode(),this._colorWrite=!0,this._colorWriteChanged=!0,this._unpackFlipYCached=null,this._gl.pixelStorei(this._gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,this._gl.NONE),this._gl.pixelStorei(this._gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,0),this._mustWipeVertexAttributes=!0,this.unbindAllAttributes()),this._resetVertexBufferBinding(),this._cachedIndexBuffer=null,this._cachedEffectForVertexBuffers=null,this.bindIndexBuffer(null))}_getSamplingParameters(e,t){let r=this._gl,i=r.NEAREST,s=r.NEAREST,a=!1;switch(e){case 11:i=r.LINEAR,s=t?r.LINEAR_MIPMAP_NEAREST:r.LINEAR;break;case 3:i=r.LINEAR,a=!0,s=t?r.LINEAR_MIPMAP_LINEAR:r.LINEAR;break;case 8:a=!0,i=r.NEAREST,s=t?r.NEAREST_MIPMAP_LINEAR:r.NEAREST;break;case 4:i=r.NEAREST,s=t?r.NEAREST_MIPMAP_NEAREST:r.NEAREST;break;case 5:i=r.NEAREST,s=t?r.LINEAR_MIPMAP_NEAREST:r.LINEAR;break;case 6:a=!0,i=r.NEAREST,s=t?r.LINEAR_MIPMAP_LINEAR:r.LINEAR;break;case 7:i=r.NEAREST,s=r.LINEAR;break;case 1:i=r.NEAREST,s=r.NEAREST;break;case 9:i=r.LINEAR,s=t?r.NEAREST_MIPMAP_NEAREST:r.NEAREST;break;case 10:a=!0,i=r.LINEAR,s=t?r.NEAREST_MIPMAP_LINEAR:r.NEAREST;break;case 2:i=r.LINEAR,s=r.LINEAR;break;case 12:i=r.LINEAR,s=r.NEAREST}return{min:s,mag:i,hasMipMaps:a}}_createTexture(){let e=this._gl.createTexture();if(!e)throw Error("Unable to create texture");return e}_createHardwareTexture(){return new A(this._createTexture(),this._gl)}_createInternalTexture(e,t,r=!0,i=0){let s,a,n=!1,_=0,l=3,h=5,u=!1,o=1,c=!1,f=0,d=!1;void 0!==t&&"object"==typeof t?(s=!!t.generateMipMaps,n=!!t.createMipMaps,_=void 0===t.type?0:t.type,l=void 0===t.samplingMode?3:t.samplingMode,h=void 0===t.format?5:t.format,u=void 0!==t.useSRGBBuffer&&t.useSRGBBuffer,o=t.samples??1,a=t.label,c=!!t.createMSAATexture,f=t.comparisonFunction||0,d=!!t.isCube):s=!!t,u&&(u=this._caps.supportSRGBBuffers&&(this.webGLVersion>1||this.isWebGPU)),(1!==_||this._caps.textureFloatLinearFiltering)&&(2!==_||this._caps.textureHalfFloatLinearFiltering)||(l=1),1!==_||this._caps.textureFloat||(_=0,g.Logger.Warn("Float textures are not supported. Type forced to TEXTURETYPE_UNSIGNED_BYTE"));let E=m(h),T=B(h),R=this._gl,p=new x.InternalTexture(this,i),A=e.width||e,S=e.height||e,b=e.depth||0,C=e.layers||0,P=this._getSamplingParameters(l,(s||n)&&!E),L=0!==C?R.TEXTURE_2D_ARRAY:0!==b?R.TEXTURE_3D:d?R.TEXTURE_CUBE_MAP:R.TEXTURE_2D,M=E?this._getInternalFormatFromDepthTextureFormat(h,!0,T):this._getRGBABufferInternalSizedFormat(_,h,u),G=E?T?R.DEPTH_STENCIL:R.DEPTH_COMPONENT:this._getInternalFormat(h),I=E?this._getWebGLTextureTypeFromDepthTextureFormat(h):this._getWebGLTextureType(_);if(this._bindTextureDirectly(L,p),0!==C)p.is2DArray=!0,R.texImage3D(L,0,M,A,S,C,0,G,I,null);else if(0!==b)p.is3D=!0,R.texImage3D(L,0,M,A,S,b,0,G,I,null);else if(d){p.isCube=!0;for(let e=0;e<6;e++)R.texImage2D(R.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,M,A,S,0,G,I,null)}else R.texImage2D(L,0,M,A,S,0,G,I,null);if(R.texParameteri(L,R.TEXTURE_MAG_FILTER,P.mag),R.texParameteri(L,R.TEXTURE_MIN_FILTER,P.min),R.texParameteri(L,R.TEXTURE_WRAP_S,R.CLAMP_TO_EDGE),R.texParameteri(L,R.TEXTURE_WRAP_T,R.CLAMP_TO_EDGE),E&&this.webGLVersion>1&&(0===f?(R.texParameteri(L,R.TEXTURE_COMPARE_FUNC,515),R.texParameteri(L,R.TEXTURE_COMPARE_MODE,R.NONE)):(R.texParameteri(L,R.TEXTURE_COMPARE_FUNC,f),R.texParameteri(L,R.TEXTURE_COMPARE_MODE,R.COMPARE_REF_TO_TEXTURE))),(s||n)&&this._gl.generateMipmap(L),this._bindTextureDirectly(L,null),p._useSRGBBuffer=u,p.baseWidth=A,p.baseHeight=S,p.width=A,p.height=S,p.depth=C||b,p.isReady=!0,p.samples=o,p.generateMipMaps=s,p.samplingMode=l,p.type=_,p.format=h,p.label=a,p.comparisonFunction=f,this._internalTexturesCache.push(p),c){let e;if(!(e=m(p.format)?this._setupFramebufferDepthAttachments(B(p.format),19!==p.format,p.width,p.height,o,p.format,!0):this._createRenderBuffer(p.width,p.height,o,-1,this._getRGBABufferInternalSizedFormat(p.type,p.format,p._useSRGBBuffer),-1)))throw Error("Unable to create render buffer");p._autoMSAAManagement=!0;let t=p._hardwareTexture;t||(t=p._hardwareTexture=this._createHardwareTexture()),t.addMSAARenderBuffer(e)}return p}_getUseSRGBBuffer(e,t){return e&&this._caps.supportSRGBBuffers&&(this.webGLVersion>1||t)}createTexture(e,t,r,i,s=3,a=null,n=null,_=null,l=null,h=null,u=null,o,c,g,f){return this._createTextureBase(e,t,r,i,s,a,n,(...e)=>this._prepareWebGLTexture(...e,h),(e,t,r,s,a,n)=>{let _=this._gl,l=r.width===e&&r.height===t;a._creationFlags=g??0;let h=this._getTexImageParametersForCreateTexture(a.format,a._useSRGBBuffer);if(l)return _.texImage2D(_.TEXTURE_2D,0,h.internalFormat,h.format,h.type,r),!1;let u=this._caps.maxTextureSize;if(r.width>u||r.height>u||!this._supportsHardwareTextureRescaling)return this._prepareWorkingCanvas(),!!this._workingCanvas&&!!this._workingContext&&(this._workingCanvas.width=e,this._workingCanvas.height=t,this._workingContext.drawImage(r,0,0,r.width,r.height,0,0,e,t),_.texImage2D(_.TEXTURE_2D,0,h.internalFormat,h.format,h.type,this._workingCanvas),a.width=e,a.height=t,!1);{let e=new x.InternalTexture(this,2);this._bindTextureDirectly(_.TEXTURE_2D,e,!0),_.texImage2D(_.TEXTURE_2D,0,h.internalFormat,h.format,h.type,r),this._rescaleTexture(e,a,i,h.format,()=>{this._releaseTexture(e),this._bindTextureDirectly(_.TEXTURE_2D,a,!0),n()})}return!0},_,l,h,u,o,c,f)}_getTexImageParametersForCreateTexture(e,t){let r,i;return 1===this.webGLVersion?i=r=this._getInternalFormat(e,t):(r=this._getInternalFormat(e,!1),i=this._getRGBABufferInternalSizedFormat(0,e,t)),{internalFormat:i,format:r,type:this._gl.UNSIGNED_BYTE}}_rescaleTexture(e,t,r,i,s){}_unpackFlipY(e){this._unpackFlipYCached!==e&&(this._gl.pixelStorei(this._gl.UNPACK_FLIP_Y_WEBGL,+!!e),this.enableUnpackFlipYCached&&(this._unpackFlipYCached=e))}_getUnpackAlignement(){return this._gl.getParameter(this._gl.UNPACK_ALIGNMENT)}_getTextureTarget(e){return e.isCube?this._gl.TEXTURE_CUBE_MAP:e.is3D?this._gl.TEXTURE_3D:e.is2DArray||e.isMultiview?this._gl.TEXTURE_2D_ARRAY:this._gl.TEXTURE_2D}updateTextureSamplingMode(e,t,r=!1){let i=this._getTextureTarget(t),s=this._getSamplingParameters(e,t.useMipMaps||r);this._setTextureParameterInteger(i,this._gl.TEXTURE_MAG_FILTER,s.mag,t),this._setTextureParameterInteger(i,this._gl.TEXTURE_MIN_FILTER,s.min),r&&s.hasMipMaps&&(t.generateMipMaps=!0,this._gl.generateMipmap(i)),this._bindTextureDirectly(i,null),t.samplingMode=e}updateTextureDimensions(e,t,r,i=1){}updateTextureWrappingMode(e,t,r=null,i=null){let s=this._getTextureTarget(e);null!==t&&(this._setTextureParameterInteger(s,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(t),e),e._cachedWrapU=t),null!==r&&(this._setTextureParameterInteger(s,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(r),e),e._cachedWrapV=r),(e.is2DArray||e.is3D)&&null!==i&&(this._setTextureParameterInteger(s,this._gl.TEXTURE_WRAP_R,this._getTextureWrapMode(i),e),e._cachedWrapR=i),this._bindTextureDirectly(s,null)}_uploadCompressedDataToTextureDirectly(e,t,r,i,s,a=0,n=0){let _=this._gl,l=_.TEXTURE_2D;if(e.isCube&&(l=_.TEXTURE_CUBE_MAP_POSITIVE_X+a),e._useSRGBBuffer)switch(t){case 37492:case 36196:this._caps.etc2?t=_.COMPRESSED_SRGB8_ETC2:e._useSRGBBuffer=!1;break;case 37496:this._caps.etc2?t=_.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:e._useSRGBBuffer=!1;break;case 36492:t=_.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT;break;case 37808:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR;break;case 37809:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR;break;case 37810:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR;break;case 37811:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR;break;case 37812:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR;break;case 37813:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR;break;case 37814:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR;break;case 37815:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR;break;case 37816:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR;break;case 37817:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR;break;case 37818:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR;break;case 37819:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR;break;case 37820:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR;break;case 37821:t=_.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR;break;case 33776:this._caps.s3tc_srgb?t=_.COMPRESSED_SRGB_S3TC_DXT1_EXT:e._useSRGBBuffer=!1;break;case 33777:this._caps.s3tc_srgb?t=_.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:e._useSRGBBuffer=!1;break;case 33779:this._caps.s3tc_srgb?t=_.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:e._useSRGBBuffer=!1;break;default:e._useSRGBBuffer=!1}if(e.generateMipMaps){let a=e._hardwareTexture;a.memoryAllocated||(_.texStorage2D(e.isCube?_.TEXTURE_CUBE_MAP:_.TEXTURE_2D,Math.floor(Math.log2(Math.max(r,i)))+1,t,e.width,e.height),a.memoryAllocated=!0),this._gl.compressedTexSubImage2D(l,n,0,0,r,i,t,s)}else this._gl.compressedTexImage2D(l,n,t,r,i,0,s)}_uploadDataToTextureDirectly(e,t,r=0,i=0,s,a=!1){let n=this._gl,_=this._getWebGLTextureType(e.type),l=this._getInternalFormat(e.format),h=void 0===s?this._getRGBABufferInternalSizedFormat(e.type,e.format,e._useSRGBBuffer):this._getInternalFormat(s,e._useSRGBBuffer);this._unpackFlipY(e.invertY);let u=n.TEXTURE_2D;e.isCube&&(u=n.TEXTURE_CUBE_MAP_POSITIVE_X+r);let o=Math.round(Math.log(e.width)*Math.LOG2E),c=Math.round(Math.log(e.height)*Math.LOG2E),g=a?e.width:Math.pow(2,Math.max(o-i,0)),f=a?e.height:Math.pow(2,Math.max(c-i,0));n.texImage2D(u,i,h,g,f,0,l,_,t)}updateTextureData(e,t,r,i,s,a,n=0,_=0,l=!1){let h=this._gl,u=this._getWebGLTextureType(e.type),o=this._getInternalFormat(e.format);this._unpackFlipY(e.invertY);let c=h.TEXTURE_2D,g=h.TEXTURE_2D;e.isCube&&(g=h.TEXTURE_CUBE_MAP_POSITIVE_X+n,c=h.TEXTURE_CUBE_MAP),this._bindTextureDirectly(c,e,!0),h.texSubImage2D(g,_,r,i,s,a,o,u,t),l&&this._gl.generateMipmap(g),this._bindTextureDirectly(c,null)}_uploadArrayBufferViewToTexture(e,t,r=0,i=0){let s=this._gl,a=e.isCube?s.TEXTURE_CUBE_MAP:s.TEXTURE_2D;this._bindTextureDirectly(a,e,!0),this._uploadDataToTextureDirectly(e,t,r,i),this._bindTextureDirectly(a,null,!0)}_prepareWebGLTextureContinuation(e,t,r,i,s){let a=this._gl;if(!a)return;let n=this._getSamplingParameters(s,!r);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,n.mag),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,n.min),r||i||a.generateMipmap(a.TEXTURE_2D),this._bindTextureDirectly(a.TEXTURE_2D,null),t&&t.removePendingData(e),e.onLoadedObservable.notifyObservers(e),e.onLoadedObservable.clear()}_prepareWebGLTexture(e,t,r,i,s,a,n,_,l,h){let u=this.getCaps().maxTextureSize,o=Math.min(u,this.needPOTTextures?(0,p.GetExponentOfTwo)(i.width,u):i.width),c=Math.min(u,this.needPOTTextures?(0,p.GetExponentOfTwo)(i.height,u):i.height),g=this._gl;if(g){if(!e._hardwareTexture){r&&r.removePendingData(e);return}this._bindTextureDirectly(g.TEXTURE_2D,e,!0),this._unpackFlipY(void 0===s||!!s),e.baseWidth=i.width,e.baseHeight=i.height,e.width=o,e.height=c,e.isReady=!0,e.type=-1!==e.type?e.type:0,e.format=-1!==e.format?e.format:h??(".jpg"!==t||e._useSRGBBuffer?5:4),_(o,c,i,t,e,()=>{this._prepareWebGLTextureContinuation(e,r,a,n,l)})||this._prepareWebGLTextureContinuation(e,r,a,n,l)}}_getInternalFormatFromDepthTextureFormat(e,t,r){let i=this._gl;if(!t)return i.STENCIL_INDEX8;let s=r?i.DEPTH_STENCIL:i.DEPTH_COMPONENT;return this.webGLVersion>1?15===e?s=i.DEPTH_COMPONENT16:16===e?s=i.DEPTH_COMPONENT24:17===e||13===e?s=r?i.DEPTH24_STENCIL8:i.DEPTH_COMPONENT24:14===e?s=i.DEPTH_COMPONENT32F:18===e&&(s=r?i.DEPTH32F_STENCIL8:i.DEPTH_COMPONENT32F):s=i.DEPTH_COMPONENT16,s}_getWebGLTextureTypeFromDepthTextureFormat(e){let t=this._gl,r=t.UNSIGNED_INT;return 15===e?r=t.UNSIGNED_SHORT:17===e||13===e?r=t.UNSIGNED_INT_24_8:14===e?r=t.FLOAT:18===e?r=t.FLOAT_32_UNSIGNED_INT_24_8_REV:19===e&&(r=t.UNSIGNED_BYTE),r}_setupFramebufferDepthAttachments(e,t,r,i,s=1,a,n=!1){let _=this._gl;a=a??(e?13:14);let l=this._getInternalFormatFromDepthTextureFormat(a,t,e);return e&&t?this._createRenderBuffer(r,i,s,_.DEPTH_STENCIL,l,n?-1:_.DEPTH_STENCIL_ATTACHMENT):t?this._createRenderBuffer(r,i,s,l,l,n?-1:_.DEPTH_ATTACHMENT):e?this._createRenderBuffer(r,i,s,l,l,n?-1:_.STENCIL_ATTACHMENT):null}_createRenderBuffer(e,t,r,i,s,a,n=!0){let _=this._gl.createRenderbuffer();return this._updateRenderBuffer(_,e,t,r,i,s,a,n)}_updateRenderBuffer(e,t,r,i,s,a,n,_=!0){let l=this._gl;return l.bindRenderbuffer(l.RENDERBUFFER,e),i>1&&l.renderbufferStorageMultisample?l.renderbufferStorageMultisample(l.RENDERBUFFER,i,a,t,r):l.renderbufferStorage(l.RENDERBUFFER,s,t,r),-1!==n&&l.framebufferRenderbuffer(l.FRAMEBUFFER,n,l.RENDERBUFFER,e),_&&l.bindRenderbuffer(l.RENDERBUFFER,null),e}_releaseTexture(e){this._deleteTexture(e._hardwareTexture),this.unbindAllTextures();let t=this._internalTexturesCache.indexOf(e);-1!==t&&this._internalTexturesCache.splice(t,1),e._lodTextureHigh&&e._lodTextureHigh.dispose(),e._lodTextureMid&&e._lodTextureMid.dispose(),e._lodTextureLow&&e._lodTextureLow.dispose(),e._irradianceTexture&&e._irradianceTexture.dispose()}_deleteTexture(e){e?.release()}_setProgram(e){this._currentProgram!==e&&((0,u._setProgram)(e,this._gl),this._currentProgram=e)}bindSamplers(e){let t=e.getPipelineContext();this._setProgram(t.program);let r=e.getSamplers();for(let t=0;t<r.length;t++){let i=e.getUniform(r[t]);i&&(this._boundUniforms[t]=i)}this._currentEffect=null}_activateCurrentTexture(){this._currentTextureChannel!==this._activeChannel&&(this._gl.activeTexture(this._gl.TEXTURE0+this._activeChannel),this._currentTextureChannel=this._activeChannel)}_bindTextureDirectly(e,t,r=!1,i=!1){let s=!1,a=t&&t._associatedChannel>-1;if(r&&a&&(this._activeChannel=t._associatedChannel),this._boundTexturesCache[this._activeChannel]!==t||i){if(this._activateCurrentTexture(),t&&t.isMultiview)throw g.Logger.Error(["_bindTextureDirectly called with a multiview texture!",e,t]),"_bindTextureDirectly called with a multiview texture!";this._gl.bindTexture(e,t?._hardwareTexture?.underlyingResource??null),this._boundTexturesCache[this._activeChannel]=t,t&&(t._associatedChannel=this._activeChannel)}else r&&(s=!0,this._activateCurrentTexture());return a&&!r&&this._bindSamplerUniformToChannel(t._associatedChannel,this._activeChannel),s}_bindTexture(e,t,r){if(void 0===e)return;t&&(t._associatedChannel=e),this._activeChannel=e;let i=t?this._getTextureTarget(t):this._gl.TEXTURE_2D;this._bindTextureDirectly(i,t)}unbindAllTextures(){for(let e=0;e<this._maxSimultaneousTextures;e++)this._activeChannel=e,this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),this.webGLVersion>1&&(this._bindTextureDirectly(this._gl.TEXTURE_3D,null),this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY,null))}setTexture(e,t,r,i){void 0!==e&&(t&&(this._boundUniforms[e]=t),this._setTexture(e,r))}_bindSamplerUniformToChannel(e,t){let r=this._boundUniforms[e];r&&r._currentState!==t&&(this._gl.uniform1i(r,t),r._currentState=t)}_getTextureWrapMode(e){switch(e){case 1:break;case 0:return this._gl.CLAMP_TO_EDGE;case 2:return this._gl.MIRRORED_REPEAT}return this._gl.REPEAT}_setTexture(e,t,r=!1,i=!1,s=""){let a;if(!t)return null!=this._boundTexturesCache[e]&&(this._activeChannel=e,this._bindTextureDirectly(this._gl.TEXTURE_2D,null),this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP,null),this.webGLVersion>1&&(this._bindTextureDirectly(this._gl.TEXTURE_3D,null),this._bindTextureDirectly(this._gl.TEXTURE_2D_ARRAY,null))),!1;if(t.video){this._activeChannel=e;let r=t.getInternalTexture();r&&(r._associatedChannel=e),t.update()}else if(4===t.delayLoadState)return t.delayLoad(),!1;a=i?t.depthStencilTexture:t.isReady()?t.getInternalTexture():t.isCube?this.emptyCubeTexture:t.is3D?this.emptyTexture3D:t.is2DArray?this.emptyTexture2DArray:this.emptyTexture,!r&&a&&(a._associatedChannel=e);let n=!0;this._boundTexturesCache[e]===a&&(r||this._bindSamplerUniformToChannel(a._associatedChannel,e),n=!1),this._activeChannel=e;let _=this._getTextureTarget(a);if(n&&this._bindTextureDirectly(_,a,r),a&&!a.isMultiview){if(a.isCube&&a._cachedCoordinatesMode!==t.coordinatesMode){a._cachedCoordinatesMode=t.coordinatesMode;let e=+(3!==t.coordinatesMode&&5!==t.coordinatesMode);t.wrapU=e,t.wrapV=e}a._cachedWrapU!==t.wrapU&&(a._cachedWrapU=t.wrapU,this._setTextureParameterInteger(_,this._gl.TEXTURE_WRAP_S,this._getTextureWrapMode(t.wrapU),a)),a._cachedWrapV!==t.wrapV&&(a._cachedWrapV=t.wrapV,this._setTextureParameterInteger(_,this._gl.TEXTURE_WRAP_T,this._getTextureWrapMode(t.wrapV),a)),a.is3D&&a._cachedWrapR!==t.wrapR&&(a._cachedWrapR=t.wrapR,this._setTextureParameterInteger(_,this._gl.TEXTURE_WRAP_R,this._getTextureWrapMode(t.wrapR),a)),this._setAnisotropicLevel(_,a,t.anisotropicFilteringLevel)}return!0}setTextureArray(e,t,r,i){if(void 0!==e&&t){this._textureUnits&&this._textureUnits.length===r.length||(this._textureUnits=new Int32Array(r.length));for(let t=0;t<r.length;t++){let i=r[t].getInternalTexture();i?(this._textureUnits[t]=e+t,i._associatedChannel=e+t):this._textureUnits[t]=-1}this._gl.uniform1iv(t,this._textureUnits);for(let e=0;e<r.length;e++)this._setTexture(this._textureUnits[e],r[e],!0)}}_setAnisotropicLevel(e,t,r){let i=this._caps.textureAnisotropicFilterExtension;11!==t.samplingMode&&3!==t.samplingMode&&2!==t.samplingMode&&(r=1),i&&t._cachedAnisotropicFilteringLevel!==r&&(this._setTextureParameterFloat(e,i.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(r,this._caps.maxAnisotropy),t),t._cachedAnisotropicFilteringLevel=r)}_setTextureParameterFloat(e,t,r,i){this._bindTextureDirectly(e,i,!0,!0),this._gl.texParameterf(e,t,r)}_setTextureParameterInteger(e,t,r,i){i&&this._bindTextureDirectly(e,i,!0,!0),this._gl.texParameteri(e,t,r)}unbindAllAttributes(){if(this._mustWipeVertexAttributes){this._mustWipeVertexAttributes=!1;for(let e=0;e<this._caps.maxVertexAttribs;e++)this.disableAttributeByIndex(e);return}for(let e=0,t=this._vertexAttribArraysEnabled.length;e<t;e++)!(e>=this._caps.maxVertexAttribs)&&this._vertexAttribArraysEnabled[e]&&this.disableAttributeByIndex(e)}releaseEffects(){this._compiledEffects={},this.onReleaseEffectsObservable.notifyObservers(this)}dispose(){(0,f.IsWindowObjectExist)()&&this._renderingCanvas&&(this._renderingCanvas.removeEventListener("webglcontextlost",this._onContextLost),this._onContextRestored&&this._renderingCanvas.removeEventListener("webglcontextrestored",this._onContextRestored)),super.dispose(),this._dummyFramebuffer&&this._gl.deleteFramebuffer(this._dummyFramebuffer),this.unbindAllAttributes(),this._boundUniforms={},this._workingCanvas=null,this._workingContext=null,this._currentBufferPointers.length=0,this._currentProgram=null,this._creationOptions.loseContextOnDispose&&this._gl.getExtension("WEBGL_lose_context")?.loseContext(),(0,u.deleteStateObject)(this._gl)}attachContextLostEvent(e){this._renderingCanvas&&this._renderingCanvas.addEventListener("webglcontextlost",e,!1)}attachContextRestoredEvent(e){this._renderingCanvas&&this._renderingCanvas.addEventListener("webglcontextrestored",e,!1)}getError(){return this._gl.getError()}_canRenderToFloatFramebuffer(){return this._webGLVersion>1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(1)}_canRenderToHalfFloatFramebuffer(){return this._webGLVersion>1?this._caps.colorBufferFloat:this._canRenderToFramebuffer(2)}_canRenderToFramebuffer(e){let t=this._gl;for(;t.getError()!==t.NO_ERROR;);let r=!0,i=t.createTexture();t.bindTexture(t.TEXTURE_2D,i),t.texImage2D(t.TEXTURE_2D,0,this._getRGBABufferInternalSizedFormat(e),1,1,0,t.RGBA,this._getWebGLTextureType(e),null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST);let s=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,s),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,i,0);let a=t.checkFramebufferStatus(t.FRAMEBUFFER);if((r=(r=r&&a===t.FRAMEBUFFER_COMPLETE)&&t.getError()===t.NO_ERROR)&&(t.clear(t.COLOR_BUFFER_BIT),r=r&&t.getError()===t.NO_ERROR),r){t.bindFramebuffer(t.FRAMEBUFFER,null);let e=t.RGBA,i=t.UNSIGNED_BYTE,s=new Uint8Array(4);t.readPixels(0,0,1,1,e,i,s),r=r&&t.getError()===t.NO_ERROR}for(t.deleteTexture(i),t.deleteFramebuffer(s),t.bindFramebuffer(t.FRAMEBUFFER,null);!r&&t.getError()!==t.NO_ERROR;);return r}_getWebGLTextureType(e){if(1===this._webGLVersion){switch(e){case 1:return this._gl.FLOAT;case 2:return this._gl.HALF_FLOAT_OES;case 0:break;case 8:return this._gl.UNSIGNED_SHORT_4_4_4_4;case 9:return this._gl.UNSIGNED_SHORT_5_5_5_1;case 10:return this._gl.UNSIGNED_SHORT_5_6_5}return this._gl.UNSIGNED_BYTE}switch(e){case 3:return this._gl.BYTE;case 0:break;case 4:return this._gl.SHORT;case 5:return this._gl.UNSIGNED_SHORT;case 6:return this._gl.INT;case 7:return this._gl.UNSIGNED_INT;case 1:return this._gl.FLOAT;case 2:return this._gl.HALF_FLOAT;case 8:return this._gl.UNSIGNED_SHORT_4_4_4_4;case 9:return this._gl.UNSIGNED_SHORT_5_5_5_1;case 10:return this._gl.UNSIGNED_SHORT_5_6_5;case 11:return this._gl.UNSIGNED_INT_2_10_10_10_REV;case 12:return this._gl.UNSIGNED_INT_24_8;case 13:return this._gl.UNSIGNED_INT_10F_11F_11F_REV;case 14:return this._gl.UNSIGNED_INT_5_9_9_9_REV;case 15:return this._gl.FLOAT_32_UNSIGNED_INT_24_8_REV}return this._gl.UNSIGNED_BYTE}_getInternalFormat(e,t=!1){let r=t?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA;switch(e){case 0:r=this._gl.ALPHA;break;case 1:r=this._gl.LUMINANCE;break;case 2:r=this._gl.LUMINANCE_ALPHA;break;case 6:case 33322:case 36760:r=this._gl.RED;break;case 7:case 33324:case 36761:r=this._gl.RG;break;case 4:case 32852:case 36762:r=t?this._glSRGBExtensionValues.SRGB:this._gl.RGB;break;case 5:case 32859:case 36763:r=t?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA}if(this._webGLVersion>1)switch(e){case 8:r=this._gl.RED_INTEGER;break;case 9:r=this._gl.RG_INTEGER;break;case 10:r=this._gl.RGB_INTEGER;break;case 11:r=this._gl.RGBA_INTEGER}return r}_getRGBABufferInternalSizedFormat(e,t,r=!1){if(1===this._webGLVersion){if(void 0!==t)switch(t){case 0:return this._gl.ALPHA;case 1:return this._gl.LUMINANCE;case 2:return this._gl.LUMINANCE_ALPHA;case 4:return r?this._glSRGBExtensionValues.SRGB:this._gl.RGB}return this._gl.RGBA}switch(e){case 3:switch(t){case 6:return this._gl.R8_SNORM;case 7:return this._gl.RG8_SNORM;case 4:return this._gl.RGB8_SNORM;case 8:return this._gl.R8I;case 9:return this._gl.RG8I;case 10:return this._gl.RGB8I;case 11:return this._gl.RGBA8I;default:return this._gl.RGBA8_SNORM}case 0:switch(t){case 6:return this._gl.R8;case 7:return this._gl.RG8;case 4:return r?this._glSRGBExtensionValues.SRGB8:this._gl.RGB8;case 5:return r?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA8;case 8:return this._gl.R8UI;case 9:return this._gl.RG8UI;case 10:return this._gl.RGB8UI;case 11:return this._gl.RGBA8UI;case 0:return this._gl.ALPHA;case 1:return this._gl.LUMINANCE;case 2:return this._gl.LUMINANCE_ALPHA;default:return this._gl.RGBA8}case 4:switch(t){case 8:return this._gl.R16I;case 36760:return this._gl.R16_SNORM_EXT;case 36761:return this._gl.RG16_SNORM_EXT;case 36762:return this._gl.RGB16_SNORM_EXT;case 36763:return this._gl.RGBA16_SNORM_EXT;case 9:return this._gl.RG16I;case 10:return this._gl.RGB16I;default:return this._gl.RGBA16I}case 5:switch(t){case 8:return this._gl.R16UI;case 33322:return this._gl.R16_EXT;case 33324:return this._gl.RG16_EXT;case 32852:return this._gl.RGB16_EXT;case 32859:return this._gl.RGBA16_EXT;case 9:return this._gl.RG16UI;case 10:return this._gl.RGB16UI;default:return this._gl.RGBA16UI}case 6:switch(t){case 8:return this._gl.R32I;case 9:return this._gl.RG32I;case 10:return this._gl.RGB32I;default:return this._gl.RGBA32I}case 7:switch(t){case 8:return this._gl.R32UI;case 9:return this._gl.RG32UI;case 10:return this._gl.RGB32UI;default:return this._gl.RGBA32UI}case 1:switch(t){case 6:return this._gl.R32F;case 7:return this._gl.RG32F;case 4:return this._gl.RGB32F;default:return this._gl.RGBA32F}case 2:switch(t){case 6:return this._gl.R16F;case 7:return this._gl.RG16F;case 4:return this._gl.RGB16F;default:return this._gl.RGBA16F}case 10:return this._gl.RGB565;case 13:return this._gl.R11F_G11F_B10F;case 14:return this._gl.RGB9_E5;case 8:return this._gl.RGBA4;case 9:return this._gl.RGB5_A1;case 11:switch(t){case 5:default:return this._gl.RGB10_A2;case 11:return this._gl.RGB10_A2UI}}return r?this._glSRGBExtensionValues.SRGB8_ALPHA8:this._gl.RGBA8}readPixels(e,t,r,i,s=!0,a=!0,n=null){let _=s?this._gl.RGBA:this._gl.RGB,l=r*i*(s?4:3);if(n){if(n.length<l)return g.Logger.Error(`Data buffer is too small to store the read pixels (${n.length} should be more than ${l})`),Promise.resolve(n)}else n=new Uint8Array(l);return a&&this.flushFramebuffer(),this._gl.readPixels(e,t,r,i,_,this._gl.UNSIGNED_BYTE,n),Promise.resolve(n)}static get IsSupportedAsync(){return Promise.resolve(this.isSupported())}static get IsSupported(){return this.isSupported()}static isSupported(){if(null!==this._HasMajorPerformanceCaveat)return!this._HasMajorPerformanceCaveat;if(null===this._IsSupported)try{let e=o.AbstractEngine._CreateCanvas(1,1),t=e.getContext("webgl")||e.getContext("experimental-webgl");this._IsSupported=null!=t&&!!globalThis.WebGLRenderingContext}catch(e){this._IsSupported=!1}return this._IsSupported}static get HasMajorPerformanceCaveat(){if(null===this._HasMajorPerformanceCaveat)try{let e=o.AbstractEngine._CreateCanvas(1,1),t=e.getContext("webgl",{failIfMajorPerformanceCaveat:!0})||e.getContext("experimental-webgl",{failIfMajorPerformanceCaveat:!0});this._HasMajorPerformanceCaveat=!t}catch(e){this._HasMajorPerformanceCaveat=!1}return this._HasMajorPerformanceCaveat}}M._TempClearColorUint32=new Uint32Array(4),M._TempClearColorInt32=new Int32Array(4),M.ExceptionList=[{key:"Chrome/63.0",capture:"63\\.0\\.3239\\.(\\d+)",captureConstraint:108,targets:["uniformBuffer"]},{key:"Firefox/58",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Firefox/59",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Chrome/72.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Chrome/73.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Chrome/74.+?Mobile",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome/71",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome/72",capture:null,captureConstraint:null,targets:["vao"]},{key:"Mac OS.+Chrome",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:"Chrome/12\\d\\..+?Mobile",capture:null,captureConstraint:null,targets:["uniformBuffer"]},{key:".*AppleWebKit.*(15.4).*Safari",capture:null,captureConstraint:null,targets:["antialias","maxMSAASamples"]},{key:".*(15.4).*AppleWebKit.*Safari",capture:null,captureConstraint:null,targets:["antialias","maxMSAASamples"]}],M._ConcatenateShader=S._ConcatenateShader,M._IsSupported=null,M._HasMajorPerformanceCaveat=null,(t=M.prototype).startTimeQuery??(t.startTimeQuery=(0,P._MissingSideEffect)("ThinEngine","startTimeQuery")),(r=M.prototype).endTimeQuery??(r.endTimeQuery=(0,P._MissingSideEffect)("ThinEngine","endTimeQuery")),(i=M.prototype).createUniformBuffer??(i.createUniformBuffer=(0,P._MissingSideEffect)("ThinEngine","createUniformBuffer")),(s=M.prototype).createDynamicUniformBuffer??(s.createDynamicUniformBuffer=(0,P._MissingSideEffect)("ThinEngine","createDynamicUniformBuffer")),(a=M.prototype).updateUniformBuffer??(a.updateUniformBuffer=(0,P._MissingSideEffect)("ThinEngine","updateUniformBuffer")),(n=M.prototype).bindUniformBuffer??(n.bindUniformBuffer=(0,P._MissingSideEffect)("ThinEngine","bindUniformBuffer")),(_=M.prototype).bindUniformBufferBase??(_.bindUniformBufferBase=(0,P._MissingSideEffect)("ThinEngine","bindUniformBufferBase")),(l=M.prototype).bindUniformBlock??(l.bindUniformBlock=(0,P._MissingSideEffect)("ThinEngine","bindUniformBlock")),e.s(["ThinEngine",0,M],71379)}]);