@babylonjs/core 6.14.2 → 6.16.0

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 (1070) hide show
  1. package/Actions/actionManager.js +8 -3
  2. package/Actions/actionManager.js.map +1 -1
  3. package/Behaviors/Cameras/framingBehavior.d.ts +2 -1
  4. package/Behaviors/Cameras/framingBehavior.js +3 -1
  5. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  6. package/Bones/skeleton.js +1 -0
  7. package/Bones/skeleton.js.map +1 -1
  8. package/Compute/computeEffect.js +1 -1
  9. package/Compute/computeEffect.js.map +1 -1
  10. package/{Materials/Node/nodeMaterialDecorator.d.ts → Decorators/nodeDecorator.d.ts} +6 -7
  11. package/{Materials/Node/nodeMaterialDecorator.js → Decorators/nodeDecorator.js} +3 -3
  12. package/Decorators/nodeDecorator.js.map +1 -0
  13. package/Engines/Processors/shaderCodeNode.js +1 -1
  14. package/Engines/Processors/shaderCodeNode.js.map +1 -1
  15. package/Engines/WebGL/webGL2ShaderProcessors.js +2 -1
  16. package/Engines/WebGL/webGL2ShaderProcessors.js.map +1 -1
  17. package/Engines/WebGPU/webgpuShaderProcessor.js +3 -0
  18. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  19. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +11 -10
  20. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  21. package/Engines/WebGPU/webgpuTextureHelper.js +3 -3
  22. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  23. package/Engines/nativeEngine.js +5 -4
  24. package/Engines/nativeEngine.js.map +1 -1
  25. package/Engines/thinEngine.d.ts +2 -0
  26. package/Engines/thinEngine.js +35 -4
  27. package/Engines/thinEngine.js.map +1 -1
  28. package/Engines/webgpuEngine.js +12 -2
  29. package/Engines/webgpuEngine.js.map +1 -1
  30. package/FlowGraph/Blocks/Data/flowGraphBinaryOpBlocks.d.ts +34 -0
  31. package/FlowGraph/Blocks/Data/flowGraphBinaryOpBlocks.js +29 -0
  32. package/FlowGraph/Blocks/Data/flowGraphBinaryOpBlocks.js.map +1 -0
  33. package/FlowGraph/Blocks/Data/index.d.ts +1 -0
  34. package/FlowGraph/Blocks/Data/index.js +2 -0
  35. package/FlowGraph/Blocks/Data/index.js.map +1 -0
  36. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.d.ts +23 -0
  37. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js +51 -0
  38. package/FlowGraph/Blocks/Event/flowGraphMeshPickEventBlock.js.map +1 -0
  39. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.d.ts +20 -0
  40. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js +29 -0
  41. package/FlowGraph/Blocks/Event/flowGraphSceneReadyEventBlock.js.map +1 -0
  42. package/FlowGraph/Blocks/Event/index.d.ts +2 -0
  43. package/FlowGraph/Blocks/Event/index.js +3 -0
  44. package/FlowGraph/Blocks/Event/index.js.map +1 -0
  45. package/FlowGraph/Blocks/Execution/flowGraphForLoopBlock.d.ts +43 -0
  46. package/FlowGraph/Blocks/Execution/flowGraphForLoopBlock.js +40 -0
  47. package/FlowGraph/Blocks/Execution/flowGraphForLoopBlock.js.map +1 -0
  48. package/FlowGraph/Blocks/Execution/flowGraphLogBlock.d.ts +18 -0
  49. package/FlowGraph/Blocks/Execution/flowGraphLogBlock.js +21 -0
  50. package/FlowGraph/Blocks/Execution/flowGraphLogBlock.js.map +1 -0
  51. package/FlowGraph/Blocks/Execution/index.d.ts +2 -0
  52. package/FlowGraph/Blocks/Execution/index.js +3 -0
  53. package/FlowGraph/Blocks/Execution/index.js.map +1 -0
  54. package/FlowGraph/Blocks/index.d.ts +3 -0
  55. package/FlowGraph/Blocks/index.js +5 -0
  56. package/FlowGraph/Blocks/index.js.map +1 -0
  57. package/FlowGraph/flowGraph.d.ts +34 -0
  58. package/FlowGraph/flowGraph.js +54 -0
  59. package/FlowGraph/flowGraph.js.map +1 -0
  60. package/FlowGraph/flowGraphBlock.d.ts +33 -0
  61. package/FlowGraph/flowGraphBlock.js +39 -0
  62. package/FlowGraph/flowGraphBlock.js.map +1 -0
  63. package/FlowGraph/flowGraphConnection.d.ts +38 -0
  64. package/FlowGraph/flowGraphConnection.js +40 -0
  65. package/FlowGraph/flowGraphConnection.js.map +1 -0
  66. package/FlowGraph/flowGraphDataConnection.d.ts +15 -0
  67. package/FlowGraph/flowGraphDataConnection.js +30 -0
  68. package/FlowGraph/flowGraphDataConnection.js.map +1 -0
  69. package/FlowGraph/flowGraphEventBlock.d.ts +20 -0
  70. package/FlowGraph/flowGraphEventBlock.js +15 -0
  71. package/FlowGraph/flowGraphEventBlock.js.map +1 -0
  72. package/FlowGraph/flowGraphExecutionBlock.d.ts +24 -0
  73. package/FlowGraph/flowGraphExecutionBlock.js +27 -0
  74. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -0
  75. package/FlowGraph/flowGraphSignalConnection.d.ts +14 -0
  76. package/FlowGraph/flowGraphSignalConnection.js +22 -0
  77. package/FlowGraph/flowGraphSignalConnection.js.map +1 -0
  78. package/FlowGraph/flowGraphWithOnDoneExecutionBlock.d.ts +7 -0
  79. package/FlowGraph/flowGraphWithOnDoneExecutionBlock.js +8 -0
  80. package/FlowGraph/flowGraphWithOnDoneExecutionBlock.js.map +1 -0
  81. package/FlowGraph/index.d.ts +6 -0
  82. package/FlowGraph/index.js +8 -0
  83. package/FlowGraph/index.js.map +1 -0
  84. package/Gizmos/lightGizmo.d.ts +5 -0
  85. package/Gizmos/lightGizmo.js +21 -7
  86. package/Gizmos/lightGizmo.js.map +1 -1
  87. package/Gizmos/planeRotationGizmo.d.ts +6 -0
  88. package/Gizmos/planeRotationGizmo.js +5 -1
  89. package/Gizmos/planeRotationGizmo.js.map +1 -1
  90. package/Gizmos/rotationGizmo.d.ts +8 -0
  91. package/Gizmos/rotationGizmo.js +15 -0
  92. package/Gizmos/rotationGizmo.js.map +1 -1
  93. package/Layers/layer.js +1 -1
  94. package/Layers/layer.js.map +1 -1
  95. package/Lights/Shadows/cascadedShadowGenerator.d.ts +2 -1
  96. package/Lights/Shadows/cascadedShadowGenerator.js +4 -3
  97. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  98. package/Lights/Shadows/shadowGenerator.d.ts +3 -1
  99. package/Lights/Shadows/shadowGenerator.js +4 -2
  100. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  101. package/Lights/directionalLight.d.ts +1 -1
  102. package/Lights/directionalLight.js.map +1 -1
  103. package/Lights/hemisphericLight.d.ts +1 -1
  104. package/Lights/hemisphericLight.js.map +1 -1
  105. package/Lights/light.d.ts +1 -1
  106. package/Lights/light.js.map +1 -1
  107. package/Lights/pointLight.d.ts +1 -1
  108. package/Lights/pointLight.js.map +1 -1
  109. package/Lights/spotLight.d.ts +1 -1
  110. package/Lights/spotLight.js.map +1 -1
  111. package/Loading/sceneLoader.js +2 -0
  112. package/Loading/sceneLoader.js.map +1 -1
  113. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +13 -13
  114. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  115. package/Materials/Node/Blocks/Dual/fogBlock.js +6 -6
  116. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  117. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +11 -11
  118. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  119. package/Materials/Node/Blocks/Dual/lightBlock.js +16 -16
  120. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  121. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +27 -27
  122. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  123. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +1 -1
  124. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
  125. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +8 -8
  126. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  127. package/Materials/Node/Blocks/Dual/textureBlock.js +28 -28
  128. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  129. package/Materials/Node/Blocks/Fragment/TBNBlock.js +3 -5
  130. package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
  131. package/Materials/Node/Blocks/Fragment/derivativeBlock.js +2 -2
  132. package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
  133. package/Materials/Node/Blocks/Fragment/discardBlock.js +1 -1
  134. package/Materials/Node/Blocks/Fragment/discardBlock.js.map +1 -1
  135. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -1
  136. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  137. package/Materials/Node/Blocks/Fragment/fragDepthBlock.js +1 -1
  138. package/Materials/Node/Blocks/Fragment/fragDepthBlock.js.map +1 -1
  139. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +15 -15
  140. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  141. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +1 -1
  142. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
  143. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +6 -6
  144. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
  145. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +13 -13
  146. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  147. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +13 -13
  148. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  149. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -1
  150. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  151. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +5 -5
  152. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
  153. package/Materials/Node/Blocks/Fragment/shadowMapBlock.js +7 -7
  154. package/Materials/Node/Blocks/Fragment/shadowMapBlock.js.map +1 -1
  155. package/Materials/Node/Blocks/Fragment/twirlBlock.js +3 -3
  156. package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -1
  157. package/Materials/Node/Blocks/Input/inputBlock.js +11 -11
  158. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  159. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +6 -6
  160. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  161. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +9 -9
  162. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  163. package/Materials/Node/Blocks/PBR/iridescenceBlock.js +1 -1
  164. package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
  165. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +47 -47
  166. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  167. package/Materials/Node/Blocks/PBR/reflectionBlock.js +9 -9
  168. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  169. package/Materials/Node/Blocks/PBR/refractionBlock.js +14 -14
  170. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  171. package/Materials/Node/Blocks/PBR/sheenBlock.js +4 -4
  172. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  173. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -1
  174. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  175. package/Materials/Node/Blocks/Particle/particleTextureBlock.js +8 -8
  176. package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
  177. package/Materials/Node/Blocks/Teleport/index.d.ts +2 -0
  178. package/Materials/Node/Blocks/Teleport/index.js +3 -0
  179. package/Materials/Node/Blocks/Teleport/index.js.map +1 -0
  180. package/Materials/Node/Blocks/Teleport/teleportInBlock.d.ts +42 -0
  181. package/Materials/Node/Blocks/Teleport/teleportInBlock.js +83 -0
  182. package/Materials/Node/Blocks/Teleport/teleportInBlock.js.map +1 -0
  183. package/Materials/Node/Blocks/Teleport/teleportOutBlock.d.ts +59 -0
  184. package/Materials/Node/Blocks/Teleport/teleportOutBlock.js +122 -0
  185. package/Materials/Node/Blocks/Teleport/teleportOutBlock.js.map +1 -0
  186. package/Materials/Node/Blocks/Vertex/bonesBlock.js +5 -5
  187. package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
  188. package/Materials/Node/Blocks/Vertex/instancesBlock.js +11 -11
  189. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  190. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +11 -11
  191. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  192. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +39 -39
  193. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  194. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +3 -3
  195. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  196. package/Materials/Node/Blocks/addBlock.js +1 -1
  197. package/Materials/Node/Blocks/addBlock.js.map +1 -1
  198. package/Materials/Node/Blocks/arcTan2Block.js +1 -1
  199. package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
  200. package/Materials/Node/Blocks/clampBlock.js +4 -4
  201. package/Materials/Node/Blocks/clampBlock.js.map +1 -1
  202. package/Materials/Node/Blocks/cloudBlock.js +7 -7
  203. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  204. package/Materials/Node/Blocks/colorMergerBlock.js +8 -8
  205. package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
  206. package/Materials/Node/Blocks/colorSplitterBlock.js +5 -5
  207. package/Materials/Node/Blocks/colorSplitterBlock.js.map +1 -1
  208. package/Materials/Node/Blocks/conditionalBlock.js +10 -10
  209. package/Materials/Node/Blocks/conditionalBlock.js.map +1 -1
  210. package/Materials/Node/Blocks/crossBlock.js +1 -1
  211. package/Materials/Node/Blocks/crossBlock.js.map +1 -1
  212. package/Materials/Node/Blocks/curveBlock.js +5 -5
  213. package/Materials/Node/Blocks/curveBlock.js.map +1 -1
  214. package/Materials/Node/Blocks/customBlock.js +4 -4
  215. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  216. package/Materials/Node/Blocks/desaturateBlock.js +4 -4
  217. package/Materials/Node/Blocks/desaturateBlock.js.map +1 -1
  218. package/Materials/Node/Blocks/distanceBlock.js +1 -1
  219. package/Materials/Node/Blocks/distanceBlock.js.map +1 -1
  220. package/Materials/Node/Blocks/divideBlock.js +1 -1
  221. package/Materials/Node/Blocks/divideBlock.js.map +1 -1
  222. package/Materials/Node/Blocks/dotBlock.js +1 -1
  223. package/Materials/Node/Blocks/dotBlock.js.map +1 -1
  224. package/Materials/Node/Blocks/elbowBlock.js +1 -1
  225. package/Materials/Node/Blocks/elbowBlock.js.map +1 -1
  226. package/Materials/Node/Blocks/fresnelBlock.js +1 -1
  227. package/Materials/Node/Blocks/fresnelBlock.js.map +1 -1
  228. package/Materials/Node/Blocks/gradientBlock.js +8 -8
  229. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  230. package/Materials/Node/Blocks/index.d.ts +1 -0
  231. package/Materials/Node/Blocks/index.js +1 -0
  232. package/Materials/Node/Blocks/index.js.map +1 -1
  233. package/Materials/Node/Blocks/lengthBlock.js +1 -1
  234. package/Materials/Node/Blocks/lengthBlock.js.map +1 -1
  235. package/Materials/Node/Blocks/lerpBlock.js +1 -1
  236. package/Materials/Node/Blocks/lerpBlock.js.map +1 -1
  237. package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -1
  238. package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
  239. package/Materials/Node/Blocks/matrixDeterminantBlock.js +1 -1
  240. package/Materials/Node/Blocks/matrixDeterminantBlock.js.map +1 -1
  241. package/Materials/Node/Blocks/matrixTransposeBlock.js +1 -1
  242. package/Materials/Node/Blocks/matrixTransposeBlock.js.map +1 -1
  243. package/Materials/Node/Blocks/maxBlock.js +1 -1
  244. package/Materials/Node/Blocks/maxBlock.js.map +1 -1
  245. package/Materials/Node/Blocks/meshAttributeExistsBlock.js +7 -7
  246. package/Materials/Node/Blocks/meshAttributeExistsBlock.js.map +1 -1
  247. package/Materials/Node/Blocks/minBlock.js +1 -1
  248. package/Materials/Node/Blocks/minBlock.js.map +1 -1
  249. package/Materials/Node/Blocks/modBlock.js +1 -1
  250. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  251. package/Materials/Node/Blocks/multiplyBlock.js +1 -1
  252. package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
  253. package/Materials/Node/Blocks/nLerpBlock.js +1 -1
  254. package/Materials/Node/Blocks/nLerpBlock.js.map +1 -1
  255. package/Materials/Node/Blocks/negateBlock.js +1 -1
  256. package/Materials/Node/Blocks/negateBlock.js.map +1 -1
  257. package/Materials/Node/Blocks/normalBlendBlock.js +6 -6
  258. package/Materials/Node/Blocks/normalBlendBlock.js.map +1 -1
  259. package/Materials/Node/Blocks/normalizeBlock.js +1 -1
  260. package/Materials/Node/Blocks/normalizeBlock.js.map +1 -1
  261. package/Materials/Node/Blocks/oneMinusBlock.js +1 -1
  262. package/Materials/Node/Blocks/oneMinusBlock.js.map +1 -1
  263. package/Materials/Node/Blocks/posterizeBlock.js +1 -1
  264. package/Materials/Node/Blocks/posterizeBlock.js.map +1 -1
  265. package/Materials/Node/Blocks/powBlock.js +1 -1
  266. package/Materials/Node/Blocks/powBlock.js.map +1 -1
  267. package/Materials/Node/Blocks/randomNumberBlock.js +1 -1
  268. package/Materials/Node/Blocks/randomNumberBlock.js.map +1 -1
  269. package/Materials/Node/Blocks/reciprocalBlock.js +2 -2
  270. package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
  271. package/Materials/Node/Blocks/reflectBlock.js +1 -1
  272. package/Materials/Node/Blocks/reflectBlock.js.map +1 -1
  273. package/Materials/Node/Blocks/refractBlock.js +1 -1
  274. package/Materials/Node/Blocks/refractBlock.js.map +1 -1
  275. package/Materials/Node/Blocks/remapBlock.js +4 -4
  276. package/Materials/Node/Blocks/remapBlock.js.map +1 -1
  277. package/Materials/Node/Blocks/replaceColorBlock.js +6 -6
  278. package/Materials/Node/Blocks/replaceColorBlock.js.map +1 -1
  279. package/Materials/Node/Blocks/rotate2dBlock.js +1 -1
  280. package/Materials/Node/Blocks/rotate2dBlock.js.map +1 -1
  281. package/Materials/Node/Blocks/scaleBlock.js +1 -1
  282. package/Materials/Node/Blocks/scaleBlock.js.map +1 -1
  283. package/Materials/Node/Blocks/simplexPerlin3DBlock.js +41 -41
  284. package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
  285. package/Materials/Node/Blocks/smoothStepBlock.js +1 -1
  286. package/Materials/Node/Blocks/smoothStepBlock.js.map +1 -1
  287. package/Materials/Node/Blocks/stepBlock.js +1 -1
  288. package/Materials/Node/Blocks/stepBlock.js.map +1 -1
  289. package/Materials/Node/Blocks/subtractBlock.js +1 -1
  290. package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
  291. package/Materials/Node/Blocks/transformBlock.js +13 -14
  292. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  293. package/Materials/Node/Blocks/triPlanarBlock.js +17 -17
  294. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  295. package/Materials/Node/Blocks/trigonometryBlock.js +2 -2
  296. package/Materials/Node/Blocks/trigonometryBlock.js.map +1 -1
  297. package/Materials/Node/Blocks/vectorMergerBlock.js +22 -22
  298. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  299. package/Materials/Node/Blocks/vectorSplitterBlock.js +8 -8
  300. package/Materials/Node/Blocks/vectorSplitterBlock.js.map +1 -1
  301. package/Materials/Node/Blocks/viewDirectionBlock.js +1 -1
  302. package/Materials/Node/Blocks/viewDirectionBlock.js.map +1 -1
  303. package/Materials/Node/Blocks/voronoiNoiseBlock.js +5 -5
  304. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
  305. package/Materials/Node/Blocks/waveBlock.js +3 -4
  306. package/Materials/Node/Blocks/waveBlock.js.map +1 -1
  307. package/Materials/Node/Blocks/worleyNoise3DBlock.js +155 -155
  308. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  309. package/Materials/Node/index.d.ts +1 -1
  310. package/Materials/Node/index.js +1 -1
  311. package/Materials/Node/index.js.map +1 -1
  312. package/Materials/Node/nodeMaterial.d.ts +1 -0
  313. package/Materials/Node/nodeMaterial.js +50 -15
  314. package/Materials/Node/nodeMaterial.js.map +1 -1
  315. package/Materials/Node/nodeMaterialBlock.d.ts +14 -2
  316. package/Materials/Node/nodeMaterialBlock.js +34 -11
  317. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  318. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +1 -1
  319. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  320. package/Materials/Node/nodeMaterialBuildState.js +36 -36
  321. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  322. package/Materials/Node/nodeMaterialBuildStateSharedData.js +4 -4
  323. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  324. package/Materials/Textures/Filtering/hdrFiltering.js +1 -0
  325. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  326. package/Materials/effect.js +1 -1
  327. package/Materials/effect.js.map +1 -1
  328. package/Materials/effectRenderer.d.ts +4 -0
  329. package/Materials/effectRenderer.js +8 -2
  330. package/Materials/effectRenderer.js.map +1 -1
  331. package/Materials/greasedLinePluginMaterial.d.ts +4 -0
  332. package/Materials/greasedLinePluginMaterial.js +12 -1
  333. package/Materials/greasedLinePluginMaterial.js.map +1 -1
  334. package/Materials/materialPluginManager.js +5 -5
  335. package/Materials/materialPluginManager.js.map +1 -1
  336. package/Materials/meshDebugPluginMaterial.d.ts +4 -15
  337. package/Materials/meshDebugPluginMaterial.js +8 -29
  338. package/Materials/meshDebugPluginMaterial.js.map +1 -1
  339. package/Materials/shadowDepthWrapper.js +5 -5
  340. package/Materials/shadowDepthWrapper.js.map +1 -1
  341. package/Meshes/Builders/boxBuilder.d.ts +31 -0
  342. package/Meshes/Builders/boxBuilder.js +65 -1
  343. package/Meshes/Builders/boxBuilder.js.map +1 -1
  344. package/Meshes/Builders/capsuleBuilder.js +3 -3
  345. package/Meshes/Builders/capsuleBuilder.js.map +1 -1
  346. package/Meshes/Builders/cylinderBuilder.js +2 -2
  347. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  348. package/Meshes/Builders/groundBuilder.js +2 -2
  349. package/Meshes/Builders/groundBuilder.js.map +1 -1
  350. package/Meshes/Builders/icoSphereBuilder.js +1 -1
  351. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  352. package/Meshes/Builders/linesBuilder.d.ts +1 -1
  353. package/Meshes/Builders/linesBuilder.js +1 -1
  354. package/Meshes/Builders/linesBuilder.js.map +1 -1
  355. package/Meshes/Builders/sphereBuilder.js +1 -1
  356. package/Meshes/Builders/sphereBuilder.js.map +1 -1
  357. package/Meshes/Builders/torusBuilder.js +1 -1
  358. package/Meshes/Builders/torusBuilder.js.map +1 -1
  359. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.d.ts +85 -0
  360. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js +210 -0
  361. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js.map +1 -0
  362. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.d.ts +68 -0
  363. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js +186 -0
  364. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js.map +1 -0
  365. package/Meshes/Node/Blocks/IntFloatConverterBlock.d.ts +35 -0
  366. package/Meshes/Node/Blocks/IntFloatConverterBlock.js +81 -0
  367. package/Meshes/Node/Blocks/IntFloatConverterBlock.js.map +1 -0
  368. package/Meshes/Node/Blocks/Matrices/alignBlock.d.ts +31 -0
  369. package/Meshes/Node/Blocks/Matrices/alignBlock.js +58 -0
  370. package/Meshes/Node/Blocks/Matrices/alignBlock.js.map +1 -0
  371. package/Meshes/Node/Blocks/Matrices/rotationXBlock.d.ts +28 -0
  372. package/Meshes/Node/Blocks/Matrices/rotationXBlock.js +53 -0
  373. package/Meshes/Node/Blocks/Matrices/rotationXBlock.js.map +1 -0
  374. package/Meshes/Node/Blocks/Matrices/rotationYBlock.d.ts +28 -0
  375. package/Meshes/Node/Blocks/Matrices/rotationYBlock.js +53 -0
  376. package/Meshes/Node/Blocks/Matrices/rotationYBlock.js.map +1 -0
  377. package/Meshes/Node/Blocks/Matrices/rotationZBlock.d.ts +28 -0
  378. package/Meshes/Node/Blocks/Matrices/rotationZBlock.js +53 -0
  379. package/Meshes/Node/Blocks/Matrices/rotationZBlock.js.map +1 -0
  380. package/Meshes/Node/Blocks/Matrices/scalingBlock.d.ts +28 -0
  381. package/Meshes/Node/Blocks/Matrices/scalingBlock.js +54 -0
  382. package/Meshes/Node/Blocks/Matrices/scalingBlock.js.map +1 -0
  383. package/Meshes/Node/Blocks/Matrices/translationBlock.d.ts +28 -0
  384. package/Meshes/Node/Blocks/Matrices/translationBlock.js +54 -0
  385. package/Meshes/Node/Blocks/Matrices/translationBlock.js.map +1 -0
  386. package/Meshes/Node/Blocks/Set/setColorsBlock.d.ts +44 -0
  387. package/Meshes/Node/Blocks/Set/setColorsBlock.js +91 -0
  388. package/Meshes/Node/Blocks/Set/setColorsBlock.js.map +1 -0
  389. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.d.ts +36 -0
  390. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js +84 -0
  391. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js.map +1 -0
  392. package/Meshes/Node/Blocks/Set/setNormalsBlock.d.ts +44 -0
  393. package/Meshes/Node/Blocks/Set/setNormalsBlock.js +91 -0
  394. package/Meshes/Node/Blocks/Set/setNormalsBlock.js.map +1 -0
  395. package/Meshes/Node/Blocks/Set/setPositionsBlock.d.ts +44 -0
  396. package/Meshes/Node/Blocks/Set/setPositionsBlock.js +82 -0
  397. package/Meshes/Node/Blocks/Set/setPositionsBlock.js.map +1 -0
  398. package/Meshes/Node/Blocks/Set/setTangentsBlock.d.ts +44 -0
  399. package/Meshes/Node/Blocks/Set/setTangentsBlock.js +91 -0
  400. package/Meshes/Node/Blocks/Set/setTangentsBlock.js.map +1 -0
  401. package/Meshes/Node/Blocks/Set/setUVsBlock.d.ts +55 -0
  402. package/Meshes/Node/Blocks/Set/setUVsBlock.js +145 -0
  403. package/Meshes/Node/Blocks/Set/setUVsBlock.js.map +1 -0
  404. package/Meshes/Node/Blocks/Sources/boxBlock.d.ts +68 -0
  405. package/Meshes/Node/Blocks/Sources/boxBlock.js +175 -0
  406. package/Meshes/Node/Blocks/Sources/boxBlock.js.map +1 -0
  407. package/Meshes/Node/Blocks/Sources/capsuleBlock.d.ts +52 -0
  408. package/Meshes/Node/Blocks/Sources/capsuleBlock.js +117 -0
  409. package/Meshes/Node/Blocks/Sources/capsuleBlock.js.map +1 -0
  410. package/Meshes/Node/Blocks/Sources/cylinderBlock.d.ts +64 -0
  411. package/Meshes/Node/Blocks/Sources/cylinderBlock.js +143 -0
  412. package/Meshes/Node/Blocks/Sources/cylinderBlock.js.map +1 -0
  413. package/Meshes/Node/Blocks/Sources/discBlock.d.ts +48 -0
  414. package/Meshes/Node/Blocks/Sources/discBlock.js +104 -0
  415. package/Meshes/Node/Blocks/Sources/discBlock.js.map +1 -0
  416. package/Meshes/Node/Blocks/Sources/gridBlock.d.ts +56 -0
  417. package/Meshes/Node/Blocks/Sources/gridBlock.js +125 -0
  418. package/Meshes/Node/Blocks/Sources/gridBlock.js.map +1 -0
  419. package/Meshes/Node/Blocks/Sources/icoSphereBlock.d.ts +56 -0
  420. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js +120 -0
  421. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js.map +1 -0
  422. package/Meshes/Node/Blocks/Sources/meshBlock.d.ts +38 -0
  423. package/Meshes/Node/Blocks/Sources/meshBlock.js +78 -0
  424. package/Meshes/Node/Blocks/Sources/meshBlock.js.map +1 -0
  425. package/Meshes/Node/Blocks/Sources/planeBlock.d.ts +48 -0
  426. package/Meshes/Node/Blocks/Sources/planeBlock.js +118 -0
  427. package/Meshes/Node/Blocks/Sources/planeBlock.js.map +1 -0
  428. package/Meshes/Node/Blocks/Sources/sphereBlock.d.ts +64 -0
  429. package/Meshes/Node/Blocks/Sources/sphereBlock.js +136 -0
  430. package/Meshes/Node/Blocks/Sources/sphereBlock.js.map +1 -0
  431. package/Meshes/Node/Blocks/Sources/torusBlock.d.ts +48 -0
  432. package/Meshes/Node/Blocks/Sources/torusBlock.js +104 -0
  433. package/Meshes/Node/Blocks/Sources/torusBlock.js.map +1 -0
  434. package/Meshes/Node/Blocks/Teleport/teleportInBlock.d.ts +37 -0
  435. package/Meshes/Node/Blocks/Teleport/teleportInBlock.js +75 -0
  436. package/Meshes/Node/Blocks/Teleport/teleportInBlock.js.map +1 -0
  437. package/Meshes/Node/Blocks/Teleport/teleportOutBlock.d.ts +50 -0
  438. package/Meshes/Node/Blocks/Teleport/teleportOutBlock.js +105 -0
  439. package/Meshes/Node/Blocks/Teleport/teleportOutBlock.js.map +1 -0
  440. package/Meshes/Node/Blocks/computeNormalsBlock.d.ts +26 -0
  441. package/Meshes/Node/Blocks/computeNormalsBlock.js +49 -0
  442. package/Meshes/Node/Blocks/computeNormalsBlock.js.map +1 -0
  443. package/Meshes/Node/Blocks/conditionBlock.d.ts +72 -0
  444. package/Meshes/Node/Blocks/conditionBlock.js +174 -0
  445. package/Meshes/Node/Blocks/conditionBlock.js.map +1 -0
  446. package/Meshes/Node/Blocks/debugBlock.d.ts +34 -0
  447. package/Meshes/Node/Blocks/debugBlock.js +63 -0
  448. package/Meshes/Node/Blocks/debugBlock.js.map +1 -0
  449. package/Meshes/Node/Blocks/geometryElbowBlock.d.ts +31 -0
  450. package/Meshes/Node/Blocks/geometryElbowBlock.js +53 -0
  451. package/Meshes/Node/Blocks/geometryElbowBlock.js.map +1 -0
  452. package/Meshes/Node/Blocks/geometryInputBlock.d.ts +71 -0
  453. package/Meshes/Node/Blocks/geometryInputBlock.js +218 -0
  454. package/Meshes/Node/Blocks/geometryInputBlock.js.map +1 -0
  455. package/Meshes/Node/Blocks/geometryOutputBlock.d.ts +30 -0
  456. package/Meshes/Node/Blocks/geometryOutputBlock.js +42 -0
  457. package/Meshes/Node/Blocks/geometryOutputBlock.js.map +1 -0
  458. package/Meshes/Node/Blocks/geometryTransformBlock.d.ts +53 -0
  459. package/Meshes/Node/Blocks/geometryTransformBlock.js +134 -0
  460. package/Meshes/Node/Blocks/geometryTransformBlock.js.map +1 -0
  461. package/Meshes/Node/Blocks/geometryTrigonometryBlock.d.ts +77 -0
  462. package/Meshes/Node/Blocks/geometryTrigonometryBlock.js +248 -0
  463. package/Meshes/Node/Blocks/geometryTrigonometryBlock.js.map +1 -0
  464. package/Meshes/Node/Blocks/mapRangeBlock.d.ts +42 -0
  465. package/Meshes/Node/Blocks/mapRangeBlock.js +84 -0
  466. package/Meshes/Node/Blocks/mapRangeBlock.js.map +1 -0
  467. package/Meshes/Node/Blocks/mathBlock.d.ts +58 -0
  468. package/Meshes/Node/Blocks/mathBlock.js +233 -0
  469. package/Meshes/Node/Blocks/mathBlock.js.map +1 -0
  470. package/Meshes/Node/Blocks/mergeGeometryBlock.d.ts +55 -0
  471. package/Meshes/Node/Blocks/mergeGeometryBlock.js +123 -0
  472. package/Meshes/Node/Blocks/mergeGeometryBlock.js.map +1 -0
  473. package/Meshes/Node/Blocks/noiseBlock.d.ts +49 -0
  474. package/Meshes/Node/Blocks/noiseBlock.js +149 -0
  475. package/Meshes/Node/Blocks/noiseBlock.js.map +1 -0
  476. package/Meshes/Node/Blocks/normalizeVectorBlock.d.ts +27 -0
  477. package/Meshes/Node/Blocks/normalizeVectorBlock.js +51 -0
  478. package/Meshes/Node/Blocks/normalizeVectorBlock.js.map +1 -0
  479. package/Meshes/Node/Blocks/randomBlock.d.ts +31 -0
  480. package/Meshes/Node/Blocks/randomBlock.js +99 -0
  481. package/Meshes/Node/Blocks/randomBlock.js.map +1 -0
  482. package/Meshes/Node/Blocks/vectorConverterBlock.d.ts +84 -0
  483. package/Meshes/Node/Blocks/vectorConverterBlock.js +238 -0
  484. package/Meshes/Node/Blocks/vectorConverterBlock.js.map +1 -0
  485. package/Meshes/Node/Enums/nodeGeometryConnectionPointTypes.d.ts +27 -0
  486. package/Meshes/Node/Enums/nodeGeometryConnectionPointTypes.js +29 -0
  487. package/Meshes/Node/Enums/nodeGeometryConnectionPointTypes.js.map +1 -0
  488. package/Meshes/Node/Enums/nodeGeometryContextualSources.d.ts +33 -0
  489. package/Meshes/Node/Enums/nodeGeometryContextualSources.js +35 -0
  490. package/Meshes/Node/Enums/nodeGeometryContextualSources.js.map +1 -0
  491. package/Meshes/Node/Interfaces/nodeGeometryExecutionContext.d.ts +25 -0
  492. package/Meshes/Node/Interfaces/nodeGeometryExecutionContext.js +2 -0
  493. package/Meshes/Node/Interfaces/nodeGeometryExecutionContext.js.map +1 -0
  494. package/Meshes/Node/index.d.ts +49 -0
  495. package/Meshes/Node/index.js +50 -0
  496. package/Meshes/Node/index.js.map +1 -0
  497. package/Meshes/Node/nodeGeometry.d.ts +180 -0
  498. package/Meshes/Node/nodeGeometry.js +529 -0
  499. package/Meshes/Node/nodeGeometry.js.map +1 -0
  500. package/Meshes/Node/nodeGeometryBlock.d.ts +166 -0
  501. package/Meshes/Node/nodeGeometryBlock.js +432 -0
  502. package/Meshes/Node/nodeGeometryBlock.js.map +1 -0
  503. package/Meshes/Node/nodeGeometryBlockConnectionPoint.d.ts +176 -0
  504. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js +305 -0
  505. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js.map +1 -0
  506. package/Meshes/Node/nodeGeometryBuildState.d.ts +57 -0
  507. package/Meshes/Node/nodeGeometryBuildState.js +178 -0
  508. package/Meshes/Node/nodeGeometryBuildState.js.map +1 -0
  509. package/Meshes/index.d.ts +1 -0
  510. package/Meshes/index.js +1 -0
  511. package/Meshes/index.js.map +1 -1
  512. package/Meshes/mesh.vertexData.d.ts +37 -2
  513. package/Meshes/mesh.vertexData.js +425 -95
  514. package/Meshes/mesh.vertexData.js.map +1 -1
  515. package/Meshes/meshUVSpaceRenderer.js +1 -0
  516. package/Meshes/meshUVSpaceRenderer.js.map +1 -1
  517. package/Particles/IGPUParticleSystemPlatform.d.ts +1 -0
  518. package/Particles/IGPUParticleSystemPlatform.js.map +1 -1
  519. package/Particles/computeShaderParticleSystem.d.ts +1 -0
  520. package/Particles/computeShaderParticleSystem.js +5 -0
  521. package/Particles/computeShaderParticleSystem.js.map +1 -1
  522. package/Particles/gpuParticleSystem.js +11 -1
  523. package/Particles/gpuParticleSystem.js.map +1 -1
  524. package/Particles/webgl2ParticleSystem.d.ts +1 -0
  525. package/Particles/webgl2ParticleSystem.js +5 -0
  526. package/Particles/webgl2ParticleSystem.js.map +1 -1
  527. package/Physics/v2/IPhysicsEnginePlugin.d.ts +20 -2
  528. package/Physics/v2/IPhysicsEnginePlugin.js +8 -0
  529. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
  530. package/Physics/v2/Plugins/havokPlugin.d.ts +27 -2
  531. package/Physics/v2/Plugins/havokPlugin.js +98 -11
  532. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  533. package/Physics/v2/physicsAggregate.d.ts +4 -0
  534. package/Physics/v2/physicsAggregate.js +3 -0
  535. package/Physics/v2/physicsAggregate.js.map +1 -1
  536. package/Physics/v2/physicsBody.d.ts +7 -0
  537. package/Physics/v2/physicsBody.js +10 -0
  538. package/Physics/v2/physicsBody.js.map +1 -1
  539. package/Physics/v2/physicsShape.d.ts +3 -0
  540. package/Physics/v2/physicsShape.js +11 -0
  541. package/Physics/v2/physicsShape.js.map +1 -1
  542. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +6 -4
  543. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  544. package/PostProcesses/blurPostProcess.js +5 -5
  545. package/PostProcesses/blurPostProcess.js.map +1 -1
  546. package/PostProcesses/depthOfFieldBlurPostProcess.js +1 -1
  547. package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
  548. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  549. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  550. package/Rendering/fluidRenderer/fluidRenderer.d.ts +0 -1
  551. package/Rendering/fluidRenderer/fluidRenderer.js +0 -1
  552. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  553. package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js +16 -8
  554. package/Shaders/ShadersInclude/backgroundFragmentDeclaration.js.map +1 -1
  555. package/Shaders/ShadersInclude/backgroundUboDeclaration.js +9 -4
  556. package/Shaders/ShadersInclude/backgroundUboDeclaration.js.map +1 -1
  557. package/Shaders/ShadersInclude/backgroundVertexDeclaration.js +8 -4
  558. package/Shaders/ShadersInclude/backgroundVertexDeclaration.js.map +1 -1
  559. package/Shaders/ShadersInclude/bakedVertexAnimation.js +20 -10
  560. package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -1
  561. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -3
  562. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
  563. package/Shaders/ShadersInclude/bayerDitherFunctions.js +9 -1
  564. package/Shaders/ShadersInclude/bayerDitherFunctions.js.map +1 -1
  565. package/Shaders/ShadersInclude/bonesDeclaration.js +13 -6
  566. package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
  567. package/Shaders/ShadersInclude/bonesVertex.js +36 -18
  568. package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
  569. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js +2 -1
  570. package/Shaders/ShadersInclude/boundingBoxRendererFragmentDeclaration.js.map +1 -1
  571. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js +6 -3
  572. package/Shaders/ShadersInclude/boundingBoxRendererUboDeclaration.js.map +1 -1
  573. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js +4 -2
  574. package/Shaders/ShadersInclude/boundingBoxRendererVertexDeclaration.js.map +1 -1
  575. package/Shaders/ShadersInclude/bumpFragment.js +40 -20
  576. package/Shaders/ShadersInclude/bumpFragment.js.map +1 -1
  577. package/Shaders/ShadersInclude/bumpFragmentFunctions.js +11 -1
  578. package/Shaders/ShadersInclude/bumpFragmentFunctions.js.map +1 -1
  579. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js +57 -7
  580. package/Shaders/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
  581. package/Shaders/ShadersInclude/bumpVertex.js +2 -1
  582. package/Shaders/ShadersInclude/bumpVertex.js.map +1 -1
  583. package/Shaders/ShadersInclude/bumpVertexDeclaration.js +2 -1
  584. package/Shaders/ShadersInclude/bumpVertexDeclaration.js.map +1 -1
  585. package/Shaders/ShadersInclude/clipPlaneFragment.js +20 -7
  586. package/Shaders/ShadersInclude/clipPlaneFragment.js.map +1 -1
  587. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js +12 -6
  588. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
  589. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js +12 -6
  590. package/Shaders/ShadersInclude/clipPlaneFragmentDeclaration2.js.map +1 -1
  591. package/Shaders/ShadersInclude/clipPlaneVertex.js +12 -6
  592. package/Shaders/ShadersInclude/clipPlaneVertex.js.map +1 -1
  593. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js +12 -6
  594. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
  595. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js +12 -6
  596. package/Shaders/ShadersInclude/clipPlaneVertexDeclaration2.js.map +1 -1
  597. package/Shaders/ShadersInclude/decalFragment.js +6 -3
  598. package/Shaders/ShadersInclude/decalFragment.js.map +1 -1
  599. package/Shaders/ShadersInclude/decalFragmentDeclaration.js +2 -1
  600. package/Shaders/ShadersInclude/decalFragmentDeclaration.js.map +1 -1
  601. package/Shaders/ShadersInclude/decalVertexDeclaration.js +2 -1
  602. package/Shaders/ShadersInclude/decalVertexDeclaration.js.map +1 -1
  603. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js +48 -24
  604. package/Shaders/ShadersInclude/defaultFragmentDeclaration.js.map +1 -1
  605. package/Shaders/ShadersInclude/defaultUboDeclaration.js +5 -2
  606. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  607. package/Shaders/ShadersInclude/defaultVertexDeclaration.js +22 -11
  608. package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
  609. package/Shaders/ShadersInclude/depthPrePass.js +2 -1
  610. package/Shaders/ShadersInclude/depthPrePass.js.map +1 -1
  611. package/Shaders/ShadersInclude/diffusionProfile.js +1 -1
  612. package/Shaders/ShadersInclude/diffusionProfile.js.map +1 -1
  613. package/Shaders/ShadersInclude/fibonacci.js +4 -1
  614. package/Shaders/ShadersInclude/fibonacci.js.map +1 -1
  615. package/Shaders/ShadersInclude/fogFragment.js +6 -3
  616. package/Shaders/ShadersInclude/fogFragment.js.map +1 -1
  617. package/Shaders/ShadersInclude/fogFragmentDeclaration.js +9 -1
  618. package/Shaders/ShadersInclude/fogFragmentDeclaration.js.map +1 -1
  619. package/Shaders/ShadersInclude/fogVertex.js +2 -1
  620. package/Shaders/ShadersInclude/fogVertex.js.map +1 -1
  621. package/Shaders/ShadersInclude/fogVertexDeclaration.js +2 -1
  622. package/Shaders/ShadersInclude/fogVertexDeclaration.js.map +1 -1
  623. package/Shaders/ShadersInclude/fresnelFunction.js +3 -1
  624. package/Shaders/ShadersInclude/fresnelFunction.js.map +1 -1
  625. package/Shaders/ShadersInclude/geometryVertexDeclaration.js +1 -1
  626. package/Shaders/ShadersInclude/geometryVertexDeclaration.js.map +1 -1
  627. package/Shaders/ShadersInclude/harmonicsFunctions.js +20 -2
  628. package/Shaders/ShadersInclude/harmonicsFunctions.js.map +1 -1
  629. package/Shaders/ShadersInclude/hdrFilteringFunctions.js +48 -17
  630. package/Shaders/ShadersInclude/hdrFilteringFunctions.js.map +1 -1
  631. package/Shaders/ShadersInclude/helperFunctions.js +98 -28
  632. package/Shaders/ShadersInclude/helperFunctions.js.map +1 -1
  633. package/Shaders/ShadersInclude/imageProcessingCompatibility.js +2 -1
  634. package/Shaders/ShadersInclude/imageProcessingCompatibility.js.map +1 -1
  635. package/Shaders/ShadersInclude/imageProcessingDeclaration.js +18 -9
  636. package/Shaders/ShadersInclude/imageProcessingDeclaration.js.map +1 -1
  637. package/Shaders/ShadersInclude/imageProcessingFunctions.js +71 -28
  638. package/Shaders/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  639. package/Shaders/ShadersInclude/importanceSampling.js +4 -1
  640. package/Shaders/ShadersInclude/importanceSampling.js.map +1 -1
  641. package/Shaders/ShadersInclude/instancesDeclaration.js +14 -7
  642. package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
  643. package/Shaders/ShadersInclude/instancesVertex.js +12 -6
  644. package/Shaders/ShadersInclude/instancesVertex.js.map +1 -1
  645. package/Shaders/ShadersInclude/kernelBlurFragment.js +9 -4
  646. package/Shaders/ShadersInclude/kernelBlurFragment.js.map +1 -1
  647. package/Shaders/ShadersInclude/kernelBlurFragment2.js +8 -4
  648. package/Shaders/ShadersInclude/kernelBlurFragment2.js.map +1 -1
  649. package/Shaders/ShadersInclude/lightFragment.js +186 -93
  650. package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
  651. package/Shaders/ShadersInclude/lightFragmentDeclaration.js +54 -22
  652. package/Shaders/ShadersInclude/lightFragmentDeclaration.js.map +1 -1
  653. package/Shaders/ShadersInclude/lightUboDeclaration.js +51 -20
  654. package/Shaders/ShadersInclude/lightUboDeclaration.js.map +1 -1
  655. package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js +18 -9
  656. package/Shaders/ShadersInclude/lightVxFragmentDeclaration.js.map +1 -1
  657. package/Shaders/ShadersInclude/lightVxUboDeclaration.js +15 -7
  658. package/Shaders/ShadersInclude/lightVxUboDeclaration.js.map +1 -1
  659. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +48 -20
  660. package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  661. package/Shaders/ShadersInclude/logDepthDeclaration.js +2 -1
  662. package/Shaders/ShadersInclude/logDepthDeclaration.js.map +1 -1
  663. package/Shaders/ShadersInclude/logDepthFragment.js +2 -1
  664. package/Shaders/ShadersInclude/logDepthFragment.js.map +1 -1
  665. package/Shaders/ShadersInclude/logDepthVertex.js +2 -1
  666. package/Shaders/ShadersInclude/logDepthVertex.js.map +1 -1
  667. package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js +2 -1
  668. package/Shaders/ShadersInclude/mainUVVaryingDeclaration.js.map +1 -1
  669. package/Shaders/ShadersInclude/meshFragmentDeclaration.js +2 -1
  670. package/Shaders/ShadersInclude/meshFragmentDeclaration.js.map +1 -1
  671. package/Shaders/ShadersInclude/meshUboDeclaration.js +5 -2
  672. package/Shaders/ShadersInclude/meshUboDeclaration.js.map +1 -1
  673. package/Shaders/ShadersInclude/meshVertexDeclaration.js +2 -1
  674. package/Shaders/ShadersInclude/meshVertexDeclaration.js.map +1 -1
  675. package/Shaders/ShadersInclude/morphTargetsVertex.js +16 -8
  676. package/Shaders/ShadersInclude/morphTargetsVertex.js.map +1 -1
  677. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +8 -4
  678. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  679. package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js +2 -1
  680. package/Shaders/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
  681. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +7 -2
  682. package/Shaders/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  683. package/Shaders/ShadersInclude/oitDeclaration.js +5 -2
  684. package/Shaders/ShadersInclude/oitDeclaration.js.map +1 -1
  685. package/Shaders/ShadersInclude/oitFragment.js +24 -12
  686. package/Shaders/ShadersInclude/oitFragment.js.map +1 -1
  687. package/Shaders/ShadersInclude/packingFunctions.js +4 -1
  688. package/Shaders/ShadersInclude/packingFunctions.js.map +1 -1
  689. package/Shaders/ShadersInclude/pbrBRDFFunctions.js +118 -42
  690. package/Shaders/ShadersInclude/pbrBRDFFunctions.js.map +1 -1
  691. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +49 -20
  692. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  693. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +25 -8
  694. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
  695. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +26 -11
  696. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
  697. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +32 -12
  698. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
  699. package/Shaders/ShadersInclude/pbrBlockClearcoat.js +194 -84
  700. package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
  701. package/Shaders/ShadersInclude/pbrBlockDirectLighting.js +12 -6
  702. package/Shaders/ShadersInclude/pbrBlockDirectLighting.js.map +1 -1
  703. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js +30 -14
  704. package/Shaders/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -1
  705. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js +56 -28
  706. package/Shaders/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -1
  707. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js +18 -9
  708. package/Shaders/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -1
  709. package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js +14 -7
  710. package/Shaders/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -1
  711. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +8 -4
  712. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
  713. package/Shaders/ShadersInclude/pbrBlockIridescence.js +36 -15
  714. package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
  715. package/Shaders/ShadersInclude/pbrBlockLightmapInit.js +8 -4
  716. package/Shaders/ShadersInclude/pbrBlockLightmapInit.js.map +1 -1
  717. package/Shaders/ShadersInclude/pbrBlockNormalFinal.js +8 -4
  718. package/Shaders/ShadersInclude/pbrBlockNormalFinal.js.map +1 -1
  719. package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js +10 -5
  720. package/Shaders/ShadersInclude/pbrBlockNormalGeometric.js.map +1 -1
  721. package/Shaders/ShadersInclude/pbrBlockReflectance.js +12 -6
  722. package/Shaders/ShadersInclude/pbrBlockReflectance.js.map +1 -1
  723. package/Shaders/ShadersInclude/pbrBlockReflectance0.js +8 -4
  724. package/Shaders/ShadersInclude/pbrBlockReflectance0.js.map +1 -1
  725. package/Shaders/ShadersInclude/pbrBlockReflection.js +197 -77
  726. package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
  727. package/Shaders/ShadersInclude/pbrBlockReflectivity.js +79 -36
  728. package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  729. package/Shaders/ShadersInclude/pbrBlockSheen.js +145 -60
  730. package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
  731. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +226 -100
  732. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  733. package/Shaders/ShadersInclude/pbrDebug.js +146 -67
  734. package/Shaders/ShadersInclude/pbrDebug.js.map +1 -1
  735. package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js +34 -8
  736. package/Shaders/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -1
  737. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +53 -22
  738. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  739. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +12 -5
  740. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
  741. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +88 -44
  742. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
  743. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +10 -5
  744. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  745. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +30 -15
  746. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
  747. package/Shaders/ShadersInclude/pbrHelperFunctions.js +27 -8
  748. package/Shaders/ShadersInclude/pbrHelperFunctions.js.map +1 -1
  749. package/Shaders/ShadersInclude/pbrIBLFunctions.js +9 -4
  750. package/Shaders/ShadersInclude/pbrIBLFunctions.js.map +1 -1
  751. package/Shaders/ShadersInclude/pbrUboDeclaration.js +4 -2
  752. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  753. package/Shaders/ShadersInclude/pbrVertexDeclaration.js +64 -32
  754. package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
  755. package/Shaders/ShadersInclude/pointCloudVertex.js +2 -1
  756. package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
  757. package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js +2 -1
  758. package/Shaders/ShadersInclude/pointCloudVertexDeclaration.js.map +1 -1
  759. package/Shaders/ShadersInclude/prePassVertex.js +24 -12
  760. package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
  761. package/Shaders/ShadersInclude/prePassVertexDeclaration.js +4 -2
  762. package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
  763. package/Shaders/ShadersInclude/reflectionFunction.js +52 -17
  764. package/Shaders/ShadersInclude/reflectionFunction.js.map +1 -1
  765. package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js +2 -1
  766. package/Shaders/ShadersInclude/samplerFragmentAlternateDeclaration.js.map +1 -1
  767. package/Shaders/ShadersInclude/samplerFragmentDeclaration.js +4 -2
  768. package/Shaders/ShadersInclude/samplerFragmentDeclaration.js.map +1 -1
  769. package/Shaders/ShadersInclude/samplerVertexDeclaration.js +2 -1
  770. package/Shaders/ShadersInclude/samplerVertexDeclaration.js.map +1 -1
  771. package/Shaders/ShadersInclude/samplerVertexImplementation.js +18 -6
  772. package/Shaders/ShadersInclude/samplerVertexImplementation.js.map +1 -1
  773. package/Shaders/ShadersInclude/sceneFragmentDeclaration.js +6 -3
  774. package/Shaders/ShadersInclude/sceneFragmentDeclaration.js.map +1 -1
  775. package/Shaders/ShadersInclude/sceneUboDeclaration.js +6 -3
  776. package/Shaders/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  777. package/Shaders/ShadersInclude/sceneVertexDeclaration.js +6 -3
  778. package/Shaders/ShadersInclude/sceneVertexDeclaration.js.map +1 -1
  779. package/Shaders/ShadersInclude/screenSpaceRayTrace.js +109 -24
  780. package/Shaders/ShadersInclude/screenSpaceRayTrace.js.map +1 -1
  781. package/Shaders/ShadersInclude/shadowMapFragment.js +20 -10
  782. package/Shaders/ShadersInclude/shadowMapFragment.js.map +1 -1
  783. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js +10 -5
  784. package/Shaders/ShadersInclude/shadowMapFragmentExtraDeclaration.js.map +1 -1
  785. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js +2 -1
  786. package/Shaders/ShadersInclude/shadowMapFragmentSoftTransparentShadow.js.map +1 -1
  787. package/Shaders/ShadersInclude/shadowMapUboDeclaration.js +2 -1
  788. package/Shaders/ShadersInclude/shadowMapUboDeclaration.js.map +1 -1
  789. package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js +8 -4
  790. package/Shaders/ShadersInclude/shadowMapVertexExtraDeclaration.js.map +1 -1
  791. package/Shaders/ShadersInclude/shadowMapVertexMetric.js +12 -6
  792. package/Shaders/ShadersInclude/shadowMapVertexMetric.js.map +1 -1
  793. package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js +6 -3
  794. package/Shaders/ShadersInclude/shadowMapVertexNormalBias.js.map +1 -1
  795. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +311 -54
  796. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
  797. package/Shaders/ShadersInclude/shadowsVertex.js +14 -7
  798. package/Shaders/ShadersInclude/shadowsVertex.js.map +1 -1
  799. package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js +2 -1
  800. package/Shaders/ShadersInclude/subSurfaceScatteringFunctions.js.map +1 -1
  801. package/Shaders/ShadersInclude/uvAttributeDeclaration.js +2 -1
  802. package/Shaders/ShadersInclude/uvAttributeDeclaration.js.map +1 -1
  803. package/Shaders/ShadersInclude/uvVariableDeclaration.js +4 -2
  804. package/Shaders/ShadersInclude/uvVariableDeclaration.js.map +1 -1
  805. package/Shaders/ShadersInclude/vertexColorMixing.js +8 -4
  806. package/Shaders/ShadersInclude/vertexColorMixing.js.map +1 -1
  807. package/Shaders/anaglyph.fragment.js +4 -2
  808. package/Shaders/anaglyph.fragment.js.map +1 -1
  809. package/Shaders/background.fragment.js +133 -62
  810. package/Shaders/background.fragment.js.map +1 -1
  811. package/Shaders/background.vertex.js +63 -30
  812. package/Shaders/background.vertex.js.map +1 -1
  813. package/Shaders/blackAndWhite.fragment.js +5 -2
  814. package/Shaders/blackAndWhite.fragment.js.map +1 -1
  815. package/Shaders/bloomMerge.fragment.js +5 -2
  816. package/Shaders/bloomMerge.fragment.js.map +1 -1
  817. package/Shaders/blur.fragment.js +6 -2
  818. package/Shaders/blur.fragment.js.map +1 -1
  819. package/Shaders/boundingBoxRenderer.fragment.js +4 -2
  820. package/Shaders/boundingBoxRenderer.fragment.js.map +1 -1
  821. package/Shaders/boundingBoxRenderer.vertex.js +12 -6
  822. package/Shaders/boundingBoxRenderer.vertex.js.map +1 -1
  823. package/Shaders/chromaticAberration.fragment.js +8 -2
  824. package/Shaders/chromaticAberration.fragment.js.map +1 -1
  825. package/Shaders/circleOfConfusion.fragment.js +9 -4
  826. package/Shaders/circleOfConfusion.fragment.js.map +1 -1
  827. package/Shaders/clearQuad.fragment.js +2 -1
  828. package/Shaders/clearQuad.fragment.js.map +1 -1
  829. package/Shaders/clearQuad.vertex.js +11 -4
  830. package/Shaders/clearQuad.vertex.js.map +1 -1
  831. package/Shaders/color.fragment.js +10 -5
  832. package/Shaders/color.fragment.js.map +1 -1
  833. package/Shaders/color.vertex.js +18 -9
  834. package/Shaders/color.vertex.js.map +1 -1
  835. package/Shaders/colorCorrection.fragment.js +10 -2
  836. package/Shaders/colorCorrection.fragment.js.map +1 -1
  837. package/Shaders/convolution.fragment.js +23 -2
  838. package/Shaders/convolution.fragment.js.map +1 -1
  839. package/Shaders/copyTextureToTexture.fragment.js +12 -5
  840. package/Shaders/copyTextureToTexture.fragment.js.map +1 -1
  841. package/Shaders/default.fragment.js +142 -71
  842. package/Shaders/default.fragment.js.map +1 -1
  843. package/Shaders/default.vertex.js +58 -29
  844. package/Shaders/default.vertex.js.map +1 -1
  845. package/Shaders/depth.fragment.js +24 -11
  846. package/Shaders/depth.fragment.js.map +1 -1
  847. package/Shaders/depth.vertex.js +35 -17
  848. package/Shaders/depth.vertex.js.map +1 -1
  849. package/Shaders/depthBoxBlur.fragment.js +6 -2
  850. package/Shaders/depthBoxBlur.fragment.js.map +1 -1
  851. package/Shaders/depthOfField.fragment.js +28 -3
  852. package/Shaders/depthOfField.fragment.js.map +1 -1
  853. package/Shaders/depthOfFieldMerge.fragment.js +17 -8
  854. package/Shaders/depthOfFieldMerge.fragment.js.map +1 -1
  855. package/Shaders/displayPass.fragment.js +4 -2
  856. package/Shaders/displayPass.fragment.js.map +1 -1
  857. package/Shaders/extractHighlights.fragment.js +4 -2
  858. package/Shaders/extractHighlights.fragment.js.map +1 -1
  859. package/Shaders/filter.fragment.js +4 -2
  860. package/Shaders/filter.fragment.js.map +1 -1
  861. package/Shaders/fluidRenderingBilateralBlur.fragment.js +4 -1
  862. package/Shaders/fluidRenderingBilateralBlur.fragment.js.map +1 -1
  863. package/Shaders/fluidRenderingParticleDepth.fragment.js +22 -11
  864. package/Shaders/fluidRenderingParticleDepth.fragment.js.map +1 -1
  865. package/Shaders/fluidRenderingParticleDepth.vertex.js +10 -5
  866. package/Shaders/fluidRenderingParticleDepth.vertex.js.map +1 -1
  867. package/Shaders/fluidRenderingParticleDiffuse.fragment.js +2 -1
  868. package/Shaders/fluidRenderingParticleDiffuse.fragment.js.map +1 -1
  869. package/Shaders/fluidRenderingParticleDiffuse.vertex.js +0 -1
  870. package/Shaders/fluidRenderingParticleDiffuse.vertex.js.map +1 -1
  871. package/Shaders/fluidRenderingParticleThickness.fragment.js +2 -1
  872. package/Shaders/fluidRenderingParticleThickness.fragment.js.map +1 -1
  873. package/Shaders/fluidRenderingParticleThickness.vertex.js +2 -1
  874. package/Shaders/fluidRenderingParticleThickness.vertex.js.map +1 -1
  875. package/Shaders/fluidRenderingRender.fragment.js +76 -35
  876. package/Shaders/fluidRenderingRender.fragment.js.map +1 -1
  877. package/Shaders/fluidRenderingStandardBlur.fragment.js +4 -1
  878. package/Shaders/fluidRenderingStandardBlur.fragment.js.map +1 -1
  879. package/Shaders/fxaa.fragment.js +47 -6
  880. package/Shaders/fxaa.fragment.js.map +1 -1
  881. package/Shaders/fxaa.vertex.js +6 -3
  882. package/Shaders/fxaa.vertex.js.map +1 -1
  883. package/Shaders/geometry.fragment.js +85 -42
  884. package/Shaders/geometry.fragment.js.map +1 -1
  885. package/Shaders/geometry.vertex.js +91 -45
  886. package/Shaders/geometry.vertex.js.map +1 -1
  887. package/Shaders/glowBlurPostProcess.fragment.js +7 -2
  888. package/Shaders/glowBlurPostProcess.fragment.js.map +1 -1
  889. package/Shaders/glowMapGeneration.fragment.js +46 -22
  890. package/Shaders/glowMapGeneration.fragment.js.map +1 -1
  891. package/Shaders/glowMapGeneration.vertex.js +41 -20
  892. package/Shaders/glowMapGeneration.vertex.js.map +1 -1
  893. package/Shaders/glowMapMerge.fragment.js +20 -10
  894. package/Shaders/glowMapMerge.fragment.js.map +1 -1
  895. package/Shaders/glowMapMerge.vertex.js +6 -3
  896. package/Shaders/glowMapMerge.vertex.js.map +1 -1
  897. package/Shaders/gpuRenderParticles.fragment.js +16 -8
  898. package/Shaders/gpuRenderParticles.fragment.js.map +1 -1
  899. package/Shaders/gpuRenderParticles.vertex.js +77 -39
  900. package/Shaders/gpuRenderParticles.vertex.js.map +1 -1
  901. package/Shaders/gpuUpdateParticles.fragment.js +2 -1
  902. package/Shaders/gpuUpdateParticles.fragment.js.map +1 -1
  903. package/Shaders/gpuUpdateParticles.vertex.js +206 -100
  904. package/Shaders/gpuUpdateParticles.vertex.js.map +1 -1
  905. package/Shaders/grain.fragment.js +5 -2
  906. package/Shaders/grain.fragment.js.map +1 -1
  907. package/Shaders/hdrFiltering.fragment.js +1 -1
  908. package/Shaders/hdrFiltering.fragment.js.map +1 -1
  909. package/Shaders/hdrFiltering.vertex.js +6 -3
  910. package/Shaders/hdrFiltering.vertex.js.map +1 -1
  911. package/Shaders/highlights.fragment.js +4 -2
  912. package/Shaders/highlights.fragment.js.map +1 -1
  913. package/Shaders/imageProcessing.fragment.js +12 -6
  914. package/Shaders/imageProcessing.fragment.js.map +1 -1
  915. package/Shaders/kernelBlur.fragment.js +24 -11
  916. package/Shaders/kernelBlur.fragment.js.map +1 -1
  917. package/Shaders/kernelBlur.vertex.js +10 -5
  918. package/Shaders/kernelBlur.vertex.js.map +1 -1
  919. package/Shaders/layer.fragment.js +13 -6
  920. package/Shaders/layer.fragment.js.map +1 -1
  921. package/Shaders/layer.vertex.js +6 -3
  922. package/Shaders/layer.vertex.js.map +1 -1
  923. package/Shaders/lensFlare.fragment.js +6 -3
  924. package/Shaders/lensFlare.fragment.js.map +1 -1
  925. package/Shaders/lensFlare.vertex.js +6 -3
  926. package/Shaders/lensFlare.vertex.js.map +1 -1
  927. package/Shaders/lensHighlights.fragment.js +14 -5
  928. package/Shaders/lensHighlights.fragment.js.map +1 -1
  929. package/Shaders/line.fragment.js +6 -3
  930. package/Shaders/line.fragment.js.map +1 -1
  931. package/Shaders/line.vertex.js +8 -4
  932. package/Shaders/line.vertex.js.map +1 -1
  933. package/Shaders/meshUVSpaceRenderer.fragment.js +3 -1
  934. package/Shaders/meshUVSpaceRenderer.fragment.js.map +1 -1
  935. package/Shaders/meshUVSpaceRenderer.vertex.js +14 -7
  936. package/Shaders/meshUVSpaceRenderer.vertex.js.map +1 -1
  937. package/Shaders/minmaxRedux.fragment.js +21 -8
  938. package/Shaders/minmaxRedux.fragment.js.map +1 -1
  939. package/Shaders/motionBlur.fragment.js +35 -14
  940. package/Shaders/motionBlur.fragment.js.map +1 -1
  941. package/Shaders/noise.fragment.js +13 -2
  942. package/Shaders/noise.fragment.js.map +1 -1
  943. package/Shaders/oitBackBlend.fragment.js +2 -1
  944. package/Shaders/oitBackBlend.fragment.js.map +1 -1
  945. package/Shaders/oitFinal.fragment.js +4 -1
  946. package/Shaders/oitFinal.fragment.js.map +1 -1
  947. package/Shaders/outline.fragment.js +11 -5
  948. package/Shaders/outline.fragment.js.map +1 -1
  949. package/Shaders/outline.vertex.js +27 -13
  950. package/Shaders/outline.vertex.js.map +1 -1
  951. package/Shaders/particles.fragment.js +18 -9
  952. package/Shaders/particles.fragment.js.map +1 -1
  953. package/Shaders/particles.vertex.js +58 -29
  954. package/Shaders/particles.vertex.js.map +1 -1
  955. package/Shaders/pass.fragment.js +4 -2
  956. package/Shaders/pass.fragment.js.map +1 -1
  957. package/Shaders/passCube.fragment.js +17 -8
  958. package/Shaders/passCube.fragment.js.map +1 -1
  959. package/Shaders/pbr.fragment.js +389 -154
  960. package/Shaders/pbr.fragment.js.map +1 -1
  961. package/Shaders/pbr.vertex.js +70 -35
  962. package/Shaders/pbr.vertex.js.map +1 -1
  963. package/Shaders/postprocess.vertex.js +6 -3
  964. package/Shaders/postprocess.vertex.js.map +1 -1
  965. package/Shaders/procedural.vertex.js +6 -3
  966. package/Shaders/procedural.vertex.js.map +1 -1
  967. package/Shaders/refraction.fragment.js +1 -1
  968. package/Shaders/refraction.fragment.js.map +1 -1
  969. package/Shaders/rgbdDecode.fragment.js +4 -2
  970. package/Shaders/rgbdDecode.fragment.js.map +1 -1
  971. package/Shaders/rgbdEncode.fragment.js +4 -2
  972. package/Shaders/rgbdEncode.fragment.js.map +1 -1
  973. package/Shaders/screenSpaceCurvature.fragment.js +11 -3
  974. package/Shaders/screenSpaceCurvature.fragment.js.map +1 -1
  975. package/Shaders/screenSpaceReflection.fragment.js +57 -15
  976. package/Shaders/screenSpaceReflection.fragment.js.map +1 -1
  977. package/Shaders/screenSpaceReflection2.fragment.js +125 -51
  978. package/Shaders/screenSpaceReflection2.fragment.js.map +1 -1
  979. package/Shaders/screenSpaceReflection2Blur.fragment.js +7 -1
  980. package/Shaders/screenSpaceReflection2Blur.fragment.js.map +1 -1
  981. package/Shaders/screenSpaceReflection2BlurCombiner.fragment.js +28 -13
  982. package/Shaders/screenSpaceReflection2BlurCombiner.fragment.js.map +1 -1
  983. package/Shaders/shadowMap.fragment.js +14 -6
  984. package/Shaders/shadowMap.fragment.js.map +1 -1
  985. package/Shaders/shadowMap.vertex.js +35 -17
  986. package/Shaders/shadowMap.vertex.js.map +1 -1
  987. package/Shaders/sharpen.fragment.js +8 -2
  988. package/Shaders/sharpen.fragment.js.map +1 -1
  989. package/Shaders/spriteMap.fragment.js +17 -4
  990. package/Shaders/spriteMap.fragment.js.map +1 -1
  991. package/Shaders/spriteMap.vertex.js +2 -1
  992. package/Shaders/spriteMap.vertex.js.map +1 -1
  993. package/Shaders/sprites.fragment.js +17 -7
  994. package/Shaders/sprites.fragment.js.map +1 -1
  995. package/Shaders/sprites.vertex.js +10 -4
  996. package/Shaders/sprites.vertex.js.map +1 -1
  997. package/Shaders/ssao.fragment.js +0 -2
  998. package/Shaders/ssao.fragment.js.map +1 -1
  999. package/Shaders/ssao2.fragment.js +0 -2
  1000. package/Shaders/ssao2.fragment.js.map +1 -1
  1001. package/Shaders/ssaoCombine.fragment.js +8 -4
  1002. package/Shaders/ssaoCombine.fragment.js.map +1 -1
  1003. package/Shaders/standard.fragment.js +101 -25
  1004. package/Shaders/standard.fragment.js.map +1 -1
  1005. package/Shaders/stereoscopicInterlace.fragment.js +14 -6
  1006. package/Shaders/stereoscopicInterlace.fragment.js.map +1 -1
  1007. package/Shaders/subSurfaceScattering.fragment.js +58 -12
  1008. package/Shaders/subSurfaceScattering.fragment.js.map +1 -1
  1009. package/Shaders/tonemap.fragment.js +21 -9
  1010. package/Shaders/tonemap.fragment.js.map +1 -1
  1011. package/Shaders/velocity.fragment.js +8 -4
  1012. package/Shaders/velocity.fragment.js.map +1 -1
  1013. package/Shaders/velocity.vertex.js +18 -9
  1014. package/Shaders/velocity.vertex.js.map +1 -1
  1015. package/Shaders/volumetricLightScattering.fragment.js +9 -4
  1016. package/Shaders/volumetricLightScattering.fragment.js.map +1 -1
  1017. package/Shaders/volumetricLightScatteringPass.fragment.js +12 -5
  1018. package/Shaders/volumetricLightScatteringPass.fragment.js.map +1 -1
  1019. package/Shaders/volumetricLightScatteringPass.vertex.js +23 -11
  1020. package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
  1021. package/Shaders/vrDistortionCorrection.fragment.js +6 -2
  1022. package/Shaders/vrDistortionCorrection.fragment.js.map +1 -1
  1023. package/Shaders/vrMultiviewToSingleview.fragment.js +4 -2
  1024. package/Shaders/vrMultiviewToSingleview.fragment.js.map +1 -1
  1025. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +24 -12
  1026. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -1
  1027. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -3
  1028. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -1
  1029. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +14 -6
  1030. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
  1031. package/ShadersWGSL/ShadersInclude/bonesVertex.js +36 -18
  1032. package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
  1033. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +20 -7
  1034. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -1
  1035. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +12 -6
  1036. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -1
  1037. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +12 -6
  1038. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -1
  1039. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +12 -6
  1040. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -1
  1041. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +14 -7
  1042. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
  1043. package/ShadersWGSL/ShadersInclude/instancesVertex.js +16 -8
  1044. package/ShadersWGSL/ShadersInclude/instancesVertex.js.map +1 -1
  1045. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js +3 -1
  1046. package/ShadersWGSL/ShadersInclude/meshUboDeclaration.js.map +1 -1
  1047. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js +16 -8
  1048. package/ShadersWGSL/ShadersInclude/morphTargetsVertex.js.map +1 -1
  1049. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +8 -4
  1050. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  1051. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js +2 -1
  1052. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobal.js.map +1 -1
  1053. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js +6 -2
  1054. package/ShadersWGSL/ShadersInclude/morphTargetsVertexGlobalDeclaration.js.map +1 -1
  1055. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js +8 -3
  1056. package/ShadersWGSL/ShadersInclude/sceneUboDeclaration.js.map +1 -1
  1057. package/ShadersWGSL/gpuUpdateParticles.compute.js +229 -90
  1058. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  1059. package/ShadersWGSL/postprocess.vertex.js +9 -4
  1060. package/ShadersWGSL/postprocess.vertex.js.map +1 -1
  1061. package/assetContainer.d.ts +7 -0
  1062. package/assetContainer.js +46 -0
  1063. package/assetContainer.js.map +1 -1
  1064. package/index.d.ts +1 -0
  1065. package/index.js +1 -0
  1066. package/index.js.map +1 -1
  1067. package/package.json +1 -1
  1068. package/scene.js +5 -0
  1069. package/scene.js.map +1 -1
  1070. package/Materials/Node/nodeMaterialDecorator.js.map +0 -1
