@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../../../tools/viewer/src/viewer/viewer.ts"],"names":[],"mappings":"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","sourcesContent":["import { Engine } from \"core/Engines/engine\";\r\nimport type { ISceneLoaderPlugin, ISceneLoaderPluginAsync, ISceneLoaderProgressEvent } from \"core/Loading/sceneLoader\";\r\nimport { SceneLoader } from \"core/Loading/sceneLoader\";\r\nimport type { Observable } from \"core/Misc/observable\";\r\nimport type { Scene } from \"core/scene\";\r\nimport { RenderingManager } from \"core/Rendering/renderingManager\";\r\nimport type { TargetCamera } from \"core/Cameras/targetCamera\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport { Effect } from \"core/Materials/effect\";\r\nimport { processConfigurationCompatibility } from \"../configuration/configurationCompatibility\";\r\nimport { ConfigurationContainer } from \"../configuration/configurationContainer\";\r\nimport { viewerGlobals } from \"../configuration/globals\";\r\nimport { RenderOnlyConfigurationLoader } from \"../configuration/renderOnlyLoader\";\r\n// eslint-disable-next-line import/no-internal-modules\r\nimport { deepmerge } from \"../helper/index\";\r\nimport { ModelLoader } from \"../loader/modelLoader\";\r\nimport { ObservablesManager } from \"../managers/observablesManager\";\r\nimport { SceneManager } from \"../managers/sceneManager\";\r\nimport { telemetryManager } from \"../managers/telemetryManager\";\r\nimport type { ViewerModel } from \"../model/viewerModel\";\r\nimport { viewerManager } from \"./viewerManager\";\r\nimport type { ViewerConfiguration } from \"../configuration/configuration\";\r\nimport type { IObserversConfiguration } from \"../configuration/interfaces/observersConfiguration\";\r\nimport type { IModelConfiguration } from \"../configuration/interfaces/modelConfiguration\";\r\nimport type { GLTFFileLoader } from \"loaders/glTF/glTFFileLoader\";\r\nimport \"core/Misc/observable.extensions\";\r\nimport { Logger } from \"core/Misc/logger\";\r\n\r\n/**\r\n * The AbstractViewer is the center of Babylon's viewer.\r\n * It is the basic implementation of the default viewer and is responsible of loading and showing the model and the templates\r\n */\r\nexport abstract class AbstractViewer {\r\n /**\r\n * Babylon Engine corresponding with this viewer\r\n */\r\n public engine: Engine;\r\n /**\r\n * The ID of this viewer. it will be generated randomly or use the HTML Element's ID.\r\n */\r\n public readonly baseId: string;\r\n\r\n /**\r\n * The last loader used to load a model.\r\n * @deprecated\r\n */\r\n public lastUsedLoader: ISceneLoaderPlugin | ISceneLoaderPluginAsync;\r\n /**\r\n * The ModelLoader instance connected with this viewer.\r\n */\r\n public modelLoader: ModelLoader;\r\n\r\n /**\r\n * A flag that controls whether or not the render loop should be executed\r\n */\r\n public runRenderLoop: boolean = true;\r\n\r\n /**\r\n * The scene manager connected with this viewer instance\r\n */\r\n public sceneManager: SceneManager;\r\n\r\n // observables\r\n /**\r\n * Will notify when the scene was initialized\r\n */\r\n public get onSceneInitObservable(): Observable<Scene> {\r\n return this.observablesManager.onSceneInitObservable;\r\n }\r\n /**\r\n * will notify when the engine was initialized\r\n */\r\n public get onEngineInitObservable(): Observable<Engine> {\r\n return this.observablesManager.onEngineInitObservable;\r\n }\r\n\r\n /**\r\n * Will notify when a new model was added to the scene.\r\n * Note that added does not necessarily mean loaded!\r\n */\r\n public get onModelAddedObservable(): Observable<ViewerModel> {\r\n return this.observablesManager.onModelAddedObservable;\r\n }\r\n /**\r\n * will notify after every model load\r\n */\r\n public get onModelLoadedObservable(): Observable<ViewerModel> {\r\n return this.observablesManager.onModelLoadedObservable;\r\n }\r\n /**\r\n * will notify when any model notify of progress\r\n */\r\n public get onModelLoadProgressObservable(): Observable<ISceneLoaderProgressEvent> {\r\n return this.observablesManager.onModelLoadProgressObservable;\r\n }\r\n /**\r\n * will notify when any model load failed.\r\n */\r\n public get onModelLoadErrorObservable(): Observable<{ message: string; exception: any }> {\r\n return this.observablesManager.onModelLoadErrorObservable;\r\n }\r\n /**\r\n * Will notify when a model was removed from the scene;\r\n */\r\n public get onModelRemovedObservable(): Observable<ViewerModel> {\r\n return this.observablesManager.onModelRemovedObservable;\r\n }\r\n /**\r\n * will notify when a new loader was initialized.\r\n * Used mainly to know when a model starts loading.\r\n */\r\n public get onLoaderInitObservable(): Observable<ISceneLoaderPlugin | ISceneLoaderPluginAsync> {\r\n return this.observablesManager.onLoaderInitObservable;\r\n }\r\n /**\r\n * Observers registered here will be executed when the entire load process has finished.\r\n */\r\n public get onInitDoneObservable(): Observable<AbstractViewer> {\r\n return this.observablesManager.onViewerInitDoneObservable;\r\n }\r\n\r\n /**\r\n * Functions added to this observable will be executed on each frame rendered.\r\n */\r\n public get onFrameRenderedObservable(): Observable<AbstractViewer> {\r\n return this.observablesManager.onFrameRenderedObservable;\r\n }\r\n\r\n /**\r\n * Observers registered here will be executed when VR more is entered.\r\n */\r\n public get onEnteringVRObservable(): Observable<AbstractViewer> {\r\n return this.observablesManager.onEnteringVRObservable;\r\n }\r\n /**\r\n * Observers registered here will be executed when VR mode is exited.\r\n */\r\n public get onExitingVRObservable(): Observable<AbstractViewer> {\r\n return this.observablesManager.onExitingVRObservable;\r\n }\r\n\r\n public observablesManager: ObservablesManager;\r\n\r\n /**\r\n * The canvas associated with this viewer\r\n */\r\n protected _canvas: HTMLCanvasElement;\r\n\r\n /**\r\n * The (single) canvas of this viewer\r\n */\r\n public get canvas(): HTMLCanvasElement {\r\n return this._canvas;\r\n }\r\n\r\n /**\r\n * is this viewer disposed?\r\n */\r\n protected _isDisposed: boolean = false;\r\n\r\n /**\r\n * registered onBeforeRender functions.\r\n * This functions are also registered at the native scene. The reference can be used to unregister them.\r\n */\r\n protected _registeredOnBeforeRenderFunctions: Array<() => void>;\r\n /**\r\n * The configuration loader of this viewer\r\n */\r\n protected _configurationLoader: RenderOnlyConfigurationLoader;\r\n\r\n /**\r\n * Is the viewer already initialized. for internal use.\r\n */\r\n protected _isInit: boolean;\r\n\r\n protected _configurationContainer: ConfigurationContainer;\r\n\r\n public get configurationContainer() {\r\n return this._configurationContainer;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected getConfigurationLoader() {\r\n return new RenderOnlyConfigurationLoader();\r\n }\r\n\r\n constructor(\r\n public containerElement: Element,\r\n initialConfiguration: ViewerConfiguration = {}\r\n ) {\r\n // if exists, use the container id. otherwise, generate a random string.\r\n if (containerElement.id) {\r\n this.baseId = containerElement.id;\r\n } else {\r\n this.baseId = containerElement.id = \"bjs\" + Math.random().toString(32).substring(2, 10);\r\n }\r\n\r\n this._registeredOnBeforeRenderFunctions = [];\r\n\r\n this._configurationContainer = new ConfigurationContainer();\r\n\r\n this.observablesManager = new ObservablesManager();\r\n\r\n this.modelLoader = new ModelLoader(this.observablesManager, this._configurationContainer);\r\n\r\n RenderingManager.AUTOCLEAR = false;\r\n\r\n // extend the configuration\r\n this._configurationLoader = this.getConfigurationLoader();\r\n this._configurationLoader.loadConfiguration(initialConfiguration, (configuration) => {\r\n this._onConfigurationLoaded(configuration);\r\n });\r\n\r\n this.onSceneInitObservable.add(() => {\r\n this.updateConfiguration();\r\n });\r\n\r\n this.onInitDoneObservable.add(() => {\r\n this._isInit = true;\r\n this.engine.runRenderLoop(this._render);\r\n });\r\n\r\n this._prepareContainerElement();\r\n\r\n // add this viewer to the viewer manager\r\n viewerManager.addViewer(this);\r\n }\r\n\r\n /**\r\n * get the baseId of this viewer\r\n * @returns the baseId of this viewer\r\n */\r\n public getBaseId(): string {\r\n return this.baseId;\r\n }\r\n\r\n /**\r\n * Do we have a canvas to render on, and is it a part of the scene\r\n * @returns true if the canvas is in the DOM\r\n */\r\n public isCanvasInDOM(): boolean {\r\n return !!this._canvas && !!this._canvas.parentElement;\r\n }\r\n\r\n /**\r\n * Is the engine currently set to render even when the page is in background\r\n */\r\n public get renderInBackground() {\r\n return this.engine && this.engine.renderEvenInBackground;\r\n }\r\n\r\n /**\r\n * Set the viewer's background rendering flag.\r\n */\r\n public set renderInBackground(value: boolean) {\r\n if (this.engine) {\r\n this.engine.renderEvenInBackground = value;\r\n }\r\n }\r\n\r\n /**\r\n * Get the configuration object. This is a reference only.\r\n * The configuration can ONLY be updated using the updateConfiguration function.\r\n * changing this object will have no direct effect on the scene.\r\n */\r\n public get configuration(): ViewerConfiguration {\r\n return this._configurationContainer.configuration;\r\n }\r\n\r\n /**\r\n * force resizing the engine.\r\n */\r\n public forceResize() {\r\n this._resize();\r\n }\r\n\r\n protected _hdToggled: boolean = false;\r\n\r\n public toggleHD() {\r\n this._hdToggled = !this._hdToggled;\r\n\r\n const scale = this._hdToggled ? Math.max(0.5, 1 / (window.devicePixelRatio || 2)) : 1;\r\n\r\n this.engine.setHardwareScalingLevel(scale);\r\n }\r\n\r\n protected _vrToggled: boolean = false;\r\n private _vrModelRepositioning: number = 0;\r\n protected _vrScale: number = 1;\r\n\r\n protected _vrInit: boolean = false;\r\n\r\n public toggleVR() {\r\n if (!this._vrInit) {\r\n this._initVR();\r\n }\r\n\r\n if (this.sceneManager.vrHelper && !this.sceneManager.vrHelper.isInVRMode) {\r\n // make sure the floor is set\r\n if (this.sceneManager.environmentHelper && this.sceneManager.environmentHelper.ground) {\r\n this.sceneManager.vrHelper.addFloorMesh(this.sceneManager.environmentHelper.ground);\r\n }\r\n\r\n this._vrToggled = true;\r\n this.sceneManager.vrHelper.enterVR();\r\n\r\n // position the vr camera to be in front of the object or wherever the user has configured it to be\r\n if (this.sceneManager.vrHelper.currentVRCamera && this.sceneManager.vrHelper.currentVRCamera !== this.sceneManager.camera) {\r\n if (this.configuration.vr && this.configuration.vr.cameraPosition !== undefined) {\r\n this.sceneManager.vrHelper.currentVRCamera.position.copyFromFloats(\r\n this.configuration.vr.cameraPosition.x,\r\n this.configuration.vr.cameraPosition.y,\r\n this.configuration.vr.cameraPosition.z\r\n );\r\n } else {\r\n this.sceneManager.vrHelper.currentVRCamera.position.copyFromFloats(0, this.sceneManager.vrHelper.currentVRCamera.position.y, -1);\r\n }\r\n (<TargetCamera>this.sceneManager.vrHelper.currentVRCamera).rotationQuaternion &&\r\n (<TargetCamera>this.sceneManager.vrHelper.currentVRCamera).rotationQuaternion.copyFromFloats(0, 0, 0, 1);\r\n // set the height of the model to be what the user has configured, or floating by default\r\n if (this.configuration.vr && this.configuration.vr.modelHeightCorrection !== undefined) {\r\n if (typeof this.configuration.vr.modelHeightCorrection === \"number\") {\r\n this._vrModelRepositioning = this.configuration.vr.modelHeightCorrection;\r\n } else if (this.configuration.vr.modelHeightCorrection) {\r\n this._vrModelRepositioning = this.sceneManager.vrHelper.currentVRCamera.position.y / 2;\r\n } else {\r\n this._vrModelRepositioning = 0;\r\n }\r\n }\r\n\r\n // scale the model\r\n if (this.sceneManager.models.length) {\r\n const boundingVectors = this.sceneManager.models[0].rootMesh.getHierarchyBoundingVectors();\r\n const sizeVec = boundingVectors.max.subtract(boundingVectors.min);\r\n const maxDimension = Math.max(sizeVec.x, sizeVec.y, sizeVec.z);\r\n this._vrScale = 1 / maxDimension;\r\n if (this.configuration.vr && this.configuration.vr.objectScaleFactor) {\r\n this._vrScale *= this.configuration.vr.objectScaleFactor;\r\n }\r\n\r\n this.sceneManager.models[0].rootMesh.scaling.scaleInPlace(this._vrScale);\r\n\r\n // reposition the object to \"float\" in front of the user\r\n this.sceneManager.models[0].rootMesh.position.y += this._vrModelRepositioning;\r\n this.sceneManager.models[0].rootMesh.rotationQuaternion = null;\r\n }\r\n\r\n // scale the environment to match the model\r\n if (this.sceneManager.environmentHelper) {\r\n this.sceneManager.environmentHelper.ground && this.sceneManager.environmentHelper.ground.scaling.scaleInPlace(this._vrScale);\r\n this.sceneManager.environmentHelper.skybox && this.sceneManager.environmentHelper.skybox.scaling.scaleInPlace(this._vrScale);\r\n }\r\n\r\n // post processing\r\n if (this.sceneManager.defaultRenderingPipelineEnabled && this.sceneManager.defaultRenderingPipeline) {\r\n this.sceneManager.defaultRenderingPipeline.imageProcessingEnabled = false;\r\n this.sceneManager.defaultRenderingPipeline.prepare();\r\n }\r\n } else {\r\n this._vrModelRepositioning = 0;\r\n }\r\n } else {\r\n if (this.sceneManager.vrHelper) {\r\n this.sceneManager.vrHelper.exitVR();\r\n }\r\n }\r\n }\r\n\r\n protected _initVR() {\r\n if (this.sceneManager.vrHelper) {\r\n this.observablesManager.onExitingVRObservable.add(() => {\r\n if (this._vrToggled) {\r\n this._vrToggled = false;\r\n\r\n // undo the scaling of the model\r\n if (this.sceneManager.models.length) {\r\n this.sceneManager.models[0].rootMesh.scaling.scaleInPlace(1 / this._vrScale);\r\n this.sceneManager.models[0].rootMesh.position.y -= this._vrModelRepositioning;\r\n }\r\n\r\n // undo the scaling of the environment\r\n if (this.sceneManager.environmentHelper) {\r\n this.sceneManager.environmentHelper.ground && this.sceneManager.environmentHelper.ground.scaling.scaleInPlace(1 / this._vrScale);\r\n this.sceneManager.environmentHelper.skybox && this.sceneManager.environmentHelper.skybox.scaling.scaleInPlace(1 / this._vrScale);\r\n }\r\n\r\n // post processing\r\n if (this.sceneManager.defaultRenderingPipelineEnabled && this.sceneManager.defaultRenderingPipeline) {\r\n this.sceneManager.defaultRenderingPipeline.imageProcessingEnabled = true;\r\n this.sceneManager.defaultRenderingPipeline.prepare();\r\n }\r\n\r\n // clear set height and width\r\n this.canvas.removeAttribute(\"height\");\r\n this.canvas.removeAttribute(\"width\");\r\n this.engine.resize();\r\n }\r\n });\r\n }\r\n\r\n this._vrInit = true;\r\n }\r\n\r\n /**\r\n * The resize function that will be registered with the window object\r\n */\r\n protected _resize = (): void => {\r\n // Only resize if Canvas is in the DOM\r\n if (!this.isCanvasInDOM()) {\r\n return;\r\n }\r\n\r\n if (this.canvas.clientWidth <= 0 || this.canvas.clientHeight <= 0) {\r\n return;\r\n }\r\n\r\n if (this.configuration.engine && this.configuration.engine.disableResize) {\r\n return;\r\n }\r\n\r\n this.engine.resize();\r\n };\r\n\r\n protected _onConfigurationLoaded(configuration: ViewerConfiguration) {\r\n this._configurationContainer.configuration = deepmerge(this.configuration || {}, configuration);\r\n if (this.configuration.observers) {\r\n this._configureObservers(this.configuration.observers);\r\n }\r\n // TODO remove this after testing, as this is done in the updateConfiguration as well.\r\n if (this.configuration.loaderPlugins) {\r\n Object.keys(this.configuration.loaderPlugins).forEach((name) => {\r\n if (this.configuration.loaderPlugins && this.configuration.loaderPlugins[name]) {\r\n this.modelLoader.addPlugin(name);\r\n }\r\n });\r\n }\r\n\r\n this.observablesManager.onViewerInitStartedObservable.notifyObservers(this);\r\n }\r\n\r\n /**\r\n * Force a single render loop execution.\r\n */\r\n public forceRender() {\r\n this._render(true);\r\n }\r\n\r\n /**\r\n * render loop that will be executed by the engine\r\n * @param force\r\n */\r\n protected _render = (force: boolean = false): void => {\r\n if (force || (this.sceneManager.scene && this.sceneManager.scene.activeCamera)) {\r\n if (this.runRenderLoop || force) {\r\n this.engine.performanceMonitor.enable();\r\n this.sceneManager.scene.render();\r\n this.onFrameRenderedObservable.notifyObservers(this);\r\n } else {\r\n this.engine.performanceMonitor.disable();\r\n\r\n // update camera instead of rendering\r\n this.sceneManager.scene.activeCamera && this.sceneManager.scene.activeCamera.update();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Takes a screenshot of the scene and returns it as a base64 encoded png.\r\n * @param callback optional callback that will be triggered when screenshot is done.\r\n * @param width Optional screenshot width (default to 512).\r\n * @param height Optional screenshot height (default to 512).\r\n * @returns a promise with the screenshot data\r\n */\r\n public takeScreenshot(callback?: (data: string) => void, width = 0, height = 0): Promise<string> {\r\n width = width || this.canvas.clientWidth;\r\n height = height || this.canvas.clientHeight;\r\n\r\n // Create the screenshot\r\n return new Promise<string>((resolve, reject) => {\r\n try {\r\n Tools.CreateScreenshot(this.engine, this.sceneManager.camera, { width, height }, (data) => {\r\n if (callback) {\r\n callback(data);\r\n }\r\n resolve(data);\r\n });\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Update the current viewer configuration with new values.\r\n * Only provided information will be updated, old configuration values will be kept.\r\n * If this.configuration was manually changed, you can trigger this function with no parameters,\r\n * and the entire configuration will be updated.\r\n * @param newConfiguration the partial configuration to update or a URL to a JSON holding the updated configuration\r\n *\r\n */\r\n public updateConfiguration(newConfiguration: Partial<ViewerConfiguration> | string = this.configuration) {\r\n if (typeof newConfiguration === \"string\") {\r\n Tools.LoadFile(\r\n newConfiguration,\r\n (data) => {\r\n try {\r\n const newData = JSON.parse(data.toString()) as ViewerConfiguration;\r\n return this.updateConfiguration(newData);\r\n } catch (e) {\r\n Logger.Log(\"Error parsing file \" + newConfiguration);\r\n }\r\n },\r\n undefined,\r\n undefined,\r\n undefined,\r\n (error) => {\r\n Logger.Log([\"Error parsing file \" + newConfiguration, error]);\r\n }\r\n );\r\n } else {\r\n //backcompat\r\n processConfigurationCompatibility(newConfiguration);\r\n // update this.configuration with the new data\r\n this._configurationContainer.configuration = deepmerge(this.configuration || {}, newConfiguration);\r\n\r\n this.sceneManager.updateConfiguration(newConfiguration);\r\n\r\n // observers in configuration\r\n if (newConfiguration.observers) {\r\n this._configureObservers(newConfiguration.observers);\r\n }\r\n\r\n if (newConfiguration.loaderPlugins) {\r\n Object.keys(newConfiguration.loaderPlugins).forEach((name) => {\r\n if (newConfiguration.loaderPlugins && newConfiguration.loaderPlugins[name]) {\r\n this.modelLoader.addPlugin(name);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * this is used to register native functions using the configuration object.\r\n * This will configure the observers.\r\n * @param observersConfiguration observers configuration\r\n */\r\n protected _configureObservers(observersConfiguration: IObserversConfiguration) {\r\n if (observersConfiguration.onEngineInit) {\r\n this.onEngineInitObservable.add((window as any)[observersConfiguration.onEngineInit]);\r\n } else {\r\n if (observersConfiguration.onEngineInit === \"\" && this.configuration.observers && this.configuration.observers!.onEngineInit) {\r\n this.onEngineInitObservable.removeCallback((window as any)[this.configuration.observers!.onEngineInit!]);\r\n }\r\n }\r\n if (observersConfiguration.onSceneInit) {\r\n this.onSceneInitObservable.add((window as any)[observersConfiguration.onSceneInit]);\r\n } else {\r\n if (observersConfiguration.onSceneInit === \"\" && this.configuration.observers && this.configuration.observers!.onSceneInit) {\r\n this.onSceneInitObservable.removeCallback((window as any)[this.configuration.observers!.onSceneInit!]);\r\n }\r\n }\r\n if (observersConfiguration.onModelLoaded) {\r\n this.onModelLoadedObservable.add((window as any)[observersConfiguration.onModelLoaded]);\r\n } else {\r\n if (observersConfiguration.onModelLoaded === \"\" && this.configuration.observers && this.configuration.observers!.onModelLoaded) {\r\n this.onModelLoadedObservable.removeCallback((window as any)[this.configuration.observers!.onModelLoaded!]);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Dispose the entire viewer including the scene and the engine\r\n */\r\n public dispose() {\r\n if (this._isDisposed) {\r\n return;\r\n }\r\n window.removeEventListener(\"resize\", this._resize);\r\n\r\n if (this.sceneManager) {\r\n if (this.sceneManager.scene && this.sceneManager.scene.activeCamera) {\r\n this.sceneManager.scene.activeCamera.detachControl();\r\n }\r\n this.sceneManager.dispose();\r\n }\r\n\r\n this._fpsTimeoutInterval && clearInterval(this._fpsTimeoutInterval);\r\n\r\n this.observablesManager.dispose();\r\n\r\n this.modelLoader.dispose();\r\n\r\n if (this.engine) {\r\n this.engine.dispose();\r\n }\r\n\r\n viewerManager.removeViewer(this);\r\n this._isDisposed = true;\r\n }\r\n\r\n /**\r\n * This will prepare the container element for the viewer\r\n */\r\n protected abstract _prepareContainerElement(): void;\r\n\r\n /**\r\n * This function will execute when the HTML templates finished initializing.\r\n * It should initialize the engine and continue execution.\r\n *\r\n * @returns The viewer object will be returned after the object was loaded.\r\n */\r\n protected _onTemplatesLoaded(): Promise<AbstractViewer> {\r\n return Promise.resolve(this);\r\n }\r\n\r\n /**\r\n * This will force the creation of an engine and a scene.\r\n * It will also load a model if preconfigured.\r\n * But first - it will load the extendible onTemplateLoaded()!\r\n * @returns A promise that will resolve when the template was loaded\r\n */\r\n protected _onTemplateLoaded(): Promise<AbstractViewer> {\r\n // check if viewer was disposed right after created\r\n if (this._isDisposed) {\r\n return Promise.reject(\"viewer was disposed\");\r\n }\r\n return this._onTemplatesLoaded().then(() => {\r\n const autoLoad = typeof this.configuration.model === \"string\" || (this.configuration.model && this.configuration.model.url);\r\n return this._initEngine()\r\n .then((engine) => {\r\n return this.onEngineInitObservable.notifyObserversWithPromise(engine);\r\n })\r\n .then(() => {\r\n this._initTelemetryEvents();\r\n if (autoLoad) {\r\n return this.loadModel(this.configuration.model!)\r\n .catch(() => {})\r\n .then(() => {\r\n return this.sceneManager.scene;\r\n });\r\n } else {\r\n return this.sceneManager.scene || this.sceneManager.initScene(this.configuration.scene);\r\n }\r\n })\r\n .then(() => {\r\n return this.onInitDoneObservable.notifyObserversWithPromise(this);\r\n })\r\n .catch((e) => {\r\n Tools.Warn(e.toString());\r\n return this;\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Initialize the engine. Returns a promise in case async calls are needed.\r\n *\r\n * @protected\r\n * @returns {Promise<Engine>}\r\n * @memberof Viewer\r\n */\r\n protected _initEngine(): Promise<Engine> {\r\n // init custom shaders\r\n this._injectCustomShaders();\r\n\r\n //let canvasElement = this.templateManager.getCanvas();\r\n if (!this.canvas) {\r\n return Promise.reject(\"Canvas element not found!\");\r\n }\r\n const config = this.configuration.engine || {};\r\n // TDO enable further configuration\r\n\r\n // check for webgl2 support, force-disable if needed.\r\n if (viewerGlobals.disableWebGL2Support) {\r\n config.engineOptions = config.engineOptions || {};\r\n config.engineOptions.disableWebGL2Support = true;\r\n }\r\n\r\n if (this.configuration[\"3dCommerceCertified\"]) {\r\n config.engineOptions = config.engineOptions || {};\r\n config.engineOptions.forceSRGBBufferSupportState = true;\r\n const loader = SceneLoader.GetPluginForExtension(\".gltf\");\r\n if (loader) {\r\n (loader as GLTFFileLoader).transparencyAsCoverage = true;\r\n }\r\n SceneLoader.OnPluginActivatedObservable.add((plugin) => {\r\n if (plugin.name === \"gltf\") {\r\n const loader = plugin as GLTFFileLoader;\r\n loader.transparencyAsCoverage = true;\r\n }\r\n });\r\n }\r\n\r\n this.engine = new Engine(this.canvas, !!config.antialiasing, config.engineOptions);\r\n\r\n if (!config.disableResize) {\r\n window.addEventListener(\"resize\", this._resize);\r\n }\r\n\r\n if (this.configuration.engine) {\r\n if (this.configuration.engine.adaptiveQuality) {\r\n const scale = Math.max(0.5, 1 / (window.devicePixelRatio || 2));\r\n this.engine.setHardwareScalingLevel(scale);\r\n }\r\n if (this.configuration.engine.hdEnabled) {\r\n this.toggleHD();\r\n }\r\n }\r\n\r\n // create a new template manager for this viewer\r\n this.sceneManager = new SceneManager(this.engine, this._configurationContainer, this.observablesManager);\r\n\r\n return Promise.resolve(this.engine);\r\n }\r\n\r\n private _isLoading: boolean;\r\n\r\n /**\r\n * Initialize a model loading. The returned object (a ViewerModel object) will be loaded in the background.\r\n * The difference between this and loadModel is that loadModel will fulfill the promise when the model finished loading.\r\n *\r\n * @param modelConfig model configuration to use when loading the model.\r\n * @param clearScene should the scene be cleared before loading this model\r\n * @returns a ViewerModel object that is not yet fully loaded.\r\n */\r\n public initModel(modelConfig: string | File | IModelConfiguration, clearScene: boolean = true): ViewerModel {\r\n let configuration: IModelConfiguration;\r\n if (typeof modelConfig === \"string\") {\r\n configuration = {\r\n url: modelConfig,\r\n };\r\n } else if (modelConfig instanceof File) {\r\n configuration = {\r\n file: modelConfig,\r\n root: \"file:\",\r\n };\r\n } else {\r\n configuration = modelConfig;\r\n }\r\n\r\n if (!configuration.url && !configuration.file) {\r\n throw new Error(\"no model provided\");\r\n }\r\n\r\n if (clearScene) {\r\n this.sceneManager.clearScene(true, false);\r\n }\r\n\r\n //merge the configuration for future models:\r\n if (this.configuration.model && typeof this.configuration.model === \"object\") {\r\n const globalConfig = deepmerge({}, this.configuration.model);\r\n configuration = deepmerge(globalConfig, configuration);\r\n if (modelConfig instanceof File) {\r\n configuration.file = modelConfig;\r\n }\r\n } else {\r\n this.configuration.model = configuration;\r\n }\r\n\r\n this._isLoading = true;\r\n\r\n const model = this.modelLoader.load(configuration);\r\n\r\n this.lastUsedLoader = model.loader;\r\n model.onLoadErrorObservable.add((errorObject) => {\r\n this.onModelLoadErrorObservable.notifyObserversWithPromise(errorObject);\r\n });\r\n model.onLoadProgressObservable.add((progressEvent) => {\r\n this.onModelLoadProgressObservable.notifyObserversWithPromise(progressEvent);\r\n });\r\n this.onLoaderInitObservable.notifyObserversWithPromise(this.lastUsedLoader);\r\n\r\n model.onLoadedObservable.add(() => {\r\n this._isLoading = false;\r\n });\r\n\r\n return model;\r\n }\r\n\r\n /**\r\n * load a model using the provided configuration.\r\n * This function, as opposed to initModel, will return a promise that resolves when the model is loaded, and rejects with error.\r\n * If you want to attach to the observables of the model, use initModel instead.\r\n *\r\n * @param modelConfig the model configuration or URL to load.\r\n * @param clearScene Should the scene be cleared before loading the model\r\n * @returns a Promise the fulfills when the model finished loading successfully.\r\n */\r\n public loadModel(modelConfig: string | File | IModelConfiguration, clearScene: boolean = true): Promise<ViewerModel> {\r\n if (this._isLoading) {\r\n // We can decide here whether or not to cancel the lst load, but the developer can do that.\r\n return Promise.reject(\"another model is curently being loaded.\");\r\n }\r\n\r\n return Promise.resolve(this.sceneManager.scene)\r\n .then((scene) => {\r\n if (!scene) {\r\n return this.sceneManager.initScene(this.configuration.scene);\r\n }\r\n return scene;\r\n })\r\n .then(() => {\r\n const model = this.initModel(modelConfig, clearScene);\r\n return new Promise<ViewerModel>((resolve, reject) => {\r\n // at this point, configuration.model is an object, not a string\r\n model.onLoadedObservable.add(() => {\r\n resolve(model);\r\n });\r\n model.onLoadErrorObservable.add((error) => {\r\n reject(error);\r\n });\r\n });\r\n });\r\n }\r\n\r\n private _fpsTimeoutInterval: number;\r\n\r\n protected _initTelemetryEvents() {\r\n telemetryManager.broadcast(\"Engine Capabilities\", this.baseId, this.engine.getCaps());\r\n telemetryManager.broadcast(\"Platform Details\", this.baseId, {\r\n userAgent: navigator.userAgent,\r\n platform: navigator.platform,\r\n });\r\n\r\n telemetryManager.flushWebGLErrors(this.engine, this.baseId);\r\n\r\n const trackFPS: Function = () => {\r\n telemetryManager.broadcast(\"Current FPS\", this.baseId, { fps: this.engine.getFps() });\r\n };\r\n\r\n trackFPS();\r\n // Track the FPS again after 60 seconds\r\n this._fpsTimeoutInterval = window.setInterval(trackFPS, 60 * 1000);\r\n }\r\n\r\n /**\r\n * Injects all the spectre shader in the babylon shader store\r\n */\r\n protected _injectCustomShaders(): void {\r\n const customShaders = this.configuration.customShaders;\r\n // Inject all the spectre shader in the babylon shader store.\r\n if (!customShaders) {\r\n return;\r\n }\r\n if (customShaders.shaders) {\r\n Object.keys(customShaders.shaders).forEach((key) => {\r\n // typescript considers a callback \"unsafe\", so... '!'\r\n Effect.ShadersStore[key] = customShaders!.shaders![key];\r\n });\r\n }\r\n if (customShaders.includes) {\r\n Object.keys(customShaders.includes).forEach((key) => {\r\n // typescript considers a callback \"unsafe\", so... '!'\r\n Effect.IncludesShadersStore[key] = customShaders!.includes![key];\r\n });\r\n }\r\n }\r\n}\r\n"]}
@@ -1,58 +0,0 @@
1
- import { Observable } from "@babylonjs/core/Misc/observable.js";
2
- import type { AbstractViewer } from "./viewer";
3
- /**
4
- * The viewer manager is the container for all viewers currently registered on this page.
5
- * It is possible to have more than one viewer on a single page.
6
- */
7
- export declare class ViewerManager {
8
- private _viewers;
9
- /**
10
- * A callback that will be triggered when a new viewer was added
11
- */
12
- onViewerAdded: (viewer: AbstractViewer) => void;
13
- /**
14
- * Will notify when a new viewer was added
15
- */
16
- onViewerAddedObservable: Observable<AbstractViewer>;
17
- /**
18
- * Will notify when a viewer was removed (disposed)
19
- */
20
- onViewerRemovedObservable: Observable<string>;
21
- constructor();
22
- /**
23
- * Adding a new viewer to the viewer manager and start tracking it.
24
- * @param viewer the viewer to add
25
- */
26
- addViewer(viewer: AbstractViewer): void;
27
- /**
28
- * remove a viewer from the viewer manager
29
- * @param viewer the viewer to remove
30
- */
31
- removeViewer(viewer: AbstractViewer): void;
32
- /**
33
- * Get a viewer by its baseId (if the container element has an ID, it is the this is. if not, a random id was assigned)
34
- * @param id the id of the HTMl element (or the viewer's, if none provided)
35
- * @returns the viewer associated with the given id (if found)
36
- */
37
- getViewerById(id: string): AbstractViewer;
38
- /**
39
- * Get a viewer using a container element
40
- * @param element the HTML element to search viewers associated with
41
- * @returns the viewer associated with the given element (if found)
42
- */
43
- getViewerByHTMLElement(element: HTMLElement): AbstractViewer | null;
44
- /**
45
- * Get a promise that will fulfill when this viewer was initialized.
46
- * Since viewer initialization and template injection is asynchronous, using the promise will guaranty that
47
- * you will get the viewer after everything was already configured.
48
- * @param id the viewer id to find
49
- * @returns a promise that will resolve to the viewer
50
- */
51
- getViewerPromiseById(id: string): Promise<AbstractViewer>;
52
- private _onViewerAdded;
53
- /**
54
- * dispose the manager and all of its associated viewers
55
- */
56
- dispose(): void;
57
- }
58
- export declare const viewerManager: ViewerManager;
@@ -1,91 +0,0 @@
1
- import { Observable } from "@babylonjs/core/Misc/observable.js";
2
- /**
3
- * The viewer manager is the container for all viewers currently registered on this page.
4
- * It is possible to have more than one viewer on a single page.
5
- */
6
- var ViewerManager = /** @class */ (function () {
7
- function ViewerManager() {
8
- this._viewers = {};
9
- this.onViewerAddedObservable = new Observable();
10
- this.onViewerRemovedObservable = new Observable();
11
- }
12
- /**
13
- * Adding a new viewer to the viewer manager and start tracking it.
14
- * @param viewer the viewer to add
15
- */
16
- ViewerManager.prototype.addViewer = function (viewer) {
17
- this._viewers[viewer.getBaseId()] = viewer;
18
- this._onViewerAdded(viewer);
19
- };
20
- /**
21
- * remove a viewer from the viewer manager
22
- * @param viewer the viewer to remove
23
- */
24
- ViewerManager.prototype.removeViewer = function (viewer) {
25
- var id = viewer.getBaseId();
26
- delete this._viewers[id];
27
- this.onViewerRemovedObservable.notifyObservers(id);
28
- };
29
- /**
30
- * Get a viewer by its baseId (if the container element has an ID, it is the this is. if not, a random id was assigned)
31
- * @param id the id of the HTMl element (or the viewer's, if none provided)
32
- * @returns the viewer associated with the given id (if found)
33
- */
34
- ViewerManager.prototype.getViewerById = function (id) {
35
- return this._viewers[id];
36
- };
37
- /**
38
- * Get a viewer using a container element
39
- * @param element the HTML element to search viewers associated with
40
- * @returns the viewer associated with the given element (if found)
41
- */
42
- ViewerManager.prototype.getViewerByHTMLElement = function (element) {
43
- for (var id in this._viewers) {
44
- if (this._viewers[id].containerElement === element) {
45
- return this.getViewerById(id);
46
- }
47
- }
48
- return null;
49
- };
50
- /**
51
- * Get a promise that will fulfill when this viewer was initialized.
52
- * Since viewer initialization and template injection is asynchronous, using the promise will guaranty that
53
- * you will get the viewer after everything was already configured.
54
- * @param id the viewer id to find
55
- * @returns a promise that will resolve to the viewer
56
- */
57
- ViewerManager.prototype.getViewerPromiseById = function (id) {
58
- var _this = this;
59
- return new Promise(function (resolve) {
60
- var localViewer = _this.getViewerById(id);
61
- if (localViewer) {
62
- return resolve(localViewer);
63
- }
64
- var viewerFunction = function (viewer) {
65
- if (viewer.getBaseId() === id) {
66
- resolve(viewer);
67
- _this.onViewerAddedObservable.removeCallback(viewerFunction);
68
- }
69
- };
70
- _this.onViewerAddedObservable.add(viewerFunction);
71
- });
72
- };
73
- ViewerManager.prototype._onViewerAdded = function (viewer) {
74
- this.onViewerAdded && this.onViewerAdded(viewer);
75
- this.onViewerAddedObservable.notifyObservers(viewer);
76
- };
77
- /**
78
- * dispose the manager and all of its associated viewers
79
- */
80
- ViewerManager.prototype.dispose = function () {
81
- for (var id in this._viewers) {
82
- this._viewers[id].dispose();
83
- }
84
- this.onViewerAddedObservable.clear();
85
- this.onViewerRemovedObservable.clear();
86
- };
87
- return ViewerManager;
88
- }());
89
- export { ViewerManager };
90
- export var viewerManager = new ViewerManager();
91
- //# sourceMappingURL=viewerManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"viewerManager.js","sourceRoot":"","sources":["../../../../tools/viewer/src/viewer/viewerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,2CAA6B;AAGlD;;;GAGG;AACH;IAgBI;QACI,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,uBAAuB,GAAG,IAAI,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,yBAAyB,GAAG,IAAI,UAAU,EAAE,CAAC;IACtD,CAAC;IAED;;;OAGG;IACI,iCAAS,GAAhB,UAAiB,MAAsB;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,GAAG,MAAM,CAAC;QAC3C,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACI,oCAAY,GAAnB,UAAoB,MAAsB;QACtC,IAAM,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,yBAAyB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACI,qCAAa,GAApB,UAAqB,EAAU;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,8CAAsB,GAA7B,UAA8B,OAAoB;QAC9C,KAAK,IAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACI,4CAAoB,GAA3B,UAA4B,EAAU;QAAtC,iBAcC;QAbG,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;YACvB,IAAM,WAAW,GAAG,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAC3C,IAAI,WAAW,EAAE,CAAC;gBACd,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;YAChC,CAAC;YACD,IAAM,cAAc,GAAG,UAAC,MAAsB;gBAC1C,IAAI,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;oBAChB,KAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBAChE,CAAC;YACL,CAAC,CAAC;YACF,KAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,sCAAc,GAAtB,UAAuB,MAAsB;QACzC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,+BAAO,GAAd;QACI,KAAK,IAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IACL,oBAAC;AAAD,CAAC,AAxGD,IAwGC;;AAED,MAAM,CAAC,IAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC","sourcesContent":["import { Observable } from \"core/Misc/observable\";\r\nimport type { AbstractViewer } from \"./viewer\";\r\n\r\n/**\r\n * The viewer manager is the container for all viewers currently registered on this page.\r\n * It is possible to have more than one viewer on a single page.\r\n */\r\nexport class ViewerManager {\r\n private _viewers: { [key: string]: AbstractViewer };\r\n\r\n /**\r\n * A callback that will be triggered when a new viewer was added\r\n */\r\n public onViewerAdded: (viewer: AbstractViewer) => void;\r\n /**\r\n * Will notify when a new viewer was added\r\n */\r\n public onViewerAddedObservable: Observable<AbstractViewer>;\r\n /**\r\n * Will notify when a viewer was removed (disposed)\r\n */\r\n public onViewerRemovedObservable: Observable<string>;\r\n\r\n constructor() {\r\n this._viewers = {};\r\n this.onViewerAddedObservable = new Observable();\r\n this.onViewerRemovedObservable = new Observable();\r\n }\r\n\r\n /**\r\n * Adding a new viewer to the viewer manager and start tracking it.\r\n * @param viewer the viewer to add\r\n */\r\n public addViewer(viewer: AbstractViewer) {\r\n this._viewers[viewer.getBaseId()] = viewer;\r\n this._onViewerAdded(viewer);\r\n }\r\n\r\n /**\r\n * remove a viewer from the viewer manager\r\n * @param viewer the viewer to remove\r\n */\r\n public removeViewer(viewer: AbstractViewer) {\r\n const id = viewer.getBaseId();\r\n delete this._viewers[id];\r\n this.onViewerRemovedObservable.notifyObservers(id);\r\n }\r\n\r\n /**\r\n * Get a viewer by its baseId (if the container element has an ID, it is the this is. if not, a random id was assigned)\r\n * @param id the id of the HTMl element (or the viewer's, if none provided)\r\n * @returns the viewer associated with the given id (if found)\r\n */\r\n public getViewerById(id: string): AbstractViewer {\r\n return this._viewers[id];\r\n }\r\n\r\n /**\r\n * Get a viewer using a container element\r\n * @param element the HTML element to search viewers associated with\r\n * @returns the viewer associated with the given element (if found)\r\n */\r\n public getViewerByHTMLElement(element: HTMLElement) {\r\n for (const id in this._viewers) {\r\n if (this._viewers[id].containerElement === element) {\r\n return this.getViewerById(id);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Get a promise that will fulfill when this viewer was initialized.\r\n * Since viewer initialization and template injection is asynchronous, using the promise will guaranty that\r\n * you will get the viewer after everything was already configured.\r\n * @param id the viewer id to find\r\n * @returns a promise that will resolve to the viewer\r\n */\r\n public getViewerPromiseById(id: string): Promise<AbstractViewer> {\r\n return new Promise((resolve) => {\r\n const localViewer = this.getViewerById(id);\r\n if (localViewer) {\r\n return resolve(localViewer);\r\n }\r\n const viewerFunction = (viewer: AbstractViewer) => {\r\n if (viewer.getBaseId() === id) {\r\n resolve(viewer);\r\n this.onViewerAddedObservable.removeCallback(viewerFunction);\r\n }\r\n };\r\n this.onViewerAddedObservable.add(viewerFunction);\r\n });\r\n }\r\n\r\n private _onViewerAdded(viewer: AbstractViewer) {\r\n this.onViewerAdded && this.onViewerAdded(viewer);\r\n this.onViewerAddedObservable.notifyObservers(viewer);\r\n }\r\n\r\n /**\r\n * dispose the manager and all of its associated viewers\r\n */\r\n public dispose() {\r\n for (const id in this._viewers) {\r\n this._viewers[id].dispose();\r\n }\r\n\r\n this.onViewerAddedObservable.clear();\r\n this.onViewerRemovedObservable.clear();\r\n }\r\n}\r\n\r\nexport const viewerManager = new ViewerManager();\r\n"]}
@@ -1,9 +0,0 @@
1
- import { AbstractViewer } from "./viewer";
2
- import { ConfigurationLoader } from "../configuration/loader";
3
- /**
4
- * The AbstractViewer is the center of Babylon's viewer.
5
- * It is the basic implementation of the default viewer and is responsible of loading and showing the model and the templates
6
- */
7
- export declare abstract class AbstractViewerWithTemplate extends AbstractViewer {
8
- protected getConfigurationLoader(): ConfigurationLoader;
9
- }
@@ -1,20 +0,0 @@
1
- import { __extends } from "@babylonjs/core/tslib.es6.js";
2
- import { AbstractViewer } from "./viewer.js";
3
- import { ConfigurationLoader } from "../configuration/loader.js";
4
- /**
5
- * The AbstractViewer is the center of Babylon's viewer.
6
- * It is the basic implementation of the default viewer and is responsible of loading and showing the model and the templates
7
- */
8
- var AbstractViewerWithTemplate = /** @class */ (function (_super) {
9
- __extends(AbstractViewerWithTemplate, _super);
10
- function AbstractViewerWithTemplate() {
11
- return _super !== null && _super.apply(this, arguments) || this;
12
- }
13
- // eslint-disable-next-line @typescript-eslint/naming-convention
14
- AbstractViewerWithTemplate.prototype.getConfigurationLoader = function () {
15
- return new ConfigurationLoader();
16
- };
17
- return AbstractViewerWithTemplate;
18
- }(AbstractViewer));
19
- export { AbstractViewerWithTemplate };
20
- //# sourceMappingURL=viewerWithTemplate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"viewerWithTemplate.js","sourceRoot":"","sources":["../../../../tools/viewer/src/viewer/viewerWithTemplate.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;GAGG;AACH;IAAyD,8CAAc;IAAvE;;IAKA,CAAC;IAJG,gEAAgE;IAC7C,2DAAsB,GAAzC;QACI,OAAO,IAAI,mBAAmB,EAAE,CAAC;IACrC,CAAC;IACL,iCAAC;AAAD,CAAC,AALD,CAAyD,cAAc,GAKtE","sourcesContent":["import { AbstractViewer } from \"./viewer\";\r\nimport { ConfigurationLoader } from \"../configuration/loader\";\r\n\r\n/**\r\n * The AbstractViewer is the center of Babylon's viewer.\r\n * It is the basic implementation of the default viewer and is responsible of loading and showing the model and the templates\r\n */\r\nexport abstract class AbstractViewerWithTemplate extends AbstractViewer {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n protected override getConfigurationLoader() {\r\n return new ConfigurationLoader();\r\n }\r\n}\r\n"]}