@splinetool/runtime 2.0.93 → 2.0.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/{runtime-DRACOLoader-GLMRFFK2.js → runtime-DRACOLoader-SDMMLQLV.js} +1 -1
- package/build/runtime-DRACOLoader-SDMMLQLV.js.br +0 -0
- package/build/runtime-DRACOLoader-SDMMLQLV.js.gz +0 -0
- package/build/{runtime-aiAssistant-5ECVEZLI.js → runtime-aiAssistant-MKZQ23BA.js} +1 -1
- package/build/runtime-aiAssistant-MKZQ23BA.js.br +0 -0
- package/build/runtime-aiAssistant-MKZQ23BA.js.gz +0 -0
- package/build/{runtime-apiServices-J4QEEJ2S.js → runtime-apiServices-YYNQCMLP.js} +1 -1
- package/build/runtime-apiServices-YYNQCMLP.js.br +0 -0
- package/build/runtime-apiServices-YYNQCMLP.js.gz +0 -0
- package/build/{runtime-audio-P56XBVSL.js → runtime-audio-GPQ4HYPM.js} +1 -1
- package/build/runtime-audio-GPQ4HYPM.js.br +0 -0
- package/build/runtime-audio-GPQ4HYPM.js.gz +0 -0
- package/build/{runtime-bloom-UG5HOSMH.js → runtime-bloom-UMJG5YKZ.js} +1 -1
- package/build/runtime-bloom-UMJG5YKZ.js.br +0 -0
- package/build/runtime-bloom-UMJG5YKZ.js.gz +0 -0
- package/build/{runtime-brightnessContrast-PGPHKJZX.js → runtime-brightnessContrast-LRDMKXC2.js} +1 -1
- package/build/runtime-brightnessContrast-LRDMKXC2.js.br +0 -0
- package/build/runtime-brightnessContrast-LRDMKXC2.js.gz +0 -0
- package/build/{runtime-chromaticAberration-T7XDMEVF.js → runtime-chromaticAberration-X46NQTBB.js} +1 -1
- package/build/runtime-chromaticAberration-X46NQTBB.js.br +0 -0
- package/build/runtime-chromaticAberration-X46NQTBB.js.gz +0 -0
- package/build/{runtime-chunk-BBD57YCP.js → runtime-chunk-32XVU5DS.js} +1 -1
- package/build/runtime-chunk-32XVU5DS.js.br +0 -0
- package/build/runtime-chunk-32XVU5DS.js.gz +0 -0
- package/build/{runtime-chunk-JKFC5GFF.js → runtime-chunk-33EF3BLM.js} +1 -1
- package/build/runtime-chunk-33EF3BLM.js.br +0 -0
- package/build/runtime-chunk-33EF3BLM.js.gz +0 -0
- package/build/runtime-chunk-3Q4J5ROW.js +1 -0
- package/build/runtime-chunk-3Q4J5ROW.js.br +0 -0
- package/build/runtime-chunk-3Q4J5ROW.js.gz +0 -0
- package/build/{runtime-chunk-OHSWHEBV.js → runtime-chunk-4Y4AXXPU.js} +1 -1
- package/build/runtime-chunk-4Y4AXXPU.js.br +0 -0
- package/build/runtime-chunk-4Y4AXXPU.js.gz +0 -0
- package/build/{runtime-chunk-QR32XGTY.js → runtime-chunk-AEPWABER.js} +1 -1
- package/build/runtime-chunk-AEPWABER.js.br +0 -0
- package/build/runtime-chunk-AEPWABER.js.gz +0 -0
- package/build/{runtime-chunk-CJAKEGOH.js → runtime-chunk-AU3CL3GR.js} +1 -1
- package/build/runtime-chunk-AU3CL3GR.js.br +0 -0
- package/build/runtime-chunk-AU3CL3GR.js.gz +0 -0
- package/build/{runtime-chunk-QSWZYIFB.js → runtime-chunk-BFGZJ4LR.js} +1 -1
- package/build/runtime-chunk-BFGZJ4LR.js.br +0 -0
- package/build/runtime-chunk-BFGZJ4LR.js.gz +0 -0
- package/build/{runtime-chunk-XA7NBHZC.js → runtime-chunk-D3OIGZUW.js} +1 -1
- package/build/runtime-chunk-D3OIGZUW.js.br +0 -0
- package/build/runtime-chunk-D3OIGZUW.js.gz +0 -0
- package/build/runtime-chunk-DCC352GL.js +1 -0
- package/build/runtime-chunk-DCC352GL.js.br +0 -0
- package/build/runtime-chunk-DCC352GL.js.gz +0 -0
- package/build/runtime-chunk-E4UNJ4TR.js +1 -0
- package/build/runtime-chunk-E4UNJ4TR.js.br +0 -0
- package/build/runtime-chunk-E4UNJ4TR.js.gz +0 -0
- package/build/{runtime-chunk-QE3AQ5FK.js → runtime-chunk-EEVK6AD6.js} +1 -1
- package/build/runtime-chunk-EEVK6AD6.js.br +0 -0
- package/build/runtime-chunk-EEVK6AD6.js.gz +0 -0
- package/build/{runtime-chunk-KHCWX7UM.js → runtime-chunk-F6XTFQMZ.js} +1 -1
- package/build/runtime-chunk-F6XTFQMZ.js.br +0 -0
- package/build/runtime-chunk-F6XTFQMZ.js.gz +0 -0
- package/build/{runtime-chunk-HBZCKQBD.js → runtime-chunk-FZVL5H67.js} +1 -1
- package/build/runtime-chunk-FZVL5H67.js.br +0 -0
- package/build/runtime-chunk-FZVL5H67.js.gz +0 -0
- package/build/{runtime-chunk-WWCXHYAF.js → runtime-chunk-GD4SGFHZ.js} +1 -1
- package/build/{runtime-chunk-WWCXHYAF.js.br → runtime-chunk-GD4SGFHZ.js.br} +0 -0
- package/build/runtime-chunk-GD4SGFHZ.js.gz +0 -0
- package/build/{runtime-chunk-OBAIF634.js → runtime-chunk-GSKBI4RN.js} +1 -1
- package/build/runtime-chunk-GSKBI4RN.js.br +0 -0
- package/build/runtime-chunk-GSKBI4RN.js.gz +0 -0
- package/build/{runtime-chunk-TXYV34UR.js → runtime-chunk-HGPSGN65.js} +1 -1
- package/build/runtime-chunk-HGPSGN65.js.br +2 -0
- package/build/runtime-chunk-HGPSGN65.js.gz +0 -0
- package/build/runtime-chunk-HOOQDTK7.js +1 -0
- package/build/runtime-chunk-HOOQDTK7.js.br +0 -0
- package/build/runtime-chunk-HOOQDTK7.js.gz +0 -0
- package/build/{runtime-chunk-CDN5RLZC.js → runtime-chunk-IBVB6UVI.js} +1 -1
- package/build/runtime-chunk-IBVB6UVI.js.br +0 -0
- package/build/runtime-chunk-IBVB6UVI.js.gz +0 -0
- package/build/{runtime-chunk-VQPMRUIZ.js → runtime-chunk-JABQRWT5.js} +1 -1
- package/build/runtime-chunk-JABQRWT5.js.br +0 -0
- package/build/runtime-chunk-JABQRWT5.js.gz +0 -0
- package/build/runtime-chunk-JJVEXKEO.js +1 -0
- package/build/runtime-chunk-JJVEXKEO.js.br +0 -0
- package/build/runtime-chunk-JJVEXKEO.js.gz +0 -0
- package/build/{runtime-chunk-VUJSHZTK.js → runtime-chunk-JTXN6DIH.js} +1 -1
- package/build/runtime-chunk-JTXN6DIH.js.br +0 -0
- package/build/runtime-chunk-JTXN6DIH.js.gz +0 -0
- package/build/{runtime-chunk-KK7BC667.js → runtime-chunk-KJQWLDYH.js} +1 -1
- package/build/runtime-chunk-KJQWLDYH.js.br +0 -0
- package/build/runtime-chunk-KJQWLDYH.js.gz +0 -0
- package/build/runtime-chunk-KPOUV3HD.js +1 -0
- package/build/runtime-chunk-KPOUV3HD.js.br +0 -0
- package/build/runtime-chunk-KPOUV3HD.js.gz +0 -0
- package/build/{runtime-chunk-54KAQGZU.js → runtime-chunk-KQTC7OLV.js} +1 -1
- package/build/runtime-chunk-KQTC7OLV.js.br +0 -0
- package/build/runtime-chunk-KQTC7OLV.js.gz +0 -0
- package/build/{runtime-chunk-W34CWO4J.js → runtime-chunk-PF6YNLMZ.js} +1 -1
- package/build/runtime-chunk-PF6YNLMZ.js.br +0 -0
- package/build/runtime-chunk-PF6YNLMZ.js.gz +0 -0
- package/build/{runtime-chunk-K6UEJGDM.js → runtime-chunk-PWMK5MVJ.js} +1 -1
- package/build/runtime-chunk-PWMK5MVJ.js.br +0 -0
- package/build/runtime-chunk-PWMK5MVJ.js.gz +0 -0
- package/build/runtime-chunk-QJMMF3L2.js +1 -0
- package/build/runtime-chunk-QJMMF3L2.js.br +0 -0
- package/build/runtime-chunk-QJMMF3L2.js.gz +0 -0
- package/build/{runtime-chunk-LZSX7T4B.js → runtime-chunk-REXAQKUN.js} +1 -1
- package/build/runtime-chunk-REXAQKUN.js.br +0 -0
- package/build/runtime-chunk-REXAQKUN.js.gz +0 -0
- package/build/{runtime-chunk-WCJY5BE7.js → runtime-chunk-RWYT7G6G.js} +1 -1
- package/build/runtime-chunk-RWYT7G6G.js.br +0 -0
- package/build/runtime-chunk-RWYT7G6G.js.gz +0 -0
- package/build/{runtime-chunk-PI5WT5IX.js → runtime-chunk-WYIK4MJQ.js} +1 -1
- package/build/runtime-chunk-WYIK4MJQ.js.br +0 -0
- package/build/runtime-chunk-WYIK4MJQ.js.gz +0 -0
- package/build/runtime-chunk-ZA3HZGIR.js +1 -0
- package/build/runtime-chunk-ZA3HZGIR.js.br +0 -0
- package/build/runtime-chunk-ZA3HZGIR.js.gz +0 -0
- package/build/{runtime-chunk-6TZS7SVL.js → runtime-chunk-ZFM73G2B.js} +1 -1
- package/build/runtime-chunk-ZFM73G2B.js.br +0 -0
- package/build/runtime-chunk-ZFM73G2B.js.gz +0 -0
- package/build/{runtime-chunk-JH5Z7VPK.js → runtime-chunk-ZJIYRGBK.js} +1 -1
- package/build/runtime-chunk-ZJIYRGBK.js.br +0 -0
- package/build/runtime-chunk-ZJIYRGBK.js.gz +0 -0
- package/build/{runtime-classicRuntime-L7QG2FJ5.js → runtime-classicRuntime-WIJ56CKR.js} +1 -1
- package/build/runtime-classicRuntime-WIJ56CKR.js.br +0 -0
- package/build/runtime-classicRuntime-WIJ56CKR.js.gz +0 -0
- package/build/runtime-cloners-2S7SALQM.js +1 -0
- package/build/runtime-cloners-2S7SALQM.js.br +1 -0
- package/build/runtime-cloners-2S7SALQM.js.gz +0 -0
- package/build/{runtime-collisionBVH-CQUE6RZV.js → runtime-collisionBVH-JA4BEOA7.js} +1 -1
- package/build/runtime-collisionBVH-JA4BEOA7.js.br +0 -0
- package/build/runtime-collisionBVH-JA4BEOA7.js.gz +0 -0
- package/build/{runtime-components-SNSQPVIU.js → runtime-components-3T3QMQUH.js} +1 -1
- package/build/runtime-components-3T3QMQUH.js.br +0 -0
- package/build/runtime-components-3T3QMQUH.js.gz +0 -0
- package/build/{runtime-conditional-SK6JLPTN.js → runtime-conditional-CCGDVDMD.js} +1 -1
- package/build/runtime-conditional-CCGDVDMD.js.br +0 -0
- package/build/runtime-conditional-CCGDVDMD.js.gz +0 -0
- package/build/{runtime-createDestroy-7JLV5ONP.js → runtime-createDestroy-W6FF4RAP.js} +1 -1
- package/build/runtime-createDestroy-W6FF4RAP.js.br +0 -0
- package/build/runtime-createDestroy-W6FF4RAP.js.gz +0 -0
- package/build/{runtime-depthOfField-WIDZIOIS.js → runtime-depthOfField-DSE6YVZ4.js} +1 -1
- package/build/runtime-depthOfField-DSE6YVZ4.js.br +0 -0
- package/build/runtime-depthOfField-DSE6YVZ4.js.gz +0 -0
- package/build/{runtime-dragDrop-74DNBQ4A.js → runtime-dragDrop-2TMWDGUQ.js} +1 -1
- package/build/runtime-dragDrop-2TMWDGUQ.js.br +0 -0
- package/build/runtime-dragDrop-2TMWDGUQ.js.gz +0 -0
- package/build/{runtime-fxBloom-4HSWHGBL.js → runtime-fxBloom-4HB5FTK3.js} +1 -1
- package/build/runtime-fxBloom-4HB5FTK3.js.br +0 -0
- package/build/runtime-fxBloom-4HB5FTK3.js.gz +0 -0
- package/build/{runtime-fxDepthOfField-NGC6SATF.js → runtime-fxDepthOfField-URCQCIRP.js} +1 -1
- package/build/runtime-fxDepthOfField-URCQCIRP.js.br +0 -0
- package/build/runtime-fxDepthOfField-URCQCIRP.js.gz +0 -0
- package/build/{runtime-gameControls-HMLU4O4P.js → runtime-gameControls-VAUAOGUW.js} +1 -1
- package/build/runtime-gameControls-VAUAOGUW.js.br +0 -0
- package/build/runtime-gameControls-VAUAOGUW.js.gz +0 -0
- package/build/runtime-hair-NLGIEVG3.js +1 -0
- package/build/runtime-hair-NLGIEVG3.js.br +1 -0
- package/build/runtime-hair-NLGIEVG3.js.gz +0 -0
- package/build/{runtime-hueSaturation-7HSYL7M5.js → runtime-hueSaturation-TZ5VQY72.js} +1 -1
- package/build/runtime-hueSaturation-TZ5VQY72.js.br +0 -0
- package/build/runtime-hueSaturation-TZ5VQY72.js.gz +0 -0
- package/build/{runtime-mergeStaticGeometries-4TLAKDAM.js → runtime-mergeStaticGeometries-K2YJKZ3C.js} +1 -1
- package/build/runtime-mergeStaticGeometries-K2YJKZ3C.js.br +0 -0
- package/build/runtime-mergeStaticGeometries-K2YJKZ3C.js.gz +0 -0
- package/build/{runtime-miscActions-YT3JTCAS.js → runtime-miscActions-6CUG2JSF.js} +1 -1
- package/build/runtime-miscActions-6CUG2JSF.js.br +0 -0
- package/build/runtime-miscActions-6CUG2JSF.js.gz +0 -0
- package/build/{runtime-mouseHover-UC4V64KR.js → runtime-mouseHover-CYCSNNZM.js} +1 -1
- package/build/runtime-mouseHover-CYCSNNZM.js.br +0 -0
- package/build/runtime-mouseHover-CYCSNNZM.js.gz +0 -0
- package/build/{runtime-noise-PPEDFDYO.js → runtime-noise-FLMWYKTL.js} +1 -1
- package/build/runtime-noise-FLMWYKTL.js.br +0 -0
- package/build/runtime-noise-FLMWYKTL.js.gz +0 -0
- package/build/{runtime-particles-KRZTDOJK.js → runtime-particles-PDPG5E74.js} +1 -1
- package/build/runtime-particles-PDPG5E74.js.br +0 -0
- package/build/runtime-particles-PDPG5E74.js.gz +0 -0
- package/build/{runtime-paths-4EGJEH3U.js → runtime-paths-E4GHUGNN.js} +1 -1
- package/build/runtime-paths-E4GHUGNN.js.br +0 -0
- package/build/runtime-paths-E4GHUGNN.js.gz +0 -0
- package/build/{runtime-pixelation-MVG6XLP3.js → runtime-pixelation-AOFGI5XX.js} +1 -1
- package/build/runtime-pixelation-AOFGI5XX.js.br +0 -0
- package/build/runtime-pixelation-AOFGI5XX.js.gz +0 -0
- package/build/{runtime-resize-72IGTMAR.js → runtime-resize-DAWD3MKG.js} +1 -1
- package/build/runtime-resize-DAWD3MKG.js.br +0 -0
- package/build/runtime-resize-DAWD3MKG.js.gz +0 -0
- package/build/{runtime-sceneTransition-55XY2MUR.js → runtime-sceneTransition-SFGBWSP3.js} +1 -1
- package/build/runtime-sceneTransition-SFGBWSP3.js.br +0 -0
- package/build/runtime-sceneTransition-SFGBWSP3.js.gz +0 -0
- package/build/{runtime-scroll-M6OD2EFE.js → runtime-scroll-HKLPDE7E.js} +1 -1
- package/build/runtime-scroll-HKLPDE7E.js.br +0 -0
- package/build/runtime-scroll-HKLPDE7E.js.gz +0 -0
- package/build/runtime-shapeBlends-COFJFXT6.js +1 -0
- package/build/runtime-shapeBlends-COFJFXT6.js.br +2 -0
- package/build/runtime-shapeBlends-COFJFXT6.js.gz +0 -0
- package/build/{runtime-text-4LC7VC5F.js → runtime-text-NQU4F3KI.js} +1 -1
- package/build/runtime-text-NQU4F3KI.js.br +0 -0
- package/build/runtime-text-NQU4F3KI.js.gz +0 -0
- package/build/{runtime-textInputs-YSSB35BQ.js → runtime-textInputs-5WG7OPGO.js} +1 -1
- package/build/runtime-textInputs-5WG7OPGO.js.br +0 -0
- package/build/runtime-textInputs-5WG7OPGO.js.gz +0 -0
- package/build/{runtime-timeline-EWF2TRMQ.js → runtime-timeline-EAC5OJEK.js} +1 -1
- package/build/runtime-timeline-EAC5OJEK.js.br +0 -0
- package/build/runtime-timeline-EAC5OJEK.js.gz +0 -0
- package/build/{runtime-tracking-ZRIG4OD6.js → runtime-tracking-6CN7PQFK.js} +1 -1
- package/build/runtime-tracking-6CN7PQFK.js.br +0 -0
- package/build/runtime-tracking-6CN7PQFK.js.gz +0 -0
- package/build/{runtime-transitions-CTFNET4C.js → runtime-transitions-N47Y4AXH.js} +1 -1
- package/build/runtime-transitions-N47Y4AXH.js.br +0 -0
- package/build/runtime-transitions-N47Y4AXH.js.gz +0 -0
- package/build/{runtime-ui2d-ACT52A4B.js → runtime-ui2d-T3OZFBOE.js} +1 -1
- package/build/runtime-ui2d-T3OZFBOE.js.br +0 -0
- package/build/runtime-ui2d-T3OZFBOE.js.gz +0 -0
- package/build/{runtime-updater-RCOMZLTB.js → runtime-updater-6YEO4WI3.js} +1 -1
- package/build/runtime-updater-6YEO4WI3.js.br +2 -0
- package/build/runtime-updater-6YEO4WI3.js.gz +0 -0
- package/build/{runtime-variables-DJUQPZDB.js → runtime-variables-ICLL7DZV.js} +1 -1
- package/build/runtime-variables-ICLL7DZV.js.br +0 -0
- package/build/runtime-variables-ICLL7DZV.js.gz +0 -0
- package/build/{runtime-vectorShapes-RYMOTNNM.js → runtime-vectorShapes-4MX2X2MH.js} +1 -1
- package/build/runtime-vectorShapes-4MX2X2MH.js.br +0 -0
- package/build/runtime-vectorShapes-4MX2X2MH.js.gz +0 -0
- package/build/{runtime-video-U5RS7HHJ.js → runtime-video-KFIFPA6P.js} +1 -1
- package/build/runtime-video-KFIFPA6P.js.br +0 -0
- package/build/runtime-video-KFIFPA6P.js.gz +0 -0
- package/build/{runtime-vignette-KYH2SCOD.js → runtime-vignette-S4Z7IMQ5.js} +1 -1
- package/build/runtime-vignette-S4Z7IMQ5.js.br +0 -0
- package/build/runtime-vignette-S4Z7IMQ5.js.gz +0 -0
- package/build/runtime-webgpu-JZZF7PVG.js +1 -0
- package/build/runtime-webgpu-JZZF7PVG.js.br +0 -0
- package/build/runtime-webgpu-JZZF7PVG.js.gz +0 -0
- package/build/runtime.cjs +16 -8
- package/build/runtime.js +1 -1
- package/build/runtime.js.br +0 -0
- package/build/runtime.js.gz +0 -0
- package/build/runtime.standalone.js +1 -1
- package/build/runtime.standalone.js.br +0 -0
- package/build/runtime.standalone.js.gz +0 -0
- package/build/runtime.standalone.webgl.js +1 -1
- package/build/runtime.standalone.webgl.js.br +0 -0
- package/build/runtime.standalone.webgl.js.gz +0 -0
- package/build/runtime.standalone.webgpu.js +1 -1
- package/build/runtime.standalone.webgpu.js.br +0 -0
- package/build/runtime.standalone.webgpu.js.gz +0 -0
- package/build/runtime.standalone.webgpu.micro.js +1 -1
- package/build/runtime.standalone.webgpu.micro.js.br +0 -0
- package/build/runtime.standalone.webgpu.micro.js.gz +0 -0
- package/build/runtime.standalone.webgpu.min.js +1 -1
- package/build/runtime.standalone.webgpu.min.js.br +0 -0
- package/build/runtime.standalone.webgpu.min.js.gz +0 -0
- package/package.json +1 -1
- package/build/runtime-DRACOLoader-GLMRFFK2.js.br +0 -0
- package/build/runtime-DRACOLoader-GLMRFFK2.js.gz +0 -0
- package/build/runtime-aiAssistant-5ECVEZLI.js.br +0 -0
- package/build/runtime-aiAssistant-5ECVEZLI.js.gz +0 -0
- package/build/runtime-apiServices-J4QEEJ2S.js.br +0 -0
- package/build/runtime-apiServices-J4QEEJ2S.js.gz +0 -0
- package/build/runtime-audio-P56XBVSL.js.br +0 -7
- package/build/runtime-audio-P56XBVSL.js.gz +0 -0
- package/build/runtime-bloom-UG5HOSMH.js.br +0 -0
- package/build/runtime-bloom-UG5HOSMH.js.gz +0 -0
- package/build/runtime-brightnessContrast-PGPHKJZX.js.br +0 -0
- package/build/runtime-brightnessContrast-PGPHKJZX.js.gz +0 -0
- package/build/runtime-chromaticAberration-T7XDMEVF.js.br +0 -0
- package/build/runtime-chromaticAberration-T7XDMEVF.js.gz +0 -0
- package/build/runtime-chunk-54KAQGZU.js.br +0 -0
- package/build/runtime-chunk-54KAQGZU.js.gz +0 -0
- package/build/runtime-chunk-5WJTDAAI.js +0 -1
- package/build/runtime-chunk-5WJTDAAI.js.br +0 -0
- package/build/runtime-chunk-5WJTDAAI.js.gz +0 -0
- package/build/runtime-chunk-6FFBLDZX.js +0 -1
- package/build/runtime-chunk-6FFBLDZX.js.br +0 -0
- package/build/runtime-chunk-6FFBLDZX.js.gz +0 -0
- package/build/runtime-chunk-6TZS7SVL.js.br +0 -0
- package/build/runtime-chunk-6TZS7SVL.js.gz +0 -0
- package/build/runtime-chunk-7CHUIB5Q.js +0 -1
- package/build/runtime-chunk-7CHUIB5Q.js.br +0 -0
- package/build/runtime-chunk-7CHUIB5Q.js.gz +0 -0
- package/build/runtime-chunk-BBD57YCP.js.br +0 -0
- package/build/runtime-chunk-BBD57YCP.js.gz +0 -0
- package/build/runtime-chunk-BVVSZMXD.js +0 -1
- package/build/runtime-chunk-BVVSZMXD.js.br +0 -0
- package/build/runtime-chunk-BVVSZMXD.js.gz +0 -0
- package/build/runtime-chunk-CDN5RLZC.js.br +0 -0
- package/build/runtime-chunk-CDN5RLZC.js.gz +0 -0
- package/build/runtime-chunk-CJAKEGOH.js.br +0 -0
- package/build/runtime-chunk-CJAKEGOH.js.gz +0 -0
- package/build/runtime-chunk-GF2HB4HZ.js +0 -1
- package/build/runtime-chunk-GF2HB4HZ.js.br +0 -0
- package/build/runtime-chunk-GF2HB4HZ.js.gz +0 -0
- package/build/runtime-chunk-HBZCKQBD.js.br +0 -0
- package/build/runtime-chunk-HBZCKQBD.js.gz +0 -0
- package/build/runtime-chunk-JH5Z7VPK.js.br +0 -0
- package/build/runtime-chunk-JH5Z7VPK.js.gz +0 -0
- package/build/runtime-chunk-JKFC5GFF.js.br +0 -0
- package/build/runtime-chunk-JKFC5GFF.js.gz +0 -0
- package/build/runtime-chunk-K6UEJGDM.js.br +0 -0
- package/build/runtime-chunk-K6UEJGDM.js.gz +0 -0
- package/build/runtime-chunk-KHCWX7UM.js.br +0 -0
- package/build/runtime-chunk-KHCWX7UM.js.gz +0 -0
- package/build/runtime-chunk-KK7BC667.js.br +0 -0
- package/build/runtime-chunk-KK7BC667.js.gz +0 -0
- package/build/runtime-chunk-LZSX7T4B.js.br +0 -0
- package/build/runtime-chunk-LZSX7T4B.js.gz +0 -0
- package/build/runtime-chunk-NEKALYDS.js +0 -1
- package/build/runtime-chunk-NEKALYDS.js.br +0 -0
- package/build/runtime-chunk-NEKALYDS.js.gz +0 -0
- package/build/runtime-chunk-OBAIF634.js.br +0 -0
- package/build/runtime-chunk-OBAIF634.js.gz +0 -0
- package/build/runtime-chunk-OHSWHEBV.js.br +0 -0
- package/build/runtime-chunk-OHSWHEBV.js.gz +0 -0
- package/build/runtime-chunk-PI5WT5IX.js.br +0 -0
- package/build/runtime-chunk-PI5WT5IX.js.gz +0 -0
- package/build/runtime-chunk-QE3AQ5FK.js.br +0 -0
- package/build/runtime-chunk-QE3AQ5FK.js.gz +0 -0
- package/build/runtime-chunk-QR32XGTY.js.br +0 -0
- package/build/runtime-chunk-QR32XGTY.js.gz +0 -0
- package/build/runtime-chunk-QSWZYIFB.js.br +0 -0
- package/build/runtime-chunk-QSWZYIFB.js.gz +0 -0
- package/build/runtime-chunk-TXYV34UR.js.br +0 -0
- package/build/runtime-chunk-TXYV34UR.js.gz +0 -0
- package/build/runtime-chunk-VQPMRUIZ.js.br +0 -0
- package/build/runtime-chunk-VQPMRUIZ.js.gz +0 -0
- package/build/runtime-chunk-VUJSHZTK.js.br +0 -0
- package/build/runtime-chunk-VUJSHZTK.js.gz +0 -0
- package/build/runtime-chunk-VXU3S3Y3.js +0 -1
- package/build/runtime-chunk-VXU3S3Y3.js.br +0 -0
- package/build/runtime-chunk-VXU3S3Y3.js.gz +0 -0
- package/build/runtime-chunk-W34CWO4J.js.br +0 -0
- package/build/runtime-chunk-W34CWO4J.js.gz +0 -0
- package/build/runtime-chunk-WCJY5BE7.js.br +0 -0
- package/build/runtime-chunk-WCJY5BE7.js.gz +0 -0
- package/build/runtime-chunk-WWCXHYAF.js.gz +0 -0
- package/build/runtime-chunk-WWIPBG3J.js +0 -1
- package/build/runtime-chunk-WWIPBG3J.js.br +0 -0
- package/build/runtime-chunk-WWIPBG3J.js.gz +0 -0
- package/build/runtime-chunk-XA7NBHZC.js.br +0 -0
- package/build/runtime-chunk-XA7NBHZC.js.gz +0 -0
- package/build/runtime-classicRuntime-L7QG2FJ5.js.br +0 -0
- package/build/runtime-classicRuntime-L7QG2FJ5.js.gz +0 -0
- package/build/runtime-cloners-KG6N3BXV.js +0 -1
- package/build/runtime-cloners-KG6N3BXV.js.br +0 -0
- package/build/runtime-cloners-KG6N3BXV.js.gz +0 -0
- package/build/runtime-collisionBVH-CQUE6RZV.js.br +0 -0
- package/build/runtime-collisionBVH-CQUE6RZV.js.gz +0 -0
- package/build/runtime-components-SNSQPVIU.js.br +0 -0
- package/build/runtime-components-SNSQPVIU.js.gz +0 -0
- package/build/runtime-conditional-SK6JLPTN.js.br +0 -0
- package/build/runtime-conditional-SK6JLPTN.js.gz +0 -0
- package/build/runtime-createDestroy-7JLV5ONP.js.br +0 -0
- package/build/runtime-createDestroy-7JLV5ONP.js.gz +0 -0
- package/build/runtime-depthOfField-WIDZIOIS.js.br +0 -0
- package/build/runtime-depthOfField-WIDZIOIS.js.gz +0 -0
- package/build/runtime-dragDrop-74DNBQ4A.js.br +0 -0
- package/build/runtime-dragDrop-74DNBQ4A.js.gz +0 -0
- package/build/runtime-fxBloom-4HSWHGBL.js.br +0 -0
- package/build/runtime-fxBloom-4HSWHGBL.js.gz +0 -0
- package/build/runtime-fxDepthOfField-NGC6SATF.js.br +0 -0
- package/build/runtime-fxDepthOfField-NGC6SATF.js.gz +0 -0
- package/build/runtime-gameControls-HMLU4O4P.js.br +0 -0
- package/build/runtime-gameControls-HMLU4O4P.js.gz +0 -0
- package/build/runtime-hair-JWEUOSZQ.js +0 -1
- package/build/runtime-hair-JWEUOSZQ.js.br +0 -2
- package/build/runtime-hair-JWEUOSZQ.js.gz +0 -0
- package/build/runtime-hueSaturation-7HSYL7M5.js.br +0 -0
- package/build/runtime-hueSaturation-7HSYL7M5.js.gz +0 -0
- package/build/runtime-mergeStaticGeometries-4TLAKDAM.js.br +0 -0
- package/build/runtime-mergeStaticGeometries-4TLAKDAM.js.gz +0 -0
- package/build/runtime-miscActions-YT3JTCAS.js.br +0 -0
- package/build/runtime-miscActions-YT3JTCAS.js.gz +0 -0
- package/build/runtime-mouseHover-UC4V64KR.js.br +0 -0
- package/build/runtime-mouseHover-UC4V64KR.js.gz +0 -0
- package/build/runtime-noise-PPEDFDYO.js.br +0 -0
- package/build/runtime-noise-PPEDFDYO.js.gz +0 -0
- package/build/runtime-particles-KRZTDOJK.js.br +0 -0
- package/build/runtime-particles-KRZTDOJK.js.gz +0 -0
- package/build/runtime-paths-4EGJEH3U.js.br +0 -0
- package/build/runtime-paths-4EGJEH3U.js.gz +0 -0
- package/build/runtime-pixelation-MVG6XLP3.js.br +0 -0
- package/build/runtime-pixelation-MVG6XLP3.js.gz +0 -0
- package/build/runtime-resize-72IGTMAR.js.br +0 -0
- package/build/runtime-resize-72IGTMAR.js.gz +0 -0
- package/build/runtime-sceneTransition-55XY2MUR.js.br +0 -0
- package/build/runtime-sceneTransition-55XY2MUR.js.gz +0 -0
- package/build/runtime-scroll-M6OD2EFE.js.br +0 -0
- package/build/runtime-scroll-M6OD2EFE.js.gz +0 -0
- package/build/runtime-shapeBlends-2QP6U25O.js +0 -1
- package/build/runtime-shapeBlends-2QP6U25O.js.br +0 -4
- package/build/runtime-shapeBlends-2QP6U25O.js.gz +0 -0
- package/build/runtime-text-4LC7VC5F.js.br +0 -0
- package/build/runtime-text-4LC7VC5F.js.gz +0 -0
- package/build/runtime-textInputs-YSSB35BQ.js.br +0 -0
- package/build/runtime-textInputs-YSSB35BQ.js.gz +0 -0
- package/build/runtime-timeline-EWF2TRMQ.js.br +0 -0
- package/build/runtime-timeline-EWF2TRMQ.js.gz +0 -0
- package/build/runtime-tracking-ZRIG4OD6.js.br +0 -0
- package/build/runtime-tracking-ZRIG4OD6.js.gz +0 -0
- package/build/runtime-transitions-CTFNET4C.js.br +0 -0
- package/build/runtime-transitions-CTFNET4C.js.gz +0 -0
- package/build/runtime-ui2d-ACT52A4B.js.br +0 -0
- package/build/runtime-ui2d-ACT52A4B.js.gz +0 -0
- package/build/runtime-updater-RCOMZLTB.js.br +0 -3
- package/build/runtime-updater-RCOMZLTB.js.gz +0 -0
- package/build/runtime-variables-DJUQPZDB.js.br +0 -0
- package/build/runtime-variables-DJUQPZDB.js.gz +0 -0
- package/build/runtime-vectorShapes-RYMOTNNM.js.br +0 -0
- package/build/runtime-vectorShapes-RYMOTNNM.js.gz +0 -0
- package/build/runtime-video-U5RS7HHJ.js.br +0 -0
- package/build/runtime-video-U5RS7HHJ.js.gz +0 -0
- package/build/runtime-vignette-KYH2SCOD.js.br +0 -0
- package/build/runtime-vignette-KYH2SCOD.js.gz +0 -0
- package/build/runtime-webgpu-GP4ESV4Z.js +0 -1
- package/build/runtime-webgpu-GP4ESV4Z.js.br +0 -0
- package/build/runtime-webgpu-GP4ESV4Z.js.gz +0 -0
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as r}from"./runtime-chunk-JABQRWT5.js";import"./runtime-chunk-GD4SGFHZ.js";import"./runtime-chunk-32XVU5DS.js";import"./runtime-chunk-HOOQDTK7.js";import"./runtime-chunk-ZA3HZGIR.js";import"./runtime-chunk-4YV3EXSU.js";import"./runtime-chunk-NSD7DU3P.js";import{c as m}from"./runtime-chunk-WYIK4MJQ.js";import"./runtime-chunk-RTLL6WIB.js";import"./runtime-chunk-2PT2WH66.js";import"./runtime-chunk-BFGZJ4LR.js";import{a as n}from"./runtime-chunk-TZCHGFVF.js";import"./runtime-chunk-F6XTFQMZ.js";import"./runtime-chunk-KPOUV3HD.js";import"./runtime-chunk-ML3Z74BL.js";m.Cloner=r,n("cloners");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
W`�ø�۴����np���fYĠRo���'ʿv�I��z�� w�oe�<�0�5
|
|
Binary file
|
|
@@ -1 +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-BVVSZMXD.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),L=class{constructor(){this.boundingData=new Float32Array(6)}},E=Math.pow(2,32);function H(e){return"count"in e?1:1+H(e.left)+H(e.right)}function O(e,t,n){return _=new Float32Array(n),z=new Uint32Array(n),D=new Uint16Array(n),V=new Uint8Array(n),X(e,t)}function X(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=X(e+32,r),a=s/32-e/32;if(a>E)throw new Error("MeshBVH: Cannot store relative child node offset greater than 32 bits.");return z[n+6]=a,z[n+7]=o,X(s,i)}}function N(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 L;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 L,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 L,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=H(i),l=new n(32*o);return O(0,i,l),l})}var Z,j,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){Z=W.getPrimitive(),j=W.getPrimitive(),Y.push(Z,j),G.setBuffer(e._roots[t]);let s=K(0,e.geometry,n,r,i,o);G.clearBuffer(),W.releasePrimitive(Z),W.releasePrimitive(j),Y.pop(),Y.pop();let a=Y.length;return a>0&&(j=Y[a-1],Z=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,Z),r(t,n,!1,s,o+e/8,Z)}{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=Z,p=j,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=Z,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=j,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){N(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],L=t.a[V],E=t.b[V],H=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,L,E,H,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 Le(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 Ee(e){return e&&e.isMaterial?e.side:e}function He(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=Le(n,p,y,h,m,l,u,c,Ee(t[x]),o,s);if(e){if(e.faceIndex=r,e.face.materialIndex=x,!i)return e;i.push(e)}}}}else{let e=Le(n,p,y,h,m,l,u,c,Ee(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 Xe(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 Ne(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 Ze(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 je(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++)He(l,t,n,e,o,s,a)}(t,n,r,T(e,u),S(c,l),i,o,s);else{let l=M(e);Ze(l,a,r,o,s)&&Ge(l,t,n,r,i,o,s);let c=U(e,u);Ze(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=He(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=Ze(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=Ze(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++)He(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);Ze(l,a,r,o,s)&&ht(l,t,n,r,i,o,s);let c=U(e,u);Ze(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=He(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=Ze(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=Ze(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,Lt=new r,Et=new i,Ht=new r,Ot=["getX","getY","getZ"],Xt=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 Xt(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;Et.copy(e.matrixWorld).invert(),Ct.copy(t.ray).applyMatrix4(Et),Ht.setFromMatrixScale(e.matrixWorld),Lt.copy(Ct.direction).multiply(Ht);let i=Lt.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:Ne)(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?je:Xe});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 Xt))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(Xt),t("collision-bvh");
|
|
1
|
+
import{a as e}from"./runtime-chunk-N2ZRGNPR.js";import{a as t}from"./runtime-chunk-TZCHGFVF.js";import{$c as n,Fc as r,Hc as i,Qc as o,Te as s,Yc as a,Zc as l,a as u,j as c,k as f,l as d,ld as p,td as y}from"./runtime-chunk-KPOUV3HD.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})),H=new Float32Array(6),C=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 C;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,H):b(u,H,H)),d+=r;let f=0,p=0;0!==d&&(f=P(H)/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 C,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 C,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 Z,j,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)}},Y=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())}}},G=[],W=new k(()=>new l);function $(e,t,n,r,i,o){Z=W.getPrimitive(),j=W.getPrimitive(),G.push(Z,j),Y.setBuffer(e._roots[t]);let s=K(0,e.geometry,n,r,i,o);Y.clearBuffer(),W.releasePrimitive(Z),W.releasePrimitive(j),G.pop(),G.pop();let a=G.length;return a>0&&(j=G[a-1],Z=G[a-2]),s}function K(e,t,n,r,i=null,o=0,s=0){let{float32Array:a,uint16Array:l,uint32Array:u}=Y,c=2*e;if(A(c,l)){let t=T(e,u),n=S(c,l);return x(e,a,Z),r(t,n,!1,s,o+e/8,Z)}{let c,f,d,p,y=function(e){let{uint16Array:t,uint32Array:n}=Y,r=2*e;for(;!A(r,t);)r=2*(e=M(e));return T(e,n)},h=function(e){let{uint16Array:t,uint32Array:n}=Y,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=Z,p=j,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=Z,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=j,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 Q=new Y.constructor,J=new Y.constructor,ee=new k(()=>new l),te=new l,ne=new l,re=new l,ie=new l,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=J,d=Q):(f=Q,d=J);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 l,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 i,s=e._roots,a=t._roots,l=0,u=0,c=(new o).copy(n).invert();for(let e=0,t=s.length;e<t;e++){Q.setBuffer(s[e]),u=0;let t=ee.getPrimitive();x(0,Q.float32Array,t),t.applyMatrix4(c);for(let e=0,o=a.length;e<o&&(J.setBuffer(a[e]),i=se(0,0,n,c,r,l,u,0,0,t),J.clearBuffer(),u+=a[e].byteLength/32,!i);e++);if(ee.releasePrimitive(t),Q.clearBuffer(),l+=s[e].byteLength/32,i)break}return oe=!1,i}(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:r}=this;if(e.indirect){let n=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,r),e.useSharedArrayBuffer);this._indirectBuffer=n}else!function(e,t){if(!e.index){let r=e.attributes.position.count,i=function(e,t=ArrayBuffer){return e>65535?new Uint32Array(new t(4*e)):new Uint16Array(new t(2*e))}(r,t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer);e.setIndex(new n(i,1));for(let e=0;e<r;e++)i[e]=e}}(t,e);super.init(e),!t.boundingBox&&e.setBoundingBox&&(t.boundingBox=this.getBoundingBox(new l))}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 i;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 i,t=new i,n=new i;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 r,t=new i,n=new i;return function(r,i,o,s){he(r,i,e);let a=e.x,l=e.y;if(a>=0&&a<=1&&l>=0&&l<=1)return r.at(a,o),void i.at(l,s);if(a>=0&&a<=1)return l<0?i.at(0,s):i.at(1,s),void r.closestPointToPoint(s,!0,o);if(l>=0&&l<=1)return a<0?r.at(0,o):r.at(1,o),void i.closestPointToPoint(o,!0,s);{let e,u;e=a<0?r.start:r.end,u=l<0?i.start:i.end;let c=t,f=n;return r.closestPointToPoint(u,!0,t),i.closestPointToPoint(e,!0,n),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 i,t=new i,n=new y,r=new s;return function(i,o){let{radius:s,center:a}=i,{a:l,b:u,c:c}=o;if(r.start=l,r.end=u,r.closestPointToPoint(a,!0,e).distanceTo(a)<=s||(r.start=l,r.end=c,r.closestPointToPoint(a,!0,e).distanceTo(a)<=s)||(r.start=u,r.end=c,r.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 a{constructor(...e){super(...e),this.isExtendedTriangle=!0,this.satAxes=new Array(4).fill().map(()=>new i),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 s,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 i,t=new i,n=new s;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,n=new ye,o=new i,a=new i,l=new i,u=new i,c=new s,f=new s,d=new i,p=new r,y=new r;function h(e,r,i,s){let a=o;e.isDegenerateIntoPoint||e.isDegenerateIntoSegment?a.copy(r.plane.normal):a.copy(e.plane.normal);let l=e.satBounds,c=e.satAxes;for(let i=1;i<4;i++){let o=l[i],s=c[i];if(t.setFromPoints(s,r.points),o.isSeparated(t)||(u.copy(a).cross(s),t.setFromPoints(u,e.points),n.setFromPoints(u,r.points),t.isSeparated(n)))return!1}let f=r.satBounds,d=r.satAxes;for(let i=1;i<4;i++){let o=f[i],s=d[i];if(t.setFromPoints(s,e.points),o.isSeparated(t)||(u.crossVectors(a,s),t.setFromPoints(u,e.points),n.setFromPoints(u,r.points),t.isSeparated(n)))return!1}return i&&(s||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),i.start.set(0,0,0),i.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,s=e.plane.distanceToPoint(i.start),a=e.plane.distanceToPoint(i.end);return Be(s)?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,o)&&(n&&(n.start.copy(o),n.end.copy(o)),e.containsPoint(o))}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,o),i.distanceToSquared(o)<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,s=a,u=l;r.delta(s),i.delta(u);let c=o.subVectors(i.start,r.start),f=s.x*u.y-s.y*u.x;if(Be(f))return!1;let d=(c.x*u.y-c.y*u.x)/f,p=-(s.x*c.y-s.y*c.x)/f;return!(d<0||d>1||p<0||p>1||!Be(r.start.z+s.z*d-(i.start.z+u.z*p))||(n&&(n.start.copy(r.start).addScaledVector(s,d),n.end.copy(r.start).addScaledVector(s,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 s=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=s.distanceToPoint(t.a),S=s.distanceToPoint(t.b),M=s.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(s.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],H=this.c[V],C=t.a[V],L=t.b[V],E=t.c[V];if(g(this,R,q,H,P,A,m,b,v,p,c))return h(this,t,n,r);if(g(t,C,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 i;return function(t){return this.closestPointToPoint(t,e),t.distanceTo(e)}}(),be.prototype.distanceToTriangle=function(){let e=new i,t=new i,n=["a","b","c"],r=new s,o=new s;return function(i,s=null,a=null){let l=s||a?r:null;if(this.intersectsTriangle(i,l,!0))return(s||a)&&(s&&l.getCenter(s),a&&l.getCenter(a)),0;let u=1/0;for(let t=0;t<3;t++){let r,o=n[t],l=i[o];this.closestPointToPoint(l,e),r=l.distanceToSquared(e),r<u&&(u=r,s&&s.copy(e),a&&a.copy(l));let c=this[o];i.closestPointToPoint(c,e),r=c.distanceToSquared(e),r<u&&(u=r,s&&s.copy(c),a&&a.copy(e))}for(let l=0;l<3;l++){let c=n[l],f=n[(l+1)%3];r.set(this[c],this[f]);for(let l=0;l<3;l++){let c=n[l],f=n[(l+1)%3];o.set(i[c],i[f]),me(r,o,e,t);let d=e.distanceToSquared(t);d<u&&(u=d,s&&s.copy(e),a&&a.copy(t))}}return Math.sqrt(u)}}();var ve=class{constructor(e,t,n){this.isOrientedBox=!0,this.min=new i,this.max=new i,this.matrix=new o,this.invMatrix=new o,this.points=new Array(8).fill().map(()=>new i),this.satAxes=new Array(3).fill().map(()=>new i),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,r=new ye,o=new i;return function(i){this.needsUpdate&&this.update(),i.isExtendedTriangle?i.needsUpdate&&i.update():(e.copy(i),e.update(),i=e);let s=this.satBounds,a=this.satAxes;t[0]=i.a,t[1]=i.b,t[2]=i.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=i.satBounds,u=i.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 i=a[e];for(let e=0;e<4;e++){let s=u[e];if(o.crossVectors(i,s),n.setFromPoints(o,t),r.setFromPoints(o,c),n.isSeparated(r))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 i;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 s),n=new Array(12).fill().map(()=>new s),r=new i,o=new i;return function(i,s=0,a=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(i))return(a||l)&&(i.getCenter(o),this.closestPointToPoint(o,r),i.closestPointToPoint(r,o),a&&a.copy(r),l&&l.copy(o)),0;let u=s*s,c=i.min,f=i.max,d=this.points,p=1/0;for(let e=0;e<8;e++){let t=d[e];o.copy(t).clamp(c,f);let n=t.distanceToSquared(o);if(n<p&&(p=n,a&&a.copy(t),l&&l.copy(o),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++){o.x=e?f.x:c.x,o.y=t?f.y:c.y,o.z=n?f.z:c.z,this.closestPointToPoint(o,r);let i=o.distanceToSquared(r);if(i<p&&(p=i,a&&a.copy(r),l&&l.copy(o),i<u))return Math.sqrt(i)}for(let e=0;e<12;e++){let i=t[e];for(let e=0;e<12;e++){let t=n[e];me(i,t,r,o);let s=r.distanceToSquared(o);if(s<p&&(p=s,a&&a.copy(r),l&&l.copy(o),s<u))return Math.sqrt(s)}}return Math.sqrt(p)}}();var Pe=new class extends k{constructor(){super(()=>new be)}},Ae=new i,Te=new i,Se=parseInt(u)>=169,Me=parseInt(u)<=161,Ue=new i,Ie=new i,Fe=new i,_e=new r,ze=new r,De=new r,Ve=new i,Re=new i,qe=new i,He=new i;function Ce(e,t,n,o,s,l,u,c,p,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===f?e.intersectTriangle(r,n,t,!0,i):e.intersectTriangle(t,n,r,o!==d,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,He,p,y,h);if(m){if(o){_e.fromBufferAttribute(o,l),ze.fromBufferAttribute(o,u),De.fromBufferAttribute(o,c),m.uv=new r;let e=a.getInterpolation(He,Ue,Ie,Fe,_e,ze,De,m.uv);Se||(m.uv=e)}if(s){_e.fromBufferAttribute(s,l),ze.fromBufferAttribute(s,u),De.fromBufferAttribute(s,c),m.uv1=new r;let e=a.getInterpolation(He,Ue,Ie,Fe,_e,ze,De,m.uv1);Se||(m.uv1=e),Me&&(m.uv2=m.uv1)}if(n){Ve.fromBufferAttribute(n,l),Re.fromBufferAttribute(n,u),qe.fromBufferAttribute(n,c),m.normal=new i;let t=a.getInterpolation(He,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 i,materialIndex:0};if(a.getNormal(Ue,Ie,Fe,t.normal),m.face=t,m.faceIndex=l,Se){let e=new i;a.getBarycoord(He,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=Ce(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=Ce(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 Ze(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 je(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){Y.setBuffer(e._roots[t]),Ye(0,e,n,r,i,o,s),Y.clearBuffer()}function Ye(e,t,n,r,i,o,s){let{float32Array:a,uint16Array:l,uint32Array:u}=Y,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);Ze(l,a,r,o,s)&&Ye(l,t,n,r,i,o,s);let c=U(e,u);Ze(c,a,r,o,s)&&Ye(c,t,n,r,i,o,s)}}var Ge=["x","y","z"];function We(e,t,n,r,i,o){Y.setBuffer(e._roots[t]);let s=$e(0,e,n,r,i,o);return Y.clearBuffer(),s}function $e(e,t,n,r,i,o){let{float32Array:s,uint16Array:a,uint32Array:l}=Y,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=Ge[c],d=r.direction[f]>=0;d?(a=M(e),u=U(e,l)):(a=U(e,l),u=M(e));let p=Ze(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=Ze(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 l,Qe=new be,Je=new be,et=new o,tt=new ve,nt=new ve;function rt(e,t,n,r){Y.setBuffer(e._roots[t]);let i=it(0,e,n,r);return Y.clearBuffer(),i}function it(e,t,n,r,i=null){let{float32Array:o,uint16Array:s,uint32Array:a}=Y,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(Je,t,u,c),Je.needsUpdate=!0,e.intersectsTriangle(Je))return!0;return!1}});{let e=fe(n);for(let t=3*p,n=3*(y+p);t<n;t+=3){Oe(Qe,t,u,c),Qe.a.applyMatrix4(et),Qe.b.applyMatrix4(et),Qe.c.applyMatrix4(et),Qe.needsUpdate=!0;for(let t=0,n=3*e;t<n;t+=3)if(Oe(Je,t,f,d),Je.needsUpdate=!0,Qe.intersectsTriangle(Je))return!0}}}}var ot=new o,st=new ve,at=new ve,lt=new i,ut=new i,ct=new i,ft=new i;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){Y.setBuffer(e._roots[t]),ht(0,e,n,r,i,o,s),Y.clearBuffer()}function ht(e,t,n,r,i,o,s){let{float32Array:a,uint16Array:l,uint32Array:u}=Y,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);Ze(l,a,r,o,s)&&ht(l,t,n,r,i,o,s);let c=U(e,u);Ze(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){Y.setBuffer(e._roots[t]);let s=xt(0,e,n,r,i,o);return Y.clearBuffer(),s}function xt(e,t,n,r,i,o){let{float32Array:s,uint16Array:a,uint32Array:l}=Y,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=Ze(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=Ze(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 l,Bt=new be,bt=new be,vt=new o,Pt=new ve,At=new ve;function Tt(e,t,n,r){Y.setBuffer(e._roots[t]);let i=St(0,e,n,r);return Y.clearBuffer(),i}function St(e,t,n,r,i=null){let{float32Array:o,uint16Array:s,uint32Array:a}=Y,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 o,Ut=new ve,It=new ve,Ft=new i,_t=new i,zt=new i,Dt=new i;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,Ht=new p,Ct=new i,Lt=new o,Et=new i,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,r={}){r={setIndex:!0,indirect:Boolean(e.indirectBuffer),...r};let{index:i,roots:o,indirectBuffer:s}=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)}}}(o));let a=new Nt(t,{...r,[m]:!0});if(a._roots=o,a._indirectBuffer=s||null,r.setIndex){let r=t.getIndex();if(null===r){let r=new n(e.index,1,!1);t.setIndex(r)}else r.array!==i&&(r.array.set(i),r.needsUpdate=!0)}return a}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(),Ht.copy(t.ray).applyMatrix4(Lt),Et.setFromMatrixScale(e.matrixWorld),Ct.copy(Ht.direction).multiply(Et);let i=Ct.length(),o=t.near/i,s=t.far/i;if(!0===t.firstHitOnly){let i=this.raycastFirst(Ht,r,o,s);i=Rt(i,e,t),i&&n.push(i)}else{let i=this.raycast(Ht,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?je: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");
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./runtime-chunk-
|
|
1
|
+
import{a as e}from"./runtime-chunk-PF6YNLMZ.js";import{a as t}from"./runtime-chunk-PWMK5MVJ.js";import{d as n}from"./runtime-chunk-ZFM73G2B.js";import{ja as i}from"./runtime-chunk-ZA3HZGIR.js";import"./runtime-chunk-4YV3EXSU.js";import"./runtime-chunk-NSD7DU3P.js";import{c as s,h as o}from"./runtime-chunk-WYIK4MJQ.js";import{d as r,e as a}from"./runtime-chunk-RTLL6WIB.js";import"./runtime-chunk-2PT2WH66.js";import"./runtime-chunk-BFGZJ4LR.js";import{a as p,d}from"./runtime-chunk-TZCHGFVF.js";import{Aa as l,Ba as c,Ia as h,J as u,h as m,i as f,va as y}from"./runtime-chunk-F6XTFQMZ.js";import{Qc as v,Uc as g,qd as j}from"./runtime-chunk-KPOUV3HD.js";import"./runtime-chunk-ML3Z74BL.js";var I=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 k(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 I&&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=k(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=k(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 D=(e,t,n)=>new I(e,t,n);d("Component",D),d("Instance",D),p("components");
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as t,b as i}from"./runtime-chunk-DZNU62CT.js";import{f as s,g as a}from"./runtime-chunk-
|
|
1
|
+
import{a as t,b as i}from"./runtime-chunk-DZNU62CT.js";import{f as s,g as a}from"./runtime-chunk-33EF3BLM.js";import"./runtime-chunk-BFGZJ4LR.js";import{a as n}from"./runtime-chunk-TZCHGFVF.js";import"./runtime-chunk-F6XTFQMZ.js";import{Gc as o,Hc as e,Qc as c,Rc as r}from"./runtime-chunk-KPOUV3HD.js";import"./runtime-chunk-ML3Z74BL.js";function h(t){return Object.values(t).some(t=>t.length>0)}var d=new e,p=new e,u=(new c,new e,new o,new e,new r,class{constructor(t,i,a,n,o){this.actionsIn=s(t,t.inActions,a,n,o,i),this.actionsOut=s(t,t.outActions,a,n,o,i)}disconnect(){a(this.actionsIn),a(this.actionsOut)}}),f=class extends u{constructor(t,i,s,a,n,o){super(i,s,a,n,o),this.id=t,this.data=i,this.object=s,this.stage="out",this.objects=[],this.onUpdateMatrixWorld=()=>{for(let t of this.objects)if(!t.visible)return;let t=d.setFromMatrixPosition(this.objects[0].matrixWorld),i=p.setFromMatrixPosition(this.objects[1].matrixWorld),s=t.distanceTo(i)<=this.distance?"in":"out";if(this.stage!==s){this.stage=s;let t="in"===s?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.shouldReinit()||(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=a.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)})}},l=class extends u{constructor(t,i,s,a,n,o){super(i,s,a,n,o),this.id=t,this.data=i,this.object=s,this.onTransitionState=({settled:t,state:i})=>{t&&i===(this.toState??null)?h(this.actionsIn)&&this.runInActions():h(this.actionsOut)&&this.runOutActions()};let{condition:e}=i;if(!e.object)throw new Error("Missing property");let c=a.find(e.object)??a.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(){this.toObject.addEventListener("transitionState",this.onTransitionState)}disconnect(){super.disconnect(),this.toObject.removeEventListener("transitionState",this.onTransitionState)}runOutActions(){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=>{this.drivesWatchedObject(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())}runInActions(){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=>{this.drivesWatchedObject(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())}drivesWatchedObject(t){return t.object===this.toObject}},E=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(s=>{if(s.data?.events.length)for(let{id:a,data:n}of s.data.events)if(!n.disabled&&"Conditional"===n.type)try{let o;"Comparison"===n.condition.type||("Distance"===n.condition.type?o=new f(a,n,s,t,i,this.eventManager):"State"===n.condition.type&&(o=new l(a,n,s,t,i,this.eventManager))),o&&(this.eventsPerConditions[n.condition.type].push(o),(o.actionsIn.Video.length||o.actionsOut.Video.length)&&(this.hasVideoAction=!0))}catch(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 E(t,i)),n("conditional");
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as t}from"./runtime-chunk-
|
|
1
|
+
import{a as t}from"./runtime-chunk-JABQRWT5.js";import"./runtime-chunk-GD4SGFHZ.js";import"./runtime-chunk-32XVU5DS.js";import"./runtime-chunk-HOOQDTK7.js";import{ea as e}from"./runtime-chunk-ZA3HZGIR.js";import"./runtime-chunk-4YV3EXSU.js";import"./runtime-chunk-NSD7DU3P.js";import{b as i,e as a}from"./runtime-chunk-33EF3BLM.js";import"./runtime-chunk-WYIK4MJQ.js";import{b as r}from"./runtime-chunk-RTLL6WIB.js";import"./runtime-chunk-2PT2WH66.js";import"./runtime-chunk-BFGZJ4LR.js";import{a as o}from"./runtime-chunk-TZCHGFVF.js";import"./runtime-chunk-F6XTFQMZ.js";import{Ec as s,Gc as n,Hc as d}from"./runtime-chunk-KPOUV3HD.js";import"./runtime-chunk-ML3Z74BL.js";var h=(()=>{let t,e,i,a,r=!1;function o(i){!t&&!l()&&(e?.sharedGameControlGlobals.createdObjects.length??0)>0&&(t=requestAnimationFrame(s)),i&&(e=i,a=i.requestRender,!r&&typeof document<"u"&&(document.addEventListener("visibilitychange",n),r=!0))}function s(r){if(!e||!a)return t=void 0,void(i=void 0);let o=i?r-i:0,n=e.sharedGameControlGlobals.createdObjects,d=e.sharedGameControlGlobals.nCreatedPerAction,h=n.length,l=0;for(;l<h;){let t=n[l];void 0===t.userData.createdTime&&(t.userData.createdTime=r),void 0===t.userData.lifetime&&void 0===t.userData.quantity||t.userData.lifetime&&r-t.userData.createdTime<t.userData.lifetime||t.userData.quantity&&d[t.userData.actionId]<=t.userData.quantity?(t.userData.velocity&&(t.position.addScaledVector(t.userData.velocity,o/1e3),t.updateMatrix(),t.userData.parentMatrix&&t.matrix.premultiply(t.userData.parentMatrix),a()),l++):(d[t.userData.actionId]>t.userData.quantity&&d[t.userData.actionId]--,n.splice(l,1),t.removeFromParent(),e.sharedGameControlGlobals.rapierWorld&&t.rigidBody?(e.sharedGameControlGlobals.colliderToEntity.delete(t.rigidBody.collider(0).handle),e.sharedGameControlGlobals.rapierWorld.removeRigidBody(t.rigidBody)):(t.bvhGeometry=void 0,e.sharedGameControlGlobals.entitiesWithTransformAnim=e.sharedGameControlGlobals.entitiesWithTransformAnim.filter(t=>void 0!==t.bvhGeometry)),h--,a())}t=l>0?requestAnimationFrame(s):void 0,i=l>0?r:void 0}function n(){l()?t&&(cancelAnimationFrame(t),t=void 0,i=void 0):o()}return{play:o,dispose:function(){t&&(cancelAnimationFrame(t),t=void 0),r&&typeof document<"u"&&(document.removeEventListener("visibilitychange",n),r=!1),e=void 0,a=void 0,i=void 0}}})();function l(){return!!document&&document.hidden}var c=new n,u=new d,m=new d,p=class{constructor(i,o,n,l,p){this.data=i,this.page=o,this.controlsManager=n,this.shared=l,this.condition=p,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=r(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 t=new e(this.object);if(t.playModeVisible=!0,t.expand(),"world"!==this.data.coordinateSystem){let e=this.data.coordinateSystem,i=this.page.scene.find(e);i&&(i.updateMatrixWorldRigid(),t.userData.parentMatrix=i.matrixWorldRigid)}t.scale.copy(this.object.scale),t.position.fromArray(this.data.position.map(t=>"number"==typeof t?t:0)),t.rotation.fromArray(this.data.rotation.map(t=>"number"==typeof t?t:0)),t.updateMatrix(),t.userData.parentMatrix&&t.matrix.premultiply(t.userData.parentMatrix),this.page.add(t);let i=this.controlsManager.sharedGameControlGlobals;i.createdObjects.push(t),void 0===i.nCreatedPerAction[this.uniqueId]?i.nCreatedPerAction[this.uniqueId]=1:i.nCreatedPerAction[this.uniqueId]++,t.updateWorldMatrix(!0,!0),t.traverseObject(this.traverseObjectCB),h.play(),this.controlsManager.requestRender()},this.traverseObjectCB=i=>{let a;if(i.updateMatrixWorldRigid(),this.controlsManager.sharedGameControlGlobals.rapierWorld){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;a=i.object}else if(i instanceof e)a=i.object;else if(a=i,a.dataPatched.cloner?.hideBase)return!0}else{if(i instanceof t)return;a=i instanceof e?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 r=(new d).fromArray(this.data.velocity.map(t=>"number"==typeof t?t:0)),o=a.dataPatched;if(!("visibility"===o.physics.enabled?!o.visible:!o.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),r.applyQuaternion(c),this.data.velocity.some(t=>0!==t)&&this.data.dynamic&&i.rigidBody?.setLinvel(r.divideScalar(this.controlsManager.pixelsPerMeter),!0)):("geometry"in i.object&&this.controlsManager.addBoundsTree(i),this.data.velocity.some(t=>0!==t)&&this.data.dynamic&&(i.userData.velocity=r)),!0===a.dataPatched.physics?.fusedBody))return!0};let y=this.page.scene.find(this.data.object);if(!y)throw new Error("Missing Property");if(this.object=y,"world"!==this.data.coordinateSystem&&!this.page.scene.find(this.data.coordinateSystem))throw new Error("Missing Property");h.play(n)}dispose(){null!==this.intervalId&&(window.clearInterval(this.intervalId),this.intervalId=null),this.timeoutIdQueue.forEach(t=>window.clearTimeout(t)),this.timeoutIdQueue=[],this.dispatchThrottled.cancel(),this.page.remove(...this.controlsManager.sharedGameControlGlobals.createdObjects),this.controlsManager.sharedGameControlGlobals.createdObjects=[],h.dispose()}},y=class{constructor(t,e,i,a,r){this.data=t,this.page=e,this.controlsManager=i,this.shared=a,this.condition=r,this.timeoutIdQueue=[],this.dispatchInner=()=>{this.objects.forEach(this.destroyCallback)},this.destroyCallback=t=>{this.timeoutIdQueue.shift();let e=this.page.scene.find(t);if(void 0===e)return;let i=this.controlsManager.sharedGameControlGlobals.rapierWorld,a=!i||e.dataPatched.physics?.fusedBody;if(e.cloner){for(let t of e.cloner.children)a?(t.playModeVisible=!1,"positioned"===e.dataPatched.physics?.rigidBody&&this.removeBody(t),t.bvhGeometry&&(t.bvhGeometry=void 0)):void 0===this.clone||this.clone===t?(t.playModeVisible=!1,this.removeBody(t)):void 0===t.playModeVisible&&(t.playModeVisible=!0);e.cloner.syncInstanceMatrices(),(a||void 0===this.clone||!1===this.clone)&&(e.visible=!1,this.removeBody(e),e.bvhGeometry&&(e.bvhGeometry=void 0))}else this.removeBody(e),e.bvhGeometry&&(e.bvhGeometry=void 0),e.visible=!1;this.controlsManager.sharedGameControlGlobals.entitiesWithTransformAnim=void 0===i?this.controlsManager.sharedGameControlGlobals.entitiesWithTransformAnim.filter(t=>void 0!==t.bvhGeometry):this.controlsManager.sharedGameControlGlobals.entitiesWithTransformAnim.filter(t=>void 0!==t.rigidBody),e.destroyedInAction=!0,this.controlsManager.requestRender()},this.objects=[...t.objects]}removeBody(t){let e=t.rigidBody;if(!e)return;let i=this.controlsManager.sharedGameControlGlobals;i.colliderToEntity.delete(e.collider(0).handle),i.kinematicBodyToEntity.delete(e.handle);let a=this.controlsManager;a.fixedBodiesToWatch=a.fixedBodiesToWatch.filter(([,t])=>t!==e),i.rapierWorld.removeRigidBody(e),t.rigidBody=void 0}dispatch(t){if(!1===a(this.shared,this.condition))return!1;this.clone=t,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(t=>window.clearTimeout(t))}};i("Create",({data:t,page:e,eventManager:i,shared:a,actionCondition:r})=>new p(t,e,i.controlsManager,a,r)),i("Destroy",({data:t,page:e,eventManager:i,shared:a,actionCondition:r})=>new y(t,e,i.controlsManager,a,r)),o("create-destroy");
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./runtime-chunk-TXYV34UR.js";import"./runtime-chunk-VUJSHZTK.js";import{a as t}from"./runtime-chunk-UIRA2CWJ.js";import"./runtime-chunk-CDN5RLZC.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-BVVSZMXD.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);}",S=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 A(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-A(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-A(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),R=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}},z=(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);}"],[z,"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=R.AUTO_SIZE,height:r=R.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 R(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 R.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=z,worldFocusDistance:r,worldFocusRange:n,focusDistance:i=0,focalLength:a=.1,focusRange:l=a,bokehScale:u=1,width:c=R.AUTO_SIZE,height:f=R.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 S(!1,!0)),this.bokehNearBasePass.fullscreenMaterial.cocBuffer=this.renderTargetCoCBlurred.texture,this.bokehNearFillPass=new L(new S(!0,!0)),this.bokehNearFillPass.fullscreenMaterial.cocBuffer=this.renderTargetCoCBlurred.texture,this.bokehFarBasePass=new L(new S(!1,!1)),this.bokehFarBasePass.fullscreenMaterial.cocBuffer=this.renderTargetCoC.texture,this.bokehFarFillPass=new L(new S(!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);
|
|
1
|
+
import{a as e}from"./runtime-chunk-HGPSGN65.js";import"./runtime-chunk-JTXN6DIH.js";import{a as t}from"./runtime-chunk-UIRA2CWJ.js";import"./runtime-chunk-IBVB6UVI.js";import{$c as r,Db as n,Dc as i,Fc as s,Hc as a,Ib as l,Lc as o,Nc as h,Ne as u,Qc as c,Vc as f,Xc as d,ee as g,fd as p,m as v,nd as y,qa as m,ua as x,ye as w,ze as b}from"./runtime-chunk-KPOUV3HD.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);}",S=class extends g{constructor(e=!1,t=!1){super({name:"BokehMaterial",defines:{PASS:e?"2":"1"},uniforms:{kernel64:new u(null),kernel16:new u(null),inputBuffer:new u(null),cocBuffer:new u(null),texelSize:new u(new s),scale:new u(1)},blending:v,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 o(e[t++],e[t++],e[t++],e[t++]));for(let e=0;e<32;)s.push(new o(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 A(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 u(null),focusDistance:new u(0),focusRange:new u(0),cameraNear:new u(.3),cameraFar:new u(1e3)},blending:v,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-A(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-A(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 s){super({name:"KawaseBlurMaterial",uniforms:{inputBuffer:new u(null),texelSize:new u(new s),halfTexelSize:new u(new s),kernel:new u(0),scale:new u(1)},blending:v,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 u(e),inputBuffer:new u(null),strength:new u(1)},blending:v,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 d,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 y(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 r(e,3)),D.setAttribute("uv",new r(t,2))):(D.addAttribute("position",new r(e,3)),D.addAttribute("uv",new r(t,2)))}return D}(),e),t.frustumCulled=!1,null===this.scene&&(this.scene=new d),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 d||t===this.renderer)continue;this[e].dispose()}}}},E=(new f,-1),z=class extends i{constructor(e,t=E,r=E,n=1){super(),this.resizable=e,this.base=new s(1,1),this.preferred=new s(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 i{constructor(e,t=1){super(),this.f=e,this.opacity=new u(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 i{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 d||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 h(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===l&&(this.renderTargetA.texture.colorSpace=l,this.renderTargetB.texture.colorSpace=l))}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:s=.1,focusRange:l=s,bokehScale:o=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 u(null)],["farColorBuffer",new u(null)],["nearCoCBuffer",new u(null)],["scale",new u(1)]])}),F(this,"targetObject"),this.camera=e,this.renderTarget=new h(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 S(!1,!0)),this.bokehNearBasePass.fullscreenMaterial.cocBuffer=this.renderTargetCoCBlurred.texture,this.bokehNearFillPass=new L(new S(!0,!0)),this.bokehNearFillPass.fullscreenMaterial.cocBuffer=this.renderTargetCoCBlurred.texture,this.bokehFarBasePass=new L(new S(!1,!1)),this.bokehFarBasePass.fullscreenMaterial.cocBuffer=this.renderTargetCoC.texture,this.bokehFarFillPass=new L(new S(!0,!1)),this.bokehFarFillPass.fullscreenMaterial.cocBuffer=this.renderTargetCoC.texture,this.target=new a,this.bokehScale=o}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===l&&(this.renderTarget.texture.colorSpace=l,this.renderTargetNear.texture.colorSpace=l,this.renderTargetFar.texture.colorSpace=l,this.renderTargetMasked.texture.colorSpace=l))}};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 a,new c,new f,Math.PI,new a,new a,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 j=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 j);
|
|
Binary file
|
|
Binary file
|