@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.
- package/Animations/animationGroup.d.ts +0 -1
- package/Animations/animationGroup.js +0 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/animationGroup.pure.js +2 -0
- package/Animations/animationGroup.pure.js.map +1 -1
- package/Animations/runtimeAnimation.js +11 -0
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioSceneComponent.pure.js +1 -1
- package/AudioV2/abstractAudio/abstractSound.d.ts +2 -1
- package/AudioV2/abstractAudio/abstractSound.js +7 -2
- package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
- package/AudioV2/abstractAudio/abstractSoundInstance.d.ts +3 -1
- package/AudioV2/abstractAudio/abstractSoundInstance.js.map +1 -1
- package/AudioV2/abstractAudio/staticSound.d.ts +6 -0
- package/AudioV2/abstractAudio/staticSound.js +17 -1
- package/AudioV2/abstractAudio/staticSound.js.map +1 -1
- package/AudioV2/abstractAudio/staticSoundInstance.d.ts +4 -2
- package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -1
- package/AudioV2/abstractAudio/streamingSound.d.ts +6 -0
- package/AudioV2/abstractAudio/streamingSound.js +9 -1
- package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioStaticSound.d.ts +7 -1
- package/AudioV2/webAudio/webAudioStaticSound.js +56 -8
- package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioStreamingSound.d.ts +3 -1
- package/AudioV2/webAudio/webAudioStreamingSound.js +16 -4
- package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +2 -2
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +151 -121
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/Behaviors/Cameras/interpolatingBehavior.d.ts +17 -2
- package/Behaviors/Cameras/interpolatingBehavior.js +53 -23
- package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
- package/Bones/bone.pure.js +3 -3
- package/Buffers/buffer.pure.js +0 -12
- package/Buffers/buffer.pure.js.map +1 -1
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js +141 -126
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.d.ts +2 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +290 -277
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js +115 -102
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +3 -0
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +334 -273
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +273 -258
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraPointersInput.js +237 -213
- package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js +199 -168
- package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.js +243 -229
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js +311 -266
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js +139 -119
- package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/followCameraPointersInput.js +239 -203
- package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.js +127 -114
- package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +278 -244
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +216 -202
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js +368 -353
- package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraTouchInput.js +185 -172
- package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +2 -0
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js +291 -246
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +11 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.js +18 -2
- package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/orbitCameraPointersInput.js +112 -96
- package/Cameras/Inputs/orbitCameraPointersInput.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +0 -2
- package/Cameras/VR/vrExperienceHelper.js +0 -2
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.pure.js +5 -0
- package/Cameras/VR/vrExperienceHelper.pure.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.js +1559 -1479
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Cameras/camera.pure.js +1225 -1178
- package/Cameras/camera.pure.js.map +1 -1
- package/Cameras/flyCamera.pure.js +369 -351
- package/Cameras/flyCamera.pure.js.map +1 -1
- package/Cameras/followCamera.pure.js +229 -192
- package/Cameras/followCamera.pure.js.map +1 -1
- package/Cameras/freeCamera.pure.js +373 -351
- package/Cameras/freeCamera.pure.js.map +1 -1
- package/Cameras/geospatialCamera.pure.d.ts +30 -7
- package/Cameras/geospatialCamera.pure.js +502 -457
- package/Cameras/geospatialCamera.pure.js.map +1 -1
- package/Cameras/geospatialCameraMovement.js +2 -2
- package/Cameras/geospatialCameraMovement.js.map +1 -1
- package/Cameras/targetCamera.pure.d.ts +7 -0
- package/Cameras/targetCamera.pure.js +550 -509
- package/Cameras/targetCamera.pure.js.map +1 -1
- package/Cameras/universalCamera.pure.js +98 -85
- package/Cameras/universalCamera.pure.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +111 -4
- package/Collisions/gpuPicker.js +696 -119
- package/Collisions/gpuPicker.js.map +1 -1
- package/Compute/computeShader.pure.js +372 -355
- package/Compute/computeShader.pure.js.map +1 -1
- package/Culling/Helper/transformFeedbackBoundingHelper.pure.js +2 -2
- package/Decorators/nodeDecorator.d.ts +11 -1
- package/Decorators/nodeDecorator.js +43 -6
- package/Decorators/nodeDecorator.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js +8 -0
- package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js.map +1 -1
- package/Engines/Native/nativeHelpers.js +15 -0
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +7 -2
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Native/nativeRenderTargetWrapper.d.ts +5 -0
- package/Engines/Native/nativeRenderTargetWrapper.js +35 -1
- package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +5 -3
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js +16 -3
- package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.pure.js +7 -1
- package/Engines/WebGPU/webgpuClearQuad.pure.js.map +1 -1
- package/Engines/abstractEngine.functions.d.ts +8 -2
- package/Engines/abstractEngine.functions.js +12 -4
- package/Engines/abstractEngine.functions.js.map +1 -1
- package/Engines/abstractEngine.pure.d.ts +20 -1
- package/Engines/abstractEngine.pure.js +21 -134
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/engine.d.ts +208 -0
- package/Engines/engine.pure.js +0 -15
- package/Engines/engine.pure.js.map +1 -1
- package/Engines/nullEngine.pure.d.ts +66 -0
- package/Engines/nullEngine.pure.js +97 -0
- package/Engines/nullEngine.pure.js.map +1 -1
- package/Engines/thinEngine.pure.d.ts +0 -13
- package/Engines/thinEngine.pure.js +4 -23
- package/Engines/thinEngine.pure.js.map +1 -1
- package/Engines/thinNativeEngine.d.ts +0 -1
- package/Engines/thinNativeEngine.js +0 -1
- package/Engines/thinNativeEngine.js.map +1 -1
- package/Engines/thinNativeEngine.pure.d.ts +27 -0
- package/Engines/thinNativeEngine.pure.js +383 -17
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +1 -0
- package/Engines/webgpuEngine.js +1 -0
- package/Engines/webgpuEngine.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +9 -0
- package/Engines/webgpuEngine.pure.js +7 -0
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FlowGraph/flowGraph.js +9 -0
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphContext.js +597 -584
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphDataConnection.pure.d.ts +14 -0
- package/FlowGraph/flowGraphDataConnection.pure.js +38 -1
- package/FlowGraph/flowGraphDataConnection.pure.js.map +1 -1
- package/FlowGraph/serialization.d.ts +11 -0
- package/FlowGraph/serialization.js +11 -1
- package/FlowGraph/serialization.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js +182 -170
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js +196 -184
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js +222 -210
- package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +123 -111
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +158 -146
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js +122 -110
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js +89 -77
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js +134 -122
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js +58 -46
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js +107 -95
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js +181 -169
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js +246 -234
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js +108 -96
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js +87 -75
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js +313 -301
- package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js +502 -490
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js +147 -135
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js +90 -78
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js +179 -167
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +462 -451
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +265 -253
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js +204 -192
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +611 -550
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js +320 -308
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js +87 -75
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js +154 -142
- package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js +150 -138
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js +270 -256
- package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js +95 -83
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js +715 -693
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraphBlock.js +548 -533
- package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +2 -2
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +43 -51
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.d.ts +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +66 -35
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
- package/Helpers/environmentHelper.js +2 -2
- package/Helpers/environmentHelper.js.map +1 -1
- package/Layers/effectLayer.js +529 -519
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.pure.js +428 -413
- package/Layers/glowLayer.pure.js.map +1 -1
- package/Layers/highlightLayer.pure.js +473 -458
- package/Layers/highlightLayer.pure.js.map +1 -1
- package/Layers/selectionOutlineLayer.pure.js +360 -345
- package/Layers/selectionOutlineLayer.pure.js.map +1 -1
- package/Lights/Clustered/clusteredLightContainer.pure.d.ts +1 -1
- package/Lights/Clustered/clusteredLightContainer.pure.js +583 -558
- package/Lights/Clustered/clusteredLightContainer.pure.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +6 -1
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/areaLight.pure.js +61 -39
- package/Lights/areaLight.pure.js.map +1 -1
- package/Lights/directionalLight.pure.js +308 -284
- package/Lights/directionalLight.pure.js.map +1 -1
- package/Lights/hemisphericLight.pure.js +123 -104
- package/Lights/hemisphericLight.pure.js.map +1 -1
- package/Lights/light.d.ts +5 -3
- package/Lights/light.js +869 -827
- package/Lights/light.js.map +1 -1
- package/Lights/pointLight.pure.js +185 -174
- package/Lights/pointLight.pure.js.map +1 -1
- package/Lights/rectAreaLight.pure.d.ts +17 -0
- package/Lights/rectAreaLight.pure.js +238 -159
- package/Lights/rectAreaLight.pure.js.map +1 -1
- package/Lights/shadowLight.js +280 -268
- package/Lights/shadowLight.js.map +1 -1
- package/Lights/spotLight.pure.js +460 -427
- package/Lights/spotLight.pure.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.pure.js +17 -5
- package/Loading/Plugins/babylonFileLoader.pure.js.map +1 -1
- package/Loading/sceneLoader.d.ts +5 -1
- package/Loading/sceneLoader.js +299 -402
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.pure.d.ts +18 -18
- package/Materials/Background/backgroundMaterial.pure.js +949 -794
- package/Materials/Background/backgroundMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.d.ts +15 -0
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +34 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +9 -0
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +26 -2
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.d.ts +2 -1
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +169 -149
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js +442 -429
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js +396 -383
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js +237 -220
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js +150 -133
- package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +265 -250
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js +159 -142
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +214 -201
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js +419 -400
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +3 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js +302 -289
- package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1327 -1272
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js +352 -337
- package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.pure.js +297 -277
- package/Materials/Node/Blocks/PBR/refractionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.pure.js +146 -131
- package/Materials/Node/Blocks/PBR/sheenBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js +158 -145
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/clampBlock.pure.js +92 -77
- package/Materials/Node/Blocks/clampBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/cloudBlock.pure.js +145 -132
- package/Materials/Node/Blocks/cloudBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/conditionalBlock.pure.js +182 -169
- package/Materials/Node/Blocks/conditionalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/curveBlock.pure.js +259 -246
- package/Materials/Node/Blocks/curveBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/debugBlock.pure.js +119 -106
- package/Materials/Node/Blocks/debugBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/loopBlock.pure.js +123 -110
- package/Materials/Node/Blocks/loopBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js +185 -172
- package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/remapBlock.pure.js +127 -112
- package/Materials/Node/Blocks/remapBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/transformBlock.pure.js +196 -185
- package/Materials/Node/Blocks/transformBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.pure.js +451 -438
- package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/trigonometryBlock.pure.js +184 -171
- package/Materials/Node/Blocks/trigonometryBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/waveBlock.pure.js +97 -84
- package/Materials/Node/Blocks/waveBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js +276 -263
- package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.js +1765 -1737
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +3 -3
- package/Materials/PBR/openpbrMaterial.pure.d.ts +102 -102
- package/Materials/PBR/openpbrMaterial.pure.js +3115 -2243
- package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrAnisotropicConfiguration.js +255 -227
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +9 -9
- package/Materials/PBR/pbrBRDFConfiguration.js +203 -155
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.js +1751 -1736
- package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +13 -13
- package/Materials/PBR/pbrBaseSimpleMaterial.js +205 -117
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +9 -9
- package/Materials/PBR/pbrClearCoatConfiguration.js +464 -406
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrIridescenceConfiguration.js +271 -239
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrMaterial.pure.d.ts +66 -66
- package/Materials/PBR/pbrMaterial.pure.js +1041 -685
- package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.d.ts +5 -5
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js +176 -115
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +7 -7
- package/Materials/PBR/pbrSheenConfiguration.js +314 -270
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.d.ts +5 -5
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js +172 -117
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +16 -16
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +864 -764
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.d.ts +43 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js +64 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js.map +1 -0
- package/Materials/Textures/HTML/htmlInteractionManager.d.ts +69 -0
- package/Materials/Textures/HTML/htmlInteractionManager.js +130 -0
- package/Materials/Textures/HTML/htmlInteractionManager.js.map +1 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.d.ts +84 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.js +246 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.js.map +1 -0
- package/Materials/Textures/HTML/htmlTexture.d.ts +148 -0
- package/Materials/Textures/HTML/htmlTexture.js +455 -0
- package/Materials/Textures/HTML/htmlTexture.js.map +1 -0
- package/Materials/Textures/HTML/index.d.ts +4 -0
- package/Materials/Textures/HTML/index.js +5 -0
- package/Materials/Textures/HTML/index.js.map +1 -0
- package/Materials/Textures/HTML/pure.d.ts +5 -0
- package/Materials/Textures/HTML/pure.js +6 -0
- package/Materials/Textures/HTML/pure.js.map +1 -0
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +671 -643
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/baseTexture.pure.js +880 -825
- package/Materials/Textures/baseTexture.pure.js.map +1 -1
- package/Materials/Textures/cubeTexture.d.ts +0 -1
- package/Materials/Textures/cubeTexture.js +0 -1
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.pure.js +368 -333
- package/Materials/Textures/cubeTexture.pure.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +0 -1
- package/Materials/Textures/dynamicTexture.js +0 -1
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/dynamicTexture.pure.js +2 -0
- package/Materials/Textures/dynamicTexture.pure.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.d.ts +0 -2
- package/Materials/Textures/htmlElementTexture.js +0 -2
- package/Materials/Textures/htmlElementTexture.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.pure.js +4 -0
- package/Materials/Textures/htmlElementTexture.pure.js.map +1 -1
- package/Materials/Textures/index.d.ts +1 -0
- package/Materials/Textures/index.js +1 -1
- package/Materials/Textures/index.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +0 -1
- package/Materials/Textures/multiRenderTarget.js +0 -1
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.pure.js +2 -0
- package/Materials/Textures/multiRenderTarget.pure.js.map +1 -1
- package/Materials/Textures/pure.d.ts +1 -0
- package/Materials/Textures/pure.js +1 -0
- package/Materials/Textures/pure.js.map +1 -1
- package/Materials/Textures/texture.pure.js +961 -923
- package/Materials/Textures/texture.pure.js.map +1 -1
- package/Materials/Textures/videoTexture.pure.d.ts +3 -0
- package/Materials/Textures/videoTexture.pure.js +450 -401
- package/Materials/Textures/videoTexture.pure.js.map +1 -1
- package/Materials/colorCurves.pure.js +510 -477
- package/Materials/colorCurves.pure.js.map +1 -1
- package/Materials/effect.pure.js +0 -7
- package/Materials/effect.pure.js.map +1 -1
- package/Materials/imageProcessing.js +12 -4
- package/Materials/imageProcessing.js.map +1 -1
- package/Materials/imageProcessingConfiguration.pure.js +647 -587
- package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
- package/Materials/material.decalMapConfiguration.pure.d.ts +2 -2
- package/Materials/material.decalMapConfiguration.pure.js +149 -130
- package/Materials/material.decalMapConfiguration.pure.js.map +1 -1
- package/Materials/material.detailMapConfiguration.d.ts +3 -3
- package/Materials/material.detailMapConfiguration.js +213 -175
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.pure.js +1815 -1721
- package/Materials/material.pure.js.map +1 -1
- package/Materials/materialPluginBase.pure.js +270 -249
- package/Materials/materialPluginBase.pure.js.map +1 -1
- package/Materials/materialPluginManager.pure.js +18 -8
- package/Materials/materialPluginManager.pure.js.map +1 -1
- package/Materials/materialStencilState.js +211 -200
- package/Materials/materialStencilState.js.map +1 -1
- package/Materials/meshDebugPluginMaterial.pure.d.ts +2 -2
- package/Materials/meshDebugPluginMaterial.pure.js +397 -275
- package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
- package/Materials/standardMaterial.pure.d.ts +32 -32
- package/Materials/standardMaterial.pure.js +1804 -1394
- package/Materials/standardMaterial.pure.js.map +1 -1
- package/Maths/math.color.pure.js +5 -5
- package/Maths/math.functions.js +38 -30
- package/Maths/math.functions.js.map +1 -1
- package/Maths/math.vector.pure.js +25 -25
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +86 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +255 -104
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +39 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +322 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
- package/Meshes/GreasedLine/greasedLineMesh.pure.js +4 -4
- package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +3 -3
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +107 -94
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js +276 -263
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js +247 -232
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js +299 -284
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js +196 -181
- package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/latticeBlock.pure.js +198 -179
- package/Meshes/Node/Blocks/Set/latticeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js +151 -138
- package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js +107 -94
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js +138 -125
- package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js +213 -200
- package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js +138 -125
- package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js +179 -164
- package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/boxBlock.pure.js +183 -170
- package/Meshes/Node/Blocks/Sources/boxBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js +125 -112
- package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js +153 -140
- package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/discBlock.pure.js +112 -99
- package/Meshes/Node/Blocks/Sources/discBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/gridBlock.pure.js +133 -120
- package/Meshes/Node/Blocks/Sources/gridBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js +128 -115
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/meshBlock.pure.js +116 -103
- package/Meshes/Node/Blocks/Sources/meshBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/planeBlock.pure.js +160 -147
- package/Meshes/Node/Blocks/Sources/planeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js +144 -131
- package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/torusBlock.pure.js +112 -99
- package/Meshes/Node/Blocks/Sources/torusBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js +200 -185
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/bevelBlock.pure.js +111 -98
- package/Meshes/Node/Blocks/bevelBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +182 -165
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js +89 -76
- package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/conditionBlock.pure.js +184 -169
- package/Meshes/Node/Blocks/conditionBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js +270 -255
- package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js +172 -159
- package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCurveBlock.pure.js +230 -217
- package/Meshes/Node/Blocks/geometryCurveBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryEaseBlock.pure.js +256 -245
- package/Meshes/Node/Blocks/geometryEaseBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js +206 -189
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTransformBlock.pure.js +166 -153
- package/Meshes/Node/Blocks/geometryTransformBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js +221 -208
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mappingBlock.pure.js +150 -137
- package/Meshes/Node/Blocks/mappingBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mathBlock.pure.js +269 -256
- package/Meshes/Node/Blocks/mathBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js +141 -128
- package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/randomBlock.pure.js +161 -148
- package/Meshes/Node/Blocks/randomBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/subdivideBlock.pure.js +102 -87
- package/Meshes/Node/Blocks/subdivideBlock.pure.js.map +1 -1
- package/Meshes/Node/nodeGeometry.js +560 -538
- package/Meshes/Node/nodeGeometry.js.map +1 -1
- package/Meshes/Node/nodeGeometryBlock.js +473 -458
- package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
- package/Meshes/abstractMesh.pure.js +2218 -2207
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/geometry.js +30 -15
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/mesh.pure.js +26 -14
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/mesh.vertexData.js +1665 -1655
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/transformNode.pure.js +1400 -1372
- package/Meshes/transformNode.pure.js.map +1 -1
- package/Misc/decorators.d.ts +34 -19
- package/Misc/decorators.functions.d.ts +33 -2
- package/Misc/decorators.functions.js +114 -35
- package/Misc/decorators.functions.js.map +1 -1
- package/Misc/decorators.js +96 -68
- package/Misc/decorators.js.map +1 -1
- package/Misc/decorators.serialization.js +47 -40
- package/Misc/decorators.serialization.js.map +1 -1
- package/Misc/decorators.serializationUtilities.d.ts +24 -0
- package/Misc/decorators.serializationUtilities.js +20 -0
- package/Misc/decorators.serializationUtilities.js.map +1 -0
- package/Misc/dumpTools.pure.js +43 -33
- package/Misc/dumpTools.pure.js.map +1 -1
- package/Misc/fileTools.pure.js +8 -0
- package/Misc/fileTools.pure.js.map +1 -1
- package/Misc/observable.pure.js +0 -7
- package/Misc/observable.pure.js.map +1 -1
- package/Misc/snapshotRenderingHelper.d.ts +4 -1
- package/Misc/snapshotRenderingHelper.js.map +1 -1
- package/Misc/symbolMetadataPolyfill.d.ts +11 -0
- package/Misc/symbolMetadataPolyfill.js +22 -0
- package/Misc/symbolMetadataPolyfill.js.map +1 -0
- package/Misc/tools.pure.js +2 -2
- package/Misc/tools.pure.js.map +1 -1
- package/Morph/morphTarget.js +382 -365
- package/Morph/morphTarget.js.map +1 -1
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js +160 -145
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js +187 -174
- package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js +238 -219
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js +140 -115
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js +157 -144
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js +133 -119
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js +93 -80
- package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleDebugBlock.pure.js +117 -105
- package/Particles/Node/Blocks/particleDebugBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js +105 -92
- package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleGradientValueBlock.pure.js +82 -69
- package/Particles/Node/Blocks/particleGradientValueBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js +113 -101
- package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleMathBlock.pure.js +278 -265
- package/Particles/Node/Blocks/particleMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleNumberMathBlock.pure.js +155 -142
- package/Particles/Node/Blocks/particleNumberMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleRandomBlock.pure.js +156 -143
- package/Particles/Node/Blocks/particleRandomBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js +217 -204
- package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleVectorMathBlock.pure.js +106 -93
- package/Particles/Node/Blocks/particleVectorMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/systemBlock.pure.js +366 -330
- package/Particles/Node/Blocks/systemBlock.pure.js.map +1 -1
- package/Particles/Node/nodeParticleBlock.js +339 -324
- package/Particles/Node/nodeParticleBlock.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.js +494 -473
- package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +0 -1
- package/Particles/gpuParticleSystem.js +0 -1
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.pure.d.ts +4 -3
- package/Particles/gpuParticleSystem.pure.js +27 -16
- package/Particles/gpuParticleSystem.pure.js.map +1 -1
- package/Particles/particleSystem.pure.js +57 -2
- package/Particles/particleSystem.pure.js.map +1 -1
- package/Particles/thinParticleSystem.d.ts +0 -1
- package/Particles/thinParticleSystem.js +0 -1
- package/Particles/thinParticleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.pure.js +2 -0
- package/Particles/thinParticleSystem.pure.js.map +1 -1
- package/Particles/webgl2ParticleSystem.pure.js +2 -0
- package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
- package/Physics/v1/physicsImpostor.pure.js +4 -4
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js +675 -656
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.d.ts +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +521 -486
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js +241 -220
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js +852 -835
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js +1135 -1073
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js +319 -303
- package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +212 -199
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/blackAndWhitePostProcess.pure.js +67 -55
- package/PostProcesses/blackAndWhitePostProcess.pure.js.map +1 -1
- package/PostProcesses/bloomMergePostProcess.pure.js +74 -62
- package/PostProcesses/bloomMergePostProcess.pure.js.map +1 -1
- package/PostProcesses/blurPostProcess.pure.js +127 -115
- package/PostProcesses/blurPostProcess.pure.js.map +1 -1
- package/PostProcesses/chromaticAberrationPostProcess.pure.js +130 -118
- package/PostProcesses/chromaticAberrationPostProcess.pure.js.map +1 -1
- package/PostProcesses/circleOfConfusionPostProcess.pure.js +115 -104
- package/PostProcesses/circleOfConfusionPostProcess.pure.js.map +1 -1
- package/PostProcesses/colorCorrectionPostProcess.pure.js +55 -43
- package/PostProcesses/colorCorrectionPostProcess.pure.js.map +1 -1
- package/PostProcesses/convolutionPostProcess.pure.js +96 -84
- package/PostProcesses/convolutionPostProcess.pure.js.map +1 -1
- package/PostProcesses/extractHighlightsPostProcess.pure.js +68 -57
- package/PostProcesses/extractHighlightsPostProcess.pure.js.map +1 -1
- package/PostProcesses/filterPostProcess.pure.js +66 -54
- package/PostProcesses/filterPostProcess.pure.js.map +1 -1
- package/PostProcesses/fxaaPostProcess.pure.js.map +1 -1
- package/PostProcesses/grainPostProcess.pure.js +82 -70
- package/PostProcesses/grainPostProcess.pure.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +334 -322
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/motionBlurPostProcess.pure.js +246 -235
- package/PostProcesses/motionBlurPostProcess.pure.js.map +1 -1
- package/PostProcesses/passPostProcess.pure.js +75 -63
- package/PostProcesses/passPostProcess.pure.js.map +1 -1
- package/PostProcesses/postProcess.pure.js +899 -835
- package/PostProcesses/postProcess.pure.js.map +1 -1
- package/PostProcesses/refractionPostProcess.pure.js +114 -87
- package/PostProcesses/refractionPostProcess.pure.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js +108 -96
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.pure.js +241 -220
- package/PostProcesses/screenSpaceReflectionPostProcess.pure.js.map +1 -1
- package/PostProcesses/sharpenPostProcess.pure.js +86 -74
- package/PostProcesses/sharpenPostProcess.pure.js.map +1 -1
- package/PostProcesses/tonemapPostProcess.pure.js +82 -70
- package/PostProcesses/tonemapPostProcess.pure.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js +500 -465
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.d.ts +0 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +0 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js +2 -0
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js.map +1 -1
- package/Probes/reflectionProbe.pure.js +238 -224
- package/Probes/reflectionProbe.pure.js.map +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.pure.d.ts +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.pure.js +138 -105
- package/Rendering/GlobalIllumination/giRSMManager.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +155 -138
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -2
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +0 -2
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +5 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +0 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +0 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +1 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +34 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
- package/Rendering/edgesRenderer.pure.js.map +1 -1
- package/Rendering/prePassRenderer.d.ts +0 -2
- package/Rendering/prePassRenderer.js +0 -2
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.pure.js +2 -0
- package/Rendering/prePassRenderer.pure.js.map +1 -1
- package/Rendering/reflectiveShadowMap.pure.d.ts +1 -1
- package/Rendering/reflectiveShadowMap.pure.js +151 -130
- package/Rendering/reflectiveShadowMap.pure.js.map +1 -1
- package/Rendering/thinDepthPeelingRenderer.d.ts +0 -1
- package/Rendering/thinDepthPeelingRenderer.js +0 -1
- package/Rendering/thinDepthPeelingRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js +1 -0
- package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +35 -5
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/Shaders/gaussianSplatting.fragment.js +17 -1
- package/Shaders/gaussianSplatting.fragment.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +1 -1
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/gaussianSplattingDepth.vertex.js +1 -1
- package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
- package/Shaders/picking.fragment.js +39 -3
- package/Shaders/picking.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/helperFunctions.js +2 -2
- package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -7
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +4 -3
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js +14 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +2 -2
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
- package/ShadersWGSL/lightingVolume.compute.js +2 -2
- package/ShadersWGSL/lightingVolume.compute.js.map +1 -1
- package/ShadersWGSL/picking.fragment.js +22 -1
- package/ShadersWGSL/picking.fragment.js.map +1 -1
- package/XR/features/Layers/WebXRCompositionLayer.d.ts +3 -2
- package/XR/features/Layers/WebXRCompositionLayer.js +2 -2
- package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +59 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +120 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.d.ts +25 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.js +69 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.js.map +1 -0
- package/XR/features/WebXRLayers.pure.d.ts +8 -0
- package/XR/features/WebXRLayers.pure.js +43 -6
- package/XR/features/WebXRLayers.pure.js.map +1 -1
- package/XR/native/nativeXRRenderTarget.d.ts +2 -2
- package/XR/native/nativeXRRenderTarget.js +2 -2
- package/XR/native/nativeXRRenderTarget.js.map +1 -1
- package/XR/webXRExperienceHelper.js +10 -1
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRGraphicsBinding.d.ts +90 -0
- package/XR/webXRGraphicsBinding.js +85 -0
- package/XR/webXRGraphicsBinding.js.map +1 -0
- package/XR/webXRLayerRenderTargetTexture.d.ts +24 -0
- package/XR/webXRLayerRenderTargetTexture.js +30 -0
- package/XR/webXRLayerRenderTargetTexture.js.map +1 -0
- package/XR/webXRManagedOutputCanvas.d.ts +14 -0
- package/XR/webXRManagedOutputCanvas.js +24 -5
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +25 -4
- package/XR/webXRRenderTargetTextureProvider.js +33 -35
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +11 -0
- package/XR/webXRSessionManager.js +37 -0
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRTypes.d.ts +9 -6
- package/XR/webXRTypes.js.map +1 -1
- package/XR/webXRWebGLLayer.d.ts +2 -2
- package/XR/webXRWebGLLayer.js +2 -2
- package/XR/webXRWebGLLayer.js.map +1 -1
- package/XR/webXRWebGLRenderTargetTextureProvider.d.ts +12 -0
- package/XR/webXRWebGLRenderTargetTextureProvider.js +58 -0
- package/XR/webXRWebGLRenderTargetTextureProvider.js.map +1 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +69 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.js +148 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/node.js +878 -845
- package/node.js.map +1 -1
- package/package.json +8 -14
- package/scene.pure.d.ts +12 -0
- package/scene.pure.js +36 -0
- package/scene.pure.js.map +1 -1
- package/tslib.es6.js +304 -150
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
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
|
-
|
|
193
|
-
|
|
194
|
-
|
|
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
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
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
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
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
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
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
|
-
|
|
323
|
-
|
|
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
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
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
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
this.
|
|
340
|
-
|
|
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
|
-
|
|
344
|
-
|
|
345
|
-
|
|
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
|
-
|
|
348
|
-
|
|
349
|
-
|
|
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
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
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
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
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
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
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
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
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
|
-
|
|
469
|
-
|
|
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
|
-
|
|
473
|
-
|
|
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
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
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
|
-
|
|
508
|
-
|
|
509
|
-
|
|
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
|
-
|
|
513
|
-
|
|
514
|
-
|
|
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
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
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
|