@babylonjs/viewer 7.25.0 → 7.25.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 (530) hide show
  1. package/dist/babylon-viewer.esm.js +2 -0
  2. package/dist/babylon-viewer.esm.js.map +1 -0
  3. package/dist/babylon-viewer.esm.min.js +2 -0
  4. package/dist/babylon-viewer.esm.min.js.map +1 -0
  5. package/dist/chunks/EXT_lights_image_based-DVT9d5PE.esm.min.js +2 -0
  6. package/dist/chunks/EXT_lights_image_based-DVT9d5PE.esm.min.js.map +1 -0
  7. package/dist/chunks/EXT_lights_image_based-XqDzs68T.esm.js +170 -0
  8. package/dist/chunks/EXT_lights_image_based-XqDzs68T.esm.js.map +1 -0
  9. package/dist/chunks/EXT_mesh_gpu_instancing-BDdwYyny.esm.min.js +2 -0
  10. package/dist/chunks/EXT_mesh_gpu_instancing-BDdwYyny.esm.min.js.map +1 -0
  11. package/dist/chunks/EXT_mesh_gpu_instancing-DhR2UOBn.esm.js +86 -0
  12. package/dist/chunks/EXT_mesh_gpu_instancing-DhR2UOBn.esm.js.map +1 -0
  13. package/dist/chunks/EXT_meshopt_compression-BqFzh0gY.esm.js +134 -0
  14. package/dist/chunks/EXT_meshopt_compression-BqFzh0gY.esm.js.map +1 -0
  15. package/dist/chunks/EXT_meshopt_compression-SfXDvdUM.esm.min.js +2 -0
  16. package/dist/chunks/EXT_meshopt_compression-SfXDvdUM.esm.min.js.map +1 -0
  17. package/dist/chunks/EXT_texture_avif-JBIGyeRc.esm.js +44 -0
  18. package/dist/chunks/EXT_texture_avif-JBIGyeRc.esm.js.map +1 -0
  19. package/dist/chunks/EXT_texture_avif-q1TkH_G9.esm.min.js +2 -0
  20. package/dist/chunks/EXT_texture_avif-q1TkH_G9.esm.min.js.map +1 -0
  21. package/dist/chunks/EXT_texture_webp-B1s3FiRS.esm.js +43 -0
  22. package/dist/chunks/EXT_texture_webp-B1s3FiRS.esm.js.map +1 -0
  23. package/dist/chunks/EXT_texture_webp-BCI9KAUl.esm.min.js +2 -0
  24. package/dist/chunks/EXT_texture_webp-BCI9KAUl.esm.min.js.map +1 -0
  25. package/dist/chunks/ExtrasAsMetadata-BOD2FG8I.esm.min.js +2 -0
  26. package/dist/chunks/ExtrasAsMetadata-BOD2FG8I.esm.min.js.map +1 -0
  27. package/dist/chunks/ExtrasAsMetadata-ByiJUaSt.esm.js +64 -0
  28. package/dist/chunks/ExtrasAsMetadata-ByiJUaSt.esm.js.map +1 -0
  29. package/dist/chunks/KHR_animation_pointer-CNYMXY_w.esm.js +343 -0
  30. package/dist/chunks/KHR_animation_pointer-CNYMXY_w.esm.js.map +1 -0
  31. package/dist/chunks/KHR_animation_pointer-CnLRV_yl.esm.min.js +2 -0
  32. package/dist/chunks/KHR_animation_pointer-CnLRV_yl.esm.min.js.map +1 -0
  33. package/dist/chunks/KHR_draco_mesh_compression-AZ2o_aLj.esm.min.js +2 -0
  34. package/dist/chunks/KHR_draco_mesh_compression-AZ2o_aLj.esm.min.js.map +1 -0
  35. package/dist/chunks/KHR_draco_mesh_compression-DFY2Ctvm.esm.js +610 -0
  36. package/dist/chunks/KHR_draco_mesh_compression-DFY2Ctvm.esm.js.map +1 -0
  37. package/dist/chunks/KHR_interactivity-3PDcMKr_.esm.js +4033 -0
  38. package/dist/chunks/KHR_interactivity-3PDcMKr_.esm.js.map +1 -0
  39. package/dist/chunks/KHR_interactivity-C-cfOaao.esm.min.js +2 -0
  40. package/dist/chunks/KHR_interactivity-C-cfOaao.esm.min.js.map +1 -0
  41. package/dist/chunks/KHR_lights_punctual-DdpvJMDV.esm.js +1253 -0
  42. package/dist/chunks/KHR_lights_punctual-DdpvJMDV.esm.js.map +1 -0
  43. package/dist/chunks/KHR_lights_punctual-fnDFOclN.esm.min.js +2 -0
  44. package/dist/chunks/KHR_lights_punctual-fnDFOclN.esm.min.js.map +1 -0
  45. package/dist/chunks/KHR_materials_anisotropy-Cb6X0k3m.esm.min.js +2 -0
  46. package/dist/chunks/KHR_materials_anisotropy-Cb6X0k3m.esm.min.js.map +1 -0
  47. package/dist/chunks/KHR_materials_anisotropy-gNrsYmJY.esm.js +64 -0
  48. package/dist/chunks/KHR_materials_anisotropy-gNrsYmJY.esm.js.map +1 -0
  49. package/dist/chunks/KHR_materials_clearcoat-U2HUz3WB.esm.js +96 -0
  50. package/dist/chunks/KHR_materials_clearcoat-U2HUz3WB.esm.js.map +1 -0
  51. package/dist/chunks/KHR_materials_clearcoat-joUz7tSd.esm.min.js +2 -0
  52. package/dist/chunks/KHR_materials_clearcoat-joUz7tSd.esm.min.js.map +1 -0
  53. package/dist/chunks/KHR_materials_diffuse_transmission-Cm1IFxmL.esm.min.js +2 -0
  54. package/dist/chunks/KHR_materials_diffuse_transmission-Cm1IFxmL.esm.min.js.map +1 -0
  55. package/dist/chunks/KHR_materials_diffuse_transmission-Cn5gk-q_.esm.js +97 -0
  56. package/dist/chunks/KHR_materials_diffuse_transmission-Cn5gk-q_.esm.js.map +1 -0
  57. package/dist/chunks/KHR_materials_dispersion-Cpc2ME1B.esm.js +62 -0
  58. package/dist/chunks/KHR_materials_dispersion-Cpc2ME1B.esm.js.map +1 -0
  59. package/dist/chunks/KHR_materials_dispersion-Cv7zIL7j.esm.min.js +2 -0
  60. package/dist/chunks/KHR_materials_dispersion-Cv7zIL7j.esm.min.js.map +1 -0
  61. package/dist/chunks/KHR_materials_emissive_strength-BYxJ1Qaz.esm.js +55 -0
  62. package/dist/chunks/KHR_materials_emissive_strength-BYxJ1Qaz.esm.js.map +1 -0
  63. package/dist/chunks/KHR_materials_emissive_strength-DBEC-Pfr.esm.min.js +2 -0
  64. package/dist/chunks/KHR_materials_emissive_strength-DBEC-Pfr.esm.min.js.map +1 -0
  65. package/dist/chunks/KHR_materials_ior-B4HgptNe.esm.min.js +2 -0
  66. package/dist/chunks/KHR_materials_ior-B4HgptNe.esm.min.js.map +1 -0
  67. package/dist/chunks/KHR_materials_ior-CDtowU9f.esm.js +64 -0
  68. package/dist/chunks/KHR_materials_ior-CDtowU9f.esm.js.map +1 -0
  69. package/dist/chunks/KHR_materials_iridescence-CgkruUTk.esm.min.js +2 -0
  70. package/dist/chunks/KHR_materials_iridescence-CgkruUTk.esm.min.js.map +1 -0
  71. package/dist/chunks/KHR_materials_iridescence-CqmvyPW8.esm.js +72 -0
  72. package/dist/chunks/KHR_materials_iridescence-CqmvyPW8.esm.js.map +1 -0
  73. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BQV0asO5.esm.js +81 -0
  74. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BQV0asO5.esm.js.map +1 -0
  75. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Bv4SCrwb.esm.min.js +2 -0
  76. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Bv4SCrwb.esm.min.js.map +1 -0
  77. package/dist/chunks/KHR_materials_sheen-BQM2Rjmq.esm.js +85 -0
  78. package/dist/chunks/KHR_materials_sheen-BQM2Rjmq.esm.js.map +1 -0
  79. package/dist/chunks/KHR_materials_sheen-DV5CnbK2.esm.min.js +2 -0
  80. package/dist/chunks/KHR_materials_sheen-DV5CnbK2.esm.min.js.map +1 -0
  81. package/dist/chunks/KHR_materials_specular-4xCkE2rV.esm.js +75 -0
  82. package/dist/chunks/KHR_materials_specular-4xCkE2rV.esm.js.map +1 -0
  83. package/dist/chunks/KHR_materials_specular-CoAFRAcm.esm.min.js +2 -0
  84. package/dist/chunks/KHR_materials_specular-CoAFRAcm.esm.min.js.map +1 -0
  85. package/dist/chunks/KHR_materials_transmission-DUGtSvRL.esm.js +307 -0
  86. package/dist/chunks/KHR_materials_transmission-DUGtSvRL.esm.js.map +1 -0
  87. package/dist/chunks/KHR_materials_transmission-dc1ndoxL.esm.min.js +2 -0
  88. package/dist/chunks/KHR_materials_transmission-dc1ndoxL.esm.min.js.map +1 -0
  89. package/dist/chunks/KHR_materials_unlit-BNXbHdvw.esm.js +74 -0
  90. package/dist/chunks/KHR_materials_unlit-BNXbHdvw.esm.js.map +1 -0
  91. package/dist/chunks/KHR_materials_unlit-D9MVjMTN.esm.min.js +2 -0
  92. package/dist/chunks/KHR_materials_unlit-D9MVjMTN.esm.min.js.map +1 -0
  93. package/dist/chunks/KHR_materials_variants-CBW9J72v.esm.min.js +2 -0
  94. package/dist/chunks/KHR_materials_variants-CBW9J72v.esm.min.js.map +1 -0
  95. package/dist/chunks/KHR_materials_variants-Dkur-XMA.esm.js +238 -0
  96. package/dist/chunks/KHR_materials_variants-Dkur-XMA.esm.js.map +1 -0
  97. package/dist/chunks/KHR_materials_volume-BSWwp0PI.esm.js +87 -0
  98. package/dist/chunks/KHR_materials_volume-BSWwp0PI.esm.js.map +1 -0
  99. package/dist/chunks/KHR_materials_volume-uEEN0xx9.esm.min.js +2 -0
  100. package/dist/chunks/KHR_materials_volume-uEEN0xx9.esm.min.js.map +1 -0
  101. package/dist/chunks/KHR_mesh_quantization--7YAD1i9.esm.js +26 -0
  102. package/dist/chunks/KHR_mesh_quantization--7YAD1i9.esm.js.map +1 -0
  103. package/dist/chunks/KHR_mesh_quantization-D48i0ooq.esm.min.js +2 -0
  104. package/dist/chunks/KHR_mesh_quantization-D48i0ooq.esm.min.js.map +1 -0
  105. package/dist/chunks/KHR_texture_basisu-CJHQOtEz.esm.min.js +2 -0
  106. package/dist/chunks/KHR_texture_basisu-CJHQOtEz.esm.min.js.map +1 -0
  107. package/dist/chunks/KHR_texture_basisu-CZJ-szw2.esm.js +43 -0
  108. package/dist/chunks/KHR_texture_basisu-CZJ-szw2.esm.js.map +1 -0
  109. package/dist/chunks/KHR_texture_transform-CCGZOtJG.esm.js +63 -0
  110. package/dist/chunks/KHR_texture_transform-CCGZOtJG.esm.js.map +1 -0
  111. package/dist/chunks/KHR_texture_transform-Cz_tYWj9.esm.min.js +2 -0
  112. package/dist/chunks/KHR_texture_transform-Cz_tYWj9.esm.min.js.map +1 -0
  113. package/dist/chunks/KHR_xmp_json_ld-BWhXh4yX.esm.min.js +2 -0
  114. package/dist/chunks/KHR_xmp_json_ld-BWhXh4yX.esm.min.js.map +1 -0
  115. package/dist/chunks/KHR_xmp_json_ld-D8vGUblu.esm.js +51 -0
  116. package/dist/chunks/KHR_xmp_json_ld-D8vGUblu.esm.js.map +1 -0
  117. package/dist/chunks/MSFT_audio_emitter-CABqee9Z.esm.min.js +2 -0
  118. package/dist/chunks/MSFT_audio_emitter-CABqee9Z.esm.min.js.map +1 -0
  119. package/dist/chunks/MSFT_audio_emitter-CupxtNMJ.esm.js +2236 -0
  120. package/dist/chunks/MSFT_audio_emitter-CupxtNMJ.esm.js.map +1 -0
  121. package/dist/chunks/MSFT_lod-BZ6xhN71.esm.min.js +2 -0
  122. package/dist/chunks/MSFT_lod-BZ6xhN71.esm.min.js.map +1 -0
  123. package/dist/chunks/MSFT_lod-D6-TVSnT.esm.js +337 -0
  124. package/dist/chunks/MSFT_lod-D6-TVSnT.esm.js.map +1 -0
  125. package/dist/chunks/MSFT_minecraftMesh-DXKcYd7c.esm.js +46 -0
  126. package/dist/chunks/MSFT_minecraftMesh-DXKcYd7c.esm.js.map +1 -0
  127. package/dist/chunks/MSFT_minecraftMesh-jQGuk0z2.esm.min.js +2 -0
  128. package/dist/chunks/MSFT_minecraftMesh-jQGuk0z2.esm.min.js.map +1 -0
  129. package/dist/chunks/MSFT_sRGBFactors-CMIEJuDa.esm.min.js +2 -0
  130. package/dist/chunks/MSFT_sRGBFactors-CMIEJuDa.esm.min.js.map +1 -0
  131. package/dist/chunks/MSFT_sRGBFactors-D1di9DYd.esm.js +47 -0
  132. package/dist/chunks/MSFT_sRGBFactors-D1di9DYd.esm.js.map +1 -0
  133. package/dist/chunks/assetContainer-B4RZAzKO.esm.min.js +2 -0
  134. package/dist/chunks/assetContainer-B4RZAzKO.esm.min.js.map +1 -0
  135. package/dist/chunks/assetContainer-B_DdybqS.esm.js +1598 -0
  136. package/dist/chunks/assetContainer-B_DdybqS.esm.js.map +1 -0
  137. package/dist/chunks/audioEngine-BNEDnVbO.esm.min.js +2 -0
  138. package/dist/chunks/audioEngine-BNEDnVbO.esm.min.js.map +1 -0
  139. package/dist/chunks/audioEngine-CICNJdfP.esm.js +305 -0
  140. package/dist/chunks/audioEngine-CICNJdfP.esm.js.map +1 -0
  141. package/dist/chunks/basisTextureLoader-B_8qIBcv.esm.js +600 -0
  142. package/dist/chunks/basisTextureLoader-B_8qIBcv.esm.js.map +1 -0
  143. package/dist/chunks/basisTextureLoader-qwPrmlI1.esm.min.js +2 -0
  144. package/dist/chunks/basisTextureLoader-qwPrmlI1.esm.min.js.map +1 -0
  145. package/dist/chunks/ddsTextureLoader-Caj9Cn2g.esm.min.js +2 -0
  146. package/dist/chunks/ddsTextureLoader-Caj9Cn2g.esm.min.js.map +1 -0
  147. package/dist/chunks/ddsTextureLoader-Dtde5Y_E.esm.js +87 -0
  148. package/dist/chunks/ddsTextureLoader-Dtde5Y_E.esm.js.map +1 -0
  149. package/dist/chunks/default.fragment-3-A6Ds5q.esm.js +456 -0
  150. package/dist/chunks/default.fragment-3-A6Ds5q.esm.js.map +1 -0
  151. package/dist/chunks/default.fragment-CK_5aPIO.esm.js +515 -0
  152. package/dist/chunks/default.fragment-CK_5aPIO.esm.js.map +1 -0
  153. package/dist/chunks/default.fragment-CW6M2CvG.esm.min.js +2 -0
  154. package/dist/chunks/default.fragment-CW6M2CvG.esm.min.js.map +1 -0
  155. package/dist/chunks/default.fragment-D8IeeUuR.esm.min.js +2 -0
  156. package/dist/chunks/default.fragment-D8IeeUuR.esm.min.js.map +1 -0
  157. package/dist/chunks/default.vertex-BnmEG9Z3.esm.js +178 -0
  158. package/dist/chunks/default.vertex-BnmEG9Z3.esm.js.map +1 -0
  159. package/dist/chunks/default.vertex-CByxmCU_.esm.min.js +2 -0
  160. package/dist/chunks/default.vertex-CByxmCU_.esm.min.js.map +1 -0
  161. package/dist/chunks/default.vertex-CKXtUMTv.esm.min.js +2 -0
  162. package/dist/chunks/default.vertex-CKXtUMTv.esm.min.js.map +1 -0
  163. package/dist/chunks/default.vertex-D5kQBg6V.esm.js +199 -0
  164. package/dist/chunks/default.vertex-D5kQBg6V.esm.js.map +1 -0
  165. package/dist/chunks/defaultUboDeclaration-AgU83OaK.esm.min.js +2 -0
  166. package/dist/chunks/defaultUboDeclaration-AgU83OaK.esm.min.js.map +1 -0
  167. package/dist/chunks/defaultUboDeclaration-BTsCVlsd.esm.min.js +2 -0
  168. package/dist/chunks/defaultUboDeclaration-BTsCVlsd.esm.min.js.map +1 -0
  169. package/dist/chunks/defaultUboDeclaration-bGo0gkae.esm.js +15 -0
  170. package/dist/chunks/defaultUboDeclaration-bGo0gkae.esm.js.map +1 -0
  171. package/dist/chunks/defaultUboDeclaration-pi1Tffi-.esm.js +13 -0
  172. package/dist/chunks/defaultUboDeclaration-pi1Tffi-.esm.js.map +1 -0
  173. package/dist/chunks/engine-DDK673Fr.esm.js +1613 -0
  174. package/dist/chunks/engine-DDK673Fr.esm.js.map +1 -0
  175. package/dist/chunks/engine-DdeN2F9N.esm.min.js +2 -0
  176. package/dist/chunks/engine-DdeN2F9N.esm.min.js.map +1 -0
  177. package/dist/chunks/envTextureLoader-B_We3UAe.esm.min.js +2 -0
  178. package/dist/chunks/envTextureLoader-B_We3UAe.esm.min.js.map +1 -0
  179. package/dist/chunks/envTextureLoader-DeYk_D-u.esm.js +63 -0
  180. package/dist/chunks/envTextureLoader-DeYk_D-u.esm.js.map +1 -0
  181. package/dist/chunks/environmentTextureTools-DT_BQR6L.esm.min.js +2 -0
  182. package/dist/chunks/environmentTextureTools-DT_BQR6L.esm.min.js.map +1 -0
  183. package/dist/chunks/environmentTextureTools-DZ4GOzAY.esm.js +381 -0
  184. package/dist/chunks/environmentTextureTools-DZ4GOzAY.esm.js.map +1 -0
  185. package/dist/chunks/exrTextureLoader-BPFaquLu.esm.min.js +2 -0
  186. package/dist/chunks/exrTextureLoader-BPFaquLu.esm.min.js.map +1 -0
  187. package/dist/chunks/exrTextureLoader-DFfYDSvx.esm.js +1682 -0
  188. package/dist/chunks/exrTextureLoader-DFfYDSvx.esm.js.map +1 -0
  189. package/dist/chunks/fogFragment-ChBeVMbL.esm.min.js +2 -0
  190. package/dist/chunks/fogFragment-ChBeVMbL.esm.min.js.map +1 -0
  191. package/dist/chunks/fogFragment-CnlQ05Rn.esm.js +102 -0
  192. package/dist/chunks/fogFragment-CnlQ05Rn.esm.js.map +1 -0
  193. package/dist/chunks/glTFLoader-CfuuZdCb.esm.js +7552 -0
  194. package/dist/chunks/glTFLoader-CfuuZdCb.esm.js.map +1 -0
  195. package/dist/chunks/glTFLoader-DOyVt9PU.esm.min.js +2 -0
  196. package/dist/chunks/glTFLoader-DOyVt9PU.esm.min.js.map +1 -0
  197. package/dist/chunks/glTFLoaderAnimation-28_L-pzh.esm.js +77 -0
  198. package/dist/chunks/glTFLoaderAnimation-28_L-pzh.esm.js.map +1 -0
  199. package/dist/chunks/glTFLoaderAnimation-Cueukaay.esm.min.js +2 -0
  200. package/dist/chunks/glTFLoaderAnimation-Cueukaay.esm.min.js.map +1 -0
  201. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
  202. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
  203. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
  204. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
  205. package/dist/chunks/harmonicsFunctions-5m2TqpP7.esm.js +34 -0
  206. package/dist/chunks/harmonicsFunctions-5m2TqpP7.esm.js.map +1 -0
  207. package/dist/chunks/harmonicsFunctions-CZvW5nS2.esm.min.js +2 -0
  208. package/dist/chunks/harmonicsFunctions-CZvW5nS2.esm.min.js.map +1 -0
  209. package/dist/chunks/harmonicsFunctions-FoyoVJjx.esm.js +35 -0
  210. package/dist/chunks/harmonicsFunctions-FoyoVJjx.esm.js.map +1 -0
  211. package/dist/chunks/harmonicsFunctions-LPFcAay5.esm.min.js +2 -0
  212. package/dist/chunks/harmonicsFunctions-LPFcAay5.esm.min.js.map +1 -0
  213. package/dist/chunks/hdrTextureLoader-BF58jeD4.esm.min.js +2 -0
  214. package/dist/chunks/hdrTextureLoader-BF58jeD4.esm.min.js.map +1 -0
  215. package/dist/chunks/hdrTextureLoader-CnAlxQ46.esm.js +252 -0
  216. package/dist/chunks/hdrTextureLoader-CnAlxQ46.esm.js.map +1 -0
  217. package/dist/chunks/helperFunctions-BHi3ZDnH.esm.js +80 -0
  218. package/dist/chunks/helperFunctions-BHi3ZDnH.esm.js.map +1 -0
  219. package/dist/chunks/helperFunctions-D9QX7d8q.esm.min.js +2 -0
  220. package/dist/chunks/helperFunctions-D9QX7d8q.esm.min.js.map +1 -0
  221. package/dist/chunks/helperFunctions-bapbKVVS.esm.js +108 -0
  222. package/dist/chunks/helperFunctions-bapbKVVS.esm.js.map +1 -0
  223. package/dist/chunks/helperFunctions-hh2B4qDl.esm.min.js +2 -0
  224. package/dist/chunks/helperFunctions-hh2B4qDl.esm.min.js.map +1 -0
  225. package/dist/chunks/index-4QQveomY.esm.js +79813 -0
  226. package/dist/chunks/index-4QQveomY.esm.js.map +1 -0
  227. package/dist/chunks/index-D5606AHu.esm.min.js +57 -0
  228. package/dist/chunks/index-D5606AHu.esm.min.js.map +1 -0
  229. package/dist/chunks/ktxTextureLoader-CxAMFjnh.esm.js +814 -0
  230. package/dist/chunks/ktxTextureLoader-CxAMFjnh.esm.js.map +1 -0
  231. package/dist/chunks/ktxTextureLoader-s0dUXnt8.esm.min.js +2 -0
  232. package/dist/chunks/ktxTextureLoader-s0dUXnt8.esm.min.js.map +1 -0
  233. package/dist/chunks/logDepthDeclaration-BcnqcXJe.esm.js +35 -0
  234. package/dist/chunks/logDepthDeclaration-BcnqcXJe.esm.js.map +1 -0
  235. package/dist/chunks/logDepthDeclaration-CvXtMvcM.esm.js +42 -0
  236. package/dist/chunks/logDepthDeclaration-CvXtMvcM.esm.js.map +1 -0
  237. package/dist/chunks/logDepthDeclaration-cPWsL3PG.esm.min.js +2 -0
  238. package/dist/chunks/logDepthDeclaration-cPWsL3PG.esm.min.js.map +1 -0
  239. package/dist/chunks/logDepthDeclaration-unowpoZK.esm.min.js +2 -0
  240. package/dist/chunks/logDepthDeclaration-unowpoZK.esm.min.js.map +1 -0
  241. package/dist/chunks/logDepthVertex-BrvDYbCP.esm.min.js +2 -0
  242. package/dist/chunks/logDepthVertex-BrvDYbCP.esm.min.js.map +1 -0
  243. package/dist/chunks/logDepthVertex-CUUB4BTI.esm.js +605 -0
  244. package/dist/chunks/logDepthVertex-CUUB4BTI.esm.js.map +1 -0
  245. package/dist/chunks/logDepthVertex-DaNvEIGn.esm.min.js +2 -0
  246. package/dist/chunks/logDepthVertex-DaNvEIGn.esm.min.js.map +1 -0
  247. package/dist/chunks/logDepthVertex-foN2jGvJ.esm.js +77 -0
  248. package/dist/chunks/logDepthVertex-foN2jGvJ.esm.js.map +1 -0
  249. package/dist/chunks/mainUVVaryingDeclaration-DHTqc_aH.esm.js +11 -0
  250. package/dist/chunks/mainUVVaryingDeclaration-DHTqc_aH.esm.js.map +1 -0
  251. package/dist/chunks/mainUVVaryingDeclaration-PFUWfv7o.esm.min.js +2 -0
  252. package/dist/chunks/mainUVVaryingDeclaration-PFUWfv7o.esm.min.js.map +1 -0
  253. package/dist/chunks/objFileLoader-B-uLP26U.esm.min.js +2 -0
  254. package/dist/chunks/objFileLoader-B-uLP26U.esm.min.js.map +1 -0
  255. package/dist/chunks/objFileLoader-Bl2Pzv0o.esm.js +1280 -0
  256. package/dist/chunks/objFileLoader-Bl2Pzv0o.esm.js.map +1 -0
  257. package/dist/chunks/oitFragment-CZShr04f.esm.min.js +2 -0
  258. package/dist/chunks/oitFragment-CZShr04f.esm.min.js.map +1 -0
  259. package/dist/chunks/oitFragment-D3c3Lp9a.esm.js +1210 -0
  260. package/dist/chunks/oitFragment-D3c3Lp9a.esm.js.map +1 -0
  261. package/dist/chunks/oitFragment-D6uOdl_0.esm.min.js +2 -0
  262. package/dist/chunks/oitFragment-D6uOdl_0.esm.min.js.map +1 -0
  263. package/dist/chunks/oitFragment-E27tpA6b.esm.js +1166 -0
  264. package/dist/chunks/oitFragment-E27tpA6b.esm.js.map +1 -0
  265. package/dist/chunks/pass.fragment-CGX8gTNY.esm.js +15 -0
  266. package/dist/chunks/pass.fragment-CGX8gTNY.esm.js.map +1 -0
  267. package/dist/chunks/pass.fragment-DKqeYsmS.esm.min.js +2 -0
  268. package/dist/chunks/pass.fragment-DKqeYsmS.esm.min.js.map +1 -0
  269. package/dist/chunks/pbr.fragment-5XRl6pKm.esm.min.js +2 -0
  270. package/dist/chunks/pbr.fragment-5XRl6pKm.esm.min.js.map +1 -0
  271. package/dist/chunks/pbr.fragment-Cfsv9tFG.esm.js +3172 -0
  272. package/dist/chunks/pbr.fragment-Cfsv9tFG.esm.js.map +1 -0
  273. package/dist/chunks/pbr.fragment-DGBodARG.esm.min.js +2 -0
  274. package/dist/chunks/pbr.fragment-DGBodARG.esm.min.js.map +1 -0
  275. package/dist/chunks/pbr.fragment-IMDXwBnG.esm.js +3228 -0
  276. package/dist/chunks/pbr.fragment-IMDXwBnG.esm.js.map +1 -0
  277. package/dist/chunks/pbr.vertex-B3JKAxfl.esm.min.js +2 -0
  278. package/dist/chunks/pbr.vertex-B3JKAxfl.esm.min.js.map +1 -0
  279. package/dist/chunks/pbr.vertex-CZIasM0q.esm.js +335 -0
  280. package/dist/chunks/pbr.vertex-CZIasM0q.esm.js.map +1 -0
  281. package/dist/chunks/pbr.vertex-CjU0MUM9.esm.min.js +2 -0
  282. package/dist/chunks/pbr.vertex-CjU0MUM9.esm.min.js.map +1 -0
  283. package/dist/chunks/pbr.vertex-h6JyEpaS.esm.js +208 -0
  284. package/dist/chunks/pbr.vertex-h6JyEpaS.esm.js.map +1 -0
  285. package/dist/chunks/postprocess.vertex-B0ei94Dw.esm.min.js +2 -0
  286. package/dist/chunks/postprocess.vertex-B0ei94Dw.esm.min.js.map +1 -0
  287. package/dist/chunks/postprocess.vertex-r5NscKzh.esm.js +20 -0
  288. package/dist/chunks/postprocess.vertex-r5NscKzh.esm.js.map +1 -0
  289. package/dist/chunks/rawTexture-Bmw0auoS.esm.min.js +2 -0
  290. package/dist/chunks/rawTexture-Bmw0auoS.esm.min.js.map +1 -0
  291. package/dist/chunks/rawTexture-CpYqstLv.esm.js +562 -0
  292. package/dist/chunks/rawTexture-CpYqstLv.esm.js.map +1 -0
  293. package/dist/chunks/rgbdDecode.fragment-BBOPxYJO.esm.min.js +2 -0
  294. package/dist/chunks/rgbdDecode.fragment-BBOPxYJO.esm.min.js.map +1 -0
  295. package/dist/chunks/rgbdDecode.fragment-C1mQs3ed.esm.js +17 -0
  296. package/dist/chunks/rgbdDecode.fragment-C1mQs3ed.esm.js.map +1 -0
  297. package/dist/chunks/rgbdDecode.fragment-CaqsSeIW.esm.min.js +2 -0
  298. package/dist/chunks/rgbdDecode.fragment-CaqsSeIW.esm.min.js.map +1 -0
  299. package/dist/chunks/rgbdDecode.fragment-MPQ7knvL.esm.js +17 -0
  300. package/dist/chunks/rgbdDecode.fragment-MPQ7knvL.esm.js.map +1 -0
  301. package/dist/chunks/rgbdEncode.fragment-6EdQiINi.esm.min.js +2 -0
  302. package/dist/chunks/rgbdEncode.fragment-6EdQiINi.esm.min.js.map +1 -0
  303. package/dist/chunks/rgbdEncode.fragment-C-msuzIz.esm.min.js +2 -0
  304. package/dist/chunks/rgbdEncode.fragment-C-msuzIz.esm.min.js.map +1 -0
  305. package/dist/chunks/rgbdEncode.fragment-Wd9cTDxy.esm.js +17 -0
  306. package/dist/chunks/rgbdEncode.fragment-Wd9cTDxy.esm.js.map +1 -0
  307. package/dist/chunks/rgbdEncode.fragment-X-RqQAkc.esm.js +17 -0
  308. package/dist/chunks/rgbdEncode.fragment-X-RqQAkc.esm.js.map +1 -0
  309. package/dist/chunks/splatFileLoader-DQ9jOQE9.esm.min.js +2 -0
  310. package/dist/chunks/splatFileLoader-DQ9jOQE9.esm.min.js.map +1 -0
  311. package/dist/chunks/splatFileLoader-hdSfXVdE.esm.js +3154 -0
  312. package/dist/chunks/splatFileLoader-hdSfXVdE.esm.js.map +1 -0
  313. package/dist/chunks/standardMaterial-Cq-J9fif.esm.min.js +2 -0
  314. package/dist/chunks/standardMaterial-Cq-J9fif.esm.min.js.map +1 -0
  315. package/dist/chunks/standardMaterial-GIGkmsd2.esm.js +1809 -0
  316. package/dist/chunks/standardMaterial-GIGkmsd2.esm.js.map +1 -0
  317. package/dist/chunks/stlFileLoader--AN8pgtb.esm.min.js +2 -0
  318. package/dist/chunks/stlFileLoader--AN8pgtb.esm.min.js.map +1 -0
  319. package/dist/chunks/stlFileLoader-BjJ0Yz5v.esm.js +237 -0
  320. package/dist/chunks/stlFileLoader-BjJ0Yz5v.esm.js.map +1 -0
  321. package/dist/chunks/tgaTextureLoader-B3gQ-Dwh.esm.min.js +2 -0
  322. package/dist/chunks/tgaTextureLoader-B3gQ-Dwh.esm.min.js.map +1 -0
  323. package/dist/chunks/tgaTextureLoader-BmEYbSF8.esm.js +349 -0
  324. package/dist/chunks/tgaTextureLoader-BmEYbSF8.esm.js.map +1 -0
  325. package/dist/chunks/thinInstanceMesh-DLE1cPa9.esm.js +314 -0
  326. package/dist/chunks/thinInstanceMesh-DLE1cPa9.esm.js.map +1 -0
  327. package/dist/chunks/thinInstanceMesh-DgJgeFTD.esm.min.js +2 -0
  328. package/dist/chunks/thinInstanceMesh-DgJgeFTD.esm.min.js.map +1 -0
  329. package/dist/chunks/vertexColorMixing-Dn7oXj03.esm.js +528 -0
  330. package/dist/chunks/vertexColorMixing-Dn7oXj03.esm.js.map +1 -0
  331. package/dist/chunks/vertexColorMixing-cD_XcjBD.esm.min.js +2 -0
  332. package/dist/chunks/vertexColorMixing-cD_XcjBD.esm.min.js.map +1 -0
  333. package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
  334. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
  335. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
  336. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
  337. package/lib/index.d.ts +275 -0
  338. package/lib/index.js +942 -0
  339. package/lib/index.js.map +1 -0
  340. package/package.json +17 -27
  341. package/readme.md +35 -21
  342. package/configuration/configuration.d.ts +0 -107
  343. package/configuration/configuration.js +0 -16
  344. package/configuration/configuration.js.map +0 -1
  345. package/configuration/configurationCompatibility.d.ts +0 -8
  346. package/configuration/configurationCompatibility.js +0 -66
  347. package/configuration/configurationCompatibility.js.map +0 -1
  348. package/configuration/configurationContainer.d.ts +0 -10
  349. package/configuration/configurationContainer.js +0 -10
  350. package/configuration/configurationContainer.js.map +0 -1
  351. package/configuration/globals.d.ts +0 -6
  352. package/configuration/globals.js +0 -18
  353. package/configuration/globals.js.map +0 -1
  354. package/configuration/index.d.ts +0 -2
  355. package/configuration/index.js +0 -4
  356. package/configuration/index.js.map +0 -1
  357. package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
  358. package/configuration/interfaces/cameraConfiguration.js +0 -2
  359. package/configuration/interfaces/cameraConfiguration.js.map +0 -1
  360. package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
  361. package/configuration/interfaces/colorGradingConfiguration.js +0 -2
  362. package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
  363. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
  364. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
  365. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
  366. package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
  367. package/configuration/interfaces/environmentMapConfiguration.js +0 -2
  368. package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
  369. package/configuration/interfaces/groundConfiguration.d.ts +0 -24
  370. package/configuration/interfaces/groundConfiguration.js +0 -2
  371. package/configuration/interfaces/groundConfiguration.js.map +0 -1
  372. package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
  373. package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
  374. package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
  375. package/configuration/interfaces/index.d.ts +0 -15
  376. package/configuration/interfaces/index.js +0 -16
  377. package/configuration/interfaces/index.js.map +0 -1
  378. package/configuration/interfaces/lightConfiguration.d.ts +0 -60
  379. package/configuration/interfaces/lightConfiguration.js +0 -2
  380. package/configuration/interfaces/lightConfiguration.js.map +0 -1
  381. package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
  382. package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
  383. package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
  384. package/configuration/interfaces/modelConfiguration.d.ts +0 -65
  385. package/configuration/interfaces/modelConfiguration.js +0 -2
  386. package/configuration/interfaces/modelConfiguration.js.map +0 -1
  387. package/configuration/interfaces/observersConfiguration.d.ts +0 -5
  388. package/configuration/interfaces/observersConfiguration.js +0 -2
  389. package/configuration/interfaces/observersConfiguration.js.map +0 -1
  390. package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
  391. package/configuration/interfaces/sceneConfiguration.js +0 -2
  392. package/configuration/interfaces/sceneConfiguration.js.map +0 -1
  393. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
  394. package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
  395. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
  396. package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
  397. package/configuration/interfaces/skyboxConfiguration.js +0 -2
  398. package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
  399. package/configuration/interfaces/templateConfiguration.d.ts +0 -67
  400. package/configuration/interfaces/templateConfiguration.js +0 -2
  401. package/configuration/interfaces/templateConfiguration.js.map +0 -1
  402. package/configuration/interfaces/vrConfiguration.d.ts +0 -16
  403. package/configuration/interfaces/vrConfiguration.js +0 -2
  404. package/configuration/interfaces/vrConfiguration.js.map +0 -1
  405. package/configuration/loader.d.ts +0 -4
  406. package/configuration/loader.js +0 -17
  407. package/configuration/loader.js.map +0 -1
  408. package/configuration/mappers.d.ts +0 -43
  409. package/configuration/mappers.js +0 -192
  410. package/configuration/mappers.js.map +0 -1
  411. package/configuration/renderOnlyLoader.d.ts +0 -33
  412. package/configuration/renderOnlyLoader.js +0 -162
  413. package/configuration/renderOnlyLoader.js.map +0 -1
  414. package/configuration/types/default.d.ts +0 -6
  415. package/configuration/types/default.js +0 -121
  416. package/configuration/types/default.js.map +0 -1
  417. package/configuration/types/environmentMap.d.ts +0 -5
  418. package/configuration/types/environmentMap.js +0 -14
  419. package/configuration/types/environmentMap.js.map +0 -1
  420. package/configuration/types/extended.d.ts +0 -6
  421. package/configuration/types/extended.js +0 -317
  422. package/configuration/types/extended.js.map +0 -1
  423. package/configuration/types/index.d.ts +0 -14
  424. package/configuration/types/index.js +0 -51
  425. package/configuration/types/index.js.map +0 -1
  426. package/configuration/types/minimal.d.ts +0 -6
  427. package/configuration/types/minimal.js +0 -43
  428. package/configuration/types/minimal.js.map +0 -1
  429. package/configuration/types/renderOnlyDefault.d.ts +0 -30
  430. package/configuration/types/renderOnlyDefault.js +0 -31
  431. package/configuration/types/renderOnlyDefault.js.map +0 -1
  432. package/configuration/types/shadowLight.d.ts +0 -9
  433. package/configuration/types/shadowLight.js +0 -64
  434. package/configuration/types/shadowLight.js.map +0 -1
  435. package/helper/index.d.ts +0 -29
  436. package/helper/index.js +0 -66
  437. package/helper/index.js.map +0 -1
  438. package/index.d.ts +0 -30
  439. package/index.js +0 -46
  440. package/index.js.map +0 -1
  441. package/initializer.d.ts +0 -11
  442. package/initializer.js +0 -35
  443. package/initializer.js.map +0 -1
  444. package/interfaces.d.ts +0 -5
  445. package/interfaces.js +0 -7
  446. package/interfaces.js.map +0 -1
  447. package/labs/environmentSerializer.d.ts +0 -126
  448. package/labs/environmentSerializer.js +0 -191
  449. package/labs/environmentSerializer.js.map +0 -1
  450. package/labs/texture.d.ts +0 -183
  451. package/labs/texture.js +0 -350
  452. package/labs/texture.js.map +0 -1
  453. package/labs/viewerLabs.d.ts +0 -51
  454. package/labs/viewerLabs.js +0 -134
  455. package/labs/viewerLabs.js.map +0 -1
  456. package/loader/modelLoader.d.ts +0 -56
  457. package/loader/modelLoader.js +0 -199
  458. package/loader/modelLoader.js.map +0 -1
  459. package/loader/plugins/applyMaterialConfig.d.ts +0 -12
  460. package/loader/plugins/applyMaterialConfig.js +0 -16
  461. package/loader/plugins/applyMaterialConfig.js.map +0 -1
  462. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
  463. package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
  464. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
  465. package/loader/plugins/index.d.ts +0 -19
  466. package/loader/plugins/index.js +0 -44
  467. package/loader/plugins/index.js.map +0 -1
  468. package/loader/plugins/loaderPlugin.d.ts +0 -24
  469. package/loader/plugins/loaderPlugin.js +0 -2
  470. package/loader/plugins/loaderPlugin.js.map +0 -1
  471. package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
  472. package/loader/plugins/msftLodLoaderPlugin.js +0 -21
  473. package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
  474. package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
  475. package/loader/plugins/telemetryLoaderPlugin.js +0 -36
  476. package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
  477. package/managers/observablesManager.d.ts +0 -66
  478. package/managers/observablesManager.js +0 -35
  479. package/managers/observablesManager.js.map +0 -1
  480. package/managers/sceneManager.d.ts +0 -245
  481. package/managers/sceneManager.js +0 -1375
  482. package/managers/sceneManager.js.map +0 -1
  483. package/managers/telemetryManager.d.ts +0 -78
  484. package/managers/telemetryManager.js +0 -117
  485. package/managers/telemetryManager.js.map +0 -1
  486. package/model/modelAnimation.d.ts +0 -215
  487. package/model/modelAnimation.js +0 -237
  488. package/model/modelAnimation.js.map +0 -1
  489. package/model/viewerModel.d.ts +0 -233
  490. package/model/viewerModel.js +0 -673
  491. package/model/viewerModel.js.map +0 -1
  492. package/optimizer/custom/extended.d.ts +0 -13
  493. package/optimizer/custom/extended.js +0 -101
  494. package/optimizer/custom/extended.js.map +0 -1
  495. package/optimizer/custom/index.d.ts +0 -9
  496. package/optimizer/custom/index.js +0 -26
  497. package/optimizer/custom/index.js.map +0 -1
  498. package/renderOnlyIndex.d.ts +0 -11
  499. package/renderOnlyIndex.js +0 -18
  500. package/renderOnlyIndex.js.map +0 -1
  501. package/templating/eventManager.d.ts +0 -35
  502. package/templating/eventManager.js +0 -66
  503. package/templating/eventManager.js.map +0 -1
  504. package/templating/plugins/hdButtonPlugin.d.ts +0 -9
  505. package/templating/plugins/hdButtonPlugin.js +0 -21
  506. package/templating/plugins/hdButtonPlugin.js.map +0 -1
  507. package/templating/plugins/printButton.d.ts +0 -9
  508. package/templating/plugins/printButton.js +0 -40
  509. package/templating/plugins/printButton.js.map +0 -1
  510. package/templating/templateManager.d.ts +0 -197
  511. package/templating/templateManager.js +0 -561
  512. package/templating/templateManager.js.map +0 -1
  513. package/templating/viewerTemplatePlugin.d.ts +0 -21
  514. package/templating/viewerTemplatePlugin.js +0 -69
  515. package/templating/viewerTemplatePlugin.js.map +0 -1
  516. package/viewer/defaultViewer.d.ts +0 -130
  517. package/viewer/defaultViewer.js +0 -675
  518. package/viewer/defaultViewer.js.map +0 -1
  519. package/viewer/renderOnlyViewer.d.ts +0 -9
  520. package/viewer/renderOnlyViewer.js +0 -46
  521. package/viewer/renderOnlyViewer.js.map +0 -1
  522. package/viewer/viewer.d.ts +0 -258
  523. package/viewer/viewer.js +0 -783
  524. package/viewer/viewer.js.map +0 -1
  525. package/viewer/viewerManager.d.ts +0 -58
  526. package/viewer/viewerManager.js +0 -91
  527. package/viewer/viewerManager.js.map +0 -1
  528. package/viewer/viewerWithTemplate.d.ts +0 -9
  529. package/viewer/viewerWithTemplate.js +0 -20
  530. package/viewer/viewerWithTemplate.js.map +0 -1
