@babylonjs/viewer 7.25.2 → 7.26.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 (554) hide show
  1. package/dist/babylon-viewer.esm.js +2 -0
  2. package/dist/babylon-viewer.esm.js.map +1 -0
  3. package/dist/babylon-viewer.esm.min.js +2 -0
  4. package/dist/babylon-viewer.esm.min.js.map +1 -0
  5. package/dist/chunks/EXT_lights_image_based-BAAAren3.esm.min.js +2 -0
  6. package/dist/chunks/EXT_lights_image_based-BAAAren3.esm.min.js.map +1 -0
  7. package/dist/chunks/EXT_lights_image_based-CLRxjLYR.esm.js +170 -0
  8. package/dist/chunks/EXT_lights_image_based-CLRxjLYR.esm.js.map +1 -0
  9. package/dist/chunks/EXT_mesh_gpu_instancing-g_z4hICR.esm.min.js +2 -0
  10. package/dist/chunks/EXT_mesh_gpu_instancing-g_z4hICR.esm.min.js.map +1 -0
  11. package/dist/chunks/EXT_mesh_gpu_instancing-xdiHrPE-.esm.js +86 -0
  12. package/dist/chunks/EXT_mesh_gpu_instancing-xdiHrPE-.esm.js.map +1 -0
  13. package/dist/chunks/EXT_meshopt_compression-DtR1iauf.esm.js +134 -0
  14. package/dist/chunks/EXT_meshopt_compression-DtR1iauf.esm.js.map +1 -0
  15. package/dist/chunks/EXT_meshopt_compression-SJRA4qRp.esm.min.js +2 -0
  16. package/dist/chunks/EXT_meshopt_compression-SJRA4qRp.esm.min.js.map +1 -0
  17. package/dist/chunks/EXT_texture_avif-DyYYGGQy.esm.js +44 -0
  18. package/dist/chunks/EXT_texture_avif-DyYYGGQy.esm.js.map +1 -0
  19. package/dist/chunks/EXT_texture_avif-Qcsk_kvk.esm.min.js +2 -0
  20. package/dist/chunks/EXT_texture_avif-Qcsk_kvk.esm.min.js.map +1 -0
  21. package/dist/chunks/EXT_texture_webp-CLgPX9Kq.esm.min.js +2 -0
  22. package/dist/chunks/EXT_texture_webp-CLgPX9Kq.esm.min.js.map +1 -0
  23. package/dist/chunks/EXT_texture_webp-X7MNkN3t.esm.js +43 -0
  24. package/dist/chunks/EXT_texture_webp-X7MNkN3t.esm.js.map +1 -0
  25. package/dist/chunks/ExtrasAsMetadata-DDzM1udc.esm.min.js +2 -0
  26. package/dist/chunks/ExtrasAsMetadata-DDzM1udc.esm.min.js.map +1 -0
  27. package/dist/chunks/ExtrasAsMetadata-_A4ue-yg.esm.js +64 -0
  28. package/dist/chunks/ExtrasAsMetadata-_A4ue-yg.esm.js.map +1 -0
  29. package/dist/chunks/KHR_animation_pointer-C_uSLVMY.esm.min.js +2 -0
  30. package/dist/chunks/KHR_animation_pointer-C_uSLVMY.esm.min.js.map +1 -0
  31. package/dist/chunks/KHR_animation_pointer-DOLmQrF0.esm.js +343 -0
  32. package/dist/chunks/KHR_animation_pointer-DOLmQrF0.esm.js.map +1 -0
  33. package/dist/chunks/KHR_draco_mesh_compression-Dc2dj10X.esm.js +610 -0
  34. package/dist/chunks/KHR_draco_mesh_compression-Dc2dj10X.esm.js.map +1 -0
  35. package/dist/chunks/KHR_draco_mesh_compression-Qjbd-cV8.esm.min.js +2 -0
  36. package/dist/chunks/KHR_draco_mesh_compression-Qjbd-cV8.esm.min.js.map +1 -0
  37. package/dist/chunks/KHR_interactivity-BMxQ78NS.esm.js +4033 -0
  38. package/dist/chunks/KHR_interactivity-BMxQ78NS.esm.js.map +1 -0
  39. package/dist/chunks/KHR_interactivity-Dyhotcuc.esm.min.js +2 -0
  40. package/dist/chunks/KHR_interactivity-Dyhotcuc.esm.min.js.map +1 -0
  41. package/dist/chunks/KHR_lights_punctual-BQxBGi0_.esm.js +1253 -0
  42. package/dist/chunks/KHR_lights_punctual-BQxBGi0_.esm.js.map +1 -0
  43. package/dist/chunks/KHR_lights_punctual-CP6yK7gB.esm.min.js +2 -0
  44. package/dist/chunks/KHR_lights_punctual-CP6yK7gB.esm.min.js.map +1 -0
  45. package/dist/chunks/KHR_materials_anisotropy-B-brojEG.esm.js +64 -0
  46. package/dist/chunks/KHR_materials_anisotropy-B-brojEG.esm.js.map +1 -0
  47. package/dist/chunks/KHR_materials_anisotropy-C_kRwfha.esm.min.js +2 -0
  48. package/dist/chunks/KHR_materials_anisotropy-C_kRwfha.esm.min.js.map +1 -0
  49. package/dist/chunks/KHR_materials_clearcoat-CRp8HOuT.esm.min.js +2 -0
  50. package/dist/chunks/KHR_materials_clearcoat-CRp8HOuT.esm.min.js.map +1 -0
  51. package/dist/chunks/KHR_materials_clearcoat-Dtwqzkls.esm.js +96 -0
  52. package/dist/chunks/KHR_materials_clearcoat-Dtwqzkls.esm.js.map +1 -0
  53. package/dist/chunks/KHR_materials_diffuse_transmission-BrvDWQjW.esm.js +97 -0
  54. package/dist/chunks/KHR_materials_diffuse_transmission-BrvDWQjW.esm.js.map +1 -0
  55. package/dist/chunks/KHR_materials_diffuse_transmission-CNCBiTRi.esm.min.js +2 -0
  56. package/dist/chunks/KHR_materials_diffuse_transmission-CNCBiTRi.esm.min.js.map +1 -0
  57. package/dist/chunks/KHR_materials_dispersion-Bx9AztVQ.esm.js +62 -0
  58. package/dist/chunks/KHR_materials_dispersion-Bx9AztVQ.esm.js.map +1 -0
  59. package/dist/chunks/KHR_materials_dispersion-C0wotXxO.esm.min.js +2 -0
  60. package/dist/chunks/KHR_materials_dispersion-C0wotXxO.esm.min.js.map +1 -0
  61. package/dist/chunks/KHR_materials_emissive_strength-CsJjVgTW.esm.js +55 -0
  62. package/dist/chunks/KHR_materials_emissive_strength-CsJjVgTW.esm.js.map +1 -0
  63. package/dist/chunks/KHR_materials_emissive_strength-DQk1VN_2.esm.min.js +2 -0
  64. package/dist/chunks/KHR_materials_emissive_strength-DQk1VN_2.esm.min.js.map +1 -0
  65. package/dist/chunks/KHR_materials_ior-B-Bz-ZTi.esm.js +64 -0
  66. package/dist/chunks/KHR_materials_ior-B-Bz-ZTi.esm.js.map +1 -0
  67. package/dist/chunks/KHR_materials_ior-DcRJZA_s.esm.min.js +2 -0
  68. package/dist/chunks/KHR_materials_ior-DcRJZA_s.esm.min.js.map +1 -0
  69. package/dist/chunks/KHR_materials_iridescence-B9mn3E_m.esm.js +72 -0
  70. package/dist/chunks/KHR_materials_iridescence-B9mn3E_m.esm.js.map +1 -0
  71. package/dist/chunks/KHR_materials_iridescence-BVq13lbk.esm.min.js +2 -0
  72. package/dist/chunks/KHR_materials_iridescence-BVq13lbk.esm.min.js.map +1 -0
  73. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-D81096Xs.esm.min.js +2 -0
  74. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-D81096Xs.esm.min.js.map +1 -0
  75. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DbXQeIqw.esm.js +81 -0
  76. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DbXQeIqw.esm.js.map +1 -0
  77. package/dist/chunks/KHR_materials_sheen-CJALPuj4.esm.js +85 -0
  78. package/dist/chunks/KHR_materials_sheen-CJALPuj4.esm.js.map +1 -0
  79. package/dist/chunks/KHR_materials_sheen-D6gJV14Q.esm.min.js +2 -0
  80. package/dist/chunks/KHR_materials_sheen-D6gJV14Q.esm.min.js.map +1 -0
  81. package/dist/chunks/KHR_materials_specular-8J6t7IWW.esm.js +75 -0
  82. package/dist/chunks/KHR_materials_specular-8J6t7IWW.esm.js.map +1 -0
  83. package/dist/chunks/KHR_materials_specular-CLkfKuYs.esm.min.js +2 -0
  84. package/dist/chunks/KHR_materials_specular-CLkfKuYs.esm.min.js.map +1 -0
  85. package/dist/chunks/KHR_materials_transmission-CtmncfNu.esm.js +307 -0
  86. package/dist/chunks/KHR_materials_transmission-CtmncfNu.esm.js.map +1 -0
  87. package/dist/chunks/KHR_materials_transmission-Ds1e4Rgi.esm.min.js +2 -0
  88. package/dist/chunks/KHR_materials_transmission-Ds1e4Rgi.esm.min.js.map +1 -0
  89. package/dist/chunks/KHR_materials_unlit-CjwtrKka.esm.min.js +2 -0
  90. package/dist/chunks/KHR_materials_unlit-CjwtrKka.esm.min.js.map +1 -0
  91. package/dist/chunks/KHR_materials_unlit-D7RRssK9.esm.js +74 -0
  92. package/dist/chunks/KHR_materials_unlit-D7RRssK9.esm.js.map +1 -0
  93. package/dist/chunks/KHR_materials_variants-B16YKuMe.esm.min.js +2 -0
  94. package/dist/chunks/KHR_materials_variants-B16YKuMe.esm.min.js.map +1 -0
  95. package/dist/chunks/KHR_materials_variants-C6mz0mzG.esm.js +238 -0
  96. package/dist/chunks/KHR_materials_variants-C6mz0mzG.esm.js.map +1 -0
  97. package/dist/chunks/KHR_materials_volume-CocxcaC_.esm.min.js +2 -0
  98. package/dist/chunks/KHR_materials_volume-CocxcaC_.esm.min.js.map +1 -0
  99. package/dist/chunks/KHR_materials_volume-kX43-sr-.esm.js +87 -0
  100. package/dist/chunks/KHR_materials_volume-kX43-sr-.esm.js.map +1 -0
  101. package/dist/chunks/KHR_mesh_quantization-B2Y3kC9D.esm.js +26 -0
  102. package/dist/chunks/KHR_mesh_quantization-B2Y3kC9D.esm.js.map +1 -0
  103. package/dist/chunks/KHR_mesh_quantization-BfMxe7Z-.esm.min.js +2 -0
  104. package/dist/chunks/KHR_mesh_quantization-BfMxe7Z-.esm.min.js.map +1 -0
  105. package/dist/chunks/KHR_texture_basisu-DS4eOc5v.esm.js +43 -0
  106. package/dist/chunks/KHR_texture_basisu-DS4eOc5v.esm.js.map +1 -0
  107. package/dist/chunks/KHR_texture_basisu-ghZqGH67.esm.min.js +2 -0
  108. package/dist/chunks/KHR_texture_basisu-ghZqGH67.esm.min.js.map +1 -0
  109. package/dist/chunks/KHR_texture_transform-6nYo8mzH.esm.min.js +2 -0
  110. package/dist/chunks/KHR_texture_transform-6nYo8mzH.esm.min.js.map +1 -0
  111. package/dist/chunks/KHR_texture_transform-B-qDuvbI.esm.js +63 -0
  112. package/dist/chunks/KHR_texture_transform-B-qDuvbI.esm.js.map +1 -0
  113. package/dist/chunks/KHR_xmp_json_ld-CKv9gfXs.esm.min.js +2 -0
  114. package/dist/chunks/KHR_xmp_json_ld-CKv9gfXs.esm.min.js.map +1 -0
  115. package/dist/chunks/KHR_xmp_json_ld-CXjOnFmU.esm.js +51 -0
  116. package/dist/chunks/KHR_xmp_json_ld-CXjOnFmU.esm.js.map +1 -0
  117. package/dist/chunks/MSFT_audio_emitter-1StuTv-Z.esm.js +2236 -0
  118. package/dist/chunks/MSFT_audio_emitter-1StuTv-Z.esm.js.map +1 -0
  119. package/dist/chunks/MSFT_audio_emitter-BfKy7LEd.esm.min.js +2 -0
  120. package/dist/chunks/MSFT_audio_emitter-BfKy7LEd.esm.min.js.map +1 -0
  121. package/dist/chunks/MSFT_lod-DA4UA4La.esm.js +337 -0
  122. package/dist/chunks/MSFT_lod-DA4UA4La.esm.js.map +1 -0
  123. package/dist/chunks/MSFT_lod-wcOn3D2V.esm.min.js +2 -0
  124. package/dist/chunks/MSFT_lod-wcOn3D2V.esm.min.js.map +1 -0
  125. package/dist/chunks/MSFT_minecraftMesh-afhS3NlZ.esm.js +46 -0
  126. package/dist/chunks/MSFT_minecraftMesh-afhS3NlZ.esm.js.map +1 -0
  127. package/dist/chunks/MSFT_minecraftMesh-x417idfJ.esm.min.js +2 -0
  128. package/dist/chunks/MSFT_minecraftMesh-x417idfJ.esm.min.js.map +1 -0
  129. package/dist/chunks/MSFT_sRGBFactors-BjLfK8v1.esm.min.js +2 -0
  130. package/dist/chunks/MSFT_sRGBFactors-BjLfK8v1.esm.min.js.map +1 -0
  131. package/dist/chunks/MSFT_sRGBFactors-fA6kZabo.esm.js +47 -0
  132. package/dist/chunks/MSFT_sRGBFactors-fA6kZabo.esm.js.map +1 -0
  133. package/dist/chunks/assetContainer-BWyT-iC8.esm.min.js +2 -0
  134. package/dist/chunks/assetContainer-BWyT-iC8.esm.min.js.map +1 -0
  135. package/dist/chunks/assetContainer-C9nOA325.esm.js +1598 -0
  136. package/dist/chunks/assetContainer-C9nOA325.esm.js.map +1 -0
  137. package/dist/chunks/audioEngine-Bi_JHe07.esm.js +305 -0
  138. package/dist/chunks/audioEngine-Bi_JHe07.esm.js.map +1 -0
  139. package/dist/chunks/audioEngine-DyaETd2M.esm.min.js +2 -0
  140. package/dist/chunks/audioEngine-DyaETd2M.esm.min.js.map +1 -0
  141. package/dist/chunks/bakedVertexAnimation-Bw1dcogG.esm.min.js +2 -0
  142. package/dist/chunks/bakedVertexAnimation-Bw1dcogG.esm.min.js.map +1 -0
  143. package/dist/chunks/bakedVertexAnimation-D2t3QFFy.esm.js +119 -0
  144. package/dist/chunks/bakedVertexAnimation-D2t3QFFy.esm.js.map +1 -0
  145. package/dist/chunks/basisTextureLoader-DEikcMs0.esm.js +600 -0
  146. package/dist/chunks/basisTextureLoader-DEikcMs0.esm.js.map +1 -0
  147. package/dist/chunks/basisTextureLoader-DnU1aFLP.esm.min.js +2 -0
  148. package/dist/chunks/basisTextureLoader-DnU1aFLP.esm.min.js.map +1 -0
  149. package/dist/chunks/ddsTextureLoader-DBWTHVjj.esm.min.js +2 -0
  150. package/dist/chunks/ddsTextureLoader-DBWTHVjj.esm.min.js.map +1 -0
  151. package/dist/chunks/ddsTextureLoader-ilOloJ4p.esm.js +87 -0
  152. package/dist/chunks/ddsTextureLoader-ilOloJ4p.esm.js.map +1 -0
  153. package/dist/chunks/decalFragment-CMHxc7Hr.esm.min.js +2 -0
  154. package/dist/chunks/decalFragment-CMHxc7Hr.esm.min.js.map +1 -0
  155. package/dist/chunks/decalFragment-CzgxOzQf.esm.js +18 -0
  156. package/dist/chunks/decalFragment-CzgxOzQf.esm.js.map +1 -0
  157. package/dist/chunks/default.fragment-BOotE87x.esm.min.js +2 -0
  158. package/dist/chunks/default.fragment-BOotE87x.esm.min.js.map +1 -0
  159. package/dist/chunks/default.fragment-C8I2FMK1.esm.js +515 -0
  160. package/dist/chunks/default.fragment-C8I2FMK1.esm.js.map +1 -0
  161. package/dist/chunks/default.fragment-CMyZ0Um2.esm.js +449 -0
  162. package/dist/chunks/default.fragment-CMyZ0Um2.esm.js.map +1 -0
  163. package/dist/chunks/default.fragment-dyXo8ZoT.esm.min.js +2 -0
  164. package/dist/chunks/default.fragment-dyXo8ZoT.esm.min.js.map +1 -0
  165. package/dist/chunks/default.vertex-BgameJri.esm.js +199 -0
  166. package/dist/chunks/default.vertex-BgameJri.esm.js.map +1 -0
  167. package/dist/chunks/default.vertex-CI-1zFCv.esm.min.js +2 -0
  168. package/dist/chunks/default.vertex-CI-1zFCv.esm.min.js.map +1 -0
  169. package/dist/chunks/default.vertex-CtvM7XrD.esm.js +180 -0
  170. package/dist/chunks/default.vertex-CtvM7XrD.esm.js.map +1 -0
  171. package/dist/chunks/default.vertex-DVEypQOv.esm.min.js +2 -0
  172. package/dist/chunks/default.vertex-DVEypQOv.esm.min.js.map +1 -0
  173. package/dist/chunks/defaultUboDeclaration-2dituFIw.esm.js +15 -0
  174. package/dist/chunks/defaultUboDeclaration-2dituFIw.esm.js.map +1 -0
  175. package/dist/chunks/defaultUboDeclaration-BCFc39NJ.esm.js +13 -0
  176. package/dist/chunks/defaultUboDeclaration-BCFc39NJ.esm.js.map +1 -0
  177. package/dist/chunks/defaultUboDeclaration-Be_Tm0i8.esm.min.js +2 -0
  178. package/dist/chunks/defaultUboDeclaration-Be_Tm0i8.esm.min.js.map +1 -0
  179. package/dist/chunks/defaultUboDeclaration-CjpL7xej.esm.min.js +2 -0
  180. package/dist/chunks/defaultUboDeclaration-CjpL7xej.esm.min.js.map +1 -0
  181. package/dist/chunks/engine-2EdX14bK.esm.js +1970 -0
  182. package/dist/chunks/engine-2EdX14bK.esm.js.map +1 -0
  183. package/dist/chunks/engine-CTtwkexh.esm.min.js +2 -0
  184. package/dist/chunks/engine-CTtwkexh.esm.min.js.map +1 -0
  185. package/dist/chunks/engine.common-BrXEBOzm.esm.js +1213 -0
  186. package/dist/chunks/engine.common-BrXEBOzm.esm.js.map +1 -0
  187. package/dist/chunks/engine.common-Dn_GE8cx.esm.min.js +2 -0
  188. package/dist/chunks/engine.common-Dn_GE8cx.esm.min.js.map +1 -0
  189. package/dist/chunks/envTextureLoader-9mljxKnB.esm.min.js +2 -0
  190. package/dist/chunks/envTextureLoader-9mljxKnB.esm.min.js.map +1 -0
  191. package/dist/chunks/envTextureLoader-cuBGdyEX.esm.js +63 -0
  192. package/dist/chunks/envTextureLoader-cuBGdyEX.esm.js.map +1 -0
  193. package/dist/chunks/environmentTextureTools-2JiPh6sF.esm.min.js +2 -0
  194. package/dist/chunks/environmentTextureTools-2JiPh6sF.esm.min.js.map +1 -0
  195. package/dist/chunks/environmentTextureTools-CaOOVUg4.esm.js +381 -0
  196. package/dist/chunks/environmentTextureTools-CaOOVUg4.esm.js.map +1 -0
  197. package/dist/chunks/exrTextureLoader-C2yRfZW0.esm.min.js +2 -0
  198. package/dist/chunks/exrTextureLoader-C2yRfZW0.esm.min.js.map +1 -0
  199. package/dist/chunks/exrTextureLoader-DPvYdRIY.esm.js +1682 -0
  200. package/dist/chunks/exrTextureLoader-DPvYdRIY.esm.js.map +1 -0
  201. package/dist/chunks/fogFragment-CerDBxh8.esm.min.js +2 -0
  202. package/dist/chunks/fogFragment-CerDBxh8.esm.min.js.map +1 -0
  203. package/dist/chunks/fogFragment-SpVyZY46.esm.js +102 -0
  204. package/dist/chunks/fogFragment-SpVyZY46.esm.js.map +1 -0
  205. package/dist/chunks/fresnelFunction-Cfc0PCuM.esm.min.js +2 -0
  206. package/dist/chunks/fresnelFunction-Cfc0PCuM.esm.min.js.map +1 -0
  207. package/dist/chunks/fresnelFunction-DYc_QORg.esm.js +12 -0
  208. package/dist/chunks/fresnelFunction-DYc_QORg.esm.js.map +1 -0
  209. package/dist/chunks/glTFLoader-CX847JwZ.esm.min.js +2 -0
  210. package/dist/chunks/glTFLoader-CX847JwZ.esm.min.js.map +1 -0
  211. package/dist/chunks/glTFLoader-FnbdTR40.esm.js +7552 -0
  212. package/dist/chunks/glTFLoader-FnbdTR40.esm.js.map +1 -0
  213. package/dist/chunks/glTFLoaderAnimation-DLprnT2e.esm.js +77 -0
  214. package/dist/chunks/glTFLoaderAnimation-DLprnT2e.esm.js.map +1 -0
  215. package/dist/chunks/glTFLoaderAnimation-YVA5W-1q.esm.min.js +2 -0
  216. package/dist/chunks/glTFLoaderAnimation-YVA5W-1q.esm.min.js.map +1 -0
  217. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
  218. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
  219. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
  220. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
  221. package/dist/chunks/harmonicsFunctions-BglL8EAc.esm.min.js +2 -0
  222. package/dist/chunks/harmonicsFunctions-BglL8EAc.esm.min.js.map +1 -0
  223. package/dist/chunks/harmonicsFunctions-BjhkFrPF.esm.min.js +2 -0
  224. package/dist/chunks/harmonicsFunctions-BjhkFrPF.esm.min.js.map +1 -0
  225. package/dist/chunks/harmonicsFunctions-D0kGurRz.esm.js +34 -0
  226. package/dist/chunks/harmonicsFunctions-D0kGurRz.esm.js.map +1 -0
  227. package/dist/chunks/harmonicsFunctions-f0TDZMjd.esm.js +35 -0
  228. package/dist/chunks/harmonicsFunctions-f0TDZMjd.esm.js.map +1 -0
  229. package/dist/chunks/hdrTextureLoader-BYv589K1.esm.min.js +2 -0
  230. package/dist/chunks/hdrTextureLoader-BYv589K1.esm.min.js.map +1 -0
  231. package/dist/chunks/hdrTextureLoader-Cia6kLvR.esm.js +252 -0
  232. package/dist/chunks/hdrTextureLoader-Cia6kLvR.esm.js.map +1 -0
  233. package/dist/chunks/helperFunctions-B6L2NvuR.esm.min.js +2 -0
  234. package/dist/chunks/helperFunctions-B6L2NvuR.esm.min.js.map +1 -0
  235. package/dist/chunks/helperFunctions-CTmvPMOb.esm.js +108 -0
  236. package/dist/chunks/helperFunctions-CTmvPMOb.esm.js.map +1 -0
  237. package/dist/chunks/helperFunctions-Dx_bhcnf.esm.js +80 -0
  238. package/dist/chunks/helperFunctions-Dx_bhcnf.esm.js.map +1 -0
  239. package/dist/chunks/helperFunctions-lfyjwIAq.esm.min.js +2 -0
  240. package/dist/chunks/helperFunctions-lfyjwIAq.esm.min.js.map +1 -0
  241. package/dist/chunks/index-H9RbNFln.esm.js +78669 -0
  242. package/dist/chunks/index-H9RbNFln.esm.js.map +1 -0
  243. package/dist/chunks/index-NKQY07Ai.esm.min.js +57 -0
  244. package/dist/chunks/index-NKQY07Ai.esm.min.js.map +1 -0
  245. package/dist/chunks/ktxTextureLoader-C8P1HmKw.esm.min.js +2 -0
  246. package/dist/chunks/ktxTextureLoader-C8P1HmKw.esm.min.js.map +1 -0
  247. package/dist/chunks/ktxTextureLoader-CGZaZgF4.esm.js +814 -0
  248. package/dist/chunks/ktxTextureLoader-CGZaZgF4.esm.js.map +1 -0
  249. package/dist/chunks/logDepthDeclaration-BtAGVG3-.esm.min.js +2 -0
  250. package/dist/chunks/logDepthDeclaration-BtAGVG3-.esm.min.js.map +1 -0
  251. package/dist/chunks/logDepthDeclaration-BvAgEnZm.esm.min.js +2 -0
  252. package/dist/chunks/logDepthDeclaration-BvAgEnZm.esm.min.js.map +1 -0
  253. package/dist/chunks/logDepthDeclaration-DD208S_2.esm.js +35 -0
  254. package/dist/chunks/logDepthDeclaration-DD208S_2.esm.js.map +1 -0
  255. package/dist/chunks/logDepthDeclaration-T3brxHqo.esm.js +20 -0
  256. package/dist/chunks/logDepthDeclaration-T3brxHqo.esm.js.map +1 -0
  257. package/dist/chunks/logDepthVertex-0P4Fk3ej.esm.js +77 -0
  258. package/dist/chunks/logDepthVertex-0P4Fk3ej.esm.js.map +1 -0
  259. package/dist/chunks/logDepthVertex-Bo4jbfP3.esm.min.js +2 -0
  260. package/dist/chunks/logDepthVertex-Bo4jbfP3.esm.min.js.map +1 -0
  261. package/dist/chunks/logDepthVertex-DhlJdt6n.esm.min.js +2 -0
  262. package/dist/chunks/logDepthVertex-DhlJdt6n.esm.min.js.map +1 -0
  263. package/dist/chunks/logDepthVertex-bCxA8jHH.esm.js +488 -0
  264. package/dist/chunks/logDepthVertex-bCxA8jHH.esm.js.map +1 -0
  265. package/dist/chunks/mainUVVaryingDeclaration-CkGDoJLo.esm.js +11 -0
  266. package/dist/chunks/mainUVVaryingDeclaration-CkGDoJLo.esm.js.map +1 -0
  267. package/dist/chunks/mainUVVaryingDeclaration-DAb0JqU5.esm.min.js +2 -0
  268. package/dist/chunks/mainUVVaryingDeclaration-DAb0JqU5.esm.min.js.map +1 -0
  269. package/dist/chunks/meshUboDeclaration-BEpwR1Md.esm.min.js +2 -0
  270. package/dist/chunks/meshUboDeclaration-BEpwR1Md.esm.min.js.map +1 -0
  271. package/dist/chunks/meshUboDeclaration-wwoFcdXg.esm.js +24 -0
  272. package/dist/chunks/meshUboDeclaration-wwoFcdXg.esm.js.map +1 -0
  273. package/dist/chunks/objFileLoader-9VII_MH6.esm.min.js +2 -0
  274. package/dist/chunks/objFileLoader-9VII_MH6.esm.min.js.map +1 -0
  275. package/dist/chunks/objFileLoader-sy2KqRzD.esm.js +1280 -0
  276. package/dist/chunks/objFileLoader-sy2KqRzD.esm.js.map +1 -0
  277. package/dist/chunks/oitFragment-BKhyL_Ma.esm.min.js +2 -0
  278. package/dist/chunks/oitFragment-BKhyL_Ma.esm.min.js.map +1 -0
  279. package/dist/chunks/oitFragment-BqtunGU7.esm.min.js +2 -0
  280. package/dist/chunks/oitFragment-BqtunGU7.esm.min.js.map +1 -0
  281. package/dist/chunks/oitFragment-CGo4SX0U.esm.js +1150 -0
  282. package/dist/chunks/oitFragment-CGo4SX0U.esm.js.map +1 -0
  283. package/dist/chunks/oitFragment-akBosjiV.esm.js +1210 -0
  284. package/dist/chunks/oitFragment-akBosjiV.esm.js.map +1 -0
  285. package/dist/chunks/pass.fragment-CMK3Cirh.esm.js +15 -0
  286. package/dist/chunks/pass.fragment-CMK3Cirh.esm.js.map +1 -0
  287. package/dist/chunks/pass.fragment-NgBFYMH2.esm.min.js +2 -0
  288. package/dist/chunks/pass.fragment-NgBFYMH2.esm.min.js.map +1 -0
  289. package/dist/chunks/pbr.fragment-BxeirEXF.esm.min.js +2 -0
  290. package/dist/chunks/pbr.fragment-BxeirEXF.esm.min.js.map +1 -0
  291. package/dist/chunks/pbr.fragment-C9P-kot0.esm.min.js +2 -0
  292. package/dist/chunks/pbr.fragment-C9P-kot0.esm.min.js.map +1 -0
  293. package/dist/chunks/pbr.fragment-CmciAvUf.esm.js +3219 -0
  294. package/dist/chunks/pbr.fragment-CmciAvUf.esm.js.map +1 -0
  295. package/dist/chunks/pbr.fragment-DptkOGvm.esm.js +3165 -0
  296. package/dist/chunks/pbr.fragment-DptkOGvm.esm.js.map +1 -0
  297. package/dist/chunks/pbr.vertex-BGYxmiED.esm.min.js +2 -0
  298. package/dist/chunks/pbr.vertex-BGYxmiED.esm.min.js.map +1 -0
  299. package/dist/chunks/pbr.vertex-BKYxq0u4.esm.min.js +2 -0
  300. package/dist/chunks/pbr.vertex-BKYxq0u4.esm.min.js.map +1 -0
  301. package/dist/chunks/pbr.vertex-BW_cBtTy.esm.js +210 -0
  302. package/dist/chunks/pbr.vertex-BW_cBtTy.esm.js.map +1 -0
  303. package/dist/chunks/pbr.vertex-D5_YtZ3F.esm.js +335 -0
  304. package/dist/chunks/pbr.vertex-D5_YtZ3F.esm.js.map +1 -0
  305. package/dist/chunks/postprocess.vertex-BIHPwYtc.esm.min.js +2 -0
  306. package/dist/chunks/postprocess.vertex-BIHPwYtc.esm.min.js.map +1 -0
  307. package/dist/chunks/postprocess.vertex-DQbuHlSL.esm.js +20 -0
  308. package/dist/chunks/postprocess.vertex-DQbuHlSL.esm.js.map +1 -0
  309. package/dist/chunks/rawTexture-BBFBylYg.esm.js +191 -0
  310. package/dist/chunks/rawTexture-BBFBylYg.esm.js.map +1 -0
  311. package/dist/chunks/rawTexture-DtTw1SfK.esm.min.js +2 -0
  312. package/dist/chunks/rawTexture-DtTw1SfK.esm.min.js.map +1 -0
  313. package/dist/chunks/rgbdDecode.fragment-B8vtIeR2.esm.min.js +2 -0
  314. package/dist/chunks/rgbdDecode.fragment-B8vtIeR2.esm.min.js.map +1 -0
  315. package/dist/chunks/rgbdDecode.fragment-BAERNvTB.esm.js +17 -0
  316. package/dist/chunks/rgbdDecode.fragment-BAERNvTB.esm.js.map +1 -0
  317. package/dist/chunks/rgbdDecode.fragment-CUCNLBNb.esm.js +17 -0
  318. package/dist/chunks/rgbdDecode.fragment-CUCNLBNb.esm.js.map +1 -0
  319. package/dist/chunks/rgbdDecode.fragment-DE974oq3.esm.min.js +2 -0
  320. package/dist/chunks/rgbdDecode.fragment-DE974oq3.esm.min.js.map +1 -0
  321. package/dist/chunks/rgbdEncode.fragment-12Ga6DPf.esm.min.js +2 -0
  322. package/dist/chunks/rgbdEncode.fragment-12Ga6DPf.esm.min.js.map +1 -0
  323. package/dist/chunks/rgbdEncode.fragment-C_8FK6je.esm.min.js +2 -0
  324. package/dist/chunks/rgbdEncode.fragment-C_8FK6je.esm.min.js.map +1 -0
  325. package/dist/chunks/rgbdEncode.fragment-DLGZ9Ew-.esm.js +17 -0
  326. package/dist/chunks/rgbdEncode.fragment-DLGZ9Ew-.esm.js.map +1 -0
  327. package/dist/chunks/rgbdEncode.fragment-vtqqWXMx.esm.js +17 -0
  328. package/dist/chunks/rgbdEncode.fragment-vtqqWXMx.esm.js.map +1 -0
  329. package/dist/chunks/splatFileLoader-BvGLmrOU.esm.js +3179 -0
  330. package/dist/chunks/splatFileLoader-BvGLmrOU.esm.js.map +1 -0
  331. package/dist/chunks/splatFileLoader-Du-_lAWj.esm.min.js +2 -0
  332. package/dist/chunks/splatFileLoader-Du-_lAWj.esm.min.js.map +1 -0
  333. package/dist/chunks/standardMaterial-CTqOZPWo.esm.min.js +2 -0
  334. package/dist/chunks/standardMaterial-CTqOZPWo.esm.min.js.map +1 -0
  335. package/dist/chunks/standardMaterial-Nso7Fcun.esm.js +1809 -0
  336. package/dist/chunks/standardMaterial-Nso7Fcun.esm.js.map +1 -0
  337. package/dist/chunks/stlFileLoader-C0UsVNIc.esm.js +237 -0
  338. package/dist/chunks/stlFileLoader-C0UsVNIc.esm.js.map +1 -0
  339. package/dist/chunks/stlFileLoader-Du9QZoAm.esm.min.js +2 -0
  340. package/dist/chunks/stlFileLoader-Du9QZoAm.esm.min.js.map +1 -0
  341. package/dist/chunks/tgaTextureLoader-BNBS-X4Q.esm.min.js +2 -0
  342. package/dist/chunks/tgaTextureLoader-BNBS-X4Q.esm.min.js.map +1 -0
  343. package/dist/chunks/tgaTextureLoader-D46YCUQ_.esm.js +349 -0
  344. package/dist/chunks/tgaTextureLoader-D46YCUQ_.esm.js.map +1 -0
  345. package/dist/chunks/thinInstanceMesh-DCh8MOoj.esm.min.js +2 -0
  346. package/dist/chunks/thinInstanceMesh-DCh8MOoj.esm.min.js.map +1 -0
  347. package/dist/chunks/thinInstanceMesh-DzFmk7SW.esm.js +314 -0
  348. package/dist/chunks/thinInstanceMesh-DzFmk7SW.esm.js.map +1 -0
  349. package/dist/chunks/vertexColorMixing-Bt0lYFpZ.esm.min.js +2 -0
  350. package/dist/chunks/vertexColorMixing-Bt0lYFpZ.esm.min.js.map +1 -0
  351. package/dist/chunks/vertexColorMixing-Ds7u6owR.esm.js +528 -0
  352. package/dist/chunks/vertexColorMixing-Ds7u6owR.esm.js.map +1 -0
  353. package/dist/chunks/webgpuEngine--HWPU_ZX.esm.js +11169 -0
  354. package/dist/chunks/webgpuEngine--HWPU_ZX.esm.js.map +1 -0
  355. package/dist/chunks/webgpuEngine-BwnxF0Zq.esm.min.js +2 -0
  356. package/dist/chunks/webgpuEngine-BwnxF0Zq.esm.min.js.map +1 -0
  357. package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
  358. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
  359. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
  360. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
  361. package/lib/index.d.ts +281 -0
  362. package/lib/index.js +965 -0
  363. package/lib/index.js.map +1 -0
  364. package/package.json +17 -27
  365. package/readme.md +35 -21
  366. package/configuration/configuration.d.ts +0 -107
  367. package/configuration/configuration.js +0 -16
  368. package/configuration/configuration.js.map +0 -1
  369. package/configuration/configurationCompatibility.d.ts +0 -8
  370. package/configuration/configurationCompatibility.js +0 -66
  371. package/configuration/configurationCompatibility.js.map +0 -1
  372. package/configuration/configurationContainer.d.ts +0 -10
  373. package/configuration/configurationContainer.js +0 -10
  374. package/configuration/configurationContainer.js.map +0 -1
  375. package/configuration/globals.d.ts +0 -6
  376. package/configuration/globals.js +0 -18
  377. package/configuration/globals.js.map +0 -1
  378. package/configuration/index.d.ts +0 -2
  379. package/configuration/index.js +0 -4
  380. package/configuration/index.js.map +0 -1
  381. package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
  382. package/configuration/interfaces/cameraConfiguration.js +0 -2
  383. package/configuration/interfaces/cameraConfiguration.js.map +0 -1
  384. package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
  385. package/configuration/interfaces/colorGradingConfiguration.js +0 -2
  386. package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
  387. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
  388. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
  389. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
  390. package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
  391. package/configuration/interfaces/environmentMapConfiguration.js +0 -2
  392. package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
  393. package/configuration/interfaces/groundConfiguration.d.ts +0 -24
  394. package/configuration/interfaces/groundConfiguration.js +0 -2
  395. package/configuration/interfaces/groundConfiguration.js.map +0 -1
  396. package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
  397. package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
  398. package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
  399. package/configuration/interfaces/index.d.ts +0 -15
  400. package/configuration/interfaces/index.js +0 -16
  401. package/configuration/interfaces/index.js.map +0 -1
  402. package/configuration/interfaces/lightConfiguration.d.ts +0 -60
  403. package/configuration/interfaces/lightConfiguration.js +0 -2
  404. package/configuration/interfaces/lightConfiguration.js.map +0 -1
  405. package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
  406. package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
  407. package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
  408. package/configuration/interfaces/modelConfiguration.d.ts +0 -65
  409. package/configuration/interfaces/modelConfiguration.js +0 -2
  410. package/configuration/interfaces/modelConfiguration.js.map +0 -1
  411. package/configuration/interfaces/observersConfiguration.d.ts +0 -5
  412. package/configuration/interfaces/observersConfiguration.js +0 -2
  413. package/configuration/interfaces/observersConfiguration.js.map +0 -1
  414. package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
  415. package/configuration/interfaces/sceneConfiguration.js +0 -2
  416. package/configuration/interfaces/sceneConfiguration.js.map +0 -1
  417. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
  418. package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
  419. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
  420. package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
  421. package/configuration/interfaces/skyboxConfiguration.js +0 -2
  422. package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
  423. package/configuration/interfaces/templateConfiguration.d.ts +0 -67
  424. package/configuration/interfaces/templateConfiguration.js +0 -2
  425. package/configuration/interfaces/templateConfiguration.js.map +0 -1
  426. package/configuration/interfaces/vrConfiguration.d.ts +0 -16
  427. package/configuration/interfaces/vrConfiguration.js +0 -2
  428. package/configuration/interfaces/vrConfiguration.js.map +0 -1
  429. package/configuration/loader.d.ts +0 -4
  430. package/configuration/loader.js +0 -17
  431. package/configuration/loader.js.map +0 -1
  432. package/configuration/mappers.d.ts +0 -43
  433. package/configuration/mappers.js +0 -192
  434. package/configuration/mappers.js.map +0 -1
  435. package/configuration/renderOnlyLoader.d.ts +0 -33
  436. package/configuration/renderOnlyLoader.js +0 -162
  437. package/configuration/renderOnlyLoader.js.map +0 -1
  438. package/configuration/types/default.d.ts +0 -6
  439. package/configuration/types/default.js +0 -121
  440. package/configuration/types/default.js.map +0 -1
  441. package/configuration/types/environmentMap.d.ts +0 -5
  442. package/configuration/types/environmentMap.js +0 -14
  443. package/configuration/types/environmentMap.js.map +0 -1
  444. package/configuration/types/extended.d.ts +0 -6
  445. package/configuration/types/extended.js +0 -317
  446. package/configuration/types/extended.js.map +0 -1
  447. package/configuration/types/index.d.ts +0 -14
  448. package/configuration/types/index.js +0 -51
  449. package/configuration/types/index.js.map +0 -1
  450. package/configuration/types/minimal.d.ts +0 -6
  451. package/configuration/types/minimal.js +0 -43
  452. package/configuration/types/minimal.js.map +0 -1
  453. package/configuration/types/renderOnlyDefault.d.ts +0 -30
  454. package/configuration/types/renderOnlyDefault.js +0 -31
  455. package/configuration/types/renderOnlyDefault.js.map +0 -1
  456. package/configuration/types/shadowLight.d.ts +0 -9
  457. package/configuration/types/shadowLight.js +0 -64
  458. package/configuration/types/shadowLight.js.map +0 -1
  459. package/helper/index.d.ts +0 -29
  460. package/helper/index.js +0 -66
  461. package/helper/index.js.map +0 -1
  462. package/index.d.ts +0 -30
  463. package/index.js +0 -46
  464. package/index.js.map +0 -1
  465. package/initializer.d.ts +0 -11
  466. package/initializer.js +0 -35
  467. package/initializer.js.map +0 -1
  468. package/interfaces.d.ts +0 -5
  469. package/interfaces.js +0 -7
  470. package/interfaces.js.map +0 -1
  471. package/labs/environmentSerializer.d.ts +0 -126
  472. package/labs/environmentSerializer.js +0 -191
  473. package/labs/environmentSerializer.js.map +0 -1
  474. package/labs/texture.d.ts +0 -183
  475. package/labs/texture.js +0 -350
  476. package/labs/texture.js.map +0 -1
  477. package/labs/viewerLabs.d.ts +0 -51
  478. package/labs/viewerLabs.js +0 -134
  479. package/labs/viewerLabs.js.map +0 -1
  480. package/loader/modelLoader.d.ts +0 -56
  481. package/loader/modelLoader.js +0 -199
  482. package/loader/modelLoader.js.map +0 -1
  483. package/loader/plugins/applyMaterialConfig.d.ts +0 -12
  484. package/loader/plugins/applyMaterialConfig.js +0 -16
  485. package/loader/plugins/applyMaterialConfig.js.map +0 -1
  486. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
  487. package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
  488. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
  489. package/loader/plugins/index.d.ts +0 -19
  490. package/loader/plugins/index.js +0 -44
  491. package/loader/plugins/index.js.map +0 -1
  492. package/loader/plugins/loaderPlugin.d.ts +0 -24
  493. package/loader/plugins/loaderPlugin.js +0 -2
  494. package/loader/plugins/loaderPlugin.js.map +0 -1
  495. package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
  496. package/loader/plugins/msftLodLoaderPlugin.js +0 -21
  497. package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
  498. package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
  499. package/loader/plugins/telemetryLoaderPlugin.js +0 -36
  500. package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
  501. package/managers/observablesManager.d.ts +0 -66
  502. package/managers/observablesManager.js +0 -35
  503. package/managers/observablesManager.js.map +0 -1
  504. package/managers/sceneManager.d.ts +0 -245
  505. package/managers/sceneManager.js +0 -1375
  506. package/managers/sceneManager.js.map +0 -1
  507. package/managers/telemetryManager.d.ts +0 -78
  508. package/managers/telemetryManager.js +0 -117
  509. package/managers/telemetryManager.js.map +0 -1
  510. package/model/modelAnimation.d.ts +0 -215
  511. package/model/modelAnimation.js +0 -237
  512. package/model/modelAnimation.js.map +0 -1
  513. package/model/viewerModel.d.ts +0 -233
  514. package/model/viewerModel.js +0 -673
  515. package/model/viewerModel.js.map +0 -1
  516. package/optimizer/custom/extended.d.ts +0 -13
  517. package/optimizer/custom/extended.js +0 -101
  518. package/optimizer/custom/extended.js.map +0 -1
  519. package/optimizer/custom/index.d.ts +0 -9
  520. package/optimizer/custom/index.js +0 -26
  521. package/optimizer/custom/index.js.map +0 -1
  522. package/renderOnlyIndex.d.ts +0 -11
  523. package/renderOnlyIndex.js +0 -18
  524. package/renderOnlyIndex.js.map +0 -1
  525. package/templating/eventManager.d.ts +0 -35
  526. package/templating/eventManager.js +0 -66
  527. package/templating/eventManager.js.map +0 -1
  528. package/templating/plugins/hdButtonPlugin.d.ts +0 -9
  529. package/templating/plugins/hdButtonPlugin.js +0 -21
  530. package/templating/plugins/hdButtonPlugin.js.map +0 -1
  531. package/templating/plugins/printButton.d.ts +0 -9
  532. package/templating/plugins/printButton.js +0 -40
  533. package/templating/plugins/printButton.js.map +0 -1
  534. package/templating/templateManager.d.ts +0 -197
  535. package/templating/templateManager.js +0 -561
  536. package/templating/templateManager.js.map +0 -1
  537. package/templating/viewerTemplatePlugin.d.ts +0 -21
  538. package/templating/viewerTemplatePlugin.js +0 -69
  539. package/templating/viewerTemplatePlugin.js.map +0 -1
  540. package/viewer/defaultViewer.d.ts +0 -130
  541. package/viewer/defaultViewer.js +0 -675
  542. package/viewer/defaultViewer.js.map +0 -1
  543. package/viewer/renderOnlyViewer.d.ts +0 -9
  544. package/viewer/renderOnlyViewer.js +0 -46
  545. package/viewer/renderOnlyViewer.js.map +0 -1
  546. package/viewer/viewer.d.ts +0 -258
  547. package/viewer/viewer.js +0 -783
  548. package/viewer/viewer.js.map +0 -1
  549. package/viewer/viewerManager.d.ts +0 -58
  550. package/viewer/viewerManager.js +0 -91
  551. package/viewer/viewerManager.js.map +0 -1
  552. package/viewer/viewerWithTemplate.d.ts +0 -9
  553. package/viewer/viewerWithTemplate.js +0 -20
  554. package/viewer/viewerWithTemplate.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinInstanceMesh-DCh8MOoj.esm.min.js","sources":["../../../../../dev/core/dist/Meshes/thinInstanceMesh.js"],"sourcesContent":["import { Mesh } from \"../Meshes/mesh\";\nimport { VertexBuffer, Buffer } from \"../Buffers/buffer\";\nimport { Matrix, Vector3, TmpVectors } from \"../Maths/math.vector\";\nimport { Logger } from \"../Misc/logger\";\nimport { BoundingInfo } from \"core/Culling/boundingInfo\";\nMesh.prototype.thinInstanceAdd = function (matrix, refresh = true) {\n if (!this.getScene().getEngine().getCaps().instancedArrays) {\n Logger.Error(\"Thin Instances are not supported on this device as Instanced Array extension not supported\");\n return -1;\n }\n this._thinInstanceUpdateBufferSize(\"matrix\", Array.isArray(matrix) ? matrix.length : 1);\n const index = this._thinInstanceDataStorage.instancesCount;\n if (Array.isArray(matrix)) {\n for (let i = 0; i < matrix.length; ++i) {\n this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++, matrix[i], i === matrix.length - 1 && refresh);\n }\n }\n else {\n this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++, matrix, refresh);\n }\n return index;\n};\nMesh.prototype.thinInstanceAddSelf = function (refresh = true) {\n return this.thinInstanceAdd(Matrix.IdentityReadOnly, refresh);\n};\nMesh.prototype.thinInstanceRegisterAttribute = function (kind, stride) {\n // preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n this.removeVerticesData(kind);\n this._thinInstanceInitializeUserStorage();\n this._userThinInstanceBuffersStorage.strides[kind] = stride;\n this._userThinInstanceBuffersStorage.sizes[kind] = stride * Math.max(32, this._thinInstanceDataStorage.instancesCount); // Initial size\n this._userThinInstanceBuffersStorage.data[kind] = new Float32Array(this._userThinInstanceBuffersStorage.sizes[kind]);\n this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), this._userThinInstanceBuffersStorage.data[kind], kind, true, false, stride, true);\n this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);\n};\nMesh.prototype.thinInstanceSetMatrixAt = function (index, matrix, refresh = true) {\n if (!this._thinInstanceDataStorage.matrixData || index >= this._thinInstanceDataStorage.instancesCount) {\n return false;\n }\n const matrixData = this._thinInstanceDataStorage.matrixData;\n matrix.copyToArray(matrixData, index * 16);\n if (this._thinInstanceDataStorage.worldMatrices) {\n this._thinInstanceDataStorage.worldMatrices[index] = matrix;\n }\n if (refresh) {\n this.thinInstanceBufferUpdated(\"matrix\");\n if (!this.doNotSyncBoundingInfo) {\n this.thinInstanceRefreshBoundingInfo(false);\n }\n }\n return true;\n};\nMesh.prototype.thinInstanceSetAttributeAt = function (kind, index, value, refresh = true) {\n // preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n if (!this._userThinInstanceBuffersStorage || !this._userThinInstanceBuffersStorage.data[kind] || index >= this._thinInstanceDataStorage.instancesCount) {\n return false;\n }\n this._thinInstanceUpdateBufferSize(kind, 0); // make sur the buffer for the kind attribute is big enough\n this._userThinInstanceBuffersStorage.data[kind].set(value, index * this._userThinInstanceBuffersStorage.strides[kind]);\n if (refresh) {\n this.thinInstanceBufferUpdated(kind);\n }\n return true;\n};\nObject.defineProperty(Mesh.prototype, \"thinInstanceCount\", {\n get: function () {\n return this._thinInstanceDataStorage.instancesCount;\n },\n set: function (value) {\n const matrixData = this._thinInstanceDataStorage.matrixData ?? this.source?._thinInstanceDataStorage.matrixData;\n const numMaxInstances = matrixData ? matrixData.length / 16 : 0;\n if (value <= numMaxInstances) {\n this._thinInstanceDataStorage.instancesCount = value;\n }\n },\n enumerable: true,\n configurable: true,\n});\nMesh.prototype._thinInstanceCreateMatrixBuffer = function (kind, buffer, staticBuffer = true) {\n const matrixBuffer = new Buffer(this.getEngine(), buffer, !staticBuffer, 16, false, true);\n for (let i = 0; i < 4; i++) {\n this.setVerticesBuffer(matrixBuffer.createVertexBuffer(kind + i, i * 4, 4));\n }\n return matrixBuffer;\n};\nMesh.prototype.thinInstanceSetBuffer = function (kind, buffer, stride = 0, staticBuffer = true) {\n stride = stride || 16;\n if (kind === \"matrix\") {\n this._thinInstanceDataStorage.matrixBuffer?.dispose();\n this._thinInstanceDataStorage.matrixBuffer = null;\n this._thinInstanceDataStorage.matrixBufferSize = buffer ? buffer.length : 32 * stride;\n this._thinInstanceDataStorage.matrixData = buffer;\n this._thinInstanceDataStorage.worldMatrices = null;\n if (buffer !== null) {\n this._thinInstanceDataStorage.instancesCount = buffer.length / stride;\n this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer(\"world\", buffer, staticBuffer);\n if (!this.doNotSyncBoundingInfo) {\n this.thinInstanceRefreshBoundingInfo(false);\n }\n }\n else {\n this._thinInstanceDataStorage.instancesCount = 0;\n if (!this.doNotSyncBoundingInfo) {\n // mesh has no more thin instances, so need to recompute the bounding box because it's the regular mesh that will now be displayed\n this.refreshBoundingInfo();\n }\n }\n }\n else if (kind === \"previousMatrix\") {\n this._thinInstanceDataStorage.previousMatrixBuffer?.dispose();\n this._thinInstanceDataStorage.previousMatrixBuffer = null;\n this._thinInstanceDataStorage.previousMatrixData = buffer;\n if (buffer !== null) {\n this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer(\"previousWorld\", buffer, staticBuffer);\n }\n }\n else {\n // color for instanced mesh is ColorInstanceKind and not ColorKind because of native that needs to do the differenciation\n // hot switching kind here to preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n if (buffer === null) {\n if (this._userThinInstanceBuffersStorage?.data[kind]) {\n this.removeVerticesData(kind);\n delete this._userThinInstanceBuffersStorage.data[kind];\n delete this._userThinInstanceBuffersStorage.strides[kind];\n delete this._userThinInstanceBuffersStorage.sizes[kind];\n delete this._userThinInstanceBuffersStorage.vertexBuffers[kind];\n }\n }\n else {\n this._thinInstanceInitializeUserStorage();\n this._userThinInstanceBuffersStorage.data[kind] = buffer;\n this._userThinInstanceBuffersStorage.strides[kind] = stride;\n this._userThinInstanceBuffersStorage.sizes[kind] = buffer.length;\n this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), buffer, kind, !staticBuffer, false, stride, true);\n this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);\n }\n }\n};\nMesh.prototype.thinInstanceBufferUpdated = function (kind) {\n if (kind === \"matrix\") {\n if (this.thinInstanceAllowAutomaticStaticBufferRecreation && this._thinInstanceDataStorage.matrixBuffer && !this._thinInstanceDataStorage.matrixBuffer.isUpdatable()) {\n this._thinInstanceRecreateBuffer(kind);\n }\n this._thinInstanceDataStorage.matrixBuffer?.updateDirectly(this._thinInstanceDataStorage.matrixData, 0, this._thinInstanceDataStorage.instancesCount);\n }\n else if (kind === \"previousMatrix\") {\n if (this.thinInstanceAllowAutomaticStaticBufferRecreation &&\n this._thinInstanceDataStorage.previousMatrixBuffer &&\n !this._thinInstanceDataStorage.previousMatrixBuffer.isUpdatable()) {\n this._thinInstanceRecreateBuffer(kind);\n }\n this._thinInstanceDataStorage.previousMatrixBuffer?.updateDirectly(this._thinInstanceDataStorage.previousMatrixData, 0, this._thinInstanceDataStorage.instancesCount);\n }\n else {\n // preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n if (this._userThinInstanceBuffersStorage?.vertexBuffers[kind]) {\n if (this.thinInstanceAllowAutomaticStaticBufferRecreation && !this._userThinInstanceBuffersStorage.vertexBuffers[kind].isUpdatable()) {\n this._thinInstanceRecreateBuffer(kind);\n }\n this._userThinInstanceBuffersStorage.vertexBuffers[kind].updateDirectly(this._userThinInstanceBuffersStorage.data[kind], 0);\n }\n }\n};\nMesh.prototype.thinInstancePartialBufferUpdate = function (kind, data, offset) {\n if (kind === \"matrix\") {\n if (this._thinInstanceDataStorage.matrixBuffer) {\n this._thinInstanceDataStorage.matrixBuffer.updateDirectly(data, offset);\n }\n }\n else {\n // preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n if (this._userThinInstanceBuffersStorage?.vertexBuffers[kind]) {\n this._userThinInstanceBuffersStorage.vertexBuffers[kind].updateDirectly(data, offset);\n }\n }\n};\nMesh.prototype.thinInstanceGetWorldMatrices = function () {\n if (!this._thinInstanceDataStorage.matrixData || !this._thinInstanceDataStorage.matrixBuffer) {\n return [];\n }\n const matrixData = this._thinInstanceDataStorage.matrixData;\n if (!this._thinInstanceDataStorage.worldMatrices) {\n this._thinInstanceDataStorage.worldMatrices = [];\n for (let i = 0; i < this._thinInstanceDataStorage.instancesCount; ++i) {\n this._thinInstanceDataStorage.worldMatrices[i] = Matrix.FromArray(matrixData, i * 16);\n }\n }\n return this._thinInstanceDataStorage.worldMatrices;\n};\nMesh.prototype.thinInstanceRefreshBoundingInfo = function (forceRefreshParentInfo = false, applySkeleton = false, applyMorph = false) {\n if (!this._thinInstanceDataStorage.matrixData || !this._thinInstanceDataStorage.matrixBuffer) {\n return;\n }\n const vectors = this._thinInstanceDataStorage.boundingVectors;\n if (forceRefreshParentInfo || !this.rawBoundingInfo) {\n vectors.length = 0;\n this.refreshBoundingInfo(applySkeleton, applyMorph);\n const boundingInfo = this.getBoundingInfo();\n this.rawBoundingInfo = new BoundingInfo(boundingInfo.minimum, boundingInfo.maximum);\n }\n const boundingInfo = this.getBoundingInfo();\n const matrixData = this._thinInstanceDataStorage.matrixData;\n if (vectors.length === 0) {\n for (let v = 0; v < boundingInfo.boundingBox.vectors.length; ++v) {\n vectors.push(boundingInfo.boundingBox.vectors[v].clone());\n }\n }\n TmpVectors.Vector3[0].setAll(Number.POSITIVE_INFINITY); // min\n TmpVectors.Vector3[1].setAll(Number.NEGATIVE_INFINITY); // max\n for (let i = 0; i < this._thinInstanceDataStorage.instancesCount; ++i) {\n Matrix.FromArrayToRef(matrixData, i * 16, TmpVectors.Matrix[0]);\n for (let v = 0; v < vectors.length; ++v) {\n Vector3.TransformCoordinatesToRef(vectors[v], TmpVectors.Matrix[0], TmpVectors.Vector3[2]);\n TmpVectors.Vector3[0].minimizeInPlace(TmpVectors.Vector3[2]);\n TmpVectors.Vector3[1].maximizeInPlace(TmpVectors.Vector3[2]);\n }\n }\n boundingInfo.reConstruct(TmpVectors.Vector3[0], TmpVectors.Vector3[1]);\n this._updateBoundingInfo();\n};\nMesh.prototype._thinInstanceRecreateBuffer = function (kind, staticBuffer = true) {\n if (kind === \"matrix\") {\n this._thinInstanceDataStorage.matrixBuffer?.dispose();\n this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer(\"world\", this._thinInstanceDataStorage.matrixData, staticBuffer);\n }\n else if (kind === \"previousMatrix\") {\n if (this._scene.needsPreviousWorldMatrices) {\n this._thinInstanceDataStorage.previousMatrixBuffer?.dispose();\n this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer(\"previousWorld\", this._thinInstanceDataStorage.previousMatrixData ?? this._thinInstanceDataStorage.matrixData, staticBuffer);\n }\n }\n else {\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n this._userThinInstanceBuffersStorage.vertexBuffers[kind]?.dispose();\n this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), this._userThinInstanceBuffersStorage.data[kind], kind, !staticBuffer, false, this._userThinInstanceBuffersStorage.strides[kind], true);\n this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);\n }\n};\nMesh.prototype._thinInstanceUpdateBufferSize = function (kind, numInstances = 1) {\n // preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n const kindIsMatrix = kind === \"matrix\";\n if (!kindIsMatrix && (!this._userThinInstanceBuffersStorage || !this._userThinInstanceBuffersStorage.strides[kind])) {\n return;\n }\n const stride = kindIsMatrix ? 16 : this._userThinInstanceBuffersStorage.strides[kind];\n const currentSize = kindIsMatrix ? this._thinInstanceDataStorage.matrixBufferSize : this._userThinInstanceBuffersStorage.sizes[kind];\n let data = kindIsMatrix ? this._thinInstanceDataStorage.matrixData : this._userThinInstanceBuffersStorage.data[kind];\n const bufferSize = (this._thinInstanceDataStorage.instancesCount + numInstances) * stride;\n let newSize = currentSize;\n while (newSize < bufferSize) {\n newSize *= 2;\n }\n if (!data || currentSize != newSize) {\n if (!data) {\n data = new Float32Array(newSize);\n }\n else {\n const newData = new Float32Array(newSize);\n newData.set(data, 0);\n data = newData;\n }\n if (kindIsMatrix) {\n this._thinInstanceDataStorage.matrixBuffer?.dispose();\n this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer(\"world\", data, false);\n this._thinInstanceDataStorage.matrixData = data;\n this._thinInstanceDataStorage.matrixBufferSize = newSize;\n if (this._scene.needsPreviousWorldMatrices && !this._thinInstanceDataStorage.previousMatrixData) {\n this._thinInstanceDataStorage.previousMatrixBuffer?.dispose();\n this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer(\"previousWorld\", data, false);\n }\n }\n else {\n this._userThinInstanceBuffersStorage.vertexBuffers[kind]?.dispose();\n this._userThinInstanceBuffersStorage.data[kind] = data;\n this._userThinInstanceBuffersStorage.sizes[kind] = newSize;\n this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), data, kind, true, false, stride, true);\n this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);\n }\n }\n};\nMesh.prototype._thinInstanceInitializeUserStorage = function () {\n if (!this._userThinInstanceBuffersStorage) {\n this._userThinInstanceBuffersStorage = {\n data: {},\n sizes: {},\n vertexBuffers: {},\n strides: {},\n };\n }\n};\nMesh.prototype._disposeThinInstanceSpecificData = function () {\n if (this._thinInstanceDataStorage?.matrixBuffer) {\n this._thinInstanceDataStorage.matrixBuffer.dispose();\n this._thinInstanceDataStorage.matrixBuffer = null;\n }\n};\n//# sourceMappingURL=thinInstanceMesh.js.map"],"names":["Mesh","prototype","thinInstanceAdd","matrix","refresh","this","getScene","getEngine","getCaps","instancedArrays","Logger","Error","_thinInstanceUpdateBufferSize","Array","isArray","length","index","_thinInstanceDataStorage","instancesCount","i","thinInstanceSetMatrixAt","thinInstanceAddSelf","Matrix","IdentityReadOnly","thinInstanceRegisterAttribute","kind","stride","VertexBuffer","ColorKind","ColorInstanceKind","removeVerticesData","_thinInstanceInitializeUserStorage","_userThinInstanceBuffersStorage","strides","sizes","Math","max","data","Float32Array","vertexBuffers","setVerticesBuffer","matrixData","copyToArray","worldMatrices","thinInstanceBufferUpdated","doNotSyncBoundingInfo","thinInstanceRefreshBoundingInfo","thinInstanceSetAttributeAt","value","set","Object","defineProperty","get","source","enumerable","configurable","_thinInstanceCreateMatrixBuffer","buffer","staticBuffer","matrixBuffer","Buffer","createVertexBuffer","thinInstanceSetBuffer","dispose","matrixBufferSize","refreshBoundingInfo","previousMatrixBuffer","previousMatrixData","thinInstanceAllowAutomaticStaticBufferRecreation","isUpdatable","_thinInstanceRecreateBuffer","updateDirectly","thinInstancePartialBufferUpdate","offset","thinInstanceGetWorldMatrices","FromArray","forceRefreshParentInfo","applySkeleton","applyMorph","vectors","boundingVectors","rawBoundingInfo","boundingInfo","getBoundingInfo","BoundingInfo","minimum","maximum","v","boundingBox","push","clone","TmpVectors","Vector3","setAll","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","FromArrayToRef","TransformCoordinatesToRef","minimizeInPlace","maximizeInPlace","reConstruct","_updateBoundingInfo","_scene","needsPreviousWorldMatrices","numInstances","kindIsMatrix","currentSize","bufferSize","newSize","newData","_disposeThinInstanceSpecificData"],"mappings":"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"}
