@babylonjs/viewer 7.23.0 → 7.23.1-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/dist/babylon-viewer.esm.js +2 -0
  2. package/dist/babylon-viewer.esm.js.map +1 -0
  3. package/dist/babylon-viewer.esm.min.js +2 -0
  4. package/dist/babylon-viewer.esm.min.js.map +1 -0
  5. package/dist/chunks/EXT_lights_image_based-D3ZBYLgC.esm.js +170 -0
  6. package/dist/chunks/EXT_lights_image_based-D3ZBYLgC.esm.js.map +1 -0
  7. package/dist/chunks/EXT_lights_image_based-DyWZGFdC.esm.min.js +2 -0
  8. package/dist/chunks/EXT_lights_image_based-DyWZGFdC.esm.min.js.map +1 -0
  9. package/dist/chunks/EXT_mesh_gpu_instancing-BsSuxC3A.esm.js +86 -0
  10. package/dist/chunks/EXT_mesh_gpu_instancing-BsSuxC3A.esm.js.map +1 -0
  11. package/dist/chunks/EXT_mesh_gpu_instancing-DtTWXKzv.esm.min.js +2 -0
  12. package/dist/chunks/EXT_mesh_gpu_instancing-DtTWXKzv.esm.min.js.map +1 -0
  13. package/dist/chunks/EXT_meshopt_compression-BncKn2rD.esm.js +134 -0
  14. package/dist/chunks/EXT_meshopt_compression-BncKn2rD.esm.js.map +1 -0
  15. package/dist/chunks/EXT_meshopt_compression-CjW8GcrA.esm.min.js +2 -0
  16. package/dist/chunks/EXT_meshopt_compression-CjW8GcrA.esm.min.js.map +1 -0
  17. package/dist/chunks/EXT_texture_avif-DLrVqqUz.esm.min.js +2 -0
  18. package/dist/chunks/EXT_texture_avif-DLrVqqUz.esm.min.js.map +1 -0
  19. package/dist/chunks/EXT_texture_avif-wG4GNQfZ.esm.js +44 -0
  20. package/dist/chunks/EXT_texture_avif-wG4GNQfZ.esm.js.map +1 -0
  21. package/dist/chunks/EXT_texture_webp-BccV6Svg.esm.js +43 -0
  22. package/dist/chunks/EXT_texture_webp-BccV6Svg.esm.js.map +1 -0
  23. package/dist/chunks/EXT_texture_webp-DNAe2ii8.esm.min.js +2 -0
  24. package/dist/chunks/EXT_texture_webp-DNAe2ii8.esm.min.js.map +1 -0
  25. package/dist/chunks/ExtrasAsMetadata-BA0NyQBn.esm.js +64 -0
  26. package/dist/chunks/ExtrasAsMetadata-BA0NyQBn.esm.js.map +1 -0
  27. package/dist/chunks/ExtrasAsMetadata-BN02lRw7.esm.min.js +2 -0
  28. package/dist/chunks/ExtrasAsMetadata-BN02lRw7.esm.min.js.map +1 -0
  29. package/dist/chunks/KHR_animation_pointer-B7mk-XJN.esm.min.js +2 -0
  30. package/dist/chunks/KHR_animation_pointer-B7mk-XJN.esm.min.js.map +1 -0
  31. package/dist/chunks/KHR_animation_pointer-BFFpQV4X.esm.js +343 -0
  32. package/dist/chunks/KHR_animation_pointer-BFFpQV4X.esm.js.map +1 -0
  33. package/dist/chunks/KHR_draco_mesh_compression-7zqRIpZt.esm.js +610 -0
  34. package/dist/chunks/KHR_draco_mesh_compression-7zqRIpZt.esm.js.map +1 -0
  35. package/dist/chunks/KHR_draco_mesh_compression-Bw4rV4ln.esm.min.js +2 -0
  36. package/dist/chunks/KHR_draco_mesh_compression-Bw4rV4ln.esm.min.js.map +1 -0
  37. package/dist/chunks/KHR_interactivity-Bd_6hpGb.esm.js +4033 -0
  38. package/dist/chunks/KHR_interactivity-Bd_6hpGb.esm.js.map +1 -0
  39. package/dist/chunks/KHR_interactivity-DIJyLERv.esm.min.js +2 -0
  40. package/dist/chunks/KHR_interactivity-DIJyLERv.esm.min.js.map +1 -0
  41. package/dist/chunks/KHR_lights_punctual-CFUUYlNK.esm.min.js +2 -0
  42. package/dist/chunks/KHR_lights_punctual-CFUUYlNK.esm.min.js.map +1 -0
  43. package/dist/chunks/KHR_lights_punctual-XL2dnY2h.esm.js +1253 -0
  44. package/dist/chunks/KHR_lights_punctual-XL2dnY2h.esm.js.map +1 -0
  45. package/dist/chunks/KHR_materials_anisotropy-04SftzV0.esm.min.js +2 -0
  46. package/dist/chunks/KHR_materials_anisotropy-04SftzV0.esm.min.js.map +1 -0
  47. package/dist/chunks/KHR_materials_anisotropy-gAd08wDG.esm.js +64 -0
  48. package/dist/chunks/KHR_materials_anisotropy-gAd08wDG.esm.js.map +1 -0
  49. package/dist/chunks/KHR_materials_clearcoat-9GQaVx6k.esm.min.js +2 -0
  50. package/dist/chunks/KHR_materials_clearcoat-9GQaVx6k.esm.min.js.map +1 -0
  51. package/dist/chunks/KHR_materials_clearcoat-Cv_yIIaW.esm.js +96 -0
  52. package/dist/chunks/KHR_materials_clearcoat-Cv_yIIaW.esm.js.map +1 -0
  53. package/dist/chunks/KHR_materials_diffuse_transmission-Dj9EU7q2.esm.js +96 -0
  54. package/dist/chunks/KHR_materials_diffuse_transmission-Dj9EU7q2.esm.js.map +1 -0
  55. package/dist/chunks/KHR_materials_diffuse_transmission-fmv70uuH.esm.min.js +2 -0
  56. package/dist/chunks/KHR_materials_diffuse_transmission-fmv70uuH.esm.min.js.map +1 -0
  57. package/dist/chunks/KHR_materials_dispersion-CCzM2Avp.esm.min.js +2 -0
  58. package/dist/chunks/KHR_materials_dispersion-CCzM2Avp.esm.min.js.map +1 -0
  59. package/dist/chunks/KHR_materials_dispersion-JNxGdAqc.esm.js +63 -0
  60. package/dist/chunks/KHR_materials_dispersion-JNxGdAqc.esm.js.map +1 -0
  61. package/dist/chunks/KHR_materials_emissive_strength-D25-ItKl.esm.min.js +2 -0
  62. package/dist/chunks/KHR_materials_emissive_strength-D25-ItKl.esm.min.js.map +1 -0
  63. package/dist/chunks/KHR_materials_emissive_strength-DlkptyaM.esm.js +55 -0
  64. package/dist/chunks/KHR_materials_emissive_strength-DlkptyaM.esm.js.map +1 -0
  65. package/dist/chunks/KHR_materials_ior-Jqj5Ph_V.esm.min.js +2 -0
  66. package/dist/chunks/KHR_materials_ior-Jqj5Ph_V.esm.min.js.map +1 -0
  67. package/dist/chunks/KHR_materials_ior-KGZBae4Y.esm.js +64 -0
  68. package/dist/chunks/KHR_materials_ior-KGZBae4Y.esm.js.map +1 -0
  69. package/dist/chunks/KHR_materials_iridescence-ByOHUtdO.esm.min.js +2 -0
  70. package/dist/chunks/KHR_materials_iridescence-ByOHUtdO.esm.min.js.map +1 -0
  71. package/dist/chunks/KHR_materials_iridescence-FmAV1QDy.esm.js +72 -0
  72. package/dist/chunks/KHR_materials_iridescence-FmAV1QDy.esm.js.map +1 -0
  73. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BiqCrcmj.esm.min.js +2 -0
  74. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BiqCrcmj.esm.min.js.map +1 -0
  75. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CRnlTYx-.esm.js +81 -0
  76. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CRnlTYx-.esm.js.map +1 -0
  77. package/dist/chunks/KHR_materials_sheen-7li6Dlkh.esm.js +85 -0
  78. package/dist/chunks/KHR_materials_sheen-7li6Dlkh.esm.js.map +1 -0
  79. package/dist/chunks/KHR_materials_sheen-BL2qM8Rp.esm.min.js +2 -0
  80. package/dist/chunks/KHR_materials_sheen-BL2qM8Rp.esm.min.js.map +1 -0
  81. package/dist/chunks/KHR_materials_specular-C2ks7gPC.esm.js +75 -0
  82. package/dist/chunks/KHR_materials_specular-C2ks7gPC.esm.js.map +1 -0
  83. package/dist/chunks/KHR_materials_specular-DCAt3T_l.esm.min.js +2 -0
  84. package/dist/chunks/KHR_materials_specular-DCAt3T_l.esm.min.js.map +1 -0
  85. package/dist/chunks/KHR_materials_transmission-B8w41MT6.esm.min.js +2 -0
  86. package/dist/chunks/KHR_materials_transmission-B8w41MT6.esm.min.js.map +1 -0
  87. package/dist/chunks/KHR_materials_transmission-DRL9BE9q.esm.js +307 -0
  88. package/dist/chunks/KHR_materials_transmission-DRL9BE9q.esm.js.map +1 -0
  89. package/dist/chunks/KHR_materials_unlit-B-il-TRX.esm.min.js +2 -0
  90. package/dist/chunks/KHR_materials_unlit-B-il-TRX.esm.min.js.map +1 -0
  91. package/dist/chunks/KHR_materials_unlit-B44Oqon6.esm.js +74 -0
  92. package/dist/chunks/KHR_materials_unlit-B44Oqon6.esm.js.map +1 -0
  93. package/dist/chunks/KHR_materials_variants-BCdEgpch.esm.js +238 -0
  94. package/dist/chunks/KHR_materials_variants-BCdEgpch.esm.js.map +1 -0
  95. package/dist/chunks/KHR_materials_variants-ClQElTeo.esm.min.js +2 -0
  96. package/dist/chunks/KHR_materials_variants-ClQElTeo.esm.min.js.map +1 -0
  97. package/dist/chunks/KHR_materials_volume-BXv3M95S.esm.min.js +2 -0
  98. package/dist/chunks/KHR_materials_volume-BXv3M95S.esm.min.js.map +1 -0
  99. package/dist/chunks/KHR_materials_volume-BuUrRniE.esm.js +88 -0
  100. package/dist/chunks/KHR_materials_volume-BuUrRniE.esm.js.map +1 -0
  101. package/dist/chunks/KHR_mesh_quantization-WPngIGGs.esm.min.js +2 -0
  102. package/dist/chunks/KHR_mesh_quantization-WPngIGGs.esm.min.js.map +1 -0
  103. package/dist/chunks/KHR_mesh_quantization-p2nyy6Ym.esm.js +26 -0
  104. package/dist/chunks/KHR_mesh_quantization-p2nyy6Ym.esm.js.map +1 -0
  105. package/dist/chunks/KHR_texture_basisu-BHsmOUDV.esm.js +43 -0
  106. package/dist/chunks/KHR_texture_basisu-BHsmOUDV.esm.js.map +1 -0
  107. package/dist/chunks/KHR_texture_basisu-DObdWvzE.esm.min.js +2 -0
  108. package/dist/chunks/KHR_texture_basisu-DObdWvzE.esm.min.js.map +1 -0
  109. package/dist/chunks/KHR_texture_transform-B7NCdTO_.esm.js +63 -0
  110. package/dist/chunks/KHR_texture_transform-B7NCdTO_.esm.js.map +1 -0
  111. package/dist/chunks/KHR_texture_transform-D6Ee6UiP.esm.min.js +2 -0
  112. package/dist/chunks/KHR_texture_transform-D6Ee6UiP.esm.min.js.map +1 -0
  113. package/dist/chunks/KHR_xmp_json_ld-Coh_hfCi.esm.js +51 -0
  114. package/dist/chunks/KHR_xmp_json_ld-Coh_hfCi.esm.js.map +1 -0
  115. package/dist/chunks/KHR_xmp_json_ld-ijOY8DMb.esm.min.js +2 -0
  116. package/dist/chunks/KHR_xmp_json_ld-ijOY8DMb.esm.min.js.map +1 -0
  117. package/dist/chunks/MSFT_audio_emitter-CGjUSgI2.esm.min.js +2 -0
  118. package/dist/chunks/MSFT_audio_emitter-CGjUSgI2.esm.min.js.map +1 -0
  119. package/dist/chunks/MSFT_audio_emitter-fFvTv2YK.esm.js +1600 -0
  120. package/dist/chunks/MSFT_audio_emitter-fFvTv2YK.esm.js.map +1 -0
  121. package/dist/chunks/MSFT_lod-Bql1icOF.esm.js +337 -0
  122. package/dist/chunks/MSFT_lod-Bql1icOF.esm.js.map +1 -0
  123. package/dist/chunks/MSFT_lod-Du_akN0I.esm.min.js +2 -0
  124. package/dist/chunks/MSFT_lod-Du_akN0I.esm.min.js.map +1 -0
  125. package/dist/chunks/MSFT_minecraftMesh-Brch3HUo.esm.min.js +2 -0
  126. package/dist/chunks/MSFT_minecraftMesh-Brch3HUo.esm.min.js.map +1 -0
  127. package/dist/chunks/MSFT_minecraftMesh-jrYC8YE9.esm.js +46 -0
  128. package/dist/chunks/MSFT_minecraftMesh-jrYC8YE9.esm.js.map +1 -0
  129. package/dist/chunks/MSFT_sRGBFactors-Dp3CtJ9B.esm.js +47 -0
  130. package/dist/chunks/MSFT_sRGBFactors-Dp3CtJ9B.esm.js.map +1 -0
  131. package/dist/chunks/MSFT_sRGBFactors-LZM-HF4P.esm.min.js +2 -0
  132. package/dist/chunks/MSFT_sRGBFactors-LZM-HF4P.esm.min.js.map +1 -0
  133. package/dist/chunks/assetContainer-Bo08Fxv3.esm.min.js +2 -0
  134. package/dist/chunks/assetContainer-Bo08Fxv3.esm.min.js.map +1 -0
  135. package/dist/chunks/assetContainer-DVOdWL9b.esm.js +1598 -0
  136. package/dist/chunks/assetContainer-DVOdWL9b.esm.js.map +1 -0
  137. package/dist/chunks/basisTextureLoader-C2Or-Jx_.esm.min.js +2 -0
  138. package/dist/chunks/basisTextureLoader-C2Or-Jx_.esm.min.js.map +1 -0
  139. package/dist/chunks/basisTextureLoader-DiYg6uNN.esm.js +600 -0
  140. package/dist/chunks/basisTextureLoader-DiYg6uNN.esm.js.map +1 -0
  141. package/dist/chunks/ddsTextureLoader-CDlttCBi.esm.js +87 -0
  142. package/dist/chunks/ddsTextureLoader-CDlttCBi.esm.js.map +1 -0
  143. package/dist/chunks/ddsTextureLoader-T_I1TPiz.esm.min.js +2 -0
  144. package/dist/chunks/ddsTextureLoader-T_I1TPiz.esm.min.js.map +1 -0
  145. package/dist/chunks/default.fragment-C8ZCxgTK.esm.js +515 -0
  146. package/dist/chunks/default.fragment-C8ZCxgTK.esm.js.map +1 -0
  147. package/dist/chunks/default.fragment-Conpp30r.esm.js +452 -0
  148. package/dist/chunks/default.fragment-Conpp30r.esm.js.map +1 -0
  149. package/dist/chunks/default.fragment-DTP98j1l.esm.min.js +2 -0
  150. package/dist/chunks/default.fragment-DTP98j1l.esm.min.js.map +1 -0
  151. package/dist/chunks/default.fragment-DjistPBR.esm.min.js +2 -0
  152. package/dist/chunks/default.fragment-DjistPBR.esm.min.js.map +1 -0
  153. package/dist/chunks/default.vertex-BSCjzhXG.esm.js +178 -0
  154. package/dist/chunks/default.vertex-BSCjzhXG.esm.js.map +1 -0
  155. package/dist/chunks/default.vertex-Ba7zxY0T.esm.min.js +2 -0
  156. package/dist/chunks/default.vertex-Ba7zxY0T.esm.min.js.map +1 -0
  157. package/dist/chunks/default.vertex-CPurFhOJ.esm.js +199 -0
  158. package/dist/chunks/default.vertex-CPurFhOJ.esm.js.map +1 -0
  159. package/dist/chunks/default.vertex-D_4jDtBx.esm.min.js +2 -0
  160. package/dist/chunks/default.vertex-D_4jDtBx.esm.min.js.map +1 -0
  161. package/dist/chunks/defaultUboDeclaration-BjT2yBnm.esm.js +15 -0
  162. package/dist/chunks/defaultUboDeclaration-BjT2yBnm.esm.js.map +1 -0
  163. package/dist/chunks/defaultUboDeclaration-BuAk9gJA.esm.min.js +2 -0
  164. package/dist/chunks/defaultUboDeclaration-BuAk9gJA.esm.min.js.map +1 -0
  165. package/dist/chunks/defaultUboDeclaration-CC8YfLoS.esm.min.js +2 -0
  166. package/dist/chunks/defaultUboDeclaration-CC8YfLoS.esm.min.js.map +1 -0
  167. package/dist/chunks/defaultUboDeclaration-ClvuiT6M.esm.js +13 -0
  168. package/dist/chunks/defaultUboDeclaration-ClvuiT6M.esm.js.map +1 -0
  169. package/dist/chunks/envTextureLoader-DuE-52NK.esm.min.js +2 -0
  170. package/dist/chunks/envTextureLoader-DuE-52NK.esm.min.js.map +1 -0
  171. package/dist/chunks/envTextureLoader-ENMUumOz.esm.js +63 -0
  172. package/dist/chunks/envTextureLoader-ENMUumOz.esm.js.map +1 -0
  173. package/dist/chunks/environmentTextureTools-Cw-ZbYYv.esm.js +381 -0
  174. package/dist/chunks/environmentTextureTools-Cw-ZbYYv.esm.js.map +1 -0
  175. package/dist/chunks/environmentTextureTools-mWXMV1Cr.esm.min.js +2 -0
  176. package/dist/chunks/environmentTextureTools-mWXMV1Cr.esm.min.js.map +1 -0
  177. package/dist/chunks/exrTextureLoader-9ioAK1Ph.esm.js +1682 -0
  178. package/dist/chunks/exrTextureLoader-9ioAK1Ph.esm.js.map +1 -0
  179. package/dist/chunks/exrTextureLoader-zc2N62c3.esm.min.js +2 -0
  180. package/dist/chunks/exrTextureLoader-zc2N62c3.esm.min.js.map +1 -0
  181. package/dist/chunks/fogFragment-DLguActo.esm.min.js +2 -0
  182. package/dist/chunks/fogFragment-DLguActo.esm.min.js.map +1 -0
  183. package/dist/chunks/fogFragment-sACeXatv.esm.js +102 -0
  184. package/dist/chunks/fogFragment-sACeXatv.esm.js.map +1 -0
  185. package/dist/chunks/glTFLoader-BuxqXvJ-.esm.min.js +2 -0
  186. package/dist/chunks/glTFLoader-BuxqXvJ-.esm.min.js.map +1 -0
  187. package/dist/chunks/glTFLoader-DB7AOurF.esm.js +7552 -0
  188. package/dist/chunks/glTFLoader-DB7AOurF.esm.js.map +1 -0
  189. package/dist/chunks/glTFLoaderAnimation-BWhMcDgk.esm.min.js +2 -0
  190. package/dist/chunks/glTFLoaderAnimation-BWhMcDgk.esm.min.js.map +1 -0
  191. package/dist/chunks/glTFLoaderAnimation-DK5fvCTY.esm.js +77 -0
  192. package/dist/chunks/glTFLoaderAnimation-DK5fvCTY.esm.js.map +1 -0
  193. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
  194. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
  195. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
  196. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
  197. package/dist/chunks/harmonicsFunctions-BMUi3P6Y.esm.js +35 -0
  198. package/dist/chunks/harmonicsFunctions-BMUi3P6Y.esm.js.map +1 -0
  199. package/dist/chunks/harmonicsFunctions-BWj3xZKa.esm.min.js +2 -0
  200. package/dist/chunks/harmonicsFunctions-BWj3xZKa.esm.min.js.map +1 -0
  201. package/dist/chunks/harmonicsFunctions-D9GUclWs.esm.min.js +2 -0
  202. package/dist/chunks/harmonicsFunctions-D9GUclWs.esm.min.js.map +1 -0
  203. package/dist/chunks/harmonicsFunctions-DQngcILt.esm.js +34 -0
  204. package/dist/chunks/harmonicsFunctions-DQngcILt.esm.js.map +1 -0
  205. package/dist/chunks/hdrTextureLoader-3TOTpFyV.esm.min.js +2 -0
  206. package/dist/chunks/hdrTextureLoader-3TOTpFyV.esm.min.js.map +1 -0
  207. package/dist/chunks/hdrTextureLoader-zIHMNTOp.esm.js +252 -0
  208. package/dist/chunks/hdrTextureLoader-zIHMNTOp.esm.js.map +1 -0
  209. package/dist/chunks/helperFunctions-B_yzbgEv.esm.min.js +2 -0
  210. package/dist/chunks/helperFunctions-B_yzbgEv.esm.min.js.map +1 -0
  211. package/dist/chunks/helperFunctions-BjYz-6zr.esm.js +108 -0
  212. package/dist/chunks/helperFunctions-BjYz-6zr.esm.js.map +1 -0
  213. package/dist/chunks/helperFunctions-CXLST6hZ.esm.js +80 -0
  214. package/dist/chunks/helperFunctions-CXLST6hZ.esm.js.map +1 -0
  215. package/dist/chunks/helperFunctions-DTBzTIjJ.esm.min.js +2 -0
  216. package/dist/chunks/helperFunctions-DTBzTIjJ.esm.min.js.map +1 -0
  217. package/dist/chunks/index-CTNAO7X0.esm.js +81630 -0
  218. package/dist/chunks/index-CTNAO7X0.esm.js.map +1 -0
  219. package/dist/chunks/index-DYqHhEAk.esm.min.js +57 -0
  220. package/dist/chunks/index-DYqHhEAk.esm.min.js.map +1 -0
  221. package/dist/chunks/ktxTextureLoader-9AGBpjf1.esm.js +814 -0
  222. package/dist/chunks/ktxTextureLoader-9AGBpjf1.esm.js.map +1 -0
  223. package/dist/chunks/ktxTextureLoader-DbSU4wBV.esm.min.js +2 -0
  224. package/dist/chunks/ktxTextureLoader-DbSU4wBV.esm.min.js.map +1 -0
  225. package/dist/chunks/logDepthDeclaration-BCN89cGc.esm.min.js +2 -0
  226. package/dist/chunks/logDepthDeclaration-BCN89cGc.esm.min.js.map +1 -0
  227. package/dist/chunks/logDepthDeclaration-CZCatKgj.esm.js +42 -0
  228. package/dist/chunks/logDepthDeclaration-CZCatKgj.esm.js.map +1 -0
  229. package/dist/chunks/logDepthDeclaration-_gJVcKC2.esm.js +35 -0
  230. package/dist/chunks/logDepthDeclaration-_gJVcKC2.esm.js.map +1 -0
  231. package/dist/chunks/logDepthDeclaration-cpc5vyCy.esm.min.js +2 -0
  232. package/dist/chunks/logDepthDeclaration-cpc5vyCy.esm.min.js.map +1 -0
  233. package/dist/chunks/logDepthVertex-7sCVTIjr.esm.min.js +2 -0
  234. package/dist/chunks/logDepthVertex-7sCVTIjr.esm.min.js.map +1 -0
  235. package/dist/chunks/logDepthVertex-B09oc-mi.esm.js +77 -0
  236. package/dist/chunks/logDepthVertex-B09oc-mi.esm.js.map +1 -0
  237. package/dist/chunks/logDepthVertex-Bq3-XtSp.esm.min.js +2 -0
  238. package/dist/chunks/logDepthVertex-Bq3-XtSp.esm.min.js.map +1 -0
  239. package/dist/chunks/logDepthVertex-DZoye-59.esm.js +605 -0
  240. package/dist/chunks/logDepthVertex-DZoye-59.esm.js.map +1 -0
  241. package/dist/chunks/mainUVVaryingDeclaration-LHNQQPPQ.esm.js +11 -0
  242. package/dist/chunks/mainUVVaryingDeclaration-LHNQQPPQ.esm.js.map +1 -0
  243. package/dist/chunks/mainUVVaryingDeclaration-wmRFnah8.esm.min.js +2 -0
  244. package/dist/chunks/mainUVVaryingDeclaration-wmRFnah8.esm.min.js.map +1 -0
  245. package/dist/chunks/objFileLoader-BvWwH6aj.esm.js +1280 -0
  246. package/dist/chunks/objFileLoader-BvWwH6aj.esm.js.map +1 -0
  247. package/dist/chunks/objFileLoader-LDP87u1T.esm.min.js +2 -0
  248. package/dist/chunks/objFileLoader-LDP87u1T.esm.min.js.map +1 -0
  249. package/dist/chunks/oitFragment-BAVtrG6V.esm.min.js +2 -0
  250. package/dist/chunks/oitFragment-BAVtrG6V.esm.min.js.map +1 -0
  251. package/dist/chunks/oitFragment-BqzVjWja.esm.js +1210 -0
  252. package/dist/chunks/oitFragment-BqzVjWja.esm.js.map +1 -0
  253. package/dist/chunks/oitFragment-CIelz994.esm.js +1166 -0
  254. package/dist/chunks/oitFragment-CIelz994.esm.js.map +1 -0
  255. package/dist/chunks/oitFragment-P20Uiy73.esm.min.js +2 -0
  256. package/dist/chunks/oitFragment-P20Uiy73.esm.min.js.map +1 -0
  257. package/dist/chunks/pass.fragment-D-67YTNJ.esm.min.js +2 -0
  258. package/dist/chunks/pass.fragment-D-67YTNJ.esm.min.js.map +1 -0
  259. package/dist/chunks/pass.fragment-ke3_LMQY.esm.js +15 -0
  260. package/dist/chunks/pass.fragment-ke3_LMQY.esm.js.map +1 -0
  261. package/dist/chunks/pbr.fragment-3QJykQmh.esm.js +3228 -0
  262. package/dist/chunks/pbr.fragment-3QJykQmh.esm.js.map +1 -0
  263. package/dist/chunks/pbr.fragment-BfhoPEE4.esm.js +3163 -0
  264. package/dist/chunks/pbr.fragment-BfhoPEE4.esm.js.map +1 -0
  265. package/dist/chunks/pbr.fragment-BpCKAJQO.esm.min.js +2 -0
  266. package/dist/chunks/pbr.fragment-BpCKAJQO.esm.min.js.map +1 -0
  267. package/dist/chunks/pbr.fragment-Buc8F3ii.esm.min.js +2 -0
  268. package/dist/chunks/pbr.fragment-Buc8F3ii.esm.min.js.map +1 -0
  269. package/dist/chunks/pbr.vertex-Bwl6238q.esm.min.js +2 -0
  270. package/dist/chunks/pbr.vertex-Bwl6238q.esm.min.js.map +1 -0
  271. package/dist/chunks/pbr.vertex-COtog_7X.esm.js +335 -0
  272. package/dist/chunks/pbr.vertex-COtog_7X.esm.js.map +1 -0
  273. package/dist/chunks/pbr.vertex-CX-ksiMG.esm.min.js +2 -0
  274. package/dist/chunks/pbr.vertex-CX-ksiMG.esm.min.js.map +1 -0
  275. package/dist/chunks/pbr.vertex-WxxbIMZL.esm.js +208 -0
  276. package/dist/chunks/pbr.vertex-WxxbIMZL.esm.js.map +1 -0
  277. package/dist/chunks/postprocess.vertex-6VuephE3.esm.min.js +2 -0
  278. package/dist/chunks/postprocess.vertex-6VuephE3.esm.min.js.map +1 -0
  279. package/dist/chunks/postprocess.vertex-y9rNSbFH.esm.js +20 -0
  280. package/dist/chunks/postprocess.vertex-y9rNSbFH.esm.js.map +1 -0
  281. package/dist/chunks/rawTexture-BjAjz6eU.esm.min.js +2 -0
  282. package/dist/chunks/rawTexture-BjAjz6eU.esm.min.js.map +1 -0
  283. package/dist/chunks/rawTexture-DzCCPFKA.esm.js +562 -0
  284. package/dist/chunks/rawTexture-DzCCPFKA.esm.js.map +1 -0
  285. package/dist/chunks/rgbdDecode.fragment-B2z-Bt71.esm.js +17 -0
  286. package/dist/chunks/rgbdDecode.fragment-B2z-Bt71.esm.js.map +1 -0
  287. package/dist/chunks/rgbdDecode.fragment-CdzoW-6f.esm.min.js +2 -0
  288. package/dist/chunks/rgbdDecode.fragment-CdzoW-6f.esm.min.js.map +1 -0
  289. package/dist/chunks/rgbdDecode.fragment-DrLvcO8Q.esm.js +17 -0
  290. package/dist/chunks/rgbdDecode.fragment-DrLvcO8Q.esm.js.map +1 -0
  291. package/dist/chunks/rgbdDecode.fragment-DuXK_20s.esm.min.js +2 -0
  292. package/dist/chunks/rgbdDecode.fragment-DuXK_20s.esm.min.js.map +1 -0
  293. package/dist/chunks/rgbdEncode.fragment-B8TjBZ9S.esm.js +17 -0
  294. package/dist/chunks/rgbdEncode.fragment-B8TjBZ9S.esm.js.map +1 -0
  295. package/dist/chunks/rgbdEncode.fragment-CGQHcoVr.esm.min.js +2 -0
  296. package/dist/chunks/rgbdEncode.fragment-CGQHcoVr.esm.min.js.map +1 -0
  297. package/dist/chunks/rgbdEncode.fragment-CHPMUGpL.esm.js +17 -0
  298. package/dist/chunks/rgbdEncode.fragment-CHPMUGpL.esm.js.map +1 -0
  299. package/dist/chunks/rgbdEncode.fragment-Ch8KaRMn.esm.min.js +2 -0
  300. package/dist/chunks/rgbdEncode.fragment-Ch8KaRMn.esm.min.js.map +1 -0
  301. package/dist/chunks/splatFileLoader-BOlEs8up.esm.min.js +2 -0
  302. package/dist/chunks/splatFileLoader-BOlEs8up.esm.min.js.map +1 -0
  303. package/dist/chunks/splatFileLoader-bjTdN6CH.esm.js +3137 -0
  304. package/dist/chunks/splatFileLoader-bjTdN6CH.esm.js.map +1 -0
  305. package/dist/chunks/standardMaterial-AtuI8LET.esm.min.js +2 -0
  306. package/dist/chunks/standardMaterial-AtuI8LET.esm.min.js.map +1 -0
  307. package/dist/chunks/standardMaterial-pkPTNFQZ.esm.js +1809 -0
  308. package/dist/chunks/standardMaterial-pkPTNFQZ.esm.js.map +1 -0
  309. package/dist/chunks/stlFileLoader-D_S8zIWi.esm.min.js +2 -0
  310. package/dist/chunks/stlFileLoader-D_S8zIWi.esm.min.js.map +1 -0
  311. package/dist/chunks/stlFileLoader-LAl8UbnA.esm.js +237 -0
  312. package/dist/chunks/stlFileLoader-LAl8UbnA.esm.js.map +1 -0
  313. package/dist/chunks/tgaTextureLoader-6J7hFLap.esm.min.js +2 -0
  314. package/dist/chunks/tgaTextureLoader-6J7hFLap.esm.min.js.map +1 -0
  315. package/dist/chunks/tgaTextureLoader-C9bFUsSu.esm.js +349 -0
  316. package/dist/chunks/tgaTextureLoader-C9bFUsSu.esm.js.map +1 -0
  317. package/dist/chunks/thinInstanceMesh-01jRjs2y.esm.js +314 -0
  318. package/dist/chunks/thinInstanceMesh-01jRjs2y.esm.js.map +1 -0
  319. package/dist/chunks/thinInstanceMesh-BkM6bBqz.esm.min.js +2 -0
  320. package/dist/chunks/thinInstanceMesh-BkM6bBqz.esm.min.js.map +1 -0
  321. package/dist/chunks/vertexColorMixing-BQURABk9.esm.js +528 -0
  322. package/dist/chunks/vertexColorMixing-BQURABk9.esm.js.map +1 -0
  323. package/dist/chunks/vertexColorMixing-DtyijcYJ.esm.min.js +2 -0
  324. package/dist/chunks/vertexColorMixing-DtyijcYJ.esm.min.js.map +1 -0
  325. package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
  326. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
  327. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
  328. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
  329. package/lib/index.d.ts +237 -0
  330. package/lib/index.js +871 -0
  331. package/lib/index.js.map +1 -0
  332. package/package.json +17 -27
  333. package/readme.md +35 -21
  334. package/configuration/configuration.d.ts +0 -107
  335. package/configuration/configuration.js +0 -16
  336. package/configuration/configuration.js.map +0 -1
  337. package/configuration/configurationCompatibility.d.ts +0 -8
  338. package/configuration/configurationCompatibility.js +0 -66
  339. package/configuration/configurationCompatibility.js.map +0 -1
  340. package/configuration/configurationContainer.d.ts +0 -10
  341. package/configuration/configurationContainer.js +0 -10
  342. package/configuration/configurationContainer.js.map +0 -1
  343. package/configuration/globals.d.ts +0 -6
  344. package/configuration/globals.js +0 -18
  345. package/configuration/globals.js.map +0 -1
  346. package/configuration/index.d.ts +0 -2
  347. package/configuration/index.js +0 -4
  348. package/configuration/index.js.map +0 -1
  349. package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
  350. package/configuration/interfaces/cameraConfiguration.js +0 -2
  351. package/configuration/interfaces/cameraConfiguration.js.map +0 -1
  352. package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
  353. package/configuration/interfaces/colorGradingConfiguration.js +0 -2
  354. package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
  355. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
  356. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
  357. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
  358. package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
  359. package/configuration/interfaces/environmentMapConfiguration.js +0 -2
  360. package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
  361. package/configuration/interfaces/groundConfiguration.d.ts +0 -24
  362. package/configuration/interfaces/groundConfiguration.js +0 -2
  363. package/configuration/interfaces/groundConfiguration.js.map +0 -1
  364. package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
  365. package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
  366. package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
  367. package/configuration/interfaces/index.d.ts +0 -15
  368. package/configuration/interfaces/index.js +0 -16
  369. package/configuration/interfaces/index.js.map +0 -1
  370. package/configuration/interfaces/lightConfiguration.d.ts +0 -60
  371. package/configuration/interfaces/lightConfiguration.js +0 -2
  372. package/configuration/interfaces/lightConfiguration.js.map +0 -1
  373. package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
  374. package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
  375. package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
  376. package/configuration/interfaces/modelConfiguration.d.ts +0 -65
  377. package/configuration/interfaces/modelConfiguration.js +0 -2
  378. package/configuration/interfaces/modelConfiguration.js.map +0 -1
  379. package/configuration/interfaces/observersConfiguration.d.ts +0 -5
  380. package/configuration/interfaces/observersConfiguration.js +0 -2
  381. package/configuration/interfaces/observersConfiguration.js.map +0 -1
  382. package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
  383. package/configuration/interfaces/sceneConfiguration.js +0 -2
  384. package/configuration/interfaces/sceneConfiguration.js.map +0 -1
  385. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
  386. package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
  387. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
  388. package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
  389. package/configuration/interfaces/skyboxConfiguration.js +0 -2
  390. package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
  391. package/configuration/interfaces/templateConfiguration.d.ts +0 -67
  392. package/configuration/interfaces/templateConfiguration.js +0 -2
  393. package/configuration/interfaces/templateConfiguration.js.map +0 -1
  394. package/configuration/interfaces/vrConfiguration.d.ts +0 -16
  395. package/configuration/interfaces/vrConfiguration.js +0 -2
  396. package/configuration/interfaces/vrConfiguration.js.map +0 -1
  397. package/configuration/loader.d.ts +0 -4
  398. package/configuration/loader.js +0 -17
  399. package/configuration/loader.js.map +0 -1
  400. package/configuration/mappers.d.ts +0 -43
  401. package/configuration/mappers.js +0 -192
  402. package/configuration/mappers.js.map +0 -1
  403. package/configuration/renderOnlyLoader.d.ts +0 -33
  404. package/configuration/renderOnlyLoader.js +0 -162
  405. package/configuration/renderOnlyLoader.js.map +0 -1
  406. package/configuration/types/default.d.ts +0 -6
  407. package/configuration/types/default.js +0 -121
  408. package/configuration/types/default.js.map +0 -1
  409. package/configuration/types/environmentMap.d.ts +0 -5
  410. package/configuration/types/environmentMap.js +0 -14
  411. package/configuration/types/environmentMap.js.map +0 -1
  412. package/configuration/types/extended.d.ts +0 -6
  413. package/configuration/types/extended.js +0 -317
  414. package/configuration/types/extended.js.map +0 -1
  415. package/configuration/types/index.d.ts +0 -14
  416. package/configuration/types/index.js +0 -51
  417. package/configuration/types/index.js.map +0 -1
  418. package/configuration/types/minimal.d.ts +0 -6
  419. package/configuration/types/minimal.js +0 -43
  420. package/configuration/types/minimal.js.map +0 -1
  421. package/configuration/types/renderOnlyDefault.d.ts +0 -30
  422. package/configuration/types/renderOnlyDefault.js +0 -31
  423. package/configuration/types/renderOnlyDefault.js.map +0 -1
  424. package/configuration/types/shadowLight.d.ts +0 -9
  425. package/configuration/types/shadowLight.js +0 -64
  426. package/configuration/types/shadowLight.js.map +0 -1
  427. package/helper/index.d.ts +0 -29
  428. package/helper/index.js +0 -66
  429. package/helper/index.js.map +0 -1
  430. package/index.d.ts +0 -30
  431. package/index.js +0 -46
  432. package/index.js.map +0 -1
  433. package/initializer.d.ts +0 -11
  434. package/initializer.js +0 -35
  435. package/initializer.js.map +0 -1
  436. package/interfaces.d.ts +0 -5
  437. package/interfaces.js +0 -7
  438. package/interfaces.js.map +0 -1
  439. package/labs/environmentSerializer.d.ts +0 -126
  440. package/labs/environmentSerializer.js +0 -191
  441. package/labs/environmentSerializer.js.map +0 -1
  442. package/labs/texture.d.ts +0 -183
  443. package/labs/texture.js +0 -351
  444. package/labs/texture.js.map +0 -1
  445. package/labs/viewerLabs.d.ts +0 -51
  446. package/labs/viewerLabs.js +0 -134
  447. package/labs/viewerLabs.js.map +0 -1
  448. package/loader/modelLoader.d.ts +0 -56
  449. package/loader/modelLoader.js +0 -199
  450. package/loader/modelLoader.js.map +0 -1
  451. package/loader/plugins/applyMaterialConfig.d.ts +0 -12
  452. package/loader/plugins/applyMaterialConfig.js +0 -16
  453. package/loader/plugins/applyMaterialConfig.js.map +0 -1
  454. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
  455. package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
  456. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
  457. package/loader/plugins/index.d.ts +0 -19
  458. package/loader/plugins/index.js +0 -44
  459. package/loader/plugins/index.js.map +0 -1
  460. package/loader/plugins/loaderPlugin.d.ts +0 -24
  461. package/loader/plugins/loaderPlugin.js +0 -2
  462. package/loader/plugins/loaderPlugin.js.map +0 -1
  463. package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
  464. package/loader/plugins/msftLodLoaderPlugin.js +0 -21
  465. package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
  466. package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
  467. package/loader/plugins/telemetryLoaderPlugin.js +0 -36
  468. package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
  469. package/managers/observablesManager.d.ts +0 -66
  470. package/managers/observablesManager.js +0 -35
  471. package/managers/observablesManager.js.map +0 -1
  472. package/managers/sceneManager.d.ts +0 -245
  473. package/managers/sceneManager.js +0 -1375
  474. package/managers/sceneManager.js.map +0 -1
  475. package/managers/telemetryManager.d.ts +0 -78
  476. package/managers/telemetryManager.js +0 -117
  477. package/managers/telemetryManager.js.map +0 -1
  478. package/model/modelAnimation.d.ts +0 -215
  479. package/model/modelAnimation.js +0 -237
  480. package/model/modelAnimation.js.map +0 -1
  481. package/model/viewerModel.d.ts +0 -233
  482. package/model/viewerModel.js +0 -673
  483. package/model/viewerModel.js.map +0 -1
  484. package/optimizer/custom/extended.d.ts +0 -13
  485. package/optimizer/custom/extended.js +0 -101
  486. package/optimizer/custom/extended.js.map +0 -1
  487. package/optimizer/custom/index.d.ts +0 -9
  488. package/optimizer/custom/index.js +0 -26
  489. package/optimizer/custom/index.js.map +0 -1
  490. package/renderOnlyIndex.d.ts +0 -11
  491. package/renderOnlyIndex.js +0 -18
  492. package/renderOnlyIndex.js.map +0 -1
  493. package/templating/eventManager.d.ts +0 -35
  494. package/templating/eventManager.js +0 -66
  495. package/templating/eventManager.js.map +0 -1
  496. package/templating/plugins/hdButtonPlugin.d.ts +0 -9
  497. package/templating/plugins/hdButtonPlugin.js +0 -21
  498. package/templating/plugins/hdButtonPlugin.js.map +0 -1
  499. package/templating/plugins/printButton.d.ts +0 -9
  500. package/templating/plugins/printButton.js +0 -40
  501. package/templating/plugins/printButton.js.map +0 -1
  502. package/templating/templateManager.d.ts +0 -197
  503. package/templating/templateManager.js +0 -561
  504. package/templating/templateManager.js.map +0 -1
  505. package/templating/viewerTemplatePlugin.d.ts +0 -21
  506. package/templating/viewerTemplatePlugin.js +0 -69
  507. package/templating/viewerTemplatePlugin.js.map +0 -1
  508. package/viewer/defaultViewer.d.ts +0 -130
  509. package/viewer/defaultViewer.js +0 -675
  510. package/viewer/defaultViewer.js.map +0 -1
  511. package/viewer/renderOnlyViewer.d.ts +0 -9
  512. package/viewer/renderOnlyViewer.js +0 -46
  513. package/viewer/renderOnlyViewer.js.map +0 -1
  514. package/viewer/viewer.d.ts +0 -258
  515. package/viewer/viewer.js +0 -783
  516. package/viewer/viewer.js.map +0 -1
  517. package/viewer/viewerManager.d.ts +0 -58
  518. package/viewer/viewerManager.js +0 -91
  519. package/viewer/viewerManager.js.map +0 -1
  520. package/viewer/viewerWithTemplate.d.ts +0 -9
  521. package/viewer/viewerWithTemplate.js +0 -20
  522. package/viewer/viewerWithTemplate.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rawTexture-DzCCPFKA.esm.js","sources":["../../../../../dev/core/dist/Engines/Extensions/engine.rawTexture.js","../../../../../dev/core/dist/Materials/Textures/rawTexture.js"],"sourcesContent":["import { InternalTexture } from \"../../Materials/Textures/internalTexture\";\nimport { Logger } from \"../../Misc/logger\";\nimport { Constants } from \"../constants\";\nimport { ThinEngine } from \"../thinEngine\";\nimport { IsExponentOfTwo } from \"../../Misc/tools.functions\";\nThinEngine.prototype.updateRawTexture = function (texture, data, format, invertY, compression = null, type = Constants.TEXTURETYPE_UNSIGNED_INT, useSRGBBuffer = false) {\n if (!texture) {\n return;\n }\n // Babylon's internalSizedFomat but gl's texImage2D internalFormat\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type, format, useSRGBBuffer);\n // Babylon's internalFormat but gl's texImage2D format\n const internalFormat = this._getInternalFormat(format);\n const textureType = this._getWebGLTextureType(type);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n texture.format = format;\n texture.type = type;\n texture.invertY = invertY;\n texture._compression = compression;\n }\n if (texture.width % 4 !== 0) {\n this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1);\n }\n if (compression && data) {\n this._gl.compressedTexImage2D(this._gl.TEXTURE_2D, 0, this.getCaps().s3tc[compression], texture.width, texture.height, 0, data);\n }\n else {\n this._gl.texImage2D(this._gl.TEXTURE_2D, 0, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, data);\n }\n if (texture.generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_2D);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n // this.resetTextureCache();\n texture.isReady = true;\n};\nThinEngine.prototype.createRawTexture = function (data, width, height, format, generateMipMaps, invertY, samplingMode, compression = null, type = Constants.TEXTURETYPE_UNSIGNED_INT, \n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ncreationFlags = 0, useSRGBBuffer = false) {\n const texture = new InternalTexture(this, 3 /* InternalTextureSource.Raw */);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.width = width;\n texture.height = height;\n texture.format = format;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.invertY = invertY;\n texture._compression = compression;\n texture.type = type;\n texture._useSRGBBuffer = this._getUseSRGBBuffer(useSRGBBuffer, !generateMipMaps);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n }\n this.updateRawTexture(texture, data, format, invertY, compression, type, texture._useSRGBBuffer);\n this._bindTextureDirectly(this._gl.TEXTURE_2D, texture, true);\n // Filters\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MAG_FILTER, filters.mag);\n this._gl.texParameteri(this._gl.TEXTURE_2D, this._gl.TEXTURE_MIN_FILTER, filters.min);\n if (generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_2D);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_2D, null);\n this._internalTexturesCache.push(texture);\n return texture;\n};\nThinEngine.prototype.createRawCubeTexture = function (data, size, format, type, generateMipMaps, invertY, samplingMode, compression = null) {\n const gl = this._gl;\n const texture = new InternalTexture(this, 8 /* InternalTextureSource.CubeRaw */);\n texture.isCube = true;\n texture.format = format;\n texture.type = type;\n if (!this._doNotHandleContextLost) {\n texture._bufferViewArray = data;\n }\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n }\n // Mipmap generation needs a sized internal format that is both color-renderable and texture-filterable\n if (textureType === gl.FLOAT && !this._caps.textureFloatLinearFiltering) {\n generateMipMaps = false;\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n Logger.Warn(\"Float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\");\n }\n else if (textureType === this._gl.HALF_FLOAT_OES && !this._caps.textureHalfFloatLinearFiltering) {\n generateMipMaps = false;\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n Logger.Warn(\"Half float texture filtering is not supported. Mipmap generation and sampling mode are forced to false and TEXTURE_NEAREST_SAMPLINGMODE, respectively.\");\n }\n else if (textureType === gl.FLOAT && !this._caps.textureFloatRender) {\n generateMipMaps = false;\n Logger.Warn(\"Render to float textures is not supported. Mipmap generation forced to false.\");\n }\n else if (textureType === gl.HALF_FLOAT && !this._caps.colorBufferFloat) {\n generateMipMaps = false;\n Logger.Warn(\"Render to half float textures is not supported. Mipmap generation forced to false.\");\n }\n const width = size;\n const height = width;\n texture.width = width;\n texture.height = height;\n texture.invertY = invertY;\n texture._compression = compression;\n // Double check on POT to generate Mips.\n const isPot = !this.needPOTTextures || (IsExponentOfTwo(texture.width) && IsExponentOfTwo(texture.height));\n if (!isPot) {\n generateMipMaps = false;\n }\n // Upload data if needed. The texture won't be ready until then.\n if (data) {\n this.updateRawCubeTexture(texture, data, format, type, invertY, compression);\n }\n else {\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n const level = 0;\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n if (compression) {\n gl.compressedTexImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, this.getCaps().s3tc[compression], texture.width, texture.height, 0, undefined);\n }\n else {\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, null);\n }\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, texture, true);\n // Filters\n if (data && generateMipMaps) {\n this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);\n }\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MAG_FILTER, filters.mag);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_MIN_FILTER, filters.min);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_CUBE_MAP, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n texture.isReady = true;\n return texture;\n};\nThinEngine.prototype.updateRawCubeTexture = function (texture, data, format, type, invertY, compression = null, level = 0) {\n texture._bufferViewArray = data;\n texture.format = format;\n texture.type = type;\n texture.invertY = invertY;\n texture._compression = compression;\n const gl = this._gl;\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n let needConversion = false;\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n needConversion = true;\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (texture.width % 4 !== 0) {\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 1);\n }\n // Data are known to be in +X +Y +Z -X -Y -Z\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n let faceData = data[faceIndex];\n if (compression) {\n gl.compressedTexImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, this.getCaps().s3tc[compression], texture.width, texture.height, 0, faceData);\n }\n else {\n if (needConversion) {\n faceData = _convertRGBtoRGBATextureData(faceData, texture.width, texture.height, type);\n }\n gl.texImage2D(gl.TEXTURE_CUBE_MAP_POSITIVE_X + faceIndex, level, internalSizedFomat, texture.width, texture.height, 0, internalFormat, textureType, faceData);\n }\n }\n const isPot = !this.needPOTTextures || (IsExponentOfTwo(texture.width) && IsExponentOfTwo(texture.height));\n if (isPot && texture.generateMipMaps && level === 0) {\n this._gl.generateMipmap(this._gl.TEXTURE_CUBE_MAP);\n }\n this._bindTextureDirectly(this._gl.TEXTURE_CUBE_MAP, null);\n // this.resetTextureCache();\n texture.isReady = true;\n};\nThinEngine.prototype.createRawCubeTextureFromUrl = function (url, scene, size, format, type, noMipmap, callback, mipmapGenerator, onLoad = null, onError = null, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, invertY = false) {\n const gl = this._gl;\n const texture = this.createRawCubeTexture(null, size, format, type, !noMipmap, invertY, samplingMode, null);\n scene?.addPendingData(texture);\n texture.url = url;\n texture.isReady = false;\n this._internalTexturesCache.push(texture);\n const onerror = (request, exception) => {\n scene?.removePendingData(texture);\n if (onError && request) {\n onError(request.status + \" \" + request.statusText, exception);\n }\n };\n const internalCallback = (data) => {\n const width = texture.width;\n const faceDataArrays = callback(data);\n if (!faceDataArrays) {\n return;\n }\n if (mipmapGenerator) {\n const textureType = this._getWebGLTextureType(type);\n let internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(type);\n let needConversion = false;\n if (internalFormat === gl.RGB) {\n internalFormat = gl.RGBA;\n needConversion = true;\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, texture, true);\n this._unpackFlipY(false);\n const mipData = mipmapGenerator(faceDataArrays);\n for (let level = 0; level < mipData.length; level++) {\n const mipSize = width >> level;\n for (let faceIndex = 0; faceIndex < 6; faceIndex++) {\n let mipFaceData = mipData[level][faceIndex];\n if (needConversion) {\n mipFaceData = _convertRGBtoRGBATextureData(mipFaceData, mipSize, mipSize, type);\n }\n gl.texImage2D(faceIndex, level, internalSizedFomat, mipSize, mipSize, 0, internalFormat, textureType, mipFaceData);\n }\n }\n this._bindTextureDirectly(gl.TEXTURE_CUBE_MAP, null);\n }\n else {\n this.updateRawCubeTexture(texture, faceDataArrays, format, type, invertY);\n }\n texture.isReady = true;\n // this.resetTextureCache();\n scene?.removePendingData(texture);\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n };\n this._loadFile(url, (data) => {\n internalCallback(data);\n }, undefined, scene?.offlineProvider, true, onerror);\n return texture;\n};\n/**\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _convertRGBtoRGBATextureData(rgbData, width, height, textureType) {\n // Create new RGBA data container.\n let rgbaData;\n let val1 = 1;\n if (textureType === Constants.TEXTURETYPE_FLOAT) {\n rgbaData = new Float32Array(width * height * 4);\n }\n else if (textureType === Constants.TEXTURETYPE_HALF_FLOAT) {\n rgbaData = new Uint16Array(width * height * 4);\n val1 = 15360; // 15360 is the encoding of 1 in half float\n }\n else if (textureType === Constants.TEXTURETYPE_UNSIGNED_INTEGER) {\n rgbaData = new Uint32Array(width * height * 4);\n }\n else {\n rgbaData = new Uint8Array(width * height * 4);\n }\n // Convert each pixel.\n for (let x = 0; x < width; x++) {\n for (let y = 0; y < height; y++) {\n const index = (y * width + x) * 3;\n const newIndex = (y * width + x) * 4;\n // Map Old Value to new value.\n rgbaData[newIndex + 0] = rgbData[index + 0];\n rgbaData[newIndex + 1] = rgbData[index + 1];\n rgbaData[newIndex + 2] = rgbData[index + 2];\n // Add fully opaque alpha channel.\n rgbaData[newIndex + 3] = val1;\n }\n }\n return rgbaData;\n}\n/**\n * Create a function for createRawTexture3D/createRawTexture2DArray\n * @param is3D true for TEXTURE_3D and false for TEXTURE_2D_ARRAY\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _makeCreateRawTextureFunction(is3D) {\n return function (data, width, height, depth, format, generateMipMaps, invertY, samplingMode, compression = null, textureType = Constants.TEXTURETYPE_UNSIGNED_INT) {\n const target = is3D ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY;\n const source = is3D ? 10 /* InternalTextureSource.Raw3D */ : 11 /* InternalTextureSource.Raw2DArray */;\n const texture = new InternalTexture(this, source);\n texture.baseWidth = width;\n texture.baseHeight = height;\n texture.baseDepth = depth;\n texture.width = width;\n texture.height = height;\n texture.depth = depth;\n texture.format = format;\n texture.type = textureType;\n texture.generateMipMaps = generateMipMaps;\n texture.samplingMode = samplingMode;\n if (is3D) {\n texture.is3D = true;\n }\n else {\n texture.is2DArray = true;\n }\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n }\n if (is3D) {\n this.updateRawTexture3D(texture, data, format, invertY, compression, textureType);\n }\n else {\n this.updateRawTexture2DArray(texture, data, format, invertY, compression, textureType);\n }\n this._bindTextureDirectly(target, texture, true);\n // Filters\n const filters = this._getSamplingParameters(samplingMode, generateMipMaps);\n this._gl.texParameteri(target, this._gl.TEXTURE_MAG_FILTER, filters.mag);\n this._gl.texParameteri(target, this._gl.TEXTURE_MIN_FILTER, filters.min);\n if (generateMipMaps) {\n this._gl.generateMipmap(target);\n }\n this._bindTextureDirectly(target, null);\n this._internalTexturesCache.push(texture);\n return texture;\n };\n}\nThinEngine.prototype.createRawTexture2DArray = _makeCreateRawTextureFunction(false);\nThinEngine.prototype.createRawTexture3D = _makeCreateRawTextureFunction(true);\n/**\n * Create a function for updateRawTexture3D/updateRawTexture2DArray\n * @param is3D true for TEXTURE_3D and false for TEXTURE_2D_ARRAY\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nfunction _makeUpdateRawTextureFunction(is3D) {\n return function (texture, data, format, invertY, compression = null, textureType = Constants.TEXTURETYPE_UNSIGNED_INT) {\n const target = is3D ? this._gl.TEXTURE_3D : this._gl.TEXTURE_2D_ARRAY;\n const internalType = this._getWebGLTextureType(textureType);\n const internalFormat = this._getInternalFormat(format);\n const internalSizedFomat = this._getRGBABufferInternalSizedFormat(textureType, format);\n this._bindTextureDirectly(target, texture, true);\n this._unpackFlipY(invertY === undefined ? true : invertY ? true : false);\n if (!this._doNotHandleContextLost) {\n texture._bufferView = data;\n texture.format = format;\n texture.invertY = invertY;\n texture._compression = compression;\n }\n if (texture.width % 4 !== 0) {\n this._gl.pixelStorei(this._gl.UNPACK_ALIGNMENT, 1);\n }\n if (compression && data) {\n this._gl.compressedTexImage3D(target, 0, this.getCaps().s3tc[compression], texture.width, texture.height, texture.depth, 0, data);\n }\n else {\n this._gl.texImage3D(target, 0, internalSizedFomat, texture.width, texture.height, texture.depth, 0, internalFormat, internalType, data);\n }\n if (texture.generateMipMaps) {\n this._gl.generateMipmap(target);\n }\n this._bindTextureDirectly(target, null);\n // this.resetTextureCache();\n texture.isReady = true;\n };\n}\nThinEngine.prototype.updateRawTexture2DArray = _makeUpdateRawTextureFunction(false);\nThinEngine.prototype.updateRawTexture3D = _makeUpdateRawTextureFunction(true);\n//# sourceMappingURL=engine.rawTexture.js.map","import { Texture } from \"./texture\";\nimport { Constants } from \"../../Engines/constants\";\nimport \"../../Engines/Extensions/engine.rawTexture\";\n/**\n * Raw texture can help creating a texture directly from an array of data.\n * This can be super useful if you either get the data from an uncompressed source or\n * if you wish to create your texture pixel by pixel.\n */\nexport class RawTexture extends Texture {\n /**\n * Instantiates a new RawTexture.\n * Raw texture can help creating a texture directly from an array of data.\n * This can be super useful if you either get the data from an uncompressed source or\n * if you wish to create your texture pixel by pixel.\n * @param data define the array of data to use to create the texture (null to create an empty texture)\n * @param width define the width of the texture\n * @param height define the height of the texture\n * @param format define the format of the data (RGB, RGBA... Engine.TEXTUREFORMAT_xxx)\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps define whether mip maps should be generated or not\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n */\n constructor(data, width, height, \n /**\n * Define the format of the data (RGB, RGBA... Engine.TEXTUREFORMAT_xxx)\n */\n format, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_UNSIGNED_INT, creationFlags, useSRGBBuffer) {\n super(null, sceneOrEngine, !generateMipMaps, invertY, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, creationFlags);\n this.format = format;\n if (!this._engine) {\n return;\n }\n if (!this._engine._caps.textureFloatLinearFiltering && type === Constants.TEXTURETYPE_FLOAT) {\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n }\n if (!this._engine._caps.textureHalfFloatLinearFiltering && type === Constants.TEXTURETYPE_HALF_FLOAT) {\n samplingMode = Constants.TEXTURE_NEAREST_SAMPLINGMODE;\n }\n this._texture = this._engine.createRawTexture(data, width, height, format, generateMipMaps, invertY, samplingMode, null, type, creationFlags ?? 0, useSRGBBuffer ?? false);\n this.wrapU = Texture.CLAMP_ADDRESSMODE;\n this.wrapV = Texture.CLAMP_ADDRESSMODE;\n }\n /**\n * Updates the texture underlying data.\n * @param data Define the new data of the texture\n */\n update(data) {\n this._getEngine().updateRawTexture(this._texture, data, this._texture.format, this._texture.invertY, null, this._texture.type, this._texture._useSRGBBuffer);\n }\n /**\n * Clones the texture.\n * @returns the cloned texture\n */\n clone() {\n if (!this._texture) {\n return super.clone();\n }\n const rawTexture = new RawTexture(null, this.getSize().width, this.getSize().height, this.format, this.getScene(), this._texture.generateMipMaps, this._invertY, this.samplingMode, this._texture.type, this._texture._creationFlags, this._useSRGBBuffer);\n rawTexture._texture = this._texture;\n this._texture.incrementReferences();\n return rawTexture;\n }\n /**\n * Creates a luminance texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @returns the luminance texture\n */\n static CreateLuminanceTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_LUMINANCE, sceneOrEngine, generateMipMaps, invertY, samplingMode);\n }\n /**\n * Creates a luminance alpha texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @returns the luminance alpha texture\n */\n static CreateLuminanceAlphaTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_LUMINANCE_ALPHA, sceneOrEngine, generateMipMaps, invertY, samplingMode);\n }\n /**\n * Creates an alpha texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @returns the alpha texture\n */\n static CreateAlphaTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_ALPHA, sceneOrEngine, generateMipMaps, invertY, samplingMode);\n }\n /**\n * Creates a RGB texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns the RGB alpha texture\n */\n static CreateRGBTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_UNSIGNED_INT, creationFlags = 0, useSRGBBuffer = false) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_RGB, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, creationFlags, useSRGBBuffer);\n }\n /**\n * Creates a RGBA texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param creationFlags specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns the RGBA texture\n */\n static CreateRGBATexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_UNSIGNED_INT, creationFlags = 0, useSRGBBuffer = false) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_RGBA, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, creationFlags, useSRGBBuffer);\n }\n /**\n * Creates a RGBA storage texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @param useSRGBBuffer defines if the texture must be loaded in a sRGB GPU buffer (if supported by the GPU).\n * @returns the RGBA texture\n */\n static CreateRGBAStorageTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_UNSIGNED_INT, useSRGBBuffer = false) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_RGBA, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, Constants.TEXTURE_CREATIONFLAG_STORAGE, useSRGBBuffer);\n }\n /**\n * Creates a R texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @returns the R texture\n */\n static CreateRTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Texture.TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_FLOAT) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_R, sceneOrEngine, generateMipMaps, invertY, samplingMode, type);\n }\n /**\n * Creates a R storage texture from some data.\n * @param data Define the texture data\n * @param width Define the width of the texture\n * @param height Define the height of the texture\n * @param sceneOrEngine defines the scene or engine the texture will belong to\n * @param generateMipMaps Define whether or not to create mip maps for the texture\n * @param invertY define if the data should be flipped on Y when uploaded to the GPU\n * @param samplingMode define the texture sampling mode (Texture.xxx_SAMPLINGMODE)\n * @param type define the format of the data (int, float... Engine.TEXTURETYPE_xxx)\n * @returns the R texture\n */\n static CreateRStorageTexture(data, width, height, sceneOrEngine, generateMipMaps = true, invertY = false, samplingMode = Texture.TRILINEAR_SAMPLINGMODE, type = Constants.TEXTURETYPE_FLOAT) {\n return new RawTexture(data, width, height, Constants.TEXTUREFORMAT_R, sceneOrEngine, generateMipMaps, invertY, samplingMode, type, Constants.TEXTURE_CREATIONFLAG_STORAGE);\n }\n}\n//# sourceMappingURL=rawTexture.js.map"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { S as ShaderStore } from './index-CTNAO7X0.esm.js';