@@ -0,0 +1,305 @@
1
+ import { A as AbstractEngine, az as Observable, I as IsWindowObjectExist, L as Logger } from './index-4QQveomY.esm.js';
2
+
3
+ // Sets the default audio engine to Babylon.js
4
+ AbstractEngine.AudioEngineFactory = (hostElement, audioContext, audioDestination) => {
5
+ return new AudioEngine(hostElement, audioContext, audioDestination);
6
+ };
7
+ /**
8
+ * This represents the default audio engine used in babylon.
9
+ * It is responsible to play, synchronize and analyse sounds throughout the application.
10
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic
11
+ */
12
+ class AudioEngine {
13
+ /**
14
+ * Gets the current AudioContext if available.
15
+ */
16
+ get audioContext() {
17
+ if (!this._audioContextInitialized) {
18
+ this._initializeAudioContext();
19
+ }
20
+ return this._audioContext;
21
+ }
22
+ /**
23
+ * Instantiates a new audio engine.
24
+ *
25
+ * There should be only one per page as some browsers restrict the number
26
+ * of audio contexts you can create.
27
+ * @param hostElement defines the host element where to display the mute icon if necessary
28
+ * @param audioContext defines the audio context to be used by the audio engine
29
+ * @param audioDestination defines the audio destination node to be used by audio engine
30
+ */
31
+ constructor(hostElement = null, audioContext = null, audioDestination = null) {
32
+ this._audioContext = null;
33
+ this._audioContextInitialized = false;
34
+ this._muteButton = null;
35
+ this._audioDestination = null;
36
+ /**
37
+ * Gets whether the current host supports Web Audio and thus could create AudioContexts.
38
+ */
39
+ this.canUseWebAudio = false;
40
+ /**
41
+ * Defines if Babylon should emit a warning if WebAudio is not supported.
42
+ * @ignoreNaming
43
+ */
44
+ // eslint-disable-next-line @typescript-eslint/naming-convention
45
+ this.WarnedWebAudioUnsupported = false;
46
+ /**
47
+ * Gets whether or not mp3 are supported by your browser.
48
+ */
49
+ this.isMP3supported = false;
50
+ /**
51
+ * Gets whether or not ogg are supported by your browser.
52
+ */
53
+ this.isOGGsupported = false;
54
+ /**
55
+ * Gets whether audio has been unlocked on the device.
56
+ * Some Browsers have strong restrictions about Audio and won't autoplay unless
57
+ * a user interaction has happened.
58
+ */
59
+ this.unlocked = false;
60
+ /**
61
+ * Defines if the audio engine relies on a custom unlocked button.
62
+ * In this case, the embedded button will not be displayed.
63
+ */
64
+ this.useCustomUnlockedButton = false;
65
+ /**
66
+ * Event raised when audio has been unlocked on the browser.
67
+ */
68
+ this.onAudioUnlockedObservable = new Observable();
69
+ /**
70
+ * Event raised when audio has been locked on the browser.
71
+ */
72
+ this.onAudioLockedObservable = new Observable();
73
+ this._tryToRun = false;
74
+ this._onResize = () => {
75
+ this._moveButtonToTopLeft();
76
+ };
77
+ if (!IsWindowObjectExist()) {
78
+ return;
79
+ }
80
+ if (typeof window.AudioContext !== "undefined") {
81
+ this.canUseWebAudio = true;
82
+ }
83
+ const audioElem = document.createElement("audio");
84
+ this._hostElement = hostElement;
85
+ this._audioContext = audioContext;
86
+ this._audioDestination = audioDestination;
87
+ try {
88
+ if (audioElem &&
89
+ !!audioElem.canPlayType &&
90
+ (audioElem.canPlayType('audio/mpeg; codecs="mp3"').replace(/^no$/, "") || audioElem.canPlayType("audio/mp3").replace(/^no$/, ""))) {
91
+ this.isMP3supported = true;
92
+ }
93
+ }
94
+ catch (e) {
95
+ // protect error during capability check.
96
+ }
97
+ try {
98
+ if (audioElem && !!audioElem.canPlayType && audioElem.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, "")) {
99
+ this.isOGGsupported = true;
100
+ }
101
+ }
102
+ catch (e) {
103
+ // protect error during capability check.
104
+ }
105
+ }
106
+ /**
107
+ * Flags the audio engine in Locked state.
108
+ * This happens due to new browser policies preventing audio to autoplay.
109
+ */
110
+ lock() {
111
+ this._triggerSuspendedState();
112
+ }
113
+ /**
114
+ * Unlocks the audio engine once a user action has been done on the dom.
115
+ * This is helpful to resume play once browser policies have been satisfied.
116
+ */
117
+ unlock() {
118
+ if (this._audioContext?.state === "running") {
119
+ this._hideMuteButton();
120
+ if (!this.unlocked) {
121
+ // Notify users that the audio stack is unlocked/unmuted
122
+ this.unlocked = true;
123
+ this.onAudioUnlockedObservable.notifyObservers(this);
124
+ }
125
+ return;
126
+ }
127
+ // On iOS, if the audio context resume request was sent from an event other than a `click` event, then
128
+ // the resume promise will never resolve and the only way to get the audio context unstuck is to
129
+ // suspend it and make another resume request.
130
+ if (this._tryToRun) {
131
+ this._audioContext?.suspend().then(() => {
132
+ this._tryToRun = false;
133
+ this._triggerRunningState();
134
+ });
135
+ }
136
+ else {
137
+ this._triggerRunningState();
138
+ }
139
+ }
140
+ /** @internal */
141
+ _resumeAudioContextOnStateChange() {
142
+ this._audioContext?.addEventListener("statechange", () => {
143
+ if (this.unlocked && this._audioContext?.state !== "running") {
144
+ this._resumeAudioContext();
145
+ }
146
+ }, {
147
+ once: true,
148
+ passive: true,
149
+ signal: AbortSignal.timeout(3000),
150
+ });
151
+ }
152
+ _resumeAudioContext() {
153
+ if (this._audioContext?.resume) {
154
+ return this._audioContext.resume();
155
+ }
156
+ return Promise.resolve();
157
+ }
158
+ _initializeAudioContext() {
159
+ try {
160
+ if (this.canUseWebAudio) {
161
+ if (!this._audioContext) {
162
+ this._audioContext = new AudioContext();
163
+ }
164
+ // create a global volume gain node
165
+ this.masterGain = this._audioContext.createGain();
166
+ this.masterGain.gain.value = 1;
167
+ if (!this._audioDestination) {
168
+ this._audioDestination = this._audioContext.destination;
169
+ }
170
+ this.masterGain.connect(this._audioDestination);
171
+ this._audioContextInitialized = true;
172
+ if (this._audioContext.state === "running") {
173
+ // Do not wait for the promise to unlock.
174
+ this._triggerRunningState();
175
+ }
176
+ }
177
+ }
178
+ catch (e) {
179
+ this.canUseWebAudio = false;
180
+ Logger.Error("Web Audio: " + e.message);
181
+ }
182
+ }
183
+ _triggerRunningState() {
184
+ if (this._tryToRun) {
185
+ return;
186
+ }
187
+ this._tryToRun = true;
188
+ this._resumeAudioContext()
189
+ .then(() => {
190
+ this._tryToRun = false;
191
+ if (this._muteButton) {
192
+ this._hideMuteButton();
193
+ }
194
+ // Notify users that the audio stack is unlocked/unmuted
195
+ this.unlocked = true;
196
+ this.onAudioUnlockedObservable.notifyObservers(this);
197
+ })
198
+ .catch(() => {
199
+ this._tryToRun = false;
200
+ this.unlocked = false;
201
+ });
202
+ }
203
+ _triggerSuspendedState() {
204
+ this.unlocked = false;
205
+ this.onAudioLockedObservable.notifyObservers(this);
206
+ this._displayMuteButton();
207
+ }
208
+ _displayMuteButton() {
209
+ if (this.useCustomUnlockedButton || this._muteButton) {
210
+ return;
211
+ }
212
+ this._muteButton = document.createElement("BUTTON");
213
+ this._muteButton.className = "babylonUnmuteIcon";
214
+ this._muteButton.id = "babylonUnmuteIconBtn";
215
+ this._muteButton.title = "Unmute";
216
+ const imageUrl = !window.SVGSVGElement
217
+ ? "https://cdn.babylonjs.com/Assets/audio.png"
218
+ : "data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2239%22%20height%3D%2232%22%20viewBox%3D%220%200%2039%2032%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M9.625%2018.938l-0.031%200.016h-4.953q-0.016%200-0.031-0.016v-12.453q0-0.016%200.031-0.016h4.953q0.031%200%200.031%200.016v12.453zM12.125%207.688l8.719-8.703v27.453l-8.719-8.719-0.016-0.047v-9.938zM23.359%207.875l1.406-1.406%204.219%204.203%204.203-4.203%201.422%201.406-4.219%204.219%204.219%204.203-1.484%201.359-4.141-4.156-4.219%204.219-1.406-1.422%204.219-4.203z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E";
219
+ const css = ".babylonUnmuteIcon { position: absolute; left: 20px; top: 20px; height: 40px; width: 60px; background-color: rgba(51,51,51,0.7); background-image: url(" +
220
+ imageUrl +
221
+ "); background-size: 80%; background-repeat:no-repeat; background-position: center; background-position-y: 4px; border: none; outline: none; transition: transform 0.125s ease-out; cursor: pointer; z-index: 9999; } .babylonUnmuteIcon:hover { transform: scale(1.05) } .babylonUnmuteIcon:active { background-color: rgba(51,51,51,1) }";
222
+ const style = document.createElement("style");
223
+ style.appendChild(document.createTextNode(css));
224
+ document.getElementsByTagName("head")[0].appendChild(style);
225
+ document.body.appendChild(this._muteButton);
226
+ this._moveButtonToTopLeft();
227
+ this._muteButton.addEventListener("touchend", () => {
228
+ this._triggerRunningState();
229
+ }, true);
230
+ this._muteButton.addEventListener("click", () => {
231
+ this.unlock();
232
+ }, true);
233
+ window.addEventListener("resize", this._onResize);
234
+ }
235
+ _moveButtonToTopLeft() {
236
+ if (this._hostElement && this._muteButton) {
237
+ this._muteButton.style.top = this._hostElement.offsetTop + 20 + "px";
238
+ this._muteButton.style.left = this._hostElement.offsetLeft + 20 + "px";
239
+ }
240
+ }
241
+ _hideMuteButton() {
242
+ if (this._muteButton) {
243
+ document.body.removeChild(this._muteButton);
244
+ this._muteButton = null;
245
+ }
246
+ }
247
+ /**
248
+ * Destroy and release the resources associated with the audio context.
249
+ */
250
+ dispose() {
251
+ if (this.canUseWebAudio && this._audioContextInitialized) {
252
+ if (this._connectedAnalyser && this._audioContext) {
253
+ this._connectedAnalyser.stopDebugCanvas();
254
+ this._connectedAnalyser.dispose();
255
+ this.masterGain.disconnect();
256
+ this.masterGain.connect(this._audioContext.destination);
257
+ this._connectedAnalyser = null;
258
+ }
259
+ this.masterGain.gain.value = 1;
260
+ }
261
+ this.WarnedWebAudioUnsupported = false;
262
+ this._hideMuteButton();
263
+ window.removeEventListener("resize", this._onResize);
264
+ this.onAudioUnlockedObservable.clear();
265
+ this.onAudioLockedObservable.clear();
266
+ }
267
+ /**
268
+ * Gets the global volume sets on the master gain.
269
+ * @returns the global volume if set or -1 otherwise
270
+ */
271
+ getGlobalVolume() {
272
+ if (this.canUseWebAudio && this._audioContextInitialized) {
273
+ return this.masterGain.gain.value;
274
+ }
275
+ else {
276
+ return -1;
277
+ }
278
+ }
279
+ /**
280
+ * Sets the global volume of your experience (sets on the master gain).
281
+ * @param newVolume Defines the new global volume of the application
282
+ */
283
+ setGlobalVolume(newVolume) {
284
+ if (this.canUseWebAudio && this._audioContextInitialized) {
285
+ this.masterGain.gain.value = newVolume;
286
+ }
287
+ }
288
+ /**
289
+ * Connect the audio engine to an audio analyser allowing some amazing
290
+ * synchronization between the sounds/music and your visualization (VuMeter for instance).
291
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#using-the-analyser
292
+ * @param analyser The analyser to connect to the engine
293
+ */
294
+ connectToAnalyser(analyser) {
295
+ if (this._connectedAnalyser) {
296
+ this._connectedAnalyser.stopDebugCanvas();
297
+ }
298
+ if (this.canUseWebAudio && this._audioContextInitialized && this._audioContext) {
299
+ this._connectedAnalyser = analyser;
300
+ this.masterGain.disconnect();
301
+ this._connectedAnalyser.connectAudioNodes(this.masterGain, this._audioContext.destination);
302
+ }
303
+ }
304
+ }
305
+ //# sourceMappingURL=audioEngine-CICNJdfP.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioEngine-CICNJdfP.esm.js","sources":["../../../../../dev/core/dist/Audio/audioEngine.js"],"sourcesContent":["import { Observable } from \"../Misc/observable\";\nimport { Logger } from \"../Misc/logger\";\nimport { AbstractEngine } from \"../Engines/abstractEngine\";\nimport { IsWindowObjectExist } from \"../Misc/domManagement\";\n// Sets the default audio engine to Babylon.js\nAbstractEngine.AudioEngineFactory = (hostElement, audioContext, audioDestination) => {\n return new AudioEngine(hostElement, audioContext, audioDestination);\n};\n/**\n * This represents the default audio engine used in babylon.\n * It is responsible to play, synchronize and analyse sounds throughout the application.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic\n */\nexport class AudioEngine {\n /**\n * Gets the current AudioContext if available.\n */\n get audioContext() {\n if (!this._audioContextInitialized) {\n this._initializeAudioContext();\n }\n return this._audioContext;\n }\n /**\n * Instantiates a new audio engine.\n *\n * There should be only one per page as some browsers restrict the number\n * of audio contexts you can create.\n * @param hostElement defines the host element where to display the mute icon if necessary\n * @param audioContext defines the audio context to be used by the audio engine\n * @param audioDestination defines the audio destination node to be used by audio engine\n */\n constructor(hostElement = null, audioContext = null, audioDestination = null) {\n this._audioContext = null;\n this._audioContextInitialized = false;\n this._muteButton = null;\n this._audioDestination = null;\n /**\n * Gets whether the current host supports Web Audio and thus could create AudioContexts.\n */\n this.canUseWebAudio = false;\n /**\n * Defines if Babylon should emit a warning if WebAudio is not supported.\n * @ignoreNaming\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n this.WarnedWebAudioUnsupported = false;\n /**\n * Gets whether or not mp3 are supported by your browser.\n */\n this.isMP3supported = false;\n /**\n * Gets whether or not ogg are supported by your browser.\n */\n this.isOGGsupported = false;\n /**\n * Gets whether audio has been unlocked on the device.\n * Some Browsers have strong restrictions about Audio and won't autoplay unless\n * a user interaction has happened.\n */\n this.unlocked = false;\n /**\n * Defines if the audio engine relies on a custom unlocked button.\n * In this case, the embedded button will not be displayed.\n */\n this.useCustomUnlockedButton = false;\n /**\n * Event raised when audio has been unlocked on the browser.\n */\n this.onAudioUnlockedObservable = new Observable();\n /**\n * Event raised when audio has been locked on the browser.\n */\n this.onAudioLockedObservable = new Observable();\n this._tryToRun = false;\n this._onResize = () => {\n this._moveButtonToTopLeft();\n };\n if (!IsWindowObjectExist()) {\n return;\n }\n if (typeof window.AudioContext !== \"undefined\") {\n this.canUseWebAudio = true;\n }\n const audioElem = document.createElement(\"audio\");\n this._hostElement = hostElement;\n this._audioContext = audioContext;\n this._audioDestination = audioDestination;\n try {\n if (audioElem &&\n !!audioElem.canPlayType &&\n (audioElem.canPlayType('audio/mpeg; codecs=\"mp3\"').replace(/^no$/, \"\") || audioElem.canPlayType(\"audio/mp3\").replace(/^no$/, \"\"))) {\n this.isMP3supported = true;\n }\n }\n catch (e) {\n // protect error during capability check.\n }\n try {\n if (audioElem && !!audioElem.canPlayType && audioElem.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, \"\")) {\n this.isOGGsupported = true;\n }\n }\n catch (e) {\n // protect error during capability check.\n }\n }\n /**\n * Flags the audio engine in Locked state.\n * This happens due to new browser policies preventing audio to autoplay.\n */\n lock() {\n this._triggerSuspendedState();\n }\n /**\n * Unlocks the audio engine once a user action has been done on the dom.\n * This is helpful to resume play once browser policies have been satisfied.\n */\n unlock() {\n if (this._audioContext?.state === \"running\") {\n this._hideMuteButton();\n if (!this.unlocked) {\n // Notify users that the audio stack is unlocked/unmuted\n this.unlocked = true;\n this.onAudioUnlockedObservable.notifyObservers(this);\n }\n return;\n }\n // On iOS, if the audio context resume request was sent from an event other than a `click` event, then\n // the resume promise will never resolve and the only way to get the audio context unstuck is to\n // suspend it and make another resume request.\n if (this._tryToRun) {\n this._audioContext?.suspend().then(() => {\n this._tryToRun = false;\n this._triggerRunningState();\n });\n }\n else {\n this._triggerRunningState();\n }\n }\n /** @internal */\n _resumeAudioContextOnStateChange() {\n this._audioContext?.addEventListener(\"statechange\", () => {\n if (this.unlocked && this._audioContext?.state !== \"running\") {\n this._resumeAudioContext();\n }\n }, {\n once: true,\n passive: true,\n signal: AbortSignal.timeout(3000),\n });\n }\n _resumeAudioContext() {\n if (this._audioContext?.resume) {\n return this._audioContext.resume();\n }\n return Promise.resolve();\n }\n _initializeAudioContext() {\n try {\n if (this.canUseWebAudio) {\n if (!this._audioContext) {\n this._audioContext = new AudioContext();\n }\n // create a global volume gain node\n this.masterGain = this._audioContext.createGain();\n this.masterGain.gain.value = 1;\n if (!this._audioDestination) {\n this._audioDestination = this._audioContext.destination;\n }\n this.masterGain.connect(this._audioDestination);\n this._audioContextInitialized = true;\n if (this._audioContext.state === \"running\") {\n // Do not wait for the promise to unlock.\n this._triggerRunningState();\n }\n }\n }\n catch (e) {\n this.canUseWebAudio = false;\n Logger.Error(\"Web Audio: \" + e.message);\n }\n }\n _triggerRunningState() {\n if (this._tryToRun) {\n return;\n }\n this._tryToRun = true;\n this._resumeAudioContext()\n .then(() => {\n this._tryToRun = false;\n if (this._muteButton) {\n this._hideMuteButton();\n }\n // Notify users that the audio stack is unlocked/unmuted\n this.unlocked = true;\n this.onAudioUnlockedObservable.notifyObservers(this);\n })\n .catch(() => {\n this._tryToRun = false;\n this.unlocked = false;\n });\n }\n _triggerSuspendedState() {\n this.unlocked = false;\n this.onAudioLockedObservable.notifyObservers(this);\n this._displayMuteButton();\n }\n _displayMuteButton() {\n if (this.useCustomUnlockedButton || this._muteButton) {\n return;\n }\n this._muteButton = document.createElement(\"BUTTON\");\n this._muteButton.className = \"babylonUnmuteIcon\";\n this._muteButton.id = \"babylonUnmuteIconBtn\";\n this._muteButton.title = \"Unmute\";\n const imageUrl = !window.SVGSVGElement\n ? \"https://cdn.babylonjs.com/Assets/audio.png\"\n : \"data:image/svg+xml;charset=UTF-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2239%22%20height%3D%2232%22%20viewBox%3D%220%200%2039%2032%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M9.625%2018.938l-0.031%200.016h-4.953q-0.016%200-0.031-0.016v-12.453q0-0.016%200.031-0.016h4.953q0.031%200%200.031%200.016v12.453zM12.125%207.688l8.719-8.703v27.453l-8.719-8.719-0.016-0.047v-9.938zM23.359%207.875l1.406-1.406%204.219%204.203%204.203-4.203%201.422%201.406-4.219%204.219%204.219%204.203-1.484%201.359-4.141-4.156-4.219%204.219-1.406-1.422%204.219-4.203z%22%3E%3C%2Fpath%3E%3C%2Fsvg%3E\";\n const css = \".babylonUnmuteIcon { position: absolute; left: 20px; top: 20px; height: 40px; width: 60px; background-color: rgba(51,51,51,0.7); background-image: url(\" +\n imageUrl +\n \"); background-size: 80%; background-repeat:no-repeat; background-position: center; background-position-y: 4px; border: none; outline: none; transition: transform 0.125s ease-out; cursor: pointer; z-index: 9999; } .babylonUnmuteIcon:hover { transform: scale(1.05) } .babylonUnmuteIcon:active { background-color: rgba(51,51,51,1) }\";\n const style = document.createElement(\"style\");\n style.appendChild(document.createTextNode(css));\n document.getElementsByTagName(\"head\")[0].appendChild(style);\n document.body.appendChild(this._muteButton);\n this._moveButtonToTopLeft();\n this._muteButton.addEventListener(\"touchend\", () => {\n this._triggerRunningState();\n }, true);\n this._muteButton.addEventListener(\"click\", () => {\n this.unlock();\n }, true);\n window.addEventListener(\"resize\", this._onResize);\n }\n _moveButtonToTopLeft() {\n if (this._hostElement && this._muteButton) {\n this._muteButton.style.top = this._hostElement.offsetTop + 20 + \"px\";\n this._muteButton.style.left = this._hostElement.offsetLeft + 20 + \"px\";\n }\n }\n _hideMuteButton() {\n if (this._muteButton) {\n document.body.removeChild(this._muteButton);\n this._muteButton = null;\n }\n }\n /**\n * Destroy and release the resources associated with the audio context.\n */\n dispose() {\n if (this.canUseWebAudio && this._audioContextInitialized) {\n if (this._connectedAnalyser && this._audioContext) {\n this._connectedAnalyser.stopDebugCanvas();\n this._connectedAnalyser.dispose();\n this.masterGain.disconnect();\n this.masterGain.connect(this._audioContext.destination);\n this._connectedAnalyser = null;\n }\n this.masterGain.gain.value = 1;\n }\n this.WarnedWebAudioUnsupported = false;\n this._hideMuteButton();\n window.removeEventListener(\"resize\", this._onResize);\n this.onAudioUnlockedObservable.clear();\n this.onAudioLockedObservable.clear();\n }\n /**\n * Gets the global volume sets on the master gain.\n * @returns the global volume if set or -1 otherwise\n */\n getGlobalVolume() {\n if (this.canUseWebAudio && this._audioContextInitialized) {\n return this.masterGain.gain.value;\n }\n else {\n return -1;\n }\n }\n /**\n * Sets the global volume of your experience (sets on the master gain).\n * @param newVolume Defines the new global volume of the application\n */\n setGlobalVolume(newVolume) {\n if (this.canUseWebAudio && this._audioContextInitialized) {\n this.masterGain.gain.value = newVolume;\n }\n }\n /**\n * Connect the audio engine to an audio analyser allowing some amazing\n * synchronization between the sounds/music and your visualization (VuMeter for instance).\n * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic#using-the-analyser\n * @param analyser The analyser to connect to the engine\n */\n connectToAnalyser(analyser) {\n if (this._connectedAnalyser) {\n this._connectedAnalyser.stopDebugCanvas();\n }\n if (this.canUseWebAudio && this._audioContextInitialized && this._audioContext) {\n this._connectedAnalyser = analyser;\n this.masterGain.disconnect();\n this._connectedAnalyser.connectAudioNodes(this.masterGain, this._audioContext.destination);\n }\n }\n}\n//# sourceMappingURL=audioEngine.js.map"],"names":[],"mappings":"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"}