@onerjs/core 8.53.4 → 8.53.6

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 (841) hide show
  1. package/Animations/animationGroup.d.ts +0 -1
  2. package/Animations/animationGroup.js +0 -1
  3. package/Animations/animationGroup.js.map +1 -1
  4. package/Animations/animationGroup.pure.js +2 -0
  5. package/Animations/animationGroup.pure.js.map +1 -1
  6. package/Animations/runtimeAnimation.js +11 -0
  7. package/Animations/runtimeAnimation.js.map +1 -1
  8. package/Audio/audioSceneComponent.pure.js +1 -1
  9. package/AudioV2/abstractAudio/abstractSound.d.ts +2 -1
  10. package/AudioV2/abstractAudio/abstractSound.js +7 -2
  11. package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
  12. package/AudioV2/abstractAudio/abstractSoundInstance.d.ts +3 -1
  13. package/AudioV2/abstractAudio/abstractSoundInstance.js.map +1 -1
  14. package/AudioV2/abstractAudio/staticSound.d.ts +6 -0
  15. package/AudioV2/abstractAudio/staticSound.js +17 -1
  16. package/AudioV2/abstractAudio/staticSound.js.map +1 -1
  17. package/AudioV2/abstractAudio/staticSoundInstance.d.ts +4 -2
  18. package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -1
  19. package/AudioV2/abstractAudio/streamingSound.d.ts +6 -0
  20. package/AudioV2/abstractAudio/streamingSound.js +9 -1
  21. package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
  22. package/AudioV2/webAudio/webAudioStaticSound.d.ts +7 -1
  23. package/AudioV2/webAudio/webAudioStaticSound.js +56 -8
  24. package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
  25. package/AudioV2/webAudio/webAudioStreamingSound.d.ts +3 -1
  26. package/AudioV2/webAudio/webAudioStreamingSound.js +16 -4
  27. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  28. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +2 -2
  29. package/BakedVertexAnimation/bakedVertexAnimationManager.js +151 -121
  30. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  31. package/Behaviors/Cameras/interpolatingBehavior.d.ts +17 -2
  32. package/Behaviors/Cameras/interpolatingBehavior.js +53 -23
  33. package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
  34. package/Bones/bone.pure.js +3 -3
  35. package/Buffers/buffer.pure.js +0 -12
  36. package/Buffers/buffer.pure.js.map +1 -1
  37. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +141 -126
  38. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  39. package/Cameras/Inputs/BaseCameraPointersInput.d.ts +2 -1
  40. package/Cameras/Inputs/BaseCameraPointersInput.js +290 -277
  41. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  42. package/Cameras/Inputs/arcRotateCameraGamepadInput.js +115 -102
  43. package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
  44. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +3 -0
  45. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +334 -273
  46. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  47. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +273 -258
  48. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  49. package/Cameras/Inputs/arcRotateCameraPointersInput.js +237 -213
  50. package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
  51. package/Cameras/Inputs/flyCameraKeyboardInput.js +199 -168
  52. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  53. package/Cameras/Inputs/flyCameraMouseInput.js +243 -229
  54. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  55. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +311 -266
  56. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  57. package/Cameras/Inputs/followCameraMouseWheelInput.js +139 -119
  58. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  59. package/Cameras/Inputs/followCameraPointersInput.js +239 -203
  60. package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
  61. package/Cameras/Inputs/freeCameraGamepadInput.js +127 -114
  62. package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
  63. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +278 -244
  64. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  65. package/Cameras/Inputs/freeCameraMouseInput.js +216 -202
  66. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  67. package/Cameras/Inputs/freeCameraMouseWheelInput.js +368 -353
  68. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  69. package/Cameras/Inputs/freeCameraTouchInput.js +185 -172
  70. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  71. package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +2 -0
  72. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +291 -246
  73. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
  74. package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +11 -1
  75. package/Cameras/Inputs/geospatialCameraPointersInput.js +18 -2
  76. package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
  77. package/Cameras/Inputs/orbitCameraPointersInput.js +112 -96
  78. package/Cameras/Inputs/orbitCameraPointersInput.js.map +1 -1
  79. package/Cameras/VR/vrExperienceHelper.d.ts +0 -2
  80. package/Cameras/VR/vrExperienceHelper.js +0 -2
  81. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  82. package/Cameras/VR/vrExperienceHelper.pure.js +5 -0
  83. package/Cameras/VR/vrExperienceHelper.pure.js.map +1 -1
  84. package/Cameras/arcRotateCamera.pure.js +1559 -1479
  85. package/Cameras/arcRotateCamera.pure.js.map +1 -1
  86. package/Cameras/camera.pure.js +1225 -1178
  87. package/Cameras/camera.pure.js.map +1 -1
  88. package/Cameras/flyCamera.pure.js +369 -351
  89. package/Cameras/flyCamera.pure.js.map +1 -1
  90. package/Cameras/followCamera.pure.js +229 -192
  91. package/Cameras/followCamera.pure.js.map +1 -1
  92. package/Cameras/freeCamera.pure.js +373 -351
  93. package/Cameras/freeCamera.pure.js.map +1 -1
  94. package/Cameras/geospatialCamera.pure.d.ts +30 -7
  95. package/Cameras/geospatialCamera.pure.js +502 -457
  96. package/Cameras/geospatialCamera.pure.js.map +1 -1
  97. package/Cameras/geospatialCameraMovement.js +2 -2
  98. package/Cameras/geospatialCameraMovement.js.map +1 -1
  99. package/Cameras/targetCamera.pure.d.ts +7 -0
  100. package/Cameras/targetCamera.pure.js +550 -509
  101. package/Cameras/targetCamera.pure.js.map +1 -1
  102. package/Cameras/universalCamera.pure.js +98 -85
  103. package/Cameras/universalCamera.pure.js.map +1 -1
  104. package/Collisions/gpuPicker.d.ts +111 -4
  105. package/Collisions/gpuPicker.js +696 -119
  106. package/Collisions/gpuPicker.js.map +1 -1
  107. package/Compute/computeShader.pure.js +372 -355
  108. package/Compute/computeShader.pure.js.map +1 -1
  109. package/Culling/Helper/transformFeedbackBoundingHelper.pure.js +2 -2
  110. package/Decorators/nodeDecorator.d.ts +11 -1
  111. package/Decorators/nodeDecorator.js +43 -6
  112. package/Decorators/nodeDecorator.js.map +1 -1
  113. package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js +8 -0
  114. package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js.map +1 -1
  115. package/Engines/Native/nativeHelpers.js +15 -0
  116. package/Engines/Native/nativeHelpers.js.map +1 -1
  117. package/Engines/Native/nativeInterfaces.d.ts +7 -2
  118. package/Engines/Native/nativeInterfaces.js.map +1 -1
  119. package/Engines/Native/nativeRenderTargetWrapper.d.ts +5 -0
  120. package/Engines/Native/nativeRenderTargetWrapper.js +35 -1
  121. package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
  122. package/Engines/Processors/shaderProcessor.js +5 -3
  123. package/Engines/Processors/shaderProcessor.js.map +1 -1
  124. package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js +16 -3
  125. package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js.map +1 -1
  126. package/Engines/WebGPU/webgpuClearQuad.pure.js +7 -1
  127. package/Engines/WebGPU/webgpuClearQuad.pure.js.map +1 -1
  128. package/Engines/abstractEngine.functions.d.ts +8 -2
  129. package/Engines/abstractEngine.functions.js +12 -4
  130. package/Engines/abstractEngine.functions.js.map +1 -1
  131. package/Engines/abstractEngine.pure.d.ts +20 -1
  132. package/Engines/abstractEngine.pure.js +21 -134
  133. package/Engines/abstractEngine.pure.js.map +1 -1
  134. package/Engines/engine.d.ts +208 -0
  135. package/Engines/engine.pure.js +0 -15
  136. package/Engines/engine.pure.js.map +1 -1
  137. package/Engines/nullEngine.pure.d.ts +66 -0
  138. package/Engines/nullEngine.pure.js +97 -0
  139. package/Engines/nullEngine.pure.js.map +1 -1
  140. package/Engines/thinEngine.pure.d.ts +0 -13
  141. package/Engines/thinEngine.pure.js +4 -23
  142. package/Engines/thinEngine.pure.js.map +1 -1
  143. package/Engines/thinNativeEngine.d.ts +0 -1
  144. package/Engines/thinNativeEngine.js +0 -1
  145. package/Engines/thinNativeEngine.js.map +1 -1
  146. package/Engines/thinNativeEngine.pure.d.ts +27 -0
  147. package/Engines/thinNativeEngine.pure.js +383 -17
  148. package/Engines/thinNativeEngine.pure.js.map +1 -1
  149. package/Engines/webgpuEngine.d.ts +1 -0
  150. package/Engines/webgpuEngine.js +1 -0
  151. package/Engines/webgpuEngine.js.map +1 -1
  152. package/Engines/webgpuEngine.pure.d.ts +9 -0
  153. package/Engines/webgpuEngine.pure.js +7 -0
  154. package/Engines/webgpuEngine.pure.js.map +1 -1
  155. package/FlowGraph/flowGraph.js +9 -0
  156. package/FlowGraph/flowGraph.js.map +1 -1
  157. package/FlowGraph/flowGraphContext.js +597 -584
  158. package/FlowGraph/flowGraphContext.js.map +1 -1
  159. package/FlowGraph/flowGraphDataConnection.pure.d.ts +14 -0
  160. package/FlowGraph/flowGraphDataConnection.pure.js +38 -1
  161. package/FlowGraph/flowGraphDataConnection.pure.js.map +1 -1
  162. package/FlowGraph/serialization.d.ts +11 -0
  163. package/FlowGraph/serialization.js +11 -1
  164. package/FlowGraph/serialization.js.map +1 -1
  165. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js +182 -170
  166. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js.map +1 -1
  167. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js +196 -184
  168. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js.map +1 -1
  169. package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js +222 -210
  170. package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js.map +1 -1
  171. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +123 -111
  172. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
  173. package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +158 -146
  174. package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js.map +1 -1
  175. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js +63 -51
  176. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js.map +1 -1
  177. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js +122 -110
  178. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js.map +1 -1
  179. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js +76 -64
  180. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js.map +1 -1
  181. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js +89 -77
  182. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js.map +1 -1
  183. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js +134 -122
  184. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js.map +1 -1
  185. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js +58 -46
  186. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js.map +1 -1
  187. package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js +107 -95
  188. package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js.map +1 -1
  189. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js +181 -169
  190. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js.map +1 -1
  191. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js +63 -51
  192. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js.map +1 -1
  193. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js +63 -51
  194. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js.map +1 -1
  195. package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js +76 -64
  196. package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js.map +1 -1
  197. package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js +246 -234
  198. package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js.map +1 -1
  199. package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js +108 -96
  200. package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js.map +1 -1
  201. package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js +87 -75
  202. package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js.map +1 -1
  203. package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js +76 -64
  204. package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js.map +1 -1
  205. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js +313 -301
  206. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js.map +1 -1
  207. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js +502 -490
  208. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js.map +1 -1
  209. package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js +147 -135
  210. package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js.map +1 -1
  211. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js +90 -78
  212. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js.map +1 -1
  213. package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js +179 -167
  214. package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js.map +1 -1
  215. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +462 -451
  216. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
  217. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +265 -253
  218. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
  219. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js +204 -192
  220. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js.map +1 -1
  221. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +611 -550
  222. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
  223. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js +320 -308
  224. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js.map +1 -1
  225. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js +87 -75
  226. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js.map +1 -1
  227. package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js +154 -142
  228. package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js.map +1 -1
  229. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js +150 -138
  230. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js.map +1 -1
  231. package/FrameGraph/Node/Blocks/inputBlock.pure.js +270 -256
  232. package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
  233. package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js +95 -83
  234. package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js.map +1 -1
  235. package/FrameGraph/Node/nodeRenderGraph.js +715 -693
  236. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  237. package/FrameGraph/Node/nodeRenderGraphBlock.js +548 -533
  238. package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
  239. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +2 -2
  240. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +43 -51
  241. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
  242. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +0 -1
  243. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +0 -1
  244. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -1
  245. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.d.ts +0 -1
  246. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +66 -35
  247. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
  248. package/Helpers/environmentHelper.js +2 -2
  249. package/Helpers/environmentHelper.js.map +1 -1
  250. package/Layers/effectLayer.js +529 -519
  251. package/Layers/effectLayer.js.map +1 -1
  252. package/Layers/glowLayer.pure.js +428 -413
  253. package/Layers/glowLayer.pure.js.map +1 -1
  254. package/Layers/highlightLayer.pure.js +473 -458
  255. package/Layers/highlightLayer.pure.js.map +1 -1
  256. package/Layers/selectionOutlineLayer.pure.js +360 -345
  257. package/Layers/selectionOutlineLayer.pure.js.map +1 -1
  258. package/Lights/Clustered/clusteredLightContainer.pure.d.ts +1 -1
  259. package/Lights/Clustered/clusteredLightContainer.pure.js +583 -558
  260. package/Lights/Clustered/clusteredLightContainer.pure.js.map +1 -1
  261. package/Lights/Shadows/shadowGenerator.js +6 -1
  262. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  263. package/Lights/areaLight.pure.js +61 -39
  264. package/Lights/areaLight.pure.js.map +1 -1
  265. package/Lights/directionalLight.pure.js +308 -284
  266. package/Lights/directionalLight.pure.js.map +1 -1
  267. package/Lights/hemisphericLight.pure.js +123 -104
  268. package/Lights/hemisphericLight.pure.js.map +1 -1
  269. package/Lights/light.d.ts +5 -3
  270. package/Lights/light.js +869 -827
  271. package/Lights/light.js.map +1 -1
  272. package/Lights/pointLight.pure.js +185 -174
  273. package/Lights/pointLight.pure.js.map +1 -1
  274. package/Lights/rectAreaLight.pure.d.ts +17 -0
  275. package/Lights/rectAreaLight.pure.js +238 -159
  276. package/Lights/rectAreaLight.pure.js.map +1 -1
  277. package/Lights/shadowLight.js +280 -268
  278. package/Lights/shadowLight.js.map +1 -1
  279. package/Lights/spotLight.pure.js +460 -427
  280. package/Lights/spotLight.pure.js.map +1 -1
  281. package/Loading/Plugins/babylonFileLoader.pure.js +17 -5
  282. package/Loading/Plugins/babylonFileLoader.pure.js.map +1 -1
  283. package/Loading/sceneLoader.d.ts +5 -1
  284. package/Loading/sceneLoader.js +299 -402
  285. package/Loading/sceneLoader.js.map +1 -1
  286. package/Materials/Background/backgroundMaterial.pure.d.ts +18 -18
  287. package/Materials/Background/backgroundMaterial.pure.js +949 -794
  288. package/Materials/Background/backgroundMaterial.pure.js.map +1 -1
  289. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.d.ts +15 -0
  290. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +34 -1
  291. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
  292. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +9 -0
  293. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +26 -2
  294. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
  295. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.d.ts +2 -1
  296. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +169 -149
  297. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
  298. package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +1 -1
  299. package/Materials/Node/Blocks/Dual/lightBlock.pure.js +442 -429
  300. package/Materials/Node/Blocks/Dual/lightBlock.pure.js.map +1 -1
  301. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js +396 -383
  302. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js.map +1 -1
  303. package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js +237 -220
  304. package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js.map +1 -1
  305. package/Materials/Node/Blocks/Dual/textureBlock.pure.js +1 -1
  306. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js +150 -133
  307. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js.map +1 -1
  308. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +265 -250
  309. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
  310. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js +159 -142
  311. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js.map +1 -1
  312. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +214 -201
  313. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
  314. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js +419 -400
  315. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js.map +1 -1
  316. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +3 -1
  317. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
  318. package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js +302 -289
  319. package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js.map +1 -1
  320. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1327 -1272
  321. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
  322. package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js +352 -337
  323. package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js.map +1 -1
  324. package/Materials/Node/Blocks/PBR/refractionBlock.pure.js +297 -277
  325. package/Materials/Node/Blocks/PBR/refractionBlock.pure.js.map +1 -1
  326. package/Materials/Node/Blocks/PBR/sheenBlock.pure.js +146 -131
  327. package/Materials/Node/Blocks/PBR/sheenBlock.pure.js.map +1 -1
  328. package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js +158 -145
  329. package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js.map +1 -1
  330. package/Materials/Node/Blocks/clampBlock.pure.js +92 -77
  331. package/Materials/Node/Blocks/clampBlock.pure.js.map +1 -1
  332. package/Materials/Node/Blocks/cloudBlock.pure.js +145 -132
  333. package/Materials/Node/Blocks/cloudBlock.pure.js.map +1 -1
  334. package/Materials/Node/Blocks/conditionalBlock.pure.js +182 -169
  335. package/Materials/Node/Blocks/conditionalBlock.pure.js.map +1 -1
  336. package/Materials/Node/Blocks/curveBlock.pure.js +259 -246
  337. package/Materials/Node/Blocks/curveBlock.pure.js.map +1 -1
  338. package/Materials/Node/Blocks/debugBlock.pure.js +119 -106
  339. package/Materials/Node/Blocks/debugBlock.pure.js.map +1 -1
  340. package/Materials/Node/Blocks/loopBlock.pure.js +123 -110
  341. package/Materials/Node/Blocks/loopBlock.pure.js.map +1 -1
  342. package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js +185 -172
  343. package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js.map +1 -1
  344. package/Materials/Node/Blocks/remapBlock.pure.js +127 -112
  345. package/Materials/Node/Blocks/remapBlock.pure.js.map +1 -1
  346. package/Materials/Node/Blocks/transformBlock.pure.js +196 -185
  347. package/Materials/Node/Blocks/transformBlock.pure.js.map +1 -1
  348. package/Materials/Node/Blocks/triPlanarBlock.pure.js +451 -438
  349. package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
  350. package/Materials/Node/Blocks/trigonometryBlock.pure.js +184 -171
  351. package/Materials/Node/Blocks/trigonometryBlock.pure.js.map +1 -1
  352. package/Materials/Node/Blocks/waveBlock.pure.js +97 -84
  353. package/Materials/Node/Blocks/waveBlock.pure.js.map +1 -1
  354. package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js +276 -263
  355. package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js.map +1 -1
  356. package/Materials/Node/nodeMaterial.pure.js +1765 -1737
  357. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  358. package/Materials/Node/nodeMaterialBuildState.d.ts +3 -3
  359. package/Materials/PBR/openpbrMaterial.pure.d.ts +102 -102
  360. package/Materials/PBR/openpbrMaterial.pure.js +3115 -2243
  361. package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
  362. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
  363. package/Materials/PBR/pbrAnisotropicConfiguration.js +255 -227
  364. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  365. package/Materials/PBR/pbrBRDFConfiguration.d.ts +9 -9
  366. package/Materials/PBR/pbrBRDFConfiguration.js +203 -155
  367. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  368. package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -1
  369. package/Materials/PBR/pbrBaseMaterial.pure.js +1751 -1736
  370. package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
  371. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +13 -13
  372. package/Materials/PBR/pbrBaseSimpleMaterial.js +205 -117
  373. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  374. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +9 -9
  375. package/Materials/PBR/pbrClearCoatConfiguration.js +464 -406
  376. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  377. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +3 -3
  378. package/Materials/PBR/pbrIridescenceConfiguration.js +271 -239
  379. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  380. package/Materials/PBR/pbrMaterial.pure.d.ts +66 -66
  381. package/Materials/PBR/pbrMaterial.pure.js +1041 -685
  382. package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
  383. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.d.ts +5 -5
  384. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js +176 -115
  385. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js.map +1 -1
  386. package/Materials/PBR/pbrSheenConfiguration.d.ts +7 -7
  387. package/Materials/PBR/pbrSheenConfiguration.js +314 -270
  388. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  389. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.d.ts +5 -5
  390. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js +172 -117
  391. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js.map +1 -1
  392. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +16 -16
  393. package/Materials/PBR/pbrSubSurfaceConfiguration.js +864 -764
  394. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  395. package/Materials/Textures/HTML/htmlInCanvasPolyfill.d.ts +43 -0
  396. package/Materials/Textures/HTML/htmlInCanvasPolyfill.js +64 -0
  397. package/Materials/Textures/HTML/htmlInCanvasPolyfill.js.map +1 -0
  398. package/Materials/Textures/HTML/htmlInteractionManager.d.ts +69 -0
  399. package/Materials/Textures/HTML/htmlInteractionManager.js +130 -0
  400. package/Materials/Textures/HTML/htmlInteractionManager.js.map +1 -0
  401. package/Materials/Textures/HTML/htmlRaycastInteractionManager.d.ts +84 -0
  402. package/Materials/Textures/HTML/htmlRaycastInteractionManager.js +246 -0
  403. package/Materials/Textures/HTML/htmlRaycastInteractionManager.js.map +1 -0
  404. package/Materials/Textures/HTML/htmlTexture.d.ts +148 -0
  405. package/Materials/Textures/HTML/htmlTexture.js +455 -0
  406. package/Materials/Textures/HTML/htmlTexture.js.map +1 -0
  407. package/Materials/Textures/HTML/index.d.ts +4 -0
  408. package/Materials/Textures/HTML/index.js +5 -0
  409. package/Materials/Textures/HTML/index.js.map +1 -0
  410. package/Materials/Textures/HTML/pure.d.ts +5 -0
  411. package/Materials/Textures/HTML/pure.js +6 -0
  412. package/Materials/Textures/HTML/pure.js.map +1 -0
  413. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +671 -643
  414. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  415. package/Materials/Textures/baseTexture.pure.js +880 -825
  416. package/Materials/Textures/baseTexture.pure.js.map +1 -1
  417. package/Materials/Textures/cubeTexture.d.ts +0 -1
  418. package/Materials/Textures/cubeTexture.js +0 -1
  419. package/Materials/Textures/cubeTexture.js.map +1 -1
  420. package/Materials/Textures/cubeTexture.pure.js +368 -333
  421. package/Materials/Textures/cubeTexture.pure.js.map +1 -1
  422. package/Materials/Textures/dynamicTexture.d.ts +0 -1
  423. package/Materials/Textures/dynamicTexture.js +0 -1
  424. package/Materials/Textures/dynamicTexture.js.map +1 -1
  425. package/Materials/Textures/dynamicTexture.pure.js +2 -0
  426. package/Materials/Textures/dynamicTexture.pure.js.map +1 -1
  427. package/Materials/Textures/htmlElementTexture.d.ts +0 -2
  428. package/Materials/Textures/htmlElementTexture.js +0 -2
  429. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  430. package/Materials/Textures/htmlElementTexture.pure.js +4 -0
  431. package/Materials/Textures/htmlElementTexture.pure.js.map +1 -1
  432. package/Materials/Textures/index.d.ts +1 -0
  433. package/Materials/Textures/index.js +1 -1
  434. package/Materials/Textures/index.js.map +1 -1
  435. package/Materials/Textures/multiRenderTarget.d.ts +0 -1
  436. package/Materials/Textures/multiRenderTarget.js +0 -1
  437. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  438. package/Materials/Textures/multiRenderTarget.pure.js +2 -0
  439. package/Materials/Textures/multiRenderTarget.pure.js.map +1 -1
  440. package/Materials/Textures/pure.d.ts +1 -0
  441. package/Materials/Textures/pure.js +1 -0
  442. package/Materials/Textures/pure.js.map +1 -1
  443. package/Materials/Textures/texture.pure.js +961 -923
  444. package/Materials/Textures/texture.pure.js.map +1 -1
  445. package/Materials/Textures/videoTexture.pure.d.ts +3 -0
  446. package/Materials/Textures/videoTexture.pure.js +450 -401
  447. package/Materials/Textures/videoTexture.pure.js.map +1 -1
  448. package/Materials/colorCurves.pure.js +510 -477
  449. package/Materials/colorCurves.pure.js.map +1 -1
  450. package/Materials/effect.pure.js +0 -7
  451. package/Materials/effect.pure.js.map +1 -1
  452. package/Materials/imageProcessing.js +12 -4
  453. package/Materials/imageProcessing.js.map +1 -1
  454. package/Materials/imageProcessingConfiguration.pure.js +647 -587
  455. package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
  456. package/Materials/material.decalMapConfiguration.pure.d.ts +2 -2
  457. package/Materials/material.decalMapConfiguration.pure.js +149 -130
  458. package/Materials/material.decalMapConfiguration.pure.js.map +1 -1
  459. package/Materials/material.detailMapConfiguration.d.ts +3 -3
  460. package/Materials/material.detailMapConfiguration.js +213 -175
  461. package/Materials/material.detailMapConfiguration.js.map +1 -1
  462. package/Materials/material.pure.js +1815 -1721
  463. package/Materials/material.pure.js.map +1 -1
  464. package/Materials/materialPluginBase.pure.js +270 -249
  465. package/Materials/materialPluginBase.pure.js.map +1 -1
  466. package/Materials/materialPluginManager.pure.js +18 -8
  467. package/Materials/materialPluginManager.pure.js.map +1 -1
  468. package/Materials/materialStencilState.js +211 -200
  469. package/Materials/materialStencilState.js.map +1 -1
  470. package/Materials/meshDebugPluginMaterial.pure.d.ts +2 -2
  471. package/Materials/meshDebugPluginMaterial.pure.js +397 -275
  472. package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
  473. package/Materials/standardMaterial.pure.d.ts +32 -32
  474. package/Materials/standardMaterial.pure.js +1804 -1394
  475. package/Materials/standardMaterial.pure.js.map +1 -1
  476. package/Maths/math.color.pure.js +5 -5
  477. package/Maths/math.functions.js +38 -30
  478. package/Maths/math.functions.js.map +1 -1
  479. package/Maths/math.vector.pure.js +25 -25
  480. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
  481. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
  482. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +86 -1
  483. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +255 -104
  484. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  485. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +39 -0
  486. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +322 -0
  487. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
  488. package/Meshes/GreasedLine/greasedLineMesh.pure.js +4 -4
  489. package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +3 -3
  490. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +107 -94
  491. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
  492. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js +276 -263
  493. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js.map +1 -1
  494. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js +247 -232
  495. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js.map +1 -1
  496. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js +299 -284
  497. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js.map +1 -1
  498. package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js +196 -181
  499. package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js.map +1 -1
  500. package/Meshes/Node/Blocks/Set/latticeBlock.pure.js +198 -179
  501. package/Meshes/Node/Blocks/Set/latticeBlock.pure.js.map +1 -1
  502. package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js +151 -138
  503. package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js.map +1 -1
  504. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js +107 -94
  505. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js.map +1 -1
  506. package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js +138 -125
  507. package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js.map +1 -1
  508. package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js +213 -200
  509. package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js.map +1 -1
  510. package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js +138 -125
  511. package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js.map +1 -1
  512. package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js +179 -164
  513. package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js.map +1 -1
  514. package/Meshes/Node/Blocks/Sources/boxBlock.pure.js +183 -170
  515. package/Meshes/Node/Blocks/Sources/boxBlock.pure.js.map +1 -1
  516. package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js +125 -112
  517. package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js.map +1 -1
  518. package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js +153 -140
  519. package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js.map +1 -1
  520. package/Meshes/Node/Blocks/Sources/discBlock.pure.js +112 -99
  521. package/Meshes/Node/Blocks/Sources/discBlock.pure.js.map +1 -1
  522. package/Meshes/Node/Blocks/Sources/gridBlock.pure.js +133 -120
  523. package/Meshes/Node/Blocks/Sources/gridBlock.pure.js.map +1 -1
  524. package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js +128 -115
  525. package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js.map +1 -1
  526. package/Meshes/Node/Blocks/Sources/meshBlock.pure.js +116 -103
  527. package/Meshes/Node/Blocks/Sources/meshBlock.pure.js.map +1 -1
  528. package/Meshes/Node/Blocks/Sources/planeBlock.pure.js +160 -147
  529. package/Meshes/Node/Blocks/Sources/planeBlock.pure.js.map +1 -1
  530. package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js +144 -131
  531. package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js.map +1 -1
  532. package/Meshes/Node/Blocks/Sources/torusBlock.pure.js +112 -99
  533. package/Meshes/Node/Blocks/Sources/torusBlock.pure.js.map +1 -1
  534. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js +200 -185
  535. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js.map +1 -1
  536. package/Meshes/Node/Blocks/bevelBlock.pure.js +111 -98
  537. package/Meshes/Node/Blocks/bevelBlock.pure.js.map +1 -1
  538. package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +182 -165
  539. package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
  540. package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js +89 -76
  541. package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js.map +1 -1
  542. package/Meshes/Node/Blocks/conditionBlock.pure.js +184 -169
  543. package/Meshes/Node/Blocks/conditionBlock.pure.js.map +1 -1
  544. package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js +270 -255
  545. package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js.map +1 -1
  546. package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js +172 -159
  547. package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js.map +1 -1
  548. package/Meshes/Node/Blocks/geometryCurveBlock.pure.js +230 -217
  549. package/Meshes/Node/Blocks/geometryCurveBlock.pure.js.map +1 -1
  550. package/Meshes/Node/Blocks/geometryEaseBlock.pure.js +256 -245
  551. package/Meshes/Node/Blocks/geometryEaseBlock.pure.js.map +1 -1
  552. package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js +206 -189
  553. package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js.map +1 -1
  554. package/Meshes/Node/Blocks/geometryTransformBlock.pure.js +166 -153
  555. package/Meshes/Node/Blocks/geometryTransformBlock.pure.js.map +1 -1
  556. package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js +221 -208
  557. package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js.map +1 -1
  558. package/Meshes/Node/Blocks/mappingBlock.pure.js +150 -137
  559. package/Meshes/Node/Blocks/mappingBlock.pure.js.map +1 -1
  560. package/Meshes/Node/Blocks/mathBlock.pure.js +269 -256
  561. package/Meshes/Node/Blocks/mathBlock.pure.js.map +1 -1
  562. package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js +141 -128
  563. package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js.map +1 -1
  564. package/Meshes/Node/Blocks/randomBlock.pure.js +161 -148
  565. package/Meshes/Node/Blocks/randomBlock.pure.js.map +1 -1
  566. package/Meshes/Node/Blocks/subdivideBlock.pure.js +102 -87
  567. package/Meshes/Node/Blocks/subdivideBlock.pure.js.map +1 -1
  568. package/Meshes/Node/nodeGeometry.js +560 -538
  569. package/Meshes/Node/nodeGeometry.js.map +1 -1
  570. package/Meshes/Node/nodeGeometryBlock.js +473 -458
  571. package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
  572. package/Meshes/abstractMesh.pure.js +2218 -2207
  573. package/Meshes/abstractMesh.pure.js.map +1 -1
  574. package/Meshes/geometry.js +30 -15
  575. package/Meshes/geometry.js.map +1 -1
  576. package/Meshes/mesh.pure.js +26 -14
  577. package/Meshes/mesh.pure.js.map +1 -1
  578. package/Meshes/mesh.vertexData.js +1665 -1655
  579. package/Meshes/mesh.vertexData.js.map +1 -1
  580. package/Meshes/transformNode.pure.js +1400 -1372
  581. package/Meshes/transformNode.pure.js.map +1 -1
  582. package/Misc/decorators.d.ts +34 -19
  583. package/Misc/decorators.functions.d.ts +33 -2
  584. package/Misc/decorators.functions.js +114 -35
  585. package/Misc/decorators.functions.js.map +1 -1
  586. package/Misc/decorators.js +96 -68
  587. package/Misc/decorators.js.map +1 -1
  588. package/Misc/decorators.serialization.js +47 -40
  589. package/Misc/decorators.serialization.js.map +1 -1
  590. package/Misc/decorators.serializationUtilities.d.ts +24 -0
  591. package/Misc/decorators.serializationUtilities.js +20 -0
  592. package/Misc/decorators.serializationUtilities.js.map +1 -0
  593. package/Misc/dumpTools.pure.js +43 -33
  594. package/Misc/dumpTools.pure.js.map +1 -1
  595. package/Misc/fileTools.pure.js +8 -0
  596. package/Misc/fileTools.pure.js.map +1 -1
  597. package/Misc/observable.pure.js +0 -7
  598. package/Misc/observable.pure.js.map +1 -1
  599. package/Misc/snapshotRenderingHelper.d.ts +4 -1
  600. package/Misc/snapshotRenderingHelper.js.map +1 -1
  601. package/Misc/symbolMetadataPolyfill.d.ts +11 -0
  602. package/Misc/symbolMetadataPolyfill.js +22 -0
  603. package/Misc/symbolMetadataPolyfill.js.map +1 -0
  604. package/Misc/tools.pure.js +2 -2
  605. package/Misc/tools.pure.js.map +1 -1
  606. package/Morph/morphTarget.js +382 -365
  607. package/Morph/morphTarget.js.map +1 -1
  608. package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js +160 -145
  609. package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js.map +1 -1
  610. package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js +187 -174
  611. package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js.map +1 -1
  612. package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js +238 -219
  613. package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js.map +1 -1
  614. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js +140 -115
  615. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js.map +1 -1
  616. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js +157 -144
  617. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js.map +1 -1
  618. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js +133 -119
  619. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js.map +1 -1
  620. package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js +93 -80
  621. package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js.map +1 -1
  622. package/Particles/Node/Blocks/particleDebugBlock.pure.js +117 -105
  623. package/Particles/Node/Blocks/particleDebugBlock.pure.js.map +1 -1
  624. package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js +105 -92
  625. package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js.map +1 -1
  626. package/Particles/Node/Blocks/particleGradientValueBlock.pure.js +82 -69
  627. package/Particles/Node/Blocks/particleGradientValueBlock.pure.js.map +1 -1
  628. package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js +113 -101
  629. package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js.map +1 -1
  630. package/Particles/Node/Blocks/particleMathBlock.pure.js +278 -265
  631. package/Particles/Node/Blocks/particleMathBlock.pure.js.map +1 -1
  632. package/Particles/Node/Blocks/particleNumberMathBlock.pure.js +155 -142
  633. package/Particles/Node/Blocks/particleNumberMathBlock.pure.js.map +1 -1
  634. package/Particles/Node/Blocks/particleRandomBlock.pure.js +156 -143
  635. package/Particles/Node/Blocks/particleRandomBlock.pure.js.map +1 -1
  636. package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js +217 -204
  637. package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js.map +1 -1
  638. package/Particles/Node/Blocks/particleVectorMathBlock.pure.js +106 -93
  639. package/Particles/Node/Blocks/particleVectorMathBlock.pure.js.map +1 -1
  640. package/Particles/Node/Blocks/systemBlock.pure.js +366 -330
  641. package/Particles/Node/Blocks/systemBlock.pure.js.map +1 -1
  642. package/Particles/Node/nodeParticleBlock.js +339 -324
  643. package/Particles/Node/nodeParticleBlock.js.map +1 -1
  644. package/Particles/Node/nodeParticleSystemSet.js +494 -473
  645. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  646. package/Particles/gpuParticleSystem.d.ts +0 -1
  647. package/Particles/gpuParticleSystem.js +0 -1
  648. package/Particles/gpuParticleSystem.js.map +1 -1
  649. package/Particles/gpuParticleSystem.pure.d.ts +4 -3
  650. package/Particles/gpuParticleSystem.pure.js +27 -16
  651. package/Particles/gpuParticleSystem.pure.js.map +1 -1
  652. package/Particles/particleSystem.pure.js +57 -2
  653. package/Particles/particleSystem.pure.js.map +1 -1
  654. package/Particles/thinParticleSystem.d.ts +0 -1
  655. package/Particles/thinParticleSystem.js +0 -1
  656. package/Particles/thinParticleSystem.js.map +1 -1
  657. package/Particles/thinParticleSystem.pure.js +2 -0
  658. package/Particles/thinParticleSystem.pure.js.map +1 -1
  659. package/Particles/webgl2ParticleSystem.pure.js +2 -0
  660. package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
  661. package/Physics/v1/physicsImpostor.pure.js +4 -4
  662. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js +675 -656
  663. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js.map +1 -1
  664. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.d.ts +0 -1
  665. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +0 -1
  666. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js.map +1 -1
  667. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +521 -486
  668. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
  669. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +0 -1
  670. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +0 -1
  671. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  672. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js +241 -220
  673. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js.map +1 -1
  674. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js +852 -835
  675. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js.map +1 -1
  676. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js +1135 -1073
  677. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js.map +1 -1
  678. package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js +319 -303
  679. package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js.map +1 -1
  680. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +212 -199
  681. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  682. package/PostProcesses/blackAndWhitePostProcess.pure.js +67 -55
  683. package/PostProcesses/blackAndWhitePostProcess.pure.js.map +1 -1
  684. package/PostProcesses/bloomMergePostProcess.pure.js +74 -62
  685. package/PostProcesses/bloomMergePostProcess.pure.js.map +1 -1
  686. package/PostProcesses/blurPostProcess.pure.js +127 -115
  687. package/PostProcesses/blurPostProcess.pure.js.map +1 -1
  688. package/PostProcesses/chromaticAberrationPostProcess.pure.js +130 -118
  689. package/PostProcesses/chromaticAberrationPostProcess.pure.js.map +1 -1
  690. package/PostProcesses/circleOfConfusionPostProcess.pure.js +115 -104
  691. package/PostProcesses/circleOfConfusionPostProcess.pure.js.map +1 -1
  692. package/PostProcesses/colorCorrectionPostProcess.pure.js +55 -43
  693. package/PostProcesses/colorCorrectionPostProcess.pure.js.map +1 -1
  694. package/PostProcesses/convolutionPostProcess.pure.js +96 -84
  695. package/PostProcesses/convolutionPostProcess.pure.js.map +1 -1
  696. package/PostProcesses/extractHighlightsPostProcess.pure.js +68 -57
  697. package/PostProcesses/extractHighlightsPostProcess.pure.js.map +1 -1
  698. package/PostProcesses/filterPostProcess.pure.js +66 -54
  699. package/PostProcesses/filterPostProcess.pure.js.map +1 -1
  700. package/PostProcesses/fxaaPostProcess.pure.js.map +1 -1
  701. package/PostProcesses/grainPostProcess.pure.js +82 -70
  702. package/PostProcesses/grainPostProcess.pure.js.map +1 -1
  703. package/PostProcesses/imageProcessingPostProcess.js +334 -322
  704. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  705. package/PostProcesses/motionBlurPostProcess.pure.js +246 -235
  706. package/PostProcesses/motionBlurPostProcess.pure.js.map +1 -1
  707. package/PostProcesses/passPostProcess.pure.js +75 -63
  708. package/PostProcesses/passPostProcess.pure.js.map +1 -1
  709. package/PostProcesses/postProcess.pure.js +899 -835
  710. package/PostProcesses/postProcess.pure.js.map +1 -1
  711. package/PostProcesses/refractionPostProcess.pure.js +114 -87
  712. package/PostProcesses/refractionPostProcess.pure.js.map +1 -1
  713. package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js +108 -96
  714. package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js.map +1 -1
  715. package/PostProcesses/screenSpaceReflectionPostProcess.pure.js +241 -220
  716. package/PostProcesses/screenSpaceReflectionPostProcess.pure.js.map +1 -1
  717. package/PostProcesses/sharpenPostProcess.pure.js +86 -74
  718. package/PostProcesses/sharpenPostProcess.pure.js.map +1 -1
  719. package/PostProcesses/tonemapPostProcess.pure.js +82 -70
  720. package/PostProcesses/tonemapPostProcess.pure.js.map +1 -1
  721. package/PostProcesses/volumetricLightScatteringPostProcess.pure.js +500 -465
  722. package/PostProcesses/volumetricLightScatteringPostProcess.pure.js.map +1 -1
  723. package/PostProcesses/vrMultiviewToSingleviewPostProcess.d.ts +0 -1
  724. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +0 -1
  725. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
  726. package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js +2 -0
  727. package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js.map +1 -1
  728. package/Probes/reflectionProbe.pure.js +238 -224
  729. package/Probes/reflectionProbe.pure.js.map +1 -1
  730. package/Rendering/GlobalIllumination/giRSMManager.pure.d.ts +1 -1
  731. package/Rendering/GlobalIllumination/giRSMManager.pure.js +138 -105
  732. package/Rendering/GlobalIllumination/giRSMManager.pure.js.map +1 -1
  733. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -1
  734. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +155 -138
  735. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
  736. package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -2
  737. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +0 -2
  738. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  739. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +5 -0
  740. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
  741. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +0 -1
  742. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +0 -1
  743. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
  744. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +1 -0
  745. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +34 -0
  746. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
  747. package/Rendering/edgesRenderer.pure.js.map +1 -1
  748. package/Rendering/prePassRenderer.d.ts +0 -2
  749. package/Rendering/prePassRenderer.js +0 -2
  750. package/Rendering/prePassRenderer.js.map +1 -1
  751. package/Rendering/prePassRenderer.pure.js +2 -0
  752. package/Rendering/prePassRenderer.pure.js.map +1 -1
  753. package/Rendering/reflectiveShadowMap.pure.d.ts +1 -1
  754. package/Rendering/reflectiveShadowMap.pure.js +151 -130
  755. package/Rendering/reflectiveShadowMap.pure.js.map +1 -1
  756. package/Rendering/thinDepthPeelingRenderer.d.ts +0 -1
  757. package/Rendering/thinDepthPeelingRenderer.js +0 -1
  758. package/Rendering/thinDepthPeelingRenderer.js.map +1 -1
  759. package/Shaders/ShadersInclude/gaussianSplatting.js +1 -0
  760. package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
  761. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +35 -5
  762. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  763. package/Shaders/gaussianSplatting.fragment.js +17 -1
  764. package/Shaders/gaussianSplatting.fragment.js.map +1 -1
  765. package/Shaders/gaussianSplatting.vertex.js +1 -1
  766. package/Shaders/gaussianSplatting.vertex.js.map +1 -1
  767. package/Shaders/gaussianSplattingDepth.vertex.js +1 -1
  768. package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
  769. package/Shaders/picking.fragment.js +39 -3
  770. package/Shaders/picking.fragment.js.map +1 -1
  771. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
  772. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
  773. package/ShadersWGSL/ShadersInclude/helperFunctions.js +2 -2
  774. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
  775. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -7
  776. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  777. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +4 -3
  778. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  779. package/ShadersWGSL/gaussianSplatting.fragment.js +14 -1
  780. package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
  781. package/ShadersWGSL/gaussianSplatting.vertex.js +2 -2
  782. package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
  783. package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
  784. package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
  785. package/ShadersWGSL/lightingVolume.compute.js +2 -2
  786. package/ShadersWGSL/lightingVolume.compute.js.map +1 -1
  787. package/ShadersWGSL/picking.fragment.js +22 -1
  788. package/ShadersWGSL/picking.fragment.js.map +1 -1
  789. package/XR/features/Layers/WebXRCompositionLayer.d.ts +3 -2
  790. package/XR/features/Layers/WebXRCompositionLayer.js +2 -2
  791. package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
  792. package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +59 -0
  793. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +120 -0
  794. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -0
  795. package/XR/features/Layers/WebXRWebGPUProjectionLayer.d.ts +25 -0
  796. package/XR/features/Layers/WebXRWebGPUProjectionLayer.js +69 -0
  797. package/XR/features/Layers/WebXRWebGPUProjectionLayer.js.map +1 -0
  798. package/XR/features/WebXRLayers.pure.d.ts +8 -0
  799. package/XR/features/WebXRLayers.pure.js +43 -6
  800. package/XR/features/WebXRLayers.pure.js.map +1 -1
  801. package/XR/native/nativeXRRenderTarget.d.ts +2 -2
  802. package/XR/native/nativeXRRenderTarget.js +2 -2
  803. package/XR/native/nativeXRRenderTarget.js.map +1 -1
  804. package/XR/webXRExperienceHelper.js +10 -1
  805. package/XR/webXRExperienceHelper.js.map +1 -1
  806. package/XR/webXRGraphicsBinding.d.ts +90 -0
  807. package/XR/webXRGraphicsBinding.js +85 -0
  808. package/XR/webXRGraphicsBinding.js.map +1 -0
  809. package/XR/webXRLayerRenderTargetTexture.d.ts +24 -0
  810. package/XR/webXRLayerRenderTargetTexture.js +30 -0
  811. package/XR/webXRLayerRenderTargetTexture.js.map +1 -0
  812. package/XR/webXRManagedOutputCanvas.d.ts +14 -0
  813. package/XR/webXRManagedOutputCanvas.js +24 -5
  814. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  815. package/XR/webXRRenderTargetTextureProvider.d.ts +25 -4
  816. package/XR/webXRRenderTargetTextureProvider.js +33 -35
  817. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  818. package/XR/webXRSessionManager.d.ts +11 -0
  819. package/XR/webXRSessionManager.js +37 -0
  820. package/XR/webXRSessionManager.js.map +1 -1
  821. package/XR/webXRTypes.d.ts +9 -6
  822. package/XR/webXRTypes.js.map +1 -1
  823. package/XR/webXRWebGLLayer.d.ts +2 -2
  824. package/XR/webXRWebGLLayer.js +2 -2
  825. package/XR/webXRWebGLLayer.js.map +1 -1
  826. package/XR/webXRWebGLRenderTargetTextureProvider.d.ts +12 -0
  827. package/XR/webXRWebGLRenderTargetTextureProvider.js +58 -0
  828. package/XR/webXRWebGLRenderTargetTextureProvider.js.map +1 -0
  829. package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +69 -0
  830. package/XR/webXRWebGPURenderTargetTextureProvider.js +148 -0
  831. package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -0
  832. package/index.d.ts +1 -0
  833. package/index.js +1 -0
  834. package/index.js.map +1 -1
  835. package/node.js +878 -845
  836. package/node.js.map +1 -1
  837. package/package.json +8 -14
  838. package/scene.pure.d.ts +12 -0
  839. package/scene.pure.js +36 -0
  840. package/scene.pure.js.map +1 -1
  841. package/tslib.es6.js +304 -150
