@babylonjs/viewer 7.40.0 → 7.40.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 (615) hide show
  1. package/assets/photoStudio.env +0 -0
  2. package/dist/babylon-viewer.esm.js +2 -0
  3. package/dist/babylon-viewer.esm.js.map +1 -0
  4. package/dist/babylon-viewer.esm.min.js +2 -0
  5. package/dist/babylon-viewer.esm.min.js.map +1 -0
  6. package/dist/chunks/EXT_lights_ies-gxFyrTPG.esm.min.js +2 -0
  7. package/dist/chunks/EXT_lights_ies-gxFyrTPG.esm.min.js.map +1 -0
  8. package/dist/chunks/EXT_lights_ies-pE68tmBj.esm.js +84 -0
  9. package/dist/chunks/EXT_lights_ies-pE68tmBj.esm.js.map +1 -0
  10. package/dist/chunks/EXT_lights_image_based-B8Oal0Ur.esm.min.js +2 -0
  11. package/dist/chunks/EXT_lights_image_based-B8Oal0Ur.esm.min.js.map +1 -0
  12. package/dist/chunks/EXT_lights_image_based-CmP_ZGlF.esm.js +171 -0
  13. package/dist/chunks/EXT_lights_image_based-CmP_ZGlF.esm.js.map +1 -0
  14. package/dist/chunks/EXT_mesh_gpu_instancing-DSFpOud_.esm.min.js +2 -0
  15. package/dist/chunks/EXT_mesh_gpu_instancing-DSFpOud_.esm.min.js.map +1 -0
  16. package/dist/chunks/EXT_mesh_gpu_instancing-DksAVeyV.esm.js +86 -0
  17. package/dist/chunks/EXT_mesh_gpu_instancing-DksAVeyV.esm.js.map +1 -0
  18. package/dist/chunks/EXT_meshopt_compression-CNUItnkN.esm.min.js +2 -0
  19. package/dist/chunks/EXT_meshopt_compression-CNUItnkN.esm.min.js.map +1 -0
  20. package/dist/chunks/EXT_meshopt_compression-CeM-AELC.esm.js +134 -0
  21. package/dist/chunks/EXT_meshopt_compression-CeM-AELC.esm.js.map +1 -0
  22. package/dist/chunks/EXT_texture_avif-BWOJV_Yf.esm.js +44 -0
  23. package/dist/chunks/EXT_texture_avif-BWOJV_Yf.esm.js.map +1 -0
  24. package/dist/chunks/EXT_texture_avif-CSTfqZHT.esm.min.js +2 -0
  25. package/dist/chunks/EXT_texture_avif-CSTfqZHT.esm.min.js.map +1 -0
  26. package/dist/chunks/EXT_texture_webp-4Pxv5jC9.esm.min.js +2 -0
  27. package/dist/chunks/EXT_texture_webp-4Pxv5jC9.esm.min.js.map +1 -0
  28. package/dist/chunks/EXT_texture_webp-C9og1YZL.esm.js +43 -0
  29. package/dist/chunks/EXT_texture_webp-C9og1YZL.esm.js.map +1 -0
  30. package/dist/chunks/ExtrasAsMetadata-BmFy6ZgN.esm.js +64 -0
  31. package/dist/chunks/ExtrasAsMetadata-BmFy6ZgN.esm.js.map +1 -0
  32. package/dist/chunks/ExtrasAsMetadata-BwYwFtj7.esm.min.js +2 -0
  33. package/dist/chunks/ExtrasAsMetadata-BwYwFtj7.esm.min.js.map +1 -0
  34. package/dist/chunks/KHR_animation_pointer-BM2iOlKg.esm.js +352 -0
  35. package/dist/chunks/KHR_animation_pointer-BM2iOlKg.esm.js.map +1 -0
  36. package/dist/chunks/KHR_animation_pointer-C7FvhqL3.esm.min.js +2 -0
  37. package/dist/chunks/KHR_animation_pointer-C7FvhqL3.esm.min.js.map +1 -0
  38. package/dist/chunks/KHR_draco_mesh_compression-BocaEHGh.esm.js +617 -0
  39. package/dist/chunks/KHR_draco_mesh_compression-BocaEHGh.esm.js.map +1 -0
  40. package/dist/chunks/KHR_draco_mesh_compression-CjRCmIUz.esm.min.js +2 -0
  41. package/dist/chunks/KHR_draco_mesh_compression-CjRCmIUz.esm.min.js.map +1 -0
  42. package/dist/chunks/KHR_interactivity-C_ndoQHo.esm.min.js +2 -0
  43. package/dist/chunks/KHR_interactivity-C_ndoQHo.esm.min.js.map +1 -0
  44. package/dist/chunks/KHR_interactivity-ClHXW_8S.esm.js +4033 -0
  45. package/dist/chunks/KHR_interactivity-ClHXW_8S.esm.js.map +1 -0
  46. package/dist/chunks/KHR_lights_punctual-D0u7ZFj4.esm.js +581 -0
  47. package/dist/chunks/KHR_lights_punctual-D0u7ZFj4.esm.js.map +1 -0
  48. package/dist/chunks/KHR_lights_punctual-Z509RdIo.esm.min.js +2 -0
  49. package/dist/chunks/KHR_lights_punctual-Z509RdIo.esm.min.js.map +1 -0
  50. package/dist/chunks/KHR_materials_anisotropy-Dz4vBqG3.esm.min.js +2 -0
  51. package/dist/chunks/KHR_materials_anisotropy-Dz4vBqG3.esm.min.js.map +1 -0
  52. package/dist/chunks/KHR_materials_anisotropy-VuLS4v3P.esm.js +65 -0
  53. package/dist/chunks/KHR_materials_anisotropy-VuLS4v3P.esm.js.map +1 -0
  54. package/dist/chunks/KHR_materials_clearcoat-DM7vCrC3.esm.min.js +2 -0
  55. package/dist/chunks/KHR_materials_clearcoat-DM7vCrC3.esm.min.js.map +1 -0
  56. package/dist/chunks/KHR_materials_clearcoat-Dt0nQ5Ky.esm.js +96 -0
  57. package/dist/chunks/KHR_materials_clearcoat-Dt0nQ5Ky.esm.js.map +1 -0
  58. package/dist/chunks/KHR_materials_diffuse_transmission-1Pa4ScwD.esm.min.js +2 -0
  59. package/dist/chunks/KHR_materials_diffuse_transmission-1Pa4ScwD.esm.min.js.map +1 -0
  60. package/dist/chunks/KHR_materials_diffuse_transmission-DIUHVeOQ.esm.js +97 -0
  61. package/dist/chunks/KHR_materials_diffuse_transmission-DIUHVeOQ.esm.js.map +1 -0
  62. package/dist/chunks/KHR_materials_dispersion-CMpGZsUw.esm.min.js +2 -0
  63. package/dist/chunks/KHR_materials_dispersion-CMpGZsUw.esm.min.js.map +1 -0
  64. package/dist/chunks/KHR_materials_dispersion-CeSj8nUI.esm.js +62 -0
  65. package/dist/chunks/KHR_materials_dispersion-CeSj8nUI.esm.js.map +1 -0
  66. package/dist/chunks/KHR_materials_emissive_strength-CQQX31qK.esm.js +55 -0
  67. package/dist/chunks/KHR_materials_emissive_strength-CQQX31qK.esm.js.map +1 -0
  68. package/dist/chunks/KHR_materials_emissive_strength-DH4A4kIp.esm.min.js +2 -0
  69. package/dist/chunks/KHR_materials_emissive_strength-DH4A4kIp.esm.min.js.map +1 -0
  70. package/dist/chunks/KHR_materials_ior-BTU1gw-j.esm.js +64 -0
  71. package/dist/chunks/KHR_materials_ior-BTU1gw-j.esm.js.map +1 -0
  72. package/dist/chunks/KHR_materials_ior-DyzPdK6b.esm.min.js +2 -0
  73. package/dist/chunks/KHR_materials_ior-DyzPdK6b.esm.min.js.map +1 -0
  74. package/dist/chunks/KHR_materials_iridescence-8ZgbULX5.esm.min.js +2 -0
  75. package/dist/chunks/KHR_materials_iridescence-8ZgbULX5.esm.min.js.map +1 -0
  76. package/dist/chunks/KHR_materials_iridescence-D2HCEadq.esm.js +72 -0
  77. package/dist/chunks/KHR_materials_iridescence-D2HCEadq.esm.js.map +1 -0
  78. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-C4K79VpA.esm.min.js +2 -0
  79. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-C4K79VpA.esm.min.js.map +1 -0
  80. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DtJVJ-gl.esm.js +81 -0
  81. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DtJVJ-gl.esm.js.map +1 -0
  82. package/dist/chunks/KHR_materials_sheen-CT4KjW_v.esm.js +85 -0
  83. package/dist/chunks/KHR_materials_sheen-CT4KjW_v.esm.js.map +1 -0
  84. package/dist/chunks/KHR_materials_sheen-DQt5abo-.esm.min.js +2 -0
  85. package/dist/chunks/KHR_materials_sheen-DQt5abo-.esm.min.js.map +1 -0
  86. package/dist/chunks/KHR_materials_specular-CCvL1awH.esm.min.js +2 -0
  87. package/dist/chunks/KHR_materials_specular-CCvL1awH.esm.min.js.map +1 -0
  88. package/dist/chunks/KHR_materials_specular-CgLKBQCa.esm.js +75 -0
  89. package/dist/chunks/KHR_materials_specular-CgLKBQCa.esm.js.map +1 -0
  90. package/dist/chunks/KHR_materials_transmission-B64oDwox.esm.js +307 -0
  91. package/dist/chunks/KHR_materials_transmission-B64oDwox.esm.js.map +1 -0
  92. package/dist/chunks/KHR_materials_transmission-C6yPYKde.esm.min.js +2 -0
  93. package/dist/chunks/KHR_materials_transmission-C6yPYKde.esm.min.js.map +1 -0
  94. package/dist/chunks/KHR_materials_unlit-BGPDq328.esm.js +74 -0
  95. package/dist/chunks/KHR_materials_unlit-BGPDq328.esm.js.map +1 -0
  96. package/dist/chunks/KHR_materials_unlit-Sz3qCEGr.esm.min.js +2 -0
  97. package/dist/chunks/KHR_materials_unlit-Sz3qCEGr.esm.min.js.map +1 -0
  98. package/dist/chunks/KHR_materials_variants-Cqw7xft3.esm.min.js +2 -0
  99. package/dist/chunks/KHR_materials_variants-Cqw7xft3.esm.min.js.map +1 -0
  100. package/dist/chunks/KHR_materials_variants-D7rYTNoB.esm.js +262 -0
  101. package/dist/chunks/KHR_materials_variants-D7rYTNoB.esm.js.map +1 -0
  102. package/dist/chunks/KHR_materials_volume-BBsNt0LM.esm.js +87 -0
  103. package/dist/chunks/KHR_materials_volume-BBsNt0LM.esm.js.map +1 -0
  104. package/dist/chunks/KHR_materials_volume-DfWO7kG_.esm.min.js +2 -0
  105. package/dist/chunks/KHR_materials_volume-DfWO7kG_.esm.min.js.map +1 -0
  106. package/dist/chunks/KHR_mesh_quantization-BiDGkiGh.esm.min.js +2 -0
  107. package/dist/chunks/KHR_mesh_quantization-BiDGkiGh.esm.min.js.map +1 -0
  108. package/dist/chunks/KHR_mesh_quantization-fE1qitjF.esm.js +26 -0
  109. package/dist/chunks/KHR_mesh_quantization-fE1qitjF.esm.js.map +1 -0
  110. package/dist/chunks/KHR_node_hoverability-DaOK-Y48.esm.min.js +2 -0
  111. package/dist/chunks/KHR_node_hoverability-DaOK-Y48.esm.min.js.map +1 -0
  112. package/dist/chunks/KHR_node_hoverability-glogCdHq.esm.js +39 -0
  113. package/dist/chunks/KHR_node_hoverability-glogCdHq.esm.js.map +1 -0
  114. package/dist/chunks/KHR_node_visibility-BCVXn2la.esm.min.js +2 -0
  115. package/dist/chunks/KHR_node_visibility-BCVXn2la.esm.min.js.map +1 -0
  116. package/dist/chunks/KHR_node_visibility-CCfVtnan.esm.js +46 -0
  117. package/dist/chunks/KHR_node_visibility-CCfVtnan.esm.js.map +1 -0
  118. package/dist/chunks/KHR_texture_basisu-_cpZJuOo.esm.min.js +2 -0
  119. package/dist/chunks/KHR_texture_basisu-_cpZJuOo.esm.min.js.map +1 -0
  120. package/dist/chunks/KHR_texture_basisu-nhRrTq0b.esm.js +43 -0
  121. package/dist/chunks/KHR_texture_basisu-nhRrTq0b.esm.js.map +1 -0
  122. package/dist/chunks/KHR_texture_transform-AgI_J0Ru.esm.js +63 -0
  123. package/dist/chunks/KHR_texture_transform-AgI_J0Ru.esm.js.map +1 -0
  124. package/dist/chunks/KHR_texture_transform-CgcA7bhJ.esm.min.js +2 -0
  125. package/dist/chunks/KHR_texture_transform-CgcA7bhJ.esm.min.js.map +1 -0
  126. package/dist/chunks/KHR_xmp_json_ld-C37VZwlU.esm.min.js +2 -0
  127. package/dist/chunks/KHR_xmp_json_ld-C37VZwlU.esm.min.js.map +1 -0
  128. package/dist/chunks/KHR_xmp_json_ld-Cm4z6qFH.esm.js +51 -0
  129. package/dist/chunks/KHR_xmp_json_ld-Cm4z6qFH.esm.js.map +1 -0
  130. package/dist/chunks/MSFT_audio_emitter-4EFTMS8D.esm.js +2207 -0
  131. package/dist/chunks/MSFT_audio_emitter-4EFTMS8D.esm.js.map +1 -0
  132. package/dist/chunks/MSFT_audio_emitter-Czn1DAbD.esm.min.js +2 -0
  133. package/dist/chunks/MSFT_audio_emitter-Czn1DAbD.esm.min.js.map +1 -0
  134. package/dist/chunks/MSFT_lod-Bn4FnO5A.esm.js +337 -0
  135. package/dist/chunks/MSFT_lod-Bn4FnO5A.esm.js.map +1 -0
  136. package/dist/chunks/MSFT_lod-DDB-SKXR.esm.min.js +2 -0
  137. package/dist/chunks/MSFT_lod-DDB-SKXR.esm.min.js.map +1 -0
  138. package/dist/chunks/MSFT_minecraftMesh-APRwcxWb.esm.min.js +2 -0
  139. package/dist/chunks/MSFT_minecraftMesh-APRwcxWb.esm.min.js.map +1 -0
  140. package/dist/chunks/MSFT_minecraftMesh-DPvby_FZ.esm.js +46 -0
  141. package/dist/chunks/MSFT_minecraftMesh-DPvby_FZ.esm.js.map +1 -0
  142. package/dist/chunks/MSFT_sRGBFactors-D33sXFGi.esm.js +47 -0
  143. package/dist/chunks/MSFT_sRGBFactors-D33sXFGi.esm.js.map +1 -0
  144. package/dist/chunks/MSFT_sRGBFactors-OsUqZSue.esm.min.js +2 -0
  145. package/dist/chunks/MSFT_sRGBFactors-OsUqZSue.esm.min.js.map +1 -0
  146. package/dist/chunks/animationGroup-BR3zskS8.esm.js +2482 -0
  147. package/dist/chunks/animationGroup-BR3zskS8.esm.js.map +1 -0
  148. package/dist/chunks/animationGroup-ChIp5GuO.esm.min.js +2 -0
  149. package/dist/chunks/animationGroup-ChIp5GuO.esm.min.js.map +1 -0
  150. package/dist/chunks/assetContainer-DLSDgjTx.esm.min.js +2 -0
  151. package/dist/chunks/assetContainer-DLSDgjTx.esm.min.js.map +1 -0
  152. package/dist/chunks/assetContainer-cm8rvay3.esm.js +1720 -0
  153. package/dist/chunks/assetContainer-cm8rvay3.esm.js.map +1 -0
  154. package/dist/chunks/audioEngine-Cx5dB73O.esm.js +305 -0
  155. package/dist/chunks/audioEngine-Cx5dB73O.esm.js.map +1 -0
  156. package/dist/chunks/audioEngine-hKZ2m0jY.esm.min.js +2 -0
  157. package/dist/chunks/audioEngine-hKZ2m0jY.esm.min.js.map +1 -0
  158. package/dist/chunks/bakedVertexAnimation-BCUFE4CP.esm.min.js +2 -0
  159. package/dist/chunks/bakedVertexAnimation-BCUFE4CP.esm.min.js.map +1 -0
  160. package/dist/chunks/bakedVertexAnimation-ByPKjjzz.esm.js +114 -0
  161. package/dist/chunks/bakedVertexAnimation-ByPKjjzz.esm.js.map +1 -0
  162. package/dist/chunks/basisTextureLoader-BIqCbGFg.esm.min.js +2 -0
  163. package/dist/chunks/basisTextureLoader-BIqCbGFg.esm.min.js.map +1 -0
  164. package/dist/chunks/basisTextureLoader-CT8X4ynA.esm.js +600 -0
  165. package/dist/chunks/basisTextureLoader-CT8X4ynA.esm.js.map +1 -0
  166. package/dist/chunks/dds-BDOPTCsA.esm.min.js +2 -0
  167. package/dist/chunks/dds-BDOPTCsA.esm.min.js.map +1 -0
  168. package/dist/chunks/dds-BYrGO6eI.esm.js +540 -0
  169. package/dist/chunks/dds-BYrGO6eI.esm.js.map +1 -0
  170. package/dist/chunks/ddsTextureLoader-BbrffKmM.esm.min.js +2 -0
  171. package/dist/chunks/ddsTextureLoader-BbrffKmM.esm.min.js.map +1 -0
  172. package/dist/chunks/ddsTextureLoader-C36kkIBH.esm.js +88 -0
  173. package/dist/chunks/ddsTextureLoader-C36kkIBH.esm.js.map +1 -0
  174. package/dist/chunks/decalFragment-07cq9QvS.esm.min.js +2 -0
  175. package/dist/chunks/decalFragment-07cq9QvS.esm.min.js.map +1 -0
  176. package/dist/chunks/decalFragment-B16Nfnl3.esm.js +18 -0
  177. package/dist/chunks/decalFragment-B16Nfnl3.esm.js.map +1 -0
  178. package/dist/chunks/default.fragment-BkjbMxBE.esm.min.js +2 -0
  179. package/dist/chunks/default.fragment-BkjbMxBE.esm.min.js.map +1 -0
  180. package/dist/chunks/default.fragment-C-8jVS2k.esm.min.js +2 -0
  181. package/dist/chunks/default.fragment-C-8jVS2k.esm.min.js.map +1 -0
  182. package/dist/chunks/default.fragment-C3Pectqi.esm.js +515 -0
  183. package/dist/chunks/default.fragment-C3Pectqi.esm.js.map +1 -0
  184. package/dist/chunks/default.fragment-D3LhG5le.esm.js +446 -0
  185. package/dist/chunks/default.fragment-D3LhG5le.esm.js.map +1 -0
  186. package/dist/chunks/default.vertex-CPx_2Z0S.esm.js +181 -0
  187. package/dist/chunks/default.vertex-CPx_2Z0S.esm.js.map +1 -0
  188. package/dist/chunks/default.vertex-CVMUuXku.esm.js +202 -0
  189. package/dist/chunks/default.vertex-CVMUuXku.esm.js.map +1 -0
  190. package/dist/chunks/default.vertex-CbVQZVXB.esm.min.js +2 -0
  191. package/dist/chunks/default.vertex-CbVQZVXB.esm.min.js.map +1 -0
  192. package/dist/chunks/default.vertex-S3Wv9p0Q.esm.min.js +2 -0
  193. package/dist/chunks/default.vertex-S3Wv9p0Q.esm.min.js.map +1 -0
  194. package/dist/chunks/defaultUboDeclaration-BdxOUPT0.esm.min.js +2 -0
  195. package/dist/chunks/defaultUboDeclaration-BdxOUPT0.esm.min.js.map +1 -0
  196. package/dist/chunks/defaultUboDeclaration-CUaZKOKG.esm.min.js +2 -0
  197. package/dist/chunks/defaultUboDeclaration-CUaZKOKG.esm.min.js.map +1 -0
  198. package/dist/chunks/defaultUboDeclaration-DdcmVbYg.esm.js +15 -0
  199. package/dist/chunks/defaultUboDeclaration-DdcmVbYg.esm.js.map +1 -0
  200. package/dist/chunks/defaultUboDeclaration-rLhenj1H.esm.js +13 -0
  201. package/dist/chunks/defaultUboDeclaration-rLhenj1H.esm.js.map +1 -0
  202. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +11 -0
  203. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +1 -0
  204. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +2 -0
  205. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +1 -0
  206. package/dist/chunks/dumpTools-CPmY0U7D.esm.js +200 -0
  207. package/dist/chunks/dumpTools-CPmY0U7D.esm.js.map +1 -0
  208. package/dist/chunks/dumpTools-DVDwJ2sz.esm.min.js +2 -0
  209. package/dist/chunks/dumpTools-DVDwJ2sz.esm.min.js.map +1 -0
  210. package/dist/chunks/engine-BqSrdURz.esm.min.js +2 -0
  211. package/dist/chunks/engine-BqSrdURz.esm.min.js.map +1 -0
  212. package/dist/chunks/engine-D_GgT2Nf.esm.js +2216 -0
  213. package/dist/chunks/engine-D_GgT2Nf.esm.js.map +1 -0
  214. package/dist/chunks/engine.common-CN1Lug5p.esm.js +1162 -0
  215. package/dist/chunks/engine.common-CN1Lug5p.esm.js.map +1 -0
  216. package/dist/chunks/engine.common-DgiXKhLy.esm.min.js +2 -0
  217. package/dist/chunks/engine.common-DgiXKhLy.esm.min.js.map +1 -0
  218. package/dist/chunks/envTextureLoader-BORNR9vu.esm.min.js +2 -0
  219. package/dist/chunks/envTextureLoader-BORNR9vu.esm.min.js.map +1 -0
  220. package/dist/chunks/envTextureLoader-DHwsXTfw.esm.js +64 -0
  221. package/dist/chunks/envTextureLoader-DHwsXTfw.esm.js.map +1 -0
  222. package/dist/chunks/environmentTextureTools-B2vnsFq-.esm.js +382 -0
  223. package/dist/chunks/environmentTextureTools-B2vnsFq-.esm.js.map +1 -0
  224. package/dist/chunks/environmentTextureTools-BYQHZH-c.esm.min.js +2 -0
  225. package/dist/chunks/environmentTextureTools-BYQHZH-c.esm.min.js.map +1 -0
  226. package/dist/chunks/exrTextureLoader-B8FQohBr.esm.js +1683 -0
  227. package/dist/chunks/exrTextureLoader-B8FQohBr.esm.js.map +1 -0
  228. package/dist/chunks/exrTextureLoader-D8xP0GLQ.esm.min.js +2 -0
  229. package/dist/chunks/exrTextureLoader-D8xP0GLQ.esm.min.js.map +1 -0
  230. package/dist/chunks/fogFragment-5YT33bDn.esm.js +102 -0
  231. package/dist/chunks/fogFragment-5YT33bDn.esm.js.map +1 -0
  232. package/dist/chunks/fogFragment-BOBZ2KwN.esm.min.js +2 -0
  233. package/dist/chunks/fogFragment-BOBZ2KwN.esm.min.js.map +1 -0
  234. package/dist/chunks/fogFragment-CLENZGuB.esm.js +101 -0
  235. package/dist/chunks/fogFragment-CLENZGuB.esm.js.map +1 -0
  236. package/dist/chunks/fogFragment-D9dudohA.esm.min.js +2 -0
  237. package/dist/chunks/fogFragment-D9dudohA.esm.min.js.map +1 -0
  238. package/dist/chunks/fresnelFunction-BkO99b6C.esm.js +12 -0
  239. package/dist/chunks/fresnelFunction-BkO99b6C.esm.js.map +1 -0
  240. package/dist/chunks/fresnelFunction-CqiLsMCu.esm.min.js +2 -0
  241. package/dist/chunks/fresnelFunction-CqiLsMCu.esm.min.js.map +1 -0
  242. package/dist/chunks/glTFLoader-CkL-dxBD.esm.min.js +2 -0
  243. package/dist/chunks/glTFLoader-CkL-dxBD.esm.min.js.map +1 -0
  244. package/dist/chunks/glTFLoader-IEHRfiUn.esm.js +7586 -0
  245. package/dist/chunks/glTFLoader-IEHRfiUn.esm.js.map +1 -0
  246. package/dist/chunks/glTFLoaderAnimation-CV32Nmqb.esm.js +77 -0
  247. package/dist/chunks/glTFLoaderAnimation-CV32Nmqb.esm.js.map +1 -0
  248. package/dist/chunks/glTFLoaderAnimation-Cq2ziV9o.esm.min.js +2 -0
  249. package/dist/chunks/glTFLoaderAnimation-Cq2ziV9o.esm.min.js.map +1 -0
  250. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
  251. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
  252. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
  253. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
  254. package/dist/chunks/harmonicsFunctions-B5QCEZvF.esm.js +34 -0
  255. package/dist/chunks/harmonicsFunctions-B5QCEZvF.esm.js.map +1 -0
  256. package/dist/chunks/harmonicsFunctions-BxLCgoIQ.esm.min.js +2 -0
  257. package/dist/chunks/harmonicsFunctions-BxLCgoIQ.esm.min.js.map +1 -0
  258. package/dist/chunks/harmonicsFunctions-Daxnf8NE.esm.min.js +2 -0
  259. package/dist/chunks/harmonicsFunctions-Daxnf8NE.esm.min.js.map +1 -0
  260. package/dist/chunks/harmonicsFunctions-UzG0C-sm.esm.js +35 -0
  261. package/dist/chunks/harmonicsFunctions-UzG0C-sm.esm.js.map +1 -0
  262. package/dist/chunks/hdrTextureLoader-BpVjKGyb.esm.min.js +2 -0
  263. package/dist/chunks/hdrTextureLoader-BpVjKGyb.esm.min.js.map +1 -0
  264. package/dist/chunks/hdrTextureLoader-DgW8CxRF.esm.js +253 -0
  265. package/dist/chunks/hdrTextureLoader-DgW8CxRF.esm.js.map +1 -0
  266. package/dist/chunks/helperFunctions-BFgvMG5S.esm.min.js +2 -0
  267. package/dist/chunks/helperFunctions-BFgvMG5S.esm.min.js.map +1 -0
  268. package/dist/chunks/helperFunctions-BatAhE6u.esm.js +108 -0
  269. package/dist/chunks/helperFunctions-BatAhE6u.esm.js.map +1 -0
  270. package/dist/chunks/helperFunctions-qECwmiwu.esm.min.js +2 -0
  271. package/dist/chunks/helperFunctions-qECwmiwu.esm.min.js.map +1 -0
  272. package/dist/chunks/helperFunctions-vbA-oTJx.esm.js +80 -0
  273. package/dist/chunks/helperFunctions-vbA-oTJx.esm.js.map +1 -0
  274. package/dist/chunks/iesTextureLoader-Ccd5pvbh.esm.min.js +2 -0
  275. package/dist/chunks/iesTextureLoader-Ccd5pvbh.esm.min.js.map +1 -0
  276. package/dist/chunks/iesTextureLoader-nMYnOfhm.esm.js +189 -0
  277. package/dist/chunks/iesTextureLoader-nMYnOfhm.esm.js.map +1 -0
  278. package/dist/chunks/index-BHIM4QBr.esm.min.js +57 -0
  279. package/dist/chunks/index-BHIM4QBr.esm.min.js.map +1 -0
  280. package/dist/chunks/index-CtkZLm9J.esm.js +74717 -0
  281. package/dist/chunks/index-CtkZLm9J.esm.js.map +1 -0
  282. package/dist/chunks/ktxTextureLoader-CkkvHzY3.esm.js +814 -0
  283. package/dist/chunks/ktxTextureLoader-CkkvHzY3.esm.js.map +1 -0
  284. package/dist/chunks/ktxTextureLoader-CwGlHia2.esm.min.js +2 -0
  285. package/dist/chunks/ktxTextureLoader-CwGlHia2.esm.min.js.map +1 -0
  286. package/dist/chunks/logDepthDeclaration-BiUSPlzz.esm.js +35 -0
  287. package/dist/chunks/logDepthDeclaration-BiUSPlzz.esm.js.map +1 -0
  288. package/dist/chunks/logDepthDeclaration-Bq2fzMbS.esm.js +11 -0
  289. package/dist/chunks/logDepthDeclaration-Bq2fzMbS.esm.js.map +1 -0
  290. package/dist/chunks/logDepthDeclaration-C8DJP16D.esm.min.js +2 -0
  291. package/dist/chunks/logDepthDeclaration-C8DJP16D.esm.min.js.map +1 -0
  292. package/dist/chunks/logDepthDeclaration-DJpvEdPG.esm.min.js +2 -0
  293. package/dist/chunks/logDepthDeclaration-DJpvEdPG.esm.min.js.map +1 -0
  294. package/dist/chunks/logDepthVertex-C00_obGd.esm.min.js +2 -0
  295. package/dist/chunks/logDepthVertex-C00_obGd.esm.min.js.map +1 -0
  296. package/dist/chunks/logDepthVertex-CYIGBMYd.esm.js +77 -0
  297. package/dist/chunks/logDepthVertex-CYIGBMYd.esm.js.map +1 -0
  298. package/dist/chunks/logDepthVertex-CxT8FVOf.esm.js +81 -0
  299. package/dist/chunks/logDepthVertex-CxT8FVOf.esm.js.map +1 -0
  300. package/dist/chunks/logDepthVertex-SyM_Fu5K.esm.min.js +2 -0
  301. package/dist/chunks/logDepthVertex-SyM_Fu5K.esm.min.js.map +1 -0
  302. package/dist/chunks/mainUVVaryingDeclaration-BaIG4IFB.esm.js +11 -0
  303. package/dist/chunks/mainUVVaryingDeclaration-BaIG4IFB.esm.js.map +1 -0
  304. package/dist/chunks/mainUVVaryingDeclaration-CQzOmEIM.esm.min.js +2 -0
  305. package/dist/chunks/mainUVVaryingDeclaration-CQzOmEIM.esm.min.js.map +1 -0
  306. package/dist/chunks/mainUVVaryingDeclaration-D100Qvmm.esm.min.js +2 -0
  307. package/dist/chunks/mainUVVaryingDeclaration-D100Qvmm.esm.min.js.map +1 -0
  308. package/dist/chunks/mainUVVaryingDeclaration-OSD7irdC.esm.js +11 -0
  309. package/dist/chunks/mainUVVaryingDeclaration-OSD7irdC.esm.js.map +1 -0
  310. package/dist/chunks/meshUboDeclaration--wzKOTOT.esm.min.js +2 -0
  311. package/dist/chunks/meshUboDeclaration--wzKOTOT.esm.min.js.map +1 -0
  312. package/dist/chunks/meshUboDeclaration-DIi9ZPDc.esm.js +26 -0
  313. package/dist/chunks/meshUboDeclaration-DIi9ZPDc.esm.js.map +1 -0
  314. package/dist/chunks/objFileLoader-Cda8pwUd.esm.js +1338 -0
  315. package/dist/chunks/objFileLoader-Cda8pwUd.esm.js.map +1 -0
  316. package/dist/chunks/objFileLoader-kzI-pZ8o.esm.min.js +2 -0
  317. package/dist/chunks/objFileLoader-kzI-pZ8o.esm.min.js.map +1 -0
  318. package/dist/chunks/oitFragment-4cP4dKVP.esm.min.js +2 -0
  319. package/dist/chunks/oitFragment-4cP4dKVP.esm.min.js.map +1 -0
  320. package/dist/chunks/oitFragment-Bz1w36ia.esm.js +1078 -0
  321. package/dist/chunks/oitFragment-Bz1w36ia.esm.js.map +1 -0
  322. package/dist/chunks/oitFragment-DUkW-kmb.esm.min.js +2 -0
  323. package/dist/chunks/oitFragment-DUkW-kmb.esm.min.js.map +1 -0
  324. package/dist/chunks/oitFragment-DiuTTpNa.esm.js +1240 -0
  325. package/dist/chunks/oitFragment-DiuTTpNa.esm.js.map +1 -0
  326. package/dist/chunks/pass.fragment-B8l5NRgR.esm.min.js +2 -0
  327. package/dist/chunks/pass.fragment-B8l5NRgR.esm.min.js.map +1 -0
  328. package/dist/chunks/pass.fragment-BF4UEoT8.esm.min.js +2 -0
  329. package/dist/chunks/pass.fragment-BF4UEoT8.esm.min.js.map +1 -0
  330. package/dist/chunks/pass.fragment-CD3_26yo.esm.js +15 -0
  331. package/dist/chunks/pass.fragment-CD3_26yo.esm.js.map +1 -0
  332. package/dist/chunks/pass.fragment-DfeELUEn.esm.js +15 -0
  333. package/dist/chunks/pass.fragment-DfeELUEn.esm.js.map +1 -0
  334. package/dist/chunks/pbr.fragment-BDylAp64.esm.min.js +2 -0
  335. package/dist/chunks/pbr.fragment-BDylAp64.esm.min.js.map +1 -0
  336. package/dist/chunks/pbr.fragment-C1qko419.esm.min.js +2 -0
  337. package/dist/chunks/pbr.fragment-C1qko419.esm.min.js.map +1 -0
  338. package/dist/chunks/pbr.fragment-EBVxSAEQ.esm.js +3232 -0
  339. package/dist/chunks/pbr.fragment-EBVxSAEQ.esm.js.map +1 -0
  340. package/dist/chunks/pbr.fragment-lt62m8b7.esm.js +3273 -0
  341. package/dist/chunks/pbr.fragment-lt62m8b7.esm.js.map +1 -0
  342. package/dist/chunks/pbr.vertex-CGRL_eY2.esm.js +339 -0
  343. package/dist/chunks/pbr.vertex-CGRL_eY2.esm.js.map +1 -0
  344. package/dist/chunks/pbr.vertex-CHv4zeYj.esm.min.js +2 -0
  345. package/dist/chunks/pbr.vertex-CHv4zeYj.esm.min.js.map +1 -0
  346. package/dist/chunks/pbr.vertex-Dk4h9ywZ.esm.min.js +2 -0
  347. package/dist/chunks/pbr.vertex-Dk4h9ywZ.esm.min.js.map +1 -0
  348. package/dist/chunks/pbr.vertex-DopP5mYu.esm.js +214 -0
  349. package/dist/chunks/pbr.vertex-DopP5mYu.esm.js.map +1 -0
  350. package/dist/chunks/postprocess.vertex-Bt30-Flh.esm.min.js +2 -0
  351. package/dist/chunks/postprocess.vertex-Bt30-Flh.esm.min.js.map +1 -0
  352. package/dist/chunks/postprocess.vertex-pLUOpXIY.esm.js +20 -0
  353. package/dist/chunks/postprocess.vertex-pLUOpXIY.esm.js.map +1 -0
  354. package/dist/chunks/rawTexture-78KJgWfq.esm.js +191 -0
  355. package/dist/chunks/rawTexture-78KJgWfq.esm.js.map +1 -0
  356. package/dist/chunks/rawTexture-CCCnj14W.esm.min.js +2 -0
  357. package/dist/chunks/rawTexture-CCCnj14W.esm.min.js.map +1 -0
  358. package/dist/chunks/ray-CfhmGTmj.esm.js +946 -0
  359. package/dist/chunks/ray-CfhmGTmj.esm.js.map +1 -0
  360. package/dist/chunks/ray-Du89cGmz.esm.min.js +2 -0
  361. package/dist/chunks/ray-Du89cGmz.esm.min.js.map +1 -0
  362. package/dist/chunks/rgbdDecode.fragment-BHAQKD_5.esm.js +13 -0
  363. package/dist/chunks/rgbdDecode.fragment-BHAQKD_5.esm.js.map +1 -0
  364. package/dist/chunks/rgbdDecode.fragment-CV6q4aIi.esm.js +13 -0
  365. package/dist/chunks/rgbdDecode.fragment-CV6q4aIi.esm.js.map +1 -0
  366. package/dist/chunks/rgbdDecode.fragment-DEu4F_6T.esm.min.js +2 -0
  367. package/dist/chunks/rgbdDecode.fragment-DEu4F_6T.esm.min.js.map +1 -0
  368. package/dist/chunks/rgbdDecode.fragment-DiJfgZKv.esm.min.js +2 -0
  369. package/dist/chunks/rgbdDecode.fragment-DiJfgZKv.esm.min.js.map +1 -0
  370. package/dist/chunks/rgbdEncode.fragment-CR30N0Mr.esm.js +13 -0
  371. package/dist/chunks/rgbdEncode.fragment-CR30N0Mr.esm.js.map +1 -0
  372. package/dist/chunks/rgbdEncode.fragment-CUE3DGC8.esm.min.js +2 -0
  373. package/dist/chunks/rgbdEncode.fragment-CUE3DGC8.esm.min.js.map +1 -0
  374. package/dist/chunks/rgbdEncode.fragment-DdFs5QJM.esm.js +13 -0
  375. package/dist/chunks/rgbdEncode.fragment-DdFs5QJM.esm.js.map +1 -0
  376. package/dist/chunks/rgbdEncode.fragment-omm81hdD.esm.min.js +2 -0
  377. package/dist/chunks/rgbdEncode.fragment-omm81hdD.esm.min.js.map +1 -0
  378. package/dist/chunks/splatFileLoader-BnaOhITn.esm.js +3379 -0
  379. package/dist/chunks/splatFileLoader-BnaOhITn.esm.js.map +1 -0
  380. package/dist/chunks/splatFileLoader-CuMIDOsR.esm.min.js +2 -0
  381. package/dist/chunks/splatFileLoader-CuMIDOsR.esm.min.js.map +1 -0
  382. package/dist/chunks/spotLight-Ca0-j1Op.esm.js +701 -0
  383. package/dist/chunks/spotLight-Ca0-j1Op.esm.js.map +1 -0
  384. package/dist/chunks/spotLight-DXuSbTaJ.esm.min.js +2 -0
  385. package/dist/chunks/spotLight-DXuSbTaJ.esm.min.js.map +1 -0
  386. package/dist/chunks/standardMaterial-DKyaZtcm.esm.js +1805 -0
  387. package/dist/chunks/standardMaterial-DKyaZtcm.esm.js.map +1 -0
  388. package/dist/chunks/standardMaterial-h3ccobBt.esm.min.js +2 -0
  389. package/dist/chunks/standardMaterial-h3ccobBt.esm.min.js.map +1 -0
  390. package/dist/chunks/stlFileLoader-CDv97liE.esm.js +238 -0
  391. package/dist/chunks/stlFileLoader-CDv97liE.esm.js.map +1 -0
  392. package/dist/chunks/stlFileLoader-e2ImyWaM.esm.min.js +2 -0
  393. package/dist/chunks/stlFileLoader-e2ImyWaM.esm.min.js.map +1 -0
  394. package/dist/chunks/tgaTextureLoader-DJaEph-Q.esm.js +349 -0
  395. package/dist/chunks/tgaTextureLoader-DJaEph-Q.esm.js.map +1 -0
  396. package/dist/chunks/tgaTextureLoader-slv-QvZW.esm.min.js +2 -0
  397. package/dist/chunks/tgaTextureLoader-slv-QvZW.esm.min.js.map +1 -0
  398. package/dist/chunks/thinEngine-Ue9ZAvRK.esm.js +3848 -0
  399. package/dist/chunks/thinEngine-Ue9ZAvRK.esm.js.map +1 -0
  400. package/dist/chunks/thinEngine-pihAbdON.esm.min.js +2 -0
  401. package/dist/chunks/thinEngine-pihAbdON.esm.min.js.map +1 -0
  402. package/dist/chunks/thinInstanceMesh-BgfKoejL.esm.min.js +2 -0
  403. package/dist/chunks/thinInstanceMesh-BgfKoejL.esm.min.js.map +1 -0
  404. package/dist/chunks/thinInstanceMesh-V41szD4h.esm.js +314 -0
  405. package/dist/chunks/thinInstanceMesh-V41szD4h.esm.js.map +1 -0
  406. package/dist/chunks/vertexColorMixing-CZsK7mYP.esm.min.js +2 -0
  407. package/dist/chunks/vertexColorMixing-CZsK7mYP.esm.min.js.map +1 -0
  408. package/dist/chunks/vertexColorMixing-DKVusFas.esm.js +522 -0
  409. package/dist/chunks/vertexColorMixing-DKVusFas.esm.js.map +1 -0
  410. package/dist/chunks/vertexColorMixing-DeZKI8QK.esm.js +412 -0
  411. package/dist/chunks/vertexColorMixing-DeZKI8QK.esm.js.map +1 -0
  412. package/dist/chunks/vertexColorMixing-axGN1U7X.esm.min.js +2 -0
  413. package/dist/chunks/vertexColorMixing-axGN1U7X.esm.min.js.map +1 -0
  414. package/dist/chunks/webgpuEngine-COis70hT.esm.js +11533 -0
  415. package/dist/chunks/webgpuEngine-COis70hT.esm.js.map +1 -0
  416. package/dist/chunks/webgpuEngine-Cx_GlShD.esm.min.js +2 -0
  417. package/dist/chunks/webgpuEngine-Cx_GlShD.esm.min.js.map +1 -0
  418. package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
  419. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
  420. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
  421. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
  422. package/lib/index.d.ts +559 -0
  423. package/lib/index.js +2083 -0
  424. package/lib/index.js.map +1 -0
  425. package/package.json +19 -28
  426. package/readme.md +28 -28
  427. package/configuration/configuration.d.ts +0 -107
  428. package/configuration/configuration.js +0 -16
  429. package/configuration/configuration.js.map +0 -1
  430. package/configuration/configurationCompatibility.d.ts +0 -8
  431. package/configuration/configurationCompatibility.js +0 -66
  432. package/configuration/configurationCompatibility.js.map +0 -1
  433. package/configuration/configurationContainer.d.ts +0 -10
  434. package/configuration/configurationContainer.js +0 -10
  435. package/configuration/configurationContainer.js.map +0 -1
  436. package/configuration/globals.d.ts +0 -6
  437. package/configuration/globals.js +0 -18
  438. package/configuration/globals.js.map +0 -1
  439. package/configuration/index.d.ts +0 -2
  440. package/configuration/index.js +0 -4
  441. package/configuration/index.js.map +0 -1
  442. package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
  443. package/configuration/interfaces/cameraConfiguration.js +0 -2
  444. package/configuration/interfaces/cameraConfiguration.js.map +0 -1
  445. package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
  446. package/configuration/interfaces/colorGradingConfiguration.js +0 -2
  447. package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
  448. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
  449. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
  450. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
  451. package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
  452. package/configuration/interfaces/environmentMapConfiguration.js +0 -2
  453. package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
  454. package/configuration/interfaces/groundConfiguration.d.ts +0 -24
  455. package/configuration/interfaces/groundConfiguration.js +0 -2
  456. package/configuration/interfaces/groundConfiguration.js.map +0 -1
  457. package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
  458. package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
  459. package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
  460. package/configuration/interfaces/index.d.ts +0 -15
  461. package/configuration/interfaces/index.js +0 -16
  462. package/configuration/interfaces/index.js.map +0 -1
  463. package/configuration/interfaces/lightConfiguration.d.ts +0 -60
  464. package/configuration/interfaces/lightConfiguration.js +0 -2
  465. package/configuration/interfaces/lightConfiguration.js.map +0 -1
  466. package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
  467. package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
  468. package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
  469. package/configuration/interfaces/modelConfiguration.d.ts +0 -65
  470. package/configuration/interfaces/modelConfiguration.js +0 -2
  471. package/configuration/interfaces/modelConfiguration.js.map +0 -1
  472. package/configuration/interfaces/observersConfiguration.d.ts +0 -5
  473. package/configuration/interfaces/observersConfiguration.js +0 -2
  474. package/configuration/interfaces/observersConfiguration.js.map +0 -1
  475. package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
  476. package/configuration/interfaces/sceneConfiguration.js +0 -2
  477. package/configuration/interfaces/sceneConfiguration.js.map +0 -1
  478. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
  479. package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
  480. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
  481. package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
  482. package/configuration/interfaces/skyboxConfiguration.js +0 -2
  483. package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
  484. package/configuration/interfaces/templateConfiguration.d.ts +0 -67
  485. package/configuration/interfaces/templateConfiguration.js +0 -2
  486. package/configuration/interfaces/templateConfiguration.js.map +0 -1
  487. package/configuration/interfaces/vrConfiguration.d.ts +0 -16
  488. package/configuration/interfaces/vrConfiguration.js +0 -2
  489. package/configuration/interfaces/vrConfiguration.js.map +0 -1
  490. package/configuration/loader.d.ts +0 -4
  491. package/configuration/loader.js +0 -17
  492. package/configuration/loader.js.map +0 -1
  493. package/configuration/mappers.d.ts +0 -43
  494. package/configuration/mappers.js +0 -193
  495. package/configuration/mappers.js.map +0 -1
  496. package/configuration/renderOnlyLoader.d.ts +0 -33
  497. package/configuration/renderOnlyLoader.js +0 -162
  498. package/configuration/renderOnlyLoader.js.map +0 -1
  499. package/configuration/types/default.d.ts +0 -6
  500. package/configuration/types/default.js +0 -121
  501. package/configuration/types/default.js.map +0 -1
  502. package/configuration/types/environmentMap.d.ts +0 -5
  503. package/configuration/types/environmentMap.js +0 -14
  504. package/configuration/types/environmentMap.js.map +0 -1
  505. package/configuration/types/extended.d.ts +0 -6
  506. package/configuration/types/extended.js +0 -317
  507. package/configuration/types/extended.js.map +0 -1
  508. package/configuration/types/index.d.ts +0 -14
  509. package/configuration/types/index.js +0 -51
  510. package/configuration/types/index.js.map +0 -1
  511. package/configuration/types/minimal.d.ts +0 -6
  512. package/configuration/types/minimal.js +0 -43
  513. package/configuration/types/minimal.js.map +0 -1
  514. package/configuration/types/renderOnlyDefault.d.ts +0 -30
  515. package/configuration/types/renderOnlyDefault.js +0 -31
  516. package/configuration/types/renderOnlyDefault.js.map +0 -1
  517. package/configuration/types/shadowLight.d.ts +0 -9
  518. package/configuration/types/shadowLight.js +0 -64
  519. package/configuration/types/shadowLight.js.map +0 -1
  520. package/helper/index.d.ts +0 -29
  521. package/helper/index.js +0 -66
  522. package/helper/index.js.map +0 -1
  523. package/index.d.ts +0 -30
  524. package/index.js +0 -46
  525. package/index.js.map +0 -1
  526. package/initializer.d.ts +0 -11
  527. package/initializer.js +0 -35
  528. package/initializer.js.map +0 -1
  529. package/interfaces.d.ts +0 -5
  530. package/interfaces.js +0 -7
  531. package/interfaces.js.map +0 -1
  532. package/labs/environmentSerializer.d.ts +0 -126
  533. package/labs/environmentSerializer.js +0 -191
  534. package/labs/environmentSerializer.js.map +0 -1
  535. package/labs/texture.d.ts +0 -183
  536. package/labs/texture.js +0 -351
  537. package/labs/texture.js.map +0 -1
  538. package/labs/viewerLabs.d.ts +0 -51
  539. package/labs/viewerLabs.js +0 -134
  540. package/labs/viewerLabs.js.map +0 -1
  541. package/loader/modelLoader.d.ts +0 -56
  542. package/loader/modelLoader.js +0 -202
  543. package/loader/modelLoader.js.map +0 -1
  544. package/loader/plugins/applyMaterialConfig.d.ts +0 -12
  545. package/loader/plugins/applyMaterialConfig.js +0 -16
  546. package/loader/plugins/applyMaterialConfig.js.map +0 -1
  547. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
  548. package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
  549. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
  550. package/loader/plugins/index.d.ts +0 -19
  551. package/loader/plugins/index.js +0 -44
  552. package/loader/plugins/index.js.map +0 -1
  553. package/loader/plugins/loaderPlugin.d.ts +0 -24
  554. package/loader/plugins/loaderPlugin.js +0 -2
  555. package/loader/plugins/loaderPlugin.js.map +0 -1
  556. package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
  557. package/loader/plugins/msftLodLoaderPlugin.js +0 -21
  558. package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
  559. package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
  560. package/loader/plugins/telemetryLoaderPlugin.js +0 -36
  561. package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
  562. package/managers/observablesManager.d.ts +0 -66
  563. package/managers/observablesManager.js +0 -35
  564. package/managers/observablesManager.js.map +0 -1
  565. package/managers/sceneManager.d.ts +0 -245
  566. package/managers/sceneManager.js +0 -1375
  567. package/managers/sceneManager.js.map +0 -1
  568. package/managers/telemetryManager.d.ts +0 -78
  569. package/managers/telemetryManager.js +0 -117
  570. package/managers/telemetryManager.js.map +0 -1
  571. package/model/modelAnimation.d.ts +0 -215
  572. package/model/modelAnimation.js +0 -237
  573. package/model/modelAnimation.js.map +0 -1
  574. package/model/viewerModel.d.ts +0 -233
  575. package/model/viewerModel.js +0 -673
  576. package/model/viewerModel.js.map +0 -1
  577. package/optimizer/custom/extended.d.ts +0 -13
  578. package/optimizer/custom/extended.js +0 -101
  579. package/optimizer/custom/extended.js.map +0 -1
  580. package/optimizer/custom/index.d.ts +0 -9
  581. package/optimizer/custom/index.js +0 -26
  582. package/optimizer/custom/index.js.map +0 -1
  583. package/renderOnlyIndex.d.ts +0 -11
  584. package/renderOnlyIndex.js +0 -18
  585. package/renderOnlyIndex.js.map +0 -1
  586. package/templating/eventManager.d.ts +0 -35
  587. package/templating/eventManager.js +0 -66
  588. package/templating/eventManager.js.map +0 -1
  589. package/templating/plugins/hdButtonPlugin.d.ts +0 -9
  590. package/templating/plugins/hdButtonPlugin.js +0 -22
  591. package/templating/plugins/hdButtonPlugin.js.map +0 -1
  592. package/templating/plugins/printButton.d.ts +0 -9
  593. package/templating/plugins/printButton.js +0 -41
  594. package/templating/plugins/printButton.js.map +0 -1
  595. package/templating/templateManager.d.ts +0 -197
  596. package/templating/templateManager.js +0 -561
  597. package/templating/templateManager.js.map +0 -1
  598. package/templating/viewerTemplatePlugin.d.ts +0 -21
  599. package/templating/viewerTemplatePlugin.js +0 -69
  600. package/templating/viewerTemplatePlugin.js.map +0 -1
  601. package/viewer/defaultViewer.d.ts +0 -130
  602. package/viewer/defaultViewer.js +0 -672
  603. package/viewer/defaultViewer.js.map +0 -1
  604. package/viewer/renderOnlyViewer.d.ts +0 -9
  605. package/viewer/renderOnlyViewer.js +0 -46
  606. package/viewer/renderOnlyViewer.js.map +0 -1
  607. package/viewer/viewer.d.ts +0 -258
  608. package/viewer/viewer.js +0 -783
  609. package/viewer/viewer.js.map +0 -1
  610. package/viewer/viewerManager.d.ts +0 -58
  611. package/viewer/viewerManager.js +0 -91
  612. package/viewer/viewerManager.js.map +0 -1
  613. package/viewer/viewerWithTemplate.d.ts +0 -9
  614. package/viewer/viewerWithTemplate.js +0 -20
  615. package/viewer/viewerWithTemplate.js.map +0 -1
