@babylonjs/viewer 7.36.0 → 7.37.0-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (599) hide show
  1. package/assets/photoStudio.env +0 -0
  2. package/dist/babylon-viewer.esm.js +2 -0
  3. package/dist/babylon-viewer.esm.js.map +1 -0
  4. package/dist/babylon-viewer.esm.min.js +2 -0
  5. package/dist/babylon-viewer.esm.min.js.map +1 -0
  6. package/dist/chunks/EXT_lights_image_based-B3i_v86N.esm.js +171 -0
  7. package/dist/chunks/EXT_lights_image_based-B3i_v86N.esm.js.map +1 -0
  8. package/dist/chunks/EXT_lights_image_based-F9_9oKGw.esm.min.js +2 -0
  9. package/dist/chunks/EXT_lights_image_based-F9_9oKGw.esm.min.js.map +1 -0
  10. package/dist/chunks/EXT_mesh_gpu_instancing-BUGJNTuv.esm.js +86 -0
  11. package/dist/chunks/EXT_mesh_gpu_instancing-BUGJNTuv.esm.js.map +1 -0
  12. package/dist/chunks/EXT_mesh_gpu_instancing-ouu-sC4v.esm.min.js +2 -0
  13. package/dist/chunks/EXT_mesh_gpu_instancing-ouu-sC4v.esm.min.js.map +1 -0
  14. package/dist/chunks/EXT_meshopt_compression-BoFlIVIo.esm.js +134 -0
  15. package/dist/chunks/EXT_meshopt_compression-BoFlIVIo.esm.js.map +1 -0
  16. package/dist/chunks/EXT_meshopt_compression-CBHVR9-g.esm.min.js +2 -0
  17. package/dist/chunks/EXT_meshopt_compression-CBHVR9-g.esm.min.js.map +1 -0
  18. package/dist/chunks/EXT_texture_avif-BiDJEaYr.esm.js +44 -0
  19. package/dist/chunks/EXT_texture_avif-BiDJEaYr.esm.js.map +1 -0
  20. package/dist/chunks/EXT_texture_avif-CpcKIP2U.esm.min.js +2 -0
  21. package/dist/chunks/EXT_texture_avif-CpcKIP2U.esm.min.js.map +1 -0
  22. package/dist/chunks/EXT_texture_webp-9-weZ5t9.esm.js +43 -0
  23. package/dist/chunks/EXT_texture_webp-9-weZ5t9.esm.js.map +1 -0
  24. package/dist/chunks/EXT_texture_webp-BEzvwccL.esm.min.js +2 -0
  25. package/dist/chunks/EXT_texture_webp-BEzvwccL.esm.min.js.map +1 -0
  26. package/dist/chunks/ExtrasAsMetadata-2fKDjP-P.esm.min.js +2 -0
  27. package/dist/chunks/ExtrasAsMetadata-2fKDjP-P.esm.min.js.map +1 -0
  28. package/dist/chunks/ExtrasAsMetadata-DGBpP5kO.esm.js +64 -0
  29. package/dist/chunks/ExtrasAsMetadata-DGBpP5kO.esm.js.map +1 -0
  30. package/dist/chunks/KHR_animation_pointer-BGUym5aA.esm.min.js +2 -0
  31. package/dist/chunks/KHR_animation_pointer-BGUym5aA.esm.min.js.map +1 -0
  32. package/dist/chunks/KHR_animation_pointer-Bs26S___.esm.js +343 -0
  33. package/dist/chunks/KHR_animation_pointer-Bs26S___.esm.js.map +1 -0
  34. package/dist/chunks/KHR_draco_mesh_compression-BgmSGmi8.esm.min.js +2 -0
  35. package/dist/chunks/KHR_draco_mesh_compression-BgmSGmi8.esm.min.js.map +1 -0
  36. package/dist/chunks/KHR_draco_mesh_compression-sPxRDkD2.esm.js +617 -0
  37. package/dist/chunks/KHR_draco_mesh_compression-sPxRDkD2.esm.js.map +1 -0
  38. package/dist/chunks/KHR_interactivity-DDWPhJ-6.esm.js +4033 -0
  39. package/dist/chunks/KHR_interactivity-DDWPhJ-6.esm.js.map +1 -0
  40. package/dist/chunks/KHR_interactivity-DE92WJwh.esm.min.js +2 -0
  41. package/dist/chunks/KHR_interactivity-DE92WJwh.esm.min.js.map +1 -0
  42. package/dist/chunks/KHR_lights_punctual-C_akUY-5.esm.js +1253 -0
  43. package/dist/chunks/KHR_lights_punctual-C_akUY-5.esm.js.map +1 -0
  44. package/dist/chunks/KHR_lights_punctual-D-NJr9sx.esm.min.js +2 -0
  45. package/dist/chunks/KHR_lights_punctual-D-NJr9sx.esm.min.js.map +1 -0
  46. package/dist/chunks/KHR_materials_anisotropy-DuBZh7v4.esm.js +65 -0
  47. package/dist/chunks/KHR_materials_anisotropy-DuBZh7v4.esm.js.map +1 -0
  48. package/dist/chunks/KHR_materials_anisotropy-XJzw4SB7.esm.min.js +2 -0
  49. package/dist/chunks/KHR_materials_anisotropy-XJzw4SB7.esm.min.js.map +1 -0
  50. package/dist/chunks/KHR_materials_clearcoat-BjeqEjMn.esm.min.js +2 -0
  51. package/dist/chunks/KHR_materials_clearcoat-BjeqEjMn.esm.min.js.map +1 -0
  52. package/dist/chunks/KHR_materials_clearcoat-C_mF7kgI.esm.js +96 -0
  53. package/dist/chunks/KHR_materials_clearcoat-C_mF7kgI.esm.js.map +1 -0
  54. package/dist/chunks/KHR_materials_diffuse_transmission-B5xJ8gLo.esm.min.js +2 -0
  55. package/dist/chunks/KHR_materials_diffuse_transmission-B5xJ8gLo.esm.min.js.map +1 -0
  56. package/dist/chunks/KHR_materials_diffuse_transmission-BvtuXbx8.esm.js +97 -0
  57. package/dist/chunks/KHR_materials_diffuse_transmission-BvtuXbx8.esm.js.map +1 -0
  58. package/dist/chunks/KHR_materials_dispersion-DceW_6jg.esm.min.js +2 -0
  59. package/dist/chunks/KHR_materials_dispersion-DceW_6jg.esm.min.js.map +1 -0
  60. package/dist/chunks/KHR_materials_dispersion-DnMdHuwS.esm.js +62 -0
  61. package/dist/chunks/KHR_materials_dispersion-DnMdHuwS.esm.js.map +1 -0
  62. package/dist/chunks/KHR_materials_emissive_strength-BJxrDXxa.esm.js +55 -0
  63. package/dist/chunks/KHR_materials_emissive_strength-BJxrDXxa.esm.js.map +1 -0
  64. package/dist/chunks/KHR_materials_emissive_strength-T7Ioofbj.esm.min.js +2 -0
  65. package/dist/chunks/KHR_materials_emissive_strength-T7Ioofbj.esm.min.js.map +1 -0
  66. package/dist/chunks/KHR_materials_ior-BebDlrzl.esm.js +64 -0
  67. package/dist/chunks/KHR_materials_ior-BebDlrzl.esm.js.map +1 -0
  68. package/dist/chunks/KHR_materials_ior-BiXD3wbo.esm.min.js +2 -0
  69. package/dist/chunks/KHR_materials_ior-BiXD3wbo.esm.min.js.map +1 -0
  70. package/dist/chunks/KHR_materials_iridescence-BG0uvS2K.esm.min.js +2 -0
  71. package/dist/chunks/KHR_materials_iridescence-BG0uvS2K.esm.min.js.map +1 -0
  72. package/dist/chunks/KHR_materials_iridescence-DQz8GQbO.esm.js +72 -0
  73. package/dist/chunks/KHR_materials_iridescence-DQz8GQbO.esm.js.map +1 -0
  74. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-B3r0Mafb.esm.js +81 -0
  75. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-B3r0Mafb.esm.js.map +1 -0
  76. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-_lN5X8jS.esm.min.js +2 -0
  77. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-_lN5X8jS.esm.min.js.map +1 -0
  78. package/dist/chunks/KHR_materials_sheen-BtnO_FAS.esm.min.js +2 -0
  79. package/dist/chunks/KHR_materials_sheen-BtnO_FAS.esm.min.js.map +1 -0
  80. package/dist/chunks/KHR_materials_sheen-Ca0m-FCR.esm.js +85 -0
  81. package/dist/chunks/KHR_materials_sheen-Ca0m-FCR.esm.js.map +1 -0
  82. package/dist/chunks/KHR_materials_specular-Coku-eWK.esm.js +75 -0
  83. package/dist/chunks/KHR_materials_specular-Coku-eWK.esm.js.map +1 -0
  84. package/dist/chunks/KHR_materials_specular-DV0Eoetb.esm.min.js +2 -0
  85. package/dist/chunks/KHR_materials_specular-DV0Eoetb.esm.min.js.map +1 -0
  86. package/dist/chunks/KHR_materials_transmission-Ca9E-UZ-.esm.min.js +2 -0
  87. package/dist/chunks/KHR_materials_transmission-Ca9E-UZ-.esm.min.js.map +1 -0
  88. package/dist/chunks/KHR_materials_transmission-CuudPQVC.esm.js +307 -0
  89. package/dist/chunks/KHR_materials_transmission-CuudPQVC.esm.js.map +1 -0
  90. package/dist/chunks/KHR_materials_unlit-BAGBsUkU.esm.min.js +2 -0
  91. package/dist/chunks/KHR_materials_unlit-BAGBsUkU.esm.min.js.map +1 -0
  92. package/dist/chunks/KHR_materials_unlit-Buu1Z1HL.esm.js +74 -0
  93. package/dist/chunks/KHR_materials_unlit-Buu1Z1HL.esm.js.map +1 -0
  94. package/dist/chunks/KHR_materials_variants-CMcKgGG2.esm.min.js +2 -0
  95. package/dist/chunks/KHR_materials_variants-CMcKgGG2.esm.min.js.map +1 -0
  96. package/dist/chunks/KHR_materials_variants-DFu4FrrH.esm.js +238 -0
  97. package/dist/chunks/KHR_materials_variants-DFu4FrrH.esm.js.map +1 -0
  98. package/dist/chunks/KHR_materials_volume-CQMEAbf4.esm.js +87 -0
  99. package/dist/chunks/KHR_materials_volume-CQMEAbf4.esm.js.map +1 -0
  100. package/dist/chunks/KHR_materials_volume-ClGrFvKp.esm.min.js +2 -0
  101. package/dist/chunks/KHR_materials_volume-ClGrFvKp.esm.min.js.map +1 -0
  102. package/dist/chunks/KHR_mesh_quantization-Cbejp093.esm.js +26 -0
  103. package/dist/chunks/KHR_mesh_quantization-Cbejp093.esm.js.map +1 -0
  104. package/dist/chunks/KHR_mesh_quantization-DRPaTiWR.esm.min.js +2 -0
  105. package/dist/chunks/KHR_mesh_quantization-DRPaTiWR.esm.min.js.map +1 -0
  106. package/dist/chunks/KHR_node_visibility-BjfB0zna.esm.js +46 -0
  107. package/dist/chunks/KHR_node_visibility-BjfB0zna.esm.js.map +1 -0
  108. package/dist/chunks/KHR_node_visibility-CBw8B38Q.esm.min.js +2 -0
  109. package/dist/chunks/KHR_node_visibility-CBw8B38Q.esm.min.js.map +1 -0
  110. package/dist/chunks/KHR_texture_basisu-DBjIO7B4.esm.js +43 -0
  111. package/dist/chunks/KHR_texture_basisu-DBjIO7B4.esm.js.map +1 -0
  112. package/dist/chunks/KHR_texture_basisu-DKylW8Yx.esm.min.js +2 -0
  113. package/dist/chunks/KHR_texture_basisu-DKylW8Yx.esm.min.js.map +1 -0
  114. package/dist/chunks/KHR_texture_transform-D6mg2ZiK.esm.js +63 -0
  115. package/dist/chunks/KHR_texture_transform-D6mg2ZiK.esm.js.map +1 -0
  116. package/dist/chunks/KHR_texture_transform-htHBWqOc.esm.min.js +2 -0
  117. package/dist/chunks/KHR_texture_transform-htHBWqOc.esm.min.js.map +1 -0
  118. package/dist/chunks/KHR_xmp_json_ld-CvW3Ai8F.esm.js +51 -0
  119. package/dist/chunks/KHR_xmp_json_ld-CvW3Ai8F.esm.js.map +1 -0
  120. package/dist/chunks/KHR_xmp_json_ld-uYsLxYOz.esm.min.js +2 -0
  121. package/dist/chunks/KHR_xmp_json_ld-uYsLxYOz.esm.min.js.map +1 -0
  122. package/dist/chunks/MSFT_audio_emitter-DTJWk2eV.esm.min.js +2 -0
  123. package/dist/chunks/MSFT_audio_emitter-DTJWk2eV.esm.min.js.map +1 -0
  124. package/dist/chunks/MSFT_audio_emitter-oPM3iu4F.esm.js +2207 -0
  125. package/dist/chunks/MSFT_audio_emitter-oPM3iu4F.esm.js.map +1 -0
  126. package/dist/chunks/MSFT_lod-CuSynNTS.esm.js +337 -0
  127. package/dist/chunks/MSFT_lod-CuSynNTS.esm.js.map +1 -0
  128. package/dist/chunks/MSFT_lod-PjlomwUl.esm.min.js +2 -0
  129. package/dist/chunks/MSFT_lod-PjlomwUl.esm.min.js.map +1 -0
  130. package/dist/chunks/MSFT_minecraftMesh-BRBTW8ta.esm.min.js +2 -0
  131. package/dist/chunks/MSFT_minecraftMesh-BRBTW8ta.esm.min.js.map +1 -0
  132. package/dist/chunks/MSFT_minecraftMesh-DDlu3iRW.esm.js +46 -0
  133. package/dist/chunks/MSFT_minecraftMesh-DDlu3iRW.esm.js.map +1 -0
  134. package/dist/chunks/MSFT_sRGBFactors-BIOzrPxY.esm.min.js +2 -0
  135. package/dist/chunks/MSFT_sRGBFactors-BIOzrPxY.esm.min.js.map +1 -0
  136. package/dist/chunks/MSFT_sRGBFactors-CspQlvZh.esm.js +47 -0
  137. package/dist/chunks/MSFT_sRGBFactors-CspQlvZh.esm.js.map +1 -0
  138. package/dist/chunks/animationGroup-CL3Oz5Z0.esm.min.js +2 -0
  139. package/dist/chunks/animationGroup-CL3Oz5Z0.esm.min.js.map +1 -0
  140. package/dist/chunks/animationGroup-DRKiD9h6.esm.js +2482 -0
  141. package/dist/chunks/animationGroup-DRKiD9h6.esm.js.map +1 -0
  142. package/dist/chunks/assetContainer-D_8hiZKA.esm.js +1720 -0
  143. package/dist/chunks/assetContainer-D_8hiZKA.esm.js.map +1 -0
  144. package/dist/chunks/assetContainer-FA9ojI1I.esm.min.js +2 -0
  145. package/dist/chunks/assetContainer-FA9ojI1I.esm.min.js.map +1 -0
  146. package/dist/chunks/audioEngine-C-sKz5RP.esm.min.js +2 -0
  147. package/dist/chunks/audioEngine-C-sKz5RP.esm.min.js.map +1 -0
  148. package/dist/chunks/audioEngine-CvJDx4Q8.esm.js +305 -0
  149. package/dist/chunks/audioEngine-CvJDx4Q8.esm.js.map +1 -0
  150. package/dist/chunks/bakedVertexAnimation-BsPKKHjr.esm.min.js +2 -0
  151. package/dist/chunks/bakedVertexAnimation-BsPKKHjr.esm.min.js.map +1 -0
  152. package/dist/chunks/bakedVertexAnimation-DulpQEBV.esm.js +114 -0
  153. package/dist/chunks/bakedVertexAnimation-DulpQEBV.esm.js.map +1 -0
  154. package/dist/chunks/basisTextureLoader-B_r12OUF.esm.min.js +2 -0
  155. package/dist/chunks/basisTextureLoader-B_r12OUF.esm.min.js.map +1 -0
  156. package/dist/chunks/basisTextureLoader-Drw-ZVC0.esm.js +600 -0
  157. package/dist/chunks/basisTextureLoader-Drw-ZVC0.esm.js.map +1 -0
  158. package/dist/chunks/dds-BXiJypJ7.esm.js +540 -0
  159. package/dist/chunks/dds-BXiJypJ7.esm.js.map +1 -0
  160. package/dist/chunks/dds-C6ZHg-Bp.esm.min.js +2 -0
  161. package/dist/chunks/dds-C6ZHg-Bp.esm.min.js.map +1 -0
  162. package/dist/chunks/ddsTextureLoader-DgfGb80Z.esm.js +88 -0
  163. package/dist/chunks/ddsTextureLoader-DgfGb80Z.esm.js.map +1 -0
  164. package/dist/chunks/ddsTextureLoader-bPQ4ZVv4.esm.min.js +2 -0
  165. package/dist/chunks/ddsTextureLoader-bPQ4ZVv4.esm.min.js.map +1 -0
  166. package/dist/chunks/decalFragment-BpOnZOVp.esm.js +18 -0
  167. package/dist/chunks/decalFragment-BpOnZOVp.esm.js.map +1 -0
  168. package/dist/chunks/decalFragment-DbkDUo1S.esm.min.js +2 -0
  169. package/dist/chunks/decalFragment-DbkDUo1S.esm.min.js.map +1 -0
  170. package/dist/chunks/default.fragment-Crru0QNN.esm.min.js +2 -0
  171. package/dist/chunks/default.fragment-Crru0QNN.esm.min.js.map +1 -0
  172. package/dist/chunks/default.fragment-CxCyfbls.esm.js +433 -0
  173. package/dist/chunks/default.fragment-CxCyfbls.esm.js.map +1 -0
  174. package/dist/chunks/default.fragment-DA6kjpAQ.esm.min.js +2 -0
  175. package/dist/chunks/default.fragment-DA6kjpAQ.esm.min.js.map +1 -0
  176. package/dist/chunks/default.fragment-DWYF0Ivm.esm.js +497 -0
  177. package/dist/chunks/default.fragment-DWYF0Ivm.esm.js.map +1 -0
  178. package/dist/chunks/default.vertex-Bpzr6sJq.esm.min.js +2 -0
  179. package/dist/chunks/default.vertex-Bpzr6sJq.esm.min.js.map +1 -0
  180. package/dist/chunks/default.vertex-C5owo_r2.esm.js +181 -0
  181. package/dist/chunks/default.vertex-C5owo_r2.esm.js.map +1 -0
  182. package/dist/chunks/default.vertex-ClbZq87W.esm.min.js +2 -0
  183. package/dist/chunks/default.vertex-ClbZq87W.esm.min.js.map +1 -0
  184. package/dist/chunks/default.vertex-DvfVsBbt.esm.js +201 -0
  185. package/dist/chunks/default.vertex-DvfVsBbt.esm.js.map +1 -0
  186. package/dist/chunks/defaultUboDeclaration-BCpFsRl0.esm.js +13 -0
  187. package/dist/chunks/defaultUboDeclaration-BCpFsRl0.esm.js.map +1 -0
  188. package/dist/chunks/defaultUboDeclaration-BkPkSkeR.esm.min.js +2 -0
  189. package/dist/chunks/defaultUboDeclaration-BkPkSkeR.esm.min.js.map +1 -0
  190. package/dist/chunks/defaultUboDeclaration-CBkzLqUL.esm.js +15 -0
  191. package/dist/chunks/defaultUboDeclaration-CBkzLqUL.esm.js.map +1 -0
  192. package/dist/chunks/defaultUboDeclaration-DM6YTmmJ.esm.min.js +2 -0
  193. package/dist/chunks/defaultUboDeclaration-DM6YTmmJ.esm.min.js.map +1 -0
  194. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +11 -0
  195. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +1 -0
  196. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +2 -0
  197. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +1 -0
  198. package/dist/chunks/dumpTools-DEE0JNhe.esm.js +200 -0
  199. package/dist/chunks/dumpTools-DEE0JNhe.esm.js.map +1 -0
  200. package/dist/chunks/dumpTools-Dq65RGnm.esm.min.js +2 -0
  201. package/dist/chunks/dumpTools-Dq65RGnm.esm.min.js.map +1 -0
  202. package/dist/chunks/engine-CeL5Q4lw.esm.js +2220 -0
  203. package/dist/chunks/engine-CeL5Q4lw.esm.js.map +1 -0
  204. package/dist/chunks/engine-DT2G_lds.esm.min.js +2 -0
  205. package/dist/chunks/engine-DT2G_lds.esm.min.js.map +1 -0
  206. package/dist/chunks/engine.common-C9H9gh9W.esm.js +1162 -0
  207. package/dist/chunks/engine.common-C9H9gh9W.esm.js.map +1 -0
  208. package/dist/chunks/engine.common-CdhJvxwm.esm.min.js +2 -0
  209. package/dist/chunks/engine.common-CdhJvxwm.esm.min.js.map +1 -0
  210. package/dist/chunks/envTextureLoader-74tnifoT.esm.js +64 -0
  211. package/dist/chunks/envTextureLoader-74tnifoT.esm.js.map +1 -0
  212. package/dist/chunks/envTextureLoader-Dl937sIO.esm.min.js +2 -0
  213. package/dist/chunks/envTextureLoader-Dl937sIO.esm.min.js.map +1 -0
  214. package/dist/chunks/environmentTextureTools-ClEgwgya.esm.js +382 -0
  215. package/dist/chunks/environmentTextureTools-ClEgwgya.esm.js.map +1 -0
  216. package/dist/chunks/environmentTextureTools-DURIVP9U.esm.min.js +2 -0
  217. package/dist/chunks/environmentTextureTools-DURIVP9U.esm.min.js.map +1 -0
  218. package/dist/chunks/exrTextureLoader-BGXbJGBe.esm.js +1682 -0
  219. package/dist/chunks/exrTextureLoader-BGXbJGBe.esm.js.map +1 -0
  220. package/dist/chunks/exrTextureLoader-ZRs_EAQa.esm.min.js +2 -0
  221. package/dist/chunks/exrTextureLoader-ZRs_EAQa.esm.min.js.map +1 -0
  222. package/dist/chunks/fogFragment-BFKmSOC6.esm.js +102 -0
  223. package/dist/chunks/fogFragment-BFKmSOC6.esm.js.map +1 -0
  224. package/dist/chunks/fogFragment-BPVmPyK6.esm.js +101 -0
  225. package/dist/chunks/fogFragment-BPVmPyK6.esm.js.map +1 -0
  226. package/dist/chunks/fogFragment-DfLgusf7.esm.min.js +2 -0
  227. package/dist/chunks/fogFragment-DfLgusf7.esm.min.js.map +1 -0
  228. package/dist/chunks/fogFragment-uKmBf3r6.esm.min.js +2 -0
  229. package/dist/chunks/fogFragment-uKmBf3r6.esm.min.js.map +1 -0
  230. package/dist/chunks/fresnelFunction-69xZoG8U.esm.min.js +2 -0
  231. package/dist/chunks/fresnelFunction-69xZoG8U.esm.min.js.map +1 -0
  232. package/dist/chunks/fresnelFunction-piF4l7eF.esm.js +12 -0
  233. package/dist/chunks/fresnelFunction-piF4l7eF.esm.js.map +1 -0
  234. package/dist/chunks/glTFLoader-C1ef0xPc.esm.min.js +2 -0
  235. package/dist/chunks/glTFLoader-C1ef0xPc.esm.min.js.map +1 -0
  236. package/dist/chunks/glTFLoader-UTdbOHEt.esm.js +7606 -0
  237. package/dist/chunks/glTFLoader-UTdbOHEt.esm.js.map +1 -0
  238. package/dist/chunks/glTFLoaderAnimation-CapCmtyI.esm.js +77 -0
  239. package/dist/chunks/glTFLoaderAnimation-CapCmtyI.esm.js.map +1 -0
  240. package/dist/chunks/glTFLoaderAnimation-D31eUw-v.esm.min.js +2 -0
  241. package/dist/chunks/glTFLoaderAnimation-D31eUw-v.esm.min.js.map +1 -0
  242. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
  243. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
  244. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
  245. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
  246. package/dist/chunks/harmonicsFunctions-BOh29Gl-.esm.min.js +2 -0
  247. package/dist/chunks/harmonicsFunctions-BOh29Gl-.esm.min.js.map +1 -0
  248. package/dist/chunks/harmonicsFunctions-CPE4kiHw.esm.js +35 -0
  249. package/dist/chunks/harmonicsFunctions-CPE4kiHw.esm.js.map +1 -0
  250. package/dist/chunks/harmonicsFunctions-RPeiDmS4.esm.js +34 -0
  251. package/dist/chunks/harmonicsFunctions-RPeiDmS4.esm.js.map +1 -0
  252. package/dist/chunks/harmonicsFunctions-rQv4s0QP.esm.min.js +2 -0
  253. package/dist/chunks/harmonicsFunctions-rQv4s0QP.esm.min.js.map +1 -0
  254. package/dist/chunks/hdrTextureLoader-Dd17jp9W.esm.min.js +2 -0
  255. package/dist/chunks/hdrTextureLoader-Dd17jp9W.esm.min.js.map +1 -0
  256. package/dist/chunks/hdrTextureLoader-DsR_wESy.esm.js +252 -0
  257. package/dist/chunks/hdrTextureLoader-DsR_wESy.esm.js.map +1 -0
  258. package/dist/chunks/helperFunctions-Ce53D1y-.esm.min.js +2 -0
  259. package/dist/chunks/helperFunctions-Ce53D1y-.esm.min.js.map +1 -0
  260. package/dist/chunks/helperFunctions-D2c1ru49.esm.js +80 -0
  261. package/dist/chunks/helperFunctions-D2c1ru49.esm.js.map +1 -0
  262. package/dist/chunks/helperFunctions-VmMN0Mna.esm.js +108 -0
  263. package/dist/chunks/helperFunctions-VmMN0Mna.esm.js.map +1 -0
  264. package/dist/chunks/helperFunctions-zdjEtnRv.esm.min.js +2 -0
  265. package/dist/chunks/helperFunctions-zdjEtnRv.esm.min.js.map +1 -0
  266. package/dist/chunks/index-DBm7fzXf.esm.js +74321 -0
  267. package/dist/chunks/index-DBm7fzXf.esm.js.map +1 -0
  268. package/dist/chunks/index-jZFAQQur.esm.min.js +57 -0
  269. package/dist/chunks/index-jZFAQQur.esm.min.js.map +1 -0
  270. package/dist/chunks/ktxTextureLoader-9vfBC6UL.esm.js +814 -0
  271. package/dist/chunks/ktxTextureLoader-9vfBC6UL.esm.js.map +1 -0
  272. package/dist/chunks/ktxTextureLoader-B7knlkAj.esm.min.js +2 -0
  273. package/dist/chunks/ktxTextureLoader-B7knlkAj.esm.min.js.map +1 -0
  274. package/dist/chunks/logDepthDeclaration-BftGsCo7.esm.js +11 -0
  275. package/dist/chunks/logDepthDeclaration-BftGsCo7.esm.js.map +1 -0
  276. package/dist/chunks/logDepthDeclaration-Bm8zN8U1.esm.js +35 -0
  277. package/dist/chunks/logDepthDeclaration-Bm8zN8U1.esm.js.map +1 -0
  278. package/dist/chunks/logDepthDeclaration-D73_rPEp.esm.min.js +2 -0
  279. package/dist/chunks/logDepthDeclaration-D73_rPEp.esm.min.js.map +1 -0
  280. package/dist/chunks/logDepthDeclaration-Dine9EAs.esm.min.js +2 -0
  281. package/dist/chunks/logDepthDeclaration-Dine9EAs.esm.min.js.map +1 -0
  282. package/dist/chunks/logDepthVertex-3p3eoh78.esm.min.js +2 -0
  283. package/dist/chunks/logDepthVertex-3p3eoh78.esm.min.js.map +1 -0
  284. package/dist/chunks/logDepthVertex-CQfs32P9.esm.js +77 -0
  285. package/dist/chunks/logDepthVertex-CQfs32P9.esm.js.map +1 -0
  286. package/dist/chunks/logDepthVertex-Dr2Pw6AH.esm.js +77 -0
  287. package/dist/chunks/logDepthVertex-Dr2Pw6AH.esm.js.map +1 -0
  288. package/dist/chunks/logDepthVertex-Duy4jBoh.esm.min.js +2 -0
  289. package/dist/chunks/logDepthVertex-Duy4jBoh.esm.min.js.map +1 -0
  290. package/dist/chunks/mainUVVaryingDeclaration-63j_hdLk.esm.min.js +2 -0
  291. package/dist/chunks/mainUVVaryingDeclaration-63j_hdLk.esm.min.js.map +1 -0
  292. package/dist/chunks/mainUVVaryingDeclaration-BYMyGmMe.esm.js +11 -0
  293. package/dist/chunks/mainUVVaryingDeclaration-BYMyGmMe.esm.js.map +1 -0
  294. package/dist/chunks/mainUVVaryingDeclaration-D1G2R6CM.esm.min.js +2 -0
  295. package/dist/chunks/mainUVVaryingDeclaration-D1G2R6CM.esm.min.js.map +1 -0
  296. package/dist/chunks/mainUVVaryingDeclaration-DmvpmbUk.esm.js +11 -0
  297. package/dist/chunks/mainUVVaryingDeclaration-DmvpmbUk.esm.js.map +1 -0
  298. package/dist/chunks/meshUboDeclaration-BJv8KmAx.esm.min.js +2 -0
  299. package/dist/chunks/meshUboDeclaration-BJv8KmAx.esm.min.js.map +1 -0
  300. package/dist/chunks/meshUboDeclaration-yc1dSO0t.esm.js +24 -0
  301. package/dist/chunks/meshUboDeclaration-yc1dSO0t.esm.js.map +1 -0
  302. package/dist/chunks/objFileLoader-BMu0qrzr.esm.js +1338 -0
  303. package/dist/chunks/objFileLoader-BMu0qrzr.esm.js.map +1 -0
  304. package/dist/chunks/objFileLoader-i02qqOmW.esm.min.js +2 -0
  305. package/dist/chunks/objFileLoader-i02qqOmW.esm.min.js.map +1 -0
  306. package/dist/chunks/oitFragment-CH-SMl3Y.esm.js +1051 -0
  307. package/dist/chunks/oitFragment-CH-SMl3Y.esm.js.map +1 -0
  308. package/dist/chunks/oitFragment-Dv1eSAch.esm.min.js +2 -0
  309. package/dist/chunks/oitFragment-Dv1eSAch.esm.min.js.map +1 -0
  310. package/dist/chunks/oitFragment-Dy4y_3Q1.esm.min.js +2 -0
  311. package/dist/chunks/oitFragment-Dy4y_3Q1.esm.min.js.map +1 -0
  312. package/dist/chunks/oitFragment-gO2AJPMS.esm.js +1210 -0
  313. package/dist/chunks/oitFragment-gO2AJPMS.esm.js.map +1 -0
  314. package/dist/chunks/pass.fragment-3MBFymab.esm.js +15 -0
  315. package/dist/chunks/pass.fragment-3MBFymab.esm.js.map +1 -0
  316. package/dist/chunks/pass.fragment-9DV47zDM.esm.min.js +2 -0
  317. package/dist/chunks/pass.fragment-9DV47zDM.esm.min.js.map +1 -0
  318. package/dist/chunks/pass.fragment-CjPVw0cM.esm.js +15 -0
  319. package/dist/chunks/pass.fragment-CjPVw0cM.esm.js.map +1 -0
  320. package/dist/chunks/pass.fragment-DniCNtXz.esm.min.js +2 -0
  321. package/dist/chunks/pass.fragment-DniCNtXz.esm.min.js.map +1 -0
  322. package/dist/chunks/pbr.fragment-BfcLIVzL.esm.js +3218 -0
  323. package/dist/chunks/pbr.fragment-BfcLIVzL.esm.js.map +1 -0
  324. package/dist/chunks/pbr.fragment-C3w-Umr6.esm.js +3165 -0
  325. package/dist/chunks/pbr.fragment-C3w-Umr6.esm.js.map +1 -0
  326. package/dist/chunks/pbr.fragment-COVEAvqz.esm.min.js +2 -0
  327. package/dist/chunks/pbr.fragment-COVEAvqz.esm.min.js.map +1 -0
  328. package/dist/chunks/pbr.fragment-CYaflBNP.esm.min.js +2 -0
  329. package/dist/chunks/pbr.fragment-CYaflBNP.esm.min.js.map +1 -0
  330. package/dist/chunks/pbr.vertex-Bplm1RvR.esm.min.js +2 -0
  331. package/dist/chunks/pbr.vertex-Bplm1RvR.esm.min.js.map +1 -0
  332. package/dist/chunks/pbr.vertex-CJ6LxTam.esm.min.js +2 -0
  333. package/dist/chunks/pbr.vertex-CJ6LxTam.esm.min.js.map +1 -0
  334. package/dist/chunks/pbr.vertex-aEZZaJVy.esm.js +214 -0
  335. package/dist/chunks/pbr.vertex-aEZZaJVy.esm.js.map +1 -0
  336. package/dist/chunks/pbr.vertex-yjDKBRFi.esm.js +338 -0
  337. package/dist/chunks/pbr.vertex-yjDKBRFi.esm.js.map +1 -0
  338. package/dist/chunks/postprocess.vertex-DkSqDp_B.esm.js +20 -0
  339. package/dist/chunks/postprocess.vertex-DkSqDp_B.esm.js.map +1 -0
  340. package/dist/chunks/postprocess.vertex-jcsw-UdE.esm.min.js +2 -0
  341. package/dist/chunks/postprocess.vertex-jcsw-UdE.esm.min.js.map +1 -0
  342. package/dist/chunks/rawTexture-CYKKtww2.esm.min.js +2 -0
  343. package/dist/chunks/rawTexture-CYKKtww2.esm.min.js.map +1 -0
  344. package/dist/chunks/rawTexture-Dincgc4_.esm.js +191 -0
  345. package/dist/chunks/rawTexture-Dincgc4_.esm.js.map +1 -0
  346. package/dist/chunks/rgbdDecode.fragment-B1L0EyYQ.esm.js +17 -0
  347. package/dist/chunks/rgbdDecode.fragment-B1L0EyYQ.esm.js.map +1 -0
  348. package/dist/chunks/rgbdDecode.fragment-Bf3XkJ56.esm.js +17 -0
  349. package/dist/chunks/rgbdDecode.fragment-Bf3XkJ56.esm.js.map +1 -0
  350. package/dist/chunks/rgbdDecode.fragment-DehfVUqU.esm.min.js +2 -0
  351. package/dist/chunks/rgbdDecode.fragment-DehfVUqU.esm.min.js.map +1 -0
  352. package/dist/chunks/rgbdDecode.fragment-ObclIREU.esm.min.js +2 -0
  353. package/dist/chunks/rgbdDecode.fragment-ObclIREU.esm.min.js.map +1 -0
  354. package/dist/chunks/rgbdEncode.fragment-BUFNbMJl.esm.js +17 -0
  355. package/dist/chunks/rgbdEncode.fragment-BUFNbMJl.esm.js.map +1 -0
  356. package/dist/chunks/rgbdEncode.fragment-C5eGI_F7.esm.min.js +2 -0
  357. package/dist/chunks/rgbdEncode.fragment-C5eGI_F7.esm.min.js.map +1 -0
  358. package/dist/chunks/rgbdEncode.fragment-Cv2rZN9H.esm.js +17 -0
  359. package/dist/chunks/rgbdEncode.fragment-Cv2rZN9H.esm.js.map +1 -0
  360. package/dist/chunks/rgbdEncode.fragment-a2UFva1K.esm.min.js +2 -0
  361. package/dist/chunks/rgbdEncode.fragment-a2UFva1K.esm.min.js.map +1 -0
  362. package/dist/chunks/splatFileLoader-Ci35-grq.esm.js +3948 -0
  363. package/dist/chunks/splatFileLoader-Ci35-grq.esm.js.map +1 -0
  364. package/dist/chunks/splatFileLoader-D6TovORe.esm.min.js +2 -0
  365. package/dist/chunks/splatFileLoader-D6TovORe.esm.min.js.map +1 -0
  366. package/dist/chunks/standardMaterial-CWe_HbM8.esm.js +1805 -0
  367. package/dist/chunks/standardMaterial-CWe_HbM8.esm.js.map +1 -0
  368. package/dist/chunks/standardMaterial-S43MSA6g.esm.min.js +2 -0
  369. package/dist/chunks/standardMaterial-S43MSA6g.esm.min.js.map +1 -0
  370. package/dist/chunks/stlFileLoader-BKWCF44z.esm.min.js +2 -0
  371. package/dist/chunks/stlFileLoader-BKWCF44z.esm.min.js.map +1 -0
  372. package/dist/chunks/stlFileLoader-yX9YZMTi.esm.js +238 -0
  373. package/dist/chunks/stlFileLoader-yX9YZMTi.esm.js.map +1 -0
  374. package/dist/chunks/tgaTextureLoader-Cplo6n3C.esm.min.js +2 -0
  375. package/dist/chunks/tgaTextureLoader-Cplo6n3C.esm.min.js.map +1 -0
  376. package/dist/chunks/tgaTextureLoader-Ih4TItIE.esm.js +349 -0
  377. package/dist/chunks/tgaTextureLoader-Ih4TItIE.esm.js.map +1 -0
  378. package/dist/chunks/thinEngine-CxcDG6-R.esm.min.js +2 -0
  379. package/dist/chunks/thinEngine-CxcDG6-R.esm.min.js.map +1 -0
  380. package/dist/chunks/thinEngine-vHy0Qu0Z.esm.js +3842 -0
  381. package/dist/chunks/thinEngine-vHy0Qu0Z.esm.js.map +1 -0
  382. package/dist/chunks/thinInstanceMesh-CfVH9qgD.esm.js +314 -0
  383. package/dist/chunks/thinInstanceMesh-CfVH9qgD.esm.js.map +1 -0
  384. package/dist/chunks/thinInstanceMesh-DsyDWStO.esm.min.js +2 -0
  385. package/dist/chunks/thinInstanceMesh-DsyDWStO.esm.min.js.map +1 -0
  386. package/dist/chunks/vertexColorMixing-BTsACspH.esm.min.js +2 -0
  387. package/dist/chunks/vertexColorMixing-BTsACspH.esm.min.js.map +1 -0
  388. package/dist/chunks/vertexColorMixing-C7lCJCs9.esm.js +412 -0
  389. package/dist/chunks/vertexColorMixing-C7lCJCs9.esm.js.map +1 -0
  390. package/dist/chunks/vertexColorMixing-CtbEZ5C1.esm.js +522 -0
  391. package/dist/chunks/vertexColorMixing-CtbEZ5C1.esm.js.map +1 -0
  392. package/dist/chunks/vertexColorMixing-mccpwG_C.esm.min.js +2 -0
  393. package/dist/chunks/vertexColorMixing-mccpwG_C.esm.min.js.map +1 -0
  394. package/dist/chunks/webgpuEngine-B8X6Ca_-.esm.min.js +2 -0
  395. package/dist/chunks/webgpuEngine-B8X6Ca_-.esm.min.js.map +1 -0
  396. package/dist/chunks/webgpuEngine-BnnNyU1U.esm.js +11533 -0
  397. package/dist/chunks/webgpuEngine-BnnNyU1U.esm.js.map +1 -0
  398. package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
  399. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
  400. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
  401. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
  402. package/docs/ViewerDefault.jpg +0 -0
  403. package/docs/ViewerParts.jpg +0 -0
  404. package/docs/ViewerSlots.jpg +0 -0
  405. package/docs/ViewerStyled.jpg +0 -0
  406. package/lib/index.d.ts +534 -0
  407. package/lib/index.js +1939 -0
  408. package/lib/index.js.map +1 -0
  409. package/package.json +18 -27
  410. package/readme.md +145 -21
  411. package/configuration/configuration.d.ts +0 -107
  412. package/configuration/configuration.js +0 -16
  413. package/configuration/configuration.js.map +0 -1
  414. package/configuration/configurationCompatibility.d.ts +0 -8
  415. package/configuration/configurationCompatibility.js +0 -66
  416. package/configuration/configurationCompatibility.js.map +0 -1
  417. package/configuration/configurationContainer.d.ts +0 -10
  418. package/configuration/configurationContainer.js +0 -10
  419. package/configuration/configurationContainer.js.map +0 -1
  420. package/configuration/globals.d.ts +0 -6
  421. package/configuration/globals.js +0 -18
  422. package/configuration/globals.js.map +0 -1
  423. package/configuration/index.d.ts +0 -2
  424. package/configuration/index.js +0 -4
  425. package/configuration/index.js.map +0 -1
  426. package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
  427. package/configuration/interfaces/cameraConfiguration.js +0 -2
  428. package/configuration/interfaces/cameraConfiguration.js.map +0 -1
  429. package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
  430. package/configuration/interfaces/colorGradingConfiguration.js +0 -2
  431. package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
  432. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
  433. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
  434. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
  435. package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
  436. package/configuration/interfaces/environmentMapConfiguration.js +0 -2
  437. package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
  438. package/configuration/interfaces/groundConfiguration.d.ts +0 -24
  439. package/configuration/interfaces/groundConfiguration.js +0 -2
  440. package/configuration/interfaces/groundConfiguration.js.map +0 -1
  441. package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
  442. package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
  443. package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
  444. package/configuration/interfaces/index.d.ts +0 -15
  445. package/configuration/interfaces/index.js +0 -16
  446. package/configuration/interfaces/index.js.map +0 -1
  447. package/configuration/interfaces/lightConfiguration.d.ts +0 -60
  448. package/configuration/interfaces/lightConfiguration.js +0 -2
  449. package/configuration/interfaces/lightConfiguration.js.map +0 -1
  450. package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
  451. package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
  452. package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
  453. package/configuration/interfaces/modelConfiguration.d.ts +0 -65
  454. package/configuration/interfaces/modelConfiguration.js +0 -2
  455. package/configuration/interfaces/modelConfiguration.js.map +0 -1
  456. package/configuration/interfaces/observersConfiguration.d.ts +0 -5
  457. package/configuration/interfaces/observersConfiguration.js +0 -2
  458. package/configuration/interfaces/observersConfiguration.js.map +0 -1
  459. package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
  460. package/configuration/interfaces/sceneConfiguration.js +0 -2
  461. package/configuration/interfaces/sceneConfiguration.js.map +0 -1
  462. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
  463. package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
  464. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
  465. package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
  466. package/configuration/interfaces/skyboxConfiguration.js +0 -2
  467. package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
  468. package/configuration/interfaces/templateConfiguration.d.ts +0 -67
  469. package/configuration/interfaces/templateConfiguration.js +0 -2
  470. package/configuration/interfaces/templateConfiguration.js.map +0 -1
  471. package/configuration/interfaces/vrConfiguration.d.ts +0 -16
  472. package/configuration/interfaces/vrConfiguration.js +0 -2
  473. package/configuration/interfaces/vrConfiguration.js.map +0 -1
  474. package/configuration/loader.d.ts +0 -4
  475. package/configuration/loader.js +0 -17
  476. package/configuration/loader.js.map +0 -1
  477. package/configuration/mappers.d.ts +0 -43
  478. package/configuration/mappers.js +0 -193
  479. package/configuration/mappers.js.map +0 -1
  480. package/configuration/renderOnlyLoader.d.ts +0 -33
  481. package/configuration/renderOnlyLoader.js +0 -162
  482. package/configuration/renderOnlyLoader.js.map +0 -1
  483. package/configuration/types/default.d.ts +0 -6
  484. package/configuration/types/default.js +0 -121
  485. package/configuration/types/default.js.map +0 -1
  486. package/configuration/types/environmentMap.d.ts +0 -5
  487. package/configuration/types/environmentMap.js +0 -14
  488. package/configuration/types/environmentMap.js.map +0 -1
  489. package/configuration/types/extended.d.ts +0 -6
  490. package/configuration/types/extended.js +0 -317
  491. package/configuration/types/extended.js.map +0 -1
  492. package/configuration/types/index.d.ts +0 -14
  493. package/configuration/types/index.js +0 -51
  494. package/configuration/types/index.js.map +0 -1
  495. package/configuration/types/minimal.d.ts +0 -6
  496. package/configuration/types/minimal.js +0 -43
  497. package/configuration/types/minimal.js.map +0 -1
  498. package/configuration/types/renderOnlyDefault.d.ts +0 -30
  499. package/configuration/types/renderOnlyDefault.js +0 -31
  500. package/configuration/types/renderOnlyDefault.js.map +0 -1
  501. package/configuration/types/shadowLight.d.ts +0 -9
  502. package/configuration/types/shadowLight.js +0 -64
  503. package/configuration/types/shadowLight.js.map +0 -1
  504. package/helper/index.d.ts +0 -29
  505. package/helper/index.js +0 -66
  506. package/helper/index.js.map +0 -1
  507. package/index.d.ts +0 -30
  508. package/index.js +0 -46
  509. package/index.js.map +0 -1
  510. package/initializer.d.ts +0 -11
  511. package/initializer.js +0 -35
  512. package/initializer.js.map +0 -1
  513. package/interfaces.d.ts +0 -5
  514. package/interfaces.js +0 -7
  515. package/interfaces.js.map +0 -1
  516. package/labs/environmentSerializer.d.ts +0 -126
  517. package/labs/environmentSerializer.js +0 -191
  518. package/labs/environmentSerializer.js.map +0 -1
  519. package/labs/texture.d.ts +0 -183
  520. package/labs/texture.js +0 -351
  521. package/labs/texture.js.map +0 -1
  522. package/labs/viewerLabs.d.ts +0 -51
  523. package/labs/viewerLabs.js +0 -134
  524. package/labs/viewerLabs.js.map +0 -1
  525. package/loader/modelLoader.d.ts +0 -56
  526. package/loader/modelLoader.js +0 -202
  527. package/loader/modelLoader.js.map +0 -1
  528. package/loader/plugins/applyMaterialConfig.d.ts +0 -12
  529. package/loader/plugins/applyMaterialConfig.js +0 -16
  530. package/loader/plugins/applyMaterialConfig.js.map +0 -1
  531. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
  532. package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
  533. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
  534. package/loader/plugins/index.d.ts +0 -19
  535. package/loader/plugins/index.js +0 -44
  536. package/loader/plugins/index.js.map +0 -1
  537. package/loader/plugins/loaderPlugin.d.ts +0 -24
  538. package/loader/plugins/loaderPlugin.js +0 -2
  539. package/loader/plugins/loaderPlugin.js.map +0 -1
  540. package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
  541. package/loader/plugins/msftLodLoaderPlugin.js +0 -21
  542. package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
  543. package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
  544. package/loader/plugins/telemetryLoaderPlugin.js +0 -36
  545. package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
  546. package/managers/observablesManager.d.ts +0 -66
  547. package/managers/observablesManager.js +0 -35
  548. package/managers/observablesManager.js.map +0 -1
  549. package/managers/sceneManager.d.ts +0 -245
  550. package/managers/sceneManager.js +0 -1375
  551. package/managers/sceneManager.js.map +0 -1
  552. package/managers/telemetryManager.d.ts +0 -78
  553. package/managers/telemetryManager.js +0 -117
  554. package/managers/telemetryManager.js.map +0 -1
  555. package/model/modelAnimation.d.ts +0 -215
  556. package/model/modelAnimation.js +0 -237
  557. package/model/modelAnimation.js.map +0 -1
  558. package/model/viewerModel.d.ts +0 -233
  559. package/model/viewerModel.js +0 -673
  560. package/model/viewerModel.js.map +0 -1
  561. package/optimizer/custom/extended.d.ts +0 -13
  562. package/optimizer/custom/extended.js +0 -101
  563. package/optimizer/custom/extended.js.map +0 -1
  564. package/optimizer/custom/index.d.ts +0 -9
  565. package/optimizer/custom/index.js +0 -26
  566. package/optimizer/custom/index.js.map +0 -1
  567. package/renderOnlyIndex.d.ts +0 -11
  568. package/renderOnlyIndex.js +0 -18
  569. package/renderOnlyIndex.js.map +0 -1
  570. package/templating/eventManager.d.ts +0 -35
  571. package/templating/eventManager.js +0 -66
  572. package/templating/eventManager.js.map +0 -1
  573. package/templating/plugins/hdButtonPlugin.d.ts +0 -9
  574. package/templating/plugins/hdButtonPlugin.js +0 -22
  575. package/templating/plugins/hdButtonPlugin.js.map +0 -1
  576. package/templating/plugins/printButton.d.ts +0 -9
  577. package/templating/plugins/printButton.js +0 -41
  578. package/templating/plugins/printButton.js.map +0 -1
  579. package/templating/templateManager.d.ts +0 -197
  580. package/templating/templateManager.js +0 -561
  581. package/templating/templateManager.js.map +0 -1
  582. package/templating/viewerTemplatePlugin.d.ts +0 -21
  583. package/templating/viewerTemplatePlugin.js +0 -69
  584. package/templating/viewerTemplatePlugin.js.map +0 -1
  585. package/viewer/defaultViewer.d.ts +0 -130
  586. package/viewer/defaultViewer.js +0 -672
  587. package/viewer/defaultViewer.js.map +0 -1
  588. package/viewer/renderOnlyViewer.d.ts +0 -9
  589. package/viewer/renderOnlyViewer.js +0 -46
  590. package/viewer/renderOnlyViewer.js.map +0 -1
  591. package/viewer/viewer.d.ts +0 -258
  592. package/viewer/viewer.js +0 -783
  593. package/viewer/viewer.js.map +0 -1
  594. package/viewer/viewerManager.d.ts +0 -58
  595. package/viewer/viewerManager.js +0 -91
  596. package/viewer/viewerManager.js.map +0 -1
  597. package/viewer/viewerWithTemplate.d.ts +0 -9
  598. package/viewer/viewerWithTemplate.js +0 -20
  599. package/viewer/viewerWithTemplate.js.map +0 -1