@@ -1,4 +1,4 @@
1
- import { __decorate } from "../../tslib.es6.js";
1
+ import { __esDecorate, __runInitializers } from "../../tslib.es6.js";
2
2
  import { serialize } from "../../Misc/decorators.js";
3
3
  import { ParticleSystemSet } from "../particleSystemSet.js";
4
4
  import { SystemBlock } from "./Blocks/systemBlock.pure.js";
@@ -22,512 +22,533 @@ import { CreateParticleBlock } from "./Blocks/Emitters/createParticleBlock.pure.
22
22
  * NPE: #K6F1ZB#1
23
23
  * PG: #ZT509U#1
24
24
  */
25
- export class NodeParticleSystemSet {
26
- /**
27
- * Gets the system blocks
28
- */
29
- get systemBlocks() {
30
- return this._systemBlocks;
31
- }
32
- /**
33
- * Gets the list of input blocks attached to this material
34
- * @returns an array of InputBlocks
35
- */
36
- get inputBlocks() {
37
- const blocks = [];
38
- for (const block of this.attachedBlocks) {
39
- if (block.isInput) {
40
- blocks.push(block);
25
+ let NodeParticleSystemSet = (() => {
26
+ var _a;
27
+ let _name_decorators;
28
+ let _name_initializers = [];
29
+ let _name_extraInitializers = [];
30
+ let _comment_decorators;
31
+ let _comment_initializers = [];
32
+ let _comment_extraInitializers = [];
33
+ return _a = class NodeParticleSystemSet {
34
+ /**
35
+ * Gets the system blocks
36
+ */
37
+ get systemBlocks() {
38
+ return this._systemBlocks;
41
39
  }
42
- }
43
- return blocks;
44
- }
45
- /**
46
- * Get a block by its name
47
- * @param name defines the name of the block to retrieve
48
- * @returns the required block or null if not found
49
- */
50
- getBlockByName(name) {
51
- let result = null;
52
- for (const block of this.attachedBlocks) {
53
- if (block.name === name) {
54
- if (!result) {
55
- result = block;
56
- }
57
- else {
58
- Tools.Warn("More than one block was found with the name `" + name + "`");
59
- return result;
40
+ /**
41
+ * Gets the list of input blocks attached to this material
42
+ * @returns an array of InputBlocks
43
+ */
44
+ get inputBlocks() {
45
+ const blocks = [];
46
+ for (const block of this.attachedBlocks) {
47
+ if (block.isInput) {
48
+ blocks.push(block);
49
+ }
60
50
  }
51
+ return blocks;
61
52
  }
62
- }
63
- return result;
64
- }
65
- /**
66
- * Get a block using a predicate
67
- * @param predicate defines the predicate used to find the good candidate
68
- * @returns the required block or null if not found
69
- */
70
- getBlockByPredicate(predicate) {
71
- for (const block of this.attachedBlocks) {
72
- if (predicate(block)) {
73
- return block;
74
- }
75
- }
76
- return null;
77
- }
78
- /**
79
- * Get an input block using a predicate
80
- * @param predicate defines the predicate used to find the good candidate
81
- * @returns the required input block or null if not found
82
- */
83
- getInputBlockByPredicate(predicate) {
84
- for (const block of this.attachedBlocks) {
85
- if (block.isInput && predicate(block)) {
86
- return block;
87
- }
88
- }
89
- return null;
90
- }
91
- /**
92
- * Creates a new set
93
- * @param name defines the name of the set
94
- */
95
- constructor(name) {
96
- this._systemBlocks = [];
97
- this._buildId = 0;
98
- /**
99
- * Gets an array of blocks that needs to be serialized even if they are not yet connected
100
- */
101
- this.attachedBlocks = [];
102
- /**
103
- * Gets or sets data used by visual editor
104
- * @see https://npe.babylonjs.com
105
- */
106
- this.editorData = null;
107
- /**
108
- * Observable raised when the particle set is built
109
- */
110
- this.onBuildObservable = new Observable();
111
- this.BJSNODEPARTICLEEDITOR = this._getGlobalNodeParticleEditor();
112
- this.name = name;
113
- }
114
- /**
115
- * Gets the current class name of the node particle set e.g. "NodeParticleSystemSet"
116
- * @returns the class name
117
- */
118
- getClassName() {
119
- return "NodeParticleSystemSet";
120
- }
121
- _initializeBlock(node, autoConfigure = true) {
122
- if (this.attachedBlocks.indexOf(node) === -1) {
123
- this.attachedBlocks.push(node);
124
- }
125
- for (const input of node.inputs) {
126
- const connectedPoint = input.connectedPoint;
127
- if (connectedPoint) {
128
- const block = connectedPoint.ownerBlock;
129
- if (block !== node) {
130
- this._initializeBlock(block, autoConfigure);
53
+ /**
54
+ * Get a block by its name
55
+ * @param name defines the name of the block to retrieve
56
+ * @returns the required block or null if not found
57
+ */
58
+ getBlockByName(name) {
59
+ let result = null;
60
+ for (const block of this.attachedBlocks) {
61
+ if (block.name === name) {
62
+ if (!result) {
63
+ result = block;
64
+ }
65
+ else {
66
+ Tools.Warn("More than one block was found with the name `" + name + "`");
67
+ return result;
68
+ }
69
+ }
131
70
  }
71
+ return result;
132
72
  }
133
- }
134
- }
135
- /** Get the editor from bundle or global
136
- * @returns the global NPE
137
- */
138
- _getGlobalNodeParticleEditor() {
139
- // UMD global name detection from bundle metadata.
140
- // Note: rollup-built UMD bundles do not expose the editor class
141
- // directly on the namespace - it lives on `.default.NodeParticleEditor` -
142
- // so we unwrap that case before falling back to the BABYLON global.
143
- if (typeof NODEPARTICLEEDITOR !== "undefined") {
144
- if (NODEPARTICLEEDITOR.NodeParticleEditor) {
145
- return NODEPARTICLEEDITOR;
146
- }
147
- if (NODEPARTICLEEDITOR.default?.NodeParticleEditor) {
148
- return NODEPARTICLEEDITOR.default;
73
+ /**
74
+ * Get a block using a predicate
75
+ * @param predicate defines the predicate used to find the good candidate
76
+ * @returns the required block or null if not found
77
+ */
78
+ getBlockByPredicate(predicate) {
79
+ for (const block of this.attachedBlocks) {
80
+ if (predicate(block)) {
81
+ return block;
82
+ }
83
+ }
84
+ return null;
149
85
  }
150
- }
151
- // In case of module let's check the global emitted from the editor entry point.
152
- if (typeof BABYLON !== "undefined" && typeof BABYLON.NodeParticleEditor !== "undefined") {
153
- return BABYLON;
154
- }
155
- return undefined;
156
- }
157
- /** Creates the node editor window.
158
- * @param additionalConfig Define the configuration of the editor
159
- */
160
- _createNodeParticleEditor(additionalConfig) {
161
- const nodeEditorConfig = {
162
- nodeParticleSet: this,
163
- ...additionalConfig,
164
- };
165
- this.BJSNODEPARTICLEEDITOR.NodeParticleEditor.Show(nodeEditorConfig);
166
- }
167
- /**
168
- * Launch the node particle editor
169
- * @param config Define the configuration of the editor
170
- * @returns a promise fulfilled when the node editor is visible
171
- */
172
- async editAsync(config) {
173
- return await new Promise((resolve) => {
174
- this.BJSNODEPARTICLEEDITOR = this.BJSNODEPARTICLEEDITOR || this._getGlobalNodeParticleEditor();
175
- if (typeof this.BJSNODEPARTICLEEDITOR == "undefined") {
176
- const editorUrl = config && config.editorURL ? config.editorURL : NodeParticleSystemSet.EditorURL;
177
- // Load editor and add it to the DOM
178
- Tools.LoadBabylonScript(editorUrl, () => {
179
- this.BJSNODEPARTICLEEDITOR = this.BJSNODEPARTICLEEDITOR || this._getGlobalNodeParticleEditor();
180
- this._createNodeParticleEditor(config?.nodeEditorConfig);
181
- resolve();
182
- });
86
+ /**
87
+ * Get an input block using a predicate
88
+ * @param predicate defines the predicate used to find the good candidate
89
+ * @returns the required input block or null if not found
90
+ */
91
+ getInputBlockByPredicate(predicate) {
92
+ for (const block of this.attachedBlocks) {
93
+ if (block.isInput && predicate(block)) {
94
+ return block;
95
+ }
96
+ }
97
+ return null;
183
98
  }
184
- else {
185
- // Otherwise creates the editor
186
- this._createNodeParticleEditor(config?.nodeEditorConfig);
187
- resolve();
99
+ /**
100
+ * Creates a new set
101
+ * @param name defines the name of the set
102
+ */
103
+ constructor(name) {
104
+ this._systemBlocks = [];
105
+ this._buildId = 0;
106
+ /**
107
+ * Gets an array of blocks that needs to be serialized even if they are not yet connected
108
+ */
109
+ this.attachedBlocks = [];
110
+ /**
111
+ * Gets or sets data used by visual editor
112
+ * @see https://npe.babylonjs.com
113
+ */
114
+ this.editorData = null;
115
+ /**
116
+ * Observable raised when the particle set is built
117
+ */
118
+ this.onBuildObservable = new Observable();
119
+ /**
120
+ * The name of the set
121
+ */
122
+ this.name = __runInitializers(this, _name_initializers, void 0);
123
+ /**
124
+ * A free comment about the set
125
+ */
126
+ this.comment = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _comment_initializers, void 0));
127
+ this.BJSNODEPARTICLEEDITOR = (__runInitializers(this, _comment_extraInitializers), this._getGlobalNodeParticleEditor());
128
+ this.name = name;
188
129
  }
189
- });
190
- }
191
- /**
192
- * Builds the particle system set from the defined blocks.
193
- * @param scene defines the hosting scene
194
- * @param verbose defines whether to log detailed information during the build process (false by default)
195
- * @returns a promise that resolves to the built particle system set
196
- */
197
- async buildAsync(scene, verbose = false) {
198
- const output = new ParticleSystemSet();
199
- // Initialize all blocks
200
- for (const block of this._systemBlocks) {
201
- this._initializeBlock(block);
202
- }
203
- // Build the blocks
204
- const buildPromises = new Array();
205
- for (const block of this.systemBlocks) {
206
- const state = new NodeParticleBuildState();
207
- state.buildId = this._buildId++;
208
- state.scene = scene;
209
- state.verbose = verbose;
210
- const system = block.createSystem(state);
211
- system._source = this;
212
- system._blockReference = block._internalId;
213
- // Errors
214
- state.emitErrors();
215
- buildPromises.push(state.waitForBuildPromisesAsync());
216
- output.systems.push(system);
217
- }
218
- await Promise.all(buildPromises);
219
- this.onBuildObservable.notifyObservers(this);
220
- return output;
221
- }
222
- /**
223
- * Clear the current node particle set
224
- */
225
- clear() {
226
- this.attachedBlocks.length = 0;
227
- this._systemBlocks.length = 0;
228
- }
229
- /**
230
- * Clear the current set and restore it to a default state
231
- */
232
- setToDefault() {
233
- this.clear();
234
- this.editorData = null;
235
- // Main system
236
- const system = new SystemBlock("Particle system");
237
- // Update position
238
- const updatePositionBlock = new UpdatePositionBlock("Update position");
239
- updatePositionBlock.output.connectTo(system.particle);
240
- // Contextual inputs
241
- const positionBlock = new ParticleInputBlock("Position");
242
- positionBlock.contextualValue = NodeParticleContextualSources.Position;
243
- const directionBlock = new ParticleInputBlock("Scaled direction");
244
- directionBlock.contextualValue = NodeParticleContextualSources.ScaledDirection;
245
- // Add
246
- const addBlock = new ParticleMathBlock("Add");
247
- addBlock.operation = ParticleMathBlockOperations.Add;
248
- positionBlock.output.connectTo(addBlock.left);
249
- directionBlock.output.connectTo(addBlock.right);
250
- addBlock.output.connectTo(updatePositionBlock.position);
251
- // Create particle
252
- const createParticleBlock = new CreateParticleBlock("Create particle");
253
- // Shape
254
- const emitterShape = new BoxShapeBlock("Box shape");
255
- createParticleBlock.particle.connectTo(emitterShape.particle);
256
- emitterShape.output.connectTo(updatePositionBlock.particle);
257
- // Texture
258
- const textureBlock = new ParticleTextureSourceBlock("Texture");
259
- textureBlock.textureOutput.connectTo(system.texture);
260
- textureBlock.url = Tools.GetAssetUrl("https://assets.babylonjs.com/core/textures/flare.png");
261
- this._systemBlocks.push(system);
262
- }
263
- /**
264
- * Remove a block from the current system set
265
- * @param block defines the block to remove
266
- */
267
- removeBlock(block) {
268
- const attachedBlockIndex = this.attachedBlocks.indexOf(block);
269
- if (attachedBlockIndex > -1) {
270
- this.attachedBlocks.splice(attachedBlockIndex, 1);
271
- }
272
- if (block.isSystem) {
273
- const index = this._systemBlocks.indexOf(block);
274
- if (index > -1) {
275
- this._systemBlocks.splice(index, 1);
130
+ /**
131
+ * Gets the current class name of the node particle set e.g. "NodeParticleSystemSet"
132
+ * @returns the class name
133
+ */
134
+ getClassName() {
135
+ return "NodeParticleSystemSet";
276
136
  }
277
- }
278
- }
279
- /**
280
- * Clear the current graph and load a new one from a serialization object
281
- * @param source defines the JSON representation of the particle set
282
- * @param merge defines whether or not the source must be merged or replace the current content
283
- */
284
- parseSerializedObject(source, merge = false) {
285
- if (!merge) {
286
- this.clear();
287
- }
288
- const map = {};
289
- // Create blocks
290
- for (const parsedBlock of source.blocks) {
291
- const blockType = GetClass(parsedBlock.customType);
292
- if (blockType) {
293
- const block = new blockType();
294
- block._deserialize(parsedBlock);
295
- map[parsedBlock.id] = block;
296
- this.attachedBlocks.push(block);
297
- if (block.isSystem) {
298
- this._systemBlocks.push(block);
137
+ _initializeBlock(node, autoConfigure = true) {
138
+ if (this.attachedBlocks.indexOf(node) === -1) {
139
+ this.attachedBlocks.push(node);
140
+ }
141
+ for (const input of node.inputs) {
142
+ const connectedPoint = input.connectedPoint;
143
+ if (connectedPoint) {
144
+ const block = connectedPoint.ownerBlock;
145
+ if (block !== node) {
146
+ this._initializeBlock(block, autoConfigure);
147
+ }
148
+ }
299
149
  }
300
150
  }
301
- }
302
- // Reconnect teleportation
303
- for (const block of this.attachedBlocks) {
304
- if (block.isTeleportOut) {
305
- const teleportOut = block;
306
- const id = teleportOut._tempEntryPointUniqueId;
307
- if (id) {
308
- const source = map[id];
309
- if (source) {
310
- source.attachToEndpoint(teleportOut);
151
+ /** Get the editor from bundle or global
152
+ * @returns the global NPE
153
+ */
154
+ _getGlobalNodeParticleEditor() {
155
+ // UMD global name detection from bundle metadata.
156
+ // Note: rollup-built UMD bundles do not expose the editor class
157
+ // directly on the namespace - it lives on `.default.NodeParticleEditor` -
158
+ // so we unwrap that case before falling back to the BABYLON global.
159
+ if (typeof NODEPARTICLEEDITOR !== "undefined") {
160
+ if (NODEPARTICLEEDITOR.NodeParticleEditor) {
161
+ return NODEPARTICLEEDITOR;
311
162
  }
163
+ if (NODEPARTICLEEDITOR.default?.NodeParticleEditor) {
164
+ return NODEPARTICLEEDITOR.default;
165
+ }
166
+ }
167
+ // In case of module let's check the global emitted from the editor entry point.
168
+ if (typeof BABYLON !== "undefined" && typeof BABYLON.NodeParticleEditor !== "undefined") {
169
+ return BABYLON;
312
170
  }
171
+ return undefined;
313
172
  }
314
- }
315
- // Connections - Starts with input blocks only (except if in "merge" mode where we scan all blocks)
316
- for (let blockIndex = 0; blockIndex < source.blocks.length; blockIndex++) {
317
- const parsedBlock = source.blocks[blockIndex];
318
- const block = map[parsedBlock.id];
319
- if (!block) {
320
- continue;
173
+ /** Creates the node editor window.
174
+ * @param additionalConfig Define the configuration of the editor
175
+ */
176
+ _createNodeParticleEditor(additionalConfig) {
177
+ const nodeEditorConfig = {
178
+ nodeParticleSet: this,
179
+ ...additionalConfig,
180
+ };
181
+ this.BJSNODEPARTICLEEDITOR.NodeParticleEditor.Show(nodeEditorConfig);
321
182
  }
322
- if (block.inputs.length && parsedBlock.inputs.some((i) => i.targetConnectionName) && !merge) {
323
- continue;
183
+ /**
184
+ * Launch the node particle editor
185
+ * @param config Define the configuration of the editor
186
+ * @returns a promise fulfilled when the node editor is visible
187
+ */
188
+ async editAsync(config) {
189
+ return await new Promise((resolve) => {
190
+ this.BJSNODEPARTICLEEDITOR = this.BJSNODEPARTICLEEDITOR || this._getGlobalNodeParticleEditor();
191
+ if (typeof this.BJSNODEPARTICLEEDITOR == "undefined") {
192
+ const editorUrl = config && config.editorURL ? config.editorURL : _a.EditorURL;
193
+ // Load editor and add it to the DOM
194
+ Tools.LoadBabylonScript(editorUrl, () => {
195
+ this.BJSNODEPARTICLEEDITOR = this.BJSNODEPARTICLEEDITOR || this._getGlobalNodeParticleEditor();
196
+ this._createNodeParticleEditor(config?.nodeEditorConfig);
197
+ resolve();
198
+ });
199
+ }
200
+ else {
201
+ // Otherwise creates the editor
202
+ this._createNodeParticleEditor(config?.nodeEditorConfig);
203
+ resolve();
204
+ }
205
+ });
324
206
  }
325
- this._restoreConnections(block, source, map);
326
- }
327
- // UI related info
328
- if (source.locations || (source.editorData && source.editorData.locations)) {
329
- const locations = source.locations || source.editorData.locations;
330
- for (const location of locations) {
331
- if (map[location.blockId]) {
332
- location.blockId = map[location.blockId].uniqueId;
207
+ /**
208
+ * Builds the particle system set from the defined blocks.
209
+ * @param scene defines the hosting scene
210
+ * @param verbose defines whether to log detailed information during the build process (false by default)
211
+ * @returns a promise that resolves to the built particle system set
212
+ */
213
+ async buildAsync(scene, verbose = false) {
214
+ const output = new ParticleSystemSet();
215
+ // Initialize all blocks
216
+ for (const block of this._systemBlocks) {
217
+ this._initializeBlock(block);
333
218
  }
219
+ // Build the blocks
220
+ const buildPromises = new Array();
221
+ for (const block of this.systemBlocks) {
222
+ const state = new NodeParticleBuildState();
223
+ state.buildId = this._buildId++;
224
+ state.scene = scene;
225
+ state.verbose = verbose;
226
+ const system = block.createSystem(state);
227
+ system._source = this;
228
+ system._blockReference = block._internalId;
229
+ // Errors
230
+ state.emitErrors();
231
+ buildPromises.push(state.waitForBuildPromisesAsync());
232
+ output.systems.push(system);
233
+ }
234
+ await Promise.all(buildPromises);
235
+ this.onBuildObservable.notifyObservers(this);
236
+ return output;
334
237
  }
335
- if (merge && this.editorData && this.editorData.locations) {
336
- locations.concat(this.editorData.locations);
337
- }
338
- if (source.locations) {
339
- this.editorData = {
340
- locations: locations,
341
- };
238
+ /**
239
+ * Clear the current node particle set
240
+ */
241
+ clear() {
242
+ this.attachedBlocks.length = 0;
243
+ this._systemBlocks.length = 0;
342
244
  }
343
- else {
344
- this.editorData = source.editorData;
345
- this.editorData.locations = locations;
245
+ /**
246
+ * Clear the current set and restore it to a default state
247
+ */
248
+ setToDefault() {
249
+ this.clear();
250
+ this.editorData = null;
251
+ // Main system
252
+ const system = new SystemBlock("Particle system");
253
+ // Update position
254
+ const updatePositionBlock = new UpdatePositionBlock("Update position");
255
+ updatePositionBlock.output.connectTo(system.particle);
256
+ // Contextual inputs
257
+ const positionBlock = new ParticleInputBlock("Position");
258
+ positionBlock.contextualValue = NodeParticleContextualSources.Position;
259
+ const directionBlock = new ParticleInputBlock("Scaled direction");
260
+ directionBlock.contextualValue = NodeParticleContextualSources.ScaledDirection;
261
+ // Add
262
+ const addBlock = new ParticleMathBlock("Add");
263
+ addBlock.operation = ParticleMathBlockOperations.Add;
264
+ positionBlock.output.connectTo(addBlock.left);
265
+ directionBlock.output.connectTo(addBlock.right);
266
+ addBlock.output.connectTo(updatePositionBlock.position);
267
+ // Create particle
268
+ const createParticleBlock = new CreateParticleBlock("Create particle");
269
+ // Shape
270
+ const emitterShape = new BoxShapeBlock("Box shape");
271
+ createParticleBlock.particle.connectTo(emitterShape.particle);
272
+ emitterShape.output.connectTo(updatePositionBlock.particle);
273
+ // Texture
274
+ const textureBlock = new ParticleTextureSourceBlock("Texture");
275
+ textureBlock.textureOutput.connectTo(system.texture);
276
+ textureBlock.url = Tools.GetAssetUrl("https://assets.babylonjs.com/core/textures/flare.png");
277
+ this._systemBlocks.push(system);
346
278
  }
347
- const blockMap = {};
348
- for (const key in map) {
349
- blockMap[key] = map[key].uniqueId;
279
+ /**
280
+ * Remove a block from the current system set
281
+ * @param block defines the block to remove
282
+ */
283
+ removeBlock(block) {
284
+ const attachedBlockIndex = this.attachedBlocks.indexOf(block);
285
+ if (attachedBlockIndex > -1) {
286
+ this.attachedBlocks.splice(attachedBlockIndex, 1);
287
+ }
288
+ if (block.isSystem) {
289
+ const index = this._systemBlocks.indexOf(block);
290
+ if (index > -1) {
291
+ this._systemBlocks.splice(index, 1);
292
+ }
293
+ }
350
294
  }
351
- this.editorData.map = blockMap;
352
- }
353
- this.comment = source.comment;
354
- }
355
- _restoreConnections(block, source, map) {
356
- for (const outputPoint of block.outputs) {
357
- for (const candidate of source.blocks) {
358
- const target = map[candidate.id];
359
- if (!target) {
360
- continue;
295
+ /**
296
+ * Clear the current graph and load a new one from a serialization object
297
+ * @param source defines the JSON representation of the particle set
298
+ * @param merge defines whether or not the source must be merged or replace the current content
299
+ */
300
+ parseSerializedObject(source, merge = false) {
301
+ if (!merge) {
302
+ this.clear();
361
303
  }
362
- for (const input of candidate.inputs) {
363
- if (map[input.targetBlockId] === block && input.targetConnectionName === outputPoint.name) {
364
- const inputPoint = target.getInputByName(input.inputName);
365
- if (!inputPoint || inputPoint.isConnected) {
366
- continue;
304
+ const map = {};
305
+ // Create blocks
306
+ for (const parsedBlock of source.blocks) {
307
+ const blockType = GetClass(parsedBlock.customType);
308
+ if (blockType) {
309
+ const block = new blockType();
310
+ block._deserialize(parsedBlock);
311
+ map[parsedBlock.id] = block;
312
+ this.attachedBlocks.push(block);
313
+ if (block.isSystem) {
314
+ this._systemBlocks.push(block);
367
315
  }
368
- outputPoint.connectTo(inputPoint, true);
369
- this._restoreConnections(target, source, map);
370
- continue;
371
316
  }
372
317
  }
373
- }
374
- }
375
- }
376
- /**
377
- * Serializes this node particle set in a JSON representation
378
- * @param selectedBlocks defines the list of blocks to save (if null the whole node particle set will be saved)
379
- * @returns the serialized particle system set object
380
- */
381
- serialize(selectedBlocks) {
382
- const serializationObject = selectedBlocks ? {} : SerializationHelper.Serialize(this);
383
- serializationObject.editorData = JSON.parse(JSON.stringify(this.editorData)); // Copy
384
- let blocks = [];
385
- if (selectedBlocks) {
386
- blocks = selectedBlocks;
387
- }
388
- else {
389
- serializationObject.customType = "BABYLON.NodeParticleSystemSet";
390
- }
391
- // Blocks
392
- serializationObject.blocks = [];
393
- for (const block of blocks) {
394
- serializationObject.blocks.push(block.serialize());
395
- }
396
- if (!selectedBlocks) {
397
- for (const block of this.attachedBlocks) {
398
- if (blocks.indexOf(block) !== -1) {
399
- continue;
318
+ // Reconnect teleportation
319
+ for (const block of this.attachedBlocks) {
320
+ if (block.isTeleportOut) {
321
+ const teleportOut = block;
322
+ const id = teleportOut._tempEntryPointUniqueId;
323
+ if (id) {
324
+ const source = map[id];
325
+ if (source) {
326
+ source.attachToEndpoint(teleportOut);
327
+ }
328
+ }
329
+ }
400
330
  }
401
- serializationObject.blocks.push(block.serialize());
402
- }
403
- }
404
- return serializationObject;
405
- }
406
- /**
407
- * Makes a duplicate of the current particle system set.
408
- * @param name defines the name to use for the new particle system set
409
- * @returns the cloned particle system set
410
- */
411
- clone(name) {
412
- const serializationObject = this.serialize();
413
- const clone = SerializationHelper.Clone(() => new NodeParticleSystemSet(name), this);
414
- clone.name = name;
415
- clone.snippetId = this.snippetId;
416
- clone.parseSerializedObject(serializationObject);
417
- clone._buildId = this._buildId;
418
- return clone;
419
- }
420
- /**
421
- * Disposes the resources
422
- */
423
- dispose() {
424
- for (const block of this.attachedBlocks) {
425
- block.dispose();
426
- }
427
- this.attachedBlocks.length = 0;
428
- this.onBuildObservable.clear();
429
- }
430
- /**
431
- * Creates a new node particle set set to default basic configuration
432
- * @param name defines the name of the particle set
433
- * @returns a new NodeParticleSystemSet
434
- */
435
- static CreateDefault(name) {
436
- const nodeParticleSet = new NodeParticleSystemSet(name);
437
- nodeParticleSet.setToDefault();
438
- return nodeParticleSet;
439
- }
440
- /**
441
- * Creates a node particle set from parsed data
442
- * @param source defines the JSON representation of the particle set
443
- * @returns a new node particle set
444
- */
445
- static Parse(source) {
446
- const nodeParticleSet = SerializationHelper.Parse(() => new NodeParticleSystemSet(source.name), source, null);
447
- nodeParticleSet.parseSerializedObject(source);
448
- return nodeParticleSet;
449
- }
450
- /**
451
- * Creates a node particle set from a snippet saved in a remote file
452
- * @param name defines the name of the node particle set to create
453
- * @param url defines the url to load from
454
- * @param nodeParticleSet defines a node particle set to update (instead of creating a new one)
455
- * @returns a promise that will resolve to the new node particle set
456
- */
457
- // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax
458
- static ParseFromFileAsync(name, url, nodeParticleSet) {
459
- return new Promise((resolve, reject) => {
460
- const request = new WebRequest();
461
- request.addEventListener("readystatechange", () => {
462
- if (request.readyState == 4) {
463
- if (request.status == 200) {
464
- const serializationObject = JSON.parse(request.responseText);
465
- if (!nodeParticleSet) {
466
- nodeParticleSet = SerializationHelper.Parse(() => new NodeParticleSystemSet(name), serializationObject, null);
331
+ // Connections - Starts with input blocks only (except if in "merge" mode where we scan all blocks)
332
+ for (let blockIndex = 0; blockIndex < source.blocks.length; blockIndex++) {
333
+ const parsedBlock = source.blocks[blockIndex];
334
+ const block = map[parsedBlock.id];
335
+ if (!block) {
336
+ continue;
337
+ }
338
+ if (block.inputs.length && parsedBlock.inputs.some((i) => i.targetConnectionName) && !merge) {
339
+ continue;
340
+ }
341
+ this._restoreConnections(block, source, map);
342
+ }
343
+ // UI related info
344
+ if (source.locations || (source.editorData && source.editorData.locations)) {
345
+ const locations = source.locations || source.editorData.locations;
346
+ for (const location of locations) {
347
+ if (map[location.blockId]) {
348
+ location.blockId = map[location.blockId].uniqueId;
467
349
  }
468
- nodeParticleSet.parseSerializedObject(serializationObject);
469
- resolve(nodeParticleSet);
350
+ }
351
+ if (merge && this.editorData && this.editorData.locations) {
352
+ locations.concat(this.editorData.locations);
353
+ }
354
+ if (source.locations) {
355
+ this.editorData = {
356
+ locations: locations,
357
+ };
470
358
  }
471
359
  else {
472
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
473
- reject("Unable to load the node particle system set");
360
+ this.editorData = source.editorData;
361
+ this.editorData.locations = locations;
362
+ }
363
+ const blockMap = {};
364
+ for (const key in map) {
365
+ blockMap[key] = map[key].uniqueId;
474
366
  }
367
+ this.editorData.map = blockMap;
475
368
  }
476
- });
477
- request.open("GET", url);
478
- request.send();
479
- });
480
- }
481
- /**
482
- * Creates a node particle set from a snippet saved by the node particle editor
483
- * @param snippetId defines the snippet to load
484
- * @param nodeParticleSet defines a node particle set to update (instead of creating a new one)
485
- * @returns a promise that will resolve to the new node particle set
486
- */
487
- // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax
488
- static ParseFromSnippetAsync(snippetId, nodeParticleSet) {
489
- if (snippetId === "_BLANK") {
490
- return Promise.resolve(NodeParticleSystemSet.CreateDefault("blank"));
491
- }
492
- return new Promise((resolve, reject) => {
493
- const request = new WebRequest();
494
- request.addEventListener("readystatechange", () => {
495
- if (request.readyState == 4) {
496
- if (request.status == 200) {
497
- const snippet = JSON.parse(JSON.parse(request.responseText).jsonPayload);
498
- const serializationObject = JSON.parse(snippet.nodeParticle);
499
- if (!nodeParticleSet) {
500
- nodeParticleSet = SerializationHelper.Parse(() => new NodeParticleSystemSet(snippetId), serializationObject, null);
501
- }
502
- nodeParticleSet.parseSerializedObject(serializationObject);
503
- nodeParticleSet.snippetId = snippetId;
504
- try {
505
- resolve(nodeParticleSet);
369
+ this.comment = source.comment;
370
+ }
371
+ _restoreConnections(block, source, map) {
372
+ for (const outputPoint of block.outputs) {
373
+ for (const candidate of source.blocks) {
374
+ const target = map[candidate.id];
375
+ if (!target) {
376
+ continue;
506
377
  }
507
- catch (err) {
508
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
509
- reject(err);
378
+ for (const input of candidate.inputs) {
379
+ if (map[input.targetBlockId] === block && input.targetConnectionName === outputPoint.name) {
380
+ const inputPoint = target.getInputByName(input.inputName);
381
+ if (!inputPoint || inputPoint.isConnected) {
382
+ continue;
383
+ }
384
+ outputPoint.connectTo(inputPoint, true);
385
+ this._restoreConnections(target, source, map);
386
+ continue;
387
+ }
510
388
  }
511
389
  }
512
- else {
513
- // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
514
- reject("Unable to load the snippet " + snippetId);
390
+ }
391
+ }
392
+ /**
393
+ * Serializes this node particle set in a JSON representation
394
+ * @param selectedBlocks defines the list of blocks to save (if null the whole node particle set will be saved)
395
+ * @returns the serialized particle system set object
396
+ */
397
+ serialize(selectedBlocks) {
398
+ const serializationObject = selectedBlocks ? {} : SerializationHelper.Serialize(this);
399
+ serializationObject.editorData = JSON.parse(JSON.stringify(this.editorData)); // Copy
400
+ let blocks = [];
401
+ if (selectedBlocks) {
402
+ blocks = selectedBlocks;
403
+ }
404
+ else {
405
+ serializationObject.customType = "BABYLON.NodeParticleSystemSet";
406
+ }
407
+ // Blocks
408
+ serializationObject.blocks = [];
409
+ for (const block of blocks) {
410
+ serializationObject.blocks.push(block.serialize());
411
+ }
412
+ if (!selectedBlocks) {
413
+ for (const block of this.attachedBlocks) {
414
+ if (blocks.indexOf(block) !== -1) {
415
+ continue;
416
+ }
417
+ serializationObject.blocks.push(block.serialize());
515
418
  }
516
419
  }
517
- });
518
- request.open("GET", this.SnippetUrl + "/" + snippetId.replace(/#/g, "/"));
519
- request.send();
520
- });
521
- }
522
- }
523
- /** Define the Url to load node editor script */
524
- NodeParticleSystemSet.EditorURL = `${Tools._DefaultCdnUrl}/v${AbstractEngine.Version}/nodeParticleEditor/babylon.nodeParticleEditor.js`;
525
- /** Define the Url to load snippets */
526
- NodeParticleSystemSet.SnippetUrl = `https://snippet.babylonjs.com`;
527
- __decorate([
528
- serialize()
529
- ], NodeParticleSystemSet.prototype, "name", void 0);
530
- __decorate([
531
- serialize("comment")
532
- ], NodeParticleSystemSet.prototype, "comment", void 0);
420
+ return serializationObject;
421
+ }
422
+ /**
423
+ * Makes a duplicate of the current particle system set.
424
+ * @param name defines the name to use for the new particle system set
425
+ * @returns the cloned particle system set
426
+ */
427
+ clone(name) {
428
+ const serializationObject = this.serialize();
429
+ const clone = SerializationHelper.Clone(() => new _a(name), this);
430
+ clone.name = name;
431
+ clone.snippetId = this.snippetId;
432
+ clone.parseSerializedObject(serializationObject);
433
+ clone._buildId = this._buildId;
434
+ return clone;
435
+ }
436
+ /**
437
+ * Disposes the resources
438
+ */
439
+ dispose() {
440
+ for (const block of this.attachedBlocks) {
441
+ block.dispose();
442
+ }
443
+ this.attachedBlocks.length = 0;
444
+ this.onBuildObservable.clear();
445
+ }
446
+ /**
447
+ * Creates a new node particle set set to default basic configuration
448
+ * @param name defines the name of the particle set
449
+ * @returns a new NodeParticleSystemSet
450
+ */
451
+ static CreateDefault(name) {
452
+ const nodeParticleSet = new _a(name);
453
+ nodeParticleSet.setToDefault();
454
+ return nodeParticleSet;
455
+ }
456
+ /**
457
+ * Creates a node particle set from parsed data
458
+ * @param source defines the JSON representation of the particle set
459
+ * @returns a new node particle set
460
+ */
461
+ static Parse(source) {
462
+ const nodeParticleSet = SerializationHelper.Parse(() => new _a(source.name), source, null);
463
+ nodeParticleSet.parseSerializedObject(source);
464
+ return nodeParticleSet;
465
+ }
466
+ /**
467
+ * Creates a node particle set from a snippet saved in a remote file
468
+ * @param name defines the name of the node particle set to create
469
+ * @param url defines the url to load from
470
+ * @param nodeParticleSet defines a node particle set to update (instead of creating a new one)
471
+ * @returns a promise that will resolve to the new node particle set
472
+ */
473
+ // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax
474
+ static ParseFromFileAsync(name, url, nodeParticleSet) {
475
+ return new Promise((resolve, reject) => {
476
+ const request = new WebRequest();
477
+ request.addEventListener("readystatechange", () => {
478
+ if (request.readyState == 4) {
479
+ if (request.status == 200) {
480
+ const serializationObject = JSON.parse(request.responseText);
481
+ if (!nodeParticleSet) {
482
+ nodeParticleSet = SerializationHelper.Parse(() => new _a(name), serializationObject, null);
483
+ }
484
+ nodeParticleSet.parseSerializedObject(serializationObject);
485
+ resolve(nodeParticleSet);
486
+ }
487
+ else {
488
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
489
+ reject("Unable to load the node particle system set");
490
+ }
491
+ }
492
+ });
493
+ request.open("GET", url);
494
+ request.send();
495
+ });
496
+ }
497
+ /**
498
+ * Creates a node particle set from a snippet saved by the node particle editor
499
+ * @param snippetId defines the snippet to load
500
+ * @param nodeParticleSet defines a node particle set to update (instead of creating a new one)
501
+ * @returns a promise that will resolve to the new node particle set
502
+ */
503
+ // eslint-disable-next-line @typescript-eslint/promise-function-async, no-restricted-syntax
504
+ static ParseFromSnippetAsync(snippetId, nodeParticleSet) {
505
+ if (snippetId === "_BLANK") {
506
+ return Promise.resolve(_a.CreateDefault("blank"));
507
+ }
508
+ return new Promise((resolve, reject) => {
509
+ const request = new WebRequest();
510
+ request.addEventListener("readystatechange", () => {
511
+ if (request.readyState == 4) {
512
+ if (request.status == 200) {
513
+ const snippet = JSON.parse(JSON.parse(request.responseText).jsonPayload);
514
+ const serializationObject = JSON.parse(snippet.nodeParticle);
515
+ if (!nodeParticleSet) {
516
+ nodeParticleSet = SerializationHelper.Parse(() => new _a(snippetId), serializationObject, null);
517
+ }
518
+ nodeParticleSet.parseSerializedObject(serializationObject);
519
+ nodeParticleSet.snippetId = snippetId;
520
+ try {
521
+ resolve(nodeParticleSet);
522
+ }
523
+ catch (err) {
524
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
525
+ reject(err);
526
+ }
527
+ }
528
+ else {
529
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
530
+ reject("Unable to load the snippet " + snippetId);
531
+ }
532
+ }
533
+ });
534
+ request.open("GET", this.SnippetUrl + "/" + snippetId.replace(/#/g, "/"));
535
+ request.send();
536
+ });
537
+ }
538
+ },
539
+ (() => {
540
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
541
+ _name_decorators = [serialize()];
542
+ _comment_decorators = [serialize("comment")];
543
+ __esDecorate(null, null, _name_decorators, { kind: "field", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
544
+ __esDecorate(null, null, _comment_decorators, { kind: "field", name: "comment", static: false, private: false, access: { has: obj => "comment" in obj, get: obj => obj.comment, set: (obj, value) => { obj.comment = value; } }, metadata: _metadata }, _comment_initializers, _comment_extraInitializers);
545
+ if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
546
+ })(),
547
+ /** Define the Url to load node editor script */
548
+ _a.EditorURL = `${Tools._DefaultCdnUrl}/v${AbstractEngine.Version}/nodeParticleEditor/babylon.nodeParticleEditor.js`,
549
+ /** Define the Url to load snippets */
550
+ _a.SnippetUrl = `https://snippet.babylonjs.com`,
551
+ _a;
552
+ })();
553
+ export { NodeParticleSystemSet };
533
554
  //# sourceMappingURL=nodeParticleSystemSet.js.map