@babylonjs/core 8.10.1 → 8.12.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 (394) hide show
  1. package/Cameras/arcRotateCamera.js +8 -0
  2. package/Cameras/arcRotateCamera.js.map +1 -1
  3. package/Cameras/targetCamera.js +2 -0
  4. package/Cameras/targetCamera.js.map +1 -1
  5. package/Collisions/gpuPicker.d.ts +4 -0
  6. package/Collisions/gpuPicker.js +6 -0
  7. package/Collisions/gpuPicker.js.map +1 -1
  8. package/Engines/abstractEngine.js +2 -2
  9. package/Engines/abstractEngine.js.map +1 -1
  10. package/Engines/constants.d.ts +4 -0
  11. package/Engines/constants.js +4 -0
  12. package/Engines/constants.js.map +1 -1
  13. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.d.ts +1 -0
  14. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +2 -0
  15. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
  16. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.d.ts +6 -1
  17. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js +29 -0
  18. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.js.map +1 -1
  19. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.d.ts +6 -0
  20. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js +36 -9
  21. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.js.map +1 -1
  22. package/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.js +1 -0
  23. package/FrameGraph/Node/Blocks/Rendering/shadowGeneratorBlock.js.map +1 -1
  24. package/FrameGraph/Node/Blocks/inputBlock.js +1 -0
  25. package/FrameGraph/Node/Blocks/inputBlock.js.map +1 -1
  26. package/FrameGraph/Node/Types/nodeRenderGraphTypes.d.ts +2 -0
  27. package/FrameGraph/Node/Types/nodeRenderGraphTypes.js +2 -0
  28. package/FrameGraph/Node/Types/nodeRenderGraphTypes.js.map +1 -1
  29. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +23 -0
  30. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +126 -21
  31. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
  32. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +5 -0
  33. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +4 -0
  34. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  35. package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.d.ts +2 -4
  36. package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js +4 -17
  37. package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js.map +1 -1
  38. package/FrameGraph/frameGraph.js +1 -1
  39. package/FrameGraph/frameGraph.js.map +1 -1
  40. package/FrameGraph/frameGraphContext.d.ts +30 -0
  41. package/FrameGraph/frameGraphContext.js +47 -0
  42. package/FrameGraph/frameGraphContext.js.map +1 -1
  43. package/FrameGraph/frameGraphRenderContext.d.ts +1 -4
  44. package/FrameGraph/frameGraphRenderContext.js +2 -5
  45. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  46. package/Lights/Shadows/cascadedShadowGenerator.d.ts +0 -1
  47. package/Lights/Shadows/cascadedShadowGenerator.js +0 -12
  48. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  49. package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +1 -1
  50. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +4 -1
  51. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
  52. package/Materials/Node/Blocks/Dual/currentScreenBlock.d.ts +2 -3
  53. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +1 -1
  54. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  55. package/Materials/Node/Blocks/Dual/fogBlock.d.ts +1 -1
  56. package/Materials/Node/Blocks/Dual/fogBlock.js +4 -1
  57. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  58. package/Materials/Node/Blocks/Dual/lightBlock.d.ts +1 -1
  59. package/Materials/Node/Blocks/Dual/lightBlock.js +2 -2
  60. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  61. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +1 -2
  62. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +1 -1
  63. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  64. package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.d.ts +13 -3
  65. package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.js +64 -9
  66. package/Materials/Node/Blocks/Dual/smartFilterTextureBlock.js.map +1 -1
  67. package/Materials/Node/Blocks/Dual/textureBlock.d.ts +2 -3
  68. package/Materials/Node/Blocks/Dual/textureBlock.js +2 -2
  69. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  70. package/Materials/Node/Blocks/Fragment/TBNBlock.d.ts +1 -1
  71. package/Materials/Node/Blocks/Fragment/TBNBlock.js +4 -1
  72. package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
  73. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +2 -2
  74. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  75. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.d.ts +1 -2
  76. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +1 -1
  77. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  78. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +2 -2
  79. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
  80. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +1 -2
  81. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
  82. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.d.ts +1 -1
  83. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +1 -1
  84. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  85. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.d.ts +1 -2
  86. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +1 -1
  87. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  88. package/Materials/Node/Blocks/Fragment/screenSizeBlock.d.ts +4 -0
  89. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +8 -2
  90. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  91. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.d.ts +3 -3
  92. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.js +6 -3
  93. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.js.map +1 -1
  94. package/Materials/Node/Blocks/PBR/anisotropyBlock.d.ts +1 -2
  95. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +2 -4
  96. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  97. package/Materials/Node/Blocks/PBR/clearCoatBlock.d.ts +1 -2
  98. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +1 -2
  99. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  100. package/Materials/Node/Blocks/PBR/iridescenceBlock.d.ts +2 -3
  101. package/Materials/Node/Blocks/PBR/iridescenceBlock.js +1 -2
  102. package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
  103. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +1 -1
  104. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +5 -2
  105. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  106. package/Materials/Node/Blocks/PBR/reflectionBlock.d.ts +1 -2
  107. package/Materials/Node/Blocks/PBR/reflectionBlock.js +2 -2
  108. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  109. package/Materials/Node/Blocks/PBR/refractionBlock.d.ts +1 -2
  110. package/Materials/Node/Blocks/PBR/refractionBlock.js +1 -2
  111. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  112. package/Materials/Node/Blocks/PBR/sheenBlock.d.ts +2 -3
  113. package/Materials/Node/Blocks/PBR/sheenBlock.js +1 -2
  114. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  115. package/Materials/Node/Blocks/PBR/subSurfaceBlock.d.ts +2 -3
  116. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -2
  117. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  118. package/Materials/Node/Blocks/Particle/particleTextureBlock.d.ts +1 -2
  119. package/Materials/Node/Blocks/Particle/particleTextureBlock.js +1 -1
  120. package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
  121. package/Materials/Node/Blocks/Vertex/bonesBlock.d.ts +2 -2
  122. package/Materials/Node/Blocks/Vertex/bonesBlock.js +3 -3
  123. package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
  124. package/Materials/Node/Blocks/Vertex/instancesBlock.d.ts +1 -1
  125. package/Materials/Node/Blocks/Vertex/instancesBlock.js +1 -1
  126. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  127. package/Materials/Node/Blocks/Vertex/lightInformationBlock.d.ts +1 -2
  128. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +1 -1
  129. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  130. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.d.ts +2 -2
  131. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +8 -2
  132. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  133. package/Materials/Node/Blocks/transformBlock.d.ts +3 -3
  134. package/Materials/Node/Blocks/transformBlock.js +4 -5
  135. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  136. package/Materials/Node/Blocks/triPlanarBlock.d.ts +1 -3
  137. package/Materials/Node/Blocks/triPlanarBlock.js +1 -1
  138. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  139. package/Materials/Node/nodeMaterial.d.ts +1 -1
  140. package/Materials/Node/nodeMaterial.js +28 -42
  141. package/Materials/Node/nodeMaterial.js.map +1 -1
  142. package/Materials/Node/nodeMaterialBlock.d.ts +8 -12
  143. package/Materials/Node/nodeMaterialBlock.js +10 -12
  144. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  145. package/Materials/Node/nodeMaterialBuildState.js +7 -2
  146. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  147. package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +14 -3
  148. package/Materials/Node/nodeMaterialBuildStateSharedData.js +24 -6
  149. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  150. package/Materials/PBR/pbrBaseMaterial.d.ts +2 -0
  151. package/Materials/PBR/pbrBaseMaterial.js +11 -0
  152. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  153. package/Materials/Textures/Loaders/exrTextureLoader.d.ts +10 -0
  154. package/Materials/Textures/Loaders/exrTextureLoader.js +28 -1
  155. package/Materials/Textures/Loaders/exrTextureLoader.js.map +1 -1
  156. package/Materials/materialHelper.functions.js +1 -1
  157. package/Materials/materialHelper.functions.js.map +1 -1
  158. package/Materials/materialHelper.geometryrendering.js +7 -0
  159. package/Materials/materialHelper.geometryrendering.js.map +1 -1
  160. package/Materials/standardMaterial.d.ts +2 -0
  161. package/Materials/standardMaterial.js +11 -0
  162. package/Materials/standardMaterial.js.map +1 -1
  163. package/Materials/uniformBuffer.js +2 -1
  164. package/Materials/uniformBuffer.js.map +1 -1
  165. package/Meshes/Node/Blocks/Textures/geometryTextureBlock.d.ts +7 -0
  166. package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js +11 -5
  167. package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js.map +1 -1
  168. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.d.ts +6 -0
  169. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js +42 -4
  170. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js.map +1 -1
  171. package/Meshes/Node/Blocks/geometryOptimizeBlock.js +8 -0
  172. package/Meshes/Node/Blocks/geometryOptimizeBlock.js.map +1 -1
  173. package/Misc/environmentTextureTools.d.ts +4 -0
  174. package/Misc/environmentTextureTools.js +1 -0
  175. package/Misc/environmentTextureTools.js.map +1 -1
  176. package/Misc/minMaxReducer.d.ts +8 -6
  177. package/Misc/minMaxReducer.js +57 -90
  178. package/Misc/minMaxReducer.js.map +1 -1
  179. package/Misc/thinMinMaxReducer.d.ts +47 -0
  180. package/Misc/thinMinMaxReducer.js +148 -0
  181. package/Misc/thinMinMaxReducer.js.map +1 -0
  182. package/Particles/EmitterTypes/customParticleEmitter.d.ts +5 -0
  183. package/Particles/EmitterTypes/customParticleEmitter.js +9 -1
  184. package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
  185. package/Particles/IParticleSystem.d.ts +4 -0
  186. package/Particles/IParticleSystem.js.map +1 -1
  187. package/Particles/Node/Blocks/Conditions/particleConditionBlock.d.ts +75 -0
  188. package/Particles/Node/Blocks/Conditions/particleConditionBlock.js +179 -0
  189. package/Particles/Node/Blocks/Conditions/particleConditionBlock.js.map +1 -0
  190. package/Particles/Node/Blocks/Emitters/boxShapeBlock.d.ts +47 -0
  191. package/Particles/Node/Blocks/Emitters/boxShapeBlock.js +107 -0
  192. package/Particles/Node/Blocks/Emitters/boxShapeBlock.js.map +1 -0
  193. package/Particles/Node/Blocks/Emitters/createParticleBlock.d.ts +46 -0
  194. package/Particles/Node/Blocks/Emitters/createParticleBlock.js +97 -0
  195. package/Particles/Node/Blocks/Emitters/createParticleBlock.js.map +1 -0
  196. package/Particles/Node/Blocks/Emitters/customShapeBlock.d.ts +39 -0
  197. package/Particles/Node/Blocks/Emitters/customShapeBlock.js +84 -0
  198. package/Particles/Node/Blocks/Emitters/customShapeBlock.js.map +1 -0
  199. package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.d.ts +48 -0
  200. package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.js +120 -0
  201. package/Particles/Node/Blocks/Emitters/cylinderShapeBlock.js.map +1 -0
  202. package/Particles/Node/Blocks/Emitters/index.d.ts +7 -0
  203. package/Particles/Node/Blocks/Emitters/index.js +8 -0
  204. package/Particles/Node/Blocks/Emitters/index.js.map +1 -0
  205. package/Particles/Node/Blocks/Emitters/pointShapeBlock.d.ts +39 -0
  206. package/Particles/Node/Blocks/Emitters/pointShapeBlock.js +86 -0
  207. package/Particles/Node/Blocks/Emitters/pointShapeBlock.js.map +1 -0
  208. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.d.ts +53 -0
  209. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.js +111 -0
  210. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.js.map +1 -0
  211. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.d.ts +43 -0
  212. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.js +108 -0
  213. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.js.map +1 -0
  214. package/Particles/Node/Blocks/Teleport/particleTeleportInBlock.d.ts +48 -0
  215. package/Particles/Node/Blocks/Teleport/particleTeleportInBlock.js +100 -0
  216. package/Particles/Node/Blocks/Teleport/particleTeleportInBlock.js.map +1 -0
  217. package/Particles/Node/Blocks/Teleport/particleTeleportOutBlock.d.ts +47 -0
  218. package/Particles/Node/Blocks/Teleport/particleTeleportOutBlock.js +82 -0
  219. package/Particles/Node/Blocks/Teleport/particleTeleportOutBlock.js.map +1 -0
  220. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.d.ts +48 -0
  221. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.js +133 -0
  222. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.js.map +1 -0
  223. package/Particles/Node/Blocks/Triggers/triggerTools.d.ts +9 -0
  224. package/Particles/Node/Blocks/Triggers/triggerTools.js +16 -0
  225. package/Particles/Node/Blocks/Triggers/triggerTools.js.map +1 -0
  226. package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.d.ts +31 -0
  227. package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.js +64 -0
  228. package/Particles/Node/Blocks/Update/basicPositionUpdateBlock.js.map +1 -0
  229. package/Particles/Node/Blocks/Update/basicSpriteUpdateBlock.d.ts +31 -0
  230. package/Particles/Node/Blocks/Update/basicSpriteUpdateBlock.js +63 -0
  231. package/Particles/Node/Blocks/Update/basicSpriteUpdateBlock.js.map +1 -0
  232. package/Particles/Node/Blocks/Update/updateAngleBlock.d.ts +35 -0
  233. package/Particles/Node/Blocks/Update/updateAngleBlock.js +73 -0
  234. package/Particles/Node/Blocks/Update/updateAngleBlock.js.map +1 -0
  235. package/Particles/Node/Blocks/Update/updateColorBlock.d.ts +35 -0
  236. package/Particles/Node/Blocks/Update/updateColorBlock.js +73 -0
  237. package/Particles/Node/Blocks/Update/updateColorBlock.js.map +1 -0
  238. package/Particles/Node/Blocks/Update/updateDirectionBlock.d.ts +35 -0
  239. package/Particles/Node/Blocks/Update/updateDirectionBlock.js +73 -0
  240. package/Particles/Node/Blocks/Update/updateDirectionBlock.js.map +1 -0
  241. package/Particles/Node/Blocks/Update/updateFlowMapBlock.d.ts +41 -0
  242. package/Particles/Node/Blocks/Update/updateFlowMapBlock.js +102 -0
  243. package/Particles/Node/Blocks/Update/updateFlowMapBlock.js.map +1 -0
  244. package/Particles/Node/Blocks/Update/updatePositionBlock.d.ts +35 -0
  245. package/Particles/Node/Blocks/Update/updatePositionBlock.js +73 -0
  246. package/Particles/Node/Blocks/Update/updatePositionBlock.js.map +1 -0
  247. package/Particles/Node/Blocks/Update/updateScaleBlock.d.ts +35 -0
  248. package/Particles/Node/Blocks/Update/updateScaleBlock.js +73 -0
  249. package/Particles/Node/Blocks/Update/updateScaleBlock.js.map +1 -0
  250. package/Particles/Node/Blocks/Update/updateSpriteCellIndexBlock.d.ts +35 -0
  251. package/Particles/Node/Blocks/Update/updateSpriteCellIndexBlock.js +74 -0
  252. package/Particles/Node/Blocks/Update/updateSpriteCellIndexBlock.js.map +1 -0
  253. package/Particles/Node/Blocks/index.d.ts +27 -0
  254. package/Particles/Node/Blocks/index.js +29 -0
  255. package/Particles/Node/Blocks/index.js.map +1 -0
  256. package/Particles/Node/Blocks/particleConverterBlock.d.ts +85 -0
  257. package/Particles/Node/Blocks/particleConverterBlock.js +267 -0
  258. package/Particles/Node/Blocks/particleConverterBlock.js.map +1 -0
  259. package/Particles/Node/Blocks/particleDebugBlock.d.ts +37 -0
  260. package/Particles/Node/Blocks/particleDebugBlock.js +109 -0
  261. package/Particles/Node/Blocks/particleDebugBlock.js.map +1 -0
  262. package/Particles/Node/Blocks/particleElbowBlock.d.ts +27 -0
  263. package/Particles/Node/Blocks/particleElbowBlock.js +47 -0
  264. package/Particles/Node/Blocks/particleElbowBlock.js.map +1 -0
  265. package/Particles/Node/Blocks/particleGradientBlock.d.ts +28 -0
  266. package/Particles/Node/Blocks/particleGradientBlock.js +118 -0
  267. package/Particles/Node/Blocks/particleGradientBlock.js.map +1 -0
  268. package/Particles/Node/Blocks/particleGradientValueBlock.d.ts +32 -0
  269. package/Particles/Node/Blocks/particleGradientValueBlock.js +79 -0
  270. package/Particles/Node/Blocks/particleGradientValueBlock.js.map +1 -0
  271. package/Particles/Node/Blocks/particleInputBlock.d.ts +87 -0
  272. package/Particles/Node/Blocks/particleInputBlock.js +279 -0
  273. package/Particles/Node/Blocks/particleInputBlock.js.map +1 -0
  274. package/Particles/Node/Blocks/particleLerpBlock.d.ts +34 -0
  275. package/Particles/Node/Blocks/particleLerpBlock.js +92 -0
  276. package/Particles/Node/Blocks/particleLerpBlock.js.map +1 -0
  277. package/Particles/Node/Blocks/particleMathBlock.d.ts +64 -0
  278. package/Particles/Node/Blocks/particleMathBlock.js +321 -0
  279. package/Particles/Node/Blocks/particleMathBlock.js.map +1 -0
  280. package/Particles/Node/Blocks/particleRandomBlock.d.ts +52 -0
  281. package/Particles/Node/Blocks/particleRandomBlock.js +161 -0
  282. package/Particles/Node/Blocks/particleRandomBlock.js.map +1 -0
  283. package/Particles/Node/Blocks/particleSourceTextureBlock.d.ts +65 -0
  284. package/Particles/Node/Blocks/particleSourceTextureBlock.js +173 -0
  285. package/Particles/Node/Blocks/particleSourceTextureBlock.js.map +1 -0
  286. package/Particles/Node/Blocks/particleTrigonometryBlock.d.ts +80 -0
  287. package/Particles/Node/Blocks/particleTrigonometryBlock.js +272 -0
  288. package/Particles/Node/Blocks/particleTrigonometryBlock.js.map +1 -0
  289. package/Particles/Node/Blocks/randomRangeBlock.d.ts +45 -0
  290. package/Particles/Node/Blocks/randomRangeBlock.js +151 -0
  291. package/Particles/Node/Blocks/randomRangeBlock.js.map +1 -0
  292. package/Particles/Node/Blocks/systemBlock.d.ts +71 -0
  293. package/Particles/Node/Blocks/systemBlock.js +193 -0
  294. package/Particles/Node/Blocks/systemBlock.js.map +1 -0
  295. package/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes.d.ts +39 -0
  296. package/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes.js +41 -0
  297. package/Particles/Node/Enums/nodeParticleBlockConnectionPointTypes.js.map +1 -0
  298. package/Particles/Node/Enums/nodeParticleContextualSources.d.ts +31 -0
  299. package/Particles/Node/Enums/nodeParticleContextualSources.js +34 -0
  300. package/Particles/Node/Enums/nodeParticleContextualSources.js.map +1 -0
  301. package/Particles/Node/Enums/nodeParticleSystemSources.d.ts +13 -0
  302. package/Particles/Node/Enums/nodeParticleSystemSources.js +15 -0
  303. package/Particles/Node/Enums/nodeParticleSystemSources.js.map +1 -0
  304. package/Particles/Node/index.d.ts +8 -0
  305. package/Particles/Node/index.js +10 -0
  306. package/Particles/Node/index.js.map +1 -0
  307. package/Particles/Node/nodeParticleBlock.d.ts +154 -0
  308. package/Particles/Node/nodeParticleBlock.js +355 -0
  309. package/Particles/Node/nodeParticleBlock.js.map +1 -0
  310. package/Particles/Node/nodeParticleBlockConnectionPoint.d.ts +188 -0
  311. package/Particles/Node/nodeParticleBlockConnectionPoint.js +337 -0
  312. package/Particles/Node/nodeParticleBlockConnectionPoint.js.map +1 -0
  313. package/Particles/Node/nodeParticleBuildState.d.ts +89 -0
  314. package/Particles/Node/nodeParticleBuildState.js +170 -0
  315. package/Particles/Node/nodeParticleBuildState.js.map +1 -0
  316. package/Particles/Node/nodeParticleSystemSet.d.ts +120 -0
  317. package/Particles/Node/nodeParticleSystemSet.js +382 -0
  318. package/Particles/Node/nodeParticleSystemSet.js.map +1 -0
  319. package/Particles/Queue/executionQueue.d.ts +2 -0
  320. package/Particles/Queue/executionQueue.js +10 -0
  321. package/Particles/Queue/executionQueue.js.map +1 -1
  322. package/Particles/baseParticleSystem.d.ts +2 -1
  323. package/Particles/baseParticleSystem.js +1 -0
  324. package/Particles/baseParticleSystem.js.map +1 -1
  325. package/Particles/flowMap.d.ts +7 -0
  326. package/Particles/flowMap.js +32 -0
  327. package/Particles/flowMap.js.map +1 -1
  328. package/Particles/gpuParticleSystem.d.ts +4 -0
  329. package/Particles/gpuParticleSystem.js +4 -0
  330. package/Particles/gpuParticleSystem.js.map +1 -1
  331. package/Particles/index.d.ts +1 -0
  332. package/Particles/index.js +1 -0
  333. package/Particles/index.js.map +1 -1
  334. package/Particles/particleSystem.d.ts +12 -0
  335. package/Particles/particleSystem.js +22 -1
  336. package/Particles/particleSystem.js.map +1 -1
  337. package/Particles/thinParticleSystem.d.ts +32 -11
  338. package/Particles/thinParticleSystem.js +62 -36
  339. package/Particles/thinParticleSystem.js.map +1 -1
  340. package/PostProcesses/postProcessManager.d.ts +2 -1
  341. package/PostProcesses/postProcessManager.js +3 -2
  342. package/PostProcesses/postProcessManager.js.map +1 -1
  343. package/Shaders/ShadersInclude/defaultUboDeclaration.js +1 -1
  344. package/Shaders/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  345. package/Shaders/ShadersInclude/defaultVertexDeclaration.js +1 -0
  346. package/Shaders/ShadersInclude/defaultVertexDeclaration.js.map +1 -1
  347. package/Shaders/ShadersInclude/lightFragment.js +5 -2
  348. package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
  349. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js +3 -0
  350. package/Shaders/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  351. package/Shaders/ShadersInclude/pbrBlockPrePass.js +3 -0
  352. package/Shaders/ShadersInclude/pbrBlockPrePass.js.map +1 -1
  353. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
  354. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  355. package/Shaders/ShadersInclude/pbrUboDeclaration.js +1 -1
  356. package/Shaders/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  357. package/Shaders/ShadersInclude/pbrVertexDeclaration.js +1 -0
  358. package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
  359. package/Shaders/ShadersInclude/prePassDeclaration.js +3 -0
  360. package/Shaders/ShadersInclude/prePassDeclaration.js.map +1 -1
  361. package/Shaders/ShadersInclude/prePassVertex.js +3 -0
  362. package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
  363. package/Shaders/ShadersInclude/prePassVertexDeclaration.js +3 -0
  364. package/Shaders/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
  365. package/Shaders/default.fragment.js +3 -0
  366. package/Shaders/default.fragment.js.map +1 -1
  367. package/Shaders/minmaxRedux.fragment.js +13 -5
  368. package/Shaders/minmaxRedux.fragment.js.map +1 -1
  369. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js +1 -1
  370. package/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js.map +1 -1
  371. package/ShadersWGSL/ShadersInclude/lightFragment.js +5 -2
  372. package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
  373. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js +3 -0
  374. package/ShadersWGSL/ShadersInclude/morphTargetsVertexDeclaration.js.map +1 -1
  375. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js +3 -0
  376. package/ShadersWGSL/ShadersInclude/pbrBlockPrePass.js.map +1 -1
  377. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
  378. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  379. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js +1 -1
  380. package/ShadersWGSL/ShadersInclude/pbrUboDeclaration.js.map +1 -1
  381. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js +3 -0
  382. package/ShadersWGSL/ShadersInclude/prePassDeclaration.js.map +1 -1
  383. package/ShadersWGSL/ShadersInclude/prePassVertex.js +3 -0
  384. package/ShadersWGSL/ShadersInclude/prePassVertex.js.map +1 -1
  385. package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js +3 -0
  386. package/ShadersWGSL/ShadersInclude/prePassVertexDeclaration.js.map +1 -1
  387. package/ShadersWGSL/default.fragment.js +3 -0
  388. package/ShadersWGSL/default.fragment.js.map +1 -1
  389. package/ShadersWGSL/minmaxRedux.fragment.js +14 -6
  390. package/ShadersWGSL/minmaxRedux.fragment.js.map +1 -1
  391. package/package.json +1 -1
  392. package/scene.d.ts +5 -0
  393. package/scene.js +8 -0
  394. package/scene.js.map +1 -1
