@babylonjs/viewer 7.40.3 → 7.40.4-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 (619) hide show
  1. package/assets/photoStudio.env +0 -0
  2. package/dist/babylon-viewer.esm.js +2 -0
  3. package/dist/babylon-viewer.esm.js.map +1 -0
  4. package/dist/babylon-viewer.esm.min.js +2 -0
  5. package/dist/babylon-viewer.esm.min.js.map +1 -0
  6. package/dist/chunks/EXT_lights_ies-B7tVMCka.esm.min.js +2 -0
  7. package/dist/chunks/EXT_lights_ies-B7tVMCka.esm.min.js.map +1 -0
  8. package/dist/chunks/EXT_lights_ies-T0Tkc0j0.esm.js +84 -0
  9. package/dist/chunks/EXT_lights_ies-T0Tkc0j0.esm.js.map +1 -0
  10. package/dist/chunks/EXT_lights_image_based-CyoPcoDC.esm.min.js +2 -0
  11. package/dist/chunks/EXT_lights_image_based-CyoPcoDC.esm.min.js.map +1 -0
  12. package/dist/chunks/EXT_lights_image_based-TRLY00MY.esm.js +171 -0
  13. package/dist/chunks/EXT_lights_image_based-TRLY00MY.esm.js.map +1 -0
  14. package/dist/chunks/EXT_mesh_gpu_instancing-CNSWr-2o.esm.js +86 -0
  15. package/dist/chunks/EXT_mesh_gpu_instancing-CNSWr-2o.esm.js.map +1 -0
  16. package/dist/chunks/EXT_mesh_gpu_instancing-DvkytavO.esm.min.js +2 -0
  17. package/dist/chunks/EXT_mesh_gpu_instancing-DvkytavO.esm.min.js.map +1 -0
  18. package/dist/chunks/EXT_meshopt_compression-C5Jf55Kx.esm.min.js +2 -0
  19. package/dist/chunks/EXT_meshopt_compression-C5Jf55Kx.esm.min.js.map +1 -0
  20. package/dist/chunks/EXT_meshopt_compression-CWVLJCmT.esm.js +134 -0
  21. package/dist/chunks/EXT_meshopt_compression-CWVLJCmT.esm.js.map +1 -0
  22. package/dist/chunks/EXT_texture_avif-Bv2Pa-Lr.esm.js +44 -0
  23. package/dist/chunks/EXT_texture_avif-Bv2Pa-Lr.esm.js.map +1 -0
  24. package/dist/chunks/EXT_texture_avif-DZmsorD-.esm.min.js +2 -0
  25. package/dist/chunks/EXT_texture_avif-DZmsorD-.esm.min.js.map +1 -0
  26. package/dist/chunks/EXT_texture_webp-CBpWQrqC.esm.js +43 -0
  27. package/dist/chunks/EXT_texture_webp-CBpWQrqC.esm.js.map +1 -0
  28. package/dist/chunks/EXT_texture_webp-D6RSOJSe.esm.min.js +2 -0
  29. package/dist/chunks/EXT_texture_webp-D6RSOJSe.esm.min.js.map +1 -0
  30. package/dist/chunks/ExtrasAsMetadata-6ZohdbjJ.esm.js +64 -0
  31. package/dist/chunks/ExtrasAsMetadata-6ZohdbjJ.esm.js.map +1 -0
  32. package/dist/chunks/ExtrasAsMetadata-CrG2l0Kf.esm.min.js +2 -0
  33. package/dist/chunks/ExtrasAsMetadata-CrG2l0Kf.esm.min.js.map +1 -0
  34. package/dist/chunks/KHR_animation_pointer-Cvu5a-gj.esm.js +352 -0
  35. package/dist/chunks/KHR_animation_pointer-Cvu5a-gj.esm.js.map +1 -0
  36. package/dist/chunks/KHR_animation_pointer-Rk2uzfDp.esm.min.js +2 -0
  37. package/dist/chunks/KHR_animation_pointer-Rk2uzfDp.esm.min.js.map +1 -0
  38. package/dist/chunks/KHR_draco_mesh_compression-BrXprwd5.esm.js +610 -0
  39. package/dist/chunks/KHR_draco_mesh_compression-BrXprwd5.esm.js.map +1 -0
  40. package/dist/chunks/KHR_draco_mesh_compression-Iv3q50MG.esm.min.js +2 -0
  41. package/dist/chunks/KHR_draco_mesh_compression-Iv3q50MG.esm.min.js.map +1 -0
  42. package/dist/chunks/KHR_interactivity-B4iFgkk7.esm.min.js +2 -0
  43. package/dist/chunks/KHR_interactivity-B4iFgkk7.esm.min.js.map +1 -0
  44. package/dist/chunks/KHR_interactivity-Db4iHU65.esm.js +4033 -0
  45. package/dist/chunks/KHR_interactivity-Db4iHU65.esm.js.map +1 -0
  46. package/dist/chunks/KHR_lights_punctual-B7yNiRZy.esm.min.js +2 -0
  47. package/dist/chunks/KHR_lights_punctual-B7yNiRZy.esm.min.js.map +1 -0
  48. package/dist/chunks/KHR_lights_punctual-iZl19DTA.esm.js +581 -0
  49. package/dist/chunks/KHR_lights_punctual-iZl19DTA.esm.js.map +1 -0
  50. package/dist/chunks/KHR_materials_anisotropy-Bk9K0k0q.esm.js +65 -0
  51. package/dist/chunks/KHR_materials_anisotropy-Bk9K0k0q.esm.js.map +1 -0
  52. package/dist/chunks/KHR_materials_anisotropy-DlDnL4o4.esm.min.js +2 -0
  53. package/dist/chunks/KHR_materials_anisotropy-DlDnL4o4.esm.min.js.map +1 -0
  54. package/dist/chunks/KHR_materials_clearcoat-BrT4VgMS.esm.min.js +2 -0
  55. package/dist/chunks/KHR_materials_clearcoat-BrT4VgMS.esm.min.js.map +1 -0
  56. package/dist/chunks/KHR_materials_clearcoat-DXAyxIfA.esm.js +96 -0
  57. package/dist/chunks/KHR_materials_clearcoat-DXAyxIfA.esm.js.map +1 -0
  58. package/dist/chunks/KHR_materials_diffuse_transmission-CRqI4Umg.esm.js +97 -0
  59. package/dist/chunks/KHR_materials_diffuse_transmission-CRqI4Umg.esm.js.map +1 -0
  60. package/dist/chunks/KHR_materials_diffuse_transmission-jyVvmpFx.esm.min.js +2 -0
  61. package/dist/chunks/KHR_materials_diffuse_transmission-jyVvmpFx.esm.min.js.map +1 -0
  62. package/dist/chunks/KHR_materials_dispersion-BwXQSsRC.esm.min.js +2 -0
  63. package/dist/chunks/KHR_materials_dispersion-BwXQSsRC.esm.min.js.map +1 -0
  64. package/dist/chunks/KHR_materials_dispersion-DTMaHZal.esm.js +62 -0
  65. package/dist/chunks/KHR_materials_dispersion-DTMaHZal.esm.js.map +1 -0
  66. package/dist/chunks/KHR_materials_emissive_strength-BCWSR6Zg.esm.js +55 -0
  67. package/dist/chunks/KHR_materials_emissive_strength-BCWSR6Zg.esm.js.map +1 -0
  68. package/dist/chunks/KHR_materials_emissive_strength-dEqNWrU4.esm.min.js +2 -0
  69. package/dist/chunks/KHR_materials_emissive_strength-dEqNWrU4.esm.min.js.map +1 -0
  70. package/dist/chunks/KHR_materials_ior-DXmoDlX8.esm.min.js +2 -0
  71. package/dist/chunks/KHR_materials_ior-DXmoDlX8.esm.min.js.map +1 -0
  72. package/dist/chunks/KHR_materials_ior-NvWqR2ZR.esm.js +64 -0
  73. package/dist/chunks/KHR_materials_ior-NvWqR2ZR.esm.js.map +1 -0
  74. package/dist/chunks/KHR_materials_iridescence-2VKZo_Mv.esm.min.js +2 -0
  75. package/dist/chunks/KHR_materials_iridescence-2VKZo_Mv.esm.min.js.map +1 -0
  76. package/dist/chunks/KHR_materials_iridescence-B2wLtYQ4.esm.js +72 -0
  77. package/dist/chunks/KHR_materials_iridescence-B2wLtYQ4.esm.js.map +1 -0
  78. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DYK5fci0.esm.js +81 -0
  79. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DYK5fci0.esm.js.map +1 -0
  80. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-PlzNRHwZ.esm.min.js +2 -0
  81. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-PlzNRHwZ.esm.min.js.map +1 -0
  82. package/dist/chunks/KHR_materials_sheen-CvA19viC.esm.min.js +2 -0
  83. package/dist/chunks/KHR_materials_sheen-CvA19viC.esm.min.js.map +1 -0
  84. package/dist/chunks/KHR_materials_sheen-DY8Hlw2C.esm.js +85 -0
  85. package/dist/chunks/KHR_materials_sheen-DY8Hlw2C.esm.js.map +1 -0
  86. package/dist/chunks/KHR_materials_specular-DPankAYO.esm.js +75 -0
  87. package/dist/chunks/KHR_materials_specular-DPankAYO.esm.js.map +1 -0
  88. package/dist/chunks/KHR_materials_specular-SFjYTaHn.esm.min.js +2 -0
  89. package/dist/chunks/KHR_materials_specular-SFjYTaHn.esm.min.js.map +1 -0
  90. package/dist/chunks/KHR_materials_transmission-CBvCfGeN.esm.js +307 -0
  91. package/dist/chunks/KHR_materials_transmission-CBvCfGeN.esm.js.map +1 -0
  92. package/dist/chunks/KHR_materials_transmission-DeRHqgMd.esm.min.js +2 -0
  93. package/dist/chunks/KHR_materials_transmission-DeRHqgMd.esm.min.js.map +1 -0
  94. package/dist/chunks/KHR_materials_unlit-Dp-VzfY2.esm.min.js +2 -0
  95. package/dist/chunks/KHR_materials_unlit-Dp-VzfY2.esm.min.js.map +1 -0
  96. package/dist/chunks/KHR_materials_unlit-xG3eIsVn.esm.js +74 -0
  97. package/dist/chunks/KHR_materials_unlit-xG3eIsVn.esm.js.map +1 -0
  98. package/dist/chunks/KHR_materials_variants-DtTs7enl.esm.min.js +2 -0
  99. package/dist/chunks/KHR_materials_variants-DtTs7enl.esm.min.js.map +1 -0
  100. package/dist/chunks/KHR_materials_variants-POauQPs7.esm.js +262 -0
  101. package/dist/chunks/KHR_materials_variants-POauQPs7.esm.js.map +1 -0
  102. package/dist/chunks/KHR_materials_volume-BO1lvsUq.esm.min.js +2 -0
  103. package/dist/chunks/KHR_materials_volume-BO1lvsUq.esm.min.js.map +1 -0
  104. package/dist/chunks/KHR_materials_volume-BqCunks7.esm.js +87 -0
  105. package/dist/chunks/KHR_materials_volume-BqCunks7.esm.js.map +1 -0
  106. package/dist/chunks/KHR_mesh_quantization-3ON-a5Bz.esm.js +26 -0
  107. package/dist/chunks/KHR_mesh_quantization-3ON-a5Bz.esm.js.map +1 -0
  108. package/dist/chunks/KHR_mesh_quantization-C1uR5Lci.esm.min.js +2 -0
  109. package/dist/chunks/KHR_mesh_quantization-C1uR5Lci.esm.min.js.map +1 -0
  110. package/dist/chunks/KHR_node_hoverability-CZIi0X9e.esm.js +39 -0
  111. package/dist/chunks/KHR_node_hoverability-CZIi0X9e.esm.js.map +1 -0
  112. package/dist/chunks/KHR_node_hoverability-gPD0oS5c.esm.min.js +2 -0
  113. package/dist/chunks/KHR_node_hoverability-gPD0oS5c.esm.min.js.map +1 -0
  114. package/dist/chunks/KHR_node_visibility-B5fFI1TX.esm.js +46 -0
  115. package/dist/chunks/KHR_node_visibility-B5fFI1TX.esm.js.map +1 -0
  116. package/dist/chunks/KHR_node_visibility-DPw-0W4p.esm.min.js +2 -0
  117. package/dist/chunks/KHR_node_visibility-DPw-0W4p.esm.min.js.map +1 -0
  118. package/dist/chunks/KHR_texture_basisu-D6tStneN.esm.min.js +2 -0
  119. package/dist/chunks/KHR_texture_basisu-D6tStneN.esm.min.js.map +1 -0
  120. package/dist/chunks/KHR_texture_basisu-Did7TM-4.esm.js +43 -0
  121. package/dist/chunks/KHR_texture_basisu-Did7TM-4.esm.js.map +1 -0
  122. package/dist/chunks/KHR_texture_transform-Da5NeRUm.esm.js +63 -0
  123. package/dist/chunks/KHR_texture_transform-Da5NeRUm.esm.js.map +1 -0
  124. package/dist/chunks/KHR_texture_transform-jNMzm3zb.esm.min.js +2 -0
  125. package/dist/chunks/KHR_texture_transform-jNMzm3zb.esm.min.js.map +1 -0
  126. package/dist/chunks/KHR_xmp_json_ld-D514my_a.esm.js +51 -0
  127. package/dist/chunks/KHR_xmp_json_ld-D514my_a.esm.js.map +1 -0
  128. package/dist/chunks/KHR_xmp_json_ld-D5Gbko_w.esm.min.js +2 -0
  129. package/dist/chunks/KHR_xmp_json_ld-D5Gbko_w.esm.min.js.map +1 -0
  130. package/dist/chunks/MSFT_audio_emitter-CiB3yG6v.esm.js +2201 -0
  131. package/dist/chunks/MSFT_audio_emitter-CiB3yG6v.esm.js.map +1 -0
  132. package/dist/chunks/MSFT_audio_emitter-Cn-DCgMh.esm.min.js +2 -0
  133. package/dist/chunks/MSFT_audio_emitter-Cn-DCgMh.esm.min.js.map +1 -0
  134. package/dist/chunks/MSFT_lod-BDP9fUoB.esm.js +337 -0
  135. package/dist/chunks/MSFT_lod-BDP9fUoB.esm.js.map +1 -0
  136. package/dist/chunks/MSFT_lod-BEbIdncN.esm.min.js +2 -0
  137. package/dist/chunks/MSFT_lod-BEbIdncN.esm.min.js.map +1 -0
  138. package/dist/chunks/MSFT_minecraftMesh-jASzndfE.esm.min.js +2 -0
  139. package/dist/chunks/MSFT_minecraftMesh-jASzndfE.esm.min.js.map +1 -0
  140. package/dist/chunks/MSFT_minecraftMesh-mKnNUrKI.esm.js +46 -0
  141. package/dist/chunks/MSFT_minecraftMesh-mKnNUrKI.esm.js.map +1 -0
  142. package/dist/chunks/MSFT_sRGBFactors-B1Bk1U5N.esm.min.js +2 -0
  143. package/dist/chunks/MSFT_sRGBFactors-B1Bk1U5N.esm.min.js.map +1 -0
  144. package/dist/chunks/MSFT_sRGBFactors-IZnSmmDU.esm.js +47 -0
  145. package/dist/chunks/MSFT_sRGBFactors-IZnSmmDU.esm.js.map +1 -0
  146. package/dist/chunks/animationGroup-B1YyqoTa.esm.js +2482 -0
  147. package/dist/chunks/animationGroup-B1YyqoTa.esm.js.map +1 -0
  148. package/dist/chunks/animationGroup-C9C7qST_.esm.min.js +2 -0
  149. package/dist/chunks/animationGroup-C9C7qST_.esm.min.js.map +1 -0
  150. package/dist/chunks/assetContainer-BzlRl_4x.esm.js +1720 -0
  151. package/dist/chunks/assetContainer-BzlRl_4x.esm.js.map +1 -0
  152. package/dist/chunks/assetContainer-D7C3a-Xn.esm.min.js +2 -0
  153. package/dist/chunks/assetContainer-D7C3a-Xn.esm.min.js.map +1 -0
  154. package/dist/chunks/audioEngine-BZB34VjD.esm.js +305 -0
  155. package/dist/chunks/audioEngine-BZB34VjD.esm.js.map +1 -0
  156. package/dist/chunks/audioEngine-BoxJPZL7.esm.min.js +2 -0
  157. package/dist/chunks/audioEngine-BoxJPZL7.esm.min.js.map +1 -0
  158. package/dist/chunks/bakedVertexAnimation-BQki1eZ4.esm.min.js +2 -0
  159. package/dist/chunks/bakedVertexAnimation-BQki1eZ4.esm.min.js.map +1 -0
  160. package/dist/chunks/bakedVertexAnimation-DpSHNKcC.esm.js +114 -0
  161. package/dist/chunks/bakedVertexAnimation-DpSHNKcC.esm.js.map +1 -0
  162. package/dist/chunks/basisTextureLoader-C3RlzqZl.esm.min.js +2 -0
  163. package/dist/chunks/basisTextureLoader-C3RlzqZl.esm.min.js.map +1 -0
  164. package/dist/chunks/basisTextureLoader-D6uyehp2.esm.js +600 -0
  165. package/dist/chunks/basisTextureLoader-D6uyehp2.esm.js.map +1 -0
  166. package/dist/chunks/dds-C1QgDMMC.esm.min.js +2 -0
  167. package/dist/chunks/dds-C1QgDMMC.esm.min.js.map +1 -0
  168. package/dist/chunks/dds-zApWiwah.esm.js +540 -0
  169. package/dist/chunks/dds-zApWiwah.esm.js.map +1 -0
  170. package/dist/chunks/ddsTextureLoader-CSYQAUdw.esm.js +88 -0
  171. package/dist/chunks/ddsTextureLoader-CSYQAUdw.esm.js.map +1 -0
  172. package/dist/chunks/ddsTextureLoader-Dyl2CjaG.esm.min.js +2 -0
  173. package/dist/chunks/ddsTextureLoader-Dyl2CjaG.esm.min.js.map +1 -0
  174. package/dist/chunks/decalFragment-BbsT8PSx.esm.min.js +2 -0
  175. package/dist/chunks/decalFragment-BbsT8PSx.esm.min.js.map +1 -0
  176. package/dist/chunks/decalFragment-DqgT4NiX.esm.js +18 -0
  177. package/dist/chunks/decalFragment-DqgT4NiX.esm.js.map +1 -0
  178. package/dist/chunks/default.fragment-Bpw23SLq.esm.min.js +2 -0
  179. package/dist/chunks/default.fragment-Bpw23SLq.esm.min.js.map +1 -0
  180. package/dist/chunks/default.fragment-C8lcinV9.esm.js +446 -0
  181. package/dist/chunks/default.fragment-C8lcinV9.esm.js.map +1 -0
  182. package/dist/chunks/default.fragment-De3FJCJD.esm.js +515 -0
  183. package/dist/chunks/default.fragment-De3FJCJD.esm.js.map +1 -0
  184. package/dist/chunks/default.fragment-b__nAv93.esm.min.js +2 -0
  185. package/dist/chunks/default.fragment-b__nAv93.esm.min.js.map +1 -0
  186. package/dist/chunks/default.vertex-BnpZVKdz.esm.min.js +2 -0
  187. package/dist/chunks/default.vertex-BnpZVKdz.esm.min.js.map +1 -0
  188. package/dist/chunks/default.vertex-CD2qxrmB.esm.js +190 -0
  189. package/dist/chunks/default.vertex-CD2qxrmB.esm.js.map +1 -0
  190. package/dist/chunks/default.vertex-CN5WYROZ.esm.min.js +2 -0
  191. package/dist/chunks/default.vertex-CN5WYROZ.esm.min.js.map +1 -0
  192. package/dist/chunks/default.vertex-DRHq60qX.esm.js +211 -0
  193. package/dist/chunks/default.vertex-DRHq60qX.esm.js.map +1 -0
  194. package/dist/chunks/defaultUboDeclaration-C0gMCjYL.esm.min.js +2 -0
  195. package/dist/chunks/defaultUboDeclaration-C0gMCjYL.esm.min.js.map +1 -0
  196. package/dist/chunks/defaultUboDeclaration-CGRrluBg.esm.min.js +2 -0
  197. package/dist/chunks/defaultUboDeclaration-CGRrluBg.esm.min.js.map +1 -0
  198. package/dist/chunks/defaultUboDeclaration-DCybxQ0F.esm.js +13 -0
  199. package/dist/chunks/defaultUboDeclaration-DCybxQ0F.esm.js.map +1 -0
  200. package/dist/chunks/defaultUboDeclaration-xxIrKyXf.esm.js +15 -0
  201. package/dist/chunks/defaultUboDeclaration-xxIrKyXf.esm.js.map +1 -0
  202. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +11 -0
  203. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +1 -0
  204. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +2 -0
  205. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +1 -0
  206. package/dist/chunks/dumpTools-BOVGklo2.esm.min.js +2 -0
  207. package/dist/chunks/dumpTools-BOVGklo2.esm.min.js.map +1 -0
  208. package/dist/chunks/dumpTools-Dy-fD64p.esm.js +200 -0
  209. package/dist/chunks/dumpTools-Dy-fD64p.esm.js.map +1 -0
  210. package/dist/chunks/engine-CBGABL2W.esm.min.js +2 -0
  211. package/dist/chunks/engine-CBGABL2W.esm.min.js.map +1 -0
  212. package/dist/chunks/engine-D9Sn-BC6.esm.js +2213 -0
  213. package/dist/chunks/engine-D9Sn-BC6.esm.js.map +1 -0
  214. package/dist/chunks/engine.common-BM1GAef8.esm.js +1162 -0
  215. package/dist/chunks/engine.common-BM1GAef8.esm.js.map +1 -0
  216. package/dist/chunks/engine.common-xMH7x2b0.esm.min.js +2 -0
  217. package/dist/chunks/engine.common-xMH7x2b0.esm.min.js.map +1 -0
  218. package/dist/chunks/envTextureLoader-BRdNaVH2.esm.min.js +2 -0
  219. package/dist/chunks/envTextureLoader-BRdNaVH2.esm.min.js.map +1 -0
  220. package/dist/chunks/envTextureLoader-DT_xwrde.esm.js +64 -0
  221. package/dist/chunks/envTextureLoader-DT_xwrde.esm.js.map +1 -0
  222. package/dist/chunks/environmentTextureTools-BxWsgzT8.esm.min.js +2 -0
  223. package/dist/chunks/environmentTextureTools-BxWsgzT8.esm.min.js.map +1 -0
  224. package/dist/chunks/environmentTextureTools-DuNLB_SE.esm.js +382 -0
  225. package/dist/chunks/environmentTextureTools-DuNLB_SE.esm.js.map +1 -0
  226. package/dist/chunks/exrTextureLoader-BBL1-v_g.esm.min.js +2 -0
  227. package/dist/chunks/exrTextureLoader-BBL1-v_g.esm.min.js.map +1 -0
  228. package/dist/chunks/exrTextureLoader-CUiWw4Oh.esm.js +1683 -0
  229. package/dist/chunks/exrTextureLoader-CUiWw4Oh.esm.js.map +1 -0
  230. package/dist/chunks/fogFragment-BCz1GIrJ.esm.min.js +2 -0
  231. package/dist/chunks/fogFragment-BCz1GIrJ.esm.min.js.map +1 -0
  232. package/dist/chunks/fogFragment-BQLWFsYl.esm.min.js +2 -0
  233. package/dist/chunks/fogFragment-BQLWFsYl.esm.min.js.map +1 -0
  234. package/dist/chunks/fogFragment-DANl-YQk.esm.js +102 -0
  235. package/dist/chunks/fogFragment-DANl-YQk.esm.js.map +1 -0
  236. package/dist/chunks/fogFragment-DptoygQ5.esm.js +101 -0
  237. package/dist/chunks/fogFragment-DptoygQ5.esm.js.map +1 -0
  238. package/dist/chunks/fresnelFunction-3-z89NGn.esm.js +12 -0
  239. package/dist/chunks/fresnelFunction-3-z89NGn.esm.js.map +1 -0
  240. package/dist/chunks/fresnelFunction-CbnLfwWn.esm.min.js +2 -0
  241. package/dist/chunks/fresnelFunction-CbnLfwWn.esm.min.js.map +1 -0
  242. package/dist/chunks/glTFLoader-Qw5JObwf.esm.js +7658 -0
  243. package/dist/chunks/glTFLoader-Qw5JObwf.esm.js.map +1 -0
  244. package/dist/chunks/glTFLoader-iKlvKEG-.esm.min.js +2 -0
  245. package/dist/chunks/glTFLoader-iKlvKEG-.esm.min.js.map +1 -0
  246. package/dist/chunks/glTFLoaderAnimation-BCUZthxT.esm.js +77 -0
  247. package/dist/chunks/glTFLoaderAnimation-BCUZthxT.esm.js.map +1 -0
  248. package/dist/chunks/glTFLoaderAnimation-DnTkRibM.esm.min.js +2 -0
  249. package/dist/chunks/glTFLoaderAnimation-DnTkRibM.esm.min.js.map +1 -0
  250. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
  251. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
  252. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
  253. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
  254. package/dist/chunks/harmonicsFunctions-19PWyV81.esm.js +34 -0
  255. package/dist/chunks/harmonicsFunctions-19PWyV81.esm.js.map +1 -0
  256. package/dist/chunks/harmonicsFunctions-D4sp7bHN.esm.js +35 -0
  257. package/dist/chunks/harmonicsFunctions-D4sp7bHN.esm.js.map +1 -0
  258. package/dist/chunks/harmonicsFunctions-DSpaTpH7.esm.min.js +2 -0
  259. package/dist/chunks/harmonicsFunctions-DSpaTpH7.esm.min.js.map +1 -0
  260. package/dist/chunks/harmonicsFunctions-DvH68s1g.esm.min.js +2 -0
  261. package/dist/chunks/harmonicsFunctions-DvH68s1g.esm.min.js.map +1 -0
  262. package/dist/chunks/hdrTextureLoader-ChbZ5_1g.esm.min.js +2 -0
  263. package/dist/chunks/hdrTextureLoader-ChbZ5_1g.esm.min.js.map +1 -0
  264. package/dist/chunks/hdrTextureLoader-OJaopXAb.esm.js +253 -0
  265. package/dist/chunks/hdrTextureLoader-OJaopXAb.esm.js.map +1 -0
  266. package/dist/chunks/helperFunctions-CNCeKea7.esm.js +81 -0
  267. package/dist/chunks/helperFunctions-CNCeKea7.esm.js.map +1 -0
  268. package/dist/chunks/helperFunctions-Crs36Q3w.esm.js +109 -0
  269. package/dist/chunks/helperFunctions-Crs36Q3w.esm.js.map +1 -0
  270. package/dist/chunks/helperFunctions-DKz6om6i.esm.min.js +2 -0
  271. package/dist/chunks/helperFunctions-DKz6om6i.esm.min.js.map +1 -0
  272. package/dist/chunks/helperFunctions-bZhuioWn.esm.min.js +2 -0
  273. package/dist/chunks/helperFunctions-bZhuioWn.esm.min.js.map +1 -0
  274. package/dist/chunks/iesTextureLoader-BTOaWdIK.esm.js +189 -0
  275. package/dist/chunks/iesTextureLoader-BTOaWdIK.esm.js.map +1 -0
  276. package/dist/chunks/iesTextureLoader-CKnu1maC.esm.min.js +2 -0
  277. package/dist/chunks/iesTextureLoader-CKnu1maC.esm.min.js.map +1 -0
  278. package/dist/chunks/index-5L5wXyrx.esm.js +74870 -0
  279. package/dist/chunks/index-5L5wXyrx.esm.js.map +1 -0
  280. package/dist/chunks/index-B5KLkjYm.esm.min.js +57 -0
  281. package/dist/chunks/index-B5KLkjYm.esm.min.js.map +1 -0
  282. package/dist/chunks/ktxTextureLoader-CMfHt5rp.esm.js +814 -0
  283. package/dist/chunks/ktxTextureLoader-CMfHt5rp.esm.js.map +1 -0
  284. package/dist/chunks/ktxTextureLoader-DCyzShol.esm.min.js +2 -0
  285. package/dist/chunks/ktxTextureLoader-DCyzShol.esm.min.js.map +1 -0
  286. package/dist/chunks/logDepthDeclaration-8CuoGLY6.esm.js +35 -0
  287. package/dist/chunks/logDepthDeclaration-8CuoGLY6.esm.js.map +1 -0
  288. package/dist/chunks/logDepthDeclaration-BC68Ktb0.esm.js +11 -0
  289. package/dist/chunks/logDepthDeclaration-BC68Ktb0.esm.js.map +1 -0
  290. package/dist/chunks/logDepthDeclaration-CgPuLaM9.esm.min.js +2 -0
  291. package/dist/chunks/logDepthDeclaration-CgPuLaM9.esm.min.js.map +1 -0
  292. package/dist/chunks/logDepthDeclaration-iNYm9mSn.esm.min.js +2 -0
  293. package/dist/chunks/logDepthDeclaration-iNYm9mSn.esm.min.js.map +1 -0
  294. package/dist/chunks/logDepthVertex-BOepIJij.esm.js +77 -0
  295. package/dist/chunks/logDepthVertex-BOepIJij.esm.js.map +1 -0
  296. package/dist/chunks/logDepthVertex-Bno6ozc-.esm.min.js +2 -0
  297. package/dist/chunks/logDepthVertex-Bno6ozc-.esm.min.js.map +1 -0
  298. package/dist/chunks/logDepthVertex-CU3WBwOA.esm.js +81 -0
  299. package/dist/chunks/logDepthVertex-CU3WBwOA.esm.js.map +1 -0
  300. package/dist/chunks/logDepthVertex-DjeubcPn.esm.min.js +2 -0
  301. package/dist/chunks/logDepthVertex-DjeubcPn.esm.min.js.map +1 -0
  302. package/dist/chunks/mainUVVaryingDeclaration-C_Am-o4e.esm.js +11 -0
  303. package/dist/chunks/mainUVVaryingDeclaration-C_Am-o4e.esm.js.map +1 -0
  304. package/dist/chunks/mainUVVaryingDeclaration-CuSqEhkE.esm.min.js +2 -0
  305. package/dist/chunks/mainUVVaryingDeclaration-CuSqEhkE.esm.min.js.map +1 -0
  306. package/dist/chunks/mainUVVaryingDeclaration-DxqJq0-m.esm.js +11 -0
  307. package/dist/chunks/mainUVVaryingDeclaration-DxqJq0-m.esm.js.map +1 -0
  308. package/dist/chunks/mainUVVaryingDeclaration-oZF0xIut.esm.min.js +2 -0
  309. package/dist/chunks/mainUVVaryingDeclaration-oZF0xIut.esm.min.js.map +1 -0
  310. package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js +119 -0
  311. package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js.map +1 -0
  312. package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js +2 -0
  313. package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js.map +1 -0
  314. package/dist/chunks/meshUboDeclaration-BWuUYN5-.esm.js +26 -0
  315. package/dist/chunks/meshUboDeclaration-BWuUYN5-.esm.js.map +1 -0
  316. package/dist/chunks/meshUboDeclaration-D-9f-79D.esm.min.js +2 -0
  317. package/dist/chunks/meshUboDeclaration-D-9f-79D.esm.min.js.map +1 -0
  318. package/dist/chunks/objFileLoader-B3PzHlWB.esm.min.js +2 -0
  319. package/dist/chunks/objFileLoader-B3PzHlWB.esm.min.js.map +1 -0
  320. package/dist/chunks/objFileLoader-BjHr-pn1.esm.js +1338 -0
  321. package/dist/chunks/objFileLoader-BjHr-pn1.esm.js.map +1 -0
  322. package/dist/chunks/oitFragment-BypZDJVo.esm.min.js +2 -0
  323. package/dist/chunks/oitFragment-BypZDJVo.esm.min.js.map +1 -0
  324. package/dist/chunks/oitFragment-D3g8w3hO.esm.js +1078 -0
  325. package/dist/chunks/oitFragment-D3g8w3hO.esm.js.map +1 -0
  326. package/dist/chunks/oitFragment-Db3h4DV5.esm.min.js +2 -0
  327. package/dist/chunks/oitFragment-Db3h4DV5.esm.min.js.map +1 -0
  328. package/dist/chunks/oitFragment-tQJLudg5.esm.js +1240 -0
  329. package/dist/chunks/oitFragment-tQJLudg5.esm.js.map +1 -0
  330. package/dist/chunks/pass.fragment-C8CWeVkM.esm.js +15 -0
  331. package/dist/chunks/pass.fragment-C8CWeVkM.esm.js.map +1 -0
  332. package/dist/chunks/pass.fragment-CSK2ynPe.esm.js +15 -0
  333. package/dist/chunks/pass.fragment-CSK2ynPe.esm.js.map +1 -0
  334. package/dist/chunks/pass.fragment-CdgLWa1Q.esm.min.js +2 -0
  335. package/dist/chunks/pass.fragment-CdgLWa1Q.esm.min.js.map +1 -0
  336. package/dist/chunks/pass.fragment-ONNyQPrD.esm.min.js +2 -0
  337. package/dist/chunks/pass.fragment-ONNyQPrD.esm.min.js.map +1 -0
  338. package/dist/chunks/pbr.fragment-Be9mZgL7.esm.js +3269 -0
  339. package/dist/chunks/pbr.fragment-Be9mZgL7.esm.js.map +1 -0
  340. package/dist/chunks/pbr.fragment-C13t4f7Z.esm.min.js +2 -0
  341. package/dist/chunks/pbr.fragment-C13t4f7Z.esm.min.js.map +1 -0
  342. package/dist/chunks/pbr.fragment-CiAe6mgr.esm.js +3222 -0
  343. package/dist/chunks/pbr.fragment-CiAe6mgr.esm.js.map +1 -0
  344. package/dist/chunks/pbr.fragment-I66pqwoX.esm.min.js +2 -0
  345. package/dist/chunks/pbr.fragment-I66pqwoX.esm.min.js.map +1 -0
  346. package/dist/chunks/pbr.vertex-BlqPEcZe.esm.js +223 -0
  347. package/dist/chunks/pbr.vertex-BlqPEcZe.esm.js.map +1 -0
  348. package/dist/chunks/pbr.vertex-C1r_QFvZ.esm.min.js +2 -0
  349. package/dist/chunks/pbr.vertex-C1r_QFvZ.esm.min.js.map +1 -0
  350. package/dist/chunks/pbr.vertex-DE9NTHal.esm.min.js +2 -0
  351. package/dist/chunks/pbr.vertex-DE9NTHal.esm.min.js.map +1 -0
  352. package/dist/chunks/pbr.vertex-oQpu2zia.esm.js +348 -0
  353. package/dist/chunks/pbr.vertex-oQpu2zia.esm.js.map +1 -0
  354. package/dist/chunks/postprocess.vertex-D3XLqa14.esm.js +20 -0
  355. package/dist/chunks/postprocess.vertex-D3XLqa14.esm.js.map +1 -0
  356. package/dist/chunks/postprocess.vertex-IkQbrBQH.esm.min.js +2 -0
  357. package/dist/chunks/postprocess.vertex-IkQbrBQH.esm.min.js.map +1 -0
  358. package/dist/chunks/rawTexture-BVf9vm87.esm.js +191 -0
  359. package/dist/chunks/rawTexture-BVf9vm87.esm.js.map +1 -0
  360. package/dist/chunks/rawTexture-CNxyCiVq.esm.min.js +2 -0
  361. package/dist/chunks/rawTexture-CNxyCiVq.esm.min.js.map +1 -0
  362. package/dist/chunks/ray-BLVbie8S.esm.min.js +2 -0
  363. package/dist/chunks/ray-BLVbie8S.esm.min.js.map +1 -0
  364. package/dist/chunks/ray-C7H9vp-x.esm.js +946 -0
  365. package/dist/chunks/ray-C7H9vp-x.esm.js.map +1 -0
  366. package/dist/chunks/rgbdDecode.fragment-9dPOcBOA.esm.min.js +2 -0
  367. package/dist/chunks/rgbdDecode.fragment-9dPOcBOA.esm.min.js.map +1 -0
  368. package/dist/chunks/rgbdDecode.fragment-ApyH83v_.esm.js +13 -0
  369. package/dist/chunks/rgbdDecode.fragment-ApyH83v_.esm.js.map +1 -0
  370. package/dist/chunks/rgbdDecode.fragment-Bt75XOUV.esm.min.js +2 -0
  371. package/dist/chunks/rgbdDecode.fragment-Bt75XOUV.esm.min.js.map +1 -0
  372. package/dist/chunks/rgbdDecode.fragment-DDIJs9ID.esm.js +13 -0
  373. package/dist/chunks/rgbdDecode.fragment-DDIJs9ID.esm.js.map +1 -0
  374. package/dist/chunks/rgbdEncode.fragment-CSquf6K4.esm.js +13 -0
  375. package/dist/chunks/rgbdEncode.fragment-CSquf6K4.esm.js.map +1 -0
  376. package/dist/chunks/rgbdEncode.fragment-Cpudy2qT.esm.js +13 -0
  377. package/dist/chunks/rgbdEncode.fragment-Cpudy2qT.esm.js.map +1 -0
  378. package/dist/chunks/rgbdEncode.fragment-DZs59_tV.esm.min.js +2 -0
  379. package/dist/chunks/rgbdEncode.fragment-DZs59_tV.esm.min.js.map +1 -0
  380. package/dist/chunks/rgbdEncode.fragment-Djxd-azW.esm.min.js +2 -0
  381. package/dist/chunks/rgbdEncode.fragment-Djxd-azW.esm.min.js.map +1 -0
  382. package/dist/chunks/splatFileLoader-BkExyfY6.esm.js +3379 -0
  383. package/dist/chunks/splatFileLoader-BkExyfY6.esm.js.map +1 -0
  384. package/dist/chunks/splatFileLoader-DLc_wKu4.esm.min.js +2 -0
  385. package/dist/chunks/splatFileLoader-DLc_wKu4.esm.min.js.map +1 -0
  386. package/dist/chunks/spotLight-CFGRpcFc.esm.js +701 -0
  387. package/dist/chunks/spotLight-CFGRpcFc.esm.js.map +1 -0
  388. package/dist/chunks/spotLight-z5HIEQmM.esm.min.js +2 -0
  389. package/dist/chunks/spotLight-z5HIEQmM.esm.min.js.map +1 -0
  390. package/dist/chunks/standardMaterial-B5u9Vzil.esm.min.js +2 -0
  391. package/dist/chunks/standardMaterial-B5u9Vzil.esm.min.js.map +1 -0
  392. package/dist/chunks/standardMaterial-BJzDZ72T.esm.js +1806 -0
  393. package/dist/chunks/standardMaterial-BJzDZ72T.esm.js.map +1 -0
  394. package/dist/chunks/stlFileLoader-B3Y6u4L6.esm.min.js +2 -0
  395. package/dist/chunks/stlFileLoader-B3Y6u4L6.esm.min.js.map +1 -0
  396. package/dist/chunks/stlFileLoader-Bd1GgkYU.esm.js +238 -0
  397. package/dist/chunks/stlFileLoader-Bd1GgkYU.esm.js.map +1 -0
  398. package/dist/chunks/tgaTextureLoader-BD_A6gyw.esm.min.js +2 -0
  399. package/dist/chunks/tgaTextureLoader-BD_A6gyw.esm.min.js.map +1 -0
  400. package/dist/chunks/tgaTextureLoader-DnUiJRBO.esm.js +349 -0
  401. package/dist/chunks/tgaTextureLoader-DnUiJRBO.esm.js.map +1 -0
  402. package/dist/chunks/thinEngine-CRNAFHqA.esm.min.js +2 -0
  403. package/dist/chunks/thinEngine-CRNAFHqA.esm.min.js.map +1 -0
  404. package/dist/chunks/thinEngine-DGyFDxzW.esm.js +3853 -0
  405. package/dist/chunks/thinEngine-DGyFDxzW.esm.js.map +1 -0
  406. package/dist/chunks/thinInstanceMesh-B-f1KNB2.esm.min.js +2 -0
  407. package/dist/chunks/thinInstanceMesh-B-f1KNB2.esm.min.js.map +1 -0
  408. package/dist/chunks/thinInstanceMesh-D-cofgbF.esm.js +314 -0
  409. package/dist/chunks/thinInstanceMesh-D-cofgbF.esm.js.map +1 -0
  410. package/dist/chunks/vertexColorMixing-BUqoiJkS.esm.min.js +2 -0
  411. package/dist/chunks/vertexColorMixing-BUqoiJkS.esm.min.js.map +1 -0
  412. package/dist/chunks/vertexColorMixing-CBpXxGvM.esm.js +421 -0
  413. package/dist/chunks/vertexColorMixing-CBpXxGvM.esm.js.map +1 -0
  414. package/dist/chunks/vertexColorMixing-ChUhO7eS.esm.js +531 -0
  415. package/dist/chunks/vertexColorMixing-ChUhO7eS.esm.js.map +1 -0
  416. package/dist/chunks/vertexColorMixing-DbmkfWMo.esm.min.js +2 -0
  417. package/dist/chunks/vertexColorMixing-DbmkfWMo.esm.min.js.map +1 -0
  418. package/dist/chunks/webgpuEngine-DqprhQ4L.esm.js +11538 -0
  419. package/dist/chunks/webgpuEngine-DqprhQ4L.esm.js.map +1 -0
  420. package/dist/chunks/webgpuEngine-LpKjcEuV.esm.min.js +2 -0
  421. package/dist/chunks/webgpuEngine-LpKjcEuV.esm.min.js.map +1 -0
  422. package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
  423. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
  424. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
  425. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
  426. package/lib/index.d.ts +591 -0
  427. package/lib/index.js +2165 -0
  428. package/lib/index.js.map +1 -0
  429. package/package.json +19 -28
  430. package/readme.md +28 -28
  431. package/configuration/configuration.d.ts +0 -107
  432. package/configuration/configuration.js +0 -16
  433. package/configuration/configuration.js.map +0 -1
  434. package/configuration/configurationCompatibility.d.ts +0 -8
  435. package/configuration/configurationCompatibility.js +0 -66
  436. package/configuration/configurationCompatibility.js.map +0 -1
  437. package/configuration/configurationContainer.d.ts +0 -10
  438. package/configuration/configurationContainer.js +0 -10
  439. package/configuration/configurationContainer.js.map +0 -1
  440. package/configuration/globals.d.ts +0 -6
  441. package/configuration/globals.js +0 -18
  442. package/configuration/globals.js.map +0 -1
  443. package/configuration/index.d.ts +0 -2
  444. package/configuration/index.js +0 -4
  445. package/configuration/index.js.map +0 -1
  446. package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
  447. package/configuration/interfaces/cameraConfiguration.js +0 -2
  448. package/configuration/interfaces/cameraConfiguration.js.map +0 -1
  449. package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
  450. package/configuration/interfaces/colorGradingConfiguration.js +0 -2
  451. package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
  452. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
  453. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
  454. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
  455. package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
  456. package/configuration/interfaces/environmentMapConfiguration.js +0 -2
  457. package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
  458. package/configuration/interfaces/groundConfiguration.d.ts +0 -24
  459. package/configuration/interfaces/groundConfiguration.js +0 -2
  460. package/configuration/interfaces/groundConfiguration.js.map +0 -1
  461. package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
  462. package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
  463. package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
  464. package/configuration/interfaces/index.d.ts +0 -15
  465. package/configuration/interfaces/index.js +0 -16
  466. package/configuration/interfaces/index.js.map +0 -1
  467. package/configuration/interfaces/lightConfiguration.d.ts +0 -60
  468. package/configuration/interfaces/lightConfiguration.js +0 -2
  469. package/configuration/interfaces/lightConfiguration.js.map +0 -1
  470. package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
  471. package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
  472. package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
  473. package/configuration/interfaces/modelConfiguration.d.ts +0 -65
  474. package/configuration/interfaces/modelConfiguration.js +0 -2
  475. package/configuration/interfaces/modelConfiguration.js.map +0 -1
  476. package/configuration/interfaces/observersConfiguration.d.ts +0 -5
  477. package/configuration/interfaces/observersConfiguration.js +0 -2
  478. package/configuration/interfaces/observersConfiguration.js.map +0 -1
  479. package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
  480. package/configuration/interfaces/sceneConfiguration.js +0 -2
  481. package/configuration/interfaces/sceneConfiguration.js.map +0 -1
  482. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
  483. package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
  484. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
  485. package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
  486. package/configuration/interfaces/skyboxConfiguration.js +0 -2
  487. package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
  488. package/configuration/interfaces/templateConfiguration.d.ts +0 -67
  489. package/configuration/interfaces/templateConfiguration.js +0 -2
  490. package/configuration/interfaces/templateConfiguration.js.map +0 -1
  491. package/configuration/interfaces/vrConfiguration.d.ts +0 -16
  492. package/configuration/interfaces/vrConfiguration.js +0 -2
  493. package/configuration/interfaces/vrConfiguration.js.map +0 -1
  494. package/configuration/loader.d.ts +0 -4
  495. package/configuration/loader.js +0 -17
  496. package/configuration/loader.js.map +0 -1
  497. package/configuration/mappers.d.ts +0 -43
  498. package/configuration/mappers.js +0 -193
  499. package/configuration/mappers.js.map +0 -1
  500. package/configuration/renderOnlyLoader.d.ts +0 -33
  501. package/configuration/renderOnlyLoader.js +0 -162
  502. package/configuration/renderOnlyLoader.js.map +0 -1
  503. package/configuration/types/default.d.ts +0 -6
  504. package/configuration/types/default.js +0 -121
  505. package/configuration/types/default.js.map +0 -1
  506. package/configuration/types/environmentMap.d.ts +0 -5
  507. package/configuration/types/environmentMap.js +0 -14
  508. package/configuration/types/environmentMap.js.map +0 -1
  509. package/configuration/types/extended.d.ts +0 -6
  510. package/configuration/types/extended.js +0 -317
  511. package/configuration/types/extended.js.map +0 -1
  512. package/configuration/types/index.d.ts +0 -14
  513. package/configuration/types/index.js +0 -51
  514. package/configuration/types/index.js.map +0 -1
  515. package/configuration/types/minimal.d.ts +0 -6
  516. package/configuration/types/minimal.js +0 -43
  517. package/configuration/types/minimal.js.map +0 -1
  518. package/configuration/types/renderOnlyDefault.d.ts +0 -30
  519. package/configuration/types/renderOnlyDefault.js +0 -31
  520. package/configuration/types/renderOnlyDefault.js.map +0 -1
  521. package/configuration/types/shadowLight.d.ts +0 -9
  522. package/configuration/types/shadowLight.js +0 -64
  523. package/configuration/types/shadowLight.js.map +0 -1
  524. package/helper/index.d.ts +0 -29
  525. package/helper/index.js +0 -66
  526. package/helper/index.js.map +0 -1
  527. package/index.d.ts +0 -30
  528. package/index.js +0 -46
  529. package/index.js.map +0 -1
  530. package/initializer.d.ts +0 -11
  531. package/initializer.js +0 -35
  532. package/initializer.js.map +0 -1
  533. package/interfaces.d.ts +0 -5
  534. package/interfaces.js +0 -7
  535. package/interfaces.js.map +0 -1
  536. package/labs/environmentSerializer.d.ts +0 -126
  537. package/labs/environmentSerializer.js +0 -191
  538. package/labs/environmentSerializer.js.map +0 -1
  539. package/labs/texture.d.ts +0 -183
  540. package/labs/texture.js +0 -351
  541. package/labs/texture.js.map +0 -1
  542. package/labs/viewerLabs.d.ts +0 -51
  543. package/labs/viewerLabs.js +0 -134
  544. package/labs/viewerLabs.js.map +0 -1
  545. package/loader/modelLoader.d.ts +0 -56
  546. package/loader/modelLoader.js +0 -202
  547. package/loader/modelLoader.js.map +0 -1
  548. package/loader/plugins/applyMaterialConfig.d.ts +0 -12
  549. package/loader/plugins/applyMaterialConfig.js +0 -16
  550. package/loader/plugins/applyMaterialConfig.js.map +0 -1
  551. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
  552. package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
  553. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
  554. package/loader/plugins/index.d.ts +0 -19
  555. package/loader/plugins/index.js +0 -44
  556. package/loader/plugins/index.js.map +0 -1
  557. package/loader/plugins/loaderPlugin.d.ts +0 -24
  558. package/loader/plugins/loaderPlugin.js +0 -2
  559. package/loader/plugins/loaderPlugin.js.map +0 -1
  560. package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
  561. package/loader/plugins/msftLodLoaderPlugin.js +0 -21
  562. package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
  563. package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
  564. package/loader/plugins/telemetryLoaderPlugin.js +0 -36
  565. package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
  566. package/managers/observablesManager.d.ts +0 -66
  567. package/managers/observablesManager.js +0 -35
  568. package/managers/observablesManager.js.map +0 -1
  569. package/managers/sceneManager.d.ts +0 -245
  570. package/managers/sceneManager.js +0 -1375
  571. package/managers/sceneManager.js.map +0 -1
  572. package/managers/telemetryManager.d.ts +0 -78
  573. package/managers/telemetryManager.js +0 -117
  574. package/managers/telemetryManager.js.map +0 -1
  575. package/model/modelAnimation.d.ts +0 -215
  576. package/model/modelAnimation.js +0 -237
  577. package/model/modelAnimation.js.map +0 -1
  578. package/model/viewerModel.d.ts +0 -233
  579. package/model/viewerModel.js +0 -673
  580. package/model/viewerModel.js.map +0 -1
  581. package/optimizer/custom/extended.d.ts +0 -13
  582. package/optimizer/custom/extended.js +0 -101
  583. package/optimizer/custom/extended.js.map +0 -1
  584. package/optimizer/custom/index.d.ts +0 -9
  585. package/optimizer/custom/index.js +0 -26
  586. package/optimizer/custom/index.js.map +0 -1
  587. package/renderOnlyIndex.d.ts +0 -11
  588. package/renderOnlyIndex.js +0 -18
  589. package/renderOnlyIndex.js.map +0 -1
  590. package/templating/eventManager.d.ts +0 -35
  591. package/templating/eventManager.js +0 -66
  592. package/templating/eventManager.js.map +0 -1
  593. package/templating/plugins/hdButtonPlugin.d.ts +0 -9
  594. package/templating/plugins/hdButtonPlugin.js +0 -22
  595. package/templating/plugins/hdButtonPlugin.js.map +0 -1
  596. package/templating/plugins/printButton.d.ts +0 -9
  597. package/templating/plugins/printButton.js +0 -41
  598. package/templating/plugins/printButton.js.map +0 -1
  599. package/templating/templateManager.d.ts +0 -197
  600. package/templating/templateManager.js +0 -561
  601. package/templating/templateManager.js.map +0 -1
  602. package/templating/viewerTemplatePlugin.d.ts +0 -21
  603. package/templating/viewerTemplatePlugin.js +0 -69
  604. package/templating/viewerTemplatePlugin.js.map +0 -1
  605. package/viewer/defaultViewer.d.ts +0 -130
  606. package/viewer/defaultViewer.js +0 -672
  607. package/viewer/defaultViewer.js.map +0 -1
  608. package/viewer/renderOnlyViewer.d.ts +0 -9
  609. package/viewer/renderOnlyViewer.js +0 -46
  610. package/viewer/renderOnlyViewer.js.map +0 -1
  611. package/viewer/viewer.d.ts +0 -258
  612. package/viewer/viewer.js +0 -783
  613. package/viewer/viewer.js.map +0 -1
  614. package/viewer/viewerManager.d.ts +0 -58
  615. package/viewer/viewerManager.js +0 -91
  616. package/viewer/viewerManager.js.map +0 -1
  617. package/viewer/viewerWithTemplate.d.ts +0 -9
  618. package/viewer/viewerWithTemplate.js +0 -20
  619. package/viewer/viewerWithTemplate.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ import{M as t,L as e,a5 as n,V as a,j as s,aS as i,a7 as r,v as o}from"./index-B5KLkjYm.esm.min.js";t.prototype.thinInstanceAdd=function(t,n=!0){if(!this.getScene().getEngine().getCaps().instancedArrays)return e.Error("Thin Instances are not supported on this device as Instanced Array extension not supported"),-1;this._thinInstanceUpdateBufferSize("matrix",Array.isArray(t)?t.length:1);const a=this._thinInstanceDataStorage.instancesCount;if(Array.isArray(t))for(let e=0;e<t.length;++e)this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++,t[e],e===t.length-1&&n);else this.thinInstanceSetMatrixAt(this._thinInstanceDataStorage.instancesCount++,t,n);return a},t.prototype.thinInstanceAddSelf=function(t=!0){return this.thinInstanceAdd(n.IdentityReadOnly,t)},t.prototype.thinInstanceRegisterAttribute=function(t,e){t===a.ColorKind&&(t=a.ColorInstanceKind),this.removeVerticesData(t),this._thinInstanceInitializeUserStorage(),this._userThinInstanceBuffersStorage.strides[t]=e,this._userThinInstanceBuffersStorage.sizes[t]=e*Math.max(32,this._thinInstanceDataStorage.instancesCount),this._userThinInstanceBuffersStorage.data[t]=new Float32Array(this._userThinInstanceBuffersStorage.sizes[t]),this._userThinInstanceBuffersStorage.vertexBuffers[t]=new a(this.getEngine(),this._userThinInstanceBuffersStorage.data[t],t,!0,!1,e,!0),this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[t])},t.prototype.thinInstanceSetMatrixAt=function(t,e,n=!0){if(!this._thinInstanceDataStorage.matrixData||t>=this._thinInstanceDataStorage.instancesCount)return!1;const a=this._thinInstanceDataStorage.matrixData;return e.copyToArray(a,16*t),this._thinInstanceDataStorage.worldMatrices&&(this._thinInstanceDataStorage.worldMatrices[t]=e),n&&(this.thinInstanceBufferUpdated("matrix"),this.doNotSyncBoundingInfo||this.thinInstanceRefreshBoundingInfo(!1)),!0},t.prototype.thinInstanceSetAttributeAt=function(t,e,n,s=!0){return t===a.ColorKind&&(t=a.ColorInstanceKind),!(!this._userThinInstanceBuffersStorage||!this._userThinInstanceBuffersStorage.data[t]||e>=this._thinInstanceDataStorage.instancesCount)&&(this._thinInstanceUpdateBufferSize(t,0),this._userThinInstanceBuffersStorage.data[t].set(n,e*this._userThinInstanceBuffersStorage.strides[t]),s&&this.thinInstanceBufferUpdated(t),!0)},Object.defineProperty(t.prototype,"thinInstanceCount",{get:function(){return this._thinInstanceDataStorage.instancesCount},set:function(t){const e=this._thinInstanceDataStorage.matrixData??this.source?._thinInstanceDataStorage.matrixData;t<=(e?e.length/16:0)&&(this._thinInstanceDataStorage.instancesCount=t)},enumerable:!0,configurable:!0}),t.prototype._thinInstanceCreateMatrixBuffer=function(t,e,n=!0){const a=new s(this.getEngine(),e,!n,16,!1,!0);for(let e=0;e<4;e++)this.setVerticesBuffer(a.createVertexBuffer(t+e,4*e,4));return a},t.prototype.thinInstanceSetBuffer=function(t,e,n=0,s=!0){n=n||16,"matrix"===t?(this._thinInstanceDataStorage.matrixBuffer?.dispose(),this._thinInstanceDataStorage.matrixBuffer=null,this._thinInstanceDataStorage.matrixBufferSize=e?e.length:32*n,this._thinInstanceDataStorage.matrixData=e,this._thinInstanceDataStorage.worldMatrices=null,null!==e?(this._thinInstanceDataStorage.instancesCount=e.length/n,this._thinInstanceDataStorage.matrixBuffer=this._thinInstanceCreateMatrixBuffer("world",e,s),this.doNotSyncBoundingInfo||this.thinInstanceRefreshBoundingInfo(!1)):(this._thinInstanceDataStorage.instancesCount=0,this.doNotSyncBoundingInfo||this.refreshBoundingInfo())):"previousMatrix"===t?(this._thinInstanceDataStorage.previousMatrixBuffer?.dispose(),this._thinInstanceDataStorage.previousMatrixBuffer=null,this._thinInstanceDataStorage.previousMatrixData=e,null!==e&&(this._thinInstanceDataStorage.previousMatrixBuffer=this._thinInstanceCreateMatrixBuffer("previousWorld",e,s))):(t===a.ColorKind&&(t=a.ColorInstanceKind),null===e?this._userThinInstanceBuffersStorage?.data[t]&&(this.removeVerticesData(t),delete this._userThinInstanceBuffersStorage.data[t],delete this._userThinInstanceBuffersStorage.strides[t],delete this._userThinInstanceBuffersStorage.sizes[t],delete this._userThinInstanceBuffersStorage.vertexBuffers[t]):(this._thinInstanceInitializeUserStorage(),this._userThinInstanceBuffersStorage.data[t]=e,this._userThinInstanceBuffersStorage.strides[t]=n,this._userThinInstanceBuffersStorage.sizes[t]=e.length,this._userThinInstanceBuffersStorage.vertexBuffers[t]=new a(this.getEngine(),e,t,!s,!1,n,!0),this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[t])))},t.prototype.thinInstanceBufferUpdated=function(t){"matrix"===t?(this.thinInstanceAllowAutomaticStaticBufferRecreation&&this._thinInstanceDataStorage.matrixBuffer&&!this._thinInstanceDataStorage.matrixBuffer.isUpdatable()&&this._thinInstanceRecreateBuffer(t),this._thinInstanceDataStorage.matrixBuffer?.updateDirectly(this._thinInstanceDataStorage.matrixData,0,this._thinInstanceDataStorage.instancesCount)):"previousMatrix"===t?(this.thinInstanceAllowAutomaticStaticBufferRecreation&&this._thinInstanceDataStorage.previousMatrixBuffer&&!this._thinInstanceDataStorage.previousMatrixBuffer.isUpdatable()&&this._thinInstanceRecreateBuffer(t),this._thinInstanceDataStorage.previousMatrixBuffer?.updateDirectly(this._thinInstanceDataStorage.previousMatrixData,0,this._thinInstanceDataStorage.instancesCount)):(t===a.ColorKind&&(t=a.ColorInstanceKind),this._userThinInstanceBuffersStorage?.vertexBuffers[t]&&(this.thinInstanceAllowAutomaticStaticBufferRecreation&&!this._userThinInstanceBuffersStorage.vertexBuffers[t].isUpdatable()&&this._thinInstanceRecreateBuffer(t),this._userThinInstanceBuffersStorage.vertexBuffers[t].updateDirectly(this._userThinInstanceBuffersStorage.data[t],0)))},t.prototype.thinInstancePartialBufferUpdate=function(t,e,n){"matrix"===t?this._thinInstanceDataStorage.matrixBuffer&&this._thinInstanceDataStorage.matrixBuffer.updateDirectly(e,n):(t===a.ColorKind&&(t=a.ColorInstanceKind),this._userThinInstanceBuffersStorage?.vertexBuffers[t]&&this._userThinInstanceBuffersStorage.vertexBuffers[t].updateDirectly(e,n))},t.prototype.thinInstanceGetWorldMatrices=function(){if(!this._thinInstanceDataStorage.matrixData||!this._thinInstanceDataStorage.matrixBuffer)return[];const t=this._thinInstanceDataStorage.matrixData;if(!this._thinInstanceDataStorage.worldMatrices){this._thinInstanceDataStorage.worldMatrices=[];for(let e=0;e<this._thinInstanceDataStorage.instancesCount;++e)this._thinInstanceDataStorage.worldMatrices[e]=n.FromArray(t,16*e)}return this._thinInstanceDataStorage.worldMatrices},t.prototype.thinInstanceRefreshBoundingInfo=function(t=!1,e=!1,a=!1){if(!this._thinInstanceDataStorage.matrixData||!this._thinInstanceDataStorage.matrixBuffer)return;const s=this._thinInstanceDataStorage.boundingVectors;if(t||!this.rawBoundingInfo){s.length=0,this.refreshBoundingInfo(e,a);const t=this.getBoundingInfo();this.rawBoundingInfo=new i(t.minimum,t.maximum)}const h=this.getBoundingInfo(),f=this._thinInstanceDataStorage.matrixData;if(0===s.length)for(let t=0;t<h.boundingBox.vectors.length;++t)s.push(h.boundingBox.vectors[t].clone());r.Vector3[0].setAll(Number.POSITIVE_INFINITY),r.Vector3[1].setAll(Number.NEGATIVE_INFINITY);for(let t=0;t<this._thinInstanceDataStorage.instancesCount;++t){n.FromArrayToRef(f,16*t,r.Matrix[0]);for(let t=0;t<s.length;++t)o.TransformCoordinatesToRef(s[t],r.Matrix[0],r.Vector3[2]),r.Vector3[0].minimizeInPlace(r.Vector3[2]),r.Vector3[1].maximizeInPlace(r.Vector3[2])}h.reConstruct(r.Vector3[0],r.Vector3[1]),this._updateBoundingInfo()},t.prototype._thinInstanceRecreateBuffer=function(t,e=!0){"matrix"===t?(this._thinInstanceDataStorage.matrixBuffer?.dispose(),this._thinInstanceDataStorage.matrixBuffer=this._thinInstanceCreateMatrixBuffer("world",this._thinInstanceDataStorage.matrixData,e)):"previousMatrix"===t?this._scene.needsPreviousWorldMatrices&&(this._thinInstanceDataStorage.previousMatrixBuffer?.dispose(),this._thinInstanceDataStorage.previousMatrixBuffer=this._thinInstanceCreateMatrixBuffer("previousWorld",this._thinInstanceDataStorage.previousMatrixData??this._thinInstanceDataStorage.matrixData,e)):(t===a.ColorKind&&(t=a.ColorInstanceKind),this._userThinInstanceBuffersStorage.vertexBuffers[t]?.dispose(),this._userThinInstanceBuffersStorage.vertexBuffers[t]=new a(this.getEngine(),this._userThinInstanceBuffersStorage.data[t],t,!e,!1,this._userThinInstanceBuffersStorage.strides[t],!0),this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[t]))},t.prototype._thinInstanceUpdateBufferSize=function(t,e=1){t===a.ColorKind&&(t=a.ColorInstanceKind);const n="matrix"===t;if(!(n||this._userThinInstanceBuffersStorage&&this._userThinInstanceBuffersStorage.strides[t]))return;const s=n?16:this._userThinInstanceBuffersStorage.strides[t],i=n?this._thinInstanceDataStorage.matrixBufferSize:this._userThinInstanceBuffersStorage.sizes[t];let r=n?this._thinInstanceDataStorage.matrixData:this._userThinInstanceBuffersStorage.data[t];const o=(this._thinInstanceDataStorage.instancesCount+e)*s;let h=i;for(;h<o;)h*=2;if(!r||i!=h){if(r){const t=new Float32Array(h);t.set(r,0),r=t}else r=new Float32Array(h);n?(this._thinInstanceDataStorage.matrixBuffer?.dispose(),this._thinInstanceDataStorage.matrixBuffer=this._thinInstanceCreateMatrixBuffer("world",r,!1),this._thinInstanceDataStorage.matrixData=r,this._thinInstanceDataStorage.matrixBufferSize=h,this._scene.needsPreviousWorldMatrices&&!this._thinInstanceDataStorage.previousMatrixData&&(this._thinInstanceDataStorage.previousMatrixBuffer?.dispose(),this._thinInstanceDataStorage.previousMatrixBuffer=this._thinInstanceCreateMatrixBuffer("previousWorld",r,!1))):(this._userThinInstanceBuffersStorage.vertexBuffers[t]?.dispose(),this._userThinInstanceBuffersStorage.data[t]=r,this._userThinInstanceBuffersStorage.sizes[t]=h,this._userThinInstanceBuffersStorage.vertexBuffers[t]=new a(this.getEngine(),r,t,!0,!1,s,!0),this.setVerticesBuffer(this._userThinInstanceBuffersStorage.vertexBuffers[t]))}},t.prototype._thinInstanceInitializeUserStorage=function(){this._userThinInstanceBuffersStorage||(this._userThinInstanceBuffersStorage={data:{},sizes:{},vertexBuffers:{},strides:{}})},t.prototype._disposeThinInstanceSpecificData=function(){this._thinInstanceDataStorage?.matrixBuffer&&(this._thinInstanceDataStorage.matrixBuffer.dispose(),this._thinInstanceDataStorage.matrixBuffer=null)};