2
+ import './helperFunctions-CXLST6hZ.esm.js';
3
+
4
+ // Do not edit.
5
+ const name = "rgbdDecodePixelShader";
6
+ const shader = `varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;
7
+ #include<helperFunctions>
8
+ #define CUSTOM_FRAGMENT_DEFINITIONS
9
+ @fragment
10
+ fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=vec4f(fromRGBD(textureSample(textureSampler,textureSamplerSampler,input.vUV)),1.0);}`;
11
+ // Sideeffect
12
+ ShaderStore.ShadersStoreWGSL[name] = shader;
13
+ /** @internal */
14
+ const rgbdDecodePixelShaderWGSL = { name, shader };
15
+
16
+ export { rgbdDecodePixelShaderWGSL };
17
+ //# sourceMappingURL=rgbdDecode.fragment-B2z-Bt71.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbdDecode.fragment-B2z-Bt71.esm.js","sources":["../../../../../dev/core/dist/ShadersWGSL/rgbdDecode.fragment.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/helperFunctions\";\nconst name = \"rgbdDecodePixelShader\";\nconst shader = `varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\n@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=vec4f(fromRGBD(textureSample(textureSampler,textureSamplerSampler,input.vUV)),1.0);}`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const rgbdDecodePixelShaderWGSL = { name, shader };\n//# sourceMappingURL=rgbdDecode.fragment.js.map"],"names":[],"mappings":";;;AAAA;AAGA,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA,2JAA2J,CAAC,CAAC;AAC7J;AACA,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C;AACY,MAAC,yBAAyB,GAAG,EAAE,IAAI,EAAE,MAAM;;;;"}
@@ -0,0 +1,2 @@
1
+ import{S as e}from"./index-DYqHhEAk.esm.min.js";import"./helperFunctions-DTBzTIjJ.esm.min.js";const r="rgbdDecodePixelShader",t="varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\n@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=vec4f(fromRGBD(textureSample(textureSampler,textureSamplerSampler,input.vUV)),1.0);}";e.ShadersStoreWGSL[r]=t;const n={name:r,shader:t};export{n as rgbdDecodePixelShaderWGSL};
2
+ //# sourceMappingURL=rgbdDecode.fragment-CdzoW-6f.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbdDecode.fragment-CdzoW-6f.esm.min.js","sources":["../../../../../dev/core/dist/ShadersWGSL/rgbdDecode.fragment.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/helperFunctions\";\nconst name = \"rgbdDecodePixelShader\";\nconst shader = `varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\n@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=vec4f(fromRGBD(textureSample(textureSampler,textureSamplerSampler,input.vUV)),1.0);}`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const rgbdDecodePixelShaderWGSL = { name, shader };\n//# sourceMappingURL=rgbdDecode.fragment.js.map"],"names":["name","shader","ShaderStore","ShadersStoreWGSL","rgbdDecodePixelShaderWGSL"],"mappings":"8FAGA,MAAMA,EAAO,wBACPC,EAAS,qUAMfC,EAAYC,iBAAiBH,GAAQC,EAEzB,MAACG,EAA4B,CAAEJ,OAAMC"}
@@ -0,0 +1,17 @@
1
+ import { S as ShaderStore } from './index-CTNAO7X0.esm.js';
2
+ import './helperFunctions-BjYz-6zr.esm.js';
3
+
4
+ // Do not edit.
5
+ const name = "rgbdDecodePixelShader";
6
+ const shader = `varying vec2 vUV;uniform sampler2D textureSampler;
7
+ #include<helperFunctions>
8
+ #define CUSTOM_FRAGMENT_DEFINITIONS
9
+ void main(void)
10
+ {gl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);}`;
11
+ // Sideeffect
12
+ ShaderStore.ShadersStore[name] = shader;
13
+ /** @internal */
14
+ const rgbdDecodePixelShader = { name, shader };
15
+
16
+ export { rgbdDecodePixelShader };
17
+ //# sourceMappingURL=rgbdDecode.fragment-DrLvcO8Q.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbdDecode.fragment-DrLvcO8Q.esm.js","sources":["../../../../../dev/core/dist/Shaders/rgbdDecode.fragment.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/helperFunctions\";\nconst name = \"rgbdDecodePixelShader\";\nconst shader = `varying vec2 vUV;uniform sampler2D textureSampler;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{gl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const rgbdDecodePixelShader = { name, shader };\n//# sourceMappingURL=rgbdDecode.fragment.js.map"],"names":[],"mappings":";;;AAAA;AAGA,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA,iEAAiE,CAAC,CAAC;AACnE;AACA,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC;AACY,MAAC,qBAAqB,GAAG,EAAE,IAAI,EAAE,MAAM;;;;"}
@@ -0,0 +1,2 @@
1
+ import{S as e}from"./index-DYqHhEAk.esm.min.js";import"./helperFunctions-B_yzbgEv.esm.min.js";const r="rgbdDecodePixelShader",n="varying vec2 vUV;uniform sampler2D textureSampler;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{gl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);}";e.ShadersStore[r]=n;const o={name:r,shader:n};export{o as rgbdDecodePixelShader};
2
+ //# sourceMappingURL=rgbdDecode.fragment-DuXK_20s.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbdDecode.fragment-DuXK_20s.esm.min.js","sources":["../../../../../dev/core/dist/Shaders/rgbdDecode.fragment.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/helperFunctions\";\nconst name = \"rgbdDecodePixelShader\";\nconst shader = `varying vec2 vUV;uniform sampler2D textureSampler;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{gl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const rgbdDecodePixelShader = { name, shader };\n//# sourceMappingURL=rgbdDecode.fragment.js.map"],"names":["name","shader","ShaderStore","ShadersStore","rgbdDecodePixelShader"],"mappings":"8FAGA,MAAMA,EAAO,wBACPC,EAAS,0MAMfC,EAAYC,aAAaH,GAAQC,EAErB,MAACG,EAAwB,CAAEJ,OAAMC"}
@@ -0,0 +1,17 @@
1
+ import { S as ShaderStore } from './index-CTNAO7X0.esm.js';
2
+ import './helperFunctions-BjYz-6zr.esm.js';
3
+
4
+ // Do not edit.
5
+ const name = "rgbdEncodePixelShader";
6
+ const shader = `varying vec2 vUV;uniform sampler2D textureSampler;
7
+ #include<helperFunctions>
8
+ #define CUSTOM_FRAGMENT_DEFINITIONS
9
+ void main(void)
10
+ {gl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);}`;
11
+ // Sideeffect
12
+ ShaderStore.ShadersStore[name] = shader;
13
+ /** @internal */
14
+ const rgbdEncodePixelShader = { name, shader };
15
+
16
+ export { rgbdEncodePixelShader };
17
+ //# sourceMappingURL=rgbdEncode.fragment-B8TjBZ9S.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbdEncode.fragment-B8TjBZ9S.esm.js","sources":["../../../../../dev/core/dist/Shaders/rgbdEncode.fragment.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/helperFunctions\";\nconst name = \"rgbdEncodePixelShader\";\nconst shader = `varying vec2 vUV;uniform sampler2D textureSampler;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{gl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const rgbdEncodePixelShader = { name, shader };\n//# sourceMappingURL=rgbdEncode.fragment.js.map"],"names":[],"mappings":";;;AAAA;AAGA,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA,yDAAyD,CAAC,CAAC;AAC3D;AACA,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxC;AACY,MAAC,qBAAqB,GAAG,EAAE,IAAI,EAAE,MAAM;;;;"}
@@ -0,0 +1,2 @@
1
+ import{S as e}from"./index-DYqHhEAk.esm.min.js";import"./helperFunctions-B_yzbgEv.esm.min.js";const r="rgbdEncodePixelShader",n="varying vec2 vUV;uniform sampler2D textureSampler;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{gl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);}";e.ShadersStore[r]=n;const o={name:r,shader:n};export{o as rgbdEncodePixelShader};
2
+ //# sourceMappingURL=rgbdEncode.fragment-CGQHcoVr.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbdEncode.fragment-CGQHcoVr.esm.min.js","sources":["../../../../../dev/core/dist/Shaders/rgbdEncode.fragment.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/helperFunctions\";\nconst name = \"rgbdEncodePixelShader\";\nconst shader = `varying vec2 vUV;uniform sampler2D textureSampler;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) \n{gl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);}`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const rgbdEncodePixelShader = { name, shader };\n//# sourceMappingURL=rgbdEncode.fragment.js.map"],"names":["name","shader","ShaderStore","ShadersStore","rgbdEncodePixelShader"],"mappings":"8FAGA,MAAMA,EAAO,wBACPC,EAAS,kMAMfC,EAAYC,aAAaH,GAAQC,EAErB,MAACG,EAAwB,CAAEJ,OAAMC"}
@@ -0,0 +1,17 @@
1
+ import { S as ShaderStore } from './index-CTNAO7X0.esm.js';
2
+ import './helperFunctions-CXLST6hZ.esm.js';
3
+
4
+ // Do not edit.
5
+ const name = "rgbdEncodePixelShader";
6
+ const shader = `varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;
7
+ #include<helperFunctions>
8
+ #define CUSTOM_FRAGMENT_DEFINITIONS
9
+ @fragment
10
+ fn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=toRGBD(textureSample(textureSampler,textureSamplerSampler,input.vUV).rgb);}`;
11
+ // Sideeffect
12
+ ShaderStore.ShadersStoreWGSL[name] = shader;
13
+ /** @internal */
14
+ const rgbdEncodePixelShaderWGSL = { name, shader };
15
+
16
+ export { rgbdEncodePixelShaderWGSL };
17
+ //# sourceMappingURL=rgbdEncode.fragment-CHPMUGpL.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbdEncode.fragment-CHPMUGpL.esm.js","sources":["../../../../../dev/core/dist/ShadersWGSL/rgbdEncode.fragment.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/helperFunctions\";\nconst name = \"rgbdEncodePixelShader\";\nconst shader = `varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\n@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=toRGBD(textureSample(textureSampler,textureSamplerSampler,input.vUV).rgb);}`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const rgbdEncodePixelShaderWGSL = { name, shader };\n//# sourceMappingURL=rgbdEncode.fragment.js.map"],"names":[],"mappings":";;;AAAA;AAGA,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA,kJAAkJ,CAAC,CAAC;AACpJ;AACA,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAC5C;AACY,MAAC,yBAAyB,GAAG,EAAE,IAAI,EAAE,MAAM;;;;"}
@@ -0,0 +1,2 @@
1
+ import{S as e}from"./index-DYqHhEAk.esm.min.js";import"./helperFunctions-DTBzTIjJ.esm.min.js";const r="rgbdEncodePixelShader",t="varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\n@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=toRGBD(textureSample(textureSampler,textureSamplerSampler,input.vUV).rgb);}";e.ShadersStoreWGSL[r]=t;const n={name:r,shader:t};export{n as rgbdEncodePixelShaderWGSL};
2
+ //# sourceMappingURL=rgbdEncode.fragment-Ch8KaRMn.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgbdEncode.fragment-Ch8KaRMn.esm.min.js","sources":["../../../../../dev/core/dist/ShadersWGSL/rgbdEncode.fragment.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/helperFunctions\";\nconst name = \"rgbdEncodePixelShader\";\nconst shader = `varying vUV: vec2f;var textureSamplerSampler: sampler;var textureSampler: texture_2d<f32>;\n#include<helperFunctions>\n#define CUSTOM_FRAGMENT_DEFINITIONS\n@fragment\nfn main(input: FragmentInputs)->FragmentOutputs {fragmentOutputs.color=toRGBD(textureSample(textureSampler,textureSamplerSampler,input.vUV).rgb);}`;\n// Sideeffect\nShaderStore.ShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const rgbdEncodePixelShaderWGSL = { name, shader };\n//# sourceMappingURL=rgbdEncode.fragment.js.map"],"names":["name","shader","ShaderStore","ShadersStoreWGSL","rgbdEncodePixelShaderWGSL"],"mappings":"8FAGA,MAAMA,EAAO,wBACPC,EAAS,4TAMfC,EAAYC,iBAAiBH,GAAQC,EAEzB,MAACG,EAA4B,CAAEJ,OAAMC"}
@@ -0,0 +1,2 @@
1
+ import{S as t,R as e,P as i,f as s,g as r,h as o,i as n,j as a,k as c,l,m as h,B as u,n as d,o as p,p as m,c as _,M as f,q as g,d as x,s as y,t as v,b as T,L as w,e as b,V as P,Q as R,u as M,a as C,v as A,w as I,x as k,E as V,I as F,y as z,C as D,z as S,A as B,D as U,F as E,r as L}from"./index-DYqHhEAk.esm.min.js";import"./fogFragment-DLguActo.esm.min.js";import"./logDepthDeclaration-cpc5vyCy.esm.min.js";import"./logDepthVertex-7sCVTIjr.esm.min.js";import{R as W}from"./rawTexture-BjAjz6eU.esm.min.js";import"./thinInstanceMesh-BkM6bBqz.esm.min.js";import{A as Z}from"./assetContainer-Bo08Fxv3.esm.min.js";import{S as N}from"./standardMaterial-AtuI8LET.esm.min.js";t.ShadersStore.gaussianSplattingPixelShader="#include<clipPlaneFragmentDeclaration>\n#include<logDepthDeclaration>\n#include<fogFragmentDeclaration>\nvarying vec4 vColor;varying vec2 vPosition;void main () { \n#include<clipPlaneFragment>\nfloat A=-dot(vPosition,vPosition);if (A<-4.0) discard;float B=exp(A)*vColor.a;\n#include<logDepthFragment>\nvec3 color=vColor.rgb;\n#ifdef FOG\n#include<fogFragment>\n#endif\ngl_FragColor=vec4(color,B);}\n";t.IncludesShadersStore.gaussianSplattingVertexDeclaration="uniform mat4 world;uniform mat4 view;uniform mat4 projection;\n";t.IncludesShadersStore.gaussianSplattingUboDeclaration="#include<sceneUboDeclaration>\n#include<meshUboDeclaration>\n";t.ShadersStore.gaussianSplattingVertexShader="#include<__decl__gaussianSplattingVertex>\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include<clipPlaneVertexDeclaration>\n#include<fogVertexDeclaration>\n#include<logDepthDeclaration>\nattribute vec2 position;attribute float splatIndex;uniform vec2 invViewport;uniform vec2 dataTextureSize;uniform vec2 focal;uniform sampler2D covariancesATexture;uniform sampler2D covariancesBTexture;uniform sampler2D centersTexture;uniform sampler2D colorsTexture;varying vec4 vColor;varying vec2 vPosition;\n#if !defined(WEBGL2) && !defined(WEBGPU) && !defined(NATIVE)\nmat3 transpose(mat3 matrix) {return mat3(matrix[0][0],matrix[1][0],matrix[2][0],\nmatrix[0][1],matrix[1][1],matrix[2][1],\nmatrix[0][2],matrix[1][2],matrix[2][2]);}\n#endif\nvec2 getDataUV(float index,vec2 textureSize) {float y=floor(index/textureSize.x);float x=index-y*textureSize.x;return vec2((x+0.5)/textureSize.x,(y+0.5)/textureSize.y);}\nvoid main () {vec2 splatUV=getDataUV(splatIndex,dataTextureSize);vec3 center=texture2D(centersTexture,splatUV).xyz;vec4 color=texture2D(colorsTexture,splatUV);vec3 covA=texture2D(covariancesATexture,splatUV).xyz;vec3 covB=texture2D(covariancesBTexture,splatUV).xyz;vec4 worldPos=world*vec4(center,1.0);mat4 modelView=view*world;vec4 camspace=view*worldPos;vec4 pos2d=projection*camspace;float bounds=1.2*pos2d.w;if (pos2d.z<-pos2d.w || pos2d.x<-bounds || pos2d.x>bounds\n|| pos2d.y<-bounds || pos2d.y>bounds) {gl_Position=vec4(0.0,0.0,2.0,1.0);return;}\nmat3 Vrk=mat3(\ncovA.x,covA.y,covA.z,\ncovA.y,covB.x,covB.y,\ncovA.z,covB.y,covB.z\n);mat3 J=mat3(\nfocal.x/camspace.z,0.,-(focal.x*camspace.x)/(camspace.z*camspace.z),\n0.,focal.y/camspace.z,-(focal.y*camspace.y)/(camspace.z*camspace.z),\n0.,0.,0.\n);mat3 invy=mat3(1,0,0,0,-1,0,0,0,1);mat3 T=invy*transpose(mat3(modelView))*J;mat3 cov2d=transpose(T)*Vrk*T;float mid=(cov2d[0][0]+cov2d[1][1])/2.0;float radius=length(vec2((cov2d[0][0]-cov2d[1][1])/2.0,cov2d[0][1]));float lambda1=mid+radius,lambda2=mid-radius;if (lambda2<0.0) return;vec2 diagonalVector=normalize(vec2(cov2d[0][1],lambda1-cov2d[0][0]));vec2 majorAxis=min(sqrt(2.0*lambda1),1024.0)*diagonalVector;vec2 minorAxis=min(sqrt(2.0*lambda2),1024.0)*vec2(diagonalVector.y,-diagonalVector.x);vColor=color;vPosition=position;vec2 vCenter=vec2(pos2d);gl_Position=vec4(\nvCenter \n+ (position.x*majorAxis\n+ position.y*minorAxis)*invViewport*pos2d.w,pos2d.zw);\n#include<clipPlaneVertex>\n#include<fogVertex>\n#include<logDepthVertex>\n}\n";class O extends m{constructor(){super(),this.FOG=!1,this.THIN_INSTANCES=!0,this.LOGARITHMICDEPTH=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.rebuild()}}class G extends i{constructor(t,e){super(t,e),this.backFaceCulling=!1}get hasRenderTargetTextures(){return!1}needAlphaTesting(){return!1}needAlphaBlending(){return!0}isReadyForSubMesh(t,e){const i=!0,l=e._drawWrapper;if(l.effect&&this.isFrozen&&l._wasPreviouslyReady&&l._wasPreviouslyUsingInstances===i)return!0;e.materialDefines||(e.materialDefines=new O);const h=this.getScene(),u=e.materialDefines;if(this._isReadyForSubMesh(e))return!0;const d=h.getEngine();if(s(t,h,this._useLogarithmicDepth,this.pointsCloud,this.fogEnabled,!1,u),r(h,d,this,u,i,null,!0),o(t,u,!1,!1),u.isDirty){u.markAsProcessed(),h.resetCachedMaterial();const t=[_.PositionKind,"splatIndex"];n(t,u);const i=["world","view","projection","vFogInfos","vFogColor","logarithmicDepthConstant","invViewport","dataTextureSize","focal"],s=["covariancesATexture","covariancesBTexture","centersTexture","colorsTexture"],r=["Scene","Mesh"];a({uniformsNames:i,uniformBuffersNames:r,samplers:s,defines:u}),c(i);const o=u.toString(),l=h.getEngine().createEffect("gaussianSplatting",{attributes:t,uniformsNames:i,uniformBuffersNames:r,samplers:s,defines:o,onCompiled:this.onCompiled,onError:this.onError},d);e.setEffect(l,u,this._materialContext)}return!(!e.effect||!e.effect.isReady())&&(u._renderId=h.getRenderId(),l._wasPreviouslyReady=!0,l._wasPreviouslyUsingInstances=i,!0)}bindForSubMesh(t,e,i){const s=this.getScene(),r=i.materialDefines;if(!r)return;const o=i.effect;if(!o)return;this._activeEffect=o,e.getMeshUniformBuffer().bindToEffect(o,"Mesh"),e.transferToEffect(t);if(this._mustRebind(s,o,i,e.visibility)){this.bindView(o),this.bindViewProjection(o);const t=s.getEngine(),i=this.getScene().activeCamera,r=t.getRenderWidth(),n=t.getRenderHeight(),a=i?.rigParent?.rigCameras.length||1;this._activeEffect.setFloat2("invViewport",1/(r/a),1/n);let c=1e3;if(i){const t=i.getProjectionMatrix().m[5];c=i.fovMode==l.FOVMODE_VERTICAL_FIXED?n*t/2:r*t/2}this._activeEffect.setFloat2("focal",c,c);const u=e;if(u.covariancesATexture){const t=u.covariancesATexture.getSize();o.setFloat2("dataTextureSize",t.width,t.height),o.setTexture("covariancesATexture",u.covariancesATexture),o.setTexture("covariancesBTexture",u.covariancesBTexture),o.setTexture("centersTexture",u.centersTexture),o.setTexture("colorsTexture",u.colorsTexture)}h(o,this,s)}else s.getEngine()._features.needToAlwaysBindUniformBuffers&&(this._needToBindSceneUbo=!0);u(s,e,o),this.useLogarithmicDepth&&d(r,o,s),this._afterBind(e,this._activeEffect,i)}clone(t){return p.Clone((()=>new G(t,this.getScene())),this)}serialize(){const t=super.serialize();return t.customType="BABYLON.GaussianSplattingMaterial",t}getClassName(){return"GaussianSplattingMaterial"}static Parse(t,e,i){return p.Parse((()=>new G(t.name,e)),t,e,i)}}e("BABYLON.GaussianSplattingMaterial",G);class j extends f{get covariancesATexture(){return this._covariancesATexture}get covariancesBTexture(){return this._covariancesBTexture}get centersTexture(){return this._centersTexture}get colorsTexture(){return this._colorsTexture}constructor(t,e=null,i=null,s=!1){super(t,i),this._vertexCount=0,this._worker=null,this._frameIdLastUpdate=-1,this._modelViewMatrix=g.Identity(),this._material=null,this._canPostToWorker=!0,this._covariancesATexture=null,this._covariancesBTexture=null,this._centersTexture=null,this._colorsTexture=null,this._splatPositions=null,this._covariancesA=null,this._covariancesB=null,this._colors=null,this._keepInRam=!1;const r=new x;r.positions=[-2,-2,0,2,-2,0,2,2,0,-2,2,0],r.indices=[0,1,2,0,2,3],r.applyToMesh(this),this.subMeshes=[],new y(0,0,4,0,6,this),this.setEnabled(!1),this._lastModelViewMatrix=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this._keepInRam=s,e&&this.loadFileAsync(e)}getClassName(){return"GaussianSplattingMesh"}getTotalVertices(){return this._vertexCount}render(t,e,i){this.material||(this._material=new G(this.name+"_material",this._scene),this.material=this._material);const s=this.getScene().getFrameId();if(s!==this._frameIdLastUpdate&&this._worker&&this._scene.activeCamera&&this._canPostToWorker){this.getWorldMatrix().multiplyToRef(this._scene.activeCamera.getViewMatrix(),this._modelViewMatrix),v.Vector3[0].set(this._lastModelViewMatrix[8],this._lastModelViewMatrix[9],this._lastModelViewMatrix[10]),v.Vector3[1].set(this._modelViewMatrix.m[8],this._modelViewMatrix.m[9],this._modelViewMatrix.m[10]),v.Vector3[0].normalize(),v.Vector3[1].normalize();const t=T.Dot(v.Vector3[0],v.Vector3[1]);Math.abs(t-1)>=.01&&(this._frameIdLastUpdate=s,this._canPostToWorker=!1,this._lastModelViewMatrix=this._modelViewMatrix.m.slice(0),this._worker.postMessage({view:this._modelViewMatrix.m,depthMix:this._depthMix,useRightHandedSystem:this._scene.useRightHandedSystem},[this._depthMix.buffer]))}return super.render(t,e,i)}static ConvertPLYToSplat(t){const e=new Uint8Array(t),i=(new TextDecoder).decode(e.slice(0,10240)),s="end_header\n",r=i.indexOf(s);if(r<0||!i)return t;const o=parseInt(/element vertex (\d+)\n/.exec(i)[1]);let n=0;const a={double:8,int:4,uint:4,float:4,short:2,ushort:2,uchar:1},c=[],l=i.slice(0,r).split("\n").filter((t=>t.startsWith("property ")));for(const t of l){const[,e,i]=t.split(" ");if(c.push({name:i,type:e,offset:n}),!a[e])return w.Error(`Unsupported property type: ${e}. Are you sure it's a valid Gaussian Splatting file?`),new ArrayBuffer(0);n+=a[e]}const h=.28209479177387814,u=new DataView(t,r+11),d=new ArrayBuffer(32*o),p=new R;for(let t=0;t<o;t++){const e=new Float32Array(d,32*t,3),i=new Float32Array(d,32*t+12,3),s=new Uint8ClampedArray(d,32*t+24,4),r=new Uint8ClampedArray(d,32*t+28,4);let o=255,a=0,l=0,m=0;for(let r=0;r<c.length;r++){const d=c[r];let p;switch(d.type){case"float":p=u.getFloat32(d.offset+t*n,!0);break;case"int":p=u.getInt32(d.offset+t*n,!0);break;default:throw new Error(`Unsupported property type: ${d.type}`)}switch(d.name){case"x":e[0]=p;break;case"y":e[1]=p;break;case"z":e[2]=p;break;case"scale_0":i[0]=Math.exp(p);break;case"scale_1":i[1]=Math.exp(p);break;case"scale_2":i[2]=Math.exp(p);break;case"red":s[0]=p;break;case"green":s[1]=p;break;case"blue":s[2]=p;break;case"f_dc_0":s[0]=255*(.5+h*p);break;case"f_dc_1":s[1]=255*(.5+h*p);break;case"f_dc_2":s[2]=255*(.5+h*p);break;case"f_dc_3":s[3]=255*(.5+h*p);break;case"opacity":s[3]=1/(1+Math.exp(-p))*255;break;case"rot_0":o=p;break;case"rot_1":a=p;break;case"rot_2":l=p;break;case"rot_3":m=p}}p.set(a,l,m,o),p.normalize(),r[0]=128*p.w+128,r[1]=128*p.x+128,r[2]=128*p.y+128,r[3]=128*p.z+128}return d}loadDataAsync(t){return Promise.resolve(this._loadData(t))}loadFileAsync(t){return b.LoadFileAsync(t,!0).then((t=>{this._loadData(j.ConvertPLYToSplat(t))}))}dispose(t){this._covariancesATexture?.dispose(),this._covariancesBTexture?.dispose(),this._centersTexture?.dispose(),this._colorsTexture?.dispose(),this._covariancesATexture=null,this._covariancesBTexture=null,this._centersTexture=null,this._colorsTexture=null,this._material?.dispose(!1,!0),this._material=null,this._worker?.terminate(),this._worker=null,super.dispose(t)}_copyTextures(t){this._covariancesATexture=t.covariancesATexture?.clone(),this._covariancesBTexture=t.covariancesBTexture?.clone(),this._centersTexture=t.centersTexture?.clone(),this._colorsTexture=t.colorsTexture?.clone()}clone(t=""){const e=new j(t,void 0,this.getScene());e._copySource(this),e.makeGeometryUnique(),e._vertexCount=this._vertexCount,e._copyTextures(this),e._modelViewMatrix=g.Identity(),e._splatPositions=this._splatPositions,e._instanciateWorker();const i=this.getBoundingInfo();return e.getBoundingInfo().reConstruct(i.minimum,i.maximum,this.getWorldMatrix()),e.forcedInstanceCount=e._vertexCount,e.setEnabled(!0),e}_loadData(t){if(!t.byteLength)return;const e=new Uint8Array(t),i=new Float32Array(e.buffer),s=e.length/32;this._vertexCount=s;const r=this._getTextureSize(s),o=r.x*r.y;this._splatPositions=new Float32Array(3*o);const n=new Float32Array(3*o),a=new Float32Array(3*o),c=v.Matrix[0],l=v.Matrix[1],h=v.Quaternion[0],u=new T(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),d=new T(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(let t=0;t<s;t++){const s=i[8*t+0],r=-i[8*t+1],o=i[8*t+2];this._splatPositions[3*t+0]=s,this._splatPositions[3*t+1]=r,this._splatPositions[3*t+2]=o,u.minimizeInPlaceFromFloats(s,r,o),d.maximizeInPlaceFromFloats(s,r,o),h.set((e[32*t+28+1]-128)/128,(e[32*t+28+2]-128)/128,(e[32*t+28+3]-128)/128,-(e[32*t+28+0]-128)/128),h.toRotationMatrix(c),g.ScalingToRef(2*i[8*t+3+0],2*i[8*t+3+1],2*i[8*t+3+2],l);const p=c.multiplyToRef(l,v.Matrix[0]).m;n[3*t+0]=p[0]*p[0]+p[1]*p[1]+p[2]*p[2],n[3*t+1]=p[0]*p[4]+p[1]*p[5]+p[2]*p[6],n[3*t+2]=p[0]*p[8]+p[1]*p[9]+p[2]*p[10],a[3*t+0]=p[4]*p[4]+p[5]*p[5]+p[6]*p[6],a[3*t+1]=p[4]*p[8]+p[5]*p[9]+p[6]*p[10],a[3*t+2]=p[8]*p[8]+p[9]*p[9]+p[10]*p[10]}this.getBoundingInfo().reConstruct(u,d,this.getWorldMatrix()),this.forcedInstanceCount=this._vertexCount,this.setEnabled(!0);const p=(t,e,i,s)=>new W(t,e,i,s,this._scene,!1,!1,M.TEXTURE_BILINEAR_SAMPLINGMODE,M.TEXTURETYPE_FLOAT),m=t=>{const e=t.length/3,i=new Float32Array(4*e);for(let s=0;s<e;++s)i[4*s+0]=t[3*s+0],i[4*s+1]=t[3*s+1],i[4*s+2]=t[3*s+2],i[4*s+3]=1;return i},_=new Float32Array(r.x*r.y*4);for(let t=0;t<this._vertexCount;++t)_[4*t+0]=e[32*t+24+0]/255,_[4*t+1]=e[32*t+24+1]/255,_[4*t+2]=e[32*t+24+2]/255,_[4*t+3]=e[32*t+24+3]/255;this._keepInRam&&(this._covariancesA=n,this._covariancesB=a,this._colors=_),this._covariancesATexture=p(m(n),r.x,r.y,M.TEXTUREFORMAT_RGBA),this._covariancesBTexture=p(m(a),r.x,r.y,M.TEXTUREFORMAT_RGBA),this._centersTexture=p(m(this._splatPositions),r.x,r.y,M.TEXTUREFORMAT_RGBA),this._colorsTexture=p(_,r.x,r.y,M.TEXTUREFORMAT_RGBA),this._instanciateWorker()}_instanciateWorker(){if(!this._vertexCount)return;const t=new Float32Array(this._vertexCount);this.thinInstanceSetBuffer("splatIndex",t,1,!1),this._worker?.terminate(),this._worker=new Worker(URL.createObjectURL(new Blob(["(",j._CreateWorker.toString(),")(self)"],{type:"application/javascript"}))),this._depthMix=new BigInt64Array(this._vertexCount);const e=Float32Array.from(this._splatPositions),i=this._vertexCount;this._worker.postMessage({positions:e,vertexCount:i},[e.buffer]),this._worker.onmessage=e=>{this._depthMix=e.data.depthMix;const i=new Uint32Array(e.data.depthMix.buffer);for(let e=0;e<this._vertexCount;e++)t[e]=i[2*e];this.thinInstanceBufferUpdated("splatIndex"),this._canPostToWorker=!0}}_getTextureSize(t){const e=this._scene.getEngine(),i=e.getCaps().maxTextureSize;let s=1;if(1!==e.version||e.isWebGPU)s=Math.ceil(t/i);else for(;i*s<t;)s*=2;return s>i&&(w.Error("GaussianSplatting texture size: ("+i+", "+s+"), maxTextureSize: "+i),s=i),new P(i,s)}}j._CreateWorker=function(t){let e,i,s,r,o=0;t.onmessage=n=>{if(n.data.positions)e=n.data.positions,o=n.data.vertexCount;else{const a=n.data.view;if(!e||!a)throw new Error("positions or view is not defined!");i=n.data.depthMix,s=new Uint32Array(i.buffer),r=new Float32Array(i.buffer);for(let t=0;t<o;t++)s[2*t]=t;let c=-1;n.data.useRightHandedSystem&&(c=1);for(let t=0;t<o;t++)r[2*t+1]=1e4+(a[2]*e[3*t+0]+a[6]*e[3*t+1]+a[10]*e[3*t+2])*c;i.sort(),t.postMessage({depthMix:i},[i.buffer])}}};class H{constructor(t,e,i,s,r){this.idx=0,this.color=new C(1,1,1,1),this.position=T.Zero(),this.rotation=T.Zero(),this.uv=new P(0,0),this.velocity=T.Zero(),this.pivot=T.Zero(),this.translateFromPivot=!1,this._pos=0,this._ind=0,this.groupId=0,this.idxInGroup=0,this._stillInvisible=!1,this._rotationMatrix=[1,0,0,0,1,0,0,0,1],this.parentId=null,this._globalPosition=T.Zero(),this.idx=t,this._group=e,this.groupId=i,this.idxInGroup=s,this._pcs=r}get size(){return this.size}set size(t){this.size=t}get quaternion(){return this.rotationQuaternion}set quaternion(t){this.rotationQuaternion=t}intersectsMesh(t,e){if(!t.hasBoundingInfo)return!1;if(!this._pcs.mesh)throw new Error("Point Cloud System doesnt contain the Mesh");if(e)return t.getBoundingInfo().boundingSphere.intersectsPoint(this.position.add(this._pcs.mesh.position));const i=t.getBoundingInfo().boundingBox,s=i.maximumWorld.x,r=i.minimumWorld.x,o=i.maximumWorld.y,n=i.minimumWorld.y,a=i.maximumWorld.z,c=i.minimumWorld.z,l=this.position.x+this._pcs.mesh.position.x,h=this.position.y+this._pcs.mesh.position.y,u=this.position.z+this._pcs.mesh.position.z;return r<=l&&l<=s&&n<=h&&h<=o&&c<=u&&u<=a}getRotationMatrix(t){let e;if(this.rotationQuaternion)e=this.rotationQuaternion;else{e=v.Quaternion[0];const t=this.rotation;R.RotationYawPitchRollToRef(t.y,t.x,t.z,e)}e.toRotationMatrix(t)}}class X{get groupID(){return this.groupId}set groupID(t){this.groupId=t}constructor(t,e){this.groupId=t,this._positionFunction=e}}class K{constructor(t,e,i=Number.MAX_VALUE,s=V){this.origin=t,this.direction=e,this.length=i,this.epsilon=s}clone(){return new K(this.origin.clone(),this.direction.clone(),this.length)}intersectsBoxMinMax(t,e,i=0){const s=K._TmpVector3[0].copyFromFloats(t.x-i,t.y-i,t.z-i),r=K._TmpVector3[1].copyFromFloats(e.x+i,e.y+i,e.z+i);let o,n,a,c,l=0,h=Number.MAX_VALUE;if(Math.abs(this.direction.x)<1e-7){if(this.origin.x<s.x||this.origin.x>r.x)return!1}else if(o=1/this.direction.x,n=(s.x-this.origin.x)*o,a=(r.x-this.origin.x)*o,a===-1/0&&(a=1/0),n>a&&(c=n,n=a,a=c),l=Math.max(n,l),h=Math.min(a,h),l>h)return!1;if(Math.abs(this.direction.y)<1e-7){if(this.origin.y<s.y||this.origin.y>r.y)return!1}else if(o=1/this.direction.y,n=(s.y-this.origin.y)*o,a=(r.y-this.origin.y)*o,a===-1/0&&(a=1/0),n>a&&(c=n,n=a,a=c),l=Math.max(n,l),h=Math.min(a,h),l>h)return!1;if(Math.abs(this.direction.z)<1e-7){if(this.origin.z<s.z||this.origin.z>r.z)return!1}else if(o=1/this.direction.z,n=(s.z-this.origin.z)*o,a=(r.z-this.origin.z)*o,a===-1/0&&(a=1/0),n>a&&(c=n,n=a,a=c),l=Math.max(n,l),h=Math.min(a,h),l>h)return!1;return!0}intersectsBox(t,e=0){return this.intersectsBoxMinMax(t.minimum,t.maximum,e)}intersectsSphere(t,e=0){const i=t.center.x-this.origin.x,s=t.center.y-this.origin.y,r=t.center.z-this.origin.z,o=i*i+s*s+r*r,n=t.radius+e,a=n*n;if(o<=a)return!0;const c=i*this.direction.x+s*this.direction.y+r*this.direction.z;if(c<0)return!1;return o-c*c<=a}intersectsTriangle(t,e,i){const s=K._TmpVector3[0],r=K._TmpVector3[1],o=K._TmpVector3[2],n=K._TmpVector3[3],a=K._TmpVector3[4];e.subtractToRef(t,s),i.subtractToRef(t,r),T.CrossToRef(this.direction,r,o);const c=T.Dot(s,o);if(0===c)return null;const l=1/c;this.origin.subtractToRef(t,n);const h=T.Dot(n,o)*l;if(h<-this.epsilon||h>1+this.epsilon)return null;T.CrossToRef(n,s,a);const u=T.Dot(this.direction,a)*l;if(u<-this.epsilon||h+u>1+this.epsilon)return null;const d=T.Dot(r,a)*l;return d>this.length?null:new F(1-h-u,h,d)}intersectsPlane(t){let e;const i=T.Dot(t.normal,this.direction);if(Math.abs(i)<9.99999997475243e-7)return null;{const s=T.Dot(t.normal,this.origin);return e=(-t.d-s)/i,e<0?e<-9.99999997475243e-7?null:0:e}}intersectsAxis(t,e=0){switch(t){case"y":{const t=(this.origin.y-e)/this.direction.y;return t>0?null:new T(this.origin.x+this.direction.x*-t,e,this.origin.z+this.direction.z*-t)}case"x":{const t=(this.origin.x-e)/this.direction.x;return t>0?null:new T(e,this.origin.y+this.direction.y*-t,this.origin.z+this.direction.z*-t)}case"z":{const t=(this.origin.z-e)/this.direction.z;return t>0?null:new T(this.origin.x+this.direction.x*-t,this.origin.y+this.direction.y*-t,e)}default:return null}}intersectsMesh(t,e,i,s=!1,r,o=!1){const n=v.Matrix[0];return t.getWorldMatrix().invertToRef(n),this._tmpRay?K.TransformToRef(this,n,this._tmpRay):this._tmpRay=K.Transform(this,n),t.intersects(this._tmpRay,e,i,s,r,o)}intersectsMeshes(t,e,i){i?i.length=0:i=[];for(let s=0;s<t.length;s++){const r=this.intersectsMesh(t[s],e);r.hit&&i.push(r)}return i.sort(this._comparePickingInfo),i}_comparePickingInfo(t,e){return t.distance<e.distance?-1:t.distance>e.distance?1:0}intersectionSegment(t,e,i){const s=this.origin,r=v.Vector3[0],o=v.Vector3[1],n=v.Vector3[2],a=v.Vector3[3];e.subtractToRef(t,r),this.direction.scaleToRef(K._Rayl,n),s.addToRef(n,o),t.subtractToRef(s,a);const c=T.Dot(r,r),l=T.Dot(r,n),h=T.Dot(n,n),u=T.Dot(r,a),d=T.Dot(n,a),p=c*h-l*l;let m,_,f=p,g=p;p<K._Smallnum?(m=0,f=1,_=d,g=h):(m=l*d-h*u,_=c*d-l*u,m<0?(m=0,_=d,g=h):m>f&&(m=f,_=d+l,g=h)),_<0?(_=0,-u<0?m=0:-u>c?m=f:(m=-u,f=c)):_>g&&(_=g,-u+l<0?m=0:-u+l>c?m=f:(m=-u+l,f=c));const x=Math.abs(m)<K._Smallnum?0:m/f,y=Math.abs(_)<K._Smallnum?0:_/g,w=v.Vector3[4];n.scaleToRef(y,w);const b=v.Vector3[5];r.scaleToRef(x,b),b.addInPlace(a);const P=v.Vector3[6];b.subtractToRef(w,P);return y>0&&y<=this.length&&P.lengthSquared()<i*i?b.length():-1}update(t,e,i,s,r,o,n,a=!1){if(a){K._RayDistant||(K._RayDistant=K.Zero()),K._RayDistant.unprojectRayToRef(t,e,i,s,g.IdentityReadOnly,o,n);const a=v.Matrix[0];r.invertToRef(a),K.TransformToRef(K._RayDistant,a,this)}else this.unprojectRayToRef(t,e,i,s,r,o,n);return this}static Zero(){return new K(T.Zero(),T.Zero())}static CreateNew(t,e,i,s,r,o,n){return K.Zero().update(t,e,i,s,r,o,n)}static CreateNewFromTo(t,e,i=g.IdentityReadOnly){const s=new K(new T(0,0,0),new T(0,0,0));return K.CreateFromToToRef(t,e,s,i)}static CreateFromToToRef(t,e,i,s=g.IdentityReadOnly){i.origin.copyFrom(t);const r=e.subtractToRef(t,i.direction),o=Math.sqrt(r.x*r.x+r.y*r.y+r.z*r.z);return i.length=o,i.direction.normalize(),K.TransformToRef(i,s,i)}static Transform(t,e){const i=new K(new T(0,0,0),new T(0,0,0));return K.TransformToRef(t,e,i),i}static TransformToRef(t,e,i){T.TransformCoordinatesToRef(t.origin,e,i.origin),T.TransformNormalToRef(t.direction,e,i.direction),i.length=t.length,i.epsilon=t.epsilon;const s=i.direction,r=s.length();if(0!==r&&1!==r){const t=1/r;s.x*=t,s.y*=t,s.z*=t,i.length*=r}return i}unprojectRayToRef(t,e,i,s,r,o,n){const a=v.Matrix[0];r.multiplyToRef(o,a),a.multiplyToRef(n,a),a.invert();const c=z.LastCreatedEngine,l=v.Vector3[0];l.x=t/i*2-1,l.y=-(e/s*2-1),l.z=c?.useReverseDepthBuffer?1:c?.isNDCHalfZRange?0:-1;const h=v.Vector3[1].copyFromFloats(l.x,l.y,1-1e-8),u=v.Vector3[2],d=v.Vector3[3];T._UnprojectFromInvertedMatrixToRef(l,a,u),T._UnprojectFromInvertedMatrixToRef(h,a,d),this.origin.copyFrom(u),d.subtractToRef(u,this.direction),this.direction.normalize()}}var Y,q;K._TmpVector3=A(6,T.Zero),K._RayDistant=K.Zero(),K._Smallnum=1e-8,K._Rayl=1e9,I.prototype.createPickingRay=function(t,e,i,s,r=!1){const o=K.Zero();return this.createPickingRayToRef(t,e,i,o,s,r),o},I.prototype.createPickingRayToRef=function(t,e,i,s,r,o=!1,n=!1){const a=this.getEngine();if(!r&&!(r=this.activeCamera))return this;const c=r.viewport,l=a.getRenderHeight(),{x:h,y:u,width:d,height:p}=c.toGlobal(a.getRenderWidth(),l),m=1/a.getHardwareScalingLevel();return t=t*m-h,e=e*m-(l-u-p),s.update(t,e,d,p,i||g.IdentityReadOnly,o?g.IdentityReadOnly:r.getViewMatrix(),r.getProjectionMatrix(),n),this},I.prototype.createPickingRayInCameraSpace=function(t,e,i){const s=K.Zero();return this.createPickingRayInCameraSpaceToRef(t,e,s,i),s},I.prototype.createPickingRayInCameraSpaceToRef=function(t,e,i,s){if(!k)return this;const r=this.getEngine();if(!s&&!(s=this.activeCamera))throw new Error("Active camera not set");const o=s.viewport,n=r.getRenderHeight(),{x:a,y:c,width:l,height:h}=o.toGlobal(r.getRenderWidth(),n),u=g.Identity(),d=1/r.getHardwareScalingLevel();return t=t*d-a,e=e*d-(n-c-h),i.update(t,e,l,h,u,u,s.getProjectionMatrix()),this},I.prototype._internalPickForMesh=function(t,e,i,s,r,o,n,a){const c=e(s,i.enableDistantPicking),l=i.intersects(c,r,n,o,s,a);return l&&l.hit?!r&&null!=t&&l.distance>=t.distance?null:l:null},I.prototype._internalPick=function(t,e,i,s,r){let o=null;const n=!!(this.activeCameras&&this.activeCameras.length>1&&this.cameraToUseForPointers!==this.activeCamera),a=this.cameraToUseForPointers||this.activeCamera;for(let c=0;c<this.meshes.length;c++){const l=this.meshes[c];if(e){if(!e(l,-1))continue}else if(!l.isEnabled()||!l.isVisible||!l.isPickable)continue;const h=n&&l.isWorldMatrixCameraDependent(),u=l.computeWorldMatrix(h,a);if(l.hasThinInstances&&l.thinInstanceEnablePicking){const n=this._internalPickForMesh(o,t,l,u,!0,!0,r);if(n){if(s)return n;const a=v.Matrix[1],c=l.thinInstanceGetWorldMatrices();for(let n=0;n<c.length;n++){if(e&&!e(l,n))continue;c[n].multiplyToRef(u,a);const h=this._internalPickForMesh(o,t,l,a,i,s,r,!0);if(h&&(o=h,o.thinInstanceIndex=n,i))return o}}}else{const e=this._internalPickForMesh(o,t,l,u,i,s,r);if(e&&(o=e,i))return o}}return o||new k},I.prototype._internalMultiPick=function(t,e,i){if(!k)return null;const s=[],r=!!(this.activeCameras&&this.activeCameras.length>1&&this.cameraToUseForPointers!==this.activeCamera),o=this.cameraToUseForPointers||this.activeCamera;for(let n=0;n<this.meshes.length;n++){const a=this.meshes[n];if(e){if(!e(a,-1))continue}else if(!a.isEnabled()||!a.isVisible||!a.isPickable)continue;const c=r&&a.isWorldMatrixCameraDependent(),l=a.computeWorldMatrix(c,o);if(a.hasThinInstances&&a.thinInstanceEnablePicking){if(this._internalPickForMesh(null,t,a,l,!0,!0,i)){const r=v.Matrix[1],o=a.thinInstanceGetWorldMatrices();for(let n=0;n<o.length;n++){if(e&&!e(a,n))continue;o[n].multiplyToRef(l,r);const c=this._internalPickForMesh(null,t,a,r,!1,!1,i,!0);c&&(c.thinInstanceIndex=n,s.push(c))}}}else{const e=this._internalPickForMesh(null,t,a,l,!1,!1,i);e&&s.push(e)}}return s},I.prototype.pickWithBoundingInfo=function(t,e,i,s,r){if(!k)return null;const o=this._internalPick((i=>(this._tempPickingRay||(this._tempPickingRay=K.Zero()),this.createPickingRayToRef(t,e,i,this._tempPickingRay,r||null),this._tempPickingRay)),i,s,!0);return o&&(o.ray=this.createPickingRay(t,e,g.Identity(),r||null)),o},Object.defineProperty(I.prototype,"_pickingAvailable",{get:()=>!0,enumerable:!1,configurable:!1}),I.prototype.pick=function(t,e,i,s,r,o,n=!1){const a=this._internalPick(((i,s)=>(this._tempPickingRay||(this._tempPickingRay=K.Zero()),this.createPickingRayToRef(t,e,i,this._tempPickingRay,r||null,!1,s),this._tempPickingRay)),i,s,!1,o);return a&&(a.ray=this.createPickingRay(t,e,g.Identity(),r||null)),a},I.prototype.pickWithRay=function(t,e,i,s){const r=this._internalPick((e=>(this._pickWithRayInverseMatrix||(this._pickWithRayInverseMatrix=g.Identity()),e.invertToRef(this._pickWithRayInverseMatrix),this._cachedRayForTransform||(this._cachedRayForTransform=K.Zero()),K.TransformToRef(t,this._pickWithRayInverseMatrix,this._cachedRayForTransform),this._cachedRayForTransform)),e,i,!1,s);return r&&(r.ray=t),r},I.prototype.multiPick=function(t,e,i,s,r){return this._internalMultiPick((i=>this.createPickingRay(t,e,i,s||null)),i,r)},I.prototype.multiPickWithRay=function(t,e,i){return this._internalMultiPick((e=>(this._pickWithRayInverseMatrix||(this._pickWithRayInverseMatrix=g.Identity()),e.invertToRef(this._pickWithRayInverseMatrix),this._cachedRayForTransform||(this._cachedRayForTransform=K.Zero()),K.TransformToRef(t,this._pickWithRayInverseMatrix,this._cachedRayForTransform),this._cachedRayForTransform)),e,i)},l.prototype.getForwardRay=function(t=100,e,i){return this.getForwardRayToRef(new K(T.Zero(),T.Zero(),t),t,e,i)},l.prototype.getForwardRayToRef=function(t,e=100,i,s){i||(i=this.getWorldMatrix()),t.length=e,s?t.origin.copyFrom(s):t.origin.copyFrom(this.position);const r=v.Vector3[2];r.set(0,0,this._scene.useRightHandedSystem?-1:1);const o=v.Vector3[3];return T.TransformNormalToRef(r,i,o),T.NormalizeToRef(o,t.direction),t},function(t){t[t.Color=2]="Color",t[t.UV=1]="UV",t[t.Random=0]="Random",t[t.Stated=3]="Stated"}(Y||(Y={}));class Q{get positions(){return this._positions32}get colors(){return this._colors32}get uvs(){return this._uvs32}constructor(t,e,i,s){this.particles=new Array,this.nbParticles=0,this.counter=0,this.vars={},this._promises=[],this._positions=new Array,this._indices=new Array,this._normals=new Array,this._colors=new Array,this._uvs=new Array,this._updatable=!0,this._isVisibilityBoxLocked=!1,this._alwaysVisible=!1,this._groups=new Array,this._groupCounter=0,this._computeParticleColor=!0,this._computeParticleTexture=!0,this._computeParticleRotation=!0,this._computeBoundingBox=!1,this._isReady=!1,this.name=t,this._size=e,this._scene=i||z.LastCreatedScene,s&&void 0!==s.updatable?this._updatable=s.updatable:this._updatable=!0}buildMeshAsync(t){return Promise.all(this._promises).then((()=>(this._isReady=!0,this._buildMesh(t))))}_buildMesh(t){0===this.nbParticles&&this.addPoints(1),this._positions32=new Float32Array(this._positions),this._uvs32=new Float32Array(this._uvs),this._colors32=new Float32Array(this._colors);const e=new x;e.set(this._positions32,_.PositionKind),this._uvs32.length>0&&e.set(this._uvs32,_.UVKind);let i=0;this._colors32.length>0&&(i=1,e.set(this._colors32,_.ColorKind));const s=new f(this.name,this._scene);e.applyToMesh(s,this._updatable),this.mesh=s,this._positions=null,this._uvs=null,this._colors=null,this._updatable||(this.particles.length=0);let r=t;return r||(r=new N("point cloud material",this._scene),r.emissiveColor=new D(i,i,i),r.disableLighting=!0,r.pointsCloud=!0,r.pointSize=this._size),s.material=r,new Promise((t=>t(s)))}_addParticle(t,e,i,s){const r=new H(t,e,i,s,this);return this.particles.push(r),r}_randomUnitVector(t){t.position=new T(Math.random(),Math.random(),Math.random()),t.color=new C(1,1,1,1)}_getColorIndicesForCoord(t,e,i,s){const r=t._groupImageData,o=i*(4*s)+4*e,n=[o,o+1,o+2,o+3],a=n[1],c=n[2],l=n[3],h=r[n[0]],u=r[a],d=r[c],p=r[l];return new C(h/255,u/255,d/255,p)}_setPointsColorOrUV(t,e,i,s,r,o,n,a){a=a??0,i&&t.updateFacetData();const c=2*t.getBoundingInfo().boundingSphere.radius;let l=t.getVerticesData(_.PositionKind);const h=t.getIndices(),u=t.getVerticesData(_.UVKind+(a?a+1:"")),d=t.getVerticesData(_.ColorKind),p=T.Zero();t.computeWorldMatrix();const m=t.getWorldMatrix();if(!m.isIdentity()){l=l.slice(0);for(let t=0;t<l.length/3;t++)T.TransformCoordinatesFromFloatsToRef(l[3*t],l[3*t+1],l[3*t+2],m,p),l[3*t]=p.x,l[3*t+1]=p.y,l[3*t+2]=p.z}let f=0,g=0,x=0,y=0,v=0,w=0,b=0,R=0,M=0,A=0,I=0,k=0,V=0;const F=T.Zero(),z=T.Zero(),U=T.Zero(),E=T.Zero(),L=T.Zero();let W=0,Z=0,N=0,O=0,G=0,j=0;const H=P.Zero(),X=P.Zero(),Y=P.Zero(),q=P.Zero(),Q=P.Zero();let $=0,J=0,tt=0,et=0,it=0,st=0,rt=0,ot=0,nt=0,at=0,ct=0,lt=0;const ht=S.Zero(),ut=S.Zero(),dt=S.Zero(),pt=S.Zero(),mt=S.Zero();let _t,ft,gt=0,xt=0;n=n||0;let yt=new S(0,0,0,0),vt=T.Zero(),Tt=T.Zero(),wt=T.Zero(),bt=0,Pt=T.Zero(),Rt=0,Mt=0;const Ct=new K(T.Zero(),new T(1,0,0));let At,It=T.Zero();for(let a=0;a<h.length/3;a++){let p,m,_,P,S,K,kt,Vt;g=h[3*a],x=h[3*a+1],y=h[3*a+2],v=l[3*g],w=l[3*g+1],b=l[3*g+2],R=l[3*x],M=l[3*x+1],A=l[3*x+2],I=l[3*y],k=l[3*y+1],V=l[3*y+2],F.set(v,w,b),z.set(R,M,A),U.set(I,k,V),z.subtractToRef(F,E),U.subtractToRef(z,L),u&&(W=u[2*g],Z=u[2*g+1],N=u[2*x],O=u[2*x+1],G=u[2*y],j=u[2*y+1],H.set(W,Z),X.set(N,O),Y.set(G,j),X.subtractToRef(H,q),Y.subtractToRef(X,Q)),d&&s&&($=d[4*g],J=d[4*g+1],tt=d[4*g+2],et=d[4*g+3],it=d[4*x],st=d[4*x+1],rt=d[4*x+2],ot=d[4*x+3],nt=d[4*y],at=d[4*y+1],ct=d[4*y+2],lt=d[4*y+3],ht.set($,J,tt,et),ut.set(it,st,rt,ot),dt.set(nt,at,ct,lt),ut.subtractToRef(ht,pt),dt.subtractToRef(ut,mt));const Ft=new D(0,0,0),zt=new D(0,0,0);let Dt,St;for(let l=0;l<e._groupDensity[a];l++)f=this.particles.length,this._addParticle(f,e,this._groupCounter,a+l),St=this.particles[f],gt=Math.sqrt(B.RandomRange(0,1)),xt=B.RandomRange(0,1),_t=F.add(E.scale(gt)).add(L.scale(gt*xt)),i&&(vt=t.getFacetNormal(a).normalize().scale(-1),Tt=E.clone().normalize(),wt=T.Cross(vt,Tt),bt=B.RandomRange(0,2*Math.PI),Pt=Tt.scale(Math.cos(bt)).add(wt.scale(Math.sin(bt))),bt=B.RandomRange(.1,Math.PI/2),It=Pt.scale(Math.cos(bt)).add(vt.scale(Math.sin(bt))),Ct.origin=_t.add(It.scale(1e-5)),Ct.direction=It,Ct.length=c,At=Ct.intersectsMesh(t),At.hit&&(Mt=At.pickedPoint.subtract(_t).length(),Rt=B.RandomRange(0,1)*Mt,_t.addInPlace(It.scale(Rt)))),St.position=_t.clone(),this._positions.push(St.position.x,St.position.y,St.position.z),void 0!==s?u&&(ft=H.add(q.scale(gt)).add(Q.scale(gt*xt)),s?r&&null!==e._groupImageData?(p=e._groupImgWidth,m=e._groupImgHeight,Dt=this._getColorIndicesForCoord(e,Math.round(ft.x*p),Math.round(ft.y*m),p),St.color=Dt,this._colors.push(Dt.r,Dt.g,Dt.b,Dt.a)):d?(yt=ht.add(pt.scale(gt)).add(mt.scale(gt*xt)),St.color=new C(yt.x,yt.y,yt.z,yt.w),this._colors.push(yt.x,yt.y,yt.z,yt.w)):(yt=ht.set(Math.random(),Math.random(),Math.random(),1),St.color=new C(yt.x,yt.y,yt.z,yt.w),this._colors.push(yt.x,yt.y,yt.z,yt.w)):(St.uv=ft.clone(),this._uvs.push(St.uv.x,St.uv.y))):(o?(Ft.set(o.r,o.g,o.b),_=B.RandomRange(-n,n),P=B.RandomRange(-n,n),Vt=Ft.toHSV(),S=Vt.r,K=Vt.g+_,kt=Vt.b+P,K<0&&(K=0),K>1&&(K=1),kt<0&&(kt=0),kt>1&&(kt=1),D.HSVtoRGBToRef(S,K,kt,zt),yt.set(zt.r,zt.g,zt.b,1)):yt=ht.set(Math.random(),Math.random(),Math.random(),1),St.color=new C(yt.x,yt.y,yt.z,yt.w),this._colors.push(yt.x,yt.y,yt.z,yt.w))}}_colorFromTexture(t,e,i){if(null===t.material)return w.Warn(t.name+"has no material."),e._groupImageData=null,void this._setPointsColorOrUV(t,e,i,!0,!1);const s=t.material.getActiveTextures();if(0===s.length)return w.Warn(t.name+"has no usable texture."),e._groupImageData=null,void this._setPointsColorOrUV(t,e,i,!0,!1);const r=t.clone();r.setEnabled(!1),this._promises.push(new Promise((t=>{U.WhenAllReady(s,(()=>{let o=e._textureNb;o<0&&(o=0),o>s.length-1&&(o=s.length-1);const n=()=>{e._groupImgWidth=s[o].getSize().width,e._groupImgHeight=s[o].getSize().height,this._setPointsColorOrUV(r,e,i,!0,!0,void 0,void 0,s[o].coordinatesIndex),r.dispose(),t()};e._groupImageData=null;const a=s[o].readPixels();a?a.then((t=>{e._groupImageData=t,n()})):n()}))})))}_calculateDensity(t,e,i){let s,r,o,n,a,c,l,h,u,d,p,m;const _=T.Zero(),f=T.Zero(),g=T.Zero(),x=T.Zero(),y=T.Zero(),v=T.Zero();let w;const b=[];let P=0;const R=i.length/3;for(let t=0;t<R;t++)s=i[3*t],r=i[3*t+1],o=i[3*t+2],n=e[3*s],a=e[3*s+1],c=e[3*s+2],l=e[3*r],h=e[3*r+1],u=e[3*r+2],d=e[3*o],p=e[3*o+1],m=e[3*o+2],_.set(n,a,c),f.set(l,h,u),g.set(d,p,m),f.subtractToRef(_,x),g.subtractToRef(f,y),T.CrossToRef(x,y,v),w=.5*v.length(),P+=w,b[t]=P;const M=new Array(R);let C=t;for(let t=R-1;t>0;t--){const e=b[t];if(0===e)M[t]=0;else{const i=(e-b[t-1])/e*C,s=Math.floor(i),r=i-s,o=s+Number(Math.random()<r);M[t]=o,C-=o}}return M[0]=C,M}addPoints(t,e=this._randomUnitVector){const i=new X(this._groupCounter,e);let s,r=this.nbParticles;for(let e=0;e<t;e++)s=this._addParticle(r,i,this._groupCounter,e),i&&i._positionFunction&&i._positionFunction(s,r,e),this._positions.push(s.position.x,s.position.y,s.position.z),s.color&&this._colors.push(s.color.r,s.color.g,s.color.b,s.color.a),s.uv&&this._uvs.push(s.uv.x,s.uv.y),r++;return this.nbParticles+=t,this._groupCounter++,this._groupCounter}addSurfacePoints(t,e,i,s,r){let o=i||0;(isNaN(o)||o<0||o>3)&&(o=0);const n=t.getVerticesData(_.PositionKind),a=t.getIndices();this._groups.push(this._groupCounter);const c=new X(this._groupCounter,null);switch(c._groupDensity=this._calculateDensity(e,n,a),2===o?c._textureNb=s||0:s=s||new C(1,1,1,1),o){case 2:this._colorFromTexture(t,c,!1);break;case 1:this._setPointsColorOrUV(t,c,!1,!1,!1);break;case 0:this._setPointsColorOrUV(t,c,!1);break;case 3:this._setPointsColorOrUV(t,c,!1,void 0,void 0,s,r)}return this.nbParticles+=e,this._groupCounter++,this._groupCounter-1}addVolumePoints(t,e,i,s,r){let o=i||0;(isNaN(o)||o<0||o>3)&&(o=0);const n=t.getVerticesData(_.PositionKind),a=t.getIndices();this._groups.push(this._groupCounter);const c=new X(this._groupCounter,null);switch(c._groupDensity=this._calculateDensity(e,n,a),2===o?c._textureNb=s||0:s=s||new C(1,1,1,1),o){case 2:this._colorFromTexture(t,c,!0);break;case 1:this._setPointsColorOrUV(t,c,!0,!1,!1);break;case 0:this._setPointsColorOrUV(t,c,!0);break;case 3:this._setPointsColorOrUV(t,c,!0,void 0,void 0,s,r)}return this.nbParticles+=e,this._groupCounter++,this._groupCounter-1}setParticles(t=0,e=this.nbParticles-1,i=!0){if(!this._updatable||!this._isReady)return this;this.beforeUpdateParticles(t,e,i);const s=v.Matrix[0],r=this.mesh,o=this._colors32,n=this._positions32,a=this._uvs32,c=v.Vector3,l=c[5].copyFromFloats(1,0,0),h=c[6].copyFromFloats(0,1,0),u=c[7].copyFromFloats(0,0,1),d=c[8].setAll(Number.MAX_VALUE),p=c[9].setAll(-Number.MAX_VALUE);g.IdentityToRef(s);let m=0;if(this.mesh?.isFacetDataEnabled&&(this._computeBoundingBox=!0),e=e>=this.nbParticles?this.nbParticles-1:e,this._computeBoundingBox&&(0!=t||e!=this.nbParticles-1)){const t=this.mesh?.getBoundingInfo();t&&(d.copyFrom(t.minimum),p.copyFrom(t.maximum))}m=0;let f=0,x=0,y=0;for(let i=t;i<=e;i++){const t=this.particles[i];m=t.idx,f=3*m,x=4*m,y=2*m,this.updateParticle(t);const e=t._rotationMatrix,r=t.position,o=t._globalPosition;this._computeParticleRotation&&t.getRotationMatrix(s);if(null!==t.parentId){const i=this.particles[t.parentId],n=i._rotationMatrix,a=i._globalPosition,c=r.x*n[1]+r.y*n[4]+r.z*n[7],l=r.x*n[0]+r.y*n[3]+r.z*n[6],h=r.x*n[2]+r.y*n[5]+r.z*n[8];if(o.x=a.x+l,o.y=a.y+c,o.z=a.z+h,this._computeParticleRotation){const t=s.m;e[0]=t[0]*n[0]+t[1]*n[3]+t[2]*n[6],e[1]=t[0]*n[1]+t[1]*n[4]+t[2]*n[7],e[2]=t[0]*n[2]+t[1]*n[5]+t[2]*n[8],e[3]=t[4]*n[0]+t[5]*n[3]+t[6]*n[6],e[4]=t[4]*n[1]+t[5]*n[4]+t[6]*n[7],e[5]=t[4]*n[2]+t[5]*n[5]+t[6]*n[8],e[6]=t[8]*n[0]+t[9]*n[3]+t[10]*n[6],e[7]=t[8]*n[1]+t[9]*n[4]+t[10]*n[7],e[8]=t[8]*n[2]+t[9]*n[5]+t[10]*n[8]}}else if(o.x=0,o.y=0,o.z=0,this._computeParticleRotation){const t=s.m;e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10]}const a=c[11];t.translateFromPivot?a.setAll(0):a.copyFrom(t.pivot);const _=c[0];_.copyFrom(t.position);const g=_.x-t.pivot.x,v=_.y-t.pivot.y,T=_.z-t.pivot.z;let w=g*e[0]+v*e[3]+T*e[6],b=g*e[1]+v*e[4]+T*e[7],P=g*e[2]+v*e[5]+T*e[8];w+=a.x,b+=a.y,P+=a.z;const R=n[f]=o.x+l.x*w+h.x*b+u.x*P,M=n[f+1]=o.y+l.y*w+h.y*b+u.y*P,C=n[f+2]=o.z+l.z*w+h.z*b+u.z*P;if(this._computeBoundingBox&&(d.minimizeInPlaceFromFloats(R,M,C),p.maximizeInPlaceFromFloats(R,M,C)),this._computeParticleColor&&t.color){const e=t.color,i=this._colors32;i[x]=e.r,i[x+1]=e.g,i[x+2]=e.b,i[x+3]=e.a}if(this._computeParticleTexture&&t.uv){const e=t.uv,i=this._uvs32;i[y]=e.x,i[y+1]=e.y}}return r&&(i&&(this._computeParticleColor&&r.updateVerticesData(_.ColorKind,o,!1,!1),this._computeParticleTexture&&r.updateVerticesData(_.UVKind,a,!1,!1),r.updateVerticesData(_.PositionKind,n,!1,!1)),this._computeBoundingBox&&(r.hasBoundingInfo?r.getBoundingInfo().reConstruct(d,p,r._worldMatrix):r.buildBoundingInfo(d,p,r._worldMatrix))),this.afterUpdateParticles(t,e,i),this}dispose(){this.mesh?.dispose(),this.vars=null,this._positions=null,this._indices=null,this._normals=null,this._uvs=null,this._colors=null,this._indices32=null,this._positions32=null,this._uvs32=null,this._colors32=null}refreshVisibleSize(){return this._isVisibilityBoxLocked||this.mesh?.refreshBoundingInfo(),this}setVisibilityBox(t){if(!this.mesh)return;const e=t/2;this.mesh.buildBoundingInfo(new T(-e,-e,-e),new T(e,e,e))}get isAlwaysVisible(){return this._alwaysVisible}set isAlwaysVisible(t){this.mesh&&(this._alwaysVisible=t,this.mesh.alwaysSelectAsActiveMesh=t)}set computeParticleRotation(t){this._computeParticleRotation=t}set computeParticleColor(t){this._computeParticleColor=t}set computeParticleTexture(t){this._computeParticleTexture=t}get computeParticleColor(){return this._computeParticleColor}get computeParticleTexture(){return this._computeParticleTexture}set computeBoundingBox(t){this._computeBoundingBox=t}get computeBoundingBox(){return this._computeBoundingBox}initParticles(){}recycleParticle(t){return t}updateParticle(t){return t}beforeUpdateParticles(t,e,i){}afterUpdateParticles(t,e,i){}}!function(t){t[t.Splat=0]="Splat",t[t.PointCloud=1]="PointCloud",t[t.Mesh=2]="Mesh"}(q||(q={}));class ${constructor(t=$._DefaultLoadingOptions){this.name=E.name,this._assetContainer=null,this.extensions=E.extensions,this._loadingOptions=t}createPlugin(t){return new $(t[E.name])}async importMeshAsync(t,e,i,s,r,o){return this._parse(t,e,i,s).then((t=>({meshes:t,particleSystems:[],skeletons:[],animationGroups:[],transformNodes:[],geometries:[],lights:[],spriteManagers:[]})))}static _BuildPointCloud(t,e){if(!e.byteLength)return!1;const i=new Uint8Array(e),s=new Float32Array(e),r=i.length/32;return t.addPoints(r,(function(t,e){const r=s[8*e+0],o=s[8*e+1],n=s[8*e+2];t.position=new T(r,o,n);const a=i[32*e+24+0]/255,c=i[32*e+24+1]/255,l=i[32*e+24+2]/255;t.color=new C(a,c,l,1)})),!0}static _BuildMesh(t,e){const i=new f("PLYMesh",t),s=new Uint8Array(e.data),r=new Float32Array(e.data),o=s.length/32,n=[],a=new x;for(let t=0;t<o;t++){const e=r[8*t+0],i=r[8*t+1],s=r[8*t+2];n.push(e,i,s)}if(e.hasVertexColors){const t=new Float32Array(4*o);for(let e=0;e<o;e++){const i=s[32*e+24+0]/255,r=s[32*e+24+1]/255,o=s[32*e+24+2]/255;t[4*e+0]=i,t[4*e+1]=r,t[4*e+2]=o,t[4*e+3]=1}a.colors=t}return a.positions=n,a.indices=e.faces,a.applyToMesh(i),i}_parse(t,e,i,s){const r=[],o=$._ConvertPLYToSplat(i);switch(o.mode){case 0:{const t=new j("GaussianSplatting",null,e,this._loadingOptions.keepInRam);t._parentContainer=this._assetContainer,r.push(t),t.loadDataAsync(o.data)}break;case 1:{const t=new Q("PointCloud",1,e);if($._BuildPointCloud(t,o.data))return Promise.all([t.buildMeshAsync()]).then((t=>(r.push(t[0]),r)));t.dispose()}break;case 2:if(!o.faces)throw new Error("PLY mesh doesn't contain face informations.");r.push($._BuildMesh(e,o));break;default:throw new Error("Unsupported Splat mode")}return Promise.resolve(r)}loadAssetContainerAsync(t,e,i){const s=new Z(t);return this._assetContainer=s,this.importMeshAsync(null,t,e,i).then((t=>(t.meshes.forEach((t=>s.meshes.push(t))),this._assetContainer=null,s))).catch((t=>{throw this._assetContainer=null,t}))}loadAsync(t,e,i){return this.importMeshAsync(null,t,e,i).then((()=>{}))}static _ConvertPLYToSplat(t){const e=new Uint8Array(t),i=(new TextDecoder).decode(e.slice(0,10240)),s="end_header\n",r=i.indexOf(s);if(r<0||!i)return{mode:0,data:t};const o=parseInt(/element vertex (\d+)\n/.exec(i)[1]),n=/element face (\d+)\n/.exec(i);let a=0;n&&(a=parseInt(n[1]));let c=0;const l={double:8,int:4,uint:4,float:4,short:2,ushort:2,uchar:1,list:0},h=[],u=i.slice(0,r).split("\n").filter((t=>t.startsWith("property ")));for(const t of u){const[,e,i]=t.split(" ");h.push({name:i,type:e,offset:c}),l[e]?c+=l[e]:w.Warn(`Unsupported property type: ${e}.`)}const d=.28209479177387814,p=new DataView(t,r+11),m=new ArrayBuffer(32*o),_=new R;for(let t=0;t<o;t++){const e=new Float32Array(m,32*t,3),i=new Float32Array(m,32*t+12,3),s=new Uint8ClampedArray(m,32*t+24,4),r=new Uint8ClampedArray(m,32*t+28,4);let o=255,n=0,a=0,l=0;for(let r=0;r<h.length;r++){const u=h[r];let m;switch(u.type){case"float":m=p.getFloat32(u.offset+t*c,!0);break;case"int":m=p.getInt32(u.offset+t*c,!0);break;case"uint":m=p.getUint32(u.offset+t*c,!0);break;case"double":m=p.getFloat64(u.offset+t*c,!0);break;case"uchar":m=p.getUint8(u.offset+t*c);break;default:continue}switch(u.name){case"x":e[0]=m;break;case"y":e[1]=m;break;case"z":e[2]=m;break;case"scale_0":i[0]=Math.exp(m);break;case"scale_1":i[1]=Math.exp(m);break;case"scale_2":i[2]=Math.exp(m);break;case"diffuse_red":case"red":s[0]=m;break;case"diffuse_green":case"green":s[1]=m;break;case"diffuse_blue":case"blue":s[2]=m;break;case"f_dc_0":s[0]=255*(.5+d*m);break;case"f_dc_1":s[1]=255*(.5+d*m);break;case"f_dc_2":s[2]=255*(.5+d*m);break;case"f_dc_3":s[3]=255*(.5+d*m);break;case"opacity":s[3]=1/(1+Math.exp(-m))*255;break;case"rot_0":o=m;break;case"rot_1":n=m;break;case"rot_2":a=m;break;case"rot_3":l=m}}_.set(n,a,l,o),_.normalize(),r[0]=128*_.w+128,r[1]=128*_.x+128,r[2]=128*_.y+128,r[3]=128*_.z+128}const f=[];if(a){let t=c*o;for(let e=0;e<a;e++){const e=p.getUint8(t);if(3==e){t+=1;for(let i=0;i<e;i++){const e=p.getUint32(t+4*(2-i),!0);f.push(e)}t+=12}}}let g=0,x=0;const y=["x","y","z","scale_0","scale_1","scale_2","opacity","rot_0","rot_1","rot_2","rot_3"],v=["red","green","blue","f_dc_0","f_dc_1","f_dc_2"];for(let t=0;t<h.length;t++){const e=h[t];y.includes(e.name)&&g++,v.includes(e.name)&&x++}const T=g==y.length&&3==x;return{mode:a?2:T?0:1,data:m,faces:f,hasVertexColors:!!x}}}$._DefaultLoadingOptions={keepInRam:!1},L(new $);export{$ as SPLATFileLoader};
2
+ //# sourceMappingURL=splatFileLoader-BOlEs8up.esm.min.js.map