@babylonjs/viewer 7.40.4-alpha → 7.40.4

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 (619) 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 +28 -19
  158. package/readme.md +28 -28
  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_ies-B7tVMCka.esm.min.js +0 -2
  198. package/dist/chunks/EXT_lights_ies-B7tVMCka.esm.min.js.map +0 -1
  199. package/dist/chunks/EXT_lights_ies-T0Tkc0j0.esm.js +0 -84
  200. package/dist/chunks/EXT_lights_ies-T0Tkc0j0.esm.js.map +0 -1
  201. package/dist/chunks/EXT_lights_image_based-CyoPcoDC.esm.min.js +0 -2
  202. package/dist/chunks/EXT_lights_image_based-CyoPcoDC.esm.min.js.map +0 -1
  203. package/dist/chunks/EXT_lights_image_based-TRLY00MY.esm.js +0 -171
  204. package/dist/chunks/EXT_lights_image_based-TRLY00MY.esm.js.map +0 -1
  205. package/dist/chunks/EXT_mesh_gpu_instancing-CNSWr-2o.esm.js +0 -86
  206. package/dist/chunks/EXT_mesh_gpu_instancing-CNSWr-2o.esm.js.map +0 -1
  207. package/dist/chunks/EXT_mesh_gpu_instancing-DvkytavO.esm.min.js +0 -2
  208. package/dist/chunks/EXT_mesh_gpu_instancing-DvkytavO.esm.min.js.map +0 -1
  209. package/dist/chunks/EXT_meshopt_compression-C5Jf55Kx.esm.min.js +0 -2
  210. package/dist/chunks/EXT_meshopt_compression-C5Jf55Kx.esm.min.js.map +0 -1
  211. package/dist/chunks/EXT_meshopt_compression-CWVLJCmT.esm.js +0 -134
  212. package/dist/chunks/EXT_meshopt_compression-CWVLJCmT.esm.js.map +0 -1
  213. package/dist/chunks/EXT_texture_avif-Bv2Pa-Lr.esm.js +0 -44
  214. package/dist/chunks/EXT_texture_avif-Bv2Pa-Lr.esm.js.map +0 -1
  215. package/dist/chunks/EXT_texture_avif-DZmsorD-.esm.min.js +0 -2
  216. package/dist/chunks/EXT_texture_avif-DZmsorD-.esm.min.js.map +0 -1
  217. package/dist/chunks/EXT_texture_webp-CBpWQrqC.esm.js +0 -43
  218. package/dist/chunks/EXT_texture_webp-CBpWQrqC.esm.js.map +0 -1
  219. package/dist/chunks/EXT_texture_webp-D6RSOJSe.esm.min.js +0 -2
  220. package/dist/chunks/EXT_texture_webp-D6RSOJSe.esm.min.js.map +0 -1
  221. package/dist/chunks/ExtrasAsMetadata-6ZohdbjJ.esm.js +0 -64
  222. package/dist/chunks/ExtrasAsMetadata-6ZohdbjJ.esm.js.map +0 -1
  223. package/dist/chunks/ExtrasAsMetadata-CrG2l0Kf.esm.min.js +0 -2
  224. package/dist/chunks/ExtrasAsMetadata-CrG2l0Kf.esm.min.js.map +0 -1
  225. package/dist/chunks/KHR_animation_pointer-Cvu5a-gj.esm.js +0 -352
  226. package/dist/chunks/KHR_animation_pointer-Cvu5a-gj.esm.js.map +0 -1
  227. package/dist/chunks/KHR_animation_pointer-Rk2uzfDp.esm.min.js +0 -2
  228. package/dist/chunks/KHR_animation_pointer-Rk2uzfDp.esm.min.js.map +0 -1
  229. package/dist/chunks/KHR_draco_mesh_compression-BrXprwd5.esm.js +0 -610
  230. package/dist/chunks/KHR_draco_mesh_compression-BrXprwd5.esm.js.map +0 -1
  231. package/dist/chunks/KHR_draco_mesh_compression-Iv3q50MG.esm.min.js +0 -2
  232. package/dist/chunks/KHR_draco_mesh_compression-Iv3q50MG.esm.min.js.map +0 -1
  233. package/dist/chunks/KHR_interactivity-B4iFgkk7.esm.min.js +0 -2
  234. package/dist/chunks/KHR_interactivity-B4iFgkk7.esm.min.js.map +0 -1
  235. package/dist/chunks/KHR_interactivity-Db4iHU65.esm.js +0 -4033
  236. package/dist/chunks/KHR_interactivity-Db4iHU65.esm.js.map +0 -1
  237. package/dist/chunks/KHR_lights_punctual-B7yNiRZy.esm.min.js +0 -2
  238. package/dist/chunks/KHR_lights_punctual-B7yNiRZy.esm.min.js.map +0 -1
  239. package/dist/chunks/KHR_lights_punctual-iZl19DTA.esm.js +0 -581
  240. package/dist/chunks/KHR_lights_punctual-iZl19DTA.esm.js.map +0 -1
  241. package/dist/chunks/KHR_materials_anisotropy-Bk9K0k0q.esm.js +0 -65
  242. package/dist/chunks/KHR_materials_anisotropy-Bk9K0k0q.esm.js.map +0 -1
  243. package/dist/chunks/KHR_materials_anisotropy-DlDnL4o4.esm.min.js +0 -2
  244. package/dist/chunks/KHR_materials_anisotropy-DlDnL4o4.esm.min.js.map +0 -1
  245. package/dist/chunks/KHR_materials_clearcoat-BrT4VgMS.esm.min.js +0 -2
  246. package/dist/chunks/KHR_materials_clearcoat-BrT4VgMS.esm.min.js.map +0 -1
  247. package/dist/chunks/KHR_materials_clearcoat-DXAyxIfA.esm.js +0 -96
  248. package/dist/chunks/KHR_materials_clearcoat-DXAyxIfA.esm.js.map +0 -1
  249. package/dist/chunks/KHR_materials_diffuse_transmission-CRqI4Umg.esm.js +0 -97
  250. package/dist/chunks/KHR_materials_diffuse_transmission-CRqI4Umg.esm.js.map +0 -1
  251. package/dist/chunks/KHR_materials_diffuse_transmission-jyVvmpFx.esm.min.js +0 -2
  252. package/dist/chunks/KHR_materials_diffuse_transmission-jyVvmpFx.esm.min.js.map +0 -1
  253. package/dist/chunks/KHR_materials_dispersion-BwXQSsRC.esm.min.js +0 -2
  254. package/dist/chunks/KHR_materials_dispersion-BwXQSsRC.esm.min.js.map +0 -1
  255. package/dist/chunks/KHR_materials_dispersion-DTMaHZal.esm.js +0 -62
  256. package/dist/chunks/KHR_materials_dispersion-DTMaHZal.esm.js.map +0 -1
  257. package/dist/chunks/KHR_materials_emissive_strength-BCWSR6Zg.esm.js +0 -55
  258. package/dist/chunks/KHR_materials_emissive_strength-BCWSR6Zg.esm.js.map +0 -1
  259. package/dist/chunks/KHR_materials_emissive_strength-dEqNWrU4.esm.min.js +0 -2
  260. package/dist/chunks/KHR_materials_emissive_strength-dEqNWrU4.esm.min.js.map +0 -1
  261. package/dist/chunks/KHR_materials_ior-DXmoDlX8.esm.min.js +0 -2
  262. package/dist/chunks/KHR_materials_ior-DXmoDlX8.esm.min.js.map +0 -1
  263. package/dist/chunks/KHR_materials_ior-NvWqR2ZR.esm.js +0 -64
  264. package/dist/chunks/KHR_materials_ior-NvWqR2ZR.esm.js.map +0 -1
  265. package/dist/chunks/KHR_materials_iridescence-2VKZo_Mv.esm.min.js +0 -2
  266. package/dist/chunks/KHR_materials_iridescence-2VKZo_Mv.esm.min.js.map +0 -1
  267. package/dist/chunks/KHR_materials_iridescence-B2wLtYQ4.esm.js +0 -72
  268. package/dist/chunks/KHR_materials_iridescence-B2wLtYQ4.esm.js.map +0 -1
  269. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DYK5fci0.esm.js +0 -81
  270. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DYK5fci0.esm.js.map +0 -1
  271. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-PlzNRHwZ.esm.min.js +0 -2
  272. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-PlzNRHwZ.esm.min.js.map +0 -1
  273. package/dist/chunks/KHR_materials_sheen-CvA19viC.esm.min.js +0 -2
  274. package/dist/chunks/KHR_materials_sheen-CvA19viC.esm.min.js.map +0 -1
  275. package/dist/chunks/KHR_materials_sheen-DY8Hlw2C.esm.js +0 -85
  276. package/dist/chunks/KHR_materials_sheen-DY8Hlw2C.esm.js.map +0 -1
  277. package/dist/chunks/KHR_materials_specular-DPankAYO.esm.js +0 -75
  278. package/dist/chunks/KHR_materials_specular-DPankAYO.esm.js.map +0 -1
  279. package/dist/chunks/KHR_materials_specular-SFjYTaHn.esm.min.js +0 -2
  280. package/dist/chunks/KHR_materials_specular-SFjYTaHn.esm.min.js.map +0 -1
  281. package/dist/chunks/KHR_materials_transmission-CBvCfGeN.esm.js +0 -307
  282. package/dist/chunks/KHR_materials_transmission-CBvCfGeN.esm.js.map +0 -1
  283. package/dist/chunks/KHR_materials_transmission-DeRHqgMd.esm.min.js +0 -2
  284. package/dist/chunks/KHR_materials_transmission-DeRHqgMd.esm.min.js.map +0 -1
  285. package/dist/chunks/KHR_materials_unlit-Dp-VzfY2.esm.min.js +0 -2
  286. package/dist/chunks/KHR_materials_unlit-Dp-VzfY2.esm.min.js.map +0 -1
  287. package/dist/chunks/KHR_materials_unlit-xG3eIsVn.esm.js +0 -74
  288. package/dist/chunks/KHR_materials_unlit-xG3eIsVn.esm.js.map +0 -1
  289. package/dist/chunks/KHR_materials_variants-DtTs7enl.esm.min.js +0 -2
  290. package/dist/chunks/KHR_materials_variants-DtTs7enl.esm.min.js.map +0 -1
  291. package/dist/chunks/KHR_materials_variants-POauQPs7.esm.js +0 -262
  292. package/dist/chunks/KHR_materials_variants-POauQPs7.esm.js.map +0 -1
  293. package/dist/chunks/KHR_materials_volume-BO1lvsUq.esm.min.js +0 -2
  294. package/dist/chunks/KHR_materials_volume-BO1lvsUq.esm.min.js.map +0 -1
  295. package/dist/chunks/KHR_materials_volume-BqCunks7.esm.js +0 -87
  296. package/dist/chunks/KHR_materials_volume-BqCunks7.esm.js.map +0 -1
  297. package/dist/chunks/KHR_mesh_quantization-3ON-a5Bz.esm.js +0 -26
  298. package/dist/chunks/KHR_mesh_quantization-3ON-a5Bz.esm.js.map +0 -1
  299. package/dist/chunks/KHR_mesh_quantization-C1uR5Lci.esm.min.js +0 -2
  300. package/dist/chunks/KHR_mesh_quantization-C1uR5Lci.esm.min.js.map +0 -1
  301. package/dist/chunks/KHR_node_hoverability-CZIi0X9e.esm.js +0 -39
  302. package/dist/chunks/KHR_node_hoverability-CZIi0X9e.esm.js.map +0 -1
  303. package/dist/chunks/KHR_node_hoverability-gPD0oS5c.esm.min.js +0 -2
  304. package/dist/chunks/KHR_node_hoverability-gPD0oS5c.esm.min.js.map +0 -1
  305. package/dist/chunks/KHR_node_visibility-B5fFI1TX.esm.js +0 -46
  306. package/dist/chunks/KHR_node_visibility-B5fFI1TX.esm.js.map +0 -1
  307. package/dist/chunks/KHR_node_visibility-DPw-0W4p.esm.min.js +0 -2
  308. package/dist/chunks/KHR_node_visibility-DPw-0W4p.esm.min.js.map +0 -1
  309. package/dist/chunks/KHR_texture_basisu-D6tStneN.esm.min.js +0 -2
  310. package/dist/chunks/KHR_texture_basisu-D6tStneN.esm.min.js.map +0 -1
  311. package/dist/chunks/KHR_texture_basisu-Did7TM-4.esm.js +0 -43
  312. package/dist/chunks/KHR_texture_basisu-Did7TM-4.esm.js.map +0 -1
  313. package/dist/chunks/KHR_texture_transform-Da5NeRUm.esm.js +0 -63
  314. package/dist/chunks/KHR_texture_transform-Da5NeRUm.esm.js.map +0 -1
  315. package/dist/chunks/KHR_texture_transform-jNMzm3zb.esm.min.js +0 -2
  316. package/dist/chunks/KHR_texture_transform-jNMzm3zb.esm.min.js.map +0 -1
  317. package/dist/chunks/KHR_xmp_json_ld-D514my_a.esm.js +0 -51
  318. package/dist/chunks/KHR_xmp_json_ld-D514my_a.esm.js.map +0 -1
  319. package/dist/chunks/KHR_xmp_json_ld-D5Gbko_w.esm.min.js +0 -2
  320. package/dist/chunks/KHR_xmp_json_ld-D5Gbko_w.esm.min.js.map +0 -1
  321. package/dist/chunks/MSFT_audio_emitter-CiB3yG6v.esm.js +0 -2201
  322. package/dist/chunks/MSFT_audio_emitter-CiB3yG6v.esm.js.map +0 -1
  323. package/dist/chunks/MSFT_audio_emitter-Cn-DCgMh.esm.min.js +0 -2
  324. package/dist/chunks/MSFT_audio_emitter-Cn-DCgMh.esm.min.js.map +0 -1
  325. package/dist/chunks/MSFT_lod-BDP9fUoB.esm.js +0 -337
  326. package/dist/chunks/MSFT_lod-BDP9fUoB.esm.js.map +0 -1
  327. package/dist/chunks/MSFT_lod-BEbIdncN.esm.min.js +0 -2
  328. package/dist/chunks/MSFT_lod-BEbIdncN.esm.min.js.map +0 -1
  329. package/dist/chunks/MSFT_minecraftMesh-jASzndfE.esm.min.js +0 -2
  330. package/dist/chunks/MSFT_minecraftMesh-jASzndfE.esm.min.js.map +0 -1
  331. package/dist/chunks/MSFT_minecraftMesh-mKnNUrKI.esm.js +0 -46
  332. package/dist/chunks/MSFT_minecraftMesh-mKnNUrKI.esm.js.map +0 -1
  333. package/dist/chunks/MSFT_sRGBFactors-B1Bk1U5N.esm.min.js +0 -2
  334. package/dist/chunks/MSFT_sRGBFactors-B1Bk1U5N.esm.min.js.map +0 -1
  335. package/dist/chunks/MSFT_sRGBFactors-IZnSmmDU.esm.js +0 -47
  336. package/dist/chunks/MSFT_sRGBFactors-IZnSmmDU.esm.js.map +0 -1
  337. package/dist/chunks/animationGroup-B1YyqoTa.esm.js +0 -2482
  338. package/dist/chunks/animationGroup-B1YyqoTa.esm.js.map +0 -1
  339. package/dist/chunks/animationGroup-C9C7qST_.esm.min.js +0 -2
  340. package/dist/chunks/animationGroup-C9C7qST_.esm.min.js.map +0 -1
  341. package/dist/chunks/assetContainer-BzlRl_4x.esm.js +0 -1720
  342. package/dist/chunks/assetContainer-BzlRl_4x.esm.js.map +0 -1
  343. package/dist/chunks/assetContainer-D7C3a-Xn.esm.min.js +0 -2
  344. package/dist/chunks/assetContainer-D7C3a-Xn.esm.min.js.map +0 -1
  345. package/dist/chunks/audioEngine-BZB34VjD.esm.js +0 -305
  346. package/dist/chunks/audioEngine-BZB34VjD.esm.js.map +0 -1
  347. package/dist/chunks/audioEngine-BoxJPZL7.esm.min.js +0 -2
  348. package/dist/chunks/audioEngine-BoxJPZL7.esm.min.js.map +0 -1
  349. package/dist/chunks/bakedVertexAnimation-BQki1eZ4.esm.min.js +0 -2
  350. package/dist/chunks/bakedVertexAnimation-BQki1eZ4.esm.min.js.map +0 -1
  351. package/dist/chunks/bakedVertexAnimation-DpSHNKcC.esm.js +0 -114
  352. package/dist/chunks/bakedVertexAnimation-DpSHNKcC.esm.js.map +0 -1
  353. package/dist/chunks/basisTextureLoader-C3RlzqZl.esm.min.js +0 -2
  354. package/dist/chunks/basisTextureLoader-C3RlzqZl.esm.min.js.map +0 -1
  355. package/dist/chunks/basisTextureLoader-D6uyehp2.esm.js +0 -600
  356. package/dist/chunks/basisTextureLoader-D6uyehp2.esm.js.map +0 -1
  357. package/dist/chunks/dds-C1QgDMMC.esm.min.js +0 -2
  358. package/dist/chunks/dds-C1QgDMMC.esm.min.js.map +0 -1
  359. package/dist/chunks/dds-zApWiwah.esm.js +0 -540
  360. package/dist/chunks/dds-zApWiwah.esm.js.map +0 -1
  361. package/dist/chunks/ddsTextureLoader-CSYQAUdw.esm.js +0 -88
  362. package/dist/chunks/ddsTextureLoader-CSYQAUdw.esm.js.map +0 -1
  363. package/dist/chunks/ddsTextureLoader-Dyl2CjaG.esm.min.js +0 -2
  364. package/dist/chunks/ddsTextureLoader-Dyl2CjaG.esm.min.js.map +0 -1
  365. package/dist/chunks/decalFragment-BbsT8PSx.esm.min.js +0 -2
  366. package/dist/chunks/decalFragment-BbsT8PSx.esm.min.js.map +0 -1
  367. package/dist/chunks/decalFragment-DqgT4NiX.esm.js +0 -18
  368. package/dist/chunks/decalFragment-DqgT4NiX.esm.js.map +0 -1
  369. package/dist/chunks/default.fragment-Bpw23SLq.esm.min.js +0 -2
  370. package/dist/chunks/default.fragment-Bpw23SLq.esm.min.js.map +0 -1
  371. package/dist/chunks/default.fragment-C8lcinV9.esm.js +0 -446
  372. package/dist/chunks/default.fragment-C8lcinV9.esm.js.map +0 -1
  373. package/dist/chunks/default.fragment-De3FJCJD.esm.js +0 -515
  374. package/dist/chunks/default.fragment-De3FJCJD.esm.js.map +0 -1
  375. package/dist/chunks/default.fragment-b__nAv93.esm.min.js +0 -2
  376. package/dist/chunks/default.fragment-b__nAv93.esm.min.js.map +0 -1
  377. package/dist/chunks/default.vertex-BnpZVKdz.esm.min.js +0 -2
  378. package/dist/chunks/default.vertex-BnpZVKdz.esm.min.js.map +0 -1
  379. package/dist/chunks/default.vertex-CD2qxrmB.esm.js +0 -190
  380. package/dist/chunks/default.vertex-CD2qxrmB.esm.js.map +0 -1
  381. package/dist/chunks/default.vertex-CN5WYROZ.esm.min.js +0 -2
  382. package/dist/chunks/default.vertex-CN5WYROZ.esm.min.js.map +0 -1
  383. package/dist/chunks/default.vertex-DRHq60qX.esm.js +0 -211
  384. package/dist/chunks/default.vertex-DRHq60qX.esm.js.map +0 -1
  385. package/dist/chunks/defaultUboDeclaration-C0gMCjYL.esm.min.js +0 -2
  386. package/dist/chunks/defaultUboDeclaration-C0gMCjYL.esm.min.js.map +0 -1
  387. package/dist/chunks/defaultUboDeclaration-CGRrluBg.esm.min.js +0 -2
  388. package/dist/chunks/defaultUboDeclaration-CGRrluBg.esm.min.js.map +0 -1
  389. package/dist/chunks/defaultUboDeclaration-DCybxQ0F.esm.js +0 -13
  390. package/dist/chunks/defaultUboDeclaration-DCybxQ0F.esm.js.map +0 -1
  391. package/dist/chunks/defaultUboDeclaration-xxIrKyXf.esm.js +0 -15
  392. package/dist/chunks/defaultUboDeclaration-xxIrKyXf.esm.js.map +0 -1
  393. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +0 -11
  394. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +0 -1
  395. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +0 -2
  396. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +0 -1
  397. package/dist/chunks/dumpTools-BOVGklo2.esm.min.js +0 -2
  398. package/dist/chunks/dumpTools-BOVGklo2.esm.min.js.map +0 -1
  399. package/dist/chunks/dumpTools-Dy-fD64p.esm.js +0 -200
  400. package/dist/chunks/dumpTools-Dy-fD64p.esm.js.map +0 -1
  401. package/dist/chunks/engine-CBGABL2W.esm.min.js +0 -2
  402. package/dist/chunks/engine-CBGABL2W.esm.min.js.map +0 -1
  403. package/dist/chunks/engine-D9Sn-BC6.esm.js +0 -2213
  404. package/dist/chunks/engine-D9Sn-BC6.esm.js.map +0 -1
  405. package/dist/chunks/engine.common-BM1GAef8.esm.js +0 -1162
  406. package/dist/chunks/engine.common-BM1GAef8.esm.js.map +0 -1
  407. package/dist/chunks/engine.common-xMH7x2b0.esm.min.js +0 -2
  408. package/dist/chunks/engine.common-xMH7x2b0.esm.min.js.map +0 -1
  409. package/dist/chunks/envTextureLoader-BRdNaVH2.esm.min.js +0 -2
  410. package/dist/chunks/envTextureLoader-BRdNaVH2.esm.min.js.map +0 -1
  411. package/dist/chunks/envTextureLoader-DT_xwrde.esm.js +0 -64
  412. package/dist/chunks/envTextureLoader-DT_xwrde.esm.js.map +0 -1
  413. package/dist/chunks/environmentTextureTools-BxWsgzT8.esm.min.js +0 -2
  414. package/dist/chunks/environmentTextureTools-BxWsgzT8.esm.min.js.map +0 -1
  415. package/dist/chunks/environmentTextureTools-DuNLB_SE.esm.js +0 -382
  416. package/dist/chunks/environmentTextureTools-DuNLB_SE.esm.js.map +0 -1
  417. package/dist/chunks/exrTextureLoader-BBL1-v_g.esm.min.js +0 -2
  418. package/dist/chunks/exrTextureLoader-BBL1-v_g.esm.min.js.map +0 -1
  419. package/dist/chunks/exrTextureLoader-CUiWw4Oh.esm.js +0 -1683
  420. package/dist/chunks/exrTextureLoader-CUiWw4Oh.esm.js.map +0 -1
  421. package/dist/chunks/fogFragment-BCz1GIrJ.esm.min.js +0 -2
  422. package/dist/chunks/fogFragment-BCz1GIrJ.esm.min.js.map +0 -1
  423. package/dist/chunks/fogFragment-BQLWFsYl.esm.min.js +0 -2
  424. package/dist/chunks/fogFragment-BQLWFsYl.esm.min.js.map +0 -1
  425. package/dist/chunks/fogFragment-DANl-YQk.esm.js +0 -102
  426. package/dist/chunks/fogFragment-DANl-YQk.esm.js.map +0 -1
  427. package/dist/chunks/fogFragment-DptoygQ5.esm.js +0 -101
  428. package/dist/chunks/fogFragment-DptoygQ5.esm.js.map +0 -1
  429. package/dist/chunks/fresnelFunction-3-z89NGn.esm.js +0 -12
  430. package/dist/chunks/fresnelFunction-3-z89NGn.esm.js.map +0 -1
  431. package/dist/chunks/fresnelFunction-CbnLfwWn.esm.min.js +0 -2
  432. package/dist/chunks/fresnelFunction-CbnLfwWn.esm.min.js.map +0 -1
  433. package/dist/chunks/glTFLoader-Qw5JObwf.esm.js +0 -7658
  434. package/dist/chunks/glTFLoader-Qw5JObwf.esm.js.map +0 -1
  435. package/dist/chunks/glTFLoader-iKlvKEG-.esm.min.js +0 -2
  436. package/dist/chunks/glTFLoader-iKlvKEG-.esm.min.js.map +0 -1
  437. package/dist/chunks/glTFLoaderAnimation-BCUZthxT.esm.js +0 -77
  438. package/dist/chunks/glTFLoaderAnimation-BCUZthxT.esm.js.map +0 -1
  439. package/dist/chunks/glTFLoaderAnimation-DnTkRibM.esm.min.js +0 -2
  440. package/dist/chunks/glTFLoaderAnimation-DnTkRibM.esm.min.js.map +0 -1
  441. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
  442. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
  443. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
  444. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
  445. package/dist/chunks/harmonicsFunctions-19PWyV81.esm.js +0 -34
  446. package/dist/chunks/harmonicsFunctions-19PWyV81.esm.js.map +0 -1
  447. package/dist/chunks/harmonicsFunctions-D4sp7bHN.esm.js +0 -35
  448. package/dist/chunks/harmonicsFunctions-D4sp7bHN.esm.js.map +0 -1
  449. package/dist/chunks/harmonicsFunctions-DSpaTpH7.esm.min.js +0 -2
  450. package/dist/chunks/harmonicsFunctions-DSpaTpH7.esm.min.js.map +0 -1
  451. package/dist/chunks/harmonicsFunctions-DvH68s1g.esm.min.js +0 -2
  452. package/dist/chunks/harmonicsFunctions-DvH68s1g.esm.min.js.map +0 -1
  453. package/dist/chunks/hdrTextureLoader-ChbZ5_1g.esm.min.js +0 -2
  454. package/dist/chunks/hdrTextureLoader-ChbZ5_1g.esm.min.js.map +0 -1
  455. package/dist/chunks/hdrTextureLoader-OJaopXAb.esm.js +0 -253
  456. package/dist/chunks/hdrTextureLoader-OJaopXAb.esm.js.map +0 -1
  457. package/dist/chunks/helperFunctions-CNCeKea7.esm.js +0 -81
  458. package/dist/chunks/helperFunctions-CNCeKea7.esm.js.map +0 -1
  459. package/dist/chunks/helperFunctions-Crs36Q3w.esm.js +0 -109
  460. package/dist/chunks/helperFunctions-Crs36Q3w.esm.js.map +0 -1
  461. package/dist/chunks/helperFunctions-DKz6om6i.esm.min.js +0 -2
  462. package/dist/chunks/helperFunctions-DKz6om6i.esm.min.js.map +0 -1
  463. package/dist/chunks/helperFunctions-bZhuioWn.esm.min.js +0 -2
  464. package/dist/chunks/helperFunctions-bZhuioWn.esm.min.js.map +0 -1
  465. package/dist/chunks/iesTextureLoader-BTOaWdIK.esm.js +0 -189
  466. package/dist/chunks/iesTextureLoader-BTOaWdIK.esm.js.map +0 -1
  467. package/dist/chunks/iesTextureLoader-CKnu1maC.esm.min.js +0 -2
  468. package/dist/chunks/iesTextureLoader-CKnu1maC.esm.min.js.map +0 -1
  469. package/dist/chunks/index-5L5wXyrx.esm.js +0 -74870
  470. package/dist/chunks/index-5L5wXyrx.esm.js.map +0 -1
  471. package/dist/chunks/index-B5KLkjYm.esm.min.js +0 -57
  472. package/dist/chunks/index-B5KLkjYm.esm.min.js.map +0 -1
  473. package/dist/chunks/ktxTextureLoader-CMfHt5rp.esm.js +0 -814
  474. package/dist/chunks/ktxTextureLoader-CMfHt5rp.esm.js.map +0 -1
  475. package/dist/chunks/ktxTextureLoader-DCyzShol.esm.min.js +0 -2
  476. package/dist/chunks/ktxTextureLoader-DCyzShol.esm.min.js.map +0 -1
  477. package/dist/chunks/logDepthDeclaration-8CuoGLY6.esm.js +0 -35
  478. package/dist/chunks/logDepthDeclaration-8CuoGLY6.esm.js.map +0 -1
  479. package/dist/chunks/logDepthDeclaration-BC68Ktb0.esm.js +0 -11
  480. package/dist/chunks/logDepthDeclaration-BC68Ktb0.esm.js.map +0 -1
  481. package/dist/chunks/logDepthDeclaration-CgPuLaM9.esm.min.js +0 -2
  482. package/dist/chunks/logDepthDeclaration-CgPuLaM9.esm.min.js.map +0 -1
  483. package/dist/chunks/logDepthDeclaration-iNYm9mSn.esm.min.js +0 -2
  484. package/dist/chunks/logDepthDeclaration-iNYm9mSn.esm.min.js.map +0 -1
  485. package/dist/chunks/logDepthVertex-BOepIJij.esm.js +0 -77
  486. package/dist/chunks/logDepthVertex-BOepIJij.esm.js.map +0 -1
  487. package/dist/chunks/logDepthVertex-Bno6ozc-.esm.min.js +0 -2
  488. package/dist/chunks/logDepthVertex-Bno6ozc-.esm.min.js.map +0 -1
  489. package/dist/chunks/logDepthVertex-CU3WBwOA.esm.js +0 -81
  490. package/dist/chunks/logDepthVertex-CU3WBwOA.esm.js.map +0 -1
  491. package/dist/chunks/logDepthVertex-DjeubcPn.esm.min.js +0 -2
  492. package/dist/chunks/logDepthVertex-DjeubcPn.esm.min.js.map +0 -1
  493. package/dist/chunks/mainUVVaryingDeclaration-C_Am-o4e.esm.js +0 -11
  494. package/dist/chunks/mainUVVaryingDeclaration-C_Am-o4e.esm.js.map +0 -1
  495. package/dist/chunks/mainUVVaryingDeclaration-CuSqEhkE.esm.min.js +0 -2
  496. package/dist/chunks/mainUVVaryingDeclaration-CuSqEhkE.esm.min.js.map +0 -1
  497. package/dist/chunks/mainUVVaryingDeclaration-DxqJq0-m.esm.js +0 -11
  498. package/dist/chunks/mainUVVaryingDeclaration-DxqJq0-m.esm.js.map +0 -1
  499. package/dist/chunks/mainUVVaryingDeclaration-oZF0xIut.esm.min.js +0 -2
  500. package/dist/chunks/mainUVVaryingDeclaration-oZF0xIut.esm.min.js.map +0 -1
  501. package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js +0 -119
  502. package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js.map +0 -1
  503. package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js +0 -2
  504. package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js.map +0 -1
  505. package/dist/chunks/meshUboDeclaration-BWuUYN5-.esm.js +0 -26
  506. package/dist/chunks/meshUboDeclaration-BWuUYN5-.esm.js.map +0 -1
  507. package/dist/chunks/meshUboDeclaration-D-9f-79D.esm.min.js +0 -2
  508. package/dist/chunks/meshUboDeclaration-D-9f-79D.esm.min.js.map +0 -1
  509. package/dist/chunks/objFileLoader-B3PzHlWB.esm.min.js +0 -2
  510. package/dist/chunks/objFileLoader-B3PzHlWB.esm.min.js.map +0 -1
  511. package/dist/chunks/objFileLoader-BjHr-pn1.esm.js +0 -1338
  512. package/dist/chunks/objFileLoader-BjHr-pn1.esm.js.map +0 -1
  513. package/dist/chunks/oitFragment-BypZDJVo.esm.min.js +0 -2
  514. package/dist/chunks/oitFragment-BypZDJVo.esm.min.js.map +0 -1
  515. package/dist/chunks/oitFragment-D3g8w3hO.esm.js +0 -1078
  516. package/dist/chunks/oitFragment-D3g8w3hO.esm.js.map +0 -1
  517. package/dist/chunks/oitFragment-Db3h4DV5.esm.min.js +0 -2
  518. package/dist/chunks/oitFragment-Db3h4DV5.esm.min.js.map +0 -1
  519. package/dist/chunks/oitFragment-tQJLudg5.esm.js +0 -1240
  520. package/dist/chunks/oitFragment-tQJLudg5.esm.js.map +0 -1
  521. package/dist/chunks/pass.fragment-C8CWeVkM.esm.js +0 -15
  522. package/dist/chunks/pass.fragment-C8CWeVkM.esm.js.map +0 -1
  523. package/dist/chunks/pass.fragment-CSK2ynPe.esm.js +0 -15
  524. package/dist/chunks/pass.fragment-CSK2ynPe.esm.js.map +0 -1
  525. package/dist/chunks/pass.fragment-CdgLWa1Q.esm.min.js +0 -2
  526. package/dist/chunks/pass.fragment-CdgLWa1Q.esm.min.js.map +0 -1
  527. package/dist/chunks/pass.fragment-ONNyQPrD.esm.min.js +0 -2
  528. package/dist/chunks/pass.fragment-ONNyQPrD.esm.min.js.map +0 -1
  529. package/dist/chunks/pbr.fragment-Be9mZgL7.esm.js +0 -3269
  530. package/dist/chunks/pbr.fragment-Be9mZgL7.esm.js.map +0 -1
  531. package/dist/chunks/pbr.fragment-C13t4f7Z.esm.min.js +0 -2
  532. package/dist/chunks/pbr.fragment-C13t4f7Z.esm.min.js.map +0 -1
  533. package/dist/chunks/pbr.fragment-CiAe6mgr.esm.js +0 -3222
  534. package/dist/chunks/pbr.fragment-CiAe6mgr.esm.js.map +0 -1
  535. package/dist/chunks/pbr.fragment-I66pqwoX.esm.min.js +0 -2
  536. package/dist/chunks/pbr.fragment-I66pqwoX.esm.min.js.map +0 -1
  537. package/dist/chunks/pbr.vertex-BlqPEcZe.esm.js +0 -223
  538. package/dist/chunks/pbr.vertex-BlqPEcZe.esm.js.map +0 -1
  539. package/dist/chunks/pbr.vertex-C1r_QFvZ.esm.min.js +0 -2
  540. package/dist/chunks/pbr.vertex-C1r_QFvZ.esm.min.js.map +0 -1
  541. package/dist/chunks/pbr.vertex-DE9NTHal.esm.min.js +0 -2
  542. package/dist/chunks/pbr.vertex-DE9NTHal.esm.min.js.map +0 -1
  543. package/dist/chunks/pbr.vertex-oQpu2zia.esm.js +0 -348
  544. package/dist/chunks/pbr.vertex-oQpu2zia.esm.js.map +0 -1
  545. package/dist/chunks/postprocess.vertex-D3XLqa14.esm.js +0 -20
  546. package/dist/chunks/postprocess.vertex-D3XLqa14.esm.js.map +0 -1
  547. package/dist/chunks/postprocess.vertex-IkQbrBQH.esm.min.js +0 -2
  548. package/dist/chunks/postprocess.vertex-IkQbrBQH.esm.min.js.map +0 -1
  549. package/dist/chunks/rawTexture-BVf9vm87.esm.js +0 -191
  550. package/dist/chunks/rawTexture-BVf9vm87.esm.js.map +0 -1
  551. package/dist/chunks/rawTexture-CNxyCiVq.esm.min.js +0 -2
  552. package/dist/chunks/rawTexture-CNxyCiVq.esm.min.js.map +0 -1
  553. package/dist/chunks/ray-BLVbie8S.esm.min.js +0 -2
  554. package/dist/chunks/ray-BLVbie8S.esm.min.js.map +0 -1
  555. package/dist/chunks/ray-C7H9vp-x.esm.js +0 -946
  556. package/dist/chunks/ray-C7H9vp-x.esm.js.map +0 -1
  557. package/dist/chunks/rgbdDecode.fragment-9dPOcBOA.esm.min.js +0 -2
  558. package/dist/chunks/rgbdDecode.fragment-9dPOcBOA.esm.min.js.map +0 -1
  559. package/dist/chunks/rgbdDecode.fragment-ApyH83v_.esm.js +0 -13
  560. package/dist/chunks/rgbdDecode.fragment-ApyH83v_.esm.js.map +0 -1
  561. package/dist/chunks/rgbdDecode.fragment-Bt75XOUV.esm.min.js +0 -2
  562. package/dist/chunks/rgbdDecode.fragment-Bt75XOUV.esm.min.js.map +0 -1
  563. package/dist/chunks/rgbdDecode.fragment-DDIJs9ID.esm.js +0 -13
  564. package/dist/chunks/rgbdDecode.fragment-DDIJs9ID.esm.js.map +0 -1
  565. package/dist/chunks/rgbdEncode.fragment-CSquf6K4.esm.js +0 -13
  566. package/dist/chunks/rgbdEncode.fragment-CSquf6K4.esm.js.map +0 -1
  567. package/dist/chunks/rgbdEncode.fragment-Cpudy2qT.esm.js +0 -13
  568. package/dist/chunks/rgbdEncode.fragment-Cpudy2qT.esm.js.map +0 -1
  569. package/dist/chunks/rgbdEncode.fragment-DZs59_tV.esm.min.js +0 -2
  570. package/dist/chunks/rgbdEncode.fragment-DZs59_tV.esm.min.js.map +0 -1
  571. package/dist/chunks/rgbdEncode.fragment-Djxd-azW.esm.min.js +0 -2
  572. package/dist/chunks/rgbdEncode.fragment-Djxd-azW.esm.min.js.map +0 -1
  573. package/dist/chunks/splatFileLoader-BkExyfY6.esm.js +0 -3379
  574. package/dist/chunks/splatFileLoader-BkExyfY6.esm.js.map +0 -1
  575. package/dist/chunks/splatFileLoader-DLc_wKu4.esm.min.js +0 -2
  576. package/dist/chunks/splatFileLoader-DLc_wKu4.esm.min.js.map +0 -1
  577. package/dist/chunks/spotLight-CFGRpcFc.esm.js +0 -701
  578. package/dist/chunks/spotLight-CFGRpcFc.esm.js.map +0 -1
  579. package/dist/chunks/spotLight-z5HIEQmM.esm.min.js +0 -2
  580. package/dist/chunks/spotLight-z5HIEQmM.esm.min.js.map +0 -1
  581. package/dist/chunks/standardMaterial-B5u9Vzil.esm.min.js +0 -2
  582. package/dist/chunks/standardMaterial-B5u9Vzil.esm.min.js.map +0 -1
  583. package/dist/chunks/standardMaterial-BJzDZ72T.esm.js +0 -1806
  584. package/dist/chunks/standardMaterial-BJzDZ72T.esm.js.map +0 -1
  585. package/dist/chunks/stlFileLoader-B3Y6u4L6.esm.min.js +0 -2
  586. package/dist/chunks/stlFileLoader-B3Y6u4L6.esm.min.js.map +0 -1
  587. package/dist/chunks/stlFileLoader-Bd1GgkYU.esm.js +0 -238
  588. package/dist/chunks/stlFileLoader-Bd1GgkYU.esm.js.map +0 -1
  589. package/dist/chunks/tgaTextureLoader-BD_A6gyw.esm.min.js +0 -2
  590. package/dist/chunks/tgaTextureLoader-BD_A6gyw.esm.min.js.map +0 -1
  591. package/dist/chunks/tgaTextureLoader-DnUiJRBO.esm.js +0 -349
  592. package/dist/chunks/tgaTextureLoader-DnUiJRBO.esm.js.map +0 -1
  593. package/dist/chunks/thinEngine-CRNAFHqA.esm.min.js +0 -2
  594. package/dist/chunks/thinEngine-CRNAFHqA.esm.min.js.map +0 -1
  595. package/dist/chunks/thinEngine-DGyFDxzW.esm.js +0 -3853
  596. package/dist/chunks/thinEngine-DGyFDxzW.esm.js.map +0 -1
  597. package/dist/chunks/thinInstanceMesh-B-f1KNB2.esm.min.js +0 -2
  598. package/dist/chunks/thinInstanceMesh-B-f1KNB2.esm.min.js.map +0 -1
  599. package/dist/chunks/thinInstanceMesh-D-cofgbF.esm.js +0 -314
  600. package/dist/chunks/thinInstanceMesh-D-cofgbF.esm.js.map +0 -1
  601. package/dist/chunks/vertexColorMixing-BUqoiJkS.esm.min.js +0 -2
  602. package/dist/chunks/vertexColorMixing-BUqoiJkS.esm.min.js.map +0 -1
  603. package/dist/chunks/vertexColorMixing-CBpXxGvM.esm.js +0 -421
  604. package/dist/chunks/vertexColorMixing-CBpXxGvM.esm.js.map +0 -1
  605. package/dist/chunks/vertexColorMixing-ChUhO7eS.esm.js +0 -531
  606. package/dist/chunks/vertexColorMixing-ChUhO7eS.esm.js.map +0 -1
  607. package/dist/chunks/vertexColorMixing-DbmkfWMo.esm.min.js +0 -2
  608. package/dist/chunks/vertexColorMixing-DbmkfWMo.esm.min.js.map +0 -1
  609. package/dist/chunks/webgpuEngine-DqprhQ4L.esm.js +0 -11538
  610. package/dist/chunks/webgpuEngine-DqprhQ4L.esm.js.map +0 -1
  611. package/dist/chunks/webgpuEngine-LpKjcEuV.esm.min.js +0 -2
  612. package/dist/chunks/webgpuEngine-LpKjcEuV.esm.min.js.map +0 -1
  613. package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
  614. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
  615. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
  616. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
  617. package/lib/index.d.ts +0 -591
  618. package/lib/index.js +0 -2165
  619. package/lib/index.js.map +0 -1