@@ -0,0 +1,307 @@
1
+ import { a_ as PBRMaterial, aP as unregisterGLTFExtension, aQ as registerGLTFExtension, C as Constants, aU as Observable, T as Tools, a$ as RenderTargetTexture } from './index-DBm7fzXf.esm.js';
2
+ import { G as GLTFLoader } from './glTFLoader-UTdbOHEt.esm.js';
3
+ import './rawTexture-Dincgc4_.esm.js';
4
+ import './assetContainer-D_8hiZKA.esm.js';
5
+ import './glTFLoaderAnimation-CapCmtyI.esm.js';
6
+
7
+ /**
8
+ * A class to handle setting up the rendering of opaque objects to be shown through transmissive objects.
9
+ */
10
+ class TransmissionHelper {
11
+ /**
12
+ * Creates the default options for the helper.
13
+ * @returns the default options
14
+ */
15
+ static _GetDefaultOptions() {
16
+ return {
17
+ renderSize: 1024,
18
+ samples: 4,
19
+ lodGenerationScale: 1,
20
+ lodGenerationOffset: -4,
21
+ renderTargetTextureType: Constants.TEXTURETYPE_HALF_FLOAT,
22
+ generateMipmaps: true,
23
+ };
24
+ }
25
+ /**
26
+ * constructor
27
+ * @param options Defines the options we want to customize the helper
28
+ * @param scene The scene to add the material to
29
+ */
30
+ constructor(options, scene) {
31
+ this._opaqueRenderTarget = null;
32
+ this._opaqueMeshesCache = [];
33
+ this._transparentMeshesCache = [];
34
+ this._materialObservers = {};
35
+ this._options = {
36
+ ...TransmissionHelper._GetDefaultOptions(),
37
+ ...options,
38
+ };
39
+ this._scene = scene;
40
+ this._scene._transmissionHelper = this;
41
+ this.onErrorObservable = new Observable();
42
+ this._scene.onDisposeObservable.addOnce(() => {
43
+ this.dispose();
44
+ });
45
+ this._parseScene();
46
+ this._setupRenderTargets();
47
+ }
48
+ /**
49
+ * Updates the background according to the new options
50
+ * @param options
51
+ */
52
+ updateOptions(options) {
53
+ // First check if any options are actually being changed. If not, exit.
54
+ const newValues = Object.keys(options).filter((key) => this._options[key] !== options[key]);
55
+ if (!newValues.length) {
56
+ return;
57
+ }
58
+ const newOptions = {
59
+ ...this._options,
60
+ ...options,
61
+ };
62
+ const oldOptions = this._options;
63
+ this._options = newOptions;
64
+ // If size changes, recreate everything
65
+ if (newOptions.renderSize !== oldOptions.renderSize ||
66
+ newOptions.renderTargetTextureType !== oldOptions.renderTargetTextureType ||
67
+ newOptions.generateMipmaps !== oldOptions.generateMipmaps ||
68
+ !this._opaqueRenderTarget) {
69
+ this._setupRenderTargets();
70
+ }
71
+ else {
72
+ this._opaqueRenderTarget.samples = newOptions.samples;
73
+ this._opaqueRenderTarget.lodGenerationScale = newOptions.lodGenerationScale;
74
+ this._opaqueRenderTarget.lodGenerationOffset = newOptions.lodGenerationOffset;
75
+ }
76
+ }
77
+ /**
78
+ * @returns the opaque render target texture or null if not available.
79
+ */
80
+ getOpaqueTarget() {
81
+ return this._opaqueRenderTarget;
82
+ }
83
+ _shouldRenderAsTransmission(material) {
84
+ if (!material) {
85
+ return false;
86
+ }
87
+ if (material instanceof PBRMaterial && material.subSurface.isRefractionEnabled) {
88
+ return true;
89
+ }
90
+ return false;
91
+ }
92
+ _addMesh(mesh) {
93
+ this._materialObservers[mesh.uniqueId] = mesh.onMaterialChangedObservable.add(this._onMeshMaterialChanged.bind(this));
94
+ // we need to defer the processing because _addMesh may be called as part as an instance mesh creation, in which case some
95
+ // internal properties are not setup yet, like _sourceMesh (needed when doing mesh.material below)
96
+ Tools.SetImmediate(() => {
97
+ if (this._shouldRenderAsTransmission(mesh.material)) {
98
+ mesh.material.refractionTexture = this._opaqueRenderTarget;
99
+ if (this._transparentMeshesCache.indexOf(mesh) === -1) {
100
+ this._transparentMeshesCache.push(mesh);
101
+ }
102
+ }
103
+ else {
104
+ if (this._opaqueMeshesCache.indexOf(mesh) === -1) {
105
+ this._opaqueMeshesCache.push(mesh);
106
+ }
107
+ }
108
+ });
109
+ }
110
+ _removeMesh(mesh) {
111
+ mesh.onMaterialChangedObservable.remove(this._materialObservers[mesh.uniqueId]);
112
+ delete this._materialObservers[mesh.uniqueId];
113
+ let idx = this._transparentMeshesCache.indexOf(mesh);
114
+ if (idx !== -1) {
115
+ this._transparentMeshesCache.splice(idx, 1);
116
+ }
117
+ idx = this._opaqueMeshesCache.indexOf(mesh);
118
+ if (idx !== -1) {
119
+ this._opaqueMeshesCache.splice(idx, 1);
120
+ }
121
+ }
122
+ _parseScene() {
123
+ this._scene.meshes.forEach(this._addMesh.bind(this));
124
+ // Listen for when a mesh is added to the scene and add it to our cache lists.
125
+ this._scene.onNewMeshAddedObservable.add(this._addMesh.bind(this));
126
+ // Listen for when a mesh is removed from to the scene and remove it from our cache lists.
127
+ this._scene.onMeshRemovedObservable.add(this._removeMesh.bind(this));
128
+ }
129
+ // When one of the meshes in the scene has its material changed, make sure that it's in the correct cache list.
130
+ _onMeshMaterialChanged(mesh) {
131
+ const transparentIdx = this._transparentMeshesCache.indexOf(mesh);
132
+ const opaqueIdx = this._opaqueMeshesCache.indexOf(mesh);
133
+ // If the material is transparent, make sure that it's added to the transparent list and removed from the opaque list
134
+ const useTransmission = this._shouldRenderAsTransmission(mesh.material);
135
+ if (useTransmission) {
136
+ if (mesh.material instanceof PBRMaterial) {
137
+ mesh.material.subSurface.refractionTexture = this._opaqueRenderTarget;
138
+ }
139
+ if (opaqueIdx !== -1) {
140
+ this._opaqueMeshesCache.splice(opaqueIdx, 1);
141
+ this._transparentMeshesCache.push(mesh);
142
+ }
143
+ else if (transparentIdx === -1) {
144
+ this._transparentMeshesCache.push(mesh);
145
+ }
146
+ // If the material is opaque, make sure that it's added to the opaque list and removed from the transparent list
147
+ }
148
+ else {
149
+ if (transparentIdx !== -1) {
150
+ this._transparentMeshesCache.splice(transparentIdx, 1);
151
+ this._opaqueMeshesCache.push(mesh);
152
+ }
153
+ else if (opaqueIdx === -1) {
154
+ this._opaqueMeshesCache.push(mesh);
155
+ }
156
+ }
157
+ }
158
+ /**
159
+ * @internal
160
+ * Check if the opaque render target has not been disposed and can still be used.
161
+ * @returns
162
+ */
163
+ _isRenderTargetValid() {
164
+ return this._opaqueRenderTarget?.getInternalTexture() !== null;
165
+ }
166
+ /**
167
+ * @internal
168
+ * Setup the render targets according to the specified options.
169
+ */
170
+ _setupRenderTargets() {
171
+ if (this._opaqueRenderTarget) {
172
+ this._opaqueRenderTarget.dispose();
173
+ }
174
+ this._opaqueRenderTarget = new RenderTargetTexture("opaqueSceneTexture", this._options.renderSize, this._scene, this._options.generateMipmaps, undefined, this._options.renderTargetTextureType);
175
+ this._opaqueRenderTarget.ignoreCameraViewport = true;
176
+ this._opaqueRenderTarget.renderList = this._opaqueMeshesCache;
177
+ this._opaqueRenderTarget.clearColor = this._options.clearColor?.clone() ?? this._scene.clearColor.clone();
178
+ this._opaqueRenderTarget.gammaSpace = false;
179
+ this._opaqueRenderTarget.lodGenerationScale = this._options.lodGenerationScale;
180
+ this._opaqueRenderTarget.lodGenerationOffset = this._options.lodGenerationOffset;
181
+ this._opaqueRenderTarget.samples = this._options.samples;
182
+ this._opaqueRenderTarget.renderSprites = true;
183
+ this._opaqueRenderTarget.renderParticles = true;
184
+ let sceneImageProcessingapplyByPostProcess;
185
+ let saveSceneEnvIntensity;
186
+ this._opaqueRenderTarget.onBeforeBindObservable.add((opaqueRenderTarget) => {
187
+ saveSceneEnvIntensity = this._scene.environmentIntensity;
188
+ this._scene.environmentIntensity = 1.0;
189
+ sceneImageProcessingapplyByPostProcess = this._scene.imageProcessingConfiguration.applyByPostProcess;
190
+ if (!this._options.clearColor) {
191
+ this._scene.clearColor.toLinearSpaceToRef(opaqueRenderTarget.clearColor, this._scene.getEngine().useExactSrgbConversions);
192
+ }
193
+ else {
194
+ opaqueRenderTarget.clearColor.copyFrom(this._options.clearColor);
195
+ }
196
+ // we do not use the applyByPostProcess setter to avoid flagging all the materials as "image processing dirty"!
197
+ this._scene.imageProcessingConfiguration._applyByPostProcess = true;
198
+ });
199
+ this._opaqueRenderTarget.onAfterUnbindObservable.add(() => {
200
+ this._scene.environmentIntensity = saveSceneEnvIntensity;
201
+ this._scene.imageProcessingConfiguration._applyByPostProcess = sceneImageProcessingapplyByPostProcess;
202
+ });
203
+ this._transparentMeshesCache.forEach((mesh) => {
204
+ if (this._shouldRenderAsTransmission(mesh.material)) {
205
+ mesh.material.refractionTexture = this._opaqueRenderTarget;
206
+ }
207
+ });
208
+ }
209
+ /**
210
+ * Dispose all the elements created by the Helper.
211
+ */
212
+ dispose() {
213
+ this._scene._transmissionHelper = undefined;
214
+ if (this._opaqueRenderTarget) {
215
+ this._opaqueRenderTarget.dispose();
216
+ this._opaqueRenderTarget = null;
217
+ }
218
+ this._transparentMeshesCache = [];
219
+ this._opaqueMeshesCache = [];
220
+ }
221
+ }
222
+ const NAME = "KHR_materials_transmission";
223
+ /**
224
+ * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_transmission/README.md)
225
+ */
226
+ // eslint-disable-next-line @typescript-eslint/naming-convention
227
+ class KHR_materials_transmission {
228
+ /**
229
+ * @internal
230
+ */
231
+ constructor(loader) {
232
+ /**
233
+ * The name of this extension.
234
+ */
235
+ this.name = NAME;
236
+ /**
237
+ * Defines a number that determines the order the extensions are applied.
238
+ */
239
+ this.order = 175;
240
+ this._loader = loader;
241
+ this.enabled = this._loader.isExtensionUsed(NAME);
242
+ if (this.enabled) {
243
+ loader.parent.transparencyAsCoverage = true;
244
+ }
245
+ }
246
+ /** @internal */
247
+ dispose() {
248
+ this._loader = null;
249
+ }
250
+ /**
251
+ * @internal
252
+ */
253
+ loadMaterialPropertiesAsync(context, material, babylonMaterial) {
254
+ return GLTFLoader.LoadExtensionAsync(context, material, this.name, (extensionContext, extension) => {
255
+ const promises = new Array();
256
+ promises.push(this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial));
257
+ promises.push(this._loadTransparentPropertiesAsync(extensionContext, material, babylonMaterial, extension));
258
+ return Promise.all(promises).then(() => { });
259
+ });
260
+ }
261
+ _loadTransparentPropertiesAsync(context, material, babylonMaterial, extension) {
262
+ if (!(babylonMaterial instanceof PBRMaterial)) {
263
+ throw new Error(`${context}: Material type not supported`);
264
+ }
265
+ const pbrMaterial = babylonMaterial;
266
+ // Enables "refraction" texture which represents transmitted light.
267
+ pbrMaterial.subSurface.isRefractionEnabled = true;
268
+ // Since this extension models thin-surface transmission only, we must make IOR = 1.0
269
+ pbrMaterial.subSurface.volumeIndexOfRefraction = 1.0;
270
+ // Albedo colour will tint transmission.
271
+ pbrMaterial.subSurface.useAlbedoToTintRefraction = true;
272
+ if (extension.transmissionFactor !== undefined) {
273
+ pbrMaterial.subSurface.refractionIntensity = extension.transmissionFactor;
274
+ const scene = pbrMaterial.getScene();
275
+ if (pbrMaterial.subSurface.refractionIntensity && !scene._transmissionHelper) {
276
+ new TransmissionHelper({}, pbrMaterial.getScene());
277
+ }
278
+ else if (pbrMaterial.subSurface.refractionIntensity && !scene._transmissionHelper?._isRenderTargetValid()) {
279
+ // If the render target is not valid, recreate it.
280
+ scene._transmissionHelper?._setupRenderTargets();
281
+ }
282
+ }
283
+ else {
284
+ pbrMaterial.subSurface.refractionIntensity = 0.0;
285
+ pbrMaterial.subSurface.isRefractionEnabled = false;
286
+ return Promise.resolve();
287
+ }
288
+ pbrMaterial.subSurface.minimumThickness = 0.0;
289
+ pbrMaterial.subSurface.maximumThickness = 0.0;
290
+ if (extension.transmissionTexture) {
291
+ extension.transmissionTexture.nonColorData = true;
292
+ return this._loader.loadTextureInfoAsync(`${context}/transmissionTexture`, extension.transmissionTexture, undefined).then((texture) => {
293
+ texture.name = `${babylonMaterial.name} (Transmission)`;
294
+ pbrMaterial.subSurface.refractionIntensityTexture = texture;
295
+ pbrMaterial.subSurface.useGltfStyleTextures = true;
296
+ });
297
+ }
298
+ else {
299
+ return Promise.resolve();
300
+ }
301
+ }
302
+ }
303
+ unregisterGLTFExtension(NAME);
304
+ registerGLTFExtension(NAME, true, (loader) => new KHR_materials_transmission(loader));
305
+
306
+ export { KHR_materials_transmission };
307
+ //# sourceMappingURL=KHR_materials_transmission-CuudPQVC.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KHR_materials_transmission-CuudPQVC.esm.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/KHR_materials_transmission.js"],"sourcesContent":["import { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\nimport { GLTFLoader } from \"../glTFLoader\";\nimport { RenderTargetTexture } from \"core/Materials/Textures/renderTargetTexture\";\nimport { Observable } from \"core/Misc/observable\";\nimport { Constants } from \"core/Engines/constants\";\nimport { Tools } from \"core/Misc/tools\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\n/**\n * A class to handle setting up the rendering of opaque objects to be shown through transmissive objects.\n */\nclass TransmissionHelper {\n /**\n * Creates the default options for the helper.\n * @returns the default options\n */\n static _GetDefaultOptions() {\n return {\n renderSize: 1024,\n samples: 4,\n lodGenerationScale: 1,\n lodGenerationOffset: -4,\n renderTargetTextureType: Constants.TEXTURETYPE_HALF_FLOAT,\n generateMipmaps: true,\n };\n }\n /**\n * constructor\n * @param options Defines the options we want to customize the helper\n * @param scene The scene to add the material to\n */\n constructor(options, scene) {\n this._opaqueRenderTarget = null;\n this._opaqueMeshesCache = [];\n this._transparentMeshesCache = [];\n this._materialObservers = {};\n this._options = {\n ...TransmissionHelper._GetDefaultOptions(),\n ...options,\n };\n this._scene = scene;\n this._scene._transmissionHelper = this;\n this.onErrorObservable = new Observable();\n this._scene.onDisposeObservable.addOnce(() => {\n this.dispose();\n });\n this._parseScene();\n this._setupRenderTargets();\n }\n /**\n * Updates the background according to the new options\n * @param options\n */\n updateOptions(options) {\n // First check if any options are actually being changed. If not, exit.\n const newValues = Object.keys(options).filter((key) => this._options[key] !== options[key]);\n if (!newValues.length) {\n return;\n }\n const newOptions = {\n ...this._options,\n ...options,\n };\n const oldOptions = this._options;\n this._options = newOptions;\n // If size changes, recreate everything\n if (newOptions.renderSize !== oldOptions.renderSize ||\n newOptions.renderTargetTextureType !== oldOptions.renderTargetTextureType ||\n newOptions.generateMipmaps !== oldOptions.generateMipmaps ||\n !this._opaqueRenderTarget) {\n this._setupRenderTargets();\n }\n else {\n this._opaqueRenderTarget.samples = newOptions.samples;\n this._opaqueRenderTarget.lodGenerationScale = newOptions.lodGenerationScale;\n this._opaqueRenderTarget.lodGenerationOffset = newOptions.lodGenerationOffset;\n }\n }\n /**\n * @returns the opaque render target texture or null if not available.\n */\n getOpaqueTarget() {\n return this._opaqueRenderTarget;\n }\n _shouldRenderAsTransmission(material) {\n if (!material) {\n return false;\n }\n if (material instanceof PBRMaterial && material.subSurface.isRefractionEnabled) {\n return true;\n }\n return false;\n }\n _addMesh(mesh) {\n this._materialObservers[mesh.uniqueId] = mesh.onMaterialChangedObservable.add(this._onMeshMaterialChanged.bind(this));\n // we need to defer the processing because _addMesh may be called as part as an instance mesh creation, in which case some\n // internal properties are not setup yet, like _sourceMesh (needed when doing mesh.material below)\n Tools.SetImmediate(() => {\n if (this._shouldRenderAsTransmission(mesh.material)) {\n mesh.material.refractionTexture = this._opaqueRenderTarget;\n if (this._transparentMeshesCache.indexOf(mesh) === -1) {\n this._transparentMeshesCache.push(mesh);\n }\n }\n else {\n if (this._opaqueMeshesCache.indexOf(mesh) === -1) {\n this._opaqueMeshesCache.push(mesh);\n }\n }\n });\n }\n _removeMesh(mesh) {\n mesh.onMaterialChangedObservable.remove(this._materialObservers[mesh.uniqueId]);\n delete this._materialObservers[mesh.uniqueId];\n let idx = this._transparentMeshesCache.indexOf(mesh);\n if (idx !== -1) {\n this._transparentMeshesCache.splice(idx, 1);\n }\n idx = this._opaqueMeshesCache.indexOf(mesh);\n if (idx !== -1) {\n this._opaqueMeshesCache.splice(idx, 1);\n }\n }\n _parseScene() {\n this._scene.meshes.forEach(this._addMesh.bind(this));\n // Listen for when a mesh is added to the scene and add it to our cache lists.\n this._scene.onNewMeshAddedObservable.add(this._addMesh.bind(this));\n // Listen for when a mesh is removed from to the scene and remove it from our cache lists.\n this._scene.onMeshRemovedObservable.add(this._removeMesh.bind(this));\n }\n // When one of the meshes in the scene has its material changed, make sure that it's in the correct cache list.\n _onMeshMaterialChanged(mesh) {\n const transparentIdx = this._transparentMeshesCache.indexOf(mesh);\n const opaqueIdx = this._opaqueMeshesCache.indexOf(mesh);\n // If the material is transparent, make sure that it's added to the transparent list and removed from the opaque list\n const useTransmission = this._shouldRenderAsTransmission(mesh.material);\n if (useTransmission) {\n if (mesh.material instanceof PBRMaterial) {\n mesh.material.subSurface.refractionTexture = this._opaqueRenderTarget;\n }\n if (opaqueIdx !== -1) {\n this._opaqueMeshesCache.splice(opaqueIdx, 1);\n this._transparentMeshesCache.push(mesh);\n }\n else if (transparentIdx === -1) {\n this._transparentMeshesCache.push(mesh);\n }\n // If the material is opaque, make sure that it's added to the opaque list and removed from the transparent list\n }\n else {\n if (transparentIdx !== -1) {\n this._transparentMeshesCache.splice(transparentIdx, 1);\n this._opaqueMeshesCache.push(mesh);\n }\n else if (opaqueIdx === -1) {\n this._opaqueMeshesCache.push(mesh);\n }\n }\n }\n /**\n * @internal\n * Check if the opaque render target has not been disposed and can still be used.\n * @returns\n */\n _isRenderTargetValid() {\n return this._opaqueRenderTarget?.getInternalTexture() !== null;\n }\n /**\n * @internal\n * Setup the render targets according to the specified options.\n */\n _setupRenderTargets() {\n if (this._opaqueRenderTarget) {\n this._opaqueRenderTarget.dispose();\n }\n this._opaqueRenderTarget = new RenderTargetTexture(\"opaqueSceneTexture\", this._options.renderSize, this._scene, this._options.generateMipmaps, undefined, this._options.renderTargetTextureType);\n this._opaqueRenderTarget.ignoreCameraViewport = true;\n this._opaqueRenderTarget.renderList = this._opaqueMeshesCache;\n this._opaqueRenderTarget.clearColor = this._options.clearColor?.clone() ?? this._scene.clearColor.clone();\n this._opaqueRenderTarget.gammaSpace = false;\n this._opaqueRenderTarget.lodGenerationScale = this._options.lodGenerationScale;\n this._opaqueRenderTarget.lodGenerationOffset = this._options.lodGenerationOffset;\n this._opaqueRenderTarget.samples = this._options.samples;\n this._opaqueRenderTarget.renderSprites = true;\n this._opaqueRenderTarget.renderParticles = true;\n let sceneImageProcessingapplyByPostProcess;\n let saveSceneEnvIntensity;\n this._opaqueRenderTarget.onBeforeBindObservable.add((opaqueRenderTarget) => {\n saveSceneEnvIntensity = this._scene.environmentIntensity;\n this._scene.environmentIntensity = 1.0;\n sceneImageProcessingapplyByPostProcess = this._scene.imageProcessingConfiguration.applyByPostProcess;\n if (!this._options.clearColor) {\n this._scene.clearColor.toLinearSpaceToRef(opaqueRenderTarget.clearColor, this._scene.getEngine().useExactSrgbConversions);\n }\n else {\n opaqueRenderTarget.clearColor.copyFrom(this._options.clearColor);\n }\n // we do not use the applyByPostProcess setter to avoid flagging all the materials as \"image processing dirty\"!\n this._scene.imageProcessingConfiguration._applyByPostProcess = true;\n });\n this._opaqueRenderTarget.onAfterUnbindObservable.add(() => {\n this._scene.environmentIntensity = saveSceneEnvIntensity;\n this._scene.imageProcessingConfiguration._applyByPostProcess = sceneImageProcessingapplyByPostProcess;\n });\n this._transparentMeshesCache.forEach((mesh) => {\n if (this._shouldRenderAsTransmission(mesh.material)) {\n mesh.material.refractionTexture = this._opaqueRenderTarget;\n }\n });\n }\n /**\n * Dispose all the elements created by the Helper.\n */\n dispose() {\n this._scene._transmissionHelper = undefined;\n if (this._opaqueRenderTarget) {\n this._opaqueRenderTarget.dispose();\n this._opaqueRenderTarget = null;\n }\n this._transparentMeshesCache = [];\n this._opaqueMeshesCache = [];\n }\n}\nconst NAME = \"KHR_materials_transmission\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_transmission/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_materials_transmission {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n /**\n * Defines a number that determines the order the extensions are applied.\n */\n this.order = 175;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n if (this.enabled) {\n loader.parent.transparencyAsCoverage = true;\n }\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /**\n * @internal\n */\n loadMaterialPropertiesAsync(context, material, babylonMaterial) {\n return GLTFLoader.LoadExtensionAsync(context, material, this.name, (extensionContext, extension) => {\n const promises = new Array();\n promises.push(this._loader.loadMaterialPropertiesAsync(context, material, babylonMaterial));\n promises.push(this._loadTransparentPropertiesAsync(extensionContext, material, babylonMaterial, extension));\n return Promise.all(promises).then(() => { });\n });\n }\n _loadTransparentPropertiesAsync(context, material, babylonMaterial, extension) {\n if (!(babylonMaterial instanceof PBRMaterial)) {\n throw new Error(`${context}: Material type not supported`);\n }\n const pbrMaterial = babylonMaterial;\n // Enables \"refraction\" texture which represents transmitted light.\n pbrMaterial.subSurface.isRefractionEnabled = true;\n // Since this extension models thin-surface transmission only, we must make IOR = 1.0\n pbrMaterial.subSurface.volumeIndexOfRefraction = 1.0;\n // Albedo colour will tint transmission.\n pbrMaterial.subSurface.useAlbedoToTintRefraction = true;\n if (extension.transmissionFactor !== undefined) {\n pbrMaterial.subSurface.refractionIntensity = extension.transmissionFactor;\n const scene = pbrMaterial.getScene();\n if (pbrMaterial.subSurface.refractionIntensity && !scene._transmissionHelper) {\n new TransmissionHelper({}, pbrMaterial.getScene());\n }\n else if (pbrMaterial.subSurface.refractionIntensity && !scene._transmissionHelper?._isRenderTargetValid()) {\n // If the render target is not valid, recreate it.\n scene._transmissionHelper?._setupRenderTargets();\n }\n }\n else {\n pbrMaterial.subSurface.refractionIntensity = 0.0;\n pbrMaterial.subSurface.isRefractionEnabled = false;\n return Promise.resolve();\n }\n pbrMaterial.subSurface.minimumThickness = 0.0;\n pbrMaterial.subSurface.maximumThickness = 0.0;\n if (extension.transmissionTexture) {\n extension.transmissionTexture.nonColorData = true;\n return this._loader.loadTextureInfoAsync(`${context}/transmissionTexture`, extension.transmissionTexture, undefined).then((texture) => {\n texture.name = `${babylonMaterial.name} (Transmission)`;\n pbrMaterial.subSurface.refractionIntensityTexture = texture;\n pbrMaterial.subSurface.useGltfStyleTextures = true;\n });\n }\n else {\n return Promise.resolve();\n }\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new KHR_materials_transmission(loader));\n//# sourceMappingURL=KHR_materials_transmission.js.map"],"names":[],"mappings":";;;;;;AAOA;AACA;AACA;AACA,MAAM,kBAAkB,CAAC;AACzB;AACA;AACA;AACA;AACA,IAAI,OAAO,kBAAkB,GAAG;AAChC,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,IAAI;AAC5B,YAAY,OAAO,EAAE,CAAC;AACtB,YAAY,kBAAkB,EAAE,CAAC;AACjC,YAAY,mBAAmB,EAAE,CAAC,CAAC;AACnC,YAAY,uBAAuB,EAAE,SAAS,CAAC,sBAAsB;AACrE,YAAY,eAAe,EAAE,IAAI;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE;AAChC,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI;AACvC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,EAAE;AACpC,QAAQ,IAAI,CAAC,uBAAuB,GAAG,EAAE;AACzC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,EAAE;AACpC,QAAQ,IAAI,CAAC,QAAQ,GAAG;AACxB,YAAY,GAAG,kBAAkB,CAAC,kBAAkB,EAAE;AACtD,YAAY,GAAG,OAAO;AACtB,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK;AAC3B,QAAQ,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,IAAI;AAC9C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,UAAU,EAAE;AACjD,QAAQ,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM;AACtD,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,IAAI,CAAC,mBAAmB,EAAE;AAClC;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,OAAO,EAAE;AAC3B;AACA,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AACnG,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC/B,YAAY;AACZ;AACA,QAAQ,MAAM,UAAU,GAAG;AAC3B,YAAY,GAAG,IAAI,CAAC,QAAQ;AAC5B,YAAY,GAAG,OAAO;AACtB,SAAS;AACT,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ;AACxC,QAAQ,IAAI,CAAC,QAAQ,GAAG,UAAU;AAClC;AACA,QAAQ,IAAI,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU;AAC3D,YAAY,UAAU,CAAC,uBAAuB,KAAK,UAAU,CAAC,uBAAuB;AACrF,YAAY,UAAU,CAAC,eAAe,KAAK,UAAU,CAAC,eAAe;AACrE,YAAY,CAAC,IAAI,CAAC,mBAAmB,EAAE;AACvC,YAAY,IAAI,CAAC,mBAAmB,EAAE;AACtC;AACA,aAAa;AACb,YAAY,IAAI,CAAC,mBAAmB,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO;AACjE,YAAY,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,GAAG,UAAU,CAAC,kBAAkB;AACvF,YAAY,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,GAAG,UAAU,CAAC,mBAAmB;AACzF;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,mBAAmB;AACvC;AACA,IAAI,2BAA2B,CAAC,QAAQ,EAAE;AAC1C,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,IAAI,QAAQ,YAAY,WAAW,IAAI,QAAQ,CAAC,UAAU,CAAC,mBAAmB,EAAE;AACxF,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnB,QAAQ,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7H;AACA;AACA,QAAQ,KAAK,CAAC,YAAY,CAAC,MAAM;AACjC,YAAY,IAAI,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACjE,gBAAgB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB;AAC1E,gBAAgB,IAAI,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACvE,oBAAoB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3D;AACA;AACA,iBAAiB;AACjB,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AAClE,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AACtD;AACA;AACA,SAAS,CAAC;AACV;AACA,IAAI,WAAW,CAAC,IAAI,EAAE;AACtB,QAAQ,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvF,QAAQ,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrD,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC;AAC5D,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AACxB,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;AACvD;AACA,QAAQ,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC;AACnD,QAAQ,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AACxB,YAAY,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;AAClD;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5D;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E;AACA,QAAQ,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5E;AACA;AACA,IAAI,sBAAsB,CAAC,IAAI,EAAE;AACjC,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC;AACzE,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC;AAC/D;AACA,QAAQ,MAAM,eAAe,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/E,QAAQ,IAAI,eAAe,EAAE;AAC7B,YAAY,IAAI,IAAI,CAAC,QAAQ,YAAY,WAAW,EAAE;AACtD,gBAAgB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB;AACrF;AACA,YAAY,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;AAClC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5D,gBAAgB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;AACvD;AACA,iBAAiB,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;AAC5C,gBAAgB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC;AACvD;AACA;AACA;AACA,aAAa;AACb,YAAY,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;AACvC,gBAAgB,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;AACtE,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD;AACA,iBAAiB,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;AACvC,gBAAgB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,GAAG;AAC3B,QAAQ,OAAO,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,KAAK,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA,IAAI,mBAAmB,GAAG;AAC1B,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;AAC9C;AACA,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC;AACxM,QAAQ,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,GAAG,IAAI;AAC5D,QAAQ,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC,kBAAkB;AACrE,QAAQ,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;AACjH,QAAQ,IAAI,CAAC,mBAAmB,CAAC,UAAU,GAAG,KAAK;AACnD,QAAQ,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB;AACtF,QAAQ,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB;AACxF,QAAQ,IAAI,CAAC,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO;AAChE,QAAQ,IAAI,CAAC,mBAAmB,CAAC,aAAa,GAAG,IAAI;AACrD,QAAQ,IAAI,CAAC,mBAAmB,CAAC,eAAe,GAAG,IAAI;AACvD,QAAQ,IAAI,sCAAsC;AAClD,QAAQ,IAAI,qBAAqB;AACjC,QAAQ,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,kBAAkB,KAAK;AACpF,YAAY,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB;AACpE,YAAY,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,GAAG;AAClD,YAAY,sCAAsC,GAAG,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,kBAAkB;AAChH,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;AAC3C,gBAAgB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,uBAAuB,CAAC;AACzI;AACA,iBAAiB;AACjB,gBAAgB,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;AAChF;AACA;AACA,YAAY,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,mBAAmB,GAAG,IAAI;AAC/E,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM;AACnE,YAAY,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,qBAAqB;AACpE,YAAY,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,mBAAmB,GAAG,sCAAsC;AACjH,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACvD,YAAY,IAAI,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACjE,gBAAgB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB;AAC1E;AACA,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,SAAS;AACnD,QAAQ,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACtC,YAAY,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;AAC9C,YAAY,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC3C;AACA,QAAQ,IAAI,CAAC,uBAAuB,GAAG,EAAE;AACzC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,EAAE;AACpC;AACA;AACA,MAAM,IAAI,GAAG,4BAA4B;AACzC;AACA;AACA;AACA;AACO,MAAM,0BAA0B,CAAC;AACxC;AACA;AACA;AACA,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,GAAG;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;AACzD,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAY,MAAM,CAAC,MAAM,CAAC,sBAAsB,GAAG,IAAI;AACvD;AACA;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B;AACA;AACA;AACA;AACA,IAAI,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE;AACpE,QAAQ,OAAO,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,gBAAgB,EAAE,SAAS,KAAK;AAC5G,YAAY,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE;AACxC,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AACvG,YAAY,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;AACvH,YAAY,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;AACxD,SAAS,CAAC;AACV;AACA,IAAI,+BAA+B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE;AACnF,QAAQ,IAAI,EAAE,eAAe,YAAY,WAAW,CAAC,EAAE;AACvD,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;AACtE;AACA,QAAQ,MAAM,WAAW,GAAG,eAAe;AAC3C;AACA,QAAQ,WAAW,CAAC,UAAU,CAAC,mBAAmB,GAAG,IAAI;AACzD;AACA,QAAQ,WAAW,CAAC,UAAU,CAAC,uBAAuB,GAAG,GAAG;AAC5D;AACA,QAAQ,WAAW,CAAC,UAAU,CAAC,yBAAyB,GAAG,IAAI;AAC/D,QAAQ,IAAI,SAAS,CAAC,kBAAkB,KAAK,SAAS,EAAE;AACxD,YAAY,WAAW,CAAC,UAAU,CAAC,mBAAmB,GAAG,SAAS,CAAC,kBAAkB;AACrF,YAAY,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE;AAChD,YAAY,IAAI,WAAW,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE;AAC1F,gBAAgB,IAAI,kBAAkB,CAAC,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC;AAClE;AACA,iBAAiB,IAAI,WAAW,CAAC,UAAU,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,EAAE;AACvH;AACA,gBAAgB,KAAK,CAAC,mBAAmB,EAAE,mBAAmB,EAAE;AAChE;AACA;AACA,aAAa;AACb,YAAY,WAAW,CAAC,UAAU,CAAC,mBAAmB,GAAG,GAAG;AAC5D,YAAY,WAAW,CAAC,UAAU,CAAC,mBAAmB,GAAG,KAAK;AAC9D,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE;AACpC;AACA,QAAQ,WAAW,CAAC,UAAU,CAAC,gBAAgB,GAAG,GAAG;AACrD,QAAQ,WAAW,CAAC,UAAU,CAAC,gBAAgB,GAAG,GAAG;AACrD,QAAQ,IAAI,SAAS,CAAC,mBAAmB,EAAE;AAC3C,YAAY,SAAS,CAAC,mBAAmB,CAAC,YAAY,GAAG,IAAI;AAC7D,YAAY,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EAAE,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK;AACnJ,gBAAgB,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC;AACvE,gBAAgB,WAAW,CAAC,UAAU,CAAC,0BAA0B,GAAG,OAAO;AAC3E,gBAAgB,WAAW,CAAC,UAAU,CAAC,oBAAoB,GAAG,IAAI;AAClE,aAAa,CAAC;AACd;AACA,aAAa;AACb,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE;AACpC;AACA;AACA;AACA,uBAAuB,CAAC,IAAI,CAAC;AAC7B,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAC;;;;"}
@@ -0,0 +1,2 @@
1
+ import{a_ as e,s as o,aP as r,aQ as s}from"./index-jZFAQQur.esm.min.js";import{G as a}from"./glTFLoader-C1ef0xPc.esm.min.js";import"./rawTexture-CYKKtww2.esm.min.js";import"./assetContainer-FA9ojI1I.esm.min.js";import"./glTFLoaderAnimation-D31eUw-v.esm.min.js";const t="KHR_materials_unlit";class i{constructor(e){this.name=t,this.order=210,this._loader=e,this.enabled=this._loader.isExtensionUsed(t)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,o,r){return a.LoadExtensionAsync(e,o,this.name,(()=>this._loadUnlitPropertiesAsync(e,o,r)))}_loadUnlitPropertiesAsync(r,s,a){if(!(a instanceof e))throw new Error(`${r}: Material type not supported`);const t=new Array;a.unlit=!0;const i=s.pbrMetallicRoughness;return i&&(i.baseColorFactor?(a.albedoColor=o.FromArray(i.baseColorFactor),a.alpha=i.baseColorFactor[3]):a.albedoColor=o.White(),i.baseColorTexture&&t.push(this._loader.loadTextureInfoAsync(`${r}/baseColorTexture`,i.baseColorTexture,(e=>{e.name=`${a.name} (Base Color)`,a.albedoTexture=e})))),s.doubleSided&&(a.backFaceCulling=!1,a.twoSidedLighting=!0),this._loader.loadMaterialAlphaProperties(r,s,a),Promise.all(t).then((()=>{}))}}r(t),s(t,!0,(e=>new i(e)));export{i as KHR_materials_unlit};
2
+ //# sourceMappingURL=KHR_materials_unlit-BAGBsUkU.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KHR_materials_unlit-BAGBsUkU.esm.min.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/KHR_materials_unlit.js"],"sourcesContent":["import { Color3 } from \"core/Maths/math.color\";\nimport { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\nimport { GLTFLoader } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"KHR_materials_unlit\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_unlit/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_materials_unlit {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n /**\n * Defines a number that determines the order the extensions are applied.\n */\n this.order = 210;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /**\n * @internal\n */\n loadMaterialPropertiesAsync(context, material, babylonMaterial) {\n return GLTFLoader.LoadExtensionAsync(context, material, this.name, () => {\n return this._loadUnlitPropertiesAsync(context, material, babylonMaterial);\n });\n }\n _loadUnlitPropertiesAsync(context, material, babylonMaterial) {\n if (!(babylonMaterial instanceof PBRMaterial)) {\n throw new Error(`${context}: Material type not supported`);\n }\n const promises = new Array();\n babylonMaterial.unlit = true;\n const properties = material.pbrMetallicRoughness;\n if (properties) {\n if (properties.baseColorFactor) {\n babylonMaterial.albedoColor = Color3.FromArray(properties.baseColorFactor);\n babylonMaterial.alpha = properties.baseColorFactor[3];\n }\n else {\n babylonMaterial.albedoColor = Color3.White();\n }\n if (properties.baseColorTexture) {\n promises.push(this._loader.loadTextureInfoAsync(`${context}/baseColorTexture`, properties.baseColorTexture, (texture) => {\n texture.name = `${babylonMaterial.name} (Base Color)`;\n babylonMaterial.albedoTexture = texture;\n }));\n }\n }\n if (material.doubleSided) {\n babylonMaterial.backFaceCulling = false;\n babylonMaterial.twoSidedLighting = true;\n }\n this._loader.loadMaterialAlphaProperties(context, material, babylonMaterial);\n return Promise.all(promises).then(() => { });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new KHR_materials_unlit(loader));\n//# sourceMappingURL=KHR_materials_unlit.js.map"],"names":["NAME","KHR_materials_unlit","constructor","loader","this","name","order","_loader","enabled","isExtensionUsed","dispose","loadMaterialPropertiesAsync","context","material","babylonMaterial","GLTFLoader","LoadExtensionAsync","_loadUnlitPropertiesAsync","PBRMaterial","Error","promises","Array","unlit","properties","pbrMetallicRoughness","baseColorFactor","albedoColor","Color3","FromArray","alpha","White","baseColorTexture","push","loadTextureInfoAsync","texture","albedoTexture","doubleSided","backFaceCulling","twoSidedLighting","loadMaterialAlphaProperties","Promise","all","then","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"qQAIA,MAAMA,EAAO,sBAKN,MAAMC,EAIT,WAAAC,CAAYC,GAIRC,KAAKC,KAAOL,EAIZI,KAAKE,MAAQ,IACbF,KAAKG,QAAUJ,EACfC,KAAKI,QAAUJ,KAAKG,QAAQE,gBAAgBT,EACpD,CAEI,OAAAU,GACIN,KAAKG,QAAU,IACvB,CAII,2BAAAI,CAA4BC,EAASC,EAAUC,GAC3C,OAAOC,EAAWC,mBAAmBJ,EAASC,EAAUT,KAAKC,MAAM,IACxDD,KAAKa,0BAA0BL,EAASC,EAAUC,IAErE,CACI,yBAAAG,CAA0BL,EAASC,EAAUC,GACzC,KAAMA,aAA2BI,GAC7B,MAAM,IAAIC,MAAM,GAAGP,kCAEvB,MAAMQ,EAAW,IAAIC,MACrBP,EAAgBQ,OAAQ,EACxB,MAAMC,EAAaV,EAASW,qBAqB5B,OApBID,IACIA,EAAWE,iBACXX,EAAgBY,YAAcC,EAAOC,UAAUL,EAAWE,iBAC1DX,EAAgBe,MAAQN,EAAWE,gBAAgB,IAGnDX,EAAgBY,YAAcC,EAAOG,QAErCP,EAAWQ,kBACXX,EAASY,KAAK5B,KAAKG,QAAQ0B,qBAAqB,GAAGrB,qBAA4BW,EAAWQ,kBAAmBG,IACzGA,EAAQ7B,KAAO,GAAGS,EAAgBT,oBAClCS,EAAgBqB,cAAgBD,CAAO,MAI/CrB,EAASuB,cACTtB,EAAgBuB,iBAAkB,EAClCvB,EAAgBwB,kBAAmB,GAEvClC,KAAKG,QAAQgC,4BAA4B3B,EAASC,EAAUC,GACrD0B,QAAQC,IAAIrB,GAAUsB,MAAK,QAC1C,EAEAC,EAAwB3C,GACxB4C,EAAsB5C,GAAM,GAAOG,GAAW,IAAIF,EAAoBE"}
@@ -0,0 +1,74 @@
1
+ import { a_ as PBRMaterial, s as Color3, aP as unregisterGLTFExtension, aQ as registerGLTFExtension } from './index-DBm7fzXf.esm.js';
2
+ import { G as GLTFLoader } from './glTFLoader-UTdbOHEt.esm.js';
3
+ import './rawTexture-Dincgc4_.esm.js';
4
+ import './assetContainer-D_8hiZKA.esm.js';
5
+ import './glTFLoaderAnimation-CapCmtyI.esm.js';
6
+
7
+ const NAME = "KHR_materials_unlit";
8
+ /**
9
+ * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_unlit/README.md)
10
+ */
11
+ // eslint-disable-next-line @typescript-eslint/naming-convention
12
+ class KHR_materials_unlit {
13
+ /**
14
+ * @internal
15
+ */
16
+ constructor(loader) {
17
+ /**
18
+ * The name of this extension.
19
+ */
20
+ this.name = NAME;
21
+ /**
22
+ * Defines a number that determines the order the extensions are applied.
23
+ */
24
+ this.order = 210;
25
+ this._loader = loader;
26
+ this.enabled = this._loader.isExtensionUsed(NAME);
27
+ }
28
+ /** @internal */
29
+ dispose() {
30
+ this._loader = null;
31
+ }
32
+ /**
33
+ * @internal
34
+ */
35
+ loadMaterialPropertiesAsync(context, material, babylonMaterial) {
36
+ return GLTFLoader.LoadExtensionAsync(context, material, this.name, () => {
37
+ return this._loadUnlitPropertiesAsync(context, material, babylonMaterial);
38
+ });
39
+ }
40
+ _loadUnlitPropertiesAsync(context, material, babylonMaterial) {
41
+ if (!(babylonMaterial instanceof PBRMaterial)) {
42
+ throw new Error(`${context}: Material type not supported`);
43
+ }
44
+ const promises = new Array();
45
+ babylonMaterial.unlit = true;
46
+ const properties = material.pbrMetallicRoughness;
47
+ if (properties) {
48
+ if (properties.baseColorFactor) {
49
+ babylonMaterial.albedoColor = Color3.FromArray(properties.baseColorFactor);
50
+ babylonMaterial.alpha = properties.baseColorFactor[3];
51
+ }
52
+ else {
53
+ babylonMaterial.albedoColor = Color3.White();
54
+ }
55
+ if (properties.baseColorTexture) {
56
+ promises.push(this._loader.loadTextureInfoAsync(`${context}/baseColorTexture`, properties.baseColorTexture, (texture) => {
57
+ texture.name = `${babylonMaterial.name} (Base Color)`;
58
+ babylonMaterial.albedoTexture = texture;
59
+ }));
60
+ }
61
+ }
62
+ if (material.doubleSided) {
63
+ babylonMaterial.backFaceCulling = false;
64
+ babylonMaterial.twoSidedLighting = true;
65
+ }
66
+ this._loader.loadMaterialAlphaProperties(context, material, babylonMaterial);
67
+ return Promise.all(promises).then(() => { });
68
+ }
69
+ }
70
+ unregisterGLTFExtension(NAME);
71
+ registerGLTFExtension(NAME, true, (loader) => new KHR_materials_unlit(loader));
72
+
73
+ export { KHR_materials_unlit };
74
+ //# sourceMappingURL=KHR_materials_unlit-Buu1Z1HL.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KHR_materials_unlit-Buu1Z1HL.esm.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/KHR_materials_unlit.js"],"sourcesContent":["import { Color3 } from \"core/Maths/math.color\";\nimport { PBRMaterial } from \"core/Materials/PBR/pbrMaterial\";\nimport { GLTFLoader } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"KHR_materials_unlit\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_unlit/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_materials_unlit {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n /**\n * Defines a number that determines the order the extensions are applied.\n */\n this.order = 210;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /**\n * @internal\n */\n loadMaterialPropertiesAsync(context, material, babylonMaterial) {\n return GLTFLoader.LoadExtensionAsync(context, material, this.name, () => {\n return this._loadUnlitPropertiesAsync(context, material, babylonMaterial);\n });\n }\n _loadUnlitPropertiesAsync(context, material, babylonMaterial) {\n if (!(babylonMaterial instanceof PBRMaterial)) {\n throw new Error(`${context}: Material type not supported`);\n }\n const promises = new Array();\n babylonMaterial.unlit = true;\n const properties = material.pbrMetallicRoughness;\n if (properties) {\n if (properties.baseColorFactor) {\n babylonMaterial.albedoColor = Color3.FromArray(properties.baseColorFactor);\n babylonMaterial.alpha = properties.baseColorFactor[3];\n }\n else {\n babylonMaterial.albedoColor = Color3.White();\n }\n if (properties.baseColorTexture) {\n promises.push(this._loader.loadTextureInfoAsync(`${context}/baseColorTexture`, properties.baseColorTexture, (texture) => {\n texture.name = `${babylonMaterial.name} (Base Color)`;\n babylonMaterial.albedoTexture = texture;\n }));\n }\n }\n if (material.doubleSided) {\n babylonMaterial.backFaceCulling = false;\n babylonMaterial.twoSidedLighting = true;\n }\n this._loader.loadMaterialAlphaProperties(context, material, babylonMaterial);\n return Promise.all(promises).then(() => { });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new KHR_materials_unlit(loader));\n//# sourceMappingURL=KHR_materials_unlit.js.map"],"names":[],"mappings":";;;;;;AAIA,MAAM,IAAI,GAAG,qBAAqB;AAClC;AACA;AACA;AACA;AACO,MAAM,mBAAmB,CAAC;AACjC;AACA;AACA;AACA,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,GAAG;AACxB,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM;AAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;AACzD;AACA;AACA,IAAI,OAAO,GAAG;AACd,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI;AAC3B;AACA;AACA;AACA;AACA,IAAI,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE;AACpE,QAAQ,OAAO,UAAU,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM;AACjF,YAAY,OAAO,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC;AACrF,SAAS,CAAC;AACV;AACA,IAAI,yBAAyB,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE;AAClE,QAAQ,IAAI,EAAE,eAAe,YAAY,WAAW,CAAC,EAAE;AACvD,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;AACtE;AACA,QAAQ,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAE;AACpC,QAAQ,eAAe,CAAC,KAAK,GAAG,IAAI;AACpC,QAAQ,MAAM,UAAU,GAAG,QAAQ,CAAC,oBAAoB;AACxD,QAAQ,IAAI,UAAU,EAAE;AACxB,YAAY,IAAI,UAAU,CAAC,eAAe,EAAE;AAC5C,gBAAgB,eAAe,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC;AAC1F,gBAAgB,eAAe,CAAC,KAAK,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;AACrE;AACA,iBAAiB;AACjB,gBAAgB,eAAe,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE;AAC5D;AACA,YAAY,IAAI,UAAU,CAAC,gBAAgB,EAAE;AAC7C,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,gBAAgB,EAAE,CAAC,OAAO,KAAK;AACzI,oBAAoB,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC;AACzE,oBAAoB,eAAe,CAAC,aAAa,GAAG,OAAO;AAC3D,iBAAiB,CAAC,CAAC;AACnB;AACA;AACA,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE;AAClC,YAAY,eAAe,CAAC,eAAe,GAAG,KAAK;AACnD,YAAY,eAAe,CAAC,gBAAgB,GAAG,IAAI;AACnD;AACA,QAAQ,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC;AACpF,QAAQ,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;AACpD;AACA;AACA,uBAAuB,CAAC,IAAI,CAAC;AAC7B,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;;;;"}
@@ -0,0 +1,2 @@
1
+ import{G as t,A as a}from"./glTFLoader-C1ef0xPc.esm.min.js";import{M as e,aP as n,aQ as s}from"./index-jZFAQQur.esm.min.js";import"./rawTexture-CYKKtww2.esm.min.js";import"./assetContainer-FA9ojI1I.esm.min.js";import"./glTFLoaderAnimation-D31eUw-v.esm.min.js";const i="KHR_materials_variants";class r{constructor(t){this.name=i,this._loader=t,this.enabled=this._loader.isExtensionUsed(i)}dispose(){this._loader=null}static GetAvailableVariants(t){const a=this._GetExtensionMetadata(t);return a?Object.keys(a.variants):[]}getAvailableVariants(t){return r.GetAvailableVariants(t)}static SelectVariant(t,a){const e=this._GetExtensionMetadata(t);if(!e)throw new Error(`Cannot select variant on a glTF mesh that does not have the ${i} extension`);const n=t=>{const a=e.variants[t];if(a)for(const t of a)t.mesh.material=t.material};if(a instanceof Array)for(const t of a)n(t);else n(a);e.lastSelected=a}selectVariant(t,a){r.SelectVariant(t,a)}static Reset(t){const a=this._GetExtensionMetadata(t);if(!a)throw new Error(`Cannot reset on a glTF mesh that does not have the ${i} extension`);for(const t of a.original)t.mesh.material=t.material;a.lastSelected=null}reset(t){r.Reset(t)}static GetLastSelectedVariant(t){const a=this._GetExtensionMetadata(t);if(!a)throw new Error(`Cannot get the last selected variant on a glTF mesh that does not have the ${i} extension`);return a.lastSelected}getLastSelectedVariant(t){return r.GetLastSelectedVariant(t)}static _GetExtensionMetadata(t){return t?._internalMetadata?.gltf?.[i]||null}onLoading(){const t=this._loader.gltf.extensions;if(t&&t[this.name]){const a=t[this.name];this._variants=a.variants}}_loadMeshPrimitiveAsync(n,s,l,o,m,h){return t.LoadExtensionAsync(n,m,this.name,((d,c)=>{const f=new Array;return f.push(this._loader._loadMeshPrimitiveAsync(n,s,l,o,m,(s=>{if(h(s),s instanceof e){const e=t._GetDrawMode(n,m.mode),l=this._loader.rootBabylonMesh,o=l?l._internalMetadata=l._internalMetadata||{}:{},h=o.gltf=o.gltf||{},_=h[i]=h[i]||{lastSelected:null,original:[],variants:{}};_.original.push({mesh:s,material:s.material});for(let t=0;t<c.mappings.length;++t){const n=c.mappings[t],o=a.Get(`${d}/mappings/${t}/material`,this._loader.gltf.materials,n.material);f.push(this._loader._loadMaterialAsync(`#/materials/${n.material}`,o,s,e,(t=>{for(let e=0;e<n.variants.length;++e){const o=n.variants[e],m=a.Get(`/extensions/${i}/variants/${o}`,this._variants,o);_.variants[m.name]=_.variants[m.name]||[],_.variants[m.name].push({mesh:s,material:t}),s.onClonedObservable.add((t=>{const a=t;let e=null,n=a;do{if(n=n.parent,!n)return;e=r._GetExtensionMetadata(n)}while(null===e);if(l&&e===r._GetExtensionMetadata(l)){n._internalMetadata={};for(const t in l._internalMetadata)n._internalMetadata[t]=l._internalMetadata[t];n._internalMetadata.gltf=[];for(const t in l._internalMetadata.gltf)n._internalMetadata.gltf[t]=l._internalMetadata.gltf[t];n._internalMetadata.gltf[i]={lastSelected:null,original:[],variants:{}};for(const t of e.original)n._internalMetadata.gltf[i].original.push({mesh:t.mesh,material:t.material});for(const t in e.variants)if(Object.prototype.hasOwnProperty.call(e.variants,t)){n._internalMetadata.gltf[i].variants[t]=[];for(const a of e.variants[t])n._internalMetadata.gltf[i].variants[t].push({mesh:a.mesh,material:a.material})}e=n._internalMetadata.gltf[i]}for(const t of e.original)t.mesh===s&&(t.mesh=a);for(const t of e.variants[m.name])t.mesh===s&&(t.mesh=a)}))}})))}}}))),Promise.all(f).then((([t])=>t))}))}}n(i),s(i,!0,(t=>new r(t)));export{r as KHR_materials_variants};
2
+ //# sourceMappingURL=KHR_materials_variants-CMcKgGG2.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KHR_materials_variants-CMcKgGG2.esm.min.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/KHR_materials_variants.js"],"sourcesContent":["import { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { Mesh } from \"core/Meshes/mesh\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"KHR_materials_variants\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Khronos/KHR_materials_variants/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class KHR_materials_variants {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /**\n * Gets the list of available variant names for this asset.\n * @param rootMesh The glTF root mesh\n * @returns the list of all the variant names for this model\n */\n static GetAvailableVariants(rootMesh) {\n const extensionMetadata = this._GetExtensionMetadata(rootMesh);\n if (!extensionMetadata) {\n return [];\n }\n return Object.keys(extensionMetadata.variants);\n }\n /**\n * Gets the list of available variant names for this asset.\n * @param rootMesh The glTF root mesh\n * @returns the list of all the variant names for this model\n */\n getAvailableVariants(rootMesh) {\n return KHR_materials_variants.GetAvailableVariants(rootMesh);\n }\n /**\n * Select a variant given a variant name or a list of variant names.\n * @param rootMesh The glTF root mesh\n * @param variantName The variant name(s) to select.\n */\n static SelectVariant(rootMesh, variantName) {\n const extensionMetadata = this._GetExtensionMetadata(rootMesh);\n if (!extensionMetadata) {\n throw new Error(`Cannot select variant on a glTF mesh that does not have the ${NAME} extension`);\n }\n const select = (variantName) => {\n const entries = extensionMetadata.variants[variantName];\n if (entries) {\n for (const entry of entries) {\n entry.mesh.material = entry.material;\n }\n }\n };\n if (variantName instanceof Array) {\n for (const name of variantName) {\n select(name);\n }\n }\n else {\n select(variantName);\n }\n extensionMetadata.lastSelected = variantName;\n }\n /**\n * Select a variant given a variant name or a list of variant names.\n * @param rootMesh The glTF root mesh\n * @param variantName The variant name(s) to select.\n */\n selectVariant(rootMesh, variantName) {\n KHR_materials_variants.SelectVariant(rootMesh, variantName);\n }\n /**\n * Reset back to the original before selecting a variant.\n * @param rootMesh The glTF root mesh\n */\n static Reset(rootMesh) {\n const extensionMetadata = this._GetExtensionMetadata(rootMesh);\n if (!extensionMetadata) {\n throw new Error(`Cannot reset on a glTF mesh that does not have the ${NAME} extension`);\n }\n for (const entry of extensionMetadata.original) {\n entry.mesh.material = entry.material;\n }\n extensionMetadata.lastSelected = null;\n }\n /**\n * Reset back to the original before selecting a variant.\n * @param rootMesh The glTF root mesh\n */\n reset(rootMesh) {\n KHR_materials_variants.Reset(rootMesh);\n }\n /**\n * Gets the last selected variant name(s) or null if original.\n * @param rootMesh The glTF root mesh\n * @returns The selected variant name(s).\n */\n static GetLastSelectedVariant(rootMesh) {\n const extensionMetadata = this._GetExtensionMetadata(rootMesh);\n if (!extensionMetadata) {\n throw new Error(`Cannot get the last selected variant on a glTF mesh that does not have the ${NAME} extension`);\n }\n return extensionMetadata.lastSelected;\n }\n /**\n * Gets the last selected variant name(s) or null if original.\n * @param rootMesh The glTF root mesh\n * @returns The selected variant name(s).\n */\n getLastSelectedVariant(rootMesh) {\n return KHR_materials_variants.GetLastSelectedVariant(rootMesh);\n }\n static _GetExtensionMetadata(rootMesh) {\n return rootMesh?._internalMetadata?.gltf?.[NAME] || null;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._variants = extension.variants;\n }\n }\n /**\n * @internal\n */\n _loadMeshPrimitiveAsync(context, name, node, mesh, primitive, assign) {\n return GLTFLoader.LoadExtensionAsync(context, primitive, this.name, (extensionContext, extension) => {\n const promises = new Array();\n promises.push(this._loader._loadMeshPrimitiveAsync(context, name, node, mesh, primitive, (babylonMesh) => {\n assign(babylonMesh);\n if (babylonMesh instanceof Mesh) {\n const babylonDrawMode = GLTFLoader._GetDrawMode(context, primitive.mode);\n const root = this._loader.rootBabylonMesh;\n const metadata = root ? (root._internalMetadata = root._internalMetadata || {}) : {};\n const gltf = (metadata.gltf = metadata.gltf || {});\n const extensionMetadata = (gltf[NAME] = gltf[NAME] || { lastSelected: null, original: [], variants: {} });\n // Store the original material.\n extensionMetadata.original.push({ mesh: babylonMesh, material: babylonMesh.material });\n // For each mapping, look at the variants and make a new entry for them.\n for (let mappingIndex = 0; mappingIndex < extension.mappings.length; ++mappingIndex) {\n const mapping = extension.mappings[mappingIndex];\n const material = ArrayItem.Get(`${extensionContext}/mappings/${mappingIndex}/material`, this._loader.gltf.materials, mapping.material);\n promises.push(this._loader._loadMaterialAsync(`#/materials/${mapping.material}`, material, babylonMesh, babylonDrawMode, (babylonMaterial) => {\n for (let mappingVariantIndex = 0; mappingVariantIndex < mapping.variants.length; ++mappingVariantIndex) {\n const variantIndex = mapping.variants[mappingVariantIndex];\n const variant = ArrayItem.Get(`/extensions/${NAME}/variants/${variantIndex}`, this._variants, variantIndex);\n extensionMetadata.variants[variant.name] = extensionMetadata.variants[variant.name] || [];\n extensionMetadata.variants[variant.name].push({\n mesh: babylonMesh,\n material: babylonMaterial,\n });\n // Replace the target when original mesh is cloned\n babylonMesh.onClonedObservable.add((newOne) => {\n const newMesh = newOne;\n let metadata = null;\n let newRoot = newMesh;\n // Find root to get medata\n do {\n newRoot = newRoot.parent;\n if (!newRoot) {\n return;\n }\n metadata = KHR_materials_variants._GetExtensionMetadata(newRoot);\n } while (metadata === null);\n // Need to clone the metadata on the root (first time only)\n if (root && metadata === KHR_materials_variants._GetExtensionMetadata(root)) {\n // Copy main metadata\n newRoot._internalMetadata = {};\n for (const key in root._internalMetadata) {\n newRoot._internalMetadata[key] = root._internalMetadata[key];\n }\n // Copy the gltf metadata\n newRoot._internalMetadata.gltf = [];\n for (const key in root._internalMetadata.gltf) {\n newRoot._internalMetadata.gltf[key] = root._internalMetadata.gltf[key];\n }\n // Duplicate the extension specific metadata\n newRoot._internalMetadata.gltf[NAME] = { lastSelected: null, original: [], variants: {} };\n for (const original of metadata.original) {\n newRoot._internalMetadata.gltf[NAME].original.push({\n mesh: original.mesh,\n material: original.material,\n });\n }\n for (const key in metadata.variants) {\n if (Object.prototype.hasOwnProperty.call(metadata.variants, key)) {\n newRoot._internalMetadata.gltf[NAME].variants[key] = [];\n for (const variantEntry of metadata.variants[key]) {\n newRoot._internalMetadata.gltf[NAME].variants[key].push({\n mesh: variantEntry.mesh,\n material: variantEntry.material,\n });\n }\n }\n }\n metadata = newRoot._internalMetadata.gltf[NAME];\n }\n // Relocate\n for (const target of metadata.original) {\n if (target.mesh === babylonMesh) {\n target.mesh = newMesh;\n }\n }\n for (const target of metadata.variants[variant.name]) {\n if (target.mesh === babylonMesh) {\n target.mesh = newMesh;\n }\n }\n });\n }\n }));\n }\n }\n }));\n return Promise.all(promises).then(([babylonMesh]) => {\n return babylonMesh;\n });\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new KHR_materials_variants(loader));\n//# sourceMappingURL=KHR_materials_variants.js.map"],"names":["NAME","KHR_materials_variants","constructor","loader","this","name","_loader","enabled","isExtensionUsed","dispose","GetAvailableVariants","rootMesh","extensionMetadata","_GetExtensionMetadata","Object","keys","variants","getAvailableVariants","SelectVariant","variantName","Error","select","entries","entry","mesh","material","Array","lastSelected","selectVariant","Reset","original","reset","GetLastSelectedVariant","getLastSelectedVariant","_internalMetadata","gltf","onLoading","extensions","extension","_variants","_loadMeshPrimitiveAsync","context","node","primitive","assign","GLTFLoader","LoadExtensionAsync","extensionContext","promises","push","babylonMesh","Mesh","babylonDrawMode","_GetDrawMode","mode","root","rootBabylonMesh","metadata","mappingIndex","mappings","length","mapping","ArrayItem","Get","materials","_loadMaterialAsync","babylonMaterial","mappingVariantIndex","variantIndex","variant","onClonedObservable","add","newOne","newMesh","newRoot","parent","key","prototype","hasOwnProperty","call","variantEntry","target","Promise","all","then","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"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"}