@@ -0,0 +1,109 @@
1
+ import { __decorate } from "../../../tslib.es6.js";
2
+ import { editableInPropertyPage } from "../../../Decorators/nodeDecorator.js";
3
+ import { Vector2ToFixed, Vector3ToFixed } from "../../../Maths/math.vector.functions.js";
4
+ import { RegisterClass } from "../../../Misc/typeStore.js";
5
+ import { NodeParticleBlockConnectionPointTypes } from "../Enums/nodeParticleBlockConnectionPointTypes.js";
6
+ import { NodeParticleBlock } from "../nodeParticleBlock.js";
7
+ /**
8
+ * Defines a block used to debug values going through it
9
+ */
10
+ export class ParticleDebugBlock extends NodeParticleBlock {
11
+ /**
12
+ * Create a new ParticleDebugBlock
13
+ * @param name defines the block name
14
+ */
15
+ constructor(name) {
16
+ super(name);
17
+ /**
18
+ * Gets the log entries
19
+ */
20
+ this.log = [];
21
+ /**
22
+ * Gets or sets the number of logs to keep
23
+ */
24
+ this.stackSize = 10;
25
+ this._isDebug = true;
26
+ this.registerInput("input", NodeParticleBlockConnectionPointTypes.AutoDetect);
27
+ this.registerOutput("output", NodeParticleBlockConnectionPointTypes.BasedOnInput);
28
+ this._outputs[0]._typeConnectionSource = this._inputs[0];
29
+ this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.FloatGradient);
30
+ this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.Vector2Gradient);
31
+ this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.Vector3Gradient);
32
+ this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.Color4Gradient);
33
+ this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.System);
34
+ this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.Particle);
35
+ this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.Texture);
36
+ }
37
+ /**
38
+ * Gets the current class name
39
+ * @returns the class name
40
+ */
41
+ getClassName() {
42
+ return "ParticleDebugBlock";
43
+ }
44
+ /**
45
+ * Gets the input component
46
+ */
47
+ get input() {
48
+ return this._inputs[0];
49
+ }
50
+ /**
51
+ * Gets the output component
52
+ */
53
+ get output() {
54
+ return this._outputs[0];
55
+ }
56
+ _build(state) {
57
+ if (!this.input.isConnected) {
58
+ this.output._storedFunction = null;
59
+ this.output._storedValue = null;
60
+ return;
61
+ }
62
+ this.log = [];
63
+ const func = (state) => {
64
+ const input = this.input.getConnectedValue(state);
65
+ if (this.log.length >= this.stackSize) {
66
+ return input;
67
+ }
68
+ if (input === null || input === undefined) {
69
+ this.log.push(["null", ""]);
70
+ return input;
71
+ }
72
+ switch (this.input.type) {
73
+ case NodeParticleBlockConnectionPointTypes.Vector2:
74
+ this.log.push([Vector2ToFixed(input, 4), input.toString()]);
75
+ break;
76
+ case NodeParticleBlockConnectionPointTypes.Vector3:
77
+ this.log.push([Vector3ToFixed(input, 4), input.toString()]);
78
+ break;
79
+ case NodeParticleBlockConnectionPointTypes.Color4:
80
+ this.log.push([`{R: ${input.r.toFixed(4)} G: ${input.g.toFixed(4)} B: ${input.b.toFixed(4)} A: ${input.a.toFixed(4)}}`, input.toString()]);
81
+ break;
82
+ default:
83
+ this.log.push([input.toString(), input.toString()]);
84
+ break;
85
+ }
86
+ return input;
87
+ };
88
+ if (this.output.isConnected) {
89
+ this.output._storedFunction = func;
90
+ }
91
+ else {
92
+ this.output._storedValue = func(state);
93
+ }
94
+ }
95
+ serialize() {
96
+ const serializationObject = super.serialize();
97
+ serializationObject.stackSize = this.stackSize;
98
+ return serializationObject;
99
+ }
100
+ _deserialize(serializationObject) {
101
+ super._deserialize(serializationObject);
102
+ this.stackSize = serializationObject.stackSize;
103
+ }
104
+ }
105
+ __decorate([
106
+ editableInPropertyPage("Reference", 2 /* PropertyTypeForEdition.Int */, "ADVANCED", { embedded: false, notifiers: { rebuild: true }, min: 1, max: 100 })
107
+ ], ParticleDebugBlock.prototype, "stackSize", void 0);
108
+ RegisterClass("BABYLON.ParticleDebugBlock", ParticleDebugBlock);
109
+ //# sourceMappingURL=particleDebugBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particleDebugBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Particles/Node/Blocks/particleDebugBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { editableInPropertyPage, PropertyTypeForEdition } from \"core/Decorators/nodeDecorator\";\r\nimport { Vector2ToFixed, Vector3ToFixed } from \"../../../Maths/math.vector.functions\";\r\nimport { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { NodeParticleBlockConnectionPointTypes } from \"../Enums/nodeParticleBlockConnectionPointTypes\";\r\nimport { NodeParticleBlock } from \"../nodeParticleBlock\";\r\nimport type { NodeParticleConnectionPoint } from \"../nodeParticleBlockConnectionPoint\";\r\nimport type { NodeParticleBuildState } from \"../nodeParticleBuildState\";\r\n\r\n/**\r\n * Defines a block used to debug values going through it\r\n */\r\nexport class ParticleDebugBlock extends NodeParticleBlock {\r\n /**\r\n * Gets the log entries\r\n */\r\n public log: string[][] = [];\r\n\r\n /**\r\n * Gets or sets the number of logs to keep\r\n */\r\n @editableInPropertyPage(\"Reference\", PropertyTypeForEdition.Int, \"ADVANCED\", { embedded: false, notifiers: { rebuild: true }, min: 1, max: 100 })\r\n public stackSize = 10;\r\n\r\n /**\r\n * Create a new ParticleDebugBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name);\r\n\r\n this._isDebug = true;\r\n\r\n this.registerInput(\"input\", NodeParticleBlockConnectionPointTypes.AutoDetect);\r\n this.registerOutput(\"output\", NodeParticleBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this._outputs[0]._typeConnectionSource = this._inputs[0];\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.FloatGradient);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.Vector2Gradient);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.Vector3Gradient);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.Color4Gradient);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.System);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.Particle);\r\n this._inputs[0].excludedConnectionPointTypes.push(NodeParticleBlockConnectionPointTypes.Texture);\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"ParticleDebugBlock\";\r\n }\r\n\r\n /**\r\n * Gets the input component\r\n */\r\n public get input(): NodeParticleConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeParticleConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n public override _build(state: NodeParticleBuildState) {\r\n if (!this.input.isConnected) {\r\n this.output._storedFunction = null;\r\n this.output._storedValue = null;\r\n return;\r\n }\r\n\r\n this.log = [];\r\n const func = (state: NodeParticleBuildState) => {\r\n const input = this.input.getConnectedValue(state);\r\n\r\n if (this.log.length >= this.stackSize) {\r\n return input;\r\n }\r\n\r\n if (input === null || input === undefined) {\r\n this.log.push([\"null\", \"\"]);\r\n return input;\r\n }\r\n\r\n switch (this.input.type) {\r\n case NodeParticleBlockConnectionPointTypes.Vector2:\r\n this.log.push([Vector2ToFixed(input, 4), input.toString()]);\r\n break;\r\n case NodeParticleBlockConnectionPointTypes.Vector3:\r\n this.log.push([Vector3ToFixed(input, 4), input.toString()]);\r\n break;\r\n case NodeParticleBlockConnectionPointTypes.Color4:\r\n this.log.push([`{R: ${input.r.toFixed(4)} G: ${input.g.toFixed(4)} B: ${input.b.toFixed(4)} A: ${input.a.toFixed(4)}}`, input.toString()]);\r\n break;\r\n default:\r\n this.log.push([input.toString(), input.toString()]);\r\n break;\r\n }\r\n\r\n return input;\r\n };\r\n\r\n if (this.output.isConnected) {\r\n this.output._storedFunction = func;\r\n } else {\r\n this.output._storedValue = func(state);\r\n }\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n\r\n serializationObject.stackSize = this.stackSize;\r\n\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n\r\n this.stackSize = serializationObject.stackSize;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ParticleDebugBlock\", ParticleDebugBlock);\r\n"]}
@@ -0,0 +1,27 @@
1
+ import { NodeParticleBlock } from "../nodeParticleBlock.js";
2
+ import type { NodeParticleConnectionPoint } from "../nodeParticleBlockConnectionPoint.js";
3
+ import type { NodeParticleBuildState } from "../nodeParticleBuildState.js";
4
+ /**
5
+ * Block used as a pass through
6
+ */
7
+ export declare class ParticleElbowBlock extends NodeParticleBlock {
8
+ /**
9
+ * Creates a new ParticleElbowBlock
10
+ * @param name defines the block name
11
+ */
12
+ constructor(name: string);
13
+ /**
14
+ * Gets the current class name
15
+ * @returns the class name
16
+ */
17
+ getClassName(): string;
18
+ /**
19
+ * Gets the input component
20
+ */
21
+ get input(): NodeParticleConnectionPoint;
22
+ /**
23
+ * Gets the output component
24
+ */
25
+ get output(): NodeParticleConnectionPoint;
26
+ _build(state: NodeParticleBuildState): void;
27
+ }
@@ -0,0 +1,47 @@
1
+ import { RegisterClass } from "../../../Misc/typeStore.js";
2
+ import { NodeParticleBlockConnectionPointTypes } from "../Enums/nodeParticleBlockConnectionPointTypes.js";
3
+ import { NodeParticleBlock } from "../nodeParticleBlock.js";
4
+ /**
5
+ * Block used as a pass through
6
+ */
7
+ export class ParticleElbowBlock extends NodeParticleBlock {
8
+ /**
9
+ * Creates a new ParticleElbowBlock
10
+ * @param name defines the block name
11
+ */
12
+ constructor(name) {
13
+ super(name);
14
+ this.registerInput("input", NodeParticleBlockConnectionPointTypes.AutoDetect);
15
+ this.registerOutput("output", NodeParticleBlockConnectionPointTypes.BasedOnInput);
16
+ this._outputs[0]._typeConnectionSource = this._inputs[0];
17
+ }
18
+ /**
19
+ * Gets the current class name
20
+ * @returns the class name
21
+ */
22
+ getClassName() {
23
+ return "ParticleElbowBlock";
24
+ }
25
+ /**
26
+ * Gets the input component
27
+ */
28
+ get input() {
29
+ return this._inputs[0];
30
+ }
31
+ /**
32
+ * Gets the output component
33
+ */
34
+ get output() {
35
+ return this._outputs[0];
36
+ }
37
+ _build(state) {
38
+ super._build(state);
39
+ const output = this._outputs[0];
40
+ const input = this._inputs[0];
41
+ output._storedFunction = (state) => {
42
+ return input.getConnectedValue(state);
43
+ };
44
+ }
45
+ }
46
+ RegisterClass("BABYLON.ParticleElbowBlock", ParticleElbowBlock);
47
+ //# sourceMappingURL=particleElbowBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particleElbowBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Particles/Node/Blocks/particleElbowBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,qCAAqC,EAAE,MAAM,gDAAgD,CAAC;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,iBAAiB;IACrD;;;OAGG;IACH,YAAmB,IAAY;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC;QAEZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,qCAAqC,CAAC,UAAU,CAAC,CAAC;QAC9E,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,qCAAqC,CAAC,YAAY,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAEe,MAAM,CAAC,KAA6B;QAChD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAE9B,MAAM,CAAC,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE;YAC/B,OAAO,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC,CAAC;IACN,CAAC;CACJ;AAED,aAAa,CAAC,4BAA4B,EAAE,kBAAkB,CAAC,CAAC","sourcesContent":["import { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { NodeParticleBlockConnectionPointTypes } from \"../Enums/nodeParticleBlockConnectionPointTypes\";\r\nimport { NodeParticleBlock } from \"../nodeParticleBlock\";\r\nimport type { NodeParticleConnectionPoint } from \"../nodeParticleBlockConnectionPoint\";\r\nimport type { NodeParticleBuildState } from \"../nodeParticleBuildState\";\r\n/**\r\n * Block used as a pass through\r\n */\r\nexport class ParticleElbowBlock extends NodeParticleBlock {\r\n /**\r\n * Creates a new ParticleElbowBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name);\r\n\r\n this.registerInput(\"input\", NodeParticleBlockConnectionPointTypes.AutoDetect);\r\n this.registerOutput(\"output\", NodeParticleBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this._outputs[0]._typeConnectionSource = this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"ParticleElbowBlock\";\r\n }\r\n\r\n /**\r\n * Gets the input component\r\n */\r\n public get input(): NodeParticleConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeParticleConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n public override _build(state: NodeParticleBuildState) {\r\n super._build(state);\r\n\r\n const output = this._outputs[0];\r\n const input = this._inputs[0];\r\n\r\n output._storedFunction = (state) => {\r\n return input.getConnectedValue(state);\r\n };\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ParticleElbowBlock\", ParticleElbowBlock);\r\n"]}
@@ -0,0 +1,28 @@
1
+ import { NodeParticleBlock } from "../nodeParticleBlock.js";
2
+ import type { NodeParticleConnectionPoint } from "../nodeParticleBlockConnectionPoint.js";
3
+ /**
4
+ * Block used to define a list of gradient entries
5
+ */
6
+ export declare class ParticleGradientBlock extends NodeParticleBlock {
7
+ private _entryCount;
8
+ /**
9
+ * Creates a new ParticleGradientBlock
10
+ * @param name defines the block name
11
+ */
12
+ constructor(name: string);
13
+ private _manageExtendedInputs;
14
+ /**
15
+ * Gets the current class name
16
+ * @returns the class name
17
+ */
18
+ getClassName(): string;
19
+ /**
20
+ * Gets the gradient operand input component
21
+ */
22
+ get gradient(): NodeParticleConnectionPoint;
23
+ /**
24
+ * Gets the output component
25
+ */
26
+ get output(): NodeParticleConnectionPoint;
27
+ _build(): void;
28
+ }
@@ -0,0 +1,118 @@
1
+ import { RegisterClass } from "../../../Misc/typeStore.js";
2
+ import { NodeParticleBlock } from "../nodeParticleBlock.js";
3
+ import { NodeParticleBlockConnectionPointTypes } from "../Enums/nodeParticleBlockConnectionPointTypes.js";
4
+ import { Lerp } from "../../../Maths/math.scalar.functions.js";
5
+ import { Color4 } from "../../../Maths/math.color.js";
6
+ import { Vector2, Vector3 } from "../../../Maths/math.vector.js";
7
+ /**
8
+ * Block used to define a list of gradient entries
9
+ */
10
+ export class ParticleGradientBlock extends NodeParticleBlock {
11
+ /**
12
+ * Creates a new ParticleGradientBlock
13
+ * @param name defines the block name
14
+ */
15
+ constructor(name) {
16
+ super(name);
17
+ this._entryCount = 1;
18
+ this.registerInput("gradient", NodeParticleBlockConnectionPointTypes.Float, true, 1, 0, 1);
19
+ this.registerInput("value0", NodeParticleBlockConnectionPointTypes.AutoDetect);
20
+ this.registerOutput("output", NodeParticleBlockConnectionPointTypes.BasedOnInput);
21
+ this._outputs[0]._typeConnectionSource = this._inputs[1];
22
+ this._outputs[0]._typeConnectionSourceTranslation = (type) => {
23
+ switch (type) {
24
+ case NodeParticleBlockConnectionPointTypes.FloatGradient:
25
+ return NodeParticleBlockConnectionPointTypes.Float;
26
+ case NodeParticleBlockConnectionPointTypes.Vector2Gradient:
27
+ return NodeParticleBlockConnectionPointTypes.Vector2;
28
+ case NodeParticleBlockConnectionPointTypes.Vector3Gradient:
29
+ return NodeParticleBlockConnectionPointTypes.Vector3;
30
+ case NodeParticleBlockConnectionPointTypes.Color4Gradient:
31
+ return NodeParticleBlockConnectionPointTypes.Color4;
32
+ }
33
+ return type;
34
+ };
35
+ this._inputs[1].addExcludedConnectionPointFromAllowedTypes(NodeParticleBlockConnectionPointTypes.FloatGradient |
36
+ NodeParticleBlockConnectionPointTypes.Vector2Gradient |
37
+ NodeParticleBlockConnectionPointTypes.Vector3Gradient |
38
+ NodeParticleBlockConnectionPointTypes.Color4Gradient);
39
+ this._manageExtendedInputs(1);
40
+ }
41
+ _manageExtendedInputs(index) {
42
+ this._inputs[index].onConnectionObservable.add(() => {
43
+ if (this._entryCount > index) {
44
+ return;
45
+ }
46
+ this._entryCount++;
47
+ this.registerInput("value" + (this._entryCount - 1), NodeParticleBlockConnectionPointTypes.AutoDetect, true);
48
+ this._linkConnectionTypes(1, this._entryCount);
49
+ this._manageExtendedInputs(this._entryCount);
50
+ });
51
+ }
52
+ /**
53
+ * Gets the current class name
54
+ * @returns the class name
55
+ */
56
+ getClassName() {
57
+ return "ParticleGradientBlock";
58
+ }
59
+ /**
60
+ * Gets the gradient operand input component
61
+ */
62
+ get gradient() {
63
+ return this._inputs[0];
64
+ }
65
+ /**
66
+ * Gets the output component
67
+ */
68
+ get output() {
69
+ return this._outputs[0];
70
+ }
71
+ _build() {
72
+ // Building the list of entries in order
73
+ const entries = [];
74
+ for (let i = 1; i < this._inputs.length; i++) {
75
+ if (this._inputs[i].isConnected) {
76
+ entries.push(this._inputs[i].connectedPoint?.ownerBlock);
77
+ }
78
+ }
79
+ entries.sort((a, b) => {
80
+ return a.reference - b.reference;
81
+ });
82
+ this.output._storedFunction = (state) => {
83
+ const gradient = this.gradient.getConnectedValue(state);
84
+ if (entries.length === 1) {
85
+ return entries[0].value.getConnectedValue(state);
86
+ }
87
+ // Go down the entries list in reverse order
88
+ let nextEntry = null;
89
+ for (let i = entries.length - 1; i >= 0; i--) {
90
+ const entry = entries[i];
91
+ if (entry.reference <= gradient) {
92
+ const currentValue = entry.value.getConnectedValue(state);
93
+ if (nextEntry) {
94
+ const nextValue = nextEntry.value.getConnectedValue(state);
95
+ const nextReference = nextEntry.reference;
96
+ const currentReference = entry.reference;
97
+ const scale = Math.max(0, Math.min(1, (gradient - currentReference) / (nextReference - currentReference)));
98
+ switch (this.output.type) {
99
+ case NodeParticleBlockConnectionPointTypes.Float:
100
+ return Lerp(currentValue, nextValue, scale);
101
+ case NodeParticleBlockConnectionPointTypes.Vector2:
102
+ return Vector2.Lerp(currentValue, nextValue, scale);
103
+ case NodeParticleBlockConnectionPointTypes.Vector3:
104
+ return Vector3.Lerp(currentValue, nextValue, scale);
105
+ case NodeParticleBlockConnectionPointTypes.Color4:
106
+ return Color4.Lerp(currentValue, nextValue, scale);
107
+ }
108
+ }
109
+ return currentValue;
110
+ }
111
+ nextEntry = entry;
112
+ }
113
+ return 0;
114
+ };
115
+ }
116
+ }
117
+ RegisterClass("BABYLON.ParticleGradientBlock", ParticleGradientBlock);
118
+ //# sourceMappingURL=particleGradientBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particleGradientBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Particles/Node/Blocks/particleGradientBlock.ts"],"names":[],"mappings":"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","sourcesContent":["import { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { NodeParticleBlock } from \"../nodeParticleBlock\";\r\nimport { NodeParticleBlockConnectionPointTypes } from \"../Enums/nodeParticleBlockConnectionPointTypes\";\r\nimport type { NodeParticleConnectionPoint } from \"../nodeParticleBlockConnectionPoint\";\r\nimport type { ParticleGradientValueBlock } from \"./particleGradientValueBlock\";\r\nimport type { Nullable } from \"core/types\";\r\nimport { Lerp } from \"core/Maths/math.scalar.functions\";\r\nimport { Color4 } from \"core/Maths/math.color\";\r\nimport { Vector2, Vector3 } from \"core/Maths/math.vector\";\r\n/**\r\n * Block used to define a list of gradient entries\r\n */\r\nexport class ParticleGradientBlock extends NodeParticleBlock {\r\n private _entryCount = 1;\r\n /**\r\n * Creates a new ParticleGradientBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name);\r\n\r\n this.registerInput(\"gradient\", NodeParticleBlockConnectionPointTypes.Float, true, 1, 0, 1);\r\n this.registerInput(\"value0\", NodeParticleBlockConnectionPointTypes.AutoDetect);\r\n this.registerOutput(\"output\", NodeParticleBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this._outputs[0]._typeConnectionSource = this._inputs[1];\r\n this._outputs[0]._typeConnectionSourceTranslation = (type) => {\r\n switch (type) {\r\n case NodeParticleBlockConnectionPointTypes.FloatGradient:\r\n return NodeParticleBlockConnectionPointTypes.Float;\r\n case NodeParticleBlockConnectionPointTypes.Vector2Gradient:\r\n return NodeParticleBlockConnectionPointTypes.Vector2;\r\n case NodeParticleBlockConnectionPointTypes.Vector3Gradient:\r\n return NodeParticleBlockConnectionPointTypes.Vector3;\r\n case NodeParticleBlockConnectionPointTypes.Color4Gradient:\r\n return NodeParticleBlockConnectionPointTypes.Color4;\r\n }\r\n return type;\r\n };\r\n\r\n this._inputs[1].addExcludedConnectionPointFromAllowedTypes(\r\n NodeParticleBlockConnectionPointTypes.FloatGradient |\r\n NodeParticleBlockConnectionPointTypes.Vector2Gradient |\r\n NodeParticleBlockConnectionPointTypes.Vector3Gradient |\r\n NodeParticleBlockConnectionPointTypes.Color4Gradient\r\n );\r\n\r\n this._manageExtendedInputs(1);\r\n }\r\n\r\n private _manageExtendedInputs(index: number) {\r\n this._inputs[index].onConnectionObservable.add(() => {\r\n if (this._entryCount > index) {\r\n return;\r\n }\r\n this._entryCount++;\r\n this.registerInput(\"value\" + (this._entryCount - 1), NodeParticleBlockConnectionPointTypes.AutoDetect, true);\r\n this._linkConnectionTypes(1, this._entryCount);\r\n\r\n this._manageExtendedInputs(this._entryCount);\r\n });\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"ParticleGradientBlock\";\r\n }\r\n\r\n /**\r\n * Gets the gradient operand input component\r\n */\r\n public get gradient(): NodeParticleConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeParticleConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n public override _build() {\r\n // Building the list of entries in order\r\n const entries: ParticleGradientValueBlock[] = [];\r\n for (let i = 1; i < this._inputs.length; i++) {\r\n if (this._inputs[i].isConnected) {\r\n entries.push(this._inputs[i].connectedPoint?.ownerBlock as ParticleGradientValueBlock);\r\n }\r\n }\r\n\r\n entries.sort((a, b) => {\r\n return a.reference - b.reference;\r\n });\r\n\r\n this.output._storedFunction = (state) => {\r\n const gradient = this.gradient.getConnectedValue(state);\r\n\r\n if (entries.length === 1) {\r\n return entries[0].value.getConnectedValue(state);\r\n }\r\n\r\n // Go down the entries list in reverse order\r\n let nextEntry: Nullable<ParticleGradientValueBlock> = null;\r\n for (let i = entries.length - 1; i >= 0; i--) {\r\n const entry = entries[i];\r\n if (entry.reference <= gradient) {\r\n const currentValue = entry.value.getConnectedValue(state);\r\n if (nextEntry) {\r\n const nextValue = nextEntry.value.getConnectedValue(state);\r\n const nextReference = nextEntry.reference;\r\n const currentReference = entry.reference;\r\n const scale = Math.max(0, Math.min(1, (gradient - currentReference) / (nextReference - currentReference)));\r\n\r\n switch (this.output.type) {\r\n case NodeParticleBlockConnectionPointTypes.Float:\r\n return Lerp(currentValue, nextValue, scale);\r\n case NodeParticleBlockConnectionPointTypes.Vector2:\r\n return Vector2.Lerp(currentValue, nextValue, scale);\r\n case NodeParticleBlockConnectionPointTypes.Vector3:\r\n return Vector3.Lerp(currentValue, nextValue, scale);\r\n case NodeParticleBlockConnectionPointTypes.Color4:\r\n return Color4.Lerp(currentValue, nextValue, scale);\r\n }\r\n }\r\n return currentValue;\r\n }\r\n\r\n nextEntry = entry;\r\n }\r\n\r\n return 0;\r\n };\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ParticleGradientBlock\", ParticleGradientBlock);\r\n"]}
@@ -0,0 +1,32 @@
1
+ import { NodeParticleBlock } from "../nodeParticleBlock.js";
2
+ import type { NodeParticleConnectionPoint } from "../nodeParticleBlockConnectionPoint.js";
3
+ /**
4
+ * Block used to define a gradient entry for a gradient block
5
+ */
6
+ export declare class ParticleGradientValueBlock extends NodeParticleBlock {
7
+ /**
8
+ * Gets or sets the epsilon value used for comparison
9
+ */
10
+ reference: number;
11
+ /**
12
+ * Creates a new ParticleGradientEntryBlock
13
+ * @param name defines the block name
14
+ */
15
+ constructor(name: string);
16
+ /**
17
+ * Gets the current class name
18
+ * @returns the class name
19
+ */
20
+ getClassName(): string;
21
+ /**
22
+ * Gets the value operand input component
23
+ */
24
+ get value(): NodeParticleConnectionPoint;
25
+ /**
26
+ * Gets the output component
27
+ */
28
+ get output(): NodeParticleConnectionPoint;
29
+ _build(): void;
30
+ serialize(): any;
31
+ _deserialize(serializationObject: any): void;
32
+ }
@@ -0,0 +1,79 @@
1
+ import { __decorate } from "../../../tslib.es6.js";
2
+ import { RegisterClass } from "../../../Misc/typeStore.js";
3
+ import { NodeParticleBlock } from "../nodeParticleBlock.js";
4
+ import { NodeParticleBlockConnectionPointTypes } from "../Enums/nodeParticleBlockConnectionPointTypes.js";
5
+ import { editableInPropertyPage } from "../../../Decorators/nodeDecorator.js";
6
+ /**
7
+ * Block used to define a gradient entry for a gradient block
8
+ */
9
+ export class ParticleGradientValueBlock extends NodeParticleBlock {
10
+ /**
11
+ * Creates a new ParticleGradientEntryBlock
12
+ * @param name defines the block name
13
+ */
14
+ constructor(name) {
15
+ super(name);
16
+ /**
17
+ * Gets or sets the epsilon value used for comparison
18
+ */
19
+ this.reference = 0;
20
+ this.registerInput("value", NodeParticleBlockConnectionPointTypes.AutoDetect);
21
+ this.registerOutput("output", NodeParticleBlockConnectionPointTypes.BasedOnInput);
22
+ this._outputs[0]._typeConnectionSource = this._inputs[0];
23
+ this._outputs[0]._typeConnectionSourceTranslation = (type) => {
24
+ switch (type) {
25
+ case NodeParticleBlockConnectionPointTypes.Float:
26
+ return NodeParticleBlockConnectionPointTypes.FloatGradient;
27
+ case NodeParticleBlockConnectionPointTypes.Vector2:
28
+ return NodeParticleBlockConnectionPointTypes.Vector2Gradient;
29
+ case NodeParticleBlockConnectionPointTypes.Vector3:
30
+ return NodeParticleBlockConnectionPointTypes.Vector3Gradient;
31
+ case NodeParticleBlockConnectionPointTypes.Color4:
32
+ return NodeParticleBlockConnectionPointTypes.Color4Gradient;
33
+ }
34
+ return type;
35
+ };
36
+ this._inputs[0].addExcludedConnectionPointFromAllowedTypes(NodeParticleBlockConnectionPointTypes.Float |
37
+ NodeParticleBlockConnectionPointTypes.Vector2 |
38
+ NodeParticleBlockConnectionPointTypes.Vector3 |
39
+ NodeParticleBlockConnectionPointTypes.Color4);
40
+ }
41
+ /**
42
+ * Gets the current class name
43
+ * @returns the class name
44
+ */
45
+ getClassName() {
46
+ return "ParticleGradientValueBlock";
47
+ }
48
+ /**
49
+ * Gets the value operand input component
50
+ */
51
+ get value() {
52
+ return this._inputs[0];
53
+ }
54
+ /**
55
+ * Gets the output component
56
+ */
57
+ get output() {
58
+ return this._outputs[0];
59
+ }
60
+ _build() {
61
+ this.output._storedFunction = (state) => {
62
+ return null;
63
+ };
64
+ }
65
+ serialize() {
66
+ const serializationObject = super.serialize();
67
+ serializationObject.reference = this.reference;
68
+ return serializationObject;
69
+ }
70
+ _deserialize(serializationObject) {
71
+ super._deserialize(serializationObject);
72
+ this.reference = serializationObject.reference;
73
+ }
74
+ }
75
+ __decorate([
76
+ editableInPropertyPage("Reference", 1 /* PropertyTypeForEdition.Float */, "ADVANCED", { embedded: true, notifiers: { rebuild: true }, min: 0, max: 1 })
77
+ ], ParticleGradientValueBlock.prototype, "reference", void 0);
78
+ RegisterClass("BABYLON.ParticleGradientValueBlock", ParticleGradientValueBlock);
79
+ //# sourceMappingURL=particleGradientValueBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"particleGradientValueBlock.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Particles/Node/Blocks/particleGradientValueBlock.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,qCAAqC,EAAE,MAAM,gDAAgD,CAAC;AAEvG,OAAO,EAAE,sBAAsB,EAA0B,6CAAsC;AAC/F;;GAEG;AACH,MAAM,OAAO,0BAA2B,SAAQ,iBAAiB;IAO7D;;;OAGG;IACH,YAAmB,IAAY;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC;QAXhB;;WAEG;QAEI,cAAS,GAAG,CAAC,CAAC;QASjB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,qCAAqC,CAAC,UAAU,CAAC,CAAC;QAC9E,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,qCAAqC,CAAC,YAAY,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gCAAgC,GAAG,CAAC,IAAI,EAAE,EAAE;YACzD,QAAQ,IAAI,EAAE,CAAC;gBACX,KAAK,qCAAqC,CAAC,KAAK;oBAC5C,OAAO,qCAAqC,CAAC,aAAa,CAAC;gBAC/D,KAAK,qCAAqC,CAAC,OAAO;oBAC9C,OAAO,qCAAqC,CAAC,eAAe,CAAC;gBACjE,KAAK,qCAAqC,CAAC,OAAO;oBAC9C,OAAO,qCAAqC,CAAC,eAAe,CAAC;gBACjE,KAAK,qCAAqC,CAAC,MAAM;oBAC7C,OAAO,qCAAqC,CAAC,cAAc,CAAC;YACpE,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,0CAA0C,CACtD,qCAAqC,CAAC,KAAK;YACvC,qCAAqC,CAAC,OAAO;YAC7C,qCAAqC,CAAC,OAAO;YAC7C,qCAAqC,CAAC,MAAM,CACnD,CAAC;IACN,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,4BAA4B,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAEe,MAAM;QAClB,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE;YACpC,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAEe,SAAS;QACrB,MAAM,mBAAmB,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;QAE9C,mBAAmB,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAE/C,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAEe,YAAY,CAAC,mBAAwB;QACjD,KAAK,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QAExC,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC;IACnD,CAAC;CACJ;AA5EU;IADN,sBAAsB,CAAC,WAAW,wCAAgC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;6DAC3H;AA8EzB,aAAa,CAAC,oCAAoC,EAAE,0BAA0B,CAAC,CAAC","sourcesContent":["import { RegisterClass } from \"../../../Misc/typeStore\";\r\nimport { NodeParticleBlock } from \"../nodeParticleBlock\";\r\nimport { NodeParticleBlockConnectionPointTypes } from \"../Enums/nodeParticleBlockConnectionPointTypes\";\r\nimport type { NodeParticleConnectionPoint } from \"../nodeParticleBlockConnectionPoint\";\r\nimport { editableInPropertyPage, PropertyTypeForEdition } from \"core/Decorators/nodeDecorator\";\r\n/**\r\n * Block used to define a gradient entry for a gradient block\r\n */\r\nexport class ParticleGradientValueBlock extends NodeParticleBlock {\r\n /**\r\n * Gets or sets the epsilon value used for comparison\r\n */\r\n @editableInPropertyPage(\"Reference\", PropertyTypeForEdition.Float, \"ADVANCED\", { embedded: true, notifiers: { rebuild: true }, min: 0, max: 1 })\r\n public reference = 0;\r\n\r\n /**\r\n * Creates a new ParticleGradientEntryBlock\r\n * @param name defines the block name\r\n */\r\n public constructor(name: string) {\r\n super(name);\r\n\r\n this.registerInput(\"value\", NodeParticleBlockConnectionPointTypes.AutoDetect);\r\n this.registerOutput(\"output\", NodeParticleBlockConnectionPointTypes.BasedOnInput);\r\n\r\n this._outputs[0]._typeConnectionSource = this._inputs[0];\r\n this._outputs[0]._typeConnectionSourceTranslation = (type) => {\r\n switch (type) {\r\n case NodeParticleBlockConnectionPointTypes.Float:\r\n return NodeParticleBlockConnectionPointTypes.FloatGradient;\r\n case NodeParticleBlockConnectionPointTypes.Vector2:\r\n return NodeParticleBlockConnectionPointTypes.Vector2Gradient;\r\n case NodeParticleBlockConnectionPointTypes.Vector3:\r\n return NodeParticleBlockConnectionPointTypes.Vector3Gradient;\r\n case NodeParticleBlockConnectionPointTypes.Color4:\r\n return NodeParticleBlockConnectionPointTypes.Color4Gradient;\r\n }\r\n return type;\r\n };\r\n\r\n this._inputs[0].addExcludedConnectionPointFromAllowedTypes(\r\n NodeParticleBlockConnectionPointTypes.Float |\r\n NodeParticleBlockConnectionPointTypes.Vector2 |\r\n NodeParticleBlockConnectionPointTypes.Vector3 |\r\n NodeParticleBlockConnectionPointTypes.Color4\r\n );\r\n }\r\n\r\n /**\r\n * Gets the current class name\r\n * @returns the class name\r\n */\r\n public override getClassName() {\r\n return \"ParticleGradientValueBlock\";\r\n }\r\n\r\n /**\r\n * Gets the value operand input component\r\n */\r\n public get value(): NodeParticleConnectionPoint {\r\n return this._inputs[0];\r\n }\r\n\r\n /**\r\n * Gets the output component\r\n */\r\n public get output(): NodeParticleConnectionPoint {\r\n return this._outputs[0];\r\n }\r\n\r\n public override _build() {\r\n this.output._storedFunction = (state) => {\r\n return null;\r\n };\r\n }\r\n\r\n public override serialize(): any {\r\n const serializationObject = super.serialize();\r\n\r\n serializationObject.reference = this.reference;\r\n\r\n return serializationObject;\r\n }\r\n\r\n public override _deserialize(serializationObject: any) {\r\n super._deserialize(serializationObject);\r\n\r\n this.reference = serializationObject.reference;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.ParticleGradientValueBlock\", ParticleGradientValueBlock);\r\n"]}
@@ -0,0 +1,87 @@
1
+ import { Observable } from "../../../Misc/observable.js";
2
+ import { NodeParticleBlock } from "../nodeParticleBlock.js";
3
+ import { NodeParticleBlockConnectionPointTypes } from "../Enums/nodeParticleBlockConnectionPointTypes.js";
4
+ import type { NodeParticleConnectionPoint } from "../nodeParticleBlockConnectionPoint.js";
5
+ import type { NodeParticleBuildState } from "../nodeParticleBuildState.js";
6
+ import { NodeParticleContextualSources } from "../Enums/nodeParticleContextualSources.js";
7
+ import { NodeParticleSystemSources } from "../Enums/nodeParticleSystemSources.js";
8
+ /**
9
+ * Block used to expose an input value
10
+ */
11
+ export declare class ParticleInputBlock extends NodeParticleBlock {
12
+ private _storedValue;
13
+ private _valueCallback;
14
+ private _type;
15
+ /** Gets or set a value used to limit the range of float values */
16
+ min: number;
17
+ /** Gets or set a value used to limit the range of float values */
18
+ max: number;
19
+ /** Gets or sets the group to use to display this block in the Inspector */
20
+ groupInInspector: string;
21
+ /**
22
+ * Gets or sets a boolean indicating that this input is displayed in the Inspector
23
+ */
24
+ displayInInspector: boolean;
25
+ /** Gets an observable raised when the value is changed */
26
+ onValueChangedObservable: Observable<ParticleInputBlock>;
27
+ /**
28
+ * Gets or sets the connection point type (default is float)
29
+ */
30
+ get type(): NodeParticleBlockConnectionPointTypes;
31
+ /** @internal */
32
+ private _systemSource;
33
+ /**
34
+ * Gets a boolean indicating that the current connection point is a system source
35
+ */
36
+ get isSystemSource(): boolean;
37
+ /**
38
+ * Gets or sets the system source used by this input block
39
+ */
40
+ get systemSource(): NodeParticleSystemSources;
41
+ set systemSource(value: NodeParticleSystemSources);
42
+ private _contextualSource;
43
+ /**
44
+ * Gets a boolean indicating that the current connection point is a contextual value
45
+ */
46
+ get isContextual(): boolean;
47
+ /**
48
+ * Gets or sets the current contextual value
49
+ */
50
+ get contextualValue(): NodeParticleContextualSources;
51
+ set contextualValue(value: NodeParticleContextualSources);
52
+ /**
53
+ * Creates a new InputBlock
54
+ * @param name defines the block name
55
+ * @param type defines the type of the input (can be set to NodeParticleBlockConnectionPointTypes.AutoDetect)
56
+ */
57
+ constructor(name: string, type?: NodeParticleBlockConnectionPointTypes);
58
+ /**
59
+ * Gets or sets the value of that point.
60
+ * Please note that this value will be ignored if valueCallback is defined
61
+ */
62
+ get value(): any;
63
+ set value(value: any);
64
+ /**
65
+ * Gets or sets a callback used to get the value of that point.
66
+ * Please note that setting this value will force the connection point to ignore the value property
67
+ */
68
+ get valueCallback(): () => any;
69
+ set valueCallback(value: () => any);
70
+ /**
71
+ * Gets the current class name
72
+ * @returns the class name
73
+ */
74
+ getClassName(): string;
75
+ /**
76
+ * Gets the output component
77
+ */
78
+ get output(): NodeParticleConnectionPoint;
79
+ /**
80
+ * Set the input block to its default value (based on its type)
81
+ */
82
+ setDefaultValue(): void;
83
+ _build(state: NodeParticleBuildState): void;
84
+ dispose(): void;
85
+ serialize(): any;
86
+ _deserialize(serializationObject: any): void;
87
+ }