@splinetool/runtime 1.12.98 → 2.0.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 (365) hide show
  1. package/README.md +195 -22
  2. package/build/boolean.js +406 -2
  3. package/build/boolean.js.br +0 -0
  4. package/build/boolean.js.gz +0 -0
  5. package/build/boolean.wasm +0 -0
  6. package/build/boolean.wasm.br +0 -0
  7. package/build/boolean.wasm.gz +0 -0
  8. package/build/gaussian-splat-compression.js.br +0 -0
  9. package/build/gaussian-splat-compression.js.gz +0 -0
  10. package/build/hana-ui.js +4299 -0
  11. package/build/hana-ui.js.br +0 -0
  12. package/build/hana-ui.js.gz +0 -0
  13. package/build/hana-ui.wasm +0 -0
  14. package/build/hana-ui.wasm.br +0 -0
  15. package/build/hana-ui.wasm.gz +0 -0
  16. package/build/howler.js.br +0 -0
  17. package/build/howler.js.gz +0 -0
  18. package/build/navmesh.js.br +0 -0
  19. package/build/navmesh.js.gz +0 -0
  20. package/build/navmesh.wasm +0 -0
  21. package/build/navmesh.wasm.br +0 -0
  22. package/build/navmesh.wasm.gz +0 -0
  23. package/build/opentype.js.br +0 -0
  24. package/build/opentype.js.gz +0 -0
  25. package/build/physics.js +1 -1
  26. package/build/physics.js.br +0 -0
  27. package/build/physics.js.gz +0 -0
  28. package/build/physics.wasm +0 -0
  29. package/build/physics.wasm.br +0 -0
  30. package/build/physics.wasm.gz +0 -0
  31. package/build/process.js +2 -2
  32. package/build/process.js.br +0 -0
  33. package/build/process.js.gz +0 -0
  34. package/build/process.wasm +0 -0
  35. package/build/process.wasm.br +0 -0
  36. package/build/process.wasm.gz +0 -0
  37. package/build/runtime-DRACOLoader-TQHJ6SJB.js +1 -0
  38. package/build/runtime-DRACOLoader-TQHJ6SJB.js.br +0 -0
  39. package/build/runtime-DRACOLoader-TQHJ6SJB.js.gz +0 -0
  40. package/build/runtime-Perfs-KMJFDYHU.js +1 -0
  41. package/build/runtime-Perfs-KMJFDYHU.js.br +0 -0
  42. package/build/runtime-Perfs-KMJFDYHU.js.gz +0 -0
  43. package/build/runtime-aiAssistant-XJVJ7TQB.js +1 -0
  44. package/build/runtime-aiAssistant-XJVJ7TQB.js.br +0 -0
  45. package/build/runtime-aiAssistant-XJVJ7TQB.js.gz +0 -0
  46. package/build/runtime-apiServices-KAO5SQJZ.js +1 -0
  47. package/build/runtime-apiServices-KAO5SQJZ.js.br +0 -0
  48. package/build/runtime-apiServices-KAO5SQJZ.js.gz +0 -0
  49. package/build/runtime-audio-Y3GYW4YQ.js +1 -0
  50. package/build/runtime-audio-Y3GYW4YQ.js.br +0 -0
  51. package/build/runtime-audio-Y3GYW4YQ.js.gz +0 -0
  52. package/build/runtime-bloom-XRHHZNNT.js +1 -0
  53. package/build/runtime-bloom-XRHHZNNT.js.br +0 -0
  54. package/build/runtime-bloom-XRHHZNNT.js.gz +0 -0
  55. package/build/runtime-brightnessContrast-RHV6X2Z4.js +1 -0
  56. package/build/runtime-brightnessContrast-RHV6X2Z4.js.br +0 -0
  57. package/build/runtime-brightnessContrast-RHV6X2Z4.js.gz +0 -0
  58. package/build/runtime-chromaticAberration-LSGAMQAK.js +1 -0
  59. package/build/runtime-chromaticAberration-LSGAMQAK.js.br +0 -0
  60. package/build/runtime-chromaticAberration-LSGAMQAK.js.gz +0 -0
  61. package/build/runtime-chunk-2SYZJBYJ.js +1 -0
  62. package/build/runtime-chunk-2SYZJBYJ.js.br +0 -0
  63. package/build/runtime-chunk-2SYZJBYJ.js.gz +0 -0
  64. package/build/runtime-chunk-2Y73BLCY.js +1 -0
  65. package/build/runtime-chunk-2Y73BLCY.js.br +0 -0
  66. package/build/runtime-chunk-2Y73BLCY.js.gz +0 -0
  67. package/build/runtime-chunk-4KZXQGUQ.js +1 -0
  68. package/build/runtime-chunk-4KZXQGUQ.js.br +0 -0
  69. package/build/runtime-chunk-4KZXQGUQ.js.gz +0 -0
  70. package/build/runtime-chunk-4YV3EXSU.js +1 -0
  71. package/build/runtime-chunk-4YV3EXSU.js.br +0 -0
  72. package/build/runtime-chunk-4YV3EXSU.js.gz +0 -0
  73. package/build/runtime-chunk-A2LYIKKC.js +1 -0
  74. package/build/runtime-chunk-A2LYIKKC.js.br +0 -0
  75. package/build/runtime-chunk-A2LYIKKC.js.gz +0 -0
  76. package/build/runtime-chunk-BJVCOW72.js +1 -0
  77. package/build/runtime-chunk-BJVCOW72.js.br +0 -0
  78. package/build/runtime-chunk-BJVCOW72.js.gz +0 -0
  79. package/build/runtime-chunk-CTHMLYOZ.js +1 -0
  80. package/build/runtime-chunk-CTHMLYOZ.js.br +0 -0
  81. package/build/runtime-chunk-CTHMLYOZ.js.gz +0 -0
  82. package/build/runtime-chunk-CVUJ3GMH.js +1 -0
  83. package/build/runtime-chunk-CVUJ3GMH.js.br +0 -0
  84. package/build/runtime-chunk-CVUJ3GMH.js.gz +0 -0
  85. package/build/runtime-chunk-DZNU62CT.js +1 -0
  86. package/build/runtime-chunk-DZNU62CT.js.br +0 -0
  87. package/build/runtime-chunk-DZNU62CT.js.gz +0 -0
  88. package/build/runtime-chunk-E6JCDSXC.js +1 -0
  89. package/build/runtime-chunk-E6JCDSXC.js.br +0 -0
  90. package/build/runtime-chunk-E6JCDSXC.js.gz +0 -0
  91. package/build/runtime-chunk-EOV2DL2V.js +1 -0
  92. package/build/runtime-chunk-EOV2DL2V.js.br +0 -0
  93. package/build/runtime-chunk-EOV2DL2V.js.gz +0 -0
  94. package/build/runtime-chunk-FF5REN2J.js +1 -0
  95. package/build/runtime-chunk-FF5REN2J.js.br +0 -0
  96. package/build/runtime-chunk-FF5REN2J.js.gz +0 -0
  97. package/build/runtime-chunk-FQNSP44B.js +1 -0
  98. package/build/runtime-chunk-FQNSP44B.js.br +0 -0
  99. package/build/runtime-chunk-FQNSP44B.js.gz +0 -0
  100. package/build/runtime-chunk-FTVQTRM7.js +1 -0
  101. package/build/runtime-chunk-FTVQTRM7.js.br +0 -0
  102. package/build/runtime-chunk-FTVQTRM7.js.gz +0 -0
  103. package/build/runtime-chunk-GFTBNL2W.js +1 -0
  104. package/build/runtime-chunk-GFTBNL2W.js.br +0 -0
  105. package/build/runtime-chunk-GFTBNL2W.js.gz +0 -0
  106. package/build/runtime-chunk-HJS3VFEN.js +1 -0
  107. package/build/runtime-chunk-HJS3VFEN.js.br +0 -0
  108. package/build/runtime-chunk-HJS3VFEN.js.gz +0 -0
  109. package/build/runtime-chunk-HL3PBPHE.js +1 -0
  110. package/build/runtime-chunk-HL3PBPHE.js.br +0 -0
  111. package/build/runtime-chunk-HL3PBPHE.js.gz +0 -0
  112. package/build/runtime-chunk-I47C4XJU.js +1 -0
  113. package/build/runtime-chunk-I47C4XJU.js.br +0 -0
  114. package/build/runtime-chunk-I47C4XJU.js.gz +0 -0
  115. package/build/runtime-chunk-JFYHGEDN.js +1 -0
  116. package/build/runtime-chunk-JFYHGEDN.js.br +0 -0
  117. package/build/runtime-chunk-JFYHGEDN.js.gz +0 -0
  118. package/build/runtime-chunk-K4FLB6Y7.js +1 -0
  119. package/build/runtime-chunk-K4FLB6Y7.js.br +0 -0
  120. package/build/runtime-chunk-K4FLB6Y7.js.gz +0 -0
  121. package/build/runtime-chunk-KGZNRID6.js +1 -0
  122. package/build/runtime-chunk-KGZNRID6.js.br +1 -0
  123. package/build/runtime-chunk-KGZNRID6.js.gz +0 -0
  124. package/build/runtime-chunk-LSURXI4Y.js +1 -0
  125. package/build/runtime-chunk-LSURXI4Y.js.br +2 -0
  126. package/build/runtime-chunk-LSURXI4Y.js.gz +0 -0
  127. package/build/runtime-chunk-MBBODDV7.js +1 -0
  128. package/build/runtime-chunk-MBBODDV7.js.br +0 -0
  129. package/build/runtime-chunk-MBBODDV7.js.gz +0 -0
  130. package/build/runtime-chunk-ML3Z74BL.js +1 -0
  131. package/build/runtime-chunk-ML3Z74BL.js.br +0 -0
  132. package/build/runtime-chunk-ML3Z74BL.js.gz +0 -0
  133. package/build/runtime-chunk-MM75L5X4.js +1 -0
  134. package/build/runtime-chunk-MM75L5X4.js.br +0 -0
  135. package/build/runtime-chunk-MM75L5X4.js.gz +0 -0
  136. package/build/runtime-chunk-MRUNX43X.js +1 -0
  137. package/build/runtime-chunk-MRUNX43X.js.br +0 -0
  138. package/build/runtime-chunk-MRUNX43X.js.gz +0 -0
  139. package/build/runtime-chunk-N2ZRGNPR.js +1 -0
  140. package/build/runtime-chunk-N2ZRGNPR.js.br +0 -0
  141. package/build/runtime-chunk-N2ZRGNPR.js.gz +0 -0
  142. package/build/runtime-chunk-NBYTQLIB.js +1 -0
  143. package/build/runtime-chunk-NBYTQLIB.js.br +0 -0
  144. package/build/runtime-chunk-NBYTQLIB.js.gz +0 -0
  145. package/build/runtime-chunk-NSD7DU3P.js +1 -0
  146. package/build/runtime-chunk-NSD7DU3P.js.br +0 -0
  147. package/build/runtime-chunk-NSD7DU3P.js.gz +0 -0
  148. package/build/runtime-chunk-NTUTXO7Q.js +1 -0
  149. package/build/runtime-chunk-NTUTXO7Q.js.br +0 -0
  150. package/build/runtime-chunk-NTUTXO7Q.js.gz +0 -0
  151. package/build/runtime-chunk-OEXC34HT.js +1 -0
  152. package/build/runtime-chunk-OEXC34HT.js.br +0 -0
  153. package/build/runtime-chunk-OEXC34HT.js.gz +0 -0
  154. package/build/runtime-chunk-OFPUAZKY.js +1 -0
  155. package/build/runtime-chunk-OFPUAZKY.js.br +0 -0
  156. package/build/runtime-chunk-OFPUAZKY.js.gz +0 -0
  157. package/build/runtime-chunk-OLJVVNDS.js +1 -0
  158. package/build/runtime-chunk-OLJVVNDS.js.br +0 -0
  159. package/build/runtime-chunk-OLJVVNDS.js.gz +0 -0
  160. package/build/runtime-chunk-OW6T4XFV.js +1 -0
  161. package/build/runtime-chunk-OW6T4XFV.js.br +0 -0
  162. package/build/runtime-chunk-OW6T4XFV.js.gz +0 -0
  163. package/build/runtime-chunk-P2XISQYQ.js +1 -0
  164. package/build/runtime-chunk-P2XISQYQ.js.br +0 -0
  165. package/build/runtime-chunk-P2XISQYQ.js.gz +0 -0
  166. package/build/runtime-chunk-P3254QGK.js +1 -0
  167. package/build/runtime-chunk-P3254QGK.js.br +0 -0
  168. package/build/runtime-chunk-P3254QGK.js.gz +0 -0
  169. package/build/runtime-chunk-PPLLJM75.js +1 -0
  170. package/build/runtime-chunk-PPLLJM75.js.br +0 -0
  171. package/build/runtime-chunk-PPLLJM75.js.gz +0 -0
  172. package/build/runtime-chunk-QHPFAHXN.js +1 -0
  173. package/build/runtime-chunk-QHPFAHXN.js.br +0 -0
  174. package/build/runtime-chunk-QHPFAHXN.js.gz +0 -0
  175. package/build/runtime-chunk-QZ35BPGB.js +1 -0
  176. package/build/runtime-chunk-QZ35BPGB.js.br +0 -0
  177. package/build/runtime-chunk-QZ35BPGB.js.gz +0 -0
  178. package/build/runtime-chunk-R43XZP65.js +1 -0
  179. package/build/runtime-chunk-R43XZP65.js.br +0 -0
  180. package/build/runtime-chunk-R43XZP65.js.gz +0 -0
  181. package/build/runtime-chunk-RAX4YJZF.js +1 -0
  182. package/build/runtime-chunk-RAX4YJZF.js.br +0 -0
  183. package/build/runtime-chunk-RAX4YJZF.js.gz +0 -0
  184. package/build/runtime-chunk-RQ3ZQR4P.js +1 -0
  185. package/build/runtime-chunk-RQ3ZQR4P.js.br +0 -0
  186. package/build/runtime-chunk-RQ3ZQR4P.js.gz +0 -0
  187. package/build/runtime-chunk-SKLNU6XK.js +1 -0
  188. package/build/runtime-chunk-SKLNU6XK.js.br +0 -0
  189. package/build/runtime-chunk-SKLNU6XK.js.gz +0 -0
  190. package/build/runtime-chunk-T53JMQSH.js +1 -0
  191. package/build/runtime-chunk-T53JMQSH.js.br +0 -0
  192. package/build/runtime-chunk-T53JMQSH.js.gz +0 -0
  193. package/build/runtime-chunk-TDCFE5IE.js +1 -0
  194. package/build/runtime-chunk-TDCFE5IE.js.br +0 -0
  195. package/build/runtime-chunk-TDCFE5IE.js.gz +0 -0
  196. package/build/runtime-chunk-TU4KDRKR.js +1 -0
  197. package/build/runtime-chunk-TU4KDRKR.js.br +0 -0
  198. package/build/runtime-chunk-TU4KDRKR.js.gz +0 -0
  199. package/build/runtime-chunk-TZCHGFVF.js +1 -0
  200. package/build/runtime-chunk-TZCHGFVF.js.br +3 -0
  201. package/build/runtime-chunk-TZCHGFVF.js.gz +0 -0
  202. package/build/runtime-chunk-USXMESRF.js +1 -0
  203. package/build/runtime-chunk-USXMESRF.js.br +0 -0
  204. package/build/runtime-chunk-USXMESRF.js.gz +0 -0
  205. package/build/runtime-chunk-VAVYZ35B.js +1 -0
  206. package/build/runtime-chunk-VAVYZ35B.js.br +0 -0
  207. package/build/runtime-chunk-VAVYZ35B.js.gz +0 -0
  208. package/build/runtime-chunk-VGN7YHB7.js +1 -0
  209. package/build/runtime-chunk-VGN7YHB7.js.br +0 -0
  210. package/build/runtime-chunk-VGN7YHB7.js.gz +0 -0
  211. package/build/runtime-chunk-VRVV54WH.js +1 -0
  212. package/build/runtime-chunk-VRVV54WH.js.br +0 -0
  213. package/build/runtime-chunk-VRVV54WH.js.gz +0 -0
  214. package/build/runtime-chunk-WSJURWOC.js +1 -0
  215. package/build/runtime-chunk-WSJURWOC.js.br +0 -0
  216. package/build/runtime-chunk-WSJURWOC.js.gz +0 -0
  217. package/build/runtime-chunk-Y3BMDVJ7.js +1 -0
  218. package/build/runtime-chunk-Y3BMDVJ7.js.br +0 -0
  219. package/build/runtime-chunk-Y3BMDVJ7.js.gz +0 -0
  220. package/build/runtime-chunk-YXATXASV.js +1 -0
  221. package/build/runtime-chunk-YXATXASV.js.br +1 -0
  222. package/build/runtime-chunk-YXATXASV.js.gz +0 -0
  223. package/build/runtime-chunk-Z5OH244S.js +1 -0
  224. package/build/runtime-chunk-Z5OH244S.js.br +0 -0
  225. package/build/runtime-chunk-Z5OH244S.js.gz +0 -0
  226. package/build/runtime-classicRuntime-AMAXBOXT.js +1 -0
  227. package/build/runtime-classicRuntime-AMAXBOXT.js.br +0 -0
  228. package/build/runtime-classicRuntime-AMAXBOXT.js.gz +0 -0
  229. package/build/runtime-cloners-4W3AOAQX.js +1 -0
  230. package/build/runtime-cloners-4W3AOAQX.js.br +1 -0
  231. package/build/runtime-cloners-4W3AOAQX.js.gz +0 -0
  232. package/build/runtime-collisionBVH-KXZNWTEK.js +1 -0
  233. package/build/runtime-collisionBVH-KXZNWTEK.js.br +0 -0
  234. package/build/runtime-collisionBVH-KXZNWTEK.js.gz +0 -0
  235. package/build/runtime-components-EPAMFKSB.js +1 -0
  236. package/build/runtime-components-EPAMFKSB.js.br +0 -0
  237. package/build/runtime-components-EPAMFKSB.js.gz +0 -0
  238. package/build/runtime-conditional-3A423CXW.js +1 -0
  239. package/build/runtime-conditional-3A423CXW.js.br +0 -0
  240. package/build/runtime-conditional-3A423CXW.js.gz +0 -0
  241. package/build/runtime-createDestroy-HLHRAAC4.js +1 -0
  242. package/build/runtime-createDestroy-HLHRAAC4.js.br +0 -0
  243. package/build/runtime-createDestroy-HLHRAAC4.js.gz +0 -0
  244. package/build/runtime-depthOfField-BBWDHJYP.js +1 -0
  245. package/build/runtime-depthOfField-BBWDHJYP.js.br +0 -0
  246. package/build/runtime-depthOfField-BBWDHJYP.js.gz +0 -0
  247. package/build/runtime-dragDrop-K6LWK7FL.js +1 -0
  248. package/build/runtime-dragDrop-K6LWK7FL.js.br +0 -0
  249. package/build/runtime-dragDrop-K6LWK7FL.js.gz +0 -0
  250. package/build/runtime-fxBloom-IGFV4KJD.js +1 -0
  251. package/build/runtime-fxBloom-IGFV4KJD.js.br +0 -0
  252. package/build/runtime-fxBloom-IGFV4KJD.js.gz +0 -0
  253. package/build/runtime-fxDepthOfField-WX7WD3K4.js +1 -0
  254. package/build/runtime-fxDepthOfField-WX7WD3K4.js.br +0 -0
  255. package/build/runtime-fxDepthOfField-WX7WD3K4.js.gz +0 -0
  256. package/build/runtime-gameControls-ZJUUKNHM.js +1 -0
  257. package/build/runtime-gameControls-ZJUUKNHM.js.br +0 -0
  258. package/build/runtime-gameControls-ZJUUKNHM.js.gz +0 -0
  259. package/build/runtime-hair-AGUMVL55.js +1 -0
  260. package/build/runtime-hair-AGUMVL55.js.br +3 -0
  261. package/build/runtime-hair-AGUMVL55.js.gz +0 -0
  262. package/build/runtime-hueSaturation-X3HAZK2G.js +1 -0
  263. package/build/runtime-hueSaturation-X3HAZK2G.js.br +0 -0
  264. package/build/runtime-hueSaturation-X3HAZK2G.js.gz +0 -0
  265. package/build/runtime-mergeStaticGeometries-AOGKOEBX.js +1 -0
  266. package/build/runtime-mergeStaticGeometries-AOGKOEBX.js.br +0 -0
  267. package/build/runtime-mergeStaticGeometries-AOGKOEBX.js.gz +0 -0
  268. package/build/runtime-miscActions-L7BIGLEB.js +1 -0
  269. package/build/runtime-miscActions-L7BIGLEB.js.br +0 -0
  270. package/build/runtime-miscActions-L7BIGLEB.js.gz +0 -0
  271. package/build/runtime-mouseHover-BI5SRQSQ.js +1 -0
  272. package/build/runtime-mouseHover-BI5SRQSQ.js.br +0 -0
  273. package/build/runtime-mouseHover-BI5SRQSQ.js.gz +0 -0
  274. package/build/runtime-navmesh-UJTUAHXM.js +1 -0
  275. package/build/runtime-navmesh-UJTUAHXM.js.br +0 -0
  276. package/build/runtime-navmesh-UJTUAHXM.js.gz +0 -0
  277. package/build/runtime-noise-UF5CMIO3.js +1 -0
  278. package/build/runtime-noise-UF5CMIO3.js.br +0 -0
  279. package/build/runtime-noise-UF5CMIO3.js.gz +0 -0
  280. package/build/runtime-particles-W7YEQWJI.js +1 -0
  281. package/build/runtime-particles-W7YEQWJI.js.br +0 -0
  282. package/build/runtime-particles-W7YEQWJI.js.gz +0 -0
  283. package/build/runtime-paths-CK327WCT.js +1 -0
  284. package/build/runtime-paths-CK327WCT.js.br +0 -0
  285. package/build/runtime-paths-CK327WCT.js.gz +0 -0
  286. package/build/runtime-pixelation-QFSF4L6X.js +1 -0
  287. package/build/runtime-pixelation-QFSF4L6X.js.br +0 -0
  288. package/build/runtime-pixelation-QFSF4L6X.js.gz +0 -0
  289. package/build/runtime-resize-RUUW4IXW.js +1 -0
  290. package/build/runtime-resize-RUUW4IXW.js.br +0 -0
  291. package/build/runtime-resize-RUUW4IXW.js.gz +0 -0
  292. package/build/runtime-sceneTransition-7AG4A4P5.js +1 -0
  293. package/build/runtime-sceneTransition-7AG4A4P5.js.br +0 -0
  294. package/build/runtime-sceneTransition-7AG4A4P5.js.gz +0 -0
  295. package/build/runtime-scroll-MNQPPLQL.js +1 -0
  296. package/build/runtime-scroll-MNQPPLQL.js.br +0 -0
  297. package/build/runtime-scroll-MNQPPLQL.js.gz +0 -0
  298. package/build/runtime-shapeBlends-IP5LZ63L.js +1 -0
  299. package/build/runtime-shapeBlends-IP5LZ63L.js.br +0 -0
  300. package/build/runtime-shapeBlends-IP5LZ63L.js.gz +0 -0
  301. package/build/runtime-text-5RIKJ4US.js +1 -0
  302. package/build/runtime-text-5RIKJ4US.js.br +0 -0
  303. package/build/runtime-text-5RIKJ4US.js.gz +0 -0
  304. package/build/runtime-textInputs-YBGYTAMD.js +1 -0
  305. package/build/runtime-textInputs-YBGYTAMD.js.br +0 -0
  306. package/build/runtime-textInputs-YBGYTAMD.js.gz +0 -0
  307. package/build/runtime-timeline-32GBWMFJ.js +1 -0
  308. package/build/runtime-timeline-32GBWMFJ.js.br +0 -0
  309. package/build/runtime-timeline-32GBWMFJ.js.gz +0 -0
  310. package/build/runtime-tracking-2BXFBQQY.js +1 -0
  311. package/build/runtime-tracking-2BXFBQQY.js.br +0 -0
  312. package/build/runtime-tracking-2BXFBQQY.js.gz +0 -0
  313. package/build/runtime-transitions-6PZW2QIW.js +1 -0
  314. package/build/runtime-transitions-6PZW2QIW.js.br +0 -0
  315. package/build/runtime-transitions-6PZW2QIW.js.gz +0 -0
  316. package/build/runtime-ui2d-VEQUBXIE.js +1 -0
  317. package/build/runtime-ui2d-VEQUBXIE.js.br +0 -0
  318. package/build/runtime-ui2d-VEQUBXIE.js.gz +0 -0
  319. package/build/runtime-updater-3ELP7WMM.js +1 -0
  320. package/build/runtime-updater-3ELP7WMM.js.br +1 -0
  321. package/build/runtime-updater-3ELP7WMM.js.gz +0 -0
  322. package/build/runtime-variables-U36KPJ5V.js +1 -0
  323. package/build/runtime-variables-U36KPJ5V.js.br +0 -0
  324. package/build/runtime-variables-U36KPJ5V.js.gz +0 -0
  325. package/build/runtime-vectorShapes-4HPEEN3B.js +1 -0
  326. package/build/runtime-vectorShapes-4HPEEN3B.js.br +0 -0
  327. package/build/runtime-vectorShapes-4HPEEN3B.js.gz +0 -0
  328. package/build/runtime-video-TZNR7MEM.js +1 -0
  329. package/build/runtime-video-TZNR7MEM.js.br +0 -0
  330. package/build/runtime-video-TZNR7MEM.js.gz +0 -0
  331. package/build/runtime-vignette-3KJD4P5D.js +1 -0
  332. package/build/runtime-vignette-3KJD4P5D.js.br +0 -0
  333. package/build/runtime-vignette-3KJD4P5D.js.gz +0 -0
  334. package/build/runtime-webgpu-YNY4OXCZ.js +1 -0
  335. package/build/runtime-webgpu-YNY4OXCZ.js.br +0 -0
  336. package/build/runtime-webgpu-YNY4OXCZ.js.gz +0 -0
  337. package/build/runtime.cjs +6283 -4577
  338. package/build/runtime.js +1 -8186
  339. package/build/runtime.js.br +0 -0
  340. package/build/runtime.js.gz +0 -0
  341. package/build/runtime.standalone.js +1 -0
  342. package/build/runtime.standalone.js.br +0 -0
  343. package/build/runtime.standalone.js.gz +0 -0
  344. package/build/runtime.standalone.webgl.js +1 -0
  345. package/build/runtime.standalone.webgl.js.br +0 -0
  346. package/build/runtime.standalone.webgl.js.gz +0 -0
  347. package/build/runtime.standalone.webgpu.js +1 -0
  348. package/build/runtime.standalone.webgpu.js.br +0 -0
  349. package/build/runtime.standalone.webgpu.js.gz +0 -0
  350. package/build/runtime.standalone.webgpu.micro.js +1 -0
  351. package/build/runtime.standalone.webgpu.micro.js.br +0 -0
  352. package/build/runtime.standalone.webgpu.micro.js.gz +0 -0
  353. package/build/runtime.standalone.webgpu.min.js +1 -0
  354. package/build/runtime.standalone.webgpu.min.js.br +0 -0
  355. package/build/runtime.standalone.webgpu.min.js.gz +0 -0
  356. package/build/sky-alto.png +0 -0
  357. package/build/sky-cirrus.png +0 -0
  358. package/build/smaa-area.png +0 -0
  359. package/build/smaa-node-area.png +0 -0
  360. package/build/smaa-node-search.png +0 -0
  361. package/build/smaa-search.png +0 -0
  362. package/build/snippets/hana-82e9eb82a79dead4/js-imports.js +93 -0
  363. package/package.json +104 -89
  364. package/runtime.d.ts +301 -2
  365. package/build/ui.js +0 -3