@@ -0,0 +1,529 @@
1
+ import { __decorate } from "../../tslib.es6.js";
2
+ import { Observable } from "../../Misc/observable.js";
3
+ import { Mesh } from "../mesh.js";
4
+ import { GeometryOutputBlock } from "./Blocks/geometryOutputBlock.js";
5
+ import { NodeGeometryBuildState } from "./nodeGeometryBuildState.js";
6
+ import { GetClass } from "../../Misc/typeStore.js";
7
+ import { SerializationHelper, serialize } from "../../Misc/decorators.js";
8
+
9
+ import { WebRequest } from "../../Misc/webRequest.js";
10
+ import { BoxBlock } from "./Blocks/Sources/boxBlock.js";
11
+ import { PrecisionDate } from "../../Misc/precisionDate.js";
12
+ import { Tools } from "../../Misc/tools.js";
13
+ import { Engine } from "../../Engines/engine.js";
14
+ /**
15
+ * Defines a node based geometry
16
+ */
17
+ export class NodeGeometry {
18
+ /** Get the inspector from bundle or global */
19
+ _getGlobalNodeGeometryEditor() {
20
+ // UMD Global name detection from Webpack Bundle UMD Name.
21
+ if (typeof NODEGEOMETRYEDITOR !== "undefined") {
22
+ return NODEGEOMETRYEDITOR;
23
+ }
24
+ // In case of module let's check the global emitted from the editor entry point.
25
+ if (typeof BABYLON !== "undefined" && typeof BABYLON.NodeGeometryEditor !== "undefined") {
26
+ return BABYLON;
27
+ }
28
+ return undefined;
29
+ }
30
+ /**
31
+ * Gets the time spent to build this block (in ms)
32
+ */
33
+ get buildExecutionTime() {
34
+ return this._buildExecutionTime;
35
+ }
36
+ /**
37
+ * Creates a new geometry
38
+ * @param name defines the name of the geometry
39
+ */
40
+ constructor(name) {
41
+ this._buildId = NodeGeometry._BuildIdGenerator++;
42
+ this._buildWasSuccessful = false;
43
+ this._vertexData = null;
44
+ this._buildExecutionTime = 0;
45
+ // eslint-disable-next-line @typescript-eslint/naming-convention
46
+ this.BJSNODEGEOMETRYEDITOR = this._getGlobalNodeGeometryEditor();
47
+ /**
48
+ * Gets or sets data used by visual editor
49
+ * @see https://nge.babylonjs.com
50
+ */
51
+ this.editorData = null;
52
+ /**
53
+ * Gets an array of blocks that needs to be serialized even if they are not yet connected
54
+ */
55
+ this.attachedBlocks = new Array();
56
+ /**
57
+ * Observable raised when the geometry is built
58
+ */
59
+ this.onBuildObservable = new Observable();
60
+ /** Gets or sets the GeometryOutputBlock used to gather the final geometry data */
61
+ this.outputBlock = null;
62
+ this.name = name;
63
+ }
64
+ /**
65
+ * Gets the current class name of the geometry e.g. "NodeGeometry"
66
+ * @returns the class name
67
+ */
68
+ getClassName() {
69
+ return "NodeGeometry";
70
+ }
71
+ /**
72
+ * Get a block by its name
73
+ * @param name defines the name of the block to retrieve
74
+ * @returns the required block or null if not found
75
+ */
76
+ getBlockByName(name) {
77
+ let result = null;
78
+ for (const block of this.attachedBlocks) {
79
+ if (block.name === name) {
80
+ if (!result) {
81
+ result = block;
82
+ }
83
+ else {
84
+ Tools.Warn("More than one block was found with the name `" + name + "`");
85
+ return result;
86
+ }
87
+ }
88
+ }
89
+ return result;
90
+ }
91
+ /**
92
+ * Get a block by its name
93
+ * @param predicate defines the predicate used to find the good candidate
94
+ * @returns the required block or null if not found
95
+ */
96
+ getBlockByPredicate(predicate) {
97
+ for (const block of this.attachedBlocks) {
98
+ if (predicate(block)) {
99
+ return block;
100
+ }
101
+ }
102
+ return null;
103
+ }
104
+ /**
105
+ * Gets the list of input blocks attached to this material
106
+ * @returns an array of InputBlocks
107
+ */
108
+ getInputBlocks() {
109
+ const blocks = [];
110
+ for (const block of this.attachedBlocks) {
111
+ if (block.isInput) {
112
+ blocks.push(block);
113
+ }
114
+ }
115
+ return blocks;
116
+ }
117
+ /**
118
+ * Launch the node geometry editor
119
+ * @param config Define the configuration of the editor
120
+ * @returns a promise fulfilled when the node editor is visible
121
+ */
122
+ edit(config) {
123
+ return new Promise((resolve) => {
124
+ this.BJSNODEGEOMETRYEDITOR = this.BJSNODEGEOMETRYEDITOR || this._getGlobalNodeGeometryEditor();
125
+ if (typeof this.BJSNODEGEOMETRYEDITOR == "undefined") {
126
+ const editorUrl = config && config.editorURL ? config.editorURL : NodeGeometry.EditorURL;
127
+ // Load editor and add it to the DOM
128
+ Tools.LoadScript(editorUrl, () => {
129
+ this.BJSNODEGEOMETRYEDITOR = this.BJSNODEGEOMETRYEDITOR || this._getGlobalNodeGeometryEditor();
130
+ this._createNodeEditor(config === null || config === void 0 ? void 0 : config.nodeGeometryEditorConfig);
131
+ resolve();
132
+ });
133
+ }
134
+ else {
135
+ // Otherwise creates the editor
136
+ this._createNodeEditor(config === null || config === void 0 ? void 0 : config.nodeGeometryEditorConfig);
137
+ resolve();
138
+ }
139
+ });
140
+ }
141
+ /** Creates the node editor window. */
142
+ _createNodeEditor(additionalConfig) {
143
+ const nodeEditorConfig = Object.assign({ nodeGeometry: this }, additionalConfig);
144
+ this.BJSNODEGEOMETRYEDITOR.NodeGeometryEditor.Show(nodeEditorConfig);
145
+ }
146
+ /**
147
+ * Build the material and generates the inner effect
148
+ * @param verbose defines if the build should log activity
149
+ * @param updateBuildId defines if the internal build Id should be updated (default is true)
150
+ * @param autoConfigure defines if the autoConfigure method should be called when initializing blocks (default is false)
151
+ */
152
+ build(verbose = false, updateBuildId = true, autoConfigure = false) {
153
+ this._buildWasSuccessful = false;
154
+ if (!this.outputBlock) {
155
+ throw "You must define the outputBlock property before building the geometry";
156
+ }
157
+ const now = PrecisionDate.Now;
158
+ // Initialize blocks
159
+ this._initializeBlock(this.outputBlock, autoConfigure);
160
+ // Build
161
+ const state = new NodeGeometryBuildState();
162
+ state.buildId = this._buildId;
163
+ state.verbose = verbose;
164
+ this.outputBlock.build(state);
165
+ if (updateBuildId) {
166
+ this._buildId = NodeGeometry._BuildIdGenerator++;
167
+ }
168
+ this._buildExecutionTime = PrecisionDate.Now - now;
169
+ // Errors
170
+ state.emitErrors();
171
+ this._buildWasSuccessful = true;
172
+ this._vertexData = state.vertexData;
173
+ this.onBuildObservable.notifyObservers(this);
174
+ }
175
+ /**
176
+ * Creates a mesh from the geometry blocks
177
+ * @param name defines the name of the mesh
178
+ * @param scene The scene the mesh is scoped to
179
+ * @returns The new mesh
180
+ */
181
+ createMesh(name, scene = null) {
182
+ if (!this._buildWasSuccessful) {
183
+ this.build();
184
+ }
185
+ if (!this._vertexData) {
186
+ return null;
187
+ }
188
+ const mesh = new Mesh(name, scene);
189
+ this._vertexData.applyToMesh(mesh);
190
+ mesh.metadata = mesh.metadata || {};
191
+ mesh.metadata.nodeGeometry = this;
192
+ return mesh;
193
+ }
194
+ _initializeBlock(node, autoConfigure = true) {
195
+ node.initialize();
196
+ if (autoConfigure) {
197
+ node.autoConfigure();
198
+ }
199
+ node._preparationId = this._buildId;
200
+ if (this.attachedBlocks.indexOf(node) === -1) {
201
+ this.attachedBlocks.push(node);
202
+ }
203
+ for (const input of node.inputs) {
204
+ const connectedPoint = input.connectedPoint;
205
+ if (connectedPoint) {
206
+ const block = connectedPoint.ownerBlock;
207
+ if (block !== node) {
208
+ this._initializeBlock(block, autoConfigure);
209
+ }
210
+ }
211
+ }
212
+ }
213
+ /**
214
+ * Clear the current geometry
215
+ */
216
+ clear() {
217
+ this.outputBlock = null;
218
+ this.attachedBlocks.length = 0;
219
+ }
220
+ /**
221
+ * Remove a block from the current geometry
222
+ * @param block defines the block to remove
223
+ */
224
+ removeBlock(block) {
225
+ const attachedBlockIndex = this.attachedBlocks.indexOf(block);
226
+ if (attachedBlockIndex > -1) {
227
+ this.attachedBlocks.splice(attachedBlockIndex, 1);
228
+ }
229
+ if (block === this.outputBlock) {
230
+ this.outputBlock = null;
231
+ }
232
+ }
233
+ /**
234
+ * Clear the current graph and load a new one from a serialization object
235
+ * @param source defines the JSON representation of the geometry
236
+ * @param merge defines whether or not the source must be merged or replace the current content
237
+ */
238
+ parseSerializedObject(source, merge = false) {
239
+ if (!merge) {
240
+ this.clear();
241
+ }
242
+ const map = {};
243
+ // Create blocks
244
+ for (const parsedBlock of source.blocks) {
245
+ const blockType = GetClass(parsedBlock.customType);
246
+ if (blockType) {
247
+ const block = new blockType();
248
+ block._deserialize(parsedBlock);
249
+ map[parsedBlock.id] = block;
250
+ this.attachedBlocks.push(block);
251
+ }
252
+ }
253
+ // Reconnect teleportation
254
+ for (const block of this.attachedBlocks) {
255
+ if (block.isTeleportOut) {
256
+ const teleportOut = block;
257
+ const id = teleportOut._tempEntryPointUniqueId;
258
+ if (id) {
259
+ const source = map[id];
260
+ source.attachToEndpoint(teleportOut);
261
+ }
262
+ }
263
+ }
264
+ // Connections - Starts with input blocks only (except if in "merge" mode where we scan all blocks)
265
+ for (let blockIndex = 0; blockIndex < source.blocks.length; blockIndex++) {
266
+ const parsedBlock = source.blocks[blockIndex];
267
+ const block = map[parsedBlock.id];
268
+ if (!block) {
269
+ continue;
270
+ }
271
+ if (block.inputs.length && parsedBlock.inputs.some((i) => i.targetConnectionName) && !merge) {
272
+ continue;
273
+ }
274
+ this._restoreConnections(block, source, map);
275
+ }
276
+ // Outputs
277
+ if (source.outputNodeId) {
278
+ this.outputBlock = map[source.outputNodeId];
279
+ }
280
+ // UI related info
281
+ if (source.locations || (source.editorData && source.editorData.locations)) {
282
+ const locations = source.locations || source.editorData.locations;
283
+ for (const location of locations) {
284
+ if (map[location.blockId]) {
285
+ location.blockId = map[location.blockId].uniqueId;
286
+ }
287
+ }
288
+ if (merge && this.editorData && this.editorData.locations) {
289
+ locations.concat(this.editorData.locations);
290
+ }
291
+ if (source.locations) {
292
+ this.editorData = {
293
+ locations: locations,
294
+ };
295
+ }
296
+ else {
297
+ this.editorData = source.editorData;
298
+ this.editorData.locations = locations;
299
+ }
300
+ const blockMap = [];
301
+ for (const key in map) {
302
+ blockMap[key] = map[key].uniqueId;
303
+ }
304
+ this.editorData.map = blockMap;
305
+ }
306
+ this.comment = source.comment;
307
+ }
308
+ _restoreConnections(block, source, map) {
309
+ for (const outputPoint of block.outputs) {
310
+ for (const candidate of source.blocks) {
311
+ const target = map[candidate.id];
312
+ if (!target) {
313
+ continue;
314
+ }
315
+ for (const input of candidate.inputs) {
316
+ if (map[input.targetBlockId] === block && input.targetConnectionName === outputPoint.name) {
317
+ const inputPoint = target.getInputByName(input.inputName);
318
+ if (!inputPoint || inputPoint.isConnected) {
319
+ continue;
320
+ }
321
+ outputPoint.connectTo(inputPoint, true);
322
+ this._restoreConnections(target, source, map);
323
+ continue;
324
+ }
325
+ }
326
+ }
327
+ }
328
+ }
329
+ /**
330
+ * Generate a string containing the code declaration required to create an equivalent of this geometry
331
+ * @returns a string
332
+ */
333
+ generateCode() {
334
+ let alreadyDumped = [];
335
+ const blocks = [];
336
+ const uniqueNames = ["const", "var", "let"];
337
+ // Gets active blocks
338
+ if (this.outputBlock) {
339
+ this._gatherBlocks(this.outputBlock, blocks);
340
+ }
341
+ // Generate
342
+ let codeString = `var nodeGeometry = new BABYLON.NodeGeometry("${this.name || "node geometry"}");\r\n`;
343
+ for (const node of blocks) {
344
+ if (node.isInput && alreadyDumped.indexOf(node) === -1) {
345
+ codeString += node._dumpCode(uniqueNames, alreadyDumped);
346
+ }
347
+ }
348
+ if (this.outputBlock) {
349
+ // Connections
350
+ alreadyDumped = [];
351
+ codeString += "\r\n// Connections\r\n";
352
+ codeString += this.outputBlock._dumpCodeForOutputConnections(alreadyDumped);
353
+ // Output nodes
354
+ codeString += "\r\n// Output nodes\r\n";
355
+ codeString += `nodeGeometry.outputBlock = ${this.outputBlock._codeVariableName};\r\n`;
356
+ codeString += `nodeGeometry.build();\r\n`;
357
+ }
358
+ return codeString;
359
+ }
360
+ _gatherBlocks(rootNode, list) {
361
+ if (list.indexOf(rootNode) !== -1) {
362
+ return;
363
+ }
364
+ list.push(rootNode);
365
+ for (const input of rootNode.inputs) {
366
+ const connectedPoint = input.connectedPoint;
367
+ if (connectedPoint) {
368
+ const block = connectedPoint.ownerBlock;
369
+ if (block !== rootNode) {
370
+ this._gatherBlocks(block, list);
371
+ }
372
+ }
373
+ }
374
+ // Teleportation
375
+ if (rootNode.isTeleportOut) {
376
+ const block = rootNode;
377
+ if (block.entryPoint) {
378
+ this._gatherBlocks(block.entryPoint, list);
379
+ }
380
+ }
381
+ }
382
+ /**
383
+ * Clear the current geometry and set it to a default state
384
+ */
385
+ setToDefault() {
386
+ this.clear();
387
+ this.editorData = null;
388
+ // Source
389
+ const dataBlock = new BoxBlock("Box");
390
+ dataBlock.autoConfigure();
391
+ // Final output
392
+ const output = new GeometryOutputBlock("Geometry Output");
393
+ dataBlock.geometry.connectTo(output.geometry);
394
+ this.outputBlock = output;
395
+ }
396
+ /**
397
+ * Makes a duplicate of the current geometry.
398
+ * @param name defines the name to use for the new geometry
399
+ */
400
+ clone(name) {
401
+ const serializationObject = this.serialize();
402
+ const clone = SerializationHelper.Clone(() => new NodeGeometry(name), this);
403
+ clone.name = name;
404
+ clone.parseSerializedObject(serializationObject);
405
+ clone._buildId = this._buildId;
406
+ clone.build(false);
407
+ return clone;
408
+ }
409
+ /**
410
+ * Serializes this geometry in a JSON representation
411
+ * @param saveMeshData defines a boolean indicating that mesh data must be saved as well
412
+ * @param selectedBlocks defines the list of blocks to save (if null the whole geometry will be saved)
413
+ * @returns the serialized geometry object
414
+ */
415
+ serialize(saveMeshData, selectedBlocks) {
416
+ const serializationObject = selectedBlocks ? {} : SerializationHelper.Serialize(this);
417
+ serializationObject.editorData = JSON.parse(JSON.stringify(this.editorData)); // Copy
418
+ let blocks = [];
419
+ if (selectedBlocks) {
420
+ blocks = selectedBlocks;
421
+ }
422
+ else {
423
+ serializationObject.customType = "BABYLON.NodeGeometry";
424
+ if (this.outputBlock) {
425
+ serializationObject.outputNodeId = this.outputBlock.uniqueId;
426
+ }
427
+ }
428
+ // Blocks
429
+ serializationObject.blocks = [];
430
+ for (const block of blocks) {
431
+ serializationObject.blocks.push(block.serialize(saveMeshData));
432
+ }
433
+ if (!selectedBlocks) {
434
+ for (const block of this.attachedBlocks) {
435
+ if (blocks.indexOf(block) !== -1) {
436
+ continue;
437
+ }
438
+ serializationObject.blocks.push(block.serialize(saveMeshData));
439
+ }
440
+ }
441
+ return serializationObject;
442
+ }
443
+ /**
444
+ * Disposes the ressources
445
+ */
446
+ dispose() {
447
+ for (const block of this.attachedBlocks) {
448
+ block.dispose();
449
+ }
450
+ this.attachedBlocks.length = 0;
451
+ this.onBuildObservable.clear();
452
+ }
453
+ /**
454
+ * Creates a new node geometry set to default basic configuration
455
+ * @param name defines the name of the geometry
456
+ * @returns a new NodeGeometry
457
+ */
458
+ static CreateDefault(name) {
459
+ const nodeGeometry = new NodeGeometry(name);
460
+ nodeGeometry.setToDefault();
461
+ nodeGeometry.build();
462
+ return nodeGeometry;
463
+ }
464
+ /**
465
+ * Creates a node geometry from parsed geometry data
466
+ * @param source defines the JSON representation of the geometry
467
+ * @returns a new node geometry
468
+ */
469
+ static Parse(source) {
470
+ const nodeGeometry = SerializationHelper.Parse(() => new NodeGeometry(source.name), source, null);
471
+ nodeGeometry.parseSerializedObject(source);
472
+ nodeGeometry.build();
473
+ return nodeGeometry;
474
+ }
475
+ /**
476
+ * Creates a node geometry from a snippet saved by the node geometry editor
477
+ * @param snippetId defines the snippet to load
478
+ * @param nodeGeometry defines a node geometry to update (instead of creating a new one)
479
+ * @param skipBuild defines whether to build the node geometry
480
+ * @returns a promise that will resolve to the new node geometry
481
+ */
482
+ static ParseFromSnippetAsync(snippetId, nodeGeometry, skipBuild = false) {
483
+ if (snippetId === "_BLANK") {
484
+ return Promise.resolve(NodeGeometry.CreateDefault("blank"));
485
+ }
486
+ return new Promise((resolve, reject) => {
487
+ const request = new WebRequest();
488
+ request.addEventListener("readystatechange", () => {
489
+ if (request.readyState == 4) {
490
+ if (request.status == 200) {
491
+ const snippet = JSON.parse(JSON.parse(request.responseText).jsonPayload);
492
+ const serializationObject = JSON.parse(snippet.nodeGeometry);
493
+ if (!nodeGeometry) {
494
+ nodeGeometry = SerializationHelper.Parse(() => new NodeGeometry(snippetId), serializationObject, null);
495
+ }
496
+ nodeGeometry.parseSerializedObject(serializationObject);
497
+ nodeGeometry.snippetId = snippetId;
498
+ try {
499
+ if (!skipBuild) {
500
+ nodeGeometry.build();
501
+ }
502
+ resolve(nodeGeometry);
503
+ }
504
+ catch (err) {
505
+ reject(err);
506
+ }
507
+ }
508
+ else {
509
+ reject("Unable to load the snippet " + snippetId);
510
+ }
511
+ }
512
+ });
513
+ request.open("GET", this.SnippetUrl + "/" + snippetId.replace(/#/g, "/"));
514
+ request.send();
515
+ });
516
+ }
517
+ }
518
+ NodeGeometry._BuildIdGenerator = 0;
519
+ /** Define the Url to load node editor script */
520
+ NodeGeometry.EditorURL = `https://unpkg.com/babylonjs-node-geometry-editor@${Engine.Version}/babylon.nodeGeometryEditor.js`;
521
+ /** Define the Url to load snippets */
522
+ NodeGeometry.SnippetUrl = `https://snippet.babylonjs.com`;
523
+ __decorate([
524
+ serialize()
525
+ ], NodeGeometry.prototype, "name", void 0);
526
+ __decorate([
527
+ serialize("comment")
528
+ ], NodeGeometry.prototype, "comment", void 0);
529
+ //# sourceMappingURL=nodeGeometry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodeGeometry.js","sourceRoot":"","sources":["../../../../../dev/core/src/Meshes/Node/nodeGeometry.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"../../Misc/observable\";\r\nimport type { Nullable } from \"../../types\";\r\nimport { Mesh } from \"../mesh\";\r\nimport type { VertexData } from \"../mesh.vertexData\";\r\nimport type { Scene } from \"../../scene\";\r\nimport { GeometryOutputBlock } from \"./Blocks/geometryOutputBlock\";\r\nimport type { NodeGeometryBlock } from \"./nodeGeometryBlock\";\r\nimport { NodeGeometryBuildState } from \"./nodeGeometryBuildState\";\r\nimport { GetClass } from \"../../Misc/typeStore\";\r\nimport { SerializationHelper, serialize } from \"../../Misc/decorators\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { WebRequest } from \"../../Misc/webRequest\";\r\nimport { BoxBlock } from \"./Blocks/Sources/boxBlock\";\r\nimport type { GeometryInputBlock } from \"./Blocks/geometryInputBlock\";\r\nimport { PrecisionDate } from \"../../Misc/precisionDate\";\r\nimport type { TeleportOutBlock } from \"./Blocks/Teleport/teleportOutBlock\";\r\nimport type { TeleportInBlock } from \"./Blocks/Teleport/teleportInBlock\";\r\nimport { Tools } from \"../../Misc/tools\";\r\nimport type { Color4 } from \"../../Maths/math.color\";\r\nimport { Engine } from \"../../Engines/engine\";\r\n\r\n// declare NODEGEOMETRYEDITOR namespace for compilation issue\r\ndeclare let NODEGEOMETRYEDITOR: any;\r\ndeclare let BABYLON: any;\r\n\r\n/**\r\n * Interface used to configure the node geometry editor\r\n */\r\nexport interface INodeGeometryEditorOptions {\r\n /** Define the URL to load node editor script from */\r\n editorURL?: string;\r\n /** Additional configuration for the NGE */\r\n nodeGeometryEditorConfig?: {\r\n backgroundColor?: Color4;\r\n hostScene?: Scene;\r\n };\r\n}\r\n\r\n/**\r\n * Defines a node based geometry\r\n */\r\nexport class NodeGeometry {\r\n private static _BuildIdGenerator: number = 0;\r\n private _buildId: number = NodeGeometry._BuildIdGenerator++;\r\n private _buildWasSuccessful = false;\r\n private _vertexData: Nullable<VertexData> = null;\r\n private _buildExecutionTime: number = 0;\r\n\r\n /** Define the Url to load node editor script */\r\n public static EditorURL = `https://unpkg.com/babylonjs-node-geometry-editor@${Engine.Version}/babylon.nodeGeometryEditor.js`;\r\n\r\n /** Define the Url to load snippets */\r\n public static SnippetUrl = Constants.SnippetUrl;\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private BJSNODEGEOMETRYEDITOR = this._getGlobalNodeGeometryEditor();\r\n\r\n /** Get the inspector from bundle or global */\r\n private _getGlobalNodeGeometryEditor(): any {\r\n // UMD Global name detection from Webpack Bundle UMD Name.\r\n if (typeof NODEGEOMETRYEDITOR !== \"undefined\") {\r\n return NODEGEOMETRYEDITOR;\r\n }\r\n\r\n // In case of module let's check the global emitted from the editor entry point.\r\n if (typeof BABYLON !== \"undefined\" && typeof BABYLON.NodeGeometryEditor !== \"undefined\") {\r\n return BABYLON;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Gets the time spent to build this block (in ms)\r\n */\r\n public get buildExecutionTime() {\r\n return this._buildExecutionTime;\r\n }\r\n\r\n /**\r\n * Gets or sets data used by visual editor\r\n * @see https://nge.babylonjs.com\r\n */\r\n public editorData: any = null;\r\n\r\n /**\r\n * Gets an array of blocks that needs to be serialized even if they are not yet connected\r\n */\r\n public attachedBlocks = new Array<NodeGeometryBlock>();\r\n\r\n /**\r\n * Observable raised when the geometry is built\r\n */\r\n public onBuildObservable = new Observable<NodeGeometry>();\r\n\r\n /** Gets or sets the GeometryOutputBlock used to gather the final geometry data */\r\n public outputBlock: Nullable<GeometryOutputBlock> = null;\r\n\r\n /**\r\n * Snippet ID if the material was created from the snippet server\r\n */\r\n public snippetId: string;\r\n\r\n /**\r\n * The name of the geometry\r\n */\r\n @serialize()\r\n public name: string;\r\n\r\n /**\r\n * A free comment about the geometry\r\n */\r\n @serialize(\"comment\")\r\n public comment: string;\r\n\r\n /**\r\n * Creates a new geometry\r\n * @param name defines the name of the geometry\r\n */\r\n public constructor(name: string) {\r\n this.name = name;\r\n }\r\n\r\n /**\r\n * Gets the current class name of the geometry e.g. \"NodeGeometry\"\r\n * @returns the class name\r\n */\r\n public getClassName(): string {\r\n return \"NodeGeometry\";\r\n }\r\n\r\n /**\r\n * Get a block by its name\r\n * @param name defines the name of the block to retrieve\r\n * @returns the required block or null if not found\r\n */\r\n public getBlockByName(name: string) {\r\n let result = null;\r\n for (const block of this.attachedBlocks) {\r\n if (block.name === name) {\r\n if (!result) {\r\n result = block;\r\n } else {\r\n Tools.Warn(\"More than one block was found with the name `\" + name + \"`\");\r\n return result;\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Get a block by its name\r\n * @param predicate defines the predicate used to find the good candidate\r\n * @returns the required block or null if not found\r\n */\r\n public getBlockByPredicate(predicate: (block: NodeGeometryBlock) => boolean) {\r\n for (const block of this.attachedBlocks) {\r\n if (predicate(block)) {\r\n return block;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Gets the list of input blocks attached to this material\r\n * @returns an array of InputBlocks\r\n */\r\n public getInputBlocks() {\r\n const blocks: GeometryInputBlock[] = [];\r\n for (const block of this.attachedBlocks) {\r\n if (block.isInput) {\r\n blocks.push(block as GeometryInputBlock);\r\n }\r\n }\r\n\r\n return blocks;\r\n }\r\n\r\n /**\r\n * Launch the node geometry editor\r\n * @param config Define the configuration of the editor\r\n * @returns a promise fulfilled when the node editor is visible\r\n */\r\n public edit(config?: INodeGeometryEditorOptions): Promise<void> {\r\n return new Promise((resolve) => {\r\n this.BJSNODEGEOMETRYEDITOR = this.BJSNODEGEOMETRYEDITOR || this._getGlobalNodeGeometryEditor();\r\n if (typeof this.BJSNODEGEOMETRYEDITOR == \"undefined\") {\r\n const editorUrl = config && config.editorURL ? config.editorURL : NodeGeometry.EditorURL;\r\n\r\n // Load editor and add it to the DOM\r\n Tools.LoadScript(editorUrl, () => {\r\n this.BJSNODEGEOMETRYEDITOR = this.BJSNODEGEOMETRYEDITOR || this._getGlobalNodeGeometryEditor();\r\n this._createNodeEditor(config?.nodeGeometryEditorConfig);\r\n resolve();\r\n });\r\n } else {\r\n // Otherwise creates the editor\r\n this._createNodeEditor(config?.nodeGeometryEditorConfig);\r\n resolve();\r\n }\r\n });\r\n }\r\n\r\n /** Creates the node editor window. */\r\n private _createNodeEditor(additionalConfig?: any) {\r\n const nodeEditorConfig: any = {\r\n nodeGeometry: this,\r\n ...additionalConfig,\r\n };\r\n this.BJSNODEGEOMETRYEDITOR.NodeGeometryEditor.Show(nodeEditorConfig);\r\n }\r\n\r\n /**\r\n * Build the material and generates the inner effect\r\n * @param verbose defines if the build should log activity\r\n * @param updateBuildId defines if the internal build Id should be updated (default is true)\r\n * @param autoConfigure defines if the autoConfigure method should be called when initializing blocks (default is false)\r\n */\r\n public build(verbose: boolean = false, updateBuildId = true, autoConfigure = false) {\r\n this._buildWasSuccessful = false;\r\n\r\n if (!this.outputBlock) {\r\n throw \"You must define the outputBlock property before building the geometry\";\r\n }\r\n const now = PrecisionDate.Now;\r\n // Initialize blocks\r\n this._initializeBlock(this.outputBlock, autoConfigure);\r\n\r\n // Build\r\n const state = new NodeGeometryBuildState();\r\n\r\n state.buildId = this._buildId;\r\n state.verbose = verbose;\r\n\r\n this.outputBlock.build(state);\r\n\r\n if (updateBuildId) {\r\n this._buildId = NodeGeometry._BuildIdGenerator++;\r\n }\r\n\r\n this._buildExecutionTime = PrecisionDate.Now - now;\r\n\r\n // Errors\r\n state.emitErrors();\r\n\r\n this._buildWasSuccessful = true;\r\n this._vertexData = state.vertexData;\r\n this.onBuildObservable.notifyObservers(this);\r\n }\r\n\r\n /**\r\n * Creates a mesh from the geometry blocks\r\n * @param name defines the name of the mesh\r\n * @param scene The scene the mesh is scoped to\r\n * @returns The new mesh\r\n */\r\n public createMesh(name: string, scene: Nullable<Scene> = null): Nullable<Mesh> {\r\n if (!this._buildWasSuccessful) {\r\n this.build();\r\n }\r\n\r\n if (!this._vertexData) {\r\n return null;\r\n }\r\n\r\n const mesh = new Mesh(name, scene);\r\n this._vertexData.applyToMesh(mesh);\r\n\r\n mesh.metadata = mesh.metadata || {};\r\n mesh.metadata.nodeGeometry = this;\r\n\r\n return mesh;\r\n }\r\n\r\n private _initializeBlock(node: NodeGeometryBlock, autoConfigure = true) {\r\n node.initialize();\r\n if (autoConfigure) {\r\n node.autoConfigure();\r\n }\r\n node._preparationId = this._buildId;\r\n\r\n if (this.attachedBlocks.indexOf(node) === -1) {\r\n this.attachedBlocks.push(node);\r\n }\r\n\r\n for (const input of node.inputs) {\r\n const connectedPoint = input.connectedPoint;\r\n if (connectedPoint) {\r\n const block = connectedPoint.ownerBlock;\r\n if (block !== node) {\r\n this._initializeBlock(block, autoConfigure);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Clear the current geometry\r\n */\r\n public clear() {\r\n this.outputBlock = null;\r\n this.attachedBlocks.length = 0;\r\n }\r\n\r\n /**\r\n * Remove a block from the current geometry\r\n * @param block defines the block to remove\r\n */\r\n public removeBlock(block: NodeGeometryBlock) {\r\n const attachedBlockIndex = this.attachedBlocks.indexOf(block);\r\n if (attachedBlockIndex > -1) {\r\n this.attachedBlocks.splice(attachedBlockIndex, 1);\r\n }\r\n\r\n if (block === this.outputBlock) {\r\n this.outputBlock = null;\r\n }\r\n }\r\n\r\n /**\r\n * Clear the current graph and load a new one from a serialization object\r\n * @param source defines the JSON representation of the geometry\r\n * @param merge defines whether or not the source must be merged or replace the current content\r\n */\r\n public parseSerializedObject(source: any, merge = false) {\r\n if (!merge) {\r\n this.clear();\r\n }\r\n\r\n const map: { [key: number]: NodeGeometryBlock } = {};\r\n\r\n // Create blocks\r\n for (const parsedBlock of source.blocks) {\r\n const blockType = GetClass(parsedBlock.customType);\r\n if (blockType) {\r\n const block: NodeGeometryBlock = new blockType();\r\n block._deserialize(parsedBlock);\r\n map[parsedBlock.id] = block;\r\n\r\n this.attachedBlocks.push(block);\r\n }\r\n }\r\n\r\n // Reconnect teleportation\r\n for (const block of this.attachedBlocks) {\r\n if (block.isTeleportOut) {\r\n const teleportOut = block as TeleportOutBlock;\r\n const id = teleportOut._tempEntryPointUniqueId;\r\n if (id) {\r\n const source = map[id] as TeleportInBlock;\r\n source.attachToEndpoint(teleportOut);\r\n }\r\n }\r\n }\r\n\r\n // Connections - Starts with input blocks only (except if in \"merge\" mode where we scan all blocks)\r\n for (let blockIndex = 0; blockIndex < source.blocks.length; blockIndex++) {\r\n const parsedBlock = source.blocks[blockIndex];\r\n const block = map[parsedBlock.id];\r\n\r\n if (!block) {\r\n continue;\r\n }\r\n\r\n if (block.inputs.length && parsedBlock.inputs.some((i: any) => i.targetConnectionName) && !merge) {\r\n continue;\r\n }\r\n this._restoreConnections(block, source, map);\r\n }\r\n\r\n // Outputs\r\n if (source.outputNodeId) {\r\n this.outputBlock = map[source.outputNodeId] as GeometryOutputBlock;\r\n }\r\n\r\n // UI related info\r\n if (source.locations || (source.editorData && source.editorData.locations)) {\r\n const locations: {\r\n blockId: number;\r\n x: number;\r\n y: number;\r\n }[] = source.locations || source.editorData.locations;\r\n\r\n for (const location of locations) {\r\n if (map[location.blockId]) {\r\n location.blockId = map[location.blockId].uniqueId;\r\n }\r\n }\r\n\r\n if (merge && this.editorData && this.editorData.locations) {\r\n locations.concat(this.editorData.locations);\r\n }\r\n\r\n if (source.locations) {\r\n this.editorData = {\r\n locations: locations,\r\n };\r\n } else {\r\n this.editorData = source.editorData;\r\n this.editorData.locations = locations;\r\n }\r\n\r\n const blockMap: number[] = [];\r\n\r\n for (const key in map) {\r\n blockMap[key] = map[key].uniqueId;\r\n }\r\n\r\n this.editorData.map = blockMap;\r\n }\r\n\r\n this.comment = source.comment;\r\n }\r\n\r\n private _restoreConnections(block: NodeGeometryBlock, source: any, map: { [key: number]: NodeGeometryBlock }) {\r\n for (const outputPoint of block.outputs) {\r\n for (const candidate of source.blocks) {\r\n const target = map[candidate.id];\r\n\r\n if (!target) {\r\n continue;\r\n }\r\n\r\n for (const input of candidate.inputs) {\r\n if (map[input.targetBlockId] === block && input.targetConnectionName === outputPoint.name) {\r\n const inputPoint = target.getInputByName(input.inputName);\r\n if (!inputPoint || inputPoint.isConnected) {\r\n continue;\r\n }\r\n\r\n outputPoint.connectTo(inputPoint, true);\r\n this._restoreConnections(target, source, map);\r\n continue;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Generate a string containing the code declaration required to create an equivalent of this geometry\r\n * @returns a string\r\n */\r\n public generateCode() {\r\n let alreadyDumped: NodeGeometryBlock[] = [];\r\n const blocks: NodeGeometryBlock[] = [];\r\n const uniqueNames: string[] = [\"const\", \"var\", \"let\"];\r\n // Gets active blocks\r\n if (this.outputBlock) {\r\n this._gatherBlocks(this.outputBlock, blocks);\r\n }\r\n\r\n // Generate\r\n let codeString = `var nodeGeometry = new BABYLON.NodeGeometry(\"${this.name || \"node geometry\"}\");\\r\\n`;\r\n for (const node of blocks) {\r\n if (node.isInput && alreadyDumped.indexOf(node) === -1) {\r\n codeString += node._dumpCode(uniqueNames, alreadyDumped);\r\n }\r\n }\r\n\r\n if (this.outputBlock) {\r\n // Connections\r\n alreadyDumped = [];\r\n codeString += \"\\r\\n// Connections\\r\\n\";\r\n codeString += this.outputBlock._dumpCodeForOutputConnections(alreadyDumped);\r\n\r\n // Output nodes\r\n codeString += \"\\r\\n// Output nodes\\r\\n\";\r\n codeString += `nodeGeometry.outputBlock = ${this.outputBlock._codeVariableName};\\r\\n`;\r\n codeString += `nodeGeometry.build();\\r\\n`;\r\n }\r\n\r\n return codeString;\r\n }\r\n\r\n private _gatherBlocks(rootNode: NodeGeometryBlock, list: NodeGeometryBlock[]) {\r\n if (list.indexOf(rootNode) !== -1) {\r\n return;\r\n }\r\n list.push(rootNode);\r\n\r\n for (const input of rootNode.inputs) {\r\n const connectedPoint = input.connectedPoint;\r\n if (connectedPoint) {\r\n const block = connectedPoint.ownerBlock;\r\n if (block !== rootNode) {\r\n this._gatherBlocks(block, list);\r\n }\r\n }\r\n }\r\n\r\n // Teleportation\r\n if (rootNode.isTeleportOut) {\r\n const block = rootNode as TeleportOutBlock;\r\n if (block.entryPoint) {\r\n this._gatherBlocks(block.entryPoint, list);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Clear the current geometry and set it to a default state\r\n */\r\n public setToDefault() {\r\n this.clear();\r\n\r\n this.editorData = null;\r\n\r\n // Source\r\n const dataBlock = new BoxBlock(\"Box\");\r\n dataBlock.autoConfigure();\r\n\r\n // Final output\r\n const output = new GeometryOutputBlock(\"Geometry Output\");\r\n dataBlock.geometry.connectTo(output.geometry);\r\n\r\n this.outputBlock = output;\r\n }\r\n\r\n /**\r\n * Makes a duplicate of the current geometry.\r\n * @param name defines the name to use for the new geometry\r\n */\r\n public clone(name: string): NodeGeometry {\r\n const serializationObject = this.serialize();\r\n\r\n const clone = SerializationHelper.Clone(() => new NodeGeometry(name), this);\r\n clone.name = name;\r\n\r\n clone.parseSerializedObject(serializationObject);\r\n clone._buildId = this._buildId;\r\n clone.build(false);\r\n\r\n return clone;\r\n }\r\n\r\n /**\r\n * Serializes this geometry in a JSON representation\r\n * @param saveMeshData defines a boolean indicating that mesh data must be saved as well\r\n * @param selectedBlocks defines the list of blocks to save (if null the whole geometry will be saved)\r\n * @returns the serialized geometry object\r\n */\r\n public serialize(saveMeshData?: boolean, selectedBlocks?: NodeGeometryBlock[]): any {\r\n const serializationObject = selectedBlocks ? {} : SerializationHelper.Serialize(this);\r\n serializationObject.editorData = JSON.parse(JSON.stringify(this.editorData)); // Copy\r\n\r\n let blocks: NodeGeometryBlock[] = [];\r\n\r\n if (selectedBlocks) {\r\n blocks = selectedBlocks;\r\n } else {\r\n serializationObject.customType = \"BABYLON.NodeGeometry\";\r\n if (this.outputBlock) {\r\n serializationObject.outputNodeId = this.outputBlock.uniqueId;\r\n }\r\n }\r\n\r\n // Blocks\r\n serializationObject.blocks = [];\r\n\r\n for (const block of blocks) {\r\n serializationObject.blocks.push(block.serialize(saveMeshData));\r\n }\r\n\r\n if (!selectedBlocks) {\r\n for (const block of this.attachedBlocks) {\r\n if (blocks.indexOf(block) !== -1) {\r\n continue;\r\n }\r\n serializationObject.blocks.push(block.serialize(saveMeshData));\r\n }\r\n }\r\n\r\n return serializationObject;\r\n }\r\n\r\n /**\r\n * Disposes the ressources\r\n */\r\n public dispose(): void {\r\n for (const block of this.attachedBlocks) {\r\n block.dispose();\r\n }\r\n\r\n this.attachedBlocks.length = 0;\r\n this.onBuildObservable.clear();\r\n }\r\n\r\n /**\r\n * Creates a new node geometry set to default basic configuration\r\n * @param name defines the name of the geometry\r\n * @returns a new NodeGeometry\r\n */\r\n public static CreateDefault(name: string) {\r\n const nodeGeometry = new NodeGeometry(name);\r\n\r\n nodeGeometry.setToDefault();\r\n nodeGeometry.build();\r\n\r\n return nodeGeometry;\r\n }\r\n\r\n /**\r\n * Creates a node geometry from parsed geometry data\r\n * @param source defines the JSON representation of the geometry\r\n * @returns a new node geometry\r\n */\r\n public static Parse(source: any): NodeGeometry {\r\n const nodeGeometry = SerializationHelper.Parse(() => new NodeGeometry(source.name), source, null);\r\n\r\n nodeGeometry.parseSerializedObject(source);\r\n nodeGeometry.build();\r\n\r\n return nodeGeometry;\r\n }\r\n\r\n /**\r\n * Creates a node geometry from a snippet saved by the node geometry editor\r\n * @param snippetId defines the snippet to load\r\n * @param nodeGeometry defines a node geometry to update (instead of creating a new one)\r\n * @param skipBuild defines whether to build the node geometry\r\n * @returns a promise that will resolve to the new node geometry\r\n */\r\n public static ParseFromSnippetAsync(snippetId: string, nodeGeometry?: NodeGeometry, skipBuild: boolean = false): Promise<NodeGeometry> {\r\n if (snippetId === \"_BLANK\") {\r\n return Promise.resolve(NodeGeometry.CreateDefault(\"blank\"));\r\n }\r\n\r\n return new Promise((resolve, reject) => {\r\n const request = new WebRequest();\r\n request.addEventListener(\"readystatechange\", () => {\r\n if (request.readyState == 4) {\r\n if (request.status == 200) {\r\n const snippet = JSON.parse(JSON.parse(request.responseText).jsonPayload);\r\n const serializationObject = JSON.parse(snippet.nodeGeometry);\r\n\r\n if (!nodeGeometry) {\r\n nodeGeometry = SerializationHelper.Parse(() => new NodeGeometry(snippetId), serializationObject, null);\r\n }\r\n\r\n nodeGeometry.parseSerializedObject(serializationObject);\r\n nodeGeometry.snippetId = snippetId;\r\n\r\n try {\r\n if (!skipBuild) {\r\n nodeGeometry.build();\r\n }\r\n resolve(nodeGeometry);\r\n } catch (err) {\r\n reject(err);\r\n }\r\n } else {\r\n reject(\"Unable to load the snippet \" + snippetId);\r\n }\r\n }\r\n });\r\n\r\n request.open(\"GET\", this.SnippetUrl + \"/\" + snippetId.replace(/#/g, \"/\"));\r\n request.send();\r\n });\r\n }\r\n}\r\n"]}