@@ -0,0 +1,66 @@
1
+ import * as deepmerge from "deepmerge";
2
+ var expDm = deepmerge["default"];
3
+ export { expDm as deepmerge };
4
+ /**
5
+ * Is the provided string a URL?
6
+ *
7
+ * @param urlToCheck the url to inspect
8
+ * @returns true if the string is a URL
9
+ */
10
+ export function isUrl(urlToCheck) {
11
+ if (urlToCheck.indexOf("http") === 0 || urlToCheck.indexOf("/") === 0 || urlToCheck.indexOf("./") === 0 || urlToCheck.indexOf("../") === 0) {
12
+ return true;
13
+ }
14
+ return false;
15
+ }
16
+ /**
17
+ * Convert a string from kebab-case to camelCase
18
+ * @param s string to convert
19
+ * @returns the converted string
20
+ */
21
+ export function kebabToCamel(s) {
22
+ return s.replace(/(-\w)/g, function (m) {
23
+ return m[1].toUpperCase();
24
+ });
25
+ }
26
+ //https://gist.github.com/youssman/745578062609e8acac9f
27
+ /**
28
+ * Convert a string from camelCase to kebab-case
29
+ * @param str string to convert
30
+ * @returns the converted string
31
+ */
32
+ export function camelToKebab(str) {
33
+ return !str
34
+ ? null
35
+ : str.replace(/([A-Z])/g, function (g) {
36
+ return "-" + g[0].toLowerCase();
37
+ });
38
+ }
39
+ /**
40
+ * This will extend an object with configuration values.
41
+ * What it practically does it take the keys from the configuration and set them on the object.
42
+ * If the configuration is a tree, it will traverse into the tree.
43
+ * @param object the object to extend
44
+ * @param config the configuration object that will extend the object
45
+ */
46
+ export function extendClassWithConfig(object, config) {
47
+ if (!config || typeof config !== "object") {
48
+ return;
49
+ }
50
+ Object.keys(config).forEach(function (key) {
51
+ if (key in object && typeof object[key] !== "function") {
52
+ // if (typeof object[key] === 'function') return;
53
+ // if it is an object, iterate internally until reaching basic types
54
+ // but null is an object so if its null and config[key] is not an object eg. number, the number should be set
55
+ if (typeof object[key] === "object" && (object[key] !== null || typeof config[key] === "object")) {
56
+ extendClassWithConfig(object[key], config[key]);
57
+ }
58
+ else {
59
+ if (config[key] !== undefined) {
60
+ object[key] = config[key];
61
+ }
62
+ }
63
+ }
64
+ });
65
+ }
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../tools/viewer/src/helper/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,WAAW,CAAC;AAEvC,IAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;AACnC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAC,UAAkB;IACpC,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,CAAS;IAClC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC;QAClC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,uDAAuD;AACvD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACpC,OAAO,CAAC,GAAG;QACP,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;YAC/B,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAW,EAAE,MAAW;IAC1D,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO;IACX,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG;QACrC,IAAI,GAAG,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC;YACrD,iDAAiD;YACjD,oEAAoE;YACpE,6GAA6G;YAC7G,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC/F,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACJ,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["import * as deepmerge from \"deepmerge\";\r\n\r\nconst expDm = deepmerge[\"default\"];\r\nexport { expDm as deepmerge };\r\n\r\n/**\r\n * Is the provided string a URL?\r\n *\r\n * @param urlToCheck the url to inspect\r\n * @returns true if the string is a URL\r\n */\r\nexport function isUrl(urlToCheck: string): boolean {\r\n if (urlToCheck.indexOf(\"http\") === 0 || urlToCheck.indexOf(\"/\") === 0 || urlToCheck.indexOf(\"./\") === 0 || urlToCheck.indexOf(\"../\") === 0) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Convert a string from kebab-case to camelCase\r\n * @param s string to convert\r\n * @returns the converted string\r\n */\r\nexport function kebabToCamel(s: string) {\r\n return s.replace(/(-\\w)/g, function (m) {\r\n return m[1].toUpperCase();\r\n });\r\n}\r\n\r\n//https://gist.github.com/youssman/745578062609e8acac9f\r\n/**\r\n * Convert a string from camelCase to kebab-case\r\n * @param str string to convert\r\n * @returns the converted string\r\n */\r\nexport function camelToKebab(str: string) {\r\n return !str\r\n ? null\r\n : str.replace(/([A-Z])/g, function (g) {\r\n return \"-\" + g[0].toLowerCase();\r\n });\r\n}\r\n\r\n/**\r\n * This will extend an object with configuration values.\r\n * What it practically does it take the keys from the configuration and set them on the object.\r\n * If the configuration is a tree, it will traverse into the tree.\r\n * @param object the object to extend\r\n * @param config the configuration object that will extend the object\r\n */\r\nexport function extendClassWithConfig(object: any, config: any) {\r\n if (!config || typeof config !== \"object\") {\r\n return;\r\n }\r\n Object.keys(config).forEach(function (key) {\r\n if (key in object && typeof object[key] !== \"function\") {\r\n // if (typeof object[key] === 'function') return;\r\n // if it is an object, iterate internally until reaching basic types\r\n // but null is an object so if its null and config[key] is not an object eg. number, the number should be set\r\n if (typeof object[key] === \"object\" && (object[key] !== null || typeof config[key] === \"object\")) {\r\n extendClassWithConfig(object[key], config[key]);\r\n } else {\r\n if (config[key] !== undefined) {\r\n object[key] = config[key];\r\n }\r\n }\r\n }\r\n });\r\n}\r\n"]}
package/index.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ import { mapperManager } from "./configuration/mappers";
2
+ import { viewerGlobals } from "./configuration/globals";
3
+ import { viewerManager } from "./viewer/viewerManager";
4
+ import { DefaultViewer } from "./viewer/defaultViewer";
5
+ import { AbstractViewer } from "./viewer/viewer";
6
+ import { telemetryManager } from "./managers/telemetryManager";
7
+ import { ModelLoader } from "./loader/modelLoader";
8
+ import { ViewerModel, ModelState } from "./model/viewerModel";
9
+ import { AnimationPlayMode, AnimationState } from "./model/modelAnimation";
10
+ import { ILoaderPlugin } from "./loader/plugins/loaderPlugin";
11
+ import { AbstractViewerNavbarButton } from "./templating/viewerTemplatePlugin";
12
+ import { registerCustomOptimizer } from "./optimizer/custom/index";
13
+ /**
14
+ * BabylonJS Viewer
15
+ *
16
+ * An HTML-Based viewer for 3D models, based on BabylonJS and its extensions.
17
+ */
18
+ import * as BABYLON from "@babylonjs/core/index.js";
19
+ import "@babylonjs/loaders/index.js";
20
+ import "pepjs";
21
+ import { InitTags } from "./initializer";
22
+ declare const disableInit: boolean;
23
+ /**
24
+ * Dispose all viewers currently registered
25
+ */
26
+ declare function disposeAll(): void;
27
+ declare const Version: string;
28
+ export { BABYLON, Version, InitTags, DefaultViewer, AbstractViewer, viewerGlobals, telemetryManager, disableInit, viewerManager, mapperManager, disposeAll, ModelLoader, ViewerModel, AnimationPlayMode, AnimationState, ModelState, ILoaderPlugin, AbstractViewerNavbarButton, registerCustomOptimizer, };
29
+ export { GLTF2 } from "@babylonjs/loaders/glTF/index.js";
30
+ export * from "./configuration/index";
package/index.js ADDED
@@ -0,0 +1,46 @@
1
+ import { mapperManager } from "./configuration/mappers.js";
2
+ import { viewerGlobals } from "./configuration/globals.js";
3
+ import { viewerManager } from "./viewer/viewerManager.js";
4
+ import { DefaultViewer } from "./viewer/defaultViewer.js";
5
+ import { AbstractViewer } from "./viewer/viewer.js";
6
+ import { telemetryManager } from "./managers/telemetryManager.js";
7
+ import { ModelLoader } from "./loader/modelLoader.js";
8
+ import { ViewerModel, ModelState } from "./model/viewerModel.js";
9
+ import { AnimationPlayMode, AnimationState } from "./model/modelAnimation.js";
10
+ import { AbstractViewerNavbarButton } from "./templating/viewerTemplatePlugin.js";
11
+ // eslint-disable-next-line import/no-internal-modules
12
+ import { registerCustomOptimizer } from "./optimizer/custom/index.js";
13
+ import { Logger } from "@babylonjs/core/Misc/logger.js";
14
+ /**
15
+ * BabylonJS Viewer
16
+ *
17
+ * An HTML-Based viewer for 3D models, based on BabylonJS and its extensions.
18
+ */
19
+ // eslint-disable-next-line import/no-internal-modules
20
+ import * as BABYLON from "@babylonjs/core/index.js";
21
+ // load needed modules.
22
+ // eslint-disable-next-line import/no-internal-modules
23
+ import "@babylonjs/loaders/index.js";
24
+ import "pepjs";
25
+ import { initListeners, InitTags } from "./initializer.js";
26
+ initListeners();
27
+ //deprecated, here for backwards compatibility
28
+ var disableInit = viewerGlobals.disableInit;
29
+ /**
30
+ * Dispose all viewers currently registered
31
+ */
32
+ function disposeAll() {
33
+ viewerManager.dispose();
34
+ mapperManager.dispose();
35
+ telemetryManager.dispose();
36
+ }
37
+ var Version = viewerGlobals.version;
38
+ Logger.Log("Babylon.js viewer (v" + Version + ")");
39
+ // public API for initialization
40
+ export { BABYLON, Version, InitTags, DefaultViewer, AbstractViewer, viewerGlobals, telemetryManager, disableInit, viewerManager, mapperManager, disposeAll, ModelLoader, ViewerModel, AnimationPlayMode, AnimationState, ModelState, AbstractViewerNavbarButton, registerCustomOptimizer, };
41
+ // eslint-disable-next-line import/no-internal-modules
42
+ export { GLTF2 } from "@babylonjs/loaders/glTF/index.js";
43
+ // export publicliy all configuration interfaces
44
+ // eslint-disable-next-line import/no-internal-modules
45
+ export * from "./configuration/index.js";
46
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../tools/viewer/src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,sDAAsD;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,uCAAyB;AAE1C;;;;GAIG;AAEH,sDAAsD;AACtD,OAAO,KAAK,OAAO,iCAAmB;AAEtC,uBAAuB;AACvB,sDAAsD;AACtD,qCAAuB;AACvB,OAAO,OAAO,CAAC;AAEf,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,aAAa,EAAE,CAAC;AAEhB,8CAA8C;AAC9C,IAAM,WAAW,GAAY,aAAa,CAAC,WAAW,CAAC;AAEvD;;GAEG;AACH,SAAS,UAAU;IACf,aAAa,CAAC,OAAO,EAAE,CAAC;IACxB,aAAa,CAAC,OAAO,EAAE,CAAC;IACxB,gBAAgB,CAAC,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,IAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;AAEtC,MAAM,CAAC,GAAG,CAAC,sBAAsB,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;AAEnD,gCAAgC;AAChC,OAAO,EACH,OAAO,EACP,OAAO,EACP,QAAQ,EACR,aAAa,EACb,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,UAAU,EAEV,0BAA0B,EAC1B,uBAAuB,GAC1B,CAAC;AACF,sDAAsD;AACtD,OAAO,EAAE,KAAK,EAAE,yCAA2B;AAC3C,gDAAgD;AAChD,sDAAsD;AACtD,cAAc,uBAAuB,CAAC","sourcesContent":["import { mapperManager } from \"./configuration/mappers\";\r\nimport { viewerGlobals } from \"./configuration/globals\";\r\nimport { viewerManager } from \"./viewer/viewerManager\";\r\nimport { DefaultViewer } from \"./viewer/defaultViewer\";\r\nimport { AbstractViewer } from \"./viewer/viewer\";\r\nimport { telemetryManager } from \"./managers/telemetryManager\";\r\nimport { ModelLoader } from \"./loader/modelLoader\";\r\nimport { ViewerModel, ModelState } from \"./model/viewerModel\";\r\nimport { AnimationPlayMode, AnimationState } from \"./model/modelAnimation\";\r\nimport { ILoaderPlugin } from \"./loader/plugins/loaderPlugin\";\r\nimport { AbstractViewerNavbarButton } from \"./templating/viewerTemplatePlugin\";\r\n// eslint-disable-next-line import/no-internal-modules\r\nimport { registerCustomOptimizer } from \"./optimizer/custom/index\";\r\nimport { Logger } from \"core/Misc/logger\";\r\n\r\n/**\r\n * BabylonJS Viewer\r\n *\r\n * An HTML-Based viewer for 3D models, based on BabylonJS and its extensions.\r\n */\r\n\r\n// eslint-disable-next-line import/no-internal-modules\r\nimport * as BABYLON from \"core/index\";\r\n\r\n// load needed modules.\r\n// eslint-disable-next-line import/no-internal-modules\r\nimport \"loaders/index\";\r\nimport \"pepjs\";\r\n\r\nimport { initListeners, InitTags } from \"./initializer\";\r\n\r\ninitListeners();\r\n\r\n//deprecated, here for backwards compatibility\r\nconst disableInit: boolean = viewerGlobals.disableInit;\r\n\r\n/**\r\n * Dispose all viewers currently registered\r\n */\r\nfunction disposeAll() {\r\n viewerManager.dispose();\r\n mapperManager.dispose();\r\n telemetryManager.dispose();\r\n}\r\n\r\nconst Version = viewerGlobals.version;\r\n\r\nLogger.Log(\"Babylon.js viewer (v\" + Version + \")\");\r\n\r\n// public API for initialization\r\nexport {\r\n BABYLON,\r\n Version,\r\n InitTags,\r\n DefaultViewer,\r\n AbstractViewer,\r\n viewerGlobals,\r\n telemetryManager,\r\n disableInit,\r\n viewerManager,\r\n mapperManager,\r\n disposeAll,\r\n ModelLoader,\r\n ViewerModel,\r\n AnimationPlayMode,\r\n AnimationState,\r\n ModelState,\r\n ILoaderPlugin,\r\n AbstractViewerNavbarButton,\r\n registerCustomOptimizer,\r\n};\r\n// eslint-disable-next-line import/no-internal-modules\r\nexport { GLTF2 } from \"loaders/glTF/index\";\r\n// export publicliy all configuration interfaces\r\n// eslint-disable-next-line import/no-internal-modules\r\nexport * from \"./configuration/index\";\r\n"]}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Will attach an init function the DOMContentLoaded event.
3
+ * The init function will be removed automatically after the event was triggered.
4
+ */
5
+ export declare function initListeners(): void;
6
+ /**
7
+ * Select all HTML tags on the page that match the selector and initialize a viewer
8
+ *
9
+ * @param selector the selector to initialize the viewer on (default is 'babylon')
10
+ */
11
+ export declare function InitTags(selector?: string): void;
package/initializer.js ADDED
@@ -0,0 +1,35 @@
1
+ import { DefaultViewer } from "./viewer/defaultViewer.js";
2
+ import { mapperManager } from "./configuration/mappers.js";
3
+ import { viewerGlobals } from "./configuration/globals.js";
4
+ /**
5
+ * Will attach an init function the DOMContentLoaded event.
6
+ * The init function will be removed automatically after the event was triggered.
7
+ */
8
+ export function initListeners() {
9
+ document.addEventListener("DOMContentLoaded", init);
10
+ function init() {
11
+ document.removeEventListener("DOMContentLoaded", init);
12
+ if (viewerGlobals.disableInit) {
13
+ return;
14
+ }
15
+ InitTags();
16
+ }
17
+ }
18
+ /**
19
+ * Select all HTML tags on the page that match the selector and initialize a viewer
20
+ *
21
+ * @param selector the selector to initialize the viewer on (default is 'babylon')
22
+ */
23
+ export function InitTags(selector) {
24
+ if (selector === void 0) { selector = "babylon"; }
25
+ var elements = document.querySelectorAll(selector);
26
+ for (var i = 0; i < elements.length; ++i) {
27
+ var element = elements.item(i);
28
+ // get the html configuration
29
+ var configMapper = mapperManager.getMapper("dom");
30
+ var config = configMapper.map(element);
31
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
32
+ new DefaultViewer(element, config);
33
+ }
34
+ }
35
+ //# sourceMappingURL=initializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initializer.js","sourceRoot":"","sources":["../../../tools/viewer/src/initializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,aAAa;IACzB,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACpD,SAAS,IAAI;QACT,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QACD,QAAQ,EAAE,CAAC;IACf,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,QAA4B;IAA5B,yBAAA,EAAA,oBAA4B;IACjD,IAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACvC,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEjC,6BAA6B;QAC7B,IAAM,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACpD,IAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEzC,6DAA6D;QAC7D,IAAI,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;AACL,CAAC","sourcesContent":["import { DefaultViewer } from \"./viewer/defaultViewer\";\r\nimport { mapperManager } from \"./configuration/mappers\";\r\nimport { viewerGlobals } from \"./configuration/globals\";\r\n\r\n/**\r\n * Will attach an init function the DOMContentLoaded event.\r\n * The init function will be removed automatically after the event was triggered.\r\n */\r\nexport function initListeners() {\r\n document.addEventListener(\"DOMContentLoaded\", init);\r\n function init() {\r\n document.removeEventListener(\"DOMContentLoaded\", init);\r\n if (viewerGlobals.disableInit) {\r\n return;\r\n }\r\n InitTags();\r\n }\r\n}\r\n\r\n/**\r\n * Select all HTML tags on the page that match the selector and initialize a viewer\r\n *\r\n * @param selector the selector to initialize the viewer on (default is 'babylon')\r\n */\r\nexport function InitTags(selector: string = \"babylon\") {\r\n const elements = document.querySelectorAll(selector);\r\n for (let i = 0; i < elements.length; ++i) {\r\n const element = elements.item(i);\r\n\r\n // get the html configuration\r\n const configMapper = mapperManager.getMapper(\"dom\");\r\n const config = configMapper.map(element);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n new DefaultViewer(element, config);\r\n }\r\n}\r\n"]}
@@ -0,0 +1,5 @@
1
+ export declare const enum CameraBehavior {
2
+ AUTOROTATION = 0,
3
+ BOUNCING = 1,
4
+ FRAMING = 2
5
+ }
package/interfaces.js ADDED
@@ -0,0 +1,7 @@
1
+ export var CameraBehavior;
2
+ (function (CameraBehavior) {
3
+ CameraBehavior[CameraBehavior["AUTOROTATION"] = 0] = "AUTOROTATION";
4
+ CameraBehavior[CameraBehavior["BOUNCING"] = 1] = "BOUNCING";
5
+ CameraBehavior[CameraBehavior["FRAMING"] = 2] = "FRAMING";
6
+ })(CameraBehavior || (CameraBehavior = {}));
7
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../tools/viewer/src/interfaces.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAkB,cAIjB;AAJD,WAAkB,cAAc;IAC5B,mEAAY,CAAA;IACZ,2DAAQ,CAAA;IACR,yDAAO,CAAA;AACX,CAAC,EAJiB,cAAc,KAAd,cAAc,QAI/B","sourcesContent":["export const enum CameraBehavior {\r\n AUTOROTATION,\r\n BOUNCING,\r\n FRAMING,\r\n}\r\n"]}
@@ -0,0 +1,126 @@
1
+ import { Vector3 } from "@babylonjs/core/Maths/math.js";
2
+ import { TextureCube } from "./texture";
3
+ /**
4
+ * Spherical polynomial coefficients (counter part to spherical harmonic coefficients used in shader irradiance calculation)
5
+ * @ignoreChildren
6
+ */
7
+ export interface SphericalPolynomalCoefficients {
8
+ x: Vector3;
9
+ y: Vector3;
10
+ z: Vector3;
11
+ xx: Vector3;
12
+ yy: Vector3;
13
+ zz: Vector3;
14
+ yz: Vector3;
15
+ zx: Vector3;
16
+ xy: Vector3;
17
+ }
18
+ /**
19
+ * Wraps data and maps required for environments with physically based rendering
20
+ */
21
+ export interface PBREnvironment {
22
+ /**
23
+ * Spherical Polynomial Coefficients representing an irradiance map
24
+ */
25
+ irradiancePolynomialCoefficients: SphericalPolynomalCoefficients;
26
+ /**
27
+ * Specular cubemap
28
+ */
29
+ specularTexture?: TextureCube;
30
+ /**
31
+ * A scale factor applied to RGB values after reading from environment maps
32
+ */
33
+ textureIntensityScale: number;
34
+ }
35
+ /**
36
+ * Environment map representations: layouts, projections and approximations
37
+ */
38
+ export type MapType = "irradiance_sh_coefficients_9" | "cubemap_faces";
39
+ /**
40
+ * Image type used for environment map
41
+ */
42
+ export type ImageType = "png";
43
+ /**
44
+ * A generic field in JSON that report's its type
45
+ */
46
+ export interface TypedObject<T> {
47
+ type: T;
48
+ }
49
+ /**
50
+ * Describes a range of bytes starting at byte pos (inclusive) and finishing at byte pos + length - 1
51
+ */
52
+ export interface ByteRange {
53
+ pos: number;
54
+ length: number;
55
+ }
56
+ /**
57
+ * Complete Spectre Environment JSON Descriptor
58
+ */
59
+ export interface EnvJsonDescriptor {
60
+ radiance: TypedObject<MapType>;
61
+ irradiance: TypedObject<MapType>;
62
+ specular: TypedObject<MapType>;
63
+ }
64
+ /**
65
+ * Spherical harmonic coefficients to provide an irradiance map
66
+ */
67
+ export interface IrradianceSHCoefficients9 extends TypedObject<MapType> {
68
+ l00: Array<number>;
69
+ l1_1: Array<number>;
70
+ l10: Array<number>;
71
+ l11: Array<number>;
72
+ l2_2: Array<number>;
73
+ l2_1: Array<number>;
74
+ l20: Array<number>;
75
+ l21: Array<number>;
76
+ l22: Array<number>;
77
+ }
78
+ /**
79
+ * A generic set of images, where the image content is specified by byte ranges in the mipmaps field
80
+ */
81
+ export interface ImageSet<T> extends TypedObject<MapType> {
82
+ imageType: ImageType;
83
+ width: number;
84
+ height: number;
85
+ mipmaps: Array<T>;
86
+ multiplier: number;
87
+ }
88
+ /**
89
+ * A set of cubemap faces
90
+ */
91
+ export type CubemapFaces = ImageSet<Array<ByteRange>>;
92
+ /**
93
+ * A single image containing an atlas of equirectangular-projection maps across all mip levels
94
+ */
95
+ export type EquirectangularMipmapAtlas = ImageSet<ByteRange>;
96
+ /**
97
+ * A static class proving methods to aid parsing Spectre environment files
98
+ */
99
+ export declare class EnvironmentDeserializer {
100
+ /**
101
+ * Parses an arraybuffer into a new PBREnvironment object
102
+ * @param arrayBuffer The arraybuffer of the Spectre environment file
103
+ * @returns a PBREnvironment object
104
+ */
105
+ static Parse(arrayBuffer: ArrayBuffer): PBREnvironment;
106
+ /**
107
+ * Convert from irradiance to outgoing radiance for Lambertian BDRF, suitable for efficient shader evaluation.
108
+ * L = (1/pi) * E * rho
109
+ *
110
+ * This is done by an additional scale by 1/pi, so is a fairly trivial operation but important conceptually.
111
+ * @param harmonics Spherical harmonic coefficients (9)
112
+ */
113
+ private static _ConvertSHIrradianceToLambertianRadiance;
114
+ /**
115
+ * Convert spherical harmonics to spherical polynomial coefficients
116
+ * @param harmonics Spherical harmonic coefficients (9)
117
+ * @param outPolynomialCoefficents Polynomial coefficients (9) object to store result
118
+ */
119
+ private static _ConvertSHToSP;
120
+ /**
121
+ * Multiplies harmonic coefficients in place
122
+ * @param harmonics Spherical harmonic coefficients (9)
123
+ * @param scaleFactor Value to multiply by
124
+ */
125
+ private static _ScaleSH;
126
+ }
@@ -0,0 +1,191 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
2
+ import { Vector3 } from "@babylonjs/core/Maths/math.js";
3
+ import { Tools } from "@babylonjs/core/Misc/tools.js";
4
+ import { TextureCube } from "./texture.js";
5
+ /**
6
+ * A static class proving methods to aid parsing Spectre environment files
7
+ */
8
+ var EnvironmentDeserializer = /** @class */ (function () {
9
+ function EnvironmentDeserializer() {
10
+ }
11
+ /**
12
+ * Parses an arraybuffer into a new PBREnvironment object
13
+ * @param arrayBuffer The arraybuffer of the Spectre environment file
14
+ * @returns a PBREnvironment object
15
+ */
16
+ EnvironmentDeserializer.Parse = function (arrayBuffer) {
17
+ var environment = {
18
+ //irradiance
19
+ irradiancePolynomialCoefficients: {
20
+ x: new Vector3(0, 0, 0),
21
+ y: new Vector3(0, 0, 0),
22
+ z: new Vector3(0, 0, 0),
23
+ xx: new Vector3(0, 0, 0),
24
+ yy: new Vector3(0, 0, 0),
25
+ zz: new Vector3(0, 0, 0),
26
+ yz: new Vector3(0, 0, 0),
27
+ zx: new Vector3(0, 0, 0),
28
+ xy: new Vector3(0, 0, 0),
29
+ },
30
+ //specular
31
+ textureIntensityScale: 1.0,
32
+ };
33
+ //read .env
34
+ var littleEndian = false;
35
+ var magicBytes = [0x86, 0x16, 0x87, 0x96, 0xf6, 0xd6, 0x96, 0x36];
36
+ var dataView = new DataView(arrayBuffer);
37
+ var pos = 0;
38
+ for (var i = 0; i < magicBytes.length; i++) {
39
+ if (dataView.getUint8(pos++) !== magicBytes[i]) {
40
+ Tools.Error("Not a Spectre environment map");
41
+ }
42
+ }
43
+ var version = dataView.getUint16(pos, littleEndian);
44
+ pos += 2;
45
+ if (version !== 1) {
46
+ Tools.Warn('Unsupported Spectre environment map version "' + version + '"');
47
+ }
48
+ //read json descriptor - collect characters up to null terminator
49
+ var descriptorString = "";
50
+ var charCode = 0x00;
51
+ while ((charCode = dataView.getUint8(pos++))) {
52
+ descriptorString += String.fromCharCode(charCode);
53
+ }
54
+ var descriptor = JSON.parse(descriptorString);
55
+ var payloadPos = pos;
56
+ //irradiance
57
+ switch (descriptor.irradiance.type) {
58
+ case "irradiance_sh_coefficients_9": {
59
+ //irradiance
60
+ var harmonics = descriptor.irradiance;
61
+ EnvironmentDeserializer._ConvertSHIrradianceToLambertianRadiance(harmonics);
62
+ //harmonics now represent radiance
63
+ EnvironmentDeserializer._ConvertSHToSP(harmonics, environment.irradiancePolynomialCoefficients);
64
+ break;
65
+ }
66
+ default:
67
+ Tools.Error("Unhandled MapType descriptor.irradiance.type (" + descriptor.irradiance.type + ")");
68
+ }
69
+ //specular
70
+ switch (descriptor.specular.type) {
71
+ case "cubemap_faces": {
72
+ var specularDescriptor = descriptor.specular;
73
+ var specularTexture = (environment.specularTexture = new TextureCube(6408 /* PixelFormat.RGBA */, 5121 /* PixelType.UNSIGNED_BYTE */));
74
+ environment.textureIntensityScale = specularDescriptor.multiplier != null ? specularDescriptor.multiplier : 1.0;
75
+ var mipmaps = specularDescriptor.mipmaps;
76
+ var imageType = specularDescriptor.imageType;
77
+ for (var l = 0; l < mipmaps.length; l++) {
78
+ var faceRanges = mipmaps[l];
79
+ specularTexture.source[l] = [];
80
+ for (var i = 0; i < 6; i++) {
81
+ var range = faceRanges[i];
82
+ var bytes = new Uint8Array(arrayBuffer, payloadPos + range.pos, range.length);
83
+ switch (imageType) {
84
+ case "png": {
85
+ //construct image element from bytes
86
+ var image = new Image();
87
+ var src = URL.createObjectURL(new Blob([bytes], { type: "image/png" }));
88
+ image.src = src;
89
+ specularTexture.source[l][i] = image;
90
+ break;
91
+ }
92
+ default:
93
+ Tools.Error("Unhandled ImageType descriptor.specular.imageType (" + imageType + ")");
94
+ }
95
+ }
96
+ }
97
+ break;
98
+ }
99
+ default:
100
+ Tools.Error("Unhandled MapType descriptor.specular.type (" + descriptor.specular.type + ")");
101
+ }
102
+ return environment;
103
+ };
104
+ /**
105
+ * Convert from irradiance to outgoing radiance for Lambertian BDRF, suitable for efficient shader evaluation.
106
+ * L = (1/pi) * E * rho
107
+ *
108
+ * This is done by an additional scale by 1/pi, so is a fairly trivial operation but important conceptually.
109
+ * @param harmonics Spherical harmonic coefficients (9)
110
+ */
111
+ EnvironmentDeserializer._ConvertSHIrradianceToLambertianRadiance = function (harmonics) {
112
+ EnvironmentDeserializer._ScaleSH(harmonics, 1 / Math.PI);
113
+ // The resultant SH now represents outgoing radiance, so includes the Lambert 1/pi normalisation factor but without albedo (rho) applied
114
+ // (The pixel shader must apply albedo after texture fetches, etc).
115
+ };
116
+ /**
117
+ * Convert spherical harmonics to spherical polynomial coefficients
118
+ * @param harmonics Spherical harmonic coefficients (9)
119
+ * @param outPolynomialCoefficents Polynomial coefficients (9) object to store result
120
+ */
121
+ EnvironmentDeserializer._ConvertSHToSP = function (harmonics, outPolynomialCoefficents) {
122
+ var rPi = 1 / Math.PI;
123
+ //x
124
+ outPolynomialCoefficents.x.x = 1.02333 * harmonics.l11[0] * rPi;
125
+ outPolynomialCoefficents.x.y = 1.02333 * harmonics.l11[1] * rPi;
126
+ outPolynomialCoefficents.x.z = 1.02333 * harmonics.l11[2] * rPi;
127
+ outPolynomialCoefficents.y.x = 1.02333 * harmonics.l1_1[0] * rPi;
128
+ outPolynomialCoefficents.y.y = 1.02333 * harmonics.l1_1[1] * rPi;
129
+ outPolynomialCoefficents.y.z = 1.02333 * harmonics.l1_1[2] * rPi;
130
+ outPolynomialCoefficents.z.x = 1.02333 * harmonics.l10[0] * rPi;
131
+ outPolynomialCoefficents.z.y = 1.02333 * harmonics.l10[1] * rPi;
132
+ outPolynomialCoefficents.z.z = 1.02333 * harmonics.l10[2] * rPi;
133
+ //xx
134
+ outPolynomialCoefficents.xx.x = (0.886277 * harmonics.l00[0] - 0.247708 * harmonics.l20[0] + 0.429043 * harmonics.l22[0]) * rPi;
135
+ outPolynomialCoefficents.xx.y = (0.886277 * harmonics.l00[1] - 0.247708 * harmonics.l20[1] + 0.429043 * harmonics.l22[1]) * rPi;
136
+ outPolynomialCoefficents.xx.z = (0.886277 * harmonics.l00[2] - 0.247708 * harmonics.l20[2] + 0.429043 * harmonics.l22[2]) * rPi;
137
+ outPolynomialCoefficents.yy.x = (0.886277 * harmonics.l00[0] - 0.247708 * harmonics.l20[0] - 0.429043 * harmonics.l22[0]) * rPi;
138
+ outPolynomialCoefficents.yy.y = (0.886277 * harmonics.l00[1] - 0.247708 * harmonics.l20[1] - 0.429043 * harmonics.l22[1]) * rPi;
139
+ outPolynomialCoefficents.yy.z = (0.886277 * harmonics.l00[2] - 0.247708 * harmonics.l20[2] - 0.429043 * harmonics.l22[2]) * rPi;
140
+ outPolynomialCoefficents.zz.x = (0.886277 * harmonics.l00[0] + 0.495417 * harmonics.l20[0]) * rPi;
141
+ outPolynomialCoefficents.zz.y = (0.886277 * harmonics.l00[1] + 0.495417 * harmonics.l20[1]) * rPi;
142
+ outPolynomialCoefficents.zz.z = (0.886277 * harmonics.l00[2] + 0.495417 * harmonics.l20[2]) * rPi;
143
+ //yz
144
+ outPolynomialCoefficents.yz.x = 0.858086 * harmonics.l2_1[0] * rPi;
145
+ outPolynomialCoefficents.yz.y = 0.858086 * harmonics.l2_1[1] * rPi;
146
+ outPolynomialCoefficents.yz.z = 0.858086 * harmonics.l2_1[2] * rPi;
147
+ outPolynomialCoefficents.zx.x = 0.858086 * harmonics.l21[0] * rPi;
148
+ outPolynomialCoefficents.zx.y = 0.858086 * harmonics.l21[1] * rPi;
149
+ outPolynomialCoefficents.zx.z = 0.858086 * harmonics.l21[2] * rPi;
150
+ outPolynomialCoefficents.xy.x = 0.858086 * harmonics.l2_2[0] * rPi;
151
+ outPolynomialCoefficents.xy.y = 0.858086 * harmonics.l2_2[1] * rPi;
152
+ outPolynomialCoefficents.xy.z = 0.858086 * harmonics.l2_2[2] * rPi;
153
+ };
154
+ /**
155
+ * Multiplies harmonic coefficients in place
156
+ * @param harmonics Spherical harmonic coefficients (9)
157
+ * @param scaleFactor Value to multiply by
158
+ */
159
+ EnvironmentDeserializer._ScaleSH = function (harmonics, scaleFactor) {
160
+ harmonics.l00[0] *= scaleFactor;
161
+ harmonics.l00[1] *= scaleFactor;
162
+ harmonics.l00[2] *= scaleFactor;
163
+ harmonics.l1_1[0] *= scaleFactor;
164
+ harmonics.l1_1[1] *= scaleFactor;
165
+ harmonics.l1_1[2] *= scaleFactor;
166
+ harmonics.l10[0] *= scaleFactor;
167
+ harmonics.l10[1] *= scaleFactor;
168
+ harmonics.l10[2] *= scaleFactor;
169
+ harmonics.l11[0] *= scaleFactor;
170
+ harmonics.l11[1] *= scaleFactor;
171
+ harmonics.l11[2] *= scaleFactor;
172
+ harmonics.l2_2[0] *= scaleFactor;
173
+ harmonics.l2_2[1] *= scaleFactor;
174
+ harmonics.l2_2[2] *= scaleFactor;
175
+ harmonics.l2_1[0] *= scaleFactor;
176
+ harmonics.l2_1[1] *= scaleFactor;
177
+ harmonics.l2_1[2] *= scaleFactor;
178
+ harmonics.l20[0] *= scaleFactor;
179
+ harmonics.l20[1] *= scaleFactor;
180
+ harmonics.l20[2] *= scaleFactor;
181
+ harmonics.l21[0] *= scaleFactor;
182
+ harmonics.l21[1] *= scaleFactor;
183
+ harmonics.l21[2] *= scaleFactor;
184
+ harmonics.l22[0] *= scaleFactor;
185
+ harmonics.l22[1] *= scaleFactor;
186
+ harmonics.l22[2] *= scaleFactor;
187
+ };
188
+ return EnvironmentDeserializer;
189
+ }());
190
+ export { EnvironmentDeserializer };
191
+ //# sourceMappingURL=environmentSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentSerializer.js","sourceRoot":"","sources":["../../../../tools/viewer/src/labs/environmentSerializer.ts"],"names":[],"mappings":"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,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAChI,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAChI,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAEhI,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAChI,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAChI,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAEhI,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAClG,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAClG,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAElG,IAAI;QACJ,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnE,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnE,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAEnE,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAClE,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAClE,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAElE,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnE,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACnE,wBAAwB,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACY,gCAAQ,GAAvB,UAAwB,SAAc,EAAE,WAAmB;QACvD,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACjC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QACjC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;QAChC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;IACpC,CAAC;IACL,8BAAC;AAAD,CAAC,AArND,IAqNC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nimport { Vector3 } from \"core/Maths/math\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport { TextureCube, PixelFormat, PixelType } from \"./texture\";\r\n\r\n/**\r\n * Spherical polynomial coefficients (counter part to spherical harmonic coefficients used in shader irradiance calculation)\r\n * @ignoreChildren\r\n */\r\nexport interface SphericalPolynomalCoefficients {\r\n x: Vector3;\r\n y: Vector3;\r\n z: Vector3;\r\n xx: Vector3;\r\n yy: Vector3;\r\n zz: Vector3;\r\n yz: Vector3;\r\n zx: Vector3;\r\n xy: Vector3;\r\n}\r\n\r\n/**\r\n * Wraps data and maps required for environments with physically based rendering\r\n */\r\nexport interface PBREnvironment {\r\n /**\r\n * Spherical Polynomial Coefficients representing an irradiance map\r\n */\r\n irradiancePolynomialCoefficients: SphericalPolynomalCoefficients;\r\n\r\n /**\r\n * Specular cubemap\r\n */\r\n specularTexture?: TextureCube;\r\n /**\r\n * A scale factor applied to RGB values after reading from environment maps\r\n */\r\n textureIntensityScale: number;\r\n}\r\n\r\n/**\r\n * Environment map representations: layouts, projections and approximations\r\n */\r\nexport type MapType = \"irradiance_sh_coefficients_9\" | \"cubemap_faces\";\r\n\r\n/**\r\n * Image type used for environment map\r\n */\r\nexport type ImageType = \"png\";\r\n\r\n//Payload Descriptor\r\n\r\n/**\r\n * A generic field in JSON that report's its type\r\n */\r\nexport interface TypedObject<T> {\r\n type: T;\r\n}\r\n\r\n/**\r\n * Describes a range of bytes starting at byte pos (inclusive) and finishing at byte pos + length - 1\r\n */\r\nexport interface ByteRange {\r\n pos: number;\r\n length: number;\r\n}\r\n\r\n/**\r\n * Complete Spectre Environment JSON Descriptor\r\n */\r\nexport interface EnvJsonDescriptor {\r\n radiance: TypedObject<MapType>;\r\n irradiance: TypedObject<MapType>;\r\n specular: TypedObject<MapType>;\r\n}\r\n\r\n/**\r\n * Spherical harmonic coefficients to provide an irradiance map\r\n */\r\nexport interface IrradianceSHCoefficients9 extends TypedObject<MapType> {\r\n l00: Array<number>;\r\n\r\n l1_1: Array<number>;\r\n l10: Array<number>;\r\n l11: Array<number>;\r\n\r\n l2_2: Array<number>;\r\n l2_1: Array<number>;\r\n l20: Array<number>;\r\n l21: Array<number>;\r\n l22: Array<number>;\r\n}\r\n\r\n/**\r\n * A generic set of images, where the image content is specified by byte ranges in the mipmaps field\r\n */\r\nexport interface ImageSet<T> extends TypedObject<MapType> {\r\n imageType: ImageType;\r\n width: number;\r\n height: number;\r\n mipmaps: Array<T>;\r\n multiplier: number;\r\n}\r\n\r\n/**\r\n * A set of cubemap faces\r\n */\r\nexport type CubemapFaces = ImageSet<Array<ByteRange>>;\r\n\r\n/**\r\n * A single image containing an atlas of equirectangular-projection maps across all mip levels\r\n */\r\nexport type EquirectangularMipmapAtlas = ImageSet<ByteRange>;\r\n\r\n/**\r\n * A static class proving methods to aid parsing Spectre environment files\r\n */\r\nexport class EnvironmentDeserializer {\r\n /**\r\n * Parses an arraybuffer into a new PBREnvironment object\r\n * @param arrayBuffer The arraybuffer of the Spectre environment file\r\n * @returns a PBREnvironment object\r\n */\r\n public static Parse(arrayBuffer: ArrayBuffer): PBREnvironment {\r\n const environment: PBREnvironment = {\r\n //irradiance\r\n irradiancePolynomialCoefficients: {\r\n x: new Vector3(0, 0, 0),\r\n y: new Vector3(0, 0, 0),\r\n z: new Vector3(0, 0, 0),\r\n xx: new Vector3(0, 0, 0),\r\n yy: new Vector3(0, 0, 0),\r\n zz: new Vector3(0, 0, 0),\r\n yz: new Vector3(0, 0, 0),\r\n zx: new Vector3(0, 0, 0),\r\n xy: new Vector3(0, 0, 0),\r\n },\r\n\r\n //specular\r\n textureIntensityScale: 1.0,\r\n };\r\n\r\n //read .env\r\n const littleEndian = false;\r\n\r\n const magicBytes = [0x86, 0x16, 0x87, 0x96, 0xf6, 0xd6, 0x96, 0x36];\r\n\r\n const dataView = new DataView(arrayBuffer);\r\n let pos = 0;\r\n\r\n for (let i = 0; i < magicBytes.length; i++) {\r\n if (dataView.getUint8(pos++) !== magicBytes[i]) {\r\n Tools.Error(\"Not a Spectre environment map\");\r\n }\r\n }\r\n\r\n const version = dataView.getUint16(pos, littleEndian);\r\n pos += 2;\r\n\r\n if (version !== 1) {\r\n Tools.Warn('Unsupported Spectre environment map version \"' + version + '\"');\r\n }\r\n\r\n //read json descriptor - collect characters up to null terminator\r\n let descriptorString = \"\";\r\n let charCode = 0x00;\r\n while ((charCode = dataView.getUint8(pos++))) {\r\n descriptorString += String.fromCharCode(charCode);\r\n }\r\n\r\n const descriptor: EnvJsonDescriptor = JSON.parse(descriptorString);\r\n\r\n const payloadPos = pos;\r\n\r\n //irradiance\r\n switch (descriptor.irradiance.type) {\r\n case \"irradiance_sh_coefficients_9\": {\r\n //irradiance\r\n const harmonics = <IrradianceSHCoefficients9>descriptor.irradiance;\r\n\r\n EnvironmentDeserializer._ConvertSHIrradianceToLambertianRadiance(harmonics);\r\n\r\n //harmonics now represent radiance\r\n EnvironmentDeserializer._ConvertSHToSP(harmonics, environment.irradiancePolynomialCoefficients);\r\n break;\r\n }\r\n default:\r\n Tools.Error(\"Unhandled MapType descriptor.irradiance.type (\" + descriptor.irradiance.type + \")\");\r\n }\r\n\r\n //specular\r\n switch (descriptor.specular.type) {\r\n case \"cubemap_faces\": {\r\n const specularDescriptor = <CubemapFaces>descriptor.specular;\r\n\r\n const specularTexture = (environment.specularTexture = new TextureCube(PixelFormat.RGBA, PixelType.UNSIGNED_BYTE));\r\n environment.textureIntensityScale = specularDescriptor.multiplier != null ? specularDescriptor.multiplier : 1.0;\r\n\r\n const mipmaps = specularDescriptor.mipmaps;\r\n const imageType = specularDescriptor.imageType;\r\n\r\n for (let l = 0; l < mipmaps.length; l++) {\r\n const faceRanges = mipmaps[l];\r\n\r\n specularTexture.source[l] = [];\r\n\r\n for (let i = 0; i < 6; i++) {\r\n const range = faceRanges[i];\r\n const bytes = new Uint8Array(arrayBuffer, payloadPos + range.pos, range.length);\r\n\r\n switch (imageType) {\r\n case \"png\": {\r\n //construct image element from bytes\r\n const image = new Image();\r\n const src = URL.createObjectURL(new Blob([bytes], { type: \"image/png\" }));\r\n image.src = src;\r\n specularTexture.source[l][i] = image;\r\n\r\n break;\r\n }\r\n default:\r\n Tools.Error(\"Unhandled ImageType descriptor.specular.imageType (\" + imageType + \")\");\r\n }\r\n }\r\n }\r\n\r\n break;\r\n }\r\n default:\r\n Tools.Error(\"Unhandled MapType descriptor.specular.type (\" + descriptor.specular.type + \")\");\r\n }\r\n\r\n return environment;\r\n }\r\n\r\n /**\r\n * Convert from irradiance to outgoing radiance for Lambertian BDRF, suitable for efficient shader evaluation.\r\n *\t L = (1/pi) * E * rho\r\n *\r\n * This is done by an additional scale by 1/pi, so is a fairly trivial operation but important conceptually.\r\n * @param harmonics Spherical harmonic coefficients (9)\r\n */\r\n private static _ConvertSHIrradianceToLambertianRadiance(harmonics: any): void {\r\n EnvironmentDeserializer._ScaleSH(harmonics, 1 / Math.PI);\r\n // The resultant SH now represents outgoing radiance, so includes the Lambert 1/pi normalisation factor but without albedo (rho) applied\r\n // (The pixel shader must apply albedo after texture fetches, etc).\r\n }\r\n\r\n /**\r\n * Convert spherical harmonics to spherical polynomial coefficients\r\n * @param harmonics Spherical harmonic coefficients (9)\r\n * @param outPolynomialCoefficents Polynomial coefficients (9) object to store result\r\n */\r\n private static _ConvertSHToSP(harmonics: any, outPolynomialCoefficents: SphericalPolynomalCoefficients) {\r\n const rPi = 1 / Math.PI;\r\n\r\n //x\r\n outPolynomialCoefficents.x.x = 1.02333 * harmonics.l11[0] * rPi;\r\n outPolynomialCoefficents.x.y = 1.02333 * harmonics.l11[1] * rPi;\r\n outPolynomialCoefficents.x.z = 1.02333 * harmonics.l11[2] * rPi;\r\n\r\n outPolynomialCoefficents.y.x = 1.02333 * harmonics.l1_1[0] * rPi;\r\n outPolynomialCoefficents.y.y = 1.02333 * harmonics.l1_1[1] * rPi;\r\n outPolynomialCoefficents.y.z = 1.02333 * harmonics.l1_1[2] * rPi;\r\n\r\n outPolynomialCoefficents.z.x = 1.02333 * harmonics.l10[0] * rPi;\r\n outPolynomialCoefficents.z.y = 1.02333 * harmonics.l10[1] * rPi;\r\n outPolynomialCoefficents.z.z = 1.02333 * harmonics.l10[2] * rPi;\r\n\r\n //xx\r\n outPolynomialCoefficents.xx.x = (0.886277 * harmonics.l00[0] - 0.247708 * harmonics.l20[0] + 0.429043 * harmonics.l22[0]) * rPi;\r\n outPolynomialCoefficents.xx.y = (0.886277 * harmonics.l00[1] - 0.247708 * harmonics.l20[1] + 0.429043 * harmonics.l22[1]) * rPi;\r\n outPolynomialCoefficents.xx.z = (0.886277 * harmonics.l00[2] - 0.247708 * harmonics.l20[2] + 0.429043 * harmonics.l22[2]) * rPi;\r\n\r\n outPolynomialCoefficents.yy.x = (0.886277 * harmonics.l00[0] - 0.247708 * harmonics.l20[0] - 0.429043 * harmonics.l22[0]) * rPi;\r\n outPolynomialCoefficents.yy.y = (0.886277 * harmonics.l00[1] - 0.247708 * harmonics.l20[1] - 0.429043 * harmonics.l22[1]) * rPi;\r\n outPolynomialCoefficents.yy.z = (0.886277 * harmonics.l00[2] - 0.247708 * harmonics.l20[2] - 0.429043 * harmonics.l22[2]) * rPi;\r\n\r\n outPolynomialCoefficents.zz.x = (0.886277 * harmonics.l00[0] + 0.495417 * harmonics.l20[0]) * rPi;\r\n outPolynomialCoefficents.zz.y = (0.886277 * harmonics.l00[1] + 0.495417 * harmonics.l20[1]) * rPi;\r\n outPolynomialCoefficents.zz.z = (0.886277 * harmonics.l00[2] + 0.495417 * harmonics.l20[2]) * rPi;\r\n\r\n //yz\r\n outPolynomialCoefficents.yz.x = 0.858086 * harmonics.l2_1[0] * rPi;\r\n outPolynomialCoefficents.yz.y = 0.858086 * harmonics.l2_1[1] * rPi;\r\n outPolynomialCoefficents.yz.z = 0.858086 * harmonics.l2_1[2] * rPi;\r\n\r\n outPolynomialCoefficents.zx.x = 0.858086 * harmonics.l21[0] * rPi;\r\n outPolynomialCoefficents.zx.y = 0.858086 * harmonics.l21[1] * rPi;\r\n outPolynomialCoefficents.zx.z = 0.858086 * harmonics.l21[2] * rPi;\r\n\r\n outPolynomialCoefficents.xy.x = 0.858086 * harmonics.l2_2[0] * rPi;\r\n outPolynomialCoefficents.xy.y = 0.858086 * harmonics.l2_2[1] * rPi;\r\n outPolynomialCoefficents.xy.z = 0.858086 * harmonics.l2_2[2] * rPi;\r\n }\r\n\r\n /**\r\n * Multiplies harmonic coefficients in place\r\n * @param harmonics Spherical harmonic coefficients (9)\r\n * @param scaleFactor Value to multiply by\r\n */\r\n private static _ScaleSH(harmonics: any, scaleFactor: number) {\r\n harmonics.l00[0] *= scaleFactor;\r\n harmonics.l00[1] *= scaleFactor;\r\n harmonics.l00[2] *= scaleFactor;\r\n harmonics.l1_1[0] *= scaleFactor;\r\n harmonics.l1_1[1] *= scaleFactor;\r\n harmonics.l1_1[2] *= scaleFactor;\r\n harmonics.l10[0] *= scaleFactor;\r\n harmonics.l10[1] *= scaleFactor;\r\n harmonics.l10[2] *= scaleFactor;\r\n harmonics.l11[0] *= scaleFactor;\r\n harmonics.l11[1] *= scaleFactor;\r\n harmonics.l11[2] *= scaleFactor;\r\n harmonics.l2_2[0] *= scaleFactor;\r\n harmonics.l2_2[1] *= scaleFactor;\r\n harmonics.l2_2[2] *= scaleFactor;\r\n harmonics.l2_1[0] *= scaleFactor;\r\n harmonics.l2_1[1] *= scaleFactor;\r\n harmonics.l2_1[2] *= scaleFactor;\r\n harmonics.l20[0] *= scaleFactor;\r\n harmonics.l20[1] *= scaleFactor;\r\n harmonics.l20[2] *= scaleFactor;\r\n harmonics.l21[0] *= scaleFactor;\r\n harmonics.l21[1] *= scaleFactor;\r\n harmonics.l21[2] *= scaleFactor;\r\n harmonics.l22[0] *= scaleFactor;\r\n harmonics.l22[1] *= scaleFactor;\r\n harmonics.l22[2] *= scaleFactor;\r\n }\r\n}\r\n"]}