@babylonjs/viewer 7.37.1-alpha → 7.37.1

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 (599) hide show
  1. package/configuration/configuration.d.ts +107 -0
  2. package/configuration/configuration.js +16 -0
  3. package/configuration/configuration.js.map +1 -0
  4. package/configuration/configurationCompatibility.d.ts +8 -0
  5. package/configuration/configurationCompatibility.js +66 -0
  6. package/configuration/configurationCompatibility.js.map +1 -0
  7. package/configuration/configurationContainer.d.ts +10 -0
  8. package/configuration/configurationContainer.js +10 -0
  9. package/configuration/configurationContainer.js.map +1 -0
  10. package/configuration/globals.d.ts +6 -0
  11. package/configuration/globals.js +18 -0
  12. package/configuration/globals.js.map +1 -0
  13. package/configuration/index.d.ts +2 -0
  14. package/configuration/index.js +4 -0
  15. package/configuration/index.js.map +1 -0
  16. package/configuration/interfaces/cameraConfiguration.d.ts +31 -0
  17. package/configuration/interfaces/cameraConfiguration.js +2 -0
  18. package/configuration/interfaces/cameraConfiguration.js.map +1 -0
  19. package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -0
  20. package/configuration/interfaces/colorGradingConfiguration.js +2 -0
  21. package/configuration/interfaces/colorGradingConfiguration.js.map +1 -0
  22. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -0
  23. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +2 -0
  24. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -0
  25. package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -0
  26. package/configuration/interfaces/environmentMapConfiguration.js +2 -0
  27. package/configuration/interfaces/environmentMapConfiguration.js.map +1 -0
  28. package/configuration/interfaces/groundConfiguration.d.ts +24 -0
  29. package/configuration/interfaces/groundConfiguration.js +2 -0
  30. package/configuration/interfaces/groundConfiguration.js.map +1 -0
  31. package/configuration/interfaces/imageProcessingConfiguration.d.ts +45 -0
  32. package/configuration/interfaces/imageProcessingConfiguration.js +2 -0
  33. package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -0
  34. package/configuration/interfaces/index.d.ts +15 -0
  35. package/configuration/interfaces/index.js +16 -0
  36. package/configuration/interfaces/index.js.map +1 -0
  37. package/configuration/interfaces/lightConfiguration.d.ts +60 -0
  38. package/configuration/interfaces/lightConfiguration.js +2 -0
  39. package/configuration/interfaces/lightConfiguration.js.map +1 -0
  40. package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -0
  41. package/configuration/interfaces/modelAnimationConfiguration.js +2 -0
  42. package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -0
  43. package/configuration/interfaces/modelConfiguration.d.ts +65 -0
  44. package/configuration/interfaces/modelConfiguration.js +2 -0
  45. package/configuration/interfaces/modelConfiguration.js.map +1 -0
  46. package/configuration/interfaces/observersConfiguration.d.ts +5 -0
  47. package/configuration/interfaces/observersConfiguration.js +2 -0
  48. package/configuration/interfaces/observersConfiguration.js.map +1 -0
  49. package/configuration/interfaces/sceneConfiguration.d.ts +48 -0
  50. package/configuration/interfaces/sceneConfiguration.js +2 -0
  51. package/configuration/interfaces/sceneConfiguration.js.map +1 -0
  52. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -0
  53. package/configuration/interfaces/sceneOptimizerConfiguration.js +2 -0
  54. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -0
  55. package/configuration/interfaces/skyboxConfiguration.d.ts +21 -0
  56. package/configuration/interfaces/skyboxConfiguration.js +2 -0
  57. package/configuration/interfaces/skyboxConfiguration.js.map +1 -0
  58. package/configuration/interfaces/templateConfiguration.d.ts +67 -0
  59. package/configuration/interfaces/templateConfiguration.js +2 -0
  60. package/configuration/interfaces/templateConfiguration.js.map +1 -0
  61. package/configuration/interfaces/vrConfiguration.d.ts +16 -0
  62. package/configuration/interfaces/vrConfiguration.js +2 -0
  63. package/configuration/interfaces/vrConfiguration.js.map +1 -0
  64. package/configuration/loader.d.ts +4 -0
  65. package/configuration/loader.js +17 -0
  66. package/configuration/loader.js.map +1 -0
  67. package/configuration/mappers.d.ts +43 -0
  68. package/configuration/mappers.js +193 -0
  69. package/configuration/mappers.js.map +1 -0
  70. package/configuration/renderOnlyLoader.d.ts +33 -0
  71. package/configuration/renderOnlyLoader.js +162 -0
  72. package/configuration/renderOnlyLoader.js.map +1 -0
  73. package/configuration/types/default.d.ts +6 -0
  74. package/configuration/types/default.js +121 -0
  75. package/configuration/types/default.js.map +1 -0
  76. package/configuration/types/environmentMap.d.ts +5 -0
  77. package/configuration/types/environmentMap.js +14 -0
  78. package/configuration/types/environmentMap.js.map +1 -0
  79. package/configuration/types/extended.d.ts +6 -0
  80. package/configuration/types/extended.js +317 -0
  81. package/configuration/types/extended.js.map +1 -0
  82. package/configuration/types/index.d.ts +14 -0
  83. package/configuration/types/index.js +51 -0
  84. package/configuration/types/index.js.map +1 -0
  85. package/configuration/types/minimal.d.ts +6 -0
  86. package/configuration/types/minimal.js +43 -0
  87. package/configuration/types/minimal.js.map +1 -0
  88. package/configuration/types/renderOnlyDefault.d.ts +30 -0
  89. package/configuration/types/renderOnlyDefault.js +31 -0
  90. package/configuration/types/renderOnlyDefault.js.map +1 -0
  91. package/configuration/types/shadowLight.d.ts +9 -0
  92. package/configuration/types/shadowLight.js +64 -0
  93. package/configuration/types/shadowLight.js.map +1 -0
  94. package/helper/index.d.ts +29 -0
  95. package/helper/index.js +66 -0
  96. package/helper/index.js.map +1 -0
  97. package/index.d.ts +30 -0
  98. package/index.js +46 -0
  99. package/index.js.map +1 -0
  100. package/initializer.d.ts +11 -0
  101. package/initializer.js +35 -0
  102. package/initializer.js.map +1 -0
  103. package/interfaces.d.ts +5 -0
  104. package/interfaces.js +7 -0
  105. package/interfaces.js.map +1 -0
  106. package/labs/environmentSerializer.d.ts +126 -0
  107. package/labs/environmentSerializer.js +191 -0
  108. package/labs/environmentSerializer.js.map +1 -0
  109. package/labs/texture.d.ts +183 -0
  110. package/labs/texture.js +351 -0
  111. package/labs/texture.js.map +1 -0
  112. package/labs/viewerLabs.d.ts +51 -0
  113. package/labs/viewerLabs.js +134 -0
  114. package/labs/viewerLabs.js.map +1 -0
  115. package/loader/modelLoader.d.ts +56 -0
  116. package/loader/modelLoader.js +202 -0
  117. package/loader/modelLoader.js.map +1 -0
  118. package/loader/plugins/applyMaterialConfig.d.ts +12 -0
  119. package/loader/plugins/applyMaterialConfig.js +16 -0
  120. package/loader/plugins/applyMaterialConfig.js.map +1 -0
  121. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -0
  122. package/loader/plugins/extendedMaterialLoaderPlugin.js +16 -0
  123. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -0
  124. package/loader/plugins/index.d.ts +19 -0
  125. package/loader/plugins/index.js +44 -0
  126. package/loader/plugins/index.js.map +1 -0
  127. package/loader/plugins/loaderPlugin.d.ts +24 -0
  128. package/loader/plugins/loaderPlugin.js +2 -0
  129. package/loader/plugins/loaderPlugin.js.map +1 -0
  130. package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -0
  131. package/loader/plugins/msftLodLoaderPlugin.js +21 -0
  132. package/loader/plugins/msftLodLoaderPlugin.js.map +1 -0
  133. package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -0
  134. package/loader/plugins/telemetryLoaderPlugin.js +36 -0
  135. package/loader/plugins/telemetryLoaderPlugin.js.map +1 -0
  136. package/managers/observablesManager.d.ts +66 -0
  137. package/managers/observablesManager.js +35 -0
  138. package/managers/observablesManager.js.map +1 -0
  139. package/managers/sceneManager.d.ts +245 -0
  140. package/managers/sceneManager.js +1375 -0
  141. package/managers/sceneManager.js.map +1 -0
  142. package/managers/telemetryManager.d.ts +78 -0
  143. package/managers/telemetryManager.js +117 -0
  144. package/managers/telemetryManager.js.map +1 -0
  145. package/model/modelAnimation.d.ts +215 -0
  146. package/model/modelAnimation.js +237 -0
  147. package/model/modelAnimation.js.map +1 -0
  148. package/model/viewerModel.d.ts +233 -0
  149. package/model/viewerModel.js +673 -0
  150. package/model/viewerModel.js.map +1 -0
  151. package/optimizer/custom/extended.d.ts +13 -0
  152. package/optimizer/custom/extended.js +101 -0
  153. package/optimizer/custom/extended.js.map +1 -0
  154. package/optimizer/custom/index.d.ts +9 -0
  155. package/optimizer/custom/index.js +26 -0
  156. package/optimizer/custom/index.js.map +1 -0
  157. package/package.json +27 -18
  158. package/readme.md +21 -145
  159. package/renderOnlyIndex.d.ts +11 -0
  160. package/renderOnlyIndex.js +18 -0
  161. package/renderOnlyIndex.js.map +1 -0
  162. package/templating/eventManager.d.ts +35 -0
  163. package/templating/eventManager.js +66 -0
  164. package/templating/eventManager.js.map +1 -0
  165. package/templating/plugins/hdButtonPlugin.d.ts +9 -0
  166. package/templating/plugins/hdButtonPlugin.js +22 -0
  167. package/templating/plugins/hdButtonPlugin.js.map +1 -0
  168. package/templating/plugins/printButton.d.ts +9 -0
  169. package/templating/plugins/printButton.js +41 -0
  170. package/templating/plugins/printButton.js.map +1 -0
  171. package/templating/templateManager.d.ts +197 -0
  172. package/templating/templateManager.js +561 -0
  173. package/templating/templateManager.js.map +1 -0
  174. package/templating/viewerTemplatePlugin.d.ts +21 -0
  175. package/templating/viewerTemplatePlugin.js +69 -0
  176. package/templating/viewerTemplatePlugin.js.map +1 -0
  177. package/viewer/defaultViewer.d.ts +130 -0
  178. package/viewer/defaultViewer.js +672 -0
  179. package/viewer/defaultViewer.js.map +1 -0
  180. package/viewer/renderOnlyViewer.d.ts +9 -0
  181. package/viewer/renderOnlyViewer.js +46 -0
  182. package/viewer/renderOnlyViewer.js.map +1 -0
  183. package/viewer/viewer.d.ts +258 -0
  184. package/viewer/viewer.js +783 -0
  185. package/viewer/viewer.js.map +1 -0
  186. package/viewer/viewerManager.d.ts +58 -0
  187. package/viewer/viewerManager.js +91 -0
  188. package/viewer/viewerManager.js.map +1 -0
  189. package/viewer/viewerWithTemplate.d.ts +9 -0
  190. package/viewer/viewerWithTemplate.js +20 -0
  191. package/viewer/viewerWithTemplate.js.map +1 -0
  192. package/assets/photoStudio.env +0 -0
  193. package/dist/babylon-viewer.esm.js +0 -2
  194. package/dist/babylon-viewer.esm.js.map +0 -1
  195. package/dist/babylon-viewer.esm.min.js +0 -2
  196. package/dist/babylon-viewer.esm.min.js.map +0 -1
  197. package/dist/chunks/EXT_lights_image_based-BTTJ2JSt.esm.min.js +0 -2
  198. package/dist/chunks/EXT_lights_image_based-BTTJ2JSt.esm.min.js.map +0 -1
  199. package/dist/chunks/EXT_lights_image_based-mCt1KUiF.esm.js +0 -171
  200. package/dist/chunks/EXT_lights_image_based-mCt1KUiF.esm.js.map +0 -1
  201. package/dist/chunks/EXT_mesh_gpu_instancing-BCgQFq6R.esm.min.js +0 -2
  202. package/dist/chunks/EXT_mesh_gpu_instancing-BCgQFq6R.esm.min.js.map +0 -1
  203. package/dist/chunks/EXT_mesh_gpu_instancing-CpjETToP.esm.js +0 -86
  204. package/dist/chunks/EXT_mesh_gpu_instancing-CpjETToP.esm.js.map +0 -1
  205. package/dist/chunks/EXT_meshopt_compression-4wJlE2Do.esm.min.js +0 -2
  206. package/dist/chunks/EXT_meshopt_compression-4wJlE2Do.esm.min.js.map +0 -1
  207. package/dist/chunks/EXT_meshopt_compression-BzfAhd0k.esm.js +0 -134
  208. package/dist/chunks/EXT_meshopt_compression-BzfAhd0k.esm.js.map +0 -1
  209. package/dist/chunks/EXT_texture_avif-DZwUnu-Q.esm.min.js +0 -2
  210. package/dist/chunks/EXT_texture_avif-DZwUnu-Q.esm.min.js.map +0 -1
  211. package/dist/chunks/EXT_texture_avif-yX71qV2W.esm.js +0 -44
  212. package/dist/chunks/EXT_texture_avif-yX71qV2W.esm.js.map +0 -1
  213. package/dist/chunks/EXT_texture_webp-COXIl9Hz.esm.min.js +0 -2
  214. package/dist/chunks/EXT_texture_webp-COXIl9Hz.esm.min.js.map +0 -1
  215. package/dist/chunks/EXT_texture_webp-nGZbK5Pe.esm.js +0 -43
  216. package/dist/chunks/EXT_texture_webp-nGZbK5Pe.esm.js.map +0 -1
  217. package/dist/chunks/ExtrasAsMetadata-DUET0pv1.esm.js +0 -64
  218. package/dist/chunks/ExtrasAsMetadata-DUET0pv1.esm.js.map +0 -1
  219. package/dist/chunks/ExtrasAsMetadata-DrcrrXzY.esm.min.js +0 -2
  220. package/dist/chunks/ExtrasAsMetadata-DrcrrXzY.esm.min.js.map +0 -1
  221. package/dist/chunks/KHR_animation_pointer-CEl0j147.esm.js +0 -343
  222. package/dist/chunks/KHR_animation_pointer-CEl0j147.esm.js.map +0 -1
  223. package/dist/chunks/KHR_animation_pointer-DQ_C7F9b.esm.min.js +0 -2
  224. package/dist/chunks/KHR_animation_pointer-DQ_C7F9b.esm.min.js.map +0 -1
  225. package/dist/chunks/KHR_draco_mesh_compression-C8ZM8r8Y.esm.js +0 -617
  226. package/dist/chunks/KHR_draco_mesh_compression-C8ZM8r8Y.esm.js.map +0 -1
  227. package/dist/chunks/KHR_draco_mesh_compression-Cl89FvcS.esm.min.js +0 -2
  228. package/dist/chunks/KHR_draco_mesh_compression-Cl89FvcS.esm.min.js.map +0 -1
  229. package/dist/chunks/KHR_interactivity-B1iMXK-h.esm.min.js +0 -2
  230. package/dist/chunks/KHR_interactivity-B1iMXK-h.esm.min.js.map +0 -1
  231. package/dist/chunks/KHR_interactivity-CLFlYbRq.esm.js +0 -4033
  232. package/dist/chunks/KHR_interactivity-CLFlYbRq.esm.js.map +0 -1
  233. package/dist/chunks/KHR_lights_punctual-C-Z_EBCh.esm.min.js +0 -2
  234. package/dist/chunks/KHR_lights_punctual-C-Z_EBCh.esm.min.js.map +0 -1
  235. package/dist/chunks/KHR_lights_punctual-DNHTEebm.esm.js +0 -1253
  236. package/dist/chunks/KHR_lights_punctual-DNHTEebm.esm.js.map +0 -1
  237. package/dist/chunks/KHR_materials_anisotropy-CvKEdc3d.esm.min.js +0 -2
  238. package/dist/chunks/KHR_materials_anisotropy-CvKEdc3d.esm.min.js.map +0 -1
  239. package/dist/chunks/KHR_materials_anisotropy-bDPhW1cK.esm.js +0 -65
  240. package/dist/chunks/KHR_materials_anisotropy-bDPhW1cK.esm.js.map +0 -1
  241. package/dist/chunks/KHR_materials_clearcoat-2tGYyrqV.esm.js +0 -96
  242. package/dist/chunks/KHR_materials_clearcoat-2tGYyrqV.esm.js.map +0 -1
  243. package/dist/chunks/KHR_materials_clearcoat-KjnHHLBM.esm.min.js +0 -2
  244. package/dist/chunks/KHR_materials_clearcoat-KjnHHLBM.esm.min.js.map +0 -1
  245. package/dist/chunks/KHR_materials_diffuse_transmission-Doqv4nTI.esm.min.js +0 -2
  246. package/dist/chunks/KHR_materials_diffuse_transmission-Doqv4nTI.esm.min.js.map +0 -1
  247. package/dist/chunks/KHR_materials_diffuse_transmission-xmLmQPZg.esm.js +0 -97
  248. package/dist/chunks/KHR_materials_diffuse_transmission-xmLmQPZg.esm.js.map +0 -1
  249. package/dist/chunks/KHR_materials_dispersion-CYhdzD3k.esm.js +0 -62
  250. package/dist/chunks/KHR_materials_dispersion-CYhdzD3k.esm.js.map +0 -1
  251. package/dist/chunks/KHR_materials_dispersion-IBPQk406.esm.min.js +0 -2
  252. package/dist/chunks/KHR_materials_dispersion-IBPQk406.esm.min.js.map +0 -1
  253. package/dist/chunks/KHR_materials_emissive_strength-CDKCAd-o.esm.min.js +0 -2
  254. package/dist/chunks/KHR_materials_emissive_strength-CDKCAd-o.esm.min.js.map +0 -1
  255. package/dist/chunks/KHR_materials_emissive_strength-zMb2iaCe.esm.js +0 -55
  256. package/dist/chunks/KHR_materials_emissive_strength-zMb2iaCe.esm.js.map +0 -1
  257. package/dist/chunks/KHR_materials_ior-8K0WIK8R.esm.js +0 -64
  258. package/dist/chunks/KHR_materials_ior-8K0WIK8R.esm.js.map +0 -1
  259. package/dist/chunks/KHR_materials_ior-B_s6wgCK.esm.min.js +0 -2
  260. package/dist/chunks/KHR_materials_ior-B_s6wgCK.esm.min.js.map +0 -1
  261. package/dist/chunks/KHR_materials_iridescence-DNRfYFR1.esm.js +0 -72
  262. package/dist/chunks/KHR_materials_iridescence-DNRfYFR1.esm.js.map +0 -1
  263. package/dist/chunks/KHR_materials_iridescence-Lk_cRmU6.esm.min.js +0 -2
  264. package/dist/chunks/KHR_materials_iridescence-Lk_cRmU6.esm.min.js.map +0 -1
  265. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-B2JD91j_.esm.min.js +0 -2
  266. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-B2JD91j_.esm.min.js.map +0 -1
  267. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DKLrtJGj.esm.js +0 -81
  268. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DKLrtJGj.esm.js.map +0 -1
  269. package/dist/chunks/KHR_materials_sheen-C6yyaBK_.esm.min.js +0 -2
  270. package/dist/chunks/KHR_materials_sheen-C6yyaBK_.esm.min.js.map +0 -1
  271. package/dist/chunks/KHR_materials_sheen-DSieQRYY.esm.js +0 -85
  272. package/dist/chunks/KHR_materials_sheen-DSieQRYY.esm.js.map +0 -1
  273. package/dist/chunks/KHR_materials_specular-C39zFYoJ.esm.min.js +0 -2
  274. package/dist/chunks/KHR_materials_specular-C39zFYoJ.esm.min.js.map +0 -1
  275. package/dist/chunks/KHR_materials_specular-D8eHI5SD.esm.js +0 -75
  276. package/dist/chunks/KHR_materials_specular-D8eHI5SD.esm.js.map +0 -1
  277. package/dist/chunks/KHR_materials_transmission-BKBEK-Pr.esm.min.js +0 -2
  278. package/dist/chunks/KHR_materials_transmission-BKBEK-Pr.esm.min.js.map +0 -1
  279. package/dist/chunks/KHR_materials_transmission-BbZ0iPcE.esm.js +0 -307
  280. package/dist/chunks/KHR_materials_transmission-BbZ0iPcE.esm.js.map +0 -1
  281. package/dist/chunks/KHR_materials_unlit-BlH7nnlb.esm.js +0 -74
  282. package/dist/chunks/KHR_materials_unlit-BlH7nnlb.esm.js.map +0 -1
  283. package/dist/chunks/KHR_materials_unlit-QeYg1Vup.esm.min.js +0 -2
  284. package/dist/chunks/KHR_materials_unlit-QeYg1Vup.esm.min.js.map +0 -1
  285. package/dist/chunks/KHR_materials_variants-BP5P-s3S.esm.min.js +0 -2
  286. package/dist/chunks/KHR_materials_variants-BP5P-s3S.esm.min.js.map +0 -1
  287. package/dist/chunks/KHR_materials_variants-YGdMNusB.esm.js +0 -262
  288. package/dist/chunks/KHR_materials_variants-YGdMNusB.esm.js.map +0 -1
  289. package/dist/chunks/KHR_materials_volume-DfgYbLDf.esm.min.js +0 -2
  290. package/dist/chunks/KHR_materials_volume-DfgYbLDf.esm.min.js.map +0 -1
  291. package/dist/chunks/KHR_materials_volume-Dha6NaMB.esm.js +0 -87
  292. package/dist/chunks/KHR_materials_volume-Dha6NaMB.esm.js.map +0 -1
  293. package/dist/chunks/KHR_mesh_quantization-CkgFZADd.esm.min.js +0 -2
  294. package/dist/chunks/KHR_mesh_quantization-CkgFZADd.esm.min.js.map +0 -1
  295. package/dist/chunks/KHR_mesh_quantization-DdszX7d9.esm.js +0 -26
  296. package/dist/chunks/KHR_mesh_quantization-DdszX7d9.esm.js.map +0 -1
  297. package/dist/chunks/KHR_node_visibility-BVqrUzew.esm.js +0 -46
  298. package/dist/chunks/KHR_node_visibility-BVqrUzew.esm.js.map +0 -1
  299. package/dist/chunks/KHR_node_visibility-Dx5_M0yu.esm.min.js +0 -2
  300. package/dist/chunks/KHR_node_visibility-Dx5_M0yu.esm.min.js.map +0 -1
  301. package/dist/chunks/KHR_texture_basisu-C6wS0ywQ.esm.js +0 -43
  302. package/dist/chunks/KHR_texture_basisu-C6wS0ywQ.esm.js.map +0 -1
  303. package/dist/chunks/KHR_texture_basisu-Ur5SaidK.esm.min.js +0 -2
  304. package/dist/chunks/KHR_texture_basisu-Ur5SaidK.esm.min.js.map +0 -1
  305. package/dist/chunks/KHR_texture_transform-C-QM24AO.esm.js +0 -63
  306. package/dist/chunks/KHR_texture_transform-C-QM24AO.esm.js.map +0 -1
  307. package/dist/chunks/KHR_texture_transform-Dpdib7O3.esm.min.js +0 -2
  308. package/dist/chunks/KHR_texture_transform-Dpdib7O3.esm.min.js.map +0 -1
  309. package/dist/chunks/KHR_xmp_json_ld-CqwNTmrx.esm.js +0 -51
  310. package/dist/chunks/KHR_xmp_json_ld-CqwNTmrx.esm.js.map +0 -1
  311. package/dist/chunks/KHR_xmp_json_ld-S6fxRXLv.esm.min.js +0 -2
  312. package/dist/chunks/KHR_xmp_json_ld-S6fxRXLv.esm.min.js.map +0 -1
  313. package/dist/chunks/MSFT_audio_emitter-Bjh6cLZb.esm.min.js +0 -2
  314. package/dist/chunks/MSFT_audio_emitter-Bjh6cLZb.esm.min.js.map +0 -1
  315. package/dist/chunks/MSFT_audio_emitter-CfsWIxyJ.esm.js +0 -2207
  316. package/dist/chunks/MSFT_audio_emitter-CfsWIxyJ.esm.js.map +0 -1
  317. package/dist/chunks/MSFT_lod-CZ__xodu.esm.min.js +0 -2
  318. package/dist/chunks/MSFT_lod-CZ__xodu.esm.min.js.map +0 -1
  319. package/dist/chunks/MSFT_lod-CzMztdpf.esm.js +0 -337
  320. package/dist/chunks/MSFT_lod-CzMztdpf.esm.js.map +0 -1
  321. package/dist/chunks/MSFT_minecraftMesh-C427ldkX.esm.min.js +0 -2
  322. package/dist/chunks/MSFT_minecraftMesh-C427ldkX.esm.min.js.map +0 -1
  323. package/dist/chunks/MSFT_minecraftMesh-DnxkOe8i.esm.js +0 -46
  324. package/dist/chunks/MSFT_minecraftMesh-DnxkOe8i.esm.js.map +0 -1
  325. package/dist/chunks/MSFT_sRGBFactors-CkV5G330.esm.js +0 -47
  326. package/dist/chunks/MSFT_sRGBFactors-CkV5G330.esm.js.map +0 -1
  327. package/dist/chunks/MSFT_sRGBFactors-DDIZdWTr.esm.min.js +0 -2
  328. package/dist/chunks/MSFT_sRGBFactors-DDIZdWTr.esm.min.js.map +0 -1
  329. package/dist/chunks/animationGroup-BKfJQilu.esm.js +0 -2482
  330. package/dist/chunks/animationGroup-BKfJQilu.esm.js.map +0 -1
  331. package/dist/chunks/animationGroup-oTbb0nLn.esm.min.js +0 -2
  332. package/dist/chunks/animationGroup-oTbb0nLn.esm.min.js.map +0 -1
  333. package/dist/chunks/assetContainer-BDuQ9TBc.esm.js +0 -1720
  334. package/dist/chunks/assetContainer-BDuQ9TBc.esm.js.map +0 -1
  335. package/dist/chunks/assetContainer-Dkp9h8Nk.esm.min.js +0 -2
  336. package/dist/chunks/assetContainer-Dkp9h8Nk.esm.min.js.map +0 -1
  337. package/dist/chunks/audioEngine-PbWm6naZ.esm.min.js +0 -2
  338. package/dist/chunks/audioEngine-PbWm6naZ.esm.min.js.map +0 -1
  339. package/dist/chunks/audioEngine-YGEF6yUK.esm.js +0 -305
  340. package/dist/chunks/audioEngine-YGEF6yUK.esm.js.map +0 -1
  341. package/dist/chunks/bakedVertexAnimation-CC0DpkaK.esm.js +0 -114
  342. package/dist/chunks/bakedVertexAnimation-CC0DpkaK.esm.js.map +0 -1
  343. package/dist/chunks/bakedVertexAnimation-CFdpJmq_.esm.min.js +0 -2
  344. package/dist/chunks/bakedVertexAnimation-CFdpJmq_.esm.min.js.map +0 -1
  345. package/dist/chunks/basisTextureLoader-DT5ZuZjv.esm.min.js +0 -2
  346. package/dist/chunks/basisTextureLoader-DT5ZuZjv.esm.min.js.map +0 -1
  347. package/dist/chunks/basisTextureLoader-SHKWwrIc.esm.js +0 -600
  348. package/dist/chunks/basisTextureLoader-SHKWwrIc.esm.js.map +0 -1
  349. package/dist/chunks/dds-HX8yeT_e.esm.min.js +0 -2
  350. package/dist/chunks/dds-HX8yeT_e.esm.min.js.map +0 -1
  351. package/dist/chunks/dds-vQ-Nb197.esm.js +0 -540
  352. package/dist/chunks/dds-vQ-Nb197.esm.js.map +0 -1
  353. package/dist/chunks/ddsTextureLoader-BaUUWNli.esm.min.js +0 -2
  354. package/dist/chunks/ddsTextureLoader-BaUUWNli.esm.min.js.map +0 -1
  355. package/dist/chunks/ddsTextureLoader-DQNi9sT8.esm.js +0 -88
  356. package/dist/chunks/ddsTextureLoader-DQNi9sT8.esm.js.map +0 -1
  357. package/dist/chunks/decalFragment-D2w8icPy.esm.js +0 -18
  358. package/dist/chunks/decalFragment-D2w8icPy.esm.js.map +0 -1
  359. package/dist/chunks/decalFragment-xzxcUxJ8.esm.min.js +0 -2
  360. package/dist/chunks/decalFragment-xzxcUxJ8.esm.min.js.map +0 -1
  361. package/dist/chunks/default.fragment-3u7hEV9p.esm.js +0 -433
  362. package/dist/chunks/default.fragment-3u7hEV9p.esm.js.map +0 -1
  363. package/dist/chunks/default.fragment-BNyzlMGw.esm.js +0 -497
  364. package/dist/chunks/default.fragment-BNyzlMGw.esm.js.map +0 -1
  365. package/dist/chunks/default.fragment-BYeFenXp.esm.min.js +0 -2
  366. package/dist/chunks/default.fragment-BYeFenXp.esm.min.js.map +0 -1
  367. package/dist/chunks/default.fragment-BZTPSd0S.esm.min.js +0 -2
  368. package/dist/chunks/default.fragment-BZTPSd0S.esm.min.js.map +0 -1
  369. package/dist/chunks/default.vertex-COzqeVfA.esm.js +0 -201
  370. package/dist/chunks/default.vertex-COzqeVfA.esm.js.map +0 -1
  371. package/dist/chunks/default.vertex-Cq8745-M.esm.js +0 -181
  372. package/dist/chunks/default.vertex-Cq8745-M.esm.js.map +0 -1
  373. package/dist/chunks/default.vertex-gHqSMlcv.esm.min.js +0 -2
  374. package/dist/chunks/default.vertex-gHqSMlcv.esm.min.js.map +0 -1
  375. package/dist/chunks/default.vertex-uxBts4pr.esm.min.js +0 -2
  376. package/dist/chunks/default.vertex-uxBts4pr.esm.min.js.map +0 -1
  377. package/dist/chunks/defaultUboDeclaration-C8a-iWXW.esm.js +0 -13
  378. package/dist/chunks/defaultUboDeclaration-C8a-iWXW.esm.js.map +0 -1
  379. package/dist/chunks/defaultUboDeclaration-COUxsT02.esm.min.js +0 -2
  380. package/dist/chunks/defaultUboDeclaration-COUxsT02.esm.min.js.map +0 -1
  381. package/dist/chunks/defaultUboDeclaration-GAZtMI4g.esm.js +0 -15
  382. package/dist/chunks/defaultUboDeclaration-GAZtMI4g.esm.js.map +0 -1
  383. package/dist/chunks/defaultUboDeclaration-wunm8_kR.esm.min.js +0 -2
  384. package/dist/chunks/defaultUboDeclaration-wunm8_kR.esm.min.js.map +0 -1
  385. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +0 -11
  386. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +0 -1
  387. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +0 -2
  388. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +0 -1
  389. package/dist/chunks/dumpTools-DEHzgH2e.esm.min.js +0 -2
  390. package/dist/chunks/dumpTools-DEHzgH2e.esm.min.js.map +0 -1
  391. package/dist/chunks/dumpTools-cCiLRzhx.esm.js +0 -200
  392. package/dist/chunks/dumpTools-cCiLRzhx.esm.js.map +0 -1
  393. package/dist/chunks/engine-CtoA0nUe.esm.js +0 -2220
  394. package/dist/chunks/engine-CtoA0nUe.esm.js.map +0 -1
  395. package/dist/chunks/engine-D-ALFUqi.esm.min.js +0 -2
  396. package/dist/chunks/engine-D-ALFUqi.esm.min.js.map +0 -1
  397. package/dist/chunks/engine.common-BBs3lswu.esm.js +0 -1162
  398. package/dist/chunks/engine.common-BBs3lswu.esm.js.map +0 -1
  399. package/dist/chunks/engine.common-fhQflGOP.esm.min.js +0 -2
  400. package/dist/chunks/engine.common-fhQflGOP.esm.min.js.map +0 -1
  401. package/dist/chunks/envTextureLoader-BQ0ZLpIZ.esm.js +0 -64
  402. package/dist/chunks/envTextureLoader-BQ0ZLpIZ.esm.js.map +0 -1
  403. package/dist/chunks/envTextureLoader-Clo69VZm.esm.min.js +0 -2
  404. package/dist/chunks/envTextureLoader-Clo69VZm.esm.min.js.map +0 -1
  405. package/dist/chunks/environmentTextureTools-CKcnvQvE.esm.min.js +0 -2
  406. package/dist/chunks/environmentTextureTools-CKcnvQvE.esm.min.js.map +0 -1
  407. package/dist/chunks/environmentTextureTools-Dv4OYysb.esm.js +0 -382
  408. package/dist/chunks/environmentTextureTools-Dv4OYysb.esm.js.map +0 -1
  409. package/dist/chunks/exrTextureLoader-1Qk-QkDv.esm.min.js +0 -2
  410. package/dist/chunks/exrTextureLoader-1Qk-QkDv.esm.min.js.map +0 -1
  411. package/dist/chunks/exrTextureLoader-DFUZJxaC.esm.js +0 -1682
  412. package/dist/chunks/exrTextureLoader-DFUZJxaC.esm.js.map +0 -1
  413. package/dist/chunks/fogFragment-B4-SlSDo.esm.js +0 -101
  414. package/dist/chunks/fogFragment-B4-SlSDo.esm.js.map +0 -1
  415. package/dist/chunks/fogFragment-BKD4e7Ph.esm.min.js +0 -2
  416. package/dist/chunks/fogFragment-BKD4e7Ph.esm.min.js.map +0 -1
  417. package/dist/chunks/fogFragment-DTaKEUGB.esm.min.js +0 -2
  418. package/dist/chunks/fogFragment-DTaKEUGB.esm.min.js.map +0 -1
  419. package/dist/chunks/fogFragment-h9FPnPoM.esm.js +0 -102
  420. package/dist/chunks/fogFragment-h9FPnPoM.esm.js.map +0 -1
  421. package/dist/chunks/fresnelFunction-DghEYnyJ.esm.js +0 -12
  422. package/dist/chunks/fresnelFunction-DghEYnyJ.esm.js.map +0 -1
  423. package/dist/chunks/fresnelFunction-DocHkMCd.esm.min.js +0 -2
  424. package/dist/chunks/fresnelFunction-DocHkMCd.esm.min.js.map +0 -1
  425. package/dist/chunks/glTFLoader-c3PKGkcy.esm.js +0 -7606
  426. package/dist/chunks/glTFLoader-c3PKGkcy.esm.js.map +0 -1
  427. package/dist/chunks/glTFLoader-vKjW1nNZ.esm.min.js +0 -2
  428. package/dist/chunks/glTFLoader-vKjW1nNZ.esm.min.js.map +0 -1
  429. package/dist/chunks/glTFLoaderAnimation-B6CGd8Cm.esm.min.js +0 -2
  430. package/dist/chunks/glTFLoaderAnimation-B6CGd8Cm.esm.min.js.map +0 -1
  431. package/dist/chunks/glTFLoaderAnimation-BcKbtbAU.esm.js +0 -77
  432. package/dist/chunks/glTFLoaderAnimation-BcKbtbAU.esm.js.map +0 -1
  433. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
  434. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
  435. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
  436. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
  437. package/dist/chunks/harmonicsFunctions-BFgQNOzG.esm.js +0 -35
  438. package/dist/chunks/harmonicsFunctions-BFgQNOzG.esm.js.map +0 -1
  439. package/dist/chunks/harmonicsFunctions-BnOdQYv0.esm.min.js +0 -2
  440. package/dist/chunks/harmonicsFunctions-BnOdQYv0.esm.min.js.map +0 -1
  441. package/dist/chunks/harmonicsFunctions-BryBP7jB.esm.js +0 -34
  442. package/dist/chunks/harmonicsFunctions-BryBP7jB.esm.js.map +0 -1
  443. package/dist/chunks/harmonicsFunctions-CKGE8BeQ.esm.min.js +0 -2
  444. package/dist/chunks/harmonicsFunctions-CKGE8BeQ.esm.min.js.map +0 -1
  445. package/dist/chunks/hdrTextureLoader-CxAR4jBp.esm.min.js +0 -2
  446. package/dist/chunks/hdrTextureLoader-CxAR4jBp.esm.min.js.map +0 -1
  447. package/dist/chunks/hdrTextureLoader-DezOXXlV.esm.js +0 -252
  448. package/dist/chunks/hdrTextureLoader-DezOXXlV.esm.js.map +0 -1
  449. package/dist/chunks/helperFunctions-BCdxmjWw.esm.min.js +0 -2
  450. package/dist/chunks/helperFunctions-BCdxmjWw.esm.min.js.map +0 -1
  451. package/dist/chunks/helperFunctions-CK2I9A9w.esm.min.js +0 -2
  452. package/dist/chunks/helperFunctions-CK2I9A9w.esm.min.js.map +0 -1
  453. package/dist/chunks/helperFunctions-D3PjirGO.esm.js +0 -80
  454. package/dist/chunks/helperFunctions-D3PjirGO.esm.js.map +0 -1
  455. package/dist/chunks/helperFunctions-DVaaLHM8.esm.js +0 -108
  456. package/dist/chunks/helperFunctions-DVaaLHM8.esm.js.map +0 -1
  457. package/dist/chunks/index-BJLUfgJX.esm.min.js +0 -57
  458. package/dist/chunks/index-BJLUfgJX.esm.min.js.map +0 -1
  459. package/dist/chunks/index-ft-NqTCE.esm.js +0 -74479
  460. package/dist/chunks/index-ft-NqTCE.esm.js.map +0 -1
  461. package/dist/chunks/ktxTextureLoader-D9IBlv-B.esm.js +0 -814
  462. package/dist/chunks/ktxTextureLoader-D9IBlv-B.esm.js.map +0 -1
  463. package/dist/chunks/ktxTextureLoader-Df3A32Nm.esm.min.js +0 -2
  464. package/dist/chunks/ktxTextureLoader-Df3A32Nm.esm.min.js.map +0 -1
  465. package/dist/chunks/logDepthDeclaration-BMa31LAb.esm.min.js +0 -2
  466. package/dist/chunks/logDepthDeclaration-BMa31LAb.esm.min.js.map +0 -1
  467. package/dist/chunks/logDepthDeclaration-BffNcd79.esm.min.js +0 -2
  468. package/dist/chunks/logDepthDeclaration-BffNcd79.esm.min.js.map +0 -1
  469. package/dist/chunks/logDepthDeclaration-BkgrzFr-.esm.js +0 -35
  470. package/dist/chunks/logDepthDeclaration-BkgrzFr-.esm.js.map +0 -1
  471. package/dist/chunks/logDepthDeclaration-uuaJZU_f.esm.js +0 -11
  472. package/dist/chunks/logDepthDeclaration-uuaJZU_f.esm.js.map +0 -1
  473. package/dist/chunks/logDepthVertex-C-tEJ4YD.esm.js +0 -77
  474. package/dist/chunks/logDepthVertex-C-tEJ4YD.esm.js.map +0 -1
  475. package/dist/chunks/logDepthVertex-CDQb6tt8.esm.min.js +0 -2
  476. package/dist/chunks/logDepthVertex-CDQb6tt8.esm.min.js.map +0 -1
  477. package/dist/chunks/logDepthVertex-DiLmNz-k.esm.js +0 -77
  478. package/dist/chunks/logDepthVertex-DiLmNz-k.esm.js.map +0 -1
  479. package/dist/chunks/logDepthVertex-Dpw-9K14.esm.min.js +0 -2
  480. package/dist/chunks/logDepthVertex-Dpw-9K14.esm.min.js.map +0 -1
  481. package/dist/chunks/mainUVVaryingDeclaration-BP9Oh5Cu.esm.js +0 -11
  482. package/dist/chunks/mainUVVaryingDeclaration-BP9Oh5Cu.esm.js.map +0 -1
  483. package/dist/chunks/mainUVVaryingDeclaration-CEXOi0id.esm.js +0 -11
  484. package/dist/chunks/mainUVVaryingDeclaration-CEXOi0id.esm.js.map +0 -1
  485. package/dist/chunks/mainUVVaryingDeclaration-CS_CRHYh.esm.min.js +0 -2
  486. package/dist/chunks/mainUVVaryingDeclaration-CS_CRHYh.esm.min.js.map +0 -1
  487. package/dist/chunks/mainUVVaryingDeclaration-z3TYsjH4.esm.min.js +0 -2
  488. package/dist/chunks/mainUVVaryingDeclaration-z3TYsjH4.esm.min.js.map +0 -1
  489. package/dist/chunks/meshUboDeclaration-BWZH2NAD.esm.js +0 -24
  490. package/dist/chunks/meshUboDeclaration-BWZH2NAD.esm.js.map +0 -1
  491. package/dist/chunks/meshUboDeclaration-GE0scsI9.esm.min.js +0 -2
  492. package/dist/chunks/meshUboDeclaration-GE0scsI9.esm.min.js.map +0 -1
  493. package/dist/chunks/objFileLoader-BVetxPxf.esm.min.js +0 -2
  494. package/dist/chunks/objFileLoader-BVetxPxf.esm.min.js.map +0 -1
  495. package/dist/chunks/objFileLoader-Bf8yc_Mr.esm.js +0 -1338
  496. package/dist/chunks/objFileLoader-Bf8yc_Mr.esm.js.map +0 -1
  497. package/dist/chunks/oitFragment-CB2fmldL.esm.min.js +0 -2
  498. package/dist/chunks/oitFragment-CB2fmldL.esm.min.js.map +0 -1
  499. package/dist/chunks/oitFragment-CVpK7aQA.esm.min.js +0 -2
  500. package/dist/chunks/oitFragment-CVpK7aQA.esm.min.js.map +0 -1
  501. package/dist/chunks/oitFragment-Di4uP35N.esm.js +0 -1051
  502. package/dist/chunks/oitFragment-Di4uP35N.esm.js.map +0 -1
  503. package/dist/chunks/oitFragment-DxB5sJ7I.esm.js +0 -1210
  504. package/dist/chunks/oitFragment-DxB5sJ7I.esm.js.map +0 -1
  505. package/dist/chunks/pass.fragment-BOOcB5_Y.esm.js +0 -15
  506. package/dist/chunks/pass.fragment-BOOcB5_Y.esm.js.map +0 -1
  507. package/dist/chunks/pass.fragment-CxR7KxRY.esm.min.js +0 -2
  508. package/dist/chunks/pass.fragment-CxR7KxRY.esm.min.js.map +0 -1
  509. package/dist/chunks/pass.fragment-DQ5Y_qQy.esm.js +0 -15
  510. package/dist/chunks/pass.fragment-DQ5Y_qQy.esm.js.map +0 -1
  511. package/dist/chunks/pass.fragment-DsSd-rC5.esm.min.js +0 -2
  512. package/dist/chunks/pass.fragment-DsSd-rC5.esm.min.js.map +0 -1
  513. package/dist/chunks/pbr.fragment-16p9WLNX.esm.js +0 -3270
  514. package/dist/chunks/pbr.fragment-16p9WLNX.esm.js.map +0 -1
  515. package/dist/chunks/pbr.fragment-CypWnzkM.esm.min.js +0 -2
  516. package/dist/chunks/pbr.fragment-CypWnzkM.esm.min.js.map +0 -1
  517. package/dist/chunks/pbr.fragment-Dj075y2L.esm.min.js +0 -2
  518. package/dist/chunks/pbr.fragment-Dj075y2L.esm.min.js.map +0 -1
  519. package/dist/chunks/pbr.fragment-DnltvcZL.esm.js +0 -3230
  520. package/dist/chunks/pbr.fragment-DnltvcZL.esm.js.map +0 -1
  521. package/dist/chunks/pbr.vertex-CtJMBHs5.esm.min.js +0 -2
  522. package/dist/chunks/pbr.vertex-CtJMBHs5.esm.min.js.map +0 -1
  523. package/dist/chunks/pbr.vertex-CxEuPOXA.esm.js +0 -214
  524. package/dist/chunks/pbr.vertex-CxEuPOXA.esm.js.map +0 -1
  525. package/dist/chunks/pbr.vertex-DkGFY3yL.esm.min.js +0 -2
  526. package/dist/chunks/pbr.vertex-DkGFY3yL.esm.min.js.map +0 -1
  527. package/dist/chunks/pbr.vertex-OluCj4rQ.esm.js +0 -338
  528. package/dist/chunks/pbr.vertex-OluCj4rQ.esm.js.map +0 -1
  529. package/dist/chunks/postprocess.vertex-Cm9j6ldo.esm.min.js +0 -2
  530. package/dist/chunks/postprocess.vertex-Cm9j6ldo.esm.min.js.map +0 -1
  531. package/dist/chunks/postprocess.vertex-DAzFX1GF.esm.js +0 -20
  532. package/dist/chunks/postprocess.vertex-DAzFX1GF.esm.js.map +0 -1
  533. package/dist/chunks/rawTexture-BdnztUXL.esm.js +0 -191
  534. package/dist/chunks/rawTexture-BdnztUXL.esm.js.map +0 -1
  535. package/dist/chunks/rawTexture-YAJTylc3.esm.min.js +0 -2
  536. package/dist/chunks/rawTexture-YAJTylc3.esm.min.js.map +0 -1
  537. package/dist/chunks/rgbdDecode.fragment-BIW9mWHJ.esm.min.js +0 -2
  538. package/dist/chunks/rgbdDecode.fragment-BIW9mWHJ.esm.min.js.map +0 -1
  539. package/dist/chunks/rgbdDecode.fragment-BSYBZgmx.esm.js +0 -17
  540. package/dist/chunks/rgbdDecode.fragment-BSYBZgmx.esm.js.map +0 -1
  541. package/dist/chunks/rgbdDecode.fragment-CM4RUdq0.esm.min.js +0 -2
  542. package/dist/chunks/rgbdDecode.fragment-CM4RUdq0.esm.min.js.map +0 -1
  543. package/dist/chunks/rgbdDecode.fragment-a0vLXyTd.esm.js +0 -17
  544. package/dist/chunks/rgbdDecode.fragment-a0vLXyTd.esm.js.map +0 -1
  545. package/dist/chunks/rgbdEncode.fragment-BGFa9L4r.esm.js +0 -17
  546. package/dist/chunks/rgbdEncode.fragment-BGFa9L4r.esm.js.map +0 -1
  547. package/dist/chunks/rgbdEncode.fragment-CDZppTnS.esm.js +0 -17
  548. package/dist/chunks/rgbdEncode.fragment-CDZppTnS.esm.js.map +0 -1
  549. package/dist/chunks/rgbdEncode.fragment-Cs9jvfWk.esm.min.js +0 -2
  550. package/dist/chunks/rgbdEncode.fragment-Cs9jvfWk.esm.min.js.map +0 -1
  551. package/dist/chunks/rgbdEncode.fragment-M7N8vQ29.esm.min.js +0 -2
  552. package/dist/chunks/rgbdEncode.fragment-M7N8vQ29.esm.min.js.map +0 -1
  553. package/dist/chunks/splatFileLoader-Bg4G8Ae2.esm.min.js +0 -2
  554. package/dist/chunks/splatFileLoader-Bg4G8Ae2.esm.min.js.map +0 -1
  555. package/dist/chunks/splatFileLoader-CCCmIOu_.esm.js +0 -4312
  556. package/dist/chunks/splatFileLoader-CCCmIOu_.esm.js.map +0 -1
  557. package/dist/chunks/standardMaterial-DnghlXVE.esm.min.js +0 -2
  558. package/dist/chunks/standardMaterial-DnghlXVE.esm.min.js.map +0 -1
  559. package/dist/chunks/standardMaterial-DsjgYxIo.esm.js +0 -1805
  560. package/dist/chunks/standardMaterial-DsjgYxIo.esm.js.map +0 -1
  561. package/dist/chunks/stlFileLoader-B9qcDBe1.esm.min.js +0 -2
  562. package/dist/chunks/stlFileLoader-B9qcDBe1.esm.min.js.map +0 -1
  563. package/dist/chunks/stlFileLoader-C-YVvwrI.esm.js +0 -238
  564. package/dist/chunks/stlFileLoader-C-YVvwrI.esm.js.map +0 -1
  565. package/dist/chunks/tgaTextureLoader-CDVceO8i.esm.min.js +0 -2
  566. package/dist/chunks/tgaTextureLoader-CDVceO8i.esm.min.js.map +0 -1
  567. package/dist/chunks/tgaTextureLoader-CIl0jvmm.esm.js +0 -349
  568. package/dist/chunks/tgaTextureLoader-CIl0jvmm.esm.js.map +0 -1
  569. package/dist/chunks/thinEngine-CJHphAue.esm.js +0 -3842
  570. package/dist/chunks/thinEngine-CJHphAue.esm.js.map +0 -1
  571. package/dist/chunks/thinEngine-DRwVgQob.esm.min.js +0 -2
  572. package/dist/chunks/thinEngine-DRwVgQob.esm.min.js.map +0 -1
  573. package/dist/chunks/thinInstanceMesh-C46IYDPb.esm.js +0 -314
  574. package/dist/chunks/thinInstanceMesh-C46IYDPb.esm.js.map +0 -1
  575. package/dist/chunks/thinInstanceMesh-DEwtxS2k.esm.min.js +0 -2
  576. package/dist/chunks/thinInstanceMesh-DEwtxS2k.esm.min.js.map +0 -1
  577. package/dist/chunks/vertexColorMixing-B-uQHNRm.esm.js +0 -412
  578. package/dist/chunks/vertexColorMixing-B-uQHNRm.esm.js.map +0 -1
  579. package/dist/chunks/vertexColorMixing-BOFnmWz0.esm.js +0 -522
  580. package/dist/chunks/vertexColorMixing-BOFnmWz0.esm.js.map +0 -1
  581. package/dist/chunks/vertexColorMixing-BY6WcZDw.esm.min.js +0 -2
  582. package/dist/chunks/vertexColorMixing-BY6WcZDw.esm.min.js.map +0 -1
  583. package/dist/chunks/vertexColorMixing-CQAc7_ro.esm.min.js +0 -2
  584. package/dist/chunks/vertexColorMixing-CQAc7_ro.esm.min.js.map +0 -1
  585. package/dist/chunks/webgpuEngine-CyWPMPDu.esm.js +0 -11533
  586. package/dist/chunks/webgpuEngine-CyWPMPDu.esm.js.map +0 -1
  587. package/dist/chunks/webgpuEngine-xvli57PA.esm.min.js +0 -2
  588. package/dist/chunks/webgpuEngine-xvli57PA.esm.min.js.map +0 -1
  589. package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
  590. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
  591. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
  592. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
  593. package/docs/ViewerDefault.jpg +0 -0
  594. package/docs/ViewerParts.jpg +0 -0
  595. package/docs/ViewerSlots.jpg +0 -0
  596. package/docs/ViewerStyled.jpg +0 -0
  597. package/lib/index.d.ts +0 -568
  598. package/lib/index.js +0 -2067
  599. package/lib/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewerModel.js","sourceRoot":"","sources":["../../../../tools/viewer/src/model/viewerModel.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-internal-modules */\r\nimport type { IDisposable } from \"core/scene\";\r\nimport type { ISceneLoaderPlugin, ISceneLoaderPluginAsync, ISceneLoaderProgressEvent } from \"core/Loading/sceneLoader\";\r\nimport type { AbstractMesh } from \"core/Meshes/abstractMesh\";\r\nimport type { IParticleSystem } from \"core/Particles/IParticleSystem\";\r\nimport type { Skeleton } from \"core/Bones/skeleton\";\r\nimport { Observable } from \"core/Misc/observable\";\r\nimport \"core/Misc/observable.extensions\";\r\nimport { AnimationGroup } from \"core/Animations/animationGroup\";\r\nimport type { Animatable } from \"core/Animations/index\";\r\nimport {\r\n Animation,\r\n CircleEase,\r\n BackEase,\r\n BounceEase,\r\n CubicEase,\r\n ElasticEase,\r\n ExponentialEase,\r\n PowerEase,\r\n QuadraticEase,\r\n QuarticEase,\r\n QuinticEase,\r\n SineEase,\r\n} from \"core/Animations/index\";\r\nimport type { Nullable } from \"core/types\";\r\nimport { Quaternion, Vector3 } from \"core/Maths/math.vector\";\r\nimport { Tags } from \"core/Misc/tags\";\r\nimport type { Material } from \"core/Materials/material\";\r\nimport { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\r\nimport { MultiMaterial } from \"core/Materials/multiMaterial\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport type { GLTFFileLoader } from \"loaders/glTF/index\";\r\nimport type { IAsset } from \"babylonjs-gltf2interface\";\r\nimport type { IModelConfiguration } from \"../configuration/interfaces/modelConfiguration\";\r\nimport type { IModelAnimationConfiguration } from \"../configuration/interfaces/modelAnimationConfiguration\";\r\nimport type { IModelAnimation, ModelAnimationConfiguration } from \"./modelAnimation\";\r\nimport { GroupModelAnimation, AnimationPlayMode, EasingFunction, AnimationState } from \"./modelAnimation\";\r\nimport { deepmerge, extendClassWithConfig } from \"../helper/index\";\r\nimport type { ObservablesManager } from \"../managers/observablesManager\";\r\nimport type { ConfigurationContainer } from \"../configuration/configurationContainer\";\r\nimport { TransformNode } from \"core/Meshes/transformNode\";\r\nimport { Mesh } from \"core/Meshes/mesh\";\r\n\r\n/**\r\n * The current state of the model\r\n */\r\nexport enum ModelState {\r\n INIT,\r\n LOADING,\r\n LOADED,\r\n ENTRY,\r\n ENTRYDONE,\r\n COMPLETE,\r\n CANCELED,\r\n ERROR,\r\n}\r\n\r\n/**\r\n * The viewer model is a container for all assets representing a sngle loaded model.\r\n */\r\nexport class ViewerModel implements IDisposable {\r\n /**\r\n * The loader used to load this model.\r\n */\r\n public loader: ISceneLoaderPlugin | ISceneLoaderPluginAsync;\r\n\r\n private _animations: Array<IModelAnimation>;\r\n\r\n /**\r\n * the list of meshes that are a part of this model\r\n */\r\n private _meshes: Array<AbstractMesh> = [];\r\n /**\r\n * This model's root mesh (the parent of all other meshes).\r\n * This mesh does not(!) exist in the meshes array.\r\n */\r\n public rootMesh: AbstractMesh;\r\n\r\n private _pivotMesh: TransformNode;\r\n /**\r\n * ParticleSystems connected to this model\r\n */\r\n public particleSystems: Array<IParticleSystem> = [];\r\n /**\r\n * Skeletons defined in this model\r\n */\r\n public skeletons: Array<Skeleton> = [];\r\n /**\r\n * The current model animation.\r\n * On init, this will be undefined.\r\n */\r\n public currentAnimation: IModelAnimation;\r\n\r\n /**\r\n * Observers registered here will be executed when the model is done loading\r\n */\r\n public onLoadedObservable: Observable<ViewerModel>;\r\n /**\r\n * Observers registered here will be executed when the loader notified of a progress event\r\n */\r\n public onLoadProgressObservable: Observable<ISceneLoaderProgressEvent>;\r\n /**\r\n * Observers registered here will be executed when the loader notified of an error.\r\n */\r\n public onLoadErrorObservable: Observable<{ message: string; exception: any }>;\r\n\r\n /**\r\n * Will be executed after the model finished loading and complete, including entry animation and lod\r\n */\r\n public onCompleteObservable: Observable<ViewerModel>;\r\n /**\r\n * Observers registered here will be executed every time the model is being configured.\r\n * This can be used to extend the model's configuration without extending the class itself\r\n */\r\n public onAfterConfigure: Observable<ViewerModel>;\r\n\r\n /**\r\n * The current model state (loaded, error, etc)\r\n */\r\n public state: ModelState;\r\n /**\r\n * A loadID provided by the modelLoader, unique to ths (Abstract)Viewer instance.\r\n */\r\n public loadId: number;\r\n\r\n public loadInfo: IAsset;\r\n private _modelConfiguration: IModelConfiguration;\r\n\r\n private _loaderDone: boolean = false;\r\n\r\n private _entryAnimation: ModelAnimationConfiguration;\r\n private _scaleTransition: Animation;\r\n private _animatables: Array<Animatable> = [];\r\n private _frameRate: number = 60;\r\n\r\n private _shadowsRenderedAfterLoad: boolean = false;\r\n\r\n constructor(\r\n private _observablesManager: ObservablesManager,\r\n modelConfiguration: IModelConfiguration,\r\n private _configurationContainer?: ConfigurationContainer\r\n ) {\r\n this.onLoadedObservable = new Observable();\r\n this.onLoadErrorObservable = new Observable();\r\n this.onLoadProgressObservable = new Observable();\r\n this.onCompleteObservable = new Observable();\r\n this.onAfterConfigure = new Observable();\r\n\r\n this.state = ModelState.INIT;\r\n\r\n const scene = this._configurationContainer && this._configurationContainer.scene;\r\n\r\n this.rootMesh = new Mesh(\"modelRootMesh\", scene);\r\n this._pivotMesh = new TransformNode(\"pivotMesh\", scene);\r\n this._pivotMesh.parent = this.rootMesh;\r\n // rotate 180, gltf fun\r\n this._pivotMesh.rotation.y += Math.PI;\r\n\r\n this._scaleTransition = new Animation(\"scaleAnimation\", \"scaling\", this._frameRate, Animation.ANIMATIONTYPE_VECTOR3, Animation.ANIMATIONLOOPMODE_CONSTANT);\r\n\r\n this._animations = [];\r\n //create a copy of the configuration to make sure it doesn't change even after it is changed in the viewer\r\n this._modelConfiguration = deepmerge((this._configurationContainer && this._configurationContainer.configuration.model) || {}, modelConfiguration);\r\n\r\n if (this._observablesManager) {\r\n this._observablesManager.onModelAddedObservable.notifyObservers(this);\r\n }\r\n\r\n if (this._modelConfiguration.entryAnimation) {\r\n this.rootMesh.setEnabled(false);\r\n }\r\n\r\n this.onLoadedObservable.add(() => {\r\n this.updateConfiguration(this._modelConfiguration);\r\n if (this._observablesManager) {\r\n this._observablesManager.onModelLoadedObservable.notifyObservers(this);\r\n }\r\n this._initAnimations();\r\n });\r\n\r\n this.onCompleteObservable.add(() => {\r\n this.state = ModelState.COMPLETE;\r\n });\r\n }\r\n\r\n public get shadowsRenderedAfterLoad() {\r\n return this._shadowsRenderedAfterLoad;\r\n }\r\n\r\n public set shadowsRenderedAfterLoad(rendered: boolean) {\r\n if (!rendered) {\r\n throw new Error(\"can only be enabled\");\r\n } else {\r\n this._shadowsRenderedAfterLoad = rendered;\r\n }\r\n }\r\n\r\n public getViewerId() {\r\n return this._configurationContainer && this._configurationContainer.viewerId;\r\n }\r\n\r\n /**\r\n * Is this model enabled?\r\n */\r\n public get enabled() {\r\n return this.rootMesh.isEnabled();\r\n }\r\n\r\n /**\r\n * Set whether this model is enabled or not.\r\n */\r\n public set enabled(enable: boolean) {\r\n this.rootMesh.setEnabled(enable);\r\n }\r\n\r\n public set loaderDone(done: boolean) {\r\n this._loaderDone = done;\r\n this._checkCompleteState();\r\n }\r\n\r\n private _checkCompleteState() {\r\n if (this._loaderDone && this.state === ModelState.ENTRYDONE) {\r\n this._modelComplete();\r\n }\r\n }\r\n\r\n /**\r\n * Add a mesh to this model.\r\n * Any mesh that has no parent will be provided with the root mesh as its new parent.\r\n *\r\n * @param mesh the new mesh to add\r\n * @param triggerLoaded should this mesh trigger the onLoaded observable. Used when adding meshes manually.\r\n * @returns a promise that will resolve when the model is done loading\r\n */\r\n public addMesh(mesh: AbstractMesh, triggerLoaded?: boolean) {\r\n if (!mesh.parent) {\r\n mesh.parent = this._pivotMesh;\r\n }\r\n\r\n if (mesh.getClassName() !== \"InstancedMesh\") {\r\n mesh.receiveShadows = !!this.configuration.receiveShadows;\r\n }\r\n\r\n this._meshes.push(mesh);\r\n if (triggerLoaded) {\r\n return this.onLoadedObservable.notifyObserversWithPromise(this);\r\n }\r\n return Promise.resolve(this);\r\n }\r\n\r\n /**\r\n * get the list of meshes (excluding the root mesh)\r\n */\r\n public get meshes() {\r\n return this._meshes;\r\n }\r\n\r\n /**\r\n * Get the model's configuration\r\n */\r\n public get configuration(): IModelConfiguration {\r\n return this._modelConfiguration;\r\n }\r\n\r\n /**\r\n * (Re-)set the model's entire configuration\r\n * @param newConfiguration the new configuration to replace the new one\r\n */\r\n public set configuration(newConfiguration: IModelConfiguration) {\r\n this._modelConfiguration = newConfiguration;\r\n this._configureModel();\r\n }\r\n\r\n /**\r\n * Update the current configuration with new values.\r\n * Configuration will not be overwritten, but merged with the new configuration.\r\n * Priority is to the new configuration\r\n * @param newConfiguration the configuration to be merged into the current configuration;\r\n */\r\n public updateConfiguration(newConfiguration: Partial<IModelConfiguration>) {\r\n this._modelConfiguration = deepmerge(this._modelConfiguration, newConfiguration);\r\n this._configureModel();\r\n }\r\n\r\n private _initAnimations() {\r\n // check if this is not a gltf loader and init the animations\r\n if (this.skeletons.length) {\r\n this.skeletons.forEach((skeleton, idx) => {\r\n const ag = new AnimationGroup(\"animation-\" + idx, this._configurationContainer && this._configurationContainer.scene);\r\n let add = false;\r\n skeleton.getAnimatables().forEach((a) => {\r\n if (a.animations && a.animations[0]) {\r\n ag.addTargetedAnimation(a.animations[0], a);\r\n add = true;\r\n }\r\n });\r\n if (add) {\r\n this.addAnimationGroup(ag);\r\n }\r\n });\r\n }\r\n\r\n let completeCallback = () => {};\r\n\r\n if (this._modelConfiguration.animation) {\r\n if (this._modelConfiguration.animation.playOnce) {\r\n this._animations.forEach((a) => {\r\n a.playMode = AnimationPlayMode.ONCE;\r\n });\r\n }\r\n if (this._modelConfiguration.animation.autoStart && this._animations.length) {\r\n const animationName = this._modelConfiguration.animation.autoStart === true ? this._animations[0].name : this._modelConfiguration.animation.autoStart;\r\n\r\n completeCallback = () => {\r\n this.playAnimation(animationName);\r\n };\r\n }\r\n }\r\n\r\n this._enterScene(completeCallback);\r\n }\r\n\r\n /**\r\n * Animates the model from the current position to the default position\r\n * @param completeCallback A function to call when the animation has completed\r\n */\r\n private _enterScene(completeCallback?: () => void): void {\r\n const scene = this.rootMesh.getScene();\r\n const previousValue = scene.animationPropertiesOverride!.enableBlending;\r\n const callback = () => {\r\n this.state = ModelState.ENTRYDONE;\r\n scene.animationPropertiesOverride!.enableBlending = previousValue;\r\n this._checkCompleteState();\r\n if (completeCallback) {\r\n completeCallback();\r\n }\r\n };\r\n if (!this._entryAnimation) {\r\n callback();\r\n return;\r\n }\r\n this.rootMesh.setEnabled(true);\r\n // disable blending for the sake of the entry animation;\r\n scene.animationPropertiesOverride!.enableBlending = false;\r\n this._applyAnimation(this._entryAnimation, true, callback);\r\n }\r\n\r\n // /**\r\n // * Animates the model from the current position to the exit-screen position\r\n // * @param completeCallback A function to call when the animation has completed\r\n // */\r\n // private _exitScene(completeCallback: () => void): void {\r\n // if (!this._exitAnimation) {\r\n // completeCallback();\r\n // return;\r\n // }\r\n\r\n // this._applyAnimation(this._exitAnimation, false, completeCallback);\r\n // }\r\n\r\n private _modelComplete() {\r\n //reapply material defines to be sure:\r\n const meshes = this._pivotMesh.getChildMeshes(false);\r\n meshes\r\n .filter((m) => m.material)\r\n .forEach((mesh) => {\r\n this._applyModelMaterialConfiguration(mesh.material!);\r\n });\r\n this.state = ModelState.COMPLETE;\r\n this.onCompleteObservable.notifyObservers(this);\r\n }\r\n\r\n /**\r\n * Add a new animation group to this model.\r\n * @param animationGroup the new animation group to be added\r\n */\r\n public addAnimationGroup(animationGroup: AnimationGroup) {\r\n this._animations.push(new GroupModelAnimation(animationGroup));\r\n }\r\n\r\n /**\r\n * Get the ModelAnimation array\r\n * @returns the array of ModelAnimations\r\n */\r\n public getAnimations(): Array<IModelAnimation> {\r\n return this._animations;\r\n }\r\n\r\n /**\r\n * Get the animations' names. Using the names you can play a specific animation.\r\n * @returns the array of ModelAnimations\r\n */\r\n public getAnimationNames(): Array<string> {\r\n return this._animations.map((a) => a.name);\r\n }\r\n\r\n /**\r\n * Get an animation by the provided name. Used mainly when playing n animation.\r\n * @param name the name of the animation to find\r\n * @returns the ModelAnimation object\r\n */\r\n protected _getAnimationByName(name: string): Nullable<IModelAnimation> {\r\n // can't use .find, noe available on IE\r\n const filtered = this._animations.filter((a) => a.name === name.trim());\r\n if (filtered.length >= 1) {\r\n return filtered[0];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Choose an initialized animation using its name and start playing it\r\n * @param name the name of the animation to play\r\n * @returns The model aniamtion to be played.\r\n */\r\n public playAnimation(name: string): IModelAnimation {\r\n const animation = this.setCurrentAnimationByName(name);\r\n if (animation) {\r\n animation.start();\r\n }\r\n return animation;\r\n }\r\n\r\n public setCurrentAnimationByName(name: string) {\r\n const animation = this._getAnimationByName(name.trim());\r\n if (animation) {\r\n if (this.currentAnimation && this.currentAnimation.state !== AnimationState.STOPPED) {\r\n this.currentAnimation.stop();\r\n }\r\n this.currentAnimation = animation;\r\n return animation;\r\n } else {\r\n throw new Error(\"animation not found - \" + name);\r\n }\r\n }\r\n\r\n private _configureModel() {\r\n // this can be changed to the meshes that have rootMesh a parent without breaking anything.\r\n const meshesWithNoParent: Array<TransformNode> = [this.rootMesh]; //this._meshes.filter(m => m.parent === this.rootMesh);\r\n const updateMeshesWithNoParent = (variable: string, value: any, param?: string) => {\r\n meshesWithNoParent.forEach((mesh) => {\r\n if (param) {\r\n mesh[variable as keyof TransformNode][param] = value;\r\n } else {\r\n (mesh as any)[variable] = value;\r\n }\r\n });\r\n };\r\n const updateXYZ = (variable: string, configValues: { x: number; y: number; z: number; w?: number }) => {\r\n if (configValues.x !== undefined) {\r\n updateMeshesWithNoParent(variable, configValues.x, \"x\");\r\n }\r\n if (configValues.y !== undefined) {\r\n updateMeshesWithNoParent(variable, configValues.y, \"y\");\r\n }\r\n if (configValues.z !== undefined) {\r\n updateMeshesWithNoParent(variable, configValues.z, \"z\");\r\n }\r\n if (configValues.w !== undefined) {\r\n updateMeshesWithNoParent(variable, configValues.w, \"w\");\r\n }\r\n };\r\n\r\n if (this._modelConfiguration.normalize) {\r\n let center = false;\r\n let unitSize = false;\r\n let parentIndex;\r\n if (this._modelConfiguration.normalize === true) {\r\n center = true;\r\n unitSize = true;\r\n } else {\r\n center = !!this._modelConfiguration.normalize.center;\r\n unitSize = !!this._modelConfiguration.normalize.unitSize;\r\n parentIndex = this._modelConfiguration.normalize.parentIndex;\r\n }\r\n\r\n let meshesToNormalize: Array<TransformNode> = [];\r\n if (parentIndex !== undefined) {\r\n meshesToNormalize.push(this._meshes[parentIndex]);\r\n } else {\r\n meshesToNormalize = this._pivotMesh.getChildMeshes(true).length === 1 ? [this._pivotMesh] : meshesWithNoParent;\r\n }\r\n\r\n if (unitSize) {\r\n meshesToNormalize.forEach((mesh) => {\r\n mesh.normalizeToUnitCube(true);\r\n mesh.computeWorldMatrix(true);\r\n });\r\n }\r\n if (center) {\r\n meshesToNormalize.forEach((mesh) => {\r\n const boundingInfo = mesh.getHierarchyBoundingVectors(true);\r\n const sizeVec = boundingInfo.max.subtract(boundingInfo.min);\r\n const halfSizeVec = sizeVec.scale(0.5);\r\n const center = boundingInfo.min.add(halfSizeVec);\r\n mesh.position = center.scale(-1);\r\n\r\n mesh.position.y += halfSizeVec.y;\r\n\r\n // Recompute Info.\r\n mesh.computeWorldMatrix(true);\r\n });\r\n }\r\n } else {\r\n // if centered, should be done here\r\n }\r\n\r\n // position?\r\n if (this._modelConfiguration.position) {\r\n updateXYZ(\"position\", this._modelConfiguration.position);\r\n }\r\n if (this._modelConfiguration.rotation) {\r\n //quaternion?\r\n if (this._modelConfiguration.rotation.w) {\r\n meshesWithNoParent.forEach((mesh) => {\r\n if (!mesh.rotationQuaternion) {\r\n mesh.rotationQuaternion = new Quaternion();\r\n }\r\n });\r\n updateXYZ(\"rotationQuaternion\", this._modelConfiguration.rotation);\r\n } else {\r\n updateXYZ(\"rotation\", this._modelConfiguration.rotation);\r\n }\r\n }\r\n\r\n if (this._modelConfiguration.rotationOffsetAxis) {\r\n const rotationAxis = new Vector3(\r\n this._modelConfiguration.rotationOffsetAxis.x,\r\n this._modelConfiguration.rotationOffsetAxis.y,\r\n this._modelConfiguration.rotationOffsetAxis.z\r\n );\r\n\r\n meshesWithNoParent.forEach((m) => {\r\n if (this._modelConfiguration.rotationOffsetAngle) {\r\n m.rotate(rotationAxis, this._modelConfiguration.rotationOffsetAngle);\r\n }\r\n });\r\n }\r\n\r\n if (this._modelConfiguration.scaling) {\r\n updateXYZ(\"scaling\", this._modelConfiguration.scaling);\r\n }\r\n\r\n if (this._modelConfiguration.castShadow) {\r\n this._meshes.forEach((mesh) => {\r\n Tags.AddTagsTo(mesh, \"castShadow\");\r\n });\r\n }\r\n\r\n const meshes = this._pivotMesh.getChildMeshes(false);\r\n meshes\r\n .filter((m) => m.material)\r\n .forEach((mesh) => {\r\n this._applyModelMaterialConfiguration(mesh.material!);\r\n });\r\n\r\n if (this._modelConfiguration.entryAnimation) {\r\n this._entryAnimation = this._modelAnimationConfigurationToObject(this._modelConfiguration.entryAnimation);\r\n }\r\n\r\n // if (this._modelConfiguration.exitAnimation) {\r\n // this._exitAnimation = this._modelAnimationConfigurationToObject(this._modelConfiguration.exitAnimation);\r\n // }\r\n\r\n this.onAfterConfigure.notifyObservers(this);\r\n }\r\n\r\n private _modelAnimationConfigurationToObject(animConfig: IModelAnimationConfiguration): ModelAnimationConfiguration {\r\n const anim: ModelAnimationConfiguration = {\r\n time: 0.5,\r\n };\r\n if (animConfig.scaling) {\r\n anim.scaling = Vector3.Zero();\r\n }\r\n if (animConfig.easingFunction !== undefined) {\r\n anim.easingFunction = animConfig.easingFunction;\r\n }\r\n if (animConfig.easingMode !== undefined) {\r\n anim.easingMode = animConfig.easingMode;\r\n }\r\n extendClassWithConfig(anim, animConfig);\r\n return anim;\r\n }\r\n\r\n /**\r\n * Apply a material configuration to a material\r\n * @param material Material to apply configuration to\r\n * @internal\r\n */\r\n public _applyModelMaterialConfiguration(material: Material) {\r\n if (!this._modelConfiguration.material) {\r\n return;\r\n }\r\n\r\n extendClassWithConfig(material, this._modelConfiguration.material);\r\n\r\n if (material instanceof PBRMaterial) {\r\n if (this._modelConfiguration.material.directIntensity !== undefined) {\r\n material.directIntensity = this._modelConfiguration.material.directIntensity;\r\n }\r\n\r\n if (this._modelConfiguration.material.emissiveIntensity !== undefined) {\r\n material.emissiveIntensity = this._modelConfiguration.material.emissiveIntensity;\r\n }\r\n\r\n if (this._modelConfiguration.material.environmentIntensity !== undefined) {\r\n material.environmentIntensity = this._modelConfiguration.material.environmentIntensity;\r\n }\r\n\r\n if (this._modelConfiguration.material.directEnabled !== undefined) {\r\n material.disableLighting = !this._modelConfiguration.material.directEnabled;\r\n }\r\n if (this._configurationContainer && this._configurationContainer.reflectionColor) {\r\n material.reflectionColor = this._configurationContainer.reflectionColor.clone();\r\n }\r\n } else if (material instanceof MultiMaterial) {\r\n for (let i = 0; i < material.subMaterials.length; i++) {\r\n const subMaterial = material.subMaterials[i];\r\n if (subMaterial) {\r\n this._applyModelMaterialConfiguration(subMaterial);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Start entry/exit animation given an animation configuration\r\n * @param animationConfiguration Entry/Exit animation configuration\r\n * @param isEntry Pass true if the animation is an entry animation\r\n * @param completeCallback Callback to execute when the animation completes\r\n */\r\n private _applyAnimation(animationConfiguration: ModelAnimationConfiguration, isEntry: boolean, completeCallback?: () => void) {\r\n const animations: Animation[] = [];\r\n\r\n //scale\r\n if (animationConfiguration.scaling) {\r\n const scaleStart: Vector3 = isEntry ? animationConfiguration.scaling : new Vector3(1, 1, 1);\r\n const scaleEnd: Vector3 = isEntry ? new Vector3(1, 1, 1) : animationConfiguration.scaling;\r\n\r\n if (!scaleStart.equals(scaleEnd)) {\r\n this.rootMesh.scaling = scaleStart;\r\n this._setLinearKeys(this._scaleTransition, this.rootMesh.scaling, scaleEnd, animationConfiguration.time);\r\n animations.push(this._scaleTransition);\r\n }\r\n }\r\n\r\n //Start the animation(s)\r\n this.transitionTo(animations, animationConfiguration.time, this._createEasingFunction(animationConfiguration.easingFunction), animationConfiguration.easingMode, () => {\r\n if (completeCallback) {\r\n completeCallback();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Begin @animations with the specified @easingFunction\r\n * @param animations The BABYLON Animations to begin\r\n * @param duration of transition, in seconds\r\n * @param easingFunction An easing function to apply\r\n * @param easingMode A easing mode to apply to the easingFunction\r\n * @param onAnimationEnd Call back trigger at the end of the animation.\r\n */\r\n public transitionTo(\r\n animations: Animation[],\r\n duration: number,\r\n easingFunction: any,\r\n easingMode: number = 2, // BABYLON.EasingFunction.EASINGMODE_EASEINOUT,\r\n onAnimationEnd: () => void\r\n ): void {\r\n if (easingFunction) {\r\n for (const animation of animations) {\r\n easingFunction.setEasingMode(easingMode);\r\n animation.setEasingFunction(easingFunction);\r\n }\r\n }\r\n\r\n //Stop any current animations before starting the new one - merging not yet supported.\r\n this.stopAllAnimations();\r\n\r\n this.rootMesh.animations = animations;\r\n\r\n if (this.rootMesh.getScene().beginAnimation !== undefined) {\r\n const animatable: Animatable = this.rootMesh.getScene().beginAnimation(this.rootMesh, 0, this._frameRate * duration, false, 1, () => {\r\n if (onAnimationEnd) {\r\n onAnimationEnd();\r\n }\r\n });\r\n this._animatables.push(animatable);\r\n }\r\n }\r\n\r\n /**\r\n * Sets key values on an Animation from first to last frame.\r\n * @param animation The Babylon animation object to set keys on\r\n * @param startValue The value of the first key\r\n * @param endValue The value of the last key\r\n * @param duration The duration of the animation, used to determine the end frame\r\n */\r\n private _setLinearKeys(animation: Animation, startValue: any, endValue: any, duration: number) {\r\n animation.setKeys([\r\n {\r\n frame: 0,\r\n value: startValue,\r\n },\r\n {\r\n frame: this._frameRate * duration,\r\n value: endValue,\r\n },\r\n ]);\r\n }\r\n\r\n /**\r\n * Creates and returns a Babylon easing funtion object based on a string representing the Easing function\r\n * @param easingFunctionID The enum of the easing funtion to create\r\n * @returns The newly created Babylon easing function object\r\n */\r\n private _createEasingFunction(easingFunctionID?: number): any {\r\n let easingFunction;\r\n\r\n switch (easingFunctionID) {\r\n case EasingFunction.CircleEase:\r\n easingFunction = new CircleEase();\r\n break;\r\n case EasingFunction.BackEase:\r\n easingFunction = new BackEase(0.3);\r\n break;\r\n case EasingFunction.BounceEase:\r\n easingFunction = new BounceEase();\r\n break;\r\n case EasingFunction.CubicEase:\r\n easingFunction = new CubicEase();\r\n break;\r\n case EasingFunction.ElasticEase:\r\n easingFunction = new ElasticEase();\r\n break;\r\n case EasingFunction.ExponentialEase:\r\n easingFunction = new ExponentialEase();\r\n break;\r\n case EasingFunction.PowerEase:\r\n easingFunction = new PowerEase();\r\n break;\r\n case EasingFunction.QuadraticEase:\r\n easingFunction = new QuadraticEase();\r\n break;\r\n case EasingFunction.QuarticEase:\r\n easingFunction = new QuarticEase();\r\n break;\r\n case EasingFunction.QuinticEase:\r\n easingFunction = new QuinticEase();\r\n break;\r\n case EasingFunction.SineEase:\r\n easingFunction = new SineEase();\r\n break;\r\n default:\r\n Tools.Log(\"No ease function found\");\r\n break;\r\n }\r\n\r\n return easingFunction;\r\n }\r\n\r\n /**\r\n * Stops and removes all animations that have been applied to the model\r\n */\r\n public stopAllAnimations(): void {\r\n if (this.rootMesh) {\r\n this.rootMesh.animations = [];\r\n }\r\n if (this.currentAnimation) {\r\n this.currentAnimation.stop();\r\n }\r\n while (this._animatables.length) {\r\n this._animatables[0].onAnimationEnd = null;\r\n this._animatables[0].stop();\r\n this._animatables.shift();\r\n }\r\n }\r\n\r\n /**\r\n * Will remove this model from the viewer (but NOT dispose it).\r\n */\r\n public remove() {\r\n this.stopAllAnimations();\r\n\r\n if (this._observablesManager) {\r\n this._observablesManager.onModelRemovedObservable.notifyObservers(this);\r\n }\r\n }\r\n\r\n /**\r\n * Dispose this model, including all of its associated assets.\r\n */\r\n public dispose() {\r\n this.remove();\r\n this.onAfterConfigure.clear();\r\n this.onLoadedObservable.clear();\r\n this.onLoadErrorObservable.clear();\r\n this.onLoadProgressObservable.clear();\r\n if (this.loader && this.loader.name === \"gltf\") {\r\n (<GLTFFileLoader>this.loader).dispose();\r\n }\r\n this.particleSystems.forEach((ps) => ps.dispose());\r\n this.particleSystems.length = 0;\r\n this.skeletons.forEach((s) => s.dispose());\r\n this.skeletons.length = 0;\r\n this._animations.forEach((ag) => ag.dispose());\r\n this._animations.length = 0;\r\n this.rootMesh.dispose(false, true);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,13 @@