@@ -0,0 +1 @@
1
+ import{a as r}from"./runtime-chunk-RAX4YJZF.js";import"./runtime-chunk-P3254QGK.js";import"./runtime-chunk-E6JCDSXC.js";import"./runtime-chunk-TDCFE5IE.js";import"./runtime-chunk-CTHMLYOZ.js";import"./runtime-chunk-4YV3EXSU.js";import"./runtime-chunk-NSD7DU3P.js";import{c as m}from"./runtime-chunk-2Y73BLCY.js";import"./runtime-chunk-QZ35BPGB.js";import"./runtime-chunk-4KZXQGUQ.js";import"./runtime-chunk-Z5OH244S.js";import{a as n}from"./runtime-chunk-TZCHGFVF.js";import"./runtime-chunk-OW6T4XFV.js";import"./runtime-chunk-VGN7YHB7.js";import"./runtime-chunk-ML3Z74BL.js";m.Cloner=r,n("cloners");
@@ -0,0 +1 @@
1
+ W`�ø�۴����n؜�݀�Etu���i�~��k�m��ȩ�Ir��P��AP�# �\�`�<��<^�r�>��F�H���S*���[����K8��E9,.�x� wΤ@F`�u�'�� �n#��1 �!R-X�w0��\n�hVCw�F�n���6O*@�~3���i]n9�TMq�R�Z��Ͳ8~D�O
@@ -0,0 +1 @@
1
+ import{a as e}from"./runtime-chunk-N2ZRGNPR.js";import{a as t}from"./runtime-chunk-TZCHGFVF.js";import{Dc as n,Fc as r,Oc as i,Re as o,Wc as s,Xc as a,Zc as l,a as u,j as c,jd as f,k as d,l as p,rd as y}from"./runtime-chunk-VGN7YHB7.js";import"./runtime-chunk-ML3Z74BL.js";var h=Math.pow(2,-24),m=Symbol("SKIP_GENERATION"),g={strategy:0,maxDepth:40,maxLeafSize:10,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,indirect:!1,verbose:!0,range:null,[m]:!1};function x(e,t,n){return n.min.x=t[e],n.min.y=t[e+1],n.min.z=t[e+2],n.max.x=t[e+3],n.max.y=t[e+4],n.max.z=t[e+5],n}function w(e){let t=-1,n=-1/0;for(let r=0;r<3;r++){let i=e[r+3]-e[r];i>n&&(n=i,t=r)}return t}function B(e,t){t.set(e)}function b(e,t,n){let r,i;for(let o=0;o<3;o++){let s=o+3;r=e[o],i=t[o],n[o]=r<i?r:i,r=e[s],i=t[s],n[s]=r>i?r:i}}function v(e,t,n){for(let r=0;r<3;r++){let i=t[e+2*r],o=t[e+2*r+1],s=i-o,a=i+o;s<n[r]&&(n[r]=s),a>n[r+3]&&(n[r+3]=a)}}function P(e){let t=e[3]-e[0],n=e[4]-e[1],r=e[5]-e[2];return 2*(t*n+n*r+r*t)}function A(e,t){return 65535===t[e+15]}function T(e,t){return t[e+6]}function S(e,t){return t[e+14]}function M(e){return e+8}function U(e,t){return e+8*t[e+6]}function I(e,t){return t[e+7]}function F(e,t,n,r,i){let o=1/0,s=1/0,a=1/0,l=-1/0,u=-1/0,c=-1/0,f=1/0,d=1/0,p=1/0,y=-1/0,h=-1/0,m=-1/0,g=e.offset||0;for(let r=6*(t-g),i=6*(t+n-g);r<i;r+=6){let t=e[r+0],n=e[r+1],i=t-n,g=t+n;i<o&&(o=i),g>l&&(l=g),t<f&&(f=t),t>y&&(y=t);let x=e[r+2],w=e[r+3],B=x-w,b=x+w;B<s&&(s=B),b>u&&(u=b),x<d&&(d=x),x>h&&(h=x);let v=e[r+4],P=e[r+5],A=v-P,T=v+P;A<a&&(a=A),T>c&&(c=T),v<p&&(p=v),v>m&&(m=v)}r[0]=o,r[1]=s,r[2]=a,r[3]=l,r[4]=u,r[5]=c,i[0]=f,i[1]=d,i[2]=p,i[3]=y,i[4]=h,i[5]=m}var _,z,D,V,R=(e,t)=>e.candidate-t.candidate,q=new Array(32).fill().map(()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0})),C=new Float32Array(6),H=class{constructor(){this.boundingData=new Float32Array(6)}},L=Math.pow(2,32);function E(e){return"count"in e?1:1+E(e.left)+E(e.right)}function O(e,t,n){return _=new Float32Array(n),z=new Uint32Array(n),D=new Uint16Array(n),V=new Uint8Array(n),N(e,t)}function N(e,t){let n=e/4,r=e/2,i="count"in t,o=t.boundingData;for(let e=0;e<6;e++)_[n+e]=o[e];if(i)return t.buffer?(V.set(new Uint8Array(t.buffer),e),e+t.buffer.byteLength):(z[n+6]=t.offset,D[r+14]=t.count,D[r+15]=65535,e+32);{let{left:r,right:i,splitAxis:o}=t,s=N(e+32,r),a=s/32-e/32;if(a>L)throw new Error("MeshBVH: Cannot store relative child node offset greater than 32 bits.");return z[n+6]=a,z[n+7]=o,N(s,i)}}function X(e,t){let n=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer,r=e.getRootRanges(t.range),i=r[0],o=r[r.length-1],s={offset:i.offset,count:o.offset+o.count-i.offset},a=new Float32Array(6*s.count);a.offset=s.offset,e.computePrimitiveBounds(s.offset,s.count,a),e._roots=r.map(r=>{let i=function(e,t,n,r,i,o){let{maxDepth:s,verbose:a,maxLeafSize:l,strategy:u,onProgress:c}=i,f=e.primitiveBuffer,d=e.primitiveBufferStride,p=new Float32Array(6),y=!1,h=new H;return F(t,n,r,h.boundingData,p),function e(n,r,i,o=null,c=0){if(!y&&c>=s&&(y=!0,a&&console.warn(`BVH: Max depth of ${s} reached when generating BVH. Consider increasing maxDepth.`)),i<=l||c>=s)return m(r+i),n.offset=r,n.count=i,n;let h=function(e,t,n,r,i,o){let s=-1,a=0;if(0===o)s=w(t),-1!==s&&(a=(t[s]+t[s+3])/2);else if(1===o)s=w(e),-1!==s&&(a=function(e,t,n,r){let i=0,o=e.offset;for(let s=t,a=t+n;s<a;s++)i+=e[6*(s-o)+2*r];return i/n}(n,r,i,s));else if(2===o){let o=P(e),l=1.25*i,u=n.offset||0,c=6*(r-u),f=6*(r+i-u);for(let e=0;e<3;e++){let r=t[e],u=(t[e+3]-r)/32;if(i<8){let t=[...q];t.length=i;let r=0;for(let i=c;i<f;i+=6,r++){let o=t[r];o.candidate=n[i+2*e],o.count=0;let{bounds:s,leftCacheBounds:a,rightCacheBounds:l}=o;for(let e=0;e<3;e++)l[e]=1/0,l[e+3]=-1/0,a[e]=1/0,a[e+3]=-1/0,s[e]=1/0,s[e+3]=-1/0;v(i,n,s)}t.sort(R);let u=i;for(let e=0;e<u;e++){let n=t[e];for(;e+1<u&&t[e+1].candidate===n.candidate;)t.splice(e+1,1),u--}for(let r=c;r<f;r+=6){let i=n[r+2*e];for(let e=0;e<u;e++){let o=t[e];i>=o.candidate?v(r,n,o.rightCacheBounds):(v(r,n,o.leftCacheBounds),o.count++)}}for(let n=0;n<u;n++){let r=t[n],u=r.count,c=i-r.count,f=r.leftCacheBounds,d=r.rightCacheBounds,p=0;0!==u&&(p=P(f)/o);let y=0;0!==c&&(y=P(d)/o);let h=1+1.25*(p*u+y*c);h<l&&(s=e,l=h,a=r.candidate)}}else{for(let e=0;e<32;e++){let t=q[e];t.count=0,t.candidate=r+u+e*u;let n=t.bounds;for(let e=0;e<3;e++)n[e]=1/0,n[e+3]=-1/0}for(let t=c;t<f;t+=6){let i=~~((n[t+2*e]-r)/u);i>=32&&(i=31);let o=q[i];o.count++,v(t,n,o.bounds)}let t=q[31];B(t.bounds,t.rightCacheBounds);for(let e=30;e>=0;e--){let t=q[e],n=q[e+1];b(t.bounds,n.rightCacheBounds,t.rightCacheBounds)}let d=0;for(let t=0;t<31;t++){let n=q[t],r=n.count,u=n.bounds,c=q[t+1].rightCacheBounds;0!==r&&(0===d?B(u,C):b(u,C,C)),d+=r;let f=0,p=0;0!==d&&(f=P(C)/o);let y=i-d;0!==y&&(p=P(c)/o);let h=1+1.25*(f*d+p*y);h<l&&(s=e,l=h,a=n.candidate)}}}}else console.warn(`BVH: Invalid build strategy value ${o} used.`);return{axis:s,pos:a}}(n.boundingData,o,t,r,i,u);if(-1===h.axis)return m(r+i),n.offset=r,n.count=i,n;let g=function(e,t,n,r,i,o){let s=r,a=r+i-1,l=o.pos,u=2*o.axis,c=n.offset||0;for(;;){for(;s<=a&&n[6*(s-c)+u]<l;)s++;for(;s<=a&&n[6*(a-c)+u]>=l;)a--;if(!(s<a))return s;for(let n=0;n<t;n++){let r=e[s*t+n];e[s*t+n]=e[a*t+n],e[a*t+n]=r}for(let e=0;e<6;e++){let t=s-c,r=a-c,i=n[6*t+e];n[6*t+e]=n[6*r+e],n[6*r+e]=i}s++,a--}}(f,d,t,r,i,h);if(g===r||g===r+i)m(r+i),n.offset=r,n.count=i;else{n.splitAxis=h.axis;let o=new H,s=r,a=g-r;n.left=o,F(t,s,a,o.boundingData,p),e(o,s,a,p,c+1);let l=new H,u=g,f=i-a;n.right=l,F(t,u,f,l.boundingData,p),e(l,u,f,p,c+1)}return n}(h,n,r,p),h;function m(e){c&&c((e-o.offset)/o.count)}}(e,a,r.offset,r.count,t,s),o=E(i),l=new n(32*o);return O(0,i,l),l})}var j,Z,k=class{constructor(e){this._getNewPrimitive=e,this._primitives=[]}getPrimitive(){let e=this._primitives;return 0===e.length?this._getNewPrimitive():e.pop()}releasePrimitive(e){this._primitives.push(e)}},G=new class{constructor(){this.float32Array=null,this.uint16Array=null,this.uint32Array=null;let e=[],t=null;this.setBuffer=n=>{t&&e.push(t),t=n,this.float32Array=new Float32Array(n),this.uint16Array=new Uint16Array(n),this.uint32Array=new Uint32Array(n)},this.clearBuffer=()=>{t=null,this.float32Array=null,this.uint16Array=null,this.uint32Array=null,0!==e.length&&this.setBuffer(e.pop())}}},Y=[],W=new k(()=>new a);function $(e,t,n,r,i,o){j=W.getPrimitive(),Z=W.getPrimitive(),Y.push(j,Z),G.setBuffer(e._roots[t]);let s=K(0,e.geometry,n,r,i,o);G.clearBuffer(),W.releasePrimitive(j),W.releasePrimitive(Z),Y.pop(),Y.pop();let a=Y.length;return a>0&&(Z=Y[a-1],j=Y[a-2]),s}function K(e,t,n,r,i=null,o=0,s=0){let{float32Array:a,uint16Array:l,uint32Array:u}=G,c=2*e;if(A(c,l)){let t=T(e,u),n=S(c,l);return x(e,a,j),r(t,n,!1,s,o+e/8,j)}{let c,f,d,p,y=function(e){let{uint16Array:t,uint32Array:n}=G,r=2*e;for(;!A(r,t);)r=2*(e=M(e));return T(e,n)},h=function(e){let{uint16Array:t,uint32Array:n}=G,r=2*e;for(;!A(r,t);)r=2*(e=U(e,n));return T(e,n)+S(r,t)},m=M(e),g=U(e,u),w=m,B=g;if(i&&(d=j,p=Z,x(w,a,d),x(B,a,p),c=i(d),f=i(p),f<c)){w=g,B=m;let e=c;c=f,f=e,d=p}d||(d=j,x(w,a,d));let b,v=n(d,A(2*w,l),c,s+1,o+w/8);if(2===v){let e=y(w);b=r(e,h(w)-e,!0,s+1,o+w/8,d)}else b=v&&K(w,t,n,r,i,o,s+1);if(b)return!0;p=Z,x(B,a,p);let P,I=n(p,A(2*B,l),f,s+1,o+B/8);if(2===I){let e=y(B);P=r(e,h(B)-e,!0,s+1,o+B/8,p)}else P=I&&K(B,t,n,r,i,o,s+1);return!!P}}var J=new G.constructor,Q=new G.constructor,ee=new k(()=>new a),te=new a,ne=new a,re=new a,ie=new a,oe=!1;function se(e,t,n,r,i,o=0,s=0,a=0,l=0,u=null,c=!1){let f,d;c?(f=Q,d=J):(f=J,d=Q);let p=f.float32Array,y=f.uint32Array,h=f.uint16Array,m=d.float32Array,g=d.uint32Array,w=d.uint16Array,B=2*t,b=A(2*e,h),v=A(B,w),P=!1;if(v&&b)P=c?i(T(t,g),S(2*t,w),T(e,y),S(2*e,h),l,s+t/8,a,o+e/8):i(T(e,y),S(2*e,h),T(t,g),S(2*t,w),a,o+e/8,l,s+t/8);else if(v){let u=ee.getPrimitive();x(t,m,u),u.applyMatrix4(n);let f=M(e),d=U(e,y);x(f,p,te),x(d,p,ne);let h=u.intersectsBox(te),g=u.intersectsBox(ne);P=h&&se(t,f,r,n,i,s,o,l,a+1,u,!c)||g&&se(t,d,r,n,i,s,o,l,a+1,u,!c),ee.releasePrimitive(u)}else{let f=M(t),d=U(t,g);x(f,m,re),x(d,m,ie);let h=u.intersectsBox(re),w=u.intersectsBox(ie);if(h&&w)P=se(e,f,n,r,i,o,s,a,l+1,u,c)||se(e,d,n,r,i,o,s,a,l+1,u,c);else if(h)if(b)P=se(e,f,n,r,i,o,s,a,l+1,u,c);else{let t=ee.getPrimitive();t.copy(re).applyMatrix4(n);let u=M(e),d=U(e,y);x(u,p,te),x(d,p,ne);let h=t.intersectsBox(te),m=t.intersectsBox(ne);P=h&&se(f,u,r,n,i,s,o,l,a+1,t,!c)||m&&se(f,d,r,n,i,s,o,l,a+1,t,!c),ee.releasePrimitive(t)}else if(w)if(b)P=se(e,d,n,r,i,o,s,a,l+1,u,c);else{let t=ee.getPrimitive();t.copy(ie).applyMatrix4(n);let u=M(e),f=U(e,y);x(u,p,te),x(f,p,ne);let h=t.intersectsBox(te),m=t.intersectsBox(ne);P=h&&se(d,u,r,n,i,s,o,l,a+1,t,!c)||m&&se(d,f,r,n,i,s,o,l,a+1,t,!c),ee.releasePrimitive(t)}}return P}var ae=new a,le=new Float32Array(6),ue=class{constructor(){this._roots=null,this.primitiveBuffer=null,this.primitiveBufferStride=null}init(e){X(this,e={...g,...e})}getRootRanges(){throw new Error("BVH: getRootRanges() not implemented")}writePrimitiveBounds(){throw new Error("BVH: writePrimitiveBounds() not implemented")}writePrimitiveRangeBounds(e,t,n,r){let i=1/0,o=1/0,s=1/0,a=-1/0,l=-1/0,u=-1/0;for(let n=e,r=e+t;n<r;n++){this.writePrimitiveBounds(n,le,0);let[e,t,r,c,f,d]=le;e<i&&(i=e),c>a&&(a=c),t<o&&(o=t),f>l&&(l=f),r<s&&(s=r),d>u&&(u=d)}return n[r+0]=i,n[r+1]=o,n[r+2]=s,n[r+3]=a,n[r+4]=l,n[r+5]=u,n}computePrimitiveBounds(e,t,n){let r=n.offset||0;for(let i=e,o=e+t;i<o;i++){this.writePrimitiveBounds(i,le,0);let[e,t,o,s,a,l]=le,u=(e+s)/2,c=(t+a)/2,f=(o+l)/2,d=(s-e)/2,p=(a-t)/2,y=(l-o)/2,m=6*(i-r);n[m+0]=u,n[m+1]=d+(Math.abs(u)+d)*h,n[m+2]=c,n[m+3]=p+(Math.abs(c)+p)*h,n[m+4]=f,n[m+5]=y+(Math.abs(f)+y)*h}return n}shiftPrimitiveOffsets(e){let t=this._indirectBuffer;if(t)for(let n=0,r=t.length;n<r;n++)t[n]+=e;else{let t=this._roots;for(let n=0;n<t.length;n++){let r=t[n],i=new Uint32Array(r),o=new Uint16Array(r),s=r.byteLength/32;for(let t=0;t<s;t++){let n=8*t;A(2*n,o)&&(i[n+6]+=e)}}}}traverse(e,t=0){let n=this._roots[t],r=new Uint32Array(n),i=new Uint16Array(n);!function t(o,s=0){let a=2*o,l=A(a,i);if(l){let t=r[o+6],u=i[a+14];e(s,l,new Float32Array(n,4*o,6),t,u)}else{let i=M(o),a=U(o,r),u=I(o,r);e(s,l,new Float32Array(n,4*o,6),u)||(t(i,s+1),t(a,s+1))}}(0)}refit(){let e=this._roots;for(let t=0,n=e.length;t<n;t++){let n=e[t],r=new Uint32Array(n),i=new Uint16Array(n),o=new Float32Array(n);for(let e=n.byteLength/32-1;e>=0;e--){let t=8*e,n=2*t;if(A(n,i)){let e=T(t,r),s=S(n,i);this.writePrimitiveRangeBounds(e,s,le,0),o.set(le,t)}else{let e=M(t),n=U(t,r);for(let r=0;r<3;r++){let i=o[e+r],s=o[e+r+3],a=o[n+r],l=o[n+r+3];o[t+r]=i<a?i:a,o[t+r+3]=s>l?s:l}}}}}getBoundingBox(e){return e.makeEmpty(),this._roots.forEach(t=>{x(0,new Float32Array(t),ae),e.union(ae)}),e}shapecast(e){let{boundsTraverseOrder:t,intersectsBounds:n,intersectsRange:r,intersectsPrimitive:i,scratchPrimitive:o,iterate:s}=e;if(r&&i){let e=r;r=(t,n,r,a,l)=>!!e(t,n,r,a,l)||s(t,n,this,i,r,a,o)}else r||(r=i?(e,t,n,r)=>s(e,t,this,i,n,r,o):(e,t,n)=>n);let a=!1,l=0,u=this._roots;for(let e=0,i=u.length;e<i;e++){let i=u[e];if(a=$(this,e,n,r,t,l),a)break;l+=i.byteLength/32}return a}bvhcast(e,t,n){let{intersectsRanges:r}=n;return function(e,t,n,r){if(oe)throw new Error("MeshBVH: Recursive calls to bvhcast not supported.");oe=!0;let o,s=e._roots,a=t._roots,l=0,u=0,c=(new i).copy(n).invert();for(let e=0,t=s.length;e<t;e++){J.setBuffer(s[e]),u=0;let t=ee.getPrimitive();x(0,J.float32Array,t),t.applyMatrix4(c);for(let e=0,i=a.length;e<i&&(Q.setBuffer(a[e]),o=se(0,0,n,c,r,l,u,0,0,t),Q.clearBuffer(),u+=a[e].byteLength/32,!o);e++);if(ee.releasePrimitive(t),J.clearBuffer(),l+=s[e].byteLength/32,o)break}return oe=!1,o}(this,e,t,r)}};function ce(e){return e.index?e.index.count:e.attributes.position.count}function fe(e){return ce(e)/3}function de(e,t,n){let r=function(e,t,n){let r=ce(e)/n,i=t||e.drawRange,o=i.start/n,s=(i.start+i.count)/n,a=Math.max(0,o),l=Math.min(r,s)-a;return{offset:Math.floor(a),count:Math.floor(l)}}(e,t,n),i=function(e,t){return e.groups.map(e=>({offset:e.start/t,count:e.count/t}))}(e,n);if(!i.length)return[r];let o=[],s=r.offset,a=r.offset+r.count,l=ce(e)/n,u=[];for(let e of i){let{offset:t,count:n}=e,r=t,i=t+(isFinite(n)?n:l-t);r<a&&i>s&&(u.push({pos:Math.max(s,r),isStart:!0}),u.push({pos:Math.min(a,i),isStart:!1}))}u.sort((e,t)=>e.pos!==t.pos?e.pos-t.pos:"end"===e.type?-1:1);let c=0,f=null;for(let e of u){let t=e.pos;0!==c&&t!==f&&o.push({offset:f,count:t-f}),c+=e.isStart?1:-1,f=t}return o}var pe=class extends ue{get indirect(){return!!this._indirectBuffer}get primitiveStride(){return null}get primitiveBufferStride(){return this.indirect?1:this.primitiveStride}set primitiveBufferStride(e){}get primitiveBuffer(){return this.indirect?this._indirectBuffer:this.geometry.index.array}set primitiveBuffer(e){}constructor(e,t={}){if(!e.isBufferGeometry)throw new Error("BVH: Only BufferGeometries are supported.");if(e.index&&e.index.isInterleavedBufferAttribute)throw new Error("BVH: InterleavedBufferAttribute is not supported for the index attribute.");if(t.useSharedArrayBuffer&&!(typeof SharedArrayBuffer<"u"))throw new Error("BVH: SharedArrayBuffer is not available.");super(),this.geometry=e,this.resolvePrimitiveIndex=t.indirect?e=>this._indirectBuffer[e]:e=>e,this.primitiveBuffer=null,this.primitiveBufferStride=null,this._indirectBuffer=null,(t={...g,...t})[m]||this.init(t)}init(e){let{geometry:t,primitiveStride:n}=this;if(e.indirect){let r=function(e,t){let n=e[e.length-1],r=n.offset+n.count>65536,i=e.reduce((e,t)=>e+t.count,0),o=r?4:2,s=t?new SharedArrayBuffer(i*o):new ArrayBuffer(i*o),a=r?new Uint32Array(s):new Uint16Array(s),l=0;for(let t=0;t<e.length;t++){let{offset:n,count:r}=e[t];for(let e=0;e<r;e++)a[l+e]=n+e;l+=r}return a}(de(t,e.range,n),e.useSharedArrayBuffer);this._indirectBuffer=r}else!function(e,t){if(!e.index){let n=e.attributes.position.count,r=function(e,t=ArrayBuffer){return e>65535?new Uint32Array(new t(4*e)):new Uint16Array(new t(2*e))}(n,t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer);e.setIndex(new l(r,1));for(let e=0;e<n;e++)r[e]=e}}(t,e);super.init(e),!t.boundingBox&&e.setBoundingBox&&(t.boundingBox=this.getBoundingBox(new a))}getRootRanges(e){return this.indirect?[{offset:0,count:this._indirectBuffer.length}]:de(this.geometry,e,this.primitiveStride)}raycastObject3D(){throw new Error("BVH: raycastObject3D() not implemented")}},ye=class{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(e,t){let n=1/0,r=-1/0;for(let i=0,o=e.length;i<o;i++){let o=e[i][t];n=o<n?o:n,r=o>r?o:r}this.min=n,this.max=r}setFromPoints(e,t){let n=1/0,r=-1/0;for(let i=0,o=t.length;i<o;i++){let o=t[i],s=e.dot(o);n=s<n?s:n,r=s>r?s:r}this.min=n,this.max=r}isSeparated(e){return this.min>e.max||e.min>this.max}};ye.prototype.setFromBox=function(){let e=new r;return function(t,n){let r=n.min,i=n.max,o=1/0,s=-1/0;for(let n=0;n<=1;n++)for(let a=0;a<=1;a++)for(let l=0;l<=1;l++){e.x=r.x*n+i.x*(1-n),e.y=r.y*a+i.y*(1-a),e.z=r.z*l+i.z*(1-l);let u=t.dot(e);o=Math.min(u,o),s=Math.max(u,s)}this.min=o,this.max=s}}(),new ye;var he=function(){let e=new r,t=new r,n=new r;return function(r,i,o){let s=r.start,a=e,l=i.start,u=t;n.subVectors(s,l),e.subVectors(r.end,r.start),t.subVectors(i.end,i.start);let c,f,d=n.dot(u),p=u.dot(a),y=u.dot(u),h=n.dot(a),m=a.dot(a)*y-p*p;c=0!==m?(d*p-h*y)/m:0,f=(d+c*p)/y,o.x=c,o.y=f}}(),me=function(){let e=new n,t=new r,i=new r;return function(n,r,o,s){he(n,r,e);let a=e.x,l=e.y;if(a>=0&&a<=1&&l>=0&&l<=1)return n.at(a,o),void r.at(l,s);if(a>=0&&a<=1)return l<0?r.at(0,s):r.at(1,s),void n.closestPointToPoint(s,!0,o);if(l>=0&&l<=1)return a<0?n.at(0,o):n.at(1,o),void r.closestPointToPoint(o,!0,s);{let e,u;e=a<0?n.start:n.end,u=l<0?r.start:r.end;let c=t,f=i;return n.closestPointToPoint(u,!0,t),r.closestPointToPoint(e,!0,i),c.distanceToSquared(u)<=f.distanceToSquared(e)?(o.copy(c),void s.copy(u)):(o.copy(e),void s.copy(f))}}}(),ge=function(){let e=new r,t=new r,n=new y,i=new o;return function(r,o){let{radius:s,center:a}=r,{a:l,b:u,c:c}=o;if(i.start=l,i.end=u,i.closestPointToPoint(a,!0,e).distanceTo(a)<=s||(i.start=l,i.end=c,i.closestPointToPoint(a,!0,e).distanceTo(a)<=s)||(i.start=u,i.end=c,i.closestPointToPoint(a,!0,e).distanceTo(a)<=s))return!0;let f=o.getPlane(n);if(Math.abs(f.distanceToPoint(a))<=s){let e=f.projectPoint(a,t);if(o.containsPoint(e))return!0}return!1}}(),xe=["x","y","z"],we=1e-15;function Be(e){return Math.abs(e)<we}var be=class extends s{constructor(...e){super(...e),this.isExtendedTriangle=!0,this.satAxes=new Array(4).fill().map(()=>new r),this.satBounds=new Array(4).fill().map(()=>new ye),this.points=[this.a,this.b,this.c],this.plane=new y,this.isDegenerateIntoSegment=!1,this.isDegenerateIntoPoint=!1,this.degenerateSegment=new o,this.needsUpdate=!0}intersectsSphere(e){return ge(e,this)}update(){let e=this.a,t=this.b,n=this.c,r=this.points,i=this.satAxes,o=this.satBounds,s=i[0],a=o[0];this.getNormal(s),a.setFromPoints(s,r);let l=i[1],u=o[1];l.subVectors(e,t),u.setFromPoints(l,r);let c=i[2],f=o[2];c.subVectors(t,n),f.setFromPoints(c,r);let d=i[3],p=o[3];d.subVectors(n,e),p.setFromPoints(d,r);let y=l.length(),h=c.length(),m=d.length();this.isDegenerateIntoPoint=!1,this.isDegenerateIntoSegment=!1,y<we?h<we||m<we?this.isDegenerateIntoPoint=!0:(this.isDegenerateIntoSegment=!0,this.degenerateSegment.start.copy(e),this.degenerateSegment.end.copy(n)):h<we?m<we?this.isDegenerateIntoPoint=!0:(this.isDegenerateIntoSegment=!0,this.degenerateSegment.start.copy(t),this.degenerateSegment.end.copy(e)):m<we&&(this.isDegenerateIntoSegment=!0,this.degenerateSegment.start.copy(n),this.degenerateSegment.end.copy(t)),this.plane.setFromNormalAndCoplanarPoint(s,e),this.needsUpdate=!1}};be.prototype.closestPointToSegment=function(){let e=new r,t=new r,n=new o;return function(r,i=null,o=null){let s,{start:a,end:l}=r,u=this.points,c=1/0;for(let a=0;a<3;a++){let l=(a+1)%3;n.start.copy(u[a]),n.end.copy(u[l]),me(n,r,e,t),s=e.distanceToSquared(t),s<c&&(c=s,i&&i.copy(e),o&&o.copy(t))}return this.closestPointToPoint(a,e),s=a.distanceToSquared(e),s<c&&(c=s,i&&i.copy(e),o&&o.copy(a)),this.closestPointToPoint(l,e),s=l.distanceToSquared(e),s<c&&(c=s,i&&i.copy(e),o&&o.copy(l)),Math.sqrt(c)}}(),be.prototype.intersectsTriangle=function(){let e=new be,t=new ye,i=new ye,s=new r,a=new r,l=new r,u=new r,c=new o,f=new o,d=new r,p=new n,y=new n;function h(e,n,r,o){let a=s;e.isDegenerateIntoPoint||e.isDegenerateIntoSegment?a.copy(n.plane.normal):a.copy(e.plane.normal);let l=e.satBounds,c=e.satAxes;for(let r=1;r<4;r++){let o=l[r],s=c[r];if(t.setFromPoints(s,n.points),o.isSeparated(t)||(u.copy(a).cross(s),t.setFromPoints(u,e.points),i.setFromPoints(u,n.points),t.isSeparated(i)))return!1}let f=n.satBounds,d=n.satAxes;for(let r=1;r<4;r++){let o=f[r],s=d[r];if(t.setFromPoints(s,e.points),o.isSeparated(t)||(u.crossVectors(a,s),t.setFromPoints(u,e.points),i.setFromPoints(u,n.points),t.isSeparated(i)))return!1}return r&&(o||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),r.start.set(0,0,0),r.end.set(0,0,0)),!0}function m(e,t,n,r,i,o,s,a,l,u,c){let f=s/(s-a);u.x=r+(i-r)*f,c.start.subVectors(t,e).multiplyScalar(f).add(e),f=s/(s-l),u.y=r+(o-r)*f,c.end.subVectors(n,e).multiplyScalar(f).add(e)}function g(e,t,n,r,i,o,s,a,l,u,c){if(i>0)m(e.c,e.a,e.b,r,t,n,l,s,a,u,c);else if(o>0)m(e.b,e.a,e.c,n,t,r,a,s,l,u,c);else if(a*l>0||0!=s)m(e.a,e.b,e.c,t,n,r,s,a,l,u,c);else if(0!=a)m(e.b,e.a,e.c,n,t,r,a,s,l,u,c);else{if(0==l)return!0;m(e.c,e.a,e.b,r,t,n,l,s,a,u,c)}return!1}function x(e,t,n,r){let i=t.degenerateSegment,o=e.plane.distanceToPoint(i.start),a=e.plane.distanceToPoint(i.end);return Be(o)?Be(a)?h(e,t,n,r):(n&&(n.start.copy(i.start),n.end.copy(i.start)),e.containsPoint(i.start)):Be(a)?(n&&(n.start.copy(i.end),n.end.copy(i.end)),e.containsPoint(i.end)):null!=e.plane.intersectLine(i,s)&&(n&&(n.start.copy(s),n.end.copy(s)),e.containsPoint(s))}function w(e,t,n){let r=t.a;return!(!Be(e.plane.distanceToPoint(r))||!e.containsPoint(r)||(n&&(n.start.copy(r),n.end.copy(r)),0))}function B(e,t,n){let r=e.degenerateSegment,i=t.a;return r.closestPointToPoint(i,!0,s),i.distanceToSquared(s)<1e-30&&(n&&(n.start.copy(i),n.end.copy(i)),!0)}return function(t,n=null,r=!1){this.needsUpdate&&this.update(),t.isExtendedTriangle?t.needsUpdate&&t.update():(e.copy(t),e.update(),t=e);let i=function(e,t,n,r){if(e.isDegenerateIntoSegment){if(t.isDegenerateIntoSegment){let r=e.degenerateSegment,i=t.degenerateSegment,o=a,u=l;r.delta(o),i.delta(u);let c=s.subVectors(i.start,r.start),f=o.x*u.y-o.y*u.x;if(Be(f))return!1;let d=(c.x*u.y-c.y*u.x)/f,p=-(o.x*c.y-o.y*c.x)/f;return!(d<0||d>1||p<0||p>1||!Be(r.start.z+o.z*d-(i.start.z+u.z*p))||(n&&(n.start.copy(r.start).addScaledVector(o,d),n.end.copy(r.start).addScaledVector(o,d)),0))}return t.isDegenerateIntoPoint?B(e,t,n):x(t,e,n,r)}return e.isDegenerateIntoPoint?t.isDegenerateIntoPoint?t.a.distanceToSquared(e.a)<1e-30&&(n&&(n.start.copy(e.a),n.end.copy(e.a)),!0):t.isDegenerateIntoSegment?B(t,e,n):w(t,e,n):t.isDegenerateIntoPoint?w(e,t,n):t.isDegenerateIntoSegment?x(e,t,n,r):void 0}(this,t,n,r);if(void 0!==i)return i;let o=this.plane,u=t.plane,m=u.distanceToPoint(this.a),b=u.distanceToPoint(this.b),v=u.distanceToPoint(this.c);Be(m)&&(m=0),Be(b)&&(b=0),Be(v)&&(v=0);let P=m*b,A=m*v;if(P>0&&A>0)return!1;let T=o.distanceToPoint(t.a),S=o.distanceToPoint(t.b),M=o.distanceToPoint(t.c);Be(T)&&(T=0),Be(S)&&(S=0),Be(M)&&(M=0);let U=T*S,I=T*M;if(U>0&&I>0)return!1;a.copy(o.normal),l.copy(u.normal);let F=a.cross(l),_=0,z=Math.abs(F.x),D=Math.abs(F.y);D>z&&(z=D,_=1),Math.abs(F.z)>z&&(_=2);let V=xe[_],R=this.a[V],q=this.b[V],C=this.c[V],H=t.a[V],L=t.b[V],E=t.c[V];if(g(this,R,q,C,P,A,m,b,v,p,c))return h(this,t,n,r);if(g(t,H,L,E,U,I,T,S,M,y,f))return h(this,t,n,r);if(p.y<p.x){let e=p.y;p.y=p.x,p.x=e,d.copy(c.start),c.start.copy(c.end),c.end.copy(d)}if(y.y<y.x){let e=y.y;y.y=y.x,y.x=e,d.copy(f.start),f.start.copy(f.end),f.end.copy(d)}return!(p.y<y.x||y.y<p.x||(n&&(y.x>p.x?n.start.copy(f.start):n.start.copy(c.start),y.y<p.y?n.end.copy(f.end):n.end.copy(c.end)),0))}}(),be.prototype.distanceToPoint=function(){let e=new r;return function(t){return this.closestPointToPoint(t,e),t.distanceTo(e)}}(),be.prototype.distanceToTriangle=function(){let e=new r,t=new r,n=["a","b","c"],i=new o,s=new o;return function(r,o=null,a=null){let l=o||a?i:null;if(this.intersectsTriangle(r,l,!0))return(o||a)&&(o&&l.getCenter(o),a&&l.getCenter(a)),0;let u=1/0;for(let t=0;t<3;t++){let i,s=n[t],l=r[s];this.closestPointToPoint(l,e),i=l.distanceToSquared(e),i<u&&(u=i,o&&o.copy(e),a&&a.copy(l));let c=this[s];r.closestPointToPoint(c,e),i=c.distanceToSquared(e),i<u&&(u=i,o&&o.copy(c),a&&a.copy(e))}for(let l=0;l<3;l++){let c=n[l],f=n[(l+1)%3];i.set(this[c],this[f]);for(let l=0;l<3;l++){let c=n[l],f=n[(l+1)%3];s.set(r[c],r[f]),me(i,s,e,t);let d=e.distanceToSquared(t);d<u&&(u=d,o&&o.copy(e),a&&a.copy(t))}}return Math.sqrt(u)}}();var ve=class{constructor(e,t,n){this.isOrientedBox=!0,this.min=new r,this.max=new r,this.matrix=new i,this.invMatrix=new i,this.points=new Array(8).fill().map(()=>new r),this.satAxes=new Array(3).fill().map(()=>new r),this.satBounds=new Array(3).fill().map(()=>new ye),this.alignedSatBounds=new Array(3).fill().map(()=>new ye),this.needsUpdate=!1,e&&this.min.copy(e),t&&this.max.copy(t),n&&this.matrix.copy(n)}set(e,t,n){this.min.copy(e),this.max.copy(t),this.matrix.copy(n),this.needsUpdate=!0}copy(e){this.min.copy(e.min),this.max.copy(e.max),this.matrix.copy(e.matrix),this.needsUpdate=!0}};ve.prototype.update=function(){let e=this.matrix,t=this.min,n=this.max,r=this.points;for(let i=0;i<=1;i++)for(let o=0;o<=1;o++)for(let s=0;s<=1;s++){let a=r[1*i|2*o|4*s];a.x=i?n.x:t.x,a.y=o?n.y:t.y,a.z=s?n.z:t.z,a.applyMatrix4(e)}let i=this.satBounds,o=this.satAxes,s=r[0];for(let e=0;e<3;e++){let t=o[e],n=i[e],a=r[1<<e];t.subVectors(s,a),n.setFromPoints(t,r)}let a=this.alignedSatBounds;a[0].setFromPointsField(r,"x"),a[1].setFromPointsField(r,"y"),a[2].setFromPointsField(r,"z"),this.invMatrix.copy(this.matrix).invert(),this.needsUpdate=!1},ve.prototype.intersectsBox=function(){let e=new ye;return function(t){this.needsUpdate&&this.update();let n=t.min,r=t.max,i=this.satBounds,o=this.satAxes,s=this.alignedSatBounds;if(e.min=n.x,e.max=r.x,s[0].isSeparated(e)||(e.min=n.y,e.max=r.y,s[1].isSeparated(e))||(e.min=n.z,e.max=r.z,s[2].isSeparated(e)))return!1;for(let n=0;n<3;n++){let r=o[n],s=i[n];if(e.setFromBox(r,t),s.isSeparated(e))return!1}return!0}}(),ve.prototype.intersectsTriangle=function(){let e=new be,t=new Array(3),n=new ye,i=new ye,o=new r;return function(r){this.needsUpdate&&this.update(),r.isExtendedTriangle?r.needsUpdate&&r.update():(e.copy(r),e.update(),r=e);let s=this.satBounds,a=this.satAxes;t[0]=r.a,t[1]=r.b,t[2]=r.c;for(let e=0;e<3;e++){let r=s[e],i=a[e];if(n.setFromPoints(i,t),r.isSeparated(n))return!1}let l=r.satBounds,u=r.satAxes,c=this.points;for(let e=0;e<3;e++){let t=l[e],r=u[e];if(n.setFromPoints(r,c),t.isSeparated(n))return!1}for(let e=0;e<3;e++){let r=a[e];for(let e=0;e<4;e++){let s=u[e];if(o.crossVectors(r,s),n.setFromPoints(o,t),i.setFromPoints(o,c),n.isSeparated(i))return!1}}return!0}}(),ve.prototype.closestPointToPoint=function(e,t){return this.needsUpdate&&this.update(),t.copy(e).applyMatrix4(this.invMatrix).clamp(this.min,this.max).applyMatrix4(this.matrix),t},ve.prototype.distanceToPoint=function(){let e=new r;return function(t){return this.closestPointToPoint(t,e),t.distanceTo(e)}}(),ve.prototype.distanceToBox=function(){let e=["x","y","z"],t=new Array(12).fill().map(()=>new o),n=new Array(12).fill().map(()=>new o),i=new r,s=new r;return function(r,o=0,a=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(r))return(a||l)&&(r.getCenter(s),this.closestPointToPoint(s,i),r.closestPointToPoint(i,s),a&&a.copy(i),l&&l.copy(s)),0;let u=o*o,c=r.min,f=r.max,d=this.points,p=1/0;for(let e=0;e<8;e++){let t=d[e];s.copy(t).clamp(c,f);let n=t.distanceToSquared(s);if(n<p&&(p=n,a&&a.copy(t),l&&l.copy(s),n<u))return Math.sqrt(n)}let y=0;for(let r=0;r<3;r++)for(let i=0;i<=1;i++)for(let o=0;o<=1;o++){let s=(r+1)%3,a=(r+2)%3,l=1<<r|i<<s|o<<a,u=d[i<<s|o<<a],p=d[l];t[y].set(u,p);let h=e[r],m=e[s],g=e[a],x=n[y],w=x.start,B=x.end;w[h]=c[h],w[m]=i?c[m]:f[m],w[g]=o?c[g]:f[m],B[h]=f[h],B[m]=i?c[m]:f[m],B[g]=o?c[g]:f[m],y++}for(let e=0;e<=1;e++)for(let t=0;t<=1;t++)for(let n=0;n<=1;n++){s.x=e?f.x:c.x,s.y=t?f.y:c.y,s.z=n?f.z:c.z,this.closestPointToPoint(s,i);let r=s.distanceToSquared(i);if(r<p&&(p=r,a&&a.copy(i),l&&l.copy(s),r<u))return Math.sqrt(r)}for(let e=0;e<12;e++){let r=t[e];for(let e=0;e<12;e++){let t=n[e];me(r,t,i,s);let o=i.distanceToSquared(s);if(o<p&&(p=o,a&&a.copy(i),l&&l.copy(s),o<u))return Math.sqrt(o)}}return Math.sqrt(p)}}();var Pe=new class extends k{constructor(){super(()=>new be)}},Ae=new r,Te=new r,Se=parseInt(u)>=169,Me=parseInt(u)<=161,Ue=new r,Ie=new r,Fe=new r,_e=new n,ze=new n,De=new n,Ve=new r,Re=new r,qe=new r,Ce=new r;function He(e,t,i,o,a,l,u,c,f,y,h){Ue.fromBufferAttribute(t,l),Ie.fromBufferAttribute(t,u),Fe.fromBufferAttribute(t,c);let m=function(e,t,n,r,i,o,s,a){let l;if(l=o===d?e.intersectTriangle(r,n,t,!0,i):e.intersectTriangle(t,n,r,o!==p,i),null===l)return null;let u=e.origin.distanceTo(i);return u<s||u>a?null:{distance:u,point:i.clone()}}(e,Ue,Ie,Fe,Ce,f,y,h);if(m){if(o){_e.fromBufferAttribute(o,l),ze.fromBufferAttribute(o,u),De.fromBufferAttribute(o,c),m.uv=new n;let e=s.getInterpolation(Ce,Ue,Ie,Fe,_e,ze,De,m.uv);Se||(m.uv=e)}if(a){_e.fromBufferAttribute(a,l),ze.fromBufferAttribute(a,u),De.fromBufferAttribute(a,c),m.uv1=new n;let e=s.getInterpolation(Ce,Ue,Ie,Fe,_e,ze,De,m.uv1);Se||(m.uv1=e),Me&&(m.uv2=m.uv1)}if(i){Ve.fromBufferAttribute(i,l),Re.fromBufferAttribute(i,u),qe.fromBufferAttribute(i,c),m.normal=new r;let t=s.getInterpolation(Ce,Ue,Ie,Fe,Ve,Re,qe,m.normal);m.normal.dot(e.direction)>0&&m.normal.multiplyScalar(-1),Se||(m.normal=t)}let t={a:l,b:u,c:c,normal:new r,materialIndex:0};if(s.getNormal(Ue,Ie,Fe,t.normal),m.face=t,m.faceIndex=l,Se){let e=new r;s.getBarycoord(Ce,Ue,Ie,Fe,e),m.barycoord=e}}return m}function Le(e){return e&&e.isMaterial?e.side:e}function Ee(e,t,n,r,i,o,s){let a=3*r,l=a+0,u=a+1,c=a+2,{index:f,groups:d}=e;e.index&&(l=f.getX(l),u=f.getX(u),c=f.getX(c));let{position:p,normal:y,uv:h,uv1:m}=e.attributes;if(Array.isArray(t)){let e=3*r;for(let a=0,f=d.length;a<f;a++){let{start:f,count:g,materialIndex:x}=d[a];if(e>=f&&e<f+g){let e=He(n,p,y,h,m,l,u,c,Le(t[x]),o,s);if(e){if(e.faceIndex=r,e.face.materialIndex=x,!i)return e;i.push(e)}}}}else{let e=He(n,p,y,h,m,l,u,c,Le(t),o,s);if(e){if(e.faceIndex=r,e.face.materialIndex=0,!i)return e;i.push(e)}}return null}function Oe(e,t,n,r){let i=e.a,o=e.b,s=e.c,a=t,l=t+1,u=t+2;n&&(a=n.getX(a),l=n.getX(l),u=n.getX(u)),i.x=r.getX(a),i.y=r.getY(a),i.z=r.getZ(a),o.x=r.getX(l),o.y=r.getY(l),o.z=r.getZ(l),s.x=r.getX(u),s.y=r.getY(u),s.z=r.getZ(u)}function Ne(e,t,n,r,i,o,s){let{geometry:a}=n,{index:l}=a,u=a.attributes.position;for(let n=e,a=t+e;n<a;n++){let e;if(e=n,Oe(s,3*e,l,u),s.needsUpdate=!0,r(s,e,i,o))return!0}return!1}function Xe(e,t=null){t&&Array.isArray(t)&&(t=new Set(t));let n,r,i,o,s=e.geometry,a=s.index?s.index.array:null,l=s.attributes.position,u=0,c=e._roots;for(let e=0,t=c.length;e<t;e++)n=c[e],r=new Uint32Array(n),i=new Uint16Array(n),o=new Float32Array(n),f(0,u),u+=n.byteLength;function f(e,n,s=!1){let u=2*e;if(A(u,i)){let t=T(e,r),n=1/0,s=1/0,c=1/0,f=-1/0,d=-1/0,p=-1/0;for(let e=3*t,r=3*(t+S(u,i));e<r;e++){let t=a[e],r=l.getX(t),i=l.getY(t),o=l.getZ(t);r<n&&(n=r),r>f&&(f=r),i<s&&(s=i),i>d&&(d=i),o<c&&(c=o),o>p&&(p=o)}return(o[e+0]!==n||o[e+1]!==s||o[e+2]!==c||o[e+3]!==f||o[e+4]!==d||o[e+5]!==p)&&(o[e+0]=n,o[e+1]=s,o[e+2]=c,o[e+3]=f,o[e+4]=d,o[e+5]=p,!0)}{let i=M(e),a=U(e,r),l=s,u=!1,c=!1;if(t){if(!l){let e=i/8+n/32,r=a/8+n/32;u=t.has(e),c=t.has(r),l=!u&&!c}}else u=!0,c=!0;let d=l||c,p=!1;(l||u)&&(p=f(i,n,l));let y=!1;d&&(y=f(a,n,l));let h=p||y;if(h)for(let t=0;t<3;t++){let n=i+t,r=a+t,s=o[n],l=o[n+3],u=o[r],c=o[r+3];o[e+t]=s<u?s:u,o[e+t+3]=l>c?l:c}return h}}}function je(e,t,n,r,i){let o,s,a,l,u,c,f=1/n.direction.x,d=1/n.direction.y,p=1/n.direction.z,y=n.origin.x,h=n.origin.y,m=n.origin.z,g=t[e],x=t[e+3],w=t[e+1],B=t[e+3+1],b=t[e+2],v=t[e+3+2];return f>=0?(o=(g-y)*f,s=(x-y)*f):(o=(x-y)*f,s=(g-y)*f),d>=0?(a=(w-h)*d,l=(B-h)*d):(a=(B-h)*d,l=(w-h)*d),!(o>l||a>s||((a>o||isNaN(o))&&(o=a),(l<s||isNaN(s))&&(s=l),p>=0?(u=(b-m)*p,c=(v-m)*p):(u=(v-m)*p,c=(b-m)*p),o>c||u>s))&&((u>o||o!=o)&&(o=u),(c<s||s!=s)&&(s=c),o<=i&&s>=r)}function Ze(e,t,n,r,i,o,s){let{geometry:a}=n,{index:l}=a,u=a.attributes.position;for(let a=e,c=t+e;a<c;a++){let e;if(e=n.resolveTriangleIndex(a),Oe(s,3*e,l,u),s.needsUpdate=!0,r(s,e,i,o))return!0}return!1}function ke(e,t,n,r,i,o,s){G.setBuffer(e._roots[t]),Ge(0,e,n,r,i,o,s),G.clearBuffer()}function Ge(e,t,n,r,i,o,s){let{float32Array:a,uint16Array:l,uint32Array:u}=G,c=2*e;if(A(c,l))!function(e,t,n,r,i,o,s,a){let{geometry:l,_indirectBuffer:u}=e;for(let e=r,u=r+i;e<u;e++)Ee(l,t,n,e,o,s,a)}(t,n,r,T(e,u),S(c,l),i,o,s);else{let l=M(e);je(l,a,r,o,s)&&Ge(l,t,n,r,i,o,s);let c=U(e,u);je(c,a,r,o,s)&&Ge(c,t,n,r,i,o,s)}}var Ye=["x","y","z"];function We(e,t,n,r,i,o){G.setBuffer(e._roots[t]);let s=$e(0,e,n,r,i,o);return G.clearBuffer(),s}function $e(e,t,n,r,i,o){let{float32Array:s,uint16Array:a,uint32Array:l}=G,u=2*e;if(A(u,a))return function(e,t,n,r,i,o,s){let{geometry:a,_indirectBuffer:l}=e,u=1/0,c=null;for(let e=r,l=r+i;e<l;e++){let r;r=Ee(a,t,n,e,null,o,s),r&&r.distance<u&&(c=r,u=r.distance)}return c}(t,n,r,T(e,l),S(u,a),i,o);{let a,u,c=I(e,l),f=Ye[c],d=r.direction[f]>=0;d?(a=M(e),u=U(e,l)):(a=U(e,l),u=M(e));let p=je(a,s,r,i,o)?$e(a,t,n,r,i,o):null;if(p){let e=p.point[f];if(d?e<=s[u+c]:e>=s[u+c+3])return p}let y=je(u,s,r,i,o)?$e(u,t,n,r,i,o):null;return p&&y?p.distance<=y.distance?p:y:p||y||null}}var Ke=new a,Je=new be,Qe=new be,et=new i,tt=new ve,nt=new ve;function rt(e,t,n,r){G.setBuffer(e._roots[t]);let i=it(0,e,n,r);return G.clearBuffer(),i}function it(e,t,n,r,i=null){let{float32Array:o,uint16Array:s,uint32Array:a}=G,l=2*e;if(null===i&&(n.boundingBox||n.computeBoundingBox(),tt.set(n.boundingBox.min,n.boundingBox.max,r),i=tt),!A(l,s)){let s=M(e),l=U(e,a);return x(s,o,Ke),!!(i.intersectsBox(Ke)&&it(s,t,n,r,i)||(x(l,o,Ke),i.intersectsBox(Ke)&&it(l,t,n,r,i)))}{let i=t.geometry,u=i.index,c=i.attributes.position,f=n.index,d=n.attributes.position,p=T(e,a),y=S(l,s);if(et.copy(r).invert(),n.boundsTree)return x(e,o,nt),nt.matrix.copy(et),nt.needsUpdate=!0,n.boundsTree.shapecast({intersectsBounds:e=>nt.intersectsBox(e),intersectsTriangle:e=>{e.a.applyMatrix4(r),e.b.applyMatrix4(r),e.c.applyMatrix4(r),e.needsUpdate=!0;for(let t=3*p,n=3*(y+p);t<n;t+=3)if(Oe(Qe,t,u,c),Qe.needsUpdate=!0,e.intersectsTriangle(Qe))return!0;return!1}});{let e=fe(n);for(let t=3*p,n=3*(y+p);t<n;t+=3){Oe(Je,t,u,c),Je.a.applyMatrix4(et),Je.b.applyMatrix4(et),Je.c.applyMatrix4(et),Je.needsUpdate=!0;for(let t=0,n=3*e;t<n;t+=3)if(Oe(Qe,t,f,d),Qe.needsUpdate=!0,Je.intersectsTriangle(Qe))return!0}}}}var ot=new i,st=new ve,at=new ve,lt=new r,ut=new r,ct=new r,ft=new r;function dt(e,t,n,r={},i={},o=0,s=1/0){t.boundingBox||t.computeBoundingBox(),st.set(t.boundingBox.min,t.boundingBox.max,n),st.needsUpdate=!0;let a=e.geometry,l=a.attributes.position,u=a.index,c=t.attributes.position,f=t.index,d=Pe.getPrimitive(),p=Pe.getPrimitive(),y=lt,h=ut,m=null,g=null;i&&(m=ct,g=ft);let x=1/0,w=null,B=null;return ot.copy(n).invert(),at.matrix.copy(ot),e.shapecast({boundsTraverseOrder:e=>st.distanceToBox(e),intersectsBounds:(e,t,n)=>n<x&&n<s&&(t&&(at.min.copy(e.min),at.max.copy(e.max),at.needsUpdate=!0),!0),intersectsRange:(e,r)=>{if(t.boundsTree)return t.boundsTree.shapecast({boundsTraverseOrder:e=>at.distanceToBox(e),intersectsBounds:(e,t,n)=>n<x&&n<s,intersectsRange:(t,i)=>{for(let s=t,a=t+i;s<a;s++){Oe(p,3*s,f,c),p.a.applyMatrix4(n),p.b.applyMatrix4(n),p.c.applyMatrix4(n),p.needsUpdate=!0;for(let t=e,n=e+r;t<n;t++){Oe(d,3*t,u,l),d.needsUpdate=!0;let e=d.distanceToTriangle(p,y,m);if(e<x&&(h.copy(y),g&&g.copy(m),x=e,w=t,B=s),e<o)return!0}}}});for(let i=0,s=fe(t);i<s;i++){Oe(p,3*i,f,c),p.a.applyMatrix4(n),p.b.applyMatrix4(n),p.c.applyMatrix4(n),p.needsUpdate=!0;for(let t=e,n=e+r;t<n;t++){Oe(d,3*t,u,l),d.needsUpdate=!0;let e=d.distanceToTriangle(p,y,m);if(e<x&&(h.copy(y),g&&g.copy(m),x=e,w=t,B=i),e<o)return!0}}}}),Pe.releasePrimitive(d),Pe.releasePrimitive(p),x===1/0?null:(r.point?r.point.copy(h):r.point=h.clone(),r.distance=x,r.faceIndex=w,i&&(i.point?i.point.copy(g):i.point=g.clone(),i.point.applyMatrix4(ot),h.applyMatrix4(ot),i.distance=h.sub(i.point).length(),i.faceIndex=B),r)}function pt(e,t=null){t&&Array.isArray(t)&&(t=new Set(t));let n,r,i,o,s=e.geometry,a=s.index?s.index.array:null,l=s.attributes.position,u=0,c=e._roots;for(let e=0,t=c.length;e<t;e++)n=c[e],r=new Uint32Array(n),i=new Uint16Array(n),o=new Float32Array(n),f(0,u),u+=n.byteLength;function f(n,s,u=!1){let c=2*n;if(A(c,i)){let t=T(n,r),s=1/0,u=1/0,f=1/0,d=-1/0,p=-1/0,y=-1/0;for(let n=t,r=t+S(c,i);n<r;n++){let t=3*e.resolveTriangleIndex(n);for(let e=0;e<3;e++){let n=t+e;n=a?a[n]:n;let r=l.getX(n),i=l.getY(n),o=l.getZ(n);r<s&&(s=r),r>d&&(d=r),i<u&&(u=i),i>p&&(p=i),o<f&&(f=o),o>y&&(y=o)}}return(o[n+0]!==s||o[n+1]!==u||o[n+2]!==f||o[n+3]!==d||o[n+4]!==p||o[n+5]!==y)&&(o[n+0]=s,o[n+1]=u,o[n+2]=f,o[n+3]=d,o[n+4]=p,o[n+5]=y,!0)}{let e=M(n),i=U(n,r),a=u,l=!1,c=!1;if(t){if(!a){let n=e/8+s/32,r=i/8+s/32;l=t.has(n),c=t.has(r),a=!l&&!c}}else l=!0,c=!0;let d=a||c,p=!1;(a||l)&&(p=f(e,s,a));let y=!1;d&&(y=f(i,s,a));let h=p||y;if(h)for(let t=0;t<3;t++){let r=e+t,s=i+t,a=o[r],l=o[r+3],u=o[s],c=o[s+3];o[n+t]=a<u?a:u,o[n+t+3]=l>c?l:c}return h}}}function yt(e,t,n,r,i,o,s){G.setBuffer(e._roots[t]),ht(0,e,n,r,i,o,s),G.clearBuffer()}function ht(e,t,n,r,i,o,s){let{float32Array:a,uint16Array:l,uint32Array:u}=G,c=2*e;if(A(c,l))!function(e,t,n,r,i,o,s,a){let{geometry:l,_indirectBuffer:u}=e;for(let e=r,c=r+i;e<c;e++)Ee(l,t,n,u?u[e]:e,o,s,a)}(t,n,r,T(e,u),S(c,l),i,o,s);else{let l=M(e);je(l,a,r,o,s)&&ht(l,t,n,r,i,o,s);let c=U(e,u);je(c,a,r,o,s)&&ht(c,t,n,r,i,o,s)}}var mt=["x","y","z"];function gt(e,t,n,r,i,o){G.setBuffer(e._roots[t]);let s=xt(0,e,n,r,i,o);return G.clearBuffer(),s}function xt(e,t,n,r,i,o){let{float32Array:s,uint16Array:a,uint32Array:l}=G,u=2*e;if(A(u,a))return function(e,t,n,r,i,o,s){let{geometry:a,_indirectBuffer:l}=e,u=1/0,c=null;for(let e=r,f=r+i;e<f;e++){let r;r=Ee(a,t,n,l?l[e]:e,null,o,s),r&&r.distance<u&&(c=r,u=r.distance)}return c}(t,n,r,T(e,l),S(u,a),i,o);{let a,u,c=I(e,l),f=mt[c],d=r.direction[f]>=0;d?(a=M(e),u=U(e,l)):(a=U(e,l),u=M(e));let p=je(a,s,r,i,o)?xt(a,t,n,r,i,o):null;if(p){let e=p.point[f];if(d?e<=s[u+c]:e>=s[u+c+3])return p}let y=je(u,s,r,i,o)?xt(u,t,n,r,i,o):null;return p&&y?p.distance<=y.distance?p:y:p||y||null}}var wt=new a,Bt=new be,bt=new be,vt=new i,Pt=new ve,At=new ve;function Tt(e,t,n,r){G.setBuffer(e._roots[t]);let i=St(0,e,n,r);return G.clearBuffer(),i}function St(e,t,n,r,i=null){let{float32Array:o,uint16Array:s,uint32Array:a}=G,l=2*e;if(null===i&&(n.boundingBox||n.computeBoundingBox(),Pt.set(n.boundingBox.min,n.boundingBox.max,r),i=Pt),!A(l,s)){let s=M(e),l=U(e,a);return x(s,o,wt),!!(i.intersectsBox(wt)&&St(s,t,n,r,i)||(x(l,o,wt),i.intersectsBox(wt)&&St(l,t,n,r,i)))}{let i=t.geometry,u=i.index,c=i.attributes.position,f=n.index,d=n.attributes.position,p=T(e,a),y=S(l,s);if(vt.copy(r).invert(),n.boundsTree)return x(e,o,At),At.matrix.copy(vt),At.needsUpdate=!0,n.boundsTree.shapecast({intersectsBounds:e=>At.intersectsBox(e),intersectsTriangle:e=>{e.a.applyMatrix4(r),e.b.applyMatrix4(r),e.c.applyMatrix4(r),e.needsUpdate=!0;for(let n=p,r=y+p;n<r;n++)if(Oe(bt,3*t.resolveTriangleIndex(n),u,c),bt.needsUpdate=!0,e.intersectsTriangle(bt))return!0;return!1}});{let e=fe(n);for(let n=p,r=y+p;n<r;n++){let r=t.resolveTriangleIndex(n);Oe(Bt,3*r,u,c),Bt.a.applyMatrix4(vt),Bt.b.applyMatrix4(vt),Bt.c.applyMatrix4(vt),Bt.needsUpdate=!0;for(let t=0,n=3*e;t<n;t+=3)if(Oe(bt,t,f,d),bt.needsUpdate=!0,Bt.intersectsTriangle(bt))return!0}}}}var Mt=new i,Ut=new ve,It=new ve,Ft=new r,_t=new r,zt=new r,Dt=new r;function Vt(e,t,n,r={},i={},o=0,s=1/0){t.boundingBox||t.computeBoundingBox(),Ut.set(t.boundingBox.min,t.boundingBox.max,n),Ut.needsUpdate=!0;let a=e.geometry,l=a.attributes.position,u=a.index,c=t.attributes.position,f=t.index,d=Pe.getPrimitive(),p=Pe.getPrimitive(),y=Ft,h=_t,m=null,g=null;i&&(m=zt,g=Dt);let x=1/0,w=null,B=null;return Mt.copy(n).invert(),It.matrix.copy(Mt),e.shapecast({boundsTraverseOrder:e=>Ut.distanceToBox(e),intersectsBounds:(e,t,n)=>n<x&&n<s&&(t&&(It.min.copy(e.min),It.max.copy(e.max),It.needsUpdate=!0),!0),intersectsRange:(r,i)=>{if(t.boundsTree){let a=t.boundsTree;return a.shapecast({boundsTraverseOrder:e=>It.distanceToBox(e),intersectsBounds:(e,t,n)=>n<x&&n<s,intersectsRange:(t,s)=>{for(let b=t,v=t+s;b<v;b++){let t=a.resolveTriangleIndex(b);Oe(p,3*t,f,c),p.a.applyMatrix4(n),p.b.applyMatrix4(n),p.c.applyMatrix4(n),p.needsUpdate=!0;for(let t=r,n=r+i;t<n;t++){let n=e.resolveTriangleIndex(t);Oe(d,3*n,u,l),d.needsUpdate=!0;let r=d.distanceToTriangle(p,y,m);if(r<x&&(h.copy(y),g&&g.copy(m),x=r,w=t,B=b),r<o)return!0}}}})}for(let s=0,a=fe(t);s<a;s++){Oe(p,3*s,f,c),p.a.applyMatrix4(n),p.b.applyMatrix4(n),p.c.applyMatrix4(n),p.needsUpdate=!0;for(let t=r,n=r+i;t<n;t++){let n=e.resolveTriangleIndex(t);Oe(d,3*n,u,l),d.needsUpdate=!0;let r=d.distanceToTriangle(p,y,m);if(r<x&&(h.copy(y),g&&g.copy(m),x=r,w=t,B=s),r<o)return!0}}}}),Pe.releasePrimitive(d),Pe.releasePrimitive(p),x===1/0?null:(r.point?r.point.copy(h):r.point=h.clone(),r.distance=x,r.faceIndex=w,i&&(i.point?i.point.copy(g):i.point=g.clone(),i.point.applyMatrix4(Mt),h.applyMatrix4(Mt),i.distance=h.sub(i.point).length(),i.faceIndex=B),r)}function Rt(e,t,n){return null===e?null:(e.point.applyMatrix4(t.matrixWorld),e.distance=e.point.distanceTo(n.ray.origin),e.object=t,e)}var qt=new ve,Ct=new f,Ht=new r,Lt=new i,Et=new r,Ot=["getX","getY","getZ"],Nt=class extends pe{static serialize(e,t={}){t={cloneBuffers:!0,...t};let n=e.geometry,r=e._roots,i=e._indirectBuffer,o=n.getIndex(),s={version:1,roots:null,index:null,indirectBuffer:null};return t.cloneBuffers?(s.roots=r.map(e=>e.slice()),s.index=o?o.array.slice():null,s.indirectBuffer=i?i.slice():null):(s.roots=r,s.index=o?o.array:null,s.indirectBuffer=i),s}static deserialize(e,t,n={}){n={setIndex:!0,indirect:Boolean(e.indirectBuffer),...n};let{index:r,roots:i,indirectBuffer:o}=e;e.version||(console.warn("MeshBVH.deserialize: Serialization format has been changed and will be fixed up. It is recommended to regenerate any stored serialized data."),function(e){for(let t=0;t<e.length;t++){let n=e[t],r=new Uint32Array(n),i=new Uint16Array(n);for(let e=0,t=n.byteLength/32;e<t;e++){let t=8*e;A(2*t,i)||(r[t+6]=r[t+6]/8-e)}}}(i));let s=new Nt(t,{...n,[m]:!0});if(s._roots=i,s._indirectBuffer=o||null,n.setIndex){let n=t.getIndex();if(null===n){let n=new l(e.index,1,!1);t.setIndex(n)}else n.array!==r&&(n.array.set(r),n.needsUpdate=!0)}return s}get primitiveStride(){return 3}get resolveTriangleIndex(){return this.resolvePrimitiveIndex}constructor(e,t={}){t.maxLeafTris&&(console.warn('MeshBVH: "maxLeafTris" option has been deprecated. Use maxLeafSize, instead.'),t={...t,maxLeafSize:t.maxLeafTris}),super(e,t)}shiftTriangleOffsets(e){return super.shiftPrimitiveOffsets(e)}writePrimitiveBounds(e,t,n){let r=this.geometry,i=this._indirectBuffer,o=r.attributes.position,s=r.index?r.index.array:null,a=3*(i?i[e]:e),l=a+0,u=a+1,c=a+2;s&&(l=s[l],u=s[u],c=s[c]);for(let e=0;e<3;e++){let r=o[Ot[e]](l),i=o[Ot[e]](u),s=o[Ot[e]](c),a=r;i<a&&(a=i),s<a&&(a=s);let f=r;i>f&&(f=i),s>f&&(f=s),t[n+e]=a,t[n+e+3]=f}return t}computePrimitiveBounds(e,t,n){let r=this.geometry,i=this._indirectBuffer,o=r.attributes.position,s=r.index?r.index.array:null,a=o.normalized;if(e<0||t+e-n.offset>n.length/6)throw new Error("MeshBVH: compute triangle bounds range is invalid.");let l=o.array,u=o.offset||0,c=3;o.isInterleavedBufferAttribute&&(c=o.data.stride);let f=["getX","getY","getZ"],d=n.offset;for(let r=e,p=e+t;r<p;r++){let e=3*(i?i[r]:r),t=6*(r-d),p=e+0,y=e+1,m=e+2;s&&(p=s[p],y=s[y],m=s[m]),a||(p=p*c+u,y=y*c+u,m=m*c+u);for(let e=0;e<3;e++){let r,i,s;a?(r=o[f[e]](p),i=o[f[e]](y),s=o[f[e]](m)):(r=l[p+e],i=l[y+e],s=l[m+e]);let u=r;i<u&&(u=i),s<u&&(u=s);let c=r;i>c&&(c=i),s>c&&(c=s);let d=(c-u)/2,g=2*e;n[t+g+0]=u+d,n[t+g+1]=d+(Math.abs(u)+d)*h}}return n}raycastObject3D(e,t,n=[]){let{material:r}=e;if(void 0===r)return;Lt.copy(e.matrixWorld).invert(),Ct.copy(t.ray).applyMatrix4(Lt),Et.setFromMatrixScale(e.matrixWorld),Ht.copy(Ct.direction).multiply(Et);let i=Ht.length(),o=t.near/i,s=t.far/i;if(!0===t.firstHitOnly){let i=this.raycastFirst(Ct,r,o,s);i=Rt(i,e,t),i&&n.push(i)}else{let i=this.raycast(Ct,r,o,s);for(let r=0,o=i.length;r<o;r++){let o=Rt(i[r],e,t);o&&n.push(o)}}return n}refit(e=null){return(this.indirect?pt:Xe)(this,e)}raycast(e,t=c,n=0,r=1/0){let i=this._roots,o=[],s=this.indirect?yt:ke;for(let a=0,l=i.length;a<l;a++)s(this,a,t,e,o,n,r);return o}raycastFirst(e,t=c,n=0,r=1/0){let i=this._roots,o=null,s=this.indirect?gt:We;for(let a=0,l=i.length;a<l;a++){let i=s(this,a,t,e,n,r);null!=i&&(null==o||i.distance<o.distance)&&(o=i)}return o}intersectsGeometry(e,t){let n=!1,r=this._roots,i=this.indirect?Tt:rt;for(let o=0,s=r.length;o<s&&(n=i(this,o,e,t),!n);o++);return n}shapecast(e){let t=Pe.getPrimitive(),n=super.shapecast({...e,intersectsPrimitive:e.intersectsTriangle,scratchPrimitive:t,iterate:this.indirect?Ze:Ne});return Pe.releasePrimitive(t),n}bvhcast(e,t,n){let{intersectsRanges:r,intersectsTriangles:i}=n,o=Pe.getPrimitive(),s=this.geometry.index,a=this.geometry.attributes.position,l=this.indirect?e=>{let t=this.resolveTriangleIndex(e);Oe(o,3*t,s,a)}:e=>{Oe(o,3*e,s,a)},u=Pe.getPrimitive(),c=e.geometry.index,f=e.geometry.attributes.position,d=e.indirect?t=>{let n=e.resolveTriangleIndex(t);Oe(u,3*n,c,f)}:e=>{Oe(u,3*e,c,f)};if(i){if(!(e instanceof Nt))throw new Error('MeshBVH: "intersectsTriangles" callback can only be used with another MeshBVH.');let n=(e,n,r,s,a,c,f,p)=>{for(let y=r,h=r+s;y<h;y++){d(y),u.a.applyMatrix4(t),u.b.applyMatrix4(t),u.c.applyMatrix4(t),u.needsUpdate=!0;for(let t=e,r=e+n;t<r;t++)if(l(t),o.needsUpdate=!0,i(o,u,t,y,a,c,f,p))return!0}return!1};if(r){let e=r;r=function(t,r,i,o,s,a,l,u){return!!e(t,r,i,o,s,a,l,u)||n(t,r,i,o,s,a,l,u)}}else r=n}return super.bvhcast(e,t,{intersectsRanges:r})}intersectsBox(e,t){return qt.set(e.min,e.max,t),qt.needsUpdate=!0,this.shapecast({intersectsBounds:e=>qt.intersectsBox(e),intersectsTriangle:e=>qt.intersectsTriangle(e)})}intersectsSphere(e){return this.shapecast({intersectsBounds:t=>e.intersectsBox(t),intersectsTriangle:t=>t.intersectsSphere(e)})}closestPointToGeometry(e,t,n={},r={},i=0,o=1/0){return(this.indirect?Vt:dt)(this,e,t,n,r,i,o)}closestPointToPoint(e,t={},n=0,r=1/0){return function(e,t,n={},r=0,i=1/0){let o=r*r,s=i*i,a=1/0,l=null;if(e.shapecast({boundsTraverseOrder:e=>(Ae.copy(t).clamp(e.min,e.max),Ae.distanceToSquared(t)),intersectsBounds:(e,t,n)=>n<a&&n<s,intersectsTriangle:(e,n)=>{e.closestPointToPoint(t,Ae);let r=t.distanceToSquared(Ae);return r<a&&(Te.copy(Ae),a=r,l=n),r<o}}),a===1/0)return null;let u=Math.sqrt(a);return n.point?n.point.copy(Te):n.point=Te.clone(),n.distance=u,n.faceIndex=l,n}(this,e,t,n,r)}};e(Nt),t("collision-bvh");
@@ -0,0 +1 @@
1
+ import{a as e}from"./runtime-chunk-JFYHGEDN.js";import{a as t}from"./runtime-chunk-BJVCOW72.js";import{d as n}from"./runtime-chunk-VRVV54WH.js";import{ea as i}from"./runtime-chunk-CTHMLYOZ.js";import"./runtime-chunk-4YV3EXSU.js";import"./runtime-chunk-NSD7DU3P.js";import{c as s,h as o}from"./runtime-chunk-2Y73BLCY.js";import"./runtime-chunk-QZ35BPGB.js";import{d as r,f as a}from"./runtime-chunk-4KZXQGUQ.js";import"./runtime-chunk-Z5OH244S.js";import{a as p,d}from"./runtime-chunk-TZCHGFVF.js";import{Ba as l,Ca as c,Ja as h,K as u,i as m,j as f,wa as y}from"./runtime-chunk-OW6T4XFV.js";import{Oc as v,Sc as g,od as j}from"./runtime-chunk-VGN7YHB7.js";import"./runtime-chunk-ML3Z74BL.js";var k=class extends(n(g,t)){constructor(e,t,n){super(),this.isComponentObject=!0,"Instance"===t.type&&"string"==typeof e&&(t=this.transformAssignData(t,n)),this.super_Entity(e,t),this.objectHelper.update()}get isComponentRoot(){return"Component"===this.data.type&&"string"==typeof this.identity}get isInstanceRoot(){return"Instance"===this.data.type&&"string"==typeof this.identity}transformAssignData(e,t){let n=h.getComponentData({scene:t.scene.data,shared:t.shared.data},e.component);if(n){let t,i;for(let s of c.rootOverrideProps)void 0===e[s]?(void 0===t&&(t={...e}),t[s]=n.data[s]):(void 0===i&&(i={}),i[s]=e[s],void 0===t&&(t={...e}),t[s]=f.apply(n.data[s],e[s]));return this.overrideData=i,t}return{...y.defaultData,...e,...a(y.defaultData,c.rootOverrideProps)}}updateByOp(e,t,n,i){let s;if(this.isInstanceRoot&&!i)if(t=this.transformAssignData(t,n),0===e.type&&0===e.path.length&&this.component)for(let t of c.rootOverrideProps)t in e.props&&void 0===e.props[t]&&(void 0===s&&(s={...e,props:{...e.props}}),s.props[t]=this.component.data[t]);else if(0===e.type&&e.path.length>0&&c.rootOverrideProps.includes(e.path[0])){let n=e.path[0];void 0===s&&(s={...e,path:[],props:{[n]:t[n]}})}super.updateByOp(s??e,t,n,i)}updateState(e,t){this.updateState_Entity(e,t)}expandInstanceChildren(t){let n=this.data;if(void 0===this.component){let s=t.scene.find(n.component)??null,r=!1;if(s!==this.oldComponent){if(this.oldComponent){let n=0;for(let i of this.children){if(!o.is(i))break;t.scene.disposeAndUnregisterEntityRecursivelyIfNotReregistered(i),e(i),n+=1}this.children.splice(0,n)}r=!0}if(s){let e={};b(t,[this.uuid],n.overrides,this,s,s,0,r,e);for(let n of this.children)if(o.is(n)){let s=n.data;"Empty"===s.type&&s.animations&&n.traverseEntity(n=>{let s=n.dataPatched;if(n instanceof i&&s.bones&&s.boneInverses){let i=n.dataPatched;if(i.bones&&i.boneInverses){let s=i.bones.map(n=>t.scene.find(e[n])),o=i.boneInverses.map(e=>(new v).fromArray(e)),r=new j(s,o);n.bind(r,n.bindMatrix)}}else n.matrixAutoUpdate=!0})}}this.oldComponent=this.component}}};function O(e,t,n,i){return e.component===t&&r(e.identity,i)?e.overrideData===n?2:1:0}function b(e,t,n,i,r,a,p,d,c){if(p>50)return!1;if(i.component!==r){if(i.component){let e=i.component.instances.indexOf(i);e>=0&&i.component.instances.splice(e,1)}r.instances.find(e=>e===i)||r.instances.push(i),i.component=r}r instanceof k&&r.isInstanceRoot&&r.expandInstanceChildren(e);let h=0;for(let y of r.children)if(o.is(y)){let r=[...t,..."string"==typeof y.identity?[y.identity]:y.identity],v=l.resolve(n,r,1);null!=v&&!(v instanceof m)&&(Object.setPrototypeOf(v,m.prototype),console.error("wrong prototype"));let g,j=null;if(!d){let t=i.children[h];if(j=o.is(t)?t:null,null!==j){let e=O(j,y,v,r);g=e>=1?j.stateSelection:void 0,2!==e&&(j=null)}if(null===j&&(j=e.scene.findInstance(r)??null,null!==j)){let t=O(j,y,v,r);if(g=t>=1?j.stateSelection:void 0,2!==t)j=null;else{let t=j.parent.children.indexOf(j);j.parent.children.splice(t,1),i.children.splice(h,0,j),j.parent===i?t<=h&&console.error("not possible"):(j.parent=i,j.matrixWorldNeedsUpdate=!0,j.resetBBoxNeedsUpdate(),j.updateVisible(),e.pendingDeletes.delete(j))}}}if(null===j){let t=v?f.apply(y.data,v):y.data;u.is(t.type)&&(t={...t,type:"Empty"}),j=s.createEntity(r,t,e),j.overrideData=v,i.add(j),i.children.splice(i.children.length-1,1),i.children.splice(h,0,j),j.updateState(j.data,e),g&&j.changeSelectedState(g,e),e.scene.registerInstanceAndSetUuid(j)}j.isBone&&(c[j.identity[j.identity.length-1]]=j.uuid),h+=1,b(e,t,n,j,y,a,p+1,d,c)}if(!d){let t=h;for(;;){let t=i.children[h];if(!o.is(t))break;e.pendingDeletes.add(t),h+=1}i.children.splice(t,h-t)}return!0}var C=(e,t,n)=>new k(e,t,n);d("Component",C),d("Instance",C),p("components");
@@ -0,0 +1 @@
1
+ import{a as t,b as i}from"./runtime-chunk-DZNU62CT.js";import{f as a,g as s}from"./runtime-chunk-MM75L5X4.js";import{e as o}from"./runtime-chunk-4KZXQGUQ.js";import{a as n}from"./runtime-chunk-Z5OH244S.js";import{a as e}from"./runtime-chunk-TZCHGFVF.js";import"./runtime-chunk-OW6T4XFV.js";import{Ec as c,Fc as r,Oc as h,Pc as d}from"./runtime-chunk-VGN7YHB7.js";import"./runtime-chunk-ML3Z74BL.js";var p=new r,f=new r,l=(new h,new r,new c,new r,new d,class{constructor(t,i,s,o,n){this.actionsIn=a(t,t.inActions,s,o,n,i),this.actionsOut=a(t,t.outActions,s,o,n,i)}disconnect(){s(this.actionsIn),s(this.actionsOut)}}),E=class extends l{constructor(t,i,a,s,o,n){super(i,a,s,o,n),this.id=t,this.data=i,this.object=a,this.stage="out",this.objects=[],this.onUpdateMatrixWorld=()=>{for(let t of this.objects)if(!t.visible)return;let t=p.setFromMatrixPosition(this.objects[0].matrixWorld),i=f.setFromMatrixPosition(this.objects[1].matrixWorld),a=t.distanceTo(i)<=this.distance?"in":"out";if(this.stage!==a){this.stage=a;let t="in"===a?this.actionsIn:this.actionsOut;t.Audio.forEach(t=>t.dispatchConditional()),t.Particles.forEach(t=>t.dispatchConditional()),t.Video.forEach(t=>t.dispatchConditional()),t.Link.forEach(t=>t.dispatch()),t.Create.forEach(t=>t.dispatch()),t.Destroy.forEach(t=>t.dispatch()),t.Reset.forEach(t=>t.dispatch()),t.Transition.forEach(t=>{t.object.currentTransitionEvent!==this&&(t.object.currentTransitionEvent=this),t.init()}),t.Transition.forEach(t=>t.play()),t.Animation.forEach(t=>t.play()),t.TimelineAnimation.forEach(t=>t.play()),t.SwitchCamera.forEach(t=>t.play()),t.SceneTransition.forEach(t=>t.dispatch()),t.SetVariable.forEach(t=>t.checkConditions()),t.SetVariable.forEach(t=>t.dispatch()),t.DynamicVariablePlay.forEach(t=>t.dispatch()),t.ClearLocalStorage.forEach(t=>t.dispatch()),t.UserAPI.forEach(t=>t.dispatch())}};let{distance:e,fromObject:c,toObject:r}=i.condition;this.distance=e;for(let t of[c,r]){if(!t)throw new Error("Missing property");let i=s.find(t);if(!i)throw new Error("Missing property");this.objects.push(i)}}connect(){window.setTimeout(()=>{this.objects.forEach(t=>{t.addEventListener("updateMatrixWorld",this.onUpdateMatrixWorld),t.addEventListener("updateMatrix",this.onUpdateMatrixWorld)}),this.onUpdateMatrixWorld()},0)}disconnect(){super.disconnect(),this.stage="out",this.objects.forEach(t=>{t.removeEventListener("updateMatrixWorld",this.onUpdateMatrixWorld),t.removeEventListener("updateMatrix",this.onUpdateMatrixWorld)})}},u=class extends l{constructor(t,i,a,s,o,n){super(i,a,s,o,n),this.id=t,this.data=i,this.object=a,this.onBegin=({target:t,state:i})=>{this.toState!==i&&(this.actionsOut.Audio.forEach(t=>t.dispatchConditional()),this.actionsOut.Particles.forEach(t=>t.dispatchConditional()),this.actionsOut.Video.forEach(t=>t.dispatchConditional()),this.actionsOut.Link.forEach(t=>t.dispatch()),this.actionsOut.Create.forEach(t=>t.dispatch()),this.actionsOut.Destroy.forEach(t=>t.dispatch()),this.actionsOut.Reset.forEach(t=>t.dispatch()),this.actionsIn.Transition.forEach(t=>t.pause()),this.object.currentTransitionEvent=this,this.actionsOut.Transition.forEach(t=>t.play()),this.actionsOut.Animation.forEach(t=>t.play()),this.actionsOut.TimelineAnimation.forEach(t=>t.play()),this.actionsIn.SwitchCamera.forEach(t=>t.pause()),this.actionsOut.SwitchCamera.forEach(t=>t.play()),this.actionsOut.SceneTransition.forEach(t=>t.dispatch()),this.actionsOut.SetVariable.forEach(t=>t.checkConditions()),this.actionsOut.SetVariable.forEach(t=>t.dispatch()),this.actionsOut.DynamicVariablePlay.forEach(t=>t.dispatch()),this.actionsOut.ClearLocalStorage.forEach(t=>t.dispatch()),this.actionsOut.UserAPI.forEach(t=>t.dispatch()))},this.onComplete=({target:t,state:i})=>{this.toState===i&&(this.actionsIn.Audio.forEach(t=>t.dispatchConditional()),this.actionsIn.Particles.forEach(t=>t.dispatchConditional()),this.actionsIn.Video.forEach(t=>t.dispatchConditional()),this.actionsIn.Link.forEach(t=>t.dispatch()),this.actionsIn.Create.forEach(t=>t.dispatch()),this.actionsIn.Destroy.forEach(t=>t.dispatch()),this.actionsIn.Reset.forEach(t=>t.dispatch()),this.actionsOut.Transition.forEach(t=>t.pause()),this.actionsOut.Transition.forEach(t=>t.pause()),this.object.currentTransitionEvent=this,this.actionsIn.Transition.forEach(t=>t.play()),this.actionsIn.Animation.forEach(t=>t.play()),this.actionsIn.TimelineAnimation.forEach(t=>t.play()),this.actionsOut.SwitchCamera.forEach(t=>t.pause()),this.actionsIn.SwitchCamera.forEach(t=>t.play()),this.actionsIn.SceneTransition.forEach(t=>t.dispatch()),this.actionsIn.SetVariable.forEach(t=>t.checkConditions()),this.actionsIn.SetVariable.forEach(t=>t.dispatch()),this.actionsIn.DynamicVariablePlay.forEach(t=>t.dispatch()),this.actionsOut.ClearLocalStorage.forEach(t=>t.dispatch()),this.actionsOut.UserAPI.forEach(t=>t.dispatch()))};let{condition:e}=i;if(!e.object)throw new Error("Missing property");let c=s.find(e.object)??s.scene.find2D(e.object);if(!c)throw new Error("Missing property");if(this.toObject=c,e.state&&!this.toObject.states?.[e.state])throw new Error("Missing property");this.toState=e.state}connect(){o(this.actionsOut).forEach(t=>{this.actionsOut[t]?.length&&this.toObject.addEventListener("beginState",this.onBegin)}),o(this.actionsIn).forEach(t=>{this.actionsIn[t]?.length&&this.toObject.addEventListener("completeState",this.onComplete)})}disconnect(){super.disconnect(),o(this.actionsOut).forEach(t=>{this.actionsIn[t]?.length&&this.toObject.removeEventListener("beginState",this.onBegin)}),o(this.actionsIn).forEach(t=>{this.actionsIn[t]?.length&&this.toObject.removeEventListener("completeState",this.onComplete)})}},m=class extends t{constructor(t,i){super(t),this.eventManager=i,this.eventsPerConditions={Comparison:[],Distance:[],State:[]},this.hasVideoAction=!1}connect(){super.connect();let{page:t,sharedAssets:i}=this.eventContext;t.traverseEntity(a=>{if(a.data?.events.length)for(let{id:s,data:o}of a.data.events)if(!o.disabled&&"Conditional"===o.type)try{let n;"Comparison"===o.condition.type||("Distance"===o.condition.type?n=new E(s,o,a,t,i,this.eventManager):"State"===o.condition.type&&(n=new u(s,o,a,t,i,this.eventManager))),n&&(this.eventsPerConditions[o.condition.type].push(n),(n.actionsIn.Video.length||n.actionsOut.Video.length)&&(this.hasVideoAction=!0))}catch(t){n&&console.error(t)}}),Object.values(this.eventsPerConditions).forEach(t=>t.forEach(t=>t.connect()))}disconnect(){super.disconnect(),Object.values(this.eventsPerConditions).forEach(t=>t.forEach(t=>t.disconnect()))}};i("Conditional",({eventContext:t,eventManager:i})=>new m(t,i)),e("conditional");
@@ -0,0 +1 @@
1
+ import{a as e}from"./runtime-chunk-RAX4YJZF.js";import"./runtime-chunk-P3254QGK.js";import"./runtime-chunk-E6JCDSXC.js";import"./runtime-chunk-TDCFE5IE.js";import{$ as t}from"./runtime-chunk-CTHMLYOZ.js";import"./runtime-chunk-4YV3EXSU.js";import"./runtime-chunk-NSD7DU3P.js";import{b as i,e as a}from"./runtime-chunk-MM75L5X4.js";import"./runtime-chunk-2Y73BLCY.js";import"./runtime-chunk-QZ35BPGB.js";import{b as o}from"./runtime-chunk-4KZXQGUQ.js";import"./runtime-chunk-Z5OH244S.js";import{a as r}from"./runtime-chunk-TZCHGFVF.js";import"./runtime-chunk-OW6T4XFV.js";import{Cc as s,Ec as d,Fc as n}from"./runtime-chunk-VGN7YHB7.js";import"./runtime-chunk-ML3Z74BL.js";var l=(()=>{let e,t,i,a,o=!1;function r(i){!e&&!h()&&(t?.sharedGameControlGlobals.createdObjects.length??0)>0&&(e=requestAnimationFrame(s)),i&&(t=i,a=i.requestRender,!o&&typeof document<"u"&&(document.addEventListener("visibilitychange",d),o=!0))}function s(o){if(!t||!a)return e=void 0,void(i=void 0);let r=i?o-i:0,d=t.sharedGameControlGlobals.createdObjects,n=t.sharedGameControlGlobals.nCreatedPerAction,l=d.length,h=0;for(;h<l;){let e=d[h];void 0===e.userData.createdTime&&(e.userData.createdTime=o),void 0===e.userData.lifetime&&void 0===e.userData.quantity||e.userData.lifetime&&o-e.userData.createdTime<e.userData.lifetime||e.userData.quantity&&n[e.userData.actionId]<=e.userData.quantity?(e.userData.velocity&&(e.position.addScaledVector(e.userData.velocity,r/1e3),e.updateMatrix(),a()),h++):(n[e.userData.actionId]>e.userData.quantity&&n[e.userData.actionId]--,d.splice(h,1),e.removeFromParent(),t.sharedGameControlGlobals.rapierWorld&&e.rigidBody?(t.sharedGameControlGlobals.colliderToEntity.delete(e.rigidBody.collider(0).handle),t.sharedGameControlGlobals.rapierWorld.removeRigidBody(e.rigidBody)):(e.bvhGeometry=void 0,t.sharedGameControlGlobals.entitiesWithTransformAnim=t.sharedGameControlGlobals.entitiesWithTransformAnim.filter(e=>void 0!==e.bvhGeometry)),l--,a())}e=h>0?requestAnimationFrame(s):void 0,i=h>0?o:void 0}function d(){h()?e&&(cancelAnimationFrame(e),e=void 0,i=void 0):r()}return{play:r,dispose:function(){e&&(cancelAnimationFrame(e),e=void 0),o&&typeof document<"u"&&(document.removeEventListener("visibilitychange",d),o=!1),t=void 0,a=void 0,i=void 0}}})();function h(){return!!document&&document.hidden}var c=new d,u=new n,m=new n,y=class{constructor(i,r,d,h,y){this.data=i,this.page=r,this.controlsManager=d,this.shared=h,this.condition=y,this.intervalId=null,this.timeoutIdQueue=[],this.uniqueId=s.generateUUID(),this.dispatch=()=>{if(!1===a(this.shared,this.condition))return!1;this.data.delay?this.timeoutIdQueue.push(window.setTimeout(this.dispatchInner,1e3*this.data.delay)):this.dispatchInner()},this.dispatchFromStart=()=>{if(!1===a(this.shared,this.condition))return!1;this.timeoutIdQueue.push(window.setTimeout(this.dispatchInner,1e3*this.data.delay))},this.dispatchThrottled=o(this.dispatch,1e3/this.data.creationSpeed),this.dispatchStart=()=>{null===this.intervalId&&(this.intervalId=window.setInterval(this.dispatch,1e3/this.data.creationSpeed))},this.dispatchStop=()=>{null!==this.intervalId&&(window.clearInterval(this.intervalId),this.intervalId=null)},this.dispatchInner=()=>{this.timeoutIdQueue.shift();let e=new t(this.object);if(e.playModeVisible=!0,e.expand(),"world"!==this.data.coordinateSystem){let t=this.data.coordinateSystem,i=this.page.scene.find(t);i&&(i.updateMatrixWorldRigid(),e.hiddenMatrix.copy(i.matrixWorldRigid))}e.scale.copy(this.object.scale),e.position.fromArray(this.data.position.map(e=>"number"==typeof e?e:0)),e.rotation.fromArray(this.data.rotation.map(e=>"number"==typeof e?e:0)),e.updateMatrix(),this.page.add(e);let i=this.controlsManager.sharedGameControlGlobals;i.createdObjects.push(e),void 0===i.nCreatedPerAction[this.uniqueId]?i.nCreatedPerAction[this.uniqueId]=1:i.nCreatedPerAction[this.uniqueId]++,e.updateWorldMatrix(!0,!0),e.traverseObject(this.traverseObjectCB),l.play(),this.controlsManager.requestRender()},this.traverseObjectCB=i=>{let a;if(i.hasNonUniformScale&&i.updateMatrixWorldRigid(),this.controlsManager.sharedGameControlGlobals.rapierWorld){if(i instanceof e){if(!i.objectForSample)return!0===i.object.dataPatched.physics.fusedBody&&"dynamic"===i.object.dataPatched.physics.rigidBody||void 0;if(i.objectForSample.dataPatched.physics.fusedBody)return;a=i.object}else if(i instanceof t)a=i.object;else if(a=i,a.dataPatched.cloner?.hideBase)return!0}else{if(i instanceof e)return;a=i instanceof t?i.object:i}"Time"===this.data.destroy?i.userData.lifetime=1e3*this.data.lifetime:"Quantity"===this.data.destroy&&(i.userData.quantity=this.data.destroyAfterQuantity,i.userData.actionId=this.uniqueId);let o=(new n).fromArray(this.data.velocity.map(e=>"number"==typeof e?e:0)),r=a.dataPatched;if(!("visibility"===r.physics.enabled?!r.visible:!r.physics.enabled)&&(this.controlsManager.sharedGameControlGlobals.rapierWorld?(this.controlsManager.addRigidBody(i,a,{fromCreate:!0,dynamic:this.data.dynamic}),"Collision"===this.data.destroy&&(i.rigidBody?.collider(0).setActiveEvents(1),i.userData.hasCollisionDestroy=!0),i.matrixWorld.decompose(u,c,m),o.applyQuaternion(c),this.data.velocity.some(e=>0!==e)&&this.data.dynamic&&i.rigidBody?.setLinvel(o.divideScalar(this.controlsManager.pixelsPerMeter),!0)):("geometry"in i.object&&this.controlsManager.addBoundsTree(i),this.data.velocity.some(e=>0!==e)&&this.data.dynamic&&(i.userData.velocity=o)),!0===a.dataPatched.physics?.fusedBody))return!0};let p=this.page.scene.find(this.data.object);if(!p)throw new Error("Missing Property");if(this.object=p,"world"!==this.data.coordinateSystem&&!this.page.scene.find(this.data.coordinateSystem))throw new Error("Missing Property");l.play(d)}dispose(){null!==this.intervalId&&(window.clearInterval(this.intervalId),this.intervalId=null),this.timeoutIdQueue.forEach(e=>window.clearTimeout(e)),this.timeoutIdQueue=[],this.dispatchThrottled.cancel(),this.page.remove(...this.controlsManager.sharedGameControlGlobals.createdObjects),this.controlsManager.sharedGameControlGlobals.createdObjects=[],l.dispose()}},p=class{constructor(e,t,i,a,o){this.data=e,this.page=t,this.controlsManager=i,this.shared=a,this.condition=o,this.timeoutIdQueue=[],this.dispatchInner=()=>{this.objects.forEach(this.destroyCallback)},this.destroyCallback=e=>{this.timeoutIdQueue.shift();let t=this.page.scene.find(e);if(void 0===t)return;let i=this.controlsManager.sharedGameControlGlobals.rapierWorld,a=!i||t.dataPatched.physics?.fusedBody;if(t.cloner){for(let e of t.cloner.children)a?(e.playModeVisible=!1,e.rigidBody&&"positioned"===t.dataPatched.physics?.rigidBody&&(this.controlsManager.sharedGameControlGlobals.colliderToEntity.delete(e.rigidBody.collider(0).handle),i.removeRigidBody(e.rigidBody),e.rigidBody=void 0),e.bvhGeometry&&(e.bvhGeometry=void 0)):void 0===this.clone||this.clone===e?(e.playModeVisible=!1,e.rigidBody&&(this.controlsManager.sharedGameControlGlobals.colliderToEntity.delete(e.rigidBody.collider(0).handle),i.removeRigidBody(e.rigidBody),e.rigidBody=void 0)):void 0===e.playModeVisible&&(e.playModeVisible=!0);t.cloner.syncInstanceMatrices(),(a||void 0===this.clone||!1===this.clone)&&(t.visible=!1,t.rigidBody&&(this.controlsManager.sharedGameControlGlobals.colliderToEntity.delete(t.rigidBody.collider(0).handle),i.removeRigidBody(t.rigidBody),t.rigidBody=void 0),t.bvhGeometry&&(t.bvhGeometry=void 0))}else t.rigidBody&&(this.controlsManager.sharedGameControlGlobals.colliderToEntity.delete(t.rigidBody.collider(0).handle),i.removeRigidBody(t.rigidBody),t.rigidBody=void 0),t.bvhGeometry&&(t.bvhGeometry=void 0),t.visible=!1;this.controlsManager.sharedGameControlGlobals.entitiesWithTransformAnim=void 0===i?this.controlsManager.sharedGameControlGlobals.entitiesWithTransformAnim.filter(e=>void 0!==e.bvhGeometry):this.controlsManager.sharedGameControlGlobals.entitiesWithTransformAnim.filter(e=>void 0!==e.rigidBody),t.destroyedInAction=!0,this.controlsManager.requestRender()},this.objects=[...e.objects]}dispatch(e){if(!1===a(this.shared,this.condition))return!1;this.clone=e,this.data.delay?this.timeoutIdQueue.push(window.setTimeout(this.dispatchInner,1e3*this.data.delay)):this.dispatchInner()}dispatchFromStart(){if(!1===a(this.shared,this.condition))return!1;this.timeoutIdQueue.push(window.setTimeout(this.dispatchInner,1e3*this.data.delay))}dispose(){this.timeoutIdQueue.forEach(e=>window.clearTimeout(e))}};i("Create",({data:e,page:t,eventManager:i,shared:a,actionCondition:o})=>new y(e,t,i.controlsManager,a,o)),i("Destroy",({data:e,page:t,eventManager:i,shared:a,actionCondition:o})=>new p(e,t,i.controlsManager,a,o)),r("create-destroy");
@@ -0,0 +1 @@
1
+ import{a as e}from"./runtime-chunk-YXATXASV.js";import"./runtime-chunk-OFPUAZKY.js";import{a as t}from"./runtime-chunk-EOV2DL2V.js";import"./runtime-chunk-Y3BMDVJ7.js";import{Bc as r,Db as n,Dc as i,Fc as s,Ib as a,Jc as l,Lc as o,Le as h,Oc as u,Tc as c,Vc as f,Zc as d,ce as g,dd as p,ld as v,m as y,qa as m,ua as x,we as w,xe as b}from"./runtime-chunk-VGN7YHB7.js";import{c as F}from"./runtime-chunk-ML3Z74BL.js";var C="varying vec2 vUv;void main(){vUv=position.xy*0.5+0.5;gl_Position=vec4(position.xy,1.0,1.0);}",A=class extends g{constructor(e=!1,t=!1){super({name:"BokehMaterial",defines:{PASS:e?"2":"1"},uniforms:{kernel64:new h(null),kernel16:new h(null),inputBuffer:new h(null),cocBuffer:new h(null),texelSize:new h(new i),scale:new h(1)},blending:y,depthWrite:!1,depthTest:!1,fragmentShader:"#ifdef FRAMEBUFFER_PRECISION_HIGH\nuniform mediump sampler2D inputBuffer;\n#else\nuniform lowp sampler2D inputBuffer;\n#endif\nuniform lowp sampler2D cocBuffer;uniform vec2 texelSize;uniform float scale;uniform vec4 kernel64[32];varying vec2 vUv;void main(){\n#ifdef FOREGROUND\nvec2 CoCNearFar=texture2D(cocBuffer,vUv).rg;float CoC=CoCNearFar.r*scale;\n#else\nfloat CoC=texture2D(cocBuffer,vUv).g*scale;\n#endif\nif(CoC==0.0){gl_FragColor=texture2D(inputBuffer,vUv);}else{\n#ifdef FOREGROUND\nvec2 step=texelSize*max(CoC,CoCNearFar.g*scale);\n#else\nvec2 step=texelSize*CoC;\n#endif\nvec4 acc=vec4(0.0);for(int i=0;i<32;++i){vec4 kernel=kernel64[i];vec2 uv=step*kernel.xy+vUv;acc+=texture2D(inputBuffer,uv);uv=step*kernel.zw+vUv;acc+=texture2D(inputBuffer,uv);}gl_FragColor=acc/64.0;}}",vertexShader:C}),this.toneMapped=!1,t&&(this.defines.FOREGROUND="1"),this.generateKernel()}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}set cocBuffer(e){this.uniforms.cocBuffer.value=e}setCoCBuffer(e){this.uniforms.cocBuffer.value=e}get scale(){return this.uniforms.scale.value}set scale(e){this.uniforms.scale.value=e}getScale(e){return this.uniforms.scale.value=e}setScale(e){this.uniforms.scale.value=e}generateKernel(){let e=new Float32Array(128),t=new Float32Array(32),r=0,n=0;for(let i=0;i<80;++i){let s=2.39996323*i,a=Math.sqrt(i)/Math.sqrt(80),l=a*Math.cos(s),o=a*Math.sin(s);i%5==0?(t[n++]=l,t[n++]=o):(e[r++]=l,e[r++]=o)}let i=[],s=[];for(let t=0;t<128;)i.push(new l(e[t++],e[t++],e[t++],e[t++]));for(let e=0;e<32;)s.push(new l(t[e++],t[e++],t[e++],t[e++]));this.uniforms.kernel64.value=i,this.uniforms.kernel16.value=s}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t)}setSize(e,t){this.uniforms.texelSize.value.set(1/e,1/t)}};function S(e,t,r){return e*(t-r)-t}function B(e,t,r){return Math.min(Math.max((e+t)/(t-r),0),1)}var T=class extends g{constructor(e){super({name:"CircleOfConfusionMaterial",defines:{DEPTH_PACKING:"0"},uniforms:{depthBuffer:new h(null),focusDistance:new h(0),focusRange:new h(0),cameraNear:new h(.3),cameraFar:new h(1e3)},blending:y,depthWrite:!1,depthTest:!1,fragmentShader:"#include <common>\n#include <packing>\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nuniform highp sampler2D depthBuffer;\n#else\nuniform mediump sampler2D depthBuffer;\n#endif\nuniform float focusDistance;uniform float focusRange;uniform float cameraNear;uniform float cameraFar;varying vec2 vUv;float readDepth(const in vec2 uv){\n#if DEPTH_PACKING == 3201\nreturn unpackRGBAToDepth(texture2D(depthBuffer,uv));\n#else\nreturn texture2D(depthBuffer,uv).r;\n#endif\n}void main(){float depth=readDepth(vUv);\n#ifdef PERSPECTIVE_CAMERA\nfloat viewZ=perspectiveDepthToViewZ(depth,cameraNear,cameraFar);float linearDepth=viewZToOrthographicDepth(viewZ,cameraNear,cameraFar);\n#else\nfloat linearDepth=depth;\n#endif\nfloat signedDistance=linearDepth-focusDistance;float magnitude=smoothstep(0.0,focusRange,abs(signedDistance));gl_FragColor.rg=magnitude*vec2(step(signedDistance,0.0),step(0.0,signedDistance));}",vertexShader:C}),this.toneMapped=!1,this.uniforms.focalLength=this.uniforms.focusRange,this.adoptCameraSettings(e)}get near(){return this.uniforms.cameraNear.value}get far(){return this.uniforms.cameraFar.value}set depthBuffer(e){this.uniforms.depthBuffer.value=e}set depthPacking(e){this.defines.DEPTH_PACKING=e.toFixed(0),this.needsUpdate=!0}setDepthBuffer(e,t=n){this.depthBuffer=e,this.depthPacking=t}get focusDistance(){return this.uniforms.focusDistance.value}set focusDistance(e){this.uniforms.focusDistance.value=e}get worldFocusDistance(){return-S(this.focusDistance,this.near,this.far)}set worldFocusDistance(e){this.focusDistance=B(-e,this.near,this.far)}getFocusDistance(e){this.uniforms.focusDistance.value=e}setFocusDistance(e){this.uniforms.focusDistance.value=e}get focalLength(){return this.focusRange}set focalLength(e){this.focusRange=e}get focusRange(){return this.uniforms.focusRange.value}set focusRange(e){this.uniforms.focusRange.value=e}get worldFocusRange(){return-S(this.focusRange,this.near,this.far)}set worldFocusRange(e){this.focusRange=B(-e,this.near,this.far)}getFocalLength(e){return this.focusRange}setFocalLength(e){this.focusRange=e}adoptCameraSettings(e){e&&(this.uniforms.cameraNear.value=e.near,this.uniforms.cameraFar.value=e.far,e instanceof b?this.defines.PERSPECTIVE_CAMERA="1":delete this.defines.PERSPECTIVE_CAMERA,this.needsUpdate=!0)}},k=class extends g{constructor(e=new i){super({name:"KawaseBlurMaterial",uniforms:{inputBuffer:new h(null),texelSize:new h(new i),halfTexelSize:new h(new i),kernel:new h(0),scale:new h(1)},blending:y,depthWrite:!1,depthTest:!1,fragmentShader:"#include <common>\n#include <dithering_pars_fragment>\n#ifdef FRAMEBUFFER_PRECISION_HIGH\nuniform mediump sampler2D inputBuffer;\n#else\nuniform lowp sampler2D inputBuffer;\n#endif\nvarying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec4 sum=texture2D(inputBuffer,vUv0);sum+=texture2D(inputBuffer,vUv1);sum+=texture2D(inputBuffer,vUv2);sum+=texture2D(inputBuffer,vUv3);gl_FragColor=sum*0.25;\n#include <colorspace_fragment>\n#include <dithering_fragment>\n}",vertexShader:"uniform vec2 texelSize;uniform vec2 halfTexelSize;uniform float kernel;uniform float scale;varying vec2 vUv0;varying vec2 vUv1;varying vec2 vUv2;varying vec2 vUv3;void main(){vec2 uv=position.xy*0.5+0.5;vec2 dUv=(texelSize*vec2(kernel)+halfTexelSize)*scale;vUv0=vec2(uv.x-dUv.x,uv.y+dUv.y);vUv1=vec2(uv.x+dUv.x,uv.y+dUv.y);vUv2=vec2(uv.x+dUv.x,uv.y-dUv.y);vUv3=vec2(uv.x-dUv.x,uv.y-dUv.y);gl_Position=vec4(position.xy,1.0,1.0);}"}),this.toneMapped=!1,this.setTexelSize(e.x,e.y)}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.inputBuffer=e}get scale(){return this.uniforms.scale.value}set scale(e){this.uniforms.scale.value=e}getScale(){return this.uniforms.scale.value}setScale(e){this.uniforms.scale.value=e}getKernel(){return null}get kernel(){return this.uniforms.kernel.value}set kernel(e){this.uniforms.kernel.value=e}setKernel(e){this.kernel=e}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t),this.uniforms.halfTexelSize.value.set(e,t).multiplyScalar(.5)}setSize(e,t){let r=this.uniforms;r.texelSize.value.set(1/e,1/t),r.halfTexelSize.value.copy(r.texelSize.value).multiplyScalar(.5)}},M=class extends g{constructor(e=null){super({name:"MaskMaterial",uniforms:{maskTexture:new h(e),inputBuffer:new h(null),strength:new h(1)},blending:y,depthWrite:!1,depthTest:!1,fragmentShader:"#ifdef FRAMEBUFFER_PRECISION_HIGH\nuniform mediump sampler2D inputBuffer;\n#else\nuniform lowp sampler2D inputBuffer;\n#endif\n#ifdef MASK_PRECISION_HIGH\nuniform mediump sampler2D maskTexture;\n#else\nuniform lowp sampler2D maskTexture;\n#endif\n#if MASK_FUNCTION != 0\nuniform float strength;\n#endif\nvarying vec2 vUv;void main(){\n#if COLOR_CHANNEL == 0\nfloat mask=texture2D(maskTexture,vUv).r;\n#elif COLOR_CHANNEL == 1\nfloat mask=texture2D(maskTexture,vUv).g;\n#elif COLOR_CHANNEL == 2\nfloat mask=texture2D(maskTexture,vUv).b;\n#else\nfloat mask=texture2D(maskTexture,vUv).a;\n#endif\n#if MASK_FUNCTION == 0\n#ifdef INVERTED\nmask=step(mask,0.0);\n#else\nmask=1.0-step(mask,0.0);\n#endif\n#else\nmask=clamp(mask*strength,0.0,1.0);\n#ifdef INVERTED\nmask=1.0-mask;\n#endif\n#endif\n#if MASK_FUNCTION == 2\ngl_FragColor=vec4(mask*texture2D(inputBuffer,vUv).rgb,mask);\n#else\ngl_FragColor=mask*texture2D(inputBuffer,vUv);\n#endif\n}",vertexShader:C}),this.toneMapped=!1,this.setColorChannel(0),this.setMaskFunction(0)}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}set maskTexture(e){this.uniforms.maskTexture.value=e,delete this.defines.MASK_PRECISION_HIGH,e.type!==x&&(this.defines.MASK_PRECISION_HIGH="1"),this.needsUpdate=!0}setMaskTexture(e){this.maskTexture=e}set colorChannel(e){this.defines.COLOR_CHANNEL=e.toFixed(0),this.needsUpdate=!0}setColorChannel(e){this.colorChannel=e}set maskFunction(e){this.defines.MASK_FUNCTION=e.toFixed(0),this.needsUpdate=!0}setMaskFunction(e){this.maskFunction=e}get inverted(){return void 0!==this.defines.INVERTED}set inverted(e){this.inverted&&!e?delete this.defines.INVERTED:e&&(this.defines.INVERTED="1"),this.needsUpdate=!0}isInverted(){return this.inverted}setInverted(e){this.inverted=e}get strength(){return this.uniforms.strength.value}set strength(e){this.uniforms.strength.value=e}getStrength(){return this.strength}setStrength(e){this.strength=e}},U=new w,D=null,P=class{constructor(e="Pass",t=new f,r=U){this.name=e,this.renderer=null,this.scene=t,this.camera=r,this.screen=null,this.rtt=!0,this.needsSwap=!0,this.needsDepthTexture=!1,this.enabled=!0}get renderToScreen(){return!this.rtt}set renderToScreen(e){if(this.rtt===e){let t=this.getFullscreenMaterial();null!==t&&(t.needsUpdate=!0),this.rtt=!e}}setRenderer(e){this.renderer=e}isEnabled(){return this.enabled}setEnabled(e){this.enabled=e}get fullscreenMaterial(){return null!==this.screen?this.screen.material:null}set fullscreenMaterial(e){let t=this.screen;null!==t?t.material=e:(t=new v(function(){if(null===D){let e=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),t=new Float32Array([0,0,2,0,0,2]);void 0!==(D=new p).setAttribute?(D.setAttribute("position",new d(e,3)),D.setAttribute("uv",new d(t,2))):(D.addAttribute("position",new d(e,3)),D.addAttribute("uv",new d(t,2)))}return D}(),e),t.frustumCulled=!1,null===this.scene&&(this.scene=new f),this.scene.add(t),this.screen=t)}getFullscreenMaterial(){return this.fullscreenMaterial}setFullscreenMaterial(e){this.fullscreenMaterial=e}getDepthTexture(){return null}setDepthTexture(e,t=n){}render(e,t,r,n,i){throw new Error("Render method not implemented!")}setSize(e,t){}initialize(e,t,r){}dispose(){for(let e of Object.keys(this)){let t=this[e];if(null!==t&&"object"==typeof t&&"function"==typeof t.dispose){if(t instanceof f||t===this.renderer)continue;this[e].dispose()}}}},E=(new c,-1),z=class extends r{constructor(e,t=E,r=E,n=1){super(),this.resizable=e,this.base=new i(1,1),this.preferred=new i(t,r),this.target=this.preferred,this.s=n}get width(){let e,{base:t,preferred:r,scale:n}=this;return e=r.width!==E?r.width:r.height!==E?Math.round(r.height*(t.width/Math.max(t.height,1))):Math.round(t.width*n),e}set width(e){this.preferredWidth=e}get height(){let e,{base:t,preferred:r,scale:n}=this;return e=r.height!==E?r.height:r.width!==E?Math.round(r.width/Math.max(t.width/Math.max(t.height,1),1)):Math.round(t.height*n),e}set height(e){this.preferredHeight=e}getWidth(){return this.width}getHeight(){return this.height}get scale(){return this.s}set scale(e){this.s!==e&&(this.s=e,this.preferred.setScalar(E),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.base.width,this.base.height))}getScale(){return this.scale}setScale(e){this.scale=e}get baseWidth(){return this.base.width}set baseWidth(e){this.base.width!==e&&(this.base.width=e,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.base.width,this.base.height))}getBaseWidth(){return this.base.width}setBaseWidth(e){this.base.width!==e&&(this.base.width=e,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.base.width,this.base.height))}get baseHeight(){return this.base.height}set baseHeight(e){this.base.height!==e&&(this.base.height=e,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.base.width,this.base.height))}getBaseHeight(){return this.baseHeight}setBaseHeight(e){this.baseHeight=e}setBaseSize(e,t){(this.base.width!==e||this.base.height!==t)&&(this.base.set(e,t),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.base.width,this.base.height))}get preferredWidth(){return this.preferred.width}set preferredWidth(e){this.preferred.width!==e&&(this.preferred.width=e,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.base.width,this.base.height))}getPreferredWidth(){return this.preferredWidth}setPreferredWidth(e){this.preferredWidth=e}get preferredHeight(){return this.preferred.height}set preferredHeight(e){this.preferred.height!==e&&(this.preferred.height=e,this.dispatchEvent({type:"change"}),this.resizable.setSize(this.base.width,this.base.height))}getPreferredHeight(){return this.preferredHeight}setPreferredHeight(e){this.preferredHeight=e}setPreferredSize(e,t){(this.preferred.width!==e||this.preferred.height!==t)&&(this.preferred.set(e,t),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.base.width,this.base.height))}copy(e){this.base.set(e.getBaseWidth(),e.getBaseHeight()),this.preferred.set(e.getPreferredWidth(),e.getPreferredHeight()),this.dispatchEvent({type:"change"}),this.resizable.setSize(this.base.width,this.base.height)}static get AUTO_SIZE(){return E}},R=(new Float32Array([255/256/256**3,255/256/65536,255/256/256,255/256]),13),N=new Map([[0,null],[1,"vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return min(x+y,1.0)*opacity+x*(1.0-opacity);}"],[2,"vec3 blend(const in vec3 x,const in vec3 y,const in float opacity){return y*opacity+x*(1.0-opacity);}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){float a=min(y.a,opacity);return vec4(blend(x.rgb,y.rgb,a),max(x.a,a));}"],[3,"vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return(x+y)*0.5*opacity+x*(1.0-opacity);}"],[4,"float blend(const in float x,const in float y){return(y==0.0)?y:max(1.0-(1.0-x)/y,0.0);}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}"],[5,"float blend(const in float x,const in float y){return(y==1.0)?y:min(x/(1.0-y),1.0);}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}"],[6,"vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return min(x,y)*opacity+x*(1.0-opacity);}"],[7,"vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return abs(x-y)*opacity+x*(1.0-opacity);}"],[8,"vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return(x+y-2.0*x*y)*opacity+x*(1.0-opacity);}"],[9,"vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return max(x,y)*opacity+x*(1.0-opacity);}"],[10,"vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return x*y*opacity+x*(1.0-opacity);}"],[11,"float blend(const in float x,const in float y){return(y>0.0)?min(x/y,1.0):1.0;}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}"],[12,"vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return(1.0-abs(1.0-x-y))*opacity+x*(1.0-opacity);}"],[R,"vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return y*opacity+x*(1.0-opacity);}"],[14,"float blend(const in float x,const in float y){return(x<0.5)?(2.0*x*y):(1.0-2.0*(1.0-x)*(1.0-y));}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}"],[15,"float blend(const in float x,const in float y){return(y==1.0)?y:min(x*x/(1.0-y),1.0);}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}"],[16,"vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return(1.0-(1.0-x)*(1.0-y))*opacity+x*(1.0-opacity);}"],[17,"float blend(const in float x,const in float y){return(y<0.5)?(2.0*x*y+x*x*(1.0-2.0*y)):(sqrt(x)*(2.0*y-1.0)+2.0*x*(1.0-y));}vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){vec4 z=vec4(blend(x.r,y.r),blend(x.g,y.g),blend(x.b,y.b),blend(x.a,y.a));return z*opacity+x*(1.0-opacity);}"],[18,"vec4 blend(const in vec4 x,const in vec4 y,const in float opacity){return max(x+y-1.0,0.0)*opacity+x*(1.0-opacity);}"]]),I=class extends r{constructor(e,t=1){super(),this.f=e,this.opacity=new h(t)}getOpacity(){return this.opacity.value}setOpacity(e){this.opacity.value=e}get blendFunction(){return this.f}set blendFunction(e){this.f=e,this.dispatchEvent({type:"change"})}getBlendFunction(){return this.blendFunction}setBlendFunction(e){this.blendFunction=e}getShaderCode(){return N.get(this.blendFunction)}},O=class extends r{constructor(e,t,{attributes:r=0,blendFunction:n=16,defines:i=new Map,uniforms:s=new Map,extensions:a=null,vertexShader:l=null}={}){super(),this.name=e,this.renderer=null,this.attributes=r,this.fragmentShader=t,this.vertexShader=l,this.defines=i,this.uniforms=s,this.extensions=a,this.blendMode=new I(n),this.blendMode.addEventListener("change",e=>this.setChanged())}getName(){return this.name}setRenderer(e){this.renderer=e}getDefines(){return this.defines}getUniforms(){return this.uniforms}getExtensions(){return this.extensions}getBlendMode(){return this.blendMode}getAttributes(){return this.attributes}setAttributes(e){this.attributes=e,this.setChanged()}getFragmentShader(){return this.fragmentShader}setFragmentShader(e){this.fragmentShader=e,this.setChanged()}getVertexShader(){return this.vertexShader}setVertexShader(e){this.vertexShader=e,this.setChanged()}setChanged(){this.dispatchEvent({type:"change"})}setDepthTexture(e,t=n){}update(e,t,r){}setSize(e,t){}initialize(e,t,r){}dispose(){for(let e of Object.keys(this)){let t=this[e];if(null!==t&&"object"==typeof t&&"function"==typeof t.dispose){if(t instanceof f||t===this.renderer)continue;this[e].dispose()}}}},_=[new Float32Array([0,0]),new Float32Array([0,1,1]),new Float32Array([0,1,1,2]),new Float32Array([0,1,2,2,3]),new Float32Array([0,1,2,3,4,4,5]),new Float32Array([0,1,2,3,4,5,7,8,9,10])],H=class extends P{constructor({resolutionScale:e=.5,width:t=z.AUTO_SIZE,height:r=z.AUTO_SIZE,kernelSize:n=G.LARGE}={}){super("KawaseBlurPass"),this.renderTargetA=new o(1,1,{minFilter:m,magFilter:m,stencilBuffer:!1,depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B";let i=this.resolution=new z(this,t,r,e);i.addEventListener("change",e=>this.setSize(i.baseWidth,i.baseHeight)),this.blurMaterial=new k,this.ditheredBlurMaterial=new k,this.ditheredBlurMaterial.uniforms.scale=this.blurMaterial.uniforms.scale,this.ditheredBlurMaterial.dithering=!0,this.dithering=!1,this.kernelSize=n}getResolution(){return this.resolution}get width(){return this.resolution.width}set width(e){this.resolution.preferredWidth=e}get height(){return this.resolution.height}set height(e){this.resolution.preferredHeight=e}get scale(){return this.blurMaterial.scale}set scale(e){this.blurMaterial.scale=e}getScale(){return this.blurMaterial.scale}setScale(e){this.blurMaterial.scale=e}getKernelSize(){return this.kernelSize}setKernelSize(e){this.kernelSize=e}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,r,n,i){let s,a,l=this.scene,o=this.camera,h=this.renderTargetA,u=this.renderTargetB,c=_[this.kernelSize],f=this.blurMaterial,d=t;for(this.fullscreenMaterial=f,s=0,a=c.length-1;s<a;++s){let t=1&s?u:h;f.kernel=c[s],f.inputBuffer=d.texture,e.setRenderTarget(t),e.render(l,o),d=t}this.dithering&&(f=this.ditheredBlurMaterial,this.fullscreenMaterial=f),f.kernel=c[s],f.inputBuffer=d.texture,e.setRenderTarget(this.renderToScreen?null:r),e.render(l,o)}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t);let n=r.width,i=r.height;this.renderTargetA.setSize(n,i),this.renderTargetB.setSize(n,i),this.blurMaterial.setSize(n,i),this.ditheredBlurMaterial.setSize(n,i)}initialize(e,t,r){void 0!==r&&(this.renderTargetA.texture.type=r,this.renderTargetB.texture.type=r,r!==x?(this.blurMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1",this.ditheredBlurMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1"):e.outputColorSpace===a&&(this.renderTargetA.texture.colorSpace=a,this.renderTargetB.texture.colorSpace=a))}static get AUTO_SIZE(){return z.AUTO_SIZE}},L=class extends P{constructor(e,t="inputBuffer"){super("ShaderPass"),this.fullscreenMaterial=e,this.inputBufferUniform=null,this.setInput(t)}setInput(e){if(this.inputBufferUniform=null,null!==this.fullscreenMaterial){let t=this.fullscreenMaterial.uniforms;void 0!==t&&void 0!==t[e]&&(this.inputBufferUniform=t[e])}}render(e,t,r,n,i){null!==this.inputBufferUniform&&null!==t&&(this.inputBufferUniform.value=t.texture),e.setRenderTarget(this.renderToScreen?null:r),e.render(this.scene,this.camera)}initialize(e,t,r){void 0!==r&&r!==x&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},G={VERY_SMALL:0,SMALL:1,MEDIUM:2,LARGE:3,VERY_LARGE:4,HUGE:5},W=class extends O{constructor(e,{blendFunction:t=R,worldFocusDistance:r,worldFocusRange:n,focusDistance:i=0,focalLength:a=.1,focusRange:l=a,bokehScale:u=1,width:c=z.AUTO_SIZE,height:f=z.AUTO_SIZE}={}){super("DepthOfFieldEffect","#ifdef FRAMEBUFFER_PRECISION_HIGH\nuniform mediump sampler2D nearColorBuffer;uniform mediump sampler2D farColorBuffer;\n#else\nuniform lowp sampler2D nearColorBuffer;uniform lowp sampler2D farColorBuffer;\n#endif\nuniform lowp sampler2D nearCoCBuffer;uniform float scale;void mainImage(const in vec4 inputColor,const in vec2 uv,const in float depth,out vec4 outputColor){vec4 colorNear=texture2D(nearColorBuffer,uv);vec4 colorFar=texture2D(farColorBuffer,uv);float CoCNear=texture2D(nearCoCBuffer,uv).r;CoCNear=min(CoCNear*scale,1.0);vec4 result=inputColor*(1.0-colorFar.a)+colorFar;result=mix(result,colorNear,CoCNear);outputColor=result;}",{blendFunction:t,attributes:1,uniforms:new Map([["nearColorBuffer",new h(null)],["farColorBuffer",new h(null)],["nearCoCBuffer",new h(null)],["scale",new h(1)]])}),F(this,"targetObject"),this.camera=e,this.renderTarget=new o(1,1,{minFilter:m,magFilter:m,stencilBuffer:!1,depthBuffer:!1}),this.renderTarget.texture.name="DoF.Intermediate",this.renderTarget.texture.generateMipmaps=!1,this.renderTargetMasked=this.renderTarget.clone(),this.renderTargetMasked.texture.name="DoF.Masked.Far",this.renderTargetNear=this.renderTarget.clone(),this.renderTargetNear.texture.name="DoF.Bokeh.Near",this.uniforms.get("nearColorBuffer").value=this.renderTargetNear.texture,this.renderTargetFar=this.renderTarget.clone(),this.renderTargetFar.texture.name="DoF.Bokeh.Far",this.uniforms.get("farColorBuffer").value=this.renderTargetFar.texture,this.renderTargetCoC=this.renderTarget.clone(),this.renderTargetCoC.texture.name="DoF.CoC",this.renderTargetCoCBlurred=this.renderTargetCoC.clone(),this.renderTargetCoCBlurred.texture.name="DoF.CoC.Blurred",this.uniforms.get("nearCoCBuffer").value=this.renderTargetCoCBlurred.texture,this.cocPass=new L(new T(e));let d=this.cocMaterial;d.focusDistance=i,d.focusRange=l,void 0!==r&&(d.worldFocusDistance=r),void 0!==n&&(d.worldFocusRange=n),this.blurPass=new H({kernelSize:G.MEDIUM,width:c,height:f});let g=this.blurPass.getResolution();g.addEventListener("change",e=>this.setSize(g.getBaseWidth(),g.getBaseHeight())),this.maskPass=new L(new M(this.renderTargetCoC.texture));let p=this.maskPass.fullscreenMaterial;p.maskFunction=1,p.colorChannel=1,this.bokehNearBasePass=new L(new A(!1,!0)),this.bokehNearBasePass.fullscreenMaterial.cocBuffer=this.renderTargetCoCBlurred.texture,this.bokehNearFillPass=new L(new A(!0,!0)),this.bokehNearFillPass.fullscreenMaterial.cocBuffer=this.renderTargetCoCBlurred.texture,this.bokehFarBasePass=new L(new A(!1,!1)),this.bokehFarBasePass.fullscreenMaterial.cocBuffer=this.renderTargetCoC.texture,this.bokehFarFillPass=new L(new A(!0,!1)),this.bokehFarFillPass.fullscreenMaterial.cocBuffer=this.renderTargetCoC.texture,this.target=new s,this.bokehScale=u}get cocTexture(){return this.renderTargetCoC.texture}get cocMaterial(){return this.cocPass.fullscreenMaterial}get circleOfConfusionMaterial(){return this.cocMaterial}getCircleOfConfusionMaterial(){return this.circleOfConfusionMaterial}getBlurPass(){return this.blurPass}get resolution(){return this.blurPass.getResolution()}getResolution(){return this.blurPass.getResolution()}get bokehScale(){return this.uniforms.get("scale").value}set bokehScale(e){let t=[this.bokehNearBasePass,this.bokehNearFillPass,this.bokehFarBasePass,this.bokehFarFillPass];for(let r of t)r.fullscreenMaterial.setScale(e);this.maskPass.fullscreenMaterial.setStrength(e),this.uniforms.get("scale").value=e}getBokehScale(){return this.bokehScale}setBokehScale(e){this.bokehScale=e}getTarget(){return this.target}setTarget(e){this.target=e}calculateFocusDistance(e){let t=this.camera;return B(-t.position.distanceTo(e),t.near,t.far)}setDepthTexture(e,t=n){this.circleOfConfusionMaterial.depthBuffer=e,this.circleOfConfusionMaterial.depthPacking=t}update(e,t,r){let n=this.renderTarget,i=this.renderTargetCoC,s=this.renderTargetCoCBlurred,a=this.renderTargetMasked;if(this.targetObject&&this.camera){this.target.setFromMatrixPosition(this.targetObject.matrixWorld);let e=this.calculateFocusDistance(this.target);this.circleOfConfusionMaterial.focusDistance=e}this.cocPass.render(e,null,i),this.blurPass.render(e,i,s),this.maskPass.render(e,t,a),this.bokehFarBasePass.render(e,a,n),this.bokehFarFillPass.render(e,n,this.renderTargetFar),this.bokehNearBasePass.render(e,t,n),this.bokehNearFillPass.render(e,n,this.renderTargetNear)}setSize(e,t){let r=this.resolution;r.setBaseSize(e,t);let n=r.width,i=r.height,s=[this.cocPass,this.blurPass,this.maskPass,this.bokehNearBasePass,this.bokehNearFillPass,this.bokehFarBasePass,this.bokehFarFillPass];s.push(this.renderTargetCoC,this.renderTargetMasked),s.forEach(r=>r.setSize(e,t)),s=[this.renderTarget,this.renderTargetNear,this.renderTargetFar,this.renderTargetCoCBlurred],s.forEach(e=>e.setSize(n,i)),[this.bokehNearBasePass,this.bokehNearFillPass,this.bokehFarBasePass,this.bokehFarFillPass].forEach(e=>e.fullscreenMaterial.setSize(n,i))}initialize(e,t,r){[this.cocPass,this.maskPass,this.bokehNearBasePass,this.bokehNearFillPass,this.bokehFarBasePass,this.bokehFarFillPass].forEach(n=>n.initialize(e,t,r)),this.blurPass.initialize(e,t,x),void 0!==r&&(this.renderTarget.texture.type=r,this.renderTargetNear.texture.type=r,this.renderTargetFar.texture.type=r,this.renderTargetMasked.texture.type=r,e.outputColorSpace===a&&(this.renderTarget.texture.colorSpace=a,this.renderTargetNear.texture.colorSpace=a,this.renderTargetFar.texture.colorSpace=a,this.renderTargetMasked.texture.colorSpace=a))}};function K(e,t,r){return e+(t-e)*r}function V(e,t,r,n){let i=K(e,t,.75),s=K(r,n,.75);return K(i,s,.875)}new s,new u,new c,Math.PI,new s,new s,new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1]),new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1]),new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1]),new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1]),new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1]),new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1]),new Float32Array(2),new Float32Array(2),new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125]),new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4]),new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3]),new Map([[V(0,0,0,0),new Float32Array([0,0,0,0])],[V(0,0,0,1),new Float32Array([0,0,0,1])],[V(0,0,1,0),new Float32Array([0,0,1,0])],[V(0,0,1,1),new Float32Array([0,0,1,1])],[V(0,1,0,0),new Float32Array([0,1,0,0])],[V(0,1,0,1),new Float32Array([0,1,0,1])],[V(0,1,1,0),new Float32Array([0,1,1,0])],[V(0,1,1,1),new Float32Array([0,1,1,1])],[V(1,0,0,0),new Float32Array([1,0,0,0])],[V(1,0,0,1),new Float32Array([1,0,0,1])],[V(1,0,1,0),new Float32Array([1,0,1,0])],[V(1,0,1,1),new Float32Array([1,0,1,1])],[V(1,1,0,0),new Float32Array([1,1,0,0])],[V(1,1,0,1),new Float32Array([1,1,0,1])],[V(1,1,1,0),new Float32Array([1,1,1,0])],[V(1,1,1,1),new Float32Array([1,1,1,1])]]);var Z=class extends e{constructor(e){super(W)}set focalLength(e){this.effect.circleOfConfusionMaterial.uniforms.focalLength.value=e/2e3}get focalLength(){return this.effect.circleOfConfusionMaterial.uniforms.focalLength.value}set focusDistance(e){this.effect.circleOfConfusionMaterial.uniforms.focusDistance.value=this.isPerspectiveCamera?e/2e3:(e+992)/2e3}get focusDistance(){return this.effect.circleOfConfusionMaterial.uniforms.focusDistance.value}get bokehScale(){return this.effect.bokehScale}set bokehScale(e){this.effect.bokehScale=e}setCamera(e){let t=!1;(e.isPerspectiveCamera&&!1===this.isPerspectiveCamera||!e.isPerspectiveCamera&&!0===this.isPerspectiveCamera)&&(t=!0),e.isPerspectiveCamera?(this.effect.circleOfConfusionMaterial.adoptCameraSettings(e.perspCamera),this.isPerspectiveCamera=!0):(this.effect.circleOfConfusionMaterial.adoptCameraSettings(e),this.isPerspectiveCamera=!1),t&&this.effect.setChanged()}};t("depthOfField",()=>new Z);
@@ -0,0 +1 @@
1
+ import{a as t}from"./runtime-chunk-P2XISQYQ.js";import{f as e}from"./runtime-chunk-WSJURWOC.js";import{a,b as i}from"./runtime-chunk-DZNU62CT.js";import{a as r}from"./runtime-chunk-VAVYZ35B.js";import"./runtime-chunk-FQNSP44B.js";import"./runtime-chunk-RQ3ZQR4P.js";import"./runtime-chunk-TDCFE5IE.js";import"./runtime-chunk-BJVCOW72.js";import"./runtime-chunk-VRVV54WH.js";import"./runtime-chunk-CTHMLYOZ.js";import"./runtime-chunk-4YV3EXSU.js";import"./runtime-chunk-NSD7DU3P.js";import{f as o,g as n}from"./runtime-chunk-MM75L5X4.js";import{h as s,t as c}from"./runtime-chunk-2Y73BLCY.js";import"./runtime-chunk-QZ35BPGB.js";import"./runtime-chunk-4KZXQGUQ.js";import"./runtime-chunk-Z5OH244S.js";import{a as h}from"./runtime-chunk-TZCHGFVF.js";import"./runtime-chunk-OW6T4XFV.js";import{Ec as d,Fc as p,Gc as l,Oc as v,rd as u}from"./runtime-chunk-VGN7YHB7.js";import"./runtime-chunk-ML3Z74BL.js";var m=new p,g=new p,E=new p,f=new u,D=new p,y=new p,b=new p,x=new d,C=new v,j=new l,M=new p,P=new p,w=.2;function T(t,e){!e||(e[0]<e[1]&&(t.x=Math.min(Math.max(t.x,e[0]),e[1])),e[2]<e[3]&&(t.y=Math.min(Math.max(t.y,e[2]),e[3])),e[4]<e[5]&&(t.z=Math.min(Math.max(t.z,e[4]),e[5])))}var I=function(){let t=new v;return(a,i,r)=>{let o=a.obj;t.copy(o.hiddenMatrix),null!==o.parent&&t.premultiply(o.parent.matrixWorld),t.invert(),o.position.copy(i),"global"===a.reference&&T(o.position,a.limits),o.position.applyMatrix4(t),"parent"===a.reference?T(o.position,a.limits):"local"===a.reference&&(x.copy(a.quat0).invert(),o.position.sub(a.position0),o.position.applyQuaternion(x),T(o.position,a.limits),x.invert(),o.position.applyQuaternion(x),o.position.add(a.position0)),t.multiply(r??o.matrixWorld).decompose(D,o.quaternion,y),o.updateMatrix(),o.hasNonUniformScale&&(o.updateMatrixWorld(),o.updateMatrixWorldRigid()),o instanceof c&&e(o.parent)&&o.invalidateDownstreamBooleanData(!0)}}(),S=class{constructor(t,e,a,i,r,n,s){this.object=t,this.id=e,this.data=a,this.dropDestIds=[],this.activeIdx=null,this.wasDragEventTriggered=!1,this.resetDampingFactor=0===this.data.resetSpeed?1:8/this.data.resetSpeed+1,this.snapDampingFactor=0===this.data.snapSpeed?1:8/this.data.snapSpeed+1,this.actionsDrag=o(a,a.dragDropActions.drag,i,r,n,this.object),this.actionsDrop=o(a,a.dragDropActions.drop,i,r,n,this.object);let c=[];this.data.objects.forEach(t=>{let e=i.find(t);!e||!1!==e.data.visible&&(c.push(e),s[e.uuid]&&s[e.uuid].forEach(t=>{let e=i.find(t);!e||!1!==e.data.visible&&c.push(e)}))}),this.data.dropDestinations.forEach(t=>{let e=i.find(t);!e||!1!==e.data.visible&&(this.dropDestIds.push(e.uuid),s[e.uuid]&&s[e.uuid].forEach(t=>{let e=i.find(t);!e||!1!==e.data.visible&&this.dropDestIds.push(e.uuid)}))}),this.dragItems=c.map(t=>("locked"===this.data.planeMode&&(t.userData.lockedPlane=!0),t.userData.worldPosition0=(new p).setFromMatrixPosition(t.matrixWorld),{obj:t,fromPosition:(new p).setFromMatrixPosition(t.matrixWorld),pointStart:new p,pointEnd:new p,paused:!0,currentDampingFactor:this.data.dampingFactor,reset:!1,position0:(new p).copy(t.position),quat0:(new d).copy(t.quaternion),snapped:!1,orientationMatrix:new v,limits:this.data.limits,reference:this.data.referenceFrame}))}get activeDragItem(){return null!==this.activeIdx?this.dragItems[this.activeIdx]:null}dispose(){n(this.actionsDrag),n(this.actionsDrop),this.dragItems.forEach(t=>{t.fromPosition.copy(t.obj.userData.worldPosition0),t.pointStart.copy(t.fromPosition),t.pointEnd.copy(t.pointStart),t.obj.recursiveBBoxNeedsUpdate=!0,t.obj.userData.lockedPlane=void 0,t.obj.position.copy(t.position0),t.obj.quaternion.copy(t.quat0),t.obj.updateMatrix()})}},F=class extends a{constructor(e,a){super(e),this.eventManager=a,this.events=[],this.lastDropDestination=null,this.dragTimeout=null,this.lastCursorRaycastTime=0,this.trailingCursorTimer=null,this.trailingCursorEvent=null,this.onPointerDown=t=>{if(r.length>1)return;this.eventContext.updateRaycaster(t);let{raycaster:e,page:a}=this.eventContext,i=a.raycastWithClones(e);if(this.lastDropDestination=null,0!==i.length){for(let t of this.events){let e=0;for(let{obj:a,pointEnd:r,pointStart:o}of t.dragItems){if(a===i[0].object||a===i[0].object.object||s.is(a)&&a.isAncestorOf(i[0].object.uuid)){if(t.activeIdx=e,t.activeDragItem.reset=!1,t.activeDragItem.currentDampingFactor=t.data.dampingFactor,t.activeDragItem.snapped=!1,"hand"===t.data.cursor&&this.setCursor("grabbing"),this.eventManager.controlsManager.usePhysics){t.activeDragItem.obj.rigidBody&&(t.activeDragItem.obj.rigidBody.setBodyType(2,!0),this.eventManager.controlsManager.sharedGameControlGlobals.kinematicBodyToEntity.set(t.activeDragItem.obj.rigidBody.handle,t.activeDragItem.obj));let e=t.activeDragItem.obj;a.hasNonUniformScale&&a.updateMatrixWorldRigid(),(e.hasNonUniformScale?e.matrixWorldRigid:e.matrixWorld).decompose(D,x,y),void 0===e.prevQ?(e.prevQ=x.clone(),e.prevT=D.clone()):(e.prevQ.copy(x),e.prevT.copy(D)),this.eventManager.controlsManager.sharedGameControlGlobals.entitiesWithTransformAnim.push(t.activeDragItem.obj)}return this.calcPlaneIntersectPos(a,o,t.data.plane,t.data.referenceFrame),r.copy(o),(this.eventManager.controlsManager.usePhysics&&"dynamic"===a.data.physics?.rigidBody||!1===t.data.drop||!1===t.data.resetOnSnapFail)&&t.activeDragItem.fromPosition.setFromMatrixPosition(t.activeDragItem.obj.matrixWorld),this.activeEvent=t,void(this.eventManager.controlsManager.orbitControls&&(this.eventManager.controlsManager.orbitControls.enabled=!1))}e++}}this.activeEvent=null}else this.activeEvent=null},this.runTrailingCursorUpdate=()=>{this.trailingCursorTimer=null;let t=this.trailingCursorEvent;this.trailingCursorEvent=null,null!==t&&0===r.length&&(this.eventContext.updateRaycaster(t),this.lastCursorRaycastTime=performance.now(),this.updateCursorFromRaycast())},this.onPointerMove=e=>{if(r.length>1)return;this.eventContext.updateRaycaster(e);let{raycaster:a,page:i}=this.eventContext;if(0===r.length){if(!this.events.some(t=>"hand"===t.data.cursor||"move"===t.data.cursor))return;let t=performance.now();return t-this.lastCursorRaycastTime<16?(this.trailingCursorEvent=e,void(null===this.trailingCursorTimer&&(this.trailingCursorTimer=window.setTimeout(this.runTrailingCursorUpdate,32)))):(this.trailingCursorEvent=null,this.lastCursorRaycastTime=t,void this.updateCursorFromRaycast())}if(this.activeEvent&&this.activeEvent.activeDragItem){let e,r=this.activeEvent.activeDragItem;if(r.snapped=!1,this.activeEvent.data.drop&&(e=i.raycastWithClones(a).filter(e=>r.obj!==e.object&&!r.obj.isAncestorOf(e.object.uuid)&&!(e.object instanceof t)&&("all"===this.activeEvent.data.dropOn||this.activeEvent.dropDestIds.some(t=>t===e.object.uuid||i.scene.find(t).isAncestorOf(e.object.uuid))))[0]),e){let t=b.copy(e.face.normal).applyMatrix3(j.getNormalMatrix(e.object.matrixWorld));if("center"===this.activeEvent.data.snapTo)r.fromPosition.setFromMatrixPosition(e.object.matrixWorld);else if("surface"===this.activeEvent.data.snapTo){if(r.fromPosition.copy(e.point),"bbox"===this.activeEvent.data.snapSurfaceMode){D.copy(t).applyMatrix3(j.setFromMatrix4(r.obj.matrixWorld).transpose());let e=r.obj;D.x>w?y.x=-e.recursiveBBox.min.x:D.x<-w&&(y.x=-e.recursiveBBox.max.x),D.y>w?y.y=-e.recursiveBBox.min.y:D.y<-w&&(y.y=-e.recursiveBBox.max.y),D.z>w?y.z=-e.recursiveBBox.min.z:D.z<-w&&(y.z=-e.recursiveBBox.max.z),y.applyMatrix3(j.invert())}else y.copy(t).multiplyScalar(this.activeEvent.data.snapSurfaceOffset);r.fromPosition.add(y)}this.activeEvent.data.autoOrient&&(D.set(0,1,0).cross(t),D.length()<1e-4&&D.set(-1,0,0).cross(t),y.crossVectors(b,D),r.orientationMatrix.makeBasis(D,y,t)),r.pointStart.copy(r.fromPosition),r.pointEnd.copy(r.pointStart),r.currentDampingFactor=this.activeEvent.snapDampingFactor,r.snapped=!0,this.lastDropDestination!==e.object&&(this.lastDropDestination=e.object,this.activeEvent.actionsDrop.Transition.forEach(t=>{t.play()}),this.activeEvent.actionsDrop.Animation.forEach(t=>{t.play()}),this.activeEvent.actionsDrop.Audio.forEach(t=>{t.dispatchGameControl("start")}),this.activeEvent.actionsDrop.Particles.forEach(t=>{t.dispatchGameControl("start")}),this.activeEvent.actionsDrop.Create.forEach(t=>{t.dispatchThrottled()}))}else r.orientationMatrix.makeRotationFromQuaternion(r.quat0),this.lastDropDestination=null,r.currentDampingFactor=this.activeEvent.data.dampingFactor,this.calcPlaneIntersectPos(r.obj,r.pointEnd,this.activeEvent.data.plane,this.activeEvent.data.referenceFrame),this.activeEvent.actionsDrop.Transition.forEach(t=>{t.stop(),null!==t.object.currentState&&t.object.changeSelectedState(null,{scene:this.eventContext.page.scene,shared:this.eventContext.sharedAssets})}),this.activeEvent.actionsDrop.Animation.forEach(t=>{t.stop()}),this.activeEvent.actionsDrop.Audio.forEach(t=>{t.dispatchGameControl("stop")}),this.activeEvent.actionsDrop.Particles.forEach(t=>{t.dispatchGameControl("stop")});this.activeEvent.actionsDrag.Create.forEach(t=>{t.dispatchThrottled()}),this.activeEvent.actionsDrag.SetVariable.forEach(t=>t.checkConditions()),this.activeEvent.actionsDrag.SetVariable.forEach(t=>t.dispatch()),this.activeEvent.actionsDrag.DynamicVariablePlay.forEach(t=>t.dispatch()),this.activeEvent.actionsDrag.ClearLocalStorage.forEach(t=>t.dispatch()),this.activeEvent.actionsDrag.UserAPI.forEach(t=>t.dispatch()),!1===this.activeEvent.wasDragEventTriggered&&(this.activeEvent.wasDragEventTriggered=!0,this.activeEvent.actionsDrag.Transition.forEach(t=>{t.play()}),this.activeEvent.actionsDrag.Animation.forEach(t=>{t.play()}),this.activeEvent.actionsDrag.Audio.forEach(t=>{t.dispatchGameControl("start")}),this.activeEvent.actionsDrag.Particles.forEach(t=>{t.dispatchGameControl("start")})),this.dragTimeout&&window.clearTimeout(this.dragTimeout),this.dragTimeout=window.setTimeout(()=>{!this.activeEvent||(this.activeEvent.wasDragEventTriggered=!1,this.activeEvent.actionsDrag.Audio.forEach(t=>{t.dispatchGameControl("stop")}),this.activeEvent.actionsDrag.Particles.forEach(t=>{t.dispatchGameControl("stop")}),this.activeEvent.actionsDrag.Transition.forEach(t=>{t.stop(),null!==t.object.currentState&&t.object.changeSelectedState(null,{scene:this.eventContext.page.scene,shared:this.eventContext.sharedAssets})}),this.activeEvent.actionsDrag.Animation.forEach(t=>{t.stop()}))},500),this.updateDragItem(r),r.obj.dispatchEvent({type:"requestRender"})}},this.onPointerUp=t=>{if(this.activeEvent&&this.activeEvent.activeDragItem){"hand"===this.activeEvent.data.cursor&&this.setCursor("grab");let t="dynamic"===this.activeEvent.activeDragItem.obj.data.physics?.rigidBody;!1===this.activeEvent.activeDragItem.snapped&&this.activeEvent.data.drop&&this.activeEvent.data.resetOnSnapFail&&(!1===this.eventManager.controlsManager.usePhysics||!t)&&(this.activeEvent.activeDragItem.reset=this.activeEvent.data.resetOnSnapFail,this.activeEvent.activeDragItem.paused=!1,this.activeEvent.activeDragItem.currentDampingFactor=this.activeEvent.resetDampingFactor),this.eventManager.controlsManager.usePhysics&&t&&(this.eventManager.controlsManager.sharedGameControlGlobals.entitiesWithTransformAnim.pop(),this.eventManager.controlsManager.sharedGameControlGlobals.kinematicBodyToEntity.delete(this.activeEvent.activeDragItem.obj.rigidBody.handle),this.activeEvent.activeDragItem.obj.rigidBody.setBodyType(0,!0),this.activeEvent.activeDragItem.paused=!0),!0===this.activeEvent.wasDragEventTriggered&&(this.activeEvent.wasDragEventTriggered=!1,this.activeEvent.actionsDrag.Transition.forEach(t=>{t.stop(),null!==t.object.currentState&&t.object.changeSelectedState(null,{scene:this.eventContext.page.scene,shared:this.eventContext.sharedAssets})}),this.activeEvent.actionsDrag.Animation.forEach(t=>{t.stop()}),this.activeEvent.actionsDrag.Audio.forEach(t=>{t.dispatchGameControl("stop")}),this.activeEvent.actionsDrag.Particles.forEach(t=>{t.dispatchGameControl("stop")}),this.activeEvent.actionsDrop.SetVariable.forEach(t=>t.checkConditions()),this.activeEvent.actionsDrop.SetVariable.forEach(t=>t.dispatch()),this.activeEvent.actionsDrop.DynamicVariablePlay.forEach(t=>t.dispatch()),this.activeEvent.actionsDrop.ClearLocalStorage.forEach(t=>t.dispatch()),this.activeEvent.actionsDrop.UserAPI.forEach(t=>t.dispatch())),this.eventManager.controlsManager.orbitControls&&(this.eventManager.controlsManager.orbitControls.enabled=!0)}}}connect(){let t={};if(this.eventContext.page.traverseEntity(e=>{e.component&&(t[e.component.uuid]?t[e.component.uuid].push(e.uuid):t[e.component.uuid]=[e.uuid])}),this.eventContext.page.traverseEntity(e=>{e.data?.events.filter(t=>"DragDrop"===t.data.type&&!t.data.disabled).forEach(a=>{this.events.push(new S(e,a.id,a.data,this.eventContext.page,this.eventContext.sharedAssets,this.eventManager,t))})}),!this.events.length)return;this.domEventsNeeded.clear(),this.domEventsNeeded.add("pointerdown");let e=this.eventContext.domElement;e.addEventListener("pointerdown",this.onPointerDown),e.addEventListener("pointermove",this.onPointerMove),e.addEventListener("pointerup",this.onPointerUp),this.domEventsNeeded.add("pointermove")}disconnect(){if(!this.events.length)return;this.domEventsNeeded.clear();let t=this.eventContext.domElement;t.removeEventListener("pointerdown",this.onPointerDown),t.removeEventListener("pointermove",this.onPointerMove),t.removeEventListener("pointerup",this.onPointerUp),null!==this.trailingCursorTimer&&(clearTimeout(this.trailingCursorTimer),this.trailingCursorTimer=null),this.trailingCursorEvent=null,this.events.forEach(t=>t.dispose())}setCursor(t){this.eventContext.domElement.style.cursor=t}onAnimationFrameDamping(){for(let t of this.events)for(let e of t.dragItems)e.paused||this.updateDragItem(e,!0)}calcPlaneIntersectPos(t,e,a,i){let{getCamera:r,raycaster:o}=this.eventContext;r().getWorldDirection(g),g.negate();let n=x.identity();switch("parent"===i?C.multiplyMatrices(t.parent.matrixWorld,t.hiddenMatrix).decompose(D,n,y):"local"===i&&t.matrixWorld.decompose(D,n,y),a){case"x":D.set(1,0,0).applyQuaternion(n),M.copy(g).cross(D),P.copy(D).cross(M);break;case"y":D.set(0,1,0).applyQuaternion(n),M.copy(g).cross(D),P.copy(D).cross(M);break;case"z":D.set(0,0,1).applyQuaternion(n),M.copy(g).cross(D),P.copy(D).cross(M);break;case"xy":P.set(0,0,1).applyQuaternion(n);break;case"yz":P.set(1,0,0).applyQuaternion(n);break;case"xz":P.set(0,1,0).applyQuaternion(n);break;case"adaptive":g.angleTo(y.set(0,1,0))>Math.PI/6?(D.crossVectors(y.set(0,1,0),g),P.crossVectors(D,y)):P.set(0,1,0);break;default:P.copy(g)}E.setFromMatrixPosition(t.matrixWorld);let s=t.userData.lockedPlane?t.userData.worldPosition0:E;if(f.setFromNormalAndCoplanarPoint(P,s),o.ray.intersectPlane(f,e)&&("x"===a||"y"===a||"z"===a)){let t=y.subVectors(e,s).dot(D);e.copy(s).addScaledVector(D,t)}}updateDragItem(t,e=!1){E.setFromMatrixPosition(t.obj.matrixWorld),"current"===t.reset?m.subVectors(t.fromPosition,E).divideScalar(t.currentDampingFactor):"original"===t.reset?(m.subVectors(t.obj.userData.worldPosition0,E).divideScalar(t.currentDampingFactor),t.fromPosition.copy(t.obj.userData.worldPosition0),t.pointStart.copy(t.fromPosition),t.pointEnd.copy(t.pointStart)):m.subVectors(t.pointEnd,t.pointStart).add(t.fromPosition).sub(E).divideScalar(t.currentDampingFactor),t.paused=!(t.currentDampingFactor>1)||m.length()<.01,(this.activeEvent&&1===this.activeEvent.data.dampingFactor||e)&&I(t,m.add(E),this.activeEvent?.data.drop&&this.activeEvent?.data.autoOrient?t.orientationMatrix:null),t.obj.dispatchEvent({type:"beginEvent",eventName:"DragDrop"}),this.eventManager.requestRender()}updateCursorFromRaycast(){let{raycaster:t,page:e}=this.eventContext,a=e.raycastWithClones(t),i=!1;for(let t of this.events){for(let{obj:e}of t.dragItems)if(e===a[0]?.object||e===a[0]?.object?.object||s.is(e)&&e.isAncestorOf(a[0]?.object.uuid)){switch(i=!0,t.data.cursor){case"hand":this.setCursor("grab");break;case"move":this.setCursor("move")}break}if(i)break}i||this.setCursor("default")}};i("DragDrop",({eventContext:t,eventManager:e})=>new F(t,e)),h("dragdrop");
@@ -0,0 +1 @@
1
+ import{e as t}from"./runtime-chunk-USXMESRF.js";import{Ec as e,Hc as s,I as i,Ic as r,Jc as a,b as h,c as l,jc as o,tc as n,ua as m,v as u,za as _}from"./runtime-chunk-MBBODDV7.js";import{d as p}from"./runtime-chunk-EOV2DL2V.js";import{Dc as d,Kc as c,m as B,qa as g}from"./runtime-chunk-VGN7YHB7.js";import"./runtime-chunk-ML3Z74BL.js";var S=new u,f=new d,T=[[0,0],[0,1,1],[0,1,1,2],[0,1,2,2,3],[0,1,2,3,4,4,5],[0,1,2,3,4,5,7,8,9,10]],M=[.2126729,.7151522,.072175],x=class extends h{constructor(t,e){super("vec4"),this._width=0,this._height=0,this._materials=[],this._input=t,this._opts=e,this._rtL=this._makeRT(1,1,"SplineBloom.L"),this._rtA=this._makeRT(1,1,"SplineBloom.A"),this._rtB=this._makeRT(1,1,"SplineBloom.B"),this._outputTexNode=n(this._rtL.texture),this._buildMaterials()}static get type(){return"SplineBloomNode"}_makeRT(e,s,i){let r=new c(e,s,{minFilter:g,magFilter:g,depthBuffer:!1});return t()&&(r.texture.internalFormat="rgba8unorm-srgb"),r.texture.name=i,r}_buildMaterials(){for(let t of this._materials)t.dispose();this._materials=[];let t=(t,e)=>{let s=new l;return s.name=t,s.colorNode=e,s.depthTest=!1,s.depthWrite=!1,s.blending=B,s.needsUpdate=!0,s},h=this._opts.luminanceThreshold,u=Math.max(this._opts.luminanceSmoothing,1e-4),p=this._input,d=i(()=>{let t=p.sample(e()),s=o(_(h),_(h+u),m(t.rgb,r(M[0],M[1],M[2])));return a(t.rgb.mul(s),s)});this._materials.push(t("SplineBloom.luminance",d()));let c=T[this._opts.kernelSize]??T[3],g=1/Math.max(1,this._width),S=1/Math.max(1,this._height),f=this._passSequence(c.length);for(let r=0;r<c.length;r++){let a=g*(c[r]+.5)*this._opts.blurScale,h=S*(c[r]+.5)*this._opts.blurScale,l=n(f[r].from.texture),o=i(()=>{let t=e();return l.sample(t.add(s(-a,h))).add(l.sample(t.add(s(a,h)))).add(l.sample(t.add(s(a,-h)))).add(l.sample(t.add(s(-a,-h)))).mul(.25)});this._materials.push(t(`SplineBloom.blur${r}`,o()))}}_passSequence(t){let e=[],s=this._rtL;for(let i=0;i<t-1;i++){let t=1&i?this._rtB:this._rtA;e.push({from:s,to:t}),s=t}return e.push({from:s,to:this._rtL}),e}renderBloom(t){t.getDrawingBufferSize(f);let e=Math.max(1,Math.round(.5*f.x)),s=Math.max(1,Math.round(.5*f.y));(e!==this._width||s!==this._height)&&(this._width=e,this._height=s,this._rtL.dispose(),this._rtA.dispose(),this._rtB.dispose(),this._rtL=this._makeRT(e,s,"SplineBloom.L"),this._rtA=this._makeRT(e,s,"SplineBloom.A"),this._rtB=this._makeRT(e,s,"SplineBloom.B"),this._outputTexNode.value=this._rtL.texture,this._buildMaterials());let i=T[this._opts.kernelSize]??T[3],r=this._passSequence(i.length),a=t.getRenderTarget(),h=t.getMRT();t.setMRT(null),t.setRenderTarget(this._rtL),S.material=this._materials[0],S.name="SplineBloom.luminance",S.render(t);for(let e=0;e<r.length;e++)t.setRenderTarget(r[e].to),S.material=this._materials[e+1],S.name=`SplineBloom.blur${e}`,S.render(t);t.setRenderTarget(a),t.setMRT(h)}setup(){return this._outputTexNode}dispose(){for(let t of this._materials)t.dispose();this._materials=[],this._rtL.dispose(),this._rtA.dispose(),this._rtB.dispose()}};p("bloom",function(t,e){return new x(t,e)});
@@ -0,0 +1 @@
1
+ import{Ac as e,Bc as t,Cb as r,Cc as s,Ec as i,Fb as a,Hc as o,I as l,Ic as u,Jc as h,K as n,Rb as d,Sb as _,a as p,b as m,c,eb as T,gb as C,hb as N,jc as R,la as b,nc as x,sb as g,tc as f,v as B,w as M,za as S}from"./runtime-chunk-MBBODDV7.js";import{d as v}from"./runtime-chunk-EOV2DL2V.js";import{Ba as F,Dc as w,Kc as z,Ma as D}from"./runtime-chunk-VGN7YHB7.js";import"./runtime-chunk-ML3Z74BL.js";var y,O,G=new B,A=class extends m{static get type(){return"GaussianBlurNode"}constructor(t,r=null,s=4,i={}){super("vec4"),this.textureNode=t,this.directionNode=r,this.sigma=s,this._invSize=e(new w),this._passDirection=e(new w),this._horizontalRT=new z(1,1,{depthBuffer:!1}),this._horizontalRT.texture.name="GaussianBlurNode.horizontal",this._verticalRT=new z(1,1,{depthBuffer:!1}),this._verticalRT.texture.name="GaussianBlurNode.vertical",this._textureNode=a(this,this._verticalRT.texture),this._textureNode.uvNode=t.uvNode,this._material=null,this.updateBeforeType=p.FRAME,this.resolutionScale=i.resolutionScale||1,this.premultipliedAlpha=i.premultipliedAlpha||!1,this.isGaussianBlurNode=!0}setSize(e,t){e=Math.max(Math.round(e*this.resolutionScale),1),t=Math.max(Math.round(t*this.resolutionScale),1),this._invSize.value.set(1/e,1/t),this._horizontalRT.setSize(e,t),this._verticalRT.setSize(e,t)}updateBefore(e){let{renderer:t}=e;y=M.resetRendererState(t,y);let r=this.textureNode,s=r.value,i=r.value;G.material=this._material,this.setSize(s.image.width,s.image.height);let a=s.type;this._horizontalRT.texture.type=a,this._verticalRT.texture.type=a,t.setRenderTarget(this._horizontalRT),this._passDirection.value.set(1,0),G.name="Gaussian Blur [ Horizontal Pass ]",G.render(t),r.value=this._horizontalRT.texture,t.setRenderTarget(this._verticalRT),this._passDirection.value.set(0,1),G.name="Gaussian Blur [ Vertical Pass ]",G.render(t),r.value=i,M.restoreRendererState(t,y)}getTextureNode(){return this._textureNode}setup(e){let t,r,a=this.textureNode,u=i(),n=o(this.directionNode||1);this.premultipliedAlpha?(t=e=>d(a.sample(e)),r=e=>s(e)):(t=e=>a.sample(e),r=e=>e);let _=l(()=>{let e=3+2*this.sigma,s=this._getCoefficients(e),i=this._invSize,a=n.mul(this._passDirection),l=h(t(u).mul(s[0])).toVar();for(let r=1;r<e;r++){let e=S(r),h=S(s[r]),n=o(a.mul(i.mul(e))).toVar(),d=t(u.add(n)),_=t(u.sub(n));l.addAssign(d.add(_).mul(h))}return r(l)}),p=this._material||(this._material=new c);return p.fragmentNode=_().context(e.getSharedContext()),p.name="Gaussian_blur",p.needsUpdate=!0,e.getNodeProperties(this).textureNode=a,this._textureNode}dispose(){this._horizontalRT.dispose(),this._verticalRT.dispose(),null!==this._material&&this._material.dispose()}_getCoefficients(e){let t=[],r=e/3;for(let s=0;s<e;s++)t.push(.39894*Math.exp(-.5*s*s/(r*r))/r);return t}get resolution(){return console.warn('THREE.GaussianBlurNode: The "resolution" property has been renamed to "resolutionScale" and is now of type `number`.'),new w(this.resolutionScale,this.resolutionScale)}set resolution(e){console.warn('THREE.GaussianBlurNode: The "resolution" property has been renamed to "resolutionScale" and is now of type `number`.'),this.resolutionScale=e.x}},V=new B,E=class extends m{static get type(){return"DepthOfFieldNode"}constructor(t,r,s,i,a){super("vec4"),this.textureNode=t,this.viewZNode=r,this.focusDistanceNode=s,this.focalLengthNode=i,this.bokehScaleNode=a,this._invSize=e(new w),this._CoCRT=new z(1,1,{depthBuffer:!1,type:F,format:D,count:2}),this._CoCRT.textures[0].name="DepthOfField.NearField",this._CoCRT.textures[1].name="DepthOfField.FarField",this._CoCBlurredRT=new z(1,1,{depthBuffer:!1,type:F,format:D}),this._CoCBlurredRT.texture.name="DepthOfField.NearFieldBlurred",this._blur64RT=new z(1,1,{depthBuffer:!1,type:F}),this._blur64RT.texture.name="DepthOfField.Blur64",this._blur16NearRT=new z(1,1,{depthBuffer:!1,type:F}),this._blur16NearRT.texture.name="DepthOfField.Blur16Near",this._blur16FarRT=new z(1,1,{depthBuffer:!1,type:F}),this._blur16FarRT.texture.name="DepthOfField.Blur16Far",this._compositeRT=new z(1,1,{depthBuffer:!1,type:F}),this._compositeRT.texture.name="DepthOfField.Composite",this._CoCMaterial=new c,this._CoCBlurredMaterial=new c,this._blur64Material=new c,this._blur16Material=new c,this._compositeMaterial=new c,this._textureNode=f(this._compositeRT.texture),this._CoCTextureNode=f(this._CoCRT.texture),this._blur64TextureNode=f(this._blur64RT.texture),this._blur16NearTextureNode=f(this._blur16NearRT.texture),this._blur16FarTextureNode=f(this._blur16FarRT.texture),this.updateBeforeType=p.FRAME}setSize(e,t){this._invSize.value.set(1/e,1/t),this._CoCRT.setSize(e,t),this._compositeRT.setSize(e,t);let r=Math.round(e/2),s=Math.round(t/2);this._CoCBlurredRT.setSize(r,s),this._blur64RT.setSize(r,s),this._blur16NearRT.setSize(r,s),this._blur16FarRT.setSize(r,s)}getTextureNode(){return this._textureNode}updateBefore(e){let{renderer:t}=e,r=this.textureNode.value;this.setSize(r.image.width,r.image.height),O=M.resetRendererState(t,O),t.setClearColor(0,0),V.material=this._CoCMaterial,t.setRenderTarget(this._CoCRT),V.name="DoF [ CoC ]",V.render(t),this._CoCTextureNode.value=this._CoCRT.textures[0],V.material=this._CoCBlurredMaterial,t.setRenderTarget(this._CoCBlurredRT),V.name="DoF [ CoC Blur ]",V.render(t),this._CoCTextureNode.value=this._CoCBlurredRT.texture,V.material=this._blur64Material,t.setRenderTarget(this._blur64RT),V.name="DoF [ Blur64 Near ]",V.render(t),V.material=this._blur16Material,t.setRenderTarget(this._blur16NearRT),V.name="DoF [ Blur16 Near ]",V.render(t),this._CoCTextureNode.value=this._CoCRT.textures[1],V.material=this._blur64Material,t.setRenderTarget(this._blur64RT),V.name="DoF [ Blur64 Far ]",V.render(t),V.material=this._blur16Material,t.setRenderTarget(this._blur16FarRT),V.name="DoF [ Blur16 Far ]",V.render(t),V.material=this._compositeMaterial,t.setRenderTarget(this._compositeRT),V.name="DoF [ Composite ]",V.render(t),M.restoreRendererState(t,O)}setup(e){let s=this._generateKernels(),a=_("float"),o=_("float"),d=r(a,o),p=l(()=>{let e=this.viewZNode.negate().sub(this.focusDistanceNode),t=R(0,this.focalLengthNode,e.abs());return a.assign(x(e,0).mul(t)),o.assign(x(0,e).mul(t)),S(0)});this._CoCMaterial.colorNode=p().context(e.getSharedContext()),this._CoCMaterial.outputNode=d,this._CoCMaterial.needsUpdate=!0,this._CoCBlurredMaterial.colorNode=((e,t,r,s={})=>new A(b(e),t,r,s))(this._CoCTextureNode,1,2),this._CoCBlurredMaterial.needsUpdate=!0;let m=t(s.points64),c=l(()=>{let e=u(),t=i(),r=this._CoCTextureNode.sample(t).r,s=this._invSize.mul(this.bokehScaleNode).mul(r);return n(64,({i:r})=>{let i=t.add(s.mul(m.element(r))),a=this.textureNode.sample(i);e.addAssign(a.rgb)}),e.divAssign(64),h(e,r)});this._blur64Material.fragmentNode=c().context(e.getSharedContext()),this._blur64Material.needsUpdate=!0;let g=t(s.points16),f=l(()=>{let e=i(),t=this._blur64TextureNode.sample(e).toVar(),r=t.rgb,s=t.a,a=this._invSize.mul(this.bokehScaleNode).mul(s);return n(16,({i:t})=>{let s=e.add(a.mul(g.element(t))),i=this._blur64TextureNode.sample(s);r.assign(T(i.rgb,r))}),h(r,s)});this._blur16Material.fragmentNode=f().context(e.getSharedContext()),this._blur16Material.needsUpdate=!0;let B=l(()=>{let e=i(),t=this._blur16NearTextureNode.sample(e),r=this._blur16FarTextureNode.sample(e),s=this.textureNode.sample(e),a=C(t.a,.5).mul(2),o=C(r.a,.5).mul(2),l=h(0,0,0,1).toVar();return l.rgb=N(s.rgb,r.rgb,o),l.rgb=N(l.rgb,t.rgb,a),l});return this._compositeMaterial.fragmentNode=B().context(e.getSharedContext()),this._compositeMaterial.needsUpdate=!0,this._textureNode}_generateKernels(){let e=[],t=[],r=0,s=0;for(let i=0;i<80;i++){let a=2.39996323*i,o=Math.sqrt(i)/Math.sqrt(80),l=new w(o*Math.cos(a),o*Math.sin(a));i%5==0?(t[s]=l,s++):(e[r]=l,r++)}return{points16:t,points64:e}}dispose(){this._CoCRT.dispose(),this._CoCBlurredRT.dispose(),this._blur64RT.dispose(),this._blur16NearRT.dispose(),this._blur16FarRT.dispose(),this._compositeRT.dispose(),this._CoCMaterial.dispose(),this._CoCBlurredMaterial.dispose(),this._blur64Material.dispose(),this._blur16Material.dispose(),this._compositeMaterial.dispose()}};v("depthOfField",(e,t,r=1,s=1,i=1)=>new E(b(e),g(t),g(r),g(s),g(i)));
@@ -0,0 +1 @@
1
+ import{a as t}from"./runtime-chunk-RAX4YJZF.js";import"./runtime-chunk-P3254QGK.js";import{c as e,d as i,f as o,g as s,i as n,k as r}from"./runtime-chunk-HL3PBPHE.js";import"./runtime-chunk-N2ZRGNPR.js";import{a}from"./runtime-chunk-VAVYZ35B.js";import{e as h,f as l,g as c}from"./runtime-chunk-FQNSP44B.js";import{a as d}from"./runtime-chunk-RQ3ZQR4P.js";import"./runtime-chunk-LSURXI4Y.js";import"./runtime-chunk-E6JCDSXC.js";import"./runtime-chunk-TDCFE5IE.js";import"./runtime-chunk-BJVCOW72.js";import"./runtime-chunk-VRVV54WH.js";import{$ as m,G as p,N as u,a as y,p as g}from"./runtime-chunk-CTHMLYOZ.js";import"./runtime-chunk-4YV3EXSU.js";import"./runtime-chunk-NSD7DU3P.js";import{f,g as v}from"./runtime-chunk-MM75L5X4.js";import{h as b}from"./runtime-chunk-2Y73BLCY.js";import"./runtime-chunk-QZ35BPGB.js";import"./runtime-chunk-4KZXQGUQ.js";import{a as x}from"./runtime-chunk-Z5OH244S.js";import{a as w}from"./runtime-chunk-TZCHGFVF.js";import{Ka as P,La as M,ea as E,g as S,ua as j}from"./runtime-chunk-OW6T4XFV.js";import{Bc as T,Cc as A,Dc as k,Ec as D,Fc as C,Oc as O,Pc as z,Re as R,Xc as F,Zc as _,dd as X,ld as W}from"./runtime-chunk-VGN7YHB7.js";import"./runtime-chunk-ML3Z74BL.js";var N=(t,e)=>{let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)},V=t=>t*(Math.PI/180),L=new Map,I=(t,e,i)=>{let o,s=e.split(/[ ,]+/g);for(let e=0;e<s.length;e+=1)o=s[e],t.addEventListener?t.addEventListener(o,i,!1):t.attachEvent&&t.attachEvent(o,i)},Q=(t,e,i)=>{let o,s=e.split(/[ ,]+/g);for(let e=0;e<s.length;e+=1)o=s[e],t.removeEventListener?t.removeEventListener(o,i):t.detachEvent&&t.detachEvent(o,i)},B=t=>(t.preventDefault(),t.type.match(/^touch/)?t.changedTouches:t),Y=()=>{if(!(typeof window>"u"))return{x:void 0!==window.pageXOffset?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft,y:void 0!==window.pageYOffset?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop}},Z=(t,e)=>{e.top||e.right||e.bottom||e.left?(t.style.top=e.top,t.style.right=e.right,t.style.bottom=e.bottom,t.style.left=e.left):(t.style.left=e.x+"px",t.style.top=e.y+"px")},G=(t,e,i)=>{let o=q(t);for(let t in o)if(Object.prototype.hasOwnProperty.call(o,t))if("string"==typeof e)o[t]=e+" "+i;else{let s="";for(let t=0,o=e.length;t<o;t+=1)s+=e[t]+" "+i+", ";o[t]=s.slice(0,-2)}return o},q=t=>{let e={};return e[t]="",["webkit","Moz","o"].forEach(function(i){e[i+t.charAt(0).toUpperCase()+t.slice(1)]=""}),e},H=(t,e)=>{for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t},U=(t,e)=>{if(t.length)for(let i=0,o=t.length;i<o;i+=1)e(t[i]);else e(t)};typeof window<"u"&&(K="ontouchstart"in window,J=!!window.PointerEvent,$=!!window.MSPointerEvent);var K,J,$,tt,et={start:"mousedown",move:"mousemove",end:"mouseup"},it={};function ot(){}J?tt={start:"pointerdown",move:"pointermove",end:"pointerup, pointercancel"}:$?tt={start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}:K?(tt={start:"touchstart",move:"touchmove",end:"touchend, touchcancel"},it=et):tt=et,ot.prototype.on=function(t,e){var i,o=this,s=t.split(/[ ,]+/g);o._handlers_=o._handlers_||{};for(var n=0;n<s.length;n+=1)i=s[n],o._handlers_[i]=o._handlers_[i]||[],o._handlers_[i].push(e);return o},ot.prototype.off=function(t,e){var i=this;return i._handlers_=i._handlers_||{},void 0===t?i._handlers_={}:void 0===e?i._handlers_[t]=null:i._handlers_[t]&&i._handlers_[t].indexOf(e)>=0&&i._handlers_[t].splice(i._handlers_[t].indexOf(e),1),i},ot.prototype.trigger=function(t,e){var i,o=this,s=t.split(/[ ,]+/g);o._handlers_=o._handlers_||{};for(var n=0;n<s.length;n+=1)i=s[n],o._handlers_[i]&&o._handlers_[i].length&&o._handlers_[i].forEach(function(t){t.call(o,{type:i,target:o},e)})},ot.prototype.config=function(t){var e=this;e.options=e.defaults||{},t&&(e.options=((t,e)=>{let i={};for(let o in t)Object.prototype.hasOwnProperty.call(t,o)&&Object.prototype.hasOwnProperty.call(e,o)?i[o]=e[o]:Object.prototype.hasOwnProperty.call(t,o)&&(i[o]=t[o]);return i})(e.options,t))},ot.prototype.bindEvt=function(t,e){var i=this;return i._domHandlers_=i._domHandlers_||{},i._domHandlers_[e]=function(){"function"==typeof i["on"+e]?i["on"+e].apply(i,arguments):console.warn('[WARNING] : Missing "on'+e+'" handler.')},I(t,tt[e],i._domHandlers_[e]),it[e]&&I(t,it[e],i._domHandlers_[e]),i},ot.prototype.unbindEvt=function(t,e){var i=this;return i._domHandlers_=i._domHandlers_||{},Q(t,tt[e],i._domHandlers_[e]),it[e]&&Q(t,it[e],i._domHandlers_[e]),delete i._domHandlers_[e],this};var st=ot;function nt(t,e){return this.identifier=e.identifier,this.position=e.position,this.frontPosition=e.frontPosition,this.collection=t,this.defaults={size:100,threshold:.1,color:"white",fadeTime:250,dataOnly:!1,restJoystick:!0,restOpacity:1,mode:"dynamic",zone:document.body,lockX:!1,lockY:!1,shape:"circle"},this.config(e),"dynamic"===this.options.mode&&(this.options.restOpacity=0),this.id=nt.id,nt.id+=1,this.buildEl().stylize(),this.instance={el:this.ui.el,on:this.on.bind(this),off:this.off.bind(this),show:this.show.bind(this),hide:this.hide.bind(this),add:this.addToDom.bind(this),remove:this.removeFromDom.bind(this),destroy:this.destroy.bind(this),setPosition:this.setPosition.bind(this),resetDirection:this.resetDirection.bind(this),computeDirection:this.computeDirection.bind(this),trigger:this.trigger.bind(this),position:this.position,frontPosition:this.frontPosition,ui:this.ui,identifier:this.identifier,id:this.id,options:this.options},this.instance}nt.prototype=new st,nt.constructor=nt,nt.id=0,nt.prototype.buildEl=function(t){return this.ui={},this.options.dataOnly||(this.ui.el=document.createElement("div"),this.ui.back=document.createElement("div"),this.ui.front=document.createElement("div"),this.ui.el.className="nipple collection_"+this.collection.id,this.ui.back.className="back",this.ui.front.className="front",this.ui.el.setAttribute("id","nipple_"+this.collection.id+"_"+this.id),this.ui.el.appendChild(this.ui.back),this.ui.el.appendChild(this.ui.front)),this},nt.prototype.stylize=function(){if(this.options.dataOnly)return this;var t=this.options.fadeTime+"ms",e=(()=>{let t=q("borderRadius");for(let e in t)Object.prototype.hasOwnProperty.call(t,e)&&(t[e]="50%");return t})(),i=G("transition","opacity",t),o={};return o.el={position:"absolute",opacity:this.options.restOpacity,display:"block",zIndex:999},o.back={position:"absolute",display:"block",width:this.options.size+"px",height:this.options.size+"px",marginLeft:-this.options.size/2+"px",marginTop:-this.options.size/2+"px",background:"rgba(255, 255, 255, .4)",border:"solid 2px rgba(0, 0, 0, .1)"},o.front={width:this.options.size/2+"px",height:this.options.size/2+"px",position:"absolute",display:"block",marginLeft:-this.options.size/4+"px",marginTop:-this.options.size/4+"px",background:"rgba(255, 255, 255, .8)",border:"solid 2px rgba(0, 0, 0, .1)"},H(o.el,i),"circle"===this.options.shape&&H(o.back,e),H(o.front,e),this.applyStyles(o),this},nt.prototype.applyStyles=function(t){for(var e in this.ui)if(Object.prototype.hasOwnProperty.call(this.ui,e))for(var i in t[e])this.ui[e].style[i]=t[e][i];return this},nt.prototype.addToDom=function(){return this.options.dataOnly||document.body.contains(this.ui.el)||this.options.zone.appendChild(this.ui.el),this},nt.prototype.removeFromDom=function(){return this.options.dataOnly||!document.body.contains(this.ui.el)||this.options.zone.removeChild(this.ui.el),this},nt.prototype.destroy=function(){clearTimeout(this.removeTimeout),clearTimeout(this.showTimeout),clearTimeout(this.restTimeout),this.trigger("destroyed",this.instance),this.removeFromDom(),this.off(),this.ui=null,this.instance=null,this.collection=null,this.options=null},nt.prototype.show=function(t){var e=this;return e.options.dataOnly||(clearTimeout(e.removeTimeout),clearTimeout(e.showTimeout),clearTimeout(e.restTimeout),e.addToDom(),e.restCallback(),setTimeout(function(){e.ui.el.style.opacity=1},0),e.showTimeout=setTimeout(function(){e.trigger("shown",e.instance),"function"==typeof t&&t.call(this)},e.options.fadeTime)),e},nt.prototype.hide=function(t){var e=this;if(e.options.dataOnly)return e;if(e.ui.el.style.opacity=e.options.restOpacity,clearTimeout(e.removeTimeout),clearTimeout(e.showTimeout),clearTimeout(e.restTimeout),e.removeTimeout=setTimeout(function(){var i="dynamic"===e.options.mode?"none":"block";e.ui.el.style.display=i,"function"==typeof t&&t.call(e),e.trigger("hidden",e.instance)},e.options.fadeTime),e.options.restJoystick){let i=e.options.restJoystick,o={};o.x=!0===i||!1!==i.x?0:e.instance.frontPosition.x,o.y=!0===i||!1!==i.y?0:e.instance.frontPosition.y,e.setPosition(t,o)}return e},nt.prototype.setPosition=function(t,e){var i=this;i.frontPosition={x:e.x,y:e.y};var o=i.options.fadeTime+"ms",s={};s.front=G("transition",["top","left"],o);var n={front:{}};n.front={left:i.frontPosition.x+"px",top:i.frontPosition.y+"px"},i.applyStyles(s),i.applyStyles(n),i.restTimeout=setTimeout(function(){"function"==typeof t&&t.call(i),i.restCallback()},i.options.fadeTime)},nt.prototype.restCallback=function(){var t=this,e={};e.front=G("transition","none",""),t.applyStyles(e),t.trigger("rested",t.instance)},nt.prototype.resetDirection=function(){this.direction={x:!1,y:!1,angle:!1}},nt.prototype.computeDirection=function(t){var e,i,o,s=t.angle.radian,n=Math.PI/4,r=Math.PI/2;if(s>n&&s<3*n&&!t.lockX?e="up":s>-n&&s<=n&&!t.lockY?e="left":s>3*-n&&s<=-n&&!t.lockX?e="down":t.lockY||(e="right"),t.lockY||(i=s>-r&&s<r?"left":"right"),t.lockX||(o=s>0?"up":"down"),t.force>this.options.threshold){var a,h={};for(a in this.direction)Object.prototype.hasOwnProperty.call(this.direction,a)&&(h[a]=this.direction[a]);var l={};for(a in this.direction={x:i,y:o,angle:e},t.direction=this.direction,h)h[a]===this.direction[a]&&(l[a]=!0);if(l.x&&l.y&&l.angle)return t;(!l.x||!l.y)&&this.trigger("plain",t),l.x||this.trigger("plain:"+i,t),l.y||this.trigger("plain:"+o,t),l.angle||this.trigger("dir dir:"+e,t)}else this.resetDirection();return t};var rt=nt;function at(t,e){var i=this;i.nipples=[],i.idles=[],i.actives=[],i.ids=[],i.pressureIntervals={},i.manager=t,i.id=at.id,at.id+=1,i.defaults={zone:document.body,multitouch:!1,maxNumberOfNipples:10,mode:"dynamic",position:{top:0,left:0},catchDistance:200,size:100,threshold:.1,color:"white",fadeTime:250,dataOnly:!1,restJoystick:!0,restOpacity:1,lockX:!1,lockY:!1,shape:"circle",dynamicPage:!1,follow:!1},i.config(e),("static"===i.options.mode||"semi"===i.options.mode)&&(i.options.multitouch=!1),i.options.multitouch||(i.options.maxNumberOfNipples=1);let o=getComputedStyle(i.options.zone.parentElement);return o&&"flex"===o.display&&(i.parentIsFlex=!0),i.updateBox(),i.prepareNipples(),i.bindings(),i.begin(),i.nipples}at.prototype=new st,at.constructor=at,at.id=0,at.prototype.prepareNipples=function(){var t=this,e=t.nipples;e.on=t.on.bind(t),e.off=t.off.bind(t),e.options=t.options,e.destroy=t.destroy.bind(t),e.ids=t.ids,e.id=t.id,e.processOnMove=t.processOnMove.bind(t),e.processOnEnd=t.processOnEnd.bind(t),e.get=function(t){if(void 0===t)return e[0];for(var i=0,o=e.length;i<o;i+=1)if(e[i].identifier===t)return e[i];return!1}},at.prototype.bindings=function(){var t=this;t.bindEvt(t.options.zone,"start"),t.options.zone.style.touchAction="none",t.options.zone.style.msTouchAction="none"},at.prototype.begin=function(){var t=this,e=t.options;if("static"===e.mode){var i=t.createNipple(e.position,t.manager.getIdentifier());i.add(),t.idles.push(i)}},at.prototype.createNipple=function(t,e){var i=this,o=i.manager.scroll,s={},n=i.options,r=i.parentIsFlex?o.x:o.x+i.box.left,a=i.parentIsFlex?o.y:o.y+i.box.top;if(t.x&&t.y)s={x:t.x-r,y:t.y-a};else if(t.top||t.right||t.bottom||t.left){var h=document.createElement("DIV");h.style.display="hidden",h.style.top=t.top,h.style.right=t.right,h.style.bottom=t.bottom,h.style.left=t.left,h.style.position="absolute",n.zone.appendChild(h);var l=h.getBoundingClientRect();n.zone.removeChild(h),s=t,t={x:l.left+o.x,y:l.top+o.y}}var c=new rt(i,{color:n.color,size:n.size,threshold:n.threshold,fadeTime:n.fadeTime,dataOnly:n.dataOnly,restJoystick:n.restJoystick,restOpacity:n.restOpacity,mode:n.mode,identifier:e,position:t,zone:n.zone,frontPosition:{x:0,y:0},shape:n.shape});return n.dataOnly||(Z(c.ui.el,s),Z(c.ui.front,c.frontPosition)),i.nipples.push(c),i.trigger("added "+c.identifier+":added",c),i.manager.trigger("added "+c.identifier+":added",c),i.bindNipple(c),c},at.prototype.updateBox=function(){this.box=this.options.zone.getBoundingClientRect()},at.prototype.bindNipple=function(t){var e,i=this,o=function(t,o){e=t.type+" "+o.id+":"+t.type,i.trigger(e,o)};t.on("destroyed",i.onDestroyed.bind(i)),t.on("shown hidden rested dir plain",o),t.on("dir:up dir:right dir:down dir:left",o),t.on("plain:up plain:right plain:down plain:left",o)},at.prototype.pressureFn=function(t,e,i){var o=this,s=0;clearInterval(o.pressureIntervals[i]),o.pressureIntervals[i]=setInterval(function(){var i=t.force||t.pressure||t.webkitForce||0;i!==s&&(e.trigger("pressure",i),o.trigger("pressure "+e.identifier+":pressure",i),s=i)}.bind(o),100)},at.prototype.onstart=function(t){var e=this,i=e.options,o=t;return t=B(t),e.updateBox(),U(t,function(s){e.actives.length<i.maxNumberOfNipples?e.processOnStart(s):o.type.match(/^touch/)&&(Object.keys(e.manager.ids).forEach(function(i){if(Object.values(o.touches).findIndex(function(t){return t.identifier===i})<0){var s=[t[0]];s.identifier=i,e.processOnEnd(s)}}),e.actives.length<i.maxNumberOfNipples&&e.processOnStart(s))}),e.manager.bindDocument(),!1},at.prototype.processOnStart=function(t){var e,i=this,o=i.options,s=i.manager.getIdentifier(t),n=t.force||t.pressure||t.webkitForce||0,r={x:t.pageX,y:t.pageY},a=i.getOrCreate(s,r);a.identifier!==s&&i.manager.removeIdentifier(a.identifier),a.identifier=s;var h=function(e){e.trigger("start",e),i.trigger("start "+e.id+":start",e),e.show(),n>0&&i.pressureFn(t,e,e.identifier),i.processOnMove(t)};if((e=i.idles.indexOf(a))>=0&&i.idles.splice(e,1),i.actives.push(a),i.ids.push(a.identifier),"semi"!==o.mode)h(a);else{if(!(N(r,a.position)<=o.catchDistance))return a.destroy(),void i.processOnStart(t);h(a)}return a},at.prototype.getOrCreate=function(t,e){var i,o=this,s=o.options;return/(semi|static)/.test(s.mode)?(i=o.idles[0])?(o.idles.splice(0,1),i):"semi"===s.mode?o.createNipple(e,t):(console.warn("Coudln't find the needed nipple."),!1):i=o.createNipple(e,t)},at.prototype.processOnMove=function(t){var e=this,i=e.options,o=e.manager.getIdentifier(t),s=e.nipples.get(o),n=e.manager.scroll;if((t=>isNaN(t.buttons)?0!==t.pressure:0!==t.buttons)(t)){if(!s)return console.error("Found zombie joystick with ID "+o),void e.manager.removeIdentifier(o);if(i.dynamicPage){var r=s.el.getBoundingClientRect();s.position={x:n.x+r.left,y:n.y+r.top}}s.identifier=o;var a=s.options.size/2,h={x:t.pageX,y:t.pageY};i.lockX&&(h.y=s.position.y),i.lockY&&(h.x=s.position.x);var l,c,d=N(h,s.position),m=((t,e)=>{let i=e.x-t.x,o=e.y-t.y;return(t=>t*(180/Math.PI))(Math.atan2(o,i))})(h,s.position),p=V(m),u=d/a,y={distance:d,position:h};if("circle"===s.options.shape?(l=Math.min(d,a),c=((t,e,i)=>{let o={x:0,y:0};return i=V(i),o.x=t.x-e*Math.cos(i),o.y=t.y-e*Math.sin(i),o})(s.position,l,m)):(c=((t,e,i)=>({x:Math.min(Math.max(t.x,e.x-i),e.x+i),y:Math.min(Math.max(t.y,e.y-i),e.y+i)}))(h,s.position,a),l=N(c,s.position)),i.follow){if(d>a){let t=h.x-c.x,i=h.y-c.y;s.position.x+=t,s.position.y+=i,s.el.style.top=s.position.y-(e.box.top+n.y)+"px",s.el.style.left=s.position.x-(e.box.left+n.x)+"px",d=N(h,s.position)}}else h=c,d=l;var g=h.x-s.position.x,f=h.y-s.position.y;s.frontPosition={x:g,y:f},i.dataOnly||Z(s.ui.front,s.frontPosition);var v={identifier:s.identifier,position:h,force:u,pressure:t.force||t.pressure||t.webkitForce||0,distance:d,angle:{radian:p,degree:m},vector:{x:g/a,y:-f/a},raw:y,instance:s,lockX:i.lockX,lockY:i.lockY};(v=s.computeDirection(v)).angle={radian:V(180-m),degree:180-m},s.trigger("move",v),e.trigger("move "+s.id+":move",v)}else this.processOnEnd(t)},at.prototype.processOnEnd=function(t){var e=this,i=e.options,o=e.manager.getIdentifier(t),s=e.nipples.get(o),n=e.manager.removeIdentifier(s.identifier);!s||(i.dataOnly||s.hide(function(){"dynamic"===i.mode&&(s.trigger("removed",s),e.trigger("removed "+s.id+":removed",s),e.manager.trigger("removed "+s.id+":removed",s),s.destroy())}),clearInterval(e.pressureIntervals[s.identifier]),s.resetDirection(),s.trigger("end",s),e.trigger("end "+s.id+":end",s),e.ids.indexOf(s.identifier)>=0&&e.ids.splice(e.ids.indexOf(s.identifier),1),e.actives.indexOf(s)>=0&&e.actives.splice(e.actives.indexOf(s),1),/(semi|static)/.test(i.mode)?e.idles.push(s):e.nipples.indexOf(s)>=0&&e.nipples.splice(e.nipples.indexOf(s),1),e.manager.unbindDocument(),/(semi|static)/.test(i.mode)&&(e.manager.ids[n.id]=n.identifier))},at.prototype.onDestroyed=function(t,e){var i=this;i.nipples.indexOf(e)>=0&&i.nipples.splice(i.nipples.indexOf(e),1),i.actives.indexOf(e)>=0&&i.actives.splice(i.actives.indexOf(e),1),i.idles.indexOf(e)>=0&&i.idles.splice(i.idles.indexOf(e),1),i.ids.indexOf(e.identifier)>=0&&i.ids.splice(i.ids.indexOf(e.identifier),1),i.manager.removeIdentifier(e.identifier),i.manager.unbindDocument()},at.prototype.destroy=function(){var t=this;for(var e in t.unbindEvt(t.options.zone,"start"),t.nipples.forEach(function(t){t.destroy()}),t.pressureIntervals)Object.prototype.hasOwnProperty.call(t.pressureIntervals,e)&&clearInterval(t.pressureIntervals[e]);t.trigger("destroyed",t.nipples),t.manager.unbindDocument(),t.off(),t.pressureIntervals={},t.nipples=[],t.idles=[],t.actives=[],t.ids=[],t.manager=null};var ht=at;function lt(t){var e=this;e.ids={},e.index=0,e.collections=[],e.scroll=Y(),e._windowBound=!1,e.config(t),e.prepareCollections();var i=function(){var t;e.collections.forEach(function(i){i.forEach(function(i){t=i.el.getBoundingClientRect(),i.position={x:e.scroll.x+t.left,y:e.scroll.y+t.top}})})};return e._onResize=function(){(t=>{L.has(t)&&clearTimeout(L.get(t)),L.set(t,setTimeout(function(){L.delete(t),t()},100))})(i)},e._onScroll=function(){e.scroll=Y()},e.collections}lt.prototype=new st,lt.constructor=lt,lt.prototype.prepareCollections=function(){var t=this;t.collections.create=t.create.bind(t),t.collections.on=t.on.bind(t),t.collections.off=t.off.bind(t),t.collections.destroy=t.destroy.bind(t),t.collections.get=function(e){var i;return t.collections.every(function(t){return!(i=t.get(e))}),i}},lt.prototype.create=function(t){return this.createCollection(t)},lt.prototype.bindWindowEvents=function(){var t=this;t._windowBound||typeof window>"u"||(t._windowBound=!0,I(window,"resize",t._onResize),I(window,"scroll",t._onScroll))},lt.prototype.unbindWindowEvents=function(){var t=this;!t._windowBound||typeof window>"u"||(t._windowBound=!1,Q(window,"resize",t._onResize),Q(window,"scroll",t._onScroll))},lt.prototype.createCollection=function(t){var e=this,i=new ht(e,t);return e.bindCollection(i),e.collections.push(i),e.bindWindowEvents(),i},lt.prototype.bindCollection=function(t){var e,i=this,o=function(t,o){e=t.type+" "+o.id+":"+t.type,i.trigger(e,o)};t.on("destroyed",i.onDestroyed.bind(i)),t.on("shown hidden rested dir plain",o),t.on("dir:up dir:right dir:down dir:left",o),t.on("plain:up plain:right plain:down plain:left",o)},lt.prototype.bindDocument=function(){var t=this;t.binded||(t.bindEvt(document,"move").bindEvt(document,"end"),t.binded=!0)},lt.prototype.unbindDocument=function(t){var e=this;(!Object.keys(e.ids).length||!0===t)&&(e.unbindEvt(document,"move").unbindEvt(document,"end"),e.binded=!1)},lt.prototype.getIdentifier=function(t){var e;return t?void 0===(e=void 0===t.identifier?t.pointerId:t.identifier)&&(e=this.latest||0):e=this.index,void 0===this.ids[e]&&(this.ids[e]=this.index,this.index+=1),this.latest=e,this.ids[e]},lt.prototype.removeIdentifier=function(t){var e={};for(var i in this.ids)if(this.ids[i]===t){e.id=i,e.identifier=this.ids[i],delete this.ids[i];break}return e},lt.prototype.onmove=function(t){return this.onAny("move",t),!1},lt.prototype.onend=function(t){return this.onAny("end",t),!1},lt.prototype.oncancel=function(t){return this.onAny("end",t),!1},lt.prototype.onAny=function(t,e){var i,o=this,s="processOn"+t.charAt(0).toUpperCase()+t.slice(1);e=B(e);var n=function(t,e,i){i.ids.indexOf(e)>=0&&(i[s](t),t._found_=!0)};return U(e,function(t){i=o.getIdentifier(t),U(o.collections,n.bind(null,t,i)),t._found_||o.removeIdentifier(i)}),!1},lt.prototype.destroy=function(){var t=this;t.unbindDocument(!0),t.unbindWindowEvents(),t.ids={},t.index=0,t.collections.forEach(function(t){t.destroy()}),t.collections=[],t.off()},lt.prototype.onDestroyed=function(t,e){var i=this;if(i.collections.indexOf(e)<0)return!1;i.collections.splice(i.collections.indexOf(e),1),0===i.collections.length&&i.unbindWindowEvents()};var ct=lt,dt=null;function mt(){return dt||(dt=new ct),dt}var pt={create:function(t){return mt().create(t)},destroy:function(){dt&&(dt.destroy(),dt=null)},get factory(){return mt()}},ut=.02,yt=new C,gt=new C,ft=new C,vt=new C,bt=new C,xt=new C,wt=new O,Pt=new O,Mt=new O,Et=new D,St=new D,jt=new z(0,0,0,"YXZ"),Tt=new C(1,0,0),At=new C(0,1,0),kt=new C(0,0,1),Dt=new C(1,1,1),Ct=[],Ot=t=>Ct[t]??(Ct[t]=new C),zt=new C,Rt=new C,Ft=new C,_t=new C,Xt=new D,Wt=new C,Nt=new D,Vt=new R,Lt=new F,It={type:"requestRender"},Qt={type:"updateMatrix"},Bt=class extends T{constructor(t,i,o,s,n,r,a,m,p){super(),this.object=t,this.domElement=i,this.data=o,this.gloabalPhysics=s,this.controlsManager=n,this.cameraFollow=r,this.camera=a,this.page=m,this.sharedAssets=p,this.enableDamping=!0,this.hiddenMatrix0=new O,this.target0=new C,this.zoom0=1,this.rotForce=1,this.moveForce=1,this.pixelsPerMeter=e,this.euler0=new z(0,0,0,"YXZ"),this.position0Cam=new C,this.quat0Cam=new D,this.scale0Cam=new C,this.hiddenMatrix0Cam=new O,this.threshEndTranslate=.01,this.threshEndRotate=1e-8,this.threshEndRotVel=.005,this.collider={type:"capsule",radius:40,segment:new R(new C(0,-40,0),new C(0,40,0)),matrix:new O,position:new C,rotation:new D},this.euler=new z(0,0,0,"YXZ"),this.eulerDelta=new C,this.lastPosition=new C,this.lastCameraQuaternion=new D,this.lastCameraPosition=new C,this.PI_2=Math.PI/2,this.prevMouse=new k,this.velocityTarget=new C,this.velocity=new C,this.directionXZ=new C,this.rotVelocityStick=new C,this.rotVelocityTarget=new C,this.rotVelocity=new C,this.rotDirection=new C,this.nonColliderRotOffset=new O,this.nonColliderPosOffset=new O,this.firstPointerId=-1,this.rot=new C,this.path=[],this.movementState={moveNegZ:0,movePosZ:0,moveNegX:0,movePosX:0,moveNegY:0,movePosY:0,rotPosX:0,rotNegX:0,rotPosY:0,rotNegY:0,jump:0,run:0},this.onObject=!1,this.actionState={},this.keyAssignments=[["moveNegZ","W"],["moveNegX","A"],["movePosZ","S"],["movePosX","D"],["rotPosX","ArrowUp"],["rotPosY","ArrowLeft"],["rotNegX","ArrowDown"],["rotNegY","ArrowRight"],["jump"," "]],this.collisionEnabled=!0,this.offsetMatrix=new O,this.objectToTarget=new C,this.objectToTarget0=new C,this.objectToCamXZ=new C,this.objectToCamXZ0=new C,this.targetToCamera=new C,this.targetToCamera0=new C,this.cameraPolarAxis0=new C,this.targetPos=new C,this.targetQuat=new D,this.lerpFactorPos=(new C).setScalar(.3),this.lerpFactorPosStart=.3,this.lerpFactorPosEnd=.3,this.lerpFactorRotStart=.3,this.lerpFactorRotEnd=.3,this.lerpFactorPosCamera=.3,this.lerpFactorRotCamera=.3,this.objXZQuat=new D,this.objXZQuatInv=new D,this.objXZRotMat=new O,this.isFirstPerson=!1,this.didHit=!1,this.groundVelocity=new C,this.pushedVelocity=new C,this.groundYRotation=0,this.objectRealQuat=new D,this.colliderWorldQuat=new D,this.groundNormal=new C,this.groundTilt=new D,this.groundTiltInv=new D,this.lastHitObj=null,this.isFirstFrame=!0,this.rotationAccumWhenOrientWithCamera=0,this.navMeshPathDest=null,this.position=new C,this.quaternion=new D,this.scale=new C,this.initialAction=!0,this.onPointerDown=t=>{!(t.target===this.domElement||t.target instanceof HTMLElement&&"SPLINE-VIEWER"===t.target.tagName&&t.target.shadowRoot?.contains(this.domElement))||-1!==this.firstPointerId||(this.firstPointerId=t.pointerId,this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp),"keys"!==this.rotBy&&!h&&!l&&this.domElement.requestPointerLock(),this.prevMouse.set(t.clientX,t.clientY))},this.onPointerUp=t=>{this.firstPointerId=-1,this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this.onPointerUp),"mouse"===t.pointerType&&this.domElement.ownerDocument.exitPointerLock()},this.onPointerMove=t=>{if(t.pointerId!==this.firstPointerId)return;let e=t.clientX-this.prevMouse.x,i=t.clientY-this.prevMouse.y;this.prevMouse.set(t.clientX,t.clientY),"mouse"===t.pointerType&&"keys"!==this.rotBy&&(l&&c<15.5&&!h?(this.eulerDelta.y=-e*this.mouseOrbitSensitivity,this.eulerDelta.x=-i*this.mouseOrbitSensitivity):(this.eulerDelta.y=-t.movementX*this.mouseOrbitSensitivity,this.eulerDelta.x=-t.movementY*this.mouseOrbitSensitivity)),"mouse"!==t.pointerType&&"drag"===this.rotByTouch&&(this.eulerDelta.y=-e*this.mouseOrbitSensitivity*5,this.eulerDelta.x=-i*this.mouseOrbitSensitivity*5),this.controlsManager.requestRender()},this.onPointerlockChange=t=>{this.domElement.ownerDocument.pointerLockElement===this.domElement?Bt.isLocked=!0:Bt.isLocked=!1},this.onPointerlockError=()=>{console.error("SPE.GameControls: Unable to use Pointer Lock API")},this.handleVisibilityChange=()=>{if(document?.hidden)for(let t in this.movementState)this.movementState[t]=0},this.onKeyDown=t=>{!(t.target instanceof HTMLInputElement)&&("ArrowLeft"===t.code||"ArrowUp"===t.code||"ArrowRight"===t.code||"ArrowDown"===t.code||"Space"===t.code)&&t.preventDefault();for(let e of this.keyAssignments)if(t.key.toUpperCase()===e[1]||t.key===e[1]){this.movementState[e[0]]=1;break}this.controlsManager.requestRender()},this.onKeyUp=t=>{for(let e of this.keyAssignments)if(t.key.toUpperCase()===e[1]||t.key===e[1]||t.code.slice(3,t.code.length).toUpperCase()===e[1]){this.movementState[e[0]]=0;break}},this.copyVRGamePadValues=(t,e)=>{for(let i=2;i<4;i++){let o=t.axes[i];0===e?2===i?this.movementState.movePosX=o:this.movementState.movePosZ=o:(t.buttons[3].pressed?this.movementState.jump=1:this.movementState.jump=0,2===i?this.movementState.rotPosY=o:"fly"===this.moveMode&&(this.movementState.moveNegY=o))}},this.sharedGameControlGlobals=n.sharedGameControlGlobals,t===a&&(this.isFirstPerson=!0),this.hiddenMatrix0.copy(this.object.hiddenMatrix),this.object.parent?this.object.hiddenMatrix.copy(this.object.parent.matrixWorld).invert():this.object.hiddenMatrix.identity(),this.object.matrix.copy(this.object.matrixWorld),this.object.matrix.decompose(this.position,this.quaternion,this.scale),this.euler0.setFromQuaternion(this.quaternion,"YXZ");let y=this.euler0.clone(),f=y.y;if(this.objectRealQuat.copy(this.quaternion),y.y=0,this.quaternion.setFromEuler(y),this.objXZQuat.copy(this.quaternion),this.objXZQuatInv.copy(this.objXZQuat).invert(),this.objXZRotMat.makeRotationFromQuaternion(this.quaternion),y.set(0,f,0),this.quaternion.setFromEuler(y),this.rot.setFromEuler(y),this.object.matrixAutoUpdate=!1,(this.isFirstPerson||!0===this.cameraFollow)&&(this.target0.copy(this.camera.getTarget()),this.zoom0=this.camera.zoom),!0===this.cameraFollow){this.position0Cam.copy(this.camera.position),this.quat0Cam.copy(this.camera.quaternion),this.scale0Cam.copy(this.camera.scale),this.hiddenMatrix0Cam.copy(this.camera.hiddenMatrix),this.camera.parent?(this.camera.hiddenMatrix.copy(this.camera?.parent.matrixWorld),this.camera.matrix.copy(this.camera.matrixWorld)):this.camera.hiddenMatrix.identity(),this.camera.matrix.copy(this.camera.matrixWorld),this.camera.matrix.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.matrixAutoUpdate=!1,this.offsetMatrix.copy(this.object.matrix).invert().multiply(this.camera.matrix);let t,e=new C(0,0,-1).applyQuaternion(this.camera.quaternion),i=(new C).subVectors(this.position,this.camera.position);this.objectToCamXZ.copy(i),this.objectToCamXZ.y=0,this.objectToCamXZ0.copy(this.objectToCamXZ),Math.abs(e.y)<1e-6?(i.y=0,e.y=0,t=i.projectOnVector(e)):t=i.y/e.y>0?e.multiplyScalar(i.y/e.y):e.multiplyScalar(i.length()),this.targetToCamera0.copy(t).negate();let o=this.camera.position.clone().add(t);this.objectToTarget0.subVectors(o,this.position);let s=(new z).setFromQuaternion(this.camera.quaternion,"YXZ");this.cameraPolarOffset=-s.x,s.x=0,s.z=0,s.y-=Math.PI/2,this.cameraPolarAxis0.set(0,0,-1).applyEuler(s)}if(this.object instanceof d&&(this.object.matrixAutoUpdate=!1),this.euler.setFromQuaternion(this.quaternion,"YXZ"),this.rotByTouch=o.rotByTouch??"joystick",this.rotBy=o.rotBy??"keys",this.rotationMode=o.rotationMode??"normal",this.moveMode=o.moveMode??"walk",this.collisionEnabled=o.collisionEnabled,this.speedTranslate=1*(o.speedTranslate??250),this.speedOrbit=.025*(o.speedRotate??100),this.mouseOrbitSensitivity=16e-6*(o.speedRotate??100),this.keyAssignments=o.keyAssignments.map(t=>{let e=[t[0],t[1]];return"▲"===e[1]?e[1]="ArrowUp":"◀"===e[1]?e[1]="ArrowLeft":"▼"===e[1]?e[1]="ArrowDown":"▶"===e[1]?e[1]="ArrowRight":"⇧"===e[1]?e[1]="Shift":"↵"===e[1]?e[1]="Enter":"Space"===e[1]?e[1]=" ":"⌘"===e[1]?e[1]="Meta":"Ctrl"===e[1]?e[1]="Control":"Esc"===e[1]&&(e[1]="Escape"),e}),"mouse"===o.rotBy){let t;t=this.keyAssignments.findIndex(t=>"rotNegX"===t[0]),-1!==t&&(this.keyAssignments[t][1]=""),t=this.keyAssignments.findIndex(t=>"rotPosX"===t[0]),-1!==t&&(this.keyAssignments[t][1]=""),t=this.keyAssignments.findIndex(t=>"rotPosY"===t[0]),-1!==t&&(this.keyAssignments[t][1]=""),t=this.keyAssignments.findIndex(t=>"rotNegY"===t[0]),-1!==t&&(this.keyAssignments[t][1]="")}this.lerpFactorPosStart=1-.02**(1/(60*(o.delayPos[0]??.3))),this.lerpFactorPosEnd=1-.02**(1/(60*(o.delayPos[1]??.3))),this.lerpFactorPos.setScalar(this.lerpFactorPosStart),this.lerpFactorRotStart=1-.02**(1/(60*(o.delayRot[0]??.3))),this.lerpFactorRotEnd=1-.02**(1/(60*(o.delayRot[1]??.3))),this.lerpFactorPosCamera=1-.02**(1/(60*(o.delayPosCamera??.3))),this.lerpFactorRotCamera=1-.02**(1/(60*(o.delayRotCamera??.3))),this.gravity=12*(this.gloabalPhysics.gravity??j.defaultData.gravity),this.usePhysics=this.gloabalPhysics.usePhysics??j.defaultData.usePhysics,this.jumpPower=20*o.jumpPower,this.resetYPosition=this.position.y+Math.abs(o.resetYPosition)*(this.gravity>0?1:-1),this.alignToGround=o.alignToGround??!1,this.orientMode=o.autoOrientMove?o.orientMode:"none",this.orientWith=o.orientWith??M.defaultDataThirdPerson.orientWith,this.slopeThresh=65*Math.PI/180,"capsule"===o.collider.type?(this.collider.radius=o.collider.radius,this.collider.segment.start.y=o.collider.height/2-o.collider.radius,this.collider.segment.end.y=-this.collider.segment.start.y,this.offset=o.collider.height*ut/this.pixelsPerMeter,this.stepThresh=.3*o.collider.height/this.pixelsPerMeter,this.colliderHeight=o.collider.height):"sphere"===o.collider.type?(this.collider.radius=o.collider.radius,this.collider.segment.start.y=0,this.collider.segment.end.y=0,this.offset=2*o.collider.radius*ut/this.pixelsPerMeter,this.stepThresh=2*o.collider.radius*.3/this.pixelsPerMeter,this.colliderHeight=2*o.collider.radius):(this.offset=o.collider.height*ut/this.pixelsPerMeter,this.stepThresh=.3*o.collider.height/this.pixelsPerMeter,this.colliderHeight=o.collider.height),this.collider.type=o.collider.type;let v=(new C).fromArray(o.collider.position.map(t=>"number"==typeof t?t:0)),b=(new D).setFromEuler((new z).fromArray([...o.collider.rotation.map(t=>"number"==typeof t?t:0),"XYZ"]));this.collider.position.copy(v).multiply(this.scale),this.collider.rotation.copy(b),this.collider.matrix.compose(v,b,Dt),void 0!==o.cameraXAxis&&(this.cameraXAxis=o.cameraXAxis,this.cameraYAxis=o.cameraYAxis,this.minPolarAngle=o.cameraRotXLimits[0],this.maxPolarAngle=o.cameraRotXLimits[1],this.minAzimuthAngleRel=o.cameraRotYLimits[0],this.maxAzimuthAngleRel=o.cameraRotYLimits[1]),this.forwardDir=o.forwardDirection??"-z",this.isFirstPerson&&(this.forwardDir="-z"),this.runMultiplier=o.runMultiplier??2;let x=2*o.navmesh.destinationHelperRadius;if(x>0){let t=new S;t.push({fi:0,data:{...E.defaultData("light","phong"),alpha:0},id:"layer1"}),t.push({fi:0,data:{...E.defaultData("color"),color:o.navmesh.destinationHelperColor,alpha:o.navmesh.destinationHelperColor.a},id:"layer2"});let e=u({layers:t},{scene:this.page.scene,shared:this.sharedAssets});this.navMeshPathDest=new W(g.create({parameters:{width:x,height:x/10,hollow:.7}}),e),this.navMeshPathDest.material.userData.opacity0=o.navmesh.destinationHelperColor.a}this.activate()}reset(t=!1){if(this.object.hiddenMatrix.copy(this.hiddenMatrix0),t){this.object.updateMatrix(),this.object.updateMatrixWorld(),this.object.matrix.copy(this.object.matrixWorld),this.object.matrix.decompose(this.position,this.quaternion,this.scale),this.object.parent?this.object.hiddenMatrix.copy(this.object.parent.matrixWorld).invert():this.object.hiddenMatrix.identity();let t=(new z).setFromQuaternion(this.quaternion,"YXZ"),e=t.y;this.objectRealQuat.copy(this.quaternion),t.y=0,this.quaternion.setFromEuler(t),this.objXZQuat.copy(this.quaternion),this.objXZQuatInv.copy(this.objXZQuat).invert(),this.objXZRotMat.makeRotationFromQuaternion(this.quaternion),t.set(0,e,0),this.quaternion.setFromEuler(t),this.rot.setFromEuler(t),this.euler.setFromQuaternion(this.quaternion,"YXZ"),this.velocityTarget.set(0,0,0),this.velocity.set(0,0,0)}else this.object instanceof d?this.object.matrixAutoUpdate=!0:this.object.updateMatrix();!0===this.cameraFollow&&(this.camera.quaternion.copy(this.quat0Cam),this.camera.position.copy(this.position0Cam),this.camera.scale.copy(this.scale0Cam),this.camera.hiddenMatrix.copy(this.hiddenMatrix0Cam),this.camera.matrixAutoUpdate=!0),this.controlsManager.requestRender()}activate(){this.instantiateActions(),this.domElement.ownerDocument.addEventListener("pointerdown",this.onPointerDown),this.domElement.ownerDocument.addEventListener("keydown",this.onKeyDown),this.domElement.ownerDocument.addEventListener("keyup",this.onKeyUp),this.domElement.ownerDocument.addEventListener("pointerlockchange",this.onPointerlockChange),this.domElement.ownerDocument.addEventListener("pointerlockerror",this.onPointerlockError),this.domElement.ownerDocument.addEventListener("visibilitychange",this.handleVisibilityChange)}deactivate(){this.disposeActions(),this.domElement.ownerDocument.removeEventListener("pointerdown",this.onPointerDown),this.domElement.ownerDocument.removeEventListener("keydown",this.onKeyDown),this.domElement.ownerDocument.removeEventListener("keyup",this.onKeyUp),this.domElement.ownerDocument.removeEventListener("pointerlockchange",this.onPointerlockChange),this.domElement.ownerDocument.removeEventListener("pointerlockerror",this.onPointerlockError),this.domElement.ownerDocument.removeEventListener("visibilitychange",this.handleVisibilityChange)}dispose(){this.deactivate(),this.navMeshPathDest?.parent&&this.page.remove(this.navMeshPathDest)}instantiateActions(){let t=this.data,e=this.sharedAssets;void 0!==t.gameActions&&(this.actions={},P.list.forEach(i=>{this.actions[i]=f({...t,disabled:!1,type:"GameControl"},t.gameActions[i],this.page,e,this.controlsManager.eventManager,this.object)})),this.dispatchStopEvent("move"),this.dispatchStopEvent("run"),this.dispatchStopEvent("jump"),this.dispatchStartEvent("idle"),this.initialAction&&(this.initialAction=!1)}disposeActions(){this.initialAction=!1,this.dispatchStopEvent("idle"),this.dispatchStopEvent("move"),this.dispatchStopEvent("run"),this.dispatchStopEvent("jump"),v(this.actions.idle),v(this.actions.move),v(this.actions.run),v(this.actions.jump)}dispatchStartEvent(t){void 0!==this.actions[t]&&(this.actionState[t]||(this.actionState[t]=!0,this.actions[t].Transition.forEach(t=>{t.play()}),this.actions[t].Animation.forEach(t=>{t.play(!1===this.initialAction)}),this.actions[t].TimelineAnimation.forEach(t=>{t.play()}),this.actions[t].Create.forEach(t=>{t.dispatchStart()}),this.actions[t].Audio.forEach(t=>{t.dispatchGameControl("start")}),this.actions[t].Particles.forEach(t=>{t.dispatchGameControl("start")})))}dispatchStopEvent(t){void 0!==this.actions[t]&&(!this.actionState[t]||(this.actionState[t]=!1,this.actions[t].Transition.forEach(t=>{t.stop(),null!==t.object.currentState&&t.object.changeSelectedState(null,{scene:this.page.scene,shared:this.sharedAssets})}),this.actions[t].TimelineAnimation.forEach(t=>{t.stop()}),this.actions[t].Create.forEach(t=>{t.dispatchStop()}),this.actions[t].Audio.forEach(t=>{t.dispatchGameControl("stop")}),this.actions[t].Particles.forEach(t=>{t.dispatchGameControl("stop")})))}get colliderWorldPosition(){return vt.copy(this.collider.position).applyQuaternion(this.objectRealQuat).add(this.position)}update(t){if(this.gravity<0?this.position.y<this.resetYPosition:this.position.y>this.resetYPosition)return this.reset(!0),!0;this.sharedGameControlGlobals.gamePads.forEach(this.copyVRGamePadValues);let e=(this.isFirstFrame?16.6:t)/1e3;this.isFirstFrame&&(this.isFirstFrame=!1);let i=60*e,o=!1;if(this.groundYRotation=0,this.groundVelocity.set(0,0,0),this.usePhysics&&this.collisionEnabled&&this.object.rigidBody?.collider(0).shape){let t=bt.set(0,(0===this.velocity.y?this.pixelsPerMeter*Math.max(Math.abs(this.gravity)/120,1)*(this.gravity>0?1:-1):this.velocity.y)*e,0).divideScalar(this.pixelsPerMeter),i=this.sharedGameControlGlobals.rapierWorld.castShape(this.colliderWorldPosition.divideScalar(this.pixelsPerMeter),this.colliderWorldQuat,t,this.object.rigidBody?.collider(0).shape,0,1,!1,8,void 0,void 0,this.object.rigidBody);if(i){this.onObject=!0,this.groundNormal.set(i.normal2.x,i.normal2.y,i.normal2.z).applyQuaternion(this.colliderWorldQuat).negate(),this.alignToGround&&this.groundTiltAdjustment(this.groundNormal),Math.acos(this.groundNormal.y)<this.slopeThresh&&(o=!0),0===i.collider.parent()?.bodyType()&&Math.acos(this.groundNormal.y)*(180/Math.PI)>45&&(this.onObject=!1);let t=i.collider.parent(),s=null!==t&&t.isKinematic()?t:null,n=null===s?void 0:this.sharedGameControlGlobals.kinematicBodyToEntity.get(s.handle);if(null!==s&&n?.userData.isFollowingObj!==this.object.uuid){let t=this.object.getWorldPosition(vt).add(this.collider.position).divideScalar(this.pixelsPerMeter),i=s.velocityAtPoint(t);this.groundVelocity.set(i.x,i.y,i.z).multiplyScalar(this.pixelsPerMeter),this.groundYRotation=s.angvel().y*e}}else this.onObject=!1}if("walk"===this.moveMode&&this.collisionEnabled&&(1===this.movementState.jump&&this.onObject&&(this.velocityTarget.y=this.jumpPower,this.movementState.jump=0,this.dispatchStopEvent("idle"),this.dispatchStopEvent("move"),this.dispatchStopEvent("run"),this.dispatchStopEvent("jump"),this.dispatchStartEvent("jump"),this.onObject=!1),this.onObject?this.velocityTarget.y/=2:this.velocityTarget.y+=this.gravity*i),"fly"===this.moveMode&&(this.velocityTarget.y=(this.movementState.movePosY-this.movementState.moveNegY)*this.speedTranslate),this.directionXZ.z=this.movementState.movePosZ-this.movementState.moveNegZ,this.directionXZ.x=this.movementState.movePosX-this.movementState.moveNegX,"+z"===this.forwardDir&&this.directionXZ.multiplyScalar(-1),this.directionXZ.manhattanLength()>0&&(this.path=[]),this.navMeshPathDest){let t=this.navMeshPathDest.material;if("walk"===this.moveMode&&this.path.length>1){this.navMeshPathDest.position.copy(this.path[this.path.length-1]),this.navMeshPathDest.parent||this.page.add(this.navMeshPathDest);let e=vt.subVectors(this.path[1],this.position),i=bt.subVectors(this.path[1],this.path[0]);e.dot(i)<0?this.path.shift():(this.directionXZ.x=i.x,this.directionXZ.z=i.z),t.opacity=t.userData.opacity0}else t.opacity-=.05*t.userData.opacity0,this.navMeshPathDest.material.opacity<=0&&this.navMeshPathDest.parent&&this.page.remove(this.navMeshPathDest)}this.directionXZ.normalize(),this.movementState.run?this.moveForce=this.runMultiplier:this.moveForce=1,this.velocityTarget.z=this.directionXZ.z*this.speedTranslate*this.moveForce,this.velocityTarget.x=this.directionXZ.x*this.speedTranslate*this.moveForce,("walk"===this.moveMode?this.velocityTarget.x+this.velocityTarget.z===0:0===this.velocityTarget.manhattanLength())?this.lerpFactorPos.setScalar(this.lerpFactorPosEnd):this.lerpFactorPos.setScalar(this.lerpFactorPosStart),"walk"===this.moveMode&&(this.lerpFactorPos.y=1),!1===this.didHit&&0===this.pushedVelocity.manhattanLength()||!1===this.usePhysics?(this.velocity.x+=(this.velocityTarget.x-this.velocity.x)*(1-(1-this.lerpFactorPos.x)**i),this.velocity.y+=(this.velocityTarget.y-this.velocity.y)*(1-(1-this.lerpFactorPos.y)**i),this.velocity.z+=(this.velocityTarget.z-this.velocity.z)*(1-(1-this.lerpFactorPos.z)**i)):this.velocity.copy(this.velocityTarget),("walk"===this.moveMode?this.velocity.x**2+this.velocity.z**2<this.speedTranslate:this.velocity.lengthSq()<this.speedTranslate)?(this.dispatchStopEvent("move"),this.dispatchStopEvent("run"),this.onObject&&(this.dispatchStopEvent("jump"),this.dispatchStartEvent("idle"))):(this.dispatchStopEvent("idle"),(this.onObject||"fly"===this.moveMode)&&(this.dispatchStopEvent("jump"),this.movementState.run?(this.dispatchStopEvent("move"),this.dispatchStartEvent("run")):(this.dispatchStopEvent("run"),this.dispatchStartEvent("move"))));let n=ft.copy(this.velocity);if("none"!==this.orientMode&&!1===this.isFirstPerson){let t=bt.copy(n);t.y=0,n.set(0,n.y,t.length()*("+z"===this.forwardDir?1:-1))}if(this.directionXZ.manhattanLength()>0&&"none"!==this.orientMode&&!1===this.isFirstPerson)if("camera"===this.orientWith&&this.path.length<=1){let t=vt;this.camera.getWorldDirection(t);let e=xt.copy(At).multiplyScalar(t.dot(At));t.sub(e);let i=bt.copy(this.directionXZ);i.x*=-1,this.rot.y=t.angleTo(i)*(t.cross(i).y>0?-1:1)+this.rotationAccumWhenOrientWithCamera}else this.rot.y=(this.path.length>1?0:this.euler.y)+Math.atan2(-this.directionXZ.z,this.directionXZ.x)+Math.PI/2*("+z"===this.forwardDir?1:-1);if(jt.setFromVector3(this.rot),"walk"===this.moveMode&&(jt.x=0),n.applyEuler(jt),o&&(St.setFromUnitVectors(At,this.groundNormal),n.applyQuaternion(St)),!0===this.usePhysics&&this.object.rigidBody){this.pushedVelocity.set(0,0,0);let t=0;for(let i of this.sharedGameControlGlobals.entitiesWithTransformAnim){if(void 0===i.rigidBody||void 0===i.prevQ)continue;(i.hasNonUniformScale?i.matrixWorldRigid:i.matrixWorld).decompose(zt,Xt,Rt);let o=this.object.getWorldPosition(Ft).add(this.collider.position).sub(zt);Nt.copy(i.prevQ).invert().premultiply(Xt);let r=xt.subVectors(zt,i.prevT).add(_t.copy(o).applyQuaternion(Nt).sub(o)).divideScalar(e).divideScalar(this.pixelsPerMeter),a=i.rigidBody.collider(0).castCollider(r,this.object.rigidBody.collider(0),vt.copy(n).divideScalar(this.pixelsPerMeter),0,e,!1);r.multiplyScalar(this.pixelsPerMeter);let h=b.is(i)?i:i.object;if(null!==a&&this.lastHitObj!==h){let t;i instanceof m&&(t=i);let e=this.sharedGameControlGlobals.entityToCollisionEvents[h.uuid];if(e)for(let i of e)"character"===i.data.target&&(i.dispatch(t),h.dispatchEvent(s));this.lastHitObj=h}null!==a&&(Math.abs(r.x)>Math.abs(this.pushedVelocity.x)&&(this.pushedVelocity.x=r.x),Math.abs(r.y)>Math.abs(this.pushedVelocity.y)&&(this.pushedVelocity.y=r.y),Math.abs(r.z)>Math.abs(this.pushedVelocity.z)&&(this.pushedVelocity.z=r.z),Ot(t++).copy(a.normal1).applyQuaternion(i.quaternion))}if(t>0){for(let e=0;e<t;e++){let t=Ot(e),i=t.dot(n);i<0&&n.addScaledVector(t,-i)}n.add(this.pushedVelocity)}else n.add(this.groundVelocity)}if(this.rotDirection.y=Number(this.movementState.rotPosY)-Number(this.movementState.rotNegY),this.rotDirection.x=Number(this.movementState.rotPosX)-Number(this.movementState.rotNegX),this.rotDirection.normalize(),"normal"===this.rotationMode&&(this.movementState.rotPosX||this.movementState.rotNegX)||"steer"===this.rotationMode&&(this.movementState.rotPosX||this.movementState.rotNegX)&&(this.movementState.movePosZ||this.movementState.moveNegZ||"walk"===this.moveMode)?this.rotVelocityStick.x=-this.rotDirection.x*this.speedOrbit*this.rotForce:this.rotVelocityStick.x=0,"normal"===this.rotationMode&&(this.movementState.rotPosY||this.movementState.rotNegY)||"steer"===this.rotationMode&&(this.movementState.rotPosY||this.movementState.rotNegY)&&(this.movementState.movePosZ||this.movementState.moveNegZ)?this.rotVelocityStick.y=-this.rotDirection.y*this.speedOrbit*this.rotForce:this.rotVelocityStick.y=0,this.rotVelocityTarget.subVectors(this.eulerDelta.divideScalar(e),this.rotVelocityStick),0===this.rotVelocityTarget.manhattanLength()?this.rotVelocity.lerp(this.rotVelocityTarget,1-(1-this.lerpFactorRotEnd)**i):this.rotVelocity.lerp(this.rotVelocityTarget,1-(1-this.lerpFactorRotStart)**i),this.euler.x+=this.rotVelocity.x*e,this.euler.y+=this.rotVelocity.y*e+this.groundYRotation,0===this.rotVelocityTarget.y&&0===this.directionXZ.manhattanLength()?this.rotationAccumWhenOrientWithCamera=0:(!1===this.cameraFollow||"Locked"===this.cameraYAxis)&&(this.rotationAccumWhenOrientWithCamera+=this.rotVelocity.y*e),!1===this.isFirstPerson&&"none"!==this.orientMode&&this.directionXZ.manhattanLength()>0){if("radial"===this.orientMode){this.objectToCamXZ.copy(this.objectToCamXZ0).applyAxisAngle(At,this.euler.y-this.euler0.y);let t=bt.copy(this.objectToCamXZ).normalize(),i=xt.copy(n).multiplyScalar(e);i.y=0;let o=i.sub(vt.copy(t).multiplyScalar(i.dot(t))).cross(t).y;this.euler.y-=Math.atan2(o,this.objectToCamXZ.length())}}else this.rot.y+=this.rotVelocity.y*e+this.groundYRotation,0!==this.rotVelocityTarget.y&&(!1===this.cameraFollow||"Locked"===this.cameraYAxis)&&(this.euler.y=this.rot.y);if(!0===this.cameraFollow&&("walk"===this.moveMode?"Limit"===this.cameraXAxis?this.euler.x=A.clamp(this.euler.x,-this.maxPolarAngle+this.cameraPolarOffset+1e-6,-this.minPolarAngle+this.cameraPolarOffset-1e-6):this.euler.x=A.clamp(this.euler.x,-this.PI_2+this.cameraPolarOffset,this.PI_2+this.cameraPolarOffset):"Limit"===this.cameraXAxis&&(this.euler.x=A.clamp(this.euler.x,-this.PI_2,this.PI_2))),"fly"===this.moveMode?this.rot.x=this.euler.x:this.isFirstPerson&&(jt.copy(this.euler),jt.y=0,this.nonColliderRotOffset.makeRotationFromEuler(jt)),Et.setFromAxisAngle(Tt,this.rot.x),St.setFromAxisAngle(At,this.rot.y),St.multiply(Et),Et.setFromAxisAngle(kt,this.rot.z),St.multiply(Et),this.quaternion.copy(St),this.objectRealQuat.multiplyQuaternions(this.quaternion,this.objXZQuat),this.colliderWorldQuat.copy(this.objectRealQuat).multiply(this.collider.rotation),this.collisionEnabled)if(this.usePhysics&&this.object.rigidBody?.collider(0).shape){let t=bt.copy(n).multiplyScalar(e/this.pixelsPerMeter),i=null;this.didHit=!1;let o=new C;for(let e=0;e<5;e++){let n=t.length(),r=xt.copy(t).normalize();if(i=this.sharedGameControlGlobals.rapierWorld.castShape(this.colliderWorldPosition.divideScalar(this.pixelsPerMeter).add(o),this.colliderWorldQuat,r,this.object.rigidBody.collider(0).shape,0,n,!1,12,void 0,void 0,this.object.rigidBody),null===i){0===e&&0!==this.directionXZ.manhattanLength()&&(this.lastHitObj=null),o.add(t);break}{this.didHit=!0;let a=this.sharedGameControlGlobals.colliderToEntity.get(i.collider.handle);if(a!==this.lastHitObj&&0===e){this.lastHitObj=a;let t=this.sharedGameControlGlobals.entityToCollisionEvents[a?.uuid];if(t)for(let e of t)if("character"===e.data.target){let t,o=(this.sharedGameControlGlobals.rapierWorld?.getCollider(i.collider.handle))._parent;if(a.cloner)for(let e of a.cloner.children)if(e.rigidBody===o){t=e;break}e.dispatch(t),a.dispatchEvent(s)}}let h=yt.set(i.normal2.x,i.normal2.y,i.normal2.z).applyQuaternion(this.colliderWorldQuat),l=gt.copy(r).multiplyScalar(i.time_of_impact).dot(h),c=i.time_of_impact;if(0===c&&(this.position.y+=this.offset*this.pixelsPerMeter),l>this.offset&&(c=i.time_of_impact*(l-this.offset)/l,o.addScaledVector(r,c)),t.copy(r).multiplyScalar(n-c),Math.acos(-h.y)>this.slopeThresh){let e=this.colliderWorldPosition.divideScalar(this.pixelsPerMeter).add(o),s=xt.copy(i.witness2).applyQuaternion(this.colliderWorldQuat);s.y=0;let n=e.add(s);n.y+=this.stepThresh;let r=this.sharedGameControlGlobals.rapierWorld.castShape(n,this.colliderWorldQuat,t,this.object.rigidBody?.collider(0).shape,0,1,!1,12,void 0,void 0,this.object.rigidBody);null!==r&&0===r.time_of_impact&&(h.y=0,h.normalize())}t.addScaledVector(h,-t.dot(h))}}this.position.addScaledVector(o,this.pixelsPerMeter),vt.copy(this.position).divideScalar(this.pixelsPerMeter),Et.copy(this.quaternion).premultiply(this.groundTilt).multiply(this.objXZQuat);let r=this.object.rigidBody,a=void 0!==r&&Wt.copy(vt).sub(r.translation()).lengthSq()>1;void 0!==r&&(a?(r.setTranslation(vt,!0),r.setRotation(Et,!0)):(r.setNextKinematicTranslation(vt),r.setNextKinematicRotation(Et)))}else{let t=this.onObject?1:5,i=n.multiplyScalar(e/t);for(let o=0;o<t;o++)this.position.add(i),this.collisionAdjustment(e/t)}else this.position.addScaledVector(n,e);if("walk"===this.moveMode&&this.onObject&&(this.velocityTarget.y=0,this.velocity.y=0),this.quaternion.premultiply(this.groundTilt).multiply(this.objXZQuat),this.object.matrix.compose(this.position,this.quaternion,this.scale),this.object.matrixWorldNeedsUpdate=!0,this.object.matrix.multiply(this.nonColliderPosOffset).multiply(this.nonColliderRotOffset),this.quaternion.premultiply(this.groundTiltInv).multiply(this.objXZQuatInv),!0===this.cameraFollow){this.updateFollowArms();let t=this.objectToTarget.add(this.position),e=this.targetToCamera.add(t);wt.lookAt(e,t,At).setPosition(e),wt.decompose(this.targetPos,this.targetQuat,vt),this.camera.quaternion.slerp(this.targetQuat,1-(1-this.lerpFactorRotCamera)**i),this.camera.position.lerp(this.targetPos,1-(1-this.lerpFactorPosCamera)**i),this.camera.updateMatrix(),this.camera.updateMatrixWorld(),"Limit"===this.cameraYAxis&&"cartesian"===this.orientMode&&(this.euler.y=A.clamp(this.euler.y,this.minAzimuthAngleRel,this.maxAzimuthAngleRel)),this.euler.x=A.clamp(this.euler.x,-this.PI_2+(this.cameraPolarOffset<0?this.cameraPolarOffset:0),this.PI_2+(this.cameraPolarOffset>0?this.cameraPolarOffset:0))}return this.eulerDelta.set(0,0,0),this.object.dispatchEvent(Qt),!(this.path.length<2&&this.lastPosition.distanceToSquared(this.position)<this.threshEndTranslate&&Math.abs(this.rotVelocity.x)<this.threshEndRotVel&&Math.abs(this.rotVelocity.y)<this.threshEndRotVel&&(void 0===this.camera||this.isFirstPerson||this.lastCameraPosition.distanceToSquared(this.camera.position)<this.threshEndTranslate&&8*(1-this.lastCameraQuaternion.dot(this.camera.quaternion))<this.threshEndRotate)&&("fly"===this.moveMode||!0===this.onObject||!1===this.collisionEnabled)&&(null===this.navMeshPathDest||this.navMeshPathDest.material.opacity<-.04*this.navMeshPathDest?.material?.userData.opacity0)||(this.camera&&(this.lastCameraPosition.copy(this.camera.position),this.lastCameraQuaternion.copy(this.camera.quaternion)),this.lastPosition.copy(this.position),this.object.dispatchEvent(It),0))}updateFollowArms(){this.objectToTarget.copy(this.objectToTarget0),this.targetToCamera.copy(this.targetToCamera0);let t,e=Et.setFromAxisAngle(At,"Limit"===this.cameraYAxis&&"radial"!==this.orientMode?A.clamp(this.euler.y-this.euler0.y,this.minAzimuthAngleRel,this.maxAzimuthAngleRel):this.euler.y-this.euler0.y);("Locked"!==this.cameraYAxis||"radial"===this.orientMode)&&this.objectToTarget.applyQuaternion(e),t="Limit"===this.cameraXAxis?A.clamp(this.euler.x,-this.maxPolarAngle+this.cameraPolarOffset+1e-6,-this.minPolarAngle+this.cameraPolarOffset-1e-6):A.clamp(this.euler.x,-this.PI_2+this.cameraPolarOffset+1e-6,this.PI_2+this.cameraPolarOffset-1e-6);let i=vt.copy(this.cameraPolarAxis0);("Locked"!==this.cameraYAxis||"radial"===this.orientMode)&&i.applyQuaternion(e);let o=St.setFromAxisAngle(i,t);"Locked"!==this.cameraYAxis&&this.targetToCamera.applyQuaternion(e),"Locked"!==this.cameraXAxis&&this.targetToCamera.applyQuaternion(o)}groundTiltAdjustment(t){180*At.angleTo(t)/Math.PI<15||180*At.angleTo(t)/Math.PI>85?Et.identity():Et.setFromUnitVectors(At,t),this.groundTilt.slerp(Et,.06),this.groundTiltInv.copy(this.groundTilt).invert()}collisionAdjustment(t){let e=gt.set(0,0,0);this.object.matrix.compose(this.position,this.quaternion,this.scale);let i=wt.multiplyMatrices(this.object.matrix,this.objXZRotMat).multiply(this.collider.matrix).decompose(vt,Et,bt).compose(vt,Et,Dt);this.sharedGameControlGlobals.entitiesWithTransformAnim.forEach(t=>{if(t===this.object||t.isDescendantOf(this.object)||!t.bvhGeometry||!t.bvhGeometry.boundsTree)return;Lt.makeEmpty(),t.updateMatrixWorldRigid();let o=t.matrixWorldRigid,s=Pt.copy(o).invert(),n=Mt.copy(Pt).multiply(i);Vt.copy(this.collider.segment),Vt.start.applyMatrix4(n),Vt.end.applyMatrix4(n);let r=yt.copy(this.position).applyMatrix4(s);Lt.expandByPoint(Vt.start),Lt.expandByPoint(Vt.end),Lt.min.addScalar(-this.collider.radius),Lt.max.addScalar(this.collider.radius),t.bvhGeometry.boundsTree.shapecast({boundsTraverseOrder:t=>t.distanceToPoint(Vt.end),intersectsBounds:t=>t.intersectsBox(Lt),intersectsTriangle:t=>{let i=vt,s=bt,n=t.closestPointToSegment(Vt,i,s);if(n<this.collider.radius){let t=this.collider.radius-n,a=s.sub(i).normalize(),h=xt.copy(r);h.addScaledVector(a,t);let l=h.applyMatrix4(o).sub(this.position);e.add(l),Vt.start.addScaledVector(a,t),Vt.end.addScaledVector(a,t)}}})}),Lt.makeEmpty(),Vt.copy(this.collider.segment),Vt.start.applyMatrix4(i),Vt.end.applyMatrix4(i),Lt.expandByPoint(Vt.start),Lt.expandByPoint(Vt.end),Lt.min.addScalar(-this.collider.radius),Lt.max.addScalar(this.collider.radius),this.sharedGameControlGlobals.staticMeshBVH?.shapecast({boundsTraverseOrder:t=>t.distanceToPoint(Vt.end),intersectsBounds:t=>t.intersectsBox(Lt),intersectsTriangle:t=>{let i=vt,o=bt,s=t.closestPointToSegment(Vt,i,o);if(s<this.collider.radius){let t=this.collider.radius-s,n=o.sub(i).normalize();this.alignToGround&&this.groundTiltAdjustment(n),e.addScaledVector(n,t),Vt.start.addScaledVector(n,t),Vt.end.addScaledVector(n,t)}}}),this.onObject=Math.abs(e.y)>Math.abs(t*this.velocity.y*.25),this.onObject&&this.dispatchStopEvent("jump");let o=Math.max(0,e.length()-1e-5);e.normalize().multiplyScalar(o),this.position.add(e)}pause(){this.firstPointerId=-1,this.movementState={moveNegZ:0,movePosZ:0,moveNegX:0,movePosX:0,moveNegY:0,movePosY:0,rotPosX:0,rotNegX:0,rotPosY:0,rotNegY:0,jump:0,run:0},this.deactivate()}resume(){this.activate()}},Yt=Bt;Yt.isLocked=!1;var Zt,Gt,qt,Ht=x?typeof window<"u"?window.location.href:"":"https://cdn.spline.design/@splinetool/runtime@2.0.2/build/",Ut=`\n(async function() {\n\tconst [wasmImport, wasmBinary] = await Promise.all([\n\t\timport('${Ht}' + 'navmesh.js'),\n\t\tfetch('${Ht}' + 'navmesh.wasm').then((res) => res.arrayBuffer()),\n\t]);\n\tconst wasmModule = wasmImport.default;\n\tself.module = await wasmModule({ wasmBinary });\n\tpostMessage('ready');\n})();\n`,Kt={cs:6,ch:2,walkableSlopeAngle:90,walkableHeight:20,walkableClimb:5,walkableRadius:0,maxEdgeLen:12,maxSimplificationError:1.3,minRegionArea:8,mergeRegionArea:20,maxVertsPerPoly:6,detailSampleDist:6,detailSampleMaxError:1};r.then(t=>{Zt=t,Gt=new t.Vec3,qt=new t.Vec3});var Jt=new C,$t=class{constructor(e=!1,i=!1){this.usePhysics=e,this.isExport=i,this.onPointerDown=t=>{if(1!==a.length)return;let{raycaster:e,page:i}=this.eventContext;this.eventContext.updateRaycaster(t);let o=i.raycastWithClones(e);if(0!==o.length){if(this.gameControl){let t=Jt.copy(this.gameControl.colliderWorldPosition);t.y-=this.gameControl.colliderHeight/2,this.gameControl.path=this.computePath(t,o[0].point)}this.eventContext.requestRender()}},this.traverseWithPhysics=(e,i)=>s=>{let r;if(s instanceof t){if(!s.objectForSample)return!0===s.object.dataPatched.physics.fusedBody&&"dynamic"===s.object.dataPatched.physics.rigidBody||void 0;if(s.objectForSample.dataPatched.physics.fusedBody)return;r=s.object}else if(s instanceof m)r=s.object;else if(r=s,!1===r.dataPatched.cloner?.disabled&&r.dataPatched.cloner?.hideBase&&!0!==r.dataPatched.physics?.fusedBody)return!0;if(i&&!r.userData.navmesh)return;let a=r.dataPatched;if(!a.visible&&!0!==a.physics?.enabled)return!0;s.updateMatrixWorldRigid();let h=n(a),l=r.userData.hasDestroy,c=r.userData.hasDrag,d=!1,p=!1;for(let t of a.events)!0!==t.data.disabled&&("GameControl"===t.data.type?d=!0:"Follow"===t.data.type&&(p=!0));if(d||h||p||l||c)return!0;if(this.usePhysics&&"dynamic"===a.physics?.rigidBody){if(this.usePhysics&&a.physics?.fusedBody)return!0}else if("geometry"in s&&s.geometry&&e.push(o(s.geometry,s.matrixWorld)),this.usePhysics&&a.physics?.fusedBody)return s.traverseObject((i,s)=>{if(0===s)return;let n;if(i instanceof t){if(!i.objectForSample)return!0===i.object.dataPatched.physics.fusedBody&&"dynamic"===i.object.dataPatched.physics.rigidBody||void 0;if(i.objectForSample.dataPatched.physics.fusedBody)return;n=i.object}else if(i instanceof m)n=i.object;else if(n=i,i.dataPatched.cloner?.hideBase)return!0;let r=n.dataPatched;if(!r.visible&&!0!==r.physics?.enabled)return!0;"geometry"in i&&i.geometry&&e.push(o(i.geometry,i.matrixWorld))}),!0},this.traverseNoPhysics=(e,i)=>s=>{let r;if(s instanceof t)return;r=s instanceof m?s.object:s;let a=r.dataPatched;if("visibility"===a.physics.enabled?!a.visible:!a.physics.enabled)return!0;if(i&&!r.userData.navmesh)return;let h=s.geometry,l=!0===r.userData.hasDestroy,c=!0===r.userData.hasDrag;if(n(a)||l||c||r.dataPatched.events.some(t=>!0!==t.data.disabled&&"GameControl"===t.data.type))return!0;h&&e.push(o(h,s.matrixWorld))},this.navmeshWasm=Zt,this.navMesh=new this.navmeshWasm.NavMesh,this._workerURL=URL.createObjectURL(new Blob([(i?Ut:"\n(async function() {\n\tconst [wasmImport, wasmBinary] = await Promise.all([\n\t\timport(self.location.origin + '/_libraries/navmesh.js'),\n\t\tfetch(self.location.origin + '/_libraries/navmesh.wasm').then((res) => res.arrayBuffer()),\n\t]);\n\tconst wasmModule = wasmImport.default;\n\tself.module = await wasmModule({ wasmBinary });\n\tpostMessage('ready');\n})();\n")+"\n\nonmessage = function(messageEvent) {\n\tconst meshData = messageEvent.data;\n\tconst positions = meshData[0];\n\tconst offset = meshData[1];\n\tconst indices = meshData[2];\n\tconst indicesLength = meshData[3];\n\tconst parameters = meshData[4];\n\n\tconst module = self.module;\n\tconst rc = new module.rcConfig();\n\trc.cs = parameters.cs;\n\trc.ch = parameters.ch;\n\trc.borderSize = parameters.borderSize ? parameters.borderSize : 0;\n\trc.tileSize = parameters.tileSize ? parameters.tileSize : 0;\n\trc.walkableSlopeAngle = parameters.walkableSlopeAngle;\n\trc.walkableHeight = parameters.walkableHeight;\n\trc.walkableClimb = parameters.walkableClimb;\n\trc.walkableRadius = parameters.walkableRadius;\n\trc.maxEdgeLen = parameters.maxEdgeLen;\n\trc.maxSimplificationError = parameters.maxSimplificationError;\n\trc.minRegionArea = parameters.minRegionArea;\n\trc.mergeRegionArea = parameters.mergeRegionArea;\n\trc.maxVertsPerPoly = parameters.maxVertsPerPoly;\n\trc.detailSampleDist = parameters.detailSampleDist;\n\trc.detailSampleMaxError = parameters.detailSampleMaxError;\n\n\tif (!self.navMesh) {\n\t\tself.navMesh = new module.NavMesh();\n\t}\n\tself.navMesh.build(positions, offset, indices, indicesLength, rc);\n\n\tconst navmeshData = navMesh.getNavmeshData();\n\tconst arrView = new Uint8Array(module.HEAPU8.buffer, navmeshData.dataPointer, navmeshData.size);\n\tconst ret = new Uint8Array(navmeshData.size);\n\tret.set(arrView);\n\tnavMesh.freeNavmeshData(navmeshData);\n\n\tpostMessage(ret);\n}\n"])),this._worker=new Worker(this._workerURL),this.whenWorkerReady=new Promise(t=>{this._worker.addEventListener("message",()=>t(),{once:!0})})}init(t,e,i){this.gameControl=e,this.eventContext=i,this.setDefaultQueryExtent((new C).setScalar(t.ch*t.walkableRadius*1.2)),this._worker.onmessage=()=>{this.createNavMesh(i.page,t,t=>{this.buildFromNavmeshData(t.data)})},this.eventContext.renderer.domElement.addEventListener("pointerdown",this.onPointerDown)}createNavMesh(t,e,i){e.objects.forEach(e=>{let i=t.scene.find(e);i.traverseEntity(t=>{t.userData.navmesh=!0}),i.cloner?.traverseObject(t=>{t.userData.navmesh=!0})});let o=[],s=(this.usePhysics?this.traverseWithPhysics:this.traverseNoPhysics)(o,"custom"===e.zones);if(t.traverseChildren(s),e.objects.forEach(e=>{let i=t.scene.find(e);i.traverseEntity(t=>{t.userData.navmesh=void 0}),i.cloner?.traverseObject(t=>{t.userData.navmesh=void 0})}),0===o.length)return!1;let n=y(o),{positions:r,triIndices:a}=p(n.getAttribute("position"),n.getIndex());return this._worker.postMessage([r,r.length/3,a,a.length,{...Kt,...e}]),this._worker.onmessage=i,!0}createDebugNavGeometry(){let t,e,i=this.navMesh.getDebugNavMesh(),o=i.getTriangleCount(),s=new Uint32Array(3*o),n=new Float32Array(3*o*3);for(t=0;t<3*o;t++)s[t]=t;for(t=0;t<o;t++)for(e=0;e<3;e++){let o=i.getTriangle(t).getPoint(e);n[9*t+3*e+0]=o.x,n[9*t+3*e+1]=o.y,n[9*t+3*e+2]=o.z}let r=new X;return r.setIndex(new _(s,1)),r.setAttribute("position",new _(n,3)),r}getClosestPoint(t){return Gt.x=t.x,Gt.y=t.y,Gt.z=t.z,this.navMesh.getClosestPoint(Gt)}getClosestPointToRef(t,e){Gt.x=t.x,Gt.y=t.y,Gt.z=t.z;let i=this.navMesh.getClosestPoint(Gt);e.set(i.x,i.y,i.z)}getRandomPointAround(t,e){return Gt.x=t.x,Gt.y=t.y,Gt.z=t.z,this.navMesh.getRandomPointAround(Gt,e)}getRandomPointAroundToRef(t,e,i){Gt.x=t.x,Gt.y=t.y,Gt.z=t.z;let o=this.navMesh.getRandomPointAround(Gt,e);i.set(o.x,o.y,o.z)}moveAlong(t,e){return Gt.x=t.x,Gt.y=t.y,Gt.z=t.z,qt.x=e.x,qt.y=e.y,qt.z=e.z,this.navMesh.moveAlong(Gt,qt)}moveAlongToRef(t,e,i){return Gt.x=t.x,Gt.y=t.y,Gt.z=t.z,qt.x=e.x,qt.y=e.y,qt.z=e.z,this.navMesh.moveAlong(Gt,qt)}computePath(t,e){let i=this.getClosestPoint(e);if(qt.x=i.x,qt.y=i.y,qt.z=i.z,Math.sqrt(Math.pow(e.x-i.x,2)+Math.pow(e.y-i.y,2)+Math.pow(e.z-i.z,2))>this.getDefaultQueryExtent().y)return[];this.getClosestPoint(t);let o=this.navMesh.computePath(Gt,qt),s=o.getPointCount(),n=[];for(let t=0;t<s;t++){let e=o.getPoint(t);n.push(new C(e.x,e.y,e.z))}return n}createCrowd(t,e){return new te(this,t,e)}setDefaultQueryExtent(t){Gt.x=t.x,Gt.y=t.y,Gt.z=t.z,this.navMesh.setDefaultQueryExtent(Gt)}getDefaultQueryExtent(){return this.navMesh.getDefaultQueryExtent()}buildFromNavmeshData(t){let e=t.length*t.BYTES_PER_ELEMENT,i=this.navmeshWasm._malloc(e),o=new Uint8Array(this.navmeshWasm.HEAPU8.buffer,i,e);o.set(t);let s=new this.navmeshWasm.NavmeshData;s.dataPointer=o.byteOffset,s.size=t.length,this.navMesh.buildFromNavmeshData(s),this.navmeshWasm._free(o.byteOffset)}getNavmeshData(){let t=this.navMesh.getNavmeshData(),e=new Uint8Array(this.navmeshWasm.HEAPU8.buffer,t.dataPointer,t.size),i=new Uint8Array(t.size);return i.set(e),this.navMesh.freeNavmeshData(t),i}getDefaultQueryExtentToRef(t){let e=this.navMesh.getDefaultQueryExtent();t.set(e.x,e.y,e.z)}dispose(){this.navMesh.destroy(),this._worker.terminate(),URL.revokeObjectURL(this._workerURL),this.eventContext?.renderer.domElement.removeEventListener("pointerdown",this.onPointerDown)}addCylinderObstacle(t,e,i){return Gt.x=t.x,Gt.y=t.y,Gt.z=t.z,this.navMesh.addCylinderObstacle(Gt,e,i)}addBoxObstacle(t,e,i){return Gt.x=t.x,Gt.y=t.y,Gt.z=t.z,qt.x=e.x,qt.y=e.y,qt.z=e.z,this.navMesh.addBoxObstacle(Gt,qt,i)}removeObstacle(t){this.navMesh.removeObstacle(t)}isSupported(){return void 0!==this.navmeshWasm}},te=class{constructor(t,e,i){this.navmeshWasmWrapper=t,this.transforms=[],this.agents=new Array,this.reachRadii=new Array,this._agentDestinationArmed=new Array,this._agentDestination=new Array,this.crowd=new this.navmeshWasmWrapper.navmeshWasm.Crowd(e,i,this.navmeshWasmWrapper.navMesh.getNavMesh())}onReachTarget(t,e){}addAgent(t,e,i){let o=new this.navmeshWasmWrapper.navmeshWasm.dtCrowdAgentParams;o.radius=e.radius,o.height=e.height,o.maxAcceleration=e.maxAcceleration,o.maxSpeed=e.maxSpeed,o.collisionQueryRange=e.collisionQueryRange,o.pathOptimizationRange=e.pathOptimizationRange,o.separationWeight=e.separationWeight,o.updateFlags=7,o.obstacleAvoidanceType=0,o.queryFilterType=0,o.userData=0;let s=this.crowd.addAgent(new this.navmeshWasmWrapper.navmeshWasm.Vec3(t.x,t.y,t.z),o);return this.transforms.push(i),this.agents.push(s),this.reachRadii.push(e.reachRadius?e.reachRadius:e.radius),this._agentDestinationArmed.push(!1),this._agentDestination.push(new C(0,0,0)),s}getAgentPosition(t){return this.crowd.getAgentPosition(t)}getAgentPositionToRef(t,e){let i=this.crowd.getAgentPosition(t);e.set(i.x,i.y,i.z)}getAgentVelocity(t){return this.crowd.getAgentVelocity(t)}getAgentVelocityToRef(t,e){let i=this.crowd.getAgentVelocity(t);e.set(i.x,i.y,i.z)}getAgentNextTargetPath(t){return this.crowd.getAgentNextTargetPath(t)}getAgentNextTargetPathToRef(t,e){let i=this.crowd.getAgentNextTargetPath(t);e.set(i.x,i.y,i.z)}getAgentState(t){return this.crowd.getAgentState(t)}overOffmeshConnection(t){return this.crowd.overOffmeshConnection(t)}agentGoto(t,e){this.crowd.agentGoto(t,new this.navmeshWasmWrapper.navmeshWasm.Vec3(e.x,e.y,e.z));let i=this.agents.indexOf(t);i>-1&&(this._agentDestinationArmed[i]=!0,this._agentDestination[i].set(e.x,e.y,e.z))}agentTeleport(t,e){this.crowd.agentTeleport(t,new this.navmeshWasmWrapper.navmeshWasm.Vec3(e.x,e.y,e.z))}updateAgentParameters(t,e){let i=this.crowd.getAgentParameters(t);void 0!==e.radius&&(i.radius=e.radius),void 0!==e.height&&(i.height=e.height),void 0!==e.maxAcceleration&&(i.maxAcceleration=e.maxAcceleration),void 0!==e.maxSpeed&&(i.maxSpeed=e.maxSpeed),void 0!==e.collisionQueryRange&&(i.collisionQueryRange=e.collisionQueryRange),void 0!==e.pathOptimizationRange&&(i.pathOptimizationRange=e.pathOptimizationRange),void 0!==e.separationWeight&&(i.separationWeight=e.separationWeight),this.crowd.setAgentParameters(t,i)}removeAgent(t){this.crowd.removeAgent(t);let e=this.agents.indexOf(t);e>-1&&(this.agents.splice(e,1),this.transforms.splice(e,1),this.reachRadii.splice(e,1),this._agentDestinationArmed.splice(e,1),this._agentDestination.splice(e,1))}getAgents(){return this.agents}update(t){if(this.navmeshWasmWrapper.navMesh.update(),t<=.001)return;let e=1/60;{let i=Math.floor(t/e);i>10&&(i=10),i<1&&(i=1);let o=t/i;for(let t=0;t<i;t++)this.crowd.update(o)}for(let t=0;t<this.agents.length;t++){let e=this.agents[t],i=this.getAgentPosition(e);if(this.transforms[t].copy(i),this._agentDestinationArmed[t]){let o=i.x-this._agentDestination[t].x,s=i.z-this._agentDestination[t].z,n=this.reachRadii[t],r=this._agentDestination[t].y-this.reachRadii[t],a=this._agentDestination[t].y+this.reachRadii[t],h=o*o+s*s;i.y>r&&i.y<a&&h<n*n&&(this.onReachTarget(e,this._agentDestination[t]),this._agentDestinationArmed[t]=!1)}}}setDefaultQueryExtent(t){let e=new this.navmeshWasmWrapper.navmeshWasm.Vec3(t.x,t.y,t.z);this.crowd.setDefaultQueryExtent(e)}getDefaultQueryExtent(){return this.crowd.getDefaultQueryExtent()}getDefaultQueryExtentToRef(t){let e=this.crowd.getDefaultQueryExtent();t.set(e.x,e.y,e.z)}getCorners(t){let e,i=this.crowd.getCorners(t),o=i.getPointCount(),s=[];for(e=0;e<o;e++){let t=i.getPoint(e);s.push(new C(t.x,t.y,t.z))}return s}dispose(){this.crowd.destroy()}};i({setup:function(t){let{manager:e,camera:i}=t,o=!1,s=5,n=8,r=9,a="drag",l=e.page.data.publish.gameControlObject,c=null!==l?e.page.find(l):null,d=null;if(c)for(let t of c.data.events){if(t.data.disabled||"GameControl"!==t.data.type)continue;let i=c;for(;e.usePhysics&&null!==(i=i.parent)?.parent;)i.data.physics;t.data.collisionEnabled&&(e.needsCollisionDetection=!0),null===d&&(d=t.data)}if(c&&d&&(!0===c.data.visible||!0===c.data.physics.enabled)){o=o||d.camera===i.uuid||c.uuid===i.uuid;let l=new Yt(c,t.renderer.domElement,d,t.eventContext.page.data.globalPhysics,e,c.uuid!==i.uuid&&d.camera===i.uuid,i,e.page,t.sharedAssets);e.gameControl=l,s=d.joystickPosLoc,n=d.joystickRotLoc,r=d.jumpTouchButtonLoc,a=d.rotByTouch,h&&d.touchControl&&(e.joystickToGameControls[s]="pos","walk"===d.moveMode&&(e.joystickToGameControls[r]="jmp"),"joystick"===a&&(e.joystickToGameControls[n]="rot"))}if(e.gameControl&&e.gameControl.data.navmesh.enabled){let i=e.gameControl.data;if(!e.navigationMeshWrapper){let o;e.navigationMeshWrapper=new $t(e.usePhysics,t.isExport),o="sphere"===i.collider.type?2*i.collider.radius:i.collider.height,o=Math.floor(o/i.navmesh.ch-1),e.navigationMeshWrapper.init({...i.navmesh,walkableHeight:o},e.gameControl,t.eventContext)}}return o},createJoysticks:function(t,e,i){t.joystickToGameControls.forEach((o,s)=>{let n=document.body.appendChild(document.createElement("div")),[r,a,h]=t.eventManager.eventContext.publish.joystickSizeAndXYOffset[s],l=(e-5*r)/4+r,c={},d="jmp"===o,m=d?0:r;s<10?(s<5?c.top=m/2:c.bottom=m/2,c.left=m/2+s%5*l):10===s?(c.left=m/2,c.top=i/2):(c.right=m/2,c.top=i/2),c.top?c.top-=a[1]:c.bottom+=a[1],c.left?c.left+=a[0]:c.right-=a[0];for(let t in c)c[t]+="px";if(d){let e=n.appendChild(document.createElement("div"));Object.assign(e.style,c,{position:"absolute",width:r+"px",height:r+"px",backgroundColor:`rgba(255,255,255,${"show"===h?.4:0})`,zIndex:"9999",borderRadius:r+"px",border:"show"===h?"solid 2px rgba(0, 0, 0, .1)":"none",display:"flex",alignItems:"center",justifyContent:"center",touchAction:"none"});let i=r/16*16*.4;return"show"===h&&(e.innerHTML=`\n\t\t\t\t\t\t<svg width="${i}" height="${.4*r}" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n\t\t\t\t\t\t\t<path d="M2 10L8 4L14 10" stroke="black" stroke-opacity="40%" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t`),e.addEventListener("pointerdown",()=>{t.gameControl.movementState.jump=1,t.requestRender()}),e.addEventListener("touchend",t=>t.preventDefault()),void(t.joysticks[s]=[void 0,n])}let p={zone:n,mode:"static",position:c,size:r};"hide"===h&&(p.restOpacity=0);let u=pt.create(p);u.on("move",(e,i)=>{let s=t.gameControl;"pos"===o?i.force<.2?s.moveForce=0:(s.movementState.movePosZ=Math.sin(-i.angle.radian),s.movementState.movePosX=Math.cos(-i.angle.radian),i.force>1.2?s.movementState.run=1:s.movementState.run=0,i.force<.3?s.moveForce=(i.force-.2)/.1:s.moveForce=1):"rot"===o&&(i.force<.2?s.rotForce=0:(s.movementState.rotPosX=i.vector.y,s.movementState.rotPosY=-i.vector.x,i.force<.3?s.rotForce=(i.force-.2)/.1:s.rotForce=1)),t.requestRender()}),u.on("end",(e,i)=>{let s=t.gameControl;"pos"===o?(s.movementState.movePosZ=0,s.movementState.movePosX=0,s.moveForce=1):"rot"===o&&(s.movementState.rotPosX=0,s.movementState.rotPosY=0,s.rotForce=1)}),t.joysticks[s]=[u,n]})}}),w("game-controls");
@@ -0,0 +1 @@
1
+ import{k as r}from"./runtime-chunk-HJS3VFEN.js";import"./runtime-chunk-2Y73BLCY.js";import"./runtime-chunk-QZ35BPGB.js";import"./runtime-chunk-4KZXQGUQ.js";import"./runtime-chunk-Z5OH244S.js";import{a as i,d as m}from"./runtime-chunk-TZCHGFVF.js";import"./runtime-chunk-OW6T4XFV.js";import"./runtime-chunk-VGN7YHB7.js";import"./runtime-chunk-ML3Z74BL.js";m("Hair",(i,m,n)=>new r(i,m,n)),i("hair");
@@ -0,0 +1,3 @@
1
+ ���tc=7U��np^l�|�A�RKNC[��&��y��y��>H�%�q����Y�O��y�=�oS?n\`\ק|��;��@�8��s�N{��&�+�w;�M̊}풩S;oR���7�t�%<�>M�9��E�l�gxNj��N����d������H
2
+ �KS>_
3
+ L���!