Binary file
@@ -0,0 +1,2 @@
1
+ export { bR as HTML3DAnnotationElement, bP as HTML3DElement, bN as Viewer, bO as ViewerHotSpotResult, bQ as createViewerForCanvas } from './chunks/index-CtkZLm9J.esm.js';
2
+ //# sourceMappingURL=babylon-viewer.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babylon-viewer.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export{bR as HTML3DAnnotationElement,bP as HTML3DElement,bN as Viewer,bO as ViewerHotSpotResult,bQ as createViewerForCanvas}from"./chunks/index-BHIM4QBr.esm.min.js";
2
+ //# sourceMappingURL=babylon-viewer.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babylon-viewer.esm.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{v as e,aX as i,s,t,aP as a,aQ as o}from"./index-BHIM4QBr.esm.min.js";import{a as n}from"./spotLight-DXuSbTaJ.esm.min.js";import{A as l,G as r}from"./glTFLoader-CkL-dxBD.esm.min.js";import"./rawTexture-CCCnj14W.esm.min.js";import"./assetContainer-DLSDgjTx.esm.min.js";import"./glTFLoaderAnimation-Cq2ziV9o.esm.min.js";const d="EXT_lights_ies";class h{constructor(e){this.name=d,this._loader=e,this.enabled=this._loader.isExtensionUsed(d)}dispose(){this._loader=null,delete this._lights}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const i=e[this.name];this._lights=i.lights,l.Assign(this._lights)}}loadNodeAsync(a,o,d){return r.LoadExtensionAsync(a,o,this.name,(async(h,_)=>{let m,c;this._loader._allMaterialsDirtyRequired=!0;const f=await this._loader.loadNodeAsync(a,o,(t=>{c=l.Get(h,this._lights,_.light);const a=c.name||t.name;this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer,m=new n(a,e.Zero(),e.Backward(),0,1,this._loader.babylonScene),m.angle=Math.PI/2,m.innerAngle=0,m._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,c._babylonLight=m,m.falloffType=i.FALLOFF_GLTF,m.diffuse=_.color?s.FromArray(_.color):s.White(),m.intensity=_.multiplier||1,m.range=Number.MAX_VALUE,m.parent=t,this._loader._babylonLights.push(m),r.AddPointerMetadata(m,h),d(t)}));let b;if(c.uri)b=await this._loader.loadUriAsync(a,c,c.uri);else{const e=l.Get(`${a}/bufferView`,this._loader.gltf.bufferViews,c.bufferView);b=await this._loader.loadBufferViewAsync(`/bufferViews/${e.index}`,e)}return m.iesProfileTexture=new t(name+"_iesProfile",this._loader.babylonScene,!0,!1,void 0,null,null,b,!0,void 0,void 0,void 0,void 0,".ies"),f}))}}a(d),o(d,!0,(e=>new h(e)));export{h as EXT_lights_ies};
2
+ //# sourceMappingURL=EXT_lights_ies-gxFyrTPG.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EXT_lights_ies-gxFyrTPG.esm.min.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_lights_ies.js"],"sourcesContent":["import { Vector3 } from \"core/Maths/math.vector\";\nimport { Color3 } from \"core/Maths/math.color\";\nimport { SpotLight } from \"core/Lights/spotLight\";\nimport { Light } from \"core/Lights/light\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nimport { Texture } from \"core/Materials/Textures/texture\";\nconst NAME = \"EXT_lights_ies\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_lights_ies)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_lights_ies {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._lights;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._lights = extension.lights;\n ArrayItem.Assign(this._lights);\n }\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, async (extensionContext, extension) => {\n this._loader._allMaterialsDirtyRequired = true;\n let babylonSpotLight;\n let light;\n const transformNode = await this._loader.loadNodeAsync(context, node, (babylonMesh) => {\n light = ArrayItem.Get(extensionContext, this._lights, extension.light);\n const name = light.name || babylonMesh.name;\n this._loader.babylonScene._blockEntityCollection = !!this._loader._assetContainer;\n babylonSpotLight = new SpotLight(name, Vector3.Zero(), Vector3.Backward(), 0, 1, this._loader.babylonScene);\n babylonSpotLight.angle = Math.PI / 2;\n babylonSpotLight.innerAngle = 0;\n babylonSpotLight._parentContainer = this._loader._assetContainer;\n this._loader.babylonScene._blockEntityCollection = false;\n light._babylonLight = babylonSpotLight;\n babylonSpotLight.falloffType = Light.FALLOFF_GLTF;\n babylonSpotLight.diffuse = extension.color ? Color3.FromArray(extension.color) : Color3.White();\n babylonSpotLight.intensity = extension.multiplier || 1;\n babylonSpotLight.range = Number.MAX_VALUE;\n babylonSpotLight.parent = babylonMesh;\n this._loader._babylonLights.push(babylonSpotLight);\n GLTFLoader.AddPointerMetadata(babylonSpotLight, extensionContext);\n assign(babylonMesh);\n });\n // Load the profile\n let bufferData;\n if (light.uri) {\n bufferData = await this._loader.loadUriAsync(context, light, light.uri);\n }\n else {\n const bufferView = ArrayItem.Get(`${context}/bufferView`, this._loader.gltf.bufferViews, light.bufferView);\n bufferData = await this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView);\n }\n babylonSpotLight.iesProfileTexture = new Texture(name + \"_iesProfile\", this._loader.babylonScene, true, false, undefined, null, null, bufferData, true, undefined, undefined, undefined, undefined, \".ies\");\n return transformNode;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_lights_ies(loader));\n//# sourceMappingURL=EXT_lights_ies.js.map"],"names":["NAME","EXT_lights_ies","constructor","loader","this","name","_loader","enabled","isExtensionUsed","dispose","_lights","onLoading","extensions","gltf","extension","lights","ArrayItem","Assign","loadNodeAsync","context","node","assign","GLTFLoader","LoadExtensionAsync","async","extensionContext","babylonSpotLight","light","_allMaterialsDirtyRequired","transformNode","babylonMesh","Get","babylonScene","_blockEntityCollection","_assetContainer","SpotLight","Vector3","Zero","Backward","angle","Math","PI","innerAngle","_parentContainer","_babylonLight","falloffType","Light","FALLOFF_GLTF","diffuse","color","Color3","FromArray","White","intensity","multiplier","range","Number","MAX_VALUE","parent","_babylonLights","push","AddPointerMetadata","bufferData","uri","loadUriAsync","bufferView","bufferViews","loadBufferViewAsync","index","iesProfileTexture","Texture","undefined","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"oUAOA,MAAMA,EAAO,iBAKN,MAAMC,EAIT,WAAAC,CAAYC,GAIRC,KAAKC,KAAOL,EACZI,KAAKE,QAAUH,EACfC,KAAKG,QAAUH,KAAKE,QAAQE,gBAAgBR,EACpD,CAEI,OAAAS,GACIL,KAAKE,QAAU,YACRF,KAAKM,OACpB,CAEI,SAAAC,GACI,MAAMC,EAAaR,KAAKE,QAAQO,KAAKD,WACrC,GAAIA,GAAcA,EAAWR,KAAKC,MAAO,CACrC,MAAMS,EAAYF,EAAWR,KAAKC,MAClCD,KAAKM,QAAUI,EAAUC,OACzBC,EAAUC,OAAOb,KAAKM,QAClC,CACA,CAII,aAAAQ,CAAcC,EAASC,EAAMC,GACzB,OAAOC,EAAWC,mBAAmBJ,EAASC,EAAMhB,KAAKC,MAAMmB,MAAOC,EAAkBX,KAEpF,IAAIY,EACAC,EAFJvB,KAAKE,QAAQsB,4BAA6B,EAG1C,MAAMC,QAAsBzB,KAAKE,QAAQY,cAAcC,EAASC,GAAOU,IACnEH,EAAQX,EAAUe,IAAIN,EAAkBrB,KAAKM,QAASI,EAAUa,OAChE,MAAMtB,EAAOsB,EAAMtB,MAAQyB,EAAYzB,KACvCD,KAAKE,QAAQ0B,aAAaC,yBAA2B7B,KAAKE,QAAQ4B,gBAClER,EAAmB,IAAIS,EAAU9B,EAAM+B,EAAQC,OAAQD,EAAQE,WAAY,EAAG,EAAGlC,KAAKE,QAAQ0B,cAC9FN,EAAiBa,MAAQC,KAAKC,GAAK,EACnCf,EAAiBgB,WAAa,EAC9BhB,EAAiBiB,iBAAmBvC,KAAKE,QAAQ4B,gBACjD9B,KAAKE,QAAQ0B,aAAaC,wBAAyB,EACnDN,EAAMiB,cAAgBlB,EACtBA,EAAiBmB,YAAcC,EAAMC,aACrCrB,EAAiBsB,QAAUlC,EAAUmC,MAAQC,EAAOC,UAAUrC,EAAUmC,OAASC,EAAOE,QACxF1B,EAAiB2B,UAAYvC,EAAUwC,YAAc,EACrD5B,EAAiB6B,MAAQC,OAAOC,UAChC/B,EAAiBgC,OAAS5B,EAC1B1B,KAAKE,QAAQqD,eAAeC,KAAKlC,GACjCJ,EAAWuC,mBAAmBnC,EAAkBD,GAChDJ,EAAOS,EAAY,IAGvB,IAAIgC,EACJ,GAAInC,EAAMoC,IACND,QAAmB1D,KAAKE,QAAQ0D,aAAa7C,EAASQ,EAAOA,EAAMoC,SAElE,CACD,MAAME,EAAajD,EAAUe,IAAI,GAAGZ,eAAsBf,KAAKE,QAAQO,KAAKqD,YAAavC,EAAMsC,YAC/FH,QAAmB1D,KAAKE,QAAQ6D,oBAAoB,gBAAgBF,EAAWG,QAASH,EACxG,CAEY,OADAvC,EAAiB2C,kBAAoB,IAAIC,EAAQjE,KAAO,cAAeD,KAAKE,QAAQ0B,cAAc,GAAM,OAAOuC,EAAW,KAAM,KAAMT,GAAY,OAAMS,OAAWA,OAAWA,OAAWA,EAAW,QAC7L1C,CAAa,GAEhC,EAEA2C,EAAwBxE,GACxByE,EAAsBzE,GAAM,GAAOG,GAAW,IAAIF,EAAeE"}
@@ -0,0 +1,84 @@
1
+ import { v as Vector3, aX as Light, s as Color3, t as Texture, aP as unregisterGLTFExtension, aQ as registerGLTFExtension } from './index-CtkZLm9J.esm.js';
2
+ import { a as SpotLight } from './spotLight-Ca0-j1Op.esm.js';
3
+ import { A as ArrayItem, G as GLTFLoader } from './glTFLoader-IEHRfiUn.esm.js';
4
+ import './rawTexture-78KJgWfq.esm.js';
5
+ import './assetContainer-cm8rvay3.esm.js';
6
+ import './glTFLoaderAnimation-CV32Nmqb.esm.js';
7
+
8
+ const NAME = "EXT_lights_ies";
9
+ /**
10
+ * [Specification](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_lights_ies)
11
+ */
12
+ // eslint-disable-next-line @typescript-eslint/naming-convention
13
+ class EXT_lights_ies {
14
+ /**
15
+ * @internal
16
+ */
17
+ constructor(loader) {
18
+ /**
19
+ * The name of this extension.
20
+ */
21
+ this.name = NAME;
22
+ this._loader = loader;
23
+ this.enabled = this._loader.isExtensionUsed(NAME);
24
+ }
25
+ /** @internal */
26
+ dispose() {
27
+ this._loader = null;
28
+ delete this._lights;
29
+ }
30
+ /** @internal */
31
+ onLoading() {
32
+ const extensions = this._loader.gltf.extensions;
33
+ if (extensions && extensions[this.name]) {
34
+ const extension = extensions[this.name];
35
+ this._lights = extension.lights;
36
+ ArrayItem.Assign(this._lights);
37
+ }
38
+ }
39
+ /**
40
+ * @internal
41
+ */
42
+ loadNodeAsync(context, node, assign) {
43
+ return GLTFLoader.LoadExtensionAsync(context, node, this.name, async (extensionContext, extension) => {
44
+ this._loader._allMaterialsDirtyRequired = true;
45
+ let babylonSpotLight;
46
+ let light;
47
+ const transformNode = await this._loader.loadNodeAsync(context, node, (babylonMesh) => {
48
+ light = ArrayItem.Get(extensionContext, this._lights, extension.light);
49
+ const name = light.name || babylonMesh.name;
50
+ this._loader.babylonScene._blockEntityCollection = !!this._loader._assetContainer;
51
+ babylonSpotLight = new SpotLight(name, Vector3.Zero(), Vector3.Backward(), 0, 1, this._loader.babylonScene);
52
+ babylonSpotLight.angle = Math.PI / 2;
53
+ babylonSpotLight.innerAngle = 0;
54
+ babylonSpotLight._parentContainer = this._loader._assetContainer;
55
+ this._loader.babylonScene._blockEntityCollection = false;
56
+ light._babylonLight = babylonSpotLight;
57
+ babylonSpotLight.falloffType = Light.FALLOFF_GLTF;
58
+ babylonSpotLight.diffuse = extension.color ? Color3.FromArray(extension.color) : Color3.White();
59
+ babylonSpotLight.intensity = extension.multiplier || 1;
60
+ babylonSpotLight.range = Number.MAX_VALUE;
61
+ babylonSpotLight.parent = babylonMesh;
62
+ this._loader._babylonLights.push(babylonSpotLight);
63
+ GLTFLoader.AddPointerMetadata(babylonSpotLight, extensionContext);
64
+ assign(babylonMesh);
65
+ });
66
+ // Load the profile
67
+ let bufferData;
68
+ if (light.uri) {
69
+ bufferData = await this._loader.loadUriAsync(context, light, light.uri);
70
+ }
71
+ else {
72
+ const bufferView = ArrayItem.Get(`${context}/bufferView`, this._loader.gltf.bufferViews, light.bufferView);
73
+ bufferData = await this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView);
74
+ }
75
+ babylonSpotLight.iesProfileTexture = new Texture(name + "_iesProfile", this._loader.babylonScene, true, false, undefined, null, null, bufferData, true, undefined, undefined, undefined, undefined, ".ies");
76
+ return transformNode;
77
+ });
78
+ }
79
+ }
80
+ unregisterGLTFExtension(NAME);
81
+ registerGLTFExtension(NAME, true, (loader) => new EXT_lights_ies(loader));
82
+
83
+ export { EXT_lights_ies };
84
+ //# sourceMappingURL=EXT_lights_ies-pE68tmBj.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EXT_lights_ies-pE68tmBj.esm.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_lights_ies.js"],"sourcesContent":["import { Vector3 } from \"core/Maths/math.vector\";\nimport { Color3 } from \"core/Maths/math.color\";\nimport { SpotLight } from \"core/Lights/spotLight\";\nimport { Light } from \"core/Lights/light\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nimport { Texture } from \"core/Materials/Textures/texture\";\nconst NAME = \"EXT_lights_ies\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_lights_ies)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_lights_ies {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._lights;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._lights = extension.lights;\n ArrayItem.Assign(this._lights);\n }\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, async (extensionContext, extension) => {\n this._loader._allMaterialsDirtyRequired = true;\n let babylonSpotLight;\n let light;\n const transformNode = await this._loader.loadNodeAsync(context, node, (babylonMesh) => {\n light = ArrayItem.Get(extensionContext, this._lights, extension.light);\n const name = light.name || babylonMesh.name;\n this._loader.babylonScene._blockEntityCollection = !!this._loader._assetContainer;\n babylonSpotLight = new SpotLight(name, Vector3.Zero(), Vector3.Backward(), 0, 1, this._loader.babylonScene);\n babylonSpotLight.angle = Math.PI / 2;\n babylonSpotLight.innerAngle = 0;\n babylonSpotLight._parentContainer = this._loader._assetContainer;\n this._loader.babylonScene._blockEntityCollection = false;\n light._babylonLight = babylonSpotLight;\n babylonSpotLight.falloffType = Light.FALLOFF_GLTF;\n babylonSpotLight.diffuse = extension.color ? Color3.FromArray(extension.color) : Color3.White();\n babylonSpotLight.intensity = extension.multiplier || 1;\n babylonSpotLight.range = Number.MAX_VALUE;\n babylonSpotLight.parent = babylonMesh;\n this._loader._babylonLights.push(babylonSpotLight);\n GLTFLoader.AddPointerMetadata(babylonSpotLight, extensionContext);\n assign(babylonMesh);\n });\n // Load the profile\n let bufferData;\n if (light.uri) {\n bufferData = await this._loader.loadUriAsync(context, light, light.uri);\n }\n else {\n const bufferView = ArrayItem.Get(`${context}/bufferView`, this._loader.gltf.bufferViews, light.bufferView);\n bufferData = await this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView);\n }\n babylonSpotLight.iesProfileTexture = new Texture(name + \"_iesProfile\", this._loader.babylonScene, true, false, undefined, null, null, bufferData, true, undefined, undefined, undefined, undefined, \".ies\");\n return transformNode;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_lights_ies(loader));\n//# sourceMappingURL=EXT_lights_ies.js.map"],"names":[],"mappings":";;;;;;;AAOA,MAAM,IAAI,GAAG,gBAAgB;AAC7B;AACA;AACA;AACA;AACO,MAAM,cAAc,CAAC;AAC5B;AACA;AACA;AACA,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;AACzD;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B,QAAQ,OAAO,IAAI,CAAC,OAAO;AAC3B;AACA;AACA,IAAI,SAAS,GAAG;AAChB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU;AACvD,QAAQ,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACjD,YAAY,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AACnD,YAAY,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM;AAC3C,YAAY,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;AACzC,QAAQ,OAAO,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,gBAAgB,EAAE,SAAS,KAAK;AAC9G,YAAY,IAAI,CAAC,OAAO,CAAC,0BAA0B,GAAG,IAAI;AAC1D,YAAY,IAAI,gBAAgB;AAChC,YAAY,IAAI,KAAK;AACrB,YAAY,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,WAAW,KAAK;AACnG,gBAAgB,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC;AACtF,gBAAgB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI;AAC3D,gBAAgB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe;AACjG,gBAAgB,gBAAgB,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC3H,gBAAgB,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;AACpD,gBAAgB,gBAAgB,CAAC,UAAU,GAAG,CAAC;AAC/C,gBAAgB,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe;AAChF,gBAAgB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,GAAG,KAAK;AACxE,gBAAgB,KAAK,CAAC,aAAa,GAAG,gBAAgB;AACtD,gBAAgB,gBAAgB,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY;AACjE,gBAAgB,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE;AAC/G,gBAAgB,gBAAgB,CAAC,SAAS,GAAG,SAAS,CAAC,UAAU,IAAI,CAAC;AACtE,gBAAgB,gBAAgB,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS;AACzD,gBAAgB,gBAAgB,CAAC,MAAM,GAAG,WAAW;AACrD,gBAAgB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAClE,gBAAgB,UAAU,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;AACjF,gBAAgB,MAAM,CAAC,WAAW,CAAC;AACnC,aAAa,CAAC;AACd;AACA,YAAY,IAAI,UAAU;AAC1B,YAAY,IAAI,KAAK,CAAC,GAAG,EAAE;AAC3B,gBAAgB,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;AACvF;AACA,iBAAiB;AACjB,gBAAgB,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC;AAC1H,gBAAgB,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;AACnH;AACA,YAAY,gBAAgB,CAAC,iBAAiB,GAAG,IAAI,OAAO,CAAC,IAAI,GAAG,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;AACvN,YAAY,OAAO,aAAa;AAChC,SAAS,CAAC;AACV;AACA;AACA,uBAAuB,CAAC,IAAI,CAAC;AAC7B,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;;;;"}
@@ -0,0 +1,2 @@
1
+ import{aN as e,C as t,a0 as s,ab as n,a4 as a,aO as r,S as i,aP as o,aQ as l}from"./index-BHIM4QBr.esm.min.js";import{_ as h}from"./environmentTextureTools-BYQHZH-c.esm.min.js";import{G as c,A as m}from"./glTFLoader-CkL-dxBD.esm.min.js";import"./dumpTools-DVDwJ2sz.esm.min.js";import"./rawTexture-CCCnj14W.esm.min.js";import"./assetContainer-DLSDgjTx.esm.min.js";import"./glTFLoaderAnimation-Cq2ziV9o.esm.min.js";class d extends e{constructor(e,s,n,a=t.TEXTUREFORMAT_RGBA,r=t.TEXTURETYPE_UNSIGNED_BYTE,i=!1,o=!1,l=t.TEXTURE_TRILINEAR_SAMPLINGMODE,h=null){super("",e),this._texture=e.getEngine().createRawCubeTexture(s,n,a,r,i,o,l,h)}update(e,t,s,n,a=null){this._texture.getEngine().updateRawCubeTexture(this._texture,e,t,s,n,a)}updateRGBDAsync(e,t=null,s=.8,n=0){return h(this._texture,e,t,s,n).then((()=>{}))}clone(){return s.Clone((()=>{const e=this.getScene(),t=this._texture,s=new d(e,t._bufferViewArray,t.width,t.format,t.type,t.generateMipMaps,t.invertY,t.samplingMode,t._compression);return 13===t.source&&s.updateRGBDAsync(t._bufferViewArrayArray,t._sphericalPolynomial,t._lodGenerationScale,t._lodGenerationOffset),s}),this)}}const u="EXT_lights_image_based";class g{constructor(e){this.name=u,this._loader=e,this.enabled=this._loader.isExtensionUsed(u)}dispose(){this._loader=null,delete this._lights}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const t=e[this.name];this._lights=t.lights}}loadSceneAsync(e,t){return c.LoadExtensionAsync(e,t,this.name,((s,n)=>{this._loader._allMaterialsDirtyRequired=!0;const a=new Array;a.push(this._loader.loadSceneAsync(e,t)),this._loader.logOpen(`${s}`);const r=m.Get(`${s}/light`,this._lights,n.light);return a.push(this._loadLightAsync(`/extensions/${this.name}/lights/${n.light}`,r).then((e=>{this._loader.babylonScene.environmentTexture=e}))),this._loader.logClose(),Promise.all(a).then((()=>{}))}))}_loadLightAsync(e,t){if(!t._loaded){const s=new Array;this._loader.logOpen(`${e}`);const o=new Array(t.specularImages.length);for(let n=0;n<t.specularImages.length;n++){const a=t.specularImages[n];o[n]=new Array(a.length);for(let t=0;t<a.length;t++){const r=`${e}/specularImages/${n}/${t}`;this._loader.logOpen(`${r}`);const i=a[t],l=m.Get(r,this._loader.gltf.images,i);s.push(this._loader.loadImageAsync(`/images/${i}`,l).then((e=>{o[n][t]=e}))),this._loader.logClose()}}this._loader.logClose(),t._loaded=Promise.all(s).then((()=>{const s=new d(this._loader.babylonScene,null,t.specularImageSize);if(s.name=t.name||"environment",t._babylonTexture=s,null!=t.intensity&&(s.level=t.intensity),t.rotation){let e=n.FromArray(t.rotation);this._loader.babylonScene.useRightHandedSystem||(e=n.Inverse(e)),a.FromQuaternionToRef(e,s.getReflectionTextureMatrix())}if(!t.irradianceCoefficients)throw new Error(`${e}: Irradiance coefficients are missing`);const l=r.FromArray(t.irradianceCoefficients);l.scaleInPlace(t.intensity),l.convertIrradianceToLambertianRadiance();const h=i.FromHarmonics(l),c=(o.length-1)/Math.log2(t.specularImageSize);return s.updateRGBDAsync(o,h,c)}))}return t._loaded.then((()=>t._babylonTexture))}}o(u),l(u,!0,(e=>new g(e)));export{g as EXT_lights_image_based};
2
+ //# sourceMappingURL=EXT_lights_image_based-B8Oal0Ur.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EXT_lights_image_based-B8Oal0Ur.esm.min.js","sources":["../../../../../dev/core/dist/Materials/Textures/rawCubeTexture.js","../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_lights_image_based.js"],"sourcesContent":["import { SerializationHelper } from \"../../Misc/decorators.serialization\";\nimport { _UpdateRGBDAsync as UpdateRGBDAsyncEnvTools } from \"../../Misc/environmentTextureTools\";\nimport { CubeTexture } from \"./cubeTexture\";\nimport { Constants } from \"../../Engines/constants\";\n/**\n * Raw cube texture where the raw buffers are passed in\n */\nexport class RawCubeTexture extends CubeTexture {\n /**\n * Creates a cube texture where the raw buffers are passed in.\n * @param scene defines the scene the texture is attached to\n * @param data defines the array of data to use to create each face\n * @param size defines the size of the textures\n * @param format defines the format of the data\n * @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_BYTE)\n * @param generateMipMaps defines if the engine should generate the mip levels\n * @param invertY defines if data must be stored with Y axis inverted\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\n * @param compression defines the compression used (null by default)\n */\n constructor(scene, data, size, format = Constants.TEXTUREFORMAT_RGBA, type = Constants.TEXTURETYPE_UNSIGNED_BYTE, generateMipMaps = false, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, compression = null) {\n super(\"\", scene);\n this._texture = scene.getEngine().createRawCubeTexture(data, size, format, type, generateMipMaps, invertY, samplingMode, compression);\n }\n /**\n * Updates the raw cube texture.\n * @param data defines the data to store\n * @param format defines the data format\n * @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_BYTE by default)\n * @param invertY defines if data must be stored with Y axis inverted\n * @param compression defines the compression used (null by default)\n */\n update(data, format, type, invertY, compression = null) {\n this._texture.getEngine().updateRawCubeTexture(this._texture, data, format, type, invertY, compression);\n }\n /**\n * Updates a raw cube texture with RGBD encoded data.\n * @param data defines the array of data [mipmap][face] to use to create each face\n * @param sphericalPolynomial defines the spherical polynomial for irradiance\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\n * @returns a promise that resolves when the operation is complete\n */\n updateRGBDAsync(data, sphericalPolynomial = null, lodScale = 0.8, lodOffset = 0) {\n return UpdateRGBDAsyncEnvTools(this._texture, data, sphericalPolynomial, lodScale, lodOffset).then(() => { });\n }\n /**\n * Clones the raw cube texture.\n * @returns a new cube texture\n */\n clone() {\n return SerializationHelper.Clone(() => {\n const scene = this.getScene();\n const internalTexture = this._texture;\n const texture = new RawCubeTexture(scene, internalTexture._bufferViewArray, internalTexture.width, internalTexture.format, internalTexture.type, internalTexture.generateMipMaps, internalTexture.invertY, internalTexture.samplingMode, internalTexture._compression);\n if (internalTexture.source === 13 /* InternalTextureSource.CubeRawRGBD */) {\n texture.updateRGBDAsync(internalTexture._bufferViewArrayArray, internalTexture._sphericalPolynomial, internalTexture._lodGenerationScale, internalTexture._lodGenerationOffset);\n }\n return texture;\n }, this);\n }\n}\n//# sourceMappingURL=rawCubeTexture.js.map","import { SphericalHarmonics, SphericalPolynomial } from \"core/Maths/sphericalPolynomial\";\nimport { Quaternion, Matrix } from \"core/Maths/math.vector\";\nimport { RawCubeTexture } from \"core/Materials/Textures/rawCubeTexture\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"EXT_lights_image_based\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_lights_image_based/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_lights_image_based {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._lights;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._lights = extension.lights;\n }\n }\n /**\n * @internal\n */\n loadSceneAsync(context, scene) {\n return GLTFLoader.LoadExtensionAsync(context, scene, this.name, (extensionContext, extension) => {\n this._loader._allMaterialsDirtyRequired = true;\n const promises = new Array();\n promises.push(this._loader.loadSceneAsync(context, scene));\n this._loader.logOpen(`${extensionContext}`);\n const light = ArrayItem.Get(`${extensionContext}/light`, this._lights, extension.light);\n promises.push(this._loadLightAsync(`/extensions/${this.name}/lights/${extension.light}`, light).then((texture) => {\n this._loader.babylonScene.environmentTexture = texture;\n }));\n this._loader.logClose();\n return Promise.all(promises).then(() => { });\n });\n }\n _loadLightAsync(context, light) {\n if (!light._loaded) {\n const promises = new Array();\n this._loader.logOpen(`${context}`);\n const imageData = new Array(light.specularImages.length);\n for (let mipmap = 0; mipmap < light.specularImages.length; mipmap++) {\n const faces = light.specularImages[mipmap];\n imageData[mipmap] = new Array(faces.length);\n for (let face = 0; face < faces.length; face++) {\n const specularImageContext = `${context}/specularImages/${mipmap}/${face}`;\n this._loader.logOpen(`${specularImageContext}`);\n const index = faces[face];\n const image = ArrayItem.Get(specularImageContext, this._loader.gltf.images, index);\n promises.push(this._loader.loadImageAsync(`/images/${index}`, image).then((data) => {\n imageData[mipmap][face] = data;\n }));\n this._loader.logClose();\n }\n }\n this._loader.logClose();\n light._loaded = Promise.all(promises).then(() => {\n const babylonTexture = new RawCubeTexture(this._loader.babylonScene, null, light.specularImageSize);\n babylonTexture.name = light.name || \"environment\";\n light._babylonTexture = babylonTexture;\n if (light.intensity != undefined) {\n babylonTexture.level = light.intensity;\n }\n if (light.rotation) {\n let rotation = Quaternion.FromArray(light.rotation);\n // Invert the rotation so that positive rotation is counter-clockwise.\n if (!this._loader.babylonScene.useRightHandedSystem) {\n rotation = Quaternion.Inverse(rotation);\n }\n Matrix.FromQuaternionToRef(rotation, babylonTexture.getReflectionTextureMatrix());\n }\n if (!light.irradianceCoefficients) {\n throw new Error(`${context}: Irradiance coefficients are missing`);\n }\n const sphericalHarmonics = SphericalHarmonics.FromArray(light.irradianceCoefficients);\n sphericalHarmonics.scaleInPlace(light.intensity);\n sphericalHarmonics.convertIrradianceToLambertianRadiance();\n const sphericalPolynomial = SphericalPolynomial.FromHarmonics(sphericalHarmonics);\n // Compute the lod generation scale to fit exactly to the number of levels available.\n const lodGenerationScale = (imageData.length - 1) / Math.log2(light.specularImageSize);\n return babylonTexture.updateRGBDAsync(imageData, sphericalPolynomial, lodGenerationScale);\n });\n }\n return light._loaded.then(() => {\n return light._babylonTexture;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_lights_image_based(loader));\n//# sourceMappingURL=EXT_lights_image_based.js.map"],"names":["RawCubeTexture","CubeTexture","constructor","scene","data","size","format","Constants","TEXTUREFORMAT_RGBA","type","TEXTURETYPE_UNSIGNED_BYTE","generateMipMaps","invertY","samplingMode","TEXTURE_TRILINEAR_SAMPLINGMODE","compression","super","this","_texture","getEngine","createRawCubeTexture","update","updateRawCubeTexture","updateRGBDAsync","sphericalPolynomial","lodScale","lodOffset","UpdateRGBDAsyncEnvTools","then","clone","SerializationHelper","Clone","getScene","internalTexture","texture","_bufferViewArray","width","_compression","source","_bufferViewArrayArray","_sphericalPolynomial","_lodGenerationScale","_lodGenerationOffset","NAME","EXT_lights_image_based","loader","name","_loader","enabled","isExtensionUsed","dispose","_lights","onLoading","extensions","gltf","extension","lights","loadSceneAsync","context","GLTFLoader","LoadExtensionAsync","extensionContext","_allMaterialsDirtyRequired","promises","Array","push","logOpen","light","ArrayItem","Get","_loadLightAsync","babylonScene","environmentTexture","logClose","Promise","all","_loaded","imageData","specularImages","length","mipmap","faces","face","specularImageContext","index","image","images","loadImageAsync","babylonTexture","specularImageSize","_babylonTexture","undefined","intensity","level","rotation","Quaternion","FromArray","useRightHandedSystem","Inverse","Matrix","FromQuaternionToRef","getReflectionTextureMatrix","irradianceCoefficients","Error","sphericalHarmonics","SphericalHarmonics","scaleInPlace","convertIrradianceToLambertianRadiance","SphericalPolynomial","FromHarmonics","lodGenerationScale","Math","log2","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"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"}
@@ -0,0 +1,171 @@
1
+ import { aN as CubeTexture, C as Constants, a0 as SerializationHelper, ab as Quaternion, a4 as Matrix, aO as SphericalHarmonics, S as SphericalPolynomial, aP as unregisterGLTFExtension, aQ as registerGLTFExtension } from './index-CtkZLm9J.esm.js';
2
+ import { _ as _UpdateRGBDAsync } from './environmentTextureTools-B2vnsFq-.esm.js';
3
+ import { G as GLTFLoader, A as ArrayItem } from './glTFLoader-IEHRfiUn.esm.js';
4
+ import './dumpTools-CPmY0U7D.esm.js';
5
+ import './rawTexture-78KJgWfq.esm.js';
6
+ import './assetContainer-cm8rvay3.esm.js';
7
+ import './glTFLoaderAnimation-CV32Nmqb.esm.js';
8
+
9
+ /**
10
+ * Raw cube texture where the raw buffers are passed in
11
+ */
12
+ class RawCubeTexture extends CubeTexture {
13
+ /**
14
+ * Creates a cube texture where the raw buffers are passed in.
15
+ * @param scene defines the scene the texture is attached to
16
+ * @param data defines the array of data to use to create each face
17
+ * @param size defines the size of the textures
18
+ * @param format defines the format of the data
19
+ * @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_BYTE)
20
+ * @param generateMipMaps defines if the engine should generate the mip levels
21
+ * @param invertY defines if data must be stored with Y axis inverted
22
+ * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)
23
+ * @param compression defines the compression used (null by default)
24
+ */
25
+ constructor(scene, data, size, format = Constants.TEXTUREFORMAT_RGBA, type = Constants.TEXTURETYPE_UNSIGNED_BYTE, generateMipMaps = false, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, compression = null) {
26
+ super("", scene);
27
+ this._texture = scene.getEngine().createRawCubeTexture(data, size, format, type, generateMipMaps, invertY, samplingMode, compression);
28
+ }
29
+ /**
30
+ * Updates the raw cube texture.
31
+ * @param data defines the data to store
32
+ * @param format defines the data format
33
+ * @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_BYTE by default)
34
+ * @param invertY defines if data must be stored with Y axis inverted
35
+ * @param compression defines the compression used (null by default)
36
+ */
37
+ update(data, format, type, invertY, compression = null) {
38
+ this._texture.getEngine().updateRawCubeTexture(this._texture, data, format, type, invertY, compression);
39
+ }
40
+ /**
41
+ * Updates a raw cube texture with RGBD encoded data.
42
+ * @param data defines the array of data [mipmap][face] to use to create each face
43
+ * @param sphericalPolynomial defines the spherical polynomial for irradiance
44
+ * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness
45
+ * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness
46
+ * @returns a promise that resolves when the operation is complete
47
+ */
48
+ updateRGBDAsync(data, sphericalPolynomial = null, lodScale = 0.8, lodOffset = 0) {
49
+ return _UpdateRGBDAsync(this._texture, data, sphericalPolynomial, lodScale, lodOffset).then(() => { });
50
+ }
51
+ /**
52
+ * Clones the raw cube texture.
53
+ * @returns a new cube texture
54
+ */
55
+ clone() {
56
+ return SerializationHelper.Clone(() => {
57
+ const scene = this.getScene();
58
+ const internalTexture = this._texture;
59
+ const texture = new RawCubeTexture(scene, internalTexture._bufferViewArray, internalTexture.width, internalTexture.format, internalTexture.type, internalTexture.generateMipMaps, internalTexture.invertY, internalTexture.samplingMode, internalTexture._compression);
60
+ if (internalTexture.source === 13 /* InternalTextureSource.CubeRawRGBD */) {
61
+ texture.updateRGBDAsync(internalTexture._bufferViewArrayArray, internalTexture._sphericalPolynomial, internalTexture._lodGenerationScale, internalTexture._lodGenerationOffset);
62
+ }
63
+ return texture;
64
+ }, this);
65
+ }
66
+ }
67
+
68
+ const NAME = "EXT_lights_image_based";
69
+ /**
70
+ * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_lights_image_based/README.md)
71
+ */
72
+ // eslint-disable-next-line @typescript-eslint/naming-convention
73
+ class EXT_lights_image_based {
74
+ /**
75
+ * @internal
76
+ */
77
+ constructor(loader) {
78
+ /**
79
+ * The name of this extension.
80
+ */
81
+ this.name = NAME;
82
+ this._loader = loader;
83
+ this.enabled = this._loader.isExtensionUsed(NAME);
84
+ }
85
+ /** @internal */
86
+ dispose() {
87
+ this._loader = null;
88
+ delete this._lights;
89
+ }
90
+ /** @internal */
91
+ onLoading() {
92
+ const extensions = this._loader.gltf.extensions;
93
+ if (extensions && extensions[this.name]) {
94
+ const extension = extensions[this.name];
95
+ this._lights = extension.lights;
96
+ }
97
+ }
98
+ /**
99
+ * @internal
100
+ */
101
+ loadSceneAsync(context, scene) {
102
+ return GLTFLoader.LoadExtensionAsync(context, scene, this.name, (extensionContext, extension) => {
103
+ this._loader._allMaterialsDirtyRequired = true;
104
+ const promises = new Array();
105
+ promises.push(this._loader.loadSceneAsync(context, scene));
106
+ this._loader.logOpen(`${extensionContext}`);
107
+ const light = ArrayItem.Get(`${extensionContext}/light`, this._lights, extension.light);
108
+ promises.push(this._loadLightAsync(`/extensions/${this.name}/lights/${extension.light}`, light).then((texture) => {
109
+ this._loader.babylonScene.environmentTexture = texture;
110
+ }));
111
+ this._loader.logClose();
112
+ return Promise.all(promises).then(() => { });
113
+ });
114
+ }
115
+ _loadLightAsync(context, light) {
116
+ if (!light._loaded) {
117
+ const promises = new Array();
118
+ this._loader.logOpen(`${context}`);
119
+ const imageData = new Array(light.specularImages.length);
120
+ for (let mipmap = 0; mipmap < light.specularImages.length; mipmap++) {
121
+ const faces = light.specularImages[mipmap];
122
+ imageData[mipmap] = new Array(faces.length);
123
+ for (let face = 0; face < faces.length; face++) {
124
+ const specularImageContext = `${context}/specularImages/${mipmap}/${face}`;
125
+ this._loader.logOpen(`${specularImageContext}`);
126
+ const index = faces[face];
127
+ const image = ArrayItem.Get(specularImageContext, this._loader.gltf.images, index);
128
+ promises.push(this._loader.loadImageAsync(`/images/${index}`, image).then((data) => {
129
+ imageData[mipmap][face] = data;
130
+ }));
131
+ this._loader.logClose();
132
+ }
133
+ }
134
+ this._loader.logClose();
135
+ light._loaded = Promise.all(promises).then(() => {
136
+ const babylonTexture = new RawCubeTexture(this._loader.babylonScene, null, light.specularImageSize);
137
+ babylonTexture.name = light.name || "environment";
138
+ light._babylonTexture = babylonTexture;
139
+ if (light.intensity != undefined) {
140
+ babylonTexture.level = light.intensity;
141
+ }
142
+ if (light.rotation) {
143
+ let rotation = Quaternion.FromArray(light.rotation);
144
+ // Invert the rotation so that positive rotation is counter-clockwise.
145
+ if (!this._loader.babylonScene.useRightHandedSystem) {
146
+ rotation = Quaternion.Inverse(rotation);
147
+ }
148
+ Matrix.FromQuaternionToRef(rotation, babylonTexture.getReflectionTextureMatrix());
149
+ }
150
+ if (!light.irradianceCoefficients) {
151
+ throw new Error(`${context}: Irradiance coefficients are missing`);
152
+ }
153
+ const sphericalHarmonics = SphericalHarmonics.FromArray(light.irradianceCoefficients);
154
+ sphericalHarmonics.scaleInPlace(light.intensity);
155
+ sphericalHarmonics.convertIrradianceToLambertianRadiance();
156
+ const sphericalPolynomial = SphericalPolynomial.FromHarmonics(sphericalHarmonics);
157
+ // Compute the lod generation scale to fit exactly to the number of levels available.
158
+ const lodGenerationScale = (imageData.length - 1) / Math.log2(light.specularImageSize);
159
+ return babylonTexture.updateRGBDAsync(imageData, sphericalPolynomial, lodGenerationScale);
160
+ });
161
+ }
162
+ return light._loaded.then(() => {
163
+ return light._babylonTexture;
164
+ });
165
+ }
166
+ }
167
+ unregisterGLTFExtension(NAME);
168
+ registerGLTFExtension(NAME, true, (loader) => new EXT_lights_image_based(loader));
169
+
170
+ export { EXT_lights_image_based };
171
+ //# sourceMappingURL=EXT_lights_image_based-CmP_ZGlF.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EXT_lights_image_based-CmP_ZGlF.esm.js","sources":["../../../../../dev/core/dist/Materials/Textures/rawCubeTexture.js","../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_lights_image_based.js"],"sourcesContent":["import { SerializationHelper } from \"../../Misc/decorators.serialization\";\nimport { _UpdateRGBDAsync as UpdateRGBDAsyncEnvTools } from \"../../Misc/environmentTextureTools\";\nimport { CubeTexture } from \"./cubeTexture\";\nimport { Constants } from \"../../Engines/constants\";\n/**\n * Raw cube texture where the raw buffers are passed in\n */\nexport class RawCubeTexture extends CubeTexture {\n /**\n * Creates a cube texture where the raw buffers are passed in.\n * @param scene defines the scene the texture is attached to\n * @param data defines the array of data to use to create each face\n * @param size defines the size of the textures\n * @param format defines the format of the data\n * @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_BYTE)\n * @param generateMipMaps defines if the engine should generate the mip levels\n * @param invertY defines if data must be stored with Y axis inverted\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\n * @param compression defines the compression used (null by default)\n */\n constructor(scene, data, size, format = Constants.TEXTUREFORMAT_RGBA, type = Constants.TEXTURETYPE_UNSIGNED_BYTE, generateMipMaps = false, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, compression = null) {\n super(\"\", scene);\n this._texture = scene.getEngine().createRawCubeTexture(data, size, format, type, generateMipMaps, invertY, samplingMode, compression);\n }\n /**\n * Updates the raw cube texture.\n * @param data defines the data to store\n * @param format defines the data format\n * @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_BYTE by default)\n * @param invertY defines if data must be stored with Y axis inverted\n * @param compression defines the compression used (null by default)\n */\n update(data, format, type, invertY, compression = null) {\n this._texture.getEngine().updateRawCubeTexture(this._texture, data, format, type, invertY, compression);\n }\n /**\n * Updates a raw cube texture with RGBD encoded data.\n * @param data defines the array of data [mipmap][face] to use to create each face\n * @param sphericalPolynomial defines the spherical polynomial for irradiance\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\n * @returns a promise that resolves when the operation is complete\n */\n updateRGBDAsync(data, sphericalPolynomial = null, lodScale = 0.8, lodOffset = 0) {\n return UpdateRGBDAsyncEnvTools(this._texture, data, sphericalPolynomial, lodScale, lodOffset).then(() => { });\n }\n /**\n * Clones the raw cube texture.\n * @returns a new cube texture\n */\n clone() {\n return SerializationHelper.Clone(() => {\n const scene = this.getScene();\n const internalTexture = this._texture;\n const texture = new RawCubeTexture(scene, internalTexture._bufferViewArray, internalTexture.width, internalTexture.format, internalTexture.type, internalTexture.generateMipMaps, internalTexture.invertY, internalTexture.samplingMode, internalTexture._compression);\n if (internalTexture.source === 13 /* InternalTextureSource.CubeRawRGBD */) {\n texture.updateRGBDAsync(internalTexture._bufferViewArrayArray, internalTexture._sphericalPolynomial, internalTexture._lodGenerationScale, internalTexture._lodGenerationOffset);\n }\n return texture;\n }, this);\n }\n}\n//# sourceMappingURL=rawCubeTexture.js.map","import { SphericalHarmonics, SphericalPolynomial } from \"core/Maths/sphericalPolynomial\";\nimport { Quaternion, Matrix } from \"core/Maths/math.vector\";\nimport { RawCubeTexture } from \"core/Materials/Textures/rawCubeTexture\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"EXT_lights_image_based\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_lights_image_based/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_lights_image_based {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._lights;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._lights = extension.lights;\n }\n }\n /**\n * @internal\n */\n loadSceneAsync(context, scene) {\n return GLTFLoader.LoadExtensionAsync(context, scene, this.name, (extensionContext, extension) => {\n this._loader._allMaterialsDirtyRequired = true;\n const promises = new Array();\n promises.push(this._loader.loadSceneAsync(context, scene));\n this._loader.logOpen(`${extensionContext}`);\n const light = ArrayItem.Get(`${extensionContext}/light`, this._lights, extension.light);\n promises.push(this._loadLightAsync(`/extensions/${this.name}/lights/${extension.light}`, light).then((texture) => {\n this._loader.babylonScene.environmentTexture = texture;\n }));\n this._loader.logClose();\n return Promise.all(promises).then(() => { });\n });\n }\n _loadLightAsync(context, light) {\n if (!light._loaded) {\n const promises = new Array();\n this._loader.logOpen(`${context}`);\n const imageData = new Array(light.specularImages.length);\n for (let mipmap = 0; mipmap < light.specularImages.length; mipmap++) {\n const faces = light.specularImages[mipmap];\n imageData[mipmap] = new Array(faces.length);\n for (let face = 0; face < faces.length; face++) {\n const specularImageContext = `${context}/specularImages/${mipmap}/${face}`;\n this._loader.logOpen(`${specularImageContext}`);\n const index = faces[face];\n const image = ArrayItem.Get(specularImageContext, this._loader.gltf.images, index);\n promises.push(this._loader.loadImageAsync(`/images/${index}`, image).then((data) => {\n imageData[mipmap][face] = data;\n }));\n this._loader.logClose();\n }\n }\n this._loader.logClose();\n light._loaded = Promise.all(promises).then(() => {\n const babylonTexture = new RawCubeTexture(this._loader.babylonScene, null, light.specularImageSize);\n babylonTexture.name = light.name || \"environment\";\n light._babylonTexture = babylonTexture;\n if (light.intensity != undefined) {\n babylonTexture.level = light.intensity;\n }\n if (light.rotation) {\n let rotation = Quaternion.FromArray(light.rotation);\n // Invert the rotation so that positive rotation is counter-clockwise.\n if (!this._loader.babylonScene.useRightHandedSystem) {\n rotation = Quaternion.Inverse(rotation);\n }\n Matrix.FromQuaternionToRef(rotation, babylonTexture.getReflectionTextureMatrix());\n }\n if (!light.irradianceCoefficients) {\n throw new Error(`${context}: Irradiance coefficients are missing`);\n }\n const sphericalHarmonics = SphericalHarmonics.FromArray(light.irradianceCoefficients);\n sphericalHarmonics.scaleInPlace(light.intensity);\n sphericalHarmonics.convertIrradianceToLambertianRadiance();\n const sphericalPolynomial = SphericalPolynomial.FromHarmonics(sphericalHarmonics);\n // Compute the lod generation scale to fit exactly to the number of levels available.\n const lodGenerationScale = (imageData.length - 1) / Math.log2(light.specularImageSize);\n return babylonTexture.updateRGBDAsync(imageData, sphericalPolynomial, lodGenerationScale);\n });\n }\n return light._loaded.then(() => {\n return light._babylonTexture;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_lights_image_based(loader));\n//# sourceMappingURL=EXT_lights_image_based.js.map"],"names":["UpdateRGBDAsyncEnvTools"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{a6 as e,v as s,ab as o,a4 as t,aP as r,aQ as a}from"./index-BHIM4QBr.esm.min.js";import{G as n,A as i}from"./glTFLoader-CkL-dxBD.esm.min.js";import"./thinInstanceMesh-BgfKoejL.esm.min.js";import"./rawTexture-CCCnj14W.esm.min.js";import"./assetContainer-DLSDgjTx.esm.min.js";import"./glTFLoaderAnimation-Cq2ziV9o.esm.min.js";const c="EXT_mesh_gpu_instancing";class l{constructor(e){this.name=c,this._loader=e,this.enabled=this._loader.isExtensionUsed(c)}dispose(){this._loader=null}loadNodeAsync(r,a,c){return n.LoadExtensionAsync(r,a,this.name,((r,n)=>{this._loader._disableInstancedMesh++;const l=this._loader.loadNodeAsync(`/nodes/${a.index}`,a,c);if(this._loader._disableInstancedMesh--,!a._primitiveBabylonMeshes)return l;const m=new Array;let d=0;const h=e=>{if(null==n.attributes[e])return void m.push(Promise.resolve(null));const s=i.Get(`${r}/attributes/${e}`,this._loader.gltf.accessors,n.attributes[e]);if(m.push(this._loader._loadFloatAccessorAsync(`/accessors/${s.bufferView}`,s)),0===d)d=s.count;else if(d!==s.count)throw new Error(`${r}/attributes: Instance buffer accessors do not have the same count.`)};return h("TRANSLATION"),h("ROTATION"),h("SCALE"),l.then((r=>Promise.all(m).then((([n,i,c])=>{const l=new Float32Array(16*d);e.Vector3[0].copyFromFloats(0,0,0),e.Quaternion[0].copyFromFloats(0,0,0,1),e.Vector3[1].copyFromFloats(1,1,1);for(let r=0;r<d;++r)n&&s.FromArrayToRef(n,3*r,e.Vector3[0]),i&&o.FromArrayToRef(i,4*r,e.Quaternion[0]),c&&s.FromArrayToRef(c,3*r,e.Vector3[1]),t.ComposeToRef(e.Vector3[1],e.Quaternion[0],e.Vector3[0],e.Matrix[0]),e.Matrix[0].copyToArray(l,16*r);for(const e of a._primitiveBabylonMeshes)e.thinInstanceSetBuffer("matrix",l,16,!0);return r}))))}))}}r(c),a(c,!0,(e=>new l(e)));export{l as EXT_mesh_gpu_instancing};
2
+ //# sourceMappingURL=EXT_mesh_gpu_instancing-DSFpOud_.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EXT_mesh_gpu_instancing-DSFpOud_.esm.min.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js"],"sourcesContent":["import { Vector3, Quaternion, Matrix, TmpVectors } from \"core/Maths/math.vector\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nimport \"core/Meshes/thinInstanceMesh\";\nconst NAME = \"EXT_mesh_gpu_instancing\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_mesh_gpu_instancing/README.md)\n * [Playground Sample](https://playground.babylonjs.com/#QFIGLW#9)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_mesh_gpu_instancing {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, (extensionContext, extension) => {\n this._loader._disableInstancedMesh++;\n const promise = this._loader.loadNodeAsync(`/nodes/${node.index}`, node, assign);\n this._loader._disableInstancedMesh--;\n if (!node._primitiveBabylonMeshes) {\n return promise;\n }\n const promises = new Array();\n let instanceCount = 0;\n const loadAttribute = (attribute) => {\n if (extension.attributes[attribute] == undefined) {\n promises.push(Promise.resolve(null));\n return;\n }\n const accessor = ArrayItem.Get(`${extensionContext}/attributes/${attribute}`, this._loader.gltf.accessors, extension.attributes[attribute]);\n promises.push(this._loader._loadFloatAccessorAsync(`/accessors/${accessor.bufferView}`, accessor));\n if (instanceCount === 0) {\n instanceCount = accessor.count;\n }\n else if (instanceCount !== accessor.count) {\n throw new Error(`${extensionContext}/attributes: Instance buffer accessors do not have the same count.`);\n }\n };\n loadAttribute(\"TRANSLATION\");\n loadAttribute(\"ROTATION\");\n loadAttribute(\"SCALE\");\n return promise.then((babylonTransformNode) => {\n return Promise.all(promises).then(([translationBuffer, rotationBuffer, scaleBuffer]) => {\n const matrices = new Float32Array(instanceCount * 16);\n TmpVectors.Vector3[0].copyFromFloats(0, 0, 0); // translation\n TmpVectors.Quaternion[0].copyFromFloats(0, 0, 0, 1); // rotation\n TmpVectors.Vector3[1].copyFromFloats(1, 1, 1); // scale\n for (let i = 0; i < instanceCount; ++i) {\n translationBuffer && Vector3.FromArrayToRef(translationBuffer, i * 3, TmpVectors.Vector3[0]);\n rotationBuffer && Quaternion.FromArrayToRef(rotationBuffer, i * 4, TmpVectors.Quaternion[0]);\n scaleBuffer && Vector3.FromArrayToRef(scaleBuffer, i * 3, TmpVectors.Vector3[1]);\n Matrix.ComposeToRef(TmpVectors.Vector3[1], TmpVectors.Quaternion[0], TmpVectors.Vector3[0], TmpVectors.Matrix[0]);\n TmpVectors.Matrix[0].copyToArray(matrices, i * 16);\n }\n for (const babylonMesh of node._primitiveBabylonMeshes) {\n babylonMesh.thinInstanceSetBuffer(\"matrix\", matrices, 16, true);\n }\n return babylonTransformNode;\n });\n });\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_mesh_gpu_instancing(loader));\n//# sourceMappingURL=EXT_mesh_gpu_instancing.js.map"],"names":["NAME","EXT_mesh_gpu_instancing","constructor","loader","this","name","_loader","enabled","isExtensionUsed","dispose","loadNodeAsync","context","node","assign","GLTFLoader","LoadExtensionAsync","extensionContext","extension","_disableInstancedMesh","promise","index","_primitiveBabylonMeshes","promises","Array","instanceCount","loadAttribute","attribute","undefined","attributes","push","Promise","resolve","accessor","ArrayItem","Get","gltf","accessors","_loadFloatAccessorAsync","bufferView","count","Error","then","babylonTransformNode","all","translationBuffer","rotationBuffer","scaleBuffer","matrices","Float32Array","TmpVectors","Vector3","copyFromFloats","Quaternion","i","FromArrayToRef","Matrix","ComposeToRef","copyToArray","babylonMesh","thinInstanceSetBuffer","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"2UAIA,MAAMA,EAAO,0BAMN,MAAMC,EAIT,WAAAC,CAAYC,GAIRC,KAAKC,KAAOL,EACZI,KAAKE,QAAUH,EACfC,KAAKG,QAAUH,KAAKE,QAAQE,gBAAgBR,EACpD,CAEI,OAAAS,GACIL,KAAKE,QAAU,IACvB,CAII,aAAAI,CAAcC,EAASC,EAAMC,GACzB,OAAOC,EAAWC,mBAAmBJ,EAASC,EAAMR,KAAKC,MAAM,CAACW,EAAkBC,KAC9Eb,KAAKE,QAAQY,wBACb,MAAMC,EAAUf,KAAKE,QAAQI,cAAc,UAAUE,EAAKQ,QAASR,EAAMC,GAEzE,GADAT,KAAKE,QAAQY,yBACRN,EAAKS,wBACN,OAAOF,EAEX,MAAMG,EAAW,IAAIC,MACrB,IAAIC,EAAgB,EACpB,MAAMC,EAAiBC,IACnB,GAAuCC,MAAnCV,EAAUW,WAAWF,GAErB,YADAJ,EAASO,KAAKC,QAAQC,QAAQ,OAGlC,MAAMC,EAAWC,EAAUC,IAAI,GAAGlB,gBAA+BU,IAAatB,KAAKE,QAAQ6B,KAAKC,UAAWnB,EAAUW,WAAWF,IAEhI,GADAJ,EAASO,KAAKzB,KAAKE,QAAQ+B,wBAAwB,cAAcL,EAASM,aAAcN,IAClE,IAAlBR,EACAA,EAAgBQ,EAASO,WAExB,GAAIf,IAAkBQ,EAASO,MAChC,MAAM,IAAIC,MAAM,GAAGxB,sEACvC,EAKY,OAHAS,EAAc,eACdA,EAAc,YACdA,EAAc,SACPN,EAAQsB,MAAMC,GACVZ,QAAQa,IAAIrB,GAAUmB,MAAK,EAAEG,EAAmBC,EAAgBC,MACnE,MAAMC,EAAW,IAAIC,aAA6B,GAAhBxB,GAClCyB,EAAWC,QAAQ,GAAGC,eAAe,EAAG,EAAG,GAC3CF,EAAWG,WAAW,GAAGD,eAAe,EAAG,EAAG,EAAG,GACjDF,EAAWC,QAAQ,GAAGC,eAAe,EAAG,EAAG,GAC3C,IAAK,IAAIE,EAAI,EAAGA,EAAI7B,IAAiB6B,EACjCT,GAAqBM,EAAQI,eAAeV,EAAuB,EAAJS,EAAOJ,EAAWC,QAAQ,IACzFL,GAAkBO,EAAWE,eAAeT,EAAoB,EAAJQ,EAAOJ,EAAWG,WAAW,IACzFN,GAAeI,EAAQI,eAAeR,EAAiB,EAAJO,EAAOJ,EAAWC,QAAQ,IAC7EK,EAAOC,aAAaP,EAAWC,QAAQ,GAAID,EAAWG,WAAW,GAAIH,EAAWC,QAAQ,GAAID,EAAWM,OAAO,IAC9GN,EAAWM,OAAO,GAAGE,YAAYV,EAAc,GAAJM,GAE/C,IAAK,MAAMK,KAAe9C,EAAKS,wBAC3BqC,EAAYC,sBAAsB,SAAUZ,EAAU,IAAI,GAE9D,OAAOL,CAAoB,KAEjC,GAEd,EAEAkB,EAAwB5D,GACxB6D,EAAsB7D,GAAM,GAAOG,GAAW,IAAIF,EAAwBE"}
@@ -0,0 +1,86 @@
1
+ import { a6 as TmpVectors, v as Vector3, ab as Quaternion, a4 as Matrix, aP as unregisterGLTFExtension, aQ as registerGLTFExtension } from './index-CtkZLm9J.esm.js';
2
+ import { G as GLTFLoader, A as ArrayItem } from './glTFLoader-IEHRfiUn.esm.js';
3
+ import './thinInstanceMesh-V41szD4h.esm.js';
4
+ import './rawTexture-78KJgWfq.esm.js';
5
+ import './assetContainer-cm8rvay3.esm.js';
6
+ import './glTFLoaderAnimation-CV32Nmqb.esm.js';
7
+
8
+ const NAME = "EXT_mesh_gpu_instancing";
9
+ /**
10
+ * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_mesh_gpu_instancing/README.md)
11
+ * [Playground Sample](https://playground.babylonjs.com/#QFIGLW#9)
12
+ */
13
+ // eslint-disable-next-line @typescript-eslint/naming-convention
14
+ class EXT_mesh_gpu_instancing {
15
+ /**
16
+ * @internal
17
+ */
18
+ constructor(loader) {
19
+ /**
20
+ * The name of this extension.
21
+ */
22
+ this.name = NAME;
23
+ this._loader = loader;
24
+ this.enabled = this._loader.isExtensionUsed(NAME);
25
+ }
26
+ /** @internal */
27
+ dispose() {
28
+ this._loader = null;
29
+ }
30
+ /**
31
+ * @internal
32
+ */
33
+ loadNodeAsync(context, node, assign) {
34
+ return GLTFLoader.LoadExtensionAsync(context, node, this.name, (extensionContext, extension) => {
35
+ this._loader._disableInstancedMesh++;
36
+ const promise = this._loader.loadNodeAsync(`/nodes/${node.index}`, node, assign);
37
+ this._loader._disableInstancedMesh--;
38
+ if (!node._primitiveBabylonMeshes) {
39
+ return promise;
40
+ }
41
+ const promises = new Array();
42
+ let instanceCount = 0;
43
+ const loadAttribute = (attribute) => {
44
+ if (extension.attributes[attribute] == undefined) {
45
+ promises.push(Promise.resolve(null));
46
+ return;
47
+ }
48
+ const accessor = ArrayItem.Get(`${extensionContext}/attributes/${attribute}`, this._loader.gltf.accessors, extension.attributes[attribute]);
49
+ promises.push(this._loader._loadFloatAccessorAsync(`/accessors/${accessor.bufferView}`, accessor));
50
+ if (instanceCount === 0) {
51
+ instanceCount = accessor.count;
52
+ }
53
+ else if (instanceCount !== accessor.count) {
54
+ throw new Error(`${extensionContext}/attributes: Instance buffer accessors do not have the same count.`);
55
+ }
56
+ };
57
+ loadAttribute("TRANSLATION");
58
+ loadAttribute("ROTATION");
59
+ loadAttribute("SCALE");
60
+ return promise.then((babylonTransformNode) => {
61
+ return Promise.all(promises).then(([translationBuffer, rotationBuffer, scaleBuffer]) => {
62
+ const matrices = new Float32Array(instanceCount * 16);
63
+ TmpVectors.Vector3[0].copyFromFloats(0, 0, 0); // translation
64
+ TmpVectors.Quaternion[0].copyFromFloats(0, 0, 0, 1); // rotation
65
+ TmpVectors.Vector3[1].copyFromFloats(1, 1, 1); // scale
66
+ for (let i = 0; i < instanceCount; ++i) {
67
+ translationBuffer && Vector3.FromArrayToRef(translationBuffer, i * 3, TmpVectors.Vector3[0]);
68
+ rotationBuffer && Quaternion.FromArrayToRef(rotationBuffer, i * 4, TmpVectors.Quaternion[0]);
69
+ scaleBuffer && Vector3.FromArrayToRef(scaleBuffer, i * 3, TmpVectors.Vector3[1]);
70
+ Matrix.ComposeToRef(TmpVectors.Vector3[1], TmpVectors.Quaternion[0], TmpVectors.Vector3[0], TmpVectors.Matrix[0]);
71
+ TmpVectors.Matrix[0].copyToArray(matrices, i * 16);
72
+ }
73
+ for (const babylonMesh of node._primitiveBabylonMeshes) {
74
+ babylonMesh.thinInstanceSetBuffer("matrix", matrices, 16, true);
75
+ }
76
+ return babylonTransformNode;
77
+ });
78
+ });
79
+ });
80
+ }
81
+ }
82
+ unregisterGLTFExtension(NAME);
83
+ registerGLTFExtension(NAME, true, (loader) => new EXT_mesh_gpu_instancing(loader));
84
+
85
+ export { EXT_mesh_gpu_instancing };
86
+ //# sourceMappingURL=EXT_mesh_gpu_instancing-DksAVeyV.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EXT_mesh_gpu_instancing-DksAVeyV.esm.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js"],"sourcesContent":["import { Vector3, Quaternion, Matrix, TmpVectors } from \"core/Maths/math.vector\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nimport \"core/Meshes/thinInstanceMesh\";\nconst NAME = \"EXT_mesh_gpu_instancing\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_mesh_gpu_instancing/README.md)\n * [Playground Sample](https://playground.babylonjs.com/#QFIGLW#9)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_mesh_gpu_instancing {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, (extensionContext, extension) => {\n this._loader._disableInstancedMesh++;\n const promise = this._loader.loadNodeAsync(`/nodes/${node.index}`, node, assign);\n this._loader._disableInstancedMesh--;\n if (!node._primitiveBabylonMeshes) {\n return promise;\n }\n const promises = new Array();\n let instanceCount = 0;\n const loadAttribute = (attribute) => {\n if (extension.attributes[attribute] == undefined) {\n promises.push(Promise.resolve(null));\n return;\n }\n const accessor = ArrayItem.Get(`${extensionContext}/attributes/${attribute}`, this._loader.gltf.accessors, extension.attributes[attribute]);\n promises.push(this._loader._loadFloatAccessorAsync(`/accessors/${accessor.bufferView}`, accessor));\n if (instanceCount === 0) {\n instanceCount = accessor.count;\n }\n else if (instanceCount !== accessor.count) {\n throw new Error(`${extensionContext}/attributes: Instance buffer accessors do not have the same count.`);\n }\n };\n loadAttribute(\"TRANSLATION\");\n loadAttribute(\"ROTATION\");\n loadAttribute(\"SCALE\");\n return promise.then((babylonTransformNode) => {\n return Promise.all(promises).then(([translationBuffer, rotationBuffer, scaleBuffer]) => {\n const matrices = new Float32Array(instanceCount * 16);\n TmpVectors.Vector3[0].copyFromFloats(0, 0, 0); // translation\n TmpVectors.Quaternion[0].copyFromFloats(0, 0, 0, 1); // rotation\n TmpVectors.Vector3[1].copyFromFloats(1, 1, 1); // scale\n for (let i = 0; i < instanceCount; ++i) {\n translationBuffer && Vector3.FromArrayToRef(translationBuffer, i * 3, TmpVectors.Vector3[0]);\n rotationBuffer && Quaternion.FromArrayToRef(rotationBuffer, i * 4, TmpVectors.Quaternion[0]);\n scaleBuffer && Vector3.FromArrayToRef(scaleBuffer, i * 3, TmpVectors.Vector3[1]);\n Matrix.ComposeToRef(TmpVectors.Vector3[1], TmpVectors.Quaternion[0], TmpVectors.Vector3[0], TmpVectors.Matrix[0]);\n TmpVectors.Matrix[0].copyToArray(matrices, i * 16);\n }\n for (const babylonMesh of node._primitiveBabylonMeshes) {\n babylonMesh.thinInstanceSetBuffer(\"matrix\", matrices, 16, true);\n }\n return babylonTransformNode;\n });\n });\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_mesh_gpu_instancing(loader));\n//# sourceMappingURL=EXT_mesh_gpu_instancing.js.map"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{G as e,A as t}from"./glTFLoader-CkL-dxBD.esm.min.js";import{T as s,aP as o,aQ as r}from"./index-BHIM4QBr.esm.min.js";import"./rawTexture-CCCnj14W.esm.min.js";import"./assetContainer-DLSDgjTx.esm.min.js";import"./glTFLoaderAnimation-Cq2ziV9o.esm.min.js";class n{static get Default(){return n._Default||(n._Default=new n),n._Default}constructor(){const e=n.Configuration.decoder;this._decoderModulePromise=s.LoadBabylonScriptAsync(e.url).then((()=>MeshoptDecoder.ready))}dispose(){delete this._decoderModulePromise}decodeGltfBufferAsync(e,t,s,o,r){return this._decoderModulePromise.then((async()=>{MeshoptDecoder.useWorkers(1);const n=await MeshoptDecoder.decodeGltfBufferAsync(t,s,e,o,r);return MeshoptDecoder.useWorkers(0),n}))}}n.Configuration={decoder:{url:`${s._DefaultCdnUrl}/meshopt_decoder.js`}},n._Default=null;const a="EXT_meshopt_compression";class d{constructor(e){this.name=a,this.enabled=e.isExtensionUsed(a),this._loader=e}dispose(){this._loader=null}loadBufferViewAsync(s,o){return e.LoadExtensionAsync(s,o,this.name,((e,r)=>{const a=o;if(a._meshOptData)return a._meshOptData;const d=t.Get(`${s}/buffer`,this._loader.gltf.buffers,r.buffer);return a._meshOptData=this._loader.loadBufferAsync(`/buffers/${d.index}`,d,r.byteOffset||0,r.byteLength).then((e=>n.Default.decodeGltfBufferAsync(e,r.count,r.byteStride,r.mode,r.filter))),a._meshOptData}))}}o(a),r(a,!0,(e=>new d(e)));export{d as EXT_meshopt_compression};
2
+ //# sourceMappingURL=EXT_meshopt_compression-CNUItnkN.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EXT_meshopt_compression-CNUItnkN.esm.min.js","sources":["../../../../../dev/core/dist/Meshes/Compression/meshoptCompression.js","../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_meshopt_compression.js"],"sourcesContent":["import { Tools } from \"../../Misc/tools\";\n/**\n * Meshopt compression (https://github.com/zeux/meshoptimizer)\n *\n * This class wraps the meshopt library from https://github.com/zeux/meshoptimizer/tree/master/js.\n *\n * **Encoder**\n *\n * The encoder is not currently implemented.\n *\n * **Decoder**\n *\n * By default, the configuration points to a copy of the meshopt files on the Babylon.js preview CDN (e.g. https://preview.babylonjs.com/meshopt_decoder.js).\n *\n * To update the configuration, use the following code:\n * ```javascript\n * MeshoptCompression.Configuration = {\n * decoder: {\n * url: \"<url to the meshopt decoder library>\"\n * }\n * };\n * ```\n */\nexport class MeshoptCompression {\n /**\n * Default instance for the meshoptimizer object.\n */\n static get Default() {\n if (!MeshoptCompression._Default) {\n MeshoptCompression._Default = new MeshoptCompression();\n }\n return MeshoptCompression._Default;\n }\n /**\n * Constructor\n */\n constructor() {\n const decoder = MeshoptCompression.Configuration.decoder;\n this._decoderModulePromise = Tools.LoadBabylonScriptAsync(decoder.url).then(() => {\n // Wait for WebAssembly compilation before resolving promise\n return MeshoptDecoder.ready;\n });\n }\n /**\n * Stop all async operations and release resources.\n */\n dispose() {\n delete this._decoderModulePromise;\n }\n /**\n * Decode meshopt data.\n * @see https://github.com/zeux/meshoptimizer/tree/master/js#decoder\n * @param source The input data.\n * @param count The number of elements.\n * @param stride The stride in bytes.\n * @param mode The compression mode.\n * @param filter The compression filter.\n * @returns a Promise<Uint8Array> that resolves to the decoded data\n */\n decodeGltfBufferAsync(source, count, stride, mode, filter) {\n return this._decoderModulePromise.then(async () => {\n MeshoptDecoder.useWorkers(1);\n const result = await MeshoptDecoder.decodeGltfBufferAsync(count, stride, source, mode, filter);\n MeshoptDecoder.useWorkers(0);\n return result;\n });\n }\n}\n/**\n * The configuration. Defaults to the following:\n * ```javascript\n * decoder: {\n * url: \"https://cdn.babylonjs.com/meshopt_decoder.js\"\n * }\n * ```\n */\nMeshoptCompression.Configuration = {\n decoder: {\n url: `${Tools._DefaultCdnUrl}/meshopt_decoder.js`,\n },\n};\nMeshoptCompression._Default = null;\n//# sourceMappingURL=meshoptCompression.js.map","import { ArrayItem, GLTFLoader } from \"../glTFLoader\";\nimport { MeshoptCompression } from \"core/Meshes/Compression/meshoptCompression\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"EXT_meshopt_compression\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_meshopt_compression/README.md)\n *\n * This extension uses a WebAssembly decoder module from https://github.com/zeux/meshoptimizer/tree/master/js\n * @since 5.0.0\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_meshopt_compression {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this.enabled = loader.isExtensionUsed(NAME);\n this._loader = loader;\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /**\n * @internal\n */\n loadBufferViewAsync(context, bufferView) {\n return GLTFLoader.LoadExtensionAsync(context, bufferView, this.name, (extensionContext, extension) => {\n const bufferViewMeshopt = bufferView;\n if (bufferViewMeshopt._meshOptData) {\n return bufferViewMeshopt._meshOptData;\n }\n const buffer = ArrayItem.Get(`${context}/buffer`, this._loader.gltf.buffers, extension.buffer);\n bufferViewMeshopt._meshOptData = this._loader.loadBufferAsync(`/buffers/${buffer.index}`, buffer, extension.byteOffset || 0, extension.byteLength).then((buffer) => {\n return MeshoptCompression.Default.decodeGltfBufferAsync(buffer, extension.count, extension.byteStride, extension.mode, extension.filter);\n });\n return bufferViewMeshopt._meshOptData;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_meshopt_compression(loader));\n//# sourceMappingURL=EXT_meshopt_compression.js.map"],"names":["MeshoptCompression","Default","_Default","constructor","decoder","Configuration","this","_decoderModulePromise","Tools","LoadBabylonScriptAsync","url","then","MeshoptDecoder","ready","dispose","decodeGltfBufferAsync","source","count","stride","mode","filter","async","useWorkers","result","_DefaultCdnUrl","NAME","EXT_meshopt_compression","loader","name","enabled","isExtensionUsed","_loader","loadBufferViewAsync","context","bufferView","GLTFLoader","LoadExtensionAsync","extensionContext","extension","bufferViewMeshopt","_meshOptData","buffer","ArrayItem","Get","gltf","buffers","loadBufferAsync","index","byteOffset","byteLength","byteStride","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"oQAuBO,MAAMA,EAIT,kBAAWC,GAIP,OAHKD,EAAmBE,WACpBF,EAAmBE,SAAW,IAAIF,GAE/BA,EAAmBE,QAClC,CAII,WAAAC,GACI,MAAMC,EAAUJ,EAAmBK,cAAcD,QACjDE,KAAKC,sBAAwBC,EAAMC,uBAAuBL,EAAQM,KAAKC,MAAK,IAEjEC,eAAeC,OAElC,CAII,OAAAC,UACWR,KAAKC,qBACpB,CAWI,qBAAAQ,CAAsBC,EAAQC,EAAOC,EAAQC,EAAMC,GAC/C,OAAOd,KAAKC,sBAAsBI,MAAKU,UACnCT,eAAeU,WAAW,GAC1B,MAAMC,QAAeX,eAAeG,sBAAsBE,EAAOC,EAAQF,EAAQG,EAAMC,GAEvF,OADAR,eAAeU,WAAW,GACnBC,CAAM,GAEzB,EAUAvB,EAAmBK,cAAgB,CAC/BD,QAAS,CACLM,IAAK,GAAGF,EAAMgB,sCAGtBxB,EAAmBE,SAAW,KC9E9B,MAAMuB,EAAO,0BAQN,MAAMC,EAIT,WAAAvB,CAAYwB,GAIRrB,KAAKsB,KAAOH,EACZnB,KAAKuB,QAAUF,EAAOG,gBAAgBL,GACtCnB,KAAKyB,QAAUJ,CACvB,CAEI,OAAAb,GACIR,KAAKyB,QAAU,IACvB,CAII,mBAAAC,CAAoBC,EAASC,GACzB,OAAOC,EAAWC,mBAAmBH,EAASC,EAAY5B,KAAKsB,MAAM,CAACS,EAAkBC,KACpF,MAAMC,EAAoBL,EAC1B,GAAIK,EAAkBC,aAClB,OAAOD,EAAkBC,aAE7B,MAAMC,EAASC,EAAUC,IAAI,GAAGV,WAAkB3B,KAAKyB,QAAQa,KAAKC,QAASP,EAAUG,QAIvF,OAHAF,EAAkBC,aAAelC,KAAKyB,QAAQe,gBAAgB,YAAYL,EAAOM,QAASN,EAAQH,EAAUU,YAAc,EAAGV,EAAUW,YAAYtC,MAAM8B,GAC9IzC,EAAmBC,QAAQc,sBAAsB0B,EAAQH,EAAUrB,MAAOqB,EAAUY,WAAYZ,EAAUnB,KAAMmB,EAAUlB,UAE9HmB,EAAkBC,YAAY,GAEjD,EAEAW,EAAwB1B,GACxB2B,EAAsB3B,GAAM,GAAOE,GAAW,IAAID,EAAwBC"}