2
+ //# sourceMappingURL=thinInstanceMesh-B-f1KNB2.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinInstanceMesh-B-f1KNB2.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, a5 as Matrix, V as VertexBuffer, j as Buffer, aS as BoundingInfo, a7 as TmpVectors, v as Vector3 } from './index-5L5wXyrx.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-D-cofgbF.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinInstanceMesh-D-cofgbF.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{i as e}from"./index-B5KLkjYm.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) || defined(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) || defined(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#ifdef MORPHTARGETS_UV2\nattribute vec2 uv2_{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];vertexID+=1.0;\n#endif\n#ifdef MORPHTARGETS_UV2\nuv2Updated+=(readVector3FromRawSampler(i,vertexID).xy-uv2)*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#ifdef MORPHTARGETS_UV2\nuv2Updated+=(uv2_{X}-uv2)*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) || defined(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) || defined(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) || defined(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(PREPASS_VELOCITY_LINEAR)) && defined(BONES_VELOCITY_ENABLED)\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(uv2Updated,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-BUqoiJkS.esm.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertexColorMixing-BUqoiJkS.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) || defined(PREPASS_VELOCITY_LINEAR) || defined(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) || defined(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#ifdef MORPHTARGETS_UV2\nattribute vec2 uv2_{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];vertexID+=1.0;\n#endif\n#ifdef MORPHTARGETS_UV2\nuv2Updated+=(readVector3FromRawSampler(i,vertexID).xy-uv2)*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#ifdef MORPHTARGETS_UV2\nuv2Updated+=(uv2_{X}-uv2)*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) || defined(PREPASS_VELOCITY_LINEAR) || defined(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) || defined(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) || defined(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(PREPASS_VELOCITY_LINEAR)) && defined(BONES_VELOCITY_ENABLED)\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(uv2Updated,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,ixBCwBfD,EAAYC,qBAAyB,qBAxBtB,8wBCafD,EAAYC,qBAAyB,yBAbtB,+TCKfD,EAAYC,qBAAyB,yBALtB,iGCOfD,EAAYC,qBAAyB,sBAPtB,4KC0BfD,EAAYC,qBAAyB,2BA1BtB,21BCsBfD,EAAYC,qBAAyB,sBAtBtB,8sBCUfD,EAAYC,qBAAyB,oCAVtB,smBCqBfD,EAAYC,qBAAyB,8BArBtB,kYCOfD,EAAYC,qBAAyB,yBAPtB,sFCoCfD,EAAYC,qBAAyB,mBApCtB,8yCCoBfD,EAAYC,qBAAyB,gBApBtB,6tBCuDfD,EAAYC,qBAAyB,YAvDtB,27DCiCfD,EAAYC,qBAAyB,qBAjCtB,o9DCsCfD,EAAYC,qBAAyB,cAtCtB,88CCQfD,EAAYC,qBAAyB,sBARtB,4HC0BfD,EAAYC,qBAAyB,4BA1BtB,+sBCOfD,EAAYC,qBAAyB,WAPtB,4WCoBfD,EAAYC,qBAAyB,cApBtB,qwBCefD,EAAYC,qBAAyB,kBAftB"}