1
+ import type { SceneManager } from "../../managers/sceneManager";
2
+ /**
3
+ * A custom upgrade-oriented function configuration for the scene optimizer.
4
+ * @param sceneManager
5
+ * @returns true if the scene is fully upgraded
6
+ */
7
+ export declare function extendedUpgrade(sceneManager: SceneManager): boolean;
8
+ /**
9
+ * A custom degrade-oriented function configuration for the scene optimizer.
10
+ * @param sceneManager
11
+ * @returns true if the scene is fully degraded
12
+ */
13
+ export declare function extendedDegrade(sceneManager: SceneManager): boolean;
@@ -0,0 +1,101 @@
1
+ import { Scalar } from "@babylonjs/core/Maths/math.scalar.js";
2
+ /**
3
+ * A custom upgrade-oriented function configuration for the scene optimizer.
4
+ * @param sceneManager
5
+ * @returns true if the scene is fully upgraded
6
+ */
7
+ export function extendedUpgrade(sceneManager) {
8
+ var defaultPipeline = sceneManager.defaultRenderingPipeline;
9
+ // if (!this.Scene.BackgroundHelper) {
10
+ // this.Scene.EngineScene.autoClear = false;
11
+ // this.Scene.BackgroundHelper = true;
12
+ // Would require a dedicated clear color;
13
+ // return false;
14
+ // }
15
+ if (sceneManager.scene.getEngine().getHardwareScalingLevel() > 1) {
16
+ var scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() - 0.25, 0, 1);
17
+ sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);
18
+ return false;
19
+ }
20
+ if (!sceneManager.scene.postProcessesEnabled) {
21
+ sceneManager.scene.postProcessesEnabled = true;
22
+ return false;
23
+ }
24
+ if (!sceneManager.groundEnabled) {
25
+ sceneManager.groundEnabled = true;
26
+ return false;
27
+ }
28
+ if (defaultPipeline && !sceneManager.fxaaEnabled) {
29
+ sceneManager.fxaaEnabled = true;
30
+ return false;
31
+ }
32
+ var hardwareScalingLevel = Math.max(1 / 2, 1 / (window.devicePixelRatio || 2));
33
+ if (sceneManager.scene.getEngine().getHardwareScalingLevel() > hardwareScalingLevel) {
34
+ var scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() - 0.25, 0, hardwareScalingLevel);
35
+ sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);
36
+ return false;
37
+ }
38
+ if (!sceneManager.processShadows) {
39
+ sceneManager.processShadows = true;
40
+ return false;
41
+ }
42
+ if (defaultPipeline && !sceneManager.bloomEnabled) {
43
+ sceneManager.bloomEnabled = true;
44
+ return false;
45
+ }
46
+ if (!sceneManager.groundMirrorEnabled) {
47
+ sceneManager.groundMirrorEnabled = true;
48
+ return false;
49
+ }
50
+ return true;
51
+ }
52
+ /**
53
+ * A custom degrade-oriented function configuration for the scene optimizer.
54
+ * @param sceneManager
55
+ * @returns true if the scene is fully degraded
56
+ */
57
+ export function extendedDegrade(sceneManager) {
58
+ var defaultPipeline = sceneManager.defaultRenderingPipeline;
59
+ if (sceneManager.groundMirrorEnabled) {
60
+ sceneManager.groundMirrorEnabled = false;
61
+ return false;
62
+ }
63
+ if (defaultPipeline && sceneManager.bloomEnabled) {
64
+ sceneManager.bloomEnabled = false;
65
+ return false;
66
+ }
67
+ if (sceneManager.processShadows) {
68
+ sceneManager.processShadows = false;
69
+ return false;
70
+ }
71
+ if (sceneManager.scene.getEngine().getHardwareScalingLevel() < 1) {
72
+ var scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() + 0.25, 0, 1);
73
+ sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);
74
+ return false;
75
+ }
76
+ if (defaultPipeline && sceneManager.fxaaEnabled) {
77
+ sceneManager.fxaaEnabled = false;
78
+ return false;
79
+ }
80
+ if (sceneManager.groundEnabled) {
81
+ sceneManager.groundEnabled = false;
82
+ return false;
83
+ }
84
+ if (sceneManager.scene.postProcessesEnabled) {
85
+ sceneManager.scene.postProcessesEnabled = false;
86
+ return false;
87
+ }
88
+ if (sceneManager.scene.getEngine().getHardwareScalingLevel() < 1.25) {
89
+ var scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() + 0.25, 0, 1.25);
90
+ sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);
91
+ return false;
92
+ }
93
+ // if (this.Scene.BackgroundHelper) {
94
+ // this.Scene.EngineScene.autoClear = true;
95
+ // this.Scene.BackgroundHelper = false;
96
+ // Would require a dedicated clear color;
97
+ // return false;
98
+ // }
99
+ return true;
100
+ }
101
+ //# sourceMappingURL=extended.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extended.js","sourceRoot":"","sources":["../../../../../tools/viewer/src/optimizer/custom/extended.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DefaultRenderingPipeline } from \"core/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline\";\r\nimport { Scalar } from \"core/Maths/math.scalar\";\r\nimport type { SceneManager } from \"../../managers/sceneManager\";\r\n\r\n/**\r\n * A custom upgrade-oriented function configuration for the scene optimizer.\r\n * @param sceneManager\r\n * @returns true if the scene is fully upgraded\r\n */\r\nexport function extendedUpgrade(sceneManager: SceneManager): boolean {\r\n const defaultPipeline = <DefaultRenderingPipeline>sceneManager.defaultRenderingPipeline;\r\n // if (!this.Scene.BackgroundHelper) {\r\n // \tthis.Scene.EngineScene.autoClear = false;\r\n // this.Scene.BackgroundHelper = true;\r\n // Would require a dedicated clear color;\r\n // return false;\r\n // }\r\n if (sceneManager.scene.getEngine().getHardwareScalingLevel() > 1) {\r\n const scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() - 0.25, 0, 1);\r\n sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);\r\n return false;\r\n }\r\n if (!sceneManager.scene.postProcessesEnabled) {\r\n sceneManager.scene.postProcessesEnabled = true;\r\n return false;\r\n }\r\n if (!sceneManager.groundEnabled) {\r\n sceneManager.groundEnabled = true;\r\n return false;\r\n }\r\n if (defaultPipeline && !sceneManager.fxaaEnabled) {\r\n sceneManager.fxaaEnabled = true;\r\n return false;\r\n }\r\n const hardwareScalingLevel = Math.max(1 / 2, 1 / (window.devicePixelRatio || 2));\r\n if (sceneManager.scene.getEngine().getHardwareScalingLevel() > hardwareScalingLevel) {\r\n const scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() - 0.25, 0, hardwareScalingLevel);\r\n sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);\r\n return false;\r\n }\r\n if (!sceneManager.processShadows) {\r\n sceneManager.processShadows = true;\r\n return false;\r\n }\r\n if (defaultPipeline && !sceneManager.bloomEnabled) {\r\n sceneManager.bloomEnabled = true;\r\n return false;\r\n }\r\n if (!sceneManager.groundMirrorEnabled) {\r\n sceneManager.groundMirrorEnabled = true;\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\n/**\r\n * A custom degrade-oriented function configuration for the scene optimizer.\r\n * @param sceneManager\r\n * @returns true if the scene is fully degraded\r\n */\r\nexport function extendedDegrade(sceneManager: SceneManager): boolean {\r\n const defaultPipeline = <DefaultRenderingPipeline>sceneManager.defaultRenderingPipeline;\r\n\r\n if (sceneManager.groundMirrorEnabled) {\r\n sceneManager.groundMirrorEnabled = false;\r\n return false;\r\n }\r\n if (defaultPipeline && sceneManager.bloomEnabled) {\r\n sceneManager.bloomEnabled = false;\r\n return false;\r\n }\r\n if (sceneManager.processShadows) {\r\n sceneManager.processShadows = false;\r\n return false;\r\n }\r\n if (sceneManager.scene.getEngine().getHardwareScalingLevel() < 1) {\r\n const scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() + 0.25, 0, 1);\r\n sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);\r\n return false;\r\n }\r\n if (defaultPipeline && sceneManager.fxaaEnabled) {\r\n sceneManager.fxaaEnabled = false;\r\n return false;\r\n }\r\n if (sceneManager.groundEnabled) {\r\n sceneManager.groundEnabled = false;\r\n return false;\r\n }\r\n if (sceneManager.scene.postProcessesEnabled) {\r\n sceneManager.scene.postProcessesEnabled = false;\r\n return false;\r\n }\r\n if (sceneManager.scene.getEngine().getHardwareScalingLevel() < 1.25) {\r\n const scaling = Scalar.Clamp(sceneManager.scene.getEngine().getHardwareScalingLevel() + 0.25, 0, 1.25);\r\n sceneManager.scene.getEngine().setHardwareScalingLevel(scaling);\r\n return false;\r\n }\r\n // if (this.Scene.BackgroundHelper) {\r\n // \tthis.Scene.EngineScene.autoClear = true;\r\n // this.Scene.BackgroundHelper = false;\r\n // Would require a dedicated clear color;\r\n // return false;\r\n // }\r\n return true;\r\n}\r\n"]}
@@ -0,0 +1,9 @@
1
+ import type { SceneManager } from "../../managers/sceneManager";
2
+ /**
3
+ *
4
+ * @param name the name of the custom optimizer configuration
5
+ * @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade
6
+ * @returns the optimizer function
7
+ */
8
+ export declare function getCustomOptimizerByName(name: string, upgrade?: boolean): (sceneManager: SceneManager) => boolean;
9
+ export declare function registerCustomOptimizer(name: string, optimizer: (sceneManager: SceneManager) => boolean): void;
@@ -0,0 +1,26 @@
1
+ import { extendedUpgrade, extendedDegrade } from "./extended.js";
2
+ var cache = {};
3
+ /**
4
+ *
5
+ * @param name the name of the custom optimizer configuration
6
+ * @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade
7
+ * @returns the optimizer function
8
+ */
9
+ export function getCustomOptimizerByName(name, upgrade) {
10
+ if (!cache[name]) {
11
+ switch (name) {
12
+ case "extended":
13
+ if (upgrade) {
14
+ return extendedUpgrade;
15
+ }
16
+ else {
17
+ return extendedDegrade;
18
+ }
19
+ }
20
+ }
21
+ return cache[name];
22
+ }
23
+ export function registerCustomOptimizer(name, optimizer) {
24
+ cache[name] = optimizer;
25
+ }
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../tools/viewer/src/optimizer/custom/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG9D,IAAM,KAAK,GAA+D,EAAE,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,OAAiB;IACpE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACf,QAAQ,IAAI,EAAE,CAAC;YACX,KAAK,UAAU;gBACX,IAAI,OAAO,EAAE,CAAC;oBACV,OAAO,eAAe,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACJ,OAAO,eAAe,CAAC;gBAC3B,CAAC;QACT,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,SAAkD;IACpG,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAC5B,CAAC","sourcesContent":["import { extendedUpgrade, extendedDegrade } from \"./extended\";\r\nimport type { SceneManager } from \"../../managers/sceneManager\";\r\n\r\nconst cache: { [key: string]: (sceneManager: SceneManager) => boolean } = {};\r\n\r\n/**\r\n *\r\n * @param name the name of the custom optimizer configuration\r\n * @param upgrade set to true if you want to upgrade optimizer and false if you want to degrade\r\n * @returns the optimizer function\r\n */\r\nexport function getCustomOptimizerByName(name: string, upgrade?: boolean) {\r\n if (!cache[name]) {\r\n switch (name) {\r\n case \"extended\":\r\n if (upgrade) {\r\n return extendedUpgrade;\r\n } else {\r\n return extendedDegrade;\r\n }\r\n }\r\n }\r\n\r\n return cache[name];\r\n}\r\n\r\nexport function registerCustomOptimizer(name: string, optimizer: (sceneManager: SceneManager) => boolean) {\r\n cache[name] = optimizer;\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,28 +1,34 @@
1
1
  {
2
2
  "name": "@babylonjs/viewer",
3
- "version": "7.37.1-alpha",
4
- "type": "module",
5
- "main": "lib/index.js",
6
- "module": "lib/index.js",
7
- "esnext": "lib/index.js",
8
- "types": "lib/index.d.ts",
3
+ "version": "7.37.1",
4
+ "main": "index.js",
5
+ "module": "index.js",
6
+ "types": "index.d.ts",
9
7
  "files": [
10
- "lib/**/*.js",
11
- "lib/**/*.d.ts",
12
- "lib/**/*.map",
13
- "dist/**/*.js",
14
- "dist/**/*.map",
15
- "assets/**",
8
+ "**/*.js",
9
+ "**/*.d.ts",
10
+ "**/*.map",
16
11
  "readme.md",
17
- "docs/**",
18
12
  "license.md"
19
13
  ],
14
+ "scripts": {
15
+ "build": "npm run clean && npm run compile",
16
+ "clean": "rimraf dist && rimraf *.tsbuildinfo -g && rimraf \"./**/*.!(md|json|build.json)\" -g",
17
+ "compile": "tsc -b tsconfig.build.json --verbose",
18
+ "postcompile": "build-tools -c add-js-to-es6"
19
+ },
20
20
  "dependencies": {
21
- "lit": "^3.2.0"
21
+ "@babylonjs/core": "^7.37.1",
22
+ "@babylonjs/loaders": "^7.37.1",
23
+ "babylonjs-gltf2interface": "^7.37.1",
24
+ "babylonjs-viewer-assets": "^7.37.1",
25
+ "deepmerge": "~4.2.2",
26
+ "handlebars": "~4.7.7",
27
+ "pepjs": "~0.5.3",
28
+ "tslib": "^2.4.0"
22
29
  },
23
- "peerDependencies": {
24
- "@babylonjs/core": "^7.23.1",
25
- "@babylonjs/loaders": "^7.23.1"
30
+ "devDependencies": {
31
+ "@dev/build-tools": "^1.0.0"
26
32
  },
27
33
  "keywords": [
28
34
  "3D",
@@ -32,6 +38,9 @@
32
38
  "babylon.js"
33
39
  ],
34
40
  "license": "Apache-2.0",
41
+ "esnext": "index.js",
42
+ "type": "module",
43
+ "sideEffects": true,
35
44
  "homepage": "https://www.babylonjs.com",
36
45
  "repository": {
37
46
  "type": "git",
@@ -40,4 +49,4 @@
40
49
  "bugs": {
41
50
  "url": "https://github.com/BabylonJS/Babylon.js/issues"
42
51
  }
43
- }
52
+ }
package/readme.md CHANGED
@@ -1,164 +1,40 @@
1
1
  # BabylonJS Viewer
2
2
 
3
- The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.
3
+ This project is a 3d model viewer using babylonjs.
4
+ Online docs: https://doc.babylonjs.com/features/featuresDeepDive/babylonViewer/viewerExamples
4
5
 
5
- ![Viewer Default Appearance](./docs/ViewerDefault.jpg)
6
-
7
- `Viewer` is a lower level JavaScript class that implements the bulk of the features, and can be used in any babylonjs context (in the browser using pure HTML, in the browser using React, or even in Babylon Native).
8
-
9
- `HTML3DElement` is a custom HTML element that wraps the `Viewer` class and provides a declarative way to use it specifically in HTML via the custom element `<babylon-viewer>`.
10
-
11
- ## Using with a Bundler
6
+ ## ES6/NPM usage
12
7
 
13
8
  Install the package using npm:
14
9
 
15
10
  ```bash
16
- npm install @babylonjs/viewer@preview --save
11
+ npm install @babylonjs/viewer --save
17
12
  ```
18
13
 
19
- If you want to use the lower level `Viewer` directly in JavaScript code, you can import it and use it like this:
14
+ Then in JS/Typescript the viewer to be imported via:
20
15
 
21
16
  ```bash
22
- import { Engine } from '@babylonjs/core';
23
- import { Viewer } from '@babylonjs/viewer';
24
-
25
- const engine = new Engine(canvas);
26
- const viewer = new Viewer(engine);
27
- viewer.loadModel("https://playground.babylonjs.com/scenes/BoomBox.glb");
28
- ```
29
-
30
- To use the higher level `HTML3DElement` you can import the `@babylonjs/viewer` module and then reference the `<babylon-viewer>` element in your HTML like this:
31
-
32
- ```html
33
- <html lang="en">
34
- <body>
35
- <!-- If you already import @babylonjs/viewer somewhere in your JavaScript, you don't need this script import. -->
36
- <script type="module">
37
- import '@babylonjs/viewer';
38
- </script>
39
- <babylon-viewer source="https://playground.babylonjs.com/scenes/BoomBox.glb"></babylon-viewer>
40
- </body>
41
- </html>
17
+ import * as BabylonViewer from '@babylonjs/viewer';
42
18
  ```
43
19
 
44
- ## Using Directly in a Browser
45
-
46
- If you want to use the viewer directly in a browser without any build tools, you can use the self-contained ESM bundle (which includes all dependencies) through a CDN such as [UNPKG](https://unpkg.com/) or [jsDelivr](https://www.jsdelivr.com/) like this:
20
+ Add a babylon element in a html file:
47
21
 
48
22
  ```html
49
- <html lang="en">
50
- <body>
51
- <script type="module" src="https://unpkg.com/@babylonjs/viewer@preview/dist/babylon-viewer.esm.min.js"></script>
52
- <babylon-viewer source="https://playground.babylonjs.com/scenes/BoomBox.glb"></babylon-viewer>
53
- </body>
54
- </html>
23
+ <babylon id="babylon-viewer" camera.behaviors.auto-rotate="0"></babylon>
55
24
  ```
56
25
 
57
- See the [codesandbox.io](https://codesandbox.io/p/sandbox/babylon-viewer-ws82xr) example for a live demo.
58
-
59
- ## Features
60
-
61
- The Babylon Viewer is under active development and new features are continuously being added. You can request a specific feature in the [Babylon Forum](https://forum.babylonjs.com/c/features/11).
62
-
63
- **⚠️ NOTE**: While the Babylon Viewer is production ready in terms of performance, reliability, etc., the `@preview` tag and `-alpha` suffix are used to indicate that the API is still subject to change.
26
+ And used to load models
64
27
 
65
- ### Formats, Capabilities, and Dynamic Imports
66
-
67
- The Babylon Viewer supports all the formats that Babylon.js supports, as well as many capabilities such as animation and audio. However, the Babylon Viewer (with support from various Babylon.js libraries) uses dynamic imports to defer loading formats and capabilities until a model is loaded of a specific type or that uses a specific capability. This reduces the download burden on the end user and reduces the time to get something on the screen.
68
-
69
- ### Advanced Usage and Customization
70
-
71
- While the Babylon Viewer is specifically designed to make viewing a single 3D model easy, it also exposes the underlying Babylon.js components so that you can customize it for your specific scenario and needs.
72
-
73
- The `HTML3DElement` exposes a `viewerDetails` property and a `viewerready` event that you can use to access the underlying `Viewer` object, the `Scene` object, and the loaded model (`AssetContainer`).
74
-
75
- ### WebGL and WebGPU
76
-
77
- `HTML3DElement` will choose an underlying engine by default, and how it chooses will change over time. You can use the `engine` attribute to specify a specific engine, such as `WebGL` or `WebGPU`.
78
-
79
- ### Lighting / Environment
80
-
81
- A Babylon.js environment file can be applied to the a `<babylon-viewer>` through the `environment` attribute. For example:
82
-
83
- ```html
84
- <babylon-viewer
85
- source="https://playground.babylonjs.com/scenes/BoomBox.glb"
86
- environment="https://unpkg.com/@babylonjs/viewer@preview/assets/photoStudio.env">
87
- </babylon-viewer>
28
+ ```javascript
29
+ BabylonViewer.viewerManager.getViewerPromiseById("babylon-viewer").then(function (viewer) {
30
+ // this will resolve only after the viewer with this specific ID is initialized
31
+ viewer.onEngineInitObservable.add(function (scene) {
32
+ viewer.loadModel({
33
+ title: "Helmet",
34
+ subtitle: "BabylonJS",
35
+ thumbnail: "https://www.babylonjs.com/img/favicon/apple-icon-144x144.png",
36
+ url: "https://www.babylonjs.com/Assets/DamagedHelmet/glTF/DamagedHelmet.gltf",
37
+ });
38
+ });
39
+ });
88
40
  ```
89
-
90
- The environment is automatically used as the skybox, and also used for image-based lighting (IBL) when a model is loaded that uses PBR materials (such as glTF), unless the model provides its own lights. When IBL is not used and the model does not provide its own lights, default lighting is applied using Babylon.js lights.
91
-
92
- ### Styling
93
-
94
- `HTML3DElement` includes default UI for various capabilities, such as animation. You can customize the UI in a number of ways:
95
-
96
- #### CSS Variables
97
-
98
- Various CSS variables can be set to customize the appearance of the viewer. These variables are applied to the `babylon-viewer` element and are inherited by all UI elements within the viewer.
99
-
100
- | Variable | Description |
101
- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
102
- | `--ui-foreground-color` | The default color for the foreground of all UI elements. |
103
- | `--ui-background-hue` | The default hue for the background of all UI elements. |
104
- | `--ui-background-saturation` | The default saturation for the background of all UI elements. |
105
- | `--ui-background-lightness` | The default lightness for the background of all UI elements. |
106
- | `--ui-background-opacity` | The default opacity for the background of all UI elements. |
107
- | `--ui-background-color` | The default color for the background of all UI elements (derived from the background hue, saturation, lightness, and opacity). |
108
- | `--ui-background-color-hover` | The default color for the background of all UI elements when hovered (derived from the background hue, saturation, lightness, and opacity). |
109
-
110
- As an example, if you wanted UI elements with a moderately saturated bluish background, you could apply the following CSS variables on the `babylon-viewer` element:
111
-
112
- ```css
113
- babylon-viewer {
114
- --ui-background-hue: 200;
115
- --ui-background-saturation: 70%;
116
- }
117
- ```
118
-
119
- ![Viewer styled with CSS Variables](./docs/ViewerStyled.jpg)
120
-
121
- #### Parts
122
-
123
- Various parts of the viewer can be styled using CSS part selectors. The following parts are available:
124
-
125
- | Part Name | Description |
126
- | ---------- | ---------------------------------------- |
127
- | `tool-bar` | The toolbar used for animation controls. |
128
-
129
- As an example, if you wanted to style the toolbar to move it to the top and remove the rounded corners and margin, you could apply the following CSS on the `babylon-viewer` element:
130
-
131
- ```css
132
- babylon-viewer::part(tool-bar) {
133
- border-radius: 0;
134
- left: 0;
135
- right: 0;
136
- bottom: unset;
137
- top: 0;
138
- width: unset;
139
- max-width: unset;
140
- transform: unset;
141
- }
142
- ```
143
-
144
- ![Viewer styled with Parts](./docs/ViewerParts.jpg)
145
-
146
- #### Slots
147
-
148
- Various slots are defined that allow entire sections of the UI to be replaced. The following slots are available:
149
-
150
- | Slot Name | Description |
151
- | ---------- | ---------------------------------------- |
152
- | `tool-bar` | The toolbar used for animation controls. |
153
-
154
- As an example, if you wanted to replace the toolbar with a custom button that just toggles animation play/pause state, you could do so with the following:
155
-
156
- ```html
157
- <babylon-viewer source="https://raw.githubusercontent.com/BabylonJS/Assets/master/meshes/ufo.glb">
158
- <div slot="tool-bar" style="position: absolute; top: 12px; left: 12px; width: 100px; height: 36px">
159
- <button onclick="document.querySelector('babylon-viewer').toggleAnimation()">Toggle Animation</button>
160
- </div>
161
- </babylon-viewer>
162
- ```
163
-
164
- ![Viewer UI replacement with Slots](./docs/ViewerSlots.jpg)
@@ -0,0 +1,11 @@
1
+ import { RenderOnlyViewer } from "./viewer/renderOnlyViewer";
2
+ import "@babylonjs/loaders/glTF/2.0.js";
3
+ import "@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent.js";
4
+ import "@babylonjs/core/Debug/debugLayer.js";
5
+ import "@babylonjs/core/Meshes/Builders/planeBuilder.js";
6
+ import "@babylonjs/core/Meshes/Builders/boxBuilder.js";
7
+ import "@babylonjs/core/Materials/Textures/Loaders/ddsTextureLoader.js";
8
+ import "@babylonjs/core/Materials/Textures/Loaders/envTextureLoader.js";
9
+ import "@babylonjs/core/Materials/Textures/Loaders/ktxTextureLoader.js";
10
+ import "@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js";
11
+ export { RenderOnlyViewer };
@@ -0,0 +1,18 @@
1
+ import { RenderOnlyViewer } from "./viewer/renderOnlyViewer.js";
2
+ // Required side effects
3
+ import "@babylonjs/loaders/glTF/2.0.js";
4
+ import "@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent.js";
5
+ import "@babylonjs/core/Debug/debugLayer.js";
6
+ import "@babylonjs/core/Meshes/Builders/planeBuilder.js";
7
+ import "@babylonjs/core/Meshes/Builders/boxBuilder.js";
8
+ import "@babylonjs/core/Materials/Textures/Loaders/ddsTextureLoader.js";
9
+ import "@babylonjs/core/Materials/Textures/Loaders/envTextureLoader.js";
10
+ import "@babylonjs/core/Materials/Textures/Loaders/ktxTextureLoader.js";
11
+ import "@babylonjs/core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent.js";
12
+ // Override default material factory to avoid the dependency on standard material
13
+ import { Scene } from "@babylonjs/core/scene.js";
14
+ Scene.DefaultMaterialFactory = function () {
15
+ return null;
16
+ };
17
+ export { RenderOnlyViewer };
18
+ //# sourceMappingURL=renderOnlyIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderOnlyIndex.js","sourceRoot":"","sources":["../../../tools/viewer/src/renderOnlyIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,wBAAwB;AACxB,wCAA0B;AAC1B,yEAA2D;AAC3D,6CAA+B;AAC/B,yDAA2C;AAC3C,uDAAyC;AACzC,wEAA0D;AAC1D,wEAA0D;AAC1D,wEAA0D;AAC1D,wGAA0F;AAE1F,iFAAiF;AACjF,OAAO,EAAE,KAAK,EAAE,iCAAmB;AACnC,KAAK,CAAC,sBAAsB,GAAG;IAC3B,OAAO,IAAW,CAAC;AACvB,CAAC,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["import { RenderOnlyViewer } from \"./viewer/renderOnlyViewer\";\r\n\r\n// Required side effects\r\nimport \"loaders/glTF/2.0\";\r\nimport \"core/Lights/Shadows/shadowGeneratorSceneComponent\";\r\nimport \"core/Debug/debugLayer\";\r\nimport \"core/Meshes/Builders/planeBuilder\";\r\nimport \"core/Meshes/Builders/boxBuilder\";\r\nimport \"core/Materials/Textures/Loaders/ddsTextureLoader\";\r\nimport \"core/Materials/Textures/Loaders/envTextureLoader\";\r\nimport \"core/Materials/Textures/Loaders/ktxTextureLoader\";\r\nimport \"core/PostProcesses/RenderPipeline/postProcessRenderPipelineManagerSceneComponent\";\r\n\r\n// Override default material factory to avoid the dependency on standard material\r\nimport { Scene } from \"core/scene\";\r\nScene.DefaultMaterialFactory = () => {\r\n return null as any;\r\n};\r\n\r\nexport { RenderOnlyViewer };\r\n"]}
@@ -0,0 +1,35 @@
1
+ import type { EventCallback, TemplateManager } from "./templateManager";
2
+ /**
3
+ * The EventManager is in charge of registering user interctions with the viewer.
4
+ * It is used in the TemplateManager
5
+ */
6
+ export declare class EventManager {
7
+ private _templateManager;
8
+ private _callbacksContainer;
9
+ constructor(_templateManager: TemplateManager);
10
+ /**
11
+ * Register a new callback to a specific template.
12
+ * The best example for the usage can be found in the DefaultViewer
13
+ *
14
+ * @param templateName the templateName to register the event to
15
+ * @param callback The callback to be executed
16
+ * @param eventType the type of event to register
17
+ * @param selector an optional selector. if not defined the parent object in the template will be selected
18
+ */
19
+ registerCallback(templateName: string, callback: (eventData: EventCallback) => void, eventType?: string, selector?: string): void;
20
+ /**
21
+ * This will remove a registered event from the defined template.
22
+ * Each one of the variables apart from the template name are optional, but one must be provided.
23
+ *
24
+ * @param templateName the templateName
25
+ * @param callback the callback to remove (optional)
26
+ * @param eventType the event type to remove (optional)
27
+ * @param selector the selector from which to remove the event (optional)
28
+ */
29
+ unregisterCallback(templateName: string, callback: (eventData: EventCallback) => void, eventType?: string, selector?: string): void;
30
+ private _eventTriggered;
31
+ /**
32
+ * Dispose the event manager
33
+ */
34
+ dispose(): void;
35
+ }