@@ -0,0 +1,314 @@
1
+ import { M as Mesh, L as Logger, a1 as Matrix, V as VertexBuffer, B as Buffer, aJ as BoundingInfo, a3 as TmpVectors, u as Vector3 } from './index-H9RbNFln.esm.js';
2
+
3
+ Mesh.prototype.thinInstanceAdd = function (matrix, refresh = true) {
4
+ if (!this.getScene().getEngine().getCaps().instancedArrays) {
5
+ Logger.Error("Thin Instances are not supported on this device as Instanced Array extension not supported");
6
+ return -1;
7
+ }
8
+ this._thinInstanceUpdateBufferSize("matrix", Array.isArray(matrix) ? matrix.length : 1);
9
+ const index = this._thinInstanceDataStorage.instancesCount;
10
+ if (Array.isArray(matrix)) {
11
+ for (let i = 0; i < matrix.length; ++i) {
12
+ this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++, matrix[i], i === matrix.length - 1 && refresh);
13
+ }
14
+ }
15
+ else {
16
+ this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++, matrix, refresh);
17
+ }
18
+ return index;
19
+ };
20
+ Mesh.prototype.thinInstanceAddSelf = function (refresh = true) {
21
+ return this.thinInstanceAdd(Matrix.IdentityReadOnly, refresh);
22
+ };
23
+ Mesh.prototype.thinInstanceRegisterAttribute = function (kind, stride) {
24
+ // preserve backward compatibility
25
+ if (kind === VertexBuffer.ColorKind) {
26
+ kind = VertexBuffer.ColorInstanceKind;
27
+ }
28
+ this.removeVerticesData(kind);
29
+ this._thinInstanceInitializeUserStorage();
30
+ this._userThinInstanceBuffersStorage.strides[kind] = stride;
31
+ this._userThinInstanceBuffersStorage.sizes[kind] = stride * Math.max(32, this._thinInstanceDataStorage.instancesCount); // Initial size
32
+ this._userThinInstanceBuffersStorage.data[kind] = new Float32Array(this._userThinInstanceBuffersStorage.sizes[kind]);
33
+ this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), this._userThinInstanceBuffersStorage.data[kind], kind, true, false, stride, true);
34
+ this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);
35
+ };
36
+ Mesh.prototype.thinInstanceSetMatrixAt = function (index, matrix, refresh = true) {
37
+ if (!this._thinInstanceDataStorage.matrixData || index >= this._thinInstanceDataStorage.instancesCount) {
38
+ return false;
39
+ }
40
+ const matrixData = this._thinInstanceDataStorage.matrixData;
41
+ matrix.copyToArray(matrixData, index * 16);
42
+ if (this._thinInstanceDataStorage.worldMatrices) {
43
+ this._thinInstanceDataStorage.worldMatrices[index] = matrix;
44
+ }
45
+ if (refresh) {
46
+ this.thinInstanceBufferUpdated("matrix");
47
+ if (!this.doNotSyncBoundingInfo) {
48
+ this.thinInstanceRefreshBoundingInfo(false);
49
+ }
50
+ }
51
+ return true;
52
+ };
53
+ Mesh.prototype.thinInstanceSetAttributeAt = function (kind, index, value, refresh = true) {
54
+ // preserve backward compatibility
55
+ if (kind === VertexBuffer.ColorKind) {
56
+ kind = VertexBuffer.ColorInstanceKind;
57
+ }
58
+ if (!this._userThinInstanceBuffersStorage || !this._userThinInstanceBuffersStorage.data[kind] || index >= this._thinInstanceDataStorage.instancesCount) {
59
+ return false;
60
+ }
61
+ this._thinInstanceUpdateBufferSize(kind, 0); // make sur the buffer for the kind attribute is big enough
62
+ this._userThinInstanceBuffersStorage.data[kind].set(value, index * this._userThinInstanceBuffersStorage.strides[kind]);
63
+ if (refresh) {
64
+ this.thinInstanceBufferUpdated(kind);
65
+ }
66
+ return true;
67
+ };
68
+ Object.defineProperty(Mesh.prototype, "thinInstanceCount", {
69
+ get: function () {
70
+ return this._thinInstanceDataStorage.instancesCount;
71
+ },
72
+ set: function (value) {
73
+ const matrixData = this._thinInstanceDataStorage.matrixData ?? this.source?._thinInstanceDataStorage.matrixData;
74
+ const numMaxInstances = matrixData ? matrixData.length / 16 : 0;
75
+ if (value <= numMaxInstances) {
76
+ this._thinInstanceDataStorage.instancesCount = value;
77
+ }
78
+ },
79
+ enumerable: true,
80
+ configurable: true,
81
+ });
82
+ Mesh.prototype._thinInstanceCreateMatrixBuffer = function (kind, buffer, staticBuffer = true) {
83
+ const matrixBuffer = new Buffer(this.getEngine(), buffer, !staticBuffer, 16, false, true);
84
+ for (let i = 0; i < 4; i++) {
85
+ this.setVerticesBuffer(matrixBuffer.createVertexBuffer(kind + i, i * 4, 4));
86
+ }
87
+ return matrixBuffer;
88
+ };
89
+ Mesh.prototype.thinInstanceSetBuffer = function (kind, buffer, stride = 0, staticBuffer = true) {
90
+ stride = stride || 16;
91
+ if (kind === "matrix") {
92
+ this._thinInstanceDataStorage.matrixBuffer?.dispose();
93
+ this._thinInstanceDataStorage.matrixBuffer = null;
94
+ this._thinInstanceDataStorage.matrixBufferSize = buffer ? buffer.length : 32 * stride;
95
+ this._thinInstanceDataStorage.matrixData = buffer;
96
+ this._thinInstanceDataStorage.worldMatrices = null;
97
+ if (buffer !== null) {
98
+ this._thinInstanceDataStorage.instancesCount = buffer.length / stride;
99
+ this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer("world", buffer, staticBuffer);
100
+ if (!this.doNotSyncBoundingInfo) {
101
+ this.thinInstanceRefreshBoundingInfo(false);
102
+ }
103
+ }
104
+ else {
105
+ this._thinInstanceDataStorage.instancesCount = 0;
106
+ if (!this.doNotSyncBoundingInfo) {
107
+ // mesh has no more thin instances, so need to recompute the bounding box because it's the regular mesh that will now be displayed
108
+ this.refreshBoundingInfo();
109
+ }
110
+ }
111
+ }
112
+ else if (kind === "previousMatrix") {
113
+ this._thinInstanceDataStorage.previousMatrixBuffer?.dispose();
114
+ this._thinInstanceDataStorage.previousMatrixBuffer = null;
115
+ this._thinInstanceDataStorage.previousMatrixData = buffer;
116
+ if (buffer !== null) {
117
+ this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer("previousWorld", buffer, staticBuffer);
118
+ }
119
+ }
120
+ else {
121
+ // color for instanced mesh is ColorInstanceKind and not ColorKind because of native that needs to do the differenciation
122
+ // hot switching kind here to preserve backward compatibility
123
+ if (kind === VertexBuffer.ColorKind) {
124
+ kind = VertexBuffer.ColorInstanceKind;
125
+ }
126
+ if (buffer === null) {
127
+ if (this._userThinInstanceBuffersStorage?.data[kind]) {
128
+ this.removeVerticesData(kind);
129
+ delete this._userThinInstanceBuffersStorage.data[kind];
130
+ delete this._userThinInstanceBuffersStorage.strides[kind];
131
+ delete this._userThinInstanceBuffersStorage.sizes[kind];
132
+ delete this._userThinInstanceBuffersStorage.vertexBuffers[kind];
133
+ }
134
+ }
135
+ else {
136
+ this._thinInstanceInitializeUserStorage();
137
+ this._userThinInstanceBuffersStorage.data[kind] = buffer;
138
+ this._userThinInstanceBuffersStorage.strides[kind] = stride;
139
+ this._userThinInstanceBuffersStorage.sizes[kind] = buffer.length;
140
+ this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), buffer, kind, !staticBuffer, false, stride, true);
141
+ this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);
142
+ }
143
+ }
144
+ };
145
+ Mesh.prototype.thinInstanceBufferUpdated = function (kind) {
146
+ if (kind === "matrix") {
147
+ if (this.thinInstanceAllowAutomaticStaticBufferRecreation && this._thinInstanceDataStorage.matrixBuffer && !this._thinInstanceDataStorage.matrixBuffer.isUpdatable()) {
148
+ this._thinInstanceRecreateBuffer(kind);
149
+ }
150
+ this._thinInstanceDataStorage.matrixBuffer?.updateDirectly(this._thinInstanceDataStorage.matrixData, 0, this._thinInstanceDataStorage.instancesCount);
151
+ }
152
+ else if (kind === "previousMatrix") {
153
+ if (this.thinInstanceAllowAutomaticStaticBufferRecreation &&
154
+ this._thinInstanceDataStorage.previousMatrixBuffer &&
155
+ !this._thinInstanceDataStorage.previousMatrixBuffer.isUpdatable()) {
156
+ this._thinInstanceRecreateBuffer(kind);
157
+ }
158
+ this._thinInstanceDataStorage.previousMatrixBuffer?.updateDirectly(this._thinInstanceDataStorage.previousMatrixData, 0, this._thinInstanceDataStorage.instancesCount);
159
+ }
160
+ else {
161
+ // preserve backward compatibility
162
+ if (kind === VertexBuffer.ColorKind) {
163
+ kind = VertexBuffer.ColorInstanceKind;
164
+ }
165
+ if (this._userThinInstanceBuffersStorage?.vertexBuffers[kind]) {
166
+ if (this.thinInstanceAllowAutomaticStaticBufferRecreation && !this._userThinInstanceBuffersStorage.vertexBuffers[kind].isUpdatable()) {
167
+ this._thinInstanceRecreateBuffer(kind);
168
+ }
169
+ this._userThinInstanceBuffersStorage.vertexBuffers[kind].updateDirectly(this._userThinInstanceBuffersStorage.data[kind], 0);
170
+ }
171
+ }
172
+ };
173
+ Mesh.prototype.thinInstancePartialBufferUpdate = function (kind, data, offset) {
174
+ if (kind === "matrix") {
175
+ if (this._thinInstanceDataStorage.matrixBuffer) {
176
+ this._thinInstanceDataStorage.matrixBuffer.updateDirectly(data, offset);
177
+ }
178
+ }
179
+ else {
180
+ // preserve backward compatibility
181
+ if (kind === VertexBuffer.ColorKind) {
182
+ kind = VertexBuffer.ColorInstanceKind;
183
+ }
184
+ if (this._userThinInstanceBuffersStorage?.vertexBuffers[kind]) {
185
+ this._userThinInstanceBuffersStorage.vertexBuffers[kind].updateDirectly(data, offset);
186
+ }
187
+ }
188
+ };
189
+ Mesh.prototype.thinInstanceGetWorldMatrices = function () {
190
+ if (!this._thinInstanceDataStorage.matrixData || !this._thinInstanceDataStorage.matrixBuffer) {
191
+ return [];
192
+ }
193
+ const matrixData = this._thinInstanceDataStorage.matrixData;
194
+ if (!this._thinInstanceDataStorage.worldMatrices) {
195
+ this._thinInstanceDataStorage.worldMatrices = [];
196
+ for (let i = 0; i < this._thinInstanceDataStorage.instancesCount; ++i) {
197
+ this._thinInstanceDataStorage.worldMatrices[i] = Matrix.FromArray(matrixData, i * 16);
198
+ }
199
+ }
200
+ return this._thinInstanceDataStorage.worldMatrices;
201
+ };
202
+ Mesh.prototype.thinInstanceRefreshBoundingInfo = function (forceRefreshParentInfo = false, applySkeleton = false, applyMorph = false) {
203
+ if (!this._thinInstanceDataStorage.matrixData || !this._thinInstanceDataStorage.matrixBuffer) {
204
+ return;
205
+ }
206
+ const vectors = this._thinInstanceDataStorage.boundingVectors;
207
+ if (forceRefreshParentInfo || !this.rawBoundingInfo) {
208
+ vectors.length = 0;
209
+ this.refreshBoundingInfo(applySkeleton, applyMorph);
210
+ const boundingInfo = this.getBoundingInfo();
211
+ this.rawBoundingInfo = new BoundingInfo(boundingInfo.minimum, boundingInfo.maximum);
212
+ }
213
+ const boundingInfo = this.getBoundingInfo();
214
+ const matrixData = this._thinInstanceDataStorage.matrixData;
215
+ if (vectors.length === 0) {
216
+ for (let v = 0; v < boundingInfo.boundingBox.vectors.length; ++v) {
217
+ vectors.push(boundingInfo.boundingBox.vectors[v].clone());
218
+ }
219
+ }
220
+ TmpVectors.Vector3[0].setAll(Number.POSITIVE_INFINITY); // min
221
+ TmpVectors.Vector3[1].setAll(Number.NEGATIVE_INFINITY); // max
222
+ for (let i = 0; i < this._thinInstanceDataStorage.instancesCount; ++i) {
223
+ Matrix.FromArrayToRef(matrixData, i * 16, TmpVectors.Matrix[0]);
224
+ for (let v = 0; v < vectors.length; ++v) {
225
+ Vector3.TransformCoordinatesToRef(vectors[v], TmpVectors.Matrix[0], TmpVectors.Vector3[2]);
226
+ TmpVectors.Vector3[0].minimizeInPlace(TmpVectors.Vector3[2]);
227
+ TmpVectors.Vector3[1].maximizeInPlace(TmpVectors.Vector3[2]);
228
+ }
229
+ }
230
+ boundingInfo.reConstruct(TmpVectors.Vector3[0], TmpVectors.Vector3[1]);
231
+ this._updateBoundingInfo();
232
+ };
233
+ Mesh.prototype._thinInstanceRecreateBuffer = function (kind, staticBuffer = true) {
234
+ if (kind === "matrix") {
235
+ this._thinInstanceDataStorage.matrixBuffer?.dispose();
236
+ this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer("world", this._thinInstanceDataStorage.matrixData, staticBuffer);
237
+ }
238
+ else if (kind === "previousMatrix") {
239
+ if (this._scene.needsPreviousWorldMatrices) {
240
+ this._thinInstanceDataStorage.previousMatrixBuffer?.dispose();
241
+ this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer("previousWorld", this._thinInstanceDataStorage.previousMatrixData ?? this._thinInstanceDataStorage.matrixData, staticBuffer);
242
+ }
243
+ }
244
+ else {
245
+ if (kind === VertexBuffer.ColorKind) {
246
+ kind = VertexBuffer.ColorInstanceKind;
247
+ }
248
+ this._userThinInstanceBuffersStorage.vertexBuffers[kind]?.dispose();
249
+ this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), this._userThinInstanceBuffersStorage.data[kind], kind, !staticBuffer, false, this._userThinInstanceBuffersStorage.strides[kind], true);
250
+ this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);
251
+ }
252
+ };
253
+ Mesh.prototype._thinInstanceUpdateBufferSize = function (kind, numInstances = 1) {
254
+ // preserve backward compatibility
255
+ if (kind === VertexBuffer.ColorKind) {
256
+ kind = VertexBuffer.ColorInstanceKind;
257
+ }
258
+ const kindIsMatrix = kind === "matrix";
259
+ if (!kindIsMatrix && (!this._userThinInstanceBuffersStorage || !this._userThinInstanceBuffersStorage.strides[kind])) {
260
+ return;
261
+ }
262
+ const stride = kindIsMatrix ? 16 : this._userThinInstanceBuffersStorage.strides[kind];
263
+ const currentSize = kindIsMatrix ? this._thinInstanceDataStorage.matrixBufferSize : this._userThinInstanceBuffersStorage.sizes[kind];
264
+ let data = kindIsMatrix ? this._thinInstanceDataStorage.matrixData : this._userThinInstanceBuffersStorage.data[kind];
265
+ const bufferSize = (this._thinInstanceDataStorage.instancesCount + numInstances) * stride;
266
+ let newSize = currentSize;
267
+ while (newSize < bufferSize) {
268
+ newSize *= 2;
269
+ }
270
+ if (!data || currentSize != newSize) {
271
+ if (!data) {
272
+ data = new Float32Array(newSize);
273
+ }
274
+ else {
275
+ const newData = new Float32Array(newSize);
276
+ newData.set(data, 0);
277
+ data = newData;
278
+ }
279
+ if (kindIsMatrix) {
280
+ this._thinInstanceDataStorage.matrixBuffer?.dispose();
281
+ this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer("world", data, false);
282
+ this._thinInstanceDataStorage.matrixData = data;
283
+ this._thinInstanceDataStorage.matrixBufferSize = newSize;
284
+ if (this._scene.needsPreviousWorldMatrices && !this._thinInstanceDataStorage.previousMatrixData) {
285
+ this._thinInstanceDataStorage.previousMatrixBuffer?.dispose();
286
+ this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer("previousWorld", data, false);
287
+ }
288
+ }
289
+ else {
290
+ this._userThinInstanceBuffersStorage.vertexBuffers[kind]?.dispose();
291
+ this._userThinInstanceBuffersStorage.data[kind] = data;
292
+ this._userThinInstanceBuffersStorage.sizes[kind] = newSize;
293
+ this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), data, kind, true, false, stride, true);
294
+ this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);
295
+ }
296
+ }
297
+ };
298
+ Mesh.prototype._thinInstanceInitializeUserStorage = function () {
299
+ if (!this._userThinInstanceBuffersStorage) {
300
+ this._userThinInstanceBuffersStorage = {
301
+ data: {},
302
+ sizes: {},
303
+ vertexBuffers: {},
304
+ strides: {},
305
+ };
306
+ }
307
+ };
308
+ Mesh.prototype._disposeThinInstanceSpecificData = function () {
309
+ if (this._thinInstanceDataStorage?.matrixBuffer) {
310
+ this._thinInstanceDataStorage.matrixBuffer.dispose();
311
+ this._thinInstanceDataStorage.matrixBuffer = null;
312
+ }
313
+ };
314
+ //# sourceMappingURL=thinInstanceMesh-DzFmk7SW.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinInstanceMesh-DzFmk7SW.esm.js","sources":["../../../../../dev/core/dist/Meshes/thinInstanceMesh.js"],"sourcesContent":["import { Mesh } from \"../Meshes/mesh\";\nimport { VertexBuffer, Buffer } from \"../Buffers/buffer\";\nimport { Matrix, Vector3, TmpVectors } from \"../Maths/math.vector\";\nimport { Logger } from \"../Misc/logger\";\nimport { BoundingInfo } from \"core/Culling/boundingInfo\";\nMesh.prototype.thinInstanceAdd = function (matrix, refresh = true) {\n if (!this.getScene().getEngine().getCaps().instancedArrays) {\n Logger.Error(\"Thin Instances are not supported on this device as Instanced Array extension not supported\");\n return -1;\n }\n this._thinInstanceUpdateBufferSize(\"matrix\", Array.isArray(matrix) ? matrix.length : 1);\n const index = this._thinInstanceDataStorage.instancesCount;\n if (Array.isArray(matrix)) {\n for (let i = 0; i < matrix.length; ++i) {\n this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++, matrix[i], i === matrix.length - 1 && refresh);\n }\n }\n else {\n this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++, matrix, refresh);\n }\n return index;\n};\nMesh.prototype.thinInstanceAddSelf = function (refresh = true) {\n return this.thinInstanceAdd(Matrix.IdentityReadOnly, refresh);\n};\nMesh.prototype.thinInstanceRegisterAttribute = function (kind, stride) {\n // preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n this.removeVerticesData(kind);\n this._thinInstanceInitializeUserStorage();\n this._userThinInstanceBuffersStorage.strides[kind] = stride;\n this._userThinInstanceBuffersStorage.sizes[kind] = stride * Math.max(32, this._thinInstanceDataStorage.instancesCount); // Initial size\n this._userThinInstanceBuffersStorage.data[kind] = new Float32Array(this._userThinInstanceBuffersStorage.sizes[kind]);\n this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), this._userThinInstanceBuffersStorage.data[kind], kind, true, false, stride, true);\n this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);\n};\nMesh.prototype.thinInstanceSetMatrixAt = function (index, matrix, refresh = true) {\n if (!this._thinInstanceDataStorage.matrixData || index >= this._thinInstanceDataStorage.instancesCount) {\n return false;\n }\n const matrixData = this._thinInstanceDataStorage.matrixData;\n matrix.copyToArray(matrixData, index * 16);\n if (this._thinInstanceDataStorage.worldMatrices) {\n this._thinInstanceDataStorage.worldMatrices[index] = matrix;\n }\n if (refresh) {\n this.thinInstanceBufferUpdated(\"matrix\");\n if (!this.doNotSyncBoundingInfo) {\n this.thinInstanceRefreshBoundingInfo(false);\n }\n }\n return true;\n};\nMesh.prototype.thinInstanceSetAttributeAt = function (kind, index, value, refresh = true) {\n // preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n if (!this._userThinInstanceBuffersStorage || !this._userThinInstanceBuffersStorage.data[kind] || index >= this._thinInstanceDataStorage.instancesCount) {\n return false;\n }\n this._thinInstanceUpdateBufferSize(kind, 0); // make sur the buffer for the kind attribute is big enough\n this._userThinInstanceBuffersStorage.data[kind].set(value, index * this._userThinInstanceBuffersStorage.strides[kind]);\n if (refresh) {\n this.thinInstanceBufferUpdated(kind);\n }\n return true;\n};\nObject.defineProperty(Mesh.prototype, \"thinInstanceCount\", {\n get: function () {\n return this._thinInstanceDataStorage.instancesCount;\n },\n set: function (value) {\n const matrixData = this._thinInstanceDataStorage.matrixData ?? this.source?._thinInstanceDataStorage.matrixData;\n const numMaxInstances = matrixData ? matrixData.length / 16 : 0;\n if (value <= numMaxInstances) {\n this._thinInstanceDataStorage.instancesCount = value;\n }\n },\n enumerable: true,\n configurable: true,\n});\nMesh.prototype._thinInstanceCreateMatrixBuffer = function (kind, buffer, staticBuffer = true) {\n const matrixBuffer = new Buffer(this.getEngine(), buffer, !staticBuffer, 16, false, true);\n for (let i = 0; i < 4; i++) {\n this.setVerticesBuffer(matrixBuffer.createVertexBuffer(kind + i, i * 4, 4));\n }\n return matrixBuffer;\n};\nMesh.prototype.thinInstanceSetBuffer = function (kind, buffer, stride = 0, staticBuffer = true) {\n stride = stride || 16;\n if (kind === \"matrix\") {\n this._thinInstanceDataStorage.matrixBuffer?.dispose();\n this._thinInstanceDataStorage.matrixBuffer = null;\n this._thinInstanceDataStorage.matrixBufferSize = buffer ? buffer.length : 32 * stride;\n this._thinInstanceDataStorage.matrixData = buffer;\n this._thinInstanceDataStorage.worldMatrices = null;\n if (buffer !== null) {\n this._thinInstanceDataStorage.instancesCount = buffer.length / stride;\n this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer(\"world\", buffer, staticBuffer);\n if (!this.doNotSyncBoundingInfo) {\n this.thinInstanceRefreshBoundingInfo(false);\n }\n }\n else {\n this._thinInstanceDataStorage.instancesCount = 0;\n if (!this.doNotSyncBoundingInfo) {\n // mesh has no more thin instances, so need to recompute the bounding box because it's the regular mesh that will now be displayed\n this.refreshBoundingInfo();\n }\n }\n }\n else if (kind === \"previousMatrix\") {\n this._thinInstanceDataStorage.previousMatrixBuffer?.dispose();\n this._thinInstanceDataStorage.previousMatrixBuffer = null;\n this._thinInstanceDataStorage.previousMatrixData = buffer;\n if (buffer !== null) {\n this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer(\"previousWorld\", buffer, staticBuffer);\n }\n }\n else {\n // color for instanced mesh is ColorInstanceKind and not ColorKind because of native that needs to do the differenciation\n // hot switching kind here to preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n if (buffer === null) {\n if (this._userThinInstanceBuffersStorage?.data[kind]) {\n this.removeVerticesData(kind);\n delete this._userThinInstanceBuffersStorage.data[kind];\n delete this._userThinInstanceBuffersStorage.strides[kind];\n delete this._userThinInstanceBuffersStorage.sizes[kind];\n delete this._userThinInstanceBuffersStorage.vertexBuffers[kind];\n }\n }\n else {\n this._thinInstanceInitializeUserStorage();\n this._userThinInstanceBuffersStorage.data[kind] = buffer;\n this._userThinInstanceBuffersStorage.strides[kind] = stride;\n this._userThinInstanceBuffersStorage.sizes[kind] = buffer.length;\n this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), buffer, kind, !staticBuffer, false, stride, true);\n this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);\n }\n }\n};\nMesh.prototype.thinInstanceBufferUpdated = function (kind) {\n if (kind === \"matrix\") {\n if (this.thinInstanceAllowAutomaticStaticBufferRecreation && this._thinInstanceDataStorage.matrixBuffer && !this._thinInstanceDataStorage.matrixBuffer.isUpdatable()) {\n this._thinInstanceRecreateBuffer(kind);\n }\n this._thinInstanceDataStorage.matrixBuffer?.updateDirectly(this._thinInstanceDataStorage.matrixData, 0, this._thinInstanceDataStorage.instancesCount);\n }\n else if (kind === \"previousMatrix\") {\n if (this.thinInstanceAllowAutomaticStaticBufferRecreation &&\n this._thinInstanceDataStorage.previousMatrixBuffer &&\n !this._thinInstanceDataStorage.previousMatrixBuffer.isUpdatable()) {\n this._thinInstanceRecreateBuffer(kind);\n }\n this._thinInstanceDataStorage.previousMatrixBuffer?.updateDirectly(this._thinInstanceDataStorage.previousMatrixData, 0, this._thinInstanceDataStorage.instancesCount);\n }\n else {\n // preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n if (this._userThinInstanceBuffersStorage?.vertexBuffers[kind]) {\n if (this.thinInstanceAllowAutomaticStaticBufferRecreation && !this._userThinInstanceBuffersStorage.vertexBuffers[kind].isUpdatable()) {\n this._thinInstanceRecreateBuffer(kind);\n }\n this._userThinInstanceBuffersStorage.vertexBuffers[kind].updateDirectly(this._userThinInstanceBuffersStorage.data[kind], 0);\n }\n }\n};\nMesh.prototype.thinInstancePartialBufferUpdate = function (kind, data, offset) {\n if (kind === \"matrix\") {\n if (this._thinInstanceDataStorage.matrixBuffer) {\n this._thinInstanceDataStorage.matrixBuffer.updateDirectly(data, offset);\n }\n }\n else {\n // preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n if (this._userThinInstanceBuffersStorage?.vertexBuffers[kind]) {\n this._userThinInstanceBuffersStorage.vertexBuffers[kind].updateDirectly(data, offset);\n }\n }\n};\nMesh.prototype.thinInstanceGetWorldMatrices = function () {\n if (!this._thinInstanceDataStorage.matrixData || !this._thinInstanceDataStorage.matrixBuffer) {\n return [];\n }\n const matrixData = this._thinInstanceDataStorage.matrixData;\n if (!this._thinInstanceDataStorage.worldMatrices) {\n this._thinInstanceDataStorage.worldMatrices = [];\n for (let i = 0; i < this._thinInstanceDataStorage.instancesCount; ++i) {\n this._thinInstanceDataStorage.worldMatrices[i] = Matrix.FromArray(matrixData, i * 16);\n }\n }\n return this._thinInstanceDataStorage.worldMatrices;\n};\nMesh.prototype.thinInstanceRefreshBoundingInfo = function (forceRefreshParentInfo = false, applySkeleton = false, applyMorph = false) {\n if (!this._thinInstanceDataStorage.matrixData || !this._thinInstanceDataStorage.matrixBuffer) {\n return;\n }\n const vectors = this._thinInstanceDataStorage.boundingVectors;\n if (forceRefreshParentInfo || !this.rawBoundingInfo) {\n vectors.length = 0;\n this.refreshBoundingInfo(applySkeleton, applyMorph);\n const boundingInfo = this.getBoundingInfo();\n this.rawBoundingInfo = new BoundingInfo(boundingInfo.minimum, boundingInfo.maximum);\n }\n const boundingInfo = this.getBoundingInfo();\n const matrixData = this._thinInstanceDataStorage.matrixData;\n if (vectors.length === 0) {\n for (let v = 0; v < boundingInfo.boundingBox.vectors.length; ++v) {\n vectors.push(boundingInfo.boundingBox.vectors[v].clone());\n }\n }\n TmpVectors.Vector3[0].setAll(Number.POSITIVE_INFINITY); // min\n TmpVectors.Vector3[1].setAll(Number.NEGATIVE_INFINITY); // max\n for (let i = 0; i < this._thinInstanceDataStorage.instancesCount; ++i) {\n Matrix.FromArrayToRef(matrixData, i * 16, TmpVectors.Matrix[0]);\n for (let v = 0; v < vectors.length; ++v) {\n Vector3.TransformCoordinatesToRef(vectors[v], TmpVectors.Matrix[0], TmpVectors.Vector3[2]);\n TmpVectors.Vector3[0].minimizeInPlace(TmpVectors.Vector3[2]);\n TmpVectors.Vector3[1].maximizeInPlace(TmpVectors.Vector3[2]);\n }\n }\n boundingInfo.reConstruct(TmpVectors.Vector3[0], TmpVectors.Vector3[1]);\n this._updateBoundingInfo();\n};\nMesh.prototype._thinInstanceRecreateBuffer = function (kind, staticBuffer = true) {\n if (kind === \"matrix\") {\n this._thinInstanceDataStorage.matrixBuffer?.dispose();\n this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer(\"world\", this._thinInstanceDataStorage.matrixData, staticBuffer);\n }\n else if (kind === \"previousMatrix\") {\n if (this._scene.needsPreviousWorldMatrices) {\n this._thinInstanceDataStorage.previousMatrixBuffer?.dispose();\n this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer(\"previousWorld\", this._thinInstanceDataStorage.previousMatrixData ?? this._thinInstanceDataStorage.matrixData, staticBuffer);\n }\n }\n else {\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n this._userThinInstanceBuffersStorage.vertexBuffers[kind]?.dispose();\n this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), this._userThinInstanceBuffersStorage.data[kind], kind, !staticBuffer, false, this._userThinInstanceBuffersStorage.strides[kind], true);\n this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);\n }\n};\nMesh.prototype._thinInstanceUpdateBufferSize = function (kind, numInstances = 1) {\n // preserve backward compatibility\n if (kind === VertexBuffer.ColorKind) {\n kind = VertexBuffer.ColorInstanceKind;\n }\n const kindIsMatrix = kind === \"matrix\";\n if (!kindIsMatrix && (!this._userThinInstanceBuffersStorage || !this._userThinInstanceBuffersStorage.strides[kind])) {\n return;\n }\n const stride = kindIsMatrix ? 16 : this._userThinInstanceBuffersStorage.strides[kind];\n const currentSize = kindIsMatrix ? this._thinInstanceDataStorage.matrixBufferSize : this._userThinInstanceBuffersStorage.sizes[kind];\n let data = kindIsMatrix ? this._thinInstanceDataStorage.matrixData : this._userThinInstanceBuffersStorage.data[kind];\n const bufferSize = (this._thinInstanceDataStorage.instancesCount + numInstances) * stride;\n let newSize = currentSize;\n while (newSize < bufferSize) {\n newSize *= 2;\n }\n if (!data || currentSize != newSize) {\n if (!data) {\n data = new Float32Array(newSize);\n }\n else {\n const newData = new Float32Array(newSize);\n newData.set(data, 0);\n data = newData;\n }\n if (kindIsMatrix) {\n this._thinInstanceDataStorage.matrixBuffer?.dispose();\n this._thinInstanceDataStorage.matrixBuffer = this._thinInstanceCreateMatrixBuffer(\"world\", data, false);\n this._thinInstanceDataStorage.matrixData = data;\n this._thinInstanceDataStorage.matrixBufferSize = newSize;\n if (this._scene.needsPreviousWorldMatrices && !this._thinInstanceDataStorage.previousMatrixData) {\n this._thinInstanceDataStorage.previousMatrixBuffer?.dispose();\n this._thinInstanceDataStorage.previousMatrixBuffer = this._thinInstanceCreateMatrixBuffer(\"previousWorld\", data, false);\n }\n }\n else {\n this._userThinInstanceBuffersStorage.vertexBuffers[kind]?.dispose();\n this._userThinInstanceBuffersStorage.data[kind] = data;\n this._userThinInstanceBuffersStorage.sizes[kind] = newSize;\n this._userThinInstanceBuffersStorage.vertexBuffers[kind] = new VertexBuffer(this.getEngine(), data, kind, true, false, stride, true);\n this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[kind]);\n }\n }\n};\nMesh.prototype._thinInstanceInitializeUserStorage = function () {\n if (!this._userThinInstanceBuffersStorage) {\n this._userThinInstanceBuffersStorage = {\n data: {},\n sizes: {},\n vertexBuffers: {},\n strides: {},\n };\n }\n};\nMesh.prototype._disposeThinInstanceSpecificData = function () {\n if (this._thinInstanceDataStorage?.matrixBuffer) {\n this._thinInstanceDataStorage.matrixBuffer.dispose();\n this._thinInstanceDataStorage.matrixBuffer = null;\n }\n};\n//# sourceMappingURL=thinInstanceMesh.js.map"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{h as e}from"./index-NKQY07Ai.esm.min.js";e.IncludesShadersStore.decalVertexDeclaration="#ifdef DECAL\nuniform vec4 vDecalInfos;uniform mat4 decalMatrix;\n#endif\n";e.IncludesShadersStore.uvAttributeDeclaration="#ifdef UV{X}\nattribute vec2 uv{X};\n#endif\n";e.IncludesShadersStore.bonesDeclaration="#if NUM_BONE_INFLUENCERS>0\nattribute vec4 matricesIndices;attribute vec4 matricesWeights;\n#if NUM_BONE_INFLUENCERS>4\nattribute vec4 matricesIndicesExtra;attribute vec4 matricesWeightsExtra;\n#endif\n#ifndef BAKED_VERTEX_ANIMATION_TEXTURE\n#ifdef BONETEXTURE\nuniform highp sampler2D boneSampler;uniform float boneTextureWidth;\n#else\nuniform mat4 mBones[BonesPerMesh];\n#endif\n#ifdef BONES_VELOCITY_ENABLED\nuniform mat4 mPreviousBones[BonesPerMesh];\n#endif\n#ifdef BONETEXTURE\n#define inline\nmat4 readMatrixFromRawSampler(sampler2D smp,float index)\n{float offset=index *4.0;float dx=1.0/boneTextureWidth;vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),0.));vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),0.));vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),0.));vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),0.));return mat4(m0,m1,m2,m3);}\n#endif\n#endif\n#endif\n";e.IncludesShadersStore.bakedVertexAnimationDeclaration="#ifdef BAKED_VERTEX_ANIMATION_TEXTURE\nuniform float bakedVertexAnimationTime;uniform vec2 bakedVertexAnimationTextureSizeInverted;uniform vec4 bakedVertexAnimationSettings;uniform sampler2D bakedVertexAnimationTexture;\n#ifdef INSTANCES\nattribute vec4 bakedVertexAnimationSettingsInstanced;\n#endif\n#define inline\nmat4 readMatrixFromRawSamplerVAT(sampler2D smp,float index,float frame)\n{float offset=index*4.0;float frameUV=(frame+0.5)*bakedVertexAnimationTextureSizeInverted.y;float dx=bakedVertexAnimationTextureSizeInverted.x;vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),frameUV));vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),frameUV));vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),frameUV));vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),frameUV));return mat4(m0,m1,m2,m3);}\n#endif\n";e.IncludesShadersStore.instancesDeclaration="#ifdef INSTANCES\nattribute vec4 world0;attribute vec4 world1;attribute vec4 world2;attribute vec4 world3;\n#ifdef INSTANCESCOLOR\nattribute vec4 instanceColor;\n#endif\n#if defined(THIN_INSTANCES) && !defined(WORLD_UBO)\nuniform mat4 world;\n#endif\n#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)\nattribute vec4 previousWorld0;attribute vec4 previousWorld1;attribute vec4 previousWorld2;attribute vec4 previousWorld3;\n#ifdef THIN_INSTANCES\nuniform mat4 previousWorld;\n#endif\n#endif\n#else\n#if !defined(WORLD_UBO)\nuniform mat4 world;\n#endif\n#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)\nuniform mat4 previousWorld;\n#endif\n#endif\n";e.IncludesShadersStore.prePassVertexDeclaration="#ifdef PREPASS\n#ifdef PREPASS_LOCAL_POSITION\nvarying vec3 vPosition;\n#endif\n#ifdef PREPASS_DEPTH\nvarying vec3 vViewPos;\n#endif\n#if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)\nuniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;\n#endif\n#endif\n";e.IncludesShadersStore.samplerVertexDeclaration="#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0\nvarying vec2 v_VARYINGNAME_UV;\n#endif\n";e.IncludesShadersStore.bumpVertexDeclaration="#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL) \nvarying mat3 vTBN;\n#endif\n#endif\n";e.IncludesShadersStore.lightVxFragmentDeclaration="#ifdef LIGHT{X}\nuniform vec4 vLightData{X};uniform vec4 vLightDiffuse{X};\n#ifdef SPECULARTERM\nuniform vec4 vLightSpecular{X};\n#else\nvec4 vLightSpecular{X}=vec4(0.);\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};\n#elif defined(SHADOWCUBE{X})\n#else\nvarying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};\n#endif\nuniform vec4 shadowsInfo{X};uniform vec2 depthValues{X};\n#endif\n#ifdef SPOTLIGHT{X}\nuniform vec4 vLightDirection{X};uniform vec4 vLightFalloff{X};\n#elif defined(POINTLIGHT{X})\nuniform vec4 vLightFalloff{X};\n#elif defined(HEMILIGHT{X})\nuniform vec3 vLightGround{X};\n#endif\n#endif\n";e.IncludesShadersStore.lightVxUboDeclaration="#ifdef LIGHT{X}\nuniform Light{X}\n{vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;\n#ifdef SPOTLIGHT{X}\nvec4 vLightDirection;vec4 vLightFalloff;\n#elif defined(POINTLIGHT{X})\nvec4 vLightFalloff;\n#elif defined(HEMILIGHT{X})\nvec3 vLightGround;\n#endif\nvec4 shadowsInfo;vec2 depthValues;} light{X};\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};\n#elif defined(SHADOWCUBE{X})\n#else\nvarying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};\n#endif\n#endif\n#endif\n";e.IncludesShadersStore.morphTargetsVertexGlobalDeclaration="#ifdef MORPHTARGETS\nuniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];\n#ifdef MORPHTARGETS_TEXTURE \nuniform float morphTargetTextureIndices[NUM_MORPH_INFLUENCERS];uniform vec3 morphTargetTextureInfo;uniform highp sampler2DArray morphTargets;vec3 readVector3FromRawSampler(int targetIndex,float vertexIndex)\n{ \nfloat y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV).xyz;}\n#endif\n#endif\n";e.IncludesShadersStore.morphTargetsVertexDeclaration="#ifdef MORPHTARGETS\n#ifndef MORPHTARGETS_TEXTURE\nattribute vec3 position{X};\n#ifdef MORPHTARGETS_NORMAL\nattribute vec3 normal{X};\n#endif\n#ifdef MORPHTARGETS_TANGENT\nattribute vec3 tangent{X};\n#endif\n#ifdef MORPHTARGETS_UV\nattribute vec2 uv_{X};\n#endif\n#elif {X}==0\nuniform int morphTargetCount;\n#endif\n#endif\n";e.IncludesShadersStore.morphTargetsVertexGlobal="#ifdef MORPHTARGETS\n#ifdef MORPHTARGETS_TEXTURE\nfloat vertexID;\n#endif\n#endif\n";e.IncludesShadersStore.morphTargetsVertex="#ifdef MORPHTARGETS\n#ifdef MORPHTARGETS_TEXTURE\n#if {X}==0\nfor (int i=0; i<NUM_MORPH_INFLUENCERS; i++) {if (i>=morphTargetCount) break;vertexID=float(gl_VertexID)*morphTargetTextureInfo.x;positionUpdated+=(readVector3FromRawSampler(i,vertexID)-position)*morphTargetInfluences[i];vertexID+=1.0;\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(readVector3FromRawSampler(i,vertexID) -normal)*morphTargetInfluences[i];vertexID+=1.0;\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated+=(readVector3FromRawSampler(i,vertexID).xy-uv)*morphTargetInfluences[i];vertexID+=1.0;\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz+=(readVector3FromRawSampler(i,vertexID) -tangent.xyz)*morphTargetInfluences[i];\n#endif\n}\n#endif\n#else\npositionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];\n#endif\n#endif\n#endif\n";e.IncludesShadersStore.instancesVertex="#ifdef INSTANCES\nmat4 finalWorld=mat4(world0,world1,world2,world3);\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)\nmat4 finalPreviousWorld=mat4(previousWorld0,previousWorld1,\npreviousWorld2,previousWorld3);\n#endif\n#ifdef THIN_INSTANCES\nfinalWorld=world*finalWorld;\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)\nfinalPreviousWorld=previousWorld*finalPreviousWorld;\n#endif\n#endif\n#else\nmat4 finalWorld=world;\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)\nmat4 finalPreviousWorld=previousWorld;\n#endif\n#endif\n";e.IncludesShadersStore.bonesVertex="#ifndef BAKED_VERTEX_ANIMATION_TEXTURE\n#if NUM_BONE_INFLUENCERS>0\nmat4 influence;\n#ifdef BONETEXTURE\ninfluence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[3])*matricesWeightsExtra[3];\n#endif\n#else\ninfluence=mBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence+=mBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\ninfluence+=mBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\ninfluence+=mBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\ninfluence+=mBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\ninfluence+=mBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\ninfluence+=mBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\ninfluence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\n#endif\nfinalWorld=finalWorld*influence;\n#endif\n#endif\n";e.IncludesShadersStore.bakedVertexAnimation="#ifdef BAKED_VERTEX_ANIMATION_TEXTURE\n{\n#ifdef INSTANCES\n#define BVASNAME bakedVertexAnimationSettingsInstanced\n#else\n#define BVASNAME bakedVertexAnimationSettings\n#endif\nfloat VATStartFrame=BVASNAME.x;float VATEndFrame=BVASNAME.y;float VATOffsetFrame=BVASNAME.z;float VATSpeed=BVASNAME.w;float totalFrames=VATEndFrame-VATStartFrame+1.0;float time=bakedVertexAnimationTime*VATSpeed/totalFrames;float frameCorrection=time<1.0 ? 0.0 : 1.0;float numOfFrames=totalFrames-frameCorrection;float VATFrameNum=fract(time)*numOfFrames;VATFrameNum=mod(VATFrameNum+VATOffsetFrame,numOfFrames);VATFrameNum=floor(VATFrameNum);VATFrameNum+=VATStartFrame+frameCorrection;mat4 VATInfluence;VATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[0],VATFrameNum)*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[1],VATFrameNum)*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[2],VATFrameNum)*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[3],VATFrameNum)*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[0],VATFrameNum)*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[1],VATFrameNum)*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[2],VATFrameNum)*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[3],VATFrameNum)*matricesWeightsExtra[3];\n#endif\nfinalWorld=finalWorld*VATInfluence;}\n#endif\n";e.IncludesShadersStore.prePassVertex="#ifdef PREPASS_DEPTH\nvViewPos=(view*worldPos).rgb;\n#endif\n#ifdef PREPASS_LOCAL_POSITION\nvPosition=positionUpdated.xyz;\n#endif\n#if defined(PREPASS_VELOCITY) && defined(BONES_VELOCITY_ENABLED) || defined(PREPASS_VELOCITY_LINEAR)\nvCurrentPosition=viewProjection*worldPos;\n#if NUM_BONE_INFLUENCERS>0\nmat4 previousInfluence;previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\npreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif \n#if NUM_BONE_INFLUENCERS>2\npreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif \n#if NUM_BONE_INFLUENCERS>3\npreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif \n#if NUM_BONE_INFLUENCERS>5\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif \n#if NUM_BONE_INFLUENCERS>6\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif \n#if NUM_BONE_INFLUENCERS>7\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\nvPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);\n#else\nvPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\n#endif\n#endif\n";e.IncludesShadersStore.uvVariableDeclaration="#if !defined(UV{X}) && defined(MAINUV{X})\nvec2 uv{X}=vec2(0.,0.);\n#endif\n#ifdef MAINUV{X}\nvMainUV{X}=uv{X};\n#endif\n";e.IncludesShadersStore.samplerVertexImplementation="#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0\nif (v_INFONAME_==0.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uvUpdated,1.0,0.0));}\n#ifdef UV2\nelse if (v_INFONAME_==1.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv2,1.0,0.0));}\n#endif\n#ifdef UV3\nelse if (v_INFONAME_==2.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv3,1.0,0.0));}\n#endif\n#ifdef UV4\nelse if (v_INFONAME_==3.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv4,1.0,0.0));}\n#endif\n#ifdef UV5\nelse if (v_INFONAME_==4.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv5,1.0,0.0));}\n#endif\n#ifdef UV6\nelse if (v_INFONAME_==5.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv6,1.0,0.0));}\n#endif\n#endif\n";e.IncludesShadersStore.bumpVertex="#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nvec3 tbnNormal=normalize(normalUpdated);vec3 tbnTangent=normalize(tangentUpdated.xyz);vec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;vTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);\n#endif\n#endif\n";e.IncludesShadersStore.shadowsVertex="#ifdef SHADOWS\n#if defined(SHADOWCSM{X})\nvPositionFromCamera{X}=view*worldPos;for (int i=0; i<SHADOWCSMNUM_CASCADES{X}; i++) {vPositionFromLight{X}[i]=lightMatrix{X}[i]*worldPos;\n#ifdef USE_REVERSE_DEPTHBUFFER\nvDepthMetric{X}[i]=(-vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#else\nvDepthMetric{X}[i]=(vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#endif\n}\n#elif defined(SHADOW{X}) && !defined(SHADOWCUBE{X})\nvPositionFromLight{X}=lightMatrix{X}*worldPos;\n#ifdef USE_REVERSE_DEPTHBUFFER\nvDepthMetric{X}=(-vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#else\nvDepthMetric{X}=(vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#endif\n#endif\n#endif\n";e.IncludesShadersStore.vertexColorMixing="#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvColor=vec4(1.0);\n#ifdef VERTEXCOLOR\n#ifdef VERTEXALPHA\nvColor*=color;\n#else\nvColor.rgb*=color.rgb;\n#endif\n#endif\n#ifdef INSTANCESCOLOR\nvColor*=instanceColor;\n#endif\n#endif\n";
2
+ //# sourceMappingURL=vertexColorMixing-Bt0lYFpZ.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertexColorMixing-Bt0lYFpZ.esm.min.js","sources":["../../../../../dev/core/dist/Shaders/ShadersInclude/decalVertexDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/uvAttributeDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/bonesDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/instancesDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/prePassVertexDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/samplerVertexDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/bumpVertexDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/lightVxFragmentDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/lightVxUboDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/morphTargetsVertexGlobal.js","../../../../../dev/core/dist/Shaders/ShadersInclude/morphTargetsVertex.js","../../../../../dev/core/dist/Shaders/ShadersInclude/instancesVertex.js","../../../../../dev/core/dist/Shaders/ShadersInclude/bonesVertex.js","../../../../../dev/core/dist/Shaders/ShadersInclude/bakedVertexAnimation.js","../../../../../dev/core/dist/Shaders/ShadersInclude/prePassVertex.js","../../../../../dev/core/dist/Shaders/ShadersInclude/uvVariableDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/samplerVertexImplementation.js","../../../../../dev/core/dist/Shaders/ShadersInclude/bumpVertex.js","../../../../../dev/core/dist/Shaders/ShadersInclude/shadowsVertex.js","../../../../../dev/core/dist/Shaders/ShadersInclude/vertexColorMixing.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"decalVertexDeclaration\";\nconst shader = `#ifdef DECAL\nuniform vec4 vDecalInfos;uniform mat4 decalMatrix;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const decalVertexDeclaration = { name, shader };\n//# sourceMappingURL=decalVertexDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"uvAttributeDeclaration\";\nconst shader = `#ifdef UV{X}\nattribute vec2 uv{X};\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const uvAttributeDeclaration = { name, shader };\n//# sourceMappingURL=uvAttributeDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"bonesDeclaration\";\nconst shader = `#if NUM_BONE_INFLUENCERS>0\nattribute vec4 matricesIndices;attribute vec4 matricesWeights;\n#if NUM_BONE_INFLUENCERS>4\nattribute vec4 matricesIndicesExtra;attribute vec4 matricesWeightsExtra;\n#endif\n#ifndef BAKED_VERTEX_ANIMATION_TEXTURE\n#ifdef BONETEXTURE\nuniform highp sampler2D boneSampler;uniform float boneTextureWidth;\n#else\nuniform mat4 mBones[BonesPerMesh];\n#endif\n#ifdef BONES_VELOCITY_ENABLED\nuniform mat4 mPreviousBones[BonesPerMesh];\n#endif\n#ifdef BONETEXTURE\n#define inline\nmat4 readMatrixFromRawSampler(sampler2D smp,float index)\n{float offset=index *4.0;float dx=1.0/boneTextureWidth;vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),0.));vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),0.));vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),0.));vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),0.));return mat4(m0,m1,m2,m3);}\n#endif\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const bonesDeclaration = { name, shader };\n//# sourceMappingURL=bonesDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"bakedVertexAnimationDeclaration\";\nconst shader = `#ifdef BAKED_VERTEX_ANIMATION_TEXTURE\nuniform float bakedVertexAnimationTime;uniform vec2 bakedVertexAnimationTextureSizeInverted;uniform vec4 bakedVertexAnimationSettings;uniform sampler2D bakedVertexAnimationTexture;\n#ifdef INSTANCES\nattribute vec4 bakedVertexAnimationSettingsInstanced;\n#endif\n#define inline\nmat4 readMatrixFromRawSamplerVAT(sampler2D smp,float index,float frame)\n{float offset=index*4.0;float frameUV=(frame+0.5)*bakedVertexAnimationTextureSizeInverted.y;float dx=bakedVertexAnimationTextureSizeInverted.x;vec4 m0=texture2D(smp,vec2(dx*(offset+0.5),frameUV));vec4 m1=texture2D(smp,vec2(dx*(offset+1.5),frameUV));vec4 m2=texture2D(smp,vec2(dx*(offset+2.5),frameUV));vec4 m3=texture2D(smp,vec2(dx*(offset+3.5),frameUV));return mat4(m0,m1,m2,m3);}\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const bakedVertexAnimationDeclaration = { name, shader };\n//# sourceMappingURL=bakedVertexAnimationDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"instancesDeclaration\";\nconst shader = `#ifdef INSTANCES\nattribute vec4 world0;attribute vec4 world1;attribute vec4 world2;attribute vec4 world3;\n#ifdef INSTANCESCOLOR\nattribute vec4 instanceColor;\n#endif\n#if defined(THIN_INSTANCES) && !defined(WORLD_UBO)\nuniform mat4 world;\n#endif\n#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || \\\ndefined(PREPASS_VELOCITY_LINEAR)\nattribute vec4 previousWorld0;attribute vec4 previousWorld1;attribute vec4 previousWorld2;attribute vec4 previousWorld3;\n#ifdef THIN_INSTANCES\nuniform mat4 previousWorld;\n#endif\n#endif\n#else\n#if !defined(WORLD_UBO)\nuniform mat4 world;\n#endif\n#if defined(VELOCITY) || defined(PREPASS_VELOCITY) || \\\ndefined(PREPASS_VELOCITY_LINEAR)\nuniform mat4 previousWorld;\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const instancesDeclaration = { name, shader };\n//# sourceMappingURL=instancesDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"prePassVertexDeclaration\";\nconst shader = `#ifdef PREPASS\n#ifdef PREPASS_LOCAL_POSITION\nvarying vec3 vPosition;\n#endif\n#ifdef PREPASS_DEPTH\nvarying vec3 vViewPos;\n#endif\n#if defined(PREPASS_VELOCITY) || defined(PREPASS_VELOCITY_LINEAR)\nuniform mat4 previousViewProjection;varying vec4 vCurrentPosition;varying vec4 vPreviousPosition;\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const prePassVertexDeclaration = { name, shader };\n//# sourceMappingURL=prePassVertexDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"samplerVertexDeclaration\";\nconst shader = `#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0\nvarying vec2 v_VARYINGNAME_UV;\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const samplerVertexDeclaration = { name, shader };\n//# sourceMappingURL=samplerVertexDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"bumpVertexDeclaration\";\nconst shader = `#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL) \nvarying mat3 vTBN;\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const bumpVertexDeclaration = { name, shader };\n//# sourceMappingURL=bumpVertexDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"lightVxFragmentDeclaration\";\nconst shader = `#ifdef LIGHT{X}\nuniform vec4 vLightData{X};uniform vec4 vLightDiffuse{X};\n#ifdef SPECULARTERM\nuniform vec4 vLightSpecular{X};\n#else\nvec4 vLightSpecular{X}=vec4(0.);\n#endif\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};\n#elif defined(SHADOWCUBE{X})\n#else\nvarying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};\n#endif\nuniform vec4 shadowsInfo{X};uniform vec2 depthValues{X};\n#endif\n#ifdef SPOTLIGHT{X}\nuniform vec4 vLightDirection{X};uniform vec4 vLightFalloff{X};\n#elif defined(POINTLIGHT{X})\nuniform vec4 vLightFalloff{X};\n#elif defined(HEMILIGHT{X})\nuniform vec3 vLightGround{X};\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const lightVxFragmentDeclaration = { name, shader };\n//# sourceMappingURL=lightVxFragmentDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"lightVxUboDeclaration\";\nconst shader = `#ifdef LIGHT{X}\nuniform Light{X}\n{vec4 vLightData;vec4 vLightDiffuse;vec4 vLightSpecular;\n#ifdef SPOTLIGHT{X}\nvec4 vLightDirection;vec4 vLightFalloff;\n#elif defined(POINTLIGHT{X})\nvec4 vLightFalloff;\n#elif defined(HEMILIGHT{X})\nvec3 vLightGround;\n#endif\nvec4 shadowsInfo;vec2 depthValues;} light{X};\n#ifdef SHADOW{X}\n#ifdef SHADOWCSM{X}\nuniform mat4 lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];varying float vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];varying vec4 vPositionFromCamera{X};\n#elif defined(SHADOWCUBE{X})\n#else\nvarying vec4 vPositionFromLight{X};varying float vDepthMetric{X};uniform mat4 lightMatrix{X};\n#endif\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const lightVxUboDeclaration = { name, shader };\n//# sourceMappingURL=lightVxUboDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"morphTargetsVertexGlobalDeclaration\";\nconst shader = `#ifdef MORPHTARGETS\nuniform float morphTargetInfluences[NUM_MORPH_INFLUENCERS];\n#ifdef MORPHTARGETS_TEXTURE \nuniform float morphTargetTextureIndices[NUM_MORPH_INFLUENCERS];uniform vec3 morphTargetTextureInfo;uniform highp sampler2DArray morphTargets;vec3 readVector3FromRawSampler(int targetIndex,float vertexIndex)\n{ \nfloat y=floor(vertexIndex/morphTargetTextureInfo.y);float x=vertexIndex-y*morphTargetTextureInfo.y;vec3 textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);return texture(morphTargets,textureUV).xyz;}\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const morphTargetsVertexGlobalDeclaration = { name, shader };\n//# sourceMappingURL=morphTargetsVertexGlobalDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"morphTargetsVertexDeclaration\";\nconst shader = `#ifdef MORPHTARGETS\n#ifndef MORPHTARGETS_TEXTURE\nattribute vec3 position{X};\n#ifdef MORPHTARGETS_NORMAL\nattribute vec3 normal{X};\n#endif\n#ifdef MORPHTARGETS_TANGENT\nattribute vec3 tangent{X};\n#endif\n#ifdef MORPHTARGETS_UV\nattribute vec2 uv_{X};\n#endif\n#elif {X}==0\nuniform int morphTargetCount;\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const morphTargetsVertexDeclaration = { name, shader };\n//# sourceMappingURL=morphTargetsVertexDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"morphTargetsVertexGlobal\";\nconst shader = `#ifdef MORPHTARGETS\n#ifdef MORPHTARGETS_TEXTURE\nfloat vertexID;\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const morphTargetsVertexGlobal = { name, shader };\n//# sourceMappingURL=morphTargetsVertexGlobal.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"morphTargetsVertex\";\nconst shader = `#ifdef MORPHTARGETS\n#ifdef MORPHTARGETS_TEXTURE\n#if {X}==0\nfor (int i=0; i<NUM_MORPH_INFLUENCERS; i++) {if (i>=morphTargetCount) break;vertexID=float(gl_VertexID)*morphTargetTextureInfo.x;positionUpdated+=(readVector3FromRawSampler(i,vertexID)-position)*morphTargetInfluences[i];vertexID+=1.0;\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(readVector3FromRawSampler(i,vertexID) -normal)*morphTargetInfluences[i];vertexID+=1.0;\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated+=(readVector3FromRawSampler(i,vertexID).xy-uv)*morphTargetInfluences[i];vertexID+=1.0;\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz+=(readVector3FromRawSampler(i,vertexID) -tangent.xyz)*morphTargetInfluences[i];\n#endif\n}\n#endif\n#else\npositionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];\n#ifdef MORPHTARGETS_NORMAL\nnormalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_TANGENT\ntangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];\n#endif\n#ifdef MORPHTARGETS_UV\nuvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];\n#endif\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const morphTargetsVertex = { name, shader };\n//# sourceMappingURL=morphTargetsVertex.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"instancesVertex\";\nconst shader = `#ifdef INSTANCES\nmat4 finalWorld=mat4(world0,world1,world2,world3);\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || \\\ndefined(PREPASS_VELOCITY_LINEAR)\nmat4 finalPreviousWorld=mat4(previousWorld0,previousWorld1,\npreviousWorld2,previousWorld3);\n#endif\n#ifdef THIN_INSTANCES\nfinalWorld=world*finalWorld;\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || \\\ndefined(PREPASS_VELOCITY_LINEAR)\nfinalPreviousWorld=previousWorld*finalPreviousWorld;\n#endif\n#endif\n#else\nmat4 finalWorld=world;\n#if defined(PREPASS_VELOCITY) || defined(VELOCITY) || \\\ndefined(PREPASS_VELOCITY_LINEAR)\nmat4 finalPreviousWorld=previousWorld;\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const instancesVertex = { name, shader };\n//# sourceMappingURL=instancesVertex.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"bonesVertex\";\nconst shader = `#ifndef BAKED_VERTEX_ANIMATION_TEXTURE\n#if NUM_BONE_INFLUENCERS>0\nmat4 influence;\n#ifdef BONETEXTURE\ninfluence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\ninfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[3])*matricesWeightsExtra[3];\n#endif\n#else\ninfluence=mBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\ninfluence+=mBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\ninfluence+=mBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\ninfluence+=mBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\ninfluence+=mBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\ninfluence+=mBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\ninfluence+=mBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\ninfluence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\n#endif\nfinalWorld=finalWorld*influence;\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const bonesVertex = { name, shader };\n//# sourceMappingURL=bonesVertex.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"bakedVertexAnimation\";\nconst shader = `#ifdef BAKED_VERTEX_ANIMATION_TEXTURE\n{\n#ifdef INSTANCES\n#define BVASNAME bakedVertexAnimationSettingsInstanced\n#else\n#define BVASNAME bakedVertexAnimationSettings\n#endif\nfloat VATStartFrame=BVASNAME.x;float VATEndFrame=BVASNAME.y;float VATOffsetFrame=BVASNAME.z;float VATSpeed=BVASNAME.w;float totalFrames=VATEndFrame-VATStartFrame+1.0;float time=bakedVertexAnimationTime*VATSpeed/totalFrames;float frameCorrection=time<1.0 ? 0.0 : 1.0;float numOfFrames=totalFrames-frameCorrection;float VATFrameNum=fract(time)*numOfFrames;VATFrameNum=mod(VATFrameNum+VATOffsetFrame,numOfFrames);VATFrameNum=floor(VATFrameNum);VATFrameNum+=VATStartFrame+frameCorrection;mat4 VATInfluence;VATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[0],VATFrameNum)*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[1],VATFrameNum)*matricesWeights[1];\n#endif\n#if NUM_BONE_INFLUENCERS>2\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[2],VATFrameNum)*matricesWeights[2];\n#endif\n#if NUM_BONE_INFLUENCERS>3\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[3],VATFrameNum)*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[0],VATFrameNum)*matricesWeightsExtra[0];\n#endif\n#if NUM_BONE_INFLUENCERS>5\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[1],VATFrameNum)*matricesWeightsExtra[1];\n#endif\n#if NUM_BONE_INFLUENCERS>6\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[2],VATFrameNum)*matricesWeightsExtra[2];\n#endif\n#if NUM_BONE_INFLUENCERS>7\nVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[3],VATFrameNum)*matricesWeightsExtra[3];\n#endif\nfinalWorld=finalWorld*VATInfluence;}\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const bakedVertexAnimation = { name, shader };\n//# sourceMappingURL=bakedVertexAnimation.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"prePassVertex\";\nconst shader = `#ifdef PREPASS_DEPTH\nvViewPos=(view*worldPos).rgb;\n#endif\n#ifdef PREPASS_LOCAL_POSITION\nvPosition=positionUpdated.xyz;\n#endif\n#if defined(PREPASS_VELOCITY) && defined(BONES_VELOCITY_ENABLED) || \\\ndefined(PREPASS_VELOCITY_LINEAR)\nvCurrentPosition=viewProjection*worldPos;\n#if NUM_BONE_INFLUENCERS>0\nmat4 previousInfluence;previousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\n#if NUM_BONE_INFLUENCERS>1\npreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\n#endif \n#if NUM_BONE_INFLUENCERS>2\npreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\n#endif \n#if NUM_BONE_INFLUENCERS>3\npreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\n#endif\n#if NUM_BONE_INFLUENCERS>4\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\n#endif \n#if NUM_BONE_INFLUENCERS>5\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\n#endif \n#if NUM_BONE_INFLUENCERS>6\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\n#endif \n#if NUM_BONE_INFLUENCERS>7\npreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\n#endif\nvPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);\n#else\nvPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const prePassVertex = { name, shader };\n//# sourceMappingURL=prePassVertex.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"uvVariableDeclaration\";\nconst shader = `#if !defined(UV{X}) && defined(MAINUV{X})\nvec2 uv{X}=vec2(0.,0.);\n#endif\n#ifdef MAINUV{X}\nvMainUV{X}=uv{X};\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const uvVariableDeclaration = { name, shader };\n//# sourceMappingURL=uvVariableDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"samplerVertexImplementation\";\nconst shader = `#if defined(_DEFINENAME_) && _DEFINENAME_DIRECTUV==0\nif (v_INFONAME_==0.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uvUpdated,1.0,0.0));}\n#ifdef UV2\nelse if (v_INFONAME_==1.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv2,1.0,0.0));}\n#endif\n#ifdef UV3\nelse if (v_INFONAME_==2.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv3,1.0,0.0));}\n#endif\n#ifdef UV4\nelse if (v_INFONAME_==3.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv4,1.0,0.0));}\n#endif\n#ifdef UV5\nelse if (v_INFONAME_==4.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv5,1.0,0.0));}\n#endif\n#ifdef UV6\nelse if (v_INFONAME_==5.)\n{v_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv6,1.0,0.0));}\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const samplerVertexImplementation = { name, shader };\n//# sourceMappingURL=samplerVertexImplementation.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"bumpVertex\";\nconst shader = `#if defined(BUMP) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nvec3 tbnNormal=normalize(normalUpdated);vec3 tbnTangent=normalize(tangentUpdated.xyz);vec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;vTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const bumpVertex = { name, shader };\n//# sourceMappingURL=bumpVertex.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"shadowsVertex\";\nconst shader = `#ifdef SHADOWS\n#if defined(SHADOWCSM{X})\nvPositionFromCamera{X}=view*worldPos;for (int i=0; i<SHADOWCSMNUM_CASCADES{X}; i++) {vPositionFromLight{X}[i]=lightMatrix{X}[i]*worldPos;\n#ifdef USE_REVERSE_DEPTHBUFFER\nvDepthMetric{X}[i]=(-vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#else\nvDepthMetric{X}[i]=(vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#endif\n}\n#elif defined(SHADOW{X}) && !defined(SHADOWCUBE{X})\nvPositionFromLight{X}=lightMatrix{X}*worldPos;\n#ifdef USE_REVERSE_DEPTHBUFFER\nvDepthMetric{X}=(-vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#else\nvDepthMetric{X}=(vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;\n#endif\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const shadowsVertex = { name, shader };\n//# sourceMappingURL=shadowsVertex.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"vertexColorMixing\";\nconst shader = `#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvColor=vec4(1.0);\n#ifdef VERTEXCOLOR\n#ifdef VERTEXALPHA\nvColor*=color;\n#else\nvColor.rgb*=color.rgb;\n#endif\n#endif\n#ifdef INSTANCESCOLOR\nvColor*=instanceColor;\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const vertexColorMixing = { name, shader };\n//# sourceMappingURL=vertexColorMixing.js.map"],"names":["ShaderStore","IncludesShadersStore"],"mappings":"gDAQAA,EAAYC,qBAAyB,uBALtB,6ECKfD,EAAYC,qBAAyB,uBALtB,gDCuBfD,EAAYC,qBAAyB,iBAvBtB,61BCWfD,EAAYC,qBAAyB,gCAXtB,ixBC0BfD,EAAYC,qBAAyB,qBA1BtB,stBCafD,EAAYC,qBAAyB,yBAbtB,+TCKfD,EAAYC,qBAAyB,yBALtB,iGCOfD,EAAYC,qBAAyB,sBAPtB,4KC0BfD,EAAYC,qBAAyB,2BA1BtB,21BCsBfD,EAAYC,qBAAyB,sBAtBtB,8sBCUfD,EAAYC,qBAAyB,oCAVtB,smBCkBfD,EAAYC,qBAAyB,8BAlBtB,wUCOfD,EAAYC,qBAAyB,yBAPtB,sFC8BfD,EAAYC,qBAAyB,mBA9BtB,ilCCuBfD,EAAYC,qBAAyB,gBAvBtB,yoBCuDfD,EAAYC,qBAAyB,YAvDtB,27DCiCfD,EAAYC,qBAAyB,qBAjCtB,o9DCuCfD,EAAYC,qBAAyB,cAvCtB,48CCQfD,EAAYC,qBAAyB,sBARtB,4HC0BfD,EAAYC,qBAAyB,4BA1BtB,wsBCOfD,EAAYC,qBAAyB,WAPtB,4WCoBfD,EAAYC,qBAAyB,cApBtB,qwBCefD,EAAYC,qBAAyB,kBAftB"}