@babylonjs/viewer 7.40.1-alpha → 7.40.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (615) hide show
  1. package/configuration/configuration.d.ts +107 -0
  2. package/configuration/configuration.js +16 -0
  3. package/configuration/configuration.js.map +1 -0
  4. package/configuration/configurationCompatibility.d.ts +8 -0
  5. package/configuration/configurationCompatibility.js +66 -0
  6. package/configuration/configurationCompatibility.js.map +1 -0
  7. package/configuration/configurationContainer.d.ts +10 -0
  8. package/configuration/configurationContainer.js +10 -0
  9. package/configuration/configurationContainer.js.map +1 -0
  10. package/configuration/globals.d.ts +6 -0
  11. package/configuration/globals.js +18 -0
  12. package/configuration/globals.js.map +1 -0
  13. package/configuration/index.d.ts +2 -0
  14. package/configuration/index.js +4 -0
  15. package/configuration/index.js.map +1 -0
  16. package/configuration/interfaces/cameraConfiguration.d.ts +31 -0
  17. package/configuration/interfaces/cameraConfiguration.js +2 -0
  18. package/configuration/interfaces/cameraConfiguration.js.map +1 -0
  19. package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -0
  20. package/configuration/interfaces/colorGradingConfiguration.js +2 -0
  21. package/configuration/interfaces/colorGradingConfiguration.js.map +1 -0
  22. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -0
  23. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +2 -0
  24. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -0
  25. package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -0
  26. package/configuration/interfaces/environmentMapConfiguration.js +2 -0
  27. package/configuration/interfaces/environmentMapConfiguration.js.map +1 -0
  28. package/configuration/interfaces/groundConfiguration.d.ts +24 -0
  29. package/configuration/interfaces/groundConfiguration.js +2 -0
  30. package/configuration/interfaces/groundConfiguration.js.map +1 -0
  31. package/configuration/interfaces/imageProcessingConfiguration.d.ts +45 -0
  32. package/configuration/interfaces/imageProcessingConfiguration.js +2 -0
  33. package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -0
  34. package/configuration/interfaces/index.d.ts +15 -0
  35. package/configuration/interfaces/index.js +16 -0
  36. package/configuration/interfaces/index.js.map +1 -0
  37. package/configuration/interfaces/lightConfiguration.d.ts +60 -0
  38. package/configuration/interfaces/lightConfiguration.js +2 -0
  39. package/configuration/interfaces/lightConfiguration.js.map +1 -0
  40. package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -0
  41. package/configuration/interfaces/modelAnimationConfiguration.js +2 -0
  42. package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -0
  43. package/configuration/interfaces/modelConfiguration.d.ts +65 -0
  44. package/configuration/interfaces/modelConfiguration.js +2 -0
  45. package/configuration/interfaces/modelConfiguration.js.map +1 -0
  46. package/configuration/interfaces/observersConfiguration.d.ts +5 -0
  47. package/configuration/interfaces/observersConfiguration.js +2 -0
  48. package/configuration/interfaces/observersConfiguration.js.map +1 -0
  49. package/configuration/interfaces/sceneConfiguration.d.ts +48 -0
  50. package/configuration/interfaces/sceneConfiguration.js +2 -0
  51. package/configuration/interfaces/sceneConfiguration.js.map +1 -0
  52. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -0
  53. package/configuration/interfaces/sceneOptimizerConfiguration.js +2 -0
  54. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -0
  55. package/configuration/interfaces/skyboxConfiguration.d.ts +21 -0
  56. package/configuration/interfaces/skyboxConfiguration.js +2 -0
  57. package/configuration/interfaces/skyboxConfiguration.js.map +1 -0
  58. package/configuration/interfaces/templateConfiguration.d.ts +67 -0
  59. package/configuration/interfaces/templateConfiguration.js +2 -0
  60. package/configuration/interfaces/templateConfiguration.js.map +1 -0
  61. package/configuration/interfaces/vrConfiguration.d.ts +16 -0
  62. package/configuration/interfaces/vrConfiguration.js +2 -0
  63. package/configuration/interfaces/vrConfiguration.js.map +1 -0
  64. package/configuration/loader.d.ts +4 -0
  65. package/configuration/loader.js +17 -0
  66. package/configuration/loader.js.map +1 -0
  67. package/configuration/mappers.d.ts +43 -0
  68. package/configuration/mappers.js +193 -0
  69. package/configuration/mappers.js.map +1 -0
  70. package/configuration/renderOnlyLoader.d.ts +33 -0
  71. package/configuration/renderOnlyLoader.js +162 -0
  72. package/configuration/renderOnlyLoader.js.map +1 -0
  73. package/configuration/types/default.d.ts +6 -0
  74. package/configuration/types/default.js +121 -0
  75. package/configuration/types/default.js.map +1 -0
  76. package/configuration/types/environmentMap.d.ts +5 -0
  77. package/configuration/types/environmentMap.js +14 -0
  78. package/configuration/types/environmentMap.js.map +1 -0
  79. package/configuration/types/extended.d.ts +6 -0
  80. package/configuration/types/extended.js +317 -0
  81. package/configuration/types/extended.js.map +1 -0
  82. package/configuration/types/index.d.ts +14 -0
  83. package/configuration/types/index.js +51 -0
  84. package/configuration/types/index.js.map +1 -0
  85. package/configuration/types/minimal.d.ts +6 -0
  86. package/configuration/types/minimal.js +43 -0
  87. package/configuration/types/minimal.js.map +1 -0
  88. package/configuration/types/renderOnlyDefault.d.ts +30 -0
  89. package/configuration/types/renderOnlyDefault.js +31 -0
  90. package/configuration/types/renderOnlyDefault.js.map +1 -0
  91. package/configuration/types/shadowLight.d.ts +9 -0
  92. package/configuration/types/shadowLight.js +64 -0
  93. package/configuration/types/shadowLight.js.map +1 -0
  94. package/helper/index.d.ts +29 -0
  95. package/helper/index.js +66 -0
  96. package/helper/index.js.map +1 -0
  97. package/index.d.ts +30 -0
  98. package/index.js +46 -0
  99. package/index.js.map +1 -0
  100. package/initializer.d.ts +11 -0
  101. package/initializer.js +35 -0
  102. package/initializer.js.map +1 -0
  103. package/interfaces.d.ts +5 -0
  104. package/interfaces.js +7 -0
  105. package/interfaces.js.map +1 -0
  106. package/labs/environmentSerializer.d.ts +126 -0
  107. package/labs/environmentSerializer.js +191 -0
  108. package/labs/environmentSerializer.js.map +1 -0
  109. package/labs/texture.d.ts +183 -0
  110. package/labs/texture.js +351 -0
  111. package/labs/texture.js.map +1 -0
  112. package/labs/viewerLabs.d.ts +51 -0
  113. package/labs/viewerLabs.js +134 -0
  114. package/labs/viewerLabs.js.map +1 -0
  115. package/loader/modelLoader.d.ts +56 -0
  116. package/loader/modelLoader.js +202 -0
  117. package/loader/modelLoader.js.map +1 -0
  118. package/loader/plugins/applyMaterialConfig.d.ts +12 -0
  119. package/loader/plugins/applyMaterialConfig.js +16 -0
  120. package/loader/plugins/applyMaterialConfig.js.map +1 -0
  121. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -0
  122. package/loader/plugins/extendedMaterialLoaderPlugin.js +16 -0
  123. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -0
  124. package/loader/plugins/index.d.ts +19 -0
  125. package/loader/plugins/index.js +44 -0
  126. package/loader/plugins/index.js.map +1 -0
  127. package/loader/plugins/loaderPlugin.d.ts +24 -0
  128. package/loader/plugins/loaderPlugin.js +2 -0
  129. package/loader/plugins/loaderPlugin.js.map +1 -0
  130. package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -0
  131. package/loader/plugins/msftLodLoaderPlugin.js +21 -0
  132. package/loader/plugins/msftLodLoaderPlugin.js.map +1 -0
  133. package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -0
  134. package/loader/plugins/telemetryLoaderPlugin.js +36 -0
  135. package/loader/plugins/telemetryLoaderPlugin.js.map +1 -0
  136. package/managers/observablesManager.d.ts +66 -0
  137. package/managers/observablesManager.js +35 -0
  138. package/managers/observablesManager.js.map +1 -0
  139. package/managers/sceneManager.d.ts +245 -0
  140. package/managers/sceneManager.js +1375 -0
  141. package/managers/sceneManager.js.map +1 -0
  142. package/managers/telemetryManager.d.ts +78 -0
  143. package/managers/telemetryManager.js +117 -0
  144. package/managers/telemetryManager.js.map +1 -0
  145. package/model/modelAnimation.d.ts +215 -0
  146. package/model/modelAnimation.js +237 -0
  147. package/model/modelAnimation.js.map +1 -0
  148. package/model/viewerModel.d.ts +233 -0
  149. package/model/viewerModel.js +673 -0
  150. package/model/viewerModel.js.map +1 -0
  151. package/optimizer/custom/extended.d.ts +13 -0
  152. package/optimizer/custom/extended.js +101 -0
  153. package/optimizer/custom/extended.js.map +1 -0
  154. package/optimizer/custom/index.d.ts +9 -0
  155. package/optimizer/custom/index.js +26 -0
  156. package/optimizer/custom/index.js.map +1 -0
  157. package/package.json +28 -19
  158. package/readme.md +28 -28
  159. package/renderOnlyIndex.d.ts +11 -0
  160. package/renderOnlyIndex.js +18 -0
  161. package/renderOnlyIndex.js.map +1 -0
  162. package/templating/eventManager.d.ts +35 -0
  163. package/templating/eventManager.js +66 -0
  164. package/templating/eventManager.js.map +1 -0
  165. package/templating/plugins/hdButtonPlugin.d.ts +9 -0
  166. package/templating/plugins/hdButtonPlugin.js +22 -0
  167. package/templating/plugins/hdButtonPlugin.js.map +1 -0
  168. package/templating/plugins/printButton.d.ts +9 -0
  169. package/templating/plugins/printButton.js +41 -0
  170. package/templating/plugins/printButton.js.map +1 -0
  171. package/templating/templateManager.d.ts +197 -0
  172. package/templating/templateManager.js +561 -0
  173. package/templating/templateManager.js.map +1 -0
  174. package/templating/viewerTemplatePlugin.d.ts +21 -0
  175. package/templating/viewerTemplatePlugin.js +69 -0
  176. package/templating/viewerTemplatePlugin.js.map +1 -0
  177. package/viewer/defaultViewer.d.ts +130 -0
  178. package/viewer/defaultViewer.js +672 -0
  179. package/viewer/defaultViewer.js.map +1 -0
  180. package/viewer/renderOnlyViewer.d.ts +9 -0
  181. package/viewer/renderOnlyViewer.js +46 -0
  182. package/viewer/renderOnlyViewer.js.map +1 -0
  183. package/viewer/viewer.d.ts +258 -0
  184. package/viewer/viewer.js +783 -0
  185. package/viewer/viewer.js.map +1 -0
  186. package/viewer/viewerManager.d.ts +58 -0
  187. package/viewer/viewerManager.js +91 -0
  188. package/viewer/viewerManager.js.map +1 -0
  189. package/viewer/viewerWithTemplate.d.ts +9 -0
  190. package/viewer/viewerWithTemplate.js +20 -0
  191. package/viewer/viewerWithTemplate.js.map +1 -0
  192. package/assets/photoStudio.env +0 -0
  193. package/dist/babylon-viewer.esm.js +0 -2
  194. package/dist/babylon-viewer.esm.js.map +0 -1
  195. package/dist/babylon-viewer.esm.min.js +0 -2
  196. package/dist/babylon-viewer.esm.min.js.map +0 -1
  197. package/dist/chunks/EXT_lights_ies-gxFyrTPG.esm.min.js +0 -2
  198. package/dist/chunks/EXT_lights_ies-gxFyrTPG.esm.min.js.map +0 -1
  199. package/dist/chunks/EXT_lights_ies-pE68tmBj.esm.js +0 -84
  200. package/dist/chunks/EXT_lights_ies-pE68tmBj.esm.js.map +0 -1
  201. package/dist/chunks/EXT_lights_image_based-B8Oal0Ur.esm.min.js +0 -2
  202. package/dist/chunks/EXT_lights_image_based-B8Oal0Ur.esm.min.js.map +0 -1
  203. package/dist/chunks/EXT_lights_image_based-CmP_ZGlF.esm.js +0 -171
  204. package/dist/chunks/EXT_lights_image_based-CmP_ZGlF.esm.js.map +0 -1
  205. package/dist/chunks/EXT_mesh_gpu_instancing-DSFpOud_.esm.min.js +0 -2
  206. package/dist/chunks/EXT_mesh_gpu_instancing-DSFpOud_.esm.min.js.map +0 -1
  207. package/dist/chunks/EXT_mesh_gpu_instancing-DksAVeyV.esm.js +0 -86
  208. package/dist/chunks/EXT_mesh_gpu_instancing-DksAVeyV.esm.js.map +0 -1
  209. package/dist/chunks/EXT_meshopt_compression-CNUItnkN.esm.min.js +0 -2
  210. package/dist/chunks/EXT_meshopt_compression-CNUItnkN.esm.min.js.map +0 -1
  211. package/dist/chunks/EXT_meshopt_compression-CeM-AELC.esm.js +0 -134
  212. package/dist/chunks/EXT_meshopt_compression-CeM-AELC.esm.js.map +0 -1
  213. package/dist/chunks/EXT_texture_avif-BWOJV_Yf.esm.js +0 -44
  214. package/dist/chunks/EXT_texture_avif-BWOJV_Yf.esm.js.map +0 -1
  215. package/dist/chunks/EXT_texture_avif-CSTfqZHT.esm.min.js +0 -2
  216. package/dist/chunks/EXT_texture_avif-CSTfqZHT.esm.min.js.map +0 -1
  217. package/dist/chunks/EXT_texture_webp-4Pxv5jC9.esm.min.js +0 -2
  218. package/dist/chunks/EXT_texture_webp-4Pxv5jC9.esm.min.js.map +0 -1
  219. package/dist/chunks/EXT_texture_webp-C9og1YZL.esm.js +0 -43
  220. package/dist/chunks/EXT_texture_webp-C9og1YZL.esm.js.map +0 -1
  221. package/dist/chunks/ExtrasAsMetadata-BmFy6ZgN.esm.js +0 -64
  222. package/dist/chunks/ExtrasAsMetadata-BmFy6ZgN.esm.js.map +0 -1
  223. package/dist/chunks/ExtrasAsMetadata-BwYwFtj7.esm.min.js +0 -2
  224. package/dist/chunks/ExtrasAsMetadata-BwYwFtj7.esm.min.js.map +0 -1
  225. package/dist/chunks/KHR_animation_pointer-BM2iOlKg.esm.js +0 -352
  226. package/dist/chunks/KHR_animation_pointer-BM2iOlKg.esm.js.map +0 -1
  227. package/dist/chunks/KHR_animation_pointer-C7FvhqL3.esm.min.js +0 -2
  228. package/dist/chunks/KHR_animation_pointer-C7FvhqL3.esm.min.js.map +0 -1
  229. package/dist/chunks/KHR_draco_mesh_compression-BocaEHGh.esm.js +0 -617
  230. package/dist/chunks/KHR_draco_mesh_compression-BocaEHGh.esm.js.map +0 -1
  231. package/dist/chunks/KHR_draco_mesh_compression-CjRCmIUz.esm.min.js +0 -2
  232. package/dist/chunks/KHR_draco_mesh_compression-CjRCmIUz.esm.min.js.map +0 -1
  233. package/dist/chunks/KHR_interactivity-C_ndoQHo.esm.min.js +0 -2
  234. package/dist/chunks/KHR_interactivity-C_ndoQHo.esm.min.js.map +0 -1
  235. package/dist/chunks/KHR_interactivity-ClHXW_8S.esm.js +0 -4033
  236. package/dist/chunks/KHR_interactivity-ClHXW_8S.esm.js.map +0 -1
  237. package/dist/chunks/KHR_lights_punctual-D0u7ZFj4.esm.js +0 -581
  238. package/dist/chunks/KHR_lights_punctual-D0u7ZFj4.esm.js.map +0 -1
  239. package/dist/chunks/KHR_lights_punctual-Z509RdIo.esm.min.js +0 -2
  240. package/dist/chunks/KHR_lights_punctual-Z509RdIo.esm.min.js.map +0 -1
  241. package/dist/chunks/KHR_materials_anisotropy-Dz4vBqG3.esm.min.js +0 -2
  242. package/dist/chunks/KHR_materials_anisotropy-Dz4vBqG3.esm.min.js.map +0 -1
  243. package/dist/chunks/KHR_materials_anisotropy-VuLS4v3P.esm.js +0 -65
  244. package/dist/chunks/KHR_materials_anisotropy-VuLS4v3P.esm.js.map +0 -1
  245. package/dist/chunks/KHR_materials_clearcoat-DM7vCrC3.esm.min.js +0 -2
  246. package/dist/chunks/KHR_materials_clearcoat-DM7vCrC3.esm.min.js.map +0 -1
  247. package/dist/chunks/KHR_materials_clearcoat-Dt0nQ5Ky.esm.js +0 -96
  248. package/dist/chunks/KHR_materials_clearcoat-Dt0nQ5Ky.esm.js.map +0 -1
  249. package/dist/chunks/KHR_materials_diffuse_transmission-1Pa4ScwD.esm.min.js +0 -2
  250. package/dist/chunks/KHR_materials_diffuse_transmission-1Pa4ScwD.esm.min.js.map +0 -1
  251. package/dist/chunks/KHR_materials_diffuse_transmission-DIUHVeOQ.esm.js +0 -97
  252. package/dist/chunks/KHR_materials_diffuse_transmission-DIUHVeOQ.esm.js.map +0 -1
  253. package/dist/chunks/KHR_materials_dispersion-CMpGZsUw.esm.min.js +0 -2
  254. package/dist/chunks/KHR_materials_dispersion-CMpGZsUw.esm.min.js.map +0 -1
  255. package/dist/chunks/KHR_materials_dispersion-CeSj8nUI.esm.js +0 -62
  256. package/dist/chunks/KHR_materials_dispersion-CeSj8nUI.esm.js.map +0 -1
  257. package/dist/chunks/KHR_materials_emissive_strength-CQQX31qK.esm.js +0 -55
  258. package/dist/chunks/KHR_materials_emissive_strength-CQQX31qK.esm.js.map +0 -1
  259. package/dist/chunks/KHR_materials_emissive_strength-DH4A4kIp.esm.min.js +0 -2
  260. package/dist/chunks/KHR_materials_emissive_strength-DH4A4kIp.esm.min.js.map +0 -1
  261. package/dist/chunks/KHR_materials_ior-BTU1gw-j.esm.js +0 -64
  262. package/dist/chunks/KHR_materials_ior-BTU1gw-j.esm.js.map +0 -1
  263. package/dist/chunks/KHR_materials_ior-DyzPdK6b.esm.min.js +0 -2
  264. package/dist/chunks/KHR_materials_ior-DyzPdK6b.esm.min.js.map +0 -1
  265. package/dist/chunks/KHR_materials_iridescence-8ZgbULX5.esm.min.js +0 -2
  266. package/dist/chunks/KHR_materials_iridescence-8ZgbULX5.esm.min.js.map +0 -1
  267. package/dist/chunks/KHR_materials_iridescence-D2HCEadq.esm.js +0 -72
  268. package/dist/chunks/KHR_materials_iridescence-D2HCEadq.esm.js.map +0 -1
  269. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-C4K79VpA.esm.min.js +0 -2
  270. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-C4K79VpA.esm.min.js.map +0 -1
  271. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DtJVJ-gl.esm.js +0 -81
  272. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DtJVJ-gl.esm.js.map +0 -1
  273. package/dist/chunks/KHR_materials_sheen-CT4KjW_v.esm.js +0 -85
  274. package/dist/chunks/KHR_materials_sheen-CT4KjW_v.esm.js.map +0 -1
  275. package/dist/chunks/KHR_materials_sheen-DQt5abo-.esm.min.js +0 -2
  276. package/dist/chunks/KHR_materials_sheen-DQt5abo-.esm.min.js.map +0 -1
  277. package/dist/chunks/KHR_materials_specular-CCvL1awH.esm.min.js +0 -2
  278. package/dist/chunks/KHR_materials_specular-CCvL1awH.esm.min.js.map +0 -1
  279. package/dist/chunks/KHR_materials_specular-CgLKBQCa.esm.js +0 -75
  280. package/dist/chunks/KHR_materials_specular-CgLKBQCa.esm.js.map +0 -1
  281. package/dist/chunks/KHR_materials_transmission-B64oDwox.esm.js +0 -307
  282. package/dist/chunks/KHR_materials_transmission-B64oDwox.esm.js.map +0 -1
  283. package/dist/chunks/KHR_materials_transmission-C6yPYKde.esm.min.js +0 -2
  284. package/dist/chunks/KHR_materials_transmission-C6yPYKde.esm.min.js.map +0 -1
  285. package/dist/chunks/KHR_materials_unlit-BGPDq328.esm.js +0 -74
  286. package/dist/chunks/KHR_materials_unlit-BGPDq328.esm.js.map +0 -1
  287. package/dist/chunks/KHR_materials_unlit-Sz3qCEGr.esm.min.js +0 -2
  288. package/dist/chunks/KHR_materials_unlit-Sz3qCEGr.esm.min.js.map +0 -1
  289. package/dist/chunks/KHR_materials_variants-Cqw7xft3.esm.min.js +0 -2
  290. package/dist/chunks/KHR_materials_variants-Cqw7xft3.esm.min.js.map +0 -1
  291. package/dist/chunks/KHR_materials_variants-D7rYTNoB.esm.js +0 -262
  292. package/dist/chunks/KHR_materials_variants-D7rYTNoB.esm.js.map +0 -1
  293. package/dist/chunks/KHR_materials_volume-BBsNt0LM.esm.js +0 -87
  294. package/dist/chunks/KHR_materials_volume-BBsNt0LM.esm.js.map +0 -1
  295. package/dist/chunks/KHR_materials_volume-DfWO7kG_.esm.min.js +0 -2
  296. package/dist/chunks/KHR_materials_volume-DfWO7kG_.esm.min.js.map +0 -1
  297. package/dist/chunks/KHR_mesh_quantization-BiDGkiGh.esm.min.js +0 -2
  298. package/dist/chunks/KHR_mesh_quantization-BiDGkiGh.esm.min.js.map +0 -1
  299. package/dist/chunks/KHR_mesh_quantization-fE1qitjF.esm.js +0 -26
  300. package/dist/chunks/KHR_mesh_quantization-fE1qitjF.esm.js.map +0 -1
  301. package/dist/chunks/KHR_node_hoverability-DaOK-Y48.esm.min.js +0 -2
  302. package/dist/chunks/KHR_node_hoverability-DaOK-Y48.esm.min.js.map +0 -1
  303. package/dist/chunks/KHR_node_hoverability-glogCdHq.esm.js +0 -39
  304. package/dist/chunks/KHR_node_hoverability-glogCdHq.esm.js.map +0 -1
  305. package/dist/chunks/KHR_node_visibility-BCVXn2la.esm.min.js +0 -2
  306. package/dist/chunks/KHR_node_visibility-BCVXn2la.esm.min.js.map +0 -1
  307. package/dist/chunks/KHR_node_visibility-CCfVtnan.esm.js +0 -46
  308. package/dist/chunks/KHR_node_visibility-CCfVtnan.esm.js.map +0 -1
  309. package/dist/chunks/KHR_texture_basisu-_cpZJuOo.esm.min.js +0 -2
  310. package/dist/chunks/KHR_texture_basisu-_cpZJuOo.esm.min.js.map +0 -1
  311. package/dist/chunks/KHR_texture_basisu-nhRrTq0b.esm.js +0 -43
  312. package/dist/chunks/KHR_texture_basisu-nhRrTq0b.esm.js.map +0 -1
  313. package/dist/chunks/KHR_texture_transform-AgI_J0Ru.esm.js +0 -63
  314. package/dist/chunks/KHR_texture_transform-AgI_J0Ru.esm.js.map +0 -1
  315. package/dist/chunks/KHR_texture_transform-CgcA7bhJ.esm.min.js +0 -2
  316. package/dist/chunks/KHR_texture_transform-CgcA7bhJ.esm.min.js.map +0 -1
  317. package/dist/chunks/KHR_xmp_json_ld-C37VZwlU.esm.min.js +0 -2
  318. package/dist/chunks/KHR_xmp_json_ld-C37VZwlU.esm.min.js.map +0 -1
  319. package/dist/chunks/KHR_xmp_json_ld-Cm4z6qFH.esm.js +0 -51
  320. package/dist/chunks/KHR_xmp_json_ld-Cm4z6qFH.esm.js.map +0 -1
  321. package/dist/chunks/MSFT_audio_emitter-4EFTMS8D.esm.js +0 -2207
  322. package/dist/chunks/MSFT_audio_emitter-4EFTMS8D.esm.js.map +0 -1
  323. package/dist/chunks/MSFT_audio_emitter-Czn1DAbD.esm.min.js +0 -2
  324. package/dist/chunks/MSFT_audio_emitter-Czn1DAbD.esm.min.js.map +0 -1
  325. package/dist/chunks/MSFT_lod-Bn4FnO5A.esm.js +0 -337
  326. package/dist/chunks/MSFT_lod-Bn4FnO5A.esm.js.map +0 -1
  327. package/dist/chunks/MSFT_lod-DDB-SKXR.esm.min.js +0 -2
  328. package/dist/chunks/MSFT_lod-DDB-SKXR.esm.min.js.map +0 -1
  329. package/dist/chunks/MSFT_minecraftMesh-APRwcxWb.esm.min.js +0 -2
  330. package/dist/chunks/MSFT_minecraftMesh-APRwcxWb.esm.min.js.map +0 -1
  331. package/dist/chunks/MSFT_minecraftMesh-DPvby_FZ.esm.js +0 -46
  332. package/dist/chunks/MSFT_minecraftMesh-DPvby_FZ.esm.js.map +0 -1
  333. package/dist/chunks/MSFT_sRGBFactors-D33sXFGi.esm.js +0 -47
  334. package/dist/chunks/MSFT_sRGBFactors-D33sXFGi.esm.js.map +0 -1
  335. package/dist/chunks/MSFT_sRGBFactors-OsUqZSue.esm.min.js +0 -2
  336. package/dist/chunks/MSFT_sRGBFactors-OsUqZSue.esm.min.js.map +0 -1
  337. package/dist/chunks/animationGroup-BR3zskS8.esm.js +0 -2482
  338. package/dist/chunks/animationGroup-BR3zskS8.esm.js.map +0 -1
  339. package/dist/chunks/animationGroup-ChIp5GuO.esm.min.js +0 -2
  340. package/dist/chunks/animationGroup-ChIp5GuO.esm.min.js.map +0 -1
  341. package/dist/chunks/assetContainer-DLSDgjTx.esm.min.js +0 -2
  342. package/dist/chunks/assetContainer-DLSDgjTx.esm.min.js.map +0 -1
  343. package/dist/chunks/assetContainer-cm8rvay3.esm.js +0 -1720
  344. package/dist/chunks/assetContainer-cm8rvay3.esm.js.map +0 -1
  345. package/dist/chunks/audioEngine-Cx5dB73O.esm.js +0 -305
  346. package/dist/chunks/audioEngine-Cx5dB73O.esm.js.map +0 -1
  347. package/dist/chunks/audioEngine-hKZ2m0jY.esm.min.js +0 -2
  348. package/dist/chunks/audioEngine-hKZ2m0jY.esm.min.js.map +0 -1
  349. package/dist/chunks/bakedVertexAnimation-BCUFE4CP.esm.min.js +0 -2
  350. package/dist/chunks/bakedVertexAnimation-BCUFE4CP.esm.min.js.map +0 -1
  351. package/dist/chunks/bakedVertexAnimation-ByPKjjzz.esm.js +0 -114
  352. package/dist/chunks/bakedVertexAnimation-ByPKjjzz.esm.js.map +0 -1
  353. package/dist/chunks/basisTextureLoader-BIqCbGFg.esm.min.js +0 -2
  354. package/dist/chunks/basisTextureLoader-BIqCbGFg.esm.min.js.map +0 -1
  355. package/dist/chunks/basisTextureLoader-CT8X4ynA.esm.js +0 -600
  356. package/dist/chunks/basisTextureLoader-CT8X4ynA.esm.js.map +0 -1
  357. package/dist/chunks/dds-BDOPTCsA.esm.min.js +0 -2
  358. package/dist/chunks/dds-BDOPTCsA.esm.min.js.map +0 -1
  359. package/dist/chunks/dds-BYrGO6eI.esm.js +0 -540
  360. package/dist/chunks/dds-BYrGO6eI.esm.js.map +0 -1
  361. package/dist/chunks/ddsTextureLoader-BbrffKmM.esm.min.js +0 -2
  362. package/dist/chunks/ddsTextureLoader-BbrffKmM.esm.min.js.map +0 -1
  363. package/dist/chunks/ddsTextureLoader-C36kkIBH.esm.js +0 -88
  364. package/dist/chunks/ddsTextureLoader-C36kkIBH.esm.js.map +0 -1
  365. package/dist/chunks/decalFragment-07cq9QvS.esm.min.js +0 -2
  366. package/dist/chunks/decalFragment-07cq9QvS.esm.min.js.map +0 -1
  367. package/dist/chunks/decalFragment-B16Nfnl3.esm.js +0 -18
  368. package/dist/chunks/decalFragment-B16Nfnl3.esm.js.map +0 -1
  369. package/dist/chunks/default.fragment-BkjbMxBE.esm.min.js +0 -2
  370. package/dist/chunks/default.fragment-BkjbMxBE.esm.min.js.map +0 -1
  371. package/dist/chunks/default.fragment-C-8jVS2k.esm.min.js +0 -2
  372. package/dist/chunks/default.fragment-C-8jVS2k.esm.min.js.map +0 -1
  373. package/dist/chunks/default.fragment-C3Pectqi.esm.js +0 -515
  374. package/dist/chunks/default.fragment-C3Pectqi.esm.js.map +0 -1
  375. package/dist/chunks/default.fragment-D3LhG5le.esm.js +0 -446
  376. package/dist/chunks/default.fragment-D3LhG5le.esm.js.map +0 -1
  377. package/dist/chunks/default.vertex-CPx_2Z0S.esm.js +0 -181
  378. package/dist/chunks/default.vertex-CPx_2Z0S.esm.js.map +0 -1
  379. package/dist/chunks/default.vertex-CVMUuXku.esm.js +0 -202
  380. package/dist/chunks/default.vertex-CVMUuXku.esm.js.map +0 -1
  381. package/dist/chunks/default.vertex-CbVQZVXB.esm.min.js +0 -2
  382. package/dist/chunks/default.vertex-CbVQZVXB.esm.min.js.map +0 -1
  383. package/dist/chunks/default.vertex-S3Wv9p0Q.esm.min.js +0 -2
  384. package/dist/chunks/default.vertex-S3Wv9p0Q.esm.min.js.map +0 -1
  385. package/dist/chunks/defaultUboDeclaration-BdxOUPT0.esm.min.js +0 -2
  386. package/dist/chunks/defaultUboDeclaration-BdxOUPT0.esm.min.js.map +0 -1
  387. package/dist/chunks/defaultUboDeclaration-CUaZKOKG.esm.min.js +0 -2
  388. package/dist/chunks/defaultUboDeclaration-CUaZKOKG.esm.min.js.map +0 -1
  389. package/dist/chunks/defaultUboDeclaration-DdcmVbYg.esm.js +0 -15
  390. package/dist/chunks/defaultUboDeclaration-DdcmVbYg.esm.js.map +0 -1
  391. package/dist/chunks/defaultUboDeclaration-rLhenj1H.esm.js +0 -13
  392. package/dist/chunks/defaultUboDeclaration-rLhenj1H.esm.js.map +0 -1
  393. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +0 -11
  394. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +0 -1
  395. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +0 -2
  396. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +0 -1
  397. package/dist/chunks/dumpTools-CPmY0U7D.esm.js +0 -200
  398. package/dist/chunks/dumpTools-CPmY0U7D.esm.js.map +0 -1
  399. package/dist/chunks/dumpTools-DVDwJ2sz.esm.min.js +0 -2
  400. package/dist/chunks/dumpTools-DVDwJ2sz.esm.min.js.map +0 -1
  401. package/dist/chunks/engine-BqSrdURz.esm.min.js +0 -2
  402. package/dist/chunks/engine-BqSrdURz.esm.min.js.map +0 -1
  403. package/dist/chunks/engine-D_GgT2Nf.esm.js +0 -2216
  404. package/dist/chunks/engine-D_GgT2Nf.esm.js.map +0 -1
  405. package/dist/chunks/engine.common-CN1Lug5p.esm.js +0 -1162
  406. package/dist/chunks/engine.common-CN1Lug5p.esm.js.map +0 -1
  407. package/dist/chunks/engine.common-DgiXKhLy.esm.min.js +0 -2
  408. package/dist/chunks/engine.common-DgiXKhLy.esm.min.js.map +0 -1
  409. package/dist/chunks/envTextureLoader-BORNR9vu.esm.min.js +0 -2
  410. package/dist/chunks/envTextureLoader-BORNR9vu.esm.min.js.map +0 -1
  411. package/dist/chunks/envTextureLoader-DHwsXTfw.esm.js +0 -64
  412. package/dist/chunks/envTextureLoader-DHwsXTfw.esm.js.map +0 -1
  413. package/dist/chunks/environmentTextureTools-B2vnsFq-.esm.js +0 -382
  414. package/dist/chunks/environmentTextureTools-B2vnsFq-.esm.js.map +0 -1
  415. package/dist/chunks/environmentTextureTools-BYQHZH-c.esm.min.js +0 -2
  416. package/dist/chunks/environmentTextureTools-BYQHZH-c.esm.min.js.map +0 -1
  417. package/dist/chunks/exrTextureLoader-B8FQohBr.esm.js +0 -1683
  418. package/dist/chunks/exrTextureLoader-B8FQohBr.esm.js.map +0 -1
  419. package/dist/chunks/exrTextureLoader-D8xP0GLQ.esm.min.js +0 -2
  420. package/dist/chunks/exrTextureLoader-D8xP0GLQ.esm.min.js.map +0 -1
  421. package/dist/chunks/fogFragment-5YT33bDn.esm.js +0 -102
  422. package/dist/chunks/fogFragment-5YT33bDn.esm.js.map +0 -1
  423. package/dist/chunks/fogFragment-BOBZ2KwN.esm.min.js +0 -2
  424. package/dist/chunks/fogFragment-BOBZ2KwN.esm.min.js.map +0 -1
  425. package/dist/chunks/fogFragment-CLENZGuB.esm.js +0 -101
  426. package/dist/chunks/fogFragment-CLENZGuB.esm.js.map +0 -1
  427. package/dist/chunks/fogFragment-D9dudohA.esm.min.js +0 -2
  428. package/dist/chunks/fogFragment-D9dudohA.esm.min.js.map +0 -1
  429. package/dist/chunks/fresnelFunction-BkO99b6C.esm.js +0 -12
  430. package/dist/chunks/fresnelFunction-BkO99b6C.esm.js.map +0 -1
  431. package/dist/chunks/fresnelFunction-CqiLsMCu.esm.min.js +0 -2
  432. package/dist/chunks/fresnelFunction-CqiLsMCu.esm.min.js.map +0 -1
  433. package/dist/chunks/glTFLoader-CkL-dxBD.esm.min.js +0 -2
  434. package/dist/chunks/glTFLoader-CkL-dxBD.esm.min.js.map +0 -1
  435. package/dist/chunks/glTFLoader-IEHRfiUn.esm.js +0 -7586
  436. package/dist/chunks/glTFLoader-IEHRfiUn.esm.js.map +0 -1
  437. package/dist/chunks/glTFLoaderAnimation-CV32Nmqb.esm.js +0 -77
  438. package/dist/chunks/glTFLoaderAnimation-CV32Nmqb.esm.js.map +0 -1
  439. package/dist/chunks/glTFLoaderAnimation-Cq2ziV9o.esm.min.js +0 -2
  440. package/dist/chunks/glTFLoaderAnimation-Cq2ziV9o.esm.min.js.map +0 -1
  441. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
  442. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
  443. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
  444. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
  445. package/dist/chunks/harmonicsFunctions-B5QCEZvF.esm.js +0 -34
  446. package/dist/chunks/harmonicsFunctions-B5QCEZvF.esm.js.map +0 -1
  447. package/dist/chunks/harmonicsFunctions-BxLCgoIQ.esm.min.js +0 -2
  448. package/dist/chunks/harmonicsFunctions-BxLCgoIQ.esm.min.js.map +0 -1
  449. package/dist/chunks/harmonicsFunctions-Daxnf8NE.esm.min.js +0 -2
  450. package/dist/chunks/harmonicsFunctions-Daxnf8NE.esm.min.js.map +0 -1
  451. package/dist/chunks/harmonicsFunctions-UzG0C-sm.esm.js +0 -35
  452. package/dist/chunks/harmonicsFunctions-UzG0C-sm.esm.js.map +0 -1
  453. package/dist/chunks/hdrTextureLoader-BpVjKGyb.esm.min.js +0 -2
  454. package/dist/chunks/hdrTextureLoader-BpVjKGyb.esm.min.js.map +0 -1
  455. package/dist/chunks/hdrTextureLoader-DgW8CxRF.esm.js +0 -253
  456. package/dist/chunks/hdrTextureLoader-DgW8CxRF.esm.js.map +0 -1
  457. package/dist/chunks/helperFunctions-BFgvMG5S.esm.min.js +0 -2
  458. package/dist/chunks/helperFunctions-BFgvMG5S.esm.min.js.map +0 -1
  459. package/dist/chunks/helperFunctions-BatAhE6u.esm.js +0 -108
  460. package/dist/chunks/helperFunctions-BatAhE6u.esm.js.map +0 -1
  461. package/dist/chunks/helperFunctions-qECwmiwu.esm.min.js +0 -2
  462. package/dist/chunks/helperFunctions-qECwmiwu.esm.min.js.map +0 -1
  463. package/dist/chunks/helperFunctions-vbA-oTJx.esm.js +0 -80
  464. package/dist/chunks/helperFunctions-vbA-oTJx.esm.js.map +0 -1
  465. package/dist/chunks/iesTextureLoader-Ccd5pvbh.esm.min.js +0 -2
  466. package/dist/chunks/iesTextureLoader-Ccd5pvbh.esm.min.js.map +0 -1
  467. package/dist/chunks/iesTextureLoader-nMYnOfhm.esm.js +0 -189
  468. package/dist/chunks/iesTextureLoader-nMYnOfhm.esm.js.map +0 -1
  469. package/dist/chunks/index-BHIM4QBr.esm.min.js +0 -57
  470. package/dist/chunks/index-BHIM4QBr.esm.min.js.map +0 -1
  471. package/dist/chunks/index-CtkZLm9J.esm.js +0 -74717
  472. package/dist/chunks/index-CtkZLm9J.esm.js.map +0 -1
  473. package/dist/chunks/ktxTextureLoader-CkkvHzY3.esm.js +0 -814
  474. package/dist/chunks/ktxTextureLoader-CkkvHzY3.esm.js.map +0 -1
  475. package/dist/chunks/ktxTextureLoader-CwGlHia2.esm.min.js +0 -2
  476. package/dist/chunks/ktxTextureLoader-CwGlHia2.esm.min.js.map +0 -1
  477. package/dist/chunks/logDepthDeclaration-BiUSPlzz.esm.js +0 -35
  478. package/dist/chunks/logDepthDeclaration-BiUSPlzz.esm.js.map +0 -1
  479. package/dist/chunks/logDepthDeclaration-Bq2fzMbS.esm.js +0 -11
  480. package/dist/chunks/logDepthDeclaration-Bq2fzMbS.esm.js.map +0 -1
  481. package/dist/chunks/logDepthDeclaration-C8DJP16D.esm.min.js +0 -2
  482. package/dist/chunks/logDepthDeclaration-C8DJP16D.esm.min.js.map +0 -1
  483. package/dist/chunks/logDepthDeclaration-DJpvEdPG.esm.min.js +0 -2
  484. package/dist/chunks/logDepthDeclaration-DJpvEdPG.esm.min.js.map +0 -1
  485. package/dist/chunks/logDepthVertex-C00_obGd.esm.min.js +0 -2
  486. package/dist/chunks/logDepthVertex-C00_obGd.esm.min.js.map +0 -1
  487. package/dist/chunks/logDepthVertex-CYIGBMYd.esm.js +0 -77
  488. package/dist/chunks/logDepthVertex-CYIGBMYd.esm.js.map +0 -1
  489. package/dist/chunks/logDepthVertex-CxT8FVOf.esm.js +0 -81
  490. package/dist/chunks/logDepthVertex-CxT8FVOf.esm.js.map +0 -1
  491. package/dist/chunks/logDepthVertex-SyM_Fu5K.esm.min.js +0 -2
  492. package/dist/chunks/logDepthVertex-SyM_Fu5K.esm.min.js.map +0 -1
  493. package/dist/chunks/mainUVVaryingDeclaration-BaIG4IFB.esm.js +0 -11
  494. package/dist/chunks/mainUVVaryingDeclaration-BaIG4IFB.esm.js.map +0 -1
  495. package/dist/chunks/mainUVVaryingDeclaration-CQzOmEIM.esm.min.js +0 -2
  496. package/dist/chunks/mainUVVaryingDeclaration-CQzOmEIM.esm.min.js.map +0 -1
  497. package/dist/chunks/mainUVVaryingDeclaration-D100Qvmm.esm.min.js +0 -2
  498. package/dist/chunks/mainUVVaryingDeclaration-D100Qvmm.esm.min.js.map +0 -1
  499. package/dist/chunks/mainUVVaryingDeclaration-OSD7irdC.esm.js +0 -11
  500. package/dist/chunks/mainUVVaryingDeclaration-OSD7irdC.esm.js.map +0 -1
  501. package/dist/chunks/meshUboDeclaration--wzKOTOT.esm.min.js +0 -2
  502. package/dist/chunks/meshUboDeclaration--wzKOTOT.esm.min.js.map +0 -1
  503. package/dist/chunks/meshUboDeclaration-DIi9ZPDc.esm.js +0 -26
  504. package/dist/chunks/meshUboDeclaration-DIi9ZPDc.esm.js.map +0 -1
  505. package/dist/chunks/objFileLoader-Cda8pwUd.esm.js +0 -1338
  506. package/dist/chunks/objFileLoader-Cda8pwUd.esm.js.map +0 -1
  507. package/dist/chunks/objFileLoader-kzI-pZ8o.esm.min.js +0 -2
  508. package/dist/chunks/objFileLoader-kzI-pZ8o.esm.min.js.map +0 -1
  509. package/dist/chunks/oitFragment-4cP4dKVP.esm.min.js +0 -2
  510. package/dist/chunks/oitFragment-4cP4dKVP.esm.min.js.map +0 -1
  511. package/dist/chunks/oitFragment-Bz1w36ia.esm.js +0 -1078
  512. package/dist/chunks/oitFragment-Bz1w36ia.esm.js.map +0 -1
  513. package/dist/chunks/oitFragment-DUkW-kmb.esm.min.js +0 -2
  514. package/dist/chunks/oitFragment-DUkW-kmb.esm.min.js.map +0 -1
  515. package/dist/chunks/oitFragment-DiuTTpNa.esm.js +0 -1240
  516. package/dist/chunks/oitFragment-DiuTTpNa.esm.js.map +0 -1
  517. package/dist/chunks/pass.fragment-B8l5NRgR.esm.min.js +0 -2
  518. package/dist/chunks/pass.fragment-B8l5NRgR.esm.min.js.map +0 -1
  519. package/dist/chunks/pass.fragment-BF4UEoT8.esm.min.js +0 -2
  520. package/dist/chunks/pass.fragment-BF4UEoT8.esm.min.js.map +0 -1
  521. package/dist/chunks/pass.fragment-CD3_26yo.esm.js +0 -15
  522. package/dist/chunks/pass.fragment-CD3_26yo.esm.js.map +0 -1
  523. package/dist/chunks/pass.fragment-DfeELUEn.esm.js +0 -15
  524. package/dist/chunks/pass.fragment-DfeELUEn.esm.js.map +0 -1
  525. package/dist/chunks/pbr.fragment-BDylAp64.esm.min.js +0 -2
  526. package/dist/chunks/pbr.fragment-BDylAp64.esm.min.js.map +0 -1
  527. package/dist/chunks/pbr.fragment-C1qko419.esm.min.js +0 -2
  528. package/dist/chunks/pbr.fragment-C1qko419.esm.min.js.map +0 -1
  529. package/dist/chunks/pbr.fragment-EBVxSAEQ.esm.js +0 -3232
  530. package/dist/chunks/pbr.fragment-EBVxSAEQ.esm.js.map +0 -1
  531. package/dist/chunks/pbr.fragment-lt62m8b7.esm.js +0 -3273
  532. package/dist/chunks/pbr.fragment-lt62m8b7.esm.js.map +0 -1
  533. package/dist/chunks/pbr.vertex-CGRL_eY2.esm.js +0 -339
  534. package/dist/chunks/pbr.vertex-CGRL_eY2.esm.js.map +0 -1
  535. package/dist/chunks/pbr.vertex-CHv4zeYj.esm.min.js +0 -2
  536. package/dist/chunks/pbr.vertex-CHv4zeYj.esm.min.js.map +0 -1
  537. package/dist/chunks/pbr.vertex-Dk4h9ywZ.esm.min.js +0 -2
  538. package/dist/chunks/pbr.vertex-Dk4h9ywZ.esm.min.js.map +0 -1
  539. package/dist/chunks/pbr.vertex-DopP5mYu.esm.js +0 -214
  540. package/dist/chunks/pbr.vertex-DopP5mYu.esm.js.map +0 -1
  541. package/dist/chunks/postprocess.vertex-Bt30-Flh.esm.min.js +0 -2
  542. package/dist/chunks/postprocess.vertex-Bt30-Flh.esm.min.js.map +0 -1
  543. package/dist/chunks/postprocess.vertex-pLUOpXIY.esm.js +0 -20
  544. package/dist/chunks/postprocess.vertex-pLUOpXIY.esm.js.map +0 -1
  545. package/dist/chunks/rawTexture-78KJgWfq.esm.js +0 -191
  546. package/dist/chunks/rawTexture-78KJgWfq.esm.js.map +0 -1
  547. package/dist/chunks/rawTexture-CCCnj14W.esm.min.js +0 -2
  548. package/dist/chunks/rawTexture-CCCnj14W.esm.min.js.map +0 -1
  549. package/dist/chunks/ray-CfhmGTmj.esm.js +0 -946
  550. package/dist/chunks/ray-CfhmGTmj.esm.js.map +0 -1
  551. package/dist/chunks/ray-Du89cGmz.esm.min.js +0 -2
  552. package/dist/chunks/ray-Du89cGmz.esm.min.js.map +0 -1
  553. package/dist/chunks/rgbdDecode.fragment-BHAQKD_5.esm.js +0 -13
  554. package/dist/chunks/rgbdDecode.fragment-BHAQKD_5.esm.js.map +0 -1
  555. package/dist/chunks/rgbdDecode.fragment-CV6q4aIi.esm.js +0 -13
  556. package/dist/chunks/rgbdDecode.fragment-CV6q4aIi.esm.js.map +0 -1
  557. package/dist/chunks/rgbdDecode.fragment-DEu4F_6T.esm.min.js +0 -2
  558. package/dist/chunks/rgbdDecode.fragment-DEu4F_6T.esm.min.js.map +0 -1
  559. package/dist/chunks/rgbdDecode.fragment-DiJfgZKv.esm.min.js +0 -2
  560. package/dist/chunks/rgbdDecode.fragment-DiJfgZKv.esm.min.js.map +0 -1
  561. package/dist/chunks/rgbdEncode.fragment-CR30N0Mr.esm.js +0 -13
  562. package/dist/chunks/rgbdEncode.fragment-CR30N0Mr.esm.js.map +0 -1
  563. package/dist/chunks/rgbdEncode.fragment-CUE3DGC8.esm.min.js +0 -2
  564. package/dist/chunks/rgbdEncode.fragment-CUE3DGC8.esm.min.js.map +0 -1
  565. package/dist/chunks/rgbdEncode.fragment-DdFs5QJM.esm.js +0 -13
  566. package/dist/chunks/rgbdEncode.fragment-DdFs5QJM.esm.js.map +0 -1
  567. package/dist/chunks/rgbdEncode.fragment-omm81hdD.esm.min.js +0 -2
  568. package/dist/chunks/rgbdEncode.fragment-omm81hdD.esm.min.js.map +0 -1
  569. package/dist/chunks/splatFileLoader-BnaOhITn.esm.js +0 -3379
  570. package/dist/chunks/splatFileLoader-BnaOhITn.esm.js.map +0 -1
  571. package/dist/chunks/splatFileLoader-CuMIDOsR.esm.min.js +0 -2
  572. package/dist/chunks/splatFileLoader-CuMIDOsR.esm.min.js.map +0 -1
  573. package/dist/chunks/spotLight-Ca0-j1Op.esm.js +0 -701
  574. package/dist/chunks/spotLight-Ca0-j1Op.esm.js.map +0 -1
  575. package/dist/chunks/spotLight-DXuSbTaJ.esm.min.js +0 -2
  576. package/dist/chunks/spotLight-DXuSbTaJ.esm.min.js.map +0 -1
  577. package/dist/chunks/standardMaterial-DKyaZtcm.esm.js +0 -1805
  578. package/dist/chunks/standardMaterial-DKyaZtcm.esm.js.map +0 -1
  579. package/dist/chunks/standardMaterial-h3ccobBt.esm.min.js +0 -2
  580. package/dist/chunks/standardMaterial-h3ccobBt.esm.min.js.map +0 -1
  581. package/dist/chunks/stlFileLoader-CDv97liE.esm.js +0 -238
  582. package/dist/chunks/stlFileLoader-CDv97liE.esm.js.map +0 -1
  583. package/dist/chunks/stlFileLoader-e2ImyWaM.esm.min.js +0 -2
  584. package/dist/chunks/stlFileLoader-e2ImyWaM.esm.min.js.map +0 -1
  585. package/dist/chunks/tgaTextureLoader-DJaEph-Q.esm.js +0 -349
  586. package/dist/chunks/tgaTextureLoader-DJaEph-Q.esm.js.map +0 -1
  587. package/dist/chunks/tgaTextureLoader-slv-QvZW.esm.min.js +0 -2
  588. package/dist/chunks/tgaTextureLoader-slv-QvZW.esm.min.js.map +0 -1
  589. package/dist/chunks/thinEngine-Ue9ZAvRK.esm.js +0 -3848
  590. package/dist/chunks/thinEngine-Ue9ZAvRK.esm.js.map +0 -1
  591. package/dist/chunks/thinEngine-pihAbdON.esm.min.js +0 -2
  592. package/dist/chunks/thinEngine-pihAbdON.esm.min.js.map +0 -1
  593. package/dist/chunks/thinInstanceMesh-BgfKoejL.esm.min.js +0 -2
  594. package/dist/chunks/thinInstanceMesh-BgfKoejL.esm.min.js.map +0 -1
  595. package/dist/chunks/thinInstanceMesh-V41szD4h.esm.js +0 -314
  596. package/dist/chunks/thinInstanceMesh-V41szD4h.esm.js.map +0 -1
  597. package/dist/chunks/vertexColorMixing-CZsK7mYP.esm.min.js +0 -2
  598. package/dist/chunks/vertexColorMixing-CZsK7mYP.esm.min.js.map +0 -1
  599. package/dist/chunks/vertexColorMixing-DKVusFas.esm.js +0 -522
  600. package/dist/chunks/vertexColorMixing-DKVusFas.esm.js.map +0 -1
  601. package/dist/chunks/vertexColorMixing-DeZKI8QK.esm.js +0 -412
  602. package/dist/chunks/vertexColorMixing-DeZKI8QK.esm.js.map +0 -1
  603. package/dist/chunks/vertexColorMixing-axGN1U7X.esm.min.js +0 -2
  604. package/dist/chunks/vertexColorMixing-axGN1U7X.esm.min.js.map +0 -1
  605. package/dist/chunks/webgpuEngine-COis70hT.esm.js +0 -11533
  606. package/dist/chunks/webgpuEngine-COis70hT.esm.js.map +0 -1
  607. package/dist/chunks/webgpuEngine-Cx_GlShD.esm.min.js +0 -2
  608. package/dist/chunks/webgpuEngine-Cx_GlShD.esm.min.js.map +0 -1
  609. package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
  610. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
  611. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
  612. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
  613. package/lib/index.d.ts +0 -559
  614. package/lib/index.js +0 -2083
  615. package/lib/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"standardMaterial-h3ccobBt.esm.min.js","sources":["../../../../../dev/core/dist/Materials/standardMaterial.js"],"sourcesContent":["import { __decorate } from \"tslib\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { serialize, serializeAsColor3, expandToProperty, serializeAsFresnelParameters, serializeAsTexture } from \"../Misc/decorators\";\nimport { SmartArray } from \"../Misc/smartArray\";\nimport { Scene } from \"../scene\";\nimport { Matrix } from \"../Maths/math.vector\";\nimport { Color3 } from \"../Maths/math.color\";\nimport { VertexBuffer } from \"../Buffers/buffer\";\nimport { PrePassConfiguration } from \"./prePassConfiguration\";\nimport { ImageProcessingConfiguration } from \"./imageProcessingConfiguration\";\nimport { Material } from \"../Materials/material\";\nimport { MaterialDefines } from \"../Materials/materialDefines\";\nimport { PushMaterial } from \"./pushMaterial\";\nimport { Texture } from \"../Materials/Textures/texture\";\nimport { RegisterClass } from \"../Misc/typeStore\";\nimport { MaterialFlags } from \"./materialFlags\";\nimport { Constants } from \"../Engines/constants\";\nimport { EffectFallbacks } from \"./effectFallbacks\";\nimport { DetailMapConfiguration } from \"./material.detailMapConfiguration\";\nimport { addClipPlaneUniforms, bindClipPlane } from \"./clipPlaneMaterialHelper\";\nimport { BindBonesParameters, BindFogParameters, BindLights, BindLogDepth, BindMorphTargetParameters, BindTextureMatrix, HandleFallbacksForShadows, PrepareAttributesForBakedVertexAnimation, PrepareAttributesForBones, PrepareAttributesForInstances, PrepareAttributesForMorphTargets, PrepareDefinesForAttributes, PrepareDefinesForFrameBoundValues, PrepareDefinesForLights, PrepareDefinesForMergedUV, PrepareDefinesForMisc, PrepareDefinesForMultiview, PrepareDefinesForOIT, PrepareDefinesForPrePass, PrepareUniformsAndSamplersList, } from \"./materialHelper.functions\";\nimport { SerializationHelper } from \"../Misc/decorators.serialization\";\nimport { MaterialHelperGeometryRendering } from \"./materialHelper.geometryrendering\";\nconst onCreatedEffectParameters = { effect: null, subMesh: null };\n/** @internal */\nexport class StandardMaterialDefines extends MaterialDefines {\n /**\n * Initializes the Standard Material defines.\n * @param externalProperties The external properties\n */\n constructor(externalProperties) {\n super(externalProperties);\n this.MAINUV1 = false;\n this.MAINUV2 = false;\n this.MAINUV3 = false;\n this.MAINUV4 = false;\n this.MAINUV5 = false;\n this.MAINUV6 = false;\n this.DIFFUSE = false;\n this.DIFFUSEDIRECTUV = 0;\n this.BAKED_VERTEX_ANIMATION_TEXTURE = false;\n this.AMBIENT = false;\n this.AMBIENTDIRECTUV = 0;\n this.OPACITY = false;\n this.OPACITYDIRECTUV = 0;\n this.OPACITYRGB = false;\n this.REFLECTION = false;\n this.EMISSIVE = false;\n this.EMISSIVEDIRECTUV = 0;\n this.SPECULAR = false;\n this.SPECULARDIRECTUV = 0;\n this.BUMP = false;\n this.BUMPDIRECTUV = 0;\n this.PARALLAX = false;\n this.PARALLAX_RHS = false;\n this.PARALLAXOCCLUSION = false;\n this.SPECULAROVERALPHA = false;\n this.CLIPPLANE = false;\n this.CLIPPLANE2 = false;\n this.CLIPPLANE3 = false;\n this.CLIPPLANE4 = false;\n this.CLIPPLANE5 = false;\n this.CLIPPLANE6 = false;\n this.ALPHATEST = false;\n this.DEPTHPREPASS = false;\n this.ALPHAFROMDIFFUSE = false;\n this.POINTSIZE = false;\n this.FOG = false;\n this.SPECULARTERM = false;\n this.DIFFUSEFRESNEL = false;\n this.OPACITYFRESNEL = false;\n this.REFLECTIONFRESNEL = false;\n this.REFRACTIONFRESNEL = false;\n this.EMISSIVEFRESNEL = false;\n this.FRESNEL = false;\n this.NORMAL = false;\n this.TANGENT = false;\n this.UV1 = false;\n this.UV2 = false;\n this.UV3 = false;\n this.UV4 = false;\n this.UV5 = false;\n this.UV6 = false;\n this.VERTEXCOLOR = false;\n this.VERTEXALPHA = false;\n this.NUM_BONE_INFLUENCERS = 0;\n this.BonesPerMesh = 0;\n this.BONETEXTURE = false;\n this.BONES_VELOCITY_ENABLED = false;\n this.INSTANCES = false;\n this.THIN_INSTANCES = false;\n this.INSTANCESCOLOR = false;\n this.GLOSSINESS = false;\n this.ROUGHNESS = false;\n this.EMISSIVEASILLUMINATION = false;\n this.LINKEMISSIVEWITHDIFFUSE = false;\n this.REFLECTIONFRESNELFROMSPECULAR = false;\n this.LIGHTMAP = false;\n this.LIGHTMAPDIRECTUV = 0;\n this.OBJECTSPACE_NORMALMAP = false;\n this.USELIGHTMAPASSHADOWMAP = false;\n this.REFLECTIONMAP_3D = false;\n this.REFLECTIONMAP_SPHERICAL = false;\n this.REFLECTIONMAP_PLANAR = false;\n this.REFLECTIONMAP_CUBIC = false;\n this.USE_LOCAL_REFLECTIONMAP_CUBIC = false;\n this.USE_LOCAL_REFRACTIONMAP_CUBIC = false;\n this.REFLECTIONMAP_PROJECTION = false;\n this.REFLECTIONMAP_SKYBOX = false;\n this.REFLECTIONMAP_EXPLICIT = false;\n this.REFLECTIONMAP_EQUIRECTANGULAR = false;\n this.REFLECTIONMAP_EQUIRECTANGULAR_FIXED = false;\n this.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED = false;\n this.REFLECTIONMAP_OPPOSITEZ = false;\n this.INVERTCUBICMAP = false;\n this.LOGARITHMICDEPTH = false;\n this.REFRACTION = false;\n this.REFRACTIONMAP_3D = false;\n this.REFLECTIONOVERALPHA = false;\n this.TWOSIDEDLIGHTING = false;\n this.SHADOWFLOAT = false;\n this.MORPHTARGETS = false;\n this.MORPHTARGETS_NORMAL = false;\n this.MORPHTARGETS_TANGENT = false;\n this.MORPHTARGETS_UV = false;\n this.NUM_MORPH_INFLUENCERS = 0;\n this.MORPHTARGETS_TEXTURE = false;\n this.NONUNIFORMSCALING = false; // https://playground.babylonjs.com#V6DWIH\n this.PREMULTIPLYALPHA = false; // https://playground.babylonjs.com#LNVJJ7\n this.ALPHATEST_AFTERALLALPHACOMPUTATIONS = false;\n this.ALPHABLEND = true;\n this.PREPASS = false;\n this.PREPASS_COLOR = false;\n this.PREPASS_COLOR_INDEX = -1;\n this.PREPASS_IRRADIANCE = false;\n this.PREPASS_IRRADIANCE_INDEX = -1;\n this.PREPASS_ALBEDO = false;\n this.PREPASS_ALBEDO_INDEX = -1;\n this.PREPASS_ALBEDO_SQRT = false;\n this.PREPASS_ALBEDO_SQRT_INDEX = -1;\n this.PREPASS_DEPTH = false;\n this.PREPASS_DEPTH_INDEX = -1;\n this.PREPASS_SCREENSPACE_DEPTH = false;\n this.PREPASS_SCREENSPACE_DEPTH_INDEX = -1;\n this.PREPASS_NORMAL = false;\n this.PREPASS_NORMAL_INDEX = -1;\n this.PREPASS_NORMAL_WORLDSPACE = false;\n this.PREPASS_WORLD_NORMAL = false;\n this.PREPASS_WORLD_NORMAL_INDEX = -1;\n this.PREPASS_POSITION = false;\n this.PREPASS_POSITION_INDEX = -1;\n this.PREPASS_LOCAL_POSITION = false;\n this.PREPASS_LOCAL_POSITION_INDEX = -1;\n this.PREPASS_VELOCITY = false;\n this.PREPASS_VELOCITY_INDEX = -1;\n this.PREPASS_VELOCITY_LINEAR = false;\n this.PREPASS_VELOCITY_LINEAR_INDEX = -1;\n this.PREPASS_REFLECTIVITY = false;\n this.PREPASS_REFLECTIVITY_INDEX = -1;\n this.SCENE_MRT_COUNT = 0;\n this.RGBDLIGHTMAP = false;\n this.RGBDREFLECTION = false;\n this.RGBDREFRACTION = false;\n this.IMAGEPROCESSING = false;\n this.VIGNETTE = false;\n this.VIGNETTEBLENDMODEMULTIPLY = false;\n this.VIGNETTEBLENDMODEOPAQUE = false;\n this.TONEMAPPING = 0;\n this.CONTRAST = false;\n this.COLORCURVES = false;\n this.COLORGRADING = false;\n this.COLORGRADING3D = false;\n this.SAMPLER3DGREENDEPTH = false;\n this.SAMPLER3DBGRMAP = false;\n this.DITHER = false;\n this.IMAGEPROCESSINGPOSTPROCESS = false;\n this.SKIPFINALCOLORCLAMP = false;\n this.MULTIVIEW = false;\n this.ORDER_INDEPENDENT_TRANSPARENCY = false;\n this.ORDER_INDEPENDENT_TRANSPARENCY_16BITS = false;\n this.CAMERA_ORTHOGRAPHIC = false;\n this.CAMERA_PERSPECTIVE = false;\n /**\n * If the reflection texture on this material is in linear color space\n * @internal\n */\n this.IS_REFLECTION_LINEAR = false;\n /**\n * If the refraction texture on this material is in linear color space\n * @internal\n */\n this.IS_REFRACTION_LINEAR = false;\n this.EXPOSURE = false;\n this.DECAL_AFTER_DETAIL = false;\n this.rebuild();\n }\n setReflectionMode(modeToEnable) {\n const modes = [\n \"REFLECTIONMAP_CUBIC\",\n \"REFLECTIONMAP_EXPLICIT\",\n \"REFLECTIONMAP_PLANAR\",\n \"REFLECTIONMAP_PROJECTION\",\n \"REFLECTIONMAP_PROJECTION\",\n \"REFLECTIONMAP_SKYBOX\",\n \"REFLECTIONMAP_SPHERICAL\",\n \"REFLECTIONMAP_EQUIRECTANGULAR\",\n \"REFLECTIONMAP_EQUIRECTANGULAR_FIXED\",\n \"REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\",\n ];\n for (const mode of modes) {\n this[mode] = mode === modeToEnable;\n }\n }\n}\n/**\n * This is the default material used in Babylon. It is the best trade off between quality\n * and performances.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction\n */\nexport class StandardMaterial extends PushMaterial {\n /**\n * Gets the image processing configuration used either in this material.\n */\n get imageProcessingConfiguration() {\n return this._imageProcessingConfiguration;\n }\n /**\n * Sets the Default image processing configuration used either in the this material.\n *\n * If sets to null, the scene one is in use.\n */\n set imageProcessingConfiguration(value) {\n this._attachImageProcessingConfiguration(value);\n // Ensure the effect will be rebuilt.\n this._markAllSubMeshesAsTexturesDirty();\n }\n /**\n * Attaches a new image processing configuration to the Standard Material.\n * @param configuration\n */\n _attachImageProcessingConfiguration(configuration) {\n if (configuration === this._imageProcessingConfiguration) {\n return;\n }\n // Detaches observer\n if (this._imageProcessingConfiguration && this._imageProcessingObserver) {\n this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver);\n }\n // Pick the scene configuration if needed\n if (!configuration) {\n this._imageProcessingConfiguration = this.getScene().imageProcessingConfiguration;\n }\n else {\n this._imageProcessingConfiguration = configuration;\n }\n // Attaches observer\n if (this._imageProcessingConfiguration) {\n this._imageProcessingObserver = this._imageProcessingConfiguration.onUpdateParameters.add(() => {\n this._markAllSubMeshesAsImageProcessingDirty();\n });\n }\n }\n /**\n * Can this material render to prepass\n */\n get isPrePassCapable() {\n return !this.disableDepthWrite;\n }\n /**\n * Gets whether the color curves effect is enabled.\n */\n get cameraColorCurvesEnabled() {\n return this.imageProcessingConfiguration.colorCurvesEnabled;\n }\n /**\n * Sets whether the color curves effect is enabled.\n */\n set cameraColorCurvesEnabled(value) {\n this.imageProcessingConfiguration.colorCurvesEnabled = value;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n get cameraColorGradingEnabled() {\n return this.imageProcessingConfiguration.colorGradingEnabled;\n }\n /**\n * Gets whether the color grading effect is enabled.\n */\n set cameraColorGradingEnabled(value) {\n this.imageProcessingConfiguration.colorGradingEnabled = value;\n }\n /**\n * Gets whether tonemapping is enabled or not.\n */\n get cameraToneMappingEnabled() {\n return this._imageProcessingConfiguration.toneMappingEnabled;\n }\n /**\n * Sets whether tonemapping is enabled or not\n */\n set cameraToneMappingEnabled(value) {\n this._imageProcessingConfiguration.toneMappingEnabled = value;\n }\n /**\n * The camera exposure used on this material.\n * This property is here and not in the camera to allow controlling exposure without full screen post process.\n * This corresponds to a photographic exposure.\n */\n get cameraExposure() {\n return this._imageProcessingConfiguration.exposure;\n }\n /**\n * The camera exposure used on this material.\n * This property is here and not in the camera to allow controlling exposure without full screen post process.\n * This corresponds to a photographic exposure.\n */\n set cameraExposure(value) {\n this._imageProcessingConfiguration.exposure = value;\n }\n /**\n * Gets The camera contrast used on this material.\n */\n get cameraContrast() {\n return this._imageProcessingConfiguration.contrast;\n }\n /**\n * Sets The camera contrast used on this material.\n */\n set cameraContrast(value) {\n this._imageProcessingConfiguration.contrast = value;\n }\n /**\n * Gets the Color Grading 2D Lookup Texture.\n */\n get cameraColorGradingTexture() {\n return this._imageProcessingConfiguration.colorGradingTexture;\n }\n /**\n * Sets the Color Grading 2D Lookup Texture.\n */\n set cameraColorGradingTexture(value) {\n this._imageProcessingConfiguration.colorGradingTexture = value;\n }\n /**\n * The color grading curves provide additional color adjustmnent that is applied after any color grading transform (3D LUT).\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\n */\n get cameraColorCurves() {\n return this._imageProcessingConfiguration.colorCurves;\n }\n /**\n * The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT).\n * They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects.\n * These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image;\n * corresponding to low luminance, medium luminance, and high luminance areas respectively.\n */\n set cameraColorCurves(value) {\n this._imageProcessingConfiguration.colorCurves = value;\n }\n /**\n * Can this material render to several textures at once\n */\n get canRenderToMRT() {\n return true;\n }\n /**\n * Instantiates a new standard material.\n * This is the default material used in Babylon. It is the best trade off between quality\n * and performances.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction\n * @param name Define the name of the material in the scene\n * @param scene Define the scene the material belong to\n * @param forceGLSL Use the GLSL code generation for the shader (even on WebGPU). Default is false\n */\n constructor(name, scene, forceGLSL = false) {\n super(name, scene, undefined, forceGLSL || StandardMaterial.ForceGLSL);\n this._diffuseTexture = null;\n this._ambientTexture = null;\n this._opacityTexture = null;\n this._reflectionTexture = null;\n this._emissiveTexture = null;\n this._specularTexture = null;\n this._bumpTexture = null;\n this._lightmapTexture = null;\n this._refractionTexture = null;\n /**\n * The color of the material lit by the environmental background lighting.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction#ambient-color-example\n */\n this.ambientColor = new Color3(0, 0, 0);\n /**\n * The basic color of the material as viewed under a light.\n */\n this.diffuseColor = new Color3(1, 1, 1);\n /**\n * Define how the color and intensity of the highlight given by the light in the material.\n */\n this.specularColor = new Color3(1, 1, 1);\n /**\n * Define the color of the material as if self lit.\n * This will be mixed in the final result even in the absence of light.\n */\n this.emissiveColor = new Color3(0, 0, 0);\n /**\n * Defines how sharp are the highlights in the material.\n * The bigger the value the sharper giving a more glossy feeling to the result.\n * Reversely, the smaller the value the blurrier giving a more rough feeling to the result.\n */\n this.specularPower = 64;\n this._useAlphaFromDiffuseTexture = false;\n this._useEmissiveAsIllumination = false;\n this._linkEmissiveWithDiffuse = false;\n this._useSpecularOverAlpha = false;\n this._useReflectionOverAlpha = false;\n this._disableLighting = false;\n this._useObjectSpaceNormalMap = false;\n this._useParallax = false;\n this._useParallaxOcclusion = false;\n /**\n * Apply a scaling factor that determine which \"depth\" the height map should reprensent. A value between 0.05 and 0.1 is reasonnable in Parallax, you can reach 0.2 using Parallax Occlusion.\n */\n this.parallaxScaleBias = 0.05;\n this._roughness = 0;\n /**\n * In case of refraction, define the value of the index of refraction.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#how-to-obtain-reflections-and-refractions\n */\n this.indexOfRefraction = 0.98;\n /**\n * Invert the refraction texture alongside the y axis.\n * It can be useful with procedural textures or probe for instance.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#how-to-obtain-reflections-and-refractions\n */\n this.invertRefractionY = true;\n /**\n * Defines the alpha limits in alpha test mode.\n */\n this.alphaCutOff = 0.4;\n this._useLightmapAsShadowmap = false;\n this._useReflectionFresnelFromSpecular = false;\n this._useGlossinessFromSpecularMapAlpha = false;\n this._maxSimultaneousLights = 4;\n this._invertNormalMapX = false;\n this._invertNormalMapY = false;\n this._twoSidedLighting = false;\n this._applyDecalMapAfterDetailMap = false;\n this._shadersLoaded = false;\n this._renderTargets = new SmartArray(16);\n this._worldViewProjectionMatrix = Matrix.Zero();\n this._globalAmbientColor = new Color3(0, 0, 0);\n this._cacheHasRenderTargetTextures = false;\n this.detailMap = new DetailMapConfiguration(this);\n // Setup the default processing configuration to the scene.\n this._attachImageProcessingConfiguration(null);\n this.prePassConfiguration = new PrePassConfiguration();\n this.getRenderTargetTextures = () => {\n this._renderTargets.reset();\n if (StandardMaterial.ReflectionTextureEnabled && this._reflectionTexture && this._reflectionTexture.isRenderTarget) {\n this._renderTargets.push(this._reflectionTexture);\n }\n if (StandardMaterial.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget) {\n this._renderTargets.push(this._refractionTexture);\n }\n this._eventInfo.renderTargets = this._renderTargets;\n this._callbackPluginEventFillRenderTargetTextures(this._eventInfo);\n return this._renderTargets;\n };\n }\n /**\n * Gets a boolean indicating that current material needs to register RTT\n */\n get hasRenderTargetTextures() {\n if (StandardMaterial.ReflectionTextureEnabled && this._reflectionTexture && this._reflectionTexture.isRenderTarget) {\n return true;\n }\n if (StandardMaterial.RefractionTextureEnabled && this._refractionTexture && this._refractionTexture.isRenderTarget) {\n return true;\n }\n return this._cacheHasRenderTargetTextures;\n }\n /**\n * Gets the current class name of the material e.g. \"StandardMaterial\"\n * Mainly use in serialization.\n * @returns the class name\n */\n getClassName() {\n return \"StandardMaterial\";\n }\n /**\n * Specifies if the material will require alpha blending\n * @returns a boolean specifying if alpha blending is needed\n */\n needAlphaBlending() {\n if (this._disableAlphaBlending) {\n return false;\n }\n return (this.alpha < 1.0 ||\n this._opacityTexture != null ||\n this._shouldUseAlphaFromDiffuseTexture() ||\n (this._opacityFresnelParameters && this._opacityFresnelParameters.isEnabled));\n }\n /**\n * Specifies if this material should be rendered in alpha test mode\n * @returns a boolean specifying if an alpha test is needed.\n */\n needAlphaTesting() {\n if (this._forceAlphaTest) {\n return true;\n }\n return this._hasAlphaChannel() && (this._transparencyMode == null || this._transparencyMode === Material.MATERIAL_ALPHATEST);\n }\n /**\n * @returns whether or not the alpha value of the diffuse texture should be used for alpha blending.\n */\n _shouldUseAlphaFromDiffuseTexture() {\n return this._diffuseTexture != null && this._diffuseTexture.hasAlpha && this._useAlphaFromDiffuseTexture && this._transparencyMode !== Material.MATERIAL_OPAQUE;\n }\n /**\n * @returns whether or not there is a usable alpha channel for transparency.\n */\n _hasAlphaChannel() {\n return (this._diffuseTexture != null && this._diffuseTexture.hasAlpha) || this._opacityTexture != null;\n }\n /**\n * Get the texture used for alpha test purpose.\n * @returns the diffuse texture in case of the standard material.\n */\n getAlphaTestTexture() {\n return this._diffuseTexture;\n }\n /**\n * Get if the submesh is ready to be used and all its information available.\n * Child classes can use it to update shaders\n * @param mesh defines the mesh to check\n * @param subMesh defines which submesh to check\n * @param useInstances specifies that instances should be used\n * @returns a boolean indicating that the submesh is ready or not\n */\n isReadyForSubMesh(mesh, subMesh, useInstances = false) {\n if (!this._uniformBufferLayoutBuilt) {\n this.buildUniformLayout();\n }\n const drawWrapper = subMesh._drawWrapper;\n if (drawWrapper.effect && this.isFrozen) {\n if (drawWrapper._wasPreviouslyReady && drawWrapper._wasPreviouslyUsingInstances === useInstances) {\n return true;\n }\n }\n if (!subMesh.materialDefines) {\n this._callbackPluginEventGeneric(4 /* MaterialPluginEvent.GetDefineNames */, this._eventInfo);\n subMesh.materialDefines = new StandardMaterialDefines(this._eventInfo.defineNames);\n }\n const scene = this.getScene();\n const defines = subMesh.materialDefines;\n if (this._isReadyForSubMesh(subMesh)) {\n return true;\n }\n const engine = scene.getEngine();\n // Lights\n defines._needNormals = PrepareDefinesForLights(scene, mesh, defines, true, this._maxSimultaneousLights, this._disableLighting);\n // Multiview\n PrepareDefinesForMultiview(scene, defines);\n // PrePass\n const oit = this.needAlphaBlendingForMesh(mesh) && this.getScene().useOrderIndependentTransparency;\n PrepareDefinesForPrePass(scene, defines, this.canRenderToMRT && !oit);\n // Order independant transparency\n PrepareDefinesForOIT(scene, defines, oit);\n MaterialHelperGeometryRendering.PrepareDefines(engine.currentRenderPassId, mesh, defines);\n // Textures\n if (defines._areTexturesDirty) {\n this._eventInfo.hasRenderTargetTextures = false;\n this._callbackPluginEventHasRenderTargetTextures(this._eventInfo);\n this._cacheHasRenderTargetTextures = this._eventInfo.hasRenderTargetTextures;\n defines._needUVs = false;\n for (let i = 1; i <= Constants.MAX_SUPPORTED_UV_SETS; ++i) {\n defines[\"MAINUV\" + i] = false;\n }\n if (scene.texturesEnabled) {\n defines.DIFFUSEDIRECTUV = 0;\n defines.BUMPDIRECTUV = 0;\n defines.AMBIENTDIRECTUV = 0;\n defines.OPACITYDIRECTUV = 0;\n defines.EMISSIVEDIRECTUV = 0;\n defines.SPECULARDIRECTUV = 0;\n defines.LIGHTMAPDIRECTUV = 0;\n if (this._diffuseTexture && StandardMaterial.DiffuseTextureEnabled) {\n if (!this._diffuseTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._diffuseTexture, defines, \"DIFFUSE\");\n }\n }\n else {\n defines.DIFFUSE = false;\n }\n if (this._ambientTexture && StandardMaterial.AmbientTextureEnabled) {\n if (!this._ambientTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._ambientTexture, defines, \"AMBIENT\");\n }\n }\n else {\n defines.AMBIENT = false;\n }\n if (this._opacityTexture && StandardMaterial.OpacityTextureEnabled) {\n if (!this._opacityTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._opacityTexture, defines, \"OPACITY\");\n defines.OPACITYRGB = this._opacityTexture.getAlphaFromRGB;\n }\n }\n else {\n defines.OPACITY = false;\n }\n if (this._reflectionTexture && StandardMaterial.ReflectionTextureEnabled) {\n if (!this._reflectionTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n defines._needNormals = true;\n defines.REFLECTION = true;\n defines.ROUGHNESS = this._roughness > 0;\n defines.REFLECTIONOVERALPHA = this._useReflectionOverAlpha;\n defines.INVERTCUBICMAP = this._reflectionTexture.coordinatesMode === Texture.INVCUBIC_MODE;\n defines.REFLECTIONMAP_3D = this._reflectionTexture.isCube;\n defines.REFLECTIONMAP_OPPOSITEZ =\n defines.REFLECTIONMAP_3D && this.getScene().useRightHandedSystem ? !this._reflectionTexture.invertZ : this._reflectionTexture.invertZ;\n defines.RGBDREFLECTION = this._reflectionTexture.isRGBD;\n switch (this._reflectionTexture.coordinatesMode) {\n case Texture.EXPLICIT_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_EXPLICIT\");\n break;\n case Texture.PLANAR_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_PLANAR\");\n break;\n case Texture.PROJECTION_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_PROJECTION\");\n break;\n case Texture.SKYBOX_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_SKYBOX\");\n break;\n case Texture.SPHERICAL_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_SPHERICAL\");\n break;\n case Texture.EQUIRECTANGULAR_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_EQUIRECTANGULAR\");\n break;\n case Texture.FIXED_EQUIRECTANGULAR_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_EQUIRECTANGULAR_FIXED\");\n break;\n case Texture.FIXED_EQUIRECTANGULAR_MIRRORED_MODE:\n defines.setReflectionMode(\"REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\");\n break;\n case Texture.CUBIC_MODE:\n case Texture.INVCUBIC_MODE:\n default:\n defines.setReflectionMode(\"REFLECTIONMAP_CUBIC\");\n break;\n }\n defines.USE_LOCAL_REFLECTIONMAP_CUBIC = this._reflectionTexture.boundingBoxSize ? true : false;\n }\n }\n else {\n defines.REFLECTION = false;\n defines.REFLECTIONMAP_OPPOSITEZ = false;\n }\n if (this._emissiveTexture && StandardMaterial.EmissiveTextureEnabled) {\n if (!this._emissiveTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._emissiveTexture, defines, \"EMISSIVE\");\n }\n }\n else {\n defines.EMISSIVE = false;\n }\n if (this._lightmapTexture && StandardMaterial.LightmapTextureEnabled) {\n if (!this._lightmapTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._lightmapTexture, defines, \"LIGHTMAP\");\n defines.USELIGHTMAPASSHADOWMAP = this._useLightmapAsShadowmap;\n defines.RGBDLIGHTMAP = this._lightmapTexture.isRGBD;\n }\n }\n else {\n defines.LIGHTMAP = false;\n }\n if (this._specularTexture && StandardMaterial.SpecularTextureEnabled) {\n if (!this._specularTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._specularTexture, defines, \"SPECULAR\");\n defines.GLOSSINESS = this._useGlossinessFromSpecularMapAlpha;\n }\n }\n else {\n defines.SPECULAR = false;\n }\n if (scene.getEngine().getCaps().standardDerivatives && this._bumpTexture && StandardMaterial.BumpTextureEnabled) {\n // Bump texture can not be not blocking.\n if (!this._bumpTexture.isReady()) {\n return false;\n }\n else {\n PrepareDefinesForMergedUV(this._bumpTexture, defines, \"BUMP\");\n defines.PARALLAX = this._useParallax;\n defines.PARALLAX_RHS = scene.useRightHandedSystem;\n defines.PARALLAXOCCLUSION = this._useParallaxOcclusion;\n }\n defines.OBJECTSPACE_NORMALMAP = this._useObjectSpaceNormalMap;\n }\n else {\n defines.BUMP = false;\n defines.PARALLAX = false;\n defines.PARALLAX_RHS = false;\n defines.PARALLAXOCCLUSION = false;\n }\n if (this._refractionTexture && StandardMaterial.RefractionTextureEnabled) {\n if (!this._refractionTexture.isReadyOrNotBlocking()) {\n return false;\n }\n else {\n defines._needUVs = true;\n defines.REFRACTION = true;\n defines.REFRACTIONMAP_3D = this._refractionTexture.isCube;\n defines.RGBDREFRACTION = this._refractionTexture.isRGBD;\n defines.USE_LOCAL_REFRACTIONMAP_CUBIC = this._refractionTexture.boundingBoxSize ? true : false;\n }\n }\n else {\n defines.REFRACTION = false;\n }\n defines.TWOSIDEDLIGHTING = !this._backFaceCulling && this._twoSidedLighting;\n }\n else {\n defines.DIFFUSE = false;\n defines.AMBIENT = false;\n defines.OPACITY = false;\n defines.REFLECTION = false;\n defines.EMISSIVE = false;\n defines.LIGHTMAP = false;\n defines.BUMP = false;\n defines.REFRACTION = false;\n }\n defines.ALPHAFROMDIFFUSE = this._shouldUseAlphaFromDiffuseTexture();\n defines.EMISSIVEASILLUMINATION = this._useEmissiveAsIllumination;\n defines.LINKEMISSIVEWITHDIFFUSE = this._linkEmissiveWithDiffuse;\n defines.SPECULAROVERALPHA = this._useSpecularOverAlpha;\n defines.PREMULTIPLYALPHA = this.alphaMode === Constants.ALPHA_PREMULTIPLIED || this.alphaMode === Constants.ALPHA_PREMULTIPLIED_PORTERDUFF;\n defines.ALPHATEST_AFTERALLALPHACOMPUTATIONS = this.transparencyMode !== null;\n defines.ALPHABLEND = this.transparencyMode === null || this.needAlphaBlendingForMesh(mesh); // check on null for backward compatibility\n }\n this._eventInfo.isReadyForSubMesh = true;\n this._eventInfo.defines = defines;\n this._eventInfo.subMesh = subMesh;\n this._callbackPluginEventIsReadyForSubMesh(this._eventInfo);\n if (!this._eventInfo.isReadyForSubMesh) {\n return false;\n }\n if (defines._areImageProcessingDirty && this._imageProcessingConfiguration) {\n if (!this._imageProcessingConfiguration.isReady()) {\n return false;\n }\n this._imageProcessingConfiguration.prepareDefines(defines);\n defines.IS_REFLECTION_LINEAR = this.reflectionTexture != null && !this.reflectionTexture.gammaSpace;\n defines.IS_REFRACTION_LINEAR = this.refractionTexture != null && !this.refractionTexture.gammaSpace;\n }\n if (defines._areFresnelDirty) {\n if (StandardMaterial.FresnelEnabled) {\n // Fresnel\n if (this._diffuseFresnelParameters ||\n this._opacityFresnelParameters ||\n this._emissiveFresnelParameters ||\n this._refractionFresnelParameters ||\n this._reflectionFresnelParameters) {\n defines.DIFFUSEFRESNEL = this._diffuseFresnelParameters && this._diffuseFresnelParameters.isEnabled;\n defines.OPACITYFRESNEL = this._opacityFresnelParameters && this._opacityFresnelParameters.isEnabled;\n defines.REFLECTIONFRESNEL = this._reflectionFresnelParameters && this._reflectionFresnelParameters.isEnabled;\n defines.REFLECTIONFRESNELFROMSPECULAR = this._useReflectionFresnelFromSpecular;\n defines.REFRACTIONFRESNEL = this._refractionFresnelParameters && this._refractionFresnelParameters.isEnabled;\n defines.EMISSIVEFRESNEL = this._emissiveFresnelParameters && this._emissiveFresnelParameters.isEnabled;\n defines._needNormals = true;\n defines.FRESNEL = true;\n }\n }\n else {\n defines.FRESNEL = false;\n }\n }\n // Misc.\n PrepareDefinesForMisc(mesh, scene, this._useLogarithmicDepth, this.pointsCloud, this.fogEnabled, this._shouldTurnAlphaTestOn(mesh) || this._forceAlphaTest, defines, this._applyDecalMapAfterDetailMap);\n // Values that need to be evaluated on every frame\n PrepareDefinesForFrameBoundValues(scene, engine, this, defines, useInstances, null, subMesh.getRenderingMesh().hasThinInstances);\n // External config\n this._eventInfo.defines = defines;\n this._eventInfo.mesh = mesh;\n this._callbackPluginEventPrepareDefinesBeforeAttributes(this._eventInfo);\n // Attribs\n PrepareDefinesForAttributes(mesh, defines, true, true, true);\n // External config\n this._callbackPluginEventPrepareDefines(this._eventInfo);\n // Get correct effect\n let forceWasNotReadyPreviously = false;\n if (defines.isDirty) {\n const lightDisposed = defines._areLightsDisposed;\n defines.markAsProcessed();\n // Fallbacks\n const fallbacks = new EffectFallbacks();\n if (defines.REFLECTION) {\n fallbacks.addFallback(0, \"REFLECTION\");\n }\n if (defines.SPECULAR) {\n fallbacks.addFallback(0, \"SPECULAR\");\n }\n if (defines.BUMP) {\n fallbacks.addFallback(0, \"BUMP\");\n }\n if (defines.PARALLAX) {\n fallbacks.addFallback(1, \"PARALLAX\");\n }\n if (defines.PARALLAX_RHS) {\n fallbacks.addFallback(1, \"PARALLAX_RHS\");\n }\n if (defines.PARALLAXOCCLUSION) {\n fallbacks.addFallback(0, \"PARALLAXOCCLUSION\");\n }\n if (defines.SPECULAROVERALPHA) {\n fallbacks.addFallback(0, \"SPECULAROVERALPHA\");\n }\n if (defines.FOG) {\n fallbacks.addFallback(1, \"FOG\");\n }\n if (defines.POINTSIZE) {\n fallbacks.addFallback(0, \"POINTSIZE\");\n }\n if (defines.LOGARITHMICDEPTH) {\n fallbacks.addFallback(0, \"LOGARITHMICDEPTH\");\n }\n HandleFallbacksForShadows(defines, fallbacks, this._maxSimultaneousLights);\n if (defines.SPECULARTERM) {\n fallbacks.addFallback(0, \"SPECULARTERM\");\n }\n if (defines.DIFFUSEFRESNEL) {\n fallbacks.addFallback(1, \"DIFFUSEFRESNEL\");\n }\n if (defines.OPACITYFRESNEL) {\n fallbacks.addFallback(2, \"OPACITYFRESNEL\");\n }\n if (defines.REFLECTIONFRESNEL) {\n fallbacks.addFallback(3, \"REFLECTIONFRESNEL\");\n }\n if (defines.EMISSIVEFRESNEL) {\n fallbacks.addFallback(4, \"EMISSIVEFRESNEL\");\n }\n if (defines.FRESNEL) {\n fallbacks.addFallback(4, \"FRESNEL\");\n }\n if (defines.MULTIVIEW) {\n fallbacks.addFallback(0, \"MULTIVIEW\");\n }\n //Attributes\n const attribs = [VertexBuffer.PositionKind];\n if (defines.NORMAL) {\n attribs.push(VertexBuffer.NormalKind);\n }\n if (defines.TANGENT) {\n attribs.push(VertexBuffer.TangentKind);\n }\n for (let i = 1; i <= Constants.MAX_SUPPORTED_UV_SETS; ++i) {\n if (defines[\"UV\" + i]) {\n attribs.push(`uv${i === 1 ? \"\" : i}`);\n }\n }\n if (defines.VERTEXCOLOR) {\n attribs.push(VertexBuffer.ColorKind);\n }\n PrepareAttributesForBones(attribs, mesh, defines, fallbacks);\n PrepareAttributesForInstances(attribs, defines);\n PrepareAttributesForMorphTargets(attribs, mesh, defines);\n PrepareAttributesForBakedVertexAnimation(attribs, mesh, defines);\n let shaderName = \"default\";\n const uniforms = [\n \"world\",\n \"view\",\n \"viewProjection\",\n \"vEyePosition\",\n \"vLightsType\",\n \"vAmbientColor\",\n \"vDiffuseColor\",\n \"vSpecularColor\",\n \"vEmissiveColor\",\n \"visibility\",\n \"vFogInfos\",\n \"vFogColor\",\n \"pointSize\",\n \"vDiffuseInfos\",\n \"vAmbientInfos\",\n \"vOpacityInfos\",\n \"vReflectionInfos\",\n \"vEmissiveInfos\",\n \"vSpecularInfos\",\n \"vBumpInfos\",\n \"vLightmapInfos\",\n \"vRefractionInfos\",\n \"mBones\",\n \"diffuseMatrix\",\n \"ambientMatrix\",\n \"opacityMatrix\",\n \"reflectionMatrix\",\n \"emissiveMatrix\",\n \"specularMatrix\",\n \"bumpMatrix\",\n \"normalMatrix\",\n \"lightmapMatrix\",\n \"refractionMatrix\",\n \"diffuseLeftColor\",\n \"diffuseRightColor\",\n \"opacityParts\",\n \"reflectionLeftColor\",\n \"reflectionRightColor\",\n \"emissiveLeftColor\",\n \"emissiveRightColor\",\n \"refractionLeftColor\",\n \"refractionRightColor\",\n \"vReflectionPosition\",\n \"vReflectionSize\",\n \"vRefractionPosition\",\n \"vRefractionSize\",\n \"logarithmicDepthConstant\",\n \"vTangentSpaceParams\",\n \"alphaCutOff\",\n \"boneTextureWidth\",\n \"morphTargetTextureInfo\",\n \"morphTargetTextureIndices\",\n ];\n const samplers = [\n \"diffuseSampler\",\n \"ambientSampler\",\n \"opacitySampler\",\n \"reflectionCubeSampler\",\n \"reflection2DSampler\",\n \"emissiveSampler\",\n \"specularSampler\",\n \"bumpSampler\",\n \"lightmapSampler\",\n \"refractionCubeSampler\",\n \"refraction2DSampler\",\n \"boneSampler\",\n \"morphTargets\",\n \"oitDepthSampler\",\n \"oitFrontColorSampler\",\n ];\n const uniformBuffers = [\"Material\", \"Scene\", \"Mesh\"];\n const indexParameters = { maxSimultaneousLights: this._maxSimultaneousLights, maxSimultaneousMorphTargets: defines.NUM_MORPH_INFLUENCERS };\n this._eventInfo.fallbacks = fallbacks;\n this._eventInfo.fallbackRank = 0;\n this._eventInfo.defines = defines;\n this._eventInfo.uniforms = uniforms;\n this._eventInfo.attributes = attribs;\n this._eventInfo.samplers = samplers;\n this._eventInfo.uniformBuffersNames = uniformBuffers;\n this._eventInfo.customCode = undefined;\n this._eventInfo.mesh = mesh;\n this._eventInfo.indexParameters = indexParameters;\n this._callbackPluginEventGeneric(128 /* MaterialPluginEvent.PrepareEffect */, this._eventInfo);\n MaterialHelperGeometryRendering.AddUniformsAndSamplers(uniforms, samplers);\n PrePassConfiguration.AddUniforms(uniforms);\n PrePassConfiguration.AddSamplers(samplers);\n if (ImageProcessingConfiguration) {\n ImageProcessingConfiguration.PrepareUniforms(uniforms, defines);\n ImageProcessingConfiguration.PrepareSamplers(samplers, defines);\n }\n PrepareUniformsAndSamplersList({\n uniformsNames: uniforms,\n uniformBuffersNames: uniformBuffers,\n samplers: samplers,\n defines: defines,\n maxSimultaneousLights: this._maxSimultaneousLights,\n });\n addClipPlaneUniforms(uniforms);\n const csnrOptions = {};\n if (this.customShaderNameResolve) {\n shaderName = this.customShaderNameResolve(shaderName, uniforms, uniformBuffers, samplers, defines, attribs, csnrOptions);\n }\n const join = defines.toString();\n const previousEffect = subMesh.effect;\n let effect = scene.getEngine().createEffect(shaderName, {\n attributes: attribs,\n uniformsNames: uniforms,\n uniformBuffersNames: uniformBuffers,\n samplers: samplers,\n defines: join,\n fallbacks: fallbacks,\n onCompiled: this.onCompiled,\n onError: this.onError,\n indexParameters,\n processFinalCode: csnrOptions.processFinalCode,\n processCodeAfterIncludes: this._eventInfo.customCode,\n multiTarget: defines.PREPASS,\n shaderLanguage: this._shaderLanguage,\n extraInitializationsAsync: this._shadersLoaded\n ? undefined\n : async () => {\n if (this._shaderLanguage === 1 /* ShaderLanguage.WGSL */) {\n await Promise.all([import(\"../ShadersWGSL/default.vertex\"), import(\"../ShadersWGSL/default.fragment\")]);\n }\n else {\n await Promise.all([import(\"../Shaders/default.vertex\"), import(\"../Shaders/default.fragment\")]);\n }\n this._shadersLoaded = true;\n },\n }, engine);\n this._eventInfo.customCode = undefined;\n if (effect) {\n if (this._onEffectCreatedObservable) {\n onCreatedEffectParameters.effect = effect;\n onCreatedEffectParameters.subMesh = subMesh;\n this._onEffectCreatedObservable.notifyObservers(onCreatedEffectParameters);\n }\n // Use previous effect while new one is compiling\n if (this.allowShaderHotSwapping && previousEffect && !effect.isReady()) {\n effect = previousEffect;\n defines.markAsUnprocessed();\n forceWasNotReadyPreviously = this.isFrozen;\n if (lightDisposed) {\n // re register in case it takes more than one frame.\n defines._areLightsDisposed = true;\n return false;\n }\n }\n else {\n scene.resetCachedMaterial();\n subMesh.setEffect(effect, defines, this._materialContext);\n }\n }\n }\n if (!subMesh.effect || !subMesh.effect.isReady()) {\n return false;\n }\n defines._renderId = scene.getRenderId();\n drawWrapper._wasPreviouslyReady = forceWasNotReadyPreviously ? false : true;\n drawWrapper._wasPreviouslyUsingInstances = useInstances;\n this._checkScenePerformancePriority();\n return true;\n }\n /**\n * Builds the material UBO layouts.\n * Used internally during the effect preparation.\n */\n buildUniformLayout() {\n // Order is important !\n const ubo = this._uniformBuffer;\n ubo.addUniform(\"diffuseLeftColor\", 4);\n ubo.addUniform(\"diffuseRightColor\", 4);\n ubo.addUniform(\"opacityParts\", 4);\n ubo.addUniform(\"reflectionLeftColor\", 4);\n ubo.addUniform(\"reflectionRightColor\", 4);\n ubo.addUniform(\"refractionLeftColor\", 4);\n ubo.addUniform(\"refractionRightColor\", 4);\n ubo.addUniform(\"emissiveLeftColor\", 4);\n ubo.addUniform(\"emissiveRightColor\", 4);\n ubo.addUniform(\"vDiffuseInfos\", 2);\n ubo.addUniform(\"vAmbientInfos\", 2);\n ubo.addUniform(\"vOpacityInfos\", 2);\n ubo.addUniform(\"vReflectionInfos\", 2);\n ubo.addUniform(\"vReflectionPosition\", 3);\n ubo.addUniform(\"vReflectionSize\", 3);\n ubo.addUniform(\"vEmissiveInfos\", 2);\n ubo.addUniform(\"vLightmapInfos\", 2);\n ubo.addUniform(\"vSpecularInfos\", 2);\n ubo.addUniform(\"vBumpInfos\", 3);\n ubo.addUniform(\"diffuseMatrix\", 16);\n ubo.addUniform(\"ambientMatrix\", 16);\n ubo.addUniform(\"opacityMatrix\", 16);\n ubo.addUniform(\"reflectionMatrix\", 16);\n ubo.addUniform(\"emissiveMatrix\", 16);\n ubo.addUniform(\"lightmapMatrix\", 16);\n ubo.addUniform(\"specularMatrix\", 16);\n ubo.addUniform(\"bumpMatrix\", 16);\n ubo.addUniform(\"vTangentSpaceParams\", 2);\n ubo.addUniform(\"pointSize\", 1);\n ubo.addUniform(\"alphaCutOff\", 1);\n ubo.addUniform(\"refractionMatrix\", 16);\n ubo.addUniform(\"vRefractionInfos\", 4);\n ubo.addUniform(\"vRefractionPosition\", 3);\n ubo.addUniform(\"vRefractionSize\", 3);\n ubo.addUniform(\"vSpecularColor\", 4);\n ubo.addUniform(\"vEmissiveColor\", 3);\n ubo.addUniform(\"vDiffuseColor\", 4);\n ubo.addUniform(\"vAmbientColor\", 3);\n super.buildUniformLayout();\n }\n /**\n * Binds the submesh to this material by preparing the effect and shader to draw\n * @param world defines the world transformation matrix\n * @param mesh defines the mesh containing the submesh\n * @param subMesh defines the submesh to bind the material to\n */\n bindForSubMesh(world, mesh, subMesh) {\n const scene = this.getScene();\n const defines = subMesh.materialDefines;\n if (!defines) {\n return;\n }\n const effect = subMesh.effect;\n if (!effect) {\n return;\n }\n this._activeEffect = effect;\n // Matrices Mesh.\n mesh.getMeshUniformBuffer().bindToEffect(effect, \"Mesh\");\n mesh.transferToEffect(world);\n // Binding unconditionally\n this._uniformBuffer.bindToEffect(effect, \"Material\");\n this.prePassConfiguration.bindForSubMesh(this._activeEffect, scene, mesh, world, this.isFrozen);\n MaterialHelperGeometryRendering.Bind(scene.getEngine().currentRenderPassId, this._activeEffect, mesh, world);\n this._eventInfo.subMesh = subMesh;\n this._callbackPluginEventHardBindForSubMesh(this._eventInfo);\n // Normal Matrix\n if (defines.OBJECTSPACE_NORMALMAP) {\n world.toNormalMatrix(this._normalMatrix);\n this.bindOnlyNormalMatrix(this._normalMatrix);\n }\n const mustRebind = this._mustRebind(scene, effect, subMesh, mesh.visibility);\n // Bones\n BindBonesParameters(mesh, effect);\n const ubo = this._uniformBuffer;\n if (mustRebind) {\n this.bindViewProjection(effect);\n if (!ubo.useUbo || !this.isFrozen || !ubo.isSync || subMesh._drawWrapper._forceRebindOnNextCall) {\n if (StandardMaterial.FresnelEnabled && defines.FRESNEL) {\n // Fresnel\n if (this.diffuseFresnelParameters && this.diffuseFresnelParameters.isEnabled) {\n ubo.updateColor4(\"diffuseLeftColor\", this.diffuseFresnelParameters.leftColor, this.diffuseFresnelParameters.power);\n ubo.updateColor4(\"diffuseRightColor\", this.diffuseFresnelParameters.rightColor, this.diffuseFresnelParameters.bias);\n }\n if (this.opacityFresnelParameters && this.opacityFresnelParameters.isEnabled) {\n ubo.updateColor4(\"opacityParts\", new Color3(this.opacityFresnelParameters.leftColor.toLuminance(), this.opacityFresnelParameters.rightColor.toLuminance(), this.opacityFresnelParameters.bias), this.opacityFresnelParameters.power);\n }\n if (this.reflectionFresnelParameters && this.reflectionFresnelParameters.isEnabled) {\n ubo.updateColor4(\"reflectionLeftColor\", this.reflectionFresnelParameters.leftColor, this.reflectionFresnelParameters.power);\n ubo.updateColor4(\"reflectionRightColor\", this.reflectionFresnelParameters.rightColor, this.reflectionFresnelParameters.bias);\n }\n if (this.refractionFresnelParameters && this.refractionFresnelParameters.isEnabled) {\n ubo.updateColor4(\"refractionLeftColor\", this.refractionFresnelParameters.leftColor, this.refractionFresnelParameters.power);\n ubo.updateColor4(\"refractionRightColor\", this.refractionFresnelParameters.rightColor, this.refractionFresnelParameters.bias);\n }\n if (this.emissiveFresnelParameters && this.emissiveFresnelParameters.isEnabled) {\n ubo.updateColor4(\"emissiveLeftColor\", this.emissiveFresnelParameters.leftColor, this.emissiveFresnelParameters.power);\n ubo.updateColor4(\"emissiveRightColor\", this.emissiveFresnelParameters.rightColor, this.emissiveFresnelParameters.bias);\n }\n }\n // Textures\n if (scene.texturesEnabled) {\n if (this._diffuseTexture && StandardMaterial.DiffuseTextureEnabled) {\n ubo.updateFloat2(\"vDiffuseInfos\", this._diffuseTexture.coordinatesIndex, this._diffuseTexture.level);\n BindTextureMatrix(this._diffuseTexture, ubo, \"diffuse\");\n }\n if (this._ambientTexture && StandardMaterial.AmbientTextureEnabled) {\n ubo.updateFloat2(\"vAmbientInfos\", this._ambientTexture.coordinatesIndex, this._ambientTexture.level);\n BindTextureMatrix(this._ambientTexture, ubo, \"ambient\");\n }\n if (this._opacityTexture && StandardMaterial.OpacityTextureEnabled) {\n ubo.updateFloat2(\"vOpacityInfos\", this._opacityTexture.coordinatesIndex, this._opacityTexture.level);\n BindTextureMatrix(this._opacityTexture, ubo, \"opacity\");\n }\n if (this._hasAlphaChannel()) {\n ubo.updateFloat(\"alphaCutOff\", this.alphaCutOff);\n }\n if (this._reflectionTexture && StandardMaterial.ReflectionTextureEnabled) {\n ubo.updateFloat2(\"vReflectionInfos\", this._reflectionTexture.level, this.roughness);\n ubo.updateMatrix(\"reflectionMatrix\", this._reflectionTexture.getReflectionTextureMatrix());\n if (this._reflectionTexture.boundingBoxSize) {\n const cubeTexture = this._reflectionTexture;\n ubo.updateVector3(\"vReflectionPosition\", cubeTexture.boundingBoxPosition);\n ubo.updateVector3(\"vReflectionSize\", cubeTexture.boundingBoxSize);\n }\n }\n if (this._emissiveTexture && StandardMaterial.EmissiveTextureEnabled) {\n ubo.updateFloat2(\"vEmissiveInfos\", this._emissiveTexture.coordinatesIndex, this._emissiveTexture.level);\n BindTextureMatrix(this._emissiveTexture, ubo, \"emissive\");\n }\n if (this._lightmapTexture && StandardMaterial.LightmapTextureEnabled) {\n ubo.updateFloat2(\"vLightmapInfos\", this._lightmapTexture.coordinatesIndex, this._lightmapTexture.level);\n BindTextureMatrix(this._lightmapTexture, ubo, \"lightmap\");\n }\n if (this._specularTexture && StandardMaterial.SpecularTextureEnabled) {\n ubo.updateFloat2(\"vSpecularInfos\", this._specularTexture.coordinatesIndex, this._specularTexture.level);\n BindTextureMatrix(this._specularTexture, ubo, \"specular\");\n }\n if (this._bumpTexture && scene.getEngine().getCaps().standardDerivatives && StandardMaterial.BumpTextureEnabled) {\n ubo.updateFloat3(\"vBumpInfos\", this._bumpTexture.coordinatesIndex, 1.0 / this._bumpTexture.level, this.parallaxScaleBias);\n BindTextureMatrix(this._bumpTexture, ubo, \"bump\");\n if (scene._mirroredCameraPosition) {\n ubo.updateFloat2(\"vTangentSpaceParams\", this._invertNormalMapX ? 1.0 : -1.0, this._invertNormalMapY ? 1.0 : -1.0);\n }\n else {\n ubo.updateFloat2(\"vTangentSpaceParams\", this._invertNormalMapX ? -1.0 : 1.0, this._invertNormalMapY ? -1.0 : 1.0);\n }\n }\n if (this._refractionTexture && StandardMaterial.RefractionTextureEnabled) {\n let depth = 1.0;\n if (!this._refractionTexture.isCube) {\n ubo.updateMatrix(\"refractionMatrix\", this._refractionTexture.getReflectionTextureMatrix());\n if (this._refractionTexture.depth) {\n depth = this._refractionTexture.depth;\n }\n }\n ubo.updateFloat4(\"vRefractionInfos\", this._refractionTexture.level, this.indexOfRefraction, depth, this.invertRefractionY ? -1 : 1);\n if (this._refractionTexture.boundingBoxSize) {\n const cubeTexture = this._refractionTexture;\n ubo.updateVector3(\"vRefractionPosition\", cubeTexture.boundingBoxPosition);\n ubo.updateVector3(\"vRefractionSize\", cubeTexture.boundingBoxSize);\n }\n }\n }\n // Point size\n if (this.pointsCloud) {\n ubo.updateFloat(\"pointSize\", this.pointSize);\n }\n ubo.updateColor4(\"vSpecularColor\", this.specularColor, this.specularPower);\n ubo.updateColor3(\"vEmissiveColor\", StandardMaterial.EmissiveTextureEnabled ? this.emissiveColor : Color3.BlackReadOnly);\n ubo.updateColor4(\"vDiffuseColor\", this.diffuseColor, this.alpha);\n scene.ambientColor.multiplyToRef(this.ambientColor, this._globalAmbientColor);\n ubo.updateColor3(\"vAmbientColor\", this._globalAmbientColor);\n }\n // Textures\n if (scene.texturesEnabled) {\n if (this._diffuseTexture && StandardMaterial.DiffuseTextureEnabled) {\n effect.setTexture(\"diffuseSampler\", this._diffuseTexture);\n }\n if (this._ambientTexture && StandardMaterial.AmbientTextureEnabled) {\n effect.setTexture(\"ambientSampler\", this._ambientTexture);\n }\n if (this._opacityTexture && StandardMaterial.OpacityTextureEnabled) {\n effect.setTexture(\"opacitySampler\", this._opacityTexture);\n }\n if (this._reflectionTexture && StandardMaterial.ReflectionTextureEnabled) {\n if (this._reflectionTexture.isCube) {\n effect.setTexture(\"reflectionCubeSampler\", this._reflectionTexture);\n }\n else {\n effect.setTexture(\"reflection2DSampler\", this._reflectionTexture);\n }\n }\n if (this._emissiveTexture && StandardMaterial.EmissiveTextureEnabled) {\n effect.setTexture(\"emissiveSampler\", this._emissiveTexture);\n }\n if (this._lightmapTexture && StandardMaterial.LightmapTextureEnabled) {\n effect.setTexture(\"lightmapSampler\", this._lightmapTexture);\n }\n if (this._specularTexture && StandardMaterial.SpecularTextureEnabled) {\n effect.setTexture(\"specularSampler\", this._specularTexture);\n }\n if (this._bumpTexture && scene.getEngine().getCaps().standardDerivatives && StandardMaterial.BumpTextureEnabled) {\n effect.setTexture(\"bumpSampler\", this._bumpTexture);\n }\n if (this._refractionTexture && StandardMaterial.RefractionTextureEnabled) {\n if (this._refractionTexture.isCube) {\n effect.setTexture(\"refractionCubeSampler\", this._refractionTexture);\n }\n else {\n effect.setTexture(\"refraction2DSampler\", this._refractionTexture);\n }\n }\n }\n // OIT with depth peeling\n if (this.getScene().useOrderIndependentTransparency && this.needAlphaBlendingForMesh(mesh)) {\n this.getScene().depthPeelingRenderer.bind(effect);\n }\n this._eventInfo.subMesh = subMesh;\n this._callbackPluginEventBindForSubMesh(this._eventInfo);\n // Clip plane\n bindClipPlane(effect, this, scene);\n // Colors\n this.bindEyePosition(effect);\n }\n else if (scene.getEngine()._features.needToAlwaysBindUniformBuffers) {\n this._needToBindSceneUbo = true;\n }\n if (mustRebind || !this.isFrozen) {\n // Lights\n if (scene.lightsEnabled && !this._disableLighting) {\n BindLights(scene, mesh, effect, defines, this._maxSimultaneousLights);\n }\n // View\n if ((scene.fogEnabled && mesh.applyFog && scene.fogMode !== Scene.FOGMODE_NONE) ||\n this._reflectionTexture ||\n this._refractionTexture ||\n mesh.receiveShadows ||\n defines.PREPASS) {\n this.bindView(effect);\n }\n // Fog\n BindFogParameters(scene, mesh, effect);\n // Morph targets\n if (defines.NUM_MORPH_INFLUENCERS) {\n BindMorphTargetParameters(mesh, effect);\n }\n if (defines.BAKED_VERTEX_ANIMATION_TEXTURE) {\n mesh.bakedVertexAnimationManager?.bind(effect, defines.INSTANCES);\n }\n // Log. depth\n if (this.useLogarithmicDepth) {\n BindLogDepth(defines, effect, scene);\n }\n // image processing\n if (this._imageProcessingConfiguration && !this._imageProcessingConfiguration.applyByPostProcess) {\n this._imageProcessingConfiguration.bind(this._activeEffect);\n }\n }\n this._afterBind(mesh, this._activeEffect, subMesh);\n ubo.update();\n }\n /**\n * Get the list of animatables in the material.\n * @returns the list of animatables object used in the material\n */\n getAnimatables() {\n const results = super.getAnimatables();\n if (this._diffuseTexture && this._diffuseTexture.animations && this._diffuseTexture.animations.length > 0) {\n results.push(this._diffuseTexture);\n }\n if (this._ambientTexture && this._ambientTexture.animations && this._ambientTexture.animations.length > 0) {\n results.push(this._ambientTexture);\n }\n if (this._opacityTexture && this._opacityTexture.animations && this._opacityTexture.animations.length > 0) {\n results.push(this._opacityTexture);\n }\n if (this._reflectionTexture && this._reflectionTexture.animations && this._reflectionTexture.animations.length > 0) {\n results.push(this._reflectionTexture);\n }\n if (this._emissiveTexture && this._emissiveTexture.animations && this._emissiveTexture.animations.length > 0) {\n results.push(this._emissiveTexture);\n }\n if (this._specularTexture && this._specularTexture.animations && this._specularTexture.animations.length > 0) {\n results.push(this._specularTexture);\n }\n if (this._bumpTexture && this._bumpTexture.animations && this._bumpTexture.animations.length > 0) {\n results.push(this._bumpTexture);\n }\n if (this._lightmapTexture && this._lightmapTexture.animations && this._lightmapTexture.animations.length > 0) {\n results.push(this._lightmapTexture);\n }\n if (this._refractionTexture && this._refractionTexture.animations && this._refractionTexture.animations.length > 0) {\n results.push(this._refractionTexture);\n }\n return results;\n }\n /**\n * Gets the active textures from the material\n * @returns an array of textures\n */\n getActiveTextures() {\n const activeTextures = super.getActiveTextures();\n if (this._diffuseTexture) {\n activeTextures.push(this._diffuseTexture);\n }\n if (this._ambientTexture) {\n activeTextures.push(this._ambientTexture);\n }\n if (this._opacityTexture) {\n activeTextures.push(this._opacityTexture);\n }\n if (this._reflectionTexture) {\n activeTextures.push(this._reflectionTexture);\n }\n if (this._emissiveTexture) {\n activeTextures.push(this._emissiveTexture);\n }\n if (this._specularTexture) {\n activeTextures.push(this._specularTexture);\n }\n if (this._bumpTexture) {\n activeTextures.push(this._bumpTexture);\n }\n if (this._lightmapTexture) {\n activeTextures.push(this._lightmapTexture);\n }\n if (this._refractionTexture) {\n activeTextures.push(this._refractionTexture);\n }\n return activeTextures;\n }\n /**\n * Specifies if the material uses a texture\n * @param texture defines the texture to check against the material\n * @returns a boolean specifying if the material uses the texture\n */\n hasTexture(texture) {\n if (super.hasTexture(texture)) {\n return true;\n }\n if (this._diffuseTexture === texture) {\n return true;\n }\n if (this._ambientTexture === texture) {\n return true;\n }\n if (this._opacityTexture === texture) {\n return true;\n }\n if (this._reflectionTexture === texture) {\n return true;\n }\n if (this._emissiveTexture === texture) {\n return true;\n }\n if (this._specularTexture === texture) {\n return true;\n }\n if (this._bumpTexture === texture) {\n return true;\n }\n if (this._lightmapTexture === texture) {\n return true;\n }\n if (this._refractionTexture === texture) {\n return true;\n }\n return false;\n }\n /**\n * Disposes the material\n * @param forceDisposeEffect specifies if effects should be forcefully disposed\n * @param forceDisposeTextures specifies if textures should be forcefully disposed\n */\n dispose(forceDisposeEffect, forceDisposeTextures) {\n if (forceDisposeTextures) {\n this._diffuseTexture?.dispose();\n this._ambientTexture?.dispose();\n this._opacityTexture?.dispose();\n this._reflectionTexture?.dispose();\n this._emissiveTexture?.dispose();\n this._specularTexture?.dispose();\n this._bumpTexture?.dispose();\n this._lightmapTexture?.dispose();\n this._refractionTexture?.dispose();\n }\n if (this._imageProcessingConfiguration && this._imageProcessingObserver) {\n this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver);\n }\n super.dispose(forceDisposeEffect, forceDisposeTextures);\n }\n /**\n * Makes a duplicate of the material, and gives it a new name\n * @param name defines the new name for the duplicated material\n * @param cloneTexturesOnlyOnce - if a texture is used in more than one channel (e.g diffuse and opacity), only clone it once and reuse it on the other channels. Default false.\n * @param rootUrl defines the root URL to use to load textures\n * @returns the cloned material\n */\n clone(name, cloneTexturesOnlyOnce = true, rootUrl = \"\") {\n const result = SerializationHelper.Clone(() => new StandardMaterial(name, this.getScene()), this, { cloneTexturesOnlyOnce });\n result.name = name;\n result.id = name;\n this.stencil.copyTo(result.stencil);\n this._clonePlugins(result, rootUrl);\n return result;\n }\n /**\n * Creates a standard material from parsed material data\n * @param source defines the JSON representation of the material\n * @param scene defines the hosting scene\n * @param rootUrl defines the root URL to use to load textures and relative dependencies\n * @returns a new standard material\n */\n static Parse(source, scene, rootUrl) {\n const material = SerializationHelper.Parse(() => new StandardMaterial(source.name, scene), source, scene, rootUrl);\n if (source.stencil) {\n material.stencil.parse(source.stencil, scene, rootUrl);\n }\n Material._ParsePlugins(source, material, scene, rootUrl);\n return material;\n }\n // Flags used to enable or disable a type of texture for all Standard Materials\n /**\n * Are diffuse textures enabled in the application.\n */\n static get DiffuseTextureEnabled() {\n return MaterialFlags.DiffuseTextureEnabled;\n }\n static set DiffuseTextureEnabled(value) {\n MaterialFlags.DiffuseTextureEnabled = value;\n }\n /**\n * Are detail textures enabled in the application.\n */\n static get DetailTextureEnabled() {\n return MaterialFlags.DetailTextureEnabled;\n }\n static set DetailTextureEnabled(value) {\n MaterialFlags.DetailTextureEnabled = value;\n }\n /**\n * Are ambient textures enabled in the application.\n */\n static get AmbientTextureEnabled() {\n return MaterialFlags.AmbientTextureEnabled;\n }\n static set AmbientTextureEnabled(value) {\n MaterialFlags.AmbientTextureEnabled = value;\n }\n /**\n * Are opacity textures enabled in the application.\n */\n static get OpacityTextureEnabled() {\n return MaterialFlags.OpacityTextureEnabled;\n }\n static set OpacityTextureEnabled(value) {\n MaterialFlags.OpacityTextureEnabled = value;\n }\n /**\n * Are reflection textures enabled in the application.\n */\n static get ReflectionTextureEnabled() {\n return MaterialFlags.ReflectionTextureEnabled;\n }\n static set ReflectionTextureEnabled(value) {\n MaterialFlags.ReflectionTextureEnabled = value;\n }\n /**\n * Are emissive textures enabled in the application.\n */\n static get EmissiveTextureEnabled() {\n return MaterialFlags.EmissiveTextureEnabled;\n }\n static set EmissiveTextureEnabled(value) {\n MaterialFlags.EmissiveTextureEnabled = value;\n }\n /**\n * Are specular textures enabled in the application.\n */\n static get SpecularTextureEnabled() {\n return MaterialFlags.SpecularTextureEnabled;\n }\n static set SpecularTextureEnabled(value) {\n MaterialFlags.SpecularTextureEnabled = value;\n }\n /**\n * Are bump textures enabled in the application.\n */\n static get BumpTextureEnabled() {\n return MaterialFlags.BumpTextureEnabled;\n }\n static set BumpTextureEnabled(value) {\n MaterialFlags.BumpTextureEnabled = value;\n }\n /**\n * Are lightmap textures enabled in the application.\n */\n static get LightmapTextureEnabled() {\n return MaterialFlags.LightmapTextureEnabled;\n }\n static set LightmapTextureEnabled(value) {\n MaterialFlags.LightmapTextureEnabled = value;\n }\n /**\n * Are refraction textures enabled in the application.\n */\n static get RefractionTextureEnabled() {\n return MaterialFlags.RefractionTextureEnabled;\n }\n static set RefractionTextureEnabled(value) {\n MaterialFlags.RefractionTextureEnabled = value;\n }\n /**\n * Are color grading textures enabled in the application.\n */\n static get ColorGradingTextureEnabled() {\n return MaterialFlags.ColorGradingTextureEnabled;\n }\n static set ColorGradingTextureEnabled(value) {\n MaterialFlags.ColorGradingTextureEnabled = value;\n }\n /**\n * Are fresnels enabled in the application.\n */\n static get FresnelEnabled() {\n return MaterialFlags.FresnelEnabled;\n }\n static set FresnelEnabled(value) {\n MaterialFlags.FresnelEnabled = value;\n }\n}\n/**\n * Force all the standard materials to compile to glsl even on WebGPU engines.\n * False by default. This is mostly meant for backward compatibility.\n */\nStandardMaterial.ForceGLSL = false;\n__decorate([\n serializeAsTexture(\"diffuseTexture\")\n], StandardMaterial.prototype, \"_diffuseTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], StandardMaterial.prototype, \"diffuseTexture\", void 0);\n__decorate([\n serializeAsTexture(\"ambientTexture\")\n], StandardMaterial.prototype, \"_ambientTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"ambientTexture\", void 0);\n__decorate([\n serializeAsTexture(\"opacityTexture\")\n], StandardMaterial.prototype, \"_opacityTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], StandardMaterial.prototype, \"opacityTexture\", void 0);\n__decorate([\n serializeAsTexture(\"reflectionTexture\")\n], StandardMaterial.prototype, \"_reflectionTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"reflectionTexture\", void 0);\n__decorate([\n serializeAsTexture(\"emissiveTexture\")\n], StandardMaterial.prototype, \"_emissiveTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"emissiveTexture\", void 0);\n__decorate([\n serializeAsTexture(\"specularTexture\")\n], StandardMaterial.prototype, \"_specularTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"specularTexture\", void 0);\n__decorate([\n serializeAsTexture(\"bumpTexture\")\n], StandardMaterial.prototype, \"_bumpTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"bumpTexture\", void 0);\n__decorate([\n serializeAsTexture(\"lightmapTexture\")\n], StandardMaterial.prototype, \"_lightmapTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"lightmapTexture\", void 0);\n__decorate([\n serializeAsTexture(\"refractionTexture\")\n], StandardMaterial.prototype, \"_refractionTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"refractionTexture\", void 0);\n__decorate([\n serializeAsColor3(\"ambient\")\n], StandardMaterial.prototype, \"ambientColor\", void 0);\n__decorate([\n serializeAsColor3(\"diffuse\")\n], StandardMaterial.prototype, \"diffuseColor\", void 0);\n__decorate([\n serializeAsColor3(\"specular\")\n], StandardMaterial.prototype, \"specularColor\", void 0);\n__decorate([\n serializeAsColor3(\"emissive\")\n], StandardMaterial.prototype, \"emissiveColor\", void 0);\n__decorate([\n serialize()\n], StandardMaterial.prototype, \"specularPower\", void 0);\n__decorate([\n serialize(\"useAlphaFromDiffuseTexture\")\n], StandardMaterial.prototype, \"_useAlphaFromDiffuseTexture\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesAndMiscDirty\")\n], StandardMaterial.prototype, \"useAlphaFromDiffuseTexture\", void 0);\n__decorate([\n serialize(\"useEmissiveAsIllumination\")\n], StandardMaterial.prototype, \"_useEmissiveAsIllumination\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useEmissiveAsIllumination\", void 0);\n__decorate([\n serialize(\"linkEmissiveWithDiffuse\")\n], StandardMaterial.prototype, \"_linkEmissiveWithDiffuse\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"linkEmissiveWithDiffuse\", void 0);\n__decorate([\n serialize(\"useSpecularOverAlpha\")\n], StandardMaterial.prototype, \"_useSpecularOverAlpha\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useSpecularOverAlpha\", void 0);\n__decorate([\n serialize(\"useReflectionOverAlpha\")\n], StandardMaterial.prototype, \"_useReflectionOverAlpha\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useReflectionOverAlpha\", void 0);\n__decorate([\n serialize(\"disableLighting\")\n], StandardMaterial.prototype, \"_disableLighting\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\n], StandardMaterial.prototype, \"disableLighting\", void 0);\n__decorate([\n serialize(\"useObjectSpaceNormalMap\")\n], StandardMaterial.prototype, \"_useObjectSpaceNormalMap\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useObjectSpaceNormalMap\", void 0);\n__decorate([\n serialize(\"useParallax\")\n], StandardMaterial.prototype, \"_useParallax\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useParallax\", void 0);\n__decorate([\n serialize(\"useParallaxOcclusion\")\n], StandardMaterial.prototype, \"_useParallaxOcclusion\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useParallaxOcclusion\", void 0);\n__decorate([\n serialize()\n], StandardMaterial.prototype, \"parallaxScaleBias\", void 0);\n__decorate([\n serialize(\"roughness\")\n], StandardMaterial.prototype, \"_roughness\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"roughness\", void 0);\n__decorate([\n serialize()\n], StandardMaterial.prototype, \"indexOfRefraction\", void 0);\n__decorate([\n serialize()\n], StandardMaterial.prototype, \"invertRefractionY\", void 0);\n__decorate([\n serialize()\n], StandardMaterial.prototype, \"alphaCutOff\", void 0);\n__decorate([\n serialize(\"useLightmapAsShadowmap\")\n], StandardMaterial.prototype, \"_useLightmapAsShadowmap\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useLightmapAsShadowmap\", void 0);\n__decorate([\n serializeAsFresnelParameters(\"diffuseFresnelParameters\")\n], StandardMaterial.prototype, \"_diffuseFresnelParameters\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelDirty\")\n], StandardMaterial.prototype, \"diffuseFresnelParameters\", void 0);\n__decorate([\n serializeAsFresnelParameters(\"opacityFresnelParameters\")\n], StandardMaterial.prototype, \"_opacityFresnelParameters\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelAndMiscDirty\")\n], StandardMaterial.prototype, \"opacityFresnelParameters\", void 0);\n__decorate([\n serializeAsFresnelParameters(\"reflectionFresnelParameters\")\n], StandardMaterial.prototype, \"_reflectionFresnelParameters\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelDirty\")\n], StandardMaterial.prototype, \"reflectionFresnelParameters\", void 0);\n__decorate([\n serializeAsFresnelParameters(\"refractionFresnelParameters\")\n], StandardMaterial.prototype, \"_refractionFresnelParameters\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelDirty\")\n], StandardMaterial.prototype, \"refractionFresnelParameters\", void 0);\n__decorate([\n serializeAsFresnelParameters(\"emissiveFresnelParameters\")\n], StandardMaterial.prototype, \"_emissiveFresnelParameters\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelDirty\")\n], StandardMaterial.prototype, \"emissiveFresnelParameters\", void 0);\n__decorate([\n serialize(\"useReflectionFresnelFromSpecular\")\n], StandardMaterial.prototype, \"_useReflectionFresnelFromSpecular\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsFresnelDirty\")\n], StandardMaterial.prototype, \"useReflectionFresnelFromSpecular\", void 0);\n__decorate([\n serialize(\"useGlossinessFromSpecularMapAlpha\")\n], StandardMaterial.prototype, \"_useGlossinessFromSpecularMapAlpha\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"useGlossinessFromSpecularMapAlpha\", void 0);\n__decorate([\n serialize(\"maxSimultaneousLights\")\n], StandardMaterial.prototype, \"_maxSimultaneousLights\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsLightsDirty\")\n], StandardMaterial.prototype, \"maxSimultaneousLights\", void 0);\n__decorate([\n serialize(\"invertNormalMapX\")\n], StandardMaterial.prototype, \"_invertNormalMapX\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"invertNormalMapX\", void 0);\n__decorate([\n serialize(\"invertNormalMapY\")\n], StandardMaterial.prototype, \"_invertNormalMapY\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"invertNormalMapY\", void 0);\n__decorate([\n serialize(\"twoSidedLighting\")\n], StandardMaterial.prototype, \"_twoSidedLighting\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsTexturesDirty\")\n], StandardMaterial.prototype, \"twoSidedLighting\", void 0);\n__decorate([\n serialize(\"applyDecalMapAfterDetailMap\")\n], StandardMaterial.prototype, \"_applyDecalMapAfterDetailMap\", void 0);\n__decorate([\n expandToProperty(\"_markAllSubMeshesAsMiscDirty\")\n], StandardMaterial.prototype, \"applyDecalMapAfterDetailMap\", void 0);\nRegisterClass(\"BABYLON.StandardMaterial\", StandardMaterial);\nScene.DefaultMaterialFactory = (scene) => {\n return new StandardMaterial(\"default material\", scene);\n};\n//# sourceMappingURL=standardMaterial.js.map"],"names":["onCreatedEffectParameters","effect","subMesh","StandardMaterialDefines","MaterialDefines","constructor","externalProperties","super","this","MAINUV1","MAINUV2","MAINUV3","MAINUV4","MAINUV5","MAINUV6","DIFFUSE","DIFFUSEDIRECTUV","BAKED_VERTEX_ANIMATION_TEXTURE","AMBIENT","AMBIENTDIRECTUV","OPACITY","OPACITYDIRECTUV","OPACITYRGB","REFLECTION","EMISSIVE","EMISSIVEDIRECTUV","SPECULAR","SPECULARDIRECTUV","BUMP","BUMPDIRECTUV","PARALLAX","PARALLAX_RHS","PARALLAXOCCLUSION","SPECULAROVERALPHA","CLIPPLANE","CLIPPLANE2","CLIPPLANE3","CLIPPLANE4","CLIPPLANE5","CLIPPLANE6","ALPHATEST","DEPTHPREPASS","ALPHAFROMDIFFUSE","POINTSIZE","FOG","SPECULARTERM","DIFFUSEFRESNEL","OPACITYFRESNEL","REFLECTIONFRESNEL","REFRACTIONFRESNEL","EMISSIVEFRESNEL","FRESNEL","NORMAL","TANGENT","UV1","UV2","UV3","UV4","UV5","UV6","VERTEXCOLOR","VERTEXALPHA","NUM_BONE_INFLUENCERS","BonesPerMesh","BONETEXTURE","BONES_VELOCITY_ENABLED","INSTANCES","THIN_INSTANCES","INSTANCESCOLOR","GLOSSINESS","ROUGHNESS","EMISSIVEASILLUMINATION","LINKEMISSIVEWITHDIFFUSE","REFLECTIONFRESNELFROMSPECULAR","LIGHTMAP","LIGHTMAPDIRECTUV","OBJECTSPACE_NORMALMAP","USELIGHTMAPASSHADOWMAP","REFLECTIONMAP_3D","REFLECTIONMAP_SPHERICAL","REFLECTIONMAP_PLANAR","REFLECTIONMAP_CUBIC","USE_LOCAL_REFLECTIONMAP_CUBIC","USE_LOCAL_REFRACTIONMAP_CUBIC","REFLECTIONMAP_PROJECTION","REFLECTIONMAP_SKYBOX","REFLECTIONMAP_EXPLICIT","REFLECTIONMAP_EQUIRECTANGULAR","REFLECTIONMAP_EQUIRECTANGULAR_FIXED","REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED","REFLECTIONMAP_OPPOSITEZ","INVERTCUBICMAP","LOGARITHMICDEPTH","REFRACTION","REFRACTIONMAP_3D","REFLECTIONOVERALPHA","TWOSIDEDLIGHTING","SHADOWFLOAT","MORPHTARGETS","MORPHTARGETS_NORMAL","MORPHTARGETS_TANGENT","MORPHTARGETS_UV","NUM_MORPH_INFLUENCERS","MORPHTARGETS_TEXTURE","NONUNIFORMSCALING","PREMULTIPLYALPHA","ALPHATEST_AFTERALLALPHACOMPUTATIONS","ALPHABLEND","PREPASS","PREPASS_COLOR","PREPASS_COLOR_INDEX","PREPASS_IRRADIANCE","PREPASS_IRRADIANCE_INDEX","PREPASS_ALBEDO","PREPASS_ALBEDO_INDEX","PREPASS_ALBEDO_SQRT","PREPASS_ALBEDO_SQRT_INDEX","PREPASS_DEPTH","PREPASS_DEPTH_INDEX","PREPASS_SCREENSPACE_DEPTH","PREPASS_SCREENSPACE_DEPTH_INDEX","PREPASS_NORMAL","PREPASS_NORMAL_INDEX","PREPASS_NORMAL_WORLDSPACE","PREPASS_WORLD_NORMAL","PREPASS_WORLD_NORMAL_INDEX","PREPASS_POSITION","PREPASS_POSITION_INDEX","PREPASS_LOCAL_POSITION","PREPASS_LOCAL_POSITION_INDEX","PREPASS_VELOCITY","PREPASS_VELOCITY_INDEX","PREPASS_VELOCITY_LINEAR","PREPASS_VELOCITY_LINEAR_INDEX","PREPASS_REFLECTIVITY","PREPASS_REFLECTIVITY_INDEX","SCENE_MRT_COUNT","RGBDLIGHTMAP","RGBDREFLECTION","RGBDREFRACTION","IMAGEPROCESSING","VIGNETTE","VIGNETTEBLENDMODEMULTIPLY","VIGNETTEBLENDMODEOPAQUE","TONEMAPPING","CONTRAST","COLORCURVES","COLORGRADING","COLORGRADING3D","SAMPLER3DGREENDEPTH","SAMPLER3DBGRMAP","DITHER","IMAGEPROCESSINGPOSTPROCESS","SKIPFINALCOLORCLAMP","MULTIVIEW","ORDER_INDEPENDENT_TRANSPARENCY","ORDER_INDEPENDENT_TRANSPARENCY_16BITS","CAMERA_ORTHOGRAPHIC","CAMERA_PERSPECTIVE","IS_REFLECTION_LINEAR","IS_REFRACTION_LINEAR","EXPOSURE","DECAL_AFTER_DETAIL","rebuild","setReflectionMode","modeToEnable","modes","mode","StandardMaterial","PushMaterial","imageProcessingConfiguration","_imageProcessingConfiguration","value","_attachImageProcessingConfiguration","_markAllSubMeshesAsTexturesDirty","configuration","_imageProcessingObserver","onUpdateParameters","remove","getScene","add","_markAllSubMeshesAsImageProcessingDirty","isPrePassCapable","disableDepthWrite","cameraColorCurvesEnabled","colorCurvesEnabled","cameraColorGradingEnabled","colorGradingEnabled","cameraToneMappingEnabled","toneMappingEnabled","cameraExposure","exposure","cameraContrast","contrast","cameraColorGradingTexture","colorGradingTexture","cameraColorCurves","colorCurves","canRenderToMRT","name","scene","forceGLSL","undefined","ForceGLSL","_diffuseTexture","_ambientTexture","_opacityTexture","_reflectionTexture","_emissiveTexture","_specularTexture","_bumpTexture","_lightmapTexture","_refractionTexture","ambientColor","Color3","diffuseColor","specularColor","emissiveColor","specularPower","_useAlphaFromDiffuseTexture","_useEmissiveAsIllumination","_linkEmissiveWithDiffuse","_useSpecularOverAlpha","_useReflectionOverAlpha","_disableLighting","_useObjectSpaceNormalMap","_useParallax","_useParallaxOcclusion","parallaxScaleBias","_roughness","indexOfRefraction","invertRefractionY","alphaCutOff","_useLightmapAsShadowmap","_useReflectionFresnelFromSpecular","_useGlossinessFromSpecularMapAlpha","_maxSimultaneousLights","_invertNormalMapX","_invertNormalMapY","_twoSidedLighting","_applyDecalMapAfterDetailMap","_shadersLoaded","_renderTargets","SmartArray","_worldViewProjectionMatrix","Matrix","Zero","_globalAmbientColor","_cacheHasRenderTargetTextures","detailMap","DetailMapConfiguration","prePassConfiguration","PrePassConfiguration","getRenderTargetTextures","reset","ReflectionTextureEnabled","isRenderTarget","push","RefractionTextureEnabled","_eventInfo","renderTargets","_callbackPluginEventFillRenderTargetTextures","hasRenderTargetTextures","getClassName","needAlphaBlending","_disableAlphaBlending","alpha","_shouldUseAlphaFromDiffuseTexture","_opacityFresnelParameters","isEnabled","needAlphaTesting","_forceAlphaTest","_hasAlphaChannel","_transparencyMode","Material","MATERIAL_ALPHATEST","hasAlpha","MATERIAL_OPAQUE","getAlphaTestTexture","isReadyForSubMesh","mesh","useInstances","_uniformBufferLayoutBuilt","buildUniformLayout","drawWrapper","_drawWrapper","isFrozen","_wasPreviouslyReady","_wasPreviouslyUsingInstances","materialDefines","_callbackPluginEventGeneric","defineNames","defines","_isReadyForSubMesh","engine","getEngine","_needNormals","PrepareDefinesForLights","PrepareDefinesForMultiview","oit","needAlphaBlendingForMesh","useOrderIndependentTransparency","PrepareDefinesForPrePass","PrepareDefinesForOIT","MaterialHelperGeometryRendering","PrepareDefines","currentRenderPassId","_areTexturesDirty","_callbackPluginEventHasRenderTargetTextures","_needUVs","i","Constants","MAX_SUPPORTED_UV_SETS","texturesEnabled","DiffuseTextureEnabled","isReadyOrNotBlocking","PrepareDefinesForMergedUV","AmbientTextureEnabled","OpacityTextureEnabled","getAlphaFromRGB","coordinatesMode","Texture","INVCUBIC_MODE","isCube","useRightHandedSystem","invertZ","isRGBD","EXPLICIT_MODE","PLANAR_MODE","PROJECTION_MODE","SKYBOX_MODE","SPHERICAL_MODE","EQUIRECTANGULAR_MODE","FIXED_EQUIRECTANGULAR_MODE","FIXED_EQUIRECTANGULAR_MIRRORED_MODE","CUBIC_MODE","boundingBoxSize","EmissiveTextureEnabled","LightmapTextureEnabled","SpecularTextureEnabled","getCaps","standardDerivatives","BumpTextureEnabled","isReady","_backFaceCulling","alphaMode","ALPHA_PREMULTIPLIED","ALPHA_PREMULTIPLIED_PORTERDUFF","transparencyMode","_callbackPluginEventIsReadyForSubMesh","_areImageProcessingDirty","prepareDefines","reflectionTexture","gammaSpace","refractionTexture","_areFresnelDirty","FresnelEnabled","_diffuseFresnelParameters","_emissiveFresnelParameters","_refractionFresnelParameters","_reflectionFresnelParameters","PrepareDefinesForMisc","_useLogarithmicDepth","pointsCloud","fogEnabled","_shouldTurnAlphaTestOn","PrepareDefinesForFrameBoundValues","getRenderingMesh","hasThinInstances","_callbackPluginEventPrepareDefinesBeforeAttributes","PrepareDefinesForAttributes","_callbackPluginEventPrepareDefines","forceWasNotReadyPreviously","isDirty","lightDisposed","_areLightsDisposed","markAsProcessed","fallbacks","EffectFallbacks","addFallback","HandleFallbacksForShadows","attribs","VertexBuffer","PositionKind","NormalKind","TangentKind","ColorKind","PrepareAttributesForBones","PrepareAttributesForInstances","PrepareAttributesForMorphTargets","PrepareAttributesForBakedVertexAnimation","shaderName","uniforms","samplers","uniformBuffers","indexParameters","maxSimultaneousLights","maxSimultaneousMorphTargets","fallbackRank","attributes","uniformBuffersNames","customCode","AddUniformsAndSamplers","AddUniforms","ImageProcessingConfiguration","PrepareUniforms","PrepareSamplers","PrepareUniformsAndSamplersList","uniformsNames","addClipPlaneUniforms","csnrOptions","customShaderNameResolve","join","toString","previousEffect","createEffect","onCompiled","onError","processFinalCode","processCodeAfterIncludes","multiTarget","shaderLanguage","_shaderLanguage","extraInitializationsAsync","async","Promise","all","import","_onEffectCreatedObservable","notifyObservers","allowShaderHotSwapping","markAsUnprocessed","resetCachedMaterial","setEffect","_materialContext","_renderId","getRenderId","_checkScenePerformancePriority","ubo","_uniformBuffer","addUniform","bindForSubMesh","world","_activeEffect","getMeshUniformBuffer","bindToEffect","transferToEffect","Bind","_callbackPluginEventHardBindForSubMesh","toNormalMatrix","_normalMatrix","bindOnlyNormalMatrix","mustRebind","_mustRebind","visibility","BindBonesParameters","bindViewProjection","useUbo","isSync","_forceRebindOnNextCall","diffuseFresnelParameters","updateColor4","leftColor","power","rightColor","bias","opacityFresnelParameters","toLuminance","reflectionFresnelParameters","refractionFresnelParameters","emissiveFresnelParameters","updateFloat2","coordinatesIndex","level","BindTextureMatrix","updateFloat","roughness","updateMatrix","getReflectionTextureMatrix","cubeTexture","updateVector3","boundingBoxPosition","updateFloat3","_mirroredCameraPosition","depth","updateFloat4","pointSize","updateColor3","BlackReadOnly","multiplyToRef","setTexture","depthPeelingRenderer","bind","_callbackPluginEventBindForSubMesh","bindClipPlane","bindEyePosition","_features","needToAlwaysBindUniformBuffers","_needToBindSceneUbo","lightsEnabled","BindLights","applyFog","fogMode","Scene","FOGMODE_NONE","receiveShadows","bindView","BindFogParameters","BindMorphTargetParameters","bakedVertexAnimationManager","useLogarithmicDepth","BindLogDepth","applyByPostProcess","_afterBind","update","getAnimatables","results","animations","length","getActiveTextures","activeTextures","hasTexture","texture","dispose","forceDisposeEffect","forceDisposeTextures","clone","cloneTexturesOnlyOnce","rootUrl","result","SerializationHelper","Clone","id","stencil","copyTo","_clonePlugins","Parse","source","material","parse","_ParsePlugins","MaterialFlags","DetailTextureEnabled","ColorGradingTextureEnabled","__decorate","serializeAsTexture","prototype","expandToProperty","serializeAsColor3","serialize","serializeAsFresnelParameters","RegisterClass","DefaultMaterialFactory"],"mappings":"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"}
@@ -1,238 +0,0 @@
1
- import { al as STLFileLoaderMetadata, M as Mesh, T as Tools, V as VertexBuffer, y as registerSceneLoaderPlugin } from './index-CtkZLm9J.esm.js';
2
- import { A as AssetContainer } from './assetContainer-cm8rvay3.esm.js';
3
- import './standardMaterial-DKyaZtcm.esm.js';
4
-
5
- /**
6
- * STL file type loader.
7
- * This is a babylon scene loader plugin.
8
- */
9
- class STLFileLoader {
10
- constructor() {
11
- /** @internal */
12
- this.solidPattern = /solid (\S*)([\S\s]*?)endsolid[ ]*(\S*)/g;
13
- /** @internal */
14
- this.facetsPattern = /facet([\s\S]*?)endfacet/g;
15
- /** @internal */
16
- this.normalPattern = /normal[\s]+([-+]?[0-9]+\.?[0-9]*([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+/g;
17
- /** @internal */
18
- this.vertexPattern = /vertex[\s]+([-+]?[0-9]+\.?[0-9]*([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+/g;
19
- /**
20
- * Defines the name of the plugin.
21
- */
22
- this.name = STLFileLoaderMetadata.name;
23
- /**
24
- * Defines the extensions the stl loader is able to load.
25
- * force data to come in as an ArrayBuffer
26
- * we'll convert to string if it looks like it's an ASCII .stl
27
- */
28
- this.extensions = STLFileLoaderMetadata.extensions;
29
- }
30
- /**
31
- * Import meshes into a scene.
32
- * @param meshesNames An array of mesh names, a single mesh name, or empty string for all meshes that filter what meshes are imported
33
- * @param scene The scene to import into
34
- * @param data The data to import
35
- * @param rootUrl The root url for scene and resources
36
- * @param meshes The meshes array to import into
37
- * @returns True if successful or false otherwise
38
- */
39
- importMesh(meshesNames, scene, data, rootUrl, meshes) {
40
- let matches;
41
- if (typeof data !== "string") {
42
- if (this._isBinary(data)) {
43
- // binary .stl
44
- const babylonMesh = new Mesh("stlmesh", scene);
45
- this._parseBinary(babylonMesh, data);
46
- if (meshes) {
47
- meshes.push(babylonMesh);
48
- }
49
- return true;
50
- }
51
- // ASCII .stl
52
- // convert to string
53
- data = new TextDecoder().decode(new Uint8Array(data));
54
- }
55
- //if arrived here, data is a string, containing the STLA data.
56
- while ((matches = this.solidPattern.exec(data))) {
57
- let meshName = matches[1];
58
- const meshNameFromEnd = matches[3];
59
- if (meshNameFromEnd && meshName != meshNameFromEnd) {
60
- Tools.Error("Error in STL, solid name != endsolid name");
61
- return false;
62
- }
63
- // check meshesNames
64
- if (meshesNames && meshName) {
65
- if (meshesNames instanceof Array) {
66
- if (!meshesNames.indexOf(meshName)) {
67
- continue;
68
- }
69
- }
70
- else {
71
- if (meshName !== meshesNames) {
72
- continue;
73
- }
74
- }
75
- }
76
- // stl mesh name can be empty as well
77
- meshName = meshName || "stlmesh";
78
- const babylonMesh = new Mesh(meshName, scene);
79
- this._parseASCII(babylonMesh, matches[2]);
80
- if (meshes) {
81
- meshes.push(babylonMesh);
82
- }
83
- }
84
- return true;
85
- }
86
- /**
87
- * Load into a scene.
88
- * @param scene The scene to load into
89
- * @param data The data to import
90
- * @param rootUrl The root url for scene and resources
91
- * @returns true if successful or false otherwise
92
- */
93
- load(scene, data, rootUrl) {
94
- const result = this.importMesh(null, scene, data, rootUrl, null);
95
- return result;
96
- }
97
- /**
98
- * Load into an asset container.
99
- * @param scene The scene to load into
100
- * @param data The data to import
101
- * @param rootUrl The root url for scene and resources
102
- * @returns The loaded asset container
103
- */
104
- loadAssetContainer(scene, data, rootUrl) {
105
- const container = new AssetContainer(scene);
106
- scene._blockEntityCollection = true;
107
- this.importMesh(null, scene, data, rootUrl, container.meshes);
108
- scene._blockEntityCollection = false;
109
- return container;
110
- }
111
- _isBinary(data) {
112
- // check if file size is correct for binary stl
113
- const reader = new DataView(data);
114
- // A Binary STL header is 80 bytes, if the data size is not great than
115
- // that then it's not a binary STL.
116
- if (reader.byteLength <= 80) {
117
- return false;
118
- }
119
- const faceSize = (32 / 8) * 3 + (32 / 8) * 3 * 3 + 16 / 8;
120
- const nFaces = reader.getUint32(80, true);
121
- if (80 + 32 / 8 + nFaces * faceSize === reader.byteLength) {
122
- return true;
123
- }
124
- // US-ASCII begin with 's', 'o', 'l', 'i', 'd'
125
- const ascii = [115, 111, 108, 105, 100];
126
- for (let off = 0; off < 5; off++) {
127
- if (reader.getUint8(off) !== ascii[off]) {
128
- return true;
129
- }
130
- }
131
- return false;
132
- }
133
- _parseBinary(mesh, data) {
134
- const reader = new DataView(data);
135
- const faces = reader.getUint32(80, true);
136
- const dataOffset = 84;
137
- const faceLength = 12 * 4 + 2;
138
- let offset = 0;
139
- const positions = new Float32Array(faces * 3 * 3);
140
- const normals = new Float32Array(faces * 3 * 3);
141
- const indices = new Uint32Array(faces * 3);
142
- let indicesCount = 0;
143
- for (let face = 0; face < faces; face++) {
144
- const start = dataOffset + face * faceLength;
145
- const normalX = reader.getFloat32(start, true);
146
- const normalY = reader.getFloat32(start + 4, true);
147
- const normalZ = reader.getFloat32(start + 8, true);
148
- for (let i = 1; i <= 3; i++) {
149
- const vertexstart = start + i * 12;
150
- // ordering is intentional to match ascii import
151
- positions[offset] = reader.getFloat32(vertexstart, true);
152
- normals[offset] = normalX;
153
- if (!STLFileLoader.DO_NOT_ALTER_FILE_COORDINATES) {
154
- positions[offset + 2] = reader.getFloat32(vertexstart + 4, true);
155
- positions[offset + 1] = reader.getFloat32(vertexstart + 8, true);
156
- normals[offset + 2] = normalY;
157
- normals[offset + 1] = normalZ;
158
- }
159
- else {
160
- positions[offset + 1] = reader.getFloat32(vertexstart + 4, true);
161
- positions[offset + 2] = reader.getFloat32(vertexstart + 8, true);
162
- normals[offset + 1] = normalY;
163
- normals[offset + 2] = normalZ;
164
- }
165
- offset += 3;
166
- }
167
- if (STLFileLoader.DO_NOT_ALTER_FILE_COORDINATES) {
168
- indices[indicesCount] = indicesCount;
169
- indices[indicesCount + 1] = indicesCount + 2;
170
- indices[indicesCount + 2] = indicesCount + 1;
171
- indicesCount += 3;
172
- }
173
- else {
174
- indices[indicesCount] = indicesCount++;
175
- indices[indicesCount] = indicesCount++;
176
- indices[indicesCount] = indicesCount++;
177
- }
178
- }
179
- mesh.setVerticesData(VertexBuffer.PositionKind, positions);
180
- mesh.setVerticesData(VertexBuffer.NormalKind, normals);
181
- mesh.setIndices(indices);
182
- mesh.computeWorldMatrix(true);
183
- }
184
- _parseASCII(mesh, solidData) {
185
- const positions = [];
186
- const normals = [];
187
- const indices = [];
188
- let indicesCount = 0;
189
- //load facets, ignoring loop as the standard doesn't define it can contain more than vertices
190
- let matches;
191
- while ((matches = this.facetsPattern.exec(solidData))) {
192
- const facet = matches[1];
193
- //one normal per face
194
- const normalMatches = this.normalPattern.exec(facet);
195
- this.normalPattern.lastIndex = 0;
196
- if (!normalMatches) {
197
- continue;
198
- }
199
- const normal = [Number(normalMatches[1]), Number(normalMatches[5]), Number(normalMatches[3])];
200
- let vertexMatch;
201
- while ((vertexMatch = this.vertexPattern.exec(facet))) {
202
- if (!STLFileLoader.DO_NOT_ALTER_FILE_COORDINATES) {
203
- positions.push(Number(vertexMatch[1]), Number(vertexMatch[5]), Number(vertexMatch[3]));
204
- normals.push(normal[0], normal[1], normal[2]);
205
- }
206
- else {
207
- positions.push(Number(vertexMatch[1]), Number(vertexMatch[3]), Number(vertexMatch[5]));
208
- // Flipping the second and third component because inverted
209
- // when normal was declared.
210
- normals.push(normal[0], normal[2], normal[1]);
211
- }
212
- }
213
- if (STLFileLoader.DO_NOT_ALTER_FILE_COORDINATES) {
214
- indices.push(indicesCount, indicesCount + 2, indicesCount + 1);
215
- indicesCount += 3;
216
- }
217
- else {
218
- indices.push(indicesCount++, indicesCount++, indicesCount++);
219
- }
220
- this.vertexPattern.lastIndex = 0;
221
- }
222
- this.facetsPattern.lastIndex = 0;
223
- mesh.setVerticesData(VertexBuffer.PositionKind, positions);
224
- mesh.setVerticesData(VertexBuffer.NormalKind, normals);
225
- mesh.setIndices(indices);
226
- mesh.computeWorldMatrix(true);
227
- }
228
- }
229
- /**
230
- * Defines if Y and Z axes are swapped or not when loading an STL file.
231
- * The default is false to maintain backward compatibility. When set to
232
- * true, coordinates from the STL file are used without change.
233
- */
234
- STLFileLoader.DO_NOT_ALTER_FILE_COORDINATES = false;
235
- registerSceneLoaderPlugin(new STLFileLoader());
236
-
237
- export { STLFileLoader };
238
- //# sourceMappingURL=stlFileLoader-CDv97liE.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stlFileLoader-CDv97liE.esm.js","sources":["../../../../../dev/loaders/dist/STL/stlFileLoader.js"],"sourcesContent":["import { Tools } from \"core/Misc/tools\";\nimport { VertexBuffer } from \"core/Buffers/buffer\";\nimport { Mesh } from \"core/Meshes/mesh\";\nimport { registerSceneLoaderPlugin } from \"core/Loading/sceneLoader\";\nimport { AssetContainer } from \"core/assetContainer\";\nimport { STLFileLoaderMetadata } from \"./stlFileLoader.metadata\";\nimport \"core/Materials/standardMaterial\";\n/**\n * STL file type loader.\n * This is a babylon scene loader plugin.\n */\nexport class STLFileLoader {\n constructor() {\n /** @internal */\n this.solidPattern = /solid (\\S*)([\\S\\s]*?)endsolid[ ]*(\\S*)/g;\n /** @internal */\n this.facetsPattern = /facet([\\s\\S]*?)endfacet/g;\n /** @internal */\n this.normalPattern = /normal[\\s]+([-+]?[0-9]+\\.?[0-9]*([eE][-+]?[0-9]+)?)+[\\s]+([-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?)+[\\s]+([-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?)+/g;\n /** @internal */\n this.vertexPattern = /vertex[\\s]+([-+]?[0-9]+\\.?[0-9]*([eE][-+]?[0-9]+)?)+[\\s]+([-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?)+[\\s]+([-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?)+/g;\n /**\n * Defines the name of the plugin.\n */\n this.name = STLFileLoaderMetadata.name;\n /**\n * Defines the extensions the stl loader is able to load.\n * force data to come in as an ArrayBuffer\n * we'll convert to string if it looks like it's an ASCII .stl\n */\n this.extensions = STLFileLoaderMetadata.extensions;\n }\n /**\n * Import meshes into a scene.\n * @param meshesNames An array of mesh names, a single mesh name, or empty string for all meshes that filter what meshes are imported\n * @param scene The scene to import into\n * @param data The data to import\n * @param rootUrl The root url for scene and resources\n * @param meshes The meshes array to import into\n * @returns True if successful or false otherwise\n */\n importMesh(meshesNames, scene, data, rootUrl, meshes) {\n let matches;\n if (typeof data !== \"string\") {\n if (this._isBinary(data)) {\n // binary .stl\n const babylonMesh = new Mesh(\"stlmesh\", scene);\n this._parseBinary(babylonMesh, data);\n if (meshes) {\n meshes.push(babylonMesh);\n }\n return true;\n }\n // ASCII .stl\n // convert to string\n data = new TextDecoder().decode(new Uint8Array(data));\n }\n //if arrived here, data is a string, containing the STLA data.\n while ((matches = this.solidPattern.exec(data))) {\n let meshName = matches[1];\n const meshNameFromEnd = matches[3];\n if (meshNameFromEnd && meshName != meshNameFromEnd) {\n Tools.Error(\"Error in STL, solid name != endsolid name\");\n return false;\n }\n // check meshesNames\n if (meshesNames && meshName) {\n if (meshesNames instanceof Array) {\n if (!meshesNames.indexOf(meshName)) {\n continue;\n }\n }\n else {\n if (meshName !== meshesNames) {\n continue;\n }\n }\n }\n // stl mesh name can be empty as well\n meshName = meshName || \"stlmesh\";\n const babylonMesh = new Mesh(meshName, scene);\n this._parseASCII(babylonMesh, matches[2]);\n if (meshes) {\n meshes.push(babylonMesh);\n }\n }\n return true;\n }\n /**\n * Load into a scene.\n * @param scene The scene to load into\n * @param data The data to import\n * @param rootUrl The root url for scene and resources\n * @returns true if successful or false otherwise\n */\n load(scene, data, rootUrl) {\n const result = this.importMesh(null, scene, data, rootUrl, null);\n return result;\n }\n /**\n * Load into an asset container.\n * @param scene The scene to load into\n * @param data The data to import\n * @param rootUrl The root url for scene and resources\n * @returns The loaded asset container\n */\n loadAssetContainer(scene, data, rootUrl) {\n const container = new AssetContainer(scene);\n scene._blockEntityCollection = true;\n this.importMesh(null, scene, data, rootUrl, container.meshes);\n scene._blockEntityCollection = false;\n return container;\n }\n _isBinary(data) {\n // check if file size is correct for binary stl\n const reader = new DataView(data);\n // A Binary STL header is 80 bytes, if the data size is not great than\n // that then it's not a binary STL.\n if (reader.byteLength <= 80) {\n return false;\n }\n const faceSize = (32 / 8) * 3 + (32 / 8) * 3 * 3 + 16 / 8;\n const nFaces = reader.getUint32(80, true);\n if (80 + 32 / 8 + nFaces * faceSize === reader.byteLength) {\n return true;\n }\n // US-ASCII begin with 's', 'o', 'l', 'i', 'd'\n const ascii = [115, 111, 108, 105, 100];\n for (let off = 0; off < 5; off++) {\n if (reader.getUint8(off) !== ascii[off]) {\n return true;\n }\n }\n return false;\n }\n _parseBinary(mesh, data) {\n const reader = new DataView(data);\n const faces = reader.getUint32(80, true);\n const dataOffset = 84;\n const faceLength = 12 * 4 + 2;\n let offset = 0;\n const positions = new Float32Array(faces * 3 * 3);\n const normals = new Float32Array(faces * 3 * 3);\n const indices = new Uint32Array(faces * 3);\n let indicesCount = 0;\n for (let face = 0; face < faces; face++) {\n const start = dataOffset + face * faceLength;\n const normalX = reader.getFloat32(start, true);\n const normalY = reader.getFloat32(start + 4, true);\n const normalZ = reader.getFloat32(start + 8, true);\n for (let i = 1; i <= 3; i++) {\n const vertexstart = start + i * 12;\n // ordering is intentional to match ascii import\n positions[offset] = reader.getFloat32(vertexstart, true);\n normals[offset] = normalX;\n if (!STLFileLoader.DO_NOT_ALTER_FILE_COORDINATES) {\n positions[offset + 2] = reader.getFloat32(vertexstart + 4, true);\n positions[offset + 1] = reader.getFloat32(vertexstart + 8, true);\n normals[offset + 2] = normalY;\n normals[offset + 1] = normalZ;\n }\n else {\n positions[offset + 1] = reader.getFloat32(vertexstart + 4, true);\n positions[offset + 2] = reader.getFloat32(vertexstart + 8, true);\n normals[offset + 1] = normalY;\n normals[offset + 2] = normalZ;\n }\n offset += 3;\n }\n if (STLFileLoader.DO_NOT_ALTER_FILE_COORDINATES) {\n indices[indicesCount] = indicesCount;\n indices[indicesCount + 1] = indicesCount + 2;\n indices[indicesCount + 2] = indicesCount + 1;\n indicesCount += 3;\n }\n else {\n indices[indicesCount] = indicesCount++;\n indices[indicesCount] = indicesCount++;\n indices[indicesCount] = indicesCount++;\n }\n }\n mesh.setVerticesData(VertexBuffer.PositionKind, positions);\n mesh.setVerticesData(VertexBuffer.NormalKind, normals);\n mesh.setIndices(indices);\n mesh.computeWorldMatrix(true);\n }\n _parseASCII(mesh, solidData) {\n const positions = [];\n const normals = [];\n const indices = [];\n let indicesCount = 0;\n //load facets, ignoring loop as the standard doesn't define it can contain more than vertices\n let matches;\n while ((matches = this.facetsPattern.exec(solidData))) {\n const facet = matches[1];\n //one normal per face\n const normalMatches = this.normalPattern.exec(facet);\n this.normalPattern.lastIndex = 0;\n if (!normalMatches) {\n continue;\n }\n const normal = [Number(normalMatches[1]), Number(normalMatches[5]), Number(normalMatches[3])];\n let vertexMatch;\n while ((vertexMatch = this.vertexPattern.exec(facet))) {\n if (!STLFileLoader.DO_NOT_ALTER_FILE_COORDINATES) {\n positions.push(Number(vertexMatch[1]), Number(vertexMatch[5]), Number(vertexMatch[3]));\n normals.push(normal[0], normal[1], normal[2]);\n }\n else {\n positions.push(Number(vertexMatch[1]), Number(vertexMatch[3]), Number(vertexMatch[5]));\n // Flipping the second and third component because inverted\n // when normal was declared.\n normals.push(normal[0], normal[2], normal[1]);\n }\n }\n if (STLFileLoader.DO_NOT_ALTER_FILE_COORDINATES) {\n indices.push(indicesCount, indicesCount + 2, indicesCount + 1);\n indicesCount += 3;\n }\n else {\n indices.push(indicesCount++, indicesCount++, indicesCount++);\n }\n this.vertexPattern.lastIndex = 0;\n }\n this.facetsPattern.lastIndex = 0;\n mesh.setVerticesData(VertexBuffer.PositionKind, positions);\n mesh.setVerticesData(VertexBuffer.NormalKind, normals);\n mesh.setIndices(indices);\n mesh.computeWorldMatrix(true);\n }\n}\n/**\n * Defines if Y and Z axes are swapped or not when loading an STL file.\n * The default is false to maintain backward compatibility. When set to\n * true, coordinates from the STL file are used without change.\n */\nSTLFileLoader.DO_NOT_ALTER_FILE_COORDINATES = false;\nregisterSceneLoaderPlugin(new STLFileLoader());\n//# sourceMappingURL=stlFileLoader.js.map"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{al as t,M as e,T as s,V as n,y as r}from"./index-BHIM4QBr.esm.min.js";import{A as i}from"./assetContainer-DLSDgjTx.esm.min.js";import"./standardMaterial-h3ccobBt.esm.min.js";class a{constructor(){this.solidPattern=/solid (\S*)([\S\s]*?)endsolid[ ]*(\S*)/g,this.facetsPattern=/facet([\s\S]*?)endfacet/g,this.normalPattern=/normal[\s]+([-+]?[0-9]+\.?[0-9]*([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+/g,this.vertexPattern=/vertex[\s]+([-+]?[0-9]+\.?[0-9]*([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+[\s]+([-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?)+/g,this.name=t.name,this.extensions=t.extensions}importMesh(t,n,r,i,a){let o;if("string"!=typeof r){if(this._isBinary(r)){const t=new e("stlmesh",n);return this._parseBinary(t,r),a&&a.push(t),!0}r=(new TextDecoder).decode(new Uint8Array(r))}for(;o=this.solidPattern.exec(r);){let r=o[1];const i=o[3];if(i&&r!=i)return s.Error("Error in STL, solid name != endsolid name"),!1;if(t&&r)if(t instanceof Array){if(!t.indexOf(r))continue}else if(r!==t)continue;r=r||"stlmesh";const l=new e(r,n);this._parseASCII(l,o[2]),a&&a.push(l)}return!0}load(t,e,s){return this.importMesh(null,t,e,s,null)}loadAssetContainer(t,e,s){const n=new i(t);return t._blockEntityCollection=!0,this.importMesh(null,t,e,s,n.meshes),t._blockEntityCollection=!1,n}_isBinary(t){const e=new DataView(t);if(e.byteLength<=80)return!1;if(84+50*e.getUint32(80,!0)===e.byteLength)return!0;const s=[115,111,108,105,100];for(let t=0;t<5;t++)if(e.getUint8(t)!==s[t])return!0;return!1}_parseBinary(t,e){const s=new DataView(e),r=s.getUint32(80,!0);let i=0;const o=new Float32Array(3*r*3),l=new Float32Array(3*r*3),c=new Uint32Array(3*r);let m=0;for(let t=0;t<r;t++){const e=84+50*t,n=s.getFloat32(e,!0),r=s.getFloat32(e+4,!0),u=s.getFloat32(e+8,!0);for(let t=1;t<=3;t++){const c=e+12*t;o[i]=s.getFloat32(c,!0),l[i]=n,a.DO_NOT_ALTER_FILE_COORDINATES?(o[i+1]=s.getFloat32(c+4,!0),o[i+2]=s.getFloat32(c+8,!0),l[i+1]=r,l[i+2]=u):(o[i+2]=s.getFloat32(c+4,!0),o[i+1]=s.getFloat32(c+8,!0),l[i+2]=r,l[i+1]=u),i+=3}a.DO_NOT_ALTER_FILE_COORDINATES?(c[m]=m,c[m+1]=m+2,c[m+2]=m+1,m+=3):(c[m]=m++,c[m]=m++,c[m]=m++)}t.setVerticesData(n.PositionKind,o),t.setVerticesData(n.NormalKind,l),t.setIndices(c),t.computeWorldMatrix(!0)}_parseASCII(t,e){const s=[],r=[],i=[];let o,l=0;for(;o=this.facetsPattern.exec(e);){const t=o[1],e=this.normalPattern.exec(t);if(this.normalPattern.lastIndex=0,!e)continue;const n=[Number(e[1]),Number(e[5]),Number(e[3])];let c;for(;c=this.vertexPattern.exec(t);)a.DO_NOT_ALTER_FILE_COORDINATES?(s.push(Number(c[1]),Number(c[3]),Number(c[5])),r.push(n[0],n[2],n[1])):(s.push(Number(c[1]),Number(c[5]),Number(c[3])),r.push(n[0],n[1],n[2]));a.DO_NOT_ALTER_FILE_COORDINATES?(i.push(l,l+2,l+1),l+=3):i.push(l++,l++,l++),this.vertexPattern.lastIndex=0}this.facetsPattern.lastIndex=0,t.setVerticesData(n.PositionKind,s),t.setVerticesData(n.NormalKind,r),t.setIndices(i),t.computeWorldMatrix(!0)}}a.DO_NOT_ALTER_FILE_COORDINATES=!1,r(new a);export{a as STLFileLoader};
2
- //# sourceMappingURL=stlFileLoader-e2ImyWaM.esm